SMPL: A Skinned Multi-Person Linear Model

SMPL: A Skinned Multi-Person Linear Model

Abst.
 体の形とポーズに依存した人体モデル「Skinned Multi-Person Linear Model(SMPL)」を紹介する。今までのものとは違い、ポーズの合成形状はポーズの回転行列に対して線形だ。

1. Intro
 我々の目標は、リアルなアニメの人間の形状を作ることだ。どんな体系でも、どんなポーズでも。既存のレンダリングエンジンにも対応させたい。今までは手作業で姿勢合成とかやってた。その変わり、人体のスキャンとかやりはじめたけど、既存のレンダリングエンジンでは使えなかった。
 自動で身体モデルを学習し、リアルで既存のレンダリングエンジンでも使えるものを目指す。我々が提案するSMPLはポーズに応じて、自動で皮膚が追従する。
 よく使われるLinear Bkend Skinningモデルは関節の曲げがいまいちである。色々研究がされている中で、最もよかったアプローチは三角曲げだ。でもやっぱり、色々な人の体系やポーズには適合できなかった。
 我々は学習ベースで関節の回転と皮膚の様子を推定する。我々の重要なキーは、ポーズの合成を関節の回転行列の線形関数で表現する点だ。回転行列は有界で使いやすい。
 皮膚の頂点もポーズごとにスキャンして、自動で学習されました。
 男女の体系をCAESARデータセットからPCAを使って、学習しました。最初にテンプレートメッシュを回帰した。メッシュの頂点の位置の誤差は少なかった。
 SMPLはレンダリングも早くて、シンプルで良い。顔と手のdetailは省いた。

2. Related Work
 線形皮膚合成と形状の合成は広く使われている。

Blend Skining
 スケルトンの部分空間の変形:皮膚合成はスケルトンの向上に表面のメッシュが取り付けられている。頂点は近くの骨に重みづけで影響される。この影響は線形なので、Linear Blend Skinning(LBS)と呼ばれる。これはいくつか問題があったので、クォータニオンを使う方法などが試みられている。しかし、これは不自然な結果を起こしうる。

Auto-rigging
 この手法で共通するのは、メッシュをたくさん集めて、骨と一緒に関節、合成の重みを推定する。これらは補正計上合成を学習しないため、LBSの問題を解決しない。メッシュのシーケンスは新しい、ポーズとモーションを生成しないだろう。ここでは、運動学の構造が既知としているが、アプローチはこれらを用いて学習することも可能だろう。

 これら二つの制限は、モデルは身体形状をカバーできないことだ。

Blend shapes
 基本的なBlend Skinningの欠点を克服するために、Pose Space Deformation model(PSD)は、変形を基本形状と関連付けた。この変形は任意のポーズの関数だ。これは多くのフォロワーを生んだ。我々は重み付きPSDと似たアプローチをとる。これはレストポーズの補正をし、Skinning equation(ex:LBS)を適用する。これは特定のキーポーズの補正シェイプを定義し、ベースシェイプに追加して、ブレンドスキニングで変換したときに、正しいシェイプを生成するためのものです。一般的には、例示ポーズの距離を算出し、重み付き線形和で結合される。

これらは重み付き距離に基づく。リアルタイムに距離と重みを計算しなくてはいけない。でもこれらの重みはアニメでは、事前に与えられる。

Learning pose models
 AllenはPSDを使ったが、3Dscanから学習した。彼らは胴体と腕にそれぞれ着目した(体全体でなく)。キーポーズの変形を保存し、それぞれを補完した。これはかなりうまくいった。しかし、新しいポーズは作らなかった。複雑さが増すと、コントロールする変数が増えて、それとどうインタラクションすればよいかわからないからだ。

この問題を解決するため、

 

単語
・corrective:是正、修正

 

 

 

 

 

 

FaceNet: A Unified Embedding for Face Recognition and Clustering

