DataTennis. NET

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

データテニスドットネット(DataTennis.Net)について

公開日:
最終更新日:2019/09/28

サイト名にあるように、「データ」×「テニス」をキーワードにブログ記事を書いたり、
データ分析用のツールを開発してます。
スコアを記録するスマホアプリや、統計データから試合の勝率を予測するツール、試合の動画解析ツールなどをつくっています。

スマホアプリ(データテニス)
動画解析の自動化
動画分析ツール
テニスの試合シミュレーション
勝率推移シミュレータ
データ収集
フォーム解析
残像モーション生成システム
データビシュアライズ(データ視覚化)
動画の撮影について
管理人について

スマホアプリ(データテニス)

スコアを記録するAndroidアプリをつくって公開してます。タップ数を少なくして操作性をよくすること、Statsデータをみやすくすることを意識してつくりました。追加機能開発は継続してやってます。バグの修正はもちろん、スタッツデータを増やしたりクラウドバックアップ機能など。アプリのダウンロード数は5000を超えました(2019/8時点)記録することがデータ分析の第一歩!使ってもらえたら嬉しいです。
テニスのスコアアプリ「データテニス【Datatennis】」(for Android)

ダウンロード数「5000」を越えました!【スコア記録アプリのデータテニス】

【Android App】DataTennis For Keeping Scores

app

↓のGooglePlayリンクからデータテニスをダウンロードできます。
Get it on Google Play

動画解析の自動化

今、開発中の段階ですが、テニスの試合の動画を画像解析して、選手の移動やテニスボールの軌道をトラッキングできるようにしようとしてます。選手の総移動量を計測したり、ポイントの内容を自動判別できるようにしたいと思ってます。スポーツ画像解析というテーマで開発メモみたいな形で記事を公開してます。

↓は選手の動きをトラッキングした動画になります。(動画素材は、shutterstockで購入した動画を用いています)

↓はサーブ時のボールの軌道をトラッキングした動画になります。

機械学習(非線形SVM)を用いてサーブの着弾点を予測する、なんてこともやってます。


・【OpenCVを使ったスポーツ画像解析6】深層学習(ディープラーニング)を用いてテニス選手とボールをトラッキング

動画分析ツール

↑の自動化ツールは完成にはまだまだ時間がかかりそうです。
手動で動画を分析できるツールが必要だと考え自作の動画分析ツールをつくってみました。

スポーツ分析業界では、「スポーツコード」というツールが多く使用されています。
試合の映像で、シーン分割しタグ付けしてあとで検索して確認できるようにしたり、細かいデータを記録して分析できるようなツールです。
多くの機能がある分、価格は高いし、macしか対応していないんですよね。
ということで、自分でビデオ分析ツールをつくってみました。

機能はシンプルで、各ポイント毎にシーン分割できるしスコアを記録できるようにしているのと、サーブの着弾点をマウスでクリックしてXY座標として記録できるようにしています。

自作したテニスのビデオ分析ツールで錦織・デルポトロ戦を分析してみました

↓は錦織とデルポトロが対戦したときのサーブ着弾点で、デルポトロはライン際に打っているのに対して、錦織はばらつきが大きいことがわかります。
Image

テニスの試合シミュレータ

試合の勝率を予想するシミュレータをつくりました。2016年のトッププロの試合データ(STATS情報など)+乱数シミュレーションで、選手2人をプログラム上で1000試合対戦させて勝ち数と負け数を計算し、どちらの選手がどのぐらいの確率で勝つかを予想することができます。pythonで作成しました。
例えば、錦織とジョコビッチを2016年のデータで1000回対戦させると、249勝751敗となります。錦織の勝率は24.9%と考えることができます。
・テニスの試合シミュレータをつくり、錦織とジョコビッチを1000回対戦させてみました
・テニスの試合シミュレータで2016年の1430試合の勝率を計算し、実際の戦績と比較してみました
・テニスの試合シミュレータで全米オープンの試合を予想してみました

勝率推移シミュレータ

ポイント毎の勝率推移をプロットし、試合の流れを可視化することにトライしてみました。
テニスの試合の流れを可視化したく、確率シミュレーションを用いて勝率の推移をプロットしてみました【2018ウィンブルドン錦織】

Image


