[DL Hacks] Objects as Points

>100 Views

June 27, 19

スライド概要

2019/06/24
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Objects as Points 東京大学大学院 情報理工学系研究科 電子情報学専攻 坂井・入江研 D1 谷合 廣紀

2.

書誌情報 • 論文名 • • 著者 • Xingyi Zhou (UT Austin) • Dequan Wang (UC Berkeley) Philipp Krähenbühl (UT Austin) • • arXiv • • Objects as Points https://arxiv.org /abs/1904.07850 本スライド中の図は特に注釈がなければこの論文のもの

3.

どんな内容? • NMSを使わないシンプルな物体検出手法 • • 高速で精度もいい! 物体の中心座標をheatmap、縦横の長さを回帰で予測

4.

この発表では • DL輪読会のほうで発表があったようなので詳しくはそちらを... • • この発表では公式のソースコードの中身を見ていきます • • https://www.slideshare.net/DeepLearningJP2016/dlobjects-as-points https://github.com/xingyizhou/CenterNet NuScenesで推論してYOLOv3と精度や速度を比較してみます

5.

これまでの物体検出 • Faster-RCNNやYOLO, SSDの従来の物体検出器はanchorベース • 特徴マップ上の各点において数個ずつanchorを出力 • 学習時はIoUをしきい値としてPositive/Negative判定を行い 推論時はNMSにより大量の予測候補をしぼっていく ⇨End-to-Endな学習ができない! 従来のanchor baseな手法 CenterNet

6.

CenterNet • 物体の中心をヒートマップで予測 • 中心に加え、縦横の長さがわかればBoundingBoxが予測できる • 各点が,そこに中心のある物体の縦横を予測する ⇨ 基本的に一つの物体に対して一つのBoundingBoxしか出力されないため NMSが不要に! 従来のanchor baseな手法 CenterNet

7.

モデル構造 • Backbone + Heads • BackboneはHourglass104, DLA34, ResNet101, ResNet18の4種類 • Headsは物体検出 / 骨格推定 / 3次元物体検出などタスクによって異なる src/lib/models/model.py

8.

Backbone • 左にいくほど精度重視、右にいくほど速度重視 • • Hourglass-104 / DLA-34 / ResNet-101 / ResNet-18 Hourglass以外のbackboneでは物体検出に有用とされている DCNv2(Deformable Convolution Network v2)が使われている • 著者実装はPyTorch0.4.1で書かれており、PyTorch1.x系で動かそうとすると DCNv2で詰まる • src/lib /models/networks/DCNv2を削除して https://github.com/CharlesShang /DCNv2 と入れ替えれば動く

9.

Heads • • • 物体検出であれば次の通り (括弧内はコード内の変数名およびチャネル数) • 物体中心のheatmap (hm: クラス数) • 縦横それぞれの長さの予測 (wh: 2) • 中心座標の補正 (reg: 2) 3次元物体検出の場合はさらに • 深度 (dep: 1) • ヨー角 (rot: 8) • 物体の3次元の大きさ (dim: 3) (骨格推定は省略)

10.

Heads • Backboneで出力された特徴マップから 必要な分だけネットワークの枝を伸ばす src/lib/models/networks/resnet_dcn.py

11.

Decode • Headsで出力された中心や縦横の長さなどからBoundingBoxを求める • _nmsでheatmapから極大値を探索 • 最近傍8点の値以上を持っている点を極大値とする • _topkで上位100位までの座標とスコアを算出 • whやregの対応座標の値を求めBBを算出 src/lib/models/decode.py src/lib/models/decode.py

12.

Inference • TTAは、なし / left-right flip / flip + multi-scale の3種類がある • BackboneとTTAの組み合わせで精度と速度のトレードオフをはかる • COCO valにおける比較(Titan Xp上で実行,解像度は512x512)

13.

実験 • NuScenesデータセットで推論 • MSCOCOで訓練済みのモデルを使用して 2次元物体検出の速度と精度を比較 • • CenterNet (Hourglass104/DLA34/ResNet18) • YoloV3 (416x416) KITTIで訓練済みのモデルを使用して3次元物体検出 • CenetrNet (DLA34)