CV之OD:计算机视觉领域目标检测任务代表性算法原理简介(R-CNN、Fast R-CNN、Faster R-CNN、R-FCN、FPN、SSD、YOLO~YOLOv3)、FPN、Focal Loss(RetinaNet)、目标检测算法的设计选择、经验教训和趋势
目录
《What do we learn from region based object detectors (Faster R-CNN, R-FCN, FPN)?》翻译与解读
基于区域的目标检测的代表性算法:R-CNN、Fast R-CNN、Faster R-CNN、R-FCN、FPN
单次触发目标检测器(如SSD、YOLO、YOLOv2、YOLOv3)、FPN和Focal Loss(RetinaNet)
相关论文
《What do we learn from region based object detectors (Faster R-CNN, R-FCN, FPN)?》翻译与解读
地址 |
|
时间 |
2018年3月28日 |
作者 |
Jonathan Hui |
计算机视觉领域目标检测任务代表性算法及其原理简介
基于区域的目标检测的代表性算法:R-CNN、Fast R-CNN、Faster R-CNN、R-FCN、FPN
Part01 |
文章主要总结和分享了R-CNN、Fast R-CNN、Faster R-CNN、R-FCN、FPN等区域分割式目标检测器的主要原理思想。 主要核心要点包括: >> 初期目标检测采用滑动窗口+CNN分类的方法,速度慢。后来采用区域提案+CNN来减少滑动窗口数量,提高效率,这就是R-CNN方法。 >> Fast R-CNN采用了共享特征提取网络,避免重复提取卷积特征,大幅提速。 >> Faster R-CNN提出了区域提案网络RPN,实现内部自动学习区域提案,而非依赖外部算法,再次提速。 >> R-FCN改进了Faster R-CNN,采用了位置感知分数图,实现了完全卷积处理,进一步提速。 >> FPN采用了经典的金字塔特征网络,充分利用多尺度特征提升识别效果。 这些方法通过共享特征提取、内置区域提案、完全卷积等手段,不断消除冗余计算,提升速度与效率。它们探讨了CNN在目标检测中的应用,阐明了特征重用、多尺度融合等重要设计原则,为单射检测器埋下伏笔。 总之,该文章很好地梳理了区域分割式目标检测器的发展轨迹,阐明了它们在 speed、accuracy 之间的权衡与设计抉择,给读者带来很深刻的学习收获。 |
单次触发目标检测器(如SSD、YOLO、YOLOv2、YOLOv3)、FPN和Focal Loss(RetinaNet)
Part02 |
Part02 这篇文章总结了单套预测型目标检测方法(SSD、YOLO)、特征金字塔网络(FPN)和聚焦损失(Focal Loss,应用在RetinaNet中)的几个关键点: >> SSD和YOLO属于单套预测模型,可以在一个步骤中直接从特征图预测边框和类别,实现实时检测。相比两步模型如Faster R-CNN,速度更快但准确度可能受影响。 >> SSD和YOLO预测时采用先验框的概念,每个位置针对不同先验框预测目标位置和类别,可以更好地拟合边框。 >> YOLOv2和YOLOv3提出了一些改进,如 Darknet-53backbone等,可以提升mAP和检测速度。 >> 小目标检测效果不佳是单套预测模型的一个痛点。FPN提出了底部瓶颈,利用多尺度特征图可以更好地检测不同规模的目标。 >> 分类不平衡问题会影响训练,Focal Loss通过加权交叉熵损失函数,可以弱化正确分类的损失函数值,从而强化学习难例。RetinaNet采用FPN和Focal Loss可以更好地检测小目标。 >> 这些工作从不同角度解决了实时目标检测中的Accuracy和Speed的权衡问题,为后续算法研究提供了很好的启发。FPN和Focal Loss等方法可以继续应用到其他检测框架中。 总之,这篇文章主要从SSD、YOLO、FPN和Focal Loss四个方面,总结了一些主流单套预测目标检测方法在小目标检测和分类不平衡问题上的一些痛点及相应的改进方案,给出了一个较全面和系统的理解。 |
目标检测的设计选择、经验教训和趋势
Part03 |
这篇文章总结了目标检测领域网络模型的设计选择、学习教训和趋势。 文章从早期基于滑动窗口的目标检测开始,分析了区域级检测器(如Faster R-CNN)和单截面检测器(如SSD、YOLO)的发展历程。 主要设计选择和学习教训包括: >> 不同网络使用不同的损失函数和边界框编码方法,如SSD使用边框宽高的开方来标准化误差。 >> 特征提取器的选择会影响速度和准确性,如ResNet和Inception推荐更重视准确性,MobileNet适用于移动端实时处理。 >> 非极大抑制只运行于CPU且常成为单个检测时间的主要部分。 >> 数据增强如裁剪可以识别不同尺度的目标。 >> 特征图步长选择会影响小目标检测。 >> 网络需要在速度和准确性之间找到平衡点。 >> 区域级检测器的提议数对性能影响较大。 >> 特征提取器的准确性会影响目标检测准确性。 >> 单个检测器对大目标准确,但对小目标差。 >> 高分辨率输入可以显著提高小目标检测效果。 >> 网络趋同于在实现上优化而非基本思路上区分。 >> 特征金字塔网络、复杂提取器和极限损失函数都可以提高准确性。 总体来说,随着算法不断发展,各类目标检测网络在精度和速度上已趋于平衡,实现细节的优化将成为未来研究的重点。 |