【论文精读】YOLO全系列

编程入门 行业动态 更新时间:2024-10-11 19:17:47

【论文精读】YOLO<a href=https://www.elefans.com/category/jswz/34/1725616.html style=全系列"/>

【论文精读】YOLO全系列

最近在搞深度学习,总结归纳一下看过的论文,也希望有不对的地方请大佬指正!!!!

原文链接YOLO9000:Better,Faster,Stronger

一、名词解释

针对文中的一些重复出现的名词进行通俗解释,帮助小白更好理解全文。

  • grid cell 每幅图像分成多个网格
  • bounding box 可以理解成预测框
  • ground truth 可以理解成我们自己在图像上打的标签,即真实值
  • anchor box 锚框,手动挑选或通过聚类的方法生成的多个大小不同的bounding box

二、Better

  • 作者认为,现在的模型都只能检测少量的类别,是由于受目标检测数据集的限制,大多数分类任务数据集都拥有大量的目标和标签,因此提出了一种检测+分类的模型YOLO9000,其能够在检测目标的同时对目标进行细分类。同时他还提出了YOLOv2,对先前的模型进行了改进,提高了准确率和运行速度。
  • 由于YOLOv1犯了大量的定位错误,且相较于使用region proposal方法的模型,YOLO的召回率很低,因此YOLOv2致力于提升召回率和定位准确率同时还要保证分类准确。
  • 使用BN层(Batch Normalization): BN层放在卷积层后,用于取代Dropout,更好的帮助模型正则化,避免过拟合,提高约2%mAP。(BN层原理博主以后会讲)
  • 应用高分辨率分类器: 将原本输入图像大小的224 * 224改为448 * 448,使得网络能够更好的处理高分辨率图像,提升大约4%mAP。
  • 使用anchor和聚类: YOLOv1没有使用anchor机制,因此box的大小是通过训练慢慢稳定下来的,这需要耗费大量时间去计算尝试得到box的形态。于是YOLOv2对其进行了改进,引入anchor机制,并通过K-means聚类的方法从标签中得到anchor的形状大小而非手动挑选。相较于其他使用anchor的模型,YOLOv2直接预测位置信息,而不是预测anchor的偏移量,对anchor的位置进行相对限制,不仅提升了召回率(anchor),还大大提升了定位准确率(预测位置)。
  • 直接预测坐标位置: 下图为预测位置公式示意图,tx、ty、tw、th为anchor的中心点和宽高的偏移量,bx、by、bw、bh为anchor的中心坐标和宽高,Cx,Cy为中心点所在grid cell的左上角坐标。YOLOv2直接预测中心点坐标b,并将偏移量t乘以sigmoid函数,使中心点被限制在grid cell中,宽高则不作限制处理。而传统的预测偏移量的方法不对偏移量作限制,可能会出现中心点不落在grid cell中的情况,使模型不稳定。

传统公式:(论文中的减号应为加号)
x = ( tx * wa ) + xa
y = ( ty * ha ) + ya
x,y为偏移后的中心坐标,tx,ty为中心点偏移量,xa,ya,wa,ha为anchor的中心点坐标和宽高。

  • 获取细粒度特征: YOLOv1将图像分为77个网格,而YOLOv2则将其分为1313个网格,并且在提取特征信息时,将26*26的浅层特征与深层特征拼接(如下图,图片引用自知乎@x-猪),可以改进检测小目标的性能。
  • 多尺度训练: YOLOv1的训练尺度是动态调整的,YOLOv2则将多个图像尺寸轮流训练,增强其鲁棒性。多尺度训练可以使得同一个网络能够预测不同分辨率的图像,并且在预测小图像时的运行速度更快。这使得YOLOv2在速度和准确率是有很好的的权衡。

三、Faster

  • 更换特征提取网络: 作者认为VGG-16有不必要的复杂,而Googlenet则过于简单准确率达不到要求,因此他自己写了Darknet-19(下图仅用于分类模型)作为YOLOv2和YOLO9000的特征提取网络。Darknet-19使用全局平均池化代替全连接层,使用BN层稳定训练,加速收敛并起到正则模型的作用。

四、stronger

  • 数据集分层结构: 受到WordTree的启发,将分类数据集ImageNet与目标检测数据集COCO以分层结构进行融合,融合效果如下图所示,将原本类与类之间默认互斥的关系中加入父子关系,且一个节点可以有多个通往根节点的路径,在预测时选择最短路径。当模型预测时无法分辨子类别时(即预测子类别所有置信度低于某个阈值时),模型会将其预测为父类别。例如在狗这个父类下存在柯基、金毛、边牧三个子类别,但进行预测的图像中包含柴犬,则模型会将其预测为狗,而不会预测为柯基、金毛、边牧这些子类别,因为柯基、金毛、边牧的置信度低于设置的阈值。
  • YOLO9000是基于YOLOv2设计的,但他使用了3个anchor而不像YOLOv2使用了5个,并且两者都能达到实时检测。

五、总结

这篇论文总共提出了两个模型,用于目标检测的YOLOv2和用于分类的YOLO9000。如下图,YOLOv2相较于YOLOv1主要进行改进:①BN层 ②高分辨率分类器 ③聚类Anchor ④Darknet-19 ⑤限制Anchor中心坐标 ⑥增加passthrough层 ⑦多尺度训练 ⑧高分辨率检测器

  • BN层:加速收敛、正则模型。
  • 高分辨率:能够更好的处理高分辨率的输入
  • 受空间约束的聚类Anchor:加速收敛,稳定模型
  • Darknet-19:减少运算量,加速训练
  • passthrough层:融合浅层特征,有利于小目标检测
  • 多尺度训练:能够适应多种分辨率图像,使模型在准确率和速度上有很好的平衡

其他YOLO论文精读:

YOLOv1论文精读
YOLOv3论文精读

更多推荐

【论文精读】YOLO全系列

本文发布于:2024-03-15 01:11:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1737777.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:全系列   论文   YOLO

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!