关于算法:技术解读丨目标检测之RepPoints系列算法

47次阅读

共计 3463 个字符,预计需要花费 9 分钟才能阅读完成。

摘要:本文对 anchor-free 的指标检测 RepPoints 系列算法进行梳理,具体蕴含 RepPoints, RepPoints V2, Dense RepPoints。

背景介绍

近两年来,anchor-free 作为指标检测算法的新思路,曾经失去越来越多的关注。在典型 anchor-based 的算法中,模型的成果往往受限于 anchor 的配置参数,如 anchor 大小、正负样本采样、anchor 的宽高比等,要求开发者要非常理解数据,能力配置好 anchor 参数,从而训练失去一个好的模型。anchor-free 的算法无需配置 anchor 参数,即可训练失去一个好的检测模型,缩小了训练前对数据简单的剖析过程。

anchor-free 算法又可分为基于 anchor-point 的算法和基于 key-point 的算法。anchor-point 算法实质上和 anchor-based 算法类似,通过预测指标中心点 (x,y) 及边框距中心点的间隔 (w,h) 来检测指标,典型的此类算法有 FSAF,FCOS 等;而 key-point 办法是通过检测指标的边界点(如:角点),再将边界点配对组合成指标的检测框,此类算法包含 CornerNet, RepPoints 等。本文将介绍 RepPoints 系列算法工作。

RepPoints 是 ICCV2019 的一篇文章,新鲜地提出应用点集的形式来示意指标,该办法在不应用 anchor 的根底上获得了十分好的成果。如图 1 所示,a)示意个别指标检测算法应用程度突围框来示意指标地位信息,b)则示意了 RepPoints 应用点集来示意指标地位的办法。RepPoints 系列工作其实就是以点集示意为外围,从不同的角度去进一步晋升该算法精度而做出改良:1)将验证(即宰割)的过程融入 RepPoints,进一步晋升后果,失去 RepPoints V2; 2) 将点集的监督形式进行改良,病裁减点集的点数,实现了指标实力宰割工作的对立范式,即 Dense RepPoints.

RepPoints

RepPoints 算法的框架如图 2 所示。总体上,该办法是基于全卷积网络实现的,然而不同于其余的 one-stage 办法(e.g. RetinaNet)应用一次回归和一次分类失去最终的指标地位,RepPoints 应用了两次回归和一次分类,并且分类和最初一次回归应用的不是一般卷积,而是可形变卷积。可形变卷积的偏移量是通过第一次回归失去,也就意味着偏移量在训练过程中是有监督的。采纳这种形式,后续的分类和回归特色均是沿着指标选取的,特色品质更高。

图 2 RepPoints 框架图

RepPoints 的后果如表 1 所示,在单阶段办法中体现很好,并且借助多尺度训练和多尺度测试可能进一步晋升精度,远超先前的 two-stage 办法。

表 1 RepPoint 与 SOTA 算法比照

RepPoints V2

验证(即宰割)和回归是神经网络两类通用的工作,有着各自的劣势:验证更容易学习并且精确,回归通常很高效并且能预测间断变动。因而,采纳肯定的形式将两者组合起来能充分利用它们的劣势。RepPoints V2 就是在 RepPoints 的根底上减少了验证模块,实现了性能的进一步晋升。本文的工作有肯定的可拓展性,在基于回归的办法上都能够加上这个模块以晋升后果。

表 2. 基于验证和回归的几种办法性能比照

表 2 为在 COCO Val 上几种办法的后果剖析,可见有验证分支的办法在 AP90 上的指标较高,表明其检测后果的准确度更高。

图 3 RepPoints V2 流程图

RepPoints V2 在 RepPoints 办法根底上增加了一个宰割分支,该宰割次要蕴含两局部,一部分是角点预测的宰割,另一部分是指标前景的宰割。如图 3 所示,失去宰割图后,一方面这个宰割图和原始特色相加,作为回归特色的补充;另一方面在推理阶段,在回归分支获取到指标地位后,利用该宰割图可对后果进行进一步修改。总的来说,这个工作的增加可从三个层面对后果进行晋升:多任务个别会间接晋升总体后果;利用宰割图加强特色晋升回归成果,推理过程回归后果和宰割后果进行综合也有晋升。作者用试验证实了这三个方面的晋升,如表 3 所示。

