前言
YOLO系列模型作为一种实时目标检测算法,自从YOLO1发布以来,就以其检测速度快、准确率高而受到广泛关注。随着技术的迭代,YOLO系列已经发展到了YOLO8。本文将详细介绍YOLO5的技术规格、应用场景、特点以及性能对比。
yolov5源码下载地址:https://github.com/ultralytics/yolov5
应用demo下载地址:https://pan.baidu.com/s/1X2iUmzAm4iz0iPA6ukVs5w?pwd=1111
应用场景
先看一张图片:
上述图片中,可以将看到的物体通过矩形框标记出来,并识别到框选的内容,还有识别准确度。这样应用通过此网路模型可以从图片中识别到我们需要识别的物品并标记出坐标位置。
训练流程
1.准备图片数据集:
准备用于训练的数据集,将其分成两份,一份用于训练,一份用于测试。
2.图片目标标注:
标注需要使用到标注工具,我用的是labelimg,工具图片如下:
标注之后需要将标注文件转换成模型可以识别的格式。demo代码中附带自动转换文件,可将标注文件转换成指定的格式文件。
3.训练与测试:
此功能需要用到train.py程序,运行终端指令:
python train.py --batch-size 8 --epochs 100 --data ./mytest/face.yaml --cfg ./mytest/yolov5s.yaml --weights './mytest/yolov5s.pt'
会在runs/train/exp文件夹中生成训练的结果及训练的权重如下:
4.验证使用
最后的使用识别目标图片bus.jpg就需要用到detect.py,运行的终端命令:
python detect.py --weights ./runs/train/exp/weights/best.pt --source ./data/images/bus.jpg
会在runs/detect/exp文件夹中生成识别目标的结果,就像上述图片结果:
异常处理
在使用过程中,出现的最多的异常是内存不足、页面过小等资源不足情况。针对这些通常可以通过修改参数workers、device、batch-size的大小解决。资金充足的情况下,可以通过提升电脑硬件配置解决。
应用
通过上述功能,对其修改编写了界面应用Demo。可以用来图片目标识别、视频目标识别、摄像头目标识别、桌面目标识别等功能。