見出し画像

"soccer on your tabletop"を贔屓のチームで再現してみた

突然ですが、今スポーツxデータサイエンスが非常にホットな領域であること、ご存知でしょうか。

様々な要因があれど、プロのスポーツ集団の人気はその強さによるところが極めて大きいと思います。ではチームを強くするためにはどのようにチームを運営すべきでしょうか?もちろん強い選手、良い監督を雇うことは今も昔も非常に重要なはずです。それに加えて、最近のプロのスポーツチームでは戦術決定のためのデータサイエンスの活用も取り入れられ始めています。例えばFCバルセロナでは、Barca Innovation Hubという直属の研究機関をこしらえており、そこでの成果をConferenceで発表したりしています。
ここでのデータサイエンスの役割は、過去の自分・対戦相手の試合内容から、有効な攻め手、守り手を分析してチームの戦術に還元することです。現在の技術では人間の意思決定のアシストが関の山のよう(サッカーで言えば選手のスタッツ分析・場面場面でパスが通った確率予測など)ですが、人間と違って数字は常に客観的なので、人間が議論の足がかりとするのに非常に有益な素材となります(「サッカー データ革命」という本にとてもリッチな具体例が載っています)
このように研究が非常に直接的にエンターテイメントの質の向上に役立つわけですから、スポーツxデータサイエンスの交差領域には学術界からも現場からも多大な関心が寄せられて当然だと思います。

ところで我々Queue社は、渋谷発のソーシャルフットボールクラブ TOKYO CITY F.C.とパートナーシップを結んでいます。我々も、時流の最先端を行くテック企業としてパートナーであるスポーツチームの強化に貢献したいと考え、CVPR 2018で発表された「soccer on your tabletop」という論文で利用されている動画像からのプレイヤーのコート上の位置推定・姿勢推定技術によって、実際のTOKYO CITY F.C.の試合のプレイヤーの動きの解析を試みました。以下にその試行錯誤の記録を紹介します。

手法説明

元の論文は、Youtubeにアップロードされているプロ同士の試合をそのデータのみから3Dデータとして変換し、Hololensを通じてテーブルの上で観戦することができるという内容です。


これまで複数台のカメラを使って選手の位置を把握するシステムは存在しましたが、どこから撮影しているかも定かでない映像から3次元情報を取り出すことができるわけですからとてもすごいです。

論文で利用されている技術的な要素をざっくり説明

                                                   (論文より抜粋)

1. 人物領域の推定
  人物が存在する画像上の位置を割り出します。これ自体はDetectronというFAIR謹製ライブラリを使って実装いらずで行えます。カメラが急に動かなければ人が瞬間移動することはありえないので、この情報により各選手の移動もトラッキングすることができます。

2. カメラの位置の推定
  サッカーコートは常に同じ形をしているので、そのKeypointを手がかりにコートに対するカメラの位置と角度を推定します。

3. 人物の位置(深度)推定
  人物の骨格推定や独自の深度予測ネットワークによって、各プレイヤーの三次元メッシュを作成します。三次元メッシュにテクスチャを付けてHololensにデプロイすると、AR上でサッカーコート全体を再現することができます。

以上が提案されていた手法の詳細です。
この論文の推しポイントは「サッカーをポータブルに鑑賞できる」ことでしたが、見方を変えれば、ここで用いられている処理フローによって各プレイヤーの同定 + 位置推定ができれば、人力で動画のアノテーションを行うことなくデータセットを作成できるため、うまく応用できれば、我々のようなアマチュアでもバルセロナのように豊富なデータでのプレイ解析ができるようになるのではないかという展望が持てます。
さて、今回の解析の目的は各プレイヤーの同定 + 位置推定ですから、少しだけ技術的に楽をします。

領域推定・コート位置からのカメラ位置の推定・骨格推定は提案手法と同様に行います。プレイヤーの位置は、骨格上の「足元」の座標をコード上の平面に投影することによって求めることができます。また、人物のmaskが取れるので、その色情報からユニフォームの敵・味方判定と背番号の推定ができそうです。

実際にやってみた

撮影は浦和のレッズランドで行いました。調べてもらえばわかりますが、論文で使われているデータと異なり上階の観客席や屋根はない屋外コートなので、上空からの撮影が難しく、人が背伸びした程度の高さではコート上のランドマークがほとんどまともに映りませんでした。4m長のカメラスタンドと広角HDカメラを利用することで、なんとかコートの半分を十分上空から撮影できました。次に、広角なこともあって結構像が歪むので、カメラパラメータをきちんと推定して事前に歪み補正をします。

ここまで完了すると、人物領域推定・姿勢推定は既存の実装を利用することでトントンと進み、結果下記のようにプレイヤーの位置推定を行うことができました。


カメラから遠い位置にいる選手は時たま瞬間移動したりしていますが、撮影当日は風が強くカメラスタンドがどうしても揺れてしまったのでおそらくその影響です。もう1点くらい撮影点を増やすことによって、あらゆる位置で安定して選手の位置を取れるのではないかと思います。

おわりに

"soccer on your tabletop"の手法をアマチュアの試合に適用した例は多分初めてなんじゃないかなと思います。多少の工夫で、プロのような設備を持たない組織でも最新の解析技術の恩恵を受けることができるというデモンストレーションになっていれば幸いです。


この記事が気に入ったらサポートをしてみませんか?