それに対してPoseNetではセンサーを用いず、映し出されている人の映像を機械学習によって分析し、その体の部位を検出します。センサーを用いないので、特別な機材がなくとも、手軽にはじめられます。
今回はそんなPoseNetをWebカメラとWebブラウザで手軽に体験できる、3D-Posenetを紹介します。
mishig25/3d-posenet: Control 3D Virtual Character through Tensroflow.js Posenet
実行方法
3D-Posenetのデフォルトブランチではそのままでは動かないので、次の手順で行う必要があります。
experimentalブランチをダウンロード
experimentalブランチのZipファイルをダウンロード&展開します。
Webサーバを実行
以下のコマンドでWebサーバを起動します。なお、実行にはNode.jsが必要です。
npm run watch
使い方
3D-PosenetではWebカメラに写った自分の映像の上に線や点が描かれます。これは顔や上半身の認識された部分です。そして手や顔を動かすと、それに合わせて3Dキャラクターも動かすことができます。
3D-Posenetの仕組み
3D-Posenetは機械学習部分にTensorflow.jsを使っています。3DモデルはBabylonJSを使っており、Tensorflow.jsのPoseNetが認識した結果に合わせて3Dモデルを動かしています。なお、3Dモデルはオンラインで探せば他にも手に入りますが、試した限りではデフォルトで用意されているDude以外のモデルではエラーが出てしまいました。
まとめ
PoseNetを使うことで、Webカメラに映し出された情報に応じてバーチャルキャラクターを動かすことができます。これはキャラクターに限らず、手や体の動きに合わせた入力を可能にしたりするといったことにも利用可能です。PoseNetを使って、動きを分析したり、ゲームを作ったりしてみるのも面白そうです。
mishig25/3d-posenet: Control 3D Virtual Character through Tensroflow.js Posenet
]]>