5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

論文まとめ:Objects as Points

Last updated at Posted at 2020-02-16

はじめに

journal等投稿先は不明。

概要

  1. 2D、3Dのobject detectionやpose estimationで使えるしくみ
  2. 物体の中央点をヒートマップで推定し、その関連情報も同時に推定する
  3. そこそこの精度を保ちながらリアルタイムなスピードで処理できる

以下が手法をわかりやすくまとめた絵。

CenterNet_img01.png ([1] Figure2より)

物体の中心位置を赤い点のように推定する。出力のうち、矩形の縦チャンネル、横チャンネルからこの中心位置にあたるものを抜いてくればよい。

以下は推論速度と精度との関係図。

CenterNet_img00.png

([1]Figure1より)
YOLOやRetinaNetよりも更に左上に寄っている。

手法の解説

1. ヒートマップの作成

  • $I \in R^{W \times H \times 3}$ ・・・入力画像
  • $\hat{Y} \in [0,1]^{\frac{W}{R} \times \frac{H}{R} \times C}$ ・・・推定したheatmap。$R$ は縮小率。$C$ はheatmapの数。

骨格推定などと同様、ターゲットのheatmapはガウシアンカーネルで山形にする。

Y_{xyc} = \exp \left( - \frac{(x-\tilde{p}_x)^2 + (y-\tilde{p}_y)^2}{2 \sigma^2_p} \right)

$\tilde{p} = (\tilde{p}_x, \tilde{p}_y)$ は出力画像の大きさにおける物体中心点の座標。

$\sigma_p$ は物体ごとの標準偏差。これも骨格推定と同様だが、2つ以上のpeakによる重なりは最大値を採用する。

2. heatmapに関するLoss

heatmap に対するLoss は focal-loss。

L_k = \frac{-1}{N} \sum_{xyc} 
  \begin{cases}
    (1-\hat{Y}_{xyc})^{\alpha} \log (\hat{Y}_{xyc}) & if \ Y_{xyc} = 1 \\
    (1-\hat{Y}_{xyc})^{\beta} (\hat{Y}_{xyc})^{\alpha} \log (1-\hat{Y}_{xyc}) & otherwise  \\
  \end{cases}

$N$ は画像中のkeypointの数。

3. オフセットに関するloss

出力画像は大きさが $\frac{W}{R} \times \frac{H}{R}$ と粗くなってるので、heatmapのpeakを拾っても元の画像上の位置から微妙にずれてる可能性がある。そこでオフセット $\hat{O} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times 2}$ も推定させ、target のオフセットとの L1 で loss をとり、学習させる。

L_{off} = \frac{1}{N} \sum_p \left|\hat{O}_p - \left( \frac{p}{R} - \tilde{p} \right)  \right|   

4. bounding box の幅、高さに関する loss

各 $k$ チャンネルにおける bounding box は1つ推定する。その幅、高さを $w_k, h_k$ とすると、bounding box のサイズは $s_k = (w^{(k)}, h^{(k)})$ となる。

これの推論値 $\hat{S}_{p_k} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times 2}$ とで L1 をとり、lossとする。

L_{size} = \frac{1}{N} \sum^{N}_{k=1} \left| \hat{S}_{p_k} - s_k \right|

5. トータルの loss

トータルの loss: $L_{det}$ は以下。

L_{det} = L_k + \lambda_{size} L_{size} + \lambda_{off} L_{off}

ハイパーパラメータの $\lambda$ は $\lambda_{size} = 0.1$ と $\lambda_{size} = 1.$ を用いている。

6. 推論時のbounding box 推定手順

(1)各 $c$ チャンンルの heatmap におけて周辺8近傍のpeakを値が高いものから順に100個

\hat{P}_c = \left\{ (\hat{x}_{c,i}, \hat{y}_{c,i}) \right\}^{100}_{i=1}

拾う。

(2)中心はオフセットも考慮して $(\hat{x}_{c,i} + \delta \hat{x}_{c,i}, \hat{y}_{c,i} + \delta \hat{y}_{c,i})$ とする。

(3)矩形の座標は推定した $(\hat{w}_{c,i}, \hat{h}_{c,i})$ から

左上の座標は、

(\hat{x}_{c,i} + \delta \hat{x}_{c,i} - \frac{\hat{w}_{c,i}}{2}, \hat{y}_{c,i} + \delta \hat{y}_{c,i} - \frac{\hat{h}_{c,i}}{2})

、右下の座標は

(\hat{x}_{c,i} + \delta \hat{x}_{c,i} + \frac{\hat{w}_{c,i}}{2}, \hat{y}_{c,i} + \delta \hat{y}_{c,i} + \frac{\hat{h}_{c,i}}{2})

とする。

ニューラルネットのアーキテクチャ

4つのアーキテクチャを用いた。

  1. ResNet-18
  2. ResNet-101
  3. DLA-34
  4. Hourglass-104

3番目のDLAは知らなかったが、[2]で提案されたこのような

CenterNet_img20.png ([2]Figure1より) ネットワーク。

実験と結果

1. 4つのネットワークで精度・速度を比較

MS COCO datasetで4つのアーキテクチャを比較したものが以下。

CenterNet_img04.png

推論速度は軽いResNe-18が最速だが、精度は今流行りのHourglassがいい。

2. 他の有名モデルとの精度・速度の比較

MS COCO test dataset を用いて既存の有名モデルとの精度・速度の比較をした結果は以下。

CenterNet_img05.png

説明にも書いているが、CenterNet-DLAはDLAのアーキテクチャ、CenterNet-HGはhourglass。average precisionのスラッシュ左側がsingle scale、右がmulti scale。

FASF に比肩しうる精度でありながら3倍の推論速度となっている。

Reference

[2] F. Yu, et. al."Deep layer aggregation", CVPR 2018.

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?