あしゅりーも研究室でウンチ漏らしたことある

↑ばか

adventar.org

sasamijp はやく色づく世界の明日から みて

5日目の記事でsう
間違えて公開したので3日だけど公開します。あ?なんかもんくあるか?すみません。
Adventar では登録しても予定日より前だと公開されないみたいですね。

あしゅりーはばか
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↖ここには何も書いてありません

ドイツのトリアドベントカレンダーに参加するのは3年ブリ2回めです。 前回の記事は自分で探して。

ということで、ドイツのトリを OpenPose に突っ込んでみました。

github.com

OpenPose は画像の中にいる人間の大まかな骨格を推定し、棒人間のように表示してくれるものです。
どんな感じに表示されるのかは上の Github リンク先にjifuがあるので自分でみて。 他にも顔のパーツの位置や輪郭、手の骨格などを推定したり、複数のカメラを使えば三角測量の要領で { \displaystyle x, y, z } 座標を持つ立体的な骨格情報を出力させることができます (単眼カメラで OpenPose が出力できるのは { \displaystyle x, y } 座標のみの 2D 骨格まで)。
つまり、逆に言えば、OpenPose を用いれば人間がいるかどうかを推定できるのです。
私は以前から、ドイツのトリの中には人間がいると踏んでいました。

今回は、以下の2枚の画像を突っ込んでみました。というか、あしゅりーはばかだからこの2枚以外にドイツのトリの全体が写っている写真を撮っていないし、財布もスられた。

f:id:uzuky:20181203190803j:plain
tori1
f:id:uzuky:20181203190825j:plain
tori2

画像たったの2枚だけだったので処理時間もちっとだけで終わった。720p の金曜日のおはよう ( 【まなこ】金曜日のおはよう 踊ってみた - YouTube ) を突っ込んだときは12分くらいかかった。

f:id:uzuky:20181203195657p:plain
プロンプト

結果

f:id:uzuky:20181203191839p:plain
tori1_rendered
f:id:uzuky:20181203191911p:plain
tori2_rendered

人間がいました。
ですが、うーん、完全な人間は検出できなかったようです。
すべての骨格が出力されると、18個の関節点が出るはずです (使用するモデルによって異なるが、今回は BODY_25 にしたのでたぶん18個)。

ですが、ここで諦める私ではありません。
次に、この出力されたデータ (今回は画像の他に JSON で座標を出力した) をもとに、3D 骨格の推定をおこなってみようと思います。
3D 化にはいろいろな手法がありますが、今回はこちら ( GitHub - una-dinosauria/3d-pose-baseline: A simple baseline for 3d human pose estimation in tensorflow. Presented at ICCV 17. ) の手法から、出力周りを少しいじった以下のものを利用します (この記事程度の検証なら前者のでもなんも変わらん) 。

github.com

これは、めちゃたくさんのデータから学習したデータをもとに、 2D の骨格から 3D の骨格を推定するものです。
うまく行けば、以下の動画の左上部分みたいな、斜め上から骨格を見下ろしたような画像 (GIF) を出力することができます。

www.youtube.com

では、先程出力した2つの画像を入力してみましょう。

先に2つめの画像の結果からいうと、こちらはだめでした。そもそも入力画像の骨格が不完全だったので、それが原因でエラーとなってしまうようです…
が、1つ目の方はうまく出力してくれました。
では見てみましょう。

f:id:uzuky:20181203223554g:plain
ドイツのトリの中の人間の骨格 (3D)

うわっきもちわる