RCNN整理
简单概括
RCNN一共包含了三部分,目标是同时结合识别和分类两个任务。第一部分是Region proposal,从一张图片中提取出大约2000个类别独立的小窗口,注意这些小窗口的大小是不同的。第二步是用CNN做特征提取,5层卷积层加上两层全连接层。经过CNN,每个小窗口最后都得到一个长度为4096的特征向量。由于CNN结构决定了输入的尺寸也是固定的,所以小窗口需要被强行转换(warp)成适合CNN输入的尺寸(227 *227 *3)。最后一部分是分类器,每一种类别都有一个线性SVM,想识别哪个类别就用哪个分类器对提取的2000个特征向量做分类(猜测是one vs all)。此外,SVM对每个特征向量都进行了打分,如果窗口之间有包含关系或者重叠部分过多且同时检测到物体,则保留分数高的。
细节解释
Region Proposal
Region Proposal的目的是定位,重要程度等同于CNN。作者列出了多个region proposal的方法,最后选择了selective search,原因是为了能和之前也用了同种方法的文章对比detection的效果。
1. Selective Search的具体操作过程
目标是找到一系列可能包含物体的选框,采用了整合多个模型的方法以应对不同的物体表达方式,如颜色,轮廓,纹理,或光线明暗的影响。从一个像素开始合并周围最相似的点慢慢扩大范围,相似性用距离评估。
2. 什么是Selective Search的Fast mode
CNN
1. 正负例划分准则
IoU大于0.5判断为正例,小于为负例。
2. Fine-tuning: 根据新数据集更新权重
3. Bounding Box
由于proposal的选框位置不一定是最佳的位置,所以用回归的方法修正选框的位置,让IoU值更大,选框更接近真实的位置,从而提高准确率。利用了第五层池化层的参数作为输入参数,线性回归学习四个选框的位置参数(中心坐标两个,长宽两个)。目标参数是真实选框和proposal选框的偏差。
之所以选第五层池化层是因为作者分析了之后的两个全连接层参数没什么用,甚至还是反作用,所以认为第五层最能代表图片的真实特征。直觉上我的理解是,学习这层参数就相当于建立了目标物体的偏移量和选框偏移量的关系。
SVM
1. 如何训练每个类别的SVM
和ground-truth 重合为正例,IoU小于0.3为负例,介于0.3-1则忽略。
2. 如何对特征向量打分
3. 贪婪的非极大值抑制
选一个最大得分的框,找到和它重叠过多的框并删掉。重复以上操作。