常见的目标检测任务包含以下几种:
对于第二个和第三个任务,可以以某一个很小的方框依次扫描整个图,从每一个采集到的图像中,送到识别器中,看是否是想要的。然后把方框逐渐变大,再从头到尾扫描。
最巧妙的地方在特征提取器和积分图,只用加加减减就完成了特征提取。
比如第一个feature,3次加减法算白的,3次加减法算黑的,再用1次加减法算白减黑,共7次。
分类器构造:取一些人脸(6000张左右)和一些非人脸(7万张)作为训练样本。总共特征,也就是f有20万。
对每一个特征构造一个分类器,也就是20万个弱分类器,然后用AdaBoost组合这些弱分类器。
具体流程:
最能表征人脸的Haar特征:
第1个特征是,眼睛下面这一块减去眼睛的像素,说明这一块最能区别人脸和非人脸。第二个也差不多,第三个是面部中央减两边。
单目标检测:
主要问题:
主要有三篇层层递进的文章。
Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." CVPR. 2014.
Basic Ideas:
Main Problems:
流程图:
Region Proposals (Selective Search, SS)
给定一张图片,首先使用 Efficient Graph-BasedImage Segmentation 算法,将图片进行过分割 (Over-Segmentation)
如图所示,过分割后的每个region非常小,以此为基础,对相邻的region进行相似度判断并融合,形成不同尺度下的region。每个region对应一个bounding 。
Selective search,位置比较相近、纹理灰度等特征相似的划分为一个区域。2014年的这篇文章中,一幅图像给出2000个左右的region proposal。
Region Proposals
R-CNN问题:
Girshick, Ross. "Fast r-cnn." CVPR. 2015.
Basic Ideas:
Main Contributions:
Main Problems:
ROI Pooling
ROI pooling,对于不同大小的region proposal,在中间的某一层把它们归一化成统一的形状。也就是对整个图像做卷积,在后面的层中将其大大小小分开。
Fast R-CNN问题:现在生成selective search还是很慢,每张图片需要5s,
Ren, Shaoqing, et al. "Faster R-CNN: Towards real-time object detection with region proposal networks." NIPS. 2015.
Basic Ideas:
Main Contributions:
对于特征图某个固定点,ANCHOR 生成9个矩形,共有3种形状,长宽比为大约为:width:height = [1:1, 1:2, 2:1]三种,实际上通过anchors就引入了检测中常用到的多尺度方法。
把任意大小的输入图像reshape成800x600(即图2中的M=800,N=600)。再回头来看anchors的大小,anchors中长宽1:2中最大为352x704,长宽2:1中最大736x384,基本是cover了800x600的各个尺度和形状。
Faster R-CNN检测结果
运行时间对比
在PASCAL VOC上的性能对比
目标检测 – 以人脸检测为例
Zhang K, Zhang Z, Li Z, et al. Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks.
Multitask:
该网络主要是检测图中人脸,产生多个人脸候选框和回归向量,再用回归向量对候选窗口进行校准,最后通过非极大值抑制NMS来合并高度重叠的候选框。
该网络同样输出候选框置信度(根据置信度削减候选框数量)和回归向量,通过边界框回归和NMS精调候选框的位置。
比R-Net层又多了一层卷积层,处理结果更加精细,作用和R-Net层作用一样(削减框数量同时精调回归框)。再者,该层对人脸区域进行了更多的监督,最后输出5个人脸关键点坐标。
目标检测 – 语义分割
Long, Shelhamer and Darreli, Fully Convolutional Networks for Semantic Segmentation, CVPR 2015
全卷积网络完全对称,并且先训练降采样部分,然后固定前面,再训练升采样部分。
Average pooling
Max pooling
降采样中,最大池化时,需要记住最大值的位置。然后升采样中,把非最大值位置全赋0。
卷积层的上采样(Upsampling),也叫反卷积(Deconvolution)或 转置卷积(Transpose Convolution)
考虑如下一个卷积层,输入特征图4*4,卷积核3*3,步长1,卷积后获得特征图维度为2*2,卷积流程:
反卷积流程:
全卷积网络还可以用在边缘提取、视频场景人数估计上。