四期飞跃计划还剩最后一个名额, 联系小编, 获取你的专属算法工程师学习计划(联系小编 SIGAI_NO2)
SIGAI 特约作者
陈泰红
研究方向: 机器学习, 图像处理
目标检测是很多计算机视觉应用的基础, 比如实例分割, 人体关键点提取, 人脸识别等, 它结合了目标分类和定位两个任务. 现代大多数目标检测器的框架是 two-stage, 其中目标检测被定义为一个多任务学习问题: 1)区分前景物体框与背景并为它们分配适当的类别标签; 2)回归一组系数使得最大化检测框和目标框之间的交并比 (IoU) 或其它指标. 最后, 通过一个 NMS 过程移除冗余的边界框(对同一目标的重复检测).
本文首先综述近年来二维目标检测的优化方向, 之后介绍 CVPR2019 目标检测最新进展, 包括优化 IoU 的 GIoU, 优化 anchor 设计的 GA-RPN, 以及 single-stage detection 的 FSAF.
二维目标检测的优化方向
二维目标检测实现和优化方向包括 Backbone,IoU, 损失函数, NMS,anchor,one shot learning/zero shot learning 等.
基于目标检测的 Backbone 和特征提取
目标检测的 Backbone 一般基于 ImageNet 预训练的图像分类网络. 图像分类问题只关注分类和感受视野, 不用关注物体定位, 但是目标检测领域同时很关注空间信息. 如果下采样过多, 会导致最后的 feature map 很小, 小目标很容易漏掉. 很多基础架构网络, 比如 ResNet,Xception,DenseNet,FPN,DetNet,R-CNN,PANet, 等神经网络提取图像的上下文信息, 不断在特征提取方向优化.
基于优化的算法
包括 UnitBox,IoU.NET[1], 旷视科技 ECCV2018 有一篇论文是引入 IoU.NET, 其能预测检测到的边界框和它们对应的真实目标框之间的 IoU, 使得该网络能像其分类模块一样, 对检测框的定位精确程度有所掌握, 神经网络在 Backbone 引入 IoU.NET 做边界修订.
基于优化损失函数的方法
包括 L1 和 L2,Focal loss 等.
基于优化 NMS 的方法
包括 Soft-NMS,Softer-NMS, 以及 Relation Netwrok,ConvNMS,NMS Network,Yes.NET 等, 详细可参看本人一篇笔记《目标检测算法中检测框合并策略技术综述》[2].
基于 Anchor 生成的算法
比如 Sliding Windows,Region Proposal Network (RPN) ,CornerNet,meta-anchor 等.
one-shot learning 以及 zero shot learning
都属于迁移学习领域主要研究的是网络少样本精准分类问题, 单样本学习能力. CVPR2019 有一篇基于 one-shot learning[7], 值得关注.
GIoU
Motavation
在目标检测的评价体系中, 有一个参数叫做 IoU (Intersection over Union), 简单来讲就是模型产生的目标窗口和原来标记窗口的交叠率. 具体我们可以简单的理解为: 即检测结果 (DetectionResult) 与 Ground Truth 的交集比上它们的并集, 即为检测的准确率 IoU :
IoU 是目标检测领域最重要的评价尺度之一, 特性是对尺度不敏感, 主要判断检测框的重合程度. 但是对于 CNN 而言, 没有方向信息, 无法反馈神经网络的边界回归框应该如何调整. 既直接用 IoU 作为损失函数会出现两个问题:
如果两个框没有相交, 根据定义, IoU=0, 不能反映两者的距离大小(重合度). 同时因为 loss=0, 没有梯度回传, 无法进行学习训练.
2.IoU 无法精确的反映两者的重合度大小. 如图 1 所示, IoU 的变化无法反馈定位框的重合度和调整方向.
针对 IoU 上述两个缺点, 本文提出一个新的指标 generalized IoU[3](GIoU)如图 2 所示.
损失函数设计
GIoU 的定义很简单, 就是先计算两个框的最小闭包区域面积, 再计算 IoU, 再计算闭包区域中不属于两个框的区域占闭包区域的比重, 最后用 IoU 减去这个比重得到 GIoU.GIoU 有如下 5 个特点:
1. 与 IoU 相似, GIoU 也是一种距离度量, 满足损失函数的基本要求
2.GIoU 对 scale 不敏感
3.GIoU 是 IoU 的下界, 在两个框无线重合的情况下, IoU=GIoU
4.IoU 取值[0,1], 但 GIoU 有对称区间, 取值范围[-1,1]. 在两者重合的时候取最大值 1, 在两者无交集且无限远的时候取最小值 - 1, 因此 GIoU 是一个非常好的距离度量指标.
5. 与 IoU 只关注重叠区域不同, GIoU 不仅关注重叠区域, 还关注其他的非重合区域, 能更好的反映两者的重合度.
图 1 IoU 和 GIoU 评价对比
图 2 GIoU 计算过程
优缺点分析
GIoU loss 可以替换掉大多数目标检测算法中 bounding box regression, 本文选取了 Faster R-CNN,Mask R-CNN 和 YOLO v3 三个方法验证 GIoU loss 的效果. 可以看出 YOLOv3 在 COCO 数据集有明显优势, 但在其他模型下优势不明显, 作者也指出了 Faster rcnn 和 mask rcnn 效果不明显的原因是 anchor 很密, 比如 Faster rcnn 2k 个 Anchor Boxes, 各种类型覆盖应有尽有, 不仅仅是根据 IoU 和 NMS 挑选合适的检测框, 而且需要对检测框进行有方向的修订.
总体来说, 文章的 motivation 比较好, 指出用 L1,L2 作为 regression 损失函数的缺点, 以及用直接指标 IoU 作为损失函数的缺陷性, 提出新的 metric 来代替 L1,L2 损失函数, 从而提升 regression 效果, 想法简单粗暴, 但相比 state-of-art 没有明显的性能优势.
GA-RPN
GA-RPN[4]是香港中文大学, 商汤和亚马逊联合提出, 在 COCO Challenge 2018 检测任务的冠军方法中, 在极高的 baseline 上涨了 1 个点.
GA-RPN(Guided Anchoring)是一种新的 anchor 生成方法, 即通过图像特征来指导 anchor 的生成. 通过 CNN 预测 anchor 的位置和形状, 生成稀疏而且形状任意的 anchor, 并且设计 Feature Adaption 模块来修正特征图使之与 anchor 精确匹配. GA-RPN 相比 RPN 减少 90% 的 anchor, 并且提高 9.1% 的召回率, 将其用于不同的物体检测器 Fast R-CNN, Faster R-CNN and RetinaNet, 分别提高 检测 mAP 2.2%,2.7% ,1.2%.
Motavation
Anchor 是目标检测中的一个重要概念, 通常是人为设计的一组框, 作为分类 (classification) 和框回归 (bounding box regression) 的基准框. 基于无论是单阶段 (single-stage) 检测器还是两阶段 (two-stage) 检测器, 都广泛地使用了 anchor.
常见的生成 anchor 的方式是滑窗 (sliding Windows) 和 RPN(region proposal network),two-stage 基于 RPN 首先定义 k 个特定尺度 (scale) 和长宽比 (aspect ratio) 的 anchor,single-stage 使用 sliding Windows 在特征图上以一定的步长滑动. 这种方式在 Faster R-CNN,SSD,RetinaNet 等经典检测方法中被广泛使用.
基于 RPN 和 sliding Windows 的 anchor 生成方式有两个缺点:(1)anchor 的尺度和长宽比需要预先定义, 针对不同类型的检测任务需要调整这些超参数, 预先定义好的 anchor 形状不一定能满足极端大小或者长宽比悬殊的物体.(2)为了保证召回率, 需要生成密集的 anchor, 引入过多负样本同时影响模型的速率.
在一般拍摄图像中, 一般检测目标是不均匀分布且稀疏的. 检测目标的尺度和图像内容, 位置和几何形状相关. 基于图像的先验知识, 论文提出稀疏的 anchor 生成方式: 首先生成可能包含目标的子区域中心位置, 然后在图像不同位置确定尺度和长宽比, 既稀疏, 形状根据位置可变的 anchor.
论文提出了 anchor 的设计两个要求
alignment, 为了用卷积特征作为 anchor 的表示, anchor 的中心需要和特征图的像素中心比较好地对齐
consistency, 不同位置 (不同卷积层) 对应的 anchor 的形状和大小应该一致.
网络架构
CornerNet 模型预测目标边界框的左上角和右下角一对顶点, 既使用单一卷积模型生成热点图和连接矢量, 而论文提出的 GA-RPN, 直接预测 anchor 的位置和形状(长宽). 生成 anchor 过程可以分解为两个步骤, anchor 位置预测和形状预测.
如图 3 所示 GA-RPN, 其 Backbone 基于 FPN, 而 Guided anchoring 生成 anchor.Guided anchoring 包括两个并行的分支: anchor Generation 分别预测 anchor 位置和形状, 然后结合在一起得到 anchor.Feature Adaption 模块进行 anchor 特征的调整, 得到新的特征图提供之后的预测 (anchor 的分类和回归) 使用.
图 3 GA-RPN 网络架构
位置预测
位置预测分支的目标是预测那些区域应该作为中心点来生成 anchor, 是一个二分类问题, 预测是不是物体的中心.
FPN 特征图经过位置预测子网络生成位置得分图. 由 1x1 卷积和 sigmoid 激活函数组成. 更深的卷积网络可以实现更精确的位置信息, 但是 1x1 卷积实现效率和精确度的平衡. 通过位置得分图阈值的过滤, 可以舍弃 90% 的 anchor 同时保持较高的召回率.
我们将整个 feature map 的区域分为物体中心区域, 外围区域和忽略区域, 大概思路就是将 ground truth 框的中心一小块对应在 feature map 上的区域标为物体中心区域, 在训练的时候作为正样本, 其余区域按照离中心的距离标为忽略或者负样本. 通过位置预测, 我们可以筛选出一小部分区域作为 anchor 的候选中心点位置, 使得 anchor 数量大大降低. 在 inference 的时候, 预测完位置之后, 我们可以采用 masked conv 替代普通的 conv, 只在有 anchor 的地方进行计算, 可以进行加速.
形状预测
针对每个检测出的中心点, 设计一个最佳的 anchor box. 最佳 anchor box 的定义为: 与预测的候选中心点的邻近 ground truth box 产生最大 IOU 的 anchor box.
形状预测分支的目标是给定 anchor 中心点, 预测最佳的长和宽, 这是一个回归问题. 论文直接使用 IoU 作为监督, 来学习 w 和 h. 无法直接计算 w 和 h, 而计算 IoU 又是可导的操作, 所有使用基于 bounded IoU Loss 网络优化使得 IoU 最大.
作者认为, 直接预测 anchor box 的宽高的话, 范围太广不易学习, 故将宽高值使用指数及比例缩放 (ω =σ.s.edw,h=σ.s.hdw) 进行压缩, 将搜索范围从 [0,1000] 压缩至[-1,1].
Feature Adaption
由于每个位置的 anchor 形状不一样, 所以不能直接利用 F_I 进行 1x1 的卷积预测每个 anchor 的结果, 而应该对 feature map 进行 adaption, 也就是大一点的 anchor 对应的感受野应该大一点, 小一点的 anchor 对应的感受野应该小一点, 于是作者想到用可变形卷积的思想. 先对每个位置预测一个卷积的 offset(1x1 卷积, 输入为 shape prediction), 然后根据该 offset field 进行 3x3 的可变形卷积就完成了对 feature map 的 adaption. 通过这样的操作, 达到了让 feature 的有效范围和 anchor 形状更加接近的目的, 同一个 conv 的不同位置也可以代表不同形状大小的 anchor 了.
优缺点分析
优点:
1, 论文提出 anchor 设计的两个准则: alignment 和 consistency, 指导基于 anchor 优化的方向. 采用位置预测和形状预测两个分支, 不需要像 FPN 预先设置尺度和长宽比, 同时使用可变形卷积对 feature map 调整, 生成高质量低密度的 proposal, 提高 IoU 的阈值进行训练.
2, 提出了一种新的 anchor 策略, 用于产生稀疏的任意形状的 anchor;
3, 论文提出的 GA-RPN 可以完全替代 RPN, 在 Fast R-CNN, Faster R-CNN and RetinaNet 等模型基础上提高目标检测模型的精度.
缺点:
1, 论文假设图像中的目标是稀疏的. 如果是稠密图像, 比如车站或广场的拥挤人群, 检测效果有待检验.
2, 每一个点只产生一个 anchor, 那么对于那些目标中心重合, 即一个点需要负责检测两个目标, 似乎无法处理.
3, 采用 deformable 卷积会相对地降低速度, 同时根据 DCN v2 的分析, 在 deformable 卷积中加入可调节的机制可能会更好.
FSAF
论文来自于 CMU, 基于 single-stage 提出的 FSAF 模型[6], 在 COCO 目标检测数据集实现 single-stage state-of-the-art,44.6% mAP, 且推断延时没有增加.
Motivation
物体的多尺度信息一直是目标检测的难点和痛点. CNN 的低层的特征语义信息比较少, 但是目标位置准确; 高层的特征语义信息比较丰富, 但是目标位置比较粗略. Feature Pyramid Network(FPN)它利用多级的 feature map 去预测不同尺度大小的物体, 其中高层特征带有高级语义信息和较大的感受野, 适合检测大物体, 浅层特征带有低级的细节语义信息和较小的感受野, 适合检测小物体. FPN 逐步融合深层特和浅层特征, 使得逐步增加浅层的特征的高级语义信息来提高特征表达能力, 提升检测效果, 已经成为目标检测领域的标配.
但是 FPN 有一个隐藏条件: 如何选择合适 feature map 负责检测物体. 在 GA-RPN 提出两个原则:
alignment, 为了用卷积特征作为 anchor 的表示, anchor 的中心需要和特征图的像素中心比较好地对齐
2.consistency, 不同位置 (不同卷积层) 对应的 anchor 的形状和大小应该一致. two-stage 通过各种 pool(Faster R-CNN 使用 RoI pooling,Mask R-CNN 使用 RoIAlign)实现特征图的对齐, 而 single-stage 一般通过 anchor size 的方式选择合适的 anchor.
如图 4 所示, 60x60 大小的 car 和 50x50 大小的 car 被分在了不同 feature map,50x50 和 40x40 的被分在了同一级 feature map, 无法证明 feature level 选择的问题.
图 4 feature level 选择
论文提出的 FSAF 模块就是为了解决特征图选择和重叠 anchor 选择, 既 FSAF 模块让每个 anchor instance 自动的选择最合适的 feature.
网络架构
图 5 FSAF 模块网络架构图
文章提出的 FSAF 以 RetinaNet 为主要结构, 添加一个 FSAF 分支图 5 和原来的 class subnet,regression subnet 并行, 可以不改变原有结构的基础上实现. 在 class subnet 分支添加 3x3 卷积层(K 个滤波器), 得到 WxHxK 的特征图, 预测 K 类目标所属类别的概率. regression subnet 分支添加 3x3 卷积层(4 个滤波器), 得到 WxHx4 的特征图, 预测回归框的偏移量.
FSAF 还可以集成到其他 single-stage 模型中, 比如 SSD,DSSD 等.
FSAF 的设计就是为了达到自动选择最佳 Feature 的目的, 如图 6 所示, 最佳 Feature 是由各个 feature level 共同决定.
图 6 Online feature selection mechanism
在训练过程, 每个 anchor 通过 FPN 各卷积层, 经过 anchor-free 计算 focal loss 和 IoU loss, 最佳的 pyramid level 通过最小化 focal loss 和 IoU loss 实现.
在推断时, 直接选择高置信度的特征金字塔的 level 即可实现.
论文提出的 FSAF 模型在 COCO 数据集实现 single-stage state-of-the-art,44.6% mAP, 且推断时延没有增加, 详细实验数据可参看原论文.
优缺点分析
1, 论文提出的 anchor-free, 是说不在根据 anchor size 提取特征, 而是根据 FSAF 模块自动选择合适的 feature, 既 anchor (instance) size 成为了一个无关的变量. 不是说不在使用 anchor 的方式.
2,FSAF 可以集成到其他 single-stage 模型中, 比如 SSD,DSSD 等.
以上仅为个人阅读论文后的理解, 总结和思考. 观点难免偏差, 望读者以怀疑批判态度阅读, 欢迎交流指正.
参考文献
[1]B. Jiang, R. Luo, J. Mao, T. Xiao, and Y. Jiang. Acquisition of localization confidence for accurate object detection.In Proceedings, European Conference on Computer Vision (ECCV) workshops, 2018.
[2]目标检测算法中检测框合并策略技术综述. https://zhuanlan.zhihu.com/p/48169867
[3]Hamid Rezatofighi,Nathan Tsoi1 JunYoung Gwak, Amir Sadeghian, Ian Reid, Silvio Savarese. Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[4]Jiaqi Wang, Kai Chen,Shuo Yang, Chen Change Loy,Dahua Lin. Region Proposal by Guided Anchoring. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[5]CornerNet: 目标检测算法新思路. https://zhuanlan.zhihu.com/p/41825737
[6]Chenchen Zhu,Yihui He,Marios Savvides.Feature Selective Anchor-Free Module for Single-Shot Object Detection. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[7]Leonid Karlinsky, Joseph Shtok, Sivan Harary.RepMet: Representative-based metric learning for classification and few-shot object detection. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
[8]Peiliang Li, Xiaozhi Chen, Shaojie Shen. Stereo R-CNN based 3D Object Detection for Autonomous Driving. In Proc. of the IEEE Conference on Computer Vision andPattern Recognition (CVPR), 2019.
本文为 SIGAI 原创
来源: https://www.qcloud.com/developer/article/1404879