本文是基于深度学习课程上的yolov4代码,使用自己标注的数据集进行训练,得到训练好的模型,使用测试图片对结果进行检测展示。
一、yolov4代码简易介绍
1.1.数据预处理
- 输入图片调整:将输入图片调整到模型所需的尺寸,且图片应该是jpg格式。
- 数据增强:为了提高模型的泛化能力,通常会对图片进行翻转、缩放、裁剪等操作。
1.2.骨干网络(Backbone)
- CSPDarknet53:YOLOv4使用CSPDarknet53作为骨干网络,该网络基于Darknet进行改进,具有更高的性能和效率。
- Mish激活函数:与ReLU相比,Mish激活函数能够带来更好的性能。
1.3.特征金字塔(FPN + PAN)
- 特征金字塔网络(FPN):通过上采样和横向连接,将低层次的特征和高层次的特征进行融合,以获取多尺度的特征信息。
- 路径聚合网络(PAN):在FPN的基础上,进一步融合了更多的低层次特征,以增强定位能力。
1.4.头部(Head)
- YOLO层:用于生成最终的检测结果,包括边界框、类别和置信度。
1.5.损失函数
- 边界框损失