目标检测问题定义
介绍
目标种类与数量问题:种类不同。种类越多,难度越大。数量越多(遮挡),难度越大。
目标尺度问题:同一种类的物体,也会有不同的尺度。尺度变化越大,目标检测的难度越大。尤其是在尺度非常小的时候。由于物体是运动的,所以尺度上也会变化。
一张图片,他的物体和数量都是不确定的,这就是目标检测的目的。位置一般是矩形框,在矩形框内,我们还要做目标分类。对于目标检测问题,我们用到的网络是多任务的网络,通常完成目标位置的定位和目标分类。
目标检测和图像分类、图像分割的区别
框上的数值,是置信度,当前检测框属于查找目标的概率值。我们通常会设定一个阈值,用于过滤分类概率低的目标。不同颜色的矩形框,表示不同的类别。
分类需要识别类别,检测还要识别出位置。目标分割,需要找到当前目标所占的区域。第3张图,是语义分割,第4章图,是实例分割。
目标检测问题方法
传统的手动设计特征,以及滑动窗口。设计特征往往很难设计,而且对于一些条件可能不适应或者不鲁邦,设计特征效率也是很低。另外滑动窗口提取目标框,流程也是非常耗时。 2012之后,利用深度学习卷积神经网络,在做目标检测,效果得到了很大的提升。一开始RCNN只是用神经网络用于特征的提取,后面当faster RCNN,彻底完成了端到端的网络。不需要在滑动窗口提取,而是通过RPN,来做候选框。Yolo是不需要候选框,而是直接用回归的方法,直接来找目标,他的速度非常的快,后面的精确度也随着Yolo的改进,得到了很大的提升。
传统目标检测
VJ:积分图特征+Adaboost分类起 HOG+SVM:主要用于行人检测 DPM:基于HOG的一种变种,DPM加入额外的策略,来提升精度,是除深度学习之外,最强的算法。在深度学习用到了一些DPM的概念,比如候选框。
深度学习目标检测
One-Stage:Yolo和SSD。 Two0-Stage:Faster-RCNN。先找出候选框,再做回归和分类。
2013-2018
传统 Vs 深度学习
深度学习往往通过不同的网络结构,来学习不同的特征。
传统目标检测综述
关于图像特征表示的一些方法,基于纹理,颜色,形状以及一些高层次语义的方法,这些方法是需要学习来找到的,比如抽取直方图特征或者纹理特征,HOG特征,这些稠密特征,通过PCA降维,或者LDA对特征进行空间的投影,对抽取的基本特征,来学习更鲁邦的特征出来。
传统的特征分类:低层特征、中层次特征(机器方法-特征挖掘-PCA-LDA)、高层次特征(语义特征)(将低、中层的特征,进一步挖掘)。 在传统目标检测方法中,主要集中低、中的特征。
对于候选区域提取的特征,进行分类判定。对于单类别目标检测,只需要判断窗口对象是否为要检测的目标即可。对于多分类问题,我们先看是否为背景,如果不是,再做多分类。
候选框可能存在重叠的情况,我们需要用NMS对于候选框进行合并,得到我们要检测的目标。
对于深度学习的目标检测方法,区别在于特征提取,变成CNN。区域提取,用RPN网络。(2-stages)
Viola-Jones
VJ:主要用于人脸检测。特征抽取采用Haar。 特征表示方式是直方图。包含不同种类的集成图特征。对于每一个像素点,我们会计算出一个值,这个值用白色区域减去黑色的区域,作为我们表示的一个值。
Edge表示相邻的像素点,进行差值。
HOG+SVM
行人的姿态,存在非常多的差异。所以行人的检测,存在一定的难度。 HOG特征,纹理特征的一种。HOG主要用于灰度图上。Gamma变化,就是对于值开平方根。计算每一点在x和y方向的梯度值,来计算梯度夹角。再将0-360,量化为若干个方向(18个方向,每个方向20度)。每个cell就是18维,相邻的4个cell组成block。通过组合,将特征归一化处理,让特征更加的鲁邦。
这里其实通过cell,可以看到一些yolo的影子。
DPM
DPM在进行特征检测,会基于HOG,但是比HOG处理的更加精细。HOG是计算梯度方向,所以是纹理特征的一种。对于方向特征,包括0-360度,我们成为有方向的梯度。如果是0-180,是无方向的梯度。
NMS 非极大值抑制
分数就是我们的框上面那个confidence,对于该类物体的置信度。 与最高的框,IOU大于阈值的框,删掉。完全不重叠,或者重叠很小的,被留下。然后重复。
soft-NMS不是直接删除,而是软抑制。是深度学习算法提出的一个小的技巧。
|