近年来YOLO系列层出不穷,更新不断,已经到v7版本。因此不能简单用版本高低来评判一个系列的效果好坏,YOLOv1-v7不同版本各有特色,在不同场景,不同上下游环境,不同资源支持的情况下,如何从容选择使用哪个版本,甚至使用哪个特定部分,都需要我们对YOLOv1-v7有一个全面的认识。
故将YOLO系列每个版本都表示成下图中的五个部分,逐一进行解析,并将每个部分带入业务侧,竞赛侧,研究侧进行延伸思考,探索更多可能性。
干货篇
YOLOv2论文名以及论文地址:YOLO9000:Better,Faster,Stronger[3]
YOLOv2开源代码:YOLOv2-Darkent[4]
YOLOv3论文名以及论文地址:YOLOv3:AnIncrementalImprovement[5]
YOLOv3开源代码:YOLOv3-PyTorch[6]
YOLOv4论文名以及论文地址:YOLOv4:OptimalSpeedandAccuracyofObjectDetection[7]
YOLOv4开源代码:YOLOv4-Darkent[8]
YOLOv5论文名以及论文地址:无
YOLOv5开源代码:YOLOv5-PyTorch[9]
YOLOx论文名以及论文地址:YOLOX:ExceedingYOLOSeriesin2021[10]
YOLOx开源代码:YOLOx-PyTorch[11]
YOLOv6论文名以及论文地址:YOLOv6:ASingle-StageObjectDetectionFrameworkforIndustrialApplications[12]
YOLOv6开源代码:YOLOv6-PyTorch[13]
YOLOv7论文名以及论文地址:YOLOv7:Trainablebag-of-freebiessetsnewstate-of-the-artforreal-timeobjectdetectors[14]
YOLOv7开源代码:OfficialYOLOv7-PyTorch[15]
YOLO系列中的输入侧结构主要包含了输入图像,数据增强算法以及一些预处理操作。
输入侧可谓是通用性最强的一个部分,具备很强的向目标检测其他模型,图像分类,图像分割,目标跟踪等方向迁移应用的价值。
从业务侧,竞赛侧,研究侧等角度观察,输入侧结构也能在这些方面比较好的融入,从容。
YOLOv1的输入侧有着朴素的逻辑,做的最多的工作是调整输入图像的尺寸以支持对图像细粒度特征的挖掘与检测。
同样的,YOLO系列的grid逻辑(“分而治之”)也从输入侧开始展开,直到Head侧输出相应结果。
【延伸思考】
YOLOv2的输入侧在YOLOv1的基础上引入了多尺度训练(Multi-ScaleTraining),并且优化了预训练模型(HighResolutionClassifier)。
多尺度训练(Multi-ScaleTraining)的逻辑是模型每训练一定的Epoch,改变输入图片的尺寸,使得模型对不同的输入尺寸更鲁棒,能够从容地对不同尺寸的图像进行检测。
论文中使用32的倍数作为输入的尺寸,具体使用了320、352、384、416、448、480、512、544、576、608这10种尺寸。