共计 2446 个字符,预计需要花费 7 分钟才能阅读完成。
本文次要对指标检测算法 RepPoints 进行具体讲述,本文逻辑构造和论文保持一致,深入分析作者的钻研思路。
论文:RepPoints: Point Set Representation for Object Detection
代码:https://github.com/microsoft/…
摘要
存在问题
The bounding box is convenient to use but provides only a coarse localization of objects and leads to a correspondingly coarse extraction of object features
作者认为目前指标检测算法次要是通过初步 bounding box(如 anchors, proposals)来提取框内特色进行最终分类和定位的,因为边框无奈提供指标形态信息,而且整个边框外部含有很多多余信息,以及边框定位不精确,这会导致提取的特色精度较差。
提出的办法
we present RepPoints (representative points), a new finer representation of objects as a set of sample points useful for both localization and recognition. Given ground truth localization and recognition targets for training, RepPoints learn to automatically arrange themselves in a manner that bounds the spatial extent of an object and indicates semantically significant local areas. They furthermore do not require the use of anchors to sample a space of bounding box
翻新点:作者应用一系列采样点取代了 bounding box 来提取指标特色,并进行分类和依据采样点生成矩形伪框来实现定位,通过采样点来抉择指标特色绝对 bounding box 更具代表性,更准确。而且采样点是通过神经网络定位和分类损失函数反向流传自行抉择的。
辨认精度
We show that an anchor-free object detector based on RepPoints can be as effective as
the state-of-the-art anchor-based detection methods, with 46.5 AP and 67.4 AP50 on the COCO test-dev detection benchmark, using ResNet-101 mode
在 COCO test-dev 测试集上可能实现 46.5AP 和 67.4AP50 的精度。
算法流程
具体算法流程见下图所示:
骨干网络 backbone
应用特色金字塔网络 FPN 作为骨干网络来提取 5 层特色图,这个绝对简略,具体细节不予形容。
检测头 head
检测头是用于分类和定位的,该论文应用了两阶段构造
第一阶段 ,首先通过两个分支卷积层对 backbone 的 5 层特色图进行别离操作生成 定位特色 和分类特色,也就是上图中 locate subnet 和 class subnet 的输出特色。定位特色在 locate subnet 中通过一系列 3 3 卷积层和最初 1 1 卷积层,输入通道数为 18 的偏置特色图 offset1,18 示意 9 个偏置 x,y。
$$
R=\left\{\left( x_{n},y_{k}\right) \right\} _{k=1}^{9}
$$
偏置特色图通过上图中的 convert 操作生成矩形伪框,并与标签生成 RepPoints1 定位损失。
第二阶段,定位特色依据 offset1 进行可变形卷积操作,以获取更具体的特色信息,并依据这个特色信息通过相似的卷积操作生成 offsets2 与 offset1 联合进行边框损失计算。
$$
R_{1}=\left\{\left( x_{k}+\Delta x_{n},y_{k}+\Delta y_{k}\right) \right\} _{k=1}^{9}
$$
由上述公式可知 offset2 是绝对 offset1 的,这就相当于第一个 offset1 是粗偏置,第二个 offset2 是精偏置,是一个逐渐精度化的过程。
分类特色同样依据 offset1 进行可变形卷积操作来汇总信息,并进行分类损失计算。
置信大家当初对 RepPoints 算法流程有个整体的理解,对细节还很含糊,所以接下来就几个重点细节进行详细描述。
矩形伪框是如何生成的?
矩形伪框能够应用 min-max 函数和 moment 函数生成:
- min-max function
这个函数比较简单,正如名字所示,就是抉择最大和最小的两个点作为 bbox 的对角点; - moment-based function
通过计算所有偏置点的 xy 平均值和方差进行计算的
两个阶段的标签是如何确定的?
第一阶段标签
依据上文所述,第一阶段标签只有边框标签。另外,训练过程中只对正样本进行损失计算,这是因为负样本的边框是不确定的,无奈计算。如果满足上面两个条件,则将该特色点设为正样本。特色点所在的层数等于实在指标对象的对数尺度
$$
S_{B}=\left\lfloor \log _{2}\left(\sqrt{W_{B}H_{B}}/4\right) \right\rfloor
$$因为不同层的特色图感触野不同,负责解决不同大小的指标对象,所以针对不同大小的指标,应确定特定层来进行辨认。
- 该指标对象核心在各层特色层的投影点与该特色点间隔最近
第二阶段标签
第二阶段同时有边框标签和类别标签。边框标签是依据第一阶段预测后果确定的。如果该特色点在第一阶段预测的矩形伪框与实在标签有足够的重叠,并且它们的交加比 IoU 大于 0.5,则该特色点为正样本。分类标签也是相似,IoU 大于 0.5 示意正样本,小于 0.4 示意负样本,否则被疏忽。并应用 focal loss 用于分类训练。