阅读心得:CenterNet:Objects as Points

链接: 论文出处.

一、摘要

大多的成功的目标检测任务,通过迭代一个详细的目标位置列表和对应的分类,显得十分的低效且浪费。我们的模型采取了基于目标Bbox中心点来建模进行目标检测。我们的检测器使用关键点估计来找到中心点,并且回归到所有目标的属性(例如大小,3D位置,方向甚至姿态)。实验显示,比相应的基于框的要快速,高效,且更简单,能够达到实时。

创新点:
第一,我们分配的锚点仅仅是放在位置上,没有尺寸框。没有手动设置的阈值做前后景分类。(像Faster RCNN会将与GT IOU >0.7的作为前景,<0.3的作为背景,其他不管);
第二,每个目标仅仅有一个正的锚点,因此不会用到NMS,我们提取关键点特征图上局部峰值点(local peaks);
第三,CenterNet 相比较传统目标检测而言(缩放16倍尺度),使用更大分辨率的输出特征图(缩放了4倍),因此无需用到多重特征图锚点;

二、介绍

在这里插入图片描述
CenterNet使用单张图片 I ∈ R W X H X 3 I\in{R^{WXHX3}} IRWXHX3作为输入,,并且为每个类 C ∈ { 0 , 1 … C − 1 } C\in\{0,1…C-1\} C{0,1C1}产生一个预测集合 { ( p i , s i ) } i = 0 N − 1 \{(p_i,s_i)\}_{i=0}^{N-1} {(pisi)}i=0N1。CenterNet通过确定中心点 p ∈ R 2 p∈R^{2} pR2然后回归获得目标边界框的高和宽 s ∈ R 2 s∈R^2 sR2。CenterNet会生成一个低分辨率的热图 Y ^ ∈ [ 0 , 1 ] W R × H R × C \hat{Y} \in[0,1]^{\frac{W}{R}×\frac{H}{R}×C} Y^[0,1]RW×RH×C以及通过下采样因子R为4获得的一个大小图 S ^ ∈ R W R × H R × 2 \hat{S} \in{R}^{\frac{W}{R}×\frac{H}{R}×2} S^RRW×RH×2。热图 Y ^ \hat{Y} Y^中每个局部最大值(峰值,3X3大小) p ^ ∈ R 2 \hat{p} ∈R^2 p^R2对应于一个检测目标的中心,相应的其置信度 w ^ = Y ^ P ^ \hat{w} =\hat{Y}_{\hat{P}} w^=Y^P^,目标大小为 s ^ = S ^ P ^ \hat{s}=\hat{S}_{\hat{P}} s^=S^P^
对于一张给定的训练目标集合 { p 0 , p 1 , … } \{p_0,p_1,…\} {p0,p1,}的图片,其focal损失为:

