(57)【特許請求の範囲】
【請求項１】
カメラ視野を有するカメラと通信するように構成された通信インターフェースと、
制御回路と、を備え、
前記制御回路は、前記カメラが、前記カメラ視野内にキャリブレーションパターンに対するキャリブレーション画像を生成したとき、かつ前記キャリブレーションパターンが、パターン座標系の中にそれぞれの定義されたパターン要素座標を有する複数のパターン要素を含むとき、
前記キャリブレーション画像を受け取ることであって、前記キャリブレーション画像は、前記キャリブレーションパターンを表す画像であることと、
前記複数のパターン要素が前記キャリブレーション画像の中に現れるそれぞれの位置を表すための、複数の画像座標を決定することと、
前記複数の画像座標及び前記定義されたパターン要素座標に基づいて、前記カメラと関連付けられるレンズ歪みを記述する、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定することであって、前記レンズ歪みパラメーターの集合は、前記第一のレンズ歪みパラメーターと、第二のレンズ歪みパラメーターと、第三のレンズ歪みパラメーターと、第四のレンズ歪みパラメーターと、を含み、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第三のレンズ歪みパラメーターはすべて、放射状のレンズ歪みを記述し、前記第四のレンズ歪みパラメーターは、接線方向のレンズ歪みを記述し、前記第一のレンズ歪みパラメーターに対する前記推定値は、前記レンズ歪みパラメーターの集合の他の全てのレンズ歪みパラメーターをゼロと推定すると同時に決定されるか、又は前記レンズ歪みパラメーターの集合のうちの他の任意のレンズ歪みパラメーターを推定することなく決定されることと、
前記第一のレンズ歪みパラメーターの前記推定値を決定した後に、前記第三のレンズ歪みパラメーターをゼロと推定すると同時に、又は、前記第三のレンズ歪みパラメーターを推定することなく、前記第一のレンズ歪みパラメーターに対する前記推定値に基づいて、前記第二のレンズ歪みパラメーターに対する推定値と、前記第四のレンズ歪みパラメーターに対する推定値とを決定することであって、前記第三のレンズ歪みパラメーターは、前記第一のレンズ歪みパラメーター及び前記第二のレンズ歪みパラメーターによって表される放射状多項式成分よりも高次の放射状多項式成分を記述することと、
前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値を決定した後に、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値に基づいて、前記第三のレンズ歪みパラメーターに対する推定値を決定することと、
前記レンズ歪みパラメーターの集合に対するそれぞれの推定値を含むカメラキャリブレーション情報を決定することであって、前記レンズ歪みパラメーターの集合に対する前記それぞれの推定値は、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター、前記第三のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値を含むか、又はそれらに基づくことと、
によってカメラキャリブレーションを実施するように構成され、
前記制御回路は、前記通信インターフェースが前記カメラ及びロボットと通信するときに、
前記カメラキャリブレーションが実施された後に、前記カメラによって生成された後続する画像を受け取ることと、
ロボット移動を制御するための移動コマンドを生成することと、をさらに行うように構成され、
前記移動コマンドは、前記後続する画像に基づき、かつ前記カメラキャリブレーション情報に基づいている、計算システム。
【請求項２】
前記レンズ歪みパラメーターの集合は、前記カメラと関連付けられる放射状のレンズ歪みのモデルの一部である、複数のそれぞれの放射状多項式成分を記述する、複数のレンズ歪みパラメーターを含み、
前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第三のレンズ歪みパラメーターは、前記複数のレンズ歪みパラメーターの部分であると共に、前記第一のレンズ歪みパラメーターは、前記複数のそれぞれの放射状多項式成分の中で放射状の最低次多項式成分を記述する、請求項１に記載の計算システム。
【請求項３】
前記第三のレンズ歪みパラメーターは、前記複数のそれぞれの放射状多項式成分の中で放射状の最高次多項式成分を記述する、請求項２に記載の計算システム。
【請求項４】
前記第一のレンズ歪みパラメーターに対する前記推定値は、前記第一のレンズ歪みパラメーターの第一の推定値であると共に、第一のカメラキャリブレーション段階中に決定され、
前記第二のレンズ歪みパラメーターに対する前記推定値は、前記第一のカメラキャリブレーション段階に続く、後続するカメラキャリブレーション段階中に決定され、
前記制御回路は、前記後続するカメラキャリブレーション段階中に、
前記第三のレンズ歪みパラメーターをゼロと推定すると同時に、又は、前記第三のレンズ歪みパラメーターを推定することなく、前記第一のレンズ歪みパラメーターの第二の推定値を決定するように構成され、
前記制御回路は、前記第一のレンズ歪みパラメーターの前記第二の推定値を決定した後、前記第一のレンズ歪みパラメーターの前記第二の推定値に基づいて、前記第三のレンズ歪みパラメーターに対する前記推定値を決定するように構成されている、請求項３に記載の計算システム。
【請求項５】
前記カメラキャリブレーション情報は、前記カメラと関連付けられるカメラ画像の射影を記述する射影パラメーターの集合を記述し、
前記制御回路は、
前記射影パラメーターの集合に対するそれぞれの推定値を決定することと、
前記第一のレンズ歪みパラメーターに対する前記推定値、及び前記第二のレンズ歪みパラメーターに対する前記推定値を決定した後、前記射影パラメーターの集合に対する前記それぞれの推定値に基づいて、前記第一のレンズ歪みパラメーターに対する更新された推定値、及び前記第二のレンズ歪みパラメーターに対する更新された推定値を決定することと、を行うように構成され、
前記第一のレンズ歪みパラメーターに対する前記更新された推定値、及び前記第二のレンズ歪みパラメーターに対する前記更新された推定値は、前記射影パラメーターの集合が前記射影パラメーターの集合の前記それぞれの推定値に値を固定されると同時に、決定される、請求項１に記載の計算システム。
【請求項６】
前記第一のレンズ歪みパラメーターの前記更新された推定値及び前記第二のレンズ歪みパラメーターの前記更新された推定値は、湾曲減少段階によって決定され、
前記湾曲減少段階では、前記制御回路が、
（ａ）前記湾曲減少段階中に、前記第一のレンズ歪みパラメーターの前記推定値に基づいて、かつ、前記第二のレンズ歪みパラメーターの前記推定値に基づいて、前記第一のレンズ歪みパラメーターに対する初期推定値及び前記第二のレンズ歪みパラメーターに対する初期推定値を決定することと、
（ｂ）前記第一のレンズ歪みパラメーターの前記初期推定値、前記第二のレンズ歪みパラメーターの前記初期推定値、及び前記キャリブレーション画像に基づいて、前記カメラと関連付けられる前記レンズ歪みを補償する、前記キャリブレーション画像の変更されたバージョンを生成することと、
（ｃ）前記キャリブレーション画像の前記変更されたバージョンの中で、湾曲の量を決定することと、
（ｄ）前記湾曲の量を減少させる、前記第一のレンズ歪みパラメーターに対する調整された推定値及び前記第二のレンズ歪みパラメーターに対する調整された推定値を生成するために、前記キャリブレーション画像の前記変更されたバージョンの中の前記湾曲の量に基づいて、前記第一のレンズ歪みパラメーターの前記初期推定値及び前記第二のレンズ歪みパラメーターの前記初期推定値を調整することであって、前記第一のレンズ歪みパラメーターに対する前記調整された推定値は、前記第一のレンズ歪みパラメーターの前記更新された推定値であり、前記第二のレンズ歪みパラメーターに対する前記調整された推定値は、前記第二のレンズ歪みパラメーターの前記更新された推定値であることと、
を実施するように構成され、
前記制御回路は、前記第一のレンズ歪みパラメーターの前記更新された推定値及び前記第二のレンズ歪みパラメーターの前記更新された推定値に基づいて、前記カメラキャリブレーション情報を決定するように構成される、請求項５に記載の計算システム。
【請求項７】
前記第三のレンズ歪みパラメーターの前記推定値は、前記第一のレンズ歪みパラメーターに対する前記更新された推定値及び前記第二のレンズ歪みパラメーターに対する前記更新された推定値と共に、前記湾曲減少段階で決定され、
前記制御回路は、前記第一のレンズ歪みパラメーターの前記更新された推定値及び前記第二のレンズ歪みパラメーターの前記更新された推定値が決定された後、値として前記第三のレンズ歪みパラメーターの前記推定値を当該推定値に固定すると同時に、前記第一のレンズ歪みパラメーターの前記更新された推定値、前記第二のレンズ歪みパラメーターの前記更新された推定値、及び前記第三のレンズ歪みパラメーターの前記推定値に基づいて、前記射影パラメーターの集合に対するそれぞれの更新された推定値を決定するように構成される、請求項６に記載する計算システム。
【請求項８】
前記制御回路は、
（ａ）前記第一のレンズ歪みパラメーターの前記推定値に基づいて、かつ前記第二のレンズ歪みパラメーターの前記推定値に基づいて、前記第一のレンズ歪みパラメーターに対する更新された推定値を決定し、
（ｂ）前記第一のレンズ歪みパラメーターに対する前記更新された推定値に基づいて、前記第三のレンズ歪みパラメーターに対する更新された推定値と、前記第四のレンズ歪みパラメーターに対する更新された推定値と、を決定するように構成され、
前記第三のレンズ歪みパラメーターに対する前記更新された推定値及び前記第四のレンズ歪みパラメーターに対する前記更新された推定値は、前記第一のレンズ歪みパラメーターを、値として前記第一のレンズ歪みパラメーターの前記更新された推定値に固定すると同時に決定される、請求項１に記載する計算システム。
【請求項９】
前記通信インターフェースが通信するように構成される前記カメラは、第一のカメラであり、前記キャリブレーション画像は、第一のキャリブレーション画像であり、前記カメラ視野は、第一のカメラ視野であり、前記通信インターフェースは更に、第二のカメラ視野を有する第二のカメラと通信するように構成され、
前記制御回路は、前記キャリブレーションパターンが、前記第一のカメラ視野内及び前記第二のカメラ視野内にあるか、又は前記第一のカメラ視野内及び前記第二のカメラ視野内にあったときに、
前記キャリブレーションパターンを表す第二の画像でありかつ前記第二のカメラによって生成される第二のキャリブレーション画像を受け取ることと、
前記第一のカメラと前記第二のカメラとの空間関係を記述するための変換関数の推定値を決定することと、
前記第一のキャリブレーション画像に基づいて、前記第一のカメラに対する前記複数の前記パターン要素のそれぞれの位置を記述する第一の複数の座標を決定することと、
前記第二のキャリブレーション画像に基づいて、前記第二のカメラに対する前記複数の前記パターン要素のそれぞれの位置を記述する第二の複数の座標を決定することと、
前記変換関数の前記推定値に基づいて、前記第二の複数の座標を、前記第一のカメラに対する複数の変換された座標に変換することと、
前記第一の複数の座標と前記複数の変換された座標とのそれぞれの差異を記述する誤差パラメーター値を決定することと、
前記誤差パラメーター値に基づいて、前記変換関数の前記推定値を更新して、前記変換関数の更新された推定値を生成することと、
を行うように構成される、請求項１に記載の計算システム。
【請求項１０】
前記第一の複数の座標は、前記複数のパターン要素が前記第一のキャリブレーション画像の中に現れるそれぞれの位置を表す、前記複数のそれぞれの画像座標であり、
前記複数の変換された座標は、前記複数のパターン要素を表す、更なる複数のそれぞれの画像座標であり、
前記制御回路は、前記第一のカメラに対するキャリブレーションを記述するための前記カメラキャリブレーション情報に基づいて、前記更なる複数のそれぞれの画像座標を決定するように構成される、請求項９に記載の計算システム。
【請求項１１】
前記第一の複数の座標は、前記第一のカメラに対する座標系である第一のカメラ座標系における、前記パターン要素に対する複数の３Ｄ座標であり、
前記複数の変換された座標は、前記第一のカメラ座標系における、前記パターン要素に対する更なる複数の３Ｄ座標である、請求項９に記載の計算システム。
【請求項１２】
前記誤差パラメーター値は、前記第一の複数の３Ｄ座標と前記更なる複数の３Ｄ座標との間のそれぞれの距離を表す値に基づいている、請求項１１に記載の計算システム。
【請求項１３】
前記誤差パラメーター値は、前記第一のカメラと関連付けられる位置から延びる仮想線のそれぞれの対の間に形成される、それぞれの角度を表す値に基づき、
前記仮想線のそれぞれの対の各々は、前記第一の複数の３Ｄ座標のそれぞれの３Ｄ座標へ延びるそれぞれの第一の仮想線と、前記更なる複数の３Ｄ座標のそれぞれの３Ｄ座標へ延びるそれぞれの第二の仮想線と、を有する、請求項１１に記載の計算システム。
【請求項１４】
非一時的コンピューター可読媒体であって、計算システムの制御回路によって実行されるとき、前記制御回路に、
キャリブレーション画像を受け取ることであって、前記キャリブレーション画像は、前記非一時的コンピューター可読媒体から、又は前記計算システムの通信インターフェースを介して受け取られ、前記通信インターフェースは、カメラ視野を有するカメラと通信するように構成され、前記キャリブレーション画像は、キャリブレーションパターンが前記カメラ視野内にあるときに、前記カメラによって生成され、前記キャリブレーション画像は、前記キャリブレーションパターンを表す画像であり、前記キャリブレーションパターンは、パターン座標系の中にそれぞれの定義されたパターン要素座標を有する複数のパターン要素を有することと、
前記複数のパターン要素が前記キャリブレーション画像の中に現れるそれぞれの位置を表すための複数の画像座標を決定することと、
前記複数の画像座標及び前記定義されたパターン要素座標に基づいて、前記カメラと関連付けられるレンズ歪みを記述する、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定することであって、前記レンズ歪みパラメーターの集合は、前記第一のレンズ歪みパラメーターと、第二のレンズ歪みパラメーターと、第三のレンズ歪みパラメーターと、第四のレンズ歪みパラメーターと、を含み、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第三のレンズ歪みパラメーターはすべて、放射状のレンズ歪みを記述し、前記第四のレンズ歪みパラメーターは、接線方向のレンズ歪みを記述し、前記第一のレンズ歪みパラメーターに対する前記推定値は、前記レンズ歪みパラメーターの集合の他の全てのレンズ歪みパラメーターをゼロと推定すると同時に決定されるか、又は前記レンズ歪みパラメーターの集合のうちの他の任意のレンズ歪みパラメーターを推定することなく決定されることと、
前記第一のレンズ歪みパラメーターの前記推定値を決定した後に、前記第三のレンズ歪みパラメーターをゼロと推定すると同時に、又は、前記第三のレンズ歪みパラメーターを推定することなく、前記第一のレンズ歪みパラメーターに対する前記推定値に基づいて、前記第二のレンズ歪みパラメーターに対する推定値と、前記第四のレンズ歪みパラメーターに対する推定値とを決定することであって、前記第三のレンズ歪みパラメーターは、前記第一のレンズ歪みパラメーター及び前記第二のレンズ歪みパラメーターによって表される放射状多項式成分よりも高次の放射状多項式成分を記述することと、
前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値を決定した後に、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値に基づいて、前記第三のレンズ歪みパラメーターに対する推定値を決定することと、
前記レンズ歪みパラメーターの集合に対するそれぞれの推定値を含むカメラキャリブレーション情報を決定することであって、前記レンズ歪みパラメーターの集合に対する前記それぞれの推定値は、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター、前記第三のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値を含むか、又はそれらに基づくことと、
を行わせる命令を有し、
前記命令は、前記制御回路によって実行されるとき、かつ前記通信インターフェースが前記カメラ及びロボットと通信するとき、
前記カメラキャリブレーション情報が決定された後に、前記カメラによって生成された後続する画像を受け取ることと、
ロボット移動を制御するための移動コマンドを生成することと、を前記制御回路にさらに行わせ、
前記移動コマンドは、前記後続する画像に基づき、かつ前記カメラキャリブレーション情報に基づいている、非一時的コンピューター可読媒体。
【請求項１５】
カメラキャリブレーションのために計算システムによって実施される方法であって、
前記計算システムによってキャリブレーション画像を受け取ることであって、前記計算システムは、カメラ視野を有するカメラと通信するように構成される通信インターフェースを含み、前記キャリブレーション画像は、キャリブレーションパターンが前記カメラ視野内にあるときに、前記カメラによって生成され、前記キャリブレーション画像は、前記キャリブレーションパターンを表す画像であり、前記キャリブレーションパターンは、パターン座標系の中にそれぞれの定義されたパターン要素座標を有する複数のパターン要素を含むことと、
前記複数のパターン要素が前記キャリブレーション画像の中に現れるそれぞれの位置を表すための、複数の画像座標を決定することと、
前記複数の画像座標及び前記定義されたパターン要素座標に基づいて、前記カメラと関連付けられるレンズ歪みを記述する、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定することであって、前記レンズ歪みパラメーターの集合は、前記第一のレンズ歪みパラメーターと、第二のレンズ歪みパラメーターと、第三のレンズ歪みパラメーターと、第四のレンズ歪みパラメーターと、を含み、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第三のレンズ歪みパラメーターはすべて、放射状のレンズ歪みを記述し、前記第四のレンズ歪みパラメーターは、接線方向のレンズ歪みを記述し、前記第一のレンズ歪みパラメーターに対する前記推定値は、前記レンズ歪みパラメーターの集合の他の全てのレンズ歪みパラメーターをゼロと推定すると同時に決定されるか、又は前記レンズ歪みパラメーターの集合のうちの他の任意のレンズ歪みパラメーターを推定することなく決定されることと、
前記第一のレンズ歪みパラメーターの前記推定値を決定した後に、前記第三のレンズ歪みパラメーターをゼロと推定すると同時に、又は、前記第三のレンズ歪みパラメーターを推定することなく、前記第一のレンズ歪みパラメーターに対する前記推定値に基づいて、前記第二のレンズ歪みパラメーターに対する推定値と、前記第四のレンズ歪みパラメーターに対する推定値とを決定することであって、前記第三のレンズ歪みパラメーターは、前記第一のレンズ歪みパラメーター及び前記第二のレンズ歪みパラメーターによって表される放射状多項式成分よりも高次の放射状多項式成分を記述することと、
前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値を決定した後に、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値に基づいて、前記第三のレンズ歪みパラメーターに対する推定値を決定することと、
前記レンズ歪みパラメーターの集合に対するそれぞれの推定値を含むカメラキャリブレーション情報を決定することであって、前記レンズ歪みパラメーターの集合に対する前記それぞれの推定値は、前記第一のレンズ歪みパラメーター、前記第二のレンズ歪みパラメーター、前記第三のレンズ歪みパラメーター及び前記第四のレンズ歪みパラメーターに対するそれぞれの前記推定値を含むか、又はそれらに基づくことと、
前記カメラキャリブレーション情報が決定された後に、前記カメラによって生成される後続する画像を受け取ることと、
ロボット移動を制御するための移動コマンドを生成することであって、前記移動コマンドは、前記後続する画像に基づき、かつ前記カメラキャリブレーション情報に基づいていることと、を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、「Ａ  Ｒｏｂｏｔｉｃ  Ｓｙｓｔｅｍ  ｗｉｔｈ  Ｃａｌｉｂｒａｔｉｏｎ  Ｍｅｃｈａｎｉｓｍ」と題する、２０２０年２月４日出願の米国仮特許出願第６２／９６９，６７３号の優先権を主張し、その全体の内容は、参照によりその全体を本明細書に組み込まれる。
【０００２】
本発明は、自動カメラキャリブレーションを実施する方法及びシステムを対象とする。
【背景技術】
【０００３】
自動化がより一般的になるに従い、倉庫保管及び製造環境等、より多くの環境においてロボットが使用されている。例えば、ロボットは、倉庫において物品をパレットに積むか若しくはパレットから降ろすために、又は、工場においてコンベヤベルトから物体を拾い上げるために使用される場合がある。ロボットの移動は、一定である場合があり、又は、倉庫若しくは工場においてカメラによって撮影される画像等の入力に基づく場合がある。後者の状況では、カメラの特性を決定するために、かつ、カメラとロボットが位置する環境との関係を決定するために、キャリブレーションが行われる場合がある。キャリブレーションは、カメラキャリブレーションと呼ばれる場合があり、カメラによって取り込まれた画像に基づいてロボットを制御するように使用される、カメラキャリブレーション情報を生成することができる。幾つかの実施態様では、カメラキャリブレーションは、カメラの特性を手動で決定する等、人による手動操作を伴う場合がある。
【発明の概要】
【０００４】
本明細書における実施形態の一態様は、計算システム、計算システムによって実施される方法、又は計算システムに方法を実施させるための命令を有する、非一時的コンピューター可読媒体に関する。計算システムは、カメラ視野を有するカメラと通信するように構成された通信インターフェースを備えてもよく、制御回路を備えることができる。制御回路によって、カメラが、カメラ視野内にキャリブレーションパターンに対するキャリブレーション画像を生成したとき、かつキャリブレーションパターンが、パターン座標系の中にそれぞれの定義されたパターン要素座標を有する複数のパターン要素を含むとき、方法を実行することができる。より具体的には、制御回路によって、キャリブレーション画像を受け取ることと、複数のパターン要素がキャリブレーション画像の中に現れるそれぞれの位置を表すための、複数の画像座標を決定することと、複数の画像座標及び定義されたパターン要素座標に基づいて、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定することであって、第一のレンズ歪みパラメーターに対する推定値は、レンズ歪みパラメーターの集合のうちの第二のレンズ歪みパラメーターをゼロと推定すると同時に決定されるか、又は第二のレンズ歪みパラメーターを推定することなく決定されることと、第一のレンズ歪みパラメーターの推定値を決定した後に、第一のレンズ歪みパラメーターに対する推定値に基づいて、第二のレンズ歪みパラメーターに対する推定値を決定することと、レンズ歪みパラメーターの集合に対するそれぞれの推定値を含むカメラキャリブレーション情報を決定することとにより、カメラキャリブレーションを実施することができる。
【０００５】
本明細書における実施形態の一態様は、計算システム、計算システムによって実施される方法、又は計算システムに方法を実施させるための命令を有する非一時的コンピューター可読媒体に関係することに関する。計算システムは、第一のカメラ視野を有する第一のカメラ、及び第二のカメラ視野を有する第二のカメラと通信するように構成された通信インターフェースを備えることができ、制御回路を備える。制御回路によって、複数のパターン要素を有するキャリブレーションパターンが、第一のカメラ視野内及び第二のカメラ視野内にあるか、又は第一のカメラ視野内及び第二のカメラ視野内にあったとき、かつ第一のカメラが、キャリブレーションパターンに対する第一のキャリブレーション画像を生成し、第二のカメラが、キャリブレーションパターンに対する第二のキャリブレーション画像を生成したとき、方法を実施することができる。より具体的には、制御回路によって、以下、第一のキャリブレーション画像を受け取ること、第二のキャリブレーション画像を受け取ること、第一のカメラと第二のカメラとの空間関係を記述するための変換関数の推定値を決定すること、第一のキャリブレーション画像に基づいて、第一のカメラに対する、複数のパターン要素のそれぞれの位置を記述する第一の複数の座標を決定すること、第二のキャリブレーション画像に基づいて、第二のカメラに対する、複数のパターン要素のそれぞれの位置を記述する第二の複数の座標を決定すること、変換関数の推定値に基づいて、第二の複数の座標を第一のカメラに対する複数の変換された座標に変換すること、第一の複数の座標と複数の変換された座標とのそれぞれの差異を記述する誤差パラメーター値を決定することを実施することができる。
【図面の簡単な説明】
【０００６】
本発明の上述及び他の特徴、目的、並びに利点は、添付の図面に示すような本明細書の実施形態の以下の記述から明らかであろう。本明細書に組み込まれ、本明細書の一部を形成する、添付の図面は更に、本発明の原理を説明し、当業者が本発明を実施及び使用することを可能にする役割を果たす。図面は一定の縮尺ではない。
【０００７】
【図１Ａ】本明細書の実施形態による、カメラキャリブレーションが実施されるシステムのブロック図を示す。
【図１Ｂ】本明細書の実施形態による、カメラキャリブレーションが実施されるシステムのブロック図を示す。
【図１Ｃ】本明細書の実施形態による、カメラキャリブレーションが実施されるシステムのブロック図を示す。
【０００８】
【図２】本明細書の実施形態による、カメラキャリブレーション情報を決定するための計算システムを示す。
【０００９】
【図３Ａ】本明細書の実施形態による、カメラキャリブレーションに関与するカメラのモデルを示す。
【図３Ｂ】本明細書の実施形態による、カメラキャリブレーションに関与するカメラのモデルを示す。
【００１０】
【図４Ａ】本明細書の実施形態による、カメラキャリブレーションが実施されるシステム例を示す。
【図４Ｂ】本明細書の実施形態による、カメラキャリブレーションが実施されるシステム例を示す。
【００１１】
【図４Ｃ】本明細書の実施形態による、キャリブレーションパターンの例を示す。
【００１２】
【図５】本明細書の実施形態による、固有カメラキャリブレーションパラメーターを推定するための方法を示す、フロー図を提供する。
【００１３】
【図６Ａ】本明細書の実施形態による、キャリブレーション画像例を示す。
【図６Ｂ】本明細書の実施形態による、キャリブレーション画像例を示す。
【図６Ｃ】本明細書の実施形態による、キャリブレーション画像例を示す。
【図６Ｄ】本明細書の実施形態による、キャリブレーション画像例を示す。
【図６Ｅ】本明細書の実施形態による、キャリブレーション画像例を示す。
【００１４】
【図７Ａ】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【図７Ｂ】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【００１５】
【図８】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【００１６】
【図９Ａ】本明細書の実施形態による、湾曲減少段階を含む複数の段階を有する、パイプライン例を示す。
【図９Ｂ】本明細書の実施形態による、湾曲減少段階を含む複数の段階を有する、パイプライン例を示す。
【図９Ｃ】本明細書の実施形態による、湾曲減少段階を含む複数の段階を有する、パイプライン例を示す。
【００１７】
【図１０】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【図１１】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【００１８】
【図１２Ａ】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【図１２Ｂ】本明細書の実施形態による、カメラキャリブレーションパラメーターを推定するために、複数の段階を有するパイプライン例を示す。
【００１９】
【図１３Ａ】本明細書の実施形態による、ステレオキャリブレーションを実施するためのシステム例を示す。
【図１３Ｂ】本明細書の実施形態による、ステレオキャリブレーションを実施するためのシステム例を示す。
【００２０】
【図１４】本明細書の実施形態による、ステレオキャリブレーション情報を決定するための方法を示す、フロー図を示す。
【００２１】
【図１５Ａ】本明細書の実施形態による、キャリブレーション画像例を示す。
【図１５Ｂ】本明細書の実施形態による、キャリブレーション画像例を示す。
【００２２】
【図１６Ａ】本明細書の実施形態による、変換関数の推定値から決定される変換された座標の例を示す。
【図１６Ｂ】本明細書の実施形態による、変換関数の推定値から決定される変換された座標の例を示す。
【００２３】
【図１７Ａ】本明細書の実施形態による、再投影誤差又は再構成誤差を決定する例を示す。
【図１７Ｂ】本明細書の実施形態による、再投影誤差又は再構成誤差を決定する例を示す。
【図１７Ｃ】本明細書の実施形態による、再投影誤差又は再構成誤差を決定する例を示す。
【図１７Ｄ】本明細書の実施形態による、再投影誤差又は再構成誤差を決定する例を示す。
【００２４】
【図１８Ａ】本明細書の実施形態による、再構成誤差角度を決定する例を示す。
【図１８Ｂ】本明細書の実施形態による、再構成誤差角度を決定する例を示す。
【図１８Ｃ】本明細書の実施形態による、再構成誤差角度を決定する例を示す。
【図１８Ｄ】本明細書の実施形態による、再構成誤差角度を決定する例を示す。
【発明を実施するための形態】
【００２５】
以下の発明を実施するための形態は、本質的に単に例示のものであり、本発明又は本発明の用途及び使用を限定することを意図するものではない。更に、前出の技術分野、背景技術、発明の概要又は以下の発明を実施するための形態において提示される、いかなる明示された又は暗示された理論によっても限定する意図はない。
【００２６】
本出願の一態様は、固有カメラキャリブレーション等、カメラキャリブレーションの精度を向上させることに関する。一実施形態では、固有カメラキャリブレーションは、レンズ歪みパラメーター及び／又は射影パラメーターに対して、それぞれの推定値を決定することを含むことができる。幾つかの実施態様では、カメラキャリブレーション動作に対する全てのレンズ歪みパラメーターを、単一の段階で推定することができる。しかしながら、レンズ歪みによって導入される非線形性が複雑で、正確に概算することが困難である場合があるため、単一の段階でレンズ歪みパラメーターに対してそれぞれの推定値を決定することによって、こうした推定値の精度が低減することがある。したがって、本出願の一態様は、複数の段階（複数ラウンドとも呼ばれる）でのレンズ歪みパラメーターの推定に関する。
【００２７】
場合により、複数の段階は、一連の段階として配置することができ、一つの段階によって出力される推定値は、次の段階の初期推定値又は他の入力として使用することができる。場合により、複数の段階のうちの一つ以上で、カメラキャリブレーションに使用されるレンズ歪みモデル（及び／又は射影モデル）に、単純化を適用することができる。例えば、複数の段階のうちの第一の段階で、幾つかのレンズ歪みパラメーターは、ごくわずかな影響を及ぼすが、その段階でこうしたレンズ歪みパラメーターをゼロに設定することによって、又は単純化された歪み関数を使用することによって等、その段階で無視できると想定することができる。場合により、複数の段階のうちのより早期の段階で、より単純なレンズ歪みモデルを使用して、例えば、レンズ歪みの大部分又は大きな成分を考慮する、レンズ歪みパラメーターの推定に集中することができ、より後期の段階で、レンズ歪みモデルの複雑性を増大して、レンズ歪みの残りの部分を考慮することができる、より多くのレンズ歪みパラメーターを推定することができる。場合により、より後期の段階で、他のカメラキャリブレーションパラメーター（例えば、他のレンズ歪みパラメーター）に対する、それぞれの推定値の更新に集中するために、特定のカメラキャリブレーションパラメーター（例えば、レンズ歪みパラメーター又は射影パラメーター）の値を固定することができる。
【００２８】
本出願の一態様は、ステレオカメラキャリブレーションの精度を向上させること、より具体的には、ステレオカメラキャリブレーションの誤差の量を特徴付ける誤差パラメーター値を決定し、誤差パラメーター値を減少させることによって、ステレオカメラキャリブレーションの精度を向上させることに関する。場合により、ステレオカメラキャリブレーションの実施には、第一のカメラと第二のカメラとの空間関係を記述する、変換関数の推定値を決定することを含むことができる。こうした場合、誤差パラメーター値は、変換関数の推定値に対して決定することができる。一実施形態では、変換関数を使用して、複数の変換された座標を決定することができ、これを別の複数の座標と比較して、誤差パラメーター値を決定することができる。より詳細に後述するように、誤差パラメーター値は、再投影誤差、再構成誤差、再構成誤差角度及び／又は他の何らかの誤差パラメーター値を含むことができる。
【００２９】
図１Ａは、自動カメラキャリブレーションを実施するための、システム１００のブロック図を示す。システム１００は、計算システム１１０及びカメラ１７０を含む。一実施形態では、システム１１０は更に、キャリブレーションパターン１６０を含む。この例では、カメラ１７０は、キャリブレーションパターン１６０を表す画像である、キャリブレーション画像を生成するように構成することができ、計算システム１１０は、キャリブレーション画像に基づいて、カメラキャリブレーションを実施するように構成することができる。一実施形態では、計算システム１１０及びカメラ１７０は、同じ敷地（例えば、同じ倉庫）に位置することができる。一実施形態では、計算システム１１０及びカメラ１７０は、互いに遠隔に位置することができる。計算システム１１０は、有線接続を介して等、カメラ１７０から直接、又はカメラ１７０と計算システム１１０との間に位置する記憶装置を介して等、カメラ１７０から間接的にキャリブレーション画像を受け取るように構成することができる。一実施形態では、カメラ１７０は、カメラ視野でシーンを表す画像（又はより一般的には、画像データ）を生成するか、又は他の方法で取得するように構成される、任意のタイプの画像感知装置であってもよい。カメラ１７０は、例えば、カラー画像カメラ、グレースケール画像カメラ、奥行き感知カメラ（例えば、飛行時間（ＴＯＦ）カメラ又は構造化光カメラ）、又は他の任意のカメラ（本開示では「又は」という用語は「及び／又は」を指すために使用することができる）。
【００３０】
一実施形態では、システム１００は、図１Ｂに示すロボット動作システム１００Ａとすることができる。ロボット動作システム１００Ａは、計算システム１１０と、カメラ１７０と、キャリブレーションパターン１６０が配置されているロボット１５０とを含む。場合によっては、計算システム１１０は、ロボット１５０を制御するように構成することができ、それらの場合には、ロボット制御システム又はロボットコントローラーと呼ぶことができる。一実施形態において、ロボット動作システム１００は、倉庫、製造工場又は他の敷地内に位置することができる。上述したように、計算システム１１０は、カメラキャリブレーション情報を決定することによって等、カメラキャリブレーションを実施するように構成することができる。図１Ｂの例では、後でカメラキャリブレーション情報を使用して、ロボット１５０を制御することができる。場合により、図１Ｂの計算システム１１０は、カメラキャリブレーションを実施すること、及びキャリブレーション情報に基づいてロボット１５０を制御することの両方を行うように構成される。場合により、計算システム１１０は、カメラキャリブレーションの実施専用とすることができ、ロボット１５０の制御専用である別の計算システムへ、キャリブレーション情報を伝達することができる。例えば、ロボット１５０は、カメラ１７０により生成される画像と、カメラキャリブレーション情報とに基づいて位置決めすることができる。場合により、計算システム１１０は、カメラ１７０が位置する環境の画像を取得する、視覚システムの一部とすることができる。ロボット１５０は、例えば、デバンニングロボット、デパレタイズロボット又は他の任意のロボットとすることができる。
【００３１】
一実施形態では、図１Ｂの計算システム１１０は、ロボット１５０及び／若しくはカメラ１７０との有線又は無線通信によって、通信するように構成することができる。例えば、計算システム１１０は、ＲＳ−２３２インターフェース、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、イーサネットインターフェース、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェース、近距離無線通信（ＮＦＣ）インターフェース、ＩＥＥＥ  ８０２．１１インターフェース、ＩＥＥＥ  １３９４インターフェース又はそれらの任意の組み合わせを介して、ロボット１５０及び／又はカメラ１７０と通信するように構成することができる。一実施形態では、計算システム１１０は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス又は小型コンピューターシステムインターフェース（ＳＣＳＩ）バス等のローカルコンピューターバスを介して、ロボット１５０及び／又はカメラ１７０と通信するように構成することができる。
【００３２】
一実施形態では、図１Ｂの計算システム１１０は、ロボット１５０から分離することができ、上述した無線又は有線接続を介して、ロボット１５０と通信することができる。例えば、計算システム１１０は、有線接続又は無線接続を介して、ロボット１５０及びカメラ１７０と通信するように構成される、スタンドアローンコンピューターとすることができる。一実施形態では、計算システム１１０は、ロボット１５０の一体構成要素とすることができ、上述したローカルコンピューターバスを介して、ロボット１５０の他の構成要素と通信することができる。場合により、計算システム１１０は、ロボット１５０のみを制御する、専用制御システム（専用コントローラーとも呼ばれる）とすることができる。他の場合では、計算システム１１０は、ロボット１５０を含む、複数のロボットを制御するように構成することができる。一実施形態では、計算システム１１０、ロボット１５０及びカメラ１７０は、同じ敷地（例えば、倉庫）に位置する。一実施形態では、計算システム１１０は、ロボット１５０及びカメラ１７０から遠隔とすることができ、ネットワーク接続（例えば、ローカルエリアネットワーク（ＬＡＮ）接続）を介して、ロボット１５０及びカメラ１７０と通信するように構成することができる。
【００３３】
一実施形態では、図１Ｂの計算システム１１０は、キャリブレーションパターン１６０の画像である、キャリブレーション画像にアクセスして処理するように構成することができる。計算システム１１０は、カメラ１７０から、又はキャリブレーション画像が記憶される記憶装置若しくは他の非一時的コンピューター可読媒体から等、別の源からキャリブレーション画像を読み出し、又はより一般的には、受け取ることによって、キャリブレーション画像にアクセスすることができる。幾つかの例では、計算システム１１０は、カメラ１７０を制御して、こうした画像を取り込むか、又は他の方法で生成するように構成することができる。例えば、計算システム１１０は、カメラ１７０に、カメラ１７０の視野（カメラ視野とも呼ばれる）の中にシーンを取り込む画像を生成させる、カメラコマンドを生成し、有線又は無線接続を介してカメラコマンドをカメラ１７０へ伝達するように構成することができる。同じコマンドによって、カメラ１７０に、画像を（画像データとして）計算システム１１０へ、又はより一般的には、計算システム１１０がアクセス可能な記憶装置へ戻すように伝達させることもできる。代替的に、計算システム１１０によって、カメラコマンドを受信すると、カメラ１７０に、取り込んだ画像を計算システム１１０へ伝達させる、別のカメラコマンドを生成することができる。一実施形態では、カメラ１７０は、そのカメラ視野内のシーンの画像を、周期的に又は定義されたトリガー条件に応じて、計算システム１１０からのカメラコマンドを必要とすることなく、自動的に取り込むことができる。こうした実施形態では、カメラ１７０はまた、計算システム１１０に、又はより一般的には、計算システム１１０がアクセス可能な記憶装置に、計算システム１１０からのカメラコマンドなしに、画像を自動的に伝達するように構成することもできる。
【００３４】
一実施形態では、図１Ｂの計算システム１１０は、計算システム１１０によって生成され、ロボット１５０に有線又は無線接続を介して伝達される移動コマンドによって、ロボット１５０の移動を制御するように構成することができる。移動コマンドにより、ロボットにキャリブレーションパターン１６０を移動させることができる。キャリブレーションパターン１６０は、ロボット１５０に永久的に配置することができるか、又はロボット１５０に取り付けかつロボットから取り外すことができる、別個の構成要素とすることができる。
【００３５】
一実施形態では、計算システム１１０は、それぞれの画像を複数のカメラから受け取るように構成することができる。例えば、図１Ｃは、ロボット動作システム１００Ａの一実施形態である、ロボット動作システム１００Ｂを示す。システム１００Ｂは、カメラ１７０及びカメラ１８０等、複数のカメラを含む。カメラ１７０、１８０は、同じタイプのカメラであってもよく、又は異なるタイプのカメラとすることもできる。幾つかの例では、カメラ１７０、１８０は、固定された相対位置及び／又は相対的な向きを有することができる。例えば、カメラ１７０、１８０は両方、二つのカメラ１７０、１８０を互いに対して固定のままにさせることができる、共通の取付フレームに強固に取り付けることができる。
【００３６】
一実施形態では、図１Ｃのロボット制御システム１１０は、画像をカメラ１７０から受け取り、かつ画像をカメラ１８０から受け取るように両方構成することができる。場合により、計算システム１１０は、移動コマンドの生成によって等、二つのカメラ１７０、１８０からの画像に基づいて、ロボット１５０の移動を制御するように構成することができる。幾つかの例では、二つのカメラ１７０、１８０の存在により、計算システム１１０に立体視を与えることができる。場合により、計算システム１１０は、カメラ１７０によって生成される画像と、カメラ１８０によって生成される画像とを使用して、両画像によって取り込まれる物体の三次元構造を記述することができる、物体構造情報を決定するように構成することができる。幾つかの例では、計算システム１１０は、より詳細に後述するように、カメラ１７０及びカメラ１８０の両方に対して、カメラキャリブレーションを実施するように構成することができる。一実施形態では、計算システム１１０によって、カメラキャリブレーションを実施するために、両方のカメラ１７０、１８０を制御して、キャリブレーションパターン１６０のそれぞれの画像を取り込むことができる。こうした実施形態では、計算システム１１０によって、カメラ１７０と通信する方法と同じ又は同様に、カメラ１８０と通信することができる。一実施形態では、ロボット動作システム１００Ｂは、厳密に二つのカメラを有することができるか、又は三つ以上のカメラを有することができる。
【００３７】
図２は、図１Ａ〜１Ｃの計算システム１１０のブロック図を示す。ブロック図に示すように、計算システム１１０は、制御回路１１１、通信インターフェース１１３及び非一時的コンピューター可読媒体１１５（例えば、メモリ）を含むことができる。一実施形態では、制御回路１１１は、一つ以上のプロセッサ、プログラマブルロジック回路（ＰＬＣ）若しくはプログラマブルロジックアレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、又は他の任意の制御回路を含むことができる。場合により、制御回路１１１が複数のプロセッサを含む場合、プロセッサは、単一の装置の一部とすることができるか、又は複数の装置に渡って分散することができる。例えば、計算システム１１０が単一のスタンドアローン装置によって形成される場合、複数のプロセッサは全て、単一のスタンドアローン装置（例えば、マルチプロセッサデスクトップコンピューター）の一部とすることができる。計算システム１１０が、複数の計算装置（例えば、複数のデスクトップコンピューター）を含む分散システムである場合、複数のプロセッサは、複数の計算装置に渡って分散することができる。
【００３８】
一実施形態では、通信インターフェース１１３は、カメラ１７０及びロボット１５０と通信するように構成される、一つ以上の構成要素を含むことができる。例えば、通信インターフェース１１３は、有線又は無線プロトコルを介して通信を実施するように構成される、通信回路を含むことができる。一例として、通信回路は、ＲＳ−２３２ポートコントローラー、ＵＳＢコントローラー、イーサネットコントローラー、ＩＥＥＥ  ８０２．１１コントローラー、ＩＥＥＥ  １３９４コントローラー、Ｂｌｕｅｔｏｏｔｈ（登録商標）コントローラー、ＮＦＣコントローラー、ＰＣＩバス若しくはＳＣＳＩコントローラー、他の任意の通信回路、又はそれらの組み合わせを挙げることができる。
【００３９】
一実施形態では、非一時的コンピューター可読媒体１１５は、コンピューターメモリ等の情報記憶装置を含むことができる。コンピューターメモリは、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ソリッドステート集積メモリ及び／又はハードディスクドライブ（ＨＤＤ）を含むことができる。場合により、カメラキャリブレーションは、非一時的コンピューター可読媒体１１５に記憶されたコンピューター実行可能命令（例えば、コンピューターコード）を通して実施することができる。こうした場合、制御回路１１１は、コンピューター実行可能命令を実行して、カメラキャリブレーション（例えば、図９に示すステップ）を実施するように構成される、一つ以上のプロセッサを含むことができる。一実施形態では、非一時的コンピューター可読媒体１１５は、（図１Ａ〜１Ｃの）カメラ１７０によって生成される一つ以上のキャリブレーション画像、及び／又はカメラ１８０によって生成される一つ以上のキャリブレーション画像を記憶するように構成することができる。
【００４０】
上述したように、本出願の一態様は、図１Ａ〜１Ｃのカメラ１７０／１８０に対して、カメラキャリブレーション情報を決定することに関する。図３Ａは、図１Ａ〜１Ｃのカメラ１７０／１８０のより具体的な一実施形態とすることができる、カメラ３７０のブロック図を示す。この実施形態では、カメラ３７０は、一つ以上のレンズ３７１、画像センサー３７３及び通信インターフェース３７５を含むことができる。通信インターフェース３７５は、図１Ａ〜１Ｃの計算システム１１０と通信するように構成することができ、計算システム１１０の図２の通信インターフェース１１３と同様とすることができる。
【００４１】
一実施形態では、一つ以上のレンズ３７１は、カメラ３７０の外側から入ってくる光（例えば、可視光又は赤外線）を画像センサー３７３上に収束させることができる。一実施形態では、画像センサー３７３は、それぞれのピクセル強度値によって画像を表すように構成される、ピクセルの配列を含むことができる。画像センサー３７３は、電荷結合素子（ＣＣＤ）センサー、相補型金属酸化膜半導体（ＣＭＯＳ）センサー、量子イメージセンサー（ＱＩＳ）又は他の任意の画像センサーを含むことができる。一実施形態では、画像センサー３７３は、画像センサーの表面と一致する二次元（２Ｄ）平面とすることができる、画像平面を定義することができる。
【００４２】
一実施形態では、カメラキャリブレーション情報は、一つ以上のカメラキャリブレーションパラメーター、又はより具体的には、一つ以上のカメラキャリブレーションパラメーターに対する一つ以上のそれぞれの値を含むことができる。カメラキャリブレーションパラメーターは、カメラ１７０／３７０の一つ以上の固有特性を記述することができる、固有カメラキャリブレーションパラメーター（単に固有キャリブレーションパラメーターとも呼ばれる）を含むことができる。場合により、一つ以上の固有カメラパラメーターは、カメラ１７０／３７０の位置及び向きとは独立している値を各々有することができる。一実施形態では、カメラキャリブレーションパラメーターは、カメラ１７０／３７０とその外部環境との関係を記述するパラメーターを含むことができる。例えば、これらのパラメーターは、ハンド−アイキャリブレーションパラメーター及び／又はステレオキャリブレーションパラメーターを含むことができる。ハンド−アイキャリブレーションパラメーターは、例えば、カメラ１７０／３７０とロボット１５０との空間関係を記述することができる。場合により、ハンド−アイキャリブレーションパラメーターは、カメラ１７０／３７０の座標系と、ロボット１５０に基づいて定義される座標系とすることができるワールド座標系との間の相対位置及び相対的な向きを記述する、変換関数を含むことができる。一実施形態では、ステレオキャリブレーションパラメーターは、例えば、カメラ１７０／３７０と、カメラ１８０等の他の任意のカメラとの空間関係を記述することができる。場合により、ステレオキャリブレーションパラメーターは、カメラ１７０／３７０の座標系と、他のカメラ１８０の座標系との間の相対位置及び相対的な向きを記述する、変換関数を含むことができる。場合により、カメラキャリブレーション情報は、カメラ１７０／３７０と（図１Ａ〜１Ｃの）キャリブレーションパターン１６０との空間関係を記述するか、又はカメラ１８０とキャリブレーションパターン１６０との空間関係を記述する、変換関数を含むことができる。
【００４３】
一実施形態では、固有カメラキャリブレーションパラメーターは、射影パラメーターを含むことができる。射影パラメーターは、カメラと関連付けられる、カメラ画像の射影を記述することができる。カメラ画像の射影は、カメラ視野内の位置が、いかにカメラの画像センサー（例えば、３７３）上に投影されるかを示すことができる。例えば、図３Ｂは、カメラ３７０Ａの外部であり、カメラ３７０Ａの視野内にある位置
【数１】
0006800506.tif 000002
を示す（Ｔという上付き文字は転置を指し、Ｃａｍｅｒａという下付き文字は、カメラ座標系で表現されているＸ、Ｙ及びＺ座標成分を指す）。より具体的には、カメラ３７０Ａは、カメラ３７０の一実施形態とすることができ、一つ以上のレンズ３７１Ａ及び画像センサー３７３Ａを含むことができる。この例におけるカメラ座標系は、カメラ３７０Ａの位置及び向きに対して定義される、座標系とすることができる。より具体的には、図３Ｂは、カメラ座標系を、カメラ３７０Ａの様々な構成要素の向きと位置合わせすることができる、直交座標軸
【数２】
0006800506.tif 000003
によって定義されるように示す。一実施形態では、位置
【数３】
0006800506.tif 000004
からの光は、画像センサー座標系上の画像座標
【数４】
0006800506.tif 000005
（例えば、ピクセル座標）へ投影することができる。図３Ｂに示すように、画像センサー座標系は、一例において、画像センサー３７３Ａのそれぞれの縁と位置合わせすることができる、座標軸
【数５】
0006800506.tif 000006
によって定義することができる。一実施形態では、位置
【数６】
0006800506.tif 000007
が画像座標
【数７】
0006800506.tif 000008
の上に投影される様式は、射影行列Ｋによってモデル化することができる。射影行列Ｋは、関数、又はより具体的には、関係
【数８】
0006800506.tif 000009
に基づいて、位置
【数９】
0006800506.tif 000010
を画像座標
【数１０】
0006800506.tif 000011
へ変換する線形変換とすることができる。この関係は、レンズ歪みの影響を除外することができる（レンズ歪みについてはより詳細に後述する）。
【００４４】
一つの例では、射影行列は
【数１１】
0006800506.tif 000012
と等しくすることができる。この例では、ｆｘは、図３Ｂの焦点距離ｆ、及び
【数１２】
0006800506.tif 000013
軸に沿った画像センサー３７３Ａのピクセルサイズに基づいた、第一のスケールファクターとすることができる。同様に、ｆｙは、カメラ３７０Ａの焦点距離f、及び
【数１３】
0006800506.tif 000014
軸に沿った画像センサー３７３Ａのピクセルサイズに基づいた、第二のスケールファクターとすることができる。場合により、ｆｘは、
【数１４】
0006800506.tif 000015
軸に沿ったカメラ３７０Ａの焦点距離とみなすことができ、ｆｙは、
【数１５】
0006800506.tif 000016
軸に沿ったカメラ３７０Ａの焦点距離とみなすことができる。ｆｘ及びｆｙは共に、ピクセル／ミリメートルの単位を有することができ、物理測定値を画像センサー３７３Ａ上の幾つかのピクセルと相関させることができる。値Ｃｘは、主点オフセットの第一の部分とすることができ、画像センサー座標系の原点と、カメラ座標系の原点との間の
【数１６】
0006800506.tif 000017
軸に沿った距離に基づくことができる。値Ｃｙは、主点オフセットの第二の部分とすることができ、画像センサー座標系の原点と、カメラ座標系の原点との間の
【数１７】
0006800506.tif 000018
軸に沿った距離に基づくことができる。場合により、Ｃｘ及びＣｙは、カメラ３７１Ａによって生成される画像の中心と、
【数１８】
0006800506.tif 000019
軸及び
【数１９】
0006800506.tif 000020
軸それぞれに沿った画像センサー座標系の原点との間のそれぞれのオフセットを記述することができる。
【００４５】
上記例では、射影行列Ｋは射影パラメーターとみなすことができ、ｆｘ、ｆｙ、Ｃｘ、及びＣｙの各々は射影行列の成分とすることができる。更に、成分ｆｘ、ｆｙ、Ｃｘ、Ｃｙ及び焦点距離ｆの各々はまた、射影パラメーターとみなすこともできる。こうした例では、射影行列Ｋの推定値は行列とすることができ、ｆｘ、ｆｙ、Ｃｘ又はＣｙの推定値（推定される値とも呼ばれる）はスカラー値とすることができる。
【００４６】
一実施形態では、固有カメラキャリブレーションパラメーターは、カメラ１７０／３７０／３７０Ａ又はカメラ１８０と関連付けられる、レンズ歪みを記述することができる、レンズ歪みパラメーターを含むことができる。例えば、一つ以上のレンズ歪みパラメーターは、放射状のレンズ歪み（例えば、樽形歪曲又は糸巻き型歪曲）及び／又は接線方向のレンズ歪み等、一つ以上のレンズ３７１Ａによってもたらされるレンズ歪みの影響を特徴付けることができる。一実施形態では、一つ以上のレンズ歪みパラメーターの各々は、レンズ歪みを特徴付けるか、又は他の方法で記述する、レンズ歪みモデルのパラメーターとすることができる。例えば、レンズ歪みモデルは、より詳細に後述する多項式歪みモデル、有理歪みモデル又は視野歪みモデルとすることができる。
【００４７】
一実施形態では、レンズ歪みモデルは、一つ以上の歪み関数とも呼ばれ、レンズ歪みを特徴付ける、一つ以上の関数を含むことができる。こうした実施形態では、レンズ歪みパラメーターは、一つ以上の歪み関数のうちのパラメーターとすることができる。より具体的には、カメラのレンズ歪みは、カメラの一つ以上のレンズ（例えば、３７１Ａ）によっていかに、実際にはカメラの視野内の
【数２０】
0006800506.tif 000021
に位置する特徴部を、代わりに
【数２１】
0006800506.tif 000022
に位置するように見せるかを記述する、一つ以上の歪み関数を使用してモデル化することができる。レンズ歪みによって、カメラ視野内の位置と、画像センサー上のピクセル位置（例えば、３７３Ａ）との関係を、非線形にさせることができる。一例として、予測される位置
【数２２】
0006800506.tif 000023
のピクセル［ｕ  ｖ］Ｔを予測するとき、以下の方程式を使用することによって等、第一の歪み関数ｄｘ及び第二の歪み関数ｄｙを使用して、レンズ歪みを考慮に入れることができる。
【数２３】
0006800506.tif 000024
【００４８】
上記例では、
【数２４】
0006800506.tif 000025
はＸ／Ｚを指すことができ、
【数２５】
0006800506.tif 000026
はＹ／Ｚを指すことができる。第一の歪み関数ｄｘは、例えば、
【数２６】
0006800506.tif 000027
を
【数２７】
0006800506.tif 000028
及び
【数２８】
0006800506.tif 000029
の関数として決定する非線形関数とすることができる。第二の歪み関数ｄｙは、例えば、
【数２９】
0006800506.tif 000030
を
【数３１】
0006800506.tif 000031
及び
【数３２】
0006800506.tif 000032
の関数として決定する非線形関数とすることができる。レンズ歪みは、全体の内容が引用することにより全体として本明細書の一部をなす、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ａｕｔｏｍａｔｉｃ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」と題される米国特許出願番号第１６／２９５，９４０号でより詳細に考察されている。
【００４９】
上述したように、レンズ歪みモデルの例は、多項式歪みモデル、有理歪みモデル又は視野歪みモデルを含む。一実施形態では、多項式歪みモデルを使用して、放射状のレンズ歪みのみを、又は放射状のレンズ歪みを他の何らかのタイプのレンズ歪み（例えば、接線方向のレンズ歪み）と共に、特徴付けることができる。場合により、多項式歪みモデル用の歪み関数ｄｘ及びｄｙは、以下とすることができる。
【数３３】
0006800506.tif 000033
【数３４】
0006800506.tif 000034
【００５０】
上記例では、
【数３５】
0006800506.tif 000035
である。更に、ｋ１、ｋ２、ｋ３、ｐ１、ｐ２は各々、レンズ歪みパラメーターとすることができる。場合により、上記レンズ歪みパラメーターのうちの幾つか又は全てが、スカラー値を有する。
【００５１】
一実施形態では、ｋ１、ｋ２及びｋ３は、放射状のレンズ歪みを記述するそれぞれの係数とすることができ、放射状のレンズ歪みは、光を曲げるか又は屈折させる一つ以上のレンズ（例えば、３７１Ａ）によってもたらされる、あるタイプのレンズ歪みとすることができる。より具体的には、ｋ１、ｋ２及びｋ３は、それぞれ第一の多項式成分ｋ１ｒ２、第二の多項式成分ｋ２ｒ４及び第三の多項式成分ｋ３ｒ６を記述することができる。これらの多項式成分は、放射状のレンズ歪みを記述し、項ｒに基づくため、放射状多項式成分と呼ぶことができる。項ｒは、位置
【数３６】
0006800506.tif 000036
と、カメラ（例えば、３７０Ａ）の一つ以上のレンズ（例えば、３７１Ａ）の中心軸との間の距離を示すことができる。例えば、中心軸は、ベクトル［０  ０  Ｚ］Ｔ  Ｃａｍｅｒａによって定義される光軸とすることができ、項ｒは、
【数３７】
0006800506.tif 000037
と［０  ０  Ｚ］Ｔ  Ｃａｍｅｒａとの間の距離に等しいか、又はその距離に基づくことができる。増加する値であるｒは、
【数３８】
0006800506.tif 000038
に反射する光が、一つ以上のレンズ（例えば、３７１Ａ）の中心からさらに離れていく経路に沿って移動するであろうことを示すことができ、それによって、より放射状のレンズ歪みを生じる場合がある。
【００５２】
一実施形態では、上述した放射状多項式成分は、異なる次数の放射状のレンズ歪みを記述することができる。例えば、第一の放射状多項式成分ｋ１ｒ２は、次数２（ｒ２の項から）を有するとみなすことができ、場合により、２次の放射状歪み効果とも呼ぶことができる。第二の放射状多項式成分ｋ２ｒ４は、次数４（ｒ４の項から）を有するとみなすことができ、場合により、４次の放射状歪み効果とも呼ぶことができる。第三の放射状多項式成分ｋ３ｒ６は、次数６（ｒ６の項から）を有するとみなすことができ、場合により、６次の放射状歪み効果とも呼ぶことができる。この例では、第一の放射状多項式成分ｋ１ｒ２は、複数の放射状多項式成分（ｋ１ｒ２、ｋ２ｒ４、ｋ３ｒ６）の中で放射状の最低次多項式成分とすることができ、放射状の最低次多項式成分を記述することができる（最低次の放射状歪み効果、又は放射状レンズ歪みの最低次成分を記述するとも呼ばれる）。例えば、第一の放射状多項式成分は、ｒ２の項を有するため、放射状のレンズ歪みの二次成分を記述することができる。第二の放射状多項式成分ｋ２ｒ４は、この例では、第一の放射状多項式成分に対して、放射状のレンズ歪みのより高次成分（例えば、４次成分）を記述することができる。この例では、第三の放射状多項式成分は、複数の放射状多項式成分（ｋ１ｒ２、ｋ２ｒ４、ｋ３ｒ６）の中で最高次多項式成分とすることができ、複数の放射状多項式成分の中で、放射状のレンズ歪みの最高次成分を記述することができる。
【００５３】
上記例では、ｐ１及びｐ２（例えば、方程式２及び方程式３）は、接線方向のレンズ歪みを記述するそれぞれの係数とすることができ、接線方向のレンズ歪みは、画像の中で特徴部を広げる、あるタイプのレンズ歪みとすることができる。接線方向のレンズ歪みは、例えば、カメラ（例えば、３７０Ａ）の画像センサー（例えば、３７３Ａ）と完全に平行ではない、一つ以上のレンズ（例えば、３７１Ａ）によってもたらされる場合がある。言い換えれば、一つ以上のレンズ（例えば、３７１Ａ）の光軸が、画像センサーの平面（例えば、３７３Ａ）に対して完全に直交していないときに、接線方向のレンズ歪みが生じる場合がある。より具体的には、レンズ歪みパラメーターｐ１-は、第一の歪み関数ｄｘの中の接線方向の多項式成分
【数３９】
0006800506.tif 000039
及び第二の歪み関数ｄｙの中の接線方向の多項式成分
【数４０】
0006800506.tif 000040
を記述することができる。レンズ歪みパラメーターｐ２は、第一の歪み関数ｄｘの中の接線方向の多項式成分
【数４１】
0006800506.tif 000041
を記述し、第二の歪み関数ｄｙの中の接線方向の多項式成分
【数４２】
0006800506.tif 000042
を記述することができる。
【００５４】
一実施形態では、有理多項式モデルはまた、放射状のレンズ歪み又は他の何らかのタイプの歪みを特徴付けるように使用することができ、以下の歪み関数ｄｘ及びｄｙを含むことができる。
【数４３】
0006800506.tif 000043
【数４４】
0006800506.tif 000044
【００５５】
多項式歪みモデルを含む例と同様に、有理歪みモデルでは
【数４５】
0006800506.tif 000045
である。更に、ｋ１、ｋ２、ｋ３、ｋ４、ｋ５、ｋ６、ｐ１及びｐ２の各々は、有理歪みモデルのレンズ歪みパラメーターとすることができる。レンズ歪みパラメーターｋ１、ｋ２、ｋ３、ｋ４、ｋ５、ｋ６は、放射状歪みを記述することができ、レンズ歪みパラメーターｐ１及びｐ２は、接線方向の歪みを記述することができる。
【００５６】
一実施形態では、視野モデルは以下の歪み関数を含むことができる。
【数４６】
0006800506.tif 000046
【数４７】
0006800506.tif 000047
【００５７】
上記例では、
【数４８】
0006800506.tif 000048
である。更に、ωはレンズ歪みパラメーターであり、スカラー値を有することができる。
【００５８】
上述したように、図１Ａ〜１Ｃ並びに３Ａ〜３Ｂにおけるカメラ１７０／３７０／３７０Ａのレンズ歪みパラメーター及び／又は射影パラメーター等、固有カメラキャリブレーションパラメーターに対する値を推定することは、カメラ１７０／３７０／３７０Ａを使用して、キャリブレーションパターン１６０を取り込むか、又はその他の方法で表す、一つ以上のキャリブレーション画像を生成することを含むことができる。図４Ａ及び４Ｂは、キャリブレーション画像が生成される、より具体的な環境を示す。より具体的には、図４Ａ及び４Ｂは、（図１Ｂ及び１Ｃの）ロボット動作システム１００Ａ又は１００Ｂの実施形態とすることができる、ロボット動作システム４００を示す。ロボット動作システム４００は、計算システム１１０、ロボット４５０及びカメラ４７０を含む。更に、キャリブレーションパターン４６０は、ロボット４５０上に配置することができる。ロボット４５０、カメラ４７０及びキャリブレーションパターン４６０は、それぞれ（図１Ａ〜１Ｃの）ロボット１５０、カメラ１７０及びキャリブレーションパターン１６０の実施形態とすることができる。一実施形態では、システム４００が、カメラ４７０に加えて一つのカメラを含む場合、カメラ４７０は第一のカメラ４７０と呼ぶことができる。
【００５９】
図４Ａの実施形態では、ロボット４５０はベース４５２と、ベース４５２に対して移動可能なロボットアーム４５４とを含むことができる。ロボットアーム４５４は、リンク４５４Ａからリンク４５４Ｅ等、一つ以上のリンクを含むことができる。一実施形態では、ベース４５２は、ロボット４５０を、例えば、取付フレーム又は取付面（例えば、倉庫の床）に取り付けるように使用することができる。一実施形態では、ロボット４５０は、リンク４５４Ａ〜４５４Ｅを回転又は他の方法で作動させることによって、ロボットアーム４５４を移動させるように構成される、複数のモーター又は他のアクチュエーターを含むことができる。場合により、ロボットアーム４５４は、リンク４５４Ａ〜４５４Ｅのうちの一つに取り付けられる、ロボットハンド等のエンドエフェクターを含むことができる。キャリブレーションパターン４６０は、エンドエフェクター又はリンクのうちの一つ（例えば、４５４Ｅ）上に配置することができる。一実施形態では、リンク４５４Ａ〜４５４Ｅは、互いに回転可能に取り付けることができ、直列に接続されて、例えば、複数のモーターの回転を通して等、カメラ４７０のカメラ視野４１０内でキャリブレーションパターン４６０を異なるポーズへ移動できる、運動連鎖を形成することができる。異なるポーズは、キャリブレーションパターン４６０のそれぞれの位置及びそれぞれの向きの異なる組み合わせを指すことができる。例えば、図４Ａは、キャリブレーションパターン４６０を第一のポーズへ移動させるロボットアーム４５４を示し、図４Ｂは、キャリブレーションパターン４６０を第一のポーズとは異なる第二のポーズへ移動させる、ロボットアーム４５４を示す。
【００６０】
場合により、レンズ歪みパラメーター及び／又は射影パラメーターのそれぞれの推定値を使用して、他のカメラキャリブレーション情報、すなわち、カメラ４７０とロボット４５０との関係を記述する変換関数を決定することを含むことができる、ハンド−アイキャリブレーションを実施することができる。例えば、図４Ｂは、
【数４９】
0006800506.tif 000049
によって定義されるカメラ座標系、及び
【数５０】
0006800506.tif 000050
によって定義されるワールド座標系を示す。ワールド座標系は、ロボット４５０のベース４５２に対して固定している点とすることができる。図４Ｂの例では、ハンド−アイキャリブレーションは、カメラ座標系とワールド座標系との間の相対位置及び相対的な向きを記述する、変換行列を決定することを含むことができる。
【００６１】
一実施形態では、キャリブレーションパターン４６０は、ロボットアーム４５４上に直接印刷することができる。一実施形態では、図４Ａ及び４Ｂに示すように、キャリブレーションパターン４６０は、平坦なキャリブレーションボードに印刷することができる。キャリブレーションボードは、カーボンファイバー等、温度によって誘発される反りに対して耐性がある材料から、形成することができる。図４Ｃは、キャリブレーションパターン４６０の一例を示し、キャリブレーションパターン４６０は、矩形格子の仮想直線格子線（４６３１から４６３５及び４６５１から４６５５）に沿って配列される、複数のパターン要素４６１１から４６１２５を含むことができる。例えば、仮想格子線は、一様に離隔された直線４６３１から４６３５の第一の組と、一様に離隔された直線４６５１から４６５５の第二の組とを含むことができ、仮想格子線４６３１から４６３５の第一の組は、仮想格子線４６５１から４６５５の第二の組に直交する。図４Ｃの例では、パターン要素４６１１から４６１２５の各々は、円形ドットとすることができる。一実施形態では、パターン要素４６１１から４６１２５はサイズが異なる場合がある。例えば、パターン要素４６１８、４６１１３及び４６１１４は第一の直径を有し、残り全てのパターン要素は、第一の直径より小さい第二の直径を有する。一実施形態では、複数のパターン要素４６１１から４６１２５は、定義されたサイズと、要素間の定義された間隔とを有する。例えば、第一の直径及び第二の直径は、キャリブレーションパターン４６０の製造業者によって、キャリブレーションパターンの製造前又は製造中に定義された値とすることができ、したがって、カメラキャリブレーション中に既知の、事前に定義された値とすることができる。更に、複数のパターン要素４６１１から４６１２５は、格子線４６５１から４６５５に沿って定義された距離Δｄ１（事前に定義された距離とすることもできる）を有し、格子線４６３１から４６３５に沿って定義された距離Δｄ２を有することができ、定義された距離はカメラキャリブレーション中に既知の値とすることができる。一実施形態では、Δｄ１はΔｄ２に等しい。一実施形態では、パターン要素４６１１から４６１２５は、全て同じサイズ（例えば、同じ直径）を有することができ、キャリブレーションパターン４６０は更に、キャリブレーションパターン４６０の向きを示す特徴（例えば、回転非対称形状）を含むことができる。
【００６２】
上述したように、パターン座標系は、キャリブレーションパターン４６０等のキャリブレーションパターンに対して定義することができる。一実施形態では、図４Ｂ及び４Ｃに示すように、パターン要素４６１１３等、キャリブレーションパターン４６０の中心にある又は中心に近いパターン要素は、キャリブレーション座標系の原点を定義することができる。すなわち、パターン要素４６１１３は、座標
【数５１】
0006800506.tif 000051
を有することができる。この実施形態では、
【数５２】
0006800506.tif 000052
軸は、仮想格子線４６３１から４６３５に位置合せすることができ、
【数５３】
0006800506.tif 000053
軸は、仮想格子線４６５１から４６５５に位置合せすることができ、
【数５４】
0006800506.tif 000054
軸は、キャリブレーションパターン４６０によって形成される平面に直交する。
【００６３】
上述したように、本出願の一態様は、レンズ歪みパラメーターを推定する精度を向上させるために、異なる段階（異なる段階とも呼ばれる）でレンズ歪みパラメーターを推定することに関する。異なる段階は、例えば、連続する段階とすることができ、その連続における一つの段階の出力は、その連続における次の段階用の入力として（例えば、次の段階の初期推定値として）使用される。段階のうちの一つ以上では、特定のレンズ歪みパラメーターの推定に集中することができる一方、他のレンズ歪みパラメーターを、ゼロ若しくは他の何らかの固定値として扱い、及び／又は他のレンズ歪みパラメーターを無視する。図５は、上述した特性に関するように、レンズ歪みパラメーターを推定する方法５００を示す、フロー図を示す。
【００６４】
一実施形態では、方法５００は、図１Ａから図４の計算システム１１０の制御回路１１１によって実施することができ、カメラキャリブレーション実施の一部として実施されてもよい。図２に示すように、計算システム１１０は、カメラ（例えば、４７０）を伝達し及び／又はロボット（例えば、４５０）と通信するように構成される、通信インターフェース１１３を含むことができる。一実施形態では、方法５００は、カメラ（例えば、４７０）がキャリブレーション画像を生成したときに、実施することができる。キャリブレーション画像は、カメラ（例えば、４７０）のカメラ視野（例えば、４１０）内にある、キャリブレーションパターン（例えば、４６０）を取り込むか、又は他の方法で表すことができる。図４Ｃに関して上述したように、キャリブレーションパターン（例えば、４６０）は、この例では、複数のパターン要素（例えば、４６１１から４６１２５）を含むことができる。一実施形態では、複数のパターン要素は、定義された空間配置を有することができる。例えば、複数のパターン要素は、直交格子に沿って配列することができ、格子に沿って隣接するパターン要素は、定義された間隔を有することができる。場合により、間隔は、キャリブレーションパターン（例えば、４６０）の製造中又は製造前に定義することができ、その場合、間隔は事前に定義されていると呼ぶことができる。
【００６５】
場合により、パターン要素（例えば、４６１１から４６１２５）は、パターン座標系（キャリブレーションパターンの位置及び向きに関して定義される座標系とすることができる）の中に、それぞれの定義されたパターン要素座標を有することができる。定義されたパターン要素座標はまた、定義されたパターン要素位置と呼ぶことができ、キャリブレーションパターン（例えば、４６０）の位置及び向きに関して、又はより具体的には、パターン座標系に関して、パターン要素（例えば、４６１１から４６１２５）のそれぞれの物理的位置を識別することができる。例えば、定義されたパターン要素の位置又はパターン要素座標は、［Ｘ  Ｙ  Ｚ］Ｔの座標、又はより具体的には、パターン座標系におけるパターン要素４６１１から４６１２５のそれぞれの物理的位置を定義する、［Ｘ１  Ｙ１  Ｚ１］Ｔ  Ｐａｔｔｅｒｎから［Ｘ２５  Ｙ２５  Ｚ２５］Ｔ  Ｐａｔｔｅｒｎとすることができる。
【００６６】
一実施形態では、図５の方法５００は、計算システム１１０、又はより具体的には、その制御回路１１１が、カメラ（例えば、４７０）によって生成されるキャリブレーション画像を受け取る、ステップ５０１を含むことができる。場合により、ステップ５０１は、図２の通信インターフェース１１３によって等、カメラ（例えば、４７０）から直接キャリブレーション画像を受け取る、計算システム１１０を含むことができる。場合により、キャリブレーション画像は、非一時的コンピューター可読媒体１１５（例えば、ハードディスクドライブ）又は他の何らかの装置に記憶されていた場合があり、ステップ５０１は、非一時的コンピューター可読媒体１１５から直接、キャリブレーション画像を受け取ることを含むことができる。一つの例では、ステップ５０１で受け取られるキャリブレーション画像は、図６Ａ〜６Ｅのキャリブレーション画像６８０Ａ〜６８０Ｅのうちの一つとすることができ、図６Ａ〜６Ｅは、例えば、カメラ視野（例えば、４１０）内のキャリブレーションパターン（例えば、４６０）の五つの異なるそれぞれのポーズに対応する、五つのキャリブレーション画像を示す。場合により、ステップ５０１で受け取るキャリブレーション画像は、カメラ（例えば、４７０）の一つ以上のレンズによって導入される、レンズ歪みの影響を明らかにすることができる。例えば、レンズ歪みは、湾曲を画像の中に導入する、屈曲又は他の反りの影響を生み出す場合がある。一例として、図６Ａ、６Ｃ及び６Ｅは、キャリブレーションパターン（例えば、図４Ｃのキャリブレーションパターン４６０）が実際には直線縁を有しても、キャリブレーションパターン（例えば、４６０）が曲線縁を有するように現れる、キャリブレーション画像６８０Ａ、６８０Ｃ及び６８０Ｅを示す。
【００６７】
一実施形態では、方法５００は、複数のパターン要素がキャリブレーション画像の中に現れる、それぞれの位置を示すか、又は他の方法で表す複数の画像座標（画像パターン要素位置とも呼ばれる）を、計算システム１１０によって決定する、ステップ５０３を含むことができる。例えば、図６Ｅに示すように、複数の画像座標は、パターン要素４６１１から４６１２５それぞれがキャリブレーション画像の中のどこに現れるかを示す、それぞれのピクセル座標［ｕ１  ｖ１］Ｔから［ｕ２５  ｖ２５］Ｔとすることができる。場合により、画像座標の各々は、それぞれのパターン要素４６１ｎの中心が、キャリブレーション画像の中のどこに現れるかを示す、ピクセル座標［ｕｎ  ｖｎ］Ｔとすることができる。この例では、パターン要素４６１１から４６１２５のピクセル座標は、ステップ５０５から５０９に関してより詳細に後述するように、カメラキャリブレーション情報を決定するために、パターン要素４６１１から４６１２５の対応する定義されたパターン要素座標と共に使用することができる。
【００６８】
より具体的には、方法５００のステップ５０５から５０９は、射影パラメーターの集合及びレンズ歪みパラメーターの集合を推定するための、カメラキャリブレーションプロセスの一部とすることができる。ステップ５０５では、計算システム１１０によって、複数の画像座標（例えば、［ｕ１  ｖ１］Ｔから［ｕ２５  ｖ２５］Ｔ）及び定義されたパターン要素座標（例えば、［Ｘ１  Ｙ１  Ｚ１］Ｔ  Ｐａｔｔｅｒｎから［Ｘ２５  Ｙ２５  Ｚ２５］Ｔ  Ｐａｔｔｅｒｎ）に基づいて、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定することができる一方、レンズ歪みパラメーターの集合のうちの第二のレンズ歪みパラメーターをゼロと推定するか、又は第二のレンズ歪みパラメーターは推定しない。
【００６９】
一実施形態では、ステップ５０５は、第一のレンズ歪みパラメーターが、第二のレンズ歪みパラメーターとは別個に推定される、第一のキャリブレーション段階の一部とすることができる。例えば、図７Ａは、第一の段階（段階１と名付ける）に続き、第二の段階（段階２と名付ける）を含む、カメラキャリブレーションプロセスを示す。場合により、第二の段階は、一部又は完全に、第一の段階の後とすることができる。第一のキャリブレーション段階では、第一のレンズ歪みパラメーターに対する推定値を決定することに集中することができる一方、第二のレンズ歪みパラメーターを固定値（例えば、ゼロ）に限定するか、又は第二のレンズ歪みパラメーターを無視する。第二のレンズ歪みパラメーターとは別個に、第一のレンズ歪みパラメーターを推定することによって、第一のレンズ歪みパラメーターに対する推定値の精度を向上させることができる。場合により、第一の段階からの第一のレンズ歪みパラメーターの推定値は、図７Ａに示すように、第二の段階へ出力することができ、第二の段階で、第一のレンズ歪みパラメーターの推定値を使用して、第二のレンズ歪みパラメーターを推定する精度を向上させることができる。例えば、第一の段階（第一ラウンドとも呼ばれる）の出力は、第二の段階（第二ラウンドとも呼ばれる）で、第二の段階における第一のレンズ歪みパラメーターの初期推定値（例えば、初期推量）として使用することができる。初期推定値を使用して、第二のレンズ歪みパラメーターの推定値を決定し、及び／又は第一のレンズ歪みパラメーターの更新された推定値を決定することができる。
【００７０】
一例として、方法５００は、レンズ歪みパラメーターの集合の推定を含むことができ、レンズ歪みパラメーターの集合は、方法５００のカメラキャリブレーションに使用されている、レンズ歪みモデルの全てのレンズ歪みパラメーターを指すことができる。例えば、レンズ歪みモデルが多項式歪みモデルである場合、レンズ歪みパラメーターの集合はｋ１、ｋ２、ｋ３、ｐ１及びｐ２とすることができる。レンズ歪みモデルが有理多項式歪みモデルである場合、レンズ歪みパラメーターの集合はｋ１、ｋ２、ｋ３、ｋ４、ｋ５、ｋ６、ｐ１及びｐ２とすることができる。幾つかのカメラキャリブレーションプロセスでは、レンズ歪みパラメーターの集合は、単一の段階（単一のラウンドとも呼ばれる）で共に決定することができる。例えば、単一の段階は、歪み関数ｄｘ、ｄｙの逆関数（すなわち、ｄｘ−１、ｄｙ−１）が、画像座標（例えば、［ｕ１  ｖ１］Ｔから［ｕ２５  ｖ２５］Ｔ）に、又はより一般的には、キャリブレーション画像の変更されたバージョンを生成するようにキャリブレーション画像に適用される、湾曲減少段階（湾曲減少ラウンドとも呼ばれる）とすることができる。こうした湾曲減少段階では、湾曲がレンズ歪みによってもらたされる反りを表す場合があるため、最適化技法（例えば、レーベンバーグ・マーカートアルゴリズム、ネルダー・ミードアルゴリズム又はブロイデン・フレッチャー・ゴールドファーブ・シャンノ（ＢＦＧＳ）アルゴリズム）によって、キャリブレーション画像の変更されたバージョンにおける湾曲の量を最小限にする、レンズ歪みパラメーター及び／又は射影パラメーターの全てに対する値の最適集合を見つけるために、レンズ歪みパラメーターの集合ｋ１、ｋ２、ｋ３、ｐ１及びｐ２の全て、並びに／又は射影パラメーターｆｘ、ｆｙ、ｃｘ及び／若しくはｃｙの全てに対するそれぞれの値を調整することができる。しかしながら、歪み関数ｄｘ、ｄｙ及びそれらの逆関数が非線形であるため、単一の段階で全てのレンズ歪みパラメーターｋ１、ｋ２、ｋ３、ｐ１及びｐ２に対する最適値を見つけることが難しい場合があり、レンズ歪みパラメーターに対して結果として得られる推定値が、準最適となるか、又はより一般的には、精度を失い得る。したがって、上述したように、本出願の一実施形態、及びより具体的には、ステップ５０５の一実施形態は、ｋ１などの第一のレンズ歪みパラメーターに対する推定値を決定することに集中する一方、一つ以上の他のレンズ歪みパラメーターを固定値（例えば、ゼロ）に限定するか、又は一つ以上の他のレンズ歪みパラメーターは推定しない段階を含む。
【００７１】
一実施形態では、ステップ５０５で推定される第一のレンズ歪みパラメーターは、第一のタイプのレンズ歪みを記述することができ、ステップ５０５は、第二のタイプのレンズ歪みを記述する、一つ以上の他のレンズ歪みパラメーターを無視すること（又は第二のタイプのレンズ歪みを、ごくわずかとして扱うこと）を含むことができ、無視される一つ以上のレンズ歪みパラメーターは、第二のレンズ歪みパラメーターを含むことができる。例えば、ステップ５０５で推定される第一のレンズ歪みパラメーターは、放射状のレンズ歪みを記述する、ｋ１とすることができる。この例では、ステップ５０５で計算システム１１０によって、放射状のレンズ歪みに対するレンズ歪みパラメーターの推定に集中するために、接線方向のレンズ歪みの影響を無視するか、又はごくわずかとして扱うことができる。したがって、計算システム１１０によって、ｋ１（放射状のレンズ歪みを記述する）を推定することができ、ｐ１及び／又はｐ２（接線方向のレンズ歪みを記述する）は、ゼロと推定されるか、又は推定されない。こうした例では、レンズ歪みパラメーターｋ１は、ｐ１又はｐ２によって記述される成分より一層大きい影響を及ぼす、レンズ歪みの成分を記述することができる。
【００７２】
一実施形態では、ステップ５０５で推定される第一のレンズ歪みパラメーターは、放射状のレンズ歪み等、第一のタイプのレンズ歪みを記述することができ、このステップではまた、同じタイプのレンズ歪みを記述する、一つ以上のレンズ歪みパラメーターを無視することを含むことができ、無視される一つ以上のレンズ歪みパラメーターは、第二のレンズ歪みパラメーターを含むことができる。例えば、ステップ５０５は、放射状のレンズ歪みを記述する、放射状多項式成分（例えば、ｋ１ｒ２、ｋ２ｒ４、ｋ３ｒ６）の集合の中からの放射状のレンズ歪みを記述するために、放射状の最低次多項式成分ｋ１ｒ２（最低次の放射状多項式成分又は最低次の放射状歪み効果とも呼ばれる）を記述することができる、ｋ１に対する推定値を決定することを含むことができる。上述したように、レンズ歪みパラメーターｋ２及びｋ３は共に、レンズ歪みパラメーターｋ１に対する、より高次の放射状多項式成分（ｋ２ｒ４、ｋ３ｒ６）を記述することができる。一実施形態では、ステップ５０５で計算システム１１０によって、放射状の最低次多項式成分ｋ１ｒ２が、ｋ２ｒ４、ｋ３ｒ６等のより高次の放射状多項式成分より一層大きい影響を及ぼすと想定することができる。したがって、ステップ５０５で（例えば、段階１で）計算システム１１０は、ｋ１の推定に集中することができ、より高次の放射状多項式成分ｋ２ｒ４、ｋ３ｒ６の影響を無視するか、又はそれらの影響をごくわずかとして扱うことができる。言い換えれば、ステップ５０５で計算システム１１０によって、ｋ１に対する推定値を決定することができ、ｋ２及び／又はｋ３はゼロと推定されるか、又は推定されない。
【００７３】
場合により、ステップ５０５の上記実施形態は組み合わせることができる。例えば、ステップ５０５で、第一のレンズ歪みパラメーターとすることができる、ｋ１に対する推定値を決定することができ、（ｉ）ｐ１及び／若しくはｐ２がゼロと推定されるか、又は推定されず、かつ（ｉｉ）ｋ２及び／若しくはｋ３がゼロと推定されるか、又は推定されない。例えば、図７Ｂは、ステップ５０５を、段階１と名付けられる第一の段階の一部とすることができる、より具体的な例を示し、段階１では、第一のレンズ歪みパラメーターとすることができる、レンズ歪みパラメーターｋ１に対する推定値ｋ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅを決定する。上述したように、第一のレンズ歪みパラメーターに対する推定値を決定することができる一方、第二のレンズ歪みパラメーターに対する推定値をゼロと決定するか、又は第二のレンズ歪みパラメーターに対する推定値は推定しない。図７Ｂの例では、第二のレンズ歪みパラメーターは、ｋ２、ｋ３、ｐ１又はｐ２のうちの一つとすることができ、ｋ２，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｋ３，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｐ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ又はｐ２，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅはゼロと決定されるか、又は決定されない。より具体的には、図７Ｂの例は、ｋ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅを決定することを含むことができ、レンズ歪みモデルの残り全てのレンズ歪みパラメーターに対する推定値をゼロと決定するか、又は残りのレンズ歪みパラメーターの全てに対する推定値を決定しない。より具体的には、レンズ歪みモデルが多項式モデルである場合、図７Ｂに示すように、ｋ２，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｋ３，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｐ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及びｐ２，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅを段階１でゼロと決定するか、又は段階１で決定しない。レンズ歪みモデルが有理多項式モデルである場合、ｋ２，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｋ３，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｋ４，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｋ５，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｐ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及びｐ２，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅを段階１でゼロと決定するか、又は決定しない。
【００７４】
幾つかの実施態様では、図７Ｂの例は、ｋ１に対する多項式モデルの以下の方程式を解く一方で、ｋ２、ｋ３、ｐ１及びｐ２をゼロに限定することを含むことができる。
【数５５】
0006800506.tif 000055
【００７５】
これらの方程式は、上述した多項式歪みモデルの歪み関数を含み、上述した射影行列を含む。この例では、［ｕ  ｖ  １］Ｔの値は、キャリブレーション画像（例えば、図６Ｅの６８０Ｅ）から決定することができ、
【数５６】
0006800506.tif 000056
の値は、定義されたパターン要素座標に基づいて決定することができる。場合により、
【数５７】
0006800506.tif 000057
は、カメラ座標系（例えば、図３Ｂ及び４Ｂのカメラ座標系）に対して表現することができ、カメラ（例えば、４７０）とキャリブレーションパターン（例えば、４６０）との空間関係を記述する行列等、変換関数
【数５８】
0006800506.tif 000058
に基づいて、定義されたパターン要素座標から決定することができる。こうした場合、
【数５９】
0006800506.tif 000059
に対するパラメーター値は、パースペクティブ−ｎポイント（ｐｅｒｓｐｅｃｔｉｖｅ−ｎ−ｐｏｉｎｔ）アルゴリズム又は他の何らかの技法によって決定することができる。一実施形態では、上記方程式は、全体の内容が引用することにより全体として本明細書の一部をなす、Ｚｈｅｎｇｙｏｕ  Ｚｈａｎｇによる「Ａ  Ｆｌｅｘｉｂｌｅ  Ｎｅｗ  Ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ」（Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＭＳＲ−ＴＲ−９８−７１）において考察されている技法（Ｚｈａｎｇのアルゴリズムとも呼ばれる）等、任意の技法を使用して解くことができる。
【００７６】
幾つかの実施態様では、図７Ｂの例におけるステップ５０５は、単純化された歪み関数ｄｘ＿ｓｉｍｐｌｉｆｉｅｄ又はｄｙ＿ｓｉｍｐｌｉｆｉｅｄを含む、一つ以上の方程式を解くことを含むことができ、単純化された歪み関数は、ｋ２、ｋ３、ｐ１及びｐ２をゼロに設定することによって得ることができる。
【数６０】
0006800506.tif 000060
【００７７】
例えば、ステップ５０５で計算システム１１０によって、単純化された歪み関数ｄｘ＿ｓｉｍｐｌｉｆｉｅｄ及びｄｙ＿ｓｉｍｐｌｉｆｉｅｄを、非一時的コンピューター可読媒体１１５から読み出すか、又はより一般的には受け取り、上述した他の方程式（例えば、方程式９及び方程式１０）と併せて解くことができる。こうした例では、ステップ５０５で、ｋ１に対する推定値（すなわち、ｋ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ）を決定することができ、レンズ歪みパラメーターの集合の残り全てのレンズ歪みパラメーターに対するそれぞれの推定値は決定しない。
【００７８】
一実施形態では、ステップ５０５はまた、一つ以上の射影パラメーターに対するそれぞれの推定値を決定することも含むことができる。しかしながら、この決定は、場合により、一つ以上の制約を受ける場合がある。例えば、図７Ｂに示すように、射影パラメーターｆｘ、ｆｙ、ｃｘ及びｃｙに対するそれぞれの推定値を決定することもできるが、ｆｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ＝ｆｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅという制約を受ける場合がある。より具体的には、計算システム１１０によって、ｆｘ及びｆｙが非常に類似する値を有すると想定することができ、したがって、段階１で同じ推定値を有するようにそれらを限定し、段階１の複雑性を低減することができる。図７Ｂの例では更に、ｃｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及びｃｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅがそれぞれの固定値を有するという制約を課すことができる。一例として、ｃｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及びｃｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅは、各々ゼロに限定することができる。別の例では、図７Ｂに示すように、ｃｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅは、図３Ｂの
【数６１】
0006800506.tif 000061
軸に沿って、キャリブレーション画像（例えば、６８０Ｅ）の中心に限定することができ、ｃｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅは、図３Ｂの
【数６２】
0006800506.tif 000062
軸に沿って、キャリブレーション画像の中心に限定することができる。例えば、キャリブレーション画像がａピクセル×ｂピクセルのサイズを有する場合、ｃｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅはａ／２と等しくなるように限定することができ、ｃｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅはｂ／２と等しくなるように限定することができる。上記制約によって、段階１でパラメーター値の推定を単純化することができる。更に、射影パラメーターの推定値を限定することによって、推定値の精度を向上させるために、段階１で、レンズ歪みパラメーターｋ１の推定値の最適化に集中することができる。
【００７９】
図５に戻ると、方法５００は、一実施形態において、計算システム１１０によって、第一のレンズ歪みパラメーターの推定値を決定した後に、第一のレンズ歪みパラメーターの推定値に基づいて、第二のレンズ歪みパラメーターに対する推定値を決定する、ステップ５０７を含むことができる。例えば、図８は、ステップ５０７を、段階２と名付けられる第二の段階の一部とすることができる例を示し、段階２で、レンズ歪みパラメーターｋ２に対する推定値ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、レンズ歪みパラメーターｐ１に対する推定値ｐ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及びレンズ歪みパラメーターｐ２に対する推定値ｐ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅを、推定値ｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅを含む、段階１の推定される値に基づいて決定する。図８の例では、ステップ５０７の第二のレンズ歪みパラメーターはｋ２、ｐ１又はｐ２とすることができる。幾つかの例では、更に図８に示すように、第一のレンズ歪みパラメーターｋ１に対する別の推定値（すなわち、ｋ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ）を、段階１からの推定値ｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅに基づいて、段階２で決定することができる。
【００８０】
例えば、図８の段階２はまた、ｄｘ、ｄｙ及び射影行列を含む上記方程式を解くことを含むことができる。一実施形態では、推定値ｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅは、段階２の間に上記方程式を解くときに、ｋ１に対する初期推量（又はより一般的には、初期推定値）として使用することができる。段階１でｋ１の推定に集中するため、その推定値ｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅは高水準の精度を有することができ、それによって、段階２でより高精度及び／又は計算時間の削減をもたらす。段階２におけるより高水準の精度は、ｋ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅだけでなく、ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅにも適用することができる。幾つかの例では、段階２で更に、段階１から推定される値に基づいて（例えば、ｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｆｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及び／又はｃｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅに基づいて）、一つ以上の射影パラメーターに対する、一つ以上のそれぞれの推定値ｆｘ，  ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｙ，  ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｃｘ，  ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及び／又はｃｙ，  ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅを決定することができる。段階２ではまた、初期推量として段階１の出力に依拠することによって、一つ以上の射影パラメーターに対するそれぞれの推定値の精度を向上することができる。一実施形態では、段階２で決定するレンズ歪みパラメーター及び／又は射影パラメーターに対するそれぞれの推定値（例えば、ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｋ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及び／又はｃｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ）は更に、段階１で決定した射影パラメーターの推定値（例えば、ｆｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及び／又はｃｙ，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ）に基づくことができる。
【００８１】
一実施形態では、ステップ５０７は、残りの一つ以上のレンズ歪みパラメーターをゼロと推定すると同時に、又は残りの一つ以上のレンズ歪みパラメーターを推定することなく、カメラキャリブレーションに使用されるレンズ歪みモデルのレンズ歪みパラメーターの部分集合のみを推定することを含むことができる。例えば、第二のレンズ歪みパラメーターに対する推定値は、ステップ５０７で決定することができ、第三のレンズ歪みパラメーターに対する推定値は、ゼロに決定されるか、又は推定されない。例えば、図８は、ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及びｐ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ（これらのうちの一つは、第二のレンズ歪みパラメーターに対する推定値とすることができる）、並びにｋ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅをｋ２、ｐ１、ｐ２及びｋ１それぞれに対して決定し、レンズ歪みパラメーターｋ３に対するｋ３，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅをゼロと推定するか、又は推定しない例を示す。この例では、ｋ３は第三のレンズ歪みパラメーターとすることができる。一実施形態では、ステップ５０７用の第三のレンズ歪みパラメーターは、レンズ歪み又はある特定のタイプのレンズ歪みを記述する、成分の集合の中の最高次成分を記述する係数とすることができる。例えば、ｋ３は、多項式モデルの放射状多項式成分ｋ１ｒ２、ｋ２ｒ４、ｋ３ｒ６の集合の中で最高次の放射状多項式成分ｋ３ｒ６を記述することができる。一実施形態では、ｋ３ｒ６が比較的高次の効果であるため、放射状のレンズ歪みはｋ３の小さな変化に敏感な場合があり、それによって、ｋ３を正確に推定するのに不安定で困難にしうる。更に、不正確なｋ３が、ｋ１、ｋ２、ｐ１及び／又はｐ２に対する推定値の精度にマイナスの影響を与える場合がある。したがって、ステップ５０７、又はより具体的には、段階２で、他のレンズ歪みパラメーター（例えば、ｋ１、ｋ２、ｐ１及び／又はｐ２）の推定に集中するために、第三のレンズ歪みパラメーターｋ３の推定を控えるか、又はゼロと推定することができる。例えば、ステップ５０５〜５０７用に推定されているレンズ歪みパラメーターは、歪みモデルのレンズ歪みパラメーターの集合（例えば、多項式歪みモデル）とすることができ、第三のレンズ歪みパラメーター（例えば、ｋ３）と、歪みモデルのレンズ歪みパラメーターの集合の全ての他のレンズ歪みパラメーターの部分集合（例えば、ｋ１、ｋ２、ｐ１及びｐ２）等、他のレンズ歪みパラメーターの部分集合とに分割することができる。こうした例では、段階２で、第三のレンズ歪みパラメーター（例えば、ｋ３）をゼロと推定すると同時に、又は第三のレンズ歪みパラメーターを推定することなく、レンズ歪みパラメーターの部分集合（例えば、ｋ１、ｋ２、ｐ１及びｐ２）の全てのレンズ歪みパラメーターに対するそれぞれの推定値を決定することができる。場合により、第三のレンズ歪みパラメーター（例えば、ｋ３）の推定は、より詳細に後述するように、後続する段階（例えば、段階３）に持ち越すことができる。
【００８２】
一実施形態では、ステップ５０７は、別の単純化されたバージョンの歪み関数ｄｘ、ｄｙを含む方程式を解くことを含むことができる。この他の単純化されたバージョンは、第三のレンズ歪みパラメーター（例えば、ｋ３）をゼロに限定することによって得られ、ｄｘ＿ｓｉｍｐｌｉｆｉｅｄ２及びｄｙ＿ｓｉｍｐｌｉｆｉｅｄ２をもたらすことができる。
【数６３】
0006800506.tif 000063
【数６４】
0006800506.tif 000064
【００８３】
幾つかの実施態様では、ステップ５０７で計算システム１１０によって、ｋ１、ｋ２、ｐ１、ｐ２、ｆｘ、ｆｙ、ｃｘ及びｃｙについて解くように、非一時的コンピューター可読媒体１１５からｄｘ＿ｓｉｍｐｌｉｆｉｅｄ２及びｄｙ＿ｓｉｍｐｌｉｆｉｅｄ２を受け取り、単純化された歪み関数を含み、射影行列を含む方程式を解くことができる。
【００８４】
図５に戻ると、方法５００は、一実施形態において、計算システム１１０によって、レンズ歪みパラメーターの集合に対するそれぞれの推定値を含む、カメラキャリブレーション情報を決定する、ステップ５０９を含むことができる。レンズ歪みパラメーターの集合に対するそれぞれの推定値は、ステップ５０５で決定する第一のレンズ歪みパラメーターの推定値（例えば、ｋ１，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ）、及び／若しくはステップ５０７で決定する第二のレンズ歪みパラメーターの推定値（例えば、ｋ２，  ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ）を含むか、又はそれらに基づくことができる。
【００８５】
一実施形態では、固有カメラキャリブレーションパラメーターの推定は、段階１及び段階２のみを含むことができ、その場合、レンズ歪みパラメーターの集合に対するそれぞれの推定値は、ステップ５０７で決定する第二のレンズ歪みパラメーターの推定値を少なくとも含むか、又はより具体的には、ｋ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｘ，  ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｙ，  ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及びｃｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅを含むことができる。それぞれの推定値は、例えば、ハンド−アイキャリブレーション若しくはステレオキャリブレーションを実施するように、又は他の何らかの目的のために直接使用することができる。一実施形態では、ステップ５０９での固有カメラキャリブレーションパラメーターの推定には、段階３〜５等、図９Ａから１２Ｂに示す、更なる段階を含むことができる。上述したように、一つの段階からの推定値は、連続する次の段階へ入力されて、より精密化した推定値を生成することができる。
【００８６】
図９Ａは、段階２に続き、ｋ１、ｋ２、ｐ１、ｐ２に対するより精緻化した推定値を、段階２からのそれらのパラメーターの推定値に基づいて生成する、段階３の例を示す。より具体的には、段階３で、段階２の出力に基づいて、ｋ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅを生成することができる。段階３で生成されるこれらの推定値は、段階２からの推定値に対して更新された推定値とみなすことができる。
【００８７】
一実施形態では、段階３は湾曲減少段階とすることができる。湾曲減少段階で、キャリブレーション画像（例えば、図６Ｅの６８０Ｅ）に、上述した歪み関数の逆関数を適用（すなわち、
【数６５】
0006800506.tif 000065
を適用）して、レンズ歪みの影響を除去又は減少するように試みる、キャリブレーション画像の変更されたバージョンを生成することができる。例えば、逆射影行列Ｋ−１をキャリブレーション画像に適用して、
【数６６】
0006800506.tif 000066
座標を決定することができ、
【数６７】
0006800506.tif 000067
は、例えば、特定のパターン要素又は他の特徴が、カメラ視野内のどこに位置するかを表すことができる。座標
【数６８】
0006800506.tif 000068
は、レンズ歪みの影響を含むことができ、逆歪み関数を
【数６９】
0006800506.tif 000069
に適用して、
【数７０】
0006800506.tif 000070
又はレンズ歪みの影響が除去されたか、若しくは他の方法で低減した座標とすることができる、Ｘ及びＹを決定することができる。射影行列Ｋを、
【数７１】
0006800506.tif 000071
又はＸ及びＹに適用して、レンズ歪みの影響を低減する、キャリブレーション画像の変更されたバージョンを生成することができる。キャリブレーション画像の変更されたバージョンの生成は、全体の内容が引用することにより本明細書の一部をなす、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ａｕｔｏｍａｔｉｃ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」と題される米国特許出願番号第１６／２９５，９４０号でより詳細に考察されている。上述したように、レンズ歪みによって、キャリブレーション画像のキャリブレーションパターン（例えば、４６０）の外観の中に、湾曲が導入される場合がある。段階３で、レンズ歪みパラメーターに対する推定値を見つけるように試みることができ、結果として得られる逆歪み関数によって、湾曲を除去又は低減する、キャリブレーション画像の変更されたバージョンを生成できる。
【００８８】
一実施形態では、段階３で、一つ以上のレンズ歪みパラメーターに対する一つ以上のそれぞれの初期推定値（例えば、ｋ１、ｋ２、ｋ３、ｐ１、ｐ２に対する初期推定値）を使用することができる。これらの初期推定値を調整して、段階３用の更新された推定値をもたらすことができる。場合により、これらの初期推量は、先行する段階からのレンズ歪みパラメーターのそれぞれの推定値と等しいか、又はそれらに（直接又は間接的に）基づくことができる。例えば、段階３でのｋ１に対する初期推定値は、ｋ１，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及び／若しくはｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅと等しいか、又はそれらに基づくことができる。この例では、ｋ１は第一のレンズ歪みパラメーターとすることができる。同様に、第二のレンズ歪みパラメーターに対する初期推定値（例えば、ｋ２、ｐ１、ｐ２）は、段階２及び／若しくは段階１からのその推定値（例えば、ｋ２，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及び／又はｋ２，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ）と等しいか、又はそれに基づくことができる。図９Ａに示すように、また湾曲減少段階で、この例では第三のレンズ歪みパラメーターとすることができる、ｋ３に対する推定値を決定することができる。場合により、段階３で、ｋ３の初期推定値をゼロと決定することができる。
【００８９】
上述したように、湾曲減少段階で、その段階用のｋ１、ｋ２、ｋ３、ｐ１及び／又はｐ２の初期推定値に基づいて、カメラ（例えば、４７０）と関連付けられるレンズ歪みを補償する、キャリブレーション画像の変更されたバージョンを生成することができる。例えば、図９Ｂは、キャリブレーション画像６８０Ｅの変更されたバージョンの例を示す。湾曲減少段階は更に、キャリブレーション画像の変更されたバージョンにおける湾曲の量を決定することと、湾曲の量を低減する、ｋ１、ｋ２、ｋ３、ｐ１及び／又はｐ２に対するそれぞれの調整された推定値を生成するために、キャリブレーション画像の変更されたバージョンにおける湾曲の量に基づいて、ｋ１、ｋ２、ｋ３、ｐ１及び／又はｐ２のそれぞれの初期推定値を調整することとを含むことができる。調整は、一度実施することができるか、又はそれぞれの調整された推定値を生み出すように、複数の反復を複数回実施することができる。それぞれの調整された推定値は、湾曲減少段階により生み出される、レンズ歪みパラメーターのそれぞれの更新された推定値として設定することができる。すなわち、それぞれの調整された推定値は、ｋ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ３，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅとして設定することができる。
【００９０】
一実施形態では、直線当てはめ（ｌｉｎｅ  ｆｉｔｔｉｎｇ）技法を使用して、キャリブレーション画像の変更されたバージョンにおける湾曲の量を決定することができる。例えば、キャリブレーションパターン（例えば、４６０）における複数のパターン要素が、複数のドット（例えば、円形ドット）であるとき、湾曲の量は、キャリブレーション画像の変更されたバージョンの中で、複数のドットを通って（例えば、それぞれのドットの中心を通って）複数の直線を当てはめること、及び複数の直線の各直線と、直線が当てはめられる、複数のドットのそれぞれのドット（例えば、それぞれのドットの中心）との間の距離に基づいて、湾曲の量を決定することによって決定することができる。図９Ｃは、未だある程度のレンズ歪みを呈する、キャリブレーション画像の変更されたバージョン（変更されたキャリブレーション画像とも呼ばれる）に対して実施されている、直線当てはめを示す。その結果、直線のうちの一つ以上は、その直線が当てはめられるパターン要素（例えば、ドット）の全てのそれぞれの中心を通らない。より具体的には、図９Ｃは、図９Ｂのドットの一部分に対する直線当てはめを示す。図９Ｃでは、四つのドットを通って当てはめられる直線は、四つのドットのうち三つのドットのそれぞれの中心からずれている。湾曲の量は、当てはめられた直線から出ているそれぞれの矢印によって示すように、図９Ｃにおける各ドットの中心と当てはめられた直線との間の、それぞれの距離に基づいて計算することができる。一実施形態では、キャリブレーション画像の変更されたバージョンに対する湾曲の量は、例えば、直線当てはめに関与する個々の直線に対する、それぞれの湾曲スコアの合計とすることができる、総湾曲スコアによって表すことができる。一実施形態では、湾曲減少段階は、キャリブレーション画像の変更されたバージョンに対する総湾曲スコアを最小限にするように、複数の歪みパラメーターのそれぞれの推定される値の最適化を含むことができ、変更されたバージョンは、推定される値に基づいて生成される。直線当てはめ技法は、全体の内容が引用することにより本明細書の一部をなす、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ａｕｔｏｍａｔｉｃ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」と題される米国特許出願番号第１６／２９５，９４０号でより詳細に考察されている。
【００９１】
一実施形態では、射影パラメーターのうちの一つ以上、又はより具体的には、射影行列若しくは逆射影行列は、段階３で値を固定することができる。例えば、図９Ａは、段階３で射影パラメーターｆｘ、ｆｙ、ｃｘ、ｃｙが、段階２からのそれぞれの推定値に値を固定される例を示す。言い換えれば、ｆｘ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｆｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｆｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｃｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及びｃｙ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｃｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅである。段階３でのレンズ歪みパラメーターに対する更新された推定値は、段階２からの射影パラメーターに対するそれぞれの推定値に基づいて決定することができる。場合により、射影パラメーターは、カメラ視野内の位置とピクセル座標との線形変換を記述することができる。こうした場合、湾曲が非線形効果のためでありうるため、射影パラメーターは、キャリブレーション画像の変更されたバージョンにおける湾曲の量にほとんど又は全く影響を及ぼさない場合がある。したがって、射影パラメーターは、レンズ歪みパラメーター、又はキャリブレーション画像の変更されたバージョンにおける湾曲の量に影響を及ぼす他のパラメーターに集中するため、段階３の間、値を固定することができる。
【００９２】
一実施形態では、ステップ５０９でカメラキャリブレーション情報を決定することは、段階１から段階３のみを含むことができ、レンズ歪みパラメーターの集合に対するそれぞれの推定値は、ハンド−アイキャリブレーション若しくはステレオキャリブレーションを実施するように、又は他の何らかの目的のために直接使用することができるｋ１，  ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ２，  ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ３，  ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ１，  ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ２，  ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅと等しくすることができる。一実施形態では、図１０に示すように、ステップ５０９でカメラキャリブレーション情報を決定することは、段階３に続く段階４を含むことができる。段階４で、例えば、段階３からの推定値を入力として使用して、様々なレンズ歪みパラメーター及び／又は射影パラメーターに対する、より精密化した推定値を生成することができる。
【００９３】
一実施形態では、段階４で、ｋ３の推定値、又はより一般的には、第三のレンズ歪みパラメーターの値を、ｋ３，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅがｋ３，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅと等しくなるような、段階３で出力される推定値に固定することができる。上述したように、カメラキャリブレーション情報は、レンズ歪みモデル（例えば、多項式モデル）の放射状多項式成分の集合の中で、最高次の放射状多項式成分を記述する、第三のレンズ歪みパラメーター（例えば、ｋ３）を含むことができる。場合により、第三のレンズ歪みパラメーターの感度が、他のレンズ歪みパラメーターに対する推定値の精度に影響を与える場合があるため、段階４で、こうした第三のレンズ歪みパラメーターの値を固定することができる。
【００９４】
一実施形態では、段階４で、ｆｘ、ｆｙ、ｃｘ及び／又はｃｙ等、射影パラメーターに対する推定値を更新することができる。より具体的には、上述したように、射影パラメーターは、場合により、段階３で値を固定することができ、段階３で、第三のレンズ歪みパラメーターに対する推定値（例えば、ｋ３，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ）を生成し、第一のレンズ歪みパラメーターに対する更新された推定値（例えば、ｋ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ）及び第二のレンズ歪みパラメーターに対する更新された推定値（例えば、ｋ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ又はｐ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ）等、他のレンズ歪みパラメーターに対するそれぞれの更新された推定値を生成する。段階３では、射影パラメーターは、図９Ａに示すように、ｆｘ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｆｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｆｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｃｘ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅ及びｃｙ，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ＝ｃｙ，ｓｔａｇｅ２＿ｅｓｔｉｍａｔｅという制約を受ける場合がある。段階３の後、射影パラメーターに対する推定値は、図１０に示すように、ステップ４で更新することができる。例えば、段階４で計算システム１１０によって、ｆｘ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｃｙ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅを決定することができる。段階４によって生成される射影パラメーターに対するこれらの更新された推定値は、ｋ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｋ３，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ及び／又はｐ２，ｓｔａｇｅ３＿ｅｓｔｉｍａｔｅ等、段階３から決定されたレンズ歪みパラメーターの推定値に基づいて決定することができる。
【００９５】
一実施形態では、ステップ５０９でカメラキャリブレーション情報を決定することは、段階１から段階４のみを含むことができ、レンズ歪みパラメーターの集合のそれぞれの推定値は、ｋ１，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｋ２，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｋ３，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅと等しくすることができ、射影パラメーターに対するそれぞれの推定値は、ハンド−アイキャリブレーション若しくはステレオキャリブレーションを実施するように、又は他の何らかの目的のために直接使用することができる、ｆｘ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ、ｃｘ，  ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ及びｃｙ，  ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅと等しくすることができる。一実施形態では、ステップ５０９は、段階４に続く段階５を含むことができる。図１１に示すように、段階５は、段階４の後、又はより一般的には、段階１の後とすることができる。
【００９６】
場合により、第一のレンズ歪みパラメーター及び／又は第二のレンズ歪みパラメーター（例えば、ｋ１及びｋ２）は、段階５で値を固定することができ、第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーター以外の、更なるレンズ歪みパラメーター（例えば、ｋ３、ｐ１、ｐ２）に対する推定値が、その段階で決定される。こうした場合、段階４からのｋ１及びｋ２に対する推定値は、推定値が、段階５で更に精密化される必要がないように、十分正確であることができる。更に、ｋ１及びｋ２の値を固定することによって、ｋ３を正確に推定する安定性を向上させることができ、したがって、段階５でそのパラメーターの改善に集中することができる。
【００９７】
図１１に示すように、段階５における第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーター（例えば、ｋ１、ｋ２）は、ｋ１，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ及びｋ２，ｓｔａｇｅ４＿ｅｓｔｉｍａｔｅ等、段階４で出力される推定値に値を固定することができる。幾つかの例では、第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーターの推定値（例えば、ｋ１，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ及びｋ２，ｓｔａｇｅ１＿ｅｓｔｉｍａｔｅ）が、より早期の段階（例えば、段階１）で決定される場合、段階４からの第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーターの推定値は、それぞれ第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーターの更新された推定値と呼ぶことができる。こうした例では、段階５の更なるレンズ歪みパラメーターに対する推定値は、第一のレンズ歪みパラメーターの更新された推定値及び／又は第二のレンズ歪みパラメーターの更新された推定値に基づいていると呼ぶことができる。
【００９８】
一実施形態では、ステップ５０９で決定されるカメラキャリブレーションは、ｋ１，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｋ２，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｋ３，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｐ１，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｐ２，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｆｘ，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｆｙ，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ、ｃｘ，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ及びｃｙ，ｓｔａｇｅ５＿ｅｓｔｉｍａｔｅ等、段階５からの推定値を含むことができる。一実施形態では、これらの推定値を使用して、図１２Ａに示すように、ハンド−アイキャリブレーション及び／又はステレオキャリブレーションを実施することができる。ハンド−アイキャリブレーションによって、カメラ（例えば、図４Ｂの４７０）とロボットのベース（例えば、ロボット４５０のベース４５２）との空間関係等、カメラ（例えば、４７０）とその外部環境との関係を決定することができる。ステレオキャリブレーションによって、カメラ（例えば、１７０／３７０／４７０）と別のカメラ（例えば、１８０）との空間関係を決定することができる。ハンド−アイキャリブレーション及びステレオキャリブレーションは、全体の内容が引用することにより全体として本明細書の一部をなす、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ａｕｔｏｍａｔｉｃ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」と題される米国特許出願番号第１６／２９５，９４０号でより詳細に考察されている。
【００９９】
場合により、段階５からの推定値を使用して、レンズ歪みパラメーターの更なる推定値を決定するか、又は他のレンズ歪みパラメーターに対する推定値を決定することができる。例えば、図１２Ｂは、方法５００のカメラキャリブレーションで、レンズ歪みパラメーターｋ１、ｋ２、ｋ３、ｋ４、ｋ５、ｋ６、ｐ１及びｐ２を含む、有理モデルを使用する例を示す。こうした例では、段階１から５では、多項式モデルのレンズ歪みパラメーター、又はより具体的には、ｋ１、ｋ２、ｋ３、ｐ１及びｐ２の推定に専念することができ、それらの段階におけるｋ４、ｋ５、ｋ６は、ゼロと推定されるか、又は推定されない。こうした例では、ステップ５０９は更に、少なくとも段階５からのｋ１、ｋ２、ｋ３、ｐ１及びｐ２の推定値に基づいて、少なくともｋ４、ｋ５又はｋ６に対する推定値を決定する、段階６を含むことができる。
【０１００】
一実施形態では、図７Ａから１２Ｂの段階１から段階６のうちの一つ以上の段階は、省略又は再配置することができる。例えば、幾つかの実施形態で、段階３から６を省略することができる。別の例として、幾つかの実施形態で、段階４から６を省略するか、又は段階２、段階４若しくは段階５を省略することができる。
【０１０１】
図５に戻ると、方法５００は、計算システム１１０によって、カメラキャリブレーションが実施された後に、カメラ（例えば、４７０）によって生成される後続する画像を受け取る、ステップ５１１を含むことができる。例えば、画像は、デパレタイズ動作又はビンピッキング動作等のロボットの動作中に、カメラ（例えば、４７０）によって生成することができる。幾つかのシナリオでは、画像は、ロボットと相互作用があるべき物体を取り込むか、又は他の方法で表すことができる。例えば、物体は、デパレタイズされるべき包装品、又はつかまれる部品とすることができる。一実施形態では、方法５００は、計算システム１１０によって、図４Ａ〜４Ｂのロボットアーム４５４の移動等、ロボット移動を制御するための移動コマンドを生成する、ステップ５１３を含むことができる。移動コマンドは、後続する画像に基づいて、かつカメラキャリブレーション情報（例えば、固有カメラキャリブレーション情報及び／又はハンド−アイキャリブレーション情報）に基づいて生成することができ、ロボットの相互作用を実施するように使用することができる。例えば、計算システム１１０は、ロボットアーム４５４とつかまれる物体との空間関係を決定するように構成することができ、空間関係は、全体の内容が引用することにより全体として本明細書の一部をなす、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ａｕｔｏｍａｔｉｃ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」と題される米国特許出願番号第１６／２９５，９４０号でより詳細に考察されているように、後続する画像に基づいて、かつカメラキャリブレーション情報に基づいて決定することができる。一実施形態では、ステップ５１１及び５１３等、図５の中にある方法５００の一つ以上のステップを省略することができる。
【０１０２】
上述したように、本開示の一態様は、ステレオカメラキャリブレーションの精度を向上させること、より具体的には、ステレオカメラキャリブレーションによって使用される推定値（例えば、推定される変換関数）の中にどのくらい誤差があるのかを効果的に測定し、それにより、ステレオカメラキャリブレーションが、こうした推定値における誤差を低減することによって、ステレオカメラキャリブレーションの向上を可能にすることに関する。ステレオカメラキャリブレーションは、例えば、二つのカメラの空間関係を決定することを含むことができる。例えば、図１３Ａ〜１３Ｂは、第一のカメラ４７０及び第二のカメラ４８０を含む、システム１３００を示す。システム１３００は、図１Ｃのシステム１００Ｂ及び／又は図４Ａ〜４Ｂのシステム４００の一実施形態とすることができる。更に、カメラ４８０は、カメラ１８０の一実施形態とすることができる。システム１３００は、第一のカメラ４７０及び第二のカメラ４８０が取り付けられる、取付フレーム１３０５を含むことができる。場合により、取付フレーム１３０５で、二つのカメラ４７０、４８０を、互いに対して場所及び／又は向きを固定したまま維持することができる。
【０１０３】
図１３Ａ〜１３Ｂの実施形態では、ステレオカメラキャリブレーションは、第一のカメラ４７０と第二のカメラ４８０との空間関係、例えば、二つのカメラの相対位置及び相対的な向きを決定するように実施することができる。例えば、ステレオキャリブレーションは、空間関係を記述する変換関数ＴＣａｍｅｒａ１  Ｃａｍｅｒａ２又はＴＣａｍｅｒａ２  Ｃａｍｅｒａ１を決定することを含むことができる。変換関数は、例えば、第一のカメラ４７０の座標系と第二のカメラ４８０の座標系との間の回転及び／又は並進を記述する、以下の方程式におけるような、行列とすることができる。
【数７２】
0006800506.tif 000072
【０１０４】
一実施形態では、図１３Ａ〜１３Ｂのシステム１３００用のステレオカメラキャリブレーションは、ロボット４５０上に配置されるか、又は他の何らかの構造上に配置することができる、キャリブレーションパターン４６０の使用を含むことができる。図４Ｃに関して上述したように、キャリブレーションパターンは、パターン要素４６１１等、複数のパターン要素を有することができる。幾つかの例では、パターン要素は、第一のカメラ４７０に対するそれぞれの座標の第一の組を有し、第二のカメラ４８０に対するそれぞれの座標の第二の組を有する、それぞれの位置にあるとすることができる。より具体的には、パターン要素の物理的位置は、第一のカメラ４７０の座標系における座標の第一の組を有し、第二のカメラの座標系における座標の第二の組を有することができる。例えば、図１３Ｂに示すように、パターン要素４６１１の位置は、第一のカメラ４７０の座標系に座標［ｘ１  ｙ１  ｚ１］ＴＣａｍｅｒａ１を有し、第二のカメラ４８０の座標系に座標［ｘ’１  ｙ’１  ｚ’１］Ｔ  Ｃａｍｅｒａ２を有することができる。更に、図４Ｃに関して上述したように、パターン要素のそれぞれの位置はまた、パターン座標系における定義されたパターン要素座標を有することができる。例えば、パターン要素４６１１は、パターン座標系において座標［ｘ’’１  ｙ’’１  ｚ’’１］Ｔ  Ｐａｔｔｅｒｎにあるとすることができ、ｘ’’１、ｙ’’１及びｚ’’１の値は事前に定義される。一実施形態では、ステレオキャリブレーションは、より詳細に後述するように、座標の第一の組、座標の第二の組及び／又は定義されたパターン要素座標に基づいて実施することができる。
【０１０５】
図１４は、ステレオキャリブレーションを実施するための方法１４００のフロー図を示す。一実施形態では、方法１４００は、図１Ａ〜１Ｃ及び図２の計算システム１１０によって、又はより具体的には、計算システム１１０の制御回路１１１によって実施することができる。ステレオキャリブレーションは、第一のカメラ視野（例えば、図１３Ａの４１０）を有する第一のカメラ（例えば、図１Ｃ及び１３Ａの１７０／４７０）と、第二のカメラ視野（例えば、４２０）を有する第二のカメラ（例えば、１８０／４８０）とを含むことができる。上述したように、計算システム１１０は、（図２の）通信インターフェース１１３を介して等、第一のカメラ（例えば、１７０／４７０）及び第二のカメラ（例えば、４８０）と通信するように構成することができる。一実施形態では、方法１４００は、複数のパターン要素を有するキャリブレーションパターン（例えば、１６０／４６０）が、第一のカメラ視野（例えば、４１０）及び第二のカメラ視野（例えば、４２０）内にあるか、又はあったとき、かつ更に、第一のカメラ（例えば、４７０）及び第二のカメラ（例えば、４８０）が、第一のキャリブレーション画像及び第二のキャリブレーション画像それぞれを生成したときに実施することができる。第一のキャリブレーション画像及び第二のキャリブレーション画像は各々、キャリブレーションパターン（例えば、４６０）を表す画像とすることができる。例えば、図１５Ａ及び１５Ｂは、第一のキャリブレーション画像１５８０Ａ及び第二のキャリブレーション画像１５８０Ｂを示し、両方ともに、図１３Ａ及び１３Ｂのキャリブレーションパターン４６０を表すそれぞれの画像である。第一のキャリブレーション画像１５８０Ａは、第一のカメラ４７０によって生成することができ、第二のキャリブレーション画像１５８０Ｂは、第二のカメラ４８０によって生成することができる。更に、キャリブレーションパターン４６０は、キャリブレーション画像１５８０Ａ、１５８０Ｂが生成される期間中、第一のカメラ４７０及び第二のカメラ４８０に対して固定したままとすることができる。こうした状況では、第一のキャリブレーション画像１５８０Ａは、第二のキャリブレーション画像１５８０Ｂと一致すると呼ぶことができ、又は逆もまた同様である。
【０１０６】
図１４に戻ると、方法１４００は、一実施形態において、計算システム１１０によって、第一のカメラ（例えば、４７０）により生成される第一のキャリブレーション画像（例えば、１５８０Ａ）を受け取る、ステップ１４０１を含むことができる。方法は更に、計算システム１１０によって、第二のカメラ（例えば、４８０）により生成される第二のキャリブレーション画像（例えば、１５８０Ｂ）を受け取る、ステップ１４０３を含むことができる。場合により、計算システム１１０によって、第一のキャリブレーション画像（例えば、１５８０Ａ）及び／又は第二のキャリブレーション画像（例えば、１５８０Ｂ）を、第一のカメラ（例えば、４７０）及び／又は第二のカメラ（例えば、４８０）から直接受け取ることができる。場合により、第一のキャリブレーション画像（例えば、１５８０Ａ）及び／又は第二のキャリブレーション画像（例えば、１５８０Ｂ）は、図２の非一時的コンピューター可読媒体１１５（例えば、ソリッドステートドライブ）に記憶させておくことができ、計算システム１１０によって、第一の及び／又は第二のキャリブレーション画像を、ソリッドステートドライブから受け取ることができる。
【０１０７】
一実施形態では、方法１４００は、計算システムによって、上述した行列ＴＣａｍｅｒａ１  Ｃａｍｅｒａ２又はＴＣａｍｅｒａ２  Ｃａｍｅｒａ１等、第一のカメラと第二のカメラとの空間関係を記述するために、変換関数の推定値を決定する、ステップ１４０５を含むことができる。行列は、例えば、第一のカメラ４７０の座標系と第二のカメラ４８０の座標系との間の回転及び／又は並進を記述することができる。一実施形態では、変換関数の推定値は、８点アルゴリズム又は他の何らかの技法を使用して決定することができる。
【０１０８】
上述したように、本開示の一態様は、ステップ１４０５から決定される変換関数の誤差の量を決定することに関する。場合により、誤差は、第一のキャリブレーション画像（例えば、１５８０Ａ）から決定される第一の複数の座標と、第二のキャリブレーション画像（例えば、１５８０Ｂ）から決定される複数の変換された座標との比較に基づいて決定することができる。ステップ１４０７から１４１３に関してより詳細に後述するように、比較は、第一の複数の座標と複数の変換された座標との間のオフセット（例えば、座標間のそれぞれの距離）を決定すること、及び／又は座標に基づいて角度値を決定することを含むことができる。更に後述するように、計算システムによって、再投影誤差、再構成誤差及び／又は再構成誤差角度を決定して、変換関数の誤差の量を特徴付けることができる。後述するステップを使用して、変換関数の誤差を決定する一方で、場合により、ステップを使用して変換関数を決定することもできる。例えば、より詳細に後述する、ステップ１４０７及び１４０９で決定される座標は、幾つかの例では、ステップ１４０５で変換関数の推定値を決定するように使用することができる。
【０１０９】
より具体的には、方法１４００は、計算システム１１０によって、第一のキャリブレーション画像（例えば、図１５Ａの１５８０Ａ）に基づいて、第一のカメラ（例えば、４７０）に対する複数のパターン要素（例えば、図４Ｃの４６１１から４６１２５）のそれぞれの位置を記述するか、又は他の方法で表す、第一の複数の座標を決定する、ステップ１４０７を含むことができる。一実施形態では、方法１４００は、計算システム１１０によって、第二のキャリブレーション画像（例えば、図１５Ｂの１５８０Ｂ）に基づいて、第二のカメラ（例えば、図１３Ａ及び１３Ｂの４８０）に対する複数のパターン要素（例えば、図４Ｃの４６１１から４６１２５）のそれぞれの位置を記述する、第二の複数の座標を決定する、ステップ１４０９を含むことができる。より詳細に後述する（ステップ１４１１及び１４１３に関して）ように、第二の複数の座標は、第一のカメラ（例えば、４７０）と第二のカメラ（例えば、４８０）との空間関係の推定値である、変換関数の推定値を使用して、複数の変換された座標に変換することができる。変換関数の推定値が、高水準の精度を有する場合、第一の複数の座標及び複数の変換された座標は、実質的に又は厳密に同じであることができる。変換関数の推定値が精度を失うと、第一の複数の座標及び複数の変換された座標は、互いとのより大きな差異を呈する場合がある。
【０１１０】
ステップ１４０７及び１４０９を振り返ると、それらのステップで決定される第一の複数の座標及び／又は第二の複数の座標は、場合により、画像座標、又はより具体的には、ピクセル座標とすることができる。一例として、第一の複数の座標は、図１５Ａに示す、第一の複数のピクセル座標［ｕ１  ｖ１］Ｔ…［ｕ２５  ｖ２５］Ｔとすることができる。これらのピクセル座標は、（図４Ｃの）キャリブレーションパターン４６０の複数のパターン要素４６１１から４６１２５が、図１５Ａの第一のキャリブレーション画像１５８０Ａの中に現れる、それぞれの位置を記述することができる。その上、上述したように、第一の複数のピクセル座標［ｕ１  ｖ１］Ｔ…［ｕ２５  ｖ２５］Ｔは、第一のカメラ（例えば、４７０）に対して表現することができる。例えば、第一の複数の座標は、第一のカメラ（例えば、４７０）の画像センサー（例えば、図３Ａの３７３／３７３Ａ）の座標系で表現することができる。図１５Ｂに示す一例では、第二の複数の座標は、（図４Ｃの）キャリブレーションパターン４６０の複数のパターン要素４６１１から４６１２５が、第二のキャリブレーション画像１５８０Ｂの中に現れる、それぞれの位置を記述する、第二の複数のピクセル座標［ｕ’１  ｖ’１］Ｔ…［ｕ’２５  ｖ’２５］Ｔとすることができる。第二の複数のピクセル座標［ｕ’１  ｖ’１］Ｔ…［ｕ’２５  ｖ’２５］Ｔは、第二のカメラ（例えば、４８０）に対して表現することができる。例えば、第二の複数の座標は、第二のカメラ（例えば、４８０）の画像センサーの座標系で表現することができる。
【０１１１】
場合により、ステップ１４０７で決定される第一の複数の座標、及び／又はステップ１４０９で決定される第二の複数の座標は、３Ｄ座標とすることができる。一例として、第一の複数の座標は、図１３Ｂに示す、第一の複数の３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１とすることができ、図１３Ｂの第一のカメラ４７０に対する、キャリブレーションパターン４６０の複数のパターン要素４６１１〜４６１２５のそれぞれの物理的位置を記述するか、又は他の方法で表すことができる。第一の複数の３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…  ［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１は、第一のカメラ４７０の位置及び向きに関して定義される座標系とすることができる、第一のカメラ４７０の座標系（第一のカメラ座標系と呼ぶこともできる）に対して表現することができる。更に図１３Ｂに示すように、第二の複数の座標は、第二の複数の３Ｄ座標［Ｘ’１  Ｙ’１  Ｚ’１］ＴＣａｍｅｒａ２…［Ｘ’２５  Ｙ’２５  Ｚ’２５］ＴＣａｍｅｒａ２とすることができ、第二のカメラ４８０に対する、キャリブレーションパターン４６０の複数のパターン要素４６１１〜４６１２５のそれぞれの物理的位置を記述することができる。より具体的には、第二の複数の３Ｄ座標［Ｘ’１  Ｙ’１  Ｚ’１］ＴＣａｍｅｒａ２…［Ｘ’２５  Ｙ’２５  Ｚ’２５］ＴＣａｍｅｒａ２は、第二のカメラ４８０の位置及び向きに関して定義される座標系とすることができる、第二のカメラ４８０の座標系（第二のカメラ座標系と呼ぶこともできる）に対して表現することができる。
【０１１２】
一実施形態では、第一の複数の座標及び／又は第二の複数の座標が３Ｄ座標である場合、それらの座標は、場合により、画像座標に基づいて決定することができる。例えば、ステップ１４０７の第一の複数の座標が、３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１である場合、これらの３Ｄ座標は、第一のキャリブレーション画像（例えば、１５８０Ａ）からのピクセル座標［ｕ１  ｖ１］Ｔ…  ［ｕ２５  ｖ２５］Ｔに基づいて決定することができる。こうした場合、３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１は、キャリブレーションパターン４６０が、第一のカメラ４７０によって撮影されるときの、パターン要素４６１１〜４６１２５のそれぞれの物理的位置を示すことができる。３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１は、こうした例では、パースペクティブ−ｎポイントアルゴリズムに基づいて、カメラキャリブレーション情報（例えば、方法５００からの）に基づいて、及び／又は他の何らかの技法に基づいて決定することができる。同様に、ステップ１４０９の第二の複数の座標が、３Ｄ座標［Ｘ’１  Ｙ’１  Ｚ’１］ＴＣａｍｅｒａ２…［Ｘ’２５  Ｙ’２５  Ｚ’２５］ＴＣａｍｅｒａ２である場合、これらの３Ｄ座標は、図１５Ｂの第二のキャリブレーション画像１５８０Ｂからのピクセル座標［ｕ’１  ｖ’１］Ｔ…［ｕ’２５  ｖ’２５］Ｔに基づいて決定することができる。
【０１１３】
一実施形態では、方法１４００は、計算システム１１０によって、変換関数の推定値に基づいて、第二の複数の座標を複数の変換された座標に変換する、ステップ１４１１を含むことができ、複数の変換された座標は、第一のカメラ（例えば、４７０）に対してのものである。場合により、ステップ１４１１は、第一のカメラ（例えば、４７０）に対して表現されることを意図している、変換された座標を生成するために、変換関数の推定値を第二の複数の座標（カメラ４８０等、第二のカメラに対して表現される）に適用することを含むことができる。上述したように、変換関数の推定値の精度は、変換された座標がどのくらい第一の複数の座標（また、第一のカメラに対しても表現される）に近いかによって、正確に測定することができる。
【０１１４】
一実施形態では、複数の変換された座標は、複数の画像座標とすることができる。第一の複数の座標もまた、複数の画像座標である場合、複数の変換された座標は、更なる複数の画像座標と呼ぶことができる。変換された座標は、画像座標である場合、より詳細に後述する、再投影誤差を決定するために使用することができる。一例として、図１６Ａは、複数の変換された座標が、画像座標、又はより具体的には、ピクセル座標［ｑ’１  ｒ’１］Ｔ…［ｑ’２５  ｒ’２５］Ｔである例を示し、それらの座標によって、例えば、第二のキャリブレーション画像が、第二のカメラの代わりに第一のカメラ（例えば、４７０）によって生成されていた場合、パターン要素４６１１から４６１２５が、第二のキャリブレーション画像の中のどこに現れるかを推定することができる。すなわち、ピクセル座標［ｑ’１  ｒ’１］Ｔ…［ｑ’２５  ｒ’２５］Ｔは、パターン要素４６１１から４６１２５の物理的位置が、第一のカメラ（例えば、４７０）の画像センサー上で投影されるであろう場所に近似することができる。
【０１１５】
一実施形態では、複数の変換された座標は、画像座標である場合、３Ｄ座標に基づいて生成することができる。例えば、３Ｄ座標は、パターン要素４６１１から４６１２５の物理的位置を記述することができ、方法５００からの射影パラメーターを使用する射影行列等の射影行列を使用して、画像座標の中に投影できる。例えば、図１６Ｂは、変換関数の推定値を使用して生成され、第一のカメラ（例えば、４７０）に対して又はおおよそ対して表現する、複数の３Ｄ座標［ａ’１  ｂ’１  ｃ’１］ＴＣａｍｅｒａ１…  ［ａ’２５  ｂ’２５  ｃ’２５］Ｔ Ｃａｍｅｒａ１を示す。場合により、画像座標［ｑ’１  ｒ’１］Ｔ…  ［ｑ’２５  ｒ’２５］Ｔは、方程式１又は方程式７〜１０に関して上述したように、第一のカメラ（例えば、４７０）の射影行列及び／又はレンズ歪みパラメーターを、３Ｄ座標［ａ’１  ｂ’１  ｃ’１］ＴＣａｍｅｒａ１…  ［ａ’２５  ｂ’２５  ｃ’２５］Ｔ Ｃａｍｅｒａ１に適用することによって決定することができる。上述したように、射影行列を使用して、第一のカメラの視野（例えば、４１０）、又はより具体的には、３Ｄ座標［ａ’１  ｂ’１  ｃ’１］ＴＣａｍｅｒａ１…  ［ａ’２５  ｂ’２５  ｃ’２５］Ｔ Ｃａｍｅｒａ１における位置が、第一のカメラ（例えば、４７０）の画像平面へどのように投影されるかを決定することができる。この例で３Ｄ座標は、以下の関係（同次形で述べる）に基づいて決定することができる。
［ａ’ｎ  ｂ’ｎ  ｃ’ｎ  １］Ｔ  Ｃａｍｅｒａ１＝ＴＣａｍｅｒａ２  Ｃａｍｅｒａ１  ［Ｘ’ｎ  Ｙ’ｎ  Ｚ’ｎ  １］ＴＣａｍｅｒａ２  （方程式１５）
【０１１６】
上記例では、ＴＣａｍｅｒａ２  Ｃａｍｅｒａ１は、ステップ１４０５で決定される変換関数の推定値である、行列とすることができ、［Ｘ’ｎ  Ｙ’ｎ  Ｚ’ｎ］ＴＣａｍｅｒａ２は、図３Ｂに関して上述したように、第二のカメラ（例えば、４８０）に関するパターン要素４６１１から４６１２５の物理的位置を記述する、３Ｄ座標とすることができる。３Ｄ座標［Ｘ’１  Ｙ’１  Ｚ’１］ＴＣａｍｅｒａ２…［Ｘ’２５  Ｙ’２５  Ｚ’２５］ＴＣａｍｅｒａ２は、例えば、第二のキャリブレーション画像（例えば、１５８０Ｂ）及び定義されたパターン要素座標（例えば、［Ｘ’’１  Ｙ’’１  Ｚ’’１］ＴＰａｔｔｅｒｎ…［Ｘ’’２５  Ｙ’’２５  Ｚ’’２５］ＴＰａｔｔｅｒｎ）に基づいて決定することができる。より具体的には、パースペクティブ−ｎポイントアルゴリズム又はＺｈａｎｇのアルゴリズム等の技法が、３Ｄ座標［Ｘ’１  Ｙ’１  Ｚ’１］ＴＣａｍｅｒａ２…［Ｘ’２５  Ｙ’２５  Ｚ’２５］ＴＣａｍｅｒａ２を決定する際に使用することができる。上記方程式（方程式１５）の結果を、場合により、画像座標［ｑ’１  ｒ’１］Ｔ…［ｑ’２５  ｒ’２５］Ｔを決定するように使用することができるため、これらの場合の画像座標は、変換関数の推定値に基づき、したがって、より詳細に後述するように、変換関数の推定値の精度を決定するために使用することができる。
【０１１７】
一実施形態では、ステップ１４１１で決定される複数の変換された座標は、第一のカメラ座標系に対する等、第一のカメラ（例えば、４７０）に対するパターン要素４６１１から４６１２５の物理的位置を推定する、複数の３Ｄ座標とすることができる。例えば、こうした実施形態における複数の変換された座標は、方程式１５で上述したように、変換関数の推定値を使用して決定される、３Ｄ座標［ａ’ｎ  ｂ’ｎ  ｃ’ｎ  １］Ｔ  Ｃａｍｅｒａ１とすることができる。第一の複数の座標もまた、複数の３Ｄ座標である場合、複数の変換された座標は、複数の変換された座標と呼ぶことができる。
【０１１８】
図１４に戻ると、方法１４００は、一実施形態において、計算システム１１０によって、第１の複数の座標と複数の変換された座標とのそれぞれの差異を記述する、誤差パラメーター値を決定する、ステップ１４１３を含むことができる。
【０１１９】
一実施形態では、誤差パラメーター値は、第一の複数の座標と複数の変換された座標との間のそれぞれの距離（又はより一般的には、オフセット）を表す値に基づくことができる。第一の複数の座標及び複数の変換された座標が、画像座標（例えば、ピクセル座標）である場合、誤差パラメーター値は、後述するように、再投影誤差とすることができる。第一の複数の座標及び複数の変換された座標が、３Ｄ座標である場合、誤差パラメーター値は、また後述するように、再構成誤差又は再構成誤差角度とすることができる。
【０１２０】
例えば、図１７Ａは、第一の複数の座標が、第一の複数のピクセル座標［ｕ１  ｖ１］Ｔ…［ｕ２５  ｖ２５］Ｔ（図１５Ａに示すような）であり、複数の変換された座標が、更なる複数のピクセル座標［ｑ’１  ｒ’１］Ｔ…［ｑ’２５  ｒ’２５］Ｔ（図１６Ａに示すような）である、例を示す。こうした例では、誤差パラメーター値は、第一の複数のピクセル座標と、更なる複数のピクセル座標との間のそれぞれの距離ｄ＿ｐｉｘｅｌｎ（画像距離、又はより具体的には、ピクセル距離とも呼ばれる）に基づくことができる。
【数７３】
0006800506.tif 000073
【０１２１】
場合により、誤差パラメーター値は、それぞれのピクセル距離（例えば、ｄ＿ｐｉｘｅｌ１からｄ＿ｐｉｘｅｌ２５）の平均、又はそれぞれのピクセル距離に基づく他の何らかの統計の測定基準とすることができる。こうした誤差パラメーター値は、再投影誤差と呼ぶことができる。
【０１２２】
別の例として、図１７Ｂは、第一の複数の座標が、第一の複数の３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１（図１３Ａに示すような）であり、複数の変換された座標が、複数の３Ｄ座標［ａ’１  ｂ’１  ｃ’１］Ｔ  Ｃａｍｅｒａ１…［ａ’２５  ｂ’２５  ｃ’２５］Ｔ  Ｃａｍｅｒａ１（図１６Ｂに示すような）である状況を示す。こうした例では、誤差パラメーター値は、第一の複数の３Ｄ座標と更なる複数の３Ｄ座標との間のそれぞれの距離ｄ＿ｐｈｙｓｉｃａｌｎ（３Ｄ距離又は物理的距離とも呼ばれる）に基づくことができる。
【数７４】
0006800506.tif 000074
【０１２３】
場合により、誤差パラメーター値は、それぞれの３Ｄ距離（例えば、ｄ＿ｐｈｙｓｉｃａｌ１からｄ＿ｐｈｙｓｉｃａｌ２５）の平均、又はそれぞれの３Ｄ距離に基づく他の何らかの統計の測定基準とすることができる。こうした誤差パラメーター値は、再構成誤差と呼ぶことができる。
【０１２４】
一実施形態では、再投影誤差又は再構成誤差の有用性は、第一のカメラ（例えば、４７０）又は第二のカメラ（例えば、４８０）と、取り込まれている（例えば、撮影された）キャリブレーションパターン（例えば、４６０）との間の距離に依存することができる。例えば、キャリブレーションパターン（例えば、４６０）が、第一のカメラ（例えば、４７０）及び／又は第二のカメラ（例えば、４８０）により近いとき、再投影誤差はより有用性があるとすることができる。例えば、第一のカメラ（例えば、４７０）及び／又は第二のカメラ（例えば、４８０）が、限定された解像度を有する場合、キャリブレーションパターン（例えば、４６０）をより遠くのカメラから取り込むと、第一の複数のピクセル座標と更なる複数のピクセル座標との間の距離は、より小さくなり及び／又は粒度を失う場合がある。例えば、図１７Ｃは、図１３Ａ及び１３Ｂの第一のカメラ４７０によって生成される、キャリブレーションパターン４６０のキャリブレーション画像の例を示し、キャリブレーションパターン４６０は、図１７Ａのキャリブレーション画像が生成される状況と比較して、第一のカメラ４７０からより遠くに位置する。キャリブレーションパターン４６０は、図１７Ａのキャリブレーション画像でのその外観と比較して、図１７Ｃのキャリブレーション画像ではより小さく現れる。図１７Ｃにおけるキャリブレーション画像のより小さい外観によって、［ｕｎ  ｖｎ］Ｔ及び［ｑ’ｎ  ｒ’ｎ］Ｔを互いにより近づいて見せることができ、したがって、ピクセル距離ｄ＿ピクセルｎを減らすことができる。場合により、ピクセル距離の減少によって、変換関数の推定値の誤差を、過少に見積もらせるか、又は重み付けを少なくする場合がある。
【０１２５】
上述したように、再構成誤差はまた、キャリブレーションパターン（例えば、４６０）と、第一のカメラ（例えば、４７０）及び／又は第二のカメラ（例えば、４８０）との間の距離に依存する場合がある。例えば、図１７Ｄは、図１７Ｂのシナリオと比較して、より遠くにあるカメラからの距離で取り込まれている、キャリブレーションパターン４６０を示す。この例では、キャリブレーションパターン４６０が、第一のカメラ４７０及び／又は第二のカメラ４８０からより遠くへ移動すると、変換関数の推定値によって、更なる複数の３Ｄ座標［ａ’１  ｂ’１  ｃ’１］Ｔ  Ｃａｍｅｒａ１…  ［ａ’２５  ｂ’２５  ｃ’２５］Ｔ  Ｃａｍｅｒａ１が、第一の複数の３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１…  ［Ｘ２５  Ｙ２５  Ｚ２５］ＴＣａｍｅｒａ１からのより大きなオフセットを有するようになる場合がある。より大きなオフセットによって、距離ｄ＿ｐｈｙｓｉｃａｌが増大する場合があり、それによって、変換関数の推定値の誤差を過大に見積もらせるか、又は重み付けを大きくする場合がある。
【０１２６】
一実施形態では、ステップ１４１３は、再構成誤差角度である誤差パラメーター値を決定することを含むことができ、再構成誤差角度は、カメラ（例えば、４７０）と、キャリブレーションパターン（例えば、４６０）又はカメラによって取り込まれている他の物体との間の距離に全く依存しないか、又は距離への依存度がより少ない場合がある。より具体的には、こうした実施形態における誤差パラメーター値は、第一のカメラ（例えば、４７０）と関連付けられる位置から第一の複数の３Ｄ座標へ延びる仮想線のそれぞれの対と、更なる複数の３Ｄ座標との間に形成される、それぞれの角度を表す値に基づくことができる。仮想線の対の各々は、第一の複数の３Ｄ座標のうちの一つへ延びる、第一の仮想線を含み、複数の変換された座標、又はより具体的には、更なる複数の３Ｄ座標のうちの対応する一つへ延びる、第二の仮想線を含むことができる。例えば、図１８Ａ及び１８Ｂは、仮想線１８０１Ａ、１８０１Ｂの第一の対の間に形成される、第一の角度１８１１を示す。より具体的には、仮想線の第一の対は、第一のカメラ４７０から第一の複数の３Ｄ座標のうちの３Ｄ座標［Ｘ１  Ｙ１  Ｚ１］ＴＣａｍｅｒａ１へ延びる、第一の仮想線１８０１Ａを含み、第一のカメラ４７０から更なる複数の３Ｄ座標のうちの対応する３Ｄ座標［ａ’１  ｂ’１  ｃ’１］Ｔへ延びる、第二の仮想線を含むことができる。場合により、仮想線の第一の対は、第一のカメラ（例えば、４７０）の焦点から延びることができる。
【０１２７】
上述したように、再構成誤差角度は、キャリブレーションパターン４６０と、第一のカメラ４７０及び／又は第二のカメラ４８０との間の距離への依存度がより少ない場合がある。例えば、図１８Ｃは、キャリブレーションパターン４６０を、図１８Ｂに示すシナリオと比較して、第一のカメラ４７０のより近くへ移動する状況を示す。この例では、変換関数の推定値によって、より小さいオフセットを有するように、変換された座標［ａ’１  ｂ’１  ｃ’１］Ｔ  Ｃａｍｅｒａ１を、対応する座標［Ｘ１  Ｙ１  Ｚ１］Ｔ  Ｃａｍｅｒａ１へより近づけることができる。しかしながら、再構成誤差角度１８１１は、図１８Ｂ及び１８Ｃのシナリオ間の距離の変化にもかかわらず、同じままの値を有することができる。
【０１２８】
再構成誤差角度の別の例として、図１８Ｄは、仮想線１８０２Ａ、１８０２Ｂの第二の対の間に形成される、第二の角度１８１２を示す。仮想線１８０２Ａは、第一のカメラ４７０から、第一の複数の３Ｄ座標のうちの別の３Ｄ座標［Ｘ２  Ｙ２  Ｚ２］ＴＣａｍｅｒａ１へ延びることができる。仮想線１８０２Ｂは、第一のカメラ４７０から、複数の変換された座標のうちの別の３Ｄ座標［ａ’２  ｂ’２  ｃ’２］Ｔへ延びることができる。場合により、再構成誤差角度は、第一の複数の３Ｄ座標と複数の変換された座標との間で、仮想線のそれぞれの対によって形成される、それぞれの角度（例えば、１８１１、１８１２等）の平均又は他の統計尺度である、角度値とすることができる。
【０１２９】
図１４に戻ると、方法１４００は、一実施形態において、計算システム１１０によって、誤差パラメーター値に基づいて変換関数の推定値を更新して、変換関数の更新された推定値を生成する、ステップ１４１５を含むことができる。例えば、変換関数が、第一のカメラ（例えば、４７０）と第二のカメラ（例えば、４８０）との間の相対位置及び向きを記述する行列である場合、ステップ１４１５で、投影誤差、再構成誤差、再構成誤差角度及び／又は他の何らかの誤差パラメーター値を低減するために、上述した最適化アルゴリズムのうちの一つを使用して、行列のパラメーター値を調整することができる。
【０１３０】
一実施形態では、方法１４００は、計算システム１１０によって、変換関数の更新された推定値を含むか、またはそれに基づくステレオキャリブレーション情報を決定する、ステップ１４１７を含むことができる。例えば、ステレオキャリブレーション情報は、変換関数の更新された推定値と等しくすることができる。
【０１３１】
一実施形態では、倉庫の中にある包装品等、キャリブレーションパターン（例えば、４６０）以外の物体が、第一のカメラ視野（例えば、４１０）内及び第二のカメラ視野（例えば、４２０）内にあるとき、計算システム１１０は、第一のカメラによって生成される第一の後続する画像と、第二のカメラによって生成される第二の後続する画像とを受け取るように、ステップ１４１７で構成することができる。方法１４００は更に、計算システム１１０を、第一の後続する画像、第二の後続する画像及びステレオキャリブレーション情報に基づいて、物体についての物体構造情報を決定するように構成することができる、ステップ１４１９を含むことができる。
【０１３２】
一実施形態では、方法１４００の一つ以上のステップを省略することができる。例えば、ステップ１４１７及び１４１９は省略することができる。一実施形態では、方法１４００からの一つ以上のステップを、方法５００の一つ以上のステップと組み合わせることができる。例えば、場合により、ステップ５０１〜５１３は、カメラ（例えば、４７０）と関連付けられる固有カメラキャリブレーション情報を決定するように実施することができ、固有カメラキャリブレーションを使用して、ステップ１４０５で変換関数の推定値を決定し、及び／又はステップ１４１１で第二の複数の座標を第二の複数の変換された座標に変換することができる。
【０１３３】
様々な実施形態の簡潔な説明
【０１３４】
実施形態Ａ１は、計算システム、又は計算システムによって実施される方法を含む。この実施形態で計算システムは、カメラ視野を有するカメラと通信するように構成される通信インターフェースを備えると共に、制御回路を備える。制御回路によって、方法を実行することができる（例えば、非一時的コンピューター可読媒体に記憶された命令を実行するとき。この実施形態では、制御回路は、カメラが、カメラ視野内にキャリブレーションパターンに対するキャリブレーション画像を生成したとき、かつキャリブレーションパターンが、パターン座標系の中にそれぞれの定義されたパターン要素座標を有する複数のパターン要素を含むとき、キャリブレーション画像を受け取ることであって、キャリブレーション画像は、キャリブレーションパターンを表す画像であることと、複数のパターン要素がキャリブレーション画像の中に現れるそれぞれの位置を表すための、複数の画像座標を決定することと、複数の画像座標及び定義されたパターン要素座標に基づいて、カメラと関連付けられるレンズ歪みを記述する、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定することであって、第一のレンズ歪みパラメーターに対する推定値は、レンズ歪みパラメーターの集合のうちの第二のレンズ歪みパラメーターをゼロと推定すると同時に決定されるか、又は第二のレンズ歪みパラメーターを推定することなく決定されることと、第一のレンズ歪みパラメーターの推定値を決定した後に、第一のレンズ歪みパラメーターに対する推定値に基づいて、第二のレンズ歪みパラメーターに対する推定値を決定することと、レンズ歪みパラメーターの集合に対するそれぞれの推定値を含むカメラキャリブレーション情報を決定することであって、レンズ歪みパラメーターの集合に対するそれぞれの推定値は、第一のレンズ歪みパラメーターに対する推定値、及び第二のレンズ歪みパラメーターに対する推定値を含むか、又はそれらに基づくことと、によってカメラキャリブレーションを実施するように構成される。この実施形態では、制御回路は、通信インターフェースがカメラ及びロボットと通信するときに、カメラキャリブレーションが行われた後、カメラによって生成された後続する画像を受け取ることと、ロボット移動を制御するための移動コマンドを生成することと、をさらに行うように構成され、移動コマンドは、後続する画像に基づき、かつカメラキャリブレーション情報に基づく。
【０１３５】
実施形態Ａ２は、実施形態Ａ１の計算システムを含み、制御回路は、レンズ歪みパラメーターの集合の他の全てのレンズ歪みパラメーターをゼロと推定すると同時に、第一のレンズ歪みパラメーターに対する推定値を決定するように構成されるか、又はレンズ歪みパラメーターの集合のうちの他の任意のレンズ歪みパラメーターを推定することなく、第一のレンズ歪みパラメーターに対する推定値を決定するように構成される。
【０１３６】
実施形態Ａ３は、実施形態Ａ１又はＡ２の計算システムを含み、第一のレンズ歪みパラメーターは、カメラと関連付けられる第一のタイプのレンズ歪みを記述し、第二のレンズ歪みパラメーターは、カメラと関連付けられる第二のタイプのレンズ歪みを記述する。
【０１３７】
実施形態Ａ４は、実施形態Ａ３の計算システムを含み、第一のタイプのレンズ歪みは、放射状のレンズ歪みであり、第二のタイプのレンズ歪みは、接線方向のレンズ歪みである。
【０１３８】
実施形態Ａ５は、実施形態Ａ１又はＡ２の計算システムを含み、第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーターは、カメラと関連付けられる同じタイプのレンズ歪みを記述する。
【０１３９】
実施形態Ａ６は、実施形態Ａ５の計算システムを含む。この実施形態では、レンズ歪みパラメーターの集合は、カメラと関連付けられる放射状のレンズ歪みのモデルの一部である、複数のそれぞれの放射状多項式成分を記述する、複数のレンズ歪みパラメーターを含み、第一のレンズ歪みパラメーターは、複数のレンズ歪みパラメーターのうちの一つであると共に、複数のそれぞれの放射状多項式成分の中で放射状の最低次多項式成分を記述する。
【０１４０】
実施形態Ａ７は、実施形態Ａ６の計算システムを含み、レンズ歪みパラメーターの集合は、第三のレンズ歪みパラメーターを含み、第三のレンズ歪みパラメーターは、複数のそれぞれの放射状多項式成分の中で放射状の最高次多項式成分を記述する。この実施形態では、第二のレンズ歪みパラメーターに対する推定値は、第一のレンズ歪みパラメーターに対する推定値に基づいて決定されると共に、第三のレンズ歪みパラメーターをゼロと推定すると同時に、又は第三のレンズ歪みパラメーターを推定することなく決定される。
【０１４１】
実施形態Ａ８は、実施形態Ａ７の計算システムを含み、第一のレンズ歪みパラメーターに対する推定値は、第一のレンズ歪みパラメーターの第一の推定値であると共に、第一のカメラキャリブレーション段階中に決定され、第二のレンズ歪みパラメーターに対する推定値は、第一のカメラキャリブレーション段階に続く、後続するカメラキャリブレーション段階中に決定される。この実施形態では、レンズ歪みパラメーターの集合は、第三のレンズ歪みパラメーターと、集合のうちの他のレンズ歪みパラメーターを有する部分集合とを含む。更に、制御回路は、後続するカメラキャリブレーション段階中に、第三のレンズ歪みパラメーターをゼロと推定すると同時に、又は第三のレンズ歪みパラメーターを推定することなく、レンズ歪みパラメーターの部分集合のうちのレンズ歪みパラメーターを推定するように構成される。加えて、部分集合のうちのレンズ歪みパラメーターの推定は、第二のレンズ歪みパラメーターの推定値を決定することと、第一のレンズ歪みパラメーターの第二の推定値を決定することとを含む。
【０１４２】
実施形態Ａ９は、実施形態Ａ１〜Ａ８のうちの任意の一つの計算システムを含み、カメラキャリブレーション情報は、カメラと関連付けられるカメラ画像の射影を記述する射影パラメーターの集合を記述し、制御回路は、射影パラメーターの集合に対するそれぞれの推定値を決定し、第一のレンズ歪みパラメーターに対する推定値及び第二のレンズ歪みパラメーターに対する推定値を決定した後、射影パラメーターの集合に対するそれぞれの推定値に基づいて、第一のレンズ歪みパラメーターに対する更新された推定値及び第二のレンズ歪みパラメーターに対する更新された推定値を決定するように構成される。この実施形態では、第一のレンズ歪みパラメーターに対する更新された推定値及び第二のレンズ歪みパラメーターに対する更新された推定値を決定し、射影パラメーターの集合が、射影パラメーターの集合のそれぞれの推定値に値を固定される。
【０１４３】
実施形態Ａ１０は、実施形態Ａ９の計算システムを含み、第一のレンズ歪みパラメーターの更新された推定値、及び第二のレンズ歪みパラメーターの更新された推定値は、制御回路が、以下、（ａ）湾曲減少段階中に、第一のレンズ歪みパラメーターの推定値に基づいて、かつ第二のレンズ歪みパラメーターの推定値に基づいて、第一のレンズ歪みパラメーターに対する初期推定値、及び第二のレンズ歪みパラメーターに対する初期推定値を決定することと、（ｂ）第一のレンズ歪みパラメーターの初期推定値、第二のレンズ歪みパラメーターの初期推定値、及びキャリブレーション画像に基づいて、カメラと関連付けられるレンズ歪みを補償する、キャリブレーション画像の変更されたバージョンを生成することと、（ｃ）キャリブレーション画像の変更されたバージョンの中で、湾曲の量を決定することと、（ｄ）湾曲の量を減少させる、第一のレンズ歪みパラメーターに対する調整された推定値及び第二のレンズ歪みパラメーターに対する調整された推定値を生成するために、キャリブレーション画像の変更されたバージョンの中の湾曲の量に基づいて、第一のレンズ歪みパラメーターの初期推定値及び第二のレンズ歪みパラメーターの初期推定値を調整することであって、第一のレンズ歪みパラメーターに対する調整された推定値は、第一のレンズ歪みパラメーターの更新された推定値であり、第二のレンズ歪みパラメーターに対する調整された推定値は、第二のレンズ歪みパラメーターの更新された推定値であることと、を実施するように構成される、湾曲減少段階によって決定される。この実施形態では、制御回路は、第一のレンズ歪みパラメーターの更新された推定値、及び第二のレンズ歪みパラメーターの更新された推定値に基づいて、カメラキャリブレーション情報を決定するように構成される。
【０１４４】
実施形態Ａ１１は、実施形態Ａ９又はＡ１０の計算システムを含み、レンズ歪みパラメーターの集合は、第三のレンズ歪みパラメーターを含み、第三のレンズ歪みパラメーターの推定値は、第一のレンズ歪みパラメーターに対する更新された推定値、及び第二のレンズ歪みパラメーターに対する更新された推定値と共に、湾曲減少段階で決定される。この実施形態では、制御回路は、第一のレンズ歪みパラメーターの更新された推定値、及び第二のレンズ歪みパラメーターの更新された推定値が決定された後、値として第三のレンズ歪みパラメーターの推定値を当該推定値に固定すると同時に、第一のレンズ歪みパラメーターの更新された推定値、第二のレンズ歪みパラメーターの更新された推定値、及び第三のレンズ歪みパラメーターの推定値に基づいて、射影パラメーターの集合に対するそれぞれの更新された推定値を決定するように構成される。
【０１４５】
実施形態Ａ１２は、実施形態Ａ１〜Ａ１１のうちの任意の一つの計算システムを含み、レンズ歪みパラメーターの集合は、第一のレンズ歪みパラメーター及び第二のレンズ歪みパラメーター以外の、更なるレンズ歪みパラメーターを含む。この実施形態では、制御回路は、（ａ）第一のレンズ歪みパラメーターの推定値に基づいて、かつ第二のレンズ歪みパラメーターの推定値に基づいて、第一のレンズ歪みパラメーターに対する更新された推定値を決定し、（ｂ）更なるレンズ歪みパラメーターに対する推定値を決定し、第一のレンズ歪みパラメーターを、値として第一のレンズ歪みパラメーターの更新された推定値に固定し、第一のレンズ歪みパラメーターに対する更新された推定値に基づいて、更なるレンズ歪みパラメーターに対する推定値を決定するように構成される。
【０１４６】
実施形態Ａ１３は、実施形態Ａ１〜Ａ１２のうちの任意の一つの計算システムを含み、通信インターフェースが通信するように構成されるカメラは、第一のカメラであり、キャリブレーション画像は、第一のキャリブレーション画像であり、カメラ視野は、第一のカメラ視野であり、通信インターフェースは更に、第二のカメラ視野を有する第二のカメラと通信するように構成される。この実施形態では、制御回路は、キャリブレーションパターンが、第一のカメラ視野内及び第二のカメラ視野内にあるか、又は第一のカメラ視野内及び第二のカメラ視野内にあったときに、第二のキャリブレーション画像を受け取ることであって、第二のキャリブレーション画像は、キャリブレーションパターンを表す第二の画像であり、第二のカメラによって生成されることと、第一のカメラと第二のカメラとの空間関係を記述するための変換関数の推定値を決定することと、第一のキャリブレーション画像に基づいて、第一のカメラに対する複数のパターン要素のそれぞれの位置を記述する第一の複数の座標を決定することと、第二のキャリブレーション画像に基づいて、第二のカメラに対する複数のパターン要素のそれぞれの位置を記述する第二の複数の座標を決定することと、変換関数の推定値に基づいて、第二の複数の座標を、第一のカメラに対する複数の変換された座標に変換することと、第一の複数の座標と複数の変換された座標とのそれぞれの差異を記述する誤差パラメーター値を決定することと、誤差パラメーター値に基づいて、変換関数の推定値を更新して、変換関数の更新された推定値を生成することと、を行うように構成される。
【０１４７】
実施形態Ａ１４は、実施形態Ａ１３の計算システムを含む。この実施形態では、第一の複数の座標は、複数のパターン要素が第一のキャリブレーション画像の中に現れるそれぞれの位置を表す、複数のそれぞれの画像座標である。この実施形態では、複数の変換された座標は、複数のパターン要素を表す、更なる複数のそれぞれの画像座標であり、制御回路は、第一のカメラに対するキャリブレーションを記述するためのカメラキャリブレーション情報に基づいて、更なる複数のそれぞれの画像座標を決定するように構成される。
【０１４８】
実施形態Ａ１５は、実施形態Ａ１３の計算システムを含む。この実施形態では、第一の複数の座標は、第一のカメラに対する座標系である第一のカメラ座標系における、パターン要素に対する複数の３Ｄ座標である。この実施形態では、複数の変換された座標は、第一のカメラ座標系における、パターン要素に対する更なる複数の３Ｄ座標である。
【０１４９】
実施形態Ａ１６は、実施形態Ａ１５の計算システムを含む。この実施形態では、誤差パラメーター値は、第一の複数の３Ｄ座標と更なる複数の３Ｄ座標との間のそれぞれの距離を表す値に基づく。
【０１５０】
実施形態Ａ１７は、実施形態Ａ１５の計算システムを含む。この実施形態では、誤差パラメーター値は、第一のカメラと関連付けられる位置から延びる仮想線のそれぞれの対の間に形成される、それぞれの角度を表す値に基づいており、仮想線のそれぞれの対の各々は、第一の複数の３Ｄ座標のそれぞれの３Ｄ座標へ延びるそれぞれの第一の仮想線と、更なる複数の３Ｄ座標のそれぞれの３Ｄ座標へ延びるそれぞれの第二の仮想線と、を有する。
【０１５１】
実施形態Ｂ１は、計算システム、又は計算システムによって実施される方法に関する。方法は、例えば、計算システムが、非一時的コンピューター可読媒体上に記憶される命令を実行するときに実施することができる。この実施形態では、計算システムは、第一のカメラ視野を有する第一のカメラ、及び第二のカメラ視野を有する第二のカメラと通信するように構成される通信インターフェースを備え、制御回路を備える。制御回路は、複数のパターン要素を有するキャリブレーションパターンが、第一のカメラ視野内及び第二のカメラ視野内にあるか、又は第一のカメラ視野内及び第二のカメラ視野内にあったとき、かつ第一のカメラが、キャリブレーションパターンに対する第一のキャリブレーション画像を生成し、第二のカメラが、キャリブレーションパターンに対する第二のキャリブレーション画像を生成したとき、第一のキャリブレーション画像を受け取ることであって、第一のキャリブレーション画像が、キャリブレーションパターンを表す第一の画像であることと、第二のキャリブレーション画像を受け取ることであって、第二のキャリブレーション画像は、キャリブレーションパターンを表す第二の画像であることと、第一のカメラと第２のカメラとの空間関係を記述するための変換関数の推定値を決定することと、第一のキャリブレーション画像に基づいて、第一のカメラに対する、複数のパターン要素のそれぞれの位置を記述する第一の複数の座標を決定することと、第二のキャリブレーション画像に基づいて、第二のカメラに対する、複数のパターン要素のそれぞれの位置を記述する第二の複数の座標を決定することと、変換関数の推定値に基づいて、第二の複数の座標を、第一のカメラに対する複数の変換された座標に変換することと、第一の複数の座標と複数の変換された座標とのそれぞれの差異を記述する誤差パラメーター値を決定することと、誤差パラメーター値に基づいて、変換関数の推定値を更新して、変換関数の更新された推定値を生成することと、変換関数の更新された推定値を含むか、またはそれに基づくステレオキャリブレーション情報を決定することと、を行うように構成される。この実施形態では、制御回路は更に、キャリブレーションパターン以外の物体が、第一のカメラ視野内及び第二のカメラ視野内にあるとき、第一のカメラによって生成される第一の後続する画像と、第二のカメラによって生成される第二の後続する画像とを受け取り、第一の後続する画像、第二の後続する画像及びステレオキャリブレーション情報に基づいて、物体を表す物体構造情報を決定するように構成される。
【０１５２】
実施形態Ｂ２は、実施形態Ｂ１の計算システムを含む。この実施形態では、第一の複数の座標は、複数のパターン要素が第一のキャリブレーション画像の中に現れるそれぞれの位置を表すための、第一の複数のそれぞれの画像座標である。この実施形態では、通信インターフェースが第一のカメラと通信するか、又は通信していたとき、制御回路は、第一のカメラ視野内の位置が第一のカメラの画像平面へどのように投影されるかを記述する、固有カメラキャリブレーション情報を決定するように構成される。更に、この実施形態では、複数の変換された座標は、複数のパターン要素を表す、更なる複数のそれぞれの画像座標であり、制御回路は、固有カメラキャリブレーション情報に基づいて、更なる複数のそれぞれの画像座標を決定するように構成される。
【０１５３】
実施形態Ｂ３は、実施形態Ｂ１の計算システムを含む。この実施形態では、第一の複数の座標は、第一のカメラに対する座標系である、第一のカメラ座標系における、パターン要素を表す複数の３Ｄ座標である。この実施形態では、複数の変換された座標は、第一のカメラ座標系における、パターン要素を表す更なる複数の３Ｄ座標である。
【０１５４】
実施形態Ｂ４は、実施形態Ｂ３の計算システムを含む。この実施形態では、誤差パラメーター値は、第一の複数の３Ｄ座標と更なる複数の３Ｄ座標との間のそれぞれの距離を表す値に基づく。
【０１５５】
実施形態Ｂ５は、実施形態Ｂ３の計算システムを含む。この実施形態では、誤差パラメーター値は、第一のカメラと関連付けられる位置から延びる、仮想線のそれぞれの対の間に形成される、それぞれの角度を表す値に基づく角度値であり、仮想線のそれぞれの対の各々は、１）第一の複数の３Ｄ座標のそれぞれの３Ｄ座標へ延びる、それぞれの第一の仮想線、及び２）更なる複数の３Ｄ座標のそれぞれの３Ｄ座標へ延びる、それぞれの第二の仮想線を有する。
【０１５６】
実施形態Ｂ６は、実施形態Ｂ５の計算システムを含む。この実施形態では、仮想線のそれぞれの対が延び始める位置は、第一のカメラの焦点である。
【０１５７】
実施形態Ｂ７は、実施形態Ｂ１〜Ｂ６のうちの任意の一つの計算システムを含む。この実施形態では、変換関数は、第一のカメラと第二のカメラとの間の相対位置及び相対的な向きを記述する変換行列であり、変換関数の推定値の更新は、変換行列を更新して誤差パラメーター値を減少させることを含む。
【０１５８】
実施形態Ｂ８は、実施形態Ｂ１〜Ｂ７のうちの任意の一つの計算システムを含む。この実施形態では、キャリブレーションパターンの複数のパターン要素が、それぞれの定義されたパターン要素座標を有するとき、制御回路は、第一の複数の座標及び定義されたパターン要素座標に基づいて、第一のカメラと関連付けられるレンズ歪みを記述する、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定し、第一のレンズ歪みパラメーターに対する推定値は、レンズ歪みパラメーターの集合のうちの第二のレンズ歪みパラメーターをゼロと推定すると同時に決定されるか、又は第二のレンズ歪みパラメーターを推定することなく決定され、第一のレンズ歪みパラメーターの推定値を決定した後に、第一のレンズ歪みパラメーターに対する推定値に基づいて、第二のレンズ歪みパラメーターに対する推定値を決定し、第一のカメラに対するキャリブレーションを記述し、レンズ歪みパラメーターの集合に対するそれぞれの推定値を含む、カメラキャリブレーション情報を決定するように構成される。この実施形態では、レンズ歪みパラメーターの集合に対するそれぞれの推定値は、第一のレンズ歪みパラメーターに対する推定値と、第二のレンズ歪みパラメーター対する推定値とを含むか、又はそれらに基づく。
【０１５９】
種々の実施形態を上述してきたが、これらの実施形態は、限定としてではなく本発明の単なる説明及び例として提示されていることを理解すべきである。種々の変更は本発明の趣旨及び範囲から逸脱することなく、本発明内で行うことができることは当業者には明らかであろう。したがって、本発明の範囲（ｂｒｅａｄｔｈ  ａｎｄ  ｓｃｏｐｅ）は、上述の例示的な実施形態のいずれかによって限定されるべきではなく、添付の特許請求の範囲及びそれらの均等物によってのみ規定されるべきである。本明細書において論考された各実施形態、及び本明細書において引用された各引用文献の各特徴は、他の任意の実施形態の特徴と組み合わせて用いることができることも理解されるであろう。本明細書において論考された全ての特許及び刊行物は、引用することによりその全体が本明細書の一部をなす。
【要約】      （修正有）【課題】自動カメラキャリブレーションを実施するシステム及び方法を提供する。【解決手段】システムによって、キャリブレーション画像を受け取り５０１、キャリブレーションパターンの複数のパターン要素がキャリブレーション画像の中に現れるそれぞれの位置を表すための複数の画像座標を決定する５０３。複数の画像座標及び定義されたパターン要素座標に基づいて、レンズ歪みパラメーターの集合のうちの第一のレンズ歪みパラメーターに対する推定値を決定する。第一のレンズ歪みパラメーターに対する推定値は、レンズ歪みパラメーターの集合のうちの第二のレンズ歪みパラメーターを、ゼロと推定すると同時に決定されるか、又は第二のレンズ歪みパラメーターを推定することなく決定される５０５。第一のレンズ歪みパラメーターに対する推定値に基づいて、第二のレンズ歪みパラメーターに対する推定値を決定する５０７。【選択図】図５【図１Ａ】
0006800506.tif 000075
【図１Ｂ】
0006800506.tif 000076
【図１Ｃ】
0006800506.tif 000077
【図２】
0006800506.tif 000078
【図３Ａ−３Ｂ】
0006800506.tif 000079
【図４Ａ】
0006800506.tif 000080
【図４Ｂ】
0006800506.tif 000081
【図４Ｃ】
0006800506.tif 000082
【図５】
0006800506.tif 000083
【図６Ａ−６Ｄ】
0006800506.tif 000084
【図６Ｅ】
0006800506.tif 000085
【図７Ａ】
0006800506.tif 000086
【図７Ｂ】
0006800506.tif 000087
【図８】
0006800506.tif 000088
【図９Ａ】
0006800506.tif 000089
【図９Ｂ−９Ｃ】
0006800506.tif 000090
【図１０】
0006800506.tif 000091
【図１１】
0006800506.tif 000092
【図１２Ａ−１２Ｂ】
0006800506.tif 000093
【図１３Ａ】
0006800506.tif 000094
【図１３Ｂ】
0006800506.tif 000095
【図１４】
0006800506.tif 000096
【図１５Ａ】
0006800506.tif 000097
【図１５Ｂ】
0006800506.tif 000098
【図１６Ａ】
0006800506.tif 000099
【図１６Ｂ】
0006800506.tif 000100
【図１７Ａ】
0006800506.tif 000101
【図１７Ｂ】
0006800506.tif 000102
【図１７Ｃ】
0006800506.tif 000103
【図１７Ｄ】
0006800506.tif 000104
【図１８Ａ】
0006800506.tif 000105
【図１８Ｂ】
0006800506.tif 000106
【図１８Ｃ】
0006800506.tif 000107
【図１８Ｄ】
0006800506.tif 000108