DensePose:画像中の人物表面のUV座標を推定する

カーネギーメロン大学が公開している2D画像からの人体骨格推定ライブラリOpenPoseの元の研究である”Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields“が発表されて以降、2D画像・動画からの骨格推定の研究とソースコードの公開が活発な印象。

DensePoseは、骨格ではなく、動画中の人物領域の3DサーフェスのUV座標を推定するという、とても具体的なタスクの研究。面白そうなので論文がarXivに公開されてからすぐに読んだのでした。
ただ、CGに詳しくない人には課題設定がピンと来ないんじゃないかな。

DensePose: Dense Human Pose Estimation In The Wild


Dense human pose estimation(密な人体姿勢推定)は、画像中の人物のRGB画素全てを3Dの人体サーフェスへマッピングすることを目的としています。

  • 5万枚のCOCOデータセットの画像に対して人力で2D画像と3Dサーフェスの対応関係をアノテーションした大規模なground-truthデータセット「DensePose-COCO」を提案します。
  • Mask-RCNNを改良し、動画の毎秒複数フレームに写るそれぞれの人物領域の各人体パーツのUV座標を密に回帰推定する「DensePose-RCNN」を提案します。

DensePose-COCOデータセットも公開予定だそうです。
https://github.com/arXivTimes/arXivTimes/issues/638



ソースコードがGitHubで公開されましたね↓
https://github.com/facebookresearch/DensePose

Dockerfileもあるので試すのは楽か?
2018年12月 追記:試した方がいます↓
http://whoopsidaisies.hatenablog.com/entry/2018/12/03/193759

これって、顔画像で言うところのFace Alignmentに近い役割ができて、Body Alignmentって言っても良さそう。
画像中から人物表面のUV座標が推定できれば、身体の模様(つまり服装)を比べたり、入れ替えたり、描き替えたりできるんですよね。

著者にFacebook AI Researchの人が2人入ってるけど、やっぱり目指すのは画像からの個人識別なんですかね。
https://research.fb.com/facebook-open-sources-densepose/
https://shiropen.com/seamless/facebook-ai-densepose

論文では、データセットを作るためのアノテーションツールを設計と、アノテーションの質の評価についても載っている。



ちゃんと解きたいタスクに適したデータセットを用意して、タスクに適したネットワークを設計する、ってのが機械学習の良いアプローチなのだろうか。
機械学習でOverfitting(過学習)と呼ばれる現象は、データセットとタスクのギャップと言えるのかもしれない。

2019年追記:最近はRunway MLというツールで手軽にDensePoseを試すことができるぞ↓
Runway ML:クリエイターのための機械学習ツール
表現のための機械学習(というかディープラーニング)がじわじわと来ている、と勝手に思っている。実際、グラフィックス系のカンファレンスでもディープラーニングのセッションが大盛況だし。クリエイターが機械学習の恩恵を受けられるアプリケーションは、A...

関連記事

CGWORLD CHANNEL 第21回ニコ生配信は『シン・ゴジラ』メイキングスペシャル!

色んな三面図があるサイト

ZBrush 2021.6のMesh from Mask機能を使ってみる

Google Colaboratoryで遊ぶ準備

ZBrushでアヴァン・ガメラを作ってみる 脚のトゲの作り直し

Unity ARKitプラグインサンプルのチュートリアルを読む

ヘッドマウントディスプレイとビジュアリゼーションの未来

UnityのGameObjectの向きをScriptで制御する

hloc:SuperGlueで精度を向上させたSfM実装

ZBrushで仮面ライダー3号を造る 仮面編

素敵なパーティクル

Iridescence:プロトタイピング向け軽量3D可視化ライブラリ

OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる

HerokuでMEAN stack

ZBrushで仮面ライダー3号を造る 仮面編 ZRemesher

OpenGVのライブラリ構成

Transformer Explainer:テキスト生成モデルの可視化ツール

SIGGRAPH ASIAのマスコット

Web経由でRaspberry PiのGPIOを操作したい

Raspberry Piでセンサーの常時稼働を検討する

HTML5・WebGLベースのグラフィックスエンジン『Goo Engine』

OpenMVS:Multi-View Stereoによる3次元復元ライブラリ

MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェア

AmazonEC2のインスタンスをt1.microからt2.microへ移行する

UnityでOpenCVを使うには?

Mayaでリアルな布の質感を作るチュートリアル

ZBrushでゴジラ2001を作ってみる 身体のシルエット出し

OpenMVSのサンプルを動かしてみる

トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ

libigl:軽量なジオメトリ処理ライブラリ

TensorSpace.js:ニューラルネットワークの構造を可視化するフレームワーク

Python for Unity:UnityEditorでPythonを使えるパッケージ

OpenCV

ZBrushのお勉強

プログラミングスキルとは何か?

python-twitterで自分のお気に入りを取得する

顔のモデリング

AR (Augmented Reality)とDR (Diminished Reality)

実写と実写の合成時の色の馴染ませテクニック

Alice Vision:オープンソースのPhotogrammetryフレームワーク

『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン まとめ

COLMAP:オープンソースのSfM・MVSツール

コメント