(緑の枠で囲まれている箇所は私のコメントで要約の内容ではありません。)
はじめに
本記事では、2020年の国際会議で発表された論文についてまとめます。この論文は、画像を用いた位置推定と姿勢推定に関する内容です。私自身、趣味でダンスをかじっているのですが、ダンスの動画を撮影して、その動画から自分の動きを見返すことがあります。その際に、位置推定や姿勢推定の技術が使えないかと考えたことがあります。そのため、この論文に興味を持ちました。
Phon-Amnuaisuk, Somnuk, et al. "Visual-based positioning and pose estimation." Neural Information Processing: 27th International Conference, ICONIP 2020, Bangkok, Thailand, November 18–22, 2020, Proceedings, Part IV 27. Springer International Publishing, 2020.
- Springerのリンク:Visual-Based Positioning and Pose Estimation | SpringerLink
- Arxivのリンク:[2204.09232] Visual-based Positioning and Pose Estimation
本記事は、CC BY 4.0ライセンスの元で公開されているArXivから飛べる論文を参考にしており、SpringerLinkの方の内容は確認できていません。
1. はじめに
- Deep LearningとComputer Visionを用いた位置推定と姿勢推定のパイプラインが提案をする。
- Mask R-CNNを用いて、バドミントンコート上の選手の位置と姿勢を推定する。
2. 関連研究
- R-CNNを拡張したFast R-CNN, Faster R-CNNは領域提案の数を減らしつつも、精度を向上させることができる。R-CNNの別の拡張として、RoIプーリングを追加し一つ前のCNNの出力を固定サイズのベクトルに変換するものもある。
- Mask R-CNNはFaster R-CNNに対して、セグメンテーションマスクを出力し、さらにRoIAlignを用いています。RoIプーリングはバウンディングボックスサイズを整数倍にする必要があったが、RoIAlignは4つの近接点の情報を用いて各サンプリング点の値を計算することで、整数倍にしなくても良い。
R-CNN系のモデルについては、以下の資料が参考になります。
- arutema47 さんの記事:最新のRegion CNN(R-CNN)を用いた物体検出入門 ~物体検出とは? R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN~ #DeepLearning - Qiita
- Yusuke Uchidaさんの記事:最新の物体検出手法Mask R-CNNのRoI AlignとFast(er) R-CNNのRoI Poolingの違いを正しく理解する #DeepLearning - Qiita
- 橋本寛治, et al. "8. 深層学習の物体検出モデルに関する技術解説." 写真測量とリモートセンシング 61.4 (2022): 194-200.
2.1. 人間の活動認識 (Human Activity Recognition)
- 視覚ベースのHAR(VHAR)は、加速度センサーやRFIDなどのセンサーを使用する場合に比べて、複雑になる。
- 一方で、VHARを導入する際は最小限もしくは全くのセンサーを使用しないことができる。
2.1.1. 知識表現(Knowledge Representation)
- VHARの問題は、画像認識(Image Recognition)の観点から一般的に定式化され、グレースケール化、スケール不変特徴変換(Scale-Invariant Feature Transform, SIFT)、space-time interest points(STIP)などの特徴量抽出手法が提案されている。
- ただ、上記の手法は画像の特徴は抽出できても本質的な意味を捉えることはできないため、日々研究が続けられている。
画像認識に関する特徴量抽出手法については、以下の資料が参考になります。
- lawmnさんの資料:画像認識の初歩、SIFT,SURF特徴量 | PPT
- Laptev, Ivan. "On space-time interest points." International journal of computer vision 64 (2005): 107-123.
本論文でも紹介されていた論文の一つを以下に示します。
2.2. 人間の骨格ポーズ推定 (Human Skeleton Pose Estimation)
- Motion Capture (MOCAP) は3Dポーズ推定タスクの一例で、複数のカメラで手首や膝などのマーカーを検出することで、人間の骨格モデルを推定する。
- 単一の深度画像からリアルタイムで人間の骨格ポーズを推定する手法も提案されている。
- 物体検出技術は、人間の体のキーポイントをマーカーなしで検出でき、近年の研究でその精度も向上している。
本論文でも紹介されていた単一の深度画像からリアルタイムで人間の骨格ポーズを推定する論文を以下に示します。
3. バドミントンゲーム分析の研究
- バドミントンは20ft x 44ftのコートで行われるスポーツで、シングルスとダブルスの2つのカテゴリーがある。
- 従来の分析は、専門家が手動で行ってきた。
- しかし、深層学習やコンピュータビジョン技術を用いることで、プレイヤーの位置や動きを自動的に追跡できるようになり、それをパフォーマンスに関連付けることで深い洞察が得られる可能性がある。
フィートとは、30.48cmのことです。つまり、バドミントンコートは6.1m x 13.4mです。
参考:いろいろな単位の由来。あなたはどこまで知っていますか? | 「タキレポ」産業用金物・工業用金物の「タキゲン」が発信するメディア
3.1. Outside-in Vision-based Positioning Worfklow (OV-Positioning)
- OV-Positioningワークフローは、3つのタスクで構成される。
- 物体検出、探知による追跡(Tracking-by-detection)、実世界座標への変換
3.1.1. 物体検出
- Mask R-CNNとResNet-101をバックボーンとして使用し、バドミントンコート上のプレイヤーを検出する。
3.1.2. 探知による追跡(Tracking-by-detection)
- Mask R-CNNの出力を用いて、プレイヤーの追跡を行うが、いくつか成約を加えた。
- 空間的成約:プレイヤーコード外の検出された物体を無視する。
- フレーム間の連続性:フレーム間で大きく移動するバウンディングボックスは、誤った検出として無視する。
- プレイヤー数の制限:最大2人のプレイヤーを追跡することで、誤検出(False Positive)や未検出(False Negative)を対処。
3.1.3.平面間への射影変換
- 人間の床上の位置座標は、カメラビューで得られた位置からHomography Transformationを用いて推定できます。
Homography Transformationについては、以下の資料が参考になります。
- Shogo さんのブログ:ホモグラフィ - Shogo Computing Laboratory
- abetanさんの記事:ホモグラフィ行列の求め方 #Python - Qiita
3.2. Skelton-based 3D Pose (S3D-Pose) 推定ワークフロー
- 前述のOV-Positioningワークフローに加え、ポーズ推定を行う。
- 2Dおよび3Dのポーズ推定には「Lifting from the Deep」(LD)と呼ばれる手法を使用する。
4. 位置とポーズ推定の評価
- OV-Positioningの結果と、コートの真上からのカメラを比較して評価をした。
- カメラに近いプレイヤーの平均誤差は32cm
- カメラに遠いプレイヤーの平均誤差は62cm
- 誤差は主にプレイヤーの動きが速いと生じているため、フレームレートを上げることで改善できる。
- 3Dポーズ推定はできたが誤差が発生しやすく補完が必要であった。
- Inbetweening Technique を用いて、フレーム間のポーズを補完することで、誤差を減らすことができた。
- 3Dキーポイントをt-SNEで可視化し、グルーピングができることを確認した。