近来需要使用yolov5做目标检测,故整理了自己安装与使用的全过程
1、环境安装
1、在anaconda下安装自己的虚拟环境
2、从github克隆yolov5项目
注:此处我的电脑显卡是GTX1650,后面训练过程中cuda,cudnn,torchvision等个版本一定要相匹配,最终测试后,我的版本如下:
2、制作自己的数据集
1、使用labelimg库可以很方便的只做自己的数据集
3、训练自己的模型
1、使用yolov5训练自己的模型,需要修改一些参数信息,此处参考修改参数信息
2、遇到的错误:yolov5训练中报错:UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step(). Failure to do this will result in PyTorch skipping the first value of the learning rate schedule.
该错误导致训练无效
解决方法:解决办法
该错误的主要原因是下载的pytorch和cudnn所支持的cuda版本不匹配的问题,而pycharm检测不出来,导致训练无效。
4、训练结果
1、本次一共训练了300轮,耗时十个多小时
(–batch-size==2,–workers ==2,num_workers=0)
2、最终的训练结果不太好,可能原因如下:
- 数据集制作太粗糙,有些类别没有,有些类别太少,分布不均匀,还存在大量误标的情况,后面考虑制作严谨的数据集
- 模型采用了yolov5-s,模型过小,考虑换成大的
- 对模型进行具体任务的优化
5、推理测试
测试了部分样本,其检测精度和类型不太行。。
6、模型部署
这里涉及到.pt模型格式等问题,也是难点,继续研究!
评价指标:
Precision(准确率,精度), Recall(召回率), F1 score
loU(Intersection over Union)(交并比)
P-R curve(Precision-Recall curve)(精度召回曲线)
AP(Average Precision)(*均正确率)
mAP(mean Average Precision)(*均精度均值)
FPS(Frames Per Second)(每秒传输帧率)
7、参考
参考文献1(手机端和视频检测)
参考文献2
主要参考文献(包括了详细步骤)
cuda、pytorch、cudnn版本问题
无效训练问题
模型部署问题
yolov5实现小数据集的目标检测–kolektor缺陷数据集