快速玩转Yolov5目标检测—没有好的显卡也能玩(二)

时间:2022-10-03 19:52:16

        上篇  快速玩转Yolov5目标检测—没有好的显卡也能玩(一) 已经将YoloV5在我的笔记本电脑上快速跑起来了,因为电脑显卡一般,所以运行的CPU版本,从推理结果来看,耗时还是蛮高的,如下图,平均每帧0.45秒左右:

快速玩转Yolov5目标检测—没有好的显卡也能玩(二)

理论上这已经能满足很多场景下的需求了,比如明火报警、不带安全帽报警等等,不过还是想试下在GPU下的推理表现,并且后面还想继续玩下训练自己的检测模型。

下面就详细说说整个躺坑的过程,过程中也让我找到了一种在手头没有好的显卡的情况下如何能够比较快速低成本得到好显卡的方法。

一、先了解了下显卡的基本知识  

快速玩转Yolov5目标检测—没有好的显卡也能玩(二)

快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

破产之选:GTX 1050TI(4GB),我的显卡:NVIDIA NVS 5400M  600MHz  2GB,看来已经严重过时了-_-。

 二、在我的笔记本上尝试下GPU版本

        NVS 5400M 好在还支持CUDA的,就算无法满足训练的需求,能加速下推理速度也是不错的,所以还是决定试一下。

1.进入YoloV5虚拟环境,安装GPU版本的 pytorch 

conda activate yolov5   #进入yolov5虚拟环境
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch  #安装GPU版pytorch
快速玩转Yolov5目标检测—没有好的显卡也能玩(二)

运气不错一次安装成功:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

 2.查看GPU 是否可用 

python
import torch
torch.cuda.is_available()

执行第二步时报错:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

 按照提示调整了系统的虚拟内存配置:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

 继续运行提示GPU不可用:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

按照这个提示应该要不显卡驱动过低(或不兼容),要不就是显卡硬件不兼容,尝试更新驱动程序等方法后问题依旧,看来这条路暂时走不通了,得考虑其他的方法了。

三、低成本快速用上好的显卡

       上文我们说到运行深度学习建议最低的显卡: GTX 1050TI ,从京东上来看至少¥1500+了,加上其他硬件只为了测试一下YoloV5 采购一台PC成本有点高。

       至此此事暂时无解搁置了几天,一次无意中了解到,原来可以购买远程的GPU云服务器,立马开始研究,对比了几家云服务器厂家,最终决定使用腾讯云的GPU服务器,主要原因:便宜!

1.进入腾讯云,新建服务器实例,选择“按量计费”,地区可选择“广州”,“上海”或者“成都”,我选择的“成都”:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

2.在机型列选择“GPU机型”,在下方就可以看到有比较便宜的按小时计费的GPU服务器:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

最便宜的3元多,还有7元多的,不论是显卡,CPU还是内存整体配置还是非常不错的,几块钱1个小时的费用从测试的需求来讲相比购买同等配置的物理PC算是非常便宜了。

3.这里需要注意了,我购买的是7.8元的这台服务器(1颗NVIDIA T4),3元的服务器(1/4 颗 NVIDIA T4)无论怎么尝试都无法启用pytorch的GPU模式,猜测很可能是因为共享了同颗GPU导致的。
下面的操作系统选择windows2019,磁盘空间150GB,宽带按量计费:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

连上服务器,终于见到了大名鼎鼎的
NVIDIA TESLA T4 深度学习显卡了:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

4.跟之前的方法一样搭建起YoloV5 GPU的运行环境。

5.验证GPU,成功!

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

6.运行推理:

python detect.py --weights="weights/yolov5s.pt" --source  http://live1.wuhubtv.com/channel1/sd/live.m3u8

启动成功,显卡型号和显存:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

可以看到平均推理耗时已经低于0.01秒了: 

  快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

 CPU占用:

 快速玩转Yolov5目标检测—没有好的显卡也能玩(二) 

 总结:

        至此,通过采用云GPU服务器的方式快速低成本的用上了高性能的显卡,而且这个方案可以根据项目的实际情况动态扩容或缩减硬件配置,在项目规模不大,这个方案是比较不错的选择。

       另外,记得用完服务器后及时销毁服务器!

       下一篇我们继续聊聊如何训练自己的目标检测模型!