(58)【調査した分野】(Int.Cl.,DB名)
前記投射物は、ゴルフボール、野球のボール、ソフトボール、サッカーボール、フットボールのボール、ホッケーのパック、テニスボール、卓球のボール、スカッシュのボール、ラケットボール、バドミントンのシャトル、ハンドボールのボール、ラクロスのボール、陸上ホッケーのボール、バレーボールのボール、キックボールのボール、ホースシュー、及びローンダーツの1つ又は複数を含む、請求項1に記載の方法。
前記推定投射物初期状況の前記初期位置ベクトルと、前記投射物が水平面に接触した前記推定投射物軌道上の点との間の水平距離として、前記投射物の推定飛距離を計算することを更に含む、請求項3に記載の方法。
既知の距離における既知のサイズの物体のカメラ画像のピクセル単位のサイズを測定して、前記1つ又は複数のカメラパラメータのうちの1つ又は複数を特定することを更に含む、請求項7に記載の方法。
前記投射物の前記潜在的ピクセルロケーションをフィルタリングして、実質的に丸い物体のピクセルロケーションのみを保持することは、前記投射物の前記潜在的ピクセルロケーションの各潜在的ピクセルロケーションについて、
閾値を超えるピクセル値を有する、前記潜在的ピクセルロケーションを囲む領域内の候補ピクセルを識別することと、
前記候補ピクセルの重心を特定することと、
前記候補ピクセルと前記重心との間の平均距離を計算することと、
前記重心に中心を有し、前記平均距離の1.5倍の半径を有する円盤を計算することと、
候補ピクセルである前記円盤内のピクセルの割合を特定することと、
前記割合が密度閾値を超える場合、前記潜在的ピクセルロケーションを保持することと、
を含む、請求項12に記載の方法。
前記3D軌道の前記初期期間の前記物理モデルは、前記初期速度ベクトルに等しい均一速度を有する前記初期位置ベクトルにおいて開始される慣性運動を含む、請求項16に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0005】
少なくとも上述した制限のために、2Dカメラ画像から投射物の3D軌道を推定する方法が必要とされている。
【課題を解決するための手段】
【0006】
本明細書に記載される1つ又は複数の実施形態は、2Dカメラ画像から投射物の3D軌道を推定する方法に関する。1つ又は複数の実施形態は、単レンズカメラからのカメラ画像を解析して、打球等の投射物の空間中の推定軌道を計算し得る。この解析は、最適化技法を使用して、軌道モデルを2Dカメラ画像における投射物の観測ピクセルロケーションに近似し得る。この技法は複数のカメラに拡張し得る。従来の並んだレンズを有する二重カメラシステムとは異なり、マルチカメラシステムは、任意のロケーション及び向きの複数のカメラからの画像を使用して、投射物の3D軌道を特定し得る。
【0007】
1つ又は複数の実施形態は、一連の2Dカメラ画像における投射物の観測ピクセルロケーションと、軌道モデルに基づく投射物のモデリングピクセルロケーションとの間の差を最小にすることにより、推定投射物初期状況(インパクト直後の投射物の位置及び速度ベクトル等)を計算し得る。モデリングピクセルロケーションは、世界基準系に対する投射物運動の物理モデルを、世界基準系における点をカメラ画像におけるピクセル位置にマッピングするカメラ投射変換と組み合わせることにより、投射物初期状況の関数として計算し得る。推定投射物初期状況を使用して、1つ又は複数の実施形態は投射物の3D軌道を計算し得る。この軌道は、時間及び空間を通して無限に拡張し得、又は例えば、投射物が地面を打つか、若しくは他の方法で運動を停止するまで拡張し得る。推定3D軌道に基づいて、1つ又は複数の実施形態は、例えば、限定ではなく、投射物が地面又は水平面を打つまで移動した水平距離である投射物の飛距離等の尺度を計算し得る。
【0008】
投射物運動の物理モデルは、例えば、投射物への力をモデリングし得る。力は、例えば、限定ではなく、重力、抗力、及び回転に起因したマグヌス効果力に何れか又は全てを含み得る。回転効果を含む物理モデルでは、投射物の初期回転を推定又は測定し得る。
【0009】
投射物は、例えば、限定ではなく、ゴルフボール、野球のボール、ソフトボール、サッカーボール、ホッケーのパック、テニスボール、卓球のボール、スカッシュのボール、ラケットボール、バドミントンのシャトル、ハンドボールのボール、ラクロスのボール、陸上ホッケーのボール、バレーボールのボール、キックボールのボール、ホースシュー、及びローンダーツであり得る。
【0010】
1つ又は複数の実施形態は、世界基準系における点を2Dカメラ画像におけるピクセルロケーションに変換するカメラ投射変換を計算し得る。このカメラ投射変換は、例えば、世界基準系からカメラ基準系(概念的にカメラに固定し得る)への変換と、カメラ系から画像におけるピクセル座標への投射変換との複合として計算し得る。
【0011】
1つ又は複数の実施形態では、カメラ基準系とピクセル座標との間の投射変換は、1つ又は複数のカメラパラメータに依存し得る。これらのパラメータの1つ又は複数は、既知の距離において見られる既知の物理サイズの物体のピクセル単位のサイズを測定することにより特定し得る。
【0012】
1つ又は複数の実施形態では、世界基準系からカメラ基準系への変換は、世界基準系におけるカメラの向きに依存し得る。1つ又は複数の実施形態では、この向きは、例えば、カメラ系における重力の方向を測定する三軸加速度計等のカメラに結合された1つ又は複数のセンサを使用して特定し得る。世界系とカメラ系との間の変換は、例えば、世界系における下向き重力ベクトルを加速度計から測定された重力ベクトルに回転させる回転であり得る。
【0013】
1つ又は複数の実施形態は、2Dカメラ画像を解析して、これらの画像における投射物のピクセルロケーションを特定し得る。1つ又は複数の実施形態において、投射物の位置特定に使用し得る初期ステップは、例えば、3フレーム差分アルゴリズムを使用して、カメラ画像において運動中の物体の場所を特定することである。1つ又は複数の実施形態では、3フレーム差分は平滑化し得、次に、平滑化された差分における分離ピークを投射物の潜在的なピクセルロケーションとして識別し得る。
【0014】
ボールであるか、又は丸い投射物の場合、投射物の潜在的なピクセルロケーションをフィルタリングして、実質的に丸い形状であり、画像における予期される投射物サイズに一致する物体のみを保持し得る。1つ又は複数の実施形態において使用し得る丸い物体を見つけるアルゴリズムは、重心及び重心からの物体領域の平均距離を計算し、平均距離の1.5倍の半径を有する重心の周りの円盤を生成し、この円盤内の物体ピクセルの密度が密度閾値を超える場合、物体は丸いと見なし得る。
【0015】
単一2Dカメラを用いる場合、カメラ画像におけるピクセルロケーションは、3D空間における一点に明確にマッピングすることができない。したがって、1つ又は複数の実施形態は、例えば、飛行開始時のカメラと投射物との間の実測又は仮定距離に基づいて投射物の初期位置の一座標を固定し得る。1つ又は複数の実施形態また、投射物の初期状況が維持される初期時間を取得又は計算することもできる。初期状況は5つの未知の座標を有し得る:2つの未知の位置座標及び3つの未知の速度座標。これらの未知の座標は、カメラ画像における投射物の観測ピクセルロケーションと、これらの未知の座標の関数としての予測ピクセルロケーションとの差を最小にすることにより推定し得る。例えば、1つ又は複数の実施形態は非線形最小二乗アルゴリズムを使用して、推定初期状況を発見し得る。任意の初期状況の予測ピクセルロケーションは、初期投射物軌道の物理モデル及び世界基準系座標をピクセルロケーションにマッピングするカメラ投射変換を使用して計算し得る。例えば、初期投射物軌道の物理モデルは、重力、抗力、及びマグヌス効果力の何れか又は全てを含み得る。
【0016】
本特許又は本願の一件書類は、カラーで実行される少なくとも1つの図面を含む。カラー図面を有する本特許又は本特許出願公開公報のコピーは、要求及び必要料金の支払いにより特許商標庁により提供される。
【0017】
本発明の上記及び他の態様、特徴、及び利点は、以下の図面と併せて提示される以下の本発明のより具体的な説明からより明らかになる。
【発明を実施するための形態】
【0019】
2Dカメラ画像から投射物の3D軌道を推定する方法についてこれより説明する。以下の例示的な説明では、本発明の実施形態のより完全な理解を提供するために、多くの具体的な詳細が記載される。しかしながら、本明細書に記載される具体的な詳細の全ての態様を組み込まずに本発明が実施可能なことが当業者には明かである。他の場合、本発明を曖昧にしないように、当業者に周知の特定の特徴、数量、又は測定値については詳述していない。本発明の例が本明細書に記載されるが、特許請求の範囲及び全範囲の任意の均等物は、本発明の境界を規定するものであることに読み手は留意されたい。
【0020】
図1は、投射物の一連の2Dカメラ画像から投射物の3D軌道を推定する手順の一例を示す。この説明のための例では、投射物101はゴルフボールであり、ゴルファー102により打たれる。1つ又は複数の実施形態は、例えば、限定ではなく、ゴルフボール、野球のボール、ソフトボール、サッカーボール、フットボールのボール、ホッケーのパック、テニスボール、卓球のボール、スカッシュのボール、ラケットボール、バドミントンのシャトル、ハンドボールのボール、ラクロスのボール、陸上ホッケーのボール、バレーボールのボール、キックボールのボール、ホースシュー、及びローンダーツを含む任意の1つ又は複数のタイプの投射物の軌道を推定し得る。投射物は、任意の1つ又は複数のタイプの器具を使用して又は人の力若しくは自然の力を使用して打たれ、投げられ、蹴られ、発射され、トスされ、飛ばされ、バウンドし、押され、引かれ、放たれ、又は落とされ得る。投射物は、限定ではなく、空気又は水を含め、任意の媒質を通って移動し得る。幾つかの状況では、投射物は表面又はトラックに沿って移動し得る。
【0021】
カメラ103は、ゴルフボールがインパクト(衝撃)後に移動する際、ゴルフボールの画像を捕捉する。1つ又は複数の実施形態では、カメラ103は任意のタイプのカメラ又は画像捕捉デバイスであり得る。例えば、2D画像を捕捉する単レンズカメラであり得る。カメラはビデオカメラ又は個々の画像を捕捉するカメラであり得る。通常速度ビデオカメラ(毎秒30フレームでビデオを捕捉するカメラ等)又は任意のフレームレートで動作する高速ビデオカメラであり得る。カメラ103は、例えば携帯電話等の任意の他の機器に統合し得る。1つ又は複数の実施形態では、カメラ103は複数のカメラであり得る。例えば、マルチカメラシステムは、独立して動作する、複数の場所における単(又は二重)レンズを使用し得る。1つ又は複数の実施形態では、カメラ103は、二重レンズを有する立体カメラであり得、これは例えば、2つの画像間のピクセルロケーションの差を使用して、距離を推定し得る。
【0022】
カメラ103は、画像110a、110b、110c、110d、及び110eを捕捉する。各画像は2D画像である。この例では、画像110a、110b、110c、及び110dは投射物101の画像を含み、画像110eは、投射物がカメラの視野から出てしまったため、投射物の画像を含まない。一般に、1つ又は複数の実施形態では、任意の数の画像をカメラ(又は複数のカメラ)により捕捉し得、これらの画像の任意のサブセットは、関心のある投射物の画像を含み得る。1つ又は複数の実施形態は、投射物を含む画像を使用して、投射物の3D軌道を推定し得る。
【0023】
3D軌道を推定する、1つ又は複数の実施形態において使用し得る例示的なプロセスをステップ121、122、123、及び124に示す。1つ又は複数の実施形態では、コンピュータ119は画像を処理し、コンピュータはカメラ103の内部にあってもよく、又は別個であってもよい。いずれの場合でも、コンピュータは、以下のように画像を処理する特定の実行ステップにより構成され、任意のアーキテクチャでの分散又は埋め込みコンピュータを含む任意の他のコンピュータアーキテクチャを本明細書に記載される実施形態と共に利用し得ることに留意する。ステップ121において、投射物ピクセルロケーションがカメラ画像の1つ又は複数において特定される。ステップ122において、初期状況(インパクト直後のゴルフボールの放出速度及び位置等)の関数として投射物の3D軌道を特定するモデルが生成又は取得される。ステップ123において、3D位置から2Dピクセルロケーションにマッピングするカメラ投射変換が特定される。ステップ124において、ステップ121において特定された観測ピクセルロケーションと投射物の予測ピクセルロケーションが最もよく一致する推定初期状況を計算する。これらのステップの結果は、初期位置131及び初期速度132並びに結果として生成される、世界基準系130に対する投射物の3D軌道133等の1組の推定初期状況である。世界基準系130は、地上の場所又は任意の所望の物体に固定された系等の任意の所望の基準系であり得る。
【0024】
図2は、1つ又は複数の実施形態における
図1のステップ122に使用し得る手順を示す。初期状況201は、例えば、世界基準系に対する、選択された初期時間(インパクト直後等)における投射物の三次元初期位置ベクトル及び三次元初期速度ベクトルであり得る。1つ又は複数の実施形態では、初期状況は初期回転ベクトル203を含むこともでき、初期回転ベクトル203は測定又は仮定(ゴルフボール飛行のような特定のタイプの軌道の平均回転に基づく等)し得る。回転は、例えば、ボール又は他の投射物における印を使用して測定し得、ナイキスト周波数(例えば、フレームレート240Hzで7200rpm)までの回転率は直接観測可能であり、変化率又は他の事前情報は、存在する場合、エイリアシングの解決に使用し得る。回転を推定する別の手法は、より大きな視野を使用して、より広範囲の投射物の飛行を捕捉し、投射物の観測ピクセルロケーションを、回転率を含む軌道モデルに近似して、モデルのパラメータを全てまとめて推定する。回転の直接測定が利用可能ではない場合、公称回転率を仮定し得、公称回転率は、投射物のタイプ、投射物を打つ器具のタイプ(ゴルフクラブのタイプ等)、及び投射物の放出速度ベクトル等の要因に基づき得る。
【0025】
物理モデル202を作成又は取得し得、物理モデル202は、例えば、時間の経過に伴い投射物に対して作用する力を記述し得る。力は、例えば、重力(mg)、抗力(F
drag)、及びマグヌス効果に起因した揚力(F
Magnus)の何れか又は全てを含み得る。1つ又は複数の実施形態は、これらの力の何れか又は全てを省いた簡易化物理モデルを投射物に使用し得る。例えば、インパクト後のゴルフボールの初期軌道の簡易物理モデルは、全ての力を無視し得、ボールの飛行を純粋に慣性として扱い得、ここでは、ボールは初期速度で運動を続ける。別の簡易化物理モデルは重力のみを含み得る。ステップ204において、投射物の3D軌道は、初期状況201(及び可能な場合には203)を使用して物理モデル202により指定された運動の微分方程式を解くことにより導出される。このプロセス204は、未知であり得る初期状況の関数として3D軌道を生成する。したがって、初期状態が異なると、生成される投射物の3D軌道も異なる。例えば、初期状況(r
0,v
0)は3D軌道133を生成し得るが、異なる初期状況(r’
0,v’
0)は異なる3D軌道133aを生成し得る。
【0026】
図3は、
図2の例を継続し、1つ又は複数の実施形態による、
図1のステップ123及び124に使用し得る手順を示す。カメラ投射変換310を取得又は計算して、世界基準系からの3D座標をカメラ画像内のピクセル座標にマッピングする。この変換310を使用して、133及び133a等の3D軌道をカメラ画像内の対応するピクセルロケーションにマッピングし得る。例えば、3D軌道133上の点301は、フレーム110bにおけるピクセルロケーション311にマッピングされ、3D軌道133a上の点302はフレーム110bにおけるピクセルロケーション312にマッピングされる。次に、マッピングされたピクセルロケーションと投射物の実際のピクセルロケーションとの間の差を使用して、各3D軌道が一連のカメラ画像といかに一致するかを判断する。例えば、表320は、異なる初期状況に対応する軌道133及び133aの予測された投射物ピクセルロケーションと観測投射物ピクセルロケーションとの間の合計二乗距離321を計算する。この例示的な計算は、変換された軌道ロケーションと観測ピクセルロケーションとの間の二乗距離の和が、軌道133aの対応する二乗距離の和よりも低いため、軌道133が観測投射物ピクセルロケーションにより密に近似することを示す。1つ又は複数の実施形態では、観測ピクセルロケーションへの最良の近似を提供する推定初期状況を探してサーチを実行し得、最良近似は、予測ピクセルロケーション(仮定された初期状況に基づく)と観測ピクセルロケーションとの間の二乗距離和321を最小にするものであり得る。最適な初期状況を探すこのサーチは、任意の所望のアルゴリズムを使用して実行し得る。例えば、幾つかの状況では、二乗誤差321を最小にする推定初期状況への閉形式解が利用可能であり得る。1つ又は複数の実施形態では、数値最適化法を使用して、推定初期状況を見つけ得る。例えば、限定ではなく、反復的レベンバーグ−マーカートアルゴリズム等の非線形最小二乗ソルバを使用して、推定初期状況を見つけ得る。1つ又は複数の実施形態では、二乗距離の和以外の近似程度(closeness−of−fit)尺度を使用し得、任意のアルゴリズムを使用して、この尺度を最小にする(又は概ね最小にする)推定初期状況を見つけ得る。
【0027】
推定初期状況が計算された(例えば、観測ピクセルロケーションへの近い又は最適な近似を見つけるために)後、これらの初期状況を使用して投射物飛行の3D軌道を計算し得る。この3D近似は、カメラにより観測し得る飛行の初期期間ではなく、投射物の全飛行を包含し得る。
図4はこのプロセスを示す。
図3に関して説明したように、推定初期状況401が計算される。完全3D軌道の物理モデル402が計算又は取得される。この物理モデル402は、観測ピクセルロケーションへの初期状況の近似に使用された物理モデルと同じであってもよく、又は異なってもよく、例えば、初期状況を近似するための物理モデルは、所望の場合、近似手順を簡易化するために、特定の力を無視し得る。例示として、初期状況を特定するための物理モデルは、重力を含み得るが、抗力、ボールの回転、及びマグヌス力を無視し得、一方、完全3D軌道のモデルは抗力及び回転効果を組み込み得る(例えば、測定又は推定されたボールの回転を使用して)。次に、ステップ403は、初期状況401及び物理モデル402から完全3D軌道404を計算する。この軌道404は、投射物の放出状況411及び投射物の経時位置を提供する。1つ又は複数の尺度は3D軌道404から計算し得、例えば、飛距離412は、放出後且つポイント405において地面を打つ前に投射物が移動する水平距離として特定し得る。1つ又は複数の実施形態では、飛距離計算は、既知又は推定の地形を考慮に入れることもできる。1つ又は複数の実施形態は、例えば、限定ではなく、飛行時間、地面に衝突したときの速度、及び推定される転がり又は跳ね返り等の任意の他の所望の尺度を計算し得る。
【0028】
図3は、カメラ投射変換310をいかに使用して、3D点からピクセル座標にマッピングし得るかを示す。
図5は、1つ又は複数の実施形態において使用し得るカメラ投射変換を導出する手法を示す。カメラ投射変換は、例えば、世界系からカメラ系への変換と、カメラ系から画像フレームへの変換との組合せとして見ることができる。カメラ基準系503は、カメラ103への固定向きで定義し得る。例えば、カメラ基準系の原点はカメラアパーチャに配置し得、カメラ系軸y
cはカメラ画像平面に直交する。簡明にするために、世界基準系130も同じ原点に配置し得、それにより、カメラ系と世界系との間の変換は回転である。この世界系は、例えば、z
w軸が垂直上向き(重力の逆)を指した状態で定義し得る。世界系とカメラ系との間の回転504は、カメラの既知の、仮定された、又は測定された向きに基づいて特定し得る。例えば、1つ又は複数の実施形態では、カメラは1つ又は複数のセンサを有し得、これらのセンサからの測定値502を使用して変換504を導出し得る。センサは、例えば、限定ではなく、カメラに結合された3軸加速度計501を含み得る。(そのような加速度計は、例えば、カメラを有する携帯電話に含まれ得る)。加速度計501は、カメラ基準系において重力ベクトルを測定し得、この測定値を使用して、世界基準系の−z
c軸をこのカメラ系の重力ベクトルに回転させる回転504を導出し得る。カメラが磁力計等の他のセンサを有する場合、固定地球基準系に対するカメラの水平向きを導出することが可能であることもあり、その他の場合、世界基準系軸y
wは、例えば、世界水平面へのカメラy
c軸の投射と位置合わせされるように設定し得る。
【0029】
カメラ投射変換の導出は、カメラ基準系503から、カメラ103により捕捉されたフレーム110f等の画像における各点のピクセル座標を提供する画像系510への変換511の計算を含むこともできる。この変換511は、例えば、1つ又は複数のカメラパラメータ513に依存し得る。例えば、ピンホールカメラモデルを使用して、この変換511は変換512として表すことができ、変換512はカメラの1つのパラメータfに依存する。1つ又は複数の実施形態では、他のカメラパラメータを使用又は測定して、変換511を特定し得る。例えば、1つ又は複数の実施形態は、所望に応じてカメラ較正手順を実行して、カメラレンズにおける任意の不完全性又はピンホールモデル512からの他のずれを考慮し得る。
【0030】
ピンホールカメラモデル512を用いる場合、パラメータfは、カメラ仕様から取得し得、又は測定し得る。このパラメータを測定する一手法を
図5に示し、既知の物理的サイズの物体が、カメラから既知の距離において捕捉され、物体の画像のピクセル単位のサイズを使用して、カメラパラメータを特定し得る。
図5に示される例では、ゴルファー102の高さは521であることが既知であり、ゴルファー102からのカメラ103の距離は距離523として既知又は測定され、フレーム110fにおけるゴルファーの画像の高さは522である。これらの測定値を使用して、計算524によりカメラパラメータfを特定する。
【0031】
図6、
図7、及び
図8は、1つ又は複数の実施形態で使用し得る、カメラ画像における投射物のピクセル位置を見つける手法を示す。
図6はこのプロセスにおける初期ステップを示し、初期ステップは、カメラ画像フレームにおいて運動中の物体の位置を特定することである。例示的なカメラ画像フレーム601は、運動中のボールの画像610を含み、このカメラフレーム及び他のカメラフレームにおけるボールの位置を識別することが望ましい。2フレーム差分621をフレーム601及び先行フレームに適用して、運動中の物体を識別し得るが、その結果生成される差分画像602は運動中の物体を2回示す:前の位置(物体の移動元)において1回及び新しい位置(物体の移動先)において1回。3フレーム差分622を使用して、この曖昧性を解決し得る。例えば、カメラ画像フレーム数kがピクセルマップF
k(x,y)として表される場合、バイナリ2フレーム差分は、何らかの閾値Tについて、|F
k−1(x,y)−F
k(x,y)|>Tである場合、D
k−1,k(x,y)=1、その他の場合、0として定義し得る。次に、3フレームバイナリ差分D3
k(x,y)は、2つのフレーム差分D
k−1,k(x,y)及びD
k,k+1(x,y)に適用されるピクセル単位のAND演算子(「
*」として示される)として定義し得る:D3
k(x,y)=D
k−1,k(x,y)
*D
k,k+1(x,y)。3フレーム差分622を定義し計算するこの方法は例示的なものであり、1つ又は複数の実施形態は、カメラ画像における運動中の物体を識別する任意の所望の方法を使用し得る。
【0032】
図7は
図6の例の続きである。3フレーム差分603は運動中の物体を見つける。この例では、ボール(関心のある投射物)、バット、バッター、及び背景におけるトラック等の幾つかの運動中の物体が見える。3フレーム差分603は平滑化フィルタ711を用いて空間的に平滑化し得る。例えば、限定ではなく、フィルタ711は角窓の移動平均フィルタであり得、フィルタのサイズは、関心のある投射物(ここではボール)の予期される最大サイズに一致する。1つ又は複数の実施形態では、3フレーム差分及び空間平滑化は、効率を上げるために、低減した画像解画像度で実行し得る。画像701は、空間平滑化演算711後のダウンサンプリング画像を示す。
【0033】
投射物の候補位置を見つけるために、ステップ712を実行して、平滑化された(及び可能な場合にはダウンサンプリングされた)画像701における分離ピークを見つけ得る。特に、1つ又は複数の実施形態は以下のアルゴリズムを使用して、分離ピークを見つけ得る。
(1)フィルタリングされた値が検出閾値を超える全ての画像ロケーションを列挙し、値により降順にソートする。
(2)リストがからの場合、停止。
(3)リストから第1のロケーションを選択する。
(4)選択された値の何らかの距離内にあるリストからの全てのロケーションを削除する。
(5)ステップ(2)に戻る。
【0034】
画像702は、フィルタリングされた画像において検出された全ての分離ピークを示す。枠は、検出された運動中の物体にセンタリングされた移動平均フィルタを表す(計算効率のために、フィルタリングされた値は枠の左上隅に格納される)。
【0035】
図8は
図6及び
図7の例の続きである。候補投射物ロケーションが画像702において枠により示され、ここで、各枠の左上隅は可能な投射物ロケーションである。ステップ801はこれらの候補ロケーションをスキャンして、投射物の予期されるサイズ及び形状に一致する候補ロケーションを識別する。この例では、投射物は丸く(投射物はボールである)、したがって、サーチ801により、予期されるサイズの丸い物体を探す。丸い物体を見つけるのに使用し得る例示的な手法は、検出された各分離ピークに対して以下のステップを実行することである。
(1)かなりの大きさの枠を検出されたロケーションでセンタリングする。
(2)検出閾値を超える枠内の全てのピクセルを列挙する。
(3)それらのピクセルの重心を計算する。
(4)重心へのそれらのピクセルの平均距離を見つける。
(5)平均距離の1.5倍としてボールサイズを大まかに推定する。
(6)推定されたボールサイズ内にあるピクセルをカウントする。
(7)ステップ(2)からのピクセル数をボール面積で除算することにより、密度を推定する。
(8)密度が閾値(例えば、0.5)を超える検出を保持する。
【0036】
この手順の結果は画像の一部の拡大
図803と共に画像802に示される。802及び803における赤い枠及び円は、上記アルゴリズムにより拒絶された、検出されたロケーションを示し、1つの青い枠は、残っている検出されたボールを示す。拡大
図811では、赤い円811及び青い円812は、上記ステップ(3)、(4)、及び(5)を介して特定された円形エリアである。円812内の検出されたピクセルは、形状が所望の円形に一致するため、円形エリアを略埋めている。しかしながら、円811では、野球のバットの実際の形状は細長く円形ではないため、円内のピクセルは円形エリアの大部分を埋めておらず、したがって、この物体は投射物の候補として拒絶される。
【0037】
図8に示される例では、1つのみのロケーションが投射物ピクセルロケーションの候補として残る。幾つかの状況では、複数のロケーションが残り得、有効な投射物軌道を見つけ推定するために、フレームにわたるそれらの物体の追跡に基づいて、検出された物体を更にフィルタリングすることが望ましいことがある。予期される投射物軌道に一致しないトラックを有する物体(例えば、動きが速すぎる、遅すぎる、又は予期されない方向に移動している物体)は削除し得る。
【0038】
追跡をターゲティングする総当たり手法は、追跡する可能な物体として複数のフレームにわたり測定値の全ての可能な組合せを調べる。ソフトウェアでは、測定値の可能な組合せを扱う効率的な方法は、新しいあらゆるフレームで、可能なあらゆるトラックが、新しい測定値の数に可能な欠損検出を加算したものにより拡大するツリー様データ構造を使用することである。組合せの数は指数的に増大し、すぐに追跡不可能になり得る。例えば、あらゆるフレームで検出された2つの物体がある場合、わずか168フレーム(120Hzで1.4秒)後には(2+1)
168≒1×10
80個の可能な組合せがあり、これは概ね、既知の宇宙における原子の数である。問題を追跡可能に維持するために、マルチターゲット追跡における現状技術は、2段階手法を使用して、ツリーを積極的に刈り込む。通常、「ゲーティング」と呼ばれる第1の段階は、既存のトラックにはとても一致し得ない測定値を拒絶する。第2の段階において、トラッカーは現在フレームを含め、現在フレームまでの全ての情報を使用して、可能な各トラック及びバイナリリニアプログラミングソルバを「スコア付け」して、物体への測定値のK個の最良「割り当て」を見つける(Katta G.Murty,An algorithm for ranking all the assignments in order of increasing cost,Operations Research,Vol.16,No.3,pp.682−687,May−June,1968参照)。その時点で、K最良解に含まれない全ての分岐はツリーから刈り取られる。
【0039】
K最良解の発見はなお計算集約的であるため、単純なトラッカーは最適未満刈込み基準を使用し得る。例えば、「欲張り」トラッカーは、大きな曖昧性がある場合であっても、1つのみの測定値−最良近似を有するもの−の各フレームでの任意の特定のトラックの拡張を許し得る。比較的単純な運動学を有する1つの運動中の物体を追跡しているため、1つ又は複数の実施形態は、例えば、以下の欲張り追跡アルゴリズムを使用し得る。
(1)トラックの空集合Tで開始する。
(2)「保留中」トラックをnoneに設定する。
(3)移動中物体の集合Mを有する新しいフレームを取得する。
(4)M内の各運動中物体mについて:
(5)T内の各トラックtについて:
(6)mがtの有効な拡張であるように見える場合:
(7)運動中の物体mをトラックtに追加する新しいトラックを作成する。
(8)tが「成熟」トラックの基準を満たす場合、「使用済み」カウントをインクリメントする。
(9)「使用済み」カウントが何らかの閾値を満たす場合、ループから出る。
(10)mが「使用済み」ではない場合、測定値mのみを有する新しいトラックを開始する。
(11)T内の各トラックtについて:
(12)トラックtの欠損カウントをインクリメントする。
(13)欠損カウントが閾値を超える場合、
(14)Tからtを削除する。
(15)tで現在「保留中」トラックを置換すべきか否かを判断する。
(16)「保留中」トラックがタイムアウトする場合、軌道を推定し、報告し、noneにリセットする。
(17)ステップ7及び10からの全ての新しいトラックをTに追加し、測定値の降順数でTをソートする。
(18)ステップ3から繰り返す。
【0040】
物体は、ステップ6において有効な拡張のように見えるには、幾つかの「ゲート」を通過しなければならない。これらは、最小速度、最大速度、投射位置、推定ボールサイズ、及びボールの色を含む(が、これらに限定されない)。概念は、ゲートを計算効率的にし、有効な軌道のように見えない場合、可能な限り早く不合格にすることである。
【0041】
「成熟」トラックの基準は、例えば、測定値の最小数であり得る。この欲張りアルゴリズムは、測定値を最高でN個の成熟トラック(大半の欲張りトラッカーではN=1)に拡張できるようにし、任意の成熟トラックの拡張は、測定値が新しいトラックを形成するのを阻止する。このようにして、「未使用」測定値が可能な新しいトラックを開始できるようにし、拡張されない場合、これらは素早く刈り取られる。
【0042】
1つの運動中の物体(打たれたボール)のみに関心があるため、任意の曖昧性が解決された後に報告することになる1つの「保留中」トラックを追跡する。ステップ15において「保留中」トラックを置換する際、冗長性及び他の不要トラック(例えば、投球vs打球)をソートして除外する。ステップ16におけるトラック報告のタイムアウト時間は、例えば、約1秒であり得、これは、クラブのバックスイング、ダウンスイング、投げられたボール、又は他のトラックに伴って生じ得る曖昧性をソートして除外するのに十分な時間であり、且つ動作が完了した後にリアルタイムフィードバックを提供するのに十分に速い時間である。例示的な保留トラック置換戦略は以下である。
(1)検証基準(測定値の最小数、追跡された距離、速度、発射角、フィールド角等)に一致しないトラックを拒絶する。後の基準は、観測測定値からの3D軌道の推定を必要とする。
(2)任意のユーザ提供基準(例えば、初期ボール位置)に一致しないトラックを拒絶する。
(3)トラックが幾つかの測定値を共有する場合、最も多くの測定値を有するものを保持する。
(4)トラックが同じ方向(例えば、左から右)で運動中の異なる物体を表す場合、最も遠くまで追跡するものを選ぶ。
(5)トラックが異なる方向に運動中の物体を表す(例えば、投げてから打つ)場合、後のものを選ぶ。
【0043】
保留中のトラックを置換又は報告する前、まず、初期位置及び速度(速度、発射角、及びフィールド角)を含め、3D軌道を推定することが必要又は望ましいことがある。
【0044】
図9及び
図10は、例えば、ボールピクセルロケーションが
図6、
図7、及び
図8に関して説明したように識別されたと仮定して、観測ピクセルロケーションからのボールの初期状況及び3D軌道の計算の例を示す。カメラ103はフレーム910a、910b、910c、及び910dを捕捉し、各フレームは投射物の画像を含む。簡明にするために、この例では、カメラ103は水平を向くと仮定され、したがって、カメラ基準系901は世界基準系に一致する。
【0045】
1つの2Dカメラからの投射物の観測ピクセルロケーションから投射物初期状況を導出するために、1つ又は複数の制約を初期状況に課すことが必要であり得る。ピクセルロケーションは3D空間における一意の点を特定せず、その代わり、一筋の点を特定する。この曖昧性をなくするために、1つ又は複数の実施形態は、例えば、インパクト時における投射物のy座標(世界基準系における)等の1つの初期状況パラメータの値を固定し得る。このy座標は、投射物の飛行開始時におけるカメラと投射物との間の距離(水平面に沿った)を表し得る。例えば、限定ではなく、以下を含め、この距離の推定に1つ又は複数の手法を使用し得る。
1.距離を測定し提供するようにユーザに求める(例えば、カメラがボールの飛行路からどれくらい離れているか)。
2.画像表示にグリッド、枠、クラブ、バット、又は他のスケーリングされた物体を追加し、スケーリングされた物体が現実世界での既知の物体のサイズに一致するまで前方又は後方に移動させるようにユーザに求める。例えば、32インチ(81.28cm)バットを描画し、次にそれを実際の32インチ(81.28cm)バットと位置合わせする。ここでも、この距離は次に、続く動作の世界位置の計算に使用される。
3.画像において既知のサイズの物体を認識する(自動的に又はユーザからの支援を受けて)。例えば、ゴルフボール又は野球のボールの認識、画像におけるサイズの測定、及びゴルフボール又は野球のボールの既知のサイズとの比較により、距離を特定する。これは、準備プロセスの一環として静的に又はボールの飛行中、動的に行うことができる。
4.落下する物体の経路を測定することにより重力を使用し、画像座標における下加速度を計算し、重力の既知の加速度に一致するようにその加速度をスケーリングする。これは、重力の効果が視野内で観測可能であると仮定して、ユーザがボール又は他の物体を所望の距離において落とす準備ステップとして又はボール飛行中に動的に行うことができる。
5.二重カメラシステムを最新のスマートフォンデバイスに使用する。例えば、iPhone(登録商標) 7+から始まった、二重カメラシステムは、画像における物体に対応する距離マップを提供することができる。これは、準備ステップの一環として(例えば、画像においてボール又は他の物体を位置特定し、距離を覚えることにより)又はリアルタイム処理中(現在、高フレームレートで奥行き情報をサポートする既知のデバイスはないが)、実行し得る。
6.ARKit又は同様のAPIを使用して、画像から世界系へのマッピングを学習する。この手法は、ユーザが、3D世界モデルを確立するのに十分にカメラを移動させ、既知の距離における物体又はロケーションを識別する準備ステップの一環としてのみ実現可能である。例えば、この手法を使用して、カメラのXフィート前の地面に線を投影することができ、次に、ユーザはその線に画像における所望の発射位置と位置合わせすることができる。
7.複数のカメラを使用して、異なる視点から画像を取得する。
【0046】
図9の例では、カメラ103と投射物101との間の距離902は、上記方法の1つ又は複数を使用して取得される。幾つかの状況では、捕捉されたカメラ画像フレームの時間スケールと初期状況を同期させるために、投射物がカメラからこの距離にあるときを特定又は推定することが望ましいこともある。この初期時間は、例えば、ゴルフクラブで打たれる時間(
図9のように)又は野球のバットのような別の物体で打たれる時間等の投射物がインパクトを受ける時間であり得る。幾つかの場合、センサはインパクト(例えば、クラブのショックセンサ等)を測定し得、インパクト時間を知り得る。幾つかの場合、インパクト時間をカメラ画像から推定することが望ましいことがある。例えば、
図9では、フレーム910aは運動中の投射物が検出される最初のフレームであり得る。したがって、そのインパクト時間がフレーム910aに先行するフレーム911にあったと見積もることが妥当であり得る。幾つかの場合、カメラ画像の手動レビューを使用して、インパクト時間を含むか、又はインパクト時間に最も近いフレームを識別し得る。
【0047】
図9の例では、フレーム911はインパクトのフレームとして設定され、t=0のタイムスタンプ912が割り当てられる。例えば、カメラ103が毎秒60フレームでフレームを捕捉すると仮定すると、続くフレーム910a〜910dのタイムスタンプを計算し得る。時間912における初期状況920は5つの未知パラメータを含み、yパラメータ921は既知又は測定された距離902に設定される。この例では、インパクト後の初期期間にわたりボールに対して作用した力がないと仮定する単純な物理モデル922を使用する。この物理モデルは、世界基準系901において、各時間期間におけるボールの3D位置を提供する。次に、この位置は、カメラ投射変換512を介して画像座標510にマッピングされる。この例では、カメラパラメータ930は既知であると仮定されるか、又は測定される。
【0048】
フレーム910a〜910dにおける投射物の観測ピクセルロケーション940は、未知の初期状況920の関数である予測ピクセルロケーション941と比較される。非線形最小二乗ソルバ943を使用して、観測ピクセルロケーション940と予測ピクセルロケーション941との間の二乗誤差942の和を最小にする。このソルバ943は、誤差942を最小にする初期状況920の値を特定する。
【0049】
この手順の結果を
図10に示す。非線形最小二乗ソルバ943により計算された初期状況1001は、二乗誤差942を最小にする。これらの初期状況を用いて、物理モデル922はボールの3D軌道1002を生成する。(視覚化のために、水平面への軌道位置の投射も示される)。カメラ位置1003も示される。ボールの軌道がカメラに向かって傾斜することが明かである。カメラ投射変換512は、3D軌道1002をフレーム910dにおける予測位置1004等の予測ピクセルロケーション(青で示される)にマッピングし、観測ピクセルロケーションと予測ピクセルロケーションとの密な近似を示す。
【0050】
1つ又は複数の実施形態は、複数のカメラを使用し得、これらの複数のカメラからの投射物の画像を解析することにより3D投射物軌道を導出し得る。各カメラは異なる角度から投射物を見て、それ自体の画像フレームにおけるボールロケーションの測定値を提供する。例えば、1つ又は複数の「スレーブ」カメラは、1つの「マスタ」カメラ(又は別の座標系)と測定値を共有し得、マスタカメラは全ての測定値を一緒にして、ジョイント測定ベクトルを生成する。
【0051】
上述したように、各カメラは、1つのスケールファクタ(初期ボール位置へのカメラの位置に基づく)を除き、完全な3D軌道を特定することができる。仮に1つのカメラからの距離を知ることができるならば、ボールの実際速度が分かるとともに、他のカメラへの距離も分かるであろう。カメラが何台であろうとも関係なく、1つの未知のスケールファクタ(ジオメトリ全体を「ズーム」イン又は「ズーム」アウトすることができ、全ての測定値は同じままである)を有する。必要なのは、未知数を解くためのあと1つのパラメータだけである。ボールへの距離を知る必要がある単一カメラの場合とは異なり、ここでは、固定されたカメラのうちの任意の2つ間の相対距離を使用することができる。この距離は、例えば、カメラのGPS位置から導出することができ(必要なのは相対位置だけであり、相対位置は絶対位置よりもはるかに正確である)、又はユーザにより提供された任意の2つのカメラ間の測定された距離であることができる。
【0052】
マルチカメラ問題を解くために、まず、任意の測定された又はユーザ提供のカメラ位置情報(例えば、全てのカメラのGPS位置)を含むように測定ベクトルを拡張し得る。次に、ボールの初期位置及び速度、各スレーブカメラの時間バイアス、及び任意の残りのカメラの位置情報(例えば、マスタに対する各スレーブカメラの未知の向き)を含め、残りの未知数で状態ベクトルを拡張し得る。全ての状態空間パラメータの大まかな初期推定を生の測定値から計算することができる。次に、アルゴリズムは反復して、目的関数を最小にする状態ベクトルを見つける。状態空間を完全に観測可能にするために必要なのは、測定関数への1つのスケールファクタ制約だけである。
【0053】
本明細書に開示された本発明について具体的な実施形態及び用途により説明したが、特許請求の範囲に記載される本発明の範囲から逸脱せずに、当業者により多くの変更及び変形を行うことが可能である。