基于深度学习的图像目标检测(下)

2018 年 1 月 1 日 机器学习研究会

依然要感激如此美丽的封面图片。  在“基于深度学习的图像目标检测(上)”里面, 我们详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程。  这里, 我们介绍, 后续如何变得更快、更强!


前言


天下武功唯快不破! 


所以在如何让检测更快? 主要有两种思路

1.  把好的方法改进的更快!

前面我们提到了从R-CNN到Faster R-CNN主要的技术思想就是避免特征计算浪费。 所以要把ConvNet特征计算前移,只做一次计算。 而把区域操作后移。 我们也提到Faster R-CNN在RoI之后还有部分ConvNet的计算。 有没有可能把ROI之上的计算进一步前移? R-FCN(Region-based Fully Convolutional Networks) 基于这个思路,做到了,所以更快, 某种意义上,是Fatest R-CNN。 


R-FCN



2. 把快的方法,改进的更好!


前面我们谈到overfeat的效果一般, 但是overfeat基于滑动窗口和回归思想的速度很快。 从效果上来说, overfeat 的效果一般, 对于重叠情况很多不能识别的情况。 如何将基于回归的思想,做到逼近区域推荐的效果?YOLO把分而治之和IoU的思想集成进来了。 而SSD把多尺度Anchor Box的思想集成进来了。 



除了快还有什么?当然是做优做强


Faster R-NN有三大主要部件, RPN 做区域推荐, RoI Pooling类似特征Pyramid,改善极大极小重叠, 分类和Box回归的Log 加 Smoothed L1 损失, 针对定位修正。 如何要做优做强?


能否比RPN做的更优?

前面我们提到RPN能够达到Selective Search的效果, 那么假如还要更好, 怎么能够做到?AttractioNet利用了NMS(non-maxima suppression)效果。 AttentionNet利用了注意力集中的机制。 


能否比RoI Pooling做的更优?

前面我们提到RoI Pooling能够做到和HoG Pyramid和DPM空间限制类似的SPM的效果, 那么加入还要更好, 怎么能够做到? ION(Inside-Outside Net)提出了四方向上下文的思想, FPN提出了特征Pyramid网络。 


能否比RoI Pooling做的更强?

前面我们提到RoI Pooling是建立在RoI基础上的, 对应的区域推荐, 如何进一步对齐到像素点? Mask R-CNN提出了RoI Align的思想。 在误差计算中,除了分类, Box回归基础上再加入像素点Mask Branch距离的思想。 


那么, 什么是FCN(Fully Convolutional Networks), IoU, NMS, Weak Attention Narrowing, ION, FPN,  RoI Align 和 Mask Branch思想?理解了这些, 你对厦门这个图,就不再陌生!



下面, 开启下半场的路程!



R-FCN


前面我们提到, Faster R-CNN打通前后端成为端到端的模型的同时, ConvNet模型也换成了VGG-16的模型。  但是在GoogLeNet和ResNet网络结构上, 全连接FC层就只有一层了, 最后一层,为Softmax分类服务了。 



那么, 如果要把GoogLeNet和ResNet应用到Faster R-CNN中去,就面临一个现象,去掉最后一层FC层, 因为那是用来做分类的。  需要换到新的尾部网络, 能够兼容分类和Box回归。 


这样, 我们再来看RoI Pooling的使用, 那么RoI Pooling后面的FC层也要换成卷积层。  这样, 卷积层就被RoI Pooling层隔断了。 而且这种隔断使得RoI Pooling后面的ConvNet重复计算了。 


一个问题, 能不能直接把后面FCs变成ResNet之后的ConvNet直接丢弃?  不行, 这样的效果会打折扣, 为什么? 我们在Fast R-CNN继承SPPNet的SPM技术, 演绎出RoI Pooling的时候讲了,RoI Pooling只是相当于最细分的区域固定, 那么粗粒度的部分, 可以由后续的多层FCs来达到类似的效果。  如果去掉, 就少了金字塔结构了,或者少了深度了。 


