スマホ上の姿勢検出モデルは、本質的にはコートを羽織った三つの部品の集まりです。カメラのフレームがテンソルに変換され、それが小さなニューラルネットワークに入り、およそ二十個の身体キーポイントの確率ヒートマップを出力します。次の段でそのヒートマップを、アプリが骨格を描くのに使える座標へと変換します。それぞれの段に固有の壊れ方があります。光が悪ければ最初の段の画像が壊れる、ゆったりした服はモデルを混乱させる、背景が雑然としていればトラッキングが切れる。
システム
モバイルデバイスでの姿勢検出は、ライブビデオフィードを取り込み、肩、肘、手首、腰、膝、足首といった解剖学的ランドマークを各フレームで特定します。人が何をしているかは理解せず、これらの点が二次元ピクセル空間のどこにあるかを推定するだけです。出力は通常、信頼度スコア付きの (x, y) 座標のセットで、毎秒三十回更新されます。この座標ストリームが、レップ数を数えるフィットネスアプリや、手首に仮想オブジェクトを貼り付けるARフィルター、スクワット中の膝のアライメントをチェックする理学療法ツールなどを動かしています。システムはパイプラインです。画像取得、モデル推論、座標デコードの各段階に固有の制約があります。
各層
センサー層はスマホのカメラです。モデルが期待する解像度(多くの場合カメラのネイティブ解像度より低い)でRGBフレームを供給します。低レイテンシを保つため、キャプチャパイプライン内でダウンスケーリングが行われます。フレームが暗すぎたり動きブレがあったりして届くと、どれだけ巧妙なモデルでも失われた信号を回復できません。モデル層は畳み込みニューラルネットワークで、モバイルおよびエッジデバイス向けに設計されたMovePoseアーキテクチャに見られるように、MobileNetのような軽量バックボーンがよく使われます。バックボーンは複数スケールの特徴マップを抽出し、一連のアップサンプリングと予測ヘッドがヒートマップ(キーポイントごとに一枚)を生成します。各ピクセル値は、特定の関節中心がそこに位置する確率をエンコードします。一部のアーキテクチャでは遮蔽されたキーポイント用の別ブランチを追加し、関節が隠れている状態をネットワークに明示的に表現させることで、混雑したシーンでのロバスト性を向上させます。アプリ層は各ヒートマップのargmaxを取って座標を得て、必要に応じて時間フィルタを適用してジッターを平滑化します。その座標を使って骨格をオーバーレイしたり、カウンターをトリガーしたりします。
境界事例
興味深い挙動は、モデルが訓練分布の外に押し出されたときに現れます。混雑したシーンでは、複数の人物が重なり合うヒートマップを生成します。argmax操作はキーポイントごとに一つのピークを選ぶため、異なる個人の身体部位が混ざった骨格ができあがることがあります。遮蔽ブランチを持つネットワークはこうしたケースをフラグできますが、アプリはその情報をどう扱うかを決めなければなりません。高速な動きは別の問題を引き起こします。イベントカメラの文献が示すように、キーポイント検出と追跡は分離可能で、検出が初期位置を提供し、追跡がそれを引き継ぎます。通常のスマホカメラでは、動きブレがキーポイントをにじませ、ヒートマップのピークが平坦化して信頼度が下がります。衣服のテクスチャも重要です。暗い背景に無地の暗い袖は肘を見えなくし、高コントラストのストライプはモデルが掴みやすい手がかりを与えます。
壊れるもの
照明はセンサーを壊します。低照度はノイズフロアを上げ、モデルはエッジが不明瞭なざらついたフレームを見ます。ヒートマップはよりブロードで信頼度が低くなり、argmaxが背景の特徴に飛びつくことがあります。ゆったりした服はモデルを壊します。ネットワークは、関節が見えているか少なくとも体型から推測できるアノテーション付き画像からキーポイントを学習しました。膝を覆うふわりとしたドレスはその形状手がかりを取り除き、モデルは推測し、しばしば膝を高すぎたり低すぎたりします。雑然とした背景はトラッキングを壊します。人物の後ろの模様入りカーテンは偽のヒートマップピークを生み出し、モデルが瞬間的に真の関節よりもそれを選んで骨格がちらつく原因になります。これらの故障モードはバグではありません。理解を主張せず、ピクセルからの推定だけを主張するパイプラインの直接的な結果です。システムがどこで失敗するかを知ることは、それをうまく使うための第一歩です。なぜなら、バックボーン、損失関数、遮蔽ブランチといった設計上の選択は、すべてこれらの特定の弱点への対応だからです。
参考文献
- Keypoint-based Dynamic Object 6-DoF Pose Tracking via Event Camera — arxiv.org
- Learning Human Pose Estimation Features with Convolutional Networks — arxiv.org
- Human Pose Estimation for Real-World Crowded Scenarios — ar5iv.labs.arxiv.org
- MovePose: A High-performance Human Pose Estimation Algorithm on Mobile and Edge Devices — arxiv.org