L k = 1 N ∑ x y c { ( 1 − Y ^ x y c ) α log ⁡ ( Y ^ x y c )  if  Y x y c = 1 ( 1 − Y x y c ) β ( Y ^ x y c ) α log ⁡ ( 1 − Y ^ x y c )  otherwise  L_{k}=\frac{1}{N} \sum_{x y c}\left\{\begin{array}{ll}\left(1-\hat{Y}_{x y c}\right)^{\alpha} \log \left(\hat{Y}_{x y c}\right) & \text { if } Y_{x y c}=1 \\ \left(1-Y_{x y c}\right)^{\beta}\left(\hat{Y}_{x y c}\right)^{\alpha} \log \left(1-\hat{Y}_{x y c}\right) & \text { otherwise }\end{array}\right. Lk=N1xyc(1Y^xyc)αlog(Y^xyc)(1Yxyc)β(Y^xyc)αlog(1Y^xyc) if Yxyc=1 otherwise 

其中 Y ∈ [ 0 , 1 ] W R × H R × C Y\in[0,1]^{\frac{W}{R}×\frac{H}{R}×C} Y[0,1]RW×RH×C是每个注释目标在真实热图上的对应值。N是目标个数,α=2,β=4是超参。
对于C中每个类的中点p,使用渲染函数 Y = R ( { p 0 , p 1 , . . . } ) Y = R(\{p0,p1,...\}) Y=R({p0,p1,...})将每个中点渲染成 Y ( : , : , c ) Y_{(:,:,c)} Y(:,:,c)高斯分布的峰值点(中心值最大为1)。同时可以获得下面点返回边界框大小的置信度。在 q ∈ R 2 q\in{R^2} qR2点的渲染可以定义为(如果同一类的两个高斯函数重叠,我们取元素的最大):
R q ( { p 0 , p 1 , … } ) = max ⁡ i exp ⁡ ( − ( p i − q ) 2 2 σ i 2 ) \mathcal{R}_{\mathbf{q}}\left(\left\{\mathbf{p}_{0}, \mathbf{p}_{1}, \ldots\right\}\right)=\max _{i} \exp \left(-\frac{\left(\mathbf{p}_{i}-\mathbf{q}\right)^{2}}{2 \sigma_{i}^{2}}\right) Rq({p0,p1,})=imaxexp(2σi2(piq)2)
p i p_i pi是热图上的坐标,q为低分辨率的等效坐标。z高斯核 σ σ σ是对象尺寸自适应的标准偏差(参考Law, H., Deng, J.: Cornernet: Detecting objects as paired keypoints. In: ECCV (2018))。
大小预测是基于中心点位置的监督回归, s i s_i si表示位置 p i p_i pi的第i个目标的边界框大小。大小预测损失为: L size = 1 N ∑ i = 1 N ∣ S ^ p i − s i ∣ L_{\text {size}}=\frac{1}{N} \sum_{i=1}^{N}\left|\hat{S}_{\mathbf{p}_{i}}-\mathbf{s}_{i}\right| Lsize=N1i=1NS^pisi

使用类似的L1损失 L o f f = 1 N ∑ p ∣ O ^ p ~ − ( p R − p ~ ) ∣ L_{off}=\frac{1}{N} \sum_{p}\left|\hat{O}_{\tilde{p}}-\left(\frac{p}{R}-\tilde{p}\right)\right| Loff=N1pO^p~(Rpp~), CenterNet会进一步回归一个精确的中心局部位置。
CenterNet的整体损失是三个损失项的加权总和:focal损失、大小和局部位置回归。即 L det = L k + λ size L size + λ off L off L_{\text {det}}=L_{k}+\lambda_{\text {size}} L_{\text {size}}+\lambda_{\text {off}} L_{\text {off}} Ldet=Lk+λsizeLsize+λoffLoff。原文设置 λ s i z e = 0.1 \lambda_{size}=0.1 λsize=0.1, λ o f f = 0.1 \lambda_{off}=0.1 λoff=0.1。其中关键点 Y ^ \hat{Y} Y^,补偿 O ^ \hat{O} O^,大小 S ^ \hat{S} S^使用单独的网络预测,网络整体在每个点预测一个C+4维度的输出。所有输出共享一个全卷积网络。
在这里插入图片描述
从点回归到边界框: 在推理时,我们首先分别提取每个类别的热图中的峰值。检测所有大于或等于其8个相邻节点的响应,并保持前100个峰值。让 P ^ c \hat{P}_c P^c作为类c的n个检测中心的集合, P ^ c = { ( x i ^ , y i ^ ) } i = 1 n \hat{P}_c=\{(\hat{x_i},\hat{y_i})\}_{i=1}^n P^c={(xi^,yi^)}i=1n.每个关键点位置由一个整数坐标给出 ( x i , y i ) (x_i, y_i) (xi,yi)
使用关键点的值 Y ^ x i , y i , c \hat{Y}_{x_i, y_i,c} Y^xi,yi,c,并生成一个边界框位置:
( x ^ i + δ x ^ i − w ^ i / 2 , y ^ i + δ y ^ i − h ^ i / 2 x ^ i + δ x ^ i + w ^ i / 2 , y ^ i + δ y ^ i + h ^ i / 2 ) \begin{array}{l} \left(\hat{x}_{i}+\delta \hat{x}_{i}-\hat{w}_{i} / 2, \quad \hat{y}_{i}+\delta \hat{y}_{i}-\hat{h}_{i} / 2\right. \\ \left.\hat{x}_{i}+\delta \hat{x}_{i}+\hat{w}_{i} / 2, \hat{y}_{i}+\delta \hat{y}_{i}+\hat{h}_{i} / 2\right) \end{array} (x^i+δx^iw^i/2,y^i+δy^ih^i/2x^i+δx^i+w^i/2,y^i+δy^i+h^i/2)
其中 ( δ x ^ i , δ y ^ i ) = O ^ x ^ i , y ^ i \left(\delta \hat{x}_{i}, \delta \hat{y}_{i}\right)=\hat{O}_{\hat{x}_{i}, \hat{y}_{i}} (δx^i,δy^i)=O^x^i,y^i是补偿预测, ( w ^ i , h ^ i ) = S ^ x ^ i , y ^ i \left( \hat{w}_{i}, \hat{h}_{i}\right)=\hat{S}_{\hat{x}_{i}, \hat{y}_{i}} (w^i,h^i)=S^x^i,y^i是大小预测。所有的输出都是直接从关键点估计产生的,不需要基于IOU的非极大值抑制(NMS)或其他后处理。

三、实现细节

Hourglass:堆叠的沙漏网络在两个连续的漏斗网络后将输入采样降低4倍,每个沙漏模块都是一个对称的5层上下卷积网络,带有跳过连接。网络相当大,但通常能产生最佳的关键点估计性能。

ResNet: 我们首先将三个上采样层的通道分别改为256,128,64,以节省计算量。然后我们在每个与通道256,128,64的上行卷积前,分别添加一个3×3的可变形卷积层。上行卷积核被初始化为双线性插值。详细的架构图见附录。

DLA:利用DLA的全卷积上采样版本进行稠密预测,使用迭代的深度聚合来对称地提高特征图的分辨率。利用可变形卷积来增加从底层到输出端的跳跃连接。具体来说,将每个上采样层将原始卷积替换为3×3的可变形卷积。

Training: 我们训练的输入分辨率为512×512。这将产生一个输出分辨率为128×128的所有模型。使用随机翻转、随机缩放(0.6到1.3之间)、裁剪和颜色抖动作为数据增强,并使用Adam优化总体目标。
在这里插入图片描述

四、总结

提出了一个新的目标代表:点。CenterNet网络基于成功的关键点评估网络,找到目标的中心,回归他们的大小。算力小,简单,快速,准确率高。为实时目标识别和相关任务开辟了新的方向。