那么, 如何把RoI后面的卷积计算也移到前面去?就是R-FCN解决的问题!一方面要保留空间限制, 另一方面要有一定特征层次。 R-FCN提出了Position-Sensitive RoI Pooling。



Position-Sensitive RoI Pooling的思想, 正式将位置并行起来, 是一种结合了空间信息的的注意力机制。 每个小的子框数据来源一个和特点位置绑定的ConvNet特征层。 


一旦和位置绑定了, 那么特征计算, 就从以前的中心点, 变成了一系列从上下左右的不同子框去看的特征图。 那么再把这些组合起来。 即暗含了不同空间信息。类别的说,就是你先上下左右的看这个山峰, 回头把看的拼接起来, 判断山峰有没有认错。 选择好不同位子的特征,再整合起来, 得到在不同位子点确认的特征, 再做Pooling,  通过Pooling进行投票。 


转自:AI2ML人工智能to机器学习


完整内容请点击“阅读原文”

登录查看更多
12

相关内容

R-CNN的全称是Region-CNN,它可以说是是第一个成功将深度学习应用到目标检测上的算法。传统的目标检测方法大多以图像识别为基础。 一般可以在图片上使用穷举法选出所所有物体可能出现的区域框,对这些区域框提取特征并使用图像识别方法分类, 得到所有分类成功的区域后,通过非极大值抑制(Non-maximumsuppression)输出结果。
深度学习目标检测方法及其主流框架综述
专知会员服务
143+阅读 · 2020年6月26日
基于深度学习的表面缺陷检测方法综述
专知会员服务
92+阅读 · 2020年5月31日
基于深度学习的手语识别综述
专知会员服务
45+阅读 · 2020年5月18日
基于深度学习的多标签生成研究进展
专知会员服务
140+阅读 · 2020年4月25日
3D目标检测进展综述
专知会员服务
186+阅读 · 2020年4月24日
专知会员服务
155+阅读 · 2020年4月21日
基于深度学习的视频目标检测综述
极市平台
15+阅读 · 2019年7月19日
最全综述 | 图像目标检测
计算机视觉life
30+阅读 · 2019年6月24日
干货 | 基于深度学习的目标检测算法综述
AI科技评论
18+阅读 · 2018年9月1日
博客 | 基于深度学习的目标检测算法综述(二)
AI研习社
11+阅读 · 2018年8月22日
干货 | 基于深度学习的目标检测算法综述(二)
AI科技评论
21+阅读 · 2018年8月20日
深度学习时代的目标检测算法
炼数成金订阅号
39+阅读 · 2018年3月19日
综述:深度学习时代的目标检测算法
极市平台
26+阅读 · 2018年3月17日
干货 | 深度学习时代的目标检测算法
AI科技评论
6+阅读 · 2018年3月6日
论文 | 基于CNN的目标检测算法
七月在线实验室
9+阅读 · 2017年12月7日
Arxiv
5+阅读 · 2019年4月8日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2017年11月14日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关资讯
基于深度学习的视频目标检测综述
极市平台
15+阅读 · 2019年7月19日
最全综述 | 图像目标检测
计算机视觉life
30+阅读 · 2019年6月24日
干货 | 基于深度学习的目标检测算法综述
AI科技评论
18+阅读 · 2018年9月1日
博客 | 基于深度学习的目标检测算法综述(二)
AI研习社
11+阅读 · 2018年8月22日
干货 | 基于深度学习的目标检测算法综述(二)
AI科技评论
21+阅读 · 2018年8月20日
深度学习时代的目标检测算法
炼数成金订阅号
39+阅读 · 2018年3月19日
综述:深度学习时代的目标检测算法
极市平台
26+阅读 · 2018年3月17日
干货 | 深度学习时代的目标检测算法
AI科技评论
6+阅读 · 2018年3月6日
论文 | 基于CNN的目标检测算法
七月在线实验室
9+阅读 · 2017年12月7日
Top
微信扫码咨询专知VIP会员