R-CNN
object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要解决的问题就是物体在哪里以及是什么的整个流程问题。
- R-CNN(Selective Search + CNN + SVM)
- SPP-net(ROI Pooling)
- Fast R-CNN(Selective Search + CNN + ROI)
- Faster R-CNN(RPN + CNN + ROI)
- R-FCN
- YOLO/SSD/DenseBox 等方法;
- 最近出现的结合RNN算法的RRC detection;
- 结合DPM的Deformable CNN等
思路一:看做回归问题
看做回归问题,我们需要预测出(x,y,w,h)四个参数的值,从而得出方框的位置。
优化成这样:把全连接层改为卷积层,这样可以提提速。
物体检测的相关知识
Bounding Box(bbox)
bbox是包含物体的最小矩形,该物体应在最小矩形内部,如上图红色框蓝色框和绿色框。
物体检测中关于物体位置的信息输出是一组(x,y,w,h)数据,其中x,y代表着bbox的中心点(或者其他固定点,可自定义),对应的
w,h表示bbox的宽和高.一组(x,y,w,h)可以唯一的确定一个定位框。
Intersection over Union(IoU)
对于两个区域R和R′,则两个区域的重叠程度overlap计算如下:
O(R,R′)=|R∩R′|/|R∪R′|
非极大值抑制(Non-Maximum Suppression又称NMS)
非极大值抑制(NMS)可以看做是局部最大值的搜索问题,NMS是许多计算机视觉算法的部分。如何设计高效的NMS算法对许
多应用是十分关键的,例如视频跟踪、数据挖掘、3D重建、物体识别以及纹理分析等。
这里我们主要针对非极大值抑制在物体检测上的应用,非极大值抑制就是把不是极大值的抑制掉,在物体检测上,就是对一
个目标有多个标定框,使用极大值抑制算法滤掉多余的标定框。
下图一个小猫有多个红框标定-----------> 使用非极大值抑制算法后为右图
R-CNN
大牛们发明好多选定候选框Region Proposal的方法,比如Selective Search,EdgeBoxes,MCG,MSER。R-CNN主要用Selective Search
- 输入一张图片,用Selective Search 方法,在图片上提取接近2000个Region Proposal(提取物体区域),每一个Region Proposal都是一个矩形框,维度是(x,y,h,w).其中(x,y)矩形框的一个点,可以是中心点,也可以矩形框的四个顶点。(h,w)是矩形框的长度和宽度。
- 将Region Proposal矩形框的大小全部统一到统一尺度,如上图中黄色框中人脸图片,拓展到227*227。
- 取其中一个统一尺度后的Region Proposal,例如取人像这个框,将这个框放入预先选好的pre-train中,进行fine-tune。pre-train拿一个已经在其他相似数据集上训练好的模型作为初始模型,该模型所有层的参数都已训练好了,目前来说ImageNet是一个很大的分类数据集,它1000个分类涵盖了主要的物体类别,所以其前五层卷积层对图片的特征学习已经成熟了,所以说还是很权威的,因此用来当Pre-train的初始参数使用。fine-tune:迁移学习,也就是在初始模型上再训练。
如