DataTennis. NET

データテニス ドットネット

【テニスのフォーム解析】残像モーション動画生成システム

公開日:
最終更新日:2019/08/14

      2019/08/14

先回の記事、「テニスのサーブフォームの残像動画を自動生成できるようにしてみた」の続きになります。

今回は、
・残像モーション動画の作成方法
・クラウド上に構築した残像モーション動画生成システム
について説明したいと思います。

残像モーション動画の作成方法

まずは、残像モーション動画の作成方法について。デモ動画は↓になります。

入力した画像(1 ORIGINAL)から人物、ラケット、背景、の領域を分割(2 SEGMENTATION)
⇒分割画像からマスク画像(3 MASK)を作成
⇒マスク画像から「人物」と「ラケット」を抽出して前の画像に重ねていく(4 MOTION ANALYSIS)
という流れで残像モーション動画を生成してます。

2 SEGMENTATIONですが、これは深層学習技術のセマンティックセグメンテーションという手法を用いています。
学習モデルを構築する必要がありますが、たくさんのサーブ動画を用意し、「人物」、「ラケット」をトレーニングさせる学習データを自分で作成して学習させました。

Qiita記事にやり方を書いたので興味のある方はご覧になってください。
DeepLab v3+でセマンティックセグメンテーション

セマンティックセグメンテーションを使えるOSSはいくつかあるのですが、私はDeepLab v3+を使用。

次に、領域分割した画像から人物だけを抽出するマスク画像を作成し、マスク画像とOriginal画像を掛け合わせて、「人物」と「ラケット」の画像を抽出します。
下の図のようなイメージになります。

そして、抽出された「人物」+「ラケット」画像を前の画像に重ね合わせていき、残像モーション動画を作成します。

と、こんな流れで残像モーション動画を作成しております。

この一連のフローをクラウド上に構築したので、簡単に以下に説明します。

クラウド上に構築した残像モーション動画生成システム

クラウドシステムの概要図は↓です。

動画をアップロードすると、クラウド上で計算処理され、残像モーション動画が出力されます。
出力された動画は手元のスマホなどで確認することができます。

動画のフレーム数によりますが、計算処理には数分の時間を要するので即時フィードバックではありません。
ここが課題ですね。練習に活かすにはすぐに確認できることが重要なので。

クラウドシステムは、AWS(Amazon Web Service)で構築。
具体的には、AWS Lambda上に計算プログラム(python)を置き、ストレージの置き場はAWS S3(Simple Storage Service)

AWSわりと便利で、S3に動画をアップロードするとLambdaに置いたPythonファイルを自動実行するような仕組みは簡単に作成できました。

サイトの窓口(フロントエンド)をつくれていないのと、計算処理のたびに料金が発生するため、公開はしてません。

ただ、会員制にして利用してもらうようなことは真剣に考え始めています。
なので、開発は継続していく予定です。

精度向上や具体的な活用イメージを考えるなどやるべきことは多くありますが。

また進捗ありましたら記事書きたいと思います。
ではでは。

 - blog, スポーツ画像解析, フォーム解析