问答 | 关于目标检测进行框回归的问题

2018 年 10 月 4 日 AI研习社

这里是 AI 研习社,我们的问答版块已经正式推出了!欢迎大家来多多交流~

https://club.leiphone.com/page/question

(戳文末阅读原文直接进)

社长为你推荐来自 AI 研习社问答社区的精华问答。如有你也有问题,欢迎进社区提问。 

  话不多说,直接上题  

问:关于目标检测进行框回归的问题

目标检测中,要生成区域提议并进行回归,我看到的方法在生成区域以后都进了卷积层,也就是在特征空间上形成了映射,那也就是框回归都是在特征空间进行的, 我一直没弄明白全链接是怎么进行回归的,另外,如果自己不用全链接的话,我该如何生成区域提议以及进行回归的。


来自社友的回答

▼▼▼ 

@玛希•加西亚

全连接已经从目标检测中慢慢淡出了,在识别中全连接用于生成各个类别的score还保留在,主要是起到关联整体特征的作用,并不是题主可能认为的只输出单一的值。目标检测中全连接慢了就不再用了,而且目标检测的趋势是融合各个层的feature map来做,而不仅是只用最后一层。


回归的话,loss函数是拿预测值和真实物体位置求差值的smooth L1得到。预测值和真实物体位置会相对于anchor box做encode和decode。encode是将相对于图片的位置转换为相对于anchor box中心的位置,decode反之。


假设最后得到一个5*5的feature map,那么最终使用的feature map形态为5 * 5 * anchor number * (class, Lx, Ly, w, h)。Lx和Ly是预测值或真实物体位置相对于anchor box中心的偏移,w和h是相对于anchor box的大小。多想几遍就不会再弄晕了:你最后得到的结果是将图片划分为5*5的区域,每个区域有anchor number个预测值,每个值由(class, Lx, Ly, w, h)组成。


@muglelei

可以参考下TensorFlow的OD API中RFCN的这部分代码(从image_features到最后的box_encodings,注释自己加的不一定对):

   net = image_features
   with slim.arg_scope(self._conv_hyperparams):
     # depth: Target depth to reduce the input feature maps to.
     # 1×1卷积层,减少feature maps数量
     net = slim.conv2d(net, self._depth, [1, 1], scope='reduce_depth')
     
     # Location predictions. 位置预测部分
     
     # box_code_size: Size of encoding for each box. [default = 4]
     # k^2 × (C+1) x 4
     location_feature_map_depth = (self._num_spatial_bins[0] *
                                   self._num_spatial_bins[1] *
                                   self.num_classes *
                                   self._box_code_size)
     
     # 1×1卷积层,对每一类产生k^2张position-sensitive score maps
     # & append a sibling 4k^2-d conv layer for bounding box regression
     location_feature_map = slim.conv2d(net, location_feature_map_depth, [1, 1],
                                        activation_fn=None,
                                        scope='refined_locations')
     
     # position-sensitive RoI池化层
     box_encodings = ops.position_sensitive_crop_regions(
         location_feature_map,
         boxes=tf.reshape(proposal_boxes, [-1, self._box_code_size]),
         box_ind=get_box_indices(proposal_boxes),
         crop_size=self._crop_size,
         num_spatial_bins=self._num_spatial_bins,
         global_pool=True)
     
     # tf.squeeze去掉维度为1的维
     box_encodings = tf.squeeze(box_encodings, squeeze_dims=[1, 2])
     
     # 调整box编码的形状
     box_encodings = tf.reshape(box_encodings,
                                [batch_size * num_boxes, 1,
                                 self.num_classes, self._box_code_size])



欢迎点击“阅读原文”

或者移步 AI 研习社社区

我们会把你的问题对接给技术大牛

登录查看更多
0

相关内容

目标检测,也叫目标提取,是一种与计算机视觉和图像处理有关的计算机技术,用于检测数字图像和视频中特定类别的语义对象(例如人,建筑物或汽车)的实例。深入研究的对象检测领域包括面部检测和行人检测。 对象检测在计算机视觉的许多领域都有应用,包括图像检索和视频监视。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
深度学习目标检测方法及其主流框架综述
专知会员服务
148+阅读 · 2020年6月26日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
119+阅读 · 2020年6月26日
专知会员服务
55+阅读 · 2020年3月16日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
CVPR2019通用目标检测
极市平台
8+阅读 · 2019年8月6日
图像分类:常用分类网络结构(附论文下载)
极市平台
13+阅读 · 2019年4月8日
CVPR2019 | Stereo R-CNN 3D 目标检测
极市平台
27+阅读 · 2019年3月10日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
干货!关于目标检测你需要看的9篇论文
人工智能前沿讲习班
9+阅读 · 2018年12月18日
Faster R-CNN
数据挖掘入门与实战
4+阅读 · 2018年4月20日
Arxiv
4+阅读 · 2019年12月2日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
11+阅读 · 2019年4月15日
Arxiv
5+阅读 · 2019年4月8日
Few-shot Adaptive Faster R-CNN
Arxiv
3+阅读 · 2019年3月22日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
5+阅读 · 2016年12月29日
VIP会员
相关资讯
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
CVPR2019通用目标检测
极市平台
8+阅读 · 2019年8月6日
图像分类:常用分类网络结构(附论文下载)
极市平台
13+阅读 · 2019年4月8日
CVPR2019 | Stereo R-CNN 3D 目标检测
极市平台
27+阅读 · 2019年3月10日
CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法
极市平台
41+阅读 · 2019年3月8日
干货!关于目标检测你需要看的9篇论文
人工智能前沿讲习班
9+阅读 · 2018年12月18日
Faster R-CNN
数据挖掘入门与实战
4+阅读 · 2018年4月20日
相关论文
Arxiv
4+阅读 · 2019年12月2日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
11+阅读 · 2019年4月15日
Arxiv
5+阅读 · 2019年4月8日
Few-shot Adaptive Faster R-CNN
Arxiv
3+阅读 · 2019年3月22日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
5+阅读 · 2016年12月29日
Top
微信扫码咨询专知VIP会员