以下に、実施形態について図面を参照して説明する。参照される図面は模式的なものである。以下の説明において、同一の機能及び構成を有する要素については、共通する参照符号を付す。参照符号を構成する数字の後のアルファベットは、同じ数字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために使用される。同じ数字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は数字のみを含んだ参照符号により参照される。
[1]第1実施形態
以下に、第1実施形態に係る映像処理装置について説明する。
[1−1]構成
[1−1−1]装置構成
まず、図1を用いて映像処理装置の全体構成について説明する。図1には映像処理装置のブロック図が示されている。図1に示すように映像処理装置1は、プロセッサ(CPU)10、ランダムアクセスメモリ(RAM)11、読み出し専用メモリ(ROM)12、記憶部13、及びディスプレイ14を備えている。
CPU10は、映像処理装置1全体の動作を制御する。例えばCPU10は、ユーザーによる操作や外部の図示せぬホスト機器からの命令に応答して、後述する映像処理に用いるプログラムを実行する。またCPU10は、記憶部13のメモリ空間を管理する。
RAM11は、CPU10の作業領域として使用されるメモリである。RAM11としては、例えばDRAM等の半導体メモリが使用される。
ROM12は、制御用のプログラムや制御データ等が予め記憶された不揮発性のメモリである。ROM12は、例えばBIOS(Basic Input/Output System)を保持する。
記憶部13は、ユーザーが解析に使用する映像ファイルや、映像処理によって生成されたデータを記憶する。また記憶部13は、映像処理に用いる種々のプログラムや、プログラムに関連するデータを保持する。記憶部13に保持されたプログラムは、映像処理装置1が当該プログラムを実行する際に読み出され、RAM11に展開される。記憶部13としては、例えばSSD(Solid State Drive)や、ハードディスクドライブが使用される。尚、記憶部13はデータを記憶することが可能であれば良く、記憶部13としてその他の記憶媒体を使用しても良い。
ディスプレイ14は、CPU10が種々のプログラムに対応するGUI(Graphical User Interface)等を表示する。例えばディスプレイ14は、映像処理の結果を再生するために使用される。
尚、以上で説明した映像処理装置1の構成はあくまで一例であり、その他の構成であっても良い。例えば、映像処理装置1が記憶部13及びディスプレイ14を備えていなくても良い。この場合、映像処理装置1には、記憶部13及びディスプレイ14がそれぞれ外部接続される。
また、以上の説明において、映像処理に用いるプログラムが記憶部13に記憶されている場合を例に説明したが、これに限定されない。例えば、映像処理装置1が実行するプログラムを、図示せぬネットワーク上のサーバーに保持させても良い。この場合、映像処理装置1が映像処理を実行する際に、種々のプログラムがネットワーク上のサーバーから映像処理装置1に配信される。そして種々のプログラムを受信した映像処理装置1は、これらのプログラムをRAM11に展開して、映像処理を実行する。
[1−1−2]プログラム構成
次に、図2を用いて映像処理に用いるプログラムの構成について説明する。図2には、映像処理時にRAM11に展開される種々のプログラムが示されている。図2に示すように映像処理を実行する場合にRAM11には、メインプログラム20、分析プログラム21、再生プログラム27、及びディスプレイデータ28が展開される。
メインプログラム20は、映像処理装置1において映像ファイルの分析処理と、分析処理により得られた分析データの再生処理とを選択的に実行するためのソフトウェアである。以下の説明において映像ファイルは、例えばスポーツの中継等に使用された試合映像であり、動画データ及び音声データを含むものとする。尚、本映像処理に対応する映像ファイルのフォーマットは特に限定されない。
分析プログラム21は、種々のプログラムを実行することによって映像ファイルを分析するプログラムである。分析プログラム21は、フィールド検出プログラム22、物体検出プログラム23、物***置推定プログラム24、プレー種別判別プログラム25、及びシーン分割プログラム26を含んでいる。尚、この分析プログラム21の構成はこれに限定されない。例えば、分析プログラム21が1つのプログラムにより構成されていても良く、プログラム毎に分かれていなくても良い。
分析プログラム21を実行することにより、CPU10は、図3に示すように例えばフィールド検出部30、第1物体検出部31A、第2物体検出部31B、チーム種別判別部32、物***置推定部33、移動方向推定部34、移動速度推定部35、プレー種別判別部36、特定音検出部37、及びシーン分割部38として機能する。尚、本例ではCPU10の処理毎に名称を変更して説明するが、CPU10は同時に複数の処理を実行することも可能である。
フィールド検出部30は、CPU10がフィールド検出プログラム22を実行することにより実現され、動画に表示されているフィールド領域を検出する。物体検出部31及びチーム種別判別部32は、CPU10が物体検出プログラム23を実行することにより実現される。第1物体検出部31Aは、動画に表示されている人物を検出する。第2物体検出部31Bは、動画に表示されているボールを検出する。チーム種別判別部32は、動画に表示されている人物の種別を判別する。物***置推定部33は、物***置推定プログラム24を実行することにより実現され、フィールド、人物、及びボールの検出結果から、選手及びボールの移動軌跡を推定する。移動方向推定部34、移動速度推定部35、及びプレー種別判別部36は、プレー種別判別プログラム25を実行することにより実現される。移動方向推定部34は、フィールド、人物及びボールの検出結果から、人物及びボールの移動方向を推定する。移動速度推定部35は、フィールド、人物、及びボールの検出結果から、人物及びボールの移動速度を推定する。プレー種別判別部36は、フィールド、人物、及びボールの検出結果から、映像ファイルの各時点におけるプレーの種別を判別する。特定音検出部37及びシーン分割部38は、CPU10がシーン分割プログラム26を実行することにより実現される。特定音検出部37は、音声データから審判のホイッスル音等の特定音を検出する。シーン分割部38は、特定音検出部37が特定音を検出したタイミングに基づいて、映像ファイルのシーンを分割する。
再生プログラム27は、分析された映像ファイルの再生処理を実行するプログラムである。再生処理には、例えば分析された映像ファイルと、関連付けられた分析データとが使用される。尚、再生処理に映像ファイルと分析データとを用いる場合を例に挙げているが、これに限定されない。例えば、分析データ自体に映像ファイルの動画データ及び音声データを含ませることによって、分析データのみで再生処理を実行することも可能である。
ディスプレイデータ28は、各種プログラムに関連付けられた画像ファイルを含む。例えばCPU10は、各種プログラムを実行した場合にディスプレイデータ28内の対応する画像ファイルをディスプレイ14に表示する。
<フィールドの一例>
以上で説明された映像処理装置1を用いて分析されるスポーツとしては、例えばラグビーが挙げられる。以下の説明では、ラグビーの試合映像を映像処理装置1によって分析する場合を例に使用する。本例に用いるラグビーのフィールド構成を図4に示す。
図4に示すようにラグビーのフィールドFLDには、ゴールライン40A及び40B、ハーフウェイライン41、10メートルライン42A及び42B、22メートルライン43A及び43B、タッチライン44A及び44B、5メートルライン45A及び45B、並びに15メートルライン46A及び46Bが設けられる。そしてゴールライン40A及び40B上にはそれぞれ、ゴールポスト47A及び47Bが設置される。
フィールドFLD全体のサイズは、タッチライン44A及び44B間が70メートル以内、ゴールライン40A及び40B間が100メートル以内に設定される。尚、フィールドFLD内のラインのうち、ハーフウェイライン41と10メートルライン42との間隔は試合会場に依らず一定であり、ハーフウェイライン41と22メートルライン43との間隔は試合会場に依らず一定である。同様に、タッチライン44と5メートルライン45との間隔試合会場に依らず一定であり、タッチライン44と15メートルライン46との間隔は試合会場に依らず一定である。
[1−2]動作
[1−2−1]メインプログラム20
次に、図5を用いてメインプログラム20に基づいた映像処理装置1の動作について説明する。図5には、メインプログラム20による映像処理装置1の動作フローチャートが示されている。図5に示すようにまずCPU10は、ユーザーに動作の選択を要求する(ステップS10)。このときユーザーは、例えば“分析処理”と“再生処理”のいずれかを選択することが出来る。
映像処理装置1がユーザーからの分析処理命令を受け付けると、CPU10はユーザーに分析処理を実行する映像ファイルの選択を要求する。そして映像処理装置1がユーザーによる映像ファイルの選択を受け付けると(ステップS11)、CPU10は分析プログラム21を実行して映像ファイルを分析する(ステップS12)。この映像ファイルの分析方法の詳細については後述する。映像ファイルの分析が終了すると、CPU10は得られた分析データを映像ファイルに関連付けて記憶部13に保存し(ステップS13)、メインプログラム20による処理を終了する。
一方で、映像処理装置1がユーザーからの再生処理命令を受け付けると、CPU10はユーザーに再生処理を実行する分析データの選択を要求する。そして映像処理装置1がユーザーによる分析データの選択を受け付けると(ステップS14)、CPU10は再生プログラム27を実行して映像ファイルの分析結果を表示する(ステップS15)。この分析結果の表示方法の具体例については後述する。分析データの表示が終了すると、CPU10はメインプログラム20による処理を終了する。
尚、以上で説明したメインプログラム20による動作は一例であり、これに限定されない。例えば、ユーザーが分析したい映像ファイルを選択すると、CPU10が分析プログラム21を実行して、続けて再生プログラム27を実行するようにしても良い。このように映像処理装置1は、分析したい映像ファイルを選択するだけで当該映像ファイルの分析結果を続けて表示させることも可能である。
[1−2−2]分析プログラム21
次に、分析プログラム21に基づいた映像処理装置1の動作について説明する。分析プログラム21が実行されると、CPU10がフィールド検出プログラム22、物体検出プログラム23、及び物***置推定プログラム24を実行して、フィールド検出部30、物体検出部31、及び物***置推定部33として機能する。この分析処理における映像処理装置1の全体的な動作フローチャートが図6に示されている。尚、個々のステップの詳細については後述する。
図6に示すように、まずフィールド検出部30が試合映像からフィールド領域を検出する(ステップS20)。そしてフィールド検出部30は、検出したフィールド領域が対応するフィールド全体からみた座標の情報を算出して、物体検出部31及び物***置推定部33に送信する(図示せず)。また物体検出部31は、試合映像から選手及びボールを検出する(ステップS21)。このとき物体検出部31は、フィールド検出部30からの座標情報と、選手及びボールの映像上の位置から、選手及びボールのフィールド上の座標を確定する。そして物***置推定部33は、物体検出部31が確定させた選手及びボールの座標情報を受けて、選手及びボールをそれぞれ追跡する(ステップS22)。このステップS20〜S22における動作は、本分析処理において継続して実行される。
試合進行に伴い物体検出部31は、ボールが選手の陰に隠れる等の影響によってボールを見失うことがある(ステップS23)。このとき物***置推定部33は、物体検出部31がボールを見失ったことを検知する。そして物***置推定部33は、物体検出部31がボールを見失った位置に対して例えば直近にいる選手をボール保持者とみなして追跡する(ステップS24)。
その後、物体検出部31がボール保持者の近傍でボールを再検出すると(ステップS25)、物***置推定部33はボールが再検出されたことを検知する。そして物***置推定部33は、ボール保持者の移動軌跡からボールの位置を推定する(ステップS26)。具体的には、ボールを見失っていた期間におけるボールの移動軌跡を、例えばボール保持者と同じであるとみなす。
このように映像処理装置1は、試合映像でボールが検出されない期間が存在していても、試合中のボールの位置を連続的に把握することが出来る。以下に、本分析処理を実現するためのフィールド検出部30、物体検出部31、チーム種別判別部32、及び物***置推定部33による映像処理装置1の詳細な動作の一例を順に説明する。
<フィールド検出部30>
まず、図7及び図8を用いてフィールド検出プログラム22に基づいた映像処理装置1の詳細な動作について説明する。図7にはフィールド検出プログラム22による映像処理装置1の動作フローチャートが示され、図8にはフィールド検出プログラム22による分析の対象となるフィールド映像の一例が示されている。
図7に示すようにまずフィールド検出部30は、動画データからフィールド検出処理を実行するフレームを選択する(ステップS30)。このとき選択されるフレームは、例えば選択された動画データの1フレーム目に対応する。
次にフィールド検出部30は、当該フレームの映像VTRからフィールド領域を抽出する(ステップS31)。フィールド領域は、例えばフィールドの色に基づいて映像VTRから抽出される。このフィールドの色情報はユーザーが予め設定しても良いし、フィールド検出部30が映像VTRにおいて広範囲を占める色をフィールドの色とみなしても良い。またフィールド検出部30は、緑色の面積が大きい領域をフィールドとしてみなしても良い。
次にフィールド検出部30は、映像VTRからラインを検出する(ステップS32)。具体的には、例えばステップS31において抽出されたフィールド領域内を、フィールドの色でマスクする。これによりフィールド領域内の前景が抽出され、フィールド検出部30は前景からフィールド領域内のラインを検出することが可能となる。図8に示す例においてフィールド検出部30は、横方向に延びるラインL1及びL2と、縦方向に延びるラインL3及びL4とを検出している。以下の説明において、ラインL1が映像VTRの外周部に接する領域のことを端部E1及びE2と呼び、ラインL2が映像VTRの外周部に接する領域のことを端部E3及びE4と呼ぶ。
次にフィールド検出部30は、映像VTRに表示された領域の座標演算処理を実行する(ステップS33)。座標演算処理は、映像VTRに表示されたフィールド領域がフィールド全体のどの座標に対応するのかを関連付ける処理である。例えば、図8に示すようにラインL1〜L4が検出された場合、まずフィールド検出部30はラインL1〜L4がフィールド内のどのラインに対応するかを判別する。
具体的にはフィールド検出部30は、例えば検出されたラインの間隔や、ラインの線種を確認することによって検出されたラインの種別を確定させる。図8に示す例の場合フィールド検出部30は、例えば横方向に延びるラインL1及びL2が実線であることから、ラインL1及びL2がそれぞれタッチライン44A及び44Bであることを判別する。またフィールド検出部30は、縦方向に延びるラインL3が実線であり、ラインL4が破線であることと、ラインL3とラインL4の間隔から、ラインL3が22メートルライン43Aであり、ラインL4が10メートルライン42Aであることを判別する。
そしてフィールド検出部30は、判別したラインL1〜L4の情報と、映像VTRの表示領域の情報とから、映像VTRに表示された領域が、フィールド全体のどの座標に対応するのかを演算する。図8に示す映像VTRに対して座標演算処理を実行した場合、図9に示すような情報が得られる。図9に示すように二次元フィールドFLD内には、映像VTRの端部E1〜E4を順に繋いだ領域が示され、映像領域外が斜線でマスクされている。ここで二次元フィールドFLDとは、フィールド全体が表示されたフィールドの画像のことを示している。そしてフィールド検出部30は、このように関連付けられた映像VTRの座標データを記憶部13に保存する。
次にフィールド検出部30は、これまで処理を実行したフレームが最後のフレームであるかどうかを確認する(ステップS34)。処理を実行したフレームが最後のフレームに該当しなかった場合(ステップS34、NO)、フィールド検出部30はステップ20に戻り、続くフレームを選択して同様の処理を実行する。一方で、処理を実行したフレームが最後のフレームに該当した場合(ステップS34、YES)、フィールド検出部30はフィールド検出プログラム22の実行を終了する。
尚、上記説明におけるラインの判別方法はあくまで一例であり、これに限定されない。例えば、フィールドFLD内に設けられたフラグを認識することによってタッチライン44を判別するようにしても良いし、ゴールポスト47A及び47Bを認識することによってゴールライン40A及び40B上を判別するようにしても良い。
また、上記説明においてフレーム毎にフィールド検出処理を実行した場合を例に説明したが、これに限定されない。例えばフィールド検出部30は、フィールドを検出した後の処理において、続くフレームとの映像の差分を確認することによりフィールド及びラインを判別しても良い。
<物体検出部31及びチーム種別判別部32>
次に、図10及び図11を用いて物体検出プログラム23に基づいた映像処理装置1の詳細な動作について説明する。図10には物体検出プログラム23による映像処理装置1の動作フローチャートが示され、図11には物体検出プログラム23による分析の対象となる試合映像の一例が示されている。
図10に示すようにまず物体検出部31は、動画データから物体検出処理を実行するフレームを選択する(ステップS40)。このとき選択されるフレームは、例えば選択された映像VTRの1フレーム目に対応する。
次に物体検出部31は、当該フレームの映像VTRからフィールド上の物体を抽出する(ステップS41)。このステップS41における画像処理は、図7を用いて説明したステップS32における画像処理と同様であり、フィールド領域内の前景を抽出することにより物体を検出する。
次に物体検出部31は、フィールド領域内の前景として抽出された物体が人物であるか、ボールであるかを判別する(ステップS42)。具体的には、図11に示すように第1物体検出部31Aが選手P1〜P8を判別し、第2物体検出部31BがボールBLを判別する。また第1物体検出部31Aは、選手が複数人接触しているような状況を確認した場合、その複数の選手の塊を密集HDとして認識する。この密集HDは、ラグビーの場合スクラム、ラック、モール等に対応している。
そしてチーム種別判別部32が、抽出した選手の色情報からチーム種別を判別する(ステップS43)。具体的にはチーム種別判別部32が、例えば選手P1〜P8が検出された矩形の領域において、似た特徴の色情報を有する人物をグループ分けする。図11に示す例では選手P1〜P4が黒色のユニフォームを身につけ、選手P5〜P8が白色のユニフォームを身につけていることから、チーム種別判別部32は選手P1〜P4をAチームに分類し、選手P5〜P8をBチームに分類する。
次に物体検出部31は、フィールド上に検出された物体の座標を算出する(ステップS34)。具体的には、フィールド検出プログラム22によって得られたフィールド領域の座標情報に基づいて、第1物体検出部31Aが選手P1〜P8及び密集HDの二次元フィールドFLD上における座標を算出し、第2物体検出部31BがボールBLの二次元フィールドFLD上における座標を算出する。図11に示す映像VTRに対して座標演算処理を実行した場合、図12に示すような情報が得られる。図12に示すように二次元フィールドFLD内には、選手P1〜P4が黒丸で示され、選手P5〜P8が白丸で示され、密集HDが破線の円で示され、ボールBLが楕円で示されている。そして物体検出部31は、このように関連付けられた選手P1〜P8、密集HD、及びボールBLの情報を記憶部13に保存する。
次に物体検出部31は、これまで処理を実行したフレームが最後のフレームであるかどうかを確認する(ステップS45)。処理を実行したフレームが最後のフレームに該当しなかった場合(ステップS45、NO)、ステップ40に戻り、物体検出部31は続くフレームを選択して同様の処理を実行する。一方で、処理を実行したフレームが最後のフレームに該当した場合(ステップS45、YES)、物体検出部31は物体検出プログラム23の実行を終了する。
尚、以上で説明したステップS41において第2物体検出部31Bは、例えば予め登録されたボールの大きさ、形状、及び色情報に基づいてボールを探索して検出する。このボールの情報は、ユーザーによって入力されても良いし、ユーザーが幾つかのメーカー、型番等の情報を選択して、プリセットされたデータが参照されるようにしても良い。
また、以上の説明において第1物体検出部31Aが複数の選手の塊を密集HDとして認識する場合を例に説明したが、第1物体検出部31Aが密集とみなす人数は2人以上に限定されず、任意の人数に設定することが出来る。
また、以上で説明したステップS31及びS32において、第1物体検出部31Aが検出する人物としては、選手以外にも主審、線審、リザーブの選手等が検出されることがある。この場合に第1物体検出部31Aは、例えば主審及び線審がAチーム及びBチームの選手と異なる色情報を有することと、当該グループに属する物体の人数等から、主審及び線審を判別することが出来る。また、第1物体検出部31Aは、例えばフィールド領域のうちタッチライン44より外側にいる人物をその時点でプレーをしていない選手であるとみなすことによって、リザーブの選手を判別することが出来る。
また、上記説明においてフレーム毎に物体検出処理を実行した場合を例に説明したが、これに限定されない。例えば物体検出部31は、物体を検出した後の処理において、続くフレームとの映像の差分を確認することにより選手及びボールを判別しても良い。
<物***置推定部33>
次に、図13を用いて物***置推定プログラム24に基づいた映像処理装置1の詳細な動作について説明する。図13には、物***置推定プログラム24による映像処理装置1の動作フローチャートが示されている。
図13に示すようにまず物***置推定部33は、動画データから物***置推定処理を実行するフレームを選択する(ステップS50)。次に物***置推定部33は、物体検出プログラム23によって算出された選手及びボールの座標情報を参照して追跡する(ステップS51)。
次に物***置推定部33は、当該フレームの映像VTRにおいて、ボールが検出されたかどうかを確認する(ステップS52)。
ステップS52においてボールが検出されなかった場合(ステップS52、NO)、物***置推定部33は、ボール保持者が設定されているかどうかを確認する(ステップS53)。ボール保持者が設定されていない場合(ステップS53、NO)、物***置推定部33は、ボールを見失った場所に最も近い選手をボール保持者とみなしてボール保持者情報を付与する(ステップS54)。そして物***置推定部33は、ステップS53においてボール保持者が設定されていなかった場合(ステップS53、YES)と、ステップS54の処理後に、ステップS56に移行する。
ステップS52においてボールが検出された場合(ステップS52、YES)、物***置推定部33は、ボール保持者設定がされている場合にはその設定を解除して、当該選手のボール保持者としての追跡を停止する(ステップS55)。つまり選手に付与されたボール保持者情報は、ボールが再検出された時点で解除される。そして物***置推定部33は、ステップS55の処理後に、ステップS56に移行する
ステップS55において物***置推定部33は、これまで処理を実行したフレームが最後のフレームであるかどうかを確認する(ステップS55)。
処理を実行したフレームが最後のフレームに該当しなかった場合(ステップS56、NO)、ステップS50に戻り、物体検出部31は続くフレームを選択して、同様の処理を実行する。
処理を実行したフレームが最後のフレームに該当した場合(ステップS56、YES)、物***置推定部33はボール保持者の情報から、動画データにおけるボールの位置を推定する(ステップS57)。そして物***置推定部33は、推定した選手及びボールの移動軌跡の情報を記憶部13に保存して、物***置推定プログラム24の実行を終了する。
以上で説明した物***置推定プログラムによってボール保持者が設定される状況の具体例を、図14及び図15を用いて説明する。
図14は、見失う前のボールBL付近に密集HDがない場合の一例である。図14の(1)には選手P1及びP2が示され、選手P1がボールBLを保持している状況が示されている。この状況から、選手P1が保持していたボールBLが映像から見えなくなったと仮定する。すると図14の(2)に示すように、物***置推定部33は、見失ったボールBLの直近にいた選手P1にボール保持者情報を付与し、選手P1をボール保持者として追跡する。
図15は見失う前のボールBL付近に密集HDがある場合の一例である。図15の(1)にはAチームの選手P1〜P3、Bチームの選手P4〜P6、及び密集HDが示され、選手P1がボールBLを保持している状況が示されている。この状況から、選手P1が保持していたボールBLが映像から見えなくなったと仮定する。すると図15の(2)に示すように、物***置推定部33は、見失ったボールBLの付近にあった密集HDにボール保持者情報を付与し、密集HDをボール保持者として追跡する。
このようにボール保持者情報を付与する対象は、見失ったボール付近の密集HDの有無によって変更してもよい。尚、本例における「付近」の指定する範囲は、任意の数値に設定することが出来る。
[1−3]第1実施形態の効果
ラグビー等のスポーツにおける試合映像では、ボールが選手やボール付近に形成された密集(スクラム、モール、ラック等)の陰に隠れて見えなくなることがある。
そこで第1実施形態に係る映像処理装置1は、スポーツの試合映像の分析処理において、ボールを見失った場合にボール保持者を設定して追跡する。具体的には、物体検出部31が常にボール及び選手の検出を実行して、物体検出部31がボールを検出できない場合に、物***置推定部33が最後にボールを検出した位置に最も近い選手に対してボール保持者情報を付与して追跡する。そして物***置推定部33は、設定したボール保持者情報を、物体検出部31がボールを再検出するまで維持する。
これにより物***置推定部33は、物体検出部31が検知できなかったボールの軌跡を補間することが出来る。言い換えると物***置推定部33は、ボールを見失った際にボール保持者を追跡することによって、ボールの移動軌跡を連続的に把握することが可能となる。つまり第1実施形態に係る映像処理装置1は、スポーツの試合映像の分析処理におけるボールの追跡精度を向上することが出来る。
また、第1実施形態に係る映像処理装置1は、ボール保持者を設定することによって、見失ったボールを探索する領域を狭くすることが出来る。具体的には、映像から見えなくなったボールは、近くにいた選手(ボール保持者)が保持している可能性が高く、ボール保持者の近傍から再検出される可能性が高い。つまり映像処理装置1は、物体検出部31Aがボール保持者情報を参照して、ボール保持者情報が付与された選手の近傍からボールを探すことによって、ボールの検出精度を向上し、且つボールを検出する速度を早くすることが出来る。
[2]第2実施形態
次に、第2実施形態に係る映像処理装置1について説明する。第2実施形態に係る映像処理装置1は、第1実施形態で説明した映像処理装置1において、複数のボール保持者を設定するものである。
[2−1]動作
まず、図16を用いて物***置推定プログラム24に基づいた映像処理装置1の動作において、ボール保持者を複数設定する場合について説明する。図16には、図13におけるステップS50〜S56のループが繰り返されている間に、映像処理装置1が追加で処理する動作のフローチャートが示されている。
物***置推定部33は、ボール保持者の付近を選手が通過した場合に図16に示す動作を実行する。具体的には物***置推定部33は、ボール保持者の付近を選手が通過した選手に対して、追加でボール保持者情報を付与する(ステップS60)。つまりステップS60の動作が実行されると、複数のボール保持者が存在する状況になる。
物***置推定プログラム24の進行に伴い、見失っていたボールが再検出されると(ステップS61)、物***置推定部33はボール保持者が複数存在した期間のボール保持者情報を修正する(ステップS62)。具体的には、物***置推定部33は当該期間において、実際にボールを保持していたと推測されるボール保持者以外の選手のボール保持者としての履歴を消去する。そして物***置推定部33は、図13を用いて説明した物***置推定処理を継続する。このようにボール保持者を複数設定する状況の具体例が、図17に示されている。
図17は、一人のボール保持者が他の選手と交差する場合の一例である。図17の(1)には選手P1及びP2が示され、選手P1にボール保持者情報が付与されている状況が示されている。この状況から、選手P2が選手P1の付近を通過する。すると図17の(2)に示すように、物***置推定部33は、ボール保持者である選手P1と交差した選手P2に対してもボール保持者情報を付与し、選手P1と選手P2の両選手をボール保持者として追跡する。そして続く状況において選手P2の付近からボールBLが再検出されると、物***置推定部33は(2)以降におけるボール保持者は選手P2であると推定する。つまり物***置推定部33は(1)〜(2)の期間におけるボール保持者が選手P1であり、(2)以降におけるボール保持者が選手P2であるとみなせるため、ボールBLの軌跡が図17の(3)に示す破線のような軌跡であると推測することが出来る。
以上のように物***置推定部33は、複数のボール保持者情報から正しいボール保持者情報を抽出することが出来る。尚、映像処理装置1は、複数のボール保持者からボール保持者の候補を絞る方法として、図18〜図20に示すような方法を適用してもよい。
図18に示す方法は、複数のボール保持者の速度情報から正しいボール保持者を推測するものである。図18の(1)には選手P1及びP2が示され、選手P1及びP2の両方共にボール保持者情報が付与されている状況が示されている。この状況から、移動速度推定部35が選手P1と選手P2の速度を算出し、物***置推定部33が選手P1と選手P2の速度を比較する。そして物***置推定部33は、例えば選手P1の方が選手P2よりも移動速度が早いことを検知すると、図18の(2)に示すように選手P2に対してボール保持者としての追跡を停止する。尚、物***置推定部33が速度を比較する方法としては、移動速度推定部35が選手P1と選手P2の具体的な速度を算出することにより比較しても良いが、これに限定されない。例えば、移動速度推定部35が選手P1と選手P2との相対的な速度の関係を物***置推定部33に通知することにより、物***置推定部33がボール保持者の候補を絞るようにしても良い。また、物***置推定部33が複数のボール保持者の移動速度を比較するタイミングは、複数のボール保持者が発生してから所定の時間経過後とされる。この所定の時間を指定するフレーム数は適宜変更することが可能である。また、物***置推定部33は、複数のボール保持者の移動速度の差がある閾値を超えた場合に、ボール保持者の候補を限定するようにしても良い。
図19に示す方法は、複数のボール保持者のその後のプレーから正しいボール保持者を推測するものである。図19の(1)にはAチームの選手P1及びP2と、Bチームの選手P3及びP4が示され、選手P1と選手P2にボール保持者情報が付与されている状況が示されている。この状況から、Aチームの選手P1とBチームの選手P3とが接触して密集HDを形成されると、物***置推定部33は、図19の(2)に示すようにボール保持者である選手P1が形成した密集HDをボール保持者とみなし、選手P2に対してボール保持者としての追跡を停止する。
図20に示す方法は、密集を起点として複数のボール保持者が発生した場合における正しいボール保持者を推測するものである。図20の(1)にはAチームの選手P1及びP2と、Bチームの選手P3及びP4と、密集HD1が示され、選手P1と密集HD1にボール保持者情報が付与されている状況が示されている。この状況から、Aチームの選手P1とBチームの選手P3とが接触して密集HDを形成されると、物***置推定部33は、図20の(2)に示すようにボール保持者である選手P1が新たに形成した密集HD2をボール保持者とみなし、密集HD1に対してボール保持者としての追跡を停止する。
[2−2]第2実施形態の効果
第2実施形態に係る映像処理装置1は、物***置推定部33がボール保持者付近を通過した選手にもボール保持者情報を付与することにより、一時的に複数のボール保持者を追跡する。そしてボールが再検出された場合に、複数のボール保持者が設定されていた期間におけるボール保持者情報を修正する。
これにより第2実施形態に係る映像処理装置1は、第1実施形態よりもボールの追跡精度を向上することが出来、物体検出部31が見失ったボールを再検出する精度を向上することが出来る。そして第2実施形態に係る映像処理装置1は、試合中のより精確なボールの軌跡を把握することが出来る。
[3]第3実施形態
次に、第3実施形態に係る映像処理装置1について説明する。第3実施形態に係る映像処理装置1は、第1実施形態で説明した映像処理装置1において、分析プログラム21を実行する際にさらにプレー種別判別プログラム25を実行するものである。
[3−1]動作
まず、図21を用いてプレー種別判別プログラム25に基づいた映像処理装置1の動作について説明する。図21には、プレー種別判別プログラム25による映像処理装置1の動作フローチャートが示されている。
図21に示すようにまずプレー種別判別部36は、動画データからプレー種別判別処理を実行するフレームを選択する(ステップS70)。
次にプレー種別判別部36は、物体検出プログラム23によって識別された物体の種別を確認する(ステップS71)。具体的には、検出された物体のうち選手とボールとを確認する。尚、ボールが検出されなかった場合には、物***置推定プログラム24の分析結果からボール保持者情報を取得する。
次にプレー種別判別部36は、移動方向推定部34が算出した物体の移動速度を確認し(ステップS72)、さらに移動速度推定部35が算出した物体の移動方向を確認する(ステップS73)。そしてプレー種別判別部36は、物体検出部31が検出した物体の位置情報と、確認した物体の移動方向及び移動速度とから、その時点におけるプレー種別を判別する(ステップS74)。ここでプレー種別判別部36が判別するプレーの種別としては、例えば“ラン”、“パス”、及び“キック”が挙げられる。
“ラン”の判定基準は、例えば図22に示す条件に設定される。図22には、選手P1及びP2が示され、選手P1がボールBLを保持している状況が示されている。そして選手P1と選手P2は、敵陣の方向に走っている。この状況においてプレー種別判別部36は、選手P1とボールBLが略同じ速度且つ略同じ方向に移動していることを認識して、プレーの種別が“ラン”であると判定する。
“パス”の判定基準は、例えば図23に示す条件に設定される。図23には、選手P1及びP2が示され、選手P1が選手P2に向かってボールBLをパスしている状況が示されている。この状況においてプレー種別判別部36は、選手P1から離れたボールBLがオフサイドライン50より後方を移動していることを認識して、プレーの種別が“パス”であると判定する。
“キック”の判定基準は、例えば図24に示す条件に設定される。図24には、選手P1及びP2が示され、選手P1が走り込んできた選手P2の前方に向かってボールBLをキックしている状況が示されている。この状況においてプレー種別判別部36は、選手P1から離れたボールBLがオフサイドライン50より前方を移動していることを認識して、プレーの種別が“キック”であると判定する。
以上のようにプレー種別判別部36はその時点におけるプレー種別を判別して、判別したプレー種別の情報を記憶部13に保存する。プレー種別判別プログラム25を実行することにより得られた情報は、例えば図25に示すように記録される。図25には、プレー種別判別プログラム25による分析結果を示すテーブルの一例が示されている。
図25に示すプレー種別判別プログラム25の分析結果では、プレー種別が変化する時点のフレーム数が記録されている。例えば、動画データのフレーム数が60の時点で、プレー種別が“キック”となっている。そしてフレーム数が“420”の時点で、プレー種別が“ラン”に変わっている。このような場合、フレーム数が“60”から“420”までの期間は、プレー種別が“キック”であったことを示している。続くフレームにおけるプレー種別についても同様である。尚、プレー種別判別プログラム25の分析結果の記録方法はこれに限定されず、例えば全てのフレームにおいて、対応するプレー種別を記録するようにしても良い。
そして物体検出部31は、これまで処理を実行したフレームが最後のフレームであるかどうかを確認する(ステップS75)。処理を実行したフレームが最後のフレームに該当しなかった場合(ステップS75、NO)、ステップ70に戻り、プレー種別判別部36は続くフレームを選択して同様の処理を実行する。一方で、処理を実行したフレームが最後のフレームに該当した場合(ステップS75、YES)、プレー種別判別部36はプレー種別判別プログラム25の実行を終了する。
尚、以上で説明した“パス”及び“キック”の判別する方法として、さらに移動速度の情報を使用することも可能である。例えば、“キック”の速度は“パス”の速度よりも速いことが予想されることから、選手から離れたボールBLの移動速度に対して所定の閾値を設定する。そして、例えばボールの速度が当該閾値より高い場合に“キック”と判定し、当該閾値以下の場合に“パス”と判定する。これにより、プレー種別判別部36は“パス”及び“キック”の判定精度を向上することが出来る。
[3−2]第3実施形態の効果
第3実施形態に係る映像処理装置1は、移動方向推定部34及び移動速度推定部35により算出されたボールの移動方向及び移動速度に基づいて、プレー種別判別部36が試合映像の各時点におけるプレーの種別を自動で判定する。これにより第3実施形態に係る映像処理装置1は、ユーザーが試合映像を分析する負荷を軽減することが出来る。
[4]第4実施形態
次に、第4実施形態に係る映像処理装置1について説明する。第4実施形態に係る映像処理装置1は、第1実施形態で説明した映像処理装置1において、分析プログラム21を実行する際にさらにシーン分割プログラム26を実行するものである。
[4−1]動作
まず、図26を用いてシーン分割プログラム26に基づいた映像処理装置1の動作について説明する。図26には、シーン分割プログラム26による映像処理装置1の動作フローチャートが示されている。
図26に示すようにまず特定音検出部37は、映像ファイルにおける音声データを解析する(ステップS80)。具体的には特定音検出部37は、例えば音声データの開始から終了までの音声の波形を確認する。そして特定音検出部37は、解析した音声データにおいて特定音が検出されたかどうかを確認する(ステップS81)。この特定音としては、例えば試合中に用いられる審判のホイッスル音が挙げられ、特定音検出部37はホイッスル音に対応する特定周波数の音を検出する。
特定音が検出された場合(ステップS81、YES)、特定音検出部37は、特定音が検出された時点に対応する動画データのフレーム数をシーン分割部38に通知する。すると通知を受けたシーン分割部38は、当該フレームを基準として映像ファイルのシーンを分割する(ステップS82)。ここで「シーン」とは一つのプレーの区切りを示し、具体的にはホイッスル音によって区切られた映像の期間を示している。
ステップS81において特定音が検出されなかった場合(ステップS81、NO)、又はステップS82におけるシーン分割処理が終了した後に、特定音検出部37は音声の解析が全て終了したかどうかを確認する(ステップS83)。ここで音声の解析が終了していなかった場合(ステップS83、NO)、ステップS80に戻り、特定音検出部37及びシーン分割部38により同様の処理が繰り返される。一方で、音声の解析が終了した場合(ステップS83、YES)、特定音検出部37はシーン分割プログラム26の実行を終了する。
以上で説明したシーン分割処理の具体例が図27に示されている。図27には、映像ファイルの進行状態と、時間軸とが表示されている。
図27に示すように時刻t0において試合の映像が開始し、時刻t1において試合開始のホイッスル音を特定音検出部37が検出する。するとシーン分割部38は、時刻t1において映像ファイルのシーンを分割する。以降も同様に、特定音検出部37が特定音を検出した時刻t2及びt3において、シーン分割部38が映像ファイルを分割する。図27に示す例では、時刻t3と時刻t4との間の情報は省略され、時刻t4において試合終了のホイッスルを特定音検出部37が検出する。そして、時刻t5において映像が終了している。このような処理によって映像ファイルは、図27に示すようにシーン1〜シーンn(nは5以上の整数)に分割される。
そして分割されたシーンは、分析プログラム21終了後にユーザーがタグ情報を付与することが出来る。分割されたシーンに対してタグ情報を付与した場合の一例が、図28に示されている。図28に示すようにタグ情報は、シーン毎に付与される。タグ情報としては、例えば試合開始や試合終了等の情報や、スクラム、ラインアウト、トライ等のプレー種別の情報が使用される。
尚、特定音検出部37が検出する特定音の情報は、ユーザーによって直接指定された特定の周波数を用いても良い。また特定音の情報として、ユーザーによって選択されたホイッスルのメーカー、型番等の情報に基づいて、プリセットされた周波数情報が使用されるようにしても良い。
[4−2]第4実施形態の効果
第4実施形態に係る映像処理装置1は、特定音検出部37が試合映像から特定音を検出したタイミングに基づいて、シーン分割部38が試合映像のシーンを自動で分割する。これにより第3実施形態に係る映像処理装置1は、試合映像におけるプレーの区切りを簡便に構造化することが出来、ユーザーが試合映像を分析する負荷を軽減することが出来る。
[5]第5実施形態
次に、第5実施形態に係る映像処理装置1について説明する。第5実施形態に係る映像処理装置1は、第1〜第4実施形態で説明した映像処理装置1における分析結果を表示する再生プログラム27の実行例である。
[5−1]動作
まず、図29を用いて再生プログラム27に基づいた映像処理装置1の動作について説明する。図29には、再生プログラム27によりディスプレイ14上に表示される画面の一例が示されている。
図29に示すように再生プログラム27が実行されると、ディスプレイ14上には例えば映像表示領域60、映像コントロール部61、フィールド表示領域62、タグ選択領域63、及びサムネイル領域64が表示される。
映像表示領域60は、分析された動画データを表示する領域である。この領域60においてCPU10は、ユーザーによる設定に基づいて分析プログラム21による物体の検出結果をオーバーレイ表示させることが出来る。このオーバーレイ表示の設定としては、例えば物体の種別毎に、検出した選手の位置を示す枠の大きさ、形状、色等が指定される。
映像コントロール部61には、映像表示領域60において再生する映像をコントロールするボタンが表示されている。CPU10は、ユーザーによって映像コントロール部61における再生ボタン、一時停止ボタン、停止ボタン、及びプログレスバーが操作されたことを検知すると、領域60に表示された映像に対して各ボタンに対応する動作を適用する。
フィールド表示領域62は、分析プログラム21の分析結果を表示する領域である。具体的には、領域62には二次元フィールドが表示され、領域60で表示している時刻において選手、密集、及びボールが位置する座標にアイコンを表示する。この領域62における選手、密集、及びボールの表示方法としては、領域60と同様に、物体の種別毎にアイコンの大きさ、形状、色等を指定することが出来る。またCPU10は、領域60に表示されているフィールド領域を、領域62に示しても良い。この場合CPU10は、例えば図9に示すように映像の領域外をマスクして表示させる。
タグ選択領域63は、分析プログラム21実行後にユーザーが付与したタグ情報を表示する領域である。CPU10は、ユーザーによって領域63に表示されたタグ情報が選択されたことを検知すると、選択されたタグ情報に対応するシーンのサムネイルをサムネイル領域64に表示させる。尚、CPU10は、サムネイル領域64に表示された複数のサムネイルに対して、そのシーンの開始時刻をオーバーレイ表示させても良い。そしてCPU10は、ユーザーによって、領域64におけるサムネイルのいずれかが選択されたことを検知すると、そのサムネイルに対応するシーンの映像を領域60に表示する。
尚、CPU10は、ユーザーによる設定に基づいて、図30に示すようにライン及びグリッドを映像表示領域60上にオーバーレイ表示させることが出来る。図30は、図8で示した映像に対してライン及びグリッドをオーバーレイ表示させた場合の一例である。本例においてCPU10は、10メートルライン42A、22メートルライン43A、5メートルライン45及び45B、並びに15メートルライン46A及び46Bに異なるラインをオーバーレイ表示して、フィールドの縦方向及び横方向にそれぞれグリッドGDをオーバーレイ表示している。またCPU10は、ラインの種類毎にオーバーレイ表示させるラインの線種、太さ、及び色等を変更することが可能であり、同様にグリッドの線種、太さ、色、表示間隔等も変更することが可能である。
また、CPU10は、ユーザーによる設定に基づいて、図31に示すようにフィールド表示領域62上に選手及びボールの軌跡を表示させることが出来る。図31は、図12で示した例に対して選手及びボールBLの移動軌跡TRを追加して、フィールド表示領域62に表示させた場合の一例である。図31に示すようにCPU10は、フィールド表示領域62上に選手P1〜P8、及びボールBLの軌跡TRを表示させることが出来る。またCPU10は、物体の種別毎に軌跡TRの線種、太さ、色等を変更することが可能である。本例において選手P1〜P8の軌跡TRは実線の矢印で示され、ボールBLに対応する軌跡TRは破線の矢印で示されている。さらにCPU10は、この移動軌跡TRについて、現在表示しているフレームから過去何フレーム分表示させるかを、任意の期間に設定することが出来る。
尚、図31において密集HDに含まれた選手が省略されているが、CPU10は密集HDに含まれた選手を省略せずに表示することも出来る。この場合にCPU10は、例えば密集HDを示す破線の円の中に、選手を示す黒丸及び白丸を表示させる。
また、上記説明において二次元フィールドに分析結果を表示させた場合を例に説明したが、これに限定されない。例えば、フィールド全体を3Dの斜視図で表現し、同様の情報を表示させるようにしても良い。
[5−2]第5実施形態の効果
第5実施形態に係る映像処理装置1は、試合映像と、第1〜第4実施形態における試合映像の分析結果とを併せて表示することが出来る。具体的には映像処理装置1は、試合映像と、試合映像に対応する時刻における選手及びボール等の情報をマッピングした二次元フィールドとを同時に表示することが出来る。また映像処理装置1は、表示している試合映像にグリッド等をオーバーレイ表示させることが出来、さらに二次元フィールド上にマッピングした選手及びボールに対して移動軌跡を表示することが出来る。
これにより第5実施形態に係る映像処理装置1は、ユーザーが試合映像からプレー要因を分析することを助けることが出来るため、ユーザーのチーム強化などに寄与する試合映像の分析時間を大幅に短縮することが出来る。
また、第5実施形態に係る映像処理装置1では、一覧表示されたシーンのサムネイル画像から、ユーザーが所望のシーンを選択して再生することが出来る。これにより第5実施形態に係る映像処理装置1は、ユーザーが参照したいシーンを容易に見つけ出すことが出来るため、ユーザーが試合映像を分析する効率を向上することが出来る。
[6]変形例等
上記実施形態の映像処理プログラムは、スポーツを撮影した映像を処理するためにコンピュータに、映像から第1物体<BL、図11>と、第1物体と異なる複数の第2物体<P1-P8、図11>とを検出させ、検出された第1物体、及び複数の第2物体の位置を推定させることを映像におけるフレーム毎に繰り返し、あるフレームにおいて第1物体を検出出来なかった場合に、当該フレームの前のフレームにおいて、第1物体の近傍に位置する第2物体が第1物体を保持しているとみなす<ボール保持者、図14>。
これにより、スポーツの試合映像から検出したボールを追跡し続けることが可能な映像処理プログラムを提供することが出来る。
尚、上記実施形態において、映像処理装置1によって映像処理を実行する場合を例に説明したが、これに限定されない。例えばユーザーは、図32に示すようにクラウドサービスを利用することによって映像処理を実行しても良い。図32には、ユーザーの所有するコンピュータPCと、クラウドサービスに利用されるサーバーSVと、コンピュータPCとサーバーSVとの間を接続する通信ネットワークNWが示されている。この場合、上記実施形態において説明した映像処理に用いるプログラムはサーバーSV側で管理される。そしてユーザーは通信ネットワークNWを介してサーバーSVにアクセスし、分析したい試合映像のファイルをサーバーSV側にアップロードすることによって、上記実施形態で説明した処理を実行することが出来る。尚、クラウドサービスの利用方法はこれに限定されず、種々の利用方法が考えられる。例えば、映像処理において、実行するプログラムをユーザーのコンピュータPCとサーバーSV側とで分担して処理するようにしても良い。
また、上記実施形態において、映像処理装置1の映像処理を映像ファイルの開始から終了までの全てを対象とした場合を例に説明したが、これに限定されない。例えば、映像処理装置1は、ユーザーによって設定された任意の期間に基づいて、当該期間のみ分析処理を実行するようにしても良い。
また、上記実施形態において、各種映像処理がソフトウェアで実行される場合を例に説明したが、これに限定されない。例えば、一部の処理を専用のハードウェアにより実現しても良いし、全ての処理を専用のハードウェアにより実現しても良い。例えば、映像処理において、フィールド検出部30として機能する回路や、物体検出部31として機能する回路を利用することが可能である。その他の処理についても同様である。これらのハードウェアは、映像処理装置1に内蔵されていても良いし、外部接続により利用しても良い。
また、上記実施形態において、各種プログラムの説明に用いたフローチャートは一例であり、これに限定されない。例えば、各フローチャートにおける処理は、可能な限り処理の順番を入れ替えることが可能である。例えば、図13を用いて説明したステップS57の処理は、ステップS55とステップS56の間に実行されても良い。
また、上記実施形態において、ボールを検出出来なくなった直後にボール保持者を設定する場合を例に説明したが、これに限定されない。例えば、動画からボールを検出出来ない期間が所定のフレーム数以上に達した場合に、ボール保持者の設定をするようにしても良い。また、ボールが検出出来なくなった時点の前後で所定のフレーム数ボールが検出されていた場合に、その前後でボールが検出された位置から、現在のフレームにおけるボールの位置を線形補間することも出来る。
また、上記実施形態において、各種プログラムは可能な限り平行して実行することが可能である。また、各種プログラムが共通の情報を取得する必要がある場合、当該情報をプログラム間で共有することも出来る。また、上記実施形態において説明したフィールド検出方法、物体検出方法はあくまで一例であり、これに限定されない。フィールド、選手、ボールを検出することが出来れば、それぞれ異なる方法を用いても良い。
また、上記実施形態において、「色情報」とは、例えば色ヒストグラムのことを示している。つまりチーム種別判別部32は、例えば検出した各選手の色ヒストグラムから、特定の波形を検出することによって、グループ分けをすることが出来る。
尚、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。この実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。