論文翻訳| CenterNet:オブジェクト検出のためのキーポイント三つ子

论文地址:https://arxiv.org/pdf/1904.07850.pdf
代码:https://github.com/xingyizhou/CenterNet
引用:Duan K, Bai S, Xie L, et al. CenterNet: Keypoint Triplets for Object Detection[J]. 2019.

抽象

       画像内のターゲットブロックのターゲットの検出と認識は、多くの場合、軸対称のブロックの形で示されています。最も成功した後、職階、第一目標検出器は、潜在的な標的位置を網羅している、このアプローチは、追加の後処理を必要とし、非効率的な、時間の無駄です。この記事では、ターゲットにBBoxの中心点である-我々はポイントとして、対象のモデルを構築し、異なるアプローチを取ります。我々の重要な点は、中心点を見つけ、そしてそのような大きさ、3次元位置、姿勢、さらには姿勢のような他の標的の性質、に戻り、検出器を使用して推定されます中心点に基づいて、私たちの方法は、言及:にBBoxベースの検出器に比べて、CenterNet、我々のモデルは微分終わり、単純、より速く、より正確です。我々のモデルは、速度と精度の最良のトレードオフを実現し、以下はそのパフォーマンスです。

MS COCOデータセット、28と:142 FPSで1%のAP、37:52 FPSで4%のAPおよび45:1.4 FPSにおけるマルチスケールテストと1%のAP。

3D BBOXキティベンチマークで行われた同じモデルを使用して、COCOのキーポイントデータセットは、体の姿勢検出を行います。複雑な多段階のアプローチと比較すると、我々は競争力のある結果を達成しているとリアルタイムを実現します。


前書き

       そのようなセグメンテーションの例として、多くの視覚ベースのタスクを駆動する目標検出は、推定、追跡、モーション認識を提起します。アプリケーションおよびそのような監視、自動運転、ビジュアルクイズのような下流の操作、。私たちはしっかりとターゲットに結合した電流検出器BBOXの軸対称フレームの形です。各対象フレームのために、分類器は、各ボックスは、ターゲット特定のカテゴリまたは背景であるかどうかを決定します。

一段検出器は、指定されたフレームの内容なしに、分類をブロックするために、直接、画像のバウンディングボックス複雑な構成(即ちアンカー)上を摺動してもよく。

二段検出器は、各潜在的なフレームの画像特徴のために再計算され、それらの機能が分類されます。

処理後、すなわち、NMS(非最大値抑制)にBbox間IOUを計算することにより、ターゲットと重複検出枠を削除します。これは、後処理やトレーニングを区別することは困難であるので、ほとんどの従来の検出器は、トレーニング可能な終わりではありません。

 

       ターゲットのターゲット中心点によって提示されるこの論文は、次いで、例えば、中心位置でターゲットのいくつかのプロパティに戻る(図2参照):大きさ、寸法、3Dエクステント、向き、姿勢。標準のキーポイントの推定問題へのターゲット検出の問題我々は、ちょうど熱力学的ダイアグラム、得ることが、画像ネットワークの完全な畳み込みを通過した物体の、すなわちピーク点ヒート図の中心点は、各特徴点のピーク位置が予測される図の幅と高さ情報

モデルトレーニング標準教師付き学習、推論だけで、単一の前方伝播ネットワークを使用して、このタイプの治療後のNMSが存在しません

 いくつかの拡張を行うには私たちのモデル(図4を参照)、それぞれの中心点で出力することができ、3Dターゲットボックスは、人々は推定は、あなたが望む結果のポーズ。

BBox 3Dを検出するために、我々は、目標に向かって深さ情報を直接取得対象、3Dフレームのサイズに戻ります。

人々は姿勢推定のために、我々はオフセットの中心点としてのジョイント(2Dジョイント)位置、中心位置でのこれらのオフセットの値に直接復帰。

 設計の単純化モデル、高速(図1参照)ので


関連作業

        我々のアプローチは、1段階法が似ているアンカーポイントに基づいています。未知の形状は、中心点のアンカー(図3参照)とみなすことができます。しかし、いくつかの重要な違いは、(あるこの記事のイノベーション):

まず、割り当てるアンカーは唯一の場所ではなく、サイズボックスの上に置かれていますいいえ、しきい値を手動でシーン分類の前と後に行うように設定されていません。(高速RCNNにかかわらず、他の背景として0.3 <の見通しとしてIOU> 0.7 GTたいです)。

第二,每个目标仅仅有一个正的锚点,因此不会用到NMS,我们提取关键点特征图上局部峰值点(local peaks);

