3D Active Appearance Model alignment using intensity and range data

#3D Active Appearance Model alignment using intensity and range data
輝度と深度情報を用いた三次元AAMの特徴点抽出

##概要
- AAMは画像に形状や輝度情報をマッチングさせるために広く使われている．
- この論文ではよく二次元で使われるモデルを三次元に拡張する
- そしてRGBと深度情報を持つ画像の特徴点抽出の統合のための効果的な手法を導入する．
- 三次元モデルをつかうことで顔の方向，形状，位置の正確な推定を行うことができる．
- 今ある手法では二次元と三次元のモデルの各重みを手動で決めている．
- 観測された画像特性とセンサー特性をもとに特徴点抽出のガイドとなる手法を開発した．
- 私たちのアプローチは深度とRGBの異なるカメラのセットを用いて実験的に検証をおこなた．
- 実験では80°の頭の方向において輝度画像のみを用いた3DAAMに比べ最大26%の改善を，3Dの方向推定を謳っている最新の3DMMに比べ30%の改善が達成できた．

##はじめに
- ロボットは人間により支配された環境ではより多く動いている
- ともに反善名動作を確保するためには，まわりの人間の理解は必要になる
- 安全なシステムは人間の意図（顔は最も人間の気持ちの一部を表し，顔の検出，認識，顔の位置の測定は人間とロボット，人間と機械のインタラクションに不可欠である）を推論すことができることが必要になる．
- 顔の方向の推定は重要である．それは人の注意の方向を強い指標を与えるからである．
- HRIやHMIを基礎とする人間の中の中心の情報は今後の安全な運転とアクシデントを減らすITS(高度交通システム)の基礎固めに必要不可欠である．
- 人の注意を知ることによって私たちに随時ドライバーが何を見てどんなミスがあるかを考慮した警告を発することができる
- それは見返りとして発せられた警告の効果が増加した不要な警告を減らすことになる．
- 本論文では今のRGBと深度をもつカメラを元に三次元方向の形状，アピアランス，三次元の位置や方向を同時に推定する手法を提案する
- 深度のカメラとして色の代わりに距離センサーを用いる
- RGBカメラはカラーまたはグレースケールいずれかである
- 私たちのシステムでは角度の広い中での人の頭の方向かんじることによって人とロボットのインタラクションを潜在的に修正する
- 他のアプローチが正面画像に力を入れている中，私たちはサイドから見える頭に対して良いパフォーマンスを目指す
- さらに応用としてITSがあり，ドライバーの状態の感覚は適応的な感覚を行う．
- 提案システムはドライビイングシミュレーターで使用され，ドライバーの活動の検出の重要な特徴は頭の向きである
- 図５は評価実験の一つを示している．
- 高角度でのアライメント能力は私たちにドライバー注視のトラッキングをもたせる．それは，ドライバーが肩の向こうを見ている時，もしくはセンサーをドライバーの正面に直接配置できない時
- AAMをもちいた画像の特徴点抽出は様々な出版物[2-4]において示されてきた
- しかし伝統的なAAMは正面顔のみであった．それは４０度以上の角度は2D顔画像のテクスチャに大きな変化を与えるからである
- Sung[5]は円筒のモデルをもちいて２Dと３Dの形状モデルを推定のためにトラッキングを行った．しかしこのアプローチは-45°から45°のヨー角度である
- View-Based AAM[6]は幅広い角度のアライメントを達成した提案である．
- これらはすべての姿勢の学習データが必要になるがこれは本手法では必要としない
- 私達の3DAAMでは2D形状は3D形状によって置き換えられ，そしてアライメントはワープ関数（3D形状を2Dへ投影する）においてパフォーマンスが向上した．
- 3DMM[7,8]のような生成モデルはAAMと同様のコンセプトを用いているが非常に高密度の3D形状を伴う
- 3Dデータのアライメントは提案されてきたが目領域などの重要な位置においてノイズや欠損などから顔の特徴点の位置の抽出は難しかった
- SalahとAkarun[9]特徴の位置付における三次元データの利用について評価した
- 彼らは正面下における位置づけにちいて比較を行った
- 結果として照明補正の必要が有ることが示された
- Similary[10,11]はGabor波形をもちいた位置づけ手法を提案した
- 私たちは特徴の位置づけと推定のために通常の高解像度画像を結合した．

##本手法

　本手法は輝度情報と深度情報の能力を用いる．輝度と深度の間の重み付けのためにセンサーによるノイズ特徴を用いた．重み付けにはガウシアンを用いた．また輝度と深度の重み付けは自動的にバランスを取った．
　本実装は２つの論文[15][16]を統合し，実験的な評価を加えながら論理的に明確にした．
- 二章では3DAAMについてどのように輝度データにマッチングを行うかについて説明した．
- 三章ではどのように深度情報がアライメントに用いられるか，どのようにして二段階の最適化が行われるか
- 四章では基準のAAMではと[15]の手法をもちいて評価を行った
- 五章では概要と結論を述べる


##二章

