YOLOv5目标检测训练自己数据集

近来需要使用yolov5做目标检测,故整理了自己安装与使用的全过程

1、环境安装

1、在anaconda下安装自己的虚拟环境
2、从github克隆yolov5项目
注:此处我的电脑显卡是GTX1650,后面训练过程中cuda,cudnn,torchvision等个版本一定要相匹配,最终测试后,我的版本如下:
YOLOv5目标检测训练自己数据集_第1张图片

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)
YOLOv5目标检测训练自己数据集_第2张图片
2、最终的训练结果不太好,可能原因如下:

  • 数据集制作太粗糙,有些类别没有,有些类别太少,分布不均匀,还存在大量误标的情况,后面考虑制作严谨的数据集
  • 模型采用了yolov5-s,模型过小,考虑换成大的
  • 对模型进行具体任务的优化

5、推理测试

YOLOv5目标检测训练自己数据集_第3张图片
测试了部分样本,其检测精度和类型不太行。。

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缺陷数据集

你可能感兴趣的:(目标检测,深度学习,python)