第三,CenterNet 相比较传统目标检测而言(缩放16倍尺度),使用更大分辨率的输出特征图(缩放了4倍),因此无需用到多重特征图锚点;

通过关键点估计做目标检测:

       我们并非第一个通过关键点估计做目标检测的。CornerNet将bbox的两个角作为关键点;ExtremeNet 检测所有目标的 最上,最下,最左,最右,中心点;所有这些网络和我们的一样都建立在鲁棒的关键点估计网络之上。但是它们都需要经过一个关键点grouping阶段,这会降低算法整体速度;而我们的算法仅仅提取每个目标的中心点,无需对关键点进行grouping 或者是后处理

单目3D 目标检测:

3D BBox检测为自动驾驶赋能。Deep3Dbox使用一个 slow-RCNN 风格的框架,该网络先检测2D目标,然后将目标送到3D 估计网络;3D RCNN在Faster-RCNN上添加了额外的head来做3D projection;Deep Manta 使用一个 coarse-to-fine的Faster-RCNN ,在多任务中训练。而我们的模型同one-stage版本的Deep3Dbox 或3D RCNN相似,同样,CenterNet比它们都更简洁,更快


Preliminary

        令I\epsilon R^{W\times H\times 3} 为输入图像,其宽W,高H。我们目标是生成关键点热力图\hat{Y}\epsilon [0,1]^{\frac{W}{R}\times \frac{H}{R}\times C},其中R 是输出stride(即尺寸缩放比例),C是关键点类型数(即输出特征图通道数);关键点类型有: C = 17 的人关节点,用于人姿态估计; C = 80 的目标类别,用于目标检测。我们默认采用下采用数为R=4 ;\hat{Y}_{x,y,c}=1 表示检测到的关键点;\hat{Y}_{x,y,c}=0 表示背景;我们采用了几个不同的全卷积编码-解码网络来预测图像 得到的\hat{Y}:stacked hourglass network , upconvolutional residual networks (ResNet), deep layer aggregation (DLA) 。

       我们训练关键点预测网络时参照了Law和Deng (H. Law and J. Deng. Cornernet: Detecting objects as
paired keypoints. In ECCV, 2018.)  对于 Ground Truth(即GT)的关键点 c ,其位置为 p \epsilon R^{2} ,计算得到低分辨率(经过下采样)上对应的关键点 \tilde{p}=\left \lfloor \frac{p}{R} \right \rfloor . 我们将 GT 关键点 通过高斯核  分散到热力图 上,其中 是目标尺度-自适应 的标准方差。如果对于同个类 c (同个关键点或是目标类别)有两个高斯函数发生重叠,我们选择元素级最大的。训练目标函数如下,像素级逻辑回归的focal loss:

 其中  和 是focal loss的超参数,实验中两个数分别设置为2和4, N是图像 I 中的关键点个数,除以N主要为了将所有focal loss归一化。

        由于图像下采样时,GT的关键点会因数据是离散的而产生偏差,我们对每个中心点附加预测了个局部偏移  所有类别 c 共享同个偏移预测,这个偏移同个 L1 loss来训练:

 只会在关键点位置 做监督操作,其他位置无视。下面章节介绍如何将关键点估计用于目标检测。


Objects as Points

        令 是目标 k (其类别为   )的bbox. 其中心位置为  ,我们用 关键点估计 来得到所有的中心点,此外,为每个目标 k 回归出目标的尺寸  。为了减少计算负担,我们为每个目标种类使用单一的尺寸预测   ,我们在中心点位置添加了 L1 loss:

 我们不将scale进行归一化,直接使用原始像素坐标。为了调节该loss的影响,将其乘了个系数,整个训练的目标loss函数为:

 实验中, ,,整个网络预测会在每个位置输出 C+4个值(即关键点类别C, 偏移量的x,y,尺寸的w,h),所有输出共享一个全卷积的backbone;

 

从点到Bbox 

       在推理的时候,我们分别提取热力图上每个类别的峰值点。如何得到这些峰值点呢?做法是将热力图上的所有响应点与其连接的8个临近点进行比较,如果该点响应值大于或等于其八个临近点值则保留,最后我们保留所有满足之前要求的前100个峰值点。令  是检测到的 c 类别的 n 个中心点的集合。 每个关键点以整型坐标 的形式给出。作为测量得到的检测置信度, 产生如下的bbox:

其中是偏移预测结果;是尺度预测结果;所有的输出都直接从关键点估计得到,无需基于IOU的NMS或者其他后处理。

 

