YOLOv5-5.0训练+工业相机实时检测

YOLOv5-5.0训练+工业相机实时检测,第1张

自学python的大龄小白记录最近的小项目,有用词和任何疏漏欢迎批评。

  1. 依赖

    1. 基本程序 - 可预先下载

      1. 海康软件预览相机视频流,并且提供directshow文件MVS

      2. 视频流调用需要graphedit预处理,winsdksetup

      3. 虚拟环境管理Anaconda

      4. 视觉检测的虚拟环境建立前,需要安装Visual Studio,并必须选择C/C++相关附加包

      5. Pycharm用于编辑

    2. 英伟达显卡计算适配程序 - 下载前参考下列第4点内容

      1. cuda,需要对应显卡设置里,需要的cuda版本

      2. cudnn,对应上述得到的cuda版本

    3. YOLO检测框架代码 - 可预先下载

      1. Github压缩包下载

    4. 各种python包

      1. 大部分依赖的python包都在yolo的文件夹里的requirements.txt

      2. 因为要适配特定版本的英伟达cuda,pytorch需要下载特定版本,详见第4点。

  2. YOLOV5安装步骤

    1. 安装Visual Studio到C盘,并必须选择C/C++相关附加包

    2. 安装Anaconda到C盘,然后用其中的cmd.exe创建YOLO需要的虚拟环境,名称例如yv55env

      1. 代码conda create -n yv55env python=3.8

    3. 在github中下载YOLO压缩包,根据此次需要选择v5.0。下载得到压缩包,解压压缩包得到文件夹,把文件夹复制到c:\\user\admin\anaconda3\envs\yv55env下。

    4. 在yv55env的cmd环境下,进入anaconda3\envs\yv55env\yolov5-5.0,运行pip install -r requirements.txt,安装yolov5版本所需的包。

    5. 至此已经可以运行yolov5检测图片了,可以运行detect.py文件,如果有报错,文末常见bug的汇总

  3. 海康相机取流

    1. 从海康官网下载最新的MVS并安装

    2. 从微软官网下载winsdksetup.exe

    3. 运行MVS安装目录下,Development\ThirdPartyPlatformAdapter\DirectShow\x64\MvDSS2下installDSSvc_x64.bat文件,需要用管理员权限运行。删除MVS需要先同一文件夹运行uninstall才能删除。

    4. 运行winsdk安装目录下,C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64下的graphedt.exe文件。在capture sources下,选择海康相机,双击插入。右击方框右侧的点render。保存文件。

    5. 记住capture sources下,海康摄像头从上往下的序号。

    6. 在detect代码里,cap=上述序号。

    7. 海康相机需要用cv2.set来设置相机的相关参数。

    8. 运行detect.py,取到海康相机的流,确认可以正常运行并识别yolov5s.pt模型里自带的目标种类,比如人、车、手机,等。可能有卡顿,帧率比较低,因为至此默认用cpu计算。

  4. 使用英伟达显卡CUDA包运行图像计算程序

    1. 在Nvidia控制面板里查找NVCUDA.dll在产品名称里列出的驱动版本号,比如CUDA10.x.xx或11.x.xx。

    2. 从英伟达官网里下载对应版本的CUDA toolkit

    3. CUDA按照系统勾选,最后一步推荐选择exe (network)

    4. 在CUDA安装时,选择自定义,只安装CUDA就可以。

    5. 对应CUDA版本选择CUDNN下载,需要注册英伟达账号。

    6. CUDNN下载得到压缩包,解压后里面有三个文件夹,分别是lib\x64、include、bin,将三个文件夹内的文件,对应复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1下的三个文件夹lib\x64、include、bin中。

    7. 在pytorch官网首页,按照对应的系统版本和CUDA版本,查找对应下载CMD指令,形式应该类似文末常用指令中最后一条。

    8. 再次运行detect.py时,会发现不卡顿了,一般系统自带的相机,肯定可以把所有相机取到的frame都处理好并显示出来。

  5. 模型训练

    1. 到这一步为止,只在运行基本的detect.py,训练需要数据和标注,github上有开源工具labelimg可以使用

    2. 安装pyqt5和lxml等

    3. 从github上下载labelimg的压缩包,解压到C盘或者D盘都可以

    4. 参考csdn文章《教程:超详细从零开始yolov5模型训练》。

  6. 当前欠缺

    1. 知识储备:卷积等数学基础、pytorch、对代码的理解。

    2. 通讯模块:选用了带gpio口的工控电脑,需花时间上手梳理了解。

    3. 机械硬件:相机型号、工装夹具还没固定,需要用手头现有的设备、工装调试

  7. 常见bug的处理

    1. anaconda和visual studio安装可能必须要在c盘,否则遇到过权限问题,直到运行detect.py时才发现。

    2. 视频取流找不到:确保graphedt里能找到需要的视频源capture sources,按照这个次序,在代码里给到cap=0或1

    3. 取到的流黑屏和花屏:海康的相机在代码里取流时,需要设置frame高度、宽度、帧率、曝光率。

    4. yolo框架文件夹下运行detect.py时,会有三个常见报错:

      1. Torch可能过新,Torch包下存在nn\modules文件夹里,upsampling里删掉recompute_scale_factor这个return。

      2. datasets.py报错,279行的的in url需要改成in str(url)。

      3. 权重文件yolov5s.pt在detect代码初次运行时,默认下载最新版本的,如果使用的框架不是最新版本,则会出错。

    5. 运行train.py时报错,winerror或者直接内存不够,可以修改batch size,改小以使程序正常运行。

  8. 常用命令汇总

conda create -n yv55env python=3.8

conda create -n yv55env2 --clone yv55env

conda remove -n yv55env2 --all

conda list

conda activate yv55env

conda install jupyter notebook

jupyter notebook

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

pip list

pip install --upgrade xxx

conda install pyqt=5

conda install -c anaconda lxml

pyrcc5 -o libs/resources.py resources.qrc

python train.py --img 640 --batch 50 --epochs 100 --data ../yolo_A/A.yaml --weights yolov5s.pt --nosave --cache

参考文章

https://blog.csdn.net/qq_23107577/article/details/117773842

https://blog.csdn.net/qq_45701791/article/details/113992622

https://blog.csdn.net/vastz/article/details/108813557

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/716742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存