本文主要是介绍Objection Detection View,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从2001到2020年的 IOD
目前,目标检测可以根据以下5种技术难题进行课题研究:
多尺度检测(Multi-scale Detection)
边界框回归(Bounding Box Regression)
上下文启动(Context Priming)
非极大抑制(Non-Maximum Suppression)
困难负样本挖掘(Hard Negative Mining)
一、多尺度检测
多尺度检测从历史时间顺序可以划分为以下5种:
- 2014年以前:基于特征金字塔和滑动窗口的检测
这种基于范式或者混合的检测方法适用于PASCAL VOC,不适用于更多样化的数据集,例如MS-COCO。对于检测不同长宽比的目标,没有一种统一的多尺度方法。 - 2010-2015年间:基于目标候选的检测
基于目标候选的检测方法提出了一组与类无关的候选框,而该候选框可能包含任何目标。该方法通过一种统一的多尺度方法来检测不同长宽比的对象,避免对整个图像进行滑动窗口搜索。 - 2013-2016年间:基于深度回归的检测
基于深度回归的检测方法提出了直接利用深度学习特征预测边界框坐标,这种方法简单粗暴,需要更高的GPU计算性能。但是定位精确度不够,特别是对于小目标检测。 - 2015年以后:基于多参考的检测
基于多参考的检测方法提出了在图像的不同位置预先定义一组不同大小、宽高比的候选框,再根据这些候选框预测检测框。这是目前最流行的多尺度目标检测方法。 - 2016年以后:基于多分辨率的检测
作为另一种比较流行的多尺度目标检测方法,多分辨率检测提出了在网络的不同层检测不同尺度的目标。
二、边界框回归
边界框回归的目的是在初始候选(框)的基础上细化预测边界框的位置。按照历史时间可以划分为以下3种:
- 2008年以前:没有边界框回归
早期的检测方法通常直接使用滑动窗口(结合金字塔)作为目标检测结果,而不使用边界框回归。 - 2008年以后:从边界框到边界框
DPM首先在目标检测中使用边界框回归,这时的边界框回归还是作为一个单独的后处理块,是可选的。此时的边界框回归还只是基于候选框预测每个目标对应的边界框。DPM采用最小二乘损失函数作为其回归损失。 - 2013年以后:从特征到边界框
Faster RCNN在2015年被提出后,边界框不再作为单独的后处理块,而是与检测器集成,以端到端的方式进行训练。边界框回归已经演变为基于CNN特征预测边界框。通常采用smooth-L1函数或者平方根函数作为回归损失,它们对异常值的鲁棒性比使用最小二乘损失函数更强。
三、上下文启动
上下文启动一直被用来改进检测方法,其常用的3种方法如下:
- 局部上下文检测
局部上下文是指待检测的目标周边区域的视觉信息。例如利用包含面部轮廓提高人脸检测性能,通过加入少量的背景信息提高行人检测的准确性,通过扩大网络的接受域或者目标候选大小改进目标检测效果。 - 全局上下文检测
全局上下文是指待检测的整张图片对应的视觉信息。例如利用整个场景集成的组成元素对应的统计摘要作为目标检测的额外信息源,通过(》=)输入图像的接受域或者CNN特征的全局池化集成全局上下文,将全局上下文作为一种序列信息,并采用RNN学习该信息。 - 上下文交互
上下文交互是指通过视觉元素的约束或者依赖等交互关系来表达的信息。例如利用两个目标间的关系或者目标与场景间的依赖关系。
四、非极大抑制
非极大抑制主要是作为后处理步骤,去除重复的边界框。目前NMS主要有以下3种:
- 贪心选择
贪心选择是目前最流行且资历比较老的基于NMS的目标检测方法,其思想简单直观:对于一组重叠的待检测目标,检测分数最大的边界框是被选择,并根据预定义好的IOU阈值删除其对应的相邻框。根据贪心算法迭代执行以上步骤。不足之处:1. 得分最高的框可能并不是最适合的,2. 临近的目标可能被抑制,3. 不抑制假阳性。 - 边界框聚合
边界框聚合是将多个重叠的边界框组合或者聚类成一个最终的检测结果,优势在于充分考虑了目标间的关系和空间布局。 - 学习NMS
学习NMS是将NMS看作是一个过滤器,对所有原始检测结果进行重新评分,并采用端到端的方式将NMS训练成网络的一部分。适用于改善遮挡和密集目标检测。
五、困难负样本挖掘(HNM)
目标检测器本质上是一个不平衡的数据学习问题。按照历史时间顺序,HNM可以划分为以下3种:
- 2014年以前:Bootstrap
Bootstrap 是指一组训练技术,训练从一小部分背景样本开始,然后在训练过程中迭代地添加新的误分类背景,目的是减少对数百万个背景样本的训练计算。 - 2014-2016年: 没有HNM
随着计算机计算性能的不断提升,Bootstrap不再适用。例如RCNN和YOLO只在正负样本间平衡权重。 - 2016年以后:采用新的损失函数和Bootstrap
16年后,bootstrap被重新使用在基于深度学习的检测器中,通过重塑标准交叉熵损失函数使其更集中于困难的误分类例子上。
这篇关于Objection Detection View的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!