機械学習によるポーズ推定でモデル人形を制作する(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