RCNN=R+CNN
定义:
R:Region Proposal(候选区域);
CNN:Convolutional Neural Network(卷积神经网络);
作用:
R:用于解决定位问题;
CNN:用于解决识别问题;

定位的问题的解决思路?

思路一:看作回归(Regression)问题

目的:预测出(x,y,w,h)四个参数的值,从而得出方框的位置。

深度学习 回归网络 cnn网络如何做回归问题_人工神经网络

步骤一:搭建一个识别图像的人工神经网络(CNN)解决识别问题;

深度学习 回归网络 cnn网络如何做回归问题_深度学习 回归网络_02


步骤二:改进CNN(在神经网络上加:“分类头”(classification)和“回归头(regression)”);

深度学习 回归网络 cnn网络如何做回归问题_人工神经网络_03


步骤三:Regression那个部分用欧氏距离损失(使用SGD训练);

步骤四:将两个头再拼接再一起来完成定位与识别的双重功能;

回归头(Regression)加在什么位置?
1:最后一个卷积层的后面(如:VGG);
2:最后一个全连接层的后面(如:R-CNN);

思路二:暴力取框

步骤一:取框(用各种大小的框来遍历整张图片);

深度学习 回归网络 cnn网络如何做回归问题_深度学习_04


步骤二:得分(将这些框输入到CNN中,输出这些框的得分以及这些框的位置(x,y,w,h));

深度学习 回归网络 cnn网络如何做回归问题_人工神经网络_05


步骤三:最优(取得分最高的框及其位置坐标 取得分最高的两框的交集框及其位置坐标);

深度学习 回归网络 cnn网络如何做回归问题_人工神经网络_06

优化:将全连接层改为卷积层
目的:提速

原来网络:

深度学习 回归网络 cnn网络如何做回归问题_人工神经网络_07

现在网络:

深度学习 回归网络 cnn网络如何做回归问题_全连接_08

RCNN:

深度学习 回归网络 cnn网络如何做回归问题_卷积_09

1:输入一张多目标图像,采用selective search算法提取约2000个建议框;

2:先在每个建议框周围加上16个像素值为建议框像素平均值的边框,再直接变形为227×227的大小(有问题);

3:先将所有建议框像素减去该建议框像素平均值后【预处理操作】,再依次将每个227×227的建议框输入AlexNet CNN网络获取4096维的特征【比以前的人工经验特征低两个数量级】,2000个建议框的CNN特征组合成2000×4096维矩阵;

4:将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘【20种分类,SVM是二分类器,则有20个SVM】,获得2000×20维矩阵表示每个建议框是某个物体类别的得分;

5:分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框;

6:分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box

注释:
1:非极大值抑制
应用情况:同一个目标被多个建议框包围;
作用:需要非极大值抑制操作去除得分较低的候选框以减少重叠框;
具体过程:
1:对2000 x 20维矩阵中每列按从大到小进行排序;
2:从每列最大的得分建议框开始,分别与该列后面的得分建议框进行IOU计算,若IOU>阈值,则剔除得分较小的建议框,否则认为图像中存在多个同一类物体;
3:从每列次大的得分建议框开始,重复步骤2;
4:重复步骤3直到遍历完该列所有的建议框;
5:遍历完2000 x 20维矩阵所有列,即所有物体种类都做一遍非极大值抑制;
6:最后剔除各个类别中剩余建议框得分少于该类别阈值的建议框;

例子:

深度学习 回归网络 cnn网络如何做回归问题_全连接_10

IOU交并比 计算是什么?

定义:IOU = (A∩B)/(A∪B)

目的:考察一个候选框和当前图像上所有标定框重叠面积最大的一个。若重叠比例大于设定阈值,则认为此候选框为标定的类别。否则,该候选框为背景。

图例:

深度学习 回归网络 cnn网络如何做回归问题_人工神经网络_11