CentripetalNet:更合理的角点匹配,以及CornerNet的多项改进

CentripetalNet的核心在于新的角点匹配方法,该方法还可以学习向心偏移值。

偏移值足够小的角点将匹配。

与嵌入向量匹配方法相比,该方法更健壮,说明性更好。

另外,本文提出的十字星形变形卷积也很好地适合了拐角目标检测场景,并增强了拐点特征。

论文:CentipetalNet:追求用于对象检测的高质量关键点对论文地址:https://arxiv.org/abs/2003.09119论文代码:https://github.com/KiveeDong/CentripetalNetIntroductionCornerNet打开了一种新的目标检测方法,该方法可以定位通过检测角来确定目标。

在角点匹配中,添加了附加的嵌入向量。

向量距离较小的角是匹配的。

本文认为,该方法不仅训练困难,而且只能通过物体的表面进行预测,缺乏目标的位置信息。

对于相似的对象,嵌入向量很难具体表达。

如图1所示,类似的对象可能会导致帧错误。

为此,本文提出了CentipetalNet,其核心是提出了一种新的角点匹配方法,学习了一个附加的向心偏移值,并且具有足够小的偏移值的角点是匹配点。

与嵌入向量相比,该方法更加健壮和具有解释性。

此外,本文还提出了跨星形变形卷积算法,可以在拐角预测场景的特征提取过程中准确地提取关键位置的特征。

最后,添加了一个实例分段分支,该分支可以将网络扩展到实例分段任务。

CentripetalNet如图2所示。

CentripetalNet包含四个模块,即:角预测模块:用于生成候选角,该部分与CornerNet相同。

向心移位模块(CentripetalShiftModule):预测角点的向心移位,并根据移位结果对相似的角点进行分组。

十字星变形卷积(Cross-star Deformable Convolution):用于拐角场景的可变形卷积,可以有效地增强拐角位置的特征。

实例分割分支(InstanceMaskHead):类似于MaskRCNN,添加实例分割分支可以提高目标检测的性能并提高实例分割的能力。

对于CentripetalShiftModuleCentripetalShift,将几何中心定义为左上和右下点的向心偏移:该函数用于减小向心偏移的值范围,使训练变得更容易。

在训练过程中,由于需要将非GT拐角点与拐角点偏移量相结合来计算向心偏移量,因此更为复杂(如图a所示),因此仅将smoothL1损失用于向心偏移量的训练。

GT角点:CornerMatching属于同一组角点应具有足够近的中心点,因此在获得向心偏移和角点偏移后,可以根据对应于该点的中心点来判断两个角点是否对应拐角点。

首先,将满足几何关系的角点组合成预测帧,每个预测帧的置信度为角点的置信度的平均值。

然后,如图c所示,定义每个预测框的中心区域:拐角点的计算方式为:中心区域与预测框的边长之比与左上角的中心点之比根据向心偏移量计算右下角;计算满足该点的中心面积与中心点之间关系的预测框的权重:从公式5可以看出,中心点越接近拐角点是预测框的权重越高。

对于那些不满足中心点几何关系的对象,在预测框中将权重直接设置为0,最后,将权重用于对置信度的输出进行加权。

Cross-starDeformableConvolution为了使拐角点能够感知到目标的位置信息,圆锥池化使用max和sum在水平和垂直方向上传递目标信息,从而产生带有交叉星状现象的输出特征图,如图4a所示,十字星的边框包含丰富的上下文信息。

为了进一步提取十字星边界的特征,不仅需要较大的接收场,而且还需要调整其特殊的几何结构,因此提出了十字星变形卷积。

但是,并非所有边界特征都有用。

对于左上方