共计 3089 个字符,预计需要花费 8 分钟才能阅读完成。
本文为 CenterNet 作者发表的,论文提出 anchor-free/two-stage 指标检测算法 CPN,应用关键点提取候选框再应用两阶段分类器进行预测。论文整体思路很简略,但 CPN 的准确率和推理速度都很不错,比本来的关键点算法更快,源码也会公开,到时能够一试
起源:晓飞的算法工程笔记 公众号
论文: Corner Proposal Network for Anchor-free,Two-stage Object Detection
- 论文地址:http://arxiv.org/abs/2007.13816
- 论文代码:http://github.com/Duankaiwen/CPNDet
Introduction
目前,amchor-based 指标检测办法和 anchor-free 指标检测办法都涌现了大量的优良检测计划。论文认为,对于形态特异的指标,anchor-free 指标检测形式比拟占优,但 acnhor-free 办法通常会呈现大量的误检,如图 1 所示,须要一个独立的分类器来晋升检测的准确率。为此,论文提出 CPNDet(Corner Proposal Network),联合了 anchor-free 和 two-stage 的检测范式。先基于 CornerNet 进行角点检测,将无效的角点枚举组合成大量候选预测框。因为候选框蕴含大量负样本,先训练一个二值分类器过滤大部分的候选预测框,再应用多类别分类器进行标签预测。
Anchor-based or Anchor-free? One-stage or Two-stage?
这里论文次要探讨 anchor-based vs anchor-free 以及 one-stage vs two-stage 的问题。
Anchor-based or Anchor-free?
Anchor-based 办法将大量的 anchor 平铺在特色图上,而后预测每个 anchor 是否蕴含物体以及标签。通常,anchor 是与图片特定的地位关联,大小也是绝对固定的,bbox 回归可能轻微地扭转其几何形态。Anchor-free 办法则不受预设的 anchor 限度,间接定位指标的关键点,而后再预测其形态和标签。所以,论文认为 anchor-free 办法在任意形态指标的定位上更灵便,召回率也更高。
论文也对 anchor-based 办法和 anchor-free 办法在不同大小以及不同比例的指标上的进行召回率比照,后果如上表所示。能够看出 anchor-free 办法通常有较高的召回率,特地是在长宽比拟大的物体上,anchor-based 办法因为预设的 anchor 与指标差别大,召回率偏低。其次,FCOS 尽管也是 anchor-free 办法,但其最初须要预测关键点到边界的间隔,这在这种场合下也难以预测。
One-stage or Two stage?
尽管 anchor-free 办法解决了寻找指标候选框的束缚,但因为不足指标的外部信息,难以很好地建设关键点与指标之间的分割,会给检测的准确率带来较大的影响,而关键点和指标之间的分割的建设通常须要丰盛的语义信息。
论文将高召回率 CornerNet 和 CenterNet 作为试验指标,后果如上表所示。骨干网络的增强可能带来准确率的晋升,但依然有很多的误检。如果去掉无指标的误检 ($AP_{refined}$) 以及纠正标签的谬误辨认 ($AP_{correct}$) 后,准确率可能显著地晋升了。上述的试验阐明,为了建设关键点与指标间的分割,须要借用 two-stage 的范式,提取候选框的信息来过滤误检局部。
The Framework of Corner Proposal Network
基于下面的剖析,论文联合 acnhor-free 办法和 two-stage 范式提出了 Corner-Proposal-Network(CPN),残缺的构造如图 2 所示。首先应用 anchor-free 办法提取关键点,遍历关键点组合成候选框,最初应用两个分类器别离对候选框进行误检过滤以及标签预测。
Stage 1: Anchor-free Proposals with Corner Keypoints
第一阶段为 anchor-free 候选框提取过程,假设每个指标都由两个关键点进行定位,先依据 CornerNet 输入两组角点的热图,抉择 top- k 个左上角点以及 top- k 个右下角点。将无效的关键点组合成指标的候选框,关键点组合是否无效次要有两个判断:
- 关键点是否属于同一个类别
- 左上角点必须在右上角点的左上地位
只管论文基于 CornerNet 提取候选框,但后处理有较大差别。CornerNet 应用 embedding 向量来组合关键点,论文认为 embedding 向量并不能保障是可学习的,而论文采纳独立的分类器进行解决,可能应用残缺的两头特色来晋升准确率。
Stage 2: Two-step Classification for Filtering Proposals
基于 anchor-free 办法提取候选框尽管召回率很高,但会带来大量的误检,论文采纳 two-step 分类办法进行过滤和校对。首先采纳轻量的二值分类器过滤 80% 的候选框,而后应用多分类器预测残余候选框的类别。
第一步训练二值分类器来决定候选框是否为指标,采纳 $7\times 7$ 的 RoIAlign 提取每个候选框的在 box 特色图上的特色,而后应用 1 个 $32\times 7\times 7$ 的卷积层来输入每个预测框的分类置信度,损失函数为:
$M$ 为总候选框数,$N$ 为正样本数,$p_m$ 为 $m$ 候选框为指标的概率,$\tau$ 为 IoU 阈值,设为 0.7。
第二步用于给残余的候选框预测类别,因为不足指标的外部信息的,关键点的类别通常不太精确,所以须要弱小的分类器来依据 ROI 特色进行预测。首先应用 $7\times 7$ 的 ROIAlign 提取每个候选框在 category 特色图上的特色,而后应用 $C$ 个 $256\times 7\times 7$ 的卷积层输入 $C$ 维向量,$C$ 为类别数量,损失函数为:
$\hat{M}$ 和 $\hat{N}$ 为过滤后的候选框数量和正样本数量,$q_{m,c}$ 为 $m$ 候选框的 $c$ 类别置信度,其余的参数与第一步相似。
The Inference Process
推理过程跟训练过程根本一样,因为训练过程蕴含很多低质量的预测框,$p_m$ 和 $q_{m,c}$ 的值是偏差零的,所以推理阶段第一步应用绝对低的阈值 (0.2) 进行过滤,大概保留 20% 的候选框。在第二步,每个候选框有两个标签,别离为角点预测的标签 $s_1$ 和第二阶段分类器预测的标签 $s_2$,当其中一个标签分数大于 0.5 时才将候选框输入,分数计算为 $s_c=(s_1+0.5)(s_2+0.5)$,再归一化到 $[0,1]$。
Experiments
与 SOTA 检测算法进行比照,初始的输出分辨率为 $511\times 511$。
推理阶段的两个分类器对性能的影响,B-Classifier 为二值分类器,M-Classifier 为多标签分类器。
绝对于其它 keypoint-based 办法,CPN 误检更低。
二值分类器与 CornerNet 的 embedding 向量的性能比照。
推理速度比照。
CONCLUSION
论文提出 anchor-free/two-stage 指标检测算法 CPN,应用关键点提取候选框再应用两阶段分类器进行预测。论文整体思路很简略,但 CPN 的准确率和推理速度都很不错,比本来的关键点算法更快,论文的细节也值得斟酌。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】