摘要:本文对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换成更加通用的点采样来实现,让模型更具拓展能力和表达能力。
点击关注,第一工夫理解华为云陈腐技术~