faster-rcnn 笔记

anchor-based方法

faster rcnn是基于anchor的方法,包括后面的yolo-9000也是。数据集中bounding box数目是不确定的,使用anchor解决了这个问题。
从bounding box角度来说,
开始设置的9个anchor是RPN预测的bbox的先验,而RPN输出的bbox又作为了fast rcnn预测的bbox先验。frcnn获取anchor的方式是直接在feature map上每个点都设置3个尺寸,3个宽高比的anchor,而Yolo-9000是从整个数据集上聚类出来的,这点也是multibox的思路。
从计算loss的角度,
anchor-based方法不直接预测bbox的坐标和宽高,而是预测offset,因为offset的智斗比较小【0,1】之间,相当于做了规范化。检测模型的loss中回归量都做了规范化,参考Yolo v1,x,y是相对于grid,宽高是除以图片宽高再取根号。

RPN

rpn是全卷积网络,第一层是256核3*3的卷积层,第二层分别是2个1*1卷积,分别是4k,2k个filter,其中k是anchor个数,4k表示每个anchor的回归量x,y,w,h,2k表示分类概率,postive and negative(object and no-object),anchor关于pos or neg的标签是根据与GT box的IOU来定的,具体参数参考论文。
RPN的输出是一个H*W*(4k+2k)的特征图,H,w也是VGG最后一层feature map的高宽,每一个点都对应原图相应区域的bbox预测。因为卷积层是对图像的均匀下采样,所以相当于对原图每隔s个点就有k个bbox。
可以把faster rcnn看作预测bounding box的两个阶段,RPN是初步的回归了box 坐标,简单的分为两类,下一阶段fast rcnn再对box坐标进行逼近,而且分出更详细的类别。如果是单类目标,只是用RPN足以。

NMS

非极大值抑制,论文中介绍对于600*1000的图片,大约有20000个bbox,(VGG将从采样率16,600/16 * 1000/16~ 20000),去掉超出边界的剩余6000,nms后大约2000个。

fast rcnn

从RPN输出的bbox到采样出proposal的过程还没弄清楚,大概理解成这样。将RPN的bbox(坐标应该是original image的吧)映射到base conv network(VGG)的feature 马屁上,采样出proposal,然后使用ROI pooling将这些region pooling到fixed size,这样就可以送给后面的全连接层(所以说ROI pooling很好的解决了图片尺寸变化的问题)。有文章[2]说是先将proposals插值到固定大小,然后再pooling的,还待检验。在这里从每张图采样出的每个proposal就成了单独的样本,假设每batch N图R/N个region,那么样本数是R了.
fast rcnn在ROI pooling后是两层4096的全连接,最后一层是4个神经元用于reg的和21个(20类+背景类)用于分类的。
对于有cls和reg的multi-task,在实现的时候觉得还是把用于reg和cls的神经元分开比较好,cls后可以跟softmax。
[1] https://arxiv.org/abs/1506.01497
[2] https://tryolabs.com/blog/2018/01/18/faster-r-cnn-down-the-rabbit-hole-of-modern-object-detection/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值