PoseNetは、リアルタイムでの人間の姿勢推定が行える機械学習モデルです。
PoseNetは単一の姿勢推定にも複数の姿勢推定にも使用できます。これは、イメージやビデオの中に人が1人だけいることが検出できるアルゴリズムのバージョンがあり、またイメージやビデオの中に複数の人が存在することが検出できるバージョンがある、ということを意味しています。
オリジナルのPoseNetモデルはDan OvedによりTensorFlow.jsに移植されました。詳しくは彼のブログ投稿を見てください。
目次
シンタックス
ml5.poseNet( ? video, ? type, ? callback)
ml5.poseNet( ? video, ? options, ? callback)
ml5.poseNet( ? callback, ? options)
パラメータ
video – オプション。HTMLのvideo要素かp5のvideo要素。
type – オプション。’single’か’multiple’の推定を実行する文字列値。
callback – オプション。モデルが読み込まれたときに実行する関数。callbackが与えられない場合には、モデルが読み込まれたときに解決されるPromiseを返す。
options – オプション。モデルの精度とパフォーマンスを表すオブジェクト。以下のパラメータが使用できる。
{
imageScaleFactor: 0.3,
outputStride: 16,
flipHorizontal: false,
minConfidence: 0.5,
maxPoseDetections: 5,
scoreThreshold: 0.5,
nmsRadius: 20,
detectionType: 'single',
multiplier: 0.75,
}
これらのオプションに関する詳細については、オリジナルのPoseNetコードを参照してください。
TensorFlow.jsのposenetについては、当サイトの「8_3 posenet」も参考にしてください。
プロパティ
.detectionType – 検出のタイプ。’single’か’multiple’。
メソッド
.singlePose(?input)
.multiPose(?input)
イメージかビデオを与えられると、単一か複数の姿勢検出を使った姿勢推定を含むオブジェクトの配列を返す。
input – HTMLのvideo要素かimage要素。またはp5のimage要素かvideo要素。inputが与えられない場合には、コンストラクタで与えられたビデオがデフォルトで使用される。
イベントリスナー
.on('pose', function(results) {
console.log(results);
})
新しい姿勢が検出されるたびに引き起こされる。新しいposeNetをvideo要素で作成した場合には、このイベントリスナーは、ビデオのフレーム変化時に連続して呼び出され、1人検出を使った姿勢推定を含むオブジェクトの配列を返す。