機械学習によるポーズ推定でモデル人形を制作する(1)

Creating Model Dolls Using Machine Learning(1)
セルシスのデジタルペイントツール「Clip Studio Paint」ではテスト版機能(2020年6月時点)として、写真から3Dモデル人形を生成するツールが含まれています。
とはいうものの、画像は専用のサーバーに送信しないとならず、オフラインでは使えません。下半身の認識もまだ甘く、立ち回りのポーズしかうまく認識してくれないようです。

今回は公開されている既存の機械学習ツールや3DCGソフトを使って、このモデル人形ツールを再現できないかを試してみました。また、ハードウェアとOS以外の費用はかかりません。

Githubで公開されている「hmr」は機械学習ツールのTenserflowを使って、一枚の画像から3Dポーズを推定します。これをBlenderに取り込めるよう拡張されたプロジェクト「video_to_bvh」を改良し、オフラインのパソコンで動くように調整しました。

hmrに関わらず、機械学習のプログラムは得てしてLinuxで動かすことを前提に開発されているため、Linuxを動かす環境が不可欠です。ここではWindows上でLinuxを動作させる「Windows Subsystem for Linux」を使っています。

Windows Homeユーザーは、最新のWindows 10にアップグレードして「WSL2」を導入するか、VMWare Playerなどの仮想マシンを用意しましょう。

WSL(ここではUbuntu 18.04 LTS)を起動したら、以下のコマンドを記入して、基本的なツールを導入します。PythonやTensorflowのバージョンが古いですが、新しいバージョンだとAPIの互換性がなく、かなりのコード修正が必要となります。
sudo apt update sudo apt upgrade sudo apt install python2.7 sudo apt install python-pip pip install scikit-image pip install tensorflow==1.3.0 pip install opencv-python pip install opendr pip install pandas
インストール時にエラーが出るようであれば、こちらのコマンドも試してください(2020年11月時点)。
pip install -U pip python -m pip install --upgrade --force-reinstall pip pip2 install opencv-python==4.2.0.32 pip2 install opendr==0.77 pip2 install absl-py
プロジェクトファイル一式と学習モデルをダウンロードします。学習モデルは400MBくらいあるので、ディスク容量には余裕を持たせておきましょう。
git clone https://github.com/Dene33/hmr.git wget https://people.eecs.berkeley.edu/~kanazawa/cachedir/hmr/models.tar.gz && tar -xf models.tar.gz mv models hmr/ rm models.tar.gz
私のGithubプロジェクトサイトから、独自のスクリプトファイルをダウンロードします。このなかから「pct_to_csv.py」をWSLの「hmr」ディレクトリにコピーしてください。

「cd hmr」で現在のディレクトリーを変更したら、以下のようにスクリプトを実行して、「img_path」で指定した画像ファイルを解析します。
python2 -m pct_to_csv --img_path data/im1963.jpg
滞りなく完了すると、ディレクトリ内に人体の関節座標が格納された「hmr.csv」ファイルが作成されます。これを「explorer.exe .」などのコマンドを使って、Windowsディスクにコピーします。

次回はMakehumanで作成した人体モデルにこのデータを適用させる手法をご紹介します。
2020/06/11