試合の臨場感をより伝えたく、グラフをアニメーション(GIFファイル)にして動きをもたせてみました。
大坂なおみの全豪オープン決勝戦、試合の流れを可視化してみました【勝率推移シミューレーション】
【試合の流れの可視化】勝率推移シミュレーション、データ集計から勝率チャート作成まで自動出力できるようにしました

データ収集

スクレイピングなどを使って、テニスの試合情報などを収集してまとめたりしてます。
【Webスクレイピング】錦織圭実況掲示板のデータ記録(サーブコースや速度など)を抽出してまとめてみました

収集してまとめたデータはこちらのページで公開してます。
錦織選手のサーブデータ(コース・速度など)をダウンロードできるようにしました

フォーム解析(姿勢推定)

ディープラーニングを使って人の関節の動きを数値化してフォーム解析に活かせるようにしたいなあ、と思っています。
↓は、サーブ時の関節の動きを姿勢推定というやり方で可視化した動画です。
OpenPoseというライブラリを使ってます。各関節のXY座標も出力することができます。

こちらの記事でトロフィーポーズの肘と脇の角度を算出してます。
OpenPose(姿勢推定)を使ったテニスのサーブフォーム解析

残像モーション生成システム

↑のフォーム解析(姿勢推定)と同じようにディープラーニングの技術を使って、フォーム動画から残像モーション動画を自動生成するシステムをつくりました。

左上のオリジナル動画から右下にあるような残像モーション動画を生成します。
システムの構成は下図のようになっており、クラウドに動画を投げ込むと残像モーション動画を自動生成してくれます。
解析をかけるごとに料金発生するため公開はしてませんが、会員制にするとかで公開して使ってもらうなど考え始めてます。

ちなみにクラウドシステムはAWS(Amazon Web Service)を使って構築しました。

データビシュアライズ(データ視覚化)

最近はデータの視覚化にも興味をもってます。

データビジュアライズによく使われてるd3.jsでいくつかコンテンツつくりはじめてます。

トッププロの試合をみてると、↓のようにコンピュータグラフィックスを使ってボールの着地点を表示したりしてます。

画像出典:

スポーツ界を変える「ホークアイ」審判補助システム

自分も真似事をしたく、フリーのCGソフトblenderを使ってテニスコート作成中です。完成したら、着地点データをとりこむスクリプトでつないで、着地点データを視覚化するコンテンツをつくりたいなと思ってます。

あと昨年、楽天オープンでスタッツやサーブ着地点など、データコンテンツ提供で少し協力させていただきました。いい経験をさせていただきました。
テニス楽天ジャパンOPの舞台裏〜錦織のプレーも調子もリアルタイムで丸裸

動画の撮影について

手作り感満載ですが。
高い位置からテニスの試合を撮影できるカメラアタッチメントを製作してみました

撮影データ募集してます。
テニス試合の動画データ募集してます

管理人について

管理人のotakoと申します。
30代後半の2児の父です。
テニスは小さい頃にはじめ、社会人になっても実業団の試合にでたりと、テニス歴は長い方かと思います。
学生時代は、全国大会に出場したこともあります。実業団(東京)では1部~3部を行き来してました。

子供が生まれてからはプレーする機会が激減し、最近はプレーするよりTV観戦がメインになっています。
好きな選手は錦織圭で、2008年のデルレイビーチ優勝のときから応援してます。

仕事は、とあるメーカでメカ設計をやってます。ものづくり系エンジニアです。製品仕様を考えたり、実験したりCADで図面作成したり、ときには工場@中国などに出張したり。

ツール開発をはじめたきっかけ

仕事が大変で悩んでるときにこうしたテニスのツール開発をはじめました。仕事での製品開発、自分の思うようなものをつくるってなかなか難しいんですよね。純粋に自分の好きなもの、欲しいものをつくりたいなあ、ということで個人開発を始めた次第です。プログラミングは大学の研究で数値計算やってたんでその延長線上でやってます。

本サイトや、アプリやツールに興味をもっていただいた方は、
datatennisnet@gmail.comにご連絡ください。

あと、twitterやってます。
気軽にフォローしてください。

テニス以外にもスポーツアナリシス関連でもつぶやいたりしているので宜しくお願いします。

Qiitaでもいくつか投稿をしています。
Qiita マイページ(@otakoma)

githubページ
https://github.com/taikoma

公開日:
最終更新日:2019/09/28