はじめに
ECCV2020より以下の論文のまとめ
[1] B. Biggs, et. al. Who Left the Dogs Out? 3D Animal Reconstruction with Expectation Maximization in the Loop. ECCV2020.
概要
- ネット上にあるような犬の画像から犬の3D poseおよびshapeを end-to-end で推定するモデル(SMBLDモデル)
- 学習時は新たに作成したkeypointとsegmentationのアノテーションなどを用いるが、推論時は単眼monocular画像のみ。つまり推論時の最適化処理が無い
- 3Dモデルの関節角度、shapeも学習で用いるが、shapeに関しては混合ガウス分布を仮定してEMアルゴリズムで解く
- 推論時の最適化が無いにも関わらず、最適化がある既存手法の精度を上回った
学習時
- EMアルゴリズムで学習
- 2Dのposeやシルエットを用いる
推論時
- 入力は画像のみ
- モデルフィティングのフェーズが必要ないので推論が早い
以下ではそれぞれ左側の入力画像に対して右側のような3D shapeを推定している。バニラなSMALSTモデルなどと比べて同じ犬種内の手足の長さ、尻尾の長さなどの違いを捉えている。
既存モデルとの比較
Lions and Tigers and Bears との比較
最上段の本モデルに対して、まず上から3つ目のLions and Tigers and Bears(いわゆるSMALRモデル)と比較する。
SMALRは対象動物を捉えた複数枚の画像とそのpose, シルエットからテンプレートモデルをフィッティングさせながらパラメータ調整をする。
一方で本モデルは学習時に多くの犬で学ぶため、推論時は1枚の画像からposeやshapeを推定できる。
3D-Safariとの比較
次に上から2つ目の3D-Safariモデル(いわゆるSMALSTモデル)との比較。
いずれもモデルを学習させ、それを用いて推論するが、SMALSTは推論時に複数の画像でモデルフィッティングさせる一方で、本モデルは推論時に一枚の画像を入力としてpose, shapeをforwardで推定するのみ。
推論時の流れとネットワークのアーキテクチャ
- この図で左から Input image i を入力する。
- 学習したencoder(ResNet-50など)からfeature mapを出力する
- feature mapをそれぞれ独立したモジュール(fc)に入れ、それぞれ translation, focal length, pose, shapeを出力する。
- これらのうち、pose $\theta$ と shape $\beta$ から3D model(各頂点 $F_v$)を出力する
学習時の流れと Loss
1. 3Dモデルの関節を再投影したLoss
四肢の位置を正しく学習させるため、推定した3Dモデルの関節位置 $F_J$ を画像上へ再投影し、その2D上の位置からlossを求める。
このとき、モジュールから出力された translation $t$ , focal lentgh $f$ を用いる。
\pi (F_J (\theta, \beta), t, f)
これと人がアノテーションした画像上の関節位置 $\hat{X}$ とでL2誤差を求める。
L_{joints} (\theta, \beta), t, f; \hat{X}) = \| \hat{X} - \pi (F_J (\theta, \beta), t, f) \|_2 \tag{1}
2. 3Dモデルのshapeを再投影したLoss
正確なshapeを学習させるため、推定した3D shapeを画像上へ再投影し、その2D上のシルエットからlossを求める。
2D上の推定したシルエットはモジュールから出力された translation $t$ , focal lentgh $f$ を用いて
R (F_V (\theta, \beta), t, f)
と書けるので、これと正解値 $\hat{S}$ とでL2 lossを求める。
L_{sil} (\theta, \beta, t, f; \hat{S}) = \| \hat{S} - R (F_V (\theta, \beta), t, f) \|_2 \tag{2}
3. pose prior loss
より形状をリアルにするため、アーティストが作成した3Dモデルもlossとして用いる。各関節はGauss分布を仮定し、以下のマハラノビス距離でlossを求める。
L_{pose} = (\theta, ; \mu_\theta, \Sigma_\theta) = (\theta - \mu_\theta)^T \Sigma_\theta^{-1} (\theta - \mu_\theta) \tag{3}
平均 $\mu_\theta$ は3Dモデルのそれだろうが、分散・共分散行列 $\Sigma_\theta$ をどうやって求めるかは不明。
4. shape prior loss
shapeに関してもアーティストが作成した3Dモデルを利用するが、shapeは犬種(ダックスフンド、なんとかレトリバー、etc)によって大きさが大きく違うため、通常のgaussianの過程は適合しない。よって混合Gauss分布を仮定し、EMアルゴリズムで最適化する。
L_{mixture} = (\beta, ; \mu_\beta, \Sigma_\beta, \Pi_{\beta}) = \sum^{M}_{m=1} \Pi^m_{\beta} (\beta - \mu_\beta)^T \Sigma_\beta^{-1} (\beta - \mu_\beta) \tag{5}
実験方法
データセット
新たにStanfordExtraというdatasetを作成した。これは以下のような内容
- 20,580画像に120種類の犬がin the wildの状態で写っている(下図を確認する限り、一枚に1匹である)
- 物体によるocclusionは一部にあるそうだ。下図を見る限り、他の犬と重なっているようなシーンは無い。
- annotationは下図のように骨格20点と体の周囲のsegmentionからなる。これをAmazon Mechanical Turkで実施した。
train testのsplit
- StanfordExtra datasetを80%のtrainと20%のtestに分離した
学習方法
以下の2stepで学習した
- シルエットlossを省いた学習。学習初期にこれがあると局所解に陥るらしい。またデザイナーが作成した3D keypointを用い、EMアルゴリズムは用いない。これで250epoch学習
- 諸々用いてEMアルゴリズムで学習。これを50epoch。
結果
メトリクス
メトリクスは以下の2つ
- annotationされたsegmentationと推論したシルエットでIoUを計算
- annotationされたkeypointと推論されたkeypointでPCKを計算
比較対象
- SMALモデルを提案した論文の手法(下図では 3D-Mと表記)
- 論文[2]の手法(下図では CGASと表記)
定量的評価
既存手法より精度がよい。この2つの比較対象が推論時にannotationを用いたり、最適化したりすることを考えると、本手法はかなりの優位性がありそう。
一方でSMAL系の最新手法を比較対象としないなど、疑問点は残る。
定性的評価
ablation study
以下の3つをablateしたものと比較した
- EMアルゴリズムによるshapeのupdateをablate(下図中の -EM)
- EMアルゴリズムを使用する、しないに関わらず、3D shapeを用いたupdateをablate(下図中の -MoG)
- 本論文で導入したscale parameter(下図中の -Scale)
これを見るとsale parameterが特に効いているみたい
今後の課題と将来の展望
- 他の犬によるocclusionや素早く動くことによるボケが発生した場合は精度が落ちるので、これの対応が今後の課題
- 将来的にはvideoを用いて精度を上げたい
- 今回は犬のみだが、将来的には他の動物に拡張したい
個人的な感想
- 1)入力画像が in the wildである、2)推論時に画像のみ入力とする、3)推論時に最適化を行わない、という点を考慮すると、かなり実用化に近づいた成果ではないか。
- 一方で先にも書いたが、精度的にはSMAL系の最新手法を比較対象としない点は気になる。
reference
[2] Biggs, B., Roddick, T., Fitzgibbon, A., Cipolla, R.: Creatures great and SMAL: Recovering the shape and motion of animals from video. In: ACCV (2018)