【実施例】
【0016】
本実施例に係る画像処理装置の処理について説明する。
図1は、本実施例に係る画像処理装置の処理を説明するための図である。画像処理装置は、選手によってシュートされたボールのみが通過する部分領域10aを画像フレーム10に設定する。例えば、部分領域10aは、バスケットゴール10b周辺に設定される。
【0017】
画像処理装置は、部分領域10a内に、ボールが存在するか否かを判定する。例えば、画像処理装置は、ボールの形状やサイズを定義したテンプレートを用いて、部分領域10aにボールが存在するか否かを判定する。
図1に示す例では、画像処理装置は、部分領域10aから、ボール5を検出する。画像処理装置は、部分領域10aからボール5を検出すると、ステレオ画像の原理に基づいて、ボール5の3次元座標を算出する。
【0018】
画像処理装置は、部分領域10aからボール5を検出すると、画像処理装置は、画像フレーム10よりも1、2枚前の画像フレーム11を取得し、画像フレーム11から、ボール5を検出する。画像処理装置は、画像フレーム11から検出したボール5の3次元座標を、ステレオ画像の原理に基づいて算出する。
【0019】
画像処理装置は、画像フレーム10で検出したボール5の位置を手がかりとして、画像フレーム11からボール5を検出しても良い。画像処理装置は、画像フレーム10,11から検出した各ボール5の3次元座標を基にして、ボール5の軌跡5aを推定する。画像処理装置は、軌跡5aに基づいて、軌跡5aの開始位置6と、ボール5が、開始位置6に存在していた時刻を推定する。以下の説明では、適宜、ボール5が開始位置6に存在していた時刻を、「開始時刻」と表記する。
【0020】
画像処理装置は、開始時刻に対応する画像フレーム12を取得し、開始位置6から、ボール5を検出する。画像処理装置は、画像フレーム12で検出したボール5の3次元座標を、ステレオ画像の原理に基づいて算出する。画像処理装置は、ボール5の3次元座標に存在する選手7を特定する。
【0021】
上記のように、画像処理装置は、シュートされたボール5だけが通過する部分領域10aからボール5を検出した場合に、ボール5の位置から画像フレームを遡って、シュートの発生場所に対応する開始位置6を特定し、シュート時の画像フレームを特定する。例えば、
図1に示す例では、画像フレーム12に続く複数の画像フレームが、選手がシュートしてからの一連の動作を含む映像データとなる。このため、画像処理装置によれば、利用者が所望する画像を効率よく検索することができる。
【0022】
次に、本実施例にかかる画像処理装置の構成の一例について説明する。
図2は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。
図2に示すように、この画像処理装置100は、カメラ50a〜50dおよびトラッキング装置55に接続される。画像処理装置100は、記憶部110と、記憶部120と、記憶部130とを有する。画像処理装置100は、トラッキングデータ取得部140と、キャプチャ部150と、判定部160と、特定部170と、切り出し部180とを有する。
【0023】
カメラ50a〜50dは、選手がプレーするコート上の映像を撮影するカメラである。カメラ50a〜50dをまとめて、適宜、カメラ50と表記する。カメラ50a〜50dのうち、少なくとも2台以上のカメラ50は、シュートされたボールだけが通過する部分領域が撮影範囲に含まれるように設定される。カメラ50は、撮影した映像データを、画像処理装置100に出力する。映像データは、複数の画像フレームが連続するデータである。本実施例では、一例として、カメラ50a〜50dを示すが、更に、その他のカメラを用いて、コート上の映像を撮影し、画像処理装置100に映像データを出力しても良い。
【0024】
トラッキング装置55は、コート上の選手の位置を検出する処理を繰り返し実行することで、選手の位置と時刻とを対応付けたトラッキングデータを生成する処理部である。トラッキング装置55は、トラッキングデータを画像処理装置100に出力する。トラッキング装置55は、如何なる従来技術に基づいて、トラッキングデータを生成しても良い。例えば、各選手にセンサを取り付けて、各センサとデータ通信を実行し、トラッキングデータを生成しても良いし、カメラ50から得られる映像データを基にした画像処理によって、トラッキングデータを生成しても良い。
【0025】
記憶部110は、画像フレームテーブル110aを有する。記憶部120は、トラッキングテーブル120aおよび映像データ120bを有する。記憶部130は、シュートデータテーブル130aおよびシュートシーン映像データ130bを有する。例えば、記憶部110,120,130は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0026】
画像フレームテーブル110aは、各カメラ50で撮影された映像データ(連続する画像フレーム)を記憶するテーブルである。
図3は、画像フレームテーブルのデータ構造の一例を示す図である。
図3に示すように、この画像フレームテーブル110aは、時刻と、カメラ50から取得した画像フレームとを対応付ける。
【0027】
トラッキングテーブル120aは、トラッキング装置55により生成されるトラッキングデータを保持するテーブルである。
図4は、トラッキングテーブルのデータ構造の一例を示す図である。
図4に示すように、このトラッキングテーブル120aは、時刻と、選手の3次元座標とを対応付ける。
【0028】
映像データ120bは、カメラ50によって撮影された映像データである。例えば、映像データ120bは、複数のカメラ50のうち、コート全体を撮影範囲に含むカメラ50の映像データや、コート全体のうち、一部の領域を撮影範囲に含むカメラ50の映像データを含む。
【0029】
シュートデータテーブル130aは、選手がボールをシュートした映像に関する情報を保持するテーブルである。
図5は、シュートデータテーブルのデータ構造の一例を示す図である。
図5に示すように、このシュートデータテーブル130aは、開始時刻と、終了時刻と、選手識別情報と、ボール軌跡と、映像ファイル名とを対応付ける。
【0030】
シュートシーン映像データ130bは、選手のシュートシーンの映像データを示すものである。例えば、シュートシーン映像データ130bは、映像ファイル名と、映像データとを対応付けた情報を有する。シュートシーン映像データ130bは、後述する切り出し部180により、映像データ120bから切り出される。
【0031】
開始時刻は、選手がボールをシュートした時刻であり、例えば、
図1で説明した開始時刻に対応する。終了時刻は、例えば、開始時刻から所定時間後の時刻に対応する。選手識別情報は、選手を一意に識別する情報である。ボール軌跡は、開始時刻から終了時刻までの、ボールの3次元座標と時刻とを対応付けた情報である。映像ファイル名は、開始時刻から終了時刻までの映像データのファイル名を示す。
【0032】
図6は、ボール軌跡のデータ構造の一例を示す図である。
図6に示すように、ボール軌跡は、時刻とボールの3次元座標とを対応付ける。
【0033】
図2の説明に戻る。トラッキングデータ取得部140は、トラッキング装置55からトラッキングデータを取得する処理部である。例えば、トラッキングデータには、選手の3次元座標と時刻とを対応付けた情報が含まれているものとする。トラッキングデータ取得部140は、トラッキングデータを、トラッキングテーブル120aに格納する。
【0034】
キャプチャ部150は、カメラ50から映像データを取得する処理部である。映像データは、連続する複数の画像フレームを有する。また、各画像フレームには、時刻の情報が付与されているものとする。キャプチャ部150は、映像データを、画像フレームテーブル110aに格納する。また、キャプチャ部150は、映像データを、判定部160に出力する。また、キャプチャ部140は、映像データ120bを、記憶部120に格納する。
【0035】
判定部160は、キャプチャ部150から、映像データを取得し、映像データに含まれる画像フレームの部分領域にボールが存在するか否かを判定する処理部である。判定部160は、ボールを検出した場合に、ボールの3次元座標と、このボールを検出した画像フレームの時刻とを対応付けて、特定部170に出力する。
【0036】
図7は、本実施例に係る判定部の処理を説明するための図である。
図7に示す画像フレーム20Lを、カメラ50aが撮影した画像フレームとし、画像フレーム20Rを、カメラ50bが撮影した画像フレームとする。例えば、カメラ50aの右側に、カメラ50bが設置されているものとする。
【0037】
判定部160は、画像フレーム20Lに部分領域15Lを設定する。部分領域15Lの左上の座標を(x
L01,y
L01)とし、部分領域15Lの右下の座標を(x
L02,y
L02)とする。例えば、判定部160は、ボールの形状および大きさを定義したテンプレートマッチングを行うことで、部分領域15Lからボール5を検出する。部分領域15Lから検出したボール5の座標を(x
L1,y
L1)とする。
【0038】
判定部160は、画像フレーム20Rに部分領域15Rを設定する。部分領域15Rの左上の座標を(x
R01,y
R01)とし、部分領域15Rの右下の座標を(x
R02,y
R02)とする。例えば、判定部160は、ボールの形状および大きさを定義したテンプレートマッチングを行うことで、部分領域15Rからボール5を検出する。部分領域15Rから検出したボール5の座標を(x
R1,y
R1)とする。
【0039】
判定部160は、ステレオ画像の原理により、ボール5の3次元座標を算出する。ここでは、簡単化のため、光軸が平行な平行ステレオ画像を例にして、2次元座標を3次元座標に変換する処理の一例について説明する。
図8は、カメラの設置位置を示す図である。
図8に示すように、カメラ50aの光軸2aと、カメラ50bの光軸2bとが平行になっているものとする。
【0040】
図9は、平行ステレオによる座標系を示す図である。例えば、左のカメラ50aの投影中心を3aとし、右のカメラ50bの投影中心を3bとする。投影中心3a,3bの間隔をbとする。また、各カメラ50a,50bの画像面4a,4bが、投影中心3a,3bからf離れた3次元空間中の同一平面上に存在するものとする。
【0041】
画像面4a上の注目物体の座標を(x
l,y
l)とし、画像面4b上の注目物体の座標を(x
r,y
r)とすると、注目物体の3次元座標(X,Y,Z)は、式(1)、(2)、(3)によって表される。
【0042】
【数1】
【数2】
【数3】
【0043】
判定部160は、式(1)〜式(3)を基にして、ボール5の2次元座標を、3次元座標に変換する。例えば、
図7に示すように、左の画像フレーム20Lのボール5の座標を(x
L1,y
L1)、右の画像フレーム20Rのボール5の座標を(x
R1,y
R1)とすると、ボール5の3次元座標(X
S1,Y
S1,Z
S1)は、式(1a)、(2a)、(3a)により算出される。なお、画像フレーム20Lおよび画像フレーム20Rが撮影された時刻を、T
s1とする。
【0044】
X
S1=x
L1b/(x
L1−x
R1)・・・(1a)
Y
S1=y
L1b/(x
L1−x
R1)・・・(2a)
Z
S1=fb/(x
L1−x
R1)・・・(3a)
【0045】
上記処理により、判定部160は、ボール5の3次元座標(X
S1,Y
S1,Z
S1)を算出する。判定部160は、ボール5の3次元座標(X
S1,Y
S1,Z
S1)、時刻T
S1、2次元座標(x
L1,y
L1)、(x
R1,y
R1)の情報を、特定部170に出力する。
【0046】
図2の説明に戻る。特定部170は、部分領域にボールが存在すると判定された画像フレームよりも前の画像フレームからボールを検出する処理を繰り返し実行し、各ボールの位置に基づいて、ボールの移動軌跡を算出する。また、特定部170は、移動軌跡の開始位置を特定する。以下において、特定部170が、前の画像フレームからボールを検出する処理、ボールの移動軌跡を算出して開始位置を特定する処理について説明する。
【0047】
特定部170が、前の画像フレームからボールを検出する処理について説明する。
図10は、本実施例に係る特定部の処理を説明するための図(1)である。特定部170は、時刻T
S1よりも所定時間前のT
S2において、カメラ50aで撮影された画像フレーム25Lと、カメラ50bで撮影された画像フレーム25Rとを、画像フレームテーブル110aから取得する。
【0048】
画像フレーム25Lに対する特定部170の処理について説明する。特定部170は、前の画像フレーム20Lで検出されたボール5の2次元座標(x
L1,y
L1)から所定距離離れた検出領域16Lを設定する。特定部170は、ボールの形状および大きさを定義したテンプレートマッチングを行うことで、検出領域16Lからボール5を検出する。検出領域16Lから検出したボール5の座標を(x
L2,y
L2)とする。
【0049】
画像フレーム25Rに対する特定部170の処理について説明する。特定部170は、前の画像フレーム20Rで検出されたボール5の2次元座標(x
R1,y
R1)から所定距離離れた検出領域16Rを設定する。特定部170は、ボールの形状および大きさを定義したテンプレートマッチングを行うことで、検出領域16Rからボール5を検出する。検出領域16Rから検出したボール5の座標を(x
R2,y
R2)とする。
【0050】
特定部170は、判定部160と同様にして、時刻T
S2におけるボール5の3次元座標を算出する。
図10に示すように、左の画像フレーム25Lのボール5の座標を(x
L2,y
L2)、右の画像フレーム25Rのボール5の座標を(x
R2,y
R2)とする。そうすると、時刻T
S2における、ボール5の3次元座標(X
S2,Y
S2,Z
S2)は、式(1b)、(2b)、(3b)により算出される。
【0051】
X
S2=x
L2b/(x
L2−x
R2)・・・(1b)
Y
S2=y
L2b/(x
L2−x
R2)・・・(2b)
Z
S2=fb/(x
L2−x
R2)・・・(3b)
【0052】
次に、特定部170が、ボールの移動軌跡を算出して開始位置を特定する処理について説明する。
図11は、本実施例に係る特定部の処理を説明するための図(2)である。
図11に示すように、時刻T
S1におけるボール5の3次元座標を(X
S1,Y
S1,Z
S1)とし、時刻T
S2におけるボール5の3次元座標を(X
S2,Y
S2,Z
S2)とする。特定部170は、上記情報を基にしてシュートの開始位置(X
SS,Y
SS,Z
SS)および開始時刻T
SSを算出する。
【0053】
特定部170は、X
SSを、式(4)に基づいて算出する。特定部170は、Y
SSの値を固定値とする。Y
SSは、地面に相当するY座標となる。特定部170は、Z
SSを式(5)に基づいて算出する。特定部170は、開始時刻T
SSを、式(6)により算出する。
【0054】
X
SS=X
S1−V
XS1×T
D・・・(4)
Z
SS=Z
S1−V
ZS1×T
D・・・(5)
T
SS=T
S1−T
D・・・(6)
【0055】
上記の式(4)、(5)や、後述する式(10)に含まれるV
XS1,V
YS1,V
ZS1は、時刻T
S1におけるX軸、Y軸、Z軸方向の速度を示すものである。V
XS1は、式(7)により示される。V
YS1は、式(8)により示される。V
ZS1は、式(9)により示される。また、T
Dは、式(10)により示される。特定部170は、V
XS1,V
YS1,V
ZS1,T
Dを式(7)〜(10)に基づいて算出する。
【0056】
V
XS1=(X
S1−X
S2)/(T
S1−T
S2)・・・(7)
V
YS1=(Y
S1−Y
S2)/(T
S1−T
S2)・・・(8)
V
ZS1=(Z
S1−Z
S2)/(T
S1−T
S2)・・・(9)
【数4】
【0057】
特定部170は、上記処理を実行することで、開始位置(X
SS,Y
SS,Z
SS)および開始時刻T
SSを算出する。特定部170は、開始位置(X
SS,Y
SS,Z
SS)および開始時刻T
SSの情報を、切り出し部180に出力する。また、特定部170は、時刻T
S1におけるボールの3次元座標、時刻T
S2におけるボールの3次元座標の情報を、切り出し部180に出力する。
【0058】
ここで、特定部170は、算出した開始位置を補正する処理を実行しても良い。特定部170は、開始時刻T
SSに対応する画像フレームを、画像フレームテーブル110aから取得し、補正前の開始位置を起点として、テンプレートマッチングを行い、画像フレームからボールを検出する。そして、特定部170は、ボールを検出した場合に、ステレオ画像の原理に基づいてボールの3次元座標を算出し、算出した3次元座標により、開始位置を補正しても良い。
【0059】
切り出し部180は、開始位置(X
SS,Y
SS,Z
SS)および開始時刻T
SSと、トラッキングテーブル120aとを基にして、シュートデータテーブル130aに格納する情報を生成する処理部である。また、切り出し部180は、開始時刻から所定時間後までの映像データを映像データ120bから切り出し、映像ファイル名を付与して、シュートシーン映像データ130bに格納する。
【0060】
ここで、切り出し部180が、
図5に説明したシュートデータテーブル130aに、開始時刻、終了時刻、選手識別情報、ボール軌跡、映像ファイル名を登録する処理の一例について説明する。
【0061】
切り出し部180は、開始時刻として、特定部170から取得する開始時刻T
SSをシュートデータテーブル130aに登録する。切り出し部180は、開始時刻から所定時間経過後の時刻を、終了時刻として特定し、特定した終了時刻を、シュートデータテーブル130aに登録する。
【0062】
続いて、切り出し部180が、シュートを放った選手の選手識別情報を特定する処理の一例について説明する。切り出し部180は、開始時刻T
SSと、トラッキングテーブル120aとを比較して、開始時刻T
SSにおける各選手の3次元座標を、取得する。切り出し部180は、各選手の3次元座標と、開始位置(X
SS,Y
SS,Z
SS)とを比較して、最も開始位置に近い選手の選手識別情報を特定する。切り出し部180は、特定した選手識別情報を、シュートデータテーブル130aに登録する。
【0063】
図12は、本実施例に係る切り出し部の処理を説明するための図である。
図12において、横軸はX方向の軸であり、縦軸はZ軸方向の軸である。ボール5の3次元座標を(X
SS,Y
SS,Z
SS)とする。例えば、切り出し部180は、ボール5の3次元座標を基準とした半径1mの領域を、検出領域30として設定する。切り出し部180は、検出領域30に含まれる選手の選手識別情報を特定する。
図12に示す例では、選手識別情報は「選手B」となる。なお、検出領域30に複数の選手が存在する場合には、ボール5に最も近い選手の選手識別情報を特定する。
【0064】
切り出し部180は、各時刻のボールの3次元座標の情報を、ボール軌跡のデータとして、シュートデータテーブル130aに登録する。例えば、切り出し部180は、時刻T
S1、T
S2、T
SSにおけるボールの3次元座標を、ボール軌跡のデータとする。
【0065】
切り出し部180は、シュートデータテーブル130aに登録した開始時刻から終了時刻までの映像データを、映像データ120bから切り出し、切り出した映像データに映像ファイル名を設定し、シュートシーン映像データ130bに格納する。また、切り出し部180は、切り出した映像データに設定した映像ファイル名を、シュートデータテーブル130aに登録する。
【0066】
ところで、切り出し部180は、検出領域30に選手が存在しない場合には、特定部170に対して、開始時刻および開始位置の再計算を要求しても良い。特定部170は、再計算の要求を受け付けた場合には、開始時刻T
SSよりも更に前の時刻T
SS’の画像フレームを、画像フレームテーブル110aから取得し、取得した画像フレームからボールの3次元座標を検出する。特定部170は、時刻T
SS’と、新たに検出したボールの開始位置の情報を、切り出し部180に出力する。切り出し部180は、時刻T
SS’と、新たに検出したボールの開始位置の情報を基にして、選手を検出する処理を再度実行する。
【0067】
次に、本実施例に係る画像処理装置100の処理手順の一例について説明する。
図13は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。
図13に示すように、画像処理装置100は、各カメラ50から映像データの取得を開始する(ステップS101)。画像処理装置100は、イベントを検知する(ステップS102)。
【0068】
画像処理装置100は、検知したイベントが終了選択である場合には(ステップS103,Yes)、各カメラ50から映像データの取得を終了する(ステップS104)。一方、画像処理装置100は、検知したイベントが終了選択でない場合には(ステップS103,No)、シュート検出処理を実行し(ステップS105)、ステップS102に移行する。
【0069】
続いて、
図13のステップS105に示したシュート検出処理の処理手順の一例について説明する。
図14は、シュート検出処理の処理手順を示すフローチャートである。
図14に示すように、画像処理装置100のキャプチャ部150は、各カメラ50から画像フレームを取得し、記憶部110に保存する(ステップS201)。
【0070】
画像処理装置100の判定部160は、カメラ50毎に定義された部分領域内にボールが存在するか否かを判定する(ステップS202)。判定部160は、2台以上のカメラ50でボールを検出してない場合には(ステップS203,No)、シュート検出処理を終了する。判定部160は、2台以上のカメラ50でボールを検出した場合には(ステップS203,Yes)、ステップS204に移行する。
【0071】
判定部160は、各画像フレームのボールの2次元座標に基づいて、ボールの3次元座標を算出する(ステップS204)。画像処理装置100の特定部170は、ボールを検出した時刻T
S1から、数フレーム分前までの画像フレームを画像フレームテーブル110aから読み出す(ステップS205)。
【0072】
特定部170は、読み出した画像フレームについて、既に算出したボールの2次元座標の周辺からボールを検出し(ステップS206)、ボールに対する複数の3次元座標を算出する(ステップS207)。特定部170は、複数の3次元座標と競技におけるボールの軌道の特徴から、ボールの開始位置および開始時刻を推定する(ステップS208)。例えば、ステップS208において、特定部170は、競技がバスケットボールであり、ボールが放物線状に移動する場合には、式(4)〜式(10)に基づいて、開始位置および開始時刻を推定する。特定部170は、その他の競技についても、競技の種別に応じて、ボールの軌道を変更し、ボールの開始位置および開始時刻を推定する。例えば、球技がバレーボール等のように直線的に変化する場合には、ボールの軌道を直線状に設定する。
【0073】
特定部170は、推定した開始時刻の画像フレームを記憶部120から読み出し、開始位置周辺のボールを検出する(ステップS209)。特定部170は、検出したボールの3次元座標を計算する(ステップS210)。画像処理装置100の切り出し部180は、開始位置とトラッキングデータの選手の位置とを比較して、開始位置に基づく検出範囲に選手が存在するか否かを判定する(ステップS211)。
【0074】
切り出し部180は、検出範囲に選手が存在しないと判定した場合には(ステップS212,No)、特定部170は、更に時間をさかのぼった開始時刻と開始位置とを推定し(ステップS213)、ステップS209に移行する。
【0075】
一方、切り出し部180は、検出範囲に選手が存在すると判定した場合には(ステップS212,Yes)、シュートデータテーブル130aに各情報を登録し、シュートシーン映像データ130bを切り出す(ステップS214)。
【0076】
次に、本実施例に係る画像処理装置100の効果について説明する。画像処理装置100は、シュートされたボールだけが通過する部分領域からボールを検出した場合に、検出したボールの位置から画像フレームを溯ってシュートの開始位置および開始時刻を特定するので、利用者が所望する画像フレームを効率よく検索することができる。
【0077】
例えば、画像処理装置100は、シュート時のボールが通過する部分領域からボールを検出したことを契機にして、シュートの開始位置および開始時刻の推定を開始するため、処理負荷を軽減することができる。また、部分領域には、複数のボールが同時に検出されることが少ないので、一部の選手がシュート練習をし、他の選手がボールを使った他の練習を同時に行っても、精度良く、シュートの開始位置および開始時刻を特定することができる。
【0078】
画像処理装置100は、一部の画像データから検出したボールの3次元座標を基にして、ボールの移動軌跡を推定し、シュートの開始位置および開始時刻を推定する。このため、途中のボール軌道上において、ボールを検出する処理を省略でき、処理負荷を軽減することができる。
【0079】
画像処理装置100は、シュートの開始位置と、開始時刻と同時刻に撮影された画像データに含まれる複数の選手の位置とを比較して、シュートを行った選手を特定する。このため、シュートを行った選手を精度良く特定することができる。
【0080】
次に、本実施例に係る画像処理装置100のその他の処理について説明する。
【0081】
画像処理装置100の判定部160は、カメラ50によって撮影される画像フレーム上に部分領域を設定し、部分領域にボールが存在しているか否かを判定していたがこれに限定されるものではない。例えば、ゴール付近に深度カメラまたは距離センサ等を設定し、判定部160は、深度カメラまたは距離センサから得られる情報を基にして、ゴール付近に、ボールが存在するか否かを判定しても良い。
【0082】
画像処理装置100の判定部160および特定部170は、例えば、テンプレートマッチングにより、画像フレームからボールを検出していたが、部分領域からボールを検出する場合と、その他の領域からボールを検出する場合の検出条件を調整してもよい。例えば、部分領域には、ボール以外の物体が存在する可能性が低いので、ボールの検出条件を厳しくする。これに対して、地上近くの領域では、ボール以外に選手が含まれる場合が多いので、ボールの検出条件を緩く設定する。
【0083】
例えば、判定部160は、画像フレーム上の部分領域に存在する物体と、テンプレートマッチングを行い、マッチング率がM%以上の場合に、物体がボールであると判定する。これに対して、特定部170が、地上付近の画像フレーム上に存在する物体と、テンプレートマッチングを行い、マッチング率がN%以上の場合に、物体がボールであると判定する。ここで、MとNの大小関係を「M>N」とする。
【0084】
画像処理装置100の特定部170は、判定部160が、部分領域からボールを検出したことを契機にして、画像フレームからボールを検出する処理を実行していたがこれに限定されるものではない。例えば、特定部170は、判定部160がボールを検出したか否かにかかわらず、カメラ50から取得する画像フレームからリアルタイムに、ボールを検出しても良い。このように、特定部170が、常時、画像フレームからボールを検出しておくことで、判定部160が、ボールを検出してから、ボールの検出を開始する場合と比較して、処理を高速化することができる。
【0085】
画像処理装置100の切り出し部180は、シュートの開始位置および開始時刻の情報を、特定部170から取得した場合に、シュートが成功したか否かに関わらず、映像データを切り出して、記憶部130に登録していたが、これに限定されるものではない。例えば、切り出し部180は、シュートが成功した場合に、シュートの成功したシュートの開始時刻からシュートが成功するまでの映像データを切り出して、記憶部130に登録しても良い。同様に、切り出し部180は、シュートが成功した場合にのみ、シュートデータテーブル130aに各情報を登録しても良い。例えば、切り出し部180は、シュート成功時にボールが必ず通過する領域をセンシングするセンサを利用して、シュートの成功/失敗を判定する。このような処理を行うことで、記憶部130に記憶させるデータ量を削減することができる。
【0086】
画像処理装置100は、図示しない入力装置から、選手識別情報を指定して、ボール軌跡の表示要求を受け付けた場合には、シュートデータテーブル130aを参照し、選手識別情報に対応するボール軌跡の表示画面を生成して表示しても良い。
図15は、ボール軌跡の表示画面の一例を示す図である。
図15に示す例では、表示画面60に、選手がシュートしたボール軌跡60a,60b,60cが表示されている。画像処理装置100は、ボール軌跡に関連付けて、開始時刻や開始位置の情報を表示しても良い。また、画像処理装置100は、表示画面60の情報をプリンタ等に出力して、表示画面60の情報を印刷させても良い。
【0087】
なお、本実施例で説明したトラッキングテーブル120aのデータ構造の一例として、
図4を用いて説明したが、トラッキングテーブル120aのデータ構造は、
図4に限定されるものではない。例えば、初期段階において、選手の名前に紐付かない所定のIDを割り振ってトラッキングを行っておき、選手の名前と、IDとが対応付いたタイミングで、IDを選手識別情報に置き換えても良い。
図16は、トラッキングテーブルのその他のデータ構造の一例を示す図である。
図16に示すトラッキングテーブル121aは、時刻と、IDとが対応付けられている。
【0088】
ここで、画像処理装置100のその他の処理について説明する。
図17は、画像処理装置のその他の処理を説明するための図である。
図17に示すように、画像処理装置100は、プリンタ100bに接続されているものとする。例えば、選手Aが、画像処理装置100に選手識別情報を入力して、プリンタ100bからシュート軌跡に関する情報をプリントアウトする操作を行ったものとする。この際に、選手Aの位置と、選手Aの選手識別情報との関係がわかるため、画像処理装置100は、IDを選手Aの選手識別情報に変換する処理を行う。例えば、選手Aが、時刻「1:32:41:62」の時点で、位置(x3、y3、z3)の位置に存在していたとすると、
図16の「ID1」と、選手Aの選手識別情報とを対応付けることができる。
【0089】
画像処理装置100の特定部170の説明では、一例として、競技の種別がバスケットボールであり、ボールの軌跡の特徴が、
図1に示した軌跡5aで有ることを前提に説明を行った。例えば、特定部170は、式(4)〜式(10)等を用いて、ボールの開始位置、開始時刻を求めていた。ここで、競技の種別が、バスケットボール以外である場合には、ボールの軌跡の特徴に応じて、利用する式を切り替えて、ボールの軌跡を推定しても良い。例えば、競技の種別がバレーボール等であり、ボールの軌跡が直線的に変化する場合には、
図18に示すような、軌跡6aを推定し、着地位置、着地時間を推定しても良い。
図18は、特定部のその他の処理を説明するための図である。
【0090】
図18に示すように、特定部170は、異なる時刻T
V1,T
V2の画像フレームから、ボール5を検出し、各ボールの位置をそれぞれ(X
V1,Y
V1,Z
V1)、(X
V2,Y
V2,Z
V2)とする。特定部170は、(X
V1,Y
V1,Z
V1)、(X
V2,Y
V2,Z
V2)を通る直線を、ボールの軌跡6aとして特定する。特定部170は、軌跡6aと地面との交点位置(X
VV,Y
VV,Z
VV)を、着地位置として判定する。また、着地時刻T
VVは、時刻T
V1におけるボールのY軸方向の速度と、時刻T
V1におけるボールのY軸方向の高さを基に算出すればよい。
【0091】
次に、上記実施例に示した画像処理装置100と同様の機能を実現する画像処理プログラムを実行するコンピュータの一例について説明する。
図19は、画像処理プログラムを実行するコンピュータの一例を示す図である。
【0092】
図19に示すように、コンピュータ200は、カメラ50a,50b,50c,50d、トラッキング装置55、表示デバイス56に接続される。コンピュータ200は、各種演算処理を実行するCPU201と、各種情報を一時記憶する一次記憶部202と、ディスプレイ等の表示部203と、入力装置等の操作部204とを有する。コンピュータ200は、トラッキング装置55とデータをやり取りするネットワークIF205を有する。コンピュータ200は、カメラ50a〜50dとデータをやり取りするデバイスIF206を有する。コンピュータ200は、表示デバイス56とデータをやり取りするデバイスIF207を有する。また、コンピュータ200は、ハードディスクドライブ等に対応する二次記憶部208を有する。
【0093】
二次記憶部208は、画像処理プログラム208aと、エリア定義ファイル208bと、トラッキングデータ208cと、シュートデータ208dと、シュート映像208eとを有する。画像処理プログラム208aは、CPU201に読み出され、実行されることで、
図2の判定部160、特定部170、切り出し部180に対応する処理を行う。エリア定義ファイル208bは、部分領域を定義する情報である。トラッキングデータ208cは、トラッキング装置55から取得する情報である。シュートデータ208dおよびシュート映像208eは、画像処理プログラム208aが実行されることで生成する情報である。例えば、シュートデータテーブル130a、シュートシーン映像データ130bに対応する情報である。
【0094】
なお、画像処理プログラム208a,エリア定義ファイル208bについては、必ずしも最初から二次記憶部208に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が画像処理プログラム208a,エリア定義ファイル208bを読み出して実行するようにしてもよい。
【0095】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0096】
(付記1)コンピュータが実行する画像処理方法であって、
撮影装置によって撮影された連続する複数の画像データを取得し、前記複数の画像データに含まれる画像データの部分領域に、所定の特徴を有する物体が存在するか否かを判定し、
前記部分領域に前記物体が存在する場合に、前記物体の存在する画像データよりも前に撮影された画像データから、前記物体を検出する処理を繰り返し実行し、
複数の画像データから検出した前記物体の位置および前記複数の画像データの時刻に基づいて、前記物体の移動軌跡を算出し、前記移動軌跡の開始位置および開始時刻を特定する
処理を実行することを特徴とする画像処理方法。
【0097】
(付記2)前記移動軌跡の開始時刻から所定時間後の終了時刻までの間に、前記撮影装置に撮影された画像データを切り出す処理を更に実行することを特徴とする付記1に記載の画像処理方法。
【0098】
(付記3)前記開始位置と、前記開始時刻と同時刻に前記撮影装置に撮影された画像データに含まれる複数の人物の位置とを比較して、前記物体に関連する人物を特定する処理を更に実行することを特徴とする付記1または2に記載の画像処理方法。
【0099】
(付記4)前記所定の特徴は、前記物体の形状および大きさを示し、前記部分領域は、画像データ上に存在する、球技に用いられるゴール位置周辺に設定されることを特徴とする付記1、2または3に記載の画像処理方法。
【0100】
(付記5)前記部分領域から前記所定の特徴を有する物体を検出する精度よりも、前記部分領域以外の領域から前記所定の特徴を有する物体を検出する検出精度を低く設定することを特徴とする付記1〜4のいずれか1つに記載の画像処理方法。
【0101】
(付記6)前記物体の移動軌跡を算出する処理は、球技の種別に応じて、前記移動軌跡を変更することを特徴とする付記1〜5のいずれか1つに記載の画像処理方法。
【0102】
(付記7)コンピュータに、
撮影装置によって撮影された連続する複数の画像データを取得し、前記複数の画像データに含まれる画像データの部分領域に、所定の特徴を有する物体が存在するか否かを判定し、
前記部分領域に前記物体が存在する場合に、前記物体の存在する画像データよりも前に撮影された画像データから、前記物体を検出する処理を繰り返し実行し、
複数の画像データから検出した前記物体の位置および前記複数の画像データの時刻に基づいて、前記物体の移動軌跡を算出し、前記移動軌跡の開始位置および開始時刻を特定する
処理を実行させることを特徴とする画像処理プログラム。
【0103】
(付記8)前記移動軌跡の開始時刻から所定時間後の終了時刻までの間に、前記撮影装置に撮影された画像データを切り出す処理を更に実行することを特徴とする付記7に記載の画像処理プログラム。
【0104】
(付記9)前記開始位置と、前記開始時刻と同時刻に前記撮影装置に撮影された画像データに含まれる複数の人物の位置とを比較して、前記物体に関連する人物を特定する処理を更にコンピュータに実行させることを特徴とする付記7または8に記載の画像処理プログラム。
【0105】
(付記10)前記所定の特徴は、前記物体の形状および大きさを示し、前記部分領域は、画像データ上に存在する、球技に用いられるゴール位置周辺に設定されることを特徴とする付記7、8または9に記載の画像処理プログラム。
【0106】
(付記11)前記物体を検出する処理は、前記部分領域から前記所定の特徴を有する物体を検出する精度よりも、前記部分領域以外の領域から前記所定の特徴を有する物体を検出する検出精度を低く設定することを特徴とする付記7〜10のいずれか1つに記載の画像処理プログラム。
【0107】
(付記12)前記物体の移動軌跡を算出する処理は、球技の種別に応じて、前記移動軌跡を変更することを特徴とする付記7〜11のいずれか1つに記載の画像処理プログラム。
【0108】
(付記13)撮影装置によって撮影された連続する複数の画像データを取得し、前記複数の画像データに含まれる画像データの部分領域に、所定の特徴を有する物体が存在するか否かを判定する判定部と、
前記部分領域に前記物体が存在する場合に、前記物体の存在する画像データよりも前に撮影された画像データから、前記物体を検出する処理を繰り返し実行し、複数の画像データから検出した前記物体の位置および前記複数の画像データの時刻に基づいて、前記物体の移動軌跡を算出し、前記移動軌跡の開始位置および開始時刻を特定する特定部と
を有することを特徴とする画像処理装置。
【0109】
(付記14)前記移動軌跡の開始時刻から所定時間後の終了時刻までの間に、前記撮影装置に撮影された画像データを切り出す切り出し部を更に有することを特徴とする付記13に記載の画像処理装置。
【0110】
(付記15)前記切り出し部は、前記開始位置と、前記開始時刻と同時刻に前記撮影装置に撮影された画像データに含まれる複数の人物の位置とを比較して、前記物体に関連する人物を特定する処理を更に実行することを特徴とする付記13または14に記載の画像処理装置。
【0111】
(付記16)前記所定の特徴は、前記物体の形状および大きさを示し、前記部分領域は、画像データ上に存在する、球技に用いられるゴール位置周辺に設定されることを特徴とする付記13、14または15に記載の画像処理装置。
【0112】
(付記17)前記特定部は、前記部分領域から前記所定の特徴を有する物体を検出する精度よりも、前記部分領域以外の領域から前記所定の特徴を有する物体を検出する検出精度を低く設定することを特徴とする付記13〜16のいずれか1つに記載の画像処理装置。
【0113】
(付記18)前記特定部は、球技の種別に応じて、前記移動軌跡を変更することを特徴とする付記13〜17のいずれか1つに記載の画像処理装置。