mxnet中rcnn的理解整理

mxnet中rcnn的理解整理

faster R-cnn的主要解决的问题是实现接近实时的目标检测,而不是目标的识别。即检测图片中的一个候选框是否可以完整的框住一个物体在图片中所占有的范围。faster-rcnn在共享卷积网络参数的基础上实现了两个功能,一个是产出一系列针对图片的候选框,另一个是对候选框是否可以覆盖图片上的一个物体进行分类预测。

 

在数据的准备阶段分成3步骤(1)将图片所依赖的信息读入,每张图片所在的目录,图片上的物体及分类,物体在图片上的位置(像素级)(2)读入图片信息及原始的label数据,比如将图片载入成矩阵,获取图片上物体的分类和位置,(3)将(2)中的信息转换成神经网络可直接训练的数据,对网络的输入矩阵和label数据进行处理。

 

1. 预测值和label值的关联与对应

本节来详细说明一下,在faster R-cnn中卷积神经网络预测输出和label数据如何进行对应,然后作为各自损失函数的输入。

1.1 是否为物体分类

在经过vgg16卷积网络之后,图片较原始输入图片大小缩小了16倍。针对卷积之后的每一个矩阵元素为中心进行候选框的生成,每个元素生成3(scale)X3(ratio)=9个anchors,其中scale代表输出矩阵元素的平移范围,ratio代表矩形候选框的缩放大小。例如对于一副图片,经过网络处理之后生成一个14(宽)x16(高)的矩阵,为每一个元素生成9个anchor,针对每个anchor计算它和标记真实矩形框对于物体的覆盖比例(重合的部分/(两个矩形框的总面积-重合部分)),然后按照重合比例判断每个anchor是否应该被标记为0或者1或者-1(忽略计算)。最后将一副图的整个anchor矩阵在anchor维度上进行重新对排列(transpose),重排之前矩阵的组织方式是优先按照像素的方式组织,先是每个像素再是每个像素的anchor,重排之后变成了先是anchor的个数,在第一维度分成9个,然后再是矩阵的宽和高。这样就和卷积网络的输出进行了对应。

1.2 物体位置的回归

使用和1.1同样的方法进行位置的对齐,这里注意网络直接的预测值并不是物体的直接位置,是预测的anchor的位置和物体真实位置之间换算的权重。具体细节如下,在组织训练样本时,对于每个anchor可以计算它和图片上哪个物体的覆盖度最大,然后实用一种转化公司,计算anchor的位置和覆盖度最大的物体的位置之间的权重,网络训练的目的就是为了逼近这些权重。如果预测的权重足够可信,并且我们已经知道anchor的位置,这样通过这个变换我就就可以得到物体的大体可信的真实位置。当然这里对权重值的整体范围会有限制,不然网络的训练就很难收敛。

这是faster R-cnn的损失函数,第一项表示的是二分类的损失函数(loss损失),第二项是物体位置回归的损失函数,注意这里我们只计算label为1的损失函数,对于不是物体的矩形框的预测值不进行计算,使用smoothl1计算物体位置的损失函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值