0. 总得来说~
这里几篇文章都是2D图像目标检测相关,这些文章的重点集中在小目标检测上,它们设计了很多结构来提高网络多尺度目标检测的性能。
但是对于小目标检测的问题,我看到知乎上的一个回答,结合实际应用,感觉说得很诚恳,很在理。
感觉2D目标检测,最重要的是对速度/准确率的选择和权衡,小目标多尺度检测的问题通过框架与实践来解决为上。所以模型压缩相关论文,框架比较相关论文,网络加速相关论文还是非常值得学习的!
放个精选链接:http://www.qbiao.com/30908.html
2D检测感觉快被玩透了,其他工作如:3D目标检测,跟踪算法,匹配算法,视频处理方法,机器学习解释与可视化(Model Interpretation & Debugging)等,倒是感觉更有趣一些
1. Speed/accuracy trade-offs for modern convolutional object detectors
参考博客:
http://blog.csdn.net/touch_dream/article/details/77488638
https://www.leiphone.com/news/201708/69tubrJUvdaAPw1Z.html
http://blog.csdn.net/he_is_all/article/details/56485921
这篇文章主要权衡了三种被称为“元结构”(meta-architectures)的主流detector—Faster R-CNN,R-FCN 和SSD之间的精确率与速度。
实验得出,在Faster R-CNN中,使用更少的proposals能够使系统的速度有显著提升,而且不会造成精确度上较多的损失,从而使得其与SSD、R-FCN等相比后更具竞争力。相比于Faster
R-CNN和R-FCN,SSD对于特征提取器的质量更为不敏感
- 特征提取器对精度的影响
物体尺寸:物体较大更好
图片尺寸:分辨率降低2%,精度明显下降
-
最快与最准:
最快的模型为低分辨率下MobileNet+SSD,精度最高网络为Inception Resnet v2 + 300 proposal Faster RCNN。速度精度权衡到最佳的模型为Resnet 101 + 100 proposal Faster RCNN和Resnet 101 + 300 proposal R-FCN。
2. YOLO9000:Better, Faster, Stronger
yolo-v2升级版之前已经总结过了
- darknet-19特征提取
- 卷积代替全连接层
- 其提出一个方法在目标检测数据集与图像分类数据集上联合训练,主要构建了一个视觉内容分层树结构WordTree
3. A-Fast-RCNN: Hard positive generation via adversary for object detection
参考链接:
http://www.sohu.com/a/133975039_465975
- 如何确定物体探测器能够应对被遮蔽、不同角度或变形的图像?目前的解决方法是使用数据驱动的策略,收集一个巨大的数据集——覆盖所有条件下物体的样子,并希望通过模型训练能够让分类器学会把它们识别为同一个物体。但是数据集真的能够覆盖所有的情况吗?一些遮蔽与变形非常罕见,几乎永远不会发生,而我们希望训练出的模型是能够应付所有情况的。
- 在本论文中,我们提出了一种新的解决方案。我们提出了一种对抗网络,可以自我生成遮蔽与变形例子。对抗的目标是生成物体探测器难以识别的例子。在我们的架构中,原识别器与它的对手共同进行学习。实验证明,我们的方法与 Fast-RCNN 相比,在 VOC07 上的 mAP 上的升幅为 2.3%,在 VOC2012 物体识别挑战中的 mAP 升幅为 2.6%。
-
ASDN
对池化层的特征图,生成掩膜,一个连续的heatmap,[0,1],droupout特征值,目的是产生更高的loss
-
ASTN
通过LocalisationNetwork生成平面变换参数(这里主要是旋转),来模拟目标形变
4. Feature Pyramid Networks for Object Detection
参考:http://m.blog.csdn.net/baidu_32173921/article/details/74485956
- 其主要考虑利用深度卷积网络固有的多尺度金字塔形层次结构来构建特征金字塔,创建了一个具有横向连接的自顶向下架构用于在所有尺度上构建高级语义特征图,FPN作为通用特征提取器表现优异,论文研究表明,尽管深度ConvNets具有强大的表达能力和对尺度变化内在的鲁棒性,使用金字塔表示来明确地解决多尺度问题仍然是重要的
(a) 图像先建立金字塔再检测 (b) 逐层卷积,单一尺度检测 (c) SSD多尺度检测 (d) 本文反向建立特征图金字塔,多尺度检测
-
构建方式:
Res-Net为例,作者使用了每个阶段的最后一个残差结构的特征激活输出。将这些残差模块输出表示为{C2, C3, C4, C5},对应于conv2,conv3,conv4和conv5的输出,并且注意它们相对于输入图像具有{4, 8, 16, 32}下采样。C5先2倍上采样,得到和C4同样尺寸的特征图,C4做1×1卷积得到和C5一样的通道数,饭后特征值相加
5. RON: Reverse Connection with Objectness Prior Networks for Object Detection
参考:http://blog.csdn.net/linolzhang/article/details/75137050
出发点是如何结合基于区域的方法(FasterRCNN)和区域无关的方法(SSD)。
在全卷积框架下,RON主要解决两个问题:(a)多尺度目标定位(b)负样本挖掘。为解决a,设计了反向连接,能够让网络在CNN多个尺度下进行检测。为解决b,使用目标先验知识,有效减少目标搜索空间。我们把反向连接,目标先验,以及目标检测通过多任务损失函数结合在一起。这样一来,RON就能从不同尺度的特征下直接预测最终的检测结果。
在三个数据集上进行实验(VOC2007,2012, COCO),RON效果还不错。当使用VGG16和低分辨率的图片(384x384)作为输入时,voc2007的mAP达到81.3%,voc2012达到80.7%。当数据集变大且目标变得很难检测时,RON的优势就体现出来了。测试时占用1.5G显存,15fps,比fasterRCNN快3倍。
-
架构:
基础框架为 VGG16,将其中的 FC6,FC7 替换为卷积层,并通过 2*2的卷积核(stride=2)将 FC7 的分辨率减半,FC8 未使用。特征图尺寸(基于 input 的缩放比例)分别为:1/8 (conv 4_3), 1/16 (conv 5_3), 1/32 (conv 6) , 1/64 (conv 7)。
-
Objectness Prior(目标先验)
对应上一节提出的 参考框(default boxes),只有很少一部分框包含目标,其余大部分都是无效的背景,Region-Based 方法能够通过预计算来解决这个问题,有效避免每个 Region 带来的重复计算。作者提出的方法与之不同:
用一个3x3x2的卷积 加 一个 Softmax 来表示每个 Box 里面是否存在目标。
PS:与 RPN 的区别在于这里只有一个 2位的 Score(目标Score,背景Score),没有位置偏移
-
Combining Objectness Prior with Detection(结合目标先验和检测)
前向传播时,网络首先产生目标先验,并进行类别检测
反向传播时,网络首先会产生目标先验,然后对于检测,只会在 Objectness 得分大于某个阈值的区域内进行目标检测(分类+位置偏移参数)
- 实验结果
COCO:80k train, 40k validate, 20k test. IoU from 0.5 to 0.95.
6. Accurate Single Stage Detector Using Recurrent Rolling Convolution
参考:
http://blog.csdn.net/hk121/article/details/71408200
http://m.blog.csdn.net/hk121/article/details/71969061
http://blog.csdn.net/xiaofei0801/article/details/77265261
其提出一个新型端到端训练目标检测网络,在多尺度特征图引入Recurrent Rolling Convolution结构创建“deep in context”的分类器和回归器,其主要也是考虑“top-down/bottom-up”的特征集成。
本文直观的理解就是对SSD 自动寻找合适 contextual information 来提升目标检测性能。主要贡献为:第一,用one-stage检测框架,端到端训练,到达很高的检测精度(定位精度);第二,检测的关键在于将予以信息通过 Recurrent Rolling Convolution提供给 bounding box regression
-
指出SSD对小目标检测的缺点:
SSD heavily relies on a strong assumption to perform well
这个强假设就是 每一层特征 对于检测目标是足够复杂的 ,包含的信息是够用的。
every Φ, by itself, has to be sophisticated enough to support the detection and the accurate localization of the objects of interest
这里的 sophistication 满足一下三点:- 1)特征的尺寸足够大,包含足够的目标细节
- 2)将原始输入图像映射到当前特征的 特征提取函数足够的deep,这样可以得到 合适的 high level abstraction ,得到目标的抽象信息
- 3)特征层含有合适的contextual information,基于这些信息可以解决 overlapping objects, occluded objects, small objects, blur or saturated objects
网络结构
-
先前向传播一次,然后feature aggregation:
对每一层,它的上一层和下一层分别卷积后特征通道削减+concatation,算一次迭代,每个iteration如此迭代一次,iter间,参数共享
- 实验结果
7. Mimicking Very Efficient Network for Object Detection
当前目标检测器都需要从预训练ImageNet分类模型初始化,其相比从零开始训练能达到更好的效果,而预训练图像分类模型对于检测任务并非最优的,其主要考虑训练高效检测器而不需要ImageNet的预训练。其研究已有的一个满足检测表现的网络如何指导其他网络的训练,即利用一个检测网络监督另一个更高效的网络并保持准确率,其提出特征mimic技术。
- 本文的mimic算法,在使用本身ground-truth监督小模型训练的同时,加入大小模型之间feature map的监督,使得mimic的效果会更好
8. Perceptual Generative Adversarial Networks for Small Object Detection
参考:
http://blog.csdn.net/cv_family_z/article/details/77332721
http://blog.csdn.net/u011995719/article/details/76615649
-
小目标检测的一般方法:
- 多尺度输入:如提高输入图像的分辨率
- 多尺度特征表示:如残差通路,多尺度特征concatation等
- 多尺度检测:如SSD,MS-CNN,不同尺度特征图上检测
-
本文新思路:
利用GAN把小目标特征映射到和大目标特征相似的特征,这样网络只用学会检测大目标特征就好。
-
实现:
将物体分为大物体和小物体两个子集,感知分支先在大物体特征上训练,获得较高的检测率,然后使用小物体训练生成网络,两个子集对抗分支。交替训练生成网络和对抗分支,达到平衡点。
生成网学习大小目标间的残差,小目标conv1特征+生成网残差特征=super_resolved_feature≈大目标特征
可见大目标特征与生成网得到的超分辨率特征十分相似
discriminator部分:
- 对抗分支负责分辨是小目标还是大目标,训练过程要最大化分辨器对抗分支的犯错率
- 感知分支,最小损失提高检测准确率
实验结果