RCNN、fast RCNN 和faster RCNN

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Leonis_v/article/details/79051786

RCNN、fast RCNN 和faster RCNN

R-CNN
R-CNN的目标是分析图像,并正确识别图像中主要对象,通过边界框标出对象的具体位置。

输入:图像
输出:图像中每个对象的边界框和标签
Step1:利用 selective search 算法找到大约2000个 region proposal
Step2: 利用CNN对每个 region proposal 提取上述区域的特征(即使这些区域大多是重叠的),通过SVM确定边框中的图像类别;
Step3:对每个分好类的 region proposal 做 bounding−box regression 纠正,应用LinearRegression,输出更紧密的边框坐标。

Fast R-CNN
R-CNN不足

单个图像的每个region proposal都需要CNN进行判断,每次判断大约需要2000次FP。
此网络必须单独训练三种不同的模型:提取图像特征的CNN网络,判断类别的分类器和缩小边框的回归模型,使得训练复杂
引入ROIPooling
最后一个卷积之后加了RoIPool层,然后使用池化操将所有RoI统一成一样大小。
概括:RCNN先找再卷积;Fast RCNN先卷积再找
优化损失函数
使用multi−taskloss做完训练时的损失函数,将bounding−box regression直接加入到CNN网络中训练。

整合单元模型
Fast R-CNN将CNN、Classifier和LR整合成一个单输入双输出的网络。具体而言在CNN输出层用softmax函数代替了SVM分类器,来输出对象类别;同时在CNN输出层,还加入了用来输出边界框坐标的线性回归层。这样单个网络就可以输出所需信息。

所以,这个过程可以理解为:
Step1: 利用 selective search 算法找到大约2000个 region proposal ;
Step2:原始图像一次卷积得到 feature map ;
Step3: 将原始图像和 feature map 进行映射,在 feature map 中找到: region proposal ,然后进行RoI Pooling,变成一样尺寸大小的,再输入 Fc ;
Step4:最后输入两个softmax:判定是否含有object、给出 bouding box的值。

整个模型的输入和输出分别为:

输入:带多个区域建议的图像。
输出:具有更紧密边界框的每个区域的对象类别。

Faster R-CNN
Fast R-CNN的不足
仍然依赖 selective search region proposal给出的结果,而寻找region proposal本身就是一个很大的开销。

出发点:
优化对单独运行选择性搜索算法的方式,重复利用多个region proposal中相同的CNN结果,几乎把边框生成过程的运算量降为0

提出Region Proposal Network(RPN)
其核心思想是使用卷积神经网络直接产生region proposal(主要是认为 feature map 中每一个像素点都是原图中一部分的映射得到的,所以直接根据 feature map 在原图中找到若干 region proposal )

Step1:对于原图进行一次CNN输出一张 feature map ,尺寸记为m∗m;
Step2:对于m∗m个点,在原图中找9个 anchor ,一共是m∗m∗9个;
Step3:上述 anchor 同样经过两个softmax(和fast r-cnn一样),取topN个结果返回

猜你喜欢

转载自blog.csdn.net/Leonis_v/article/details/79051786
今日推荐