バスケットボール選手識別のためのコンピュータビジョンシステム要約
(blog.roboflow.com)🏀 バスケットボール選手識別のためのコンピュータビジョンシステム要約
このブログ記事では、コンピュータビジョン技術を活用して、バスケットボールの試合映像から選手を検出・追跡・識別する複雑なシステムを構築する過程を詳しく説明しています。このシステムは複数の最新AIモデルをパイプラインとして組み合わせ、選手の素早い動き、身体接触による遮蔽(occlusion)、似たユニフォーム、カメラ移動といった難しい問題を解決します。
主要技術とパイプライン
このシステムは、複数段階の高度なプロセスを通じて選手を識別します。
-
物体検出 (Object Detection):
- RF-DETRモデルを使用して、映像内の選手、背番号、バスケットボール、リムなど主要オブジェクトの位置を正確に特定します。
-
選手追跡 (Player Tracking):
- SAM2 (Segment Anything Model 2) を活用して、各フレームごとに選手を追跡します。SAM2の内部メモリ機能により、選手が他の選手やオブジェクトによって一時的に隠れても、同一選手であることを継続的に認識し、追跡を維持できます。
-
チーム判別 (Team Clustering):
- ユニフォームの色に基づいて2チームを判別するため、教師なし学習のクラスタリング手法を使用します。
- SigLIPモデルで各選手の視覚的特徴を埋め込みベクトルに変換します。
- UMAPを用いて高次元の埋め込みデータを低次元に縮小します。
- K-meansクラスタリングアルゴリズムを適用し、選手を2つのグループ(チーム)に分けます。
-
選手識別 (Player Identification):
- 選手を最終的に識別するため、背番号を認識します。
- 当初は SmolVLM をOCR(光学文字認識)に使用していましたが、背番号分類向けにファインチューニングした ResNetモデル の方が高い精度を示したため、最終的に採用されました。
- IoS (Intersection over Smaller Area) という指標を用いて、検出された背番号が正しい選手マスクに正確に対応付けられるようにします。
- システムの信頼性を高めるため、同じ背番号が複数回繰り返し予測された場合にのみ、その選手の番号として確定します。
結論とソースコード
このシステムは、複数の最先端コンピュータビジョンモデルを創造的に統合することで、複雑な実世界のスポーツ分析問題を解決できる可能性を示す成功例です。ただし、処理過程の複雑さのため、リアルタイムでは動作しません。
- ソースコード: プロジェクト全体のコードは以下のGitHubリポジトリで確認できます。
1件のコメント
ソースコードのリンクが入れられません。