文末留言获得论文打包下载地址
//
背景
//
传统方法
早期的目标检测算法大多是基于手工特征所构建的。传统目标检测算法的通病:
1)基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余;
2)手工设计的特征对于多样性的变化没有很好的鲁棒性。
主线:区域选择->特征提取->分类器
发展论述:对于Overfeat、R-CNN方法,只是利用卷积神经网络进行特征提取,并没有改变搜索框提取目标区域的策略,算法的在速度上仍存在瓶颈。
随着Fast-RCNN的提出,通过RPN网络来代替原始的滑动窗口策略,标志着基于深度学习的目标检测方法,彻底完成了端到端的过程。使得速度和性能得到了很大的提升。后来不用提取候选框的策略,采用直接回归目标框位置的策略,例如:YOLO、SSD网络,进一步提高了目标检测算法的速度。
//
//
从最早的OverFeat数起,到YOLO,SSD,RetinaNet,YOLOv2,CornerNet几种方法。
介绍了几种常见的backbone如VGG16,ResNet,DenseNet,ResNeXt,GoogleNet,Hourglass。 其中提到DenseNet时指出ResNet的缺点是捷径连接中,浅层的原始特征在像素级的操作上会丢失信息,不能很好利用所有的特征;所以DenseNet采用密集连接以及concat方式充分利用之前各层的特征信息。
事实证明是有效的,在较小的stage以及没有多尺度特征融合策略下提取的特征已经很丰富(但是全部的前向concat内存占用巨大)。
针对DenseNet的连接方式,在此基础上为了改进其信息组合过程中的大量冗余,提出了DPN(NIPS2017),相当于ResNet+DenseNet进行concat,既能组合新的特征,也能降低冗余。
Traditional Computer Vision Methods
传统方法基于低级特征如方向、边缘、色彩等,对于大的数据集不能很好地辅助表示学习,而且这个过程不能很好地嵌入到检测系统中进行统一的反馈学习和评价。虽然作者说这些方法很简单,但是实际上耗时未必就短。
Anchor-based Methods
常见的就是Faster RCNN提出的RPN为开山之作,后来陆续基于此工作进行改进。如DeRPN将anchor回归的四信息维度分解成两个线段信息(AAAI2019),更易回归(但是效果而言不算特别惊艳);DeepProposal(ICCV2015)从低分辨率特征图到高分辨率特征图路线预测proposal然后精炼;RefineDet(CVPR2018)将手工设计的anchor进行逐级精炼获得更好的候选区域;Cascade RCNN(CVPR2018)通过Iou阈值的match观察,通过iou阈值的筛选逐渐提高高质量proposal的比例;MetaAnchor(NIPS2018)尝试学习如何设计anchor,但是其自定义的基础anchor组仍是手工设计的(这一点和GA相似)。
Keypoints-based Methods
这里强行将基于关键点的检测器分为两类:corner-based 和center-based。前者直接预测一对角点,代表是CornerNet;后者预测特征图上每个位置的中心点出现的概率并在此基础上预测宽高,如FSAF;还有两种思路结合的方法,如CenterNet。
Other Methods
其他如AZNet(CVPR2016),通过将整张图片进行不断划分子区域,生成proposal,适用于物体稀疏的场景,实际效果对于一般检测不是特别好用。
//
Feature Representation Learning
//
左上所示。训练多尺度检测器进行不同尺度的检测,这样保留的图像信息最为全面,但是囿于巨大的计算消耗,一般不用。比较近的方法如SNIP使用不同样本训练独立的多尺度检测器,思路很简单并达到了不错的效果,但是这一点上有悖于严格的“通用性”。
左下图所示。如ION将不同层的特征通过RoIpooling进行裁剪融合,在预测中结合了多尺度的信息;类似的还有HyperNet,Multi-scale Location-aware Kernel Representation等。这种用的不多了,一般现在都是多尺度预测,即使不是也不怎么会这样跨层直接融合(如STDN这样)。
右上所示。最早是SSD中使用,后来还有MSCNN等使用,这种多尺度预测现在用的很多。作者还把RFBNet归到这里,RFBNet其实核心思想不是这个。
经典的就是FPN了,针对FPN的变体十分多,思路大同小异,结果而言没有特别值得关注的新的点。
上图:General framework for feature combination
Region Feature Encoding
主要就是RoIPooling这部分的内容。改进从Pooling到Warping然后是Align以及清华的那个PrRoipooling,减少量化误差。其他的变式如R-FCN的PSRoIPooling;Couplenet的整合pooling输出;可变性卷积的变形RoIPooling等。
Contextual Reasoning
物体的出现往往和一定的上下文具有关联性,这对于网络推理信息不足的场景更适用,如遮挡、小物体等。但是其实感觉现实世界背景的关联性没有那么强,比如人可以出现在很多很复杂的环境中,这和人脸检测的强结构关联不同。所以也有文献指出盲目加上下文效果变差。
Global context reasoning
学习整张图片的上下文信息,并通过这些上下文信息进行目标的推断。代表工作如ION,DeepId,改进版的Faster R-CNN。前两个都没看过,第三个是将全图embedding与区域特征concat以改善预测结果。
Region Context Reasoning
区域上下文推理只编码候选区域附近的上下文信息,即检测目标与其附近环境的关系。直接建模物体与其周围的关系是很难的,因为目标的周围环境具有很大的变化性,难以抽象和建模。相关工作有:
//
Learning Strategy
//
Training Stage
Imbalance Sampling:proposal的样本不平衡可分为:类别不平衡和难分程度不平衡。
主要是proposal的背景数远多于正样本。解决方法有不均衡采样,如Faster RCNN的1:3采样;SSD中提出困难样本采样策略,将难分proposal喂给网络更新参数。
Focal Loss,GHM,OHEM。
Localization Refinemen
这部分主要是对proposal的位置精修以便获得更准确的bbox。方法有:
Cascade Learning
级联学习其实出现地很早,并不是由Cascade RCNN先发明的。(CVPR2001)在人脸检测器中提出级联学习的思想。在早期将大量样本拒绝掉,把困难样本送到下一个stage;在不同层的不同尺度目标应用layer-wise cascade classifier(CVPR2016)。思想和之前类似,将多个分类器放在不同阶段的特征图,进行样本拒绝后送入后面;Cascade RCNN的多级回归。
Others
典型的对抗学习思想就是GAN。还有网络的对抗样本训练有助于提高网络的鲁棒性。
出发点是分类与检测任务不同,分类预训练模型可能对检测的初始化带来不好的对抗偏置(但是实际来看,预训练能解决很多问题,这个说法有点牵强)。
最早提出Training from Scratch的是DSOD,后来陆续有基于此的结构改进以便实现从头训练的更好收敛。包括Detnet就以这个为标准进行了比较。但是何恺明的Rethinking imagenet pre-training表示只要数据够大(10k),直接训练不逊色于fine-tune的,无关具体结构,这间接否定了一些这方面设计的工作。
两篇论文:Revisiting rcnn: On awakening the classification power of faster rcnn和Mimicking very efficient network for object detection
Testing Stage
Duplicate Removal:介绍NMS,soft-NMS,还有可学习的Learning NMS
Model Acceleration
主要是针对两阶段检测器耗时问题的解决。针对R-FCN的heavy位敏特征图,Light Head R-CNN进行简化取得不错的速度和性能的tradeoff;backbone方面有MobileNet深度可分离卷积加速特征提取;非线性计算部分有PVANet采用CReLU激活函数加速;还有一些离线加速方法,如模型压缩量化,剪枝等。
Others
图像金字塔的多尺度测试;数据增强。但是这些办法的问题都是时间耗费大。
//
应用
//
Face Detection
人脸检测和一般性检测的区别在于:1)人脸检测具有更大的尺度变化性、遮挡和模糊的情况;2)只有一个类别,具有很强的结构联系信息。代表工作部分:
Pedestrian Detection
人脸检测和一般性检测的区别在于:1)行人检测具有近乎固定的宽高比,但是尺度上仍有较大变化性;2)真实世界行人检测更容易面临密集人群、遮挡、模糊等问题。例如数据集CityPersons中,验证集有3157个行人标注,其中标注gt与另一个gt的重合IoU在0.1以上的占比为48.8%;IoU为0.3以上的有26.4%,可见遮挡和拥挤十分严重;3)由于行人所处的复杂环境,容易产生更多的困难负样本(如交通灯、邮筒等)。
传统方法中主流的是HOG+SVM,因为行人形态的特殊性,往往HOG描述子能够起到较好的效果;深度学习应用以后就都采用深度学习 的方法,主要推出的文章解决的也是尺度问题和样本不均衡问题,其中稍有特色的:
Others
商标检测,视频目标检测,关节检测,车辆检测等(不感兴趣略)
//
Detection Benchmarks
//
上图:Example of failure case of detection in high IoU threshold.
上图:Duplicate predictions are eliminated by NMS operation.
VOC
COCO
论文地址:https://arxiv.org/pdf/1908.03673.pdf