(二十七)论文阅读 | 目标检测之MAL
简介
图1:论文原文
该论文是发表在CVPR2020{\rm CVPR\ 2020}CVPR 2020上的一篇关于目标检测的论文,针对以往目标检测算法在分类和回归时都是使用的同一组anchor{\rm anchor}anchor,文章提出一种在分类和回归阶段动态采样Anchor{\rm Anchor}Anchor的思路。文章将其定义为多anchor{\rm anchor}anchor学习,在每一次迭代中选择最优Anchor{\rm Anchor}Anchor来更新模型,然后使用该模型去选择下一次迭代所使用的Anchor{\rm Anchor}Anchor。如此反复下去直到得到最优的Anchor{\rm Anchor}Anchor和最优模型。论文原文 源码
0. Abstract
在基于深度学习的目标检测算法中,分类器和回归器往往通过同一组Anchor{\rm Anchor}Anchor优化,作者由于分类和回归的任务性质不相同,这种做法会降低模型整体的性能。论文提出一种多实例学习的方法MAL{\rm MAL}MAL,通过在迭代过程选择不同的Anchor{\rm Anchor}Anchor来共同优化分类器和回归器。作者基于RetinaNet{\rm RetinaNet}RetinaNet模型,在MSCOCO{\rm MS\ COCO}MS COCO数据集上达到了SOTA{\rm SOTA}SOTA。
论文贡献:(一)提出的MAL{\rm MAL}MAL通过动态地评估和选择Anchor{\rm Anchor}Anchor来共同优化分类器和回归器;(二)提出Anchor{\rm Anchor}Anchor抑制策略避免模型陷入局部最优解;(三)MAL{\rm MAL}MAL达到了SOTA{\rm SOTA}SOTA。
1. Introduction
近来,基于深度学习的目标检测算法将分类和定位整合,从而可以共享卷积特征,通常使用总Loss{\rm Loss}Loss完成分器和回归器的优化。通常,为了应对图像目标的多样性,算法往往在图像上铺设足够多的Anchor{\rm Anchor}Anchor,以期充分覆盖图像中的目标。但是,通过一组固定的手工设定的Anchor{\rm Anchor}Anchor来共同优化分类器和回归器会降低模型的整体性能。如,IoU{\rm IoU}IoU往往作为正负Anchor{\rm Anchor}Anchor采样的唯一标准,而这时如果没有置信度的约束的话,就会出现以下情况:
图2:Baseline和MAL
如上图(a){\rm (a)}(a)是没有使用MAL{\rm MAL}MAL的结果。在第一幅图中存在两个候选框,第一个黄色框的置信度较低,而和真实框的交并比较大;第二个红色框的置信度较高,而和真实框的交并比较小。直观上,我们认为应该选择黄色框作为最终的检测结果,但经由NMS{\rm NMS}NMS处理产生的最终的检测结果为红色框。图(b){\rm (b)}(b)是MAL{\rm MAL}MAL处理后得到的正确的检测结果。
论文提出的MAL{\rm MAL}MAL是一种自动学习Anchor{\rm Anchor}Anchor的方法。在训练阶段,基于Anchor{\rm Anchor}Anchor与真实框的交并比,为每个目标产生一个Anchor{\rm Anchor}Anchor袋(形象化的说法,其实就是一组Anchor{\rm Anchor}Anchor)。然后,通过分类置信度和交并比共同决定正样本,使用该组Anchor{\rm Anchor}Anchor更新模型;模型又通过以上规则选择下一组Anchor{\rm Anchor}Anchor,如此重复下去直到得到最优Anchor{\rm Anchor}Anchor和最优模型。
2. Related Work
2.1 Anchor-Based Method
传统的如Faster{\rm Faster}Faster-RCNN{\rm RCNN}RCNN、FPN{\rm FPN}FPN、SSD{\rm SSD}SSD等方法基于IoU{\rm IoU}IoU为Anchor{\rm Anchor}Anchor分类。如果某Anchor{\rm Anchor}Anchor与某真实框的交并比大于设定的正样本阈值,则将其确定为正样本;如果与任何真实框的交并比均小于设定的负样本阈值,则将其确定为负样本。在推理阶段,使用NMS{\rm NMS}NMS处理一组与某个目标均有较大交并比的候选框。前人也有许多工作优化每次用于训练的Anchor{\rm Anchor}Anchor。
2.2 Anchor-Free Method
近来,出现了大量Anchor{\rm Anchor}Anchor-Free{\rm Free}Free的目标检测方法,FCOS{\rm FCOS}FCOS、CornerNet{\rm CornerNet}CornerNet、RepPoints{\rm RepPoints}RepPoints等,它们不依赖于人工设定的Anchor{\rm Anchor}Anchor。但作者指出,由于缺乏Anchor{\rm Anchor}Anchor的指导,这类方法中的边界框回归仍是一个值得关注的问题。
3. The Proposed Approach
MAL{\rm MAL}MAL基于RetinaNet{\rm RetinaNet}RetinaNet实现,它在此基础上优化了RetinaNet{\rm RetinaNet}RetinaNet中的Anchor{\rm Anchor}Anchor选择方案。RetinaNet{\rm RetinaNet}RetinaNet的结构如下:
图3:RetinaNet
3.1 RetinaNet Revisit
如图333,RetinaNet{\rm RetinaNet}RetinaNet的左端是一个FPN{\rm FPN}FPN。对于FPN{\rm FPN}FPN的每一层,使用一个分类分支和回归分支用于预测物体的类别和位置。同时,针对前景背景类别的极不平衡性,RetinaNet{\rm RetinaNet}RetinaNet使用FocalLoss{\rm Focal\ Loss}Focal Loss作为损失函数。现令x∈Xx\in \mathcal{X}x∈X表示输入图像,它的标注类别为y∈Yy\in \mathcal{Y}y∈Y。其中X\mathcal{X}X表示训练数据集集合,Y\mathcal{Y}Y表示标注类别信息集合。BBB为标注的边界框,任一边界框bi∈Bb_i\in Bbi∈B由其类别biclsb_i^{cls}bicls和位置bilocb_i^{loc}biloc组成。Anchor{\rm Anchor}Anchor为aja_jaj对应的置信度预测和位置预测分别为ajclsa_j^{cls}ajcls和ajloca_j^{loc}ajloc。同时,当Anchor{\rm Anchor}Anchor与标注框的交并比大于给定的正样本阈值,则确定其为正样本aj+a_{j+}aj+;否则为负样本aj−a_{j-}aj−。则网络的学习由如下函数监督:θ∗=argmaxθ(fθ(aj+,bicls)−γfθ(aj−,bicls))(1)\theta^*=\arg \max_\theta(f_{\theta}(a_{j+},b_i^{cls})-\gamma f_{\theta}(a_{j-},b_i^{cls}))\tag{1}θ∗=argθmax(fθ(aj+,bicls)−γfθ(aj−,bicls))(1)
其中,fθ(⋅)f_{\theta}(·)fθ(⋅)表示分类程序,γ\gammaγ用于平衡正负样本。上式对应于RetinaNet{\rm RetinaNet}RetinaNet中的分类损失部分。同时,RetinaNet{\rm RetinaNet}RetinaNet中的回归损失可以表示如下:θ∗=argmaxθgθ(aj+,biloc)(2)\theta^*=\arg \max_{\theta}g_{\theta}(a_{j+},b_i^{loc})\tag{2}θ∗=argθmaxgθ(aj+,biloc)(2)
注意回归损失只涉及正样本的计算。上式中的θ\thetaθ均表示网络的参数,gθ(⋅)g_{\theta}(·)gθ(⋅)表示回归程序。对于上式(1)(1)(1)和式(2)(2)(2),通常分别使用FocalLoss{\rm Focal\ Loss}Focal Loss和SmoothL1Loss{\rm SmoothL1\ Loss}SmoothL1 Loss,即表示为Lcls=(aj,bicls)\mathcal{L}_{cls}=(a_j,b_i^{cls})Lcls=(aj,bicls)和Lloc=(aj,biloc)\mathcal{L}_{loc}=(a_j,b_i^{loc})Lloc=(aj,biloc)。
在训练RetinaNet{\rm RetinaNet}RetinaNet的整个过程中,每个采样的Anchor{\rm Anchor}Anchor独立地监督网络学习目标的分类和定位,而没有使用二者之间的相关性。这可能导致产生的结果具有很高的定位精度,但是由于具有较低的置信度而被NMS{\rm NMS}NMS筛选掉。
3.2 Multiple Anchor Learning
为了解决上述问题,论文提出多Anchor{\rm Anchor}Anchor学习的策略,如下图:
图4:MAL的整体流程
在每次迭代过程中,MAL{\rm MAL}MAL从Anchor{\rm Anchor}Anchor袋中挑选出高得分的Anchor{\rm Anchor}Anchor的用于更新模型,然后模型会评估具有新的置信度的Anchor{\rm Anchor}Anchor用于构建下一次迭代所使用的Anchor{\rm Anchor}Anchor袋。注意这是一个交替优化的过程:首先使用最优化的Anchor{\rm Anchor}Anchor去更新参数得到最优化的模型;然后最优化的模型反过来选择最优化的Anchor{\rm Anchor}Anchor。如此下去得到最终的优化结果。具体流程如下:对于物体ithi^{th}ith,为其建立一个Anchor{\rm Anchor}Anchor袋AiA_iAi。AiA_iAi中包含了与物体ithi^{th}ith具有最高交并比的kkk个Anchor{\rm Anchor}Anchor。然后,MAL{\rm MAL}MAL基于分类和回归置信度共同评估AiA_iAi中的Anchor{\rm Anchor}Anchor,该置信度主要用于确定Anchor{\rm Anchor}Anchor的选择。基于RetinaNet{\rm RetinaNet}RetinaNet,MAL{\rm MAL}MAL的目标函数定义如下:{θ∗,ai∗}=argmaxθ,aj∈AiFθ(aj,bi)=argmaxθ,aj∈Aifθ(aj,bicls)+βgθ(aj,biloc)(3)\begin{aligned} \{\theta^*,a_i^*\} &=\arg \max_{\theta,a_j\in A_i}F_{\theta}(a_j,b_i)\\ &=\arg \max_{\theta,a_j\in A_i}f_{\theta}(a_j,b_i^{cls})+\beta g_{\theta}(a_j,b_i^{loc}) \end{aligned}\tag{3}{θ∗,ai∗}=argθ,aj∈AimaxFθ(aj,bi)=argθ,aj∈Aimaxfθ(aj,bicls)+βgθ(aj,biloc)(3)
上式可以为物体ithi^{th}ith找到最优Anchor{\rm Anchor}Anchor为ai∗a_i^*ai∗,同时为模型找到最优参数为θ∗\theta^*θ∗。则MAL{\rm MAL}MAL的损失函数可写作:{θ∗,ai∗}=argminθ,aj∈AiLdet(aj,bi)=argminθ,aj∈AiLcls(aj,bicls)+βLreg(aj,biloc)(4)\begin{aligned} \{\theta^*,a_i^*\} &=\arg \min_{\theta,a_j\in A_i}\mathcal{L}_{det}(a_j,b_i)\\ &=\arg \min_{\theta,a_j\in A_i}\mathcal{L}_{cls}(a_j,b_i^{cls})+\beta \mathcal{L}_{reg}(a_j,b_i^{loc})\tag{4} \end{aligned}{θ∗,ai∗}=argθ,aj∈AiminLdet(aj,bi)=argθ,aj∈AiminLcls(aj,bicls)+βLreg(aj,biloc)(4)
3.3 Selection-Depression Optimization
随机梯度下降是一种非凸函数的优化方法,它可能得到次优解。为了在每次迭代中选择最优的Anchor{\rm Anchor}Anchor,MAL{\rm MAL}MAL通过扰动Anchor{\rm Anchor}Anchor的特征来降低选择Anchor{\rm Anchor}Anchor时的置信度。
3.3.1 Anchor Selection
传统的MIL{\rm MIL}MIL算法倾向于选择得分最高的一组Anchor{\rm Anchor}Anchor。但是在目标检测中,很难直接从每个Anchor{\rm Anchor}Anchor袋中选择出得分最高的Anchor{\rm Anchor}Anchor。论文提出的方法是,在学习过程中线性地降低Anchor{\rm Anchor}Anchor袋的数量,从∣Ai∣|A_i|∣Ai∣到111。这里,令λ=t/T\lambda=t/Tλ=t/T,其中ttt和TTT表示当前迭代次数和总的迭代次数;ϕ(λ)\phi(\lambda)ϕ(λ)表示最高得分的Anchor{\rm Anchor}Anchor的索引且∣ϕ(λ)∣=∣Ai∣∗(1−λ)+1|\phi(\lambda)|=|A_i|*(1-\lambda)+1∣ϕ(λ)∣=∣Ai∣∗(1−λ)+1。则上式(3){\rm (3)}(3)可写作:{θ∗,ai∗}=argmaxθ,aj∈Ai∑j∈ϕ(λ)Fθ(aj,bi)(5)\{\theta^*,a_i^*\} =\arg \max_{\theta,a_j\in A_i}\sum_{j\in \phi(\lambda)}F_{\theta}(a_j,b_i)\tag{5}{θ∗,ai∗}=argθ,aj∈Aimaxj∈ϕ(λ)∑Fθ(aj,bi)(5)
基于上式,MAL{\rm MAL}MAL在前期模型利用众多Anchor{\rm Anchor}Anchor来更新学习。最后,随着迭代的进行,最终得到的一个Anchor{\rm Anchor}Anchor即为当前目标所对应的最优Anchor{\rm Anchor}Anchor。
3.3.2 Anchor Depression
基于IAN{\rm IAN}IAN,MAL{\rm MAL}MAL提出Anchor{\rm Anchor}Anchor抑制模块来扰动其特征,从而降低Anchor{\rm Anchor}Anchor的置信度。如下图:
图5:Anchor Depression
为了进一步优化训练损失函数,MAL{\rm MAL}MAL基于选择的Anchor{\rm Anchor}Anchor学习更加丰富的特征。设卷积特征图和注意力特征图分别为UUU和MMM,其中M=∑lwl∗UlM=\sum_{l}w_l*U_lM=∑lwl∗Ul、www表示全局平均池化、lll为通道索引。通过将最高得分的Anchor{\rm Anchor}Anchor设置为零后得到一个新的抑制后的特征图M′=(1−1P)∗MM^{'}=(1-1_{P})*MM′=(1−1P)∗M,其中PPP表示高置信度的位置。则特征图变为:V=(1+M′)∘Ul(6)V=(\bold 1+M^{'})\circ U_l\tag{6}V=(1+M′)∘Ul(6)
其中1\bold 11表示单位矩阵、∘\circ∘表示对应位置元素相乘。结合本节内容,上式(6)(6)(6)变为:V=(1+(1−1ψ(λ))∗M)∘Ul(7)V=(\bold 1+(1-1_{\psi(\lambda)})*M)\circ U_l\tag{7}V=(1+(1−1ψ(λ))∗M)∘Ul(7)
3.4 Implementation
MAL{\rm MAL}MAL基于RetinaNet{\rm RetinaNet}RetinaNet,不同的是MAL{\rm MAL}MAL在前向传播的过程中,首先计算每个Anchor{\rm Anchor}Anchor的检测置信度,然后选择toptoptop-kkk个Anchor{\rm Anchor}Anchor组成Anchor{\rm Anchor}Anchor袋。然后通过3.33.33.3节的内容抑制Anchor{\rm Anchor}Anchor的分数,接着使用最佳Anchor{\rm Anchor}Anchor更新模型。最后重复以上过程直到完成整个检测流程。MAL{\rm MAL}MAL的推理过程与RetinaNet{\rm RetinaNet}RetinaNet基本相同。
3.5 Optimization Analysis
Anchor{\rm Anchor}Anchor选择-抑制策略类似于一个对抗过程:Anchor{\rm Anchor}Anchor选择的目的是找到最高分数的Anchor{\rm Anchor}Anchor来最小化Ldet\mathcal L_{det}Ldet;然后Anchor{\rm Anchor}Anchor抑制的目的是扰乱特征使其置信度降低,从而会使Ldet\mathcal L_{det}Ldet增大。但同时这一过程也有助于MAL{\rm MAL}MAL在非凸函数中找到最优解。如下图:
图6:Anchor选择-抑制
4. Experiments
图7:MAL和RetinaNet
上图第一行和第三行是RetinaNet{\rm RetinaNet}RetinaNet的可视化结果,第二行和第四行是MAL{\rm MAL}MAL的可视化结果。由结果图对比可知,MAL{\rm MAL}MAL能够抑制大多数无关的背景信息,同时保留更多的前景信息。
图8:消融实验
图9:与其他目标检测方法的对比
5. Conclusion
论文提出一种动态Anchor{\rm Anchor}Anchor的概念,在训练的迭代过程中使用的Anchor{\rm Anchor}Anchor不尽相同,这主要取决于上一轮Anchor{\rm Anchor}Anchor所更新的模型。同时在选择Anchor{\rm Anchor}Anchor时,抑制得分最高的Anchor{\rm Anchor}Anchor,以避免模型陷入次优解。这个Anchor{\rm Anchor}Anchor的选择和抑制的过程像是是一个对抗的过程。而整个MAL{\rm MAL}MAL的训练过程是一个循环迭代的过程。
参考
- Ke W, Zhang T, Huang Z, et al. Multiple Anchor Learning for Visual Object Detection[C]//Proceedingags of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 10206-10215.
- https://blog.csdn.net/sinat_17456165/article/details/106798986.
完
(二十七)论文阅读 | 目标检测之MAL相关推荐
- (三十二)论文阅读 | 目标检测之SEPC
简介 图1:论文原文 本文介绍的是CVPR2020{\rm CVPR\ 2020}CVPR 2020的一篇关于目标检测的文章,SEPC{\rm SEPC}SEPC.它的主要关注点依旧是目标检测中常用的 ...
- 深度学习论文阅读目标检测篇(二):Fast R-CNN《Fast R-CNN》
深度学习论文阅读目标检测篇(二):Fast R-CNN<Fast R-CNN> Abstract 摘要 1. Introduction 引言 1.1 RCNN and SPPnet 1.2 ...
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
- 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》
深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...
- 深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》
深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1< You Only Look Once: Unified, Real-Time Object Detection> Abstra ...
- 深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4《Optimal Speed and Accuracy of Object Detection》
深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4<Optimal Speed and Accuracy of Object Detection> Abstract 摘要 1. In ...
- 深度学习论文阅读目标检测篇(四)中文版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》
深度学习论文阅读目标检测篇(四)中文版:YOLOv1<YouOnlyLookOnce:Unified,Real-TimeObjectDetection> 摘要 1.引言 2. 统一的检测 ...
- 深度学习论文阅读目标检测篇(六)中文版:YOLOv3《 An Incremental Improvement》
深度学习论文阅读目标检测篇(六)中文版:YOLOv3< An Incremental Improvement> 摘要 1. 引言 2. 方案 2.1. 边界框预测 2.2. Class P ...
- 深度学习论文阅读目标检测篇(五)中文版:YOLOv2《 YOLO9000: Better, Faster, Stronger》
深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> 摘要 1.引言 2. 更好 3. 更快 4. 更强 5. 结 ...
最新文章
- 2019男生身高受欢迎程度表
- open python语言实现 pdf_使用python操作Pdf代码实现
- 腾讯云发布全链路数据开发平台WeData,大数据开发迈入新时代
- 弹出对话框提示输入_每日一贴——如何关闭CAD的各种提示信息和对话框?
- 接口隔离原则(设计模式4)
- C# JSON格式数据用法
- linux动态库与静态库混合连接
- java获取远程网络图片文件流、压缩保存到本地
- linux下截图软件 shutter
- 百度迁徙数据的快捷采集方法分析总结
- 从头开始vue创建项目_从头开始创建Windows 7主题包
- 注册Flash8.ocx控件
- MATLAB符号运算——极限
- 二叉平衡树AVL简介
- AHU HuffmanTree编码数据结构实验
- 阿里云CDN是什么?阿里云CDN配置与购买优惠教程
- UVA 12307 Smallest Enclosing Rectangle(旋转卡壳)
- php 验证手机号码格式
- 计算机桌面不同步,电脑有时候出现时间不同步怎么办,解决方法
- 什么是流批一体化、区块链