LoginSignup
51
33

More than 3 years have passed since last update.

CenterNetを使ってテニスの選手,ボール,コートの位置を検出してみた

Last updated at Posted at 2019-10-31

やったこと

CenterNet (https://arxiv.org/abs/1904.07850) を使ってテニスの動画から選手,ボール,コートの四隅の位置を検出しました.

CenterNet

論文の著者の方がGitHubのソースコードを公開しています.
モデルの理解については,DeNAさんのページを参考にさせて頂きました.
ざっくりいうと,物体の中心点を表すヒートマップ,縦横の大きさ,オフセットを予測してバウンディングボックスを生成する手法です.ヒートマップ,大きさ,オフセットそれぞれの損失の重み付き線形和を全体の損失としています.
fig2.png

今回は「手前の選手,奥の選手,コートの四隅,ボール」の4クラスを設定し,学習させました.コートの四隅とボールは縦横15ピクセルのバウンディングボックスとして教師データとしています.
バックボーンモデルはDLA34を使用しました.出力は4クラスのバウンディングボックスですが,ツイートの動画ではコート,ボールのバウンディングボックスの中心点を表示しています.CenterNetのデフォルトでは入力画像のサイズは512×512ですが,今回は384×384にリサイズした画像を入力しています.
下のツイートはヒートマップの動画です.4クラスの物体の中央部分が反応しています.CenterNetのデフォルトでは出力されるヒートマップは入力画像の1/4のサイズになっているので,拡大して入力画像とアルファブレンドしています.

テスト結果

ハードコートの試合だけでなく,クレー,芝のコートでもテストをしました.
用意したテストデータでは選手,コートの位置推定はほぼ間違いなくできていますが,ボールに関しては未検出や誤検出が見られます.動画のフレームを切り取ると,モーションブラーにより人間でも位置がわからない場合もあります.ここから先は物体検出の精度を上げるよりも,いかに補正していくかが重要なようにも思えます.

51
33
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
33