自学python的大龄小白记录最近的小项目,有用词和任何疏漏欢迎批评。
-
依赖
-
基本程序 - 可预先下载
-
海康软件预览相机视频流,并且提供directshow文件MVS
-
视频流调用需要graphedit预处理,winsdksetup
-
虚拟环境管理Anaconda
-
视觉检测的虚拟环境建立前,需要安装Visual Studio,并必须选择C/C++相关附加包
-
Pycharm用于编辑
-
-
英伟达显卡计算适配程序 - 下载前参考下列第4点内容
-
cuda,需要对应显卡设置里,需要的cuda版本
-
cudnn,对应上述得到的cuda版本
-
-
YOLO检测框架代码 - 可预先下载
-
Github压缩包下载
-
-
各种python包
-
大部分依赖的python包都在yolo的文件夹里的requirements.txt
-
因为要适配特定版本的英伟达cuda,pytorch需要下载特定版本,详见第4点。
-
-
-
YOLOV5安装步骤
-
安装Visual Studio到C盘,并必须选择C/C++相关附加包
-
安装Anaconda到C盘,然后用其中的cmd.exe创建YOLO需要的虚拟环境,名称例如yv55env
-
代码conda create -n yv55env python=3.8
-
-
在github中下载YOLO压缩包,根据此次需要选择v5.0。下载得到压缩包,解压压缩包得到文件夹,把文件夹复制到c:\\user\admin\anaconda3\envs\yv55env下。
-
在yv55env的cmd环境下,进入anaconda3\envs\yv55env\yolov5-5.0,运行pip install -r requirements.txt,安装yolov5版本所需的包。
-
至此已经可以运行yolov5检测图片了,可以运行detect.py文件,如果有报错,文末常见bug的汇总
-
-
海康相机取流
-
从海康官网下载最新的MVS并安装
-
从微软官网下载winsdksetup.exe
-
运行MVS安装目录下,Development\ThirdPartyPlatformAdapter\DirectShow\x64\MvDSS2下installDSSvc_x64.bat文件,需要用管理员权限运行。删除MVS需要先同一文件夹运行uninstall才能删除。
-
运行winsdk安装目录下,C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64下的graphedt.exe文件。在capture sources下,选择海康相机,双击插入。右击方框右侧的点render。保存文件。
-
记住capture sources下,海康摄像头从上往下的序号。
-
在detect代码里,cap=上述序号。
-
海康相机需要用cv2.set来设置相机的相关参数。
-
运行detect.py,取到海康相机的流,确认可以正常运行并识别yolov5s.pt模型里自带的目标种类,比如人、车、手机,等。可能有卡顿,帧率比较低,因为至此默认用cpu计算。
-
-
使用英伟达显卡CUDA包运行图像计算程序
-
在Nvidia控制面板里查找NVCUDA.dll在产品名称里列出的驱动版本号,比如CUDA10.x.xx或11.x.xx。
-
从英伟达官网里下载对应版本的CUDA toolkit
-
CUDA按照系统勾选,最后一步推荐选择exe (network)
-
在CUDA安装时,选择自定义,只安装CUDA就可以。
-
对应CUDA版本选择CUDNN下载,需要注册英伟达账号。
-
CUDNN下载得到压缩包,解压后里面有三个文件夹,分别是lib\x64、include、bin,将三个文件夹内的文件,对应复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1下的三个文件夹lib\x64、include、bin中。
-
在pytorch官网首页,按照对应的系统版本和CUDA版本,查找对应下载CMD指令,形式应该类似文末常用指令中最后一条。
-
再次运行detect.py时,会发现不卡顿了,一般系统自带的相机,肯定可以把所有相机取到的frame都处理好并显示出来。
-
-
模型训练
-
到这一步为止,只在运行基本的detect.py,训练需要数据和标注,github上有开源工具labelimg可以使用
-
安装pyqt5和lxml等
-
从github上下载labelimg的压缩包,解压到C盘或者D盘都可以
-
参考csdn文章《教程:超详细从零开始yolov5模型训练》。
-
-
当前欠缺
-
知识储备:卷积等数学基础、pytorch、对代码的理解。
-
通讯模块:选用了带gpio口的工控电脑,需花时间上手梳理了解。
-
机械硬件:相机型号、工装夹具还没固定,需要用手头现有的设备、工装调试
-
-
常见bug的处理
-
anaconda和visual studio安装可能必须要在c盘,否则遇到过权限问题,直到运行detect.py时才发现。
-
视频取流找不到:确保graphedt里能找到需要的视频源capture sources,按照这个次序,在代码里给到cap=0或1
-
取到的流黑屏和花屏:海康的相机在代码里取流时,需要设置frame高度、宽度、帧率、曝光率。
-
yolo框架文件夹下运行detect.py时,会有三个常见报错:
-
Torch可能过新,Torch包下存在nn\modules文件夹里,upsampling里删掉recompute_scale_factor这个return。
-
datasets.py报错,279行的的in url需要改成in str(url)。
-
权重文件yolov5s.pt在detect代码初次运行时,默认下载最新版本的,如果使用的框架不是最新版本,则会出错。
-
-
运行train.py时报错,winerror或者直接内存不够,可以修改batch size,改小以使程序正常运行。
-
-
常用命令汇总
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)