添付の図面を参照して、例示的な実施形態をより具体的かつより詳細に説明する。
本明細書に記載のいくつかの実施形態は、発射パラメータを測定するための発射モニタリングシステム(以下、「システム」と記載)に関する。いくつかの既存の発射モニタリングシステム(以下、「既存システム」と記載)は、周囲の光に影響されやすい。既存システムによる発射パラメータ測定の精度は、外部の光の状態に左右され得る。既存システムでは、例えば、カメラの絞りの開度と露出時間とを較正及び調整することにより、照明の設定を確実かつ厳重に最適な状態に制御する。いくつかの既存システムでは、照明状態をより良好に制御する目的で、露出時間が短く強力な照明を備える高価なカメラが使用される。この結果、システムの価格が上昇するとともに複雑さが増し、平均的なユーザはシステムの利点を享受できなくなる。既存システムを屋外で使用する際には、照明の状態の変化のせいで、屋内での使用に比べてより大きな課題が課せられる。例えば、いくつかの既存システムでは、屋外での使用のために、特殊な高反射性の物体が必要となる場合がある。この特殊な高反射性の物体は、典型的には特定の製造業者から購入しなければならないので、ユーザにとっては不便である。また、いくつかの既存システムでは、屋外での使用において、特殊なマーカーが代わりに使用される。この特殊なマーカーを物体に付けて、カメラと確実に位置合わせするプロセスには手間がかかるので、この特殊なマーカーも不便である。
例示的な一実施形態は、2台のカメラを備えるシステム(「デュアルカメラシステム」)を含む。デュアルカメラシステムは、発射パラメータの測定のために複数の画像を撮影可能である。このシステムは、複数の画像と、工場で測定済みのアライメントと、照明情報とに基づいて、飛行物体の速さ、仰角、方位角、合計回転率及び回転軸を計算する。カメラが撮影した画像は、パソコン、タブレット又はスマートフォンに無線又は有線で送信され、処理され、結果表示がされ得る。このシステムでは、画像の取得のために、レーザーによるトリガーシステムが使用されてもよい。
取得中には、測定対象の飛行の種類に応じて各カメラが複数の画像を撮影する。2台のカメラによってシステムの有効視野が広がるとともに、高度焦点レンズを使用することで高画質が保たれる。また、デュアル画像システムにより、高額な高速度カメラを使用しなくても、より高速で画像撮影ができる。
発射パラメータの処理は、パソコン、タブレット、又はスマートフォンで実行される。まず、画像中の物体が位置特定される。飛行の種類によっては、回転率及び回転軸の測定のために、画像が2枚のみ選択され得る。物体の画像のコントラストを強調することにより、比較的不鮮明なディンプル又はかすかなマーカーをはっきりとさせる。各画像中の物体が変倍され、球状の図が平坦化されてデカルト図にされる。次に、画像を極変換して、画像から別の画像へのマーカーの平行移動(translation)を測定する。極座標における平行移動は、2つの画像におけるマーカーの合計角度変位(total angular displacement)である。ユーザがより理解しやすいように、この角度変位は、総回転としての1分あたりの回転に変換される。回転軸の傾きは、元の画像の平坦化極変換グラフ(flattened polar transformed plot)上での垂直方向の平行移動として表される。発射パラメータは、処理装置の画面に表示される。飛行物体の回転率及び回転軸により、軌道が判定される。
この例示的実施形態及び本明細書に記載の他の実施形態の利点としては、1回限りの製造時アラインメント及び較正、及び、使用中に実行される、基本的にはユーザには見えなくてもよい自動較正がある。さらに、上記利点には、異なる照明条件下での発射パラメータ測定、飛行物体に特殊なマークを付けずに行う回転率及び回転軸の測定、ならびに、既存システムに比較して複雑さが低減された処理方法と、安価なカメラと、強度の低い照明とを使用して行う回転率及び回転軸の測定が含まれる。
発射パラメータには、速さ、仰角、方位角、回転率及び回転軸が含まれ得るが、これらに限定されない。発射パラメータは、いかなる種類の物体についても測定可能で、ゴルフボールの軌道の測定、野球ボール又はクリケットボール等の軌道の測定に使用できる。例えば、ゴルフの場合、このようなシステムは複数の用途で使用可能である。クラブフィッターは、このシステムが提供する情報から、適切なゴルフクラブやゴルファーのニーズに合わせたシャフトの長さについての顧客へのアドバイスができる。トレーナー又はコーチは、このシステムを使って、ゴルファーの強み及び弱点についてのより全体的な評価をすることができる。さらに、このようなシステムは、物体の飛行全体をまるで野外を飛んでいるかのようにスクリーンに映し出す、室内ゴルフシミュレータとして使用可能である。従って、発射パラメータの正確な測定は、スポーツ関連では、用具のカスタマイズ、技能向上、及びレジャーについて利点をもたらす。
他の追加的な実施形態を、添付の図面を参照して説明する。
図1は、例示的な作動環境50における例示的なシステム100のブロック図である。作動環境50は、概して、ゴルフのスイング分析の環境である。作動環境50の例としては、顧客が購入前にクラブを試すことができるクラブの小売店や、ゴルファーのスイングの分析が行われるレッスン施設が挙げられる。作動環境50は、ゴルフのスイング分析の環境に限定されない。例えば、代替的な実施形態においては、作動環境50は、野球のピッチング分析の環境、野球のヒッティング分析の環境、あるいは、飛行物体の分析が行われるその他の環境であり得る。
作動環境50には、ゴルフクラブ52、ゴルフボール54、及びシステム100が含まれる。ゴルフボール54は、代替的な実施形態においては、任意の物体でもよい。システム100は、概して、球状の物体の発射パラメータを測定するように構成されており、この構成が本明細書中で詳述される実施形態である。しかしながら、いくつかの実施形態では、他の形状の物体の発射パラメータが同様のシステムにより、又は、本明細書に記載される1つ以上の処理工程により測定され得る。以下、ゴルフボール54は「物体」又は「飛行物体54」と記載される。
作動環境50において、物体54は静止状態で描かれている。さらに、4つの画像56A〜56D(概して、画像56)が示されている。これらの複数の画像56は、ゴルフクラブ52との接触による飛行開始後の物体54の画像である。画像56は、システム100に含まれる複数のカメラ102により撮影され得る。
いくつかの実施形態においては、システム100は、2台のカメラ102を備える。この2台のカメラは、それぞれ、2枚の画像56を撮影可能である。例えば、第1の画像56Aと、その後の第3の画像56Cとが第1のカメラ102によって撮影可能であり、第2の画像56Bと、その後の第4の画像56Dとが第2のカメラ102によって撮影可能である。カメラ102を2台備えることは、解像度について妥協することなく、システム100がより広い視野を有することに、少なくとも部分的に寄与し得る。また、カメラ102を2台備えることは、システム100が短時間で画像56を撮影可能であることに、少なくとも部分的に寄与し、これによってシステム100は、高速度カメラを1台使用することによりコストを増大させることなく、連続画像(例えば、第1の画像56A及び第3の画像56C、又は、第2の画像56B及び第4の画像56D)を短時間のスパンで撮影することが可能となる。代替的な実施形態では、画像処理のために複数の画像56を撮影するカメラを1台備えてもよい。この1台のカメラは、高速度カメラであってもよく、及び/又は広角レンズを備えていてもよい。他の代替的な実施形態は、後述する光学トリガーモジュール106の代わりに、トリガー機構として物体を検出する第3のカメラを備える。
システム100は、さらに、1台以上の光学トリガーモジュール106を備えていてもよい。光学トリガーモジュール106は、例えば、レーザートリガー機構を含んでいてもよい。図示の実施形態では、2台の光学トリガーモジュール106がシステム100の両側に配置されている。光学トリガーモジュール106のうちの1台は、左利きのプレーヤー用に構成されていてもよく、2台目の光学トリガーモジュール106は右利きのプレーヤー用に構成されていてもよい。代替的な実施形態では、左利きプレーヤーと右利きのプレーヤーの両方のための光学モジュールが1台設けられていてもよい。これらの実施形態及び他の実施形態において、プレーヤーの利き手に合わせて反転させて三脚の上に配置できるように、システム100は垂直方向について対称であってもよい。いくつかの実施形態において、光学トリガーモジュール106は、飛行物体54の速さ及び/又は方位角をそれ自体も予測できるレーザートリガーシステムを備えていてもよい。レーザートリガーについてのさらなる詳細は、2012年11月29日出願の米国特許出願第13/688,974号明細書に記載されている。同出願の開示内容のすべてをここに援用する。
システム100は、また、照明源104を備えていてもよい。照明源104は赤外(IR)光アレイ、1つ以上の発光ダイオード(LED)、又はその他の適切な光源を含んでいてもよい。照明源104はカメラ102とカメラ102との間に配置されていてもよい。面積あたりの照明を高めるとともに物体54上を均一に照らすために、照明源104(例えば、複数の赤外線LED)は光学要素に装着されていてもよい。
いくつかの実施形態では、システム100は1つの光源114を備えていてもよい。光源114により、物体54の配置場所がユーザ(図示省略)に指示され得る。例えば、光源114により、システム100からの短い距離58に物体54を置くよう、ユーザに指示が与えられてもよい。示唆された位置に物体54を置くことで、物体54はシステム100の視野内か、又は、システム100の仕様の軌道内にとどまり得る。
図示のように、システム100は、プロセッサ108と、通信インターフェース110と、メモリ112とを備える。プロセッサ108と、通信インターフェース110と、メモリ112とは、通信バス116を介して通信可能に結合されていてもよい。通信バス116は、メモリバス、保存インターフェースバス、バス/インターフェース制御部、インターフェースバスなどか、又は、これらの組み合わせを有していてもよいが、これに限定されない。
一般的に、通信インターフェース110は、ネットワークにわたっての通信を容易化し得る。ネットワークには、複数のWAN及び/又はLANの間の論理的及び物理的接続により形成されるグローバルインターネットワーク等のインターネットが含まれる。代替的又は追加的に、上記ネットワークは、1つ以上のセルラー式無線周波数ネットワーク、及び/又は、1つ以上の有線及び/又は無線ネットワークを含む。この有線及び/又は無線ネットワークには、802.xxネットワーク、Bluetoothアクセスポイント、ワイヤレスアクセスポイント、IPネットワーク等が含まれるが、これらに限定されない。上記ネットワークもまた、ある種類のネットワークと別の種類のネットワークとの接続を可能にするサーバを含んでいてもよい。通信インターフェース110は、ネットワークインターフェースカード、ネットワークアダプタ、LANアダプタ、又は、その他の適切な通信インターフェースを含み得るが、これらに限定されない。
プロセッサ108は、システム100に本明細書中に記載の機能及び操作を実行させるコンピュータ命令を実行するよう構成されていてもよい。プロセッサ108は、プロセッサ、マイクロプロセッサ(μP)、コントローラ、マイクロコントローラ(μC)、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、これらの組み合わせ、又は他の適切なプロセッサを含んでいてもよいが、これらに限定されない。コンピュータ命令は、プロセッサ108による実行のために、メモリ112にロードされてもよい。例えば、コンピュータ命令は、1つ以上のモジュールの形をとっていてもよい。
いくつかの実施形態において、本明細書中に記載の機能及び操作が実行されている間に、生成、受信、及び/又は操作されるデータは、少なくとも一時的にメモリ112に保存されてもよい。さらに、メモリ112は、RAMのような揮発性記憶装置を含んでいてもよい。より一般的には、システム100は、非一時的(non−transitory)コンピュータ読取可能媒体を含んでいてもよい。この媒体としては、RAM、ROM、EEPROM、フラッシュメモリ、又はその他の記憶技術、CD−ROM、デジタル多用途ディスク(DVD)又はその他の光学的保存、磁気カセット、磁気テープ、磁気ディスク保存、又はその他の磁気保存装置、あるいは、その他の非一時的コンピュータ読取可能媒体が挙げられるが、これらに限定されない。
いくつかの実施形態においては、プロセッサ108は、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)を有するか、これと通信可能であってもよい。FPGAは、カメラ102との接続及び/又はカメラ102を制御するために使用され得る。FPGAは、例えば、カメラ102のフラッシュの継続時間と露出時間の最適化を行ってもよい。FPGAは、システム100における画像の処理及び/又は発射パラメータの計算に使用されてもよい。
代替的又は追加的に、画像56のうちの1枚以上が、遠隔コンピューティング装置に送信されてもよい。これらの実施形態においては、プロセッサ108、メモリ112等は、遠隔コンピューティング装置に設けられてもよい。遠隔コンピューティング装置は、パーソナルコンピュータ、スマートフォン、又はタブレットを含むが、これらに限定されない。遠隔コンピューティング装置は、カメラ102に接続及び/又はカメラ102を制御するために使用されてもよい。遠隔コンピューティング装置は、例えば、カメラ102のフラッシュの継続時間と露出時間の最適化を行ってもよい。遠隔コンピューティング装置は、システム100における画像の処理及び/又は発射パラメータの計算に使用されてもよい。
いくつかの実施形態において、遠隔処理システムへの画像56の送信時間を短縮するために、第1段階の物体発見手順がシステム100内で行われてもよい。例えば、第1段階の物体発見手順では、画像のサイズを縮小してもよく、より小さい画像を遠隔処理システムに送ることによって送信時間を短縮してもよい。追加的又は代替的に、プロセッサ108が、画像における物体発見を正確に実行し、飛行物体の発射パラメータを計算してもよい。プロセッサ108によって、ユーザへのフィードバックとして結果がスクリーンに表示されてもよく、あるいは、表示及び/又はフィードバックのために、発射パラメータが遠隔処理ユニットに送信されてもよい。
図1を参照して説明した上記の要素(例えば、102,104,106など)は、限定を目的としたものではない。いくつかの実施形態では、例えば、システム100は、追加的又は代替的に、実際の目標の線との方位アラインメントのための光学アライメントキュー、オーディオキュー、及びIRバンドバスフィルタを有していてもよい。
図2Aには、1枚以上の画像56を処理して、例示的な物体(例えば図1の物体54)の位置を特定する、例示的な物体位置特定プロセスを示す。画像56において物体の位置を特定することが、当該物体の発射パラメータの測定に向けた第1の工程であり得る。物体の位置が特定されると、物体の全体速度及び方位角が、一続き又は1セットの画像56から計算可能である。例えば、物体の位置の変化により、方位角を求めることができる。追加的又は代替的に、物体の位置の変化により、仰角を求めることができる。追加的又は代替的に、物体の位置の経時的な変化は、その物体の速度を判定するのに使用され得る。
概要として、物体の位置特定には、画像56からの2値画像206の生成が含まれる。画像56の、コントラスト閾値よりも大きいピクセル値を有する画素は、図2Aの2値画像206中では白色で表示されており、コントラスト閾値よりも小さいピクセル値を有する画素は、図2Aの2値画像206中では黒色で表示されている。この2値画像206から、物体の中心と半径とを計算可能か、あるいは、判定可能である。本明細書に記載のいくつかの実施形態では、物体の位置を特定するために、特殊な物体(例えば、特殊なボール)や物体上のマーカーが一切不要である。
第1のレベルのコントラスト閾値は、物体の画像202を背景204の画像から分離するために使用され得る。第1のレベルのコントラスト閾値の使用は、物体の画像202内のピクセル値が、背景204の画像に含まれる画素のピクセル値よりも高いという前提を包含し得る。画素の輝度がコントラスト閾値よりも高い場合、2値画像206上の同じ座標上の画素の輝度値が1に設定され得る。ピクセル値がコントラスト閾値よりも低い場合は、2値画像206上の同じ座標上の画素が0に設定され得る。
2値画像206には、輪郭検出が適用されてもよい。物体が球状であるいくつかの実施形態では、異なる中心と半径を有する一連の円の候補に物体の輪郭を当てはめることにより、当該物体の中心と半径とが測定され得る。測定された半径及び中心は、2値画像206の輪郭に最もよく適合する候補の円の半径及び中心であり得る。この適合度は、物体の輪郭の丸みの測定でもあり得る。背景が暗い場合、2値画像206を生成するために使用されるコントラスト閾値は低くなり得る。
物体の半径と中心をより良好に測定するために、低い閾値は、2値画像内の物体の輪郭上に消える画素を含む。しかしながら、例えば屋外で背景が明るい場合、低い閾値は、物体の画像202を背景204から分離するのに十分ではないことがある。より高い閾値を設定することで、生成される2値画像は、円の輪郭上に不鮮明な画素を含まなくなる。2値画像中の円の大きさは、元の画像の円の大きさと合致しないことがある。
図2A中、ブロック208には、物体の画像202の輪郭における暗い背景204の一例の詳細が示されている。物体が球状であるため、物体の輪郭上の画素は暗くなる。したがって、ブロック208内では、明るい画素212が物体の画像202の内側にあり、暗い画素216が物体の画像の外側にある。明るい画素212と暗い画素216との相対的な差異のせいで、背景204が暗い場合、2値画像206を抽出するために低い閾値が使用され得る。輪郭マッチングアルゴリズム(edge matching)又は円形物体マッチングアルゴリズム(round object matching algorithm)により、正確な物体の半径と中心が得られる。
また、図2A中、ブロック210には、物体の画像202の輪郭における明るい背景204の一例の詳細が示されている。背景が明るい場合、低い閾値を使用すると、物体は2値において不正確に位置特定され得る。なぜなら、背景画素218のうちのいくつかが、物体の輪郭上の物体画素214と同じくらい明るいからである。したがって、2値画像206では、物体の丸み及び大きさの両方が失われることになる。より高い閾値を設定することで、物体の丸みをそのままの状態にし得る。
より高い閾値を使用するいくつかの実施形態では、背景画素218に紛れ込んだ薄い輪郭物体画素214を排除するせいで、物体の半径が小さくなり得る。しかしながら、原点から物体の輪郭までの画素の明るさは対称な性質なので、測定された中心は正確であり得る。
図2Bには、物体の中心及び/又は半径の計算に使用され得る、物体の画像202内の画素の例示的な輝度グラフ250を示す。グラフ250では、縦軸がピクセル値を表し、横軸が位置を表している。線252は、円(物体の画像)202の中心を通る任意の直径線254に沿った、測定された画素の輝度を表す。上記線254は、物体の中心を通る線を表す。線256は、画像の背景レベル(すなわち、ノイズフロア)を表す。線258は、実験的に決定され得る低閾値である。この低閾値により、背景が暗い場合に、円の半径の正確な測定が確実になり得る。
球状の物体の場合、ピクセル値の2乗は、円の中心から円の輪郭に向かって、概ね直線的に減少する場合がある。より低い閾値で、円の半径を求めるために、直線回帰を行ってもよい。線266及び264は、直線回帰線である。線266の傾きと交差は、円の中心である線254からのプロットに沿ったサンプル点から推測され得る。
座標260は、線266の交点xに等しく、背景が暗い場合の、2値画像206の輪郭上にある仮想画素位置である。260と円の中心を通る線254との画素距離が、半径である。この工程を、測定された中心を異なる角度で通る複数の仮想線に沿って、円の複数のサンプル点にわたって繰り返してもよい。複数の線を使用して測定された平均半径が、測定された半径となる。
代替的な実施形態では、260と下降する直線回帰線264の点262における交点との画素距離が、物体の直径を表し得る。半径は、この測定された直径の半分である。
いくつかの実施形態では、第1のレベルの閾値の円の適合度は、補外法を適用するための条件として使用され得る。この適合度が低すぎる場合、低閾値での物体検知のためには背景のピクセル値が高すぎると推論できる。代替的な実施形態では、測定された中心を通る輝度グラフの補外法を適用するための条件として、背景の輝度が使用され得る。
物体に大きな濃いマーカーが付されている場合、輝度グラフは良好な直線回帰への適合を示さないことがある。これは、濃いマーカーのせいで、グラフが非連続なものとなるからである。適合度の悪い回帰線は、半径の測定においては無視されるべきである。
代替的な実施形態では、元の画像の輪郭を検知して、物体の輪郭画素を特定してもよい。RGB(Red,Green,and Blue)カメラが使用されてもよい。これらの実施形態及び他の実施形態では、各チャンネルの画素輝度とともに、物体が白色であるという前提で、物体の色が物体の位置特定のために使用され得る。
図2A及び図2Bに示されたプロセスは、1個の物体について撮影された複数の画像に実施され得る。複数の画像から、速度、仰角、方位角、又はこれらの任意の組み合わせが計算され得る。
例えば、各画像における物体の中心からある基準点までの距離が、物体の合計速度の垂直成分と水平成分を判定するために使用され得る。物体の中心から基準点までの距離は、製造時アライメント測定中又は自動較正中にシステムに保存されたカメラの中心位置のために補正され得る(自動較正については、図10A〜図11を参照して後述する)。物体の半径は、物体からシステムまでの距離についての情報を提供し、これにより方位角を測定し得る。さらに、いくつかの実施形態では、1つ以上の加速度計を使用してシステムの傾斜を計算し得る。システムの傾斜は、システムの傾斜に起因する、合計速さのバイアスと発射角度に合わせて補正され得る(図7を参照して後述する)。
図3は、物体(例えば、図1の物体54)の回転率及び回転軸を測定するための例示的な工程を含むフローチャート300である。回転率及び回転軸は、1セットの物体の画像を形成する。上記例示的工程の概要は、図3に示されており、これら工程のうちのいくつかの更なる詳細については、図4〜図8を参照して後述する。ブロックとして図示されているが、フローチャート300で説明する1つ以上の工程は、組み合わせても、省略されても、又は別の順序で実施されてもよい。さらに、物体の回転率及び回転軸の測定プロセスには、追加的な工程が含まれてもよい。
ブロック302では、物体の画像が、画像に適合する最小の正方形にトリミングされる。この最小の正方形の適合は、上記のように測定された中心と半径に基づいていてもよい。ブロック304では、物体をサイズ変更して、同じ基準半径にする。例えば、トリミングされ、単一の動作内で撮影された物体を、回転率及び回転軸の測定のために、変倍して同じ大きさにしてもよい。あるいは、いくつかの実施形態では、半径を変倍して、複数の画像において測定された半径のうちの最大の半径と同じにしてもよい。ブロック306では、画像から「ぶれ」(blur)が取り除かれ得る。例えば、モーションブラー(motion blur)が画像から取り除かれ得る。ブロック308では、サイズ変更された物体が、球面表示からデカルト座標に変換され得る。例えば、物体の画像を平坦化して、球面表示から2Dデカルト座標としてもよい。画像を平坦化することにより、表面のマークをより直接的に比較することが可能となり得る。これは、球面表示上の角度をなす動きが、デカルト座標においては平行移動になるからである。計算の複雑度について言えば、平行移動は回転よりも簡単な演算であり得る。
ブロック310では、画像のコントラストが強調され、表面の(単数又は複数の)マーカーが画像から抽出され得る。例えば、平坦化された物体の表面から、表面のマーカーを抽出してもよい。例えば、適応性のあるヒストグラム等化器(histogram equalizer)を使用して物体のコントラスト強調を行い、局所的な領域のコントラストを高めてもよい。画像について繰返しの閾値処理を行って、各画像のマーカーからの画素数を一定に維持してもよい。例示的なマーカーは、ディンプル、切れ目、表面のきず、メーカーのロゴ、又はその他の適切なマーカーであってよい。繰返しの条件は、2値画像(例えば、図2Aにおける206)中の明るい画素の固定数に設定されてもよい。マーカーのさらなる輝度解像のために、2値画像を元の画像から増大させてもよい。代替的な実施形態では、出力された2値画像が、回転の測定のために直接使用される。
ブロック312では、視点(perspective)が補正され得る。例えば、合計速さ及び発射角度の測定(図2A及び図2Bを参照して説明済み)の間に、視点の水平バイアス及び視点の垂直バイアスが測定され得る。これらのバイアスは、例えば、物体から物体の中心までの水平方向及び垂直方向の距離の逆正接関数、及び、物体から、測定された物体の半径に関連するカメラへの距離zとして測定され得る。その後、物体は方位角に合わせて補正され、これにより、視点のバイアスが誘導される。これは、物体が進行する方向に垂直な軸で物体が回転し得るからである。
ブロック314では、物体上の視点を一連の回転軸値まで傾斜させてもよい。例えば、一連の回転軸について、ある画像対の極変換グラフ(polar transform plot)におけるマーカーの水平方向の変位が測定される。ブロック316では、極変換のマッチングが測定され、半径軸における傾斜した物体の極性遷移(polar transitions)が測定される。ブロック318では、極変換の最適なマッチングとなる傾斜量に回転軸が設定される。例えば、最もよくマッチする一対を与える回転軸は、測定された回転軸であり、極変換の角度軸における変位は、画像対の間の回転の度合いである。ブロック320ではシータ軸における、第1の極変換から第2の極変換へのマークの平行移動が測定される。ブロック322では、上記平行移動が、回転率に変換される。この回転率は、画像対の間での経過時間における回転度で求められ得る。回転軸の回転は、画像の平坦化図において実行され得る。いくつかの代替的な実施形態では、回転軸の回転は物体の球面表示において実行され得る。飛行物体のバックスピン及びサイドスピンは、回転軸と合計回転率とから計算される。
図4は、図1に示すシステム100において実行可能な、例示的な視点(perspective)補正プロセスを示す図である。図4に示す視点補正は、バイアス角404の判定及びこれに合わせた補正を行うために使用される。物体54は、第1の方向においては、カメラ102の中央から第1の距離402にあり、これに垂直な第2の方向においては、カメラ102の中央から第2の距離412にある。仮想カメラ406が、物体54の中心と一直線に並ぶように配置されている。
仮想カメラ406により撮影された画像56Fにおけるマーカー408の位置は、カメラ102により撮影された別の画像56Eにおけるその位置とは異なっている。これは、物体54に対するカメラ102の位置によって導入された視点バイアス(perspective bias)のせいである。
このバイアスは、ある画像から、異なる視点バイアスで撮影された別の画像へのマーカーの測定された回転に寄与するので、補正され得る。バイアス角404は、第2の距離412に対する第1の距離402の比の逆正接の逆として測定され得る。
視点バイアスの補正は、物体と一直線に並んだ仮想カメラ406で物体を撮影したかのように、物体をバイアス角404分回転させることで行われ得る。図4には、1方向における視点補正だけを示しているが、同じ理論が垂直方向にも適用できる。例えば、図4がx方向の補正を示しているとすると、同様の補正がy方向にも実施できる。代替的な実施形態では、画像のうちの1つを他の画像の視点に補正する。
図5A及び図5Bには、図1に示すシステム100において実行可能な、例示的な補正プロセスを示す。図5A及び図5Bに示す補正は、回転率502及び/又は回転軸504の判定と、これらに合わせた補正を行うために使用され得る。一般的に、飛行物体の回転は、回転率502及び回転軸504によって定量化される。直感的な可視化には、傾斜した回転軸で1方向に回転する物体と、バックスピンとサイドスピンとの組み合わせである合計回転とが含まれ得る。バックスピンは、カメラ102を指す軸を中心に回転する物体のスピンと定義され得る。サイドスピンは、物体の中心を通り、垂直方向上方を指す軸を中心とした、単位時間あたりの物体の回転量と定義され得る。空気力学において、よく言及されるもう1つの回転成分は、ライフルスピン(rifle spin)である。ライフルスピンは、水平方向の中立回転軸に対する回転軸504の傾きの量に関連している。バックスピンとサイドスピンとに比べると、ライフルスピンは、ゴルフボールの軌道への寄与は少ない。回転軸により、その回りでサイドスピンが測定又は観察される回転軸の傾きの量が測定される。
図5Aにおいて、カメラ102の位置及び物体54とともに、中立回転軸が回転軸504として示されている。画像56G〜56Jには、この状況下でのマーカー408の例示的変化が示されている。具体的には、マーカー408が回転している一方で、中心552(中心552は、56Gと56Kにのみ図示されている)からマーカー408までの距離は、一定のままである。バックスピンとサイドスピンについては、回転軸504に沿って回転する物体54は、バックスピンだけをしており、サイドスピンはしていない。
回転軸504が傾くと、図5Bに示すように、物体54が逸れる可能性ある。例えば、ゴルフで言えば、傾きがスライスやフックの原因となり得る。回転軸504が中立回転軸(図5Aの504)からさらに傾くと、サイドスピン成分が合計回転により寄与し、横方向への逸れがより大きくなる。画像56K〜56Nは、画像56の例示的な連続画像を示す。マーカー408は画像56K〜56Nの中で動き、物体54の中心552までの距離が変化する。実質的に、画像56K〜56N中のマーカー408は、中心552とは別の点550(56Kにのみ図示)の回りを回転している。図示の例では、画像56K〜56N中のマーカー408は、中心552の下に位置する点550の回りを回転している。回転軸504がカメラ102と一直線に並ぶように補正されると、画像56K〜56Nは、画像56G〜56Jのように見える。
回転率502を測定するには、画像56のそれぞれにおける物体54の視点を傾けて、あたかもカメラ102が、回転軸504と一直線上に並ぶ仮想カメラの位置にあるかのように、回転軸504を位置決めする。画像の視点は、カメラ102が元の位置から補正角506分傾けられたかのようになる。視点をマッチングさせ傾けた後に、合計回転率が、1つの画像(例えば56G)から別の画像(例えば56H)までの、単位時間あたりのマーカー408の回転として測定される。いくつかの実施形態では、一対の測定用画像(例えば、56G及び56H)における画像を回転軸504に向けて傾けて、合計回転を測定してもよい。回転軸504を変化させるプロセスは、図4を参照して説明したプロセスと同様の、物体を候補の回転軸504と同じだけ回転させるプロセスを含んでもよい。画像56の1枚から別の画像への、マーカー408と物体54の中心の距離の測定値は、一連の回転軸の候補の中から、最適な回転軸504を導くスコアであり得る。例えば、画像56K〜56Nでは、マーカー408は回転と平行移動の両方を有する。しかしながら、画像56G〜56Jは、適正な回転軸に合わせて補正されている。このことは、物体54の中心までの距離が等しく、よって、1枚の画像56から別の画像まで、マーカー408が回転のみしていることからもわかる。
図5A及び図5Bでは、目立つマーカーが使用されているが、これは例示の目的によるものである。目立つマーカーの使用は限定を意味するものではない。なぜなら、図1に示すシステム100においては、ディンプルのような特殊ではないマーカーが、回転を検知するのに十分だからである。本明細書中の記載全体を通して、図中には文字のような目立つマーカーが使用されている。これらの目立つマーカーは、本発明をマーカーに対応する記載に限定することを意味するものではない。なぜなら、システム100は、非人為的なマーカーに基づいて発射パラメータを測定するように構成され得るからである。
具体的に、図12A及び図12Bには、図1のシステム100により検知及び使用可能な、例示的なマーカー1206及び1208を示す。いくつかの実施形態では、画像(例えば図1の56)のコントラストを強調して、不鮮明なマーカーをはっきりさせてもよい。図2A及び2Bを参照して説明したように、画像は、低いローパス閾値の2値画像に変換されてもよい。さらなる処理と分析のために、元の画像を使用して2値画像を増大させ、コントラストを最大にする。2値画像の画素の総計が任意の値からの帯域内になるように、閾値が適応的に計算される。これにより、回転率及び回転軸のマッチングに利用できる画素が確実に相当な量となり、ゴルフボールのディンプルのような非人為的なマーカーの利用が可能となる。図12A及び図12Bには、入力画像1202A及び1202B、ならびに、出力画像1204A及び1204Bを示す。図12Aは、閾値と、高コントラストの特殊なマーカー1208を有する画像の増倍出力(multiplication output)との出力画像1204Aを示す。図12Bは、閾値と、ゴルフボールのディンプルのような非人為的なマーカー1206を有する画像の増倍出力との出力を示す。出力画像1204A及び1204Bは、2値画像中で、同等の量の明るい画素を有する。代替的な実施形態では、出力画像1204A及び1204Bの代わりに、元の画像1202A又は1202Bがさらなる処理及び分析のために使用され得る。
図6は、図1のシステム100において実行可能な、例示的な方位角補正プロセスを示す図である。図6に示す方位角補正は、飛行物体54の方位角602を判定及び補正するために使用され得る。図6には、第1の位置606にある物体54、及び第2の位置604にある物体54が示されている。
カメラ102の視点は、飛行物体54の方位角602に合わせて補正され得る。傾斜した軸は、物体54の方向(例えば、第1の位置606から第2の位置604への方向)に垂直である。図6中、物体54は、方位角602で移動している。したがって、実際の回転軸は、第2の位置604における504Aであり得る。しかしながら、方位角602のせいで、(上記方法により)測定された回転軸は、測定回転軸504Bであり得る。
物体54の視点は、方位角602に合わせて補正されてもよい。この補正は、上述のプロセス、つまり、物体54の方位角602に直角に配置され、且つ、実際の回転軸504Aと一直線上に並んだ仮想カメラ406に視界がシフトされたかのように、物体54を方位角602だけ回転させる、上述のプロセスに類似のプロセスであってもよい。
図7は、図1のシステム100において実行可能な、例示的なシステム傾斜補正プロセスを示す図である。図7に示すこのシステム傾斜補正は、システム100のシステム傾斜角706の判定及び補正に使用され得る。図7には、システム傾斜角706だけ傾斜したシステム100が示されている。システム100が備える加速度計702及び704は、システム傾斜角706の情報を提供可能である。いくつかの実施形態では、システム傾斜角706の測定結果が発射パラメータの補正に利用され得る。
例として、第1の位置708にある物体54と、第2の位置710にある物体54が図示されている。位置708及び710にある物体54の座標は、ピボット点712に対して測定され得る。測定座標から、図7のベクトル714により表される、ピボット点712から第2の位置710までの距離と角度が計算可能である。補正は、加速度計のシステム傾斜角706によるベクトル714の角度変化を計算することを含み得る。第2の位置710における、物体54の新たな座標は、これに基づき計算できる。例えば、ベクトル714の長さは、システム傾斜角706の有無にかかわらず同等であり得る。しかしながら、ベクトル714の角度は、システム傾斜角706に合わせて補正され得る。回転については、システム傾斜角706によって、システム傾斜角706により導入されたオフセットの分だけ、回転軸の測定値が補正され得る。
いくつかの実施形態では、回転軸の測定値は、最適な画像対の適合を有する傾斜の量と等しくてもよい。傾斜は、平坦化された図中の物体の画像(例えば図2Aの202)の中心の垂直方向の平行移動により、画像対に導入できる。図8は、球面表示(800A及び800B)から、平坦化されたデカルト表示(800C及び800D)への変換プロセスを示す。平坦化された図は、物体の球面図のデカルト座標表示であり得る。図8は、物体の球面画像800Aを含み、この球面画像はカメラ(例えば、図1の102)により撮影された元の画像であってもよい。画像は2次元であり、対称の回転する物体は3次元であるので、球面画像800Aと平坦化図800Cとの間の変換は重要であり得る。
球面図800Aから平坦化図800Cへの変換は、距離810を第2の距離808まで変倍することを含んでいてもよい。距離810は、円804(すなわち、3次元図800Eに示される球状の物体54の円としての表示)の中心802から点806までの、2次元の距離である。第2の距離808は、物体54の3次元図800Eに図示されている。第2の距離808は、物体54の表面に沿った、中心802(同じく表面上にある)と点806との間の、実際の距離である。
球面図800A中の点806が、球面のx成分及び球面のy座標を含む場合、平坦化図中の点806は、平坦化されたx成分と平坦化されたy座標を有し、円804は半径Rを有し、平坦化図800C中の変倍後の座標は、次式により求めることができる。
変換後には、球面図800Aが平坦化図800Cになる。球面図800Aの回転は、平坦化図800C中では平行移動になり得る。球面図800A中での物体54の1°の回転と、平坦化図800C中での物体54の平行移動との関係は、次式のように表せる。
回転と対応する平行移動を図示する目的で、球面図800A中の円804を回転させて、別の球面図800Bのようにしてもよい。この回転の方向は、矢印814により表され得る。球面図800Aからもう1つの球面図800Bへの回転は、平坦化図800Cから別の平坦化図800Dへの平行移動に対応する。平坦化図800Cからもう一方の平坦化図800Dへの平行移動の方向は、矢印814で表され得る。
つまり、左又は右への回転又は上下の回転(例えば、画像が物体のxy平面図である場合の、物体の中心に原点を有する座標系のx軸又はy軸の周囲での単純な時計回り又は半時計回りの回転)は、平坦化図800C及び800Dにおける平行移動に等しい。回転(例えば、上記の座標系のz軸周りのバックスピン)は、平坦化図800C及び800D中の回転のように見える。
いくつかの実施形態では、平坦化された画像対(例えば、図8を参照して説明したプロセスにより平坦化された画像)が、回転率と回転軸の測定のために、極座標に変換されてもよい。図9は、平坦化画像対(900A及び900B)から極座標系(900C及び900D)への変換プロセスを示す図である。図9中、画像900A及び900Bはデカルト座標で表されている。第1の画像900Aは、第1の極座標系900Cに変換可能であり、第2の画像900Bは、第2の極座標系900Dに変換可能である。
一般に、極変換(polar transform)は、デカルト座標を半径とシータ軸とに変換することである。点902の座標が、Cartesian_x_coordinate 及びCartesian_y_coordinateと表され、画像900A及び900Bの原点の座標がOrigin_x_coordinate及びOrigin_y_coordinateと表せる場合、極変換は次式に従って実行できる。
極座標系900C及び900Dにおける点902の極座標は、(radius, theta_axis)である。さらに、極座標系900C及び900Dは、原点(極(polar origin))906を有する軸に極プロット(polar plot)を含み得る。
回転軸及び回転率の測定の場合、視点補正と回転軸マッチング(すなわち、物体の回転)は、極変換の原点(極)906の移動となる。極変換の式は、次の通りである。
上記式において、corrected_x_lengthは補正を考慮して上記で計算されたx_lengthである。corrected_y_lengthは、補正を考慮して上記で計算されたy_lengthである。horizontal_biasは、方位角と、水平方向において位置導入された(position introduced)視点バイアスとの組み合わせである。vertical_bias は、垂直方向において位置導入された視点バイアスである。spin_axisは、回転率及び回転軸の測定のための候補の回転軸である。
点902から中心904までの距離の変化がない場合、極変換が平行移動と水平方向にマッチすることになる。この平行移動は、画像900A及び900Bからの任意のマーカーの回転となる。なぜなら、この平行移動が角度軸(例えば、theta_axis)における変位を表すからである。この回転を画像900Aと900Bとの間の経過時間で割ることで、物体の合計回転率が得られる。
つまり、左又は右への回転又は上下の回転(例えば、画像が物体のxy平面図である場合の、物体の中心に原点を有する座標系のx軸又はy軸の周囲での単純な時計回り又は半時計回りの回転)は、原点(極)906の水平方向及び垂直方向の移動と等しい。回転(例えば、上記の座標系のz軸周りのバックスピン)は、点902(又は点902を含むマーカー)の単一の次元における平行移動として表される。
水平角と位置導入されたバイアスの両者に合わせた視点補正は、平坦化画像の極変換の原点(極)906を移動させることで行い得る。また、正確な傾斜軸のためのスキャンは、点902と中心904との距離910が、画像900A及び900Bの両方において同じになるまで、極座標系900C及び900Dの原点(極)906を垂直方向に動かすことで実行する。すなわち、画像900A及び900Bの極変換を、極座標系900C及び900Dにおいて水平方向に移動させる。
極変換は、回転不変マッチングアルゴリズム(rotational invariant matching algorithm)として使用できる。角度軸における、極変換対の原点(極)906の移動は、物体上の点902を含むマーカーの回転である。
原点(極)906の半径軸における極変換対のマッチングの測定は、1つの次元において2つの画像を比較することで行い得る。原点(極)の半径軸が正確な回転軸の方に傾いている場合、点902は単純な平行移動のように表され得る。もし不正確な回転軸が選択されると、点902は垂直方向への平行移動と水平方向への平行移動との組み合わせで動く。上記比較は、マッチングアルゴリズムの複雑さを軽減するために、1つの次元において行い得る。最もマッチした回転軸視点補正対の原点(極)906の角度軸における点902の変位から、ある既知の時刻での物体の回転量が得られる。
代替的な実施形態では、回転軸マッチングと回転率測定のために、平坦化図の代わりに元の画像の球面図を使用してもよい。測定に使用する画像対の両方の画像を、それぞれの画像を回転させることによって、視点バイアスと傾斜軸に合わせて補正してもよい。
図1を参照しながら説明したシステム100のような、2台のカメラを使用するシステムは、較正とアラインメントによって効果を奏する。図10A及び図10Bは、製造時と事前測定されたカメラアライメント値の提供のために、2台のカメラ(例えば図1のカメラ102)のアラインメントに使用可能な、例示的なテストジグ1000を示す図である。具体的に、図10Aはテストジグ1000の側面図であり、図10Bはテストジグ1000の正面図である。図1のシステム100は、テスト位置にあるよう図示されている。テストジグ1000は、システム100を保持するための固定具1002を有していてもよい。また、テストジグ1000はテストチャート1004を有していてもよい。テストチャート1004は、システムから離間して配置され得る。コンピューティング装置(図示省略)がシステム100に接続されていてもよく、このコンピューティング装置はシステム100の製造段階で処理を行い得る。LEDフラッシュの光のプロファイルが測定され、システム100のSDRAMに保存され得る。システム100のカメラ及び/又はカメラのレンズのひずみのプロファイルが測定され得る。例えば、ひずみのプロファイルは、カメラ又はカメラのレンズの中央から異なる距離にある複数のマーカー1006の画素距離を比較することで生成され得る。操作中の補正ために、このひずみのプロファイルを、システム100のSDRAM又はその他の適切なメモリに保存し得る。
したがって、例えば、2台のカメラの中心と中心との間の垂直方向の距離及び水平方向の距離等の距離が測定され得る。2台のカメラ間の垂直方向及び水平方向の距離は、発射パラメータの計算中のバイアス補正のために、システム100に返送され得る。カメラの中心と中心との距離を計算に入れることで、発射パラメータの計算中に、レンズとレンズホルダ製品の不整により導入される誤差を低減又は排除し得る。
カメラとカメラ又はレンズの中央と中央との距離を測定するために使用されるマーカー1006は、円形であってもよい。追加的又は代替的に、テストチャート1004は、カメラレンズの焦点合わせに使用される、高コントラストな形状であってもよい。この形状は、対角線によって白と黒の等しい領域に分けられた長方形であってもよい。
システム100の製造段階での初期較正に加えて、システム100は、新たなカメラ中央距離を測定するために自動較正を行ってもよい。例えば、システム100に強い衝撃が与えられた場合、システムが自動較正を行ってもよい。
図11は、作動環境50において、自動較正モードにあるシステム100を示す。自動較正は、ユーザに見えるように実行されてもよい。システム100が自動較正モードに入ると、2台のカメラ102の両方が同時に1枚の画像を撮影する。
図11には、自動較正の間、飛行している状態の物体54が図示されている。物体54の画像56Y及び56Zは、それぞれ、カメラ102のうちの1台により撮影されてもよい。画像56Y及び56Zの中心の間の垂直及び水平方向の距離が計算される。この垂直及び水平方向の距離は、新たな垂直及び水平方向のカメラバイアス補正として、システム100に返送され得る。システム100は、前回のアラインメント及び較正データに、新しい垂直及び水平方向の距離を上書することが可能である。残りの画像56X及び56Wは、(上述の)通常操作の通り、別々の時間に撮影され、これらの画像から発射パラメータが計算され得る。異なる複数の画像対により測定された、飛行物体の合計速度の差が、自動較正の要否を決定する条件として使用され得る。
図13は、飛行物体の発射パラメータを測定するための方法1300を示すフロー図である。いくつかの実施形態では、方法1300は、システム100によって実行され得る。いくつかの実施形態では、方法1300は、図1を参照して説明したシステム100によってプログラム可能なように実行され得る。いくつかの実施形態では、システム100が、非一時的なコンピュータ読取可能な媒体(例えば、図1のメモリ112)を含むか、この媒体と通信可能に接続されていてもよい。この媒体には、プログラミングコード、又は、コンピューティング装置に上記例示的方法1300を実行させるための命令が格納されている。追加的又は代替的に、システム100は、コンピュータ命令を実行してコンピューティングシステムに方法1300を実行させるよう構成された、上述のプロセッサ108を含むか、このプロセッサ108と通信していてもよい。別々のブロックとして図示されているが、所望の実施方法に合わせて、各ブロックはさらなるブロックに分割されても、組み合わせによってその数が少なくなっても、又は、削除されてもよい。
方法1300は、1302の飛行物体の複数の画像の撮影から開始され得る。1304においては、各画像において、物体の半径と中心とが特定され得る。物体の半径と中心の特定には、物体の半径の特定が可能となるように選択されたコントラスト閾値の設定が含まれる。コントラスト閾値は、明るい条件下で物体の半径を特定可能なように設定され得る。
1306において、物体の半径、物体の中心、及び事前測定されたカメラアラインメント値に基づいて、速度と仰角と方位角とが計算され得る。1308では、画像が、物体と境界を接する最小の正方形にトリミングされ得る。1310では、画像が球面表示からデカルト表示に平坦化され得る。1312において、上記デカルト表示が、一連の回転中心の候補を有する極座標に変換され得る。1314において、極画像対の適合度に基づいて、回転軸及び回転率が測定され得る。この回転軸及び回転率の測定には、カメラの変位に適合させることによって、第1の視点バイアスを補正することが含まれ得る。さらに、いくつかの実施形態では、回転軸及び回転率の測定には、方位角に適合させることによって、第2の視点バイアスを補正することが含まれ得る。
当業者には、この手順又は他の手順ならびに本明細書に記載の方法について、これら手順と方法において実行される機能が、異なる順序で実行され得ることが理解されるであろう。さらに、概要を説明した工程と操作は、例示されただけであり、これら工程と操作の一部は任意であり得、組み合わせによってその数が減ることもあり、本明細書中に開示の実施形態から逸脱することなく追加的な工程及び操作に拡張可能である。例えば、いくつかの実施形態において、方法1300には、速さと仰角と方位角のうちの少なくとも1つを、測定されたシステム傾斜に基づいて補正することが含まれてもよい。追加的又は代替的に、方法1300には、マーカーのマッチングのために、画像から十分な画素を抽出することが含まれてもよい。マーカーのマッチングには、物体上の1つ以上の非人為的なマーカーを特定することが含まれてもよい。追加的又は代替的に、方法1300は、回転率及び/又は回転軸の測定のために、画像対の極変換を1つの次元に当てはめることを含んでもよい。追加的又は代替的に、方法1300には、製造時較正及び/又は画像撮影中の自動較正が含まれてもよい。
本明細書に記載の実施形態は、以下により詳細に説明するように、各種のコンピュータハードウエア又はソフトウエアモジュールを備える、特殊な又は汎用のコンピュータの使用を含んでもよい。
本明細書に記載の実施形態は、コンピュータにより実行可能な命令又はデータ構造を格納した、コンピュータで読取り可能な媒体を使用して実施されてもよい。このようなコンピュータで読取り可能な媒体は、特殊なコンピュータ又は汎用コンピュータによりアクセス可能な、入手可能な媒体であればよい。例えば、このコンピュータで読取り可能な媒体としては、RAM、ROM、EEPROM、CD−ROM、又は他の光学的ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置などのコンピュータで読取り可能な非一時的記憶媒体、あるいは、所望のプログラムコード手段をコンピュータで実行可能な命令又はデータ構造として保持又は記憶するために使用可能でかつ汎用又は特殊なコンピュータでアクセス可能な、他の非一時的記憶媒体が挙げられるが、これらに限定されない。上記媒体の組み合わせも、コンピュータで読取り可能な媒体の範囲に包含される。
コンピュータにより実行可能な命令は、例えば、汎用コンピュータ、特殊コンピュータ、又は特殊な処理装置に、ある機能又は一群の機能を実行させる命令又はデータを含む。本発明の主題を、構造的特徴及び/又は方法論的行為に特有の言語を用いて説明してきたが、添付の請求の範囲により定義される本発明の主題が、上記の具体的な特徴及び行為に必ずしも限定されないことを理解されたい。むしろ、上記の具体的な特徴及び行為は、特許請求の範囲の実施の例示的な形態として開示されている。
本明細書中で使用される、「モジュール」又は「構成要素」という用語は、コンピューティングシステムで実行されるソフトウエアオブジェクト又はルーチンを指すこともある。本明細書に記載の異なる構成要素、モジュール、エンジン、及びサービスが、オブジェクト又はプロセスとして(例えば、個別のスレッドとして)コンピューティングシステムで実行され得る。本明細書に記載のシステム及び方法はソフトウエアとして実施されるのが好ましいが、ハードウエア又はソフトウエアとハードウエアとの組み合わせとしての実施も可能であり、意図されている。本明細書中で、「コンピューティング装置」は、すでに定義した通り、任意のコンピューティングシステム、又は、コンピューティングシステムで機能する任意のモジュールか、又は、モジュールの組み合わせであってもよい。
本明細書に記載のすべての例及び条件的表現は、発明者が当該技術を促進すべく寄与した本発明及びその概念について、明細書を読む者の理解を助ける教育学的な目的によるものであって、このように具体的に記載された例と条件に限定するものではないものと解釈されたい。本発明の実施形態を詳述してきたが、本発明の思想及び範囲から逸脱することなく、種々の変更、代替、改変が可能であると理解されたい。