当前位置:   article > 正文

万字保姆级全网最细解析YOLOv5,多图警告,师妹用了都说棒!

yolov5

1方法

1.1.1制作训练样本

登录Make Sense网站(https://www.makesense.ai/)

1.1.2鸡胫骨深度学习模型制备

1.1.2.1Yolo的原理

YOLOv1是YOLO系列的第一个版本,于2015年提出。使用单个卷积神经网络(CNN)模型进行目标检测。将输入图像分为网格,并在每个网格单元中预测目标的边界框和类别。使用全连接层来预测边界框坐标和目标类别概率。相对较低的准确率,但在速度上具有优势。

YOLOv2在YOLOv1的基础上进行了改进,于2016年提出。引入Darknet-19网络架构,使用更深的卷积层提取特征。使用锚框(anchor boxes)来预测不同尺度的边界框。引入多尺度训练和预测,在不同层级上进行目标检测。使用Batch Normalization和卷积层的细微改进,提高了准确率。

YOLOv3是YOLO系列的第三个版本,于2018年提出。使用更强大的Darknet-53作为基础网络,提取更丰富的特征。通过多个尺度的特征图来检测不同大小的目标。引入了FPN(Feature Pyramid Network)来更好地处理不同尺度的特征。使用更细粒度的锚框设置来提高边界框的精度。添加了辅助分类器来预测小目标。准确率相对于YOLOv2有所提升,但速度稍慢。

YOLOv4是YOLO系列的第四个版本,于2020年提出。引入了一系列的技术改进和创新,包括CSPDarknet53、SAM(Spatial Attention Module)、PANet(Path Aggregation Network)等。使用更大的网络和更多的特征层来提高检测性能。优化了锚框的设置和预测方式。引入了YOLOv4-tiny版本,以提供更快的推理速度。在准确率和速度上都有明显的提升。

YOLOv5[20,21]是YOLO系列的第五个版本,于2020年提出。采用了不同的网络结构,使用轻量级的模型设计。引入了自动化模型构建技术,通过AutoML实现网络结构,它具有以下特点:

高精度:YOLOv5在保持实时性能的同时,能够实现高精度的目标检测,尤其在小目标检测方面表现突出。

高效性:YOLOv5采用了一系列优化策略,使得算法在运行速度和内存占用等方面得到了大幅优化,能够在不同的硬件设备上快速运行。

易用性:YOLOv5提供了用户友好的接口,使得用户可以轻松地使用预训练模型进行目标检测任务,也可以通过自己的数据集进行训练和优化。

使用YOLOv5来完成动物骨骼分析的依据在于,骨骼分析是一种目标检测任务,而YOLOv5正是一种高效准确的目标检测算法。在进行动物骨骼分析时,可以通过标注关键点来检测骨骼,然后利用YOLOv5进行目标检测,从而得到动物骨骼的位置和生长信息。这种方法不仅能够提高骨骼分析的准确性和效率,还能够应用到动物行为分析、医学影像分析等领域。

YOLO 系列算法经过几个版本的改进,在目标物体检测相关领域占据了主导地位。

可以看出yolov5足以胜任自动学习、自动检测动物骨骼的任务。

1.1.2.2Yolov5模型训练流程

(1)数据准备:收集并准备用于训练的图像和标签数据集。确保数据集包含目标物体的图像,并为每个目标物体提供相应的边界框标注。获取PNG格式图像后,使用在线标注网站(Make Sense)对鸡喙图像进行数据集的标注(详见1.1.1)

(2)标签格式转换:将标签数据转换为YOLOv5所需的格式。YOLOv5使用的标签格式是以文本文件形式存储的,每个文件对应一个图像,并且每一行包含一个目标物体的类别和边界框信息。每一行有五个部分,第一部分表示标签的数量,第二部分表示矩形框X轴中心坐标,第三部分表示Y轴中心坐标,第四部分表示标注框X轴方向边长占据的百分比,第五部分表示标注框Y轴方向边长占据的百分比(详见2.3.1)

(3)划分训练集和验证集:将准备好的数据集划分为训练集train和验证集val。大部分数据用于训练,小部分数据用于验证模型的性能。设置200张训练集数据,100张验证集数据。

训练集用于计算机进行照片训练,当训练完成一轮后会根据自己得到的模型去验证集进行验证,如果结果有差距,会进一步回到训练集继续进行训练,训练完成后会再次进行训练集的训练。不断重复上述过程,提高模型准确度。

配置训练参数:配置YOLOv5模型的参数,模型格式为yolov5s,输入图像大小640px × 640px,检测类别数量为1个, 批处理大小batch-size为2,训练轮数epochs为700轮,线程大小workers为8。

Weight:表示权重,表示训练开始的地方,如果从0开始训练,则weight后面填   空。

Data:表示将要告诉计算机训练数据所在的位置,这里我们将标记的照片存放在       'data/ChickenMouse.yaml'文件目录下面。

Epochs:表示训练的轮数,训练轮数越多,生成的模型更为准确。

Batch-Size:表示一次性批量处理数据的数量,数值越大,训练时间越短,因此   该步骤会对计算机的硬件配置有较高的要求。

进行训练:使用准备好的训练集和配置好的参数,对YOLOv5模型进行训练。训练过程通常涉及到迭代优化算法(如随机梯度下降)以及损失函数(如YOLOv5自定义的损失函数)的使用。

下图表示开始训练,首先显示我们配置好的信息

我们要训练299轮,训练完毕后模型结果存放在runs/train/exp/weights中。

模型评估:在训练过程中,定期使用验证集评估模型的性能。可以计算指标如精确率、召回率、平均精确率均值(mAP)等来衡量模型的准确性和召回率。

 

准确度是指所有被正确分类的物体数占总检测出的物体数的比例。即,检测出的物体中,正确分类的物体数占总数的比例。准确度越高,说明模型的分类能力越强。

召回率是指正确检测出的物体数占所有实际存在的物体数的比例。即,实际存在的物体中,被正确检测出的物体数占总数的比例。召回率越高,说明模型的检测能力越强。

随着训练轮数的增长,我们看到精确率与召回率不断地提高。

(7)模型调优:根据模型评估结果,对模型进行调优。可以尝试调整超参数、修改网络结构或采用其他技巧来改进模型性能。

(8)测试模型:在训练完成后,使用测试集对最终的模型性能进行评估。测试集是一个独立于训练和验证集的数据集,用于模拟模型在实际应用中的表现。

模型部署:将训练好的YOLOv5模型部署到目标环境中,并应用于实际的目标检测任务中。可以使用模型的推理功能对新的图像或视频进行目标检测。

随机选择一组06918进行测验。

导入成功,运行detect.py文件

运行失败,观察原因,发现是模型不存在。

看源码查找问题

我们在detect.py代码里面编写的模型是'runs/train/exp15/weights/last.pt'

中不存在'runs/train/exp15/weights/last.pt',我们将模型改为'runs/train/exp13/weights/best.pt'

再次执行代码

这次运行成功,文件存储到了runs\detect\exp3位置处

点击runs\detect\exp3查看结果

第三张图,有75%的几率确定这是鸡喙,并且有11.86%的黄色达到标准。

2结果

可见,该方法能够较为准确的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/167858
推荐阅读
相关标签
  

闽ICP备14008679号