以下、図面を適宜参照して、本発明の実施の形態について、詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
(実施の形態1)
<球技映像解析システム>
まず、図1を参照しながら、一実施の形態に係る球技映像解析システムの概要について説明する。
球技映像解析システム1は、球技を撮影した映像を解析し、球技に用いられる移動体に対してアクションを行った選手を認識するシステムである。球技に用いられる移動体は、典型的にはボールであるが、バドミントンに用いられるシャトル等であってもよい。本実施の形態では、球技の1つであるバレーボールを例に説明する。ただし、球技映像解析システム1は、サッカー、野球、卓球、バスケットボール、テニス、ラグビー、アメリカンフットボール、ラクロス、又はバドミントンなど、様々な球技に適用可能である。また、球技映像解析システム1は、アイスホッケーのパック等、「球」の概念に当てはまらない形状の移動体にも適用可能である。すなわち、球技映像解析システム1は、複数人から構成されるチームが移動体に対するアクションを行うことにより点数又は勝敗が決定される競技であれば、どのような競技にも適用可能である。
球技映像解析システム1は、複数のカメラ3(3A、3B、3C、3D)と、表示装置4と、入力装置5と、球技映像解析装置100と、を備える。
複数のカメラ3は、それぞれ異なる位置に設置される。例えば、図1に示すように、各カメラ3は、高所からコート10を異なる視点(画角)で撮影できる位置に設置される。なお、図1ではカメラ3が4台であるが、本実施の形態はこれに限られず、カメラ3は、2台以上であれば何台でもよい。2台以上のカメラ3を用いることにより、ボールの3次元位置を算出できる
各カメラ3は、球技映像解析装置100と有線又は無線を介して通信可能に接続されている。各カメラ3は、球技中の状況を撮影し、撮影画像を生成する。そして、各カメラ3は、複数の撮影画像から動画フレーム201(図2参照)を生成する。そして、各カメラ3は、動画フレーム201を球技映像解析装置100へ送信する。動画フレーム201は、複数の撮影画像が、例えば、MP4、H.264、H.265、又は、Motion JPEG等の規格に基づいて圧縮されたものであってよい。
表示装置4は、球技映像解析装置100と有線又は無線を介して通信可能に接続されており、球技映像解析装置100から出力される画像を表示する。表示装置4は、例えば、液晶ディスプレイ又は有機ELディスプレイ等である。
入力装置5は、球技映像解析装置100と有線又は無線を介して通信可能に接続されており、ユーザからの操作を受け付け、その操作情報を球技映像解析装置100へ送信する。入力装置5は、例えば、キーボード、マウス、マイク及び/又はタッチパネル等である。なお、入力装置5及び表示装置4は一体型の装置であってもよい。
球技映像解析装置100は、各カメラ3が撮影した動画フレームを用いて、ボールに対してアクションを行った選手を特定する。バレーボールの場合、ボールに対して行われるアクションには、サーブ、レセプション、ディグ、トス、アタック、及びブロック等がある。以下、ボールに対してアクションを行った選手を、「アクター」と表現する場合がある。
なお、本実施の形態では、図1に示すように、コート10の面の中心点を原点Oとし、コート10の面と平行かつネット11と平行な軸をX軸、コート10の面と平行かつネット11と垂直な軸をY軸、コート10の面と垂直な軸をZ軸とする。X軸は、審判12から離れる方向を正方向、審判12に近づく方向を負方向とする。Y軸は、審判12から見て左方向を正方向、右方向を負方向とする。Z軸は、コート10の面から離れる方向を正方向とする。つまりZ軸の座標zは、コート10の面からの高さに相当する。
<球技映像解析装置>
次に、図2を参照しながら、球技映像解析装置100について説明する。
球技映像解析装置100は、映像受信部101と、軌跡算出部102と、アクション判定部103と、アクションフレーム選択部104と、検出領域設定部105と、選手検出部106と、番号認識部107と、結果出力部108と、記憶部109とを有する。
映像受信部101は、各カメラ3A~3Dから送信される動画フレーム201を受信し、記憶部109に格納する。
軌跡算出部102は、記憶部109に格納された複数の動画フレーム201に対して、例えば非特許文献1に開示されている手法を適用し、動画フレーム201が撮影された時刻(以下「フレーム時刻」という)におけるボールの3次元位置(x,y,z)及び速度を算出する。そして、軌跡算出部102は、フレーム時刻とボールの3次元位置と速度とを対応付けてボール軌跡情報202を生成し、記憶部109に格納する。
アクション判定部103は、ボール軌跡情報202から、ボールに対するアクションが発生したか否かを判定する。アクション判定部103は、アクションが発生したと判定した場合、アクションが発生したフレーム時刻(以下「アクションフレーム時刻」という)と、その発生したアクションの種別とを対応付けてアクション情報203を生成し、記憶部109に格納する。なお、アクション判定部103の詳細については後述する。
アクションフレーム選択部104は、記憶部109に格納されている複数の動画フレーム201の中から、アクション情報203に含まれるアクションフレーム時刻に対応する動画フレームと、当該アクションフレーム時刻の近傍のフレーム時刻に対応する動画フレームとを、アクションフレームとして選択する。なお、アクションフレーム選択部104の詳細については後述する。
検出領域設定部105は、アクションフレーム選択部104によって選択されたアクションフレームに対して、選手の検出が行われる領域である検出領域を設定する。なお、検出領域設定部105の詳細については後述する。
選手検出部106は、検出領域設定部105によって設定された検出領域内の画像から、選手が撮影されている領域(以下「選手領域」という)を検出する。そして、選手検出部106は、複数の選手領域を検出した場合、アクションを行った選手(アクター)が撮影されている選手領域を、アクター領域として選択する。なお、選手検出部106の詳細については後述する。
番号認識部107は、選手検出部106によって検出されたアクター領域内の画像から、アクターのユニフォーム番号を認識する。そして、番号認識部107は、アクションフレーム時刻と、その認識したアクターのユニフォーム番号とを対応付けてアクター情報204を生成し、記憶部109に格納する。なお、番号認識部107の詳細については後述する。
結果出力部108は、ボール軌跡情報202と、アクション情報203と、アクター情報204とを対応付けて、プレイ情報205を生成し、記憶部109に格納する。例えば、アクション情報203においてアクションフレーム時刻Tとアクション種別「アタック」とが対応付けられており、アクター情報204においてアクションフレーム時刻Tとアクターのユニフォーム番号「14」とが対応付けられている場合、結果出力部108は、図3に示すようなプレイ情報205を生成する。すなわち、結果出力部108は、図3に示すように、ボール軌跡情報202のフレーム時刻Tに対して、アクション種別「アタック」と、アクターのユニフォーム番号「14」とを対応付けたプレイ情報205を生成する。これにより、ユーザ又は他の装置は、プレイ情報205を用いて、フレーム時刻Tにおいて、ユニフォーム番号「14」の選手(アクター)が、3次元位置(xT,yT,zT)のボールに対して、速度「ST(km/h)」の「アタック」を行ったことを知ることができる。
<アクション判定部の詳細>
次に、アクション判定部103の詳細について説明する。
アクション判定部103は、ボール軌跡情報202に含まれるフレーム時刻毎のボールの3次元位置及び速度からボールの軌跡を算出する。そして、アクション判定部103は、その算出したボールの軌跡変化が所定の条件に合致した場合、ボールに対するアクションが発生したと判定する。そして、アクション判定部103は、アクションが発生したと判定した場合、その条件に合致したフレーム時刻を、アクションフレーム時刻とする。
なお、アクション判定部103は、ボールの軌跡変化、ボールの3次元位置及び速度、並びに、球技のルール等に基づいて、アクション種別を判定してもよい。バレーボールのアクション種別には、サーブ、レセプション(サーブに対するレシーブ)、ディグ(アタックに対するレシーブ)、トス、アタック、及びブロック等がある。例えば、アクション判定部103は、解析開始から初めて検出されたボールの軌跡がY軸方向(図1に示すコートの長辺方向)の移動成分を有し、当該Y軸方向のボールの速度成分が所定の範囲内である場合、アクション種別を「サーブ」と判定する。他の例として、アクション判定部103は、「サーブ」後にボールの軌跡がY軸においてネット11の存在する座標を跨ぎ、かつ、ボールの3次元位置の変化が下降から上昇に転じた場合(すなわち、Z軸方向の座標の変化がプラスに転じた場合)、アクション種別を「レセプション」と判定する。バレーボールのルール上、「サーブ」を受けるアクションは「レセプション」であるので、このようなルールに基づく判定を行うことにより、「レセプション」と「ディグ」を区別できる。
同様に、アクション判定部103は、ボールの軌跡変化等が所定の条件に合致する場合に、競技のルールに準じた判定基準によって他のアクション種別を判定する。
なお、上記では、3次元の情報を用いてアクションの発生を判定しているが、2次元又は1次元の情報を用いてアクションの発生を判定しても良い。例えば、上述した条件で「サーブ」の発生を判定する場合、X軸方向とZ軸方向の情報を用いずに、解析開始の時刻とY軸方向の情報のみから判定可能である。
また、アクション判定部103は、アクションフレーム時刻及びアクション種別に、さらに、当該アクションフレーム時刻に対応するボールの3次元位置を対応付けてアクション情報203を生成してもよい。ボールの3次元位置の情報が、後述するアクションフレーム選択部104等において使用されるためである。
<アクションフレーム選択部の詳細>
次に、アクションフレーム選択部104の詳細について説明する。
アクションフレーム選択部104は、まず、アクションフレーム時刻に対応するボールの3次元位置に近い方の少なくとも2つのカメラ3を選択する。例えば、アクションフレーム選択部104は、ボールのy座標が0以上の場合(図1のコート10の左側にボールがある場合)、カメラ3Aと3Bを選択し、ボールのy座標が0未満の場合(図1のコート10の右側にボールがある場合)、カメラ3Cと3Dを選択する。これにより、選手のユニフォームのユニフォーム番号を撮影している可能性の高いカメラ3が選択される。
また、アクションフレーム選択部104は、上述で選択した各カメラ3の動画フレーム201から、アクション情報203のアクションフレーム時刻Tに対応する動画フレーム201と、アクションフレーム時刻Tよりも前方のフレーム時刻(例えばフレーム時刻T-3)に対応する動画フレーム201と、アクションフレーム時刻Tよりも後方のフレーム時刻(例えばフレーム時刻T+3)に対応する動画フレーム201とをアクションフレームとして選択する。
このように、複数のアクションフレームを選択することにより、仮に1つのアクションフレームにおいてアクターのユニフォーム番号が認識できなかったとしても、他のアクションフレームにおいてアクターのユニフォーム番号を認識できる場合がある。すなわち、アクターのユニフォーム番号を認識できる可能性が高まる。
また、このように、2フレーム以上離れている動画フレーム201をアクションフレームとして選択することにより、仮に1つのアクションフレームにおいてアクターのユニフォーム番号が認識できなかったとしても、他のアクションフレームではアクターの姿勢が変化しており、アクターのユニフォーム番号を認識できる場合がある。すなわち、アクターのユニフォーム番号を認識できる可能性が高まる。
なお、アクションフレームとして選択される動画フレームを2フレーム以上離すことは、あくまでも一例に過ぎない。アクターの姿勢が変化しており、かつ、アクターが撮影されている可能性の高いフレームを複数抽出することができるのであれば、3フレーム以上離れた動画フレーム201または1フレームしか離れていない動画フレーム201を、アクションフレームとして抽出してもよい。ただし、アクションフレーム時刻Tから離れ過ぎると、アクションを行ったアクターが動画フレーム201から外れてしまう可能性が高まる。したがって、例えば、60fpsの動画に対応する動画フレーム201の場合、フレームを離す間隔は、10フレーム程度を上限とすることが好ましい。
また、アクションフレーム選択部104は、動画フレームの元となる動画のフレームレートの高低に応じて、アクションフレーム時刻Tから何フレーム離れている動画フレーム201を、アクションフレームとして抽出するかを決定してもよい。例えば、60fpsの2フレームは30fpsの1フレームに相当するので、アクションフレーム選択部104は、60fpsの場合は2フレーム離れた動画フレーム201を、30fpsの場合は1フレーム離れた動画フレーム201を選択する。これにより、fpsが異なっていても同程度の実時間に対応する動画フレーム201をアクションフレームとして抽出できる。
また、アクションフレーム選択部104は、アクション判定部103が判定したアクションの種類に応じて、何フレーム以上離れている動画フレーム201を、アクションフレームとして選択するかを切り替えてもよい。球技では様々なアクションが行われるため、アクターの姿勢の変わり易さはアクションによって異なる。そのため、姿勢が大きく変わるアクションについて選択されたアクションフレーム同士が離れ過ぎていると、アクターが撮影されていない動画フレーム201が、アクションフレームとして選択されるおそれがある。一方、姿勢が変わりにくいアクションについて選択されたアクションフレーム同士が近すぎると、ほぼ同じ姿勢のアクターが撮影されている動画フレーム201が、アクションフレームとして選択されてしまい、全てのアクションフレームにおいてユニフォーム番号が認識できないおそれがある。そこで、アクションフレーム選択部104は、アクターの姿勢の変化が大きいアクションほど、アクションフレーム時刻Tに近い動画フレーム201を、アクションフレームとして選択し、アクターの姿勢の変化が小さいアクションほど、アクションフレーム時刻Tから離れている動画フレーム201を、アクションフレームとして選択する。これにより、上記のような問題を軽減できる。
また、球技映像解析装置100は、何フレーム以上離れている動画フレーム201をアクションフレームとして選択すべきかの設定を、ユーザから手動で受け付けても良い。同じアクションであっても、アクターの姿勢の変化の大きさを、自動で完全に予想することは難しいため、ユーザの判断によってアクションフレームの選択基準を変更できることは、有益である。
なお、アクションフレーム選択部104が、アクションフレーム時刻Tよりも前方又は後方のフレーム時刻に対応する動画フレーム201をアクションフレームとして選択する処理を行わない構成であったとしても、本実施の形態は実現可能である。また、アクションフレーム選択部104は、より多くの動画フレーム201をアクションフレームとして選択しても良いし、より少ない動画フレーム201をアクションフレームとして選択しても良い。また、アクションフレーム選択部104は、アクションフレーム時刻Tよりも前方及び後方のフレーム時刻から均等に動画フレームを選択するのではなく、前方又は後方の一方のフレーム時刻のみに対応するアクションフレームを選択してもよい。
<検出領域設定部の詳細>
次に、検出領域設定部105の詳細について説明する。
検出領域設定部105は、アクションフレーム選択部104によって選択された各アクションフレームに対して、アクションフレーム時刻Tにおけるボールの3次元位置に応じた検出領域を設定する。次に、図4及び図5を参照しながら、バレーボールにおける検出領域の設定について説明する。
検出領域設定部105は、アクションフレーム時刻Tにおけるボールの座標z(高さ)が所定の閾値(例えば2m)以上である場合、図4に示すように、ボールの画像301Aが検出領域300Aの上辺(上端)中央に位置するように、アクションフレームに対して検出領域300Aを設定する。ボールの座標z(高さ)が所定の閾値以上の場合、ボールの下にアクターが存在する可能性が高いからである。なお、検出領域300Aは、ボールの画像301Aが厳密な上辺中央から1~数ピクセルずれた位置に設定されても良い。本明細書における「上辺中央」は、このような位置も含むものとする。
一方、検出領域設定部105は、アクションフレーム時刻Tにおけるボールの座標z(高さ)が所定の閾値(例えば2m)未満である場合、図5に示すように、ボールの画像301Bが検出領域300Bの中心に位置するように、アクションフレームに対して検出領域300Bを設定する。ボールの座標z(高さ)が所定の閾値未満の場合、ボールの近傍にアクターが存在する可能性が高いからである。なお、検出領域300Bは、ボールの画像301Bが厳密な中心から1~数ピクセルずれた位置に設定されても良い。本明細書における「中心」は、このような位置も含むものとする。
このように、検出領域設定部105において検出領域300を設定し、選手検出部106において検出領域300内からアクター領域400を検出することにより、アクションフレーム全体からアクター領域を検出するよりも、処理負荷が低減し、延いては処理時間が短縮する。これにより、球技映像解析装置100は、ほぼリアルタイムでアクターのユニフォーム番号を認識でき得る。
なお、検出領域300のサイズは、競技中の選手がカメラ3に最も近づいた場合に当該選手が動画フレームに占めるサイズよりも、少し大きいことが好ましい。競技中の選手は、足を大きく開いたり、スライディングしたりなど、多様な姿勢をとり、また、フレーム間における移動距離も大きいためである。
<選手検出部の詳細>
次に、選手検出部106の詳細について説明する。
まず、選手検出部106は、各検出領域300内から、選手(人物)が撮影されている領域(以下「選手領域」という)を検出する。例えば、選手検出部106は、競技中の複数の選手画像をディープラーニングによって学習させた選手検出用のモデル(ニューラルネットワーク)を用いて、検出領域300内から選手領域を検出する。
次に、選手検出部106は、その検出した選手領域の中から、アクターが撮影されている選手領域を、アクター領域として選択する。例えば、選手検出部106は、検出した選手領域が1つである場合、当該選手領域をアクター領域400として選択し、検出した選手領域が複数である場合、次の(A1)及び(A2)によって、1つの選手領域をアクター領域400として選択する。
(A1)複数の選手領域を、アクションフレーム時刻Tのアクションフレームから検出した場合、選手検出部106は、3次元空間上において、アクションフレーム時刻Tにおけるボールの3次元位置と最も近い選手領域を、アクター領域400として選択する。
(A2)複数の選手領域を、アクションフレーム時刻Tの前方(例えばフレーム時刻T-3)又は後方(例えばフレーム時刻T+3)のアクションフレームから検出した場合、3次元空間上において、上記(A1)で選択したアクター領域400と最も近い選手領域を、アクター領域400として選択する
なお、選手検出部106は、アクター領域400におけるアクターの姿勢を推定し、カメラ3に背中を向けている姿勢と推定した場合、当該アクター領域400を残し、他の姿勢と推定した場合、当該アクター領域400を破棄してもよい。これにより、ユニフォーム番号500が撮影されているアクター領域400が残り、ユニフォーム番号500が撮影されていないアクター領域400が破棄されるので、番号認識部107における番号の誤認識が低減する。
<<同一選手判定>>
なお、選手検出部106は、上記のように各アクションフレームから検出したアクター領域400について、それらのアクター領域400が同一の選手のものであるか否かを判定してもよい。以下、この判定処理を「同一選手判定処理」と呼ぶ。
次に、図6A、図6Bを参照しながら、同一選手判定処理の一例について説明する。図6Aは、同一選手と判定される場合の図であり、図6Bは、異なる選手と判定される場合の図である。
まず、選手検出部106は、図6Aに示すように、カメラ3Aの位置から、当該カメラ3Aがフレーム時刻tに撮影したアクションフレームから検出したアクター領域400Cの上辺中央401Aの位置へ延びるベクトル線402Aを算出する。同様に、選手検出部106は、図6Aに示すように、カメラ3Bの位置から、当該カメラ3Bがフレーム時刻tに撮影したアクションフレームから検出したアクター領域400Dの上辺中央401Bの位置へ延びるベクトル線402Bを算出する。
次に、選手検出部106は、ベクトル線402Aとベクトル線402Bとの最小距離403Aが所定の閾値未満である場合、アクター領域400Cとアクター領域400Dとは同一の選手のものであると判定し、当該最小距離403Aが所定の閾値以上である場合、アクター領域400Cとアクター領域400Dとは異なる選手のものであると判定する。例えば、図6Aの場合、最小距離403Aが所定の閾値未満であるので、選手検出部106は、アクター領域400Cとアクター領域400Dとは同一の選手のものであると判定する。一方、図6Bの場合、最小距離403Bが所定の閾値以上であるので、選手検出部106は、アクター領域400Dとアクター領域400Eとは異なる選手のものであると判定する。
この判定について、以下、より詳細に説明する。
同一の選手の同一の部位は、同一の3次元座標に存在する。そのため、図6Aのように、カメラ3A、3Bの3次元座標が異なっていたとしても、ベクトル線402Aと402Bは理想的には一点(同一の選手の同一の部位)で交わることになる。アクター領域400Cおよび400Dの抽出の精度によっては、多少ベクトル線がずれることはあり得るものの、同一の人物が検出されている限り、ベクトル線402Aと402Bとが極端に離れる可能性は低い。そこで、選手検出部106は、ベクトル線402Aと402Bの最短距離が閾値未満である場合には、アクター領域400Cとアクター領域400Dとは同一の選手のものであると判定する。
一方、図6Bのように、アクター領域400Dと400Eで異なる選手が検出されている場合、同一であるかのように見える部位(401Bと401C)は3次元空間内では明らかに異なる座標に存在する。その結果、ベクトル線402Bと402Cは互いにねじれの位置を通過し、ベクトル線間の最小距離403Bは、同一の選手が検出されている場合よりも明らかに大きくなる。そこで、選手検出部106は、ベクトル線402Bと402Cの最短距離が閾値以上である場合には、アクター領域400Dとアクター領域400Eとは異なる選手のものであると判定する。例えば、図6Bではアクター領域400Dではユニフォーム番号「13」の選手が検出され、アクター領域400Eではユニフォーム番号「13」の手前に存在し、より背の高い「33」の選手が検出されている。この場合、ベクトル線402Cはベクトル線402BよりもZ軸方向において明らかに高い位置を通過する。そのため、ベクトル線402Bとベクトル線402Cの間の最短距離は大きくなり、アクター領域400Dとアクター領域400Eとで異なる選手が検出されていることが分かる。
なお、選手検出部106は、同一の選手のものであると判定したアクター領域400を残し、異なる選手のものであると判定したアクター領域400を破棄してもよい。これにより、異なる選手がアクター領域400として誤検出される可能性が低減するので、番号認識部107において、互いに異なるユニフォーム番号500が認識される可能性が低減する。すなわち、アクターのユニフォーム番号500の認識精度が向上する。
<番号認識部の詳細>
次に、番号認識部107の詳細について説明する。
番号認識部107は、各アクター領域400から、アクターのユニフォーム番号500を認識する。例えば、番号認識部107は、複数の選手のユニフォームの数字画像をディープラーニングによって学習させたユニフォーム番号検出用のモデル(ニューラルネットワーク)を用いて、アクター領域400内から、アクターのユニフォーム番号500を認識する。
なお、番号認識部107は、各アクター領域400から認識したユニフォーム番号500が一致しない場合、多数決によってアクターのユニフォーム番号500を決定してよい。例えば、6つのアクター領域400から認識したユニフォーム番号500のうち、4つのユニフォーム番号が「13」、2つのユニフォーム番号が「10」であった場合、番号認識部107は、一致した数が4つと最も多いユニフォーム番号「13」を、アクターのユニフォーム番号500に決定する。
また、番号認識部107は、まず、アクター領域400から番号の画像領域を検出し、次に、その検出した画像領域から番号自体を認識する、という2段階で処理を行ってもよい。
また、番号認識部107は、各アクター領域400について、認識されたユニフォーム番号の候補の確からしさを示す尤度(例えば0以上~1以下の値)を算出し、尤度を加算した結果が最も大きな候補を、アクターのユニフォーム番号と決定しても良い。上述した多数決の場合、認識した番号の確からしさは、決定に影響を与えないため、1つのアクター領域400から認識されたユニフォーム番号「16」が90%正しいものであり、2つのアクター領域400から認識されたユニフォーム番号「10」が30%正しいものであったとしても、正しいユニフォーム番号は、「10」と決定されてしまう。一方、このように尤度を考慮した決定を行うことによって、認識した番号の確からしさを、番号の決定に反映することができる。
<処理フロー>
次に、球技映像解析装置100における処理フローについて説明する。処理フローは、アクション判定処理と、アクター認識処理とに大別される。
<<アクション判定処理>>
次に、図7に示すフローチャートを参照しながら、アクション判定処理について説明する。
映像受信部101は、カメラ3A~3Dから送信される動画フレーム201を受信し、記憶部109に格納する(S101)。軌跡算出部102は、記憶部109に格納された複数の動画フレーム201から、各フレーム時刻におけるボールの3次元位置及び速度を算出し、ボール軌跡情報202を生成する(S102)。
アクション判定部103は、ボール軌跡情報202から、ボールに対するアクションが発生したか否かを判定する(S103)。アクションが未発生と判定した場合(S103:NO)、フローはS101に戻る。アクションが発生したと判定した場合(S103:YES)、アクション判定部103は、アクション情報203を生成し(S104)、アクター認識処理のスレッドを生成する(S105)。そして、フローは、S101に戻る。
<<アクター認識処理>>
次に、図8に示すフローチャートを参照しながら、アクター認識処理について説明する。当該アクター認識処理は、図7のS105において生成されるスレッドの処理に相当する。
アクションフレーム選択部104は、アクション情報203に含まれるボールの3次元位置と、カメラ3の位置とに基づいて、少なくとも2つのカメラ3を選択する(S201)。
次に、アクションフレーム選択部104は、S201で選択した各カメラ3の動画フレーム201から、アクションフレーム時刻に対応するアクションフレームと、当該アクションフレーム時刻の前後のフレーム時刻に対応するアクションフレームとを選択する(S202)。
次に、検出領域設定部105は、S202で選択された各アクションフレームに対して、検出領域300を設定する(S203)。
次に、選手検出部106は、S203で設定された各検出領域300から、選手領域を検出する(S204)。そして、選手検出部106は、S204で検出した各選手領域の中から、アクター領域400を選択する(S205)。そして、選手検出部106は、S201で選択された各カメラ3のアクター領域400を用いて、同一選手判定処理を行う(S206)。なお、当該同一選手判定処理は省略されてもよい。
次に、番号認識部107は、各アクター領域400からユニフォーム番号500を認識し、アクターのユニフォーム番号500を決定する(S207)。なお、番号認識部107は、認識したユニフォーム番号500が一致しない場合、上述の通り、最も多いユニフォーム番号500をアクターのユニフォーム番号500に決定する。
次に、番号認識部107は、アクションフレーム時刻Tと、S207で検出したアクターのユニフォーム番号500とを対応付けたアクター情報204を生成し、記憶部109に格納する(S208)。そして、フローは、処理を終了する(END)。
このように、球技映像解析装置100は、アクション判定処理を繰り返し実行し、アクションが発生したと判定した場合に、アクター認識処理のスレッドを生成し、アクターのユニフォーム番号500を認識する。これにより、アクター認識処理は、ボールに対するアクションが発生した場合にのみ実行されるので、球技映像解析装置100の処理負荷を低減できる。
<実施の形態1のまとめ>
実施の形態1では、球技映像解析装置100は、カメラ3A~3Dから動画フレーム201を受信し、それら受信した複数の動画フレーム201から、ボールの軌跡を算出し、その算出したボールの軌跡変化に基づいて、ボールに対して選手によるアクションが発生したか否かを判定し、アクションが発生した場合、複数の動画フレーム201の中から、当該アクションが発生したタイミングにおける動画フレームをアクションフレームとして選択し、当該アクションフレームからアクションを行った選手(アクター)を、例えばユニフォーム番号500によって認識する。
これにより、球技を撮影した動画フレームに基づいて、ボールに対してアクションを行った選手(アクター)を特定できる。
また、実施の形態1では、上記アクションフレームに対して、アクションが発生したタイミングにおけるボールの3次元位置に応じた検出領域300を設定し、その検出領域300からアクターが撮影されているアクター領域400を検出し、そのアクター領域400から、アクターを認識してもよい。
これにより、アクターの検出処理が、検出領域300内に限定して行われ、ユニフォーム番号500の認識処理が、アクター領域400内に限定して行われる。したがって、動画フレーム全体に対してアクターの検出処理及びユニフォーム番号の認識処理を行う場合と比較して、処理負荷を低減できる。よって、球技映像解析装置100は、ほぼリアルタイムでアクターを認識でき得る。
(実施の形態2)
実施の形態2では、実施の形態1で説明した球技映像解析装置100が生成したプレイ情報205を利用して選手のプレイを分析するプレイ分析システムについて説明する。なお、実施の形態1と共通の構成要素については、同じ参照符号を付与して説明を省略する。
図9は、プレイ分析システム2の構成例を示す。プレイ分析システム2は、複数のカメラ3A,3B,3C,3Dと、球技映像解析装置100と、プレイ分析装置1000と、プレイ情報DB1100と、プレイ情報管理装置1200と、表示装置1300と、入力装置1400とを備える。カメラ3A~3D及び球技映像解析装置100については、実施の形態1にて説明した通りである。
球技映像解析装置100と、プレイ分析装置1000と、プレイ情報管理装置1200とは、有線又は無線のネットワークで接続されている。また、プレイ情報管理装置1200とプレイ情報DB1100とは所定のケーブルで接続されている。なお、プレイ情報DB1100は、プレイ情報管理装置1200内の記憶装置(図示せず)に内蔵されてもよい。また、プレイ分析装置1000と、表示装置1300及び入力装置1400とは、所定のケーブル又は無線I/Fで接続されている。
プレイ情報DB1100は、球技映像解析装置100にて生成されたプレイ情報205をデータベースとして管理する。プレイ情報管理装置1200は、球技映像解析装置100にて生成されたプレイ情報205を、プレイ情報DB1100に登録する。また、プレイ情報管理装置1200は、プレイ分析装置1000からの指示に基づき、プレイ情報DB1100からプレイ情報205を取得したり、プレイ情報DB1100内のプレイ情報205を修正したりする。
プレイ分析装置1000は、プレイ情報DB1100内のプレイ情報205に基づいて、球技のプレイの分析に関するUI2000(図11参照)を生成し、表示装置1300(例えば液晶ディスプレイ)に表示する。また、プレイ分析装置1000は、入力装置1400(例えばマウス等)を通じてUI2000に対して行われた操作に基づいて、プレイ情報205に関する処理を実行する。なお、プレイ分析装置1000と、表示装置1300と、入力装置1400とは、一体型の装置であってもよい。この場合、表示装置1300と入力装置1400とは、例えば、タッチパネルディスプレイのように、入力と表示を兼ねる装置であってもよい。
以下では、球技がバレーボールの場合を例に説明する。しかし、実施の形態2は、バレーボールに限られず、卓球又はバドミントン等、様々な球技に適用可能である。
図10は、プレイ分析装置1000の構成例を示す。図11は、プレイ分析装置1000が生成するUI2000の例を示す。
プレイ分析装置1000は、UI制御部1001と、映像制御部1002と、プレイ情報制御部1003と、スコア情報制御部1004と、プレイ分析部1005とを有する。
UI制御部1001は、UI2000を生成し、表示装置1300に表示する。また、UI制御部1001は、入力装置1400を通じて、UI2000に対する操作を受け付ける。
映像制御部1002は、UI2000上に、球技のプレイ映像2100を表示する。プレイ映像2100は、カメラ3A~3Dが撮影中のリアルタイム映像であってもよいし、過去のプレイの録画映像であってもよい。なお、ユーザからカメラの切替指示を受けた場合、映像制御部1002は、その切替先のカメラによって撮影されたプレイ映像2100を表示する。
プレイ情報制御部1003は、1ラリー中に生成されたプレイ情報205の内容を時系列に並べ、プレイ情報リスト2200としてUI2000上に表示する。なお、プレイ情報制御部1003及びプレイ情報リスト2200の詳細については後述する。
スコア情報制御部1004は、スコア情報の内容を時系列に並べ、スコア情報リスト2300としてUI2000上に表示する。1つのスコア情報には、1ラリー後の自分のチームのスコアと相手のチームのスコアとが含まれている。また、1つのスコア情報には、当該ラリー中に生成された1以上のプレイ情報205が対応付けられている。なお、スコア情報制御部1004及びスコア情報リスト2300の詳細については後述する。
プレイ分析部1005は、分析対象に選択された選手のプレイの分析結果を示す画像であるプレイ分析画像2400(図12参照)を生成し、UI2000上に表示する。なお、プレイ分析部1005の詳細については後述する。
<プレイ分析画像>
次に、図12を参照して、トスのプレイ分析画像2400について説明する。トスのプレイ分析画像2400は、分析対象の選手(典型的にはセッター)のトスのプレイを分析するための画像である。
トスのプレイ分析画像2400は、対象選手側のコートのフロントゾーンを基準とする。なお、ユーザは、カーソルボタン2410を操作し、コートに対するプレイ分析画像2400の領域を移動させることができる。
プレイ分析部1005は、プレイ情報DB1100から、アクター番号が分析対象の選手の番号であり、かつ、アクション種別が「トス」であるプレイ情報205を取得する。そして、プレイ分析部1005は、その取得したプレイ情報205のボール座標から、分析対象の選手がトスを行った位置を特定する。
プレイ分析部1005は、トスのプレイ分析画像2400において、対象選手がトスを行った位置に属性画像2401を配置する。属性画像2401は、例えば、円とバーとを含む形状であり、円の色とバーの長さとによって、トスに関する複数の異なる属性情報を視覚的に表現する。トスに関する属性情報には、例えば、トスの種類、トス時のボールの速度、トス時のボールの高さ、及び、トス時のボールの移動距離がある。
・内円2402の色は、トスの種類を示す。例えば、水色が右側へのトス、赤色が後方へのトス、黄色が左側へのトス、桃色がクイック、青色が2アタックを示す。なお、図12では、色の違いを、塗りつぶしパターンの違いで表現している。
・内円2402の領域を除いた外円2403の色は、トス時のボールの速度を示す。例えば、緑色が20km/h以下、黄色が20~25km/h、赤色が25km/h以上を示す。なお、図12では、色の違いを、塗りつぶしパターンの違いで表現している。
・外円2403のサイズ(直径)は、トス時のボールの高さを示す。例えば、小さい外円が2m未満、中程度の外円が2~3m未満、大きい外円が3m以上を示す。
・バー2404の長さは、トス時のボールの移動距離を示す。例えば、長いバーが4m以上、中程度のバーが2~4m未満、短いバーが2m未満を示す。なお、バー2404の長さは、トス時のボールの移動距離に限らず、トスに伴って取得される距離、例えば、トスに連動する動作であるアタック位置のネットからの距離であってもよい。
これにより、ユーザは、トスのプレイ分析画像2400から、対象選手のトスのプレイを視覚的に把握及び分析することができる。なお、上述のトスのプレイ分析画像2400の説明は、トス以外のアクションにも適用できる。例えば、内円2402の色がアタックの種類を示し、外円2403の色がアタック時のボールの速度を示し、外円2403のサイズがアタック時のボールの高さを示し、バー2404の長さがアタック時のボールの移動距離を示してもよい。
なお、トスのプレイ分析画像2400は、ユーザが次の操作を行うことによって表示されてよい。
(ステップS11)ユーザがUI2000上のトス分析ボタン(図示せず)を押下すると、UI制御部1001は、選手のリストを表示する。
(ステップS12)ユーザが、その表示された選手のリストから、トス分析対象の選手を選択する。
(ステップS13)プレイ分析部1005は、その選択された対象選手に関する複数のプレイ情報205を、プレイ情報DB1100から取得する。そして、プレイ分析部1005は、その取得したプレイ情報205から、トスの属性情報を特定し、トスのプレイ分析画像2400を生成する。
(ステップS14)プレイ分析部1005は、UI2000上に、その生成したトスのプレイ分析画像2400を表示する。
<プレイ情報リスト>
次に、図13を参照して、プレイ情報リスト2200について説明する。
プレイ情報リスト2200は、上述のとおり、1ラリー中に生成されたプレイ情報205の内容を時系列に並べて表示したものである。プレイ情報リスト2200は、プレイ情報205毎に、再生ボタン2201と、チーム2202と、選手番号2203と、アクション2204とを有する。
再生ボタン2201は、当該再生ボタン2201が対応付けられているプレイ情報205に係るプレイ映像2100を再生するためのボタンである。ユーザが再生ボタン2201の押下すると、映像制御部1002は、当該再生ボタン2201に対応するプレイ情報205のフレーム時刻の近傍のプレイ映像2100を再生する。これにより、ユーザは、プレイ情報205に対応する選手のプレイを簡単に確認することができる。
チーム2202は、アクション2204を行った選手が、自分のチームと相手のチームとの何れであるかを示す。例えば、「a」は自分のチーム、「e」は相手のチームを表す。また、チーム2202はボタンになっており、プレイ情報制御部1003は、当該チーム2202が押下された場合、修正用に「a」と「e」のボタンを表示する。
選手番号2203は、アクション2204を行った選手の番号(背番号)を示す。また、選手番号2203はボタンになっており、プレイ情報制御部1003は、当該選手番号2203が押下された場合、選手番号の修正用のボタンを表示する。選手番号の修正用のボタンは、数字を入力するためのボタンであってよい。或いは、選手番号の修正用のボタンは、チームに登録されている選手の番号のリストであってもよい。
アクション2204は、アクションの種別を示す。例えば、「S」はサーブ、「R」はレセプション、「E」はトス、「A」はアタック、「D」はディグ、「B」はブロックを示す。また、アクション2204はボタンになっており、プレイ情報制御部1003は、当該アクション2204が押下されると、修正用に、「S」、「R」、「E」、「A」、「D」及び「B」のボタンを表示する(図16、図17参照)。
例えば、図13に示すプレイ情報リスト2200の1行目は、自分のチーム(「a」)の背番号「10」の選手が、レセプション「R」を行ったことを示す。
<スコア情報リスト>
次に、図14を参照して、スコア情報リスト2300について説明する。
スコア情報リスト2300は、上述のとおり、1セットにおける各ラリーに対応するスコア情報の内容を時系列に並べて表示したものである。スコア情報リスト2300は、スコア情報毎に、再生ボタン2301と、スコア2302と、チェックボックス2303とを有する。
再生ボタン2301は、当該再生ボタン2301が対応付けられているスコア情報に係るプレイ映像2100を再生するためのボタンである。ユーザが再生ボタン2301の押下すると、映像制御部1002は、当該再生ボタン2301に対応するラリーのプレイ映像2100を再生する。
スコア2302は、ラリー後の自分のチームと相手のチームのスコアを示す。また、スコア2302は選択(クリック)可能になっており、当該スコア2302が選択された場合、スコア情報制御部1004は、当該スコア2302のラリー(スコア情報)に対応付けられているプレイ情報リスト2200を表示する。
チェックボックス2303は、ユーザがスコア単位でラリーに対するチェックをオン及びオフするためのものである。例えば、試合中などのリアルタイム状況では、プレイ情報リスト2200の内容(チーム2202、選手番号2203、アクション2204)に誤りを発見しても、次のラリーがすぐに始まってしまうため、或るラリーを後で再検証(修正)したい場合に備えて、ユーザは、当該ラリーに対応するチェックボックス2303をオン(識別情報の入力)にして、プレイ情報リスト2200の内容が暫定状態にあることを識別できるようにする。これにより、ユーザは、後で、チェックボックス2303をオンにしたラリーをまとめて再検証できる。例えば、スコア情報制御部1004が、ユーザからの指示に応じて、チェックボックス2303がオンになっているラリーのみを限定して表示することにより、ユーザは、効率的に修正作業を行える。また、チェックボックス2303の数は、1つに限られない。例えば、図14に示すように、1つのスコア情報に対して、用途別に2以上のチェックボックスが設けられてもよい。
<プレイ情報の修正>
次に、図15、図16及び図17を参照して、プレイ情報205の修正手順について説明する。なお、当該修正手順は一例であり、他の手順による修正も可能である。
(ステップS21)ユーザは、ラリー中にリアルタイムに更新されるプレイ情報リスト2200を見ながら、当該ラリーに係るプレイ情報205について修正が必要と判断した場合、次の操作を行う。すなわち、ユーザは、スコア情報リスト2300における当該ラリーのスコア2302に対応するチェックボックス2303をオンにする。
(ステップS22)図15に示すように、ユーザは、1セット終了後又は試合終了後に、チェックボックス2303をオンにしたスコア2302を選択する。
(ステップS23)図15に示すように、スコア情報制御部1004は、ステップS22にて選択されたスコア2302(スコア情報)に関連付けられているプレイ情報リスト2200を表示する。
(ステップS24)図16に示すように、ユーザは、プレイ情報リスト2200から、修正対象のアクション2204(例えば「A」)を押下する。
(ステップS25)図16に示すように、プレイ情報制御部1003は、アクション2204の押下を検出し、アクションに関する修正用のボタン2210を表示する。
(ステップS26)ユーザは、図17に示すように、修正用のボタン2210の中から、修正後のアクションに対応するボタン(例えば「E」)を選択する。
(ステップS27)プレイ情報制御部1003は、ステップS26にて選択された修正用のボタン(例えば「E」)に対応するアクションで、プレイ情報205を修正する。例えば、図17に示すように、プレイ情報205における修正前のアクション2204「A」を、修正後のアクション2204「E」に修正する。
以上の手順によれば、プレイ情報205の誤りを簡単に修正することができる。なお、修正対象はアクション2204に限られず、チーム2202及び選手番号2203も、同様に修正できる。また、修正の有無にかかわらず、チェックボックス2303がオン状態にあるプレイ情報205の確認が終了すると、これに連動して、チェックボックス2303の状態をオフにしてもよい。
<実施の形態2のまとめ>
実施の形態2では、プレイ分析装置1000は、複数のプレイ情報205を用いて、特定の選手が特定のアクションを行った各位置を示すプレイ分析画像2400を生成するプレイ分析部1005を備える。なお、プレイ情報205は、球技映像解析装置100によって生成されたものであってよい。例えば、球技映像解析装置100は、複数のカメラ3A~3Dによって撮影された複数のプレイ映像を用いて、球技の移動体(ボール)の軌跡を算出し、当該移動体の軌跡の変化に基づいて、球技に関するアクション、当該アクションを行った選手、及び当該選手が当該アクションを行った位置を検出し、当該アクション、当該選手、及び当該位置を対応付けたプレイ情報205を生成する。
これにより、プレイ分析画像2400には特定の選手が特定のアクションを行った各位置が表示されるので、ユーザは、プレイ分析画像2400から、当該特定の選手の特定のアクションを詳細に分析することができる。
また、実施の形態2では、プレイ分析装置1000は、複数のプレイ情報205に含まれる選手とアクションの情報を時系列に並べて表示するプレイ情報制御部1003を備える。プレイ情報205は、球技映像解析装置100によって生成されたものであってよい。例えば、球技映像解析装置100は、複数のカメラ3A~3Dによって撮影された複数のプレイ映像を用いて、球技の移動体の軌跡を算出し、当該移動体の軌跡の変化に基づいて、球技に関するアクションと、当該アクションを行った選手とを検出し、当該アクションと当該選手とを対応付けたプレイ情報205を生成する。
これにより、プレイ分析装置1000は、球技映像解析装置100によって自動的に生成される複数のプレイ情報205に含まれる選手とアクションの情報(プレイ情報リスト2200)を表示することができる。よって、ユーザは、煩雑な操作を行うことなく、球技中に各選手が行ったプレイを確認することができる。
また、プレイ情報制御部1003は、リアルタイムでスコアに対応付けて少なくとも1つのプレイ情報205に含まれる選手及びアクションの情報を時系列に並べて表示し、チェックボックス2303を用いて、スコア単位でその表示した選手及びアクションの情報が暫定状態にあることを後で識別できるようにする。
これにより、プレイ分析装置1000は、自動的に生成された複数のプレイ情報205に含まれる選手及びアクションの情報(プレイ情報リスト2200)に対する検証が複数存在するような場合でも、後で一括して確認できる。よって、ユーザは、自動的に生成されたプレイ情報205の内容が誤っている場合、その誤りを簡単かつ効率的に確認して修正できる。
以上、本開示に係る実施形態について図面を参照して詳述してきたが、上述した各装置100、1000、1200の機能は、コンピュータプログラムにより実現され得る。
図18は、各装置の機能をプログラムにより実現するコンピュータのハードウェア構成を示す図である。このコンピュータ3100は、キーボード又はマウス、タッチパッドなどの入力装置3101、ディスプレイ又はスピーカーなどの出力装置3102、CPU(Central Processing Unit)3103、GPU(Graphics Processing Unit)3104、ROM(Read Only Memory)3105、RAM(Random Access Memory)3106、ハードディスク装置又はSSD(Solid State Drive)などの記憶装置3107、DVD-ROM(Digital Versatile Disk Read Only Memory)又はUSB(Universal Serial Bus)メモリなどの記録媒体から情報を読み取る読取装置3108、ネットワークを介して通信を行う送受信装置3109を備え、各部はバス3110により接続される。
そして、読取装置3108は、上記各装置の機能を実現するためのプログラムを記録した記録媒体からそのプログラムを読み取り、記憶装置3107に記憶させる。あるいは、送受信装置3109が、ネットワークに接続されたサーバ装置と通信を行い、サーバ装置からダウンロードした上記各装置の機能を実現するためのプログラムを記憶装置3107に記憶させる。
そして、CPU3103が、記憶装置3107に記憶されたプログラムをRAM3106にコピーし、そのプログラムに含まれる命令をRAM3106から順次読み出して実行することにより、上記各装置の機能が実現される。
上記の実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、又は、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。