3D 检测

       3D检测是对每个目标进行3维bbox估计,每个中心点需要3个附加信息:depth, 3D dimension, orientation。我们为每个信息分别添加head.

        对于每个中心点,深度值depth是一个维度的。然后depth很难直接回归!我们参考【D. Eigen, C. Puhrsch, and R. Fergus. Depth map prediction from a single image using a multi-scale deep network. In NIPS, 2014.】对输出做了变换。 其中 是sigmoid函数,在特征点估计网络上添加了一个深度计算通道 , 该通道使用了两个卷积层,然后做ReLU 。我们用L1 loss来训练深度估计器。

       目标的3D维度是三个标量值。我们直接回归出它们(长宽高)的绝对值,单位为米,用的是一个独立的head :   和L1 loss;

       方向默认是单标量的值,然而其也很难回归。我们参考【A. Mousavian, D. Anguelov, J. Flynn, and J. Kosecka.
3d bounding box estimation using deep learning and geometry. In CVPR, 2017.】, 用两个bins来呈现方向,且i做n-bin回归。特别地,方向用8个标量值来编码的形式,每个bin有4个值。对于一个bin,两个值用作softmax分类,其余两个值回归到在每个bin中的角度。

 

人姿态估计

       人的姿态估计旨在估计 图像中每个人的k 个2D人的关节点位置(在COCO中,k是17,即每个人有17个关节点)。因此,我们令中心点的姿态是 kx2维的,然后将每个关键点(关节点对应的点)参数化为相对于中心点的偏移。 我们直接回归出关节点的偏移(像素单位) ,用到了L1 loss;我们通过给loss添加mask方式来无视那些不可见的关键点(关节点)。此处参照了slow-RCNN。

        为了refine关键点(关节点),我们进一步估计k 个人体关节点热力图  ,使用的是标准的bottom-up 多人体姿态估计【4,39,41】,我们训练人的关节点热力图使用focal loss和像素偏移量,这块的思路和中心点的训练雷同。我们找到热力图上训练得到的最近的初始预测值,然后将中心偏移作为一个grouping的线索,来为每个关键点(关节点)分配其最近的人。具体来说,令是检测到的中心点。第一次回归得到的关节点为:

我们提取到的所有关键点(关节点,此处是类似中心点检测用热力图回归得到的,对于热力图上值小于0.1的直接略去): for each joint type j from the corresponding heatmap 

然后将每个回归(第一次回归,通过偏移方式)位置  与最近的检测关键点(关节点)进行分配 ,考虑到只对检测到的目标框中的关节点进行关联。


Implementation details

       我们实验了4个结构:ResNet-18, ResNet-101, DLA-34, Hourglass-104. 我们用deformable卷积层来更改ResNets和DLA-34,按照原样使用Hourglass 网络。

Hourglass

堆叠的Hourglass网络【30,40】通过两个连续的hourglass 模块对输入进行了4倍的下采样,每个hourglass 模块是个对称的5层 下和上卷积网络,且带有skip连接。该网络较大,但通常会生成最好的关键点估计。

ResNet

Xiao et al. [55]等人对标准的ResNet做了3个up-convolutional网络来dedao更高的分辨率输出(最终stride为4)。为了节省计算量,我们改变这3个up-convolutional的输出通道数分别为256,128,64。up-convolutional核初始为双线性插值。

DLA

即Deep Layer Aggregation (DLA),是带多级跳跃连接的图像分类网络,我们采用全卷积上采样版的DLA,用deformable卷积来跳跃连接低层和输出层;将原来上采样层的卷积都替换成3x3的deformable卷积。在每个输出head前加了一个3x3x256的卷积,然后做1x1卷积得到期望输出。

Training

训练输入图像尺寸:512x512; 输出分辨率:128x128  (即4倍stride);采用数据增强方式:随机flip, 随机scaling (比例在0.6到1.3),裁剪,颜色jittering;采用Adam优化器;

在3D估计分支任务中未采用数据增强(scaling和crop会影响尺寸);

更详细的训练参数设置(学习率,GPU数量,初始化策略等)见论文~~

Inference

采用3个层次的测试增强:没增强,flip增强,flip和multi-scale(0.5,0.75,1.25,1.5)增强;For flip, we average the network
outputs before decoding bounding boxes. For multi-scale,we use NMS to merge results.




Experiments

 

 

 

 

文章网络结构细节信息见下图:

 

おすすめ

転載: blog.csdn.net/weixin_39875161/article/details/90552609