深度学习完全攻略!(连载十:faster-RCNN模型理解)

这一节,我们写一写faster-RCNN.

在上一节中,我们看到,fast-rcnn还是需要有个region proposal的生成过程,这个很不OK。尤其是对处女座来说,很不友好。那么faster-rcnn就是为了解决这个问题而存在的。既然CNN那么牛,既然可以用大把的参数来解决问题,为什么还要做乱七八糟的额外处理呢。归根结底还是对神经网络的不了解。不多说,上内容。

第一部分 faster-rcnn原理

先上图,就用原文中的图吧。

相比于fast-rcnn, faster-rcnn最大的特点是去掉了额外的候选区域的生成算法。从输入到输出全部集成到神经网络中,这个就是传说中的RPN。哎呀,看着都舒服,强迫症治愈。

现在我画一张自己的理解图。

 

第二部分 faster-rcnn关键步骤说明

在第一部分的图2中,我们已经介绍了整个的faster-rcnn.现在对图中几个关键的地方做说明。

扫描二维码关注公众号,回复: 9069174 查看本文章

(1)为什么是n*5?n是总的ground truth box, 5表示box的位置、尺寸和类别组成的向量的个数。(x,y,w,h,cls)

(2)为什么是38*57*512?表示经过CNN网络之后单幅图像生成的特征图。

(3)为什么是19494*4?在生成anchor box的时候,对38*57图中的每个像素点,均生成9个anchor box,这9个anchor box的构成如下图所示。4表示anchor box的坐标和尺度构成的向量,(x,y,w,h)

 

(4)2000/300*5是指在train阶段,经过极大值抑制后(去除2000个boxes中那些重合度较高的box),会保留大概2000个boxes,而在测试的时候,大概有300个boxes.每个box包含位置、尺寸和类别信息。

(5)256*5?第四步的boxes经过sample,得到大概256个.(只取一部分。)

(6)256*7*7*512?7*7*512是指经过一系列的变换后,将每个候选区的特征图转为7*7*512大小,而总共有256个box用于预测。

(7)256C,256*4C?256C表示所属的类别,而256*4C表示每个类别的bounding box。

(8)38*57*(9*2),(9*4)?表示经过RPN网络之后,(9*20)表示前景还是背景,(9*4)表示box的坐标和尺寸。再迭代的时候,背景是不参与迭代的,因为没有目标存在。

在图2中还有一个大大的红色的框框,这个框框表示在实际使用的时候的流程。

 

我想,图2可以很明白的看出faster-rcnn是怎么工作的。只需要结合具体的代码,再理解一下就行。

下一节我们写一写SSD

本文已同步至公众号,方便交流。欢迎订阅。

发布了77 篇原创文章 · 获赞 150 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/Aoulun/article/details/95019011
今日推荐