2Dの画像を3DAAMでアライメント行うために，フィンティングの過程はモデルのアピアランスとテストのアピアランスの距離のノルムの最小化問題として扱われる．

###ワープ関数
3Dから2Dへプロジェクションしたあと，2Dを自由形状（平均形状）へマッピングする必要がある．2Dは制限された数の特徴点から構築され，輝度のマッピングは区分（形状の特徴点によって形成されるメッシュの）に定義される．２つの対応するメッシュ間のマッピングははじめに行われる.特徴点(X)は自由形状上の特徴点（$X_i,X_j,X_k$）によって形成される内部のメッシュであると仮定すると$Φ_x$と$ω_x$を持ちいいて以下のように書ける．

![1.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/b6b1b5c6-97b2-5401-1aff-efd98a9aba87.png)

よって，自由形状へのマッピングは以下のように書ける．ここでpは形状モデルの固有ベクトルの行列であり，qは姿勢パラメータである．

![2.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/8f660899-e11a-b871-ae45-060cbb592518.png)

$I(x)$が点$x$における輝度を表しており，現在の形状の輝度は自由形状へとワープすることができる．$W(x;p,q)$は3Dの形状の点を二次元の点へとワープさせる関数である．そして，以下の式は実際の輝度と形状モデルの輝度の誤差を最小にすることを目的としている関数である．

![3.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/0075d30b-f2f8-8aaf-5654-111ba94db8b3.png)

###線形化とコスト関数の最小化

前項では非線形なコスト関数を定義したが実際は線形で無くてはならない．ここで$λ$と$p$と$q$がはじめから提案されているとする．そして，以下の式のように$Δλ，Δp，Δq$だけ繰り返し更新するとする．

![4.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/aa7cf196-5ac9-780b-afbf-3cc6d2f1b6eb.png)

この式は$p$と$q$を一次近似することで以下のように書ける．ここはわかりづらいの合成関数の微分を参考にするとわかりやすいです．

![5.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/810d51e7-4020-4adb-4a40-e78e9ecbc94e.png)

最終的に最後のアピアランスの項を２つに分割し以下のようになる

![6.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/4ae89809-d3d5-f050-cbf1-b5b7b354fb0d.png)

###ワープヤコビアン

前項ではWのヤコビアンが必要になった．Wはアファイン変換における固定された数として決められており，それぞれの変換は以下のように依存する．
1. （$x_i,x_j,x_k$）の中にxが位置する
2. ｐとqによって決まる現在の形状の（$x_i',x_j',x_k'$）の形状点に対応する
ワープ関数のヤコビアンをかいてみるといかのようになる

![7.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/acb27613-969d-a75d-684b-995574ef853c.png)

連鎖律（chain rule：合成関数を微分すると，それぞれの導関数の積になる法則）を適応すると以下のようになる．

![8.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/560d306d-55fa-539f-44dc-71f83aadc117.png)

これをみると，$x$におけるワープ関数のヤコビアンの値は特徴点のヤコビアンの線形結合になっている．
$x_i'$は現在の2D形状のi番目の特徴点の位置に立っている．現在の3D形状がモデルパラメータ$p$や姿勢パラメータ$q$から取り出される.
そして$x_i'$は$P$によって3D形状の$X_i'$から計算することができる．よって，$x_i'$のヤコビアンはchain ruleが適応され以下のようになる．

![9.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/f979497d-a8a2-a9e1-9047-b48169d321ed.png)

この式においてはじめの項はいかのように単純に表すことができる．

![10.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/930284dc-0105-4949-f5d5-95bc14a992f8.png)

二つ目の項は$\frac{∂W}{∂p},\frac{∂W}{∂θ},\frac{∂W}{∂t}$と３つのパートに分けることができる．

コスト関数はよって，モデルパラメータと姿勢パラメータの繰り返しの計算と更新によって最小化される．提案された方法は3Dの世界において3D形状を生成する．この方法は2DAAMを基準にしており，コスト関数を伴って3D形状と2D形状の間の一貫性を守る成約に結合する．一貫性を守るために，一定のKが選ばれる．私達の研究では3D形状モデルのみを用いているため，定数は必要とならない

##三章

この章では深度データをもちいてどのように3DAAMでFittingをおこなうのかについて説明する．深度と輝度をもちいた3DAAMのアライメントはセンサー特徴を元にした最新のバランシング手法を導入した二段階の最適化によって行われる．

###2D制約をともなった3Dデータのアライメント

3Dのアライメントはモデルと対応する点の間の距離を最小にするICP[21]フレームワークが用いられる．ICPでは正確さとロバスト性を達成するために形状モデルの投影による変形を制約条件として3D形状と画像の深度データ間の対応を探索する．
2Dの制約は形状モデルの投影(前のセクションで得られた3DAAMの結果)から得られる．直感的には以下の式の最適化が目的である．

![11.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/88171742-9f04-9fe8-56b9-4a6bfa601838.png)

