CenterNet**?* Keypoint Triplets for Object Detection(MS COCO)
Abstract
- CornerNet使用角点进行检测,角点多处于目标外围,没有目标内部的特征,导致很多误检
- 本文采用三元组关键点:两个角点和一个中心点,有效抑制误检
- 首先利用左上和右下两个角点生成初始目标框,对每个预测框定义一个中心区域,然后判断每个目标框的中心区域是否含有中心点,若有则保留该目标框,若无则删除该目标框,如图:
[外链图片转存失败(img-V6KkXXhA-1567866176815)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1561347426587.png)]
- 提出新的衡量指标FD (false discovery) rate, 此指标能够很直观的反映出误检情况。FD rate 的计算方式为 FD = 1-AP, 其中 AP 为 IoU 阈值取[0.05 : 0.05 : 0.5]下的平均精度
- cornernet 的问题 : 在判断两个角点是否属于同一物体时,缺乏全局信息的辅助,因此很容易把原本不是同一物体的两个角点看成是一对角点,因此产生了很多错误目标框。 解决之道:让网络具备感知物体内部信息的能力(二阶段方法以及本文提出的三元组方法)
方法介绍
三元组
[外链图片转存失败(img-mbHLqcCM-1567866176818)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1561347725858.png)]
-
网络通过 center pooling 得到 中心热图,通过 cascade corner pooling 得到 角点热图
-
通过offsets将角点的位置映射到原图,然后通过 embedings 判断哪两个角点属于同一个物体,以便组成一个检测框,最后使用中心点来决定最后的预测框
-
对预测框定义一个中心区域,判断每个目标框的中心区域是否含有中心点。若有则保留,并且此时框的 confidence 为中心点,左上角点和右下角点的confidence的平均,若无则去除,使得网络具备感知目标区域内部信息的能力,能够有效除错误的目标框
中心区域的大小可变,预测框尺度较大时定义一个相对较小的中心区域,尺度较小时预测一个相对较大的中心区域
[外链图片转存失败(img-b3ne8Utv-1567866176823)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1561357831066.png)]
[外链图片转存失败(img-0TEZoSZx-1567866176831)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1561357873941.png)]
提取中心点和角点特征
-
Center pooling:提取中心点水平方向和垂直方向的最大值并相加,以此给中心点提供所处位置以外的信息,可通过不同方向上的 corner pooling 的组合实现
[外链图片转存失败(img-yRU3B6NS-1567866176858)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1561358785290.png)]
-
Cascade corner pooling : corner pooling 的改进做法。corner pooling 提取物体边界最大值并相加,该方法只能提供关联物体边缘语义信息,对于更加丰富的物体内部语义信息则很难提取到。cascade corner pooling首先提取物体边界最大值,然后在边界最大值处继续向内部(图中沿虚线方向)提取提最大值,并与边界最大值相加,以此给角点特征提供更加丰富的关联物体语义信息
[外链图片转存失败(img-wTeiEqPj-1567866176861)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1561358921475.png)]
实验
- 骨干网络使用与cornernet相同的修改的沙漏网络。
- CenterNet511-104 的测试速度约为340ms/帧,比 baseline(cornernet) 慢约 40ms/帧。但对于更轻backbone,CenterNet511-52的测试速度约为270ms/帧,比CornerNet511-104快约30ms/帧,而且其精度无论是single-scale test 还是 multi-scale test 都比CornerNet511-104高。
消除实验:
错误实验:将检测的中心点用真实的中心点代替,实验结果表明中心点的检测准确度还有很大的提升空间。同时该结果还表明要想更进一步的提升检测精度,需要进一步提升角点的检测精度。
总结
one-stage 方法都无法感知物体内部信息,这是由于 one-stage 直接对 anchor 进行回归和分类,这个过程并没有像 two-stage 方法一样利用到了物体内部特征,因此无法感知物体内部信息。