?
新疆时时彩开奖结果500,北京赛车3码稳赢公式,hg0088皇冠足球,竞彩能赚钱吗 凤凰彩票

Keras版faster-rcnn算法详解(RPN计算

时间:2017-09-27 05:56来源:未知 作者:admin 点击:
原标题:Keras版faster-rcnn算法详解(RPN计算) 雷锋网 AI科技评论按:本文首发于 接下来就是理解代码了,faster-rcnn的核心思想就是通过RPN替代过往的独立的步骤进行region proposal,实现完

  原标题:Keras版faster-rcnn算法详解(RPN计算) 雷锋网 AI科技评论按:本文首发于

  接下来就是理解代码了,faster-rcnn的核心思想就是通过RPN替代过往的独立的步骤进行region proposal,实现完全的end-to-end学习,从而对算法进行了提速。所以读懂RPN是理解faster-rcnn的第一步。下面的代码是如何得到用于训练RPN的ground truth的,完全理解之后也就理解RPN的原理了。

  计算过程比较长,但没有复杂的数学知识,我画了一个大概的流程图,在此基础上理解应该就容易多了。

  首先看一下参数,C是配置信息,img_data包含一张图片的路径,bbox坐标和对应的分类(可能一张图片有多组,即表示图片里包含多个对象)。后面是图片的原尺寸和resize之后的尺寸,用于求bbox坐标在resize之后图片上的坐标,img_length_calc_function是一个方法,基于我们的设置来从图片尺寸计算出经过网络之后特征图的尺寸。

  接下来读取了几个参数,downscale就是从图片到特征图的缩放倍数,anchor_size和anchor_ratios是我们初步选区大小的参数,比如3个size和3个ratios,可以组合成9种不同形状大小的选区。接下来通过img_.....function这个方法计算出了特征图的尺寸。

  下一步是几个变量初始化,可以先不看,后面用到的时候再看。因为我们的计算都是基于resize以后的图像的,所以接下来把bbox中的x1,x2,y1,y2分别通过缩放匹配到resize以后的图像。这里记做gta,尺寸为(num_of_bbox,4)。

  上面这一段计算了anchor的长宽,然后比较重要的就是把特征图的每一个点作为一个锚点,通过乘以downscale,映射到图片的实际尺寸,再结合anchor的尺寸,忽略掉超出图片范围的。一个个大小、比例不一的矩形选框就跃然纸上了。对这些选框进行遍历,对每个选框进行下面的计算:

  定义了两个变量,bbox_type和best_iou_for_loc,后面会用到。计算了anchor与gta的交集,比较简单,就不展开说了。然后就是如果交集大于best_iou_for_bbox[bbox_num]或者大于我们设定的阈值,就会去计算gta和anchor的中心点坐标,再通过中心点坐标和bbox坐标,计算出x,y,w,h四个值的梯度值(不知道这么理解对不对)。为什么要计算这个梯度呢?因为RPN计算出来的区域不一定是很准确的,从只有9个尺寸的anchor也可以推测出来,因此我们在预测时还会进行一次回归计算,而不是直接使用这个区域的坐标。

  前提是这个bbox的class不是bg,即背景。如果交集大于这个bbox的最佳值,则进行一系列更新。如果交集大于我们设定的阈值,则定义为一个positive的anchor,即存在与之重合度比较高的bbox,同时该bbox的num_anchors加1。如果交集刚好也大于best_iou_for_loc,则将best_regr设为当前的梯度值。这里best_iou_for_loc指的是该anchor下的最佳交集,我的理解就是一个anchor如果能匹配到1个以上的bbox为pos,那我们取best_iou_for_loc下的梯度,要知道这一步我们只要找到最佳的选区就行了,并不管选区里是哪个class。如果刚好处于最大和最小阈值之间,那我们不确定它是背景还是对象,将其定义为neutral,即中性。

  这里又出现了一个问题,很多bbox可能找不到心仪的anchor,那这些训练数据就没法利用了,因此我们用一个折中的办法来保证每个bbox至少有一个anchor与之对应。下面是具体的方法,比较简单,对于没有对应anchor的bbox,在中性anchor里挑最好的,当然前提是你不能跟我完全不相交,那就太过分了。。

  因为negtive的anchor肯定远多于postive的,因此在这里设定了regions数量的最大值,并对pos和neg的样本进行了均匀的取样。

  最后,得到了两个返回值y_rpn_cls,y_rpn_regr。分别用于确定anchor是否包含物体,和回归梯度。

  得到了region proposals,接下来另一个重要的思想就是ROI,可将不同shape的特征图转化为固定shape,送到全连接层进行最终的预测。等我学习完了再更新。由于自己也是学习过程,可能很多地方的理解有误差,欢迎指正~

(责任编辑:admin)
顶一?
(0)
0%
踩一?
(0)
0%
------分隔?----------------------------
?