表 3. Ablation Study

Dense RepPoints

Dense RepPoints 在 RepPoints 的根底上,将工作从指标检测裁减到实例宰割,应用了更密集的点来示意指标,从而达到实例宰割的指标。

RepPoints 是一种针对指标检测的示意办法,只采纳 9 个点来示意指标,

这些点只蕴含了地位信息,无奈示意物体更精密的构造,难以利用于实例宰割工作。相比于 RepPoints, Dense RepPoints 应用更多的点示意物体,并减少了每个点的属性信息:

在刻画细粒度的物体几何定位时,有多重示意形式,见图 4。其中,基于轮廓的办法(图 4 b)对物体的表白更紧凑,须要更多的信息,且因为更关注对物体边缘的宰割,无望德大更准确的边缘。而基于网格掩码的形式(图 4 c)通过对网格点做前景 / 背景分类的形式实现物体宰割,更易于学习。基于这两种表白的有点,Dense RepPoints 采纳图 4d 的边缘掩码形式来示意物体。和轮廓示意相似,边缘掩码示意将点集次要放在物体边缘左近,从而能够更精密地示意物体边缘;另一方面,和网格掩码示意相似,这一办法采纳了代表点前景 / 背景分类的办法来实现物体宰割,更利于学习。

图 4. 不同边界表白和采样形式

图 5. Dense RepPoints 框架

RepPoints 对指标的示意采纳一个点集 R 来示意,

对于分类和二次回归的特色便是通过上述点集采样(deformable conv)获取,失去 F(R),将点数进行晋升,F(R)的深度将直线减少。在 RepPoint 初始版本中,采样点数为 9 尚可用于指标检测。为了精确形容不规则指标时,往往须要上百个点,

Dense RepPoints 应用了更密集的点集示意物体,也减少了所需的计算量,影响实现效率。Dense RepPoints 采纳三种技术来解决计算量减少的问题:Group pooling; Shared offset fields; shared attribute map.

Group Pooling 如图 6 所示,次要解决分类过程中的复杂度。如果试验中采纳 n 点来形容指标,那么将其分成 k 组,对每组进行池化操作,而后进行预测,最终分类局部的复杂度有 O(n)升高到 O(k)。

图 6. Group Pooling

RepPoints 对物体轮廓点的偏移量进行修改时(图 2),是先基于初始预测的 N 个轮廓点,通过 N 个 Deformable Conv 算子别离对每个轮廓点进行修改预测,所需复杂度为 O(n^2)。该办法对于预测密集点的 Dense RepPoints 算法而言,在推理效率上就不实用了。Dense RepPoint 提出 Shared offset fields 办法,认为对每个轮廓点的偏移修改特色只需从原始预测的轮廓点信息,即每个轮廓点各自进行独立的修改,从而将复杂度升高到 O(n)。具体如图 7 所示,对每个轮廓点通过 bilinear 线性插值办法提取特色进行轮廓点修改。

图 7. Shared offset fields

对于 Shared Attribute Map, 如图 8 所示。因为要进行宰割,须要对前景进行打分。打分的过程依据点的地位分成上下左右四个区域,将不同的区域调配到不同的通道上。推理过程中,为了获取某个点的得分,首先依据点在指标中的绝对地位找到对应的通道,而后对该通道的得分进行采样即可失去该点的得分。

图 8. Shared Attribute Map

作者通过比照试验验证了这些操作的有效性,在减少点数时根本不减少计算量,并且无效晋升了后果。

表 3. Ablation Study.GP 示意 Group Pooling, SOF 示意 shared offset fields.

除了通过一系列的操作将计算量进行升高,Dense RepPoints 论文还摸索了点的不同散布形式和损失函数的计算形式对后果带来的影响。对于点集的散布,依间隔对指标边缘进行采样在实例宰割工作中领有最好的性能。对于损失函数,计算点集与点集之间的损失值要优于点对点的损失值。

小结

以点集(RepPoints)这种形式来示意指标能在精度和计算量上获得十分好的均衡,并且后处理简略。在应用点集的根底上,在局部工作上,还能够引入 V2 中的验证分支,来实现更精密的检测,同样也可参考 Dense RepPoints,将 Deformable Conv 换成更加通用的点采样来实现,让模型更具拓展能力和表达能力。

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0