YOLO从第一次被提出到今天经历了非常久的发展,不断地对算法中存在的问题进行改进,目前YOLO算法已经应用于非常多的工业场景,yolov3和yolov5是yolo系列算法中的两个版本yolov5在yolov3基础上进行了两个版本的迭代,二者的主要区别有以下几点:
- V5在输入端使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放操作;
- V5在主干网络部分使用了:Focus结构与CSP结构;
- V5在neck网络部分添加了FPN+PAN结构;
- V5修改损失函数为GIOU_Loss以及预测框筛选的DIOU_nms。
yolov3
yolov3是yolo原作者的最后一个迭代版本,v2的基础上进行了小幅度的改动,主要有以下几个方面:
- 引入了FPN,使模型可以实现多尺度预测;
- 分类网络中添加了残差结构,提高了分类网络的性能;
- 分类器不再使用softmax,对多标签分类的支持更好了;
v3更多的是在v2基础上做了一些工程化的改进,核心思想与v2类似。
yolov4
yolov4并没有对前面存在的问题进行针对性改进,而是对视觉领域的各种图像处理与检测技术进行融合,吸收各处理方法的优点,题冲了一个超高检测速度的yolo模型。
主要的贡献有如下几点:
- 提出了一种高效而强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 Ti GPU 训练超快速和准确的目标检测器;
- 改进了SOTA的方法,使它们更有效,更适合单GPU训练;
- 将目前主流的目标检测器框架进行拆分:input、backbone、neck 和 head,使模型的研究变得模块化。
其实第三点贡献非常重要,模块化的网络使的研究者和应用者可以灵活的进行调整,例如可以在移动设备如手机中运行的目标检测模型MobileNet就是将backbone替换为了更轻量的网络,在检测速度和检测精度上做了妥协。
yolov5
该算法在YOLOv4的基础上添加了一些新的改进思路,使得其速度与精度都得到了极大的性能提升,具体包括:
- input:Mosaic数据增强、自适应锚框计算、自适应图片缩放操作;
- backbone:Focus结构与CSP结构;
- neck:FPN+PAN结构;
- head:修改损失函数为GIOU_Loss以及预测框筛选的DIOU_nms。
总结
通过对v3-v5三个版本的改进介绍,可以看到,这几个版本的更迭主要在工程化应用上进行了改进,而v5又再一次对backbone和neck部分进行了一定的改进,进一步提高了yolo算法的性能。