Abst.
 顔画像を直接近さが測れるユークリッド空間に落とせるFaceNetを開発した。これにより、顔認証やクラスタリングができてうれしいよ。

1. Inrto
 顔画像をDeepで埋め込みベクトルにして、顔の近さ=L2距離にする。
 今までボトルネック層を使ってたけど、間接的だし、次元が多き過ぎる。
 トリプレットを利用して、直接埋め込み用のモデルを作る。
 トリプレットの選び方が大事でした。

3. Method
3.1 Triplet Loss
 埋め込み空間のノルムは1に制限する。
3.2 Triplet Selection
 ハードポジティブは、アンカーと一番距離が離れたポジティブ。ハードネガティブはアンカーと最も近いネガティブ。
 オンラインでミニバッチからサンプリングしてくる。
 最もハードなポジティブを選ぶ代わりに、ハードネガティブを選択しながら、ミニバッチ内の全てのアンカーポジティブペアを使用します。
 セミハード:αよりは近いが、依然として、pよりは遠いnを利用する。ハードネガ底部を使うと、長さ0の局所解に落ちる可能性がある。

 

Learning Fine-grained Image Similarity with Deep Ranking

Abst.
 細分化された画像の近さを測るのは大変。クラス間やクラス内のきょりなど。。画像からDeepを使って、直接距離を測ってみます。

1. Inro
 クエリ画像に近いものを探すのは、近年の画像サーチエンジンに必須だ。
 よくあるのは、カテゴリレベルの近さだ。二枚の画像が同じクラスに属するか否かを考える。しかし、これは十分でない。同じクラス内の近さを知るのが必要になる。
 ハンドクラフト特徴では、限界があるよね。
 Deepは画像識別で大成功だけど、画像の近さのランキングは、識別とは違うよね。色違いの車は全部車カテゴリだけど、近い色のほうが近いよね。三つ組みでこれを実現します。三つ組は、クエリとポジティブ、ネガティブで構成されます。ポジティブはネガティブより、クエリに近いとする。
 機械学習では、訓練データが大事だよね。ブートストラップ法により、無限に訓練データを生成する方法を提案する。
 異なる構成のネットワークで、効果を確認した。識別ネットワークの良さとこの良さは一緒ではなかった。
 近さモデルの精度は、トリプレットのオーダーで決まります。データセットは我々が最初に作りました。
 貢献は、①画像の近さを直接測れるよになったし、新しいブートストラップ法を提案した。②マルチスケールのネットワーク構造を開発した。③オンライン学習の計算効率を示した。④評価データセットを公開した。

2. Related Work
 これまで、カテゴリレベルのやつしかなかった。
 ペアランキングモデルはペアをとってくる方法が大事。今回大規模データでいけるやつを考案した。

3. Overview
 我々のゴールは、画像の近さを学習することだ。
  D(f(P, f(Q))=||f(P) - f(Q)||^2
fは埋め込み関数で、Dは距離だ。似ているやつは、似ていないやつより遠くする。
  D(f(Pi), f(pi+))<D(f(Pi), f(pi-))
となるように、fを学習する。ロスは
  l(pi, pi+, pi-) = max{0, g + D(f(pi, pi+) - D(fpi, pi-) ))}
となる。

 4. Network Architecture
 ダウンサンプリングして、各ネットワークに突っ込む
5. Optimization
5.1. Triplet Sampling
 全部やってるとやばいから、オンラインで重要なやつだけやる。

なるほど、クラス内の順序も決まってる前提なのかー。

 

単語
indispensable:欠かせない
distinction:区別
postulate:公準

距離学習

下記を基本的にベースに。

Triplet Loss 徹底解説 


Contrastive Lossってなに?

Siamese Networkと損失関数のContrastive Loss

・Siameseによる推論フロー

1. ネットワークにペア画像を入力
2. 得られた特徴ベクトルを空間に埋め込む
3. 最適な距離Dを出力する。
同じクラスは近く、違うクラスは遠くなるように学習する。