$W_{3D}(x;r)$は形状モデルを実際の3D座標へマッピングする3Dのワープ関数である．これは$W(x;r)$と似ているが2Dへの投影が入っていない．$X_{3D}',X_{2D}'$はそれぞれ$W_{3D}(x;r),W(x;r)$に対応する実空間上の点である．3Dの対応は距離基準によってわかる．$X'_{2D}$は前章で導入した伝統的な3DAAMの結果である．$K$は3Dと2Dのデータ間の重みをコントロールする固定パラメータである．$K=1$のときはオリジナルの輝度情報をもちいた3DAAMであり，$K=0$のときは，3Dデータに従う輝度画像をでの3DAAMアライメントに対応する．

$K$の探索は直感的であり，それぞれの特徴点の不確実性と3Dデータ（メートル）,2D制限間（ピクセル）のバランスを取るために，私たちは以下の式を導入した．

![12.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/fdceb649-97c4-1ea6-8314-644bd03be9b7.png)

$f(x),g(X'_{2D})$は各モデルの特徴点の重み関数である．

モデルの投影を伴って，3D形状から2D形状へのマッピングは$\frac{f}{Z}$によってスケーリングされる．よって$u(x)$は$(\frac{f}{Z})^2$となる．ここで$Z$は$W_{3D}(x;r)$の$z$値である．そして，$f$はカメラのフォーカスの位置である．マッピング関数はメートルからピクセルへと単位の違いをマッピングする．
3Dと2Dのアライメントの重み関数を決定するために，3Dの対応と2Dの制約から観測された法則を評価した．そのためにモデルによる特徴点とそれらに対応する特徴点を平均ゼロの分散をともなったガウシアン分布として考慮した．

3D項の重みは以下のように定義される．
![13.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/3d019968-9d3b-6258-c4eb-ae826189179c.png)
$σ_{3D}^2$はセンサーデータの分散を示しておりノイズをモデル化している．ICPでは輪郭とそれに対応する重みは消去される．もっとも共通な基準は座標と座標の距離である．ガウシアンを使うことによって，センサーノイズレベルの範囲内の座標のペアの重みを高くする．基本的に遠くの座標は無視する．

2D項の重みは以下のように選ばれる．
![14.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/0025470b-5e22-40e6-ab1a-c6e14ff12789.png)
$σ_{2D}$は$x_{2D}'$とそれに最も近いエッジ座標の間の差異の平均である．$D(・)$はテストの輝度画像のエッジ画像から生成された変形マップの距離．$D(・)$の入力はアピアランスベースのアライメントから以前の変形された位置である．顔画像の特徴はおもに輪郭上に配置されるとして，近くのエッジへと投影されたモデル座標からの距離は概念の理想的な評価である．$σ_{2D}$は千t腐れた形状モデルと画像の解像度に強く依存する．

ワープ関数$W_{3D}(x;r)$は$Δr$で更新される．よって目標は以下の目的関数を最適化するような$Δr$を見つけることである．

![15.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/5789d723-064e-c266-7407-f1767b63b60a.png)

テイラー展開を2Dと3Dのワープ関数に用いること，上の偏導関数を解決することで近似解が得られる．単純に$W_{3D}$のヤコビアン行列と$r$を伴った$x$の$W$は$J_{3D},J$として表される．よって近似解$Δr$は以下のようになる．

![16.PNG](https://qiita-image-store.s3.amazonaws.com/0/94250/fabd5425-f7ea-4c16-d173-f0c979f88db0.png)

この解はヘッシアンが実際は3Dと2D制約の線形結合であることを示している．差異の項も線形結合である．もし，3Dデータの信頼が2D制約より大きければこのモデルは3D構造を基準としてものへと変形し，この変形は3D構造を調整し，よい特徴の位置を考慮するだろう．

###二段階最適化

深度と輝度をのアライメントを統合するために，二段階の最適化が使用される．はじめのアピアランスベースのアライメントでは2Dデータとモデル間の対応する点を探す．2段階目では3Dと2D制約の元で形状を変形する．
3Dのアライメントの過程でははじめ更新パラメータの取得を行う．その後更新された$W(x;r)$によってワープされた座標値が制約$X_{2D}'$として使われる．アルゴリズム１では実際の過程を示している．
3Dデータのアライメントをサポートした，提案されたアルゴリズムは高角度の処理をする能力を改善した．私達のアプローチは自動s的に観測された3Dデータと2Dデータの重みを調節する．

<アルゴリズム１>
1. 初期パラメータを変数に入れる
2. 入力画像の微分画像を作成
3. 収束するまでループ
4. 　Δp,Δq,Δλを算出
5. 　p' = p + Δp
6. 　q' = q + Δq
6. 　λ = λ + Δλ
7. 　$W(x;p',q')$を用いて$X_{2D}'$を探索
8. 　収束するまでループ
9. 　　$W_{3D}(x;r)$を用いて$X_{3D}'$を探索
10. 　 u(x),f(x),g(x)を算出
11. 　 ΔpとΔqを算出
12. 　 p = p + Δp
13. 　 q = q + Δq
14.  ループ終了
15. ループ終了