(58)【調査した分野】(Int.Cl.,DB名)
前記第一の登録ボール画像と前記第二のボール画像のそれぞれについて、Retinex処理によりボール画像を規格化し、二値化処理により、前記規格化された規格化ボール画像から、ボールの表面全体の特徴的な構造を示すボール構造を抽出し、パッチ二値化処理により、前記規格化ボール画像から、ボールの局所的な特徴を示す特別な特徴を抽出し、前記抽出したボール構造と特別な特徴を合成して、ボール画像を再構成する画像処理部
を更に備える
請求項1に記載の飛行パラメータ測定装置。
【発明を実施するための形態】
【0011】
以下に、添付図面を参照して、本発明の実施形態について説明し、本発明の理解に供する。尚、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【0012】
本発明に係る飛行パラメータ測定装置1は、
図1に示すように、カメラ10と、飛行パラメータ算出部11と、を備える。カメラ10は、短時間で高速に連続撮影を可能にする高速度カメラである。本発明では、撮影画像を適切に取得することが出来れば、カメラ10の数を限定する必要は無く、1台でも複数台(例えば、2台)でも構わない。飛行パラメータ測定装置1は、カメラ10の視野に飛行中のボールが入った瞬間にカメラ10の撮影を開始し、視野内で動作(飛行又は発射)するボールBを所定時間、高速で連続的に撮影する。
【0013】
飛行パラメータ算出部11は、カメラ10と通信可能に接続され、カメラ10で撮影されたボールBを含む複数(例えば、2枚)の撮影画像を受信すると、当該複数の撮影画像に基づいて動作中のボールBの飛行パラメータを算出する。飛行パラメータは、移動パラメータと回転パラメータとから構成され、移動パラメータは、ボールBの速度(BALL SPEED)と、仰角(LAUNCH ANGLE)と、方位角(SIDE ANGLE)とを意味し、回転パラメータは、回転軸(SPIN AXIS)と、回転率(TOTAL SPIN)とを意味する。尚、バックスピンとは、ボールBの進行方向に対して逆方向の回転率であり、サイドスピンとは、回転軸に対して横方向の回転率である。バックスピンもサイドスピンもボールBの速度と仰角と方位角と回転軸と回転率から算出することが出来る。
【0014】
ここで、カメラ10の視野内の動作中のボールBをタイミングよく撮影するために、飛行パラメータ測定装置1は、ボール検出部12を更に備える。ボール検出部12の構成に特に限定は無く、例えば、カメラ10の視野内(例えば、視野内の端部近傍)に赤外線を照射する赤外線照射部と、照射された赤外線を反射光として受光する赤外線受光部と、受光された反射光の変動に基づいてカメラ10の視野内に動作中のボールBが入ったことを検出する反射光検出部と、を備える。視野内にボールBが入ると、視野内の赤外線がボールBで反射され、ボールBの反射光が変動するため、ボール検出部12は、その現象を利用して、カメラ10の視野へのボールBの侵入を検出する。赤外線照射部と赤外線受光部は一セットであり、複数のセットをカメラ10の視野内の水平方向に直列に設けて、カメラ10の視野内のどこにボールBが入ったかを精度高く検出しても良い。尚、赤外線に代えてレーザ光又はレーザーカーテンを採用しても良い。ボール検出部12がカメラ10の視野内で動作中のボールBを検出すると、検出信号を飛行パラメータ算出部11に発信し、飛行パラメータ算出部11は、カメラ10に撮影信号を入力して、カメラ10の視野内で動作するボールBを連続的に撮影する。
【0015】
尚、カメラ10、飛行パラメータ算出部11、ボール検出部12には、図示しないCPU、ROM、RAM等を内蔵しており、CPUは、例えば、RAMを作業領域として利用し、ROM等に記憶されているプログラムを実行する。又、後述する各部についても、CPUがプログラムを実行することで当該各部を実現する。
【0016】
次に、
図2、
図3を参照しながら、本発明の実施形態に係る構成及び実行手順について説明する。先ず、ユーザ(プレイヤ)が飛行パラメータ測定装置1の電源を投入すると、飛行パラメータ測定装置1が起動し、ボール検出部12がボールBの動作の検出を開始する(
図3:S101)。
【0017】
プレイヤが飛行パラメータ測定装置1の横にボールB(例えば、ゴルフボール)を配置し、ゴルフクラブEでボールBを打ち出すと、ボール検出部12がボールBの飛行(発射)を検出する(
図3:S101YES)。すると、飛行パラメータ測定装置1の画像撮影部201は、カメラ10で飛行中のボールBを連続的に撮影する(
図3:S102)。ここでは、画像撮影部201は、カメラ10で飛行中のボールBを所定時間、高速で連続的に撮影し、2枚の撮影画像を得る。
【0018】
画像撮影部201の撮影が完了すると、飛行パラメータ測定装置1の移動パラメータ算出部202は、最初に撮影された第一の撮影画像の第一のボール画像と、次に撮影された第二の撮影画像の第二のボール画像とに基づいて、ボールBの移動パラメータを算出する。
【0019】
移動パラメータ算出部202が算出する方法に特に限定は無い。先ず、移動パラメータ算出部202は、第一の撮影画像と第二の撮影画像のそれぞれについて、ボール画像の中心座標と半径とを算出する(
図3:S103)。具体的には、移動パラメータ算出部202は、
図4Aに示すように、第一の撮影画像401を二値化処理して、第一の撮影画像401中の対象物の外縁(輪郭)が特定される二値化画像402を生成する。二値化画像402で特定される対象物は、主に、周囲と比較して濃淡の差が大きいものである。
【0020】
第一の撮影画像401がフルカラー画像である場合、移動パラメータ算出部202は、第一の撮影画像401を、画素の画素値(濃度値)が256値で表現されるグレースケール画像に変換し、画素値が所定の閾値以上である画素を「1」(白)とし、画素値が前記閾値未満である画素を「0」(黒)として、二値化画像402を生成する。閾値は、撮影画像中のボールBの外縁が明確になるように予め設定される。
【0021】
ここで、外縁が特定された対象物に、ボールB以外の対象物(例えば、ゴルフクラブEの先端)が含まれる可能性がある。そこで、移動パラメータ算出部202は、
図4Bに示すように、二値化画像402のうち、外縁が特定された複数の対象物402aのそれぞれについて、対象物402aの長辺lを算出し、当該算出した長辺lを直径とした円402bの面積S1と当該対象物402aの外縁内の面積S2とを算出し、前記円の面積S1を前記対象物402aの外縁内の面積S2で除算した面積比率S1/S2を算出する。そして、移動パラメータ算出部202は、算出した面積比率S1/S2のうち、1(−)に最も近い面積比率S1/S2を有する対象物402aをボールBとして特定する。即ち、面積比率S1/S2が1(−)に最も近いということは、長辺lを直径する円402bの面積S1と対象物402aの外縁内の面積S2が等しく、対象物402aが円であることを意味する。これにより、二値化画像402内のボールBのみを明確に特定することが出来る。
【0022】
そして、移動パラメータ算出部202は、二値化画像402のうち、特定したボールBの中心座標cと半径rを算出する。ボールBの中心座標cは、カメラ座標(画像座標)における二値化画像402の2次元座標(xic、yic)(ピクセル)で算出される。カメラ座標は、撮影画像401(又は二値化画像402)の中心を原点として、横軸をx軸(xi)とし、縦軸をy軸(yi)とする座標系である。ボールBの半径rは、画素数(ピクセル)で算出される。移動パラメータ算出部202は、第一の撮影画像401中の第一のボールBの中心座標cと半径rを算出すると、第二の撮影画像についても、上述と同様の処理により、第二の撮影画像中の第二のボールBの中心座標cと半径rを算出する。
【0023】
次に、移動パラメータ算出部202は、第一の撮影画像と第二の撮影画像とのそれぞれについて、算出された前記ボールBの中心座標cと半径rと、前記カメラ10のキャリブレーションに関する情報とに基づいて、世界座標(実座標)におけるボールBの中心座標cを算出する(
図3:S104)。
【0024】
移動パラメータ算出部202が算出する方法に特に限定は無い。ここで、カメラ10のキャリブレーションに関する情報とは、キャリブレーションマトリックス情報を意味し、キャリブレーションマトリックス情報とは、
図5Aに示すように、カメラ10の焦点距離f(長さ)に対応する撮影画像501の中心CIを原点としたカメラ座標の撮影画像501上の任意点Aの2次元座標(xia、yia)(ピクセル)と、カメラ10の中心CRを原点とした世界座標の前記任意点Aの3次元座標(xra、yra、zra)(長さ)とを関連付ける情報であり、例えば、Kマトリックス、Pマトリックス等を挙げることが出来る。そして、撮影画像501は、カメラ10の中心CRから撮影対象に向かってz軸方向に焦点距離f(長さ)だけ離れた位置に、z軸に対して垂直に位置する。世界座標は、カメラ10の中心CRを原点として、横軸をx軸(xr)とし、縦軸をy軸(yr)とし、奥行軸(視野軸)をz軸(zr)とする座標系である。
【0025】
移動パラメータ算出部202は、キャリブレーションマトリックス情報を用いて、算出したボールBの中心座標cのカメラ座標{2次元座標(xic、yic)}を世界座標{3次元座標(xrc、yrc、zrc)}に変換する。
【0026】
ここで、キャリブレーションマトリックス情報で算出される世界座標の3次元座標(xrc、yrc、zrc)のうち、z座標値(zrc)は、撮影画像501上の任意点Aのz座標値であることから、撮影画像501上で全て同じとなる。そのため、z軸方向に飛行するボールBの世界座標のz座標値は、別の方法で算出する必要がある。
【0027】
そこで、移動パラメータ算出部202は、余弦の法則を用いて、算出されたボールBの半径rと、世界座標のカメラ10の中心CRを基準として撮影画像501のボールBの左右の両端のz軸方向の間の角度θとの関係から、ボールBの世界座標のz座標値を算出する。
図5Bに示すように、ボールBの直径2rに対応する撮影画像501のボールBの左右の両端の距離lと、撮影画像501のボールBの左端(又は右端)と世界座標のカメラ10の中心CRとの距離Dと、世界座標のカメラ10の中心CRを基準として撮影画像501のボールBの左右の両端のz軸方向の間の角度θとには、下記の式(1)(2)に示すように、余弦の法則が成立する。
l
2=D
2+D
2−2Dcosθ=2D
2×(1−cosθ) ・・・(1)
D=SQR{l
2/(2×(1−cosθ))} ・・・(2)
【0028】
移動パラメータ算出部202は、予め算出された、ピクセルから長さ(実寸法)を変換するスケールを用いて、ボールBの半径rのピクセルを長さに変換し、変換後のボールBの半径r(長さ)からボールBの直径l(=2r)(長さ)を算出し、カメラ10の焦点距離f(長さ)とボールBの直径l(長さ)から撮影画像501のボールBの左右のz軸方向間の角度θ(度)を算出し、ボールBの直径l(長さ)と角度θ(度)とを上記の式(2)に代入することで、距離D(長さ)を算出する。ここで、距離D(長さ)は、ボールBの世界座標のz座標値に近似するため、移動パラメータ算出部202は、算出した距離D(長さ)をボールBの世界座標のz座標値とする。尚、第一のボールと第二のボールのそれぞれについて、上述の処理が行われる。
【0029】
そして、移動パラメータ算出部202は、算出された2つのボールBの中心座標c{3次元座標(xrcj、yrcj、zrcj)(j=1、2)}と、前記2つのボールBの撮影時間の間隔とに基づいて、当該ボールBの移動パラメータ(速度BS、仰角LA。方位角SA)を算出する(
図3:S105)。
【0030】
移動パラメータ算出部202が算出する方法に特に限定は無い。ボールBの速度BSと仰角LAと方位角SAは、
図6Aに示すように、世界座標における第一の撮影画像の第一のボールB1の中心座標c1{3次元座標(xrc1、yrc1、zrc1)}と、第二の撮影画像の第二のボールB2の中心座標c2{3次元座標(xrc2、yrc2、zrc2)}と、第一の撮影画像401を撮影した第一の時間t1(sec)と、第二の撮影画像401を撮影した第二の時間t2(sec)とから算出することが出来る。
【0031】
具体的には、移動パラメータ算出部202は、上述の値を、下記の式(3)(4)(5)(6)に代入することで、世界座標における各軸毎のボールBの速度(Vx、Vy、Vz)を算出し、全体のボールBの速度BSを算出する。
Vx=(xrc2−xrc1)/(t2−t1) ・・・(3)
Vy=(yrc2−yrc1)/(t2−t1) ・・・(4)
Vz=(zrc2−zrc1)/(t2−t1) ・・・(5)
BS=SQR(Vx
2+Vy
2+Vz
2) ・・・(6)
【0032】
又、移動パラメータ算出部202は、算出した各軸毎のボールBの速度(Vx、Vy、Vz)を、下記の式(7)(8)に代入することで、世界座標における仰角LA及び方位角SAを算出する。尚、PIは、円周率を意味する。
LA=180*(tan
−1(Vy/Vx)/PI) ・・・(7)
SA=180*(tan
−1(Vz/Vx)/PI) ・・・(8)
【0033】
さて、ボールBの移動パラメータの算出が完了すると、次に、ボールBの回転パラメータの算出が行われる。先ず、飛行パラメータ測定装置1の画像一致部203は、第一の撮影画像の第一のボールB1の画像を第二の撮影画像の第二のボールB2の画像に一致させた第一の登録ボール画像を生成する(
図3:S106)
【0034】
画像一致部203が生成する方法に特に限定は無い。先ず、画像一致部203は、
図6Bに示すように、カメラ座標において、第一のボールB1の中心座標c1(xic1、yic1)から、第二の撮影画像602の第二のボールB2の中心座標c2(xic2、yic2)まで平行移動させることで、第一のボール画像601aの位置を第二のボール画像602aの位置に一致させる。
【0035】
次に、画像一致部203は、第二のボールB2の半径r2(ピクセル)を第一のボールB1の半径r1(ピクセル)で除算した寸法比率r2/r1(−)を算出し、第一のボールB1の画像601aに寸法比率r2/r1(−)を乗算することで、第一のボール画像601aの寸法を第二のボール画像602aの寸法に一致させた第一の登録ボール画像601bを生成する。第一の登録ボール画像601bは、第一のボールB1の視点を第二のボールB2の視点に合わせた画像になる。ボールBに回転が生じている場合は、第一のボール画像601aは回転前の画像であり、第二のボール画像602aは回転後の画像であるため、両者の表面(マッピング点)は異なる。
【0036】
尚、画像一致部203が第一の登録ボール画像601bを生成する場合、カメラ座標において、第一のボール画像601aの中心座標c1(xic1、yic1)と、第二のボール画像602aの任意座標(xi2、yi2)と、第二のボール画像602aの中心座標c2(xic2、yic2)と、寸法比率r2/r1(−)と、下記の式(9)(10)と、を用いて、第二のボール画像602aの任意座標に対応する第一の登録ボール画像601bの対応座標(xi11、yi11)を算出しても良い。
xi11=(xi2−xic2)*r2/r1+xic1 ・・・(9)
yi11=(yi2−yic2)*r2/r1+yic1 ・・・(10)
【0037】
ここで、第一のボール画像601aを構成する画素には、カメラ座標における2D座標(xi1、yi1)(ピクセル)と、濃淡を示す画素値とが関連付けられているが、カメラ座標の単位のピクセルは、寸法比率r2/r1(−)と異なり、小数が生じない。そのため、第一のボール画像601aの位置及び寸法を第二のボール画像602aの位置及び寸法にそのまま一致させると、カメラ座標における第一の登録ボール画像601bの画素の任意座標(xi11、yi11)は、
図7Aに示すように、寸法比率r2/r1(−)により、第一のボール画像601aの画素の任意座標(xi1、yi1)とズレる可能性がある。
【0038】
そこで、画像一致部203は、第一の登録ボール画像601bの画素(注目画素)の四方に隣接する第一のボール画像601aの4つの画素(周辺画素)の画素値に基づいて、当該第一の登録ボール画像601bの画素の画素値を推定(補間)する。これにより、第一の登録ボール画像601bの画素の画素値と、第一のボール画像601aの画素の画素値に生じるズレを解消し、回転パラメータの算出を精度高く行うことが出来る。
【0039】
具体的には、画像一致部203は、第一の登録ボール画像601bの注目画素の四方に隣接する第一のボール画像601aの周辺画素の画素値I(xi1、yi1)、I(xi1+1、yi1)、I(xi1+1、yi1+1)、I(xi1、yi1+1)を、下記の式(11)(12)(13)に代入することで、第一の登録ボール画像601bの注目画素の画素値I(xi11、yi11)を推定する。
I(xi11、yi11)=I(xi1、yi1)*(1−fx)*(1−fy)+I(xi1+1、yi1)*(1−fx)*fy+I(xi1+1、yi1+1)*fx*fy+I(xi1、yi1+1)*fx*(1−fy) ・・・(11)
fx=xi11−xi1 ・・・(12)
fy=yi11−yi1 ・・・(13)
【0040】
画像一致部203の生成が完了すると、飛行パラメータ測定装置1の3Dモデル構成部204は、生成された第一の登録ボール画像601bのカメラ座標を世界座標に変換した第一の登録ボール画像601bの3Dモデルを構成する(
図3:S107)。
【0041】
3Dモデル構成部204が構成する方法に特に限定は無い。先ず、3Dモデル構成部204は、
図7Bに示すように、第一の登録ボール画像601bの中心座標c11(ピクセル)と、第一の登録ボールB1‘の半径r11(ピクセル)とを用いて、第一の登録ボール画像601bのみをROI(Region of Interest:関心領域)画像として抽出する。具体的には、3Dモデル構成部204が、カメラ座標において、第一の登録ボール画像601bの中心座標c11(xic11、yic11)と、第一の登録ボールB1‘の半径r11(ピクセル)と、下記の式(14)(15)(16)(17)を用いて、第一の登録ボール画像601bの始点座標b11(xic11、yic11)と、第一の登録ボール画像601bの終点座標e11(xie11、yie11)とを算出する。
xib11=xic11−r11 ・・・(14)
yib11=yic11−r11 ・・・(15)
xie11=xic11+r11 ・・・(16)
yie11=yic11+r11 ・・・(17)
【0042】
始点座標b11(xic11、yic11)と終点座標e11(xie11、yie11)とで囲まれる領域が第一の登録ボール画像601b(ROI画像)となる。次に、3Dモデル構成部204は、キャリブレーションマトリックスを用いて、第一の登録ボール画像601bのカメラ座標{2次元座標(xi11、yi11)}を世界座標{3次元座標(xr11、yr11、zr11)}に変換する。
【0043】
ここで、上述のように、キャリブレーションマトリックスで算出される世界座標のz座標値(zr11)は、第一の登録ボール画像601bのROI画像の上で全て同じとなることから、別の方法で算出する必要がある。
【0044】
第一の登録ボール画像601bは、3次元的には、世界座標において、第一の登録ボールB1‘の中心座標c11(xrc11、yrc11)(長さ)から第一の登録ボールB1‘の半径r11(長さ)だけz軸方向に半球状に膨出しており、カメラ10から撮影される(見える)第一の登録ボールB1‘の可視表面(可視領域)を構成している。
【0045】
そこで、3Dモデル構成部204は、第一の登録ボールB1‘の半径r11のピクセルを長さに変換し、
図7Bに示すように、第一の登録ボール画像601bの中心座標c11(xrc11、yrc11)(長さ)と、第一の登録ボールB1‘の半径r11(長さ)とを用いて、カメラ10に向かって半球状の第一の登録ボールB1‘の可視表面601cを形成する。3Dモデル構成部204は、形成した可視表面601cに対して、第一の登録ボール画像601bの注目画素C(xr11、yr11)(マッピング点)から(カメラ10に向かう)z軸方向に投影した直線lzを延出し、当該直線lzと可視表面601cとの交点のz座標値(zr11)を算出する。3Dモデル構成部204は、当該第一の登録ボール画像601bの注目画素C(xr11、yr11)に、算出したz座標値(zr11)を割り当てることで、第一の登録ボール画像601bの対応画素C‘(xr11、yr11、zr11)を算出する。第一の登録ボール画像601bの全ての画素について、上述の処理を行うことで、第一の登録ボール画像601bの3Dモデルが構成される(3次元モデル化)。
【0046】
尚、第一の登録ボール画像601bの対応画素C‘のz座標値(zr11)は、世界座標における第一の登録ボール画像601bの中心座標c11(xrc11、yrc11)(長さ)と、第一の登録ボールB1‘の半径r11(長さ)と、下記の式(18)を用い、算出される値のうち、正の値を採用することで、簡単に算出することが出来る。
zr11=SQR[r11
2−{(xr11−xrc11)
2+(yr11−yrc11)
2}] ・・・(18)
【0047】
3Dモデル構成部204の構成が完了すると、飛行パラメータ測定装置1の仮想回転部205は、前記構成された第一の登録ボール画像601bの3Dモデルを、予め推定された回転パラメータ(例えば、初期値となる回転軸SX0と回転率TS0)と回転マトリックス情報とを用いて、仮想的に回転させる(
図3:S108)。
【0048】
仮想回転部205が回転させる方法に特に限定は無い。先ず、仮想回転部205は、3Dモデルの回転をシミュレーションする回転マトリックス情報を用いる。回転マトリックス情報Rとは、回転前の3Dモデルの3次元座標V(xr11、yr11、zr11)と、回転パラメータ(SX0、TS0)と、回転パラメータで回転させた後の3Dモデルの3次元座標V`(xr11`、yr11`、zr11`)とを関連付ける情報であり、一般に、下記の式(19)で表現される。
V`(xr11`、yr11`、zr11`)=R(SX0、TS0)*V(xr11、yr11、zr11) ・・・(19)
ここで、回転マトリックス情報Rは、3次元の角(オイラー角)を用いる場合もあるが、本発明では、3次元の角に対応する回転軸及び回転率を設定する。
【0049】
仮想回転部205は、
図8Aに示すように、回転マトリックス情報Rに、回転前の3Dモデルの3次元座標(xr11、yr11、zr11)と初期値の回転パラメータ(SX0、TS0)とを代入することで、回転後の3Dモデルの3次元座標(xr11`、yr11`、zr11`)を得る。この回転マトリックス情報Rを用いることで、仮想回転に要する計算処理が1回で済み、処理を簡素化することが出来る。
【0050】
仮想回転部205の回転が完了すると、飛行パラメータ測定装置1の登録画像生成部206は、前記回転後の第一の登録ボール画像601bの3Dモデルのうち、カメラ10から見える可視表面の世界座標をカメラ座標に変換したカメラ座標の第二の登録ボール画像を生成する(
図3:S109)。
【0051】
登録画像生成部206が生成する方法に特に限定は無い。先ず、登録画像生成部206は、
図8Aに示すように、回転後の第一の登録ボールB1‘の3Dモデル801(3次元座標)のうち、第一の登録ボールB1‘の中心座標c11(xrc11、yrc11)から(カメラ10に向かって)z軸方向に半球状に膨出した可視表面801a(2次元座標)を抽出する。抽出した第一の登録ボールB1‘の可視表面801aは、第二のボール画像602aの一部に含まれる。
【0052】
次に、登録画像生成部206は、キャリブレーションマトリックスを用いて、抽出した第一の登録ボールB1‘の可視表面801aの世界座標{3次元座標(xr11`、yr11`、zr11`)}をカメラ座標{2次元座標(xi11`、yi11`)}に変換する。そして、登録画像生成部206は、
図8Bに示すように、変換した第一の登録ボールB1‘の可視表面801aをカメラ座標の第二の登録ボール画像801bとして生成する。これにより、第二の登録ボール画像801bを第二のボール画像602aと比較することが出来る。
【0053】
登録画像生成部206の生成が完了すると、飛行パラメータ測定装置1の差分算出部207は、前記生成された第二の登録ボール画像801bと前記第二のボール画像602aとの差分を算出する(
図3:S110)。
【0054】
差分算出部207が算出する方法に特に限定は無い。第二の登録ボール画像801bは、回転前の第一の登録ボール画像601bを用いて生成していることから、第二のボール画像602aの全てに対応しない。そこで、先ず、差分算出部207は、
図8Bに示すように、第二のボール画像602aのうち、第二の登録ボール画像801bに対応する第二の比較ボール画像802aを抽出する。ここで、第二の比較ボール画像802aのカメラ座標{2次元座標(xi11`、yi11`)}は、第二の登録ボール画像801bのカメラ座標{2次元座標(xi2、yi2)}と一致する。このように、第二のボール画像602aに一致させた第一の登録ボール画像601bに基づいて第二の登録ボール画像801bを生成しているため、第二のボール画像602a(第二の比較ボール画像802a)と比較し易く、処理を簡素化することが出来る。
【0055】
そして、差分算出部207は、第二の登録ボール画像801bと第二の比較ボール画像802aとの差分を算出する。
図8Bには、第二の登録ボール画像801bと第二の比較ボール画像802aの一例を示す。第二の登録ボール画像801bを生成した推定の回転パラメータが現実の値に一致すれば、第二の登録ボール画像801bは第二の比較ボール画像802aとほぼ同一となり、上述の差分は最小値となる。一方、第二の登録ボール画像801bを生成した推定の回転パラメータが現実の値と異なれば、第二の登録ボール画像801bは第二の比較ボール画像802aと全く異なり、上述の差分は大きくなる。本発明では、第二の登録ボール画像801bを第二の比較ボール画像802aと比較するため、ボールBの表面の特定のロゴ等を目印とすることなく、ボールBの表面の自然な模様を利用して、回転パラメータを算出することが出来る。
【0056】
ここで、差分算出部207は、第二の登録ボール画像801bの画素の画素値から、第二の比較ボール画像802aの画素の画素値を減算した減算値を各画素毎に算出し、当該算出した減算値を二乗した二乗値を各画素毎に算出し、各画素毎に算出した二乗値を合計した合計値を差分として算出する。これにより、第二の登録ボール画像801bと第二の比較ボール画像802aとの僅かな差異を差分に反映させることが可能となり、ボールBの回転パラメータを精度高く算出することが可能となる。
【0057】
尚、上述では、差分算出部207が、第二の比較ボール画像802aを抽出して、第二の登録ボール画像801bと第二の比較ボール画像802aとの差分を算出したが、処理を単純化するために、第二のボール画像602aをそのまま第二の登録ボール画像801bと比較して、差分を算出しても良い。即ち、第二の登録ボール画像801bに対応しない第二のボール画像602aの領域は、第二の登録ボール画像801bの対応領域との差分を算出しても、ほぼ一定の値となるため、第二の登録ボール画像801bに対応する第二のボール画像602aの差分が全体の差分に大きく寄与する。差分が最小となる回転パラメータを簡単に見つける場合は、第二の登録ボール画像801bと第二のボール画像602aとの差分を算出しても良い。
【0058】
差分算出部207の算出が完了すると、飛行パラメータ測定装置1の回転パラメータ決定部208は、前記3Dモデルの仮想的な回転と、前記第二の登録ボール画像の生成と、前記差分の算出とを繰り返し、前記差分が最小値となる回転パラメータを前記ボールBの現実の回転パラメータとして決定する。
【0059】
回転パラメータ決定部208が決定する方法に特に限定は無い。先ず、回転パラメータ決定部208は、差分の最小値を算出するために(
図3:S111NO)、先ほど算出した差分を基準差分とし、先ほど用いた初期の回転パラメータ(回転軸SX0、回転率TS0)を所定の変動値だけ変更(例えば、増加)する(
図3:S112)。
【0060】
次に、回転パラメータ決定部208は、仮想回転部205を介して、変更後の回転パラメータと回転マトリックス情報とを用いて、第一の登録ボール画像601bの3Dモデルを仮想的に回転させる(
図3:S108)。
【0061】
そして、回転パラメータ決定部208は、登録画像生成部206を介して、前記回転後の第一の登録ボール画像601bの3Dモデルのうち、カメラ10から見える可視表面の世界座標をカメラ座標に変換したカメラ座標の第二の登録ボール画像を生成する(
図3:S109)。
【0062】
更に、回転パラメータ決定部208は、差分算出部207を介して、前記生成された第二の登録ボール画像と前記第二のボール画像602aとの差分を算出する(
図3:S110)。
【0063】
回転パラメータ決定部208は、新たに差分を比較差分として、基準差分と比較差分とを比較して、いずれか小さい差分を仮差分として決定する(
図3:S111)。
【0064】
ここで、比較差分が仮差分である場合、初期の回転パラメータよりも、変動値だけ増加した第二の回転パラメータが、差分を小さくすると判断することが出来る。そこで、回転パラメータ決定部208は、差分の最小値を算出するために(
図3:S111NO)、第二の回転パラメータを変動値だけ更に増加させた第三の回転パラメータを算出し(
図3:S112)、S108、S109、S110を経て、比較差分を算出する。この場合、第二の回転パラメータによる仮差分が基準差分となり、第三の回転パラメータによる差分が比較差分となる。
【0065】
一方、基準差分が仮差分である場合、第二の回転パラメータよりも初期の回転パラメータが、差分を小さくすると判断することが出来る。そこで、回転パラメータ決定部208は、差分の最小値を算出するために(
図3:S111NO)、今度は、初期の回転パラメータで算出された差分を基準差分とし、先ほどの変更と逆に、初期の回転パラメータを変動値だけ減少させた第三の回転パラメータを算出し(
図3:S112)、S108、S109、S110を経て、比較差分を算出する。この場合、初期の回転パラメータによる仮差分が基準差分となり、第三の回転パラメータによる差分が比較差分となる。
【0066】
このように、回転パラメータ決定部208は、S108、S109、S110を繰り返し、回転パラメータを変動値だけ増加又は減少して、算出する差分が最小値となるように収束演算する。収束演算するための最適化方法は、例えば、最小二乗法、非線形最小二乗のガウス・ニュートン法を用いることが出来る。
【0067】
収束演算の終了は、例えば、比較差分が小さいと繰り返し決定された後に、基準差分が小さいと決定された場合、この基準差分を算出した第nの回転パラメータ(回転軸SXn、回転率TSn)が、差分を最小値とすると判断することが出来る。一方、基準差分が小さいと繰り返し決定された後に、比較差分が小さいと決定された場合、この比較差分を算出した第nの回転パラメータ(SXn、TSn)が、差分を最小値とすると判断することが出来る。尚、収束演算の終了は、最適化方法の種類により適宜設定すれば良い。
【0068】
さて、繰り返しの結果、算出した差分が最小値となった場合(
図3:S111YES)、回転パラメータ決定部208は、前記差分が最小値となる回転パラメータ(SXn、TSn)を前記ボールBの現実の回転パラメータ(回転軸SX、回転率TS)として決定する(
図3:S113)。
【0069】
回転パラメータ決定部208の算出が完了すると、飛行パラメータ測定装置1の飛行パラメータ表示部209は、移動パラメータ算出部202によるボールBの移動パラメータ(速度BS、仰角LA、方位角SA)と、回転パラメータ決定部208によるボールBの回転パラメータ(回転軸SX、回転率TS)とを所定の表示部に表示する(
図3:S114)。
【0070】
飛行パラメータ表示部209が表示する方法に特に限定は無く、例えば、飛行パラメータ測定装置1に予め設けられた表示部に表示しても良いし、飛行パラメータ測定装置1と無線通信可能なプレイヤの端末装置(液晶ディスプレイ)に表示しても良い。これにより、プレイヤは、自身が打ったボールBの飛行パラメータを知ることが可能となる。
【0071】
このように、ボールBの飛行パラメータの測定は完了する。プレイヤは、今のスイングのボールBの飛行パラメータを確認して、新たなボールBを飛行パラメータ測定装置1の横に置くと、S101に戻る。
【0072】
ところで、本発明では、第二の登録ボール画像801bと第二のボール画像602aとの差分を最小値とする回転パラメータを現実の回転パラメータとして決定するため、回転パラメータの測定精度を高めるためには、第二の登録ボール画像801bと第二のボール画像602aの構成は極めて重要となる。
【0073】
ここで、第二の登録ボール画像801bの生成に起因する第一の登録ボール画像601bと第二のボール画像602aは、異なる空間とタイミングで飛行しているボールBを撮影することで得られているため、第一の登録ボール画像601bと第二のボール画像602aのそれぞれについて、ボールBからカメラ10までの光の反射率が一定でない。
【0074】
そこで、本発明では、第一の登録ボール画像601bと第二のボール画像602aのそれぞれについて、Retinex処理によりボール画像を規格化し、二値化処理により、前記規格化された規格化ボール画像から、ボールの表面全体の特徴的な構造を示すボール構造を抽出(検出)し、パッチ二値化処理により、前記規格化ボール画像から、ボールの局所的な特徴を示す特別な特徴を抽出(検出)し、前記抽出したボール構造と特別な特徴を合成して、ボール画像を再構成する画像処理部210を更に備えても良い。
【0075】
ここで、画像処理部210のボール画像の再構成は、
図9Aに示すように、(1)Retinex処理による規格化、(2)ボール構造の抽出、(3)特別特徴の抽出の3つの処理による。画像処理部210により第一の登録ボール画像601bを再構成した第一の登録ボール画像901bは、特徴的な画像のみを表現していることが理解される。これにより、回転パラメータの測定精度を高めることが出来る。
【0076】
Retinex処理は、人の視覚をモデル化して、注目画素の四方の周辺画素を考慮して、注目画素の画素値を修正する処理を意味する。第一の登録ボール画像601bと第二のボール画像602aは、異なる空間とタイミングのボールBを表現しているものの、Retinex処理の規格化により、異なる空間でのボールBの光の反射率や明度が均一化され、同じ空間でボールBを表現している画像にすることが可能である。これにより、第二の登録ボール画像801bと第二のボール画像602aとの差分を算出し易くする。
【0077】
Retinex処理による規格化ボール画像は、画素値と周辺画素の平均画素値との間の比率(強度比)で構成される。規格化ボール画像の注目画素の比率L(x、y)は、特定のカメラ座標(x、y)におけるボール画像の画素値I(x、y)と、ボケ画像を作成するためのフィルタを作用させた、注目画素の周辺画素の画素値(I*G∂)(x、y)と、下記の式(20)を用いて、簡単に算出することが出来る。
L(x、y)=I(x、y)/(I*G∂)(x、y) ・・・(20)
ここで、フィルタは、例えば、平滑化フィルタ、ガウシアンフィルタ等である。
【0078】
ボールBの表面全体は、様々な凹凸を有する。例えば、ゴルフボールはディンプルを表面全体に有し、サッカーボールは五角形及び六角形を表面全体に有し、野球ボールやテニスボールは縫い目を表面全体に有する。画像処理部210は、規格化ボール画像に二値化処理を施すことで、画素値が小さい画素を平滑化し、画素値が大きい画素を強調する。つまり、規格化ボール画像における濃淡を強調し、濃い領域がボール構造となる。これにより、ボールBの表面全体の特徴とバックグラウンドとを分けることが出来る。
【0079】
ここで、二値化処理は、例えば、注目画素の画素値が所定の閾値以上の場合には、当該注目画素に「1」(白)を割り当て、注目画素の画素値が前記閾値未満の場合には、当該注目画素に「0」(黒)を割り当てる。閾値は、例えば、規格化ボール画像の全ての画素に共通する値を設定しても良いし、規格化ボール画像を複数の領域に区分し、各領域毎に異なる値を設定しても良い。又、この二値化処理には、「0」(黒)が割り当てられた注目画素のエッジを追跡し、注目画素に最も隣接する隣接画素を検出し、注目画素の連結部を見つける輪郭検出処理を含んでも良い。輪郭検出処理は、例えば、Sobel処理、Canny処理、又はEDPF(Edge Draw Parameter Free)処理等を挙げることが出来る。Sobel処理は、規格化ボール画像から空間一次微分を算出し、空間一次微分に基づいて規格化ボール画像のエッジを検出するフィルタ処理である。Canny処理は、規格化ボール画像のノイズを除去し、ノイズ除去後の規格化ボール画像の輝度勾配を見付け、輝度勾配で構成させるエッジに対して無関係の画素を除去し、二つの閾値を用いたヒステリシスにより、無関係の画素を除去した画像に二値化処理を施すアルゴリズムである。ここで、EDPF処理は、ED処理の応用であり、ED処理に必要なパラメータの設定を不要とする処理である。尚、ED処理は、実時間を走らせ、エッジで無い画素を除去し、規格化ボール画像からエッジマップを生成するアルゴリズムである。
【0080】
又、ボールBの表面には、局所的(部分的)に、切れ目、傷、製造者のロゴ(マーク)を有する。画像処理部210は、規格化ボール画像にピッチ二値化処理を施すことで、部分的に連続な領域の画素を強調し、他の領域の画素を平滑化する。これにより、ボールBの表面の部分的な特徴を抽出することが出来る。ここで、ピッチ二値化処理は、例えば、各画素毎に閾値を設定した二値化処理である。
【0081】
さて、画像処理部210によるボール画像の再構成の作用効果を説明する。
図9Bに示すように、画像処理部210によるボール画像の再構成が無い場合、第一の登録ボール画像601bと第二のボール画像602aとは、濃淡が多種にわたるため、第二の登録ボール画像と第二のボール画像との差分の変動は小さくなり易く、最小値を見つけ難い。一方、画像処理部210によるボール画像の再構成が有る場合、第一の登録ボール画像901bと第二のボール画像902aとは、濃淡が明確であるため、第二の登録ボール画像と第二のボール画像との差分の変動は大きくなり易く、最小値を見つけ易くなる。従って、画像処理部210のボール画像の再構成により、処理を単純化するとともに、差分の最小値を見つけやすくし、回転パラメータの測定精度を向上させることが出来る。
【0082】
尚、画像処理部210は、例えば、S106において、第一の登録ボール画像が生成された際に、この第一の登録ボール画像と第二の登録ボール画像とを再構成することで、再構成された第一の登録ボール画像の3Dモデルが構成され、後の処理が円滑に進む。
【0083】
<実施例>
以下、実施例等によって本発明の効果を具体的に説明するが、本発明はこれにより限定されるものではない。
【0084】
先ず、
図1〜
図3に基づいて飛行パラメータ測定装置1を試作し、この飛行パラメータ測定装置1を実施例とし、これを用いてゴルフ用ロボットが打ち出したゴルフボールBの飛行パラメータを測定した。
図10Aに示すように、ゴルフ練習場のティーの上にゴルフボールBを置き、ゴルフボールBの右側に市販の飛行パラメータ測定装置10を置き、ゴルフボールBの左側に本発明の飛行パラメータ測定装置1を置いた。ここで、市販の飛行パラメータ測定装置10は、飛行パラメータを精度高く測定することが出来る既存製品である。そして、ゴルフ用ロボットがゴルフクラブEでゴルフボールBを打ち出した際に、市販の飛行パラメータ測定装置10と本発明の飛行パラメータ測定装置1とがゴルフボールBの飛行パラメータを同時に測定した。ゴルフ用ロボットは、ショットのクセによる誤差を無くすために採用し、様々な条件(スイング速度、打出方向、打出角度等)でゴルフクラブEを使ってゴルフボールBを打出し、市販の飛行パラメータ測定装置10と本発明の飛行パラメータ測定装置1とのそれぞれの測定結果をグラフ化することで、本発明の飛行パラメータ測定装置1の測定精度を検証した。
【0085】
その結果、
図10Bに示すように、本発明の飛行パラメータ測定装置1で測定したゴルフボールBの速度が、市販の飛行パラメータ測定装置10で測定したゴルフボールBの速度とほぼ一致していた。
図11Aに示すように、本発明の飛行パラメータ測定装置1で測定したゴルフボールBの仰角も、市販の飛行パラメータ測定装置10で測定したゴルフボールBの仰角にそれぞれ一致していた。又、
図11Bに示すように、本発明の飛行パラメータ測定装置1で測定したゴルフボールBの方位角も、市販の飛行パラメータ測定装置10で測定したゴルフボールBの方位角にそれぞれ一致していた。
【0086】
更に驚くべきことに、
図12Aに示すように、本発明の飛行パラメータ測定装置1で測定したゴルフボールBの回転軸も、市販の飛行パラメータ測定装置10で測定したゴルフボールBの回転軸にそれぞれ一致していた。そして、
図12Bに示すように、本発明の飛行パラメータ測定装置1で測定したゴルフボールBの回転率も、市販の飛行パラメータ測定装置10で測定したゴルフボールBの回転率にそれぞれ一致していた。従って、本発明に係る飛行パラメータ測定装置1は、簡単な画像処理方法でボールの飛行パラメータを精度高く測定することが可能であることが分かった。
【0087】
尚、本発明の実施形態では、第一のボール画像を第二のボール画像に一致させたが、これに限らず、第二のボール画像を第一のボール画像に一致させても、同様の作用効果を得る。又、本発明の実施形態では、ゴルフボールBに対応させた飛行パラメータ測定装置1を説明したが、これに限定する必要は無く、本発明は、ボールBを飛行させる(発射させる)球技、ベースボール、テニス、サッカー、ラグビー、アイスホッケ、ゲートボール等のボールの飛行パラメータを測定する装置又は方法として幅広く適用することが出来る。
【0088】
又、本発明の実施形態では、飛行パラメータ測定装置1が各部を備えるよう構成したが、当該各部を実現するプログラムを記憶媒体に記憶させ、当該記憶媒体を提供するよう構成しても構わない。当該構成では、プログラムを装置に読み出させ、当該装置が各部を実現する。その場合、記録媒体から読み出されたプログラム自体が本発明の作用効果を奏する。さらに、各手段が実行するステップをハードディスクに記憶させる方法として提供することも可能である。
【解決手段】画像一致部203は、第一のボール画像を第二のボール画像に一致させた第一の登録ボール画像を生成。3Dモデル構成部204は、第一の登録ボール画像のカメラ座標を世界座標に変換した第一の登録ボール画像の3Dモデルを構成する。仮想回転部205は、第一の登録ボール画像の3Dモデルを、予め推定された回転パラメータと回転マトリックス情報とを用い、仮想的に回転させ、登録画像生成部206は、回転後の第一の登録ボール画像の3Dモデルのうち、カメラから見える可視表面の世界座標をカメラ座標に変換したカメラ座標の第二の登録ボール画像を生成する。差分算出部207は、第二の登録ボール画像と前記第二のボール画像との差分を算出。回転パラメータ決定部208は、差分が最小値となる回転パラメータをボールの現実の回転パラメータとして決定する。