・Conrasitive Loss 
 L=\frac{1}2(YD^2)+(1-Y)max(margin -D, 0)^2)

→同じクラスなら、近くなるように、違うクラスなら、margin以上の距離を持つように。

これでよくない?Triplet-Lossってなんなの?

 

Full-Body Locomotion Reconstruction of Virtual Characters Using a Single Inertial Measurement Unit

Full-Body Locomotion Reconstruction of Virtual Characters Using a Single Inertial Measurement Unit

Abst.
 一個のIMUから全身を復元する。でも動作は自由度が高すぎて、かなり難しい。まず、ユーザの全身歩行とIMUのデータを同時に取得する。現在の歩行のフェーズを推定して、最も可能性の高い軌道を予測して、下部を補間していく。

3. Methodology
 手法は三段階に分けられる。最初のフェーズは事前作業が必要。対象ユーザの全身のmocapとIMUのデータを収集。IMUは意味のある歩行フェーズに分けられる。各モーションセグメントの特徴量を抽出する。次のフェーズで、提案する階層型多変量HMMが学習される。特に、HMMの高いレベルでは、セグメントのフェーズをエンコードし、低い階層では、セグメントフェーズの各時刻をエンコードする。上の階層では、歩行のフェーズを推定し、下の階層では歩行のフェーズの進行率を推定する。最後は、

4. Preprocessing
4.2. Motion Segmentation
 歩行の8フェーズに分けると良い。
4.3. Full-Body and IMU Data Registration
 一つが参照モーションとして、登録され、他のがDTWで登録される
4.4. Motion Features
 全身MocapとIMUの特徴ベクトルの生成方法。


5. Hierarchical Multivariate HMM with Reactive Interpolations
 IMUの特徴量をfullbodyのモーションに移すのかなー。

 

その他
 Compared with Slyper and Hodgins’ [13] method,the present one not only searches in a motion database for the closest motion but also interpolatesbetween them to reconstruct a new motion that follows the user’s input trajectoryの補間方法とかは気になるなー。
 基本歩行フェーズをDTWで持っておくのは大事かもな。

 単語
 reactive:反応

Deep Inertial Poser: Learning to Reconstruct Human Pose from Sparse Inertial Measurements in Real Time

Deep Inertial Poser: Learning to Reconstruct Human Pose from Sparse Inertial Measurements in Real Time

Abst.
 6個の慣性センサで全身復元をする。いくつか問題がある。1.IMUの状態に相当するポーズは複数ある(不良設定問題)。2.IMUを付けながら、真値を取得するのはコストが高い。3.最適化は非線形性が強くて、リアルタイムにするのは困難。これらの問題のため、Deepで一時的なポーズの事前分布を学習する。十分なデータがあれば、mocapからIMUのデータを生成できる。bidRNNで学習する。実験のため、17の慣性センサでデータセットを作った。

1. Intro
 少数センサで全身復元するやつが最近あるけど、最適化が重くて、リアルタイムではできない。リアルタイムに小数のセンサで全身を復元する困難さは3つある。1.6IMUでは全身の様子はわからない。2.過去の研究では、長時間の依存が重要であるとされた。3.データセット作るのはすごい大変。
 1.大量のMocapデータセットから、IMU情報を生成することにした。これにより、大量の学習データを生成し、Deepの学習ができる。2.長期の時間依存を実現するため、RNNを利用する。しかし、ACCをフルで使うのは困難。そこで、accを再構成するようなlossを作った。3.bi-directionalでやる。実行時はslidingwindowでやる。
 疑似IMUで学習して、リアルIMUでfine-tuningした。

2. Related Work
2.2 Optimization based sensor fusion methods
 オフラインのやつは、計算が重くて、大変。
2.3 Learning based methods
Sparse IMUs
 少数のIMUから全身を復元するものでは、ガウス過程を用いたものがある。これは各動作などが限定されており、用途が限られる。
Locomotion and gait
 IMUは歩行の解析にも用いられている。周期性が重要な部分だ。

3. Method Overview
 IMU+SMPLでリアルタイムにSMPLを推定します。
3.4.1 Training with uncertainly
 IMUの入力から、推定パラメータのガウスパラメータ(平均、分散)を出力する。(?正解の分布なんてわかるのか??)ちょっとlossの取り方がよくわからない。。
3.4.2 Reconstruction of acceleration
 各フレームの入力はxt=[ot, at]だ。ot:は角度で、atは加速度だ。これはIMUから観測される。モデルは入力加速度の復元も要求される。これをコストにすることで、さらによくなる。これも分布の形で推定する。


その他
[Trumbleet al. 2017],にIMUとMocapデータがある?→見てみたいな。
[Schwarz et al. 2009]に用途を限ったものがある?→見てみたい。今回はこれでいいし。
[Wang et al. 2017]Deepの歩行解析?見てみたい。2章のLocomotion and gaitをチェックしておいたほうがよい。
3.2の疑似データ生成も見ておいた方が良い。

 

単語
 conjunction:連結

Sparse Inertial Poser: Automatic 3D Human Pose Estimation from Sparse IMUs

Sparse Inertial Poser: Automatic 3D Human Pose Estimation from Sparse IMUs

Abst.
 少数の体に装着したIMUで屋外の全身モーションキャプチャーを実現する。今まではたくさんIMUを装着したり、ビデオが必要だった。我々はいくつかの異なるアプローチをとり、問題を制限する1.人体測定の制限を含むリアルな性的な体のモデルを利用する。2.モデルを観測されたIMUの情報にフィッティングさせるため、結合された最適化のフレームワークを利用する。結果、腕と足と腰と頭で、任意の動作を復元できる。

1.Intro
 SMPLモデルを利用する。フレームごとに推定するのは、安定しない。一度に全てのフレームをフィッティングする。観測されたセンサに矛盾のない、SMPLのパラメータを全フレーム一度に推定する。角度だけの推定精度と、SIPの異なる人間のモデルを利用した精度を確認した。

 2.Related Works
 IMUを利用した全身復元にフォーカスします。

2.1 Database retrieval and learning based methods
 [CH05]はローカルPCAモデルを利用して、小数の光学マーカを食えりとして、データベースから人のポーズを推定した。[LWC∗11]は6個のIMUで同様に、動きの復元を行った。[SMN09]はガウス過程を用いて、4個のIMUから全身の復元を行った。 [HKP∗
16]では、CNNで歩行のパラメータを抽出した。どれもデータベースに強く依存しており、データベースにない動きは復元できない。

2.2 Full-body IMU MoCap
 全身にIMUつけるのもあるけど、非常にめんどくさい。動画とIMUを組み合わせるものもある。

3. Background
 省略。
4. Sparse Inertial Poser
 6個のIMUから全身の動きを復元するのは、多分に不良設定問題だ。でも一連の動きに矛盾がないとか、考えると意外と問題は制限されてる。
 x*1:T = arg min x1:T Emotioin(x1:T, R1:T, a1:T)
xは各時刻のSMPLのパラメータ、Rはセンサの回転、aはセンサの加速度。
 Emotioin(x1:T, R1:T, a1:T)=wort・Eori(x1:T, R1:T)
            +wacc・Eacc(x1:T, a1:T)
            +wanthro・Eanthro(X1:T)
4.3 The Anthropometric Term
 人のポーズを制限するのに、多変量ガウス分布を用いる。平均姿勢uxと分散Σxを色々なSMPLから姿勢を推定する。これは動的でなく、静止したSMPLを利用する。

4.4 Energy Minimization
 Emotionは非線形性が強くて、最適化が困難だ。LM法で最適化する。

 

 

その他

・TNT15 dataset [MPMR16] は利用できないか見てみた方が良いかも



単語
anthropometric:人体測定
intrusive:煩わしい