(57)【特許請求の範囲】
【請求項１】
稼働状態で動作しているマシンビジョンシステムにおける動作方法であって、前記稼働状態の間、前記マシンビジョンシステムは監視ゾーン内の物体を検知するためにステレオカメラ対と関連するステレオ処理を用い、前記ステレオ処理は前記マシンビジョンシステムのセットアップ中に前記ステレオカメラ対について求められた１つ以上のキャリブレーションパラメータに依存し、前記方法が、
前記監視ゾーンを包含するとともに１つ以上の参照マーカを含んだシーンを撮影する前記ステレオカメラ対を構成する第１および第２のカメラから、現フレームを構成する画像対を取得するステップと、
前記現フレームを構成する画像データで観察される現在の参照マーカ位置と前記マシンビジョンシステムの前記セットアップ中に取得される１つ以上のフレームを構成する画像データで観察される本来の参照マーカ位置との比較に基づいて、前記第１および第２のカメラにおける、および／またはカメラ間における機械的な位置ずれを推定するステップと、
前記マシンビジョンシステムによるステレオビジョン処理についての最悪ケース誤差を、前記推定された機械的な位置ずれの関数として算出するステップとを含み、前記最悪ケース誤差は前記ステレオカメラ対について検出されるステレオ視差の、前記マシンビジョンシステムのセットアップ中に確立されたセットアップ状態に対する最悪ケース変化または差であり、
前記最悪ケース誤差が規定された閾値を超えるとの判定に応答して、前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態に遷移させるステップとを含み、
前記最悪ケース誤差を推定するステップは、
前記第１のカメラのイメージャシフトおよび倍率変化の関数として、第１のコーナー移動ベクトルを算出するステップと、
前記第２のカメラの前記イメージャシフトおよび前記倍率変化の関数とするとともに、前記第１および第２のカメラ間の相対的な回転の関数として、第２のコーナー移動ベクトルを算出するステップと、
前記第１および第２のコーナー移動ベクトルの差を求めるステップと、
前記差を、前記マシンビジョンシステムの前記セットアップ中に求められた、本来の第１および第２のコーナー移動ベクトルに対応する基準差と比較するステップとを含む、
方法。
【請求項２】
前記取得するステップと、前記推定するステップと、前記算出するステップと、前記遷移させるステップとを、前記マシンビジョンシステムの規定された応答時間内に実行するステップをさらに含み、
前記規定された応答時間は、前記マシンビジョンシステムによって実行されるセーフティクリティカル物体検知機能に関連付けられる、請求項１に記載の方法。
【請求項３】
所与のいずれかのフレームについて算出された前記最悪ケース誤差が前記規定され閾値を超えるか、前記マシンビジョンシステムの動作の前記稼働状態が別の要因により中断されない限り、請求項１に記載の前記方法をフレームごとに繰り返すステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記第１および第２のカメラからのいくつかのフレームにわたる前記機械的な位置ずれのフィルタ処理された推定値を取得するステップと、
フィルタ処理された最悪ケース誤差を前記フィルタ処理された推定値から取得するステップと、
前記フィルタ処理された最悪ケース誤差が規定された閾値を超えた場合に前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態に遷移させるステップとをさらに含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
いくつかのフレームにわたる前記機械的な位置ずれの前記フィルタ処理された推定値を取得するステップは、
いくつかのフレームにわたってフィルタ処理された参照マーカ位置を取得し、前記フィルタ処理された参照マーカ位置から、前記第１および第２のカメラにおける、またカメラ間における前記機械的な位置ずれを算出することにより、前記機械的な位置ずれの前記フィルタ処理された推定値を取得するステップと、
前記フィルタ処理された前記機械的な位置ずれを取得するために、前記いくつかのフレームのそれぞれにおいて推定された前記推定された機械的な位置ずれをフィルタ処理するステップとのうち一方を含む、請求項４に記載の方法。
【請求項６】
前記第１および第２のカメラからのいくつかのフレームにわたる前記機械的な位置ずれのフィルタ処理された推定値を取得するステップと、
前記第１および第２のカメラに関する前記マシンビジョンシステムによるステレオビジョン処理を、フィルタ処理された機械的な位置ずれの関数として補償するステップとをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項７】
前記１つ以上のキャリブレーションパラメータが、前記第１および第２のカメラから取得された画像対の修正において前記マシンビジョンシステムによって用いられ、
前記ステレオビジョン処理を補償するステップは、前記ステレオカメラ対について検出されるステレオ視差の、前記マシンビジョンシステムの前記セットアップ中に確立されたセットアップ状態に対する変化または差を考慮するために前記１つ以上のキャリブレーションパラメータを適合させるステップを含む、請求項６に記載の方法。
【請求項８】
前記現フレーム内に必要最小数の参照マーカが現れないと判定されたことに応答して、前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態へ遷移させるステップをさらに含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記機械的な位置ずれを推定するステップは、カメラごとのイメージャシフト、カメラごとの倍率変化、前記カメラ間の相対的な回転、および前記カメラ間の倍率比のうち、少なくとも１つを推定するステップを有する、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記相対的な回転および前記倍率比を推定するステップは、
前記第１のカメラからの画像で観察される１つ以上の参照マーカ位置を、前記第２のカメラの座標系に射影することにより、１つ以上の射影された位置を取得するステップと、
前記射影された位置を、前記第２のカメラからの前記画像で観察される対応する参照マーカ位置と比較するステップとを含む、請求項９に記載の方法。
【請求項１１】
前記第１のコーナー移動ベクトルを算出するステップは、
前記第１カメラに関する本来の画像コーナー位置を、修正された座標系から前記第１のカメラの歪みのない座標系に変換し、前記歪みのない座標系から前記第１のカメラの歪みのある座標系に変換することにより、変換されたコーナー位置を取得するステップを含み、前記第１のカメラの前記歪みのある座標系は前記第１のカメラのレンズ歪みを反映する、前記第１のカメラについてのそのままの座標系であり、
前記第１のカメラについての移動されたコーナー位置を、前記変換されたコーナー位置および前記第１のカメラについての前記推定された機械的な位置ずれの関数として算出するステップと、
前記移動されたコーナー位置を、前記第１のカメラの前記歪みのある座標系から前記修正された座標系に変換して戻すことにより、前記第１のカメラについての移動され変換されたコーナー位置を取得するステップと、
前記第１のコーナー移動ベクトルを、前記移動され変換されたコーナー位置および前記本来の画像コーナー位置との前記差として算出するステップとを含む、請求項１０に記載の方法。
【請求項１２】
前記第２のコーナー移動ベクトルを算出するステップは、
前記第１のカメラについての本来の画像コーナー位置の、前記第１のカメラの修正された座標系から前記第１のカメラの歪みのない座標系への変換に基づいて、変換されたコーナー位置を求め、前記変換されたコーナー位置を、前記第２のカメラの前記歪みのない座標系に射影することにより、射影されたコーナー位置を取得するステップと、
前記射影されたコーナー位置を前記第２のカメラの修正された座標系に変換することにより、第２の変換されたコーナー位置を取得するステップと、
前記射影されたコーナー位置を前記第１および第２のカメラの相対的な回転の関数として移動させることにより、第３の変換されたコーナー位置を取得し、前記移動させることの後に、前記射影されたコーナー位置を前記第２のカメラの歪みのある座標系に変換し、前記第３の変換されたコーナー位置を前記歪みのある座標系内で前記第２のカメラについて推定された、前記推定されたイメージャシフトおよび前記推定された倍率変化の関数として移動させるステップと、
前記第３の変換されたコーナー位置を、前記第２のカメラの前記歪みのある座標系内で前記移動させるステップの後に、前記第２のカメラの前記歪みのない座標系に変換し、さらに前記第２のカメラの前記修正された座標系に変換することにより、第４の変換されたコーナー位置を取得するステップと、
前記第２のコーナー移動ベクトルを、前記第２の変換されたコーナー位置と前記第４の変換されたコーナー位置との前記差として算出するステップとを含む、請求項１０または１１に記載の方法。
【請求項１３】
前記参照マーカのボケを検出するために前記現フレームあるいはいくつかのフレームを評価するステップと、
ボケのレベルが規定された閾値を超えることの検出に応答して前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態へ遷移させるステップとをさらに含む、請
求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
所与の参照マーカに関し、前記規定された閾値を、前記関連する１つ以上の画像内の該参照マーカの位置と、前記第１および第２のカメラのレンズに関して既知である、対応するフォーカス品質プロファイルとの関数として適合させるステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
選択的に稼働状態で動作するように構成されたマシンビジョンシステムであって、前記稼働状態の間、前記マシンビジョンシステムは監視ゾーン内の物体を検知するためにステレオカメラ対と関連するステレオ処理を用い、前記ステレオ処理は前記マシンビジョンシステムのセットアップ中に前記ステレオカメラ対について求められた１つ以上のキャリブレーションパラメータに依存し、前記マシンビジョンシステムが、
前記監視ゾーンを包含するとともに１つ以上の参照マーカを含んだシーンを撮影する前記ステレオカメラ対を構成する第１および第２のカメラから、現フレームを構成する画像対を取得するように構成されたインタフェース回路と、
前記インタフェース回路に動作可能に接続された処理回路であって、前記処理回路は、前記マシンビジョンシステムの動作の稼働状態中に、
前記現フレームを構成する画像データで観察される現在の参照マーカ位置と前記マシンビジョンシステムの前記セットアップ中に取得される１つ以上のフレームを構成する画像データで観察される本来の参照マーカ位置との比較に基づいて、前記第１および第２のカメラにおける、および／またはカメラ間における機械的な位置ずれを推定し、
前記マシンビジョンシステムによるステレオビジョン処理についての最悪ケース誤差を、前記推定された機械的な位置ずれの関数として算出し、前記最悪ケース誤差は前記ステレオカメラ対についてのステレオ視差の、前記マシンビジョンシステムの前記セットアップ中に確立されたセットアップ状態に対する最悪ケース変化または差であり、
前記最悪ケース誤差が規定された閾値を超えるとの判定に応答して、前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態に遷移させる、ように構成され、
前記処理回路は、
前記第１のカメラのイメージャシフトおよび倍率変化の関数として、第１のコーナー移動ベクトルを算出し、
前記第２のカメラの前記イメージャシフトおよび前記倍率変化の関数とするとともに、前記第１および第２のカメラ間の相対的な回転の関数として、第２のコーナー移動ベクトルを算出し、
前記第１および第２のコーナー移動ベクトルの差を求め、
前記差を、前記マシンビジョンシステムの前記セットアップ中に求められた、本来の第１および第２のコーナー移動ベクトルに対応する基準差と比較する、
ように構成されることに基づいて、前記最悪ケース誤差を推定するように構成される、マシンビジョンシステム。
【請求項１６】
前記処理回路は、前記取得することと、前記推定することと、前記算出することとの前記動作を、前記マシンビジョンシステムの規定された応答時間内に実行するように構成され、前記規定された応答時間が、前記マシンビジョンシステムによって実行されるセーフティクリティカル物体検知機能に関連付けられる、請求項１５に記載のマシンビジョンシステム。
【請求項１７】
前記処理回路は、所与のいずれかのフレームで算出された前記最悪ケース誤差が規定された閾値を超えるか、前記マシンビジョンシステムの動作の前記稼働状態が別の要因により中断されるかしない限り、取得することと、推定することと、算出することとの前記動作をフレームごとに繰り返すように構成される、請求項１５または１６に記載のマシンビジョンシステム。
【請求項１８】
前記処理回路は、前記第１および第２のカメラからのいくつかのフレームにわたる前記機械的な位置ずれのフィルタ処理された推定値を取得し、フィルタ処理された最悪ケース誤差を前記フィルタ処理された推定値から取得し、前記フィルタ処理された最悪ケース誤差が規定された閾値を超えた場合に前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態に遷移させるように構成される、請求項１５〜１７のいずれか１項に記載のマシンビジョンシステム。
【請求項１９】
前記処理回路は、
いくつかのフレームにわたってフィルタ処理された参照マーカ位置を取得し、前記フィルタ処理された参照マーカ位置から、前記第１および第２のカメラにおける、またカメラ間における前記機械的な位置ずれを算出することにより、前記機械的な位置ずれの前記フィルタ処理された推定値を取得し、
前記フィルタ処理された機械的な位置ずれを取得するために、前記いくつかのフレームのそれぞれにおいて推定された前記推定された機械的な位置ずれをフィルタ処理する、ように構成されることに基づいて、いくつかのフレームにわたる前記機械的な位置ずれの前記フィルタ処理された推定値を取得するように構成される、請求項１８に記載のマシンビジョンシステム。
【請求項２０】
前記処理回路は、前記第１および第２のカメラからのいくつかのフレームにわたる前記機械的な位置ずれのフィルタ処理された推定値を取得し、前記第１および第２のカメラに関する前記マシンビジョンシステムによるステレオビジョン処理を、フィルタ処理された機械的な位置ずれの関数として補償する、ように構成される、請求項１５〜１９のいずれか１項に記載のマシンビジョンシステム。
【請求項２１】
前記１つ以上のキャリブレーションパラメータは、前記第１および第２のカメラから取得された画像対の修正において前記マシンビジョンシステムによって用いられ、前記処理回路は、前記ステレオカメラ対について検出されるステレオ視差の、前記マシンビジョンシステムの前記セットアップ中に確立されたセットアップ状態に対する変化または差を考慮するために前記１つ以上のキャリブレーションパラメータを適合させることにより、前記稼働状態中の前記ステレオビジョン処理を補償するように構成される、請求項２０に記載のマシンビジョンシステム。
【請求項２２】
前記処理回路は、前記現フレーム内に必要最小数の参照マーカが現れないと判定されたことに応答して、前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態へ遷移させるように構成される、請求項１５〜２１のいずれか１項に記載のマシンビジョンシステム。
【請求項２３】
前記処理回路は、カメラごとのイメージャシフト、カメラごとの倍率変化、前記カメラ間の相対的な回転、および前記カメラ間の倍率比のうち、少なくとも１つを推定するように構成されることに基づいて、前記機械的な位置ずれを推定するように構成される、請求項１５〜２２のいずれか１項に記載のマシンビジョンシステム。
【請求項２４】
前記処理回路は、
前記第１のカメラからの画像で観察される１つ以上の参照マーカ位置を、前記第２のカメラの座標系に射影することにより、１つ以上の射影された位置を取得し、
前記射影された位置を、前記第２のカメラからの前記画像で観察される対応する参照マーカ位置と比較する、ように構成されることに基づいて、前記相対的な回転および前記倍率比を推定するように構成される、請求項２３に記載のマシンビジョンシステム。
【請求項２５】
前記処理回路は、
前記第１カメラに関する本来の画像コーナー位置を、修正された座標系から前記第１のカメラの歪みのない座標系に変換し、前記歪みのない座標系から前記第１のカメラの歪みのある座標系に変換することにより、変換されたコーナー位置を取得し、ここで、前記第１のカメラの前記歪みのある座標系は前記第１のカメラのレンズ歪みを反映する、前記第１のカメラについてのそのままの座標系であり、
前記第１のカメラについての移動されたコーナー位置を、前記変換されたコーナー位置および前記第１のカメラについての前記推定された機械的な位置ずれの関数として算出し、
前記移動されたコーナー位置を、前記第１のカメラの前記歪みのある座標系から前記修正された座標系に変換して戻すことにより、前記第１のカメラについての移動され変換されたコーナー位置を取得し、
前記第１のコーナー移動ベクトルを、前記移動され変換されたコーナー位置および前記本来の画像コーナー位置との前記差として算出する、
ように構成されることに基づいて、前記第１のコーナー移動ベクトルを算出するように構成される、請求項２４に記載のマシンビジョンシステム。
【請求項２６】
前記処理回路が、
前記第１のカメラについての本来の画像コーナー位置の、前記第１のカメラの修正された座標系から前記第１のカメラの歪みのない座標系への変換に基づいて、変換されたコーナー位置を求め、前記変換されたコーナー位置を、前記第２のカメラの前記歪みのない座標系に射影することにより、射影されたコーナー位置を取得し、
前記射影されたコーナー位置を前記第２のカメラの修正された座標系に変換することにより、第２の変換されたコーナー位置を取得し、
前記射影されたコーナー位置を前記第１および第２のカメラの相対的な回転の関数として移動させることにより、第３の変換されたコーナー位置を取得し、前記移動させることの後に、前記射影されたコーナー位置を前記第２のカメラの歪みのある座標系に変換し、前記第３の変換されたコーナー位置を前記歪みのある座標系内で前記第２のカメラについて推定された、前記推定されたイメージャシフトおよび前記推定された倍率変化の関数として移動させ、
前記第３の変換されたコーナー位置を、前記第２のカメラの前記歪みのある座標系内で前記移動させることの後に、前記第２のカメラの前記歪みのない座標系に変換し、さらに前記第２のカメラの前記修正された座標系に変換することにより、第４の変換されたコーナー位置を取得し、
前記第２のコーナー移動ベクトルを、前記第２の変換されたコーナー位置と前記第４の変換されたコーナー位置との前記差として算出する、
ように構成されることに基づいて、前記第２のコーナー移動ベクトルを算出するように構成される、請求項２４または２５に記載のマシンビジョンシステム。
【請求項２７】
前記処理回路が、前記参照マーカのボケを検出するために前記現フレームあるいはいくつかのフレームを評価し、ボケのレベルが規定された閾値を超えることの検出に応答して前記マシンビジョンシステムを動作の前記稼働状態から動作の故障状態へ遷移させるように構成される、請求項１５〜２６のいずれか１項に記載のマシンビジョンシステム。
【請求項２８】
所与の参照マーカに関し、前記処理回路が、前記規定された閾値を、前記関連する１つ以上の画像内の該参照マーカの位置と、前記第１および第２のカメラのレンズに関して既知である、対応するフォーカス品質プロファイルとの関数として適合させるように構成される、請求項２７に記載のマシンビジョンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してマシンビジョンシステムまたは他のオプトエレクトロニクスシステム光学システムに含まれているであろうような光学システムに関し、特には、光学システムにおける機械的な位置ずれの検出および緩和に関する。
【背景技術】
【０００２】
光学システムはさまざまな業界で広く用いられている。オプトエレクトロニクスシステムは特に、セーフティクリティカル用途などで貴重品監視および物体検知能力を提供する。一例として、産業ロボット、金属プレス、または他の危険な機械の周囲を監視し、または「見張る」とともに、見張られた危険エリアに人が進入してきたことを検知すると緊急停止信号を与えるために、シングルまたはマルチカメライメージングシステムが用いられうる。
【０００３】
多くのマシンビジョンシステムは、ステレオビジョンまたは視野の重複した２つ以上のカメラを含んだマルチカメライメージングを用いている。（１つ以上の）同一物体を異なる角度から見ることにより、複数のビューのそれぞれにおいて観察される物体の位置の視差(disparity)が、それら物体の距離を算出するための基礎を与える。ある例示的ケースにおいて、マシンビジョンシステムは、監視ゾーン内の物体を検出し、それら物体までの距離を算出するためにステレオ画像処理を用いる。監視ゾーンが産業機械の周囲の危険なエリアまたは空間を表し、監視エリアへの物体の不法侵入の検出をマシンビジョンシステムに依存している場合などは、そのような検出はセーフティクリティカルであろう。ここで、用語「物体」は人間を含むように広く解釈することができる。
【０００４】
マシンビジョンシステムの精度および全体的な性能は、複数の重要な機械的な位置合わせ(mechanical alignment)に依存する。例えば、マシンビジョンシステムのセンサヘッドまたは別のカメラアセンブリに含まれうるような、例示的なレンズ６および撮像素子８（「イメージャ８」）を示す図１を考える。適用可能な製造精度および公差の限界内で、カメラアセンブリはレンズ６と電荷結合素子（ＣＣＤ）または他の画素アレイであってよいイメージャ８との相対位置を固定する
【０００５】
これらの重要な位置合わせは、イメージャ８の像面をレンズ６の焦点面との関係で示す図２でよく理解できる。位置ずれの問題がなければ、カメラアセンブリは像面を焦点面と平行に固定するとともに、像面を焦点面から適切な距離ｄに固定する。
【０００６】
しかし、経年変化、熱膨張、振動、衝撃などにより、レンズ６に対するイメージャ８の、光軸に直交する方向への相対的なシフトまたは平行移動といった、さまざまな種類の機械的な位置ずれが発生しうる。これら横方向への移動は、それがレンズ６とイメージャ８の一方の移動によるものか、両方の移動によるものかにかかわらず、像面の光学中心または原点Ｒを、光軸から離れ、焦点面の光学中心または原点Ｏからずれた位置に移動させる。
【０００７】
さらに、レンズ６および／またはイメージャ８は光軸に沿って移動しうる。軸方向平行移動(longitudinal translation)と呼ばれるこれらの移動は、レンズ６とイメージャ８との距離ｄを変化させる。軸方向平行移動はカメラアセンブリの倍率または焦点距離を事実上変化させる。
【０００８】
位置ずれの別の例として、イメージャ８は光軸周りに回転しうる。そのような回転はレンズ６から像面への画像投影を実質的に回転させる。さらに、レンズ６および／またはイメージャ８のいかなる相対的な傾きも、像面の焦点面に対する平行性を失わせるであろう。傾きは像面への像投影を変化させ、上述した他の位置ずれと同様、マシンビジョンシステムが自身のカメラで取得した画像を正確に処理するための能力を低下させる。
【０００９】
焦点品質および／またはコントラストという点において別の問題が生じる。レンズ６は例えば、焦点品質(focal quality)がレンズ中心で最高になり、レンズの周縁で最低になるという焦点品質プロファイルを有しうる。図３はレンズ６の焦点品質プロファイル例を示す。
【００１０】
通常、レンズ６の焦点品質プロファイルは、少なくとも満足すべき動作状況下ではレンズの最低焦点品質でも許容できるようなものであろうが、レンズ６および／またはイメージャ８上のもや、霧、油、汚れなどが、イメージャ８から得られる画像で観察される焦点品質および／またはコントラストを低下させるであろう。シーン照明の変化のような他の環境変化もまた、コントラストや他の画像パラメータの品質を低下させうる。
【発明の概要】
【００１１】
ここで開示される内容の一態様によれば、方法および装置は、マシンビジョンシステムでの機械的な位置ずれをマシンビジョンシステムの実行時動作の間に検出し、検出された位置ずれが過度でないかぎり、検出された位置ずれに基づいて画像処理を補償する。過度な位置ずれは、それらに基づく最悪ケース誤差を求めることによって検出することができる。最悪ケース誤差が規定された限度を超える場合、マシンビジョンシステムは故障状態に遷移する。故障状態は危険な機械の動作を中断させること、または１つ以上の他の故障状態動作を実行することを含んでよい。検出される位置ずれには、撮影に用いられる個々のカメラ内の内部位置ずれと、カメラ間の相対位置ずれとが含まれる。方法および装置は、焦点の実行時検証と、不十分な焦点品質が検出されたことに応じたマシンビジョンシステムの故障状態への遷移とをさらに実行してもよい。
【００１２】
例示的な実施形態において、実行状態で動作するマシンビジョンシステムは、ステレオカメラ対を構成し、１つ以上の基準マーカを含んだシーンを撮影する第１および第２のカメラから現フレームの画像対を取得することを含んだ方法を実施する。方法は、現在の基準マーカ位置と本来の基準マーカ位置との比較に基づいて第１および第２のカメラ内および／または間での機械的な位置ずれを推定することを含む。ここで、現在の基準マーカ位置は現フレームから決定され、本来の基準マーカ位置はマシンビジョンシステムに保存されたセットアップデータから既知である。方法はさらに、マシンビジョンシステムによるステレオビジョン処理についての最悪ケース誤差を、推定された機械的な位置ずれの関数として算出することと、最悪ケース誤差が規定された閾値を超えると判定されたことに応答してマシンビジョンシステムを動作の実行状態から動作の故障状態に遷移させることとを含む。
【００１３】
別の例示的な実施形態において、マシンビジョンシステムは、ステレオカメラ対を構成し、１つ以上の基準マーカを含んだシーンを撮影する第１および第２のカメラから画像を取得するインタフェース回路を含む。マシンビジョンシステムはさらに、インタフェース回路に動作可能に接続され、マシンビジョンシステムの動作の実行状態の間に、第１および第２のカメラ内および／または間の機械的な位置ずれを推定する処理回路を含む。推定は、現在の基準マーカ位置と本来の基準マーカ位置とを比較する処理回路に基づき、さらに、処理回路は、マシンビジョンシステムによるステレオビジョン処理についての最悪ケース誤差を、推定された機械的な位置ずれの関数として算出する。処理回路はさらに、最悪ケース誤差が規定された閾値を超えると判定されたことに応答して、マシンビジョンシステムを動作の実行状態から動作の故障状態に遷移させる。
【００１４】
本発明はこれらの機能および利点に限定されない。本技術分野に属する当業者は、以下の詳細な説明を読むことおよび添付ファイルを見ることにより、さらなる特徴および利点を認識するであろう。 
【図面の簡単な説明】
【００１５】
【図１】カメラアセンブリ内の例示的なレンズおよび撮像素子の図であり、それらの間の重要な機械的位置合わせを示している。
【図２】図１のレンズおよび撮像素子に対応する焦点面および像面の図であり、レンズと撮像素子との間の機械的な位置ずれの別の態様を示している。
【図３】カメラレンズの焦点品質プロファイルの例を示す図である。
【図４】ここで開示する内容に従った、マシンビジョンシステムの一実施形態を示すブロック図である。
【図５】マシンビジョンシステムの実行時動作中に機械的な位置ずれを検出する方法の一実施形態の論理フロー図である。
【図６】マシンビジョンシステムの実行時動作中に機械的な位置ずれを検出する方法の別の実施形態の論理フロー図である。
【図７】ステレオカメラ対からのフレームまたはステレオ画像対に適用可能な異なる座標系間の例示的な関係を示す図である。
【図８】ステレオビジョン処理についての最悪ケース誤差を推定するために用いられる、コーナー位置決定の例を示す図である。
【発明を実施するための形態】
【００１６】
図４は一実施形態に係る装置１０のブロック図である。装置１０（以下では「マシンビジョンシステム１０」と呼ぶ）は、制御部１２および１つ以上のセンサヘッド（またはＳＨ）１４を含む。便宜上、センサヘッド１４は１つだけ図示している。しかし、１つ以上の実施形態において、制御部１２は、例えばセンサヘッド１４−１，１４−２，．．．といった２つ以上のそのようなセンサヘッド１４と通信可能に接続されてよい。
【００１７】
センサヘッド１４のそれぞれは、多視点撮影能力、例えばステレオ撮影能力を提供する。例示的な実施形態において、センサヘッド１４（カメラヘッドまたはカメラユニットと呼ばれてもよい）は、ステレオカメラ対として動作する第１および第２のカメラアセンブリ１６−１および１６−２を含む。以下、カメラアセンブリ１６−１および１６−２を、単にカメラ１６−１および１６−２と読んだり、明瞭さのために必要でないかぎり、単に「カメラ１６」や「複数のカメラ１６」と呼んだりする。
【００１８】
各カメラ１６は、１つ以上のレンズを有するレンズアセンブリ１８と、レンズアセンブリ１８と正確に光学的位置合わせされたイメージャ２０と、イメージャ２０を動作させるように構成されたプリプロセッサまたは他の処理回路であってよく、撮像素子データの読み出し、露出時間の制御などを提供する画像プロセッサ２２とを含む。以下では、各レンズアセンブリ１８を単に「レンズ１８」と呼び、各撮像素子２０を単に「イメージャ２０」と呼ぶ。
【００１９】
センサヘッド１４は、マイクロプロセッサベースの回路、ＡＳＩＣベースの回路、および／またはＦＰＧＡベースの回路の１つ以上を有してよいステレオ画像処理回路２４をさらに含む。概して、ステレオ画像処理回路２４は、カメラ１６−１および１６−２によって撮影されたステレオ画像についてステレオ画像相関処理を実行するように構成されたデジタル処理回路を有する。特に、１つ以上の実施形態におけるステレオ画像処理回路２４は、センサヘッド１４が２つより多いカメラ１６を含む場合、デプスマップの生成、撮影されたシーン内の物体への距離判定など、より一般的に多視点画像処理を実行する。
【００２０】
例示的な実施形態において、ステレオ画像処理回路２４は、カメラ１６−１および１６−２のそれぞれから「フレーム」と呼ばれる連続的な画像を受信する。ここで、「フレーム」または「画像」は、所与の撮影について、関与するイメージャ２０からの画像データ（例えば画素データ）を含む。例えば、ステレオ画像処理回路２４は、連続する撮影間隔のそれぞれの間に第１のカメラ１６−１から１つ、第２のカメラ１６−２から１つの、１対の画像を受信する。フレームレートまたは撮影レートは、カメラ１６によって新しい画像が撮影される速度を決定する。
【００２１】
ステレオ画像処理回路２４は２つのカメラ１６−１および１６−２からの対応画像対間の相関処理の実行に基づいて、撮影のための３Ｄ測距を実行する。２つのカメラ１６−１および１６−２は、左画像カメラおよび右画像カメラとしての動作のために、所定の離間距離を隔てて水平線上に配置されてよい。左画像と右画像とにおける、同一被写体または特徴についての画素位置に見られる「視差(disparity)」または、ずれ(displacement)は、本技術分野に属する当業者が理解するように、３Ｄ測距情報を決定するための基礎を提供する。２つのカメラ１６−１および１６−２間の水平距離を「基線」と呼ぶことができる。
【００２２】
１つ以上の実施形態において、ステレオ画像処理回路２４は記憶装置２６を含むか、記憶装置２６に接続される。記憶装置２６は、コンピュータプログラム２８と、構成データ３０の１つ以上の項目のための恒久的な記憶を恒久的に提供するコンピュータ可読媒体の一種、例えばフラッシュメモリ（登録商標）またはＥＥＰＲＯＭを有するものと理解されよう。ここで、「恒久的(non-transitory)」とは、永続的または変化しない記憶装置を意味するとは限らず、不揮発性記憶装置を含みうるが、いくらかの規定された永続性を有する記憶装置を意味し、単なる伝播信号は含まれない。
【００２３】
一部の実施形態において、ステレオ画像処理回路２４は、コンピュータプログラム２８を構成するコンピュータプログラム命令の実行に基づいて、ここで説明される対応処理を実行するように特に適合される。さらに、構成データ３０は例えば、監視境界または他の重大な物体検知距離を規定するために用いられる３Ｄ距離または範囲のような動作構成設定を有する。
【００２４】
センサヘッド１４は、制御部１２をセンサヘッド１４に通信可能に接続する制御部インタフェース回路３２を有し、それによってセンサヘッド１４は画像データおよび／または得られた物体検知データを制御部１２に提供することおよび、制御部１２がセンサヘッド１４に構成データ３０および／または構成データ３０を得るために用いられる情報を提供することを可能にしている。例えばテスト用などの他のシグナリングが、制御部１２とセンサヘッド１４との間で伝送されて良いことは言うまでも無い。
【００２５】
従って制御部１２は、制御部１２と基本的に任意数のセンサヘッド１４とをインタフェースするための、対応する１つ以上のセンサヘッドインタフェース回路３４を含む。制御部１２はさらに、１つ以上の実施形態において、コンピュータプログラム４０および構成データ４２のための恒久的な記憶を提供する記憶装置３８を含むか、記憶装置３８に接続される処理回路３６を有する。記憶装置３８は、コンピュータプログラム４０および構成データ４２のための恒久的な記憶を提供する、フラッシュメモリまたはＥＥＰＲＯＭといったコンピュータ可読媒体を有する。
【００２６】
ここで、構成データ４２はユーザ（またはユーザデバイス）から受け取ってもよいし、そのような情報から得てもよく、また、構成データ４２はセンサヘッド１４内の構成データ３０と重複したり、構成データ３０の基礎を提供したりしてもよい。構成データ４２は例えば、監視ゾーンの規定および、例えば、いつどのような制御信号が制御部１２から出力されるかを含む、１つ以上のセンサヘッド１４によって検知された物体に対して制御部１２がどのように応答するかを規定する制御行動の規定を有する。そのようなシグナリングは１つ以上の制御／保全インタフェース回路４４から出力され、ユーザ（ラップトップコンピュータのようなユーザデバイス）からのデータは、１つ以上の構成および／または監視インタフェース回路４６を通じて交換される。
【００２７】
一部の実施形態において、処理回路３６は１つ以上のマイクロプロセッサ、ＤＳＰＳ、ＡＳＩＣ、ＦＰＧＡ、または他のデジタル処理回路を有する。より広義には、処理回路３６は固定回路またはプログラムされた回路、あるいは固定回路とプログラムされた回路の組み合わせを有する。例えば処理回路３６が１つ以上のマイクロプロセッサまたは他のプログラマブル回路を有する少なくとも１つの実施形態において、処理回路３６は、コンピュータプログラム４０を構成するコンピュータプログラム命令の実行に基づいて、ここでの説明に従って動作するように特に適合される。
【００２８】
上述の事項を念頭において、センサヘッド１４は自身の有するカメラ１６−１および１６−２のステレオ撮影対によって、重複する視野（ＦＯＶ）５０の撮影機能を提供する。もちろん、マシンビジョンシステム１０は、さらに、少なくとも部分的に重複するＦＯＶ５０を有する追加のカメラ１６を有してもよい。構成データ４２は、区切られた領域または区切られた空間を規定する３Ｄ範囲または座標によって、１つ以上の監視または危険ゾーン５２を規定する。
【００２９】
例えば、警戒ゾーンおよび、重大な「封鎖(stop)」または閉鎖(shutdown)ゾーンが存在しうる。例えば、警戒ゾーンはマシンビジョンシステム１０によって監視されている危険な機械から６ｍの距離から始まり、閉鎖ゾーンが始まる、機械から２ｍの距離まで広がるように規定されてよい。
【００３０】
構成の一例において、警戒ゾーン内の座標位置で検知された物体は、マシンビジョンシステム１０に１つ以上の警告信号を出力させたり、および／または対応する検知データを記録させたりなどする。逆に、重大な封鎖ゾーン内の座標位置で検知された物体は、マシンビジョンシステム１０に１つ以上の機械停止および／または他のセーフティクリティカル信号を出力させる。
【００３１】
ＦＯＶ５０はその中、例えばＦＯＶ５０内に広がる床の一部に配置された１つ以上の参照マーカ５４を有することに留意されたい。参照マーカ５４（ＲＭ）は、マシンビジョンシステム１０によって認識されるように既知のサイズ、色、および／またはパターンを有することができる。少なくとも１つの実施形態において、センターヘッド１４内のステレオ画像処理回路２４は、カメラ１６−１および１６−２から出力されるステレオ画像対を構成する画素データでＲＭ５４を認識するように構成される。少なくとも、画像データがセンサヘッド１４から制御部１２に伝送される実施形態では、同様の機能が制御部１２の処理回路３６に提供されてよい。構成データ３０および／または４２は例えば、サイズ、色、形状、パターンの詳細、およびＦＯＶ５０内の位置（例えばＲＭ５４の位置に対応する座標）といった、ＲＭ５４の既知もしくは予期される属性を示す情報を含む。
【００３２】
以上のことから、例示的な実施形態においてマシンビジョンシステム１０は、第１および第２のカメラ１６−１および１６−２から１対の画像を取得するように構成されたインタフェース回路を含む。ここで、１対の画像は現フレーム、すなわち、カメラ１６−１からの１画像とカメラ１６−２からの１画像とを有する、カメラ１６−１および１６−２からの現在のステレオ画像対を構成する。なお、第１および第２のカメラ１６−１および１６−２は、１つ以上のＲＭ５４を含んだシーンを撮影するものとする。
【００３３】
マシンビジョンシステム１０はさらに、インタフェース回路に動作可能に接続された処理回路を有する。処理回路が第１および第２のカメラ１６−１および１６−２を有するセンサヘッド１４に統合されている場合、例えばステレオ画像処理回路２４である場合、インタフェース回路はステレオ画像処理回路２４内の、および／またはイメージャ２０から画像データを読み出す各画像プロセッサ２２内のインタフェース回路を構成するものと理解されるであろう。処理回路が制御部１２に統合されている場合、例えば処理回路３６である場合、インタフェース回路は制御部１２をセンサヘッド１４に通信可能に接続する１つ以上のインタフェース回路３４を構成するものと理解されるであろう。これらの実施しうる様々な形態に関し、便宜上、処理回路は「処理回路２４および／または３６」または単に「処理回路２４，３６と呼ぶ。いずれの名称も、違う意味が記述されているか、文脈から明らかな場合を除き、「および／または」を意味するものと理解すべきである。
【００３４】
マシンビジョンシステムの稼働時動作(run state operation)中、処理回路２４および／または３６は、第１および第２のカメラ１６−１および１６−２の、および／またはそれらの間の機械的な位置ずれを、現在の参照マーカ位置と本来の参照マーカ位置との比較に基づいて推定するように構成される現在の参照マーカ位置は現フレームから、すなわち、現フレームを構成する画像データで観察されるように決定され、本来の参照マーカ位置はマシンビジョンシステム１０に保存されるセットアップデータから既知である。例えば構成データ３０および／または構成データ４２がセットアップデータを含んでいる。
【００３５】
機械的な位置ずれの推定に関し、１つ以上の実施形態における処理回路２４および／または３６は、カメラごとのイメージャシフト、カメラごとの倍率変化、カメラ間の相対的な回転、およびカメラ間の倍率比の少なくとも１つを推定するように構成されることに基づいて機械的な位置ずれを推定するように構成される。カメラごとのイメージャシフト推定は、例えばレンズ１８とイメージャ２０との、それらを有するカメラ１６の光軸に直交する方向における相対的な平行移動を表す。カメラごとの倍率変化は、レンズ１８とイメージャ２０との距離の変化、すなわち光軸に沿った平行移動を表し、カメラごとの倍率変化はカメラ間の倍率比の決定に用いることができる。
【００３６】
処理回路２４および／または３６の一部の実施形態は上述した位置ずれの全てを推定するように構成されるが、処理回路２４および／または３６がカメラごとのイメージャシフトだけを推定し、検出されたシフトを補償したり、および／または検出されたシフトに関する故障処理(fault processing)を実行したりするといったように、全部よりも少ない項目を推定することも想定される。
【００３７】
いずれの場合も、処理回路２４および／または３６は、マシンビジョンシステム１０によるステレオビジョン処理に関する最悪ケース誤差を、推定された機械的なずれの関数として算出するように構成される。さらに、処理回路２４および／または３６は、最悪ケース誤差が規定される閾値を超えると判定されたことに応答して、マシンビジョンシステム１０を動作の実行状態から動作の故障状態に遷移させるように構成される。規定される閾値は例えば、構成データ３０および／または４２に規定されており、カメラ１６−１および１６−２のいずれかの内部、またはカメラ間における過度の機械的な位置ずれが、マシンビジョンシステム１０を動作の故障状態に移行させるように、最悪ケース誤差はマシンビジョンシステム１０のステレオ相関性能と関連する。
【００３８】
１つ以上の実施形態において、処理回路２４および／または３６は上述した取得、推定、および算出を、マシンビジョンシステム１０の規定された応答時間内に実行するように構成される。ここで規定された応答時間は、マシンビジョンシステム１０によって実行されるセーフティクリティカルな物体検知機能に関連付けられる。
【００３９】
同じまたは他の実施形態において、処理回路２４および／または３６は、所与のいずれかのフレームで算出された最悪ケース誤差が規定された閾値を超えるか、マシンビジョンシステム１０の動作の稼働状態が他の要因により中断されるかしない限り、取得、推定、および算出をフレームごとに繰り返すように構成される。
【００４０】
例えば、マシンビジョンシステム１０はマシンビジョンシステム１０に接続されたステレオカメラ対から、もしくは任意数のステレオカメラ対のそれぞれから出力される各フレームについて、機械的な位置ずれおよび最悪ケース誤差をチェックしてよい。この、フレームごとのチェックに従って、処理回路２４および／または３６は、過度の最悪ケース誤差が検出されるか、他の故障が発生するか、他の動作（マシンビジョンシステム１０に入来する制御信号）が稼働状態の動作を終了または保留すべきであることを示したりしない限り、マシンビジョンシステム１０の動作を稼働状態で継続する。
【００４１】
少なくとも一部の実施形態において、処理回路２４および／または３６は、第１および第２のカメラ１６−１および１６−２からの複数フレームにわたってフィルタ処理された機械的な位置ずれの推定値を取得するように構成される。それに対応して、処理回路２４および／または３６は、最悪ケース誤差をフィルタ処理された推定値から取得し、最悪ケース誤差が規定された閾値を超える場合にはマシンビジョンシステム１０を動作の稼働状態から動作の故障状態へ遷移させるように構成される。
【００４２】
例えば、処理回路２４および／または３６は、複数フレームにわたってフィルタ処理された参照マーカ位置を取得し、フィルタ処理された参照マーカ位置から、第１および第２のカメラにおける、あるいはカメラ間における機械的な位置ずれを算出することによって、フィルタ処理された機械的な位置ずれを取得するように構成されることに基づいて、複数フレームにわたる機械的な位置ずれのフィルタ処理された推定値を取得するように構成される。あるいは、複数フレームにわたって参照マーカ位置をフィルタ処理するのではなく、処理回路２４および／または３６は、フィルタ処理された機械的な位置ずれを得るために、関連する各フレームで推定される機械的な位置ずれをフィルタ処理するように構成される。
【００４３】
概して、ここで想定されている少なくとも１つの実施形態において、処理回路２４および／または３６は、フィルタ処理された機械的な位置ずれの推定値を、第１および第２のカメラ１６−１および１６−２からの複数のフレームにわたって取得するように構成される。対応して、処理回路２４および／または３６は、第１および第２のカメラ１６−１および１６−２に関する、マシンビジョンシステム１０によるステレオビジョン処理を、フィルタ処理された機械的な位置ずれの関数として補償するように構成される。そのような実施形態の少なくとも１つにおいて、処理回路２４および／または３６は、第１および第２のカメラ１６−１および１６−２から得られる画像対の修正(rectify)においてマシンビジョンシステム１０が用いる１つ以上のキャリブレーションパラメータを適合させることによってステレオビジョン処理を補償するように構成される。
【００４４】
１つ以上のキャリブレーションパラメータは、検出された位置ずれを組み込むか、検出された位置ずれに依存し、また、処理回路２４および／または３６は、修正された座標系で第１および第２のカメラ画像間の差異判定および／または他の相関処理に用いられる、関連する１つ以上の保存値を更新する。従って、第１および第２のカメラ画像内の物体間の「明らかな」差異は、検出されたイメージャシフト、検出されたカメラ内もしくはカメラ間の倍率変化、および検出されたカメラ間の相対的な回転の変化の任意の１つ以上について補償されてよい。
【００４５】
図４はマシンビジョンシステム１０についての有利な例示的な構成を図示するものと理解することができるが、処理回路の他の構成などを、ステレオカメラ対からのフレームを取得および処理するために用いてもよい。従って、図５に示す方法５００は、図４に示したマシンビジョンシステム１０の固定されたおよび／またはプログラムに基づく構成によって実施されるものと理解することができる。しかし、この例は限定的なものではなく、図５の処理は他の回路構成によって実施することができる。
【００４６】
さらに、方法５００に示される１つ以上のステップまたは動作は、図に示唆されるものとは異なる順序で実施されてもよいし、並列処理されてもよいし、継続的に（例えば繰り返しやループ的に)実施されてもよいことが理解されよう。実際、少なくとも一部の実施形態において、マシンビジョンシステム１０が稼働状態で動作している間、方法５００はフレームごとにループまたは繰り返され、任意数のステレオカメラ対に関して実行される。
【００４７】
上述した、可能性のある構成を念頭に、方法５００は、現フレームを構成する画像対を第１および第２のカメラ１６−１および１６−２から取得すること（ブロック５０２）を含む。前の通り、カメラ１６−１および１６−２は、１つ以上のＲＭ５４を含むシーンを撮影するステレオカメラ対を構成する。
【００４８】
方法５００はさらに、第１および第２のカメラ１６−１および１６−２における、およびカメラ間の機械的な位置ずれを推定すること（ブロック５０４）を含む。推定処理は現在の参照マーカ位置と本来の参照マーカ位置との比較に基づき、現在の参照マーカ位置は現フレームから求められ、本来の参照マーカ位置はマシンビジョンシステムに保存されたセットデータから既知である。例えば、ＲＭ５４は色、サイズ、形状、およびパターンの１つ以上について認識可能であり、現フレームを構成する画素または画像データ内で観察されるＲＭ５４のｘ−ｙ位置は、ＲＭ５４の本来のｘ−ｙ位置と比較される。
【００４９】
機械的な位置ずれの推定（ブロック５０５）は、カメラごとの位置ずれの推定（ブロック５０４Ａ）および／または、「カメラにまたがった(cross-camera)」位置ずれと呼ぶことのできるカメラ１６−１および１６−２間の相対的な位置ずれの推定（ブロック５０４Ｂ）を含む。例えば、ブロック５０４Ａは、各カメラ１６−１および１６−２のイメージャシフトおよび／または倍率変化の推定を含む。ブロック５０４Ｂは、例えば、カメラ１６−１および１６−２間の相対的な回転および／またはカメラ１６−１および１６−２間の倍率比の推定を含む。 
【００５０】
方法５００はさらに、マシンビジョンシステム１０によるステレオビジョン処理の最悪ケース誤差の算出（ブロック５０６）を含む。最悪ケース誤差は、推定された機械的な位置ずれの関数として算出され、方法５００はさらに、最悪ケース誤差が規定された閾値を超えたことの判定（ブロック５０８のＮＯ）に応答して、マシンビジョンシステム１０を動作の稼働状態から動作の故障状態に遷移させること（５１２）を含む。一方で、最悪ケース誤差が規定された限度内であろうと判定された場合（ブロック５０８のＹＥＳ）、方法５００はマシンビジョンシステム１０の稼働時動作を継続すること（ブロック５１０）を含む。
【００５１】
図６はマシンビジョンシステム１０における機械的な位置ずれの検出および対応の別の実施形態を示す。方法６００は方法５００の拡張または一層詳細なバージョンとして理解することができる。図４に示したマシンビジョンシステム１０に限定されないが、１つ以上の実施形態において、図４のマシンビジョンシステム１０が方法６００を実行するように構成されることが理解されるであろう。方法６００は、１つ以上のステレオカメラ対のそれぞれについて、フレームごとに繰り返され、順番に、あるいは並行して実行することができる。また、方法６００が、現フレーム値の処理だけでなく、フィルタ処理されたおよび／または過去のフレーム値の処理も含むことを理解すべきである。
【００５２】
ステップ１（ブロック６０２）で、方法６００は現フレームにおけるＲＭ５４の位置を「追跡」することを含む。ここで、「追跡」は、観察されるＲＭ位置と予期されるＲＭ位置との比較を意味する。観察されるＲＭ位置は、現フレームを構成する画像データで検出される位置であり、一方、予期されるＲＭ位置は例えばマシンビジョンシステム１０の本来の設定構成から既知である本来の位置である。
【００５３】
ＲＭ位置追跡は修正された座標を用いておこなわれてよい。ここでは、各カメラ１６は、レンズひずみなどの影響を含んでいるため「そのままの(raw)」あるいは「歪んだ」座標系と呼ぶことができるカメラ座標系を有することに気付くかもしれない。従って、所与のいずれかのカメラから取得された所与のいずれかの画像を参照する際、その画像が歪んだ座標系に存在する場合と、歪んでいない座標系に存在する場合と、修正された座標系に存在する場合とがあることがわかるであろう。歪んだ座標系内の画像は、関連するカメラレンズの既知あるいは特徴的なひずみを表す構成データに基づいて、歪みのない座標に変換されてもよい。さらに、歪みのない座標系内の画像は、ステレオ画像対内の左および右画像の両方が同一の参照水平フレームを有するようにこれらの画像を修正するために用いられる、修正された座標系に変換されてよい。
【００５４】
処理は、現フレームに関するフレームごとの処理も表し、かつサブブロック６０４Ａ、６０４Ｂ，６０４Ｃを含むステップ２（ブロック６０４）に進む。全体としてブロック６０４は、マシンビジョンシステム１０が検出された機械的な位置ずれから生じる最悪ケース誤差が、適用可能な誤差バジェットによって許容される最悪ケース誤差を超えるかどうかを判定する「損失(loss)」テストを表す。ここで、用語「損失」は、最小物体サイズ、距離検出精度などで表される検知能力のいくつかの特定のレベルに関するマシンビジョンシステム１０による物体検知能力の損失として理解することができる。
【００５５】
損失テストは、光軸に直交する方向および光軸に沿った方向でのカメラごとのイメージャシフト機械的な位置ずれの検出に基づく。損失テストはさらに、カメラ間の倍率比、すなわち２つのカメラ１６−１および１６−２間の倍率の食い違いと、カメラ１６−１および１６−２間の相対的な回転を求めることを含む。そして、これらの推定値はマシンビジョンシステム１０によるステレオビジョン処理に関する最悪ケース誤差を求めるためと、最悪ケース誤差が規定された限界を超えるかどうかを判定するために用いられる。
【００５６】
もしそうであれば（ブロック６０４ＢでＹＥＳ）、処理はブロック６０４Ｃに進み、マシンビジョンシステム１０は動作の稼働状態から、例示的な方法では「マシン停止」状態である動作の故障状態に遷移する。ここで、「マシン停止」は、マシンビジョンシステム１０が製造機器または他の機械の要素を取り囲む領域または空間を保護または監視するために用いられ、機械周囲の規定された距離または境界内に物体が侵入したことの検知、および検知能力または他の故障の検出に応答して、機械を停止させるるという例示的なシナリオを意味する。
【００５７】
ブロック６０４の処理がブロック６０４Ｂから「ＮＯ」の経路でブロック６０６へ進んだとすると、方法６００はブロック６０６Ａで表される、「性能低下(degradations)」についての位置ずれおよび倍率テストを含む処理を続ける。一方で、ブロック６０６はマシンビジョンシステム１０による検知性能の低下に関するテストを表している。
【００５８】
これらの性能低下はマシンビジョンシステム１０に関して規定された誤差バジェットによって許される遊び(allowance)の範囲内の誤差を生じさせるものと理解することができる。ここで、「誤差バジェット」はマシンビジョンシステム１０の画像取得および処理フローにおける様々な部品または動作に起因する要素誤差を複数含む。ここで取り上げている機械的な位置ずれは全て誤差バジェット内の要素誤差に寄与するものと理解されるであろう。
【００５９】
さらに、ブロック６０４での損失テストは、現フレームで観察されるＲＭ位置に基づき、フレームごとの値、すなわち、機械的な位置ずれとそれによって得られる最悪ケース誤差の算出値に対して適用されるのに対し、ブロック６０６での性能低下テストはフィルタ処理された値を用いて、あるいは現フレームおよび１つ以上の過去フレームからの値を用いて動作する。ここで、「値」は以下の任意の一つ以上を総称的に表すために用いられる：追跡されたＲＭ位置、検出された機械的位置ずれ、推定された最悪ケース誤差、およびそれらの算出に用いられる任意の中間値。
【００６０】
ブロック６０４はマシンビジョンシステム１０の規定された応答時間（ＲＴ）内で検知損失を検出して対応するが、ブロック６０６のテストは一般に、図に非限定的な例として示した５秒(5S)といった、より長い期間を費やす。ここで、マシンビジョンシステム１０の「応答時間」は、マシンビジョンシステム１０が、危険エリアへの物体侵入の検知および／または検知能力の損失の検出から、関連する、保護される機械のシャットダウンまでの間に満たすべき規定された反応時間である。
【００６１】
ブロック６０６の一実施形態において、マシンビジョンシステム１０は、現フレームについて算出された最悪ケース誤差と、過去フレーム（例えば数秒間遡ったフレーム）について算出された最悪ケース誤差とを比較する（ブロック６０６Ａ）。２つの最悪ケース誤差の差が規定された閾値を超える場合（ブロック６０６ＢでＹＥＳ）、マシンビジョンシステム１０は動作の稼働状態から動作の故障状態に遷移する。この処理は段階的に増加する誤差の検出および対応として理解することができる。
【００６２】
一方、不具合が無い場合（ブロック６０６ＢでＮＯ）、処理はブロック６０６Ｄにおける定誤差(systematic error)除去を継続する。定誤差除去は、マシンビジョンシステム１０がステレオビジョン処理で用いる１つ以上のパラメータを適合させる。例えば、ＦＯＶ５０内の物体までの距離を求めるため、マシンビジョンシステム１０はカメラ１６−１から見えるその物体とカメラ１６−２から見えるその物体とのステレオ視差(stereo disparity)を求める。ここで、「ステレオ視差」は、２つの画像間での対応点の位置の差である。マシンビジョンシステム１０の初期セットアップ時に、ステレオ視差は２つのカメラ１６間の実際の距離、すなわち「基線」と、カメラ間の相対的な角度および位置に依存する。概して、構成データは、初期の、全体的なカメラ位置合わせを正確に表現または説明している。
【００６３】
キャリブレーションパラメータはセットアップ時に決定され、または読み込まれ、その後の稼働状態マシンビジョン処理、例えばステレオ対の画像の修正およびステレオ視差の算出時にマシンビジョンシステム１０に用いられる。しかし、キャリブレーションパラメータはマシンビジョンシステム１０のその後の動作の間に生じる機械的な位置ずれに従って不正確になっていく。
【００６４】
従って、ブロック６０６Ｄにおいてマシンビジョンシステム１０はセットアップ状態に対する機械的な位置ずれを検出すると、自身のキャリブレーションパラメータの１つ以上を更新する。例えば、マシンビジョンシステム１０は、カメラ間の相対的な回転角（例えば度単位）を反映するパラメータを維持または更新し、検出された相対的な回転角を画像修正を補償するために用いる。ここで、画像「修正(rectification)」は、ステレオ画像対からの左および右画像をカメラ間の基線に関して同一平面上にあるようにすること、すなわち、全てのエピポーラ線がカメラ１６間の基線によって確立される水平軸と平行となるようにすることであると理解できる。
【００６５】
カメラ１６−１および１６−２間の相対的な回転角を継続的または反復的に推定することにより、マシンビジョンシステム１０は相対的な回転角を表す、あるいは関連する１つ以上のキャリブレーションパラメータについて、更新された値を維持することが可能である。同じことはカメラ間の倍率比および倍率の不一致に関しても当てはまる。さらに、画像座標または画素行列値によって表現されてよいｘ−ｙオフセット値は、検出されたイメージャシフトを取り込むために例えば構成データ３０および／または４２で維持されてよく、そういった値はステレオ視差算出値などを補償するために用いられてよい。 
【００６６】
特に、１つ以上の実施形態におけるマシンビジョンシステム１０は定誤差除去処理においてフィルタ処理を用いる。すなわち、マシンビジョンシステム１０は、ノイズの影響を受けているかもしれない１フレームに関する値に基づいてキャリブレーションパラメータを更新するのではなく、フィルタ処理された値を用いてもよい。例えば、マシンビジョンシステム１０はフィルタ処理されたＲＭ位置、例えばいくらかのフレーム（例えば１００フレーム）に渡って観察されるようなＲＭ位置を、機械的な位置ずれの算出に用い、それら位置ずれに基づいてキャリブレーションパラメータを更新する。あるいは、観察されるＲＭ位置をフィルタ処理するのではなく、マシンビジョンシステム１０はいくらかのフレームに渡って機械的な位置ずれをフィルタ処理し、フィルタ処理された機械的位置ずれに基づいてキャリブレーションパラメータを更新する。
【００６７】
図６はブロック６０８Ａ、６０８Ｂ、および６０８Ｃを含んだブロック６０８を含んでいる。ブロック６０８Ａにおいて、マシンビジョンシステム１０はフォーカステストを実行する。フォーカステストに失敗した場合（ブロック６０８ＢでＹＥＳ）、マシンビジョンシステム１０は動作の稼働状態から動作の故障状態に遷移して処理が継続する。フォーカステストに合格した場合（ブロック６０８ＢでＮＯ）、動作の稼働状態で処理が継続する。ブロック６０８はブロック６０６のように、ある時間枠に渡って、すなわちマシンビジョンシステム１０に要求される基本応答時間よりもゆっくりと実行されてよく、また、そういったテストにフィルタ処理された値を用いたり、および／または失敗とするまでに所定数の失敗を必要としてもよい。
【００６８】
フォーカステストの一例において、ＲＭ５４は、色、形状、パターン、背景に対するコントラストなど、フォーカステストを容易にするための１つ以上の視覚的な属性を有することを理解されたい。対応して、フォーカス状況を検出するために、マシンビジョンシステム１０は１つ以上の実施形態において、（１）画像のコーナーまたはその付近に見えるようにシーン内に計画的に配置することのできるＲＭ５４のそれぞれに対応する画像データで観察される高周波画像成分を算出し、（２）画像内の最悪のボケ(blur)の程度を推定する。その程度が許容できるものとして規定されるレベルを超える場合、マシンビジョンシステム１０は稼働状態からマシン停止状態もしくは他の特定の故障状態に遷移する。
【００６９】
さらに、撮影されるシーン内のＲＭ配置についての要求を緩和するために、１つ以上の実施形態におけるマシンビジョンシステム１０は、（１）使用されるカメラレンズの（設計によって既知であるか、工場で特徴付けられる）デフォーカス分布を特徴付ける情報を格納し、（２）画像内のいくつかのＲＭ位置で計測された実際のデフォーカスレベルから、最悪デフォーカスレベルを推定する。つまり、マシンビジョンシステム１０は、画像内でフォーカスが評価されている場所に応じてフォーカス品質を評価するために、使用されるレンズのフォーカスプロファイルを用いることができる。
【００７０】
上述の処理をより詳細な方法で、かつ１つ以上の例示的な実施形態に照らしてより良く理解するため、図７について検討する。ステレオ対におけるカメラ１６のうち、第１のカメラまたは主カメラについて、図は修正された座標系Ｋprectと、修正された画像のｘ−ｙ範囲についての対応する表記｛xprect、yprect｝とを示している。図はさらに、主カメラについて、歪みのない座標系Ｋpdfと、歪みのない画像のｘ−ｙ範囲についての対応する表記｛xpdf、ypdf｝とを示している。図はさらに、歪みのある、あるいはそのままの画像座標系Ｋpdistと、歪みのある画像のｘ−ｙ範囲についての対応する表記｛xpdist、ypdist｝とを示している。対応する座標系および大きさの表現が１対のカメラ１６の第２のカメラまたは副カメラについても与えられ、「主」を表す「ｐ」の代わりに「副」を表す「ｓ」が上付き文字で示されている。
【００７１】
使用されるカメラ１６によって提供される画像は、当初、それらカメラの、歪みのある座標系内に存在する。物体検知および他の処理のために、マシンビジョンシステム１０は画像を、歪みのある座標系から、対応する歪みのない座標系に変換し、さらに歪みのない座標系から修正された座標系に変換する。
【００７２】
本開示の文脈において「画像」に言及する際、画像は上述した座標系のうち任意の座標系に存在してよく、および／またはいくつかの処理は１つの座標系内の画像に実行されてよい。一方、他の動作は同じ画像に対して実行されるが、別の座標系に変換した後に実行される。従って、所与のカメラ１６からの現フレームで出力される所与の画像は、ビジョン処理フロー内の特定の時刻または特定の位置でどの座標系が適用可能かに応じて、ＲＡＷ画像または歪みのある画像、歪みの無い画像、あるいは修正された画像と呼ぶことができる。
【００７３】
例えば、ここで想定される１つ以上の実施形態において、マシンビジョンシステム１０は修正された画像を用いてＲＭ位置を追跡するが、ステレオカメラ対のカメラ１６間の相対的な回転を推定するには歪みのない画像を用いる。従って、ステレオカメラ対１６−１および１６−２によって出力される現フレームを構成する画像対を処理する際、マシンビジョンシステム１０は画像対を個々の歪みのない座標系に変換し、カメラ１６−１および１６−２間の相対的な回転を推定するために歪みのない画像を用いる。しかし、マシンビジョンシステム１０は、修正された座標系を用いて、各カメラ１６−１および１６−２からの画像内でのＲＭ位置の明らかな平行移動を求める 
【００７４】
座標系間の変換は、画像修正に用いるためのパラメータを含んだ上述したキャリブレーションパラメータを含む、上述した構成データ３０および／または４２に基づく。従って、修正された画像内のＲＭ位置は、適用可能な関係に従って、歪みのない座標系および歪みのある画像座標系に変換されてよい。
【００７５】
より詳細には、３Ｄカメラ座標と画像座標Ｋとの関係は固有カメラ行列であり、以下の様に定義できる。
【数１】
0006299879.tif 000002
ここで、ｆは焦点距離[画素]、pp = (ppx, ppy)[画素]はカメラ１６の主点である。各画像座標系は自身のＫを有する。座標系X = (Ｘ Ｙ Ｚ)Tの３Ｄ位置はＫによって以下の様にx = (x y)tに射影される。この変換はピンホールカメラモデルを用いている。
【数２】
0006299879.tif 000003
【００７６】
カメラ１６のそれぞれについて、修正された座標系と歪みのない座標系との関係は座標系間の相対的な回転を伝達する回転行列Ｒを用いて表現される。さらに、主カメラ１６−１の歪みのない座標系から副カメラ１６−２の歪みのない座標系へ射影または変換するために、変換ベクトルｔを用いてもよい。ここで、ベクトルｔは主カメラ１６−１の歪みのない座標系の原点と、副カメラ１６−２の歪みのない座標系の原点との間の移動(shift)を表す。従って、３Ｄ座標はこれら２つのパラメータを用いて、２つのカメラ１６−１および１６−２の歪みのない座標系間で以下の様に変換することができる。
【数３】
0006299879.tif 000004
【００７７】
歪みのない座標系と修正された座標系との関係に関して相対的な回転だけを規定しているのは、修正された座標が、ステレオカメラ対に属する画像を互いに平行とするための仮想座標であるからである。歪みのない画像と歪みのある画像との関係は、適用可能なレンズ歪みモデルおよび歪み係数ｋおよびｐによって表すことができる。係数ｋ＝（ｋ１  ｋ２  ｋ３）は半径方向歪みに対応する。係数ｐ＝（ｐ１  ｐ２）は周方向歪みに対応する。
【００７８】
従って、歪みのない画像座標ｘｄｆ＝（ｘｄｆ  ｙｄｆ）Tは以下の様に歪みのある画像座標ｘｄｉｓｔ＝（ｘｄｉｓｔ  ｙｄｉｓｔ）Tに変換することができる。
【数４】
0006299879.tif 000005
【００７９】
カメラ１６−１と１６ー２で、あるいはそれらの間で、図４に示した例のような機械的な移動が生じる場合、マシンビジョンシステム１０で用いられる１つ以上のキャリブレーションパラメータにおける変化にマッピングすると仮定することができる。これに対応して、図８は、「コーナー移動ベクトル」の利用に基づいて、マシンビジョンシステム１０によるステレオビジョン処理についての最悪ケース誤差を求めるための例示的なアプローチを示している。
【００８０】
まず、マシンビジョンシステム１０はステレオカメラ対１６−１および１６−２からフレーム、すなわち左または右画像、あるいは主および副画像を構成する画像対を取得する。マシンビジョンシステム１０はこれらの画像を、使用されるカメラ１６−１および１６−２の修正された座標系に変換し、修正された画像内で観察されるＲＭ位置と、セットアップからのそれらの本来の位置との差を求め、カメラ１６の光軸に対するイメージャ２０の垂直シフトまたはオフセットと、カメラ１６の倍率比とを含む、カメラごとの位置ずれを求めるために、それらの差を用いる。これらの検出値は、既知の、あるいはセットアップ時に決定される、対応するパラメータに関して決定もしくは表すことができる。
【００８１】
マシンビジョンシステム１０はカメラごとに求めた倍率値からカメラ１６−１と１６−２との相対倍率比を求め、さらにカメラ１６−１と１６−２との相対的な回転量を求める。ここで、相対的な回転量の推定は、観察されるＲＭ位置を、修正された座標系から、対応する歪みのない座標系に変換するマシンビジョンシステム１０に基づく。マシンビジョンシステム１０は、自身のＲＭ位置追跡から求められた機械的な位置ずれ、すなわちカメラごとの移動およびカメラ間の倍率比および相対的な回転の推定値を、マシンビジョンシステム１０によるステレオビジョン処理についての最悪ケース誤差を推定するために用いる。
【００８２】
特に、１つ以上の実施形態におけるマシンビジョンシステム１０は、ステレオ視差誤差は画像のコーナーで最悪となることが予期されるため、最悪ケース誤差を推定するために「コーナー移動ベクトル」を用いる。図８における主カメラの列をみると、コーナー移動ベクトル処理は、修正された座標系内のコーナー位置である「点Ａ」から始まる。マシンビジョンシステム１０は点Ａを修正された座標系から、主カメラ１６の歪みのない座標系内の「点Ｂ」に変換し、さらに「点Ｂ」を、主カメラ１６の歪みのある座標系内の「点Ｃ」に変換する。
【００８３】
そしてマシンビジョンシステム１０は、主カメラ１６について求めたカメラごとの位置ずれを点Ｃに適用し、それによって点Ｃを、歪みのある座標系内の「点Ｄ」へ移動させる。そこから、マシンビジョンシステム１０は点Ｄを歪みのない座標系に変換して戻して「点Ｅ」として変換し、点Ｅを修正された座標系に「点Ｆ」として変換する。
【００８４】
そしてマシンビジョンシステム１０は、主カメラ１６の修正された座標系内の点Ａと点Ｆとのｘ−ｙ位置の差に基づいて、第１コーナー移動ベクトルを算出する。点Ａはxpcorner_rect、点Ｆはxpcorner_rect_addと表すことができる。そして、第１コーナー移動ベクトルは以下の様に表すことができる。
【数５】
0006299879.tif 000006
【００８５】
マシンビジョンシステム１０はまた、副カメラ１６のカメラごとの位置ずれだけでなく、主および副カメラ１６間の相対的な回転も考慮した第２のコーナー移動ベクトルを算出する。まず、マシンビジョンシステム１０は、「点Ｈ」を得るために、主カメラ１６の歪みのない座標系から点Ｂを副カメラ１６の歪みのない座標系に射影する。点Ｂはxpcorner_dfと、点Ｈはxs_pcorner_dfと表記することができ、観察されるＲＭ位置の評価に基づいてマシンビジョンシステム１０によって求められた相対的な回転量を調整したように、xs_pcorner_dfは上述したＸｂ＝ＲＸａ＋ｔ変換を適用することにより取得されることが理解されよう。
【００８６】
そしてマシンビジョンシステム１０は、「点Ｉ」を得るために、副カメラ１６の歪みのない座標系内の点Ｈを移動させる。具体的には、点Ｈは主および副カメラ１６間で検出された相対的な回転量に従って移動される。そしてマシンビジョンシステム１０は、点Ｉを、副カメラ１６の歪みのある座標系内の「点Ｊ」に変換する。そしてマシンビジョンシステム１０は点Ｊを、歪みのある座標系内の「点Ｋ」に移動させる。ここで、移動量は、副カメラ１６についてマシンビジョンシステム１０によって求められたカメラごとの位置ずれの関数として算出される。続く処理では、マシンビジョンシステム１０が、「点Ｌ」を得るために点Ｋを副カメラの歪みのない座標系から変換する。そして点Ｌは、「点Ｍ」を得るために副カメラ１６の修正された座標系に変換される。マシンビジョンシステム１０はさらに、点Ｈを副カメラの歪みのない座標系から副カメラの修正された座標系に変換することに基づいて、副カメラ１６の修正された座標系内の「点Ｎ」を得る。
【００８７】
点Ｎは主および副カメラ１６の相対的な回転を考慮しておらず、その代わりに機械的な位置ずれなしに対応するコーナー「移動」を考慮している。しかし、点Ｍは主および副カメラ１６間の相対的な回転と、副カメラ１６のカメラごとの位置ずれとの両方を考慮している。第２の移動ベクトルは点ＭおよびＮのｘ−ｙ位置の差として算出される。点Ｍをxs_pcorner_rect_opt_add、点Ｎをxs_pcorner_rectと表すと、第２の移動ベクトルは以下の様に表すことができる。
【数６】
0006299879.tif 000007
【００８８】
従って、マシンビジョンシステムのセットアップ時に存在する位置ずれについてのエピポーラ誤差および視差は以下の様に表すことができる。
【数７】
0006299879.tif 000008
ここで、xpcorner_rectは図８の点Ａ、xs_pcorner_rectは図８の点Ｎであり、セットアップ状態の間に算出されたものである。マシンビジョンシステム１０の稼働動作中におけるこれらの位置ずれの程度や性質の変化は、エピポーラ誤差および視差を変化させる。従って、マシンビジョンシステム１０の稼働動作中の任意の時点についてのエピポーラ誤差および視差は以下の様に表すことができる。
【数８】
0006299879.tif 000009
ここで、xpcorner_rect_addは図８の点Ｆ、xs_pcorner_rect_opt_addは図８の点Ｍである。
【００８９】
従って、稼働動作中のマシンビジョンシステム１０によるステレオビジョン処理についての最悪ケース誤差は、マシンビジョンシステム１０のセットアップ状況に対するエピポーラ誤差および視差の変化または差として理解することができる。これらの観点からみると、最悪ケース誤差は以下の様に表すことができる。
【数９】
0006299879.tif 000010
【００９０】
簡単な置換により、errworstが第１コーナー移動ベクトルと第２コーナー移動ベクトルとの差であることが分かる。すなわち、
【数１０】
0006299879.tif 000011
【００９１】
従って、図５のブロック５０８におけるフレームごとの処理に関して、および／または図６のブロック６０４におけるフレームごとの処理に関して、１つ以上の実施形態においてマシンビジョンシステム１０は、機械的な位置ずれ（本明細書において「機械的な位置ずれ」の意味は、カメラごとの、およびカメラにまたがる（カメラ間の）位置ずれならびにここで説明した差を広く包含する）を求め、第１および第２のコーナー移動ベクトルを算出するためにこれら求めた機械的な位置ずれを用い、最悪ケース誤差を算出するためにこれらコーナー移動ベクトルを用いることが理解されよう。 
【００９２】
しかし、このフレームごとの誤差判定は、１つ以上の実施形態において、フレーム間の変化に対して動作するように構成される。例えば、機械的位置ずれの「有効」な判定を有する過去のフレームを「ｔ−ｎ」で表し、現フレームを「ｔ」で表すとする。そして、現フレームについての機械的な位置ずれ判定もまた有効であるとすると、現フレームについての最悪ケース誤差が許容限度内か否かに関する判定は、以下の様に表されるフレーム間変動について実行することができる。
【数１１】
0006299879.tif 000012
ここで、ｎは、例えば直前のフレームが有効であれば例えば１に等しく、その前のフレームが有効であれば２に等しく、以下同様である。
【００９３】
従って、一部の実施形態においてブロック５０８におけるＹＥＳ／ＮＯ判断および／またはブロック６０４ＢにおけるＹＥＳ／ＮＯ判断は、最悪ケース誤差についてのフレーム間変化が規定された限度内か否かの判定の関数とされてもよい。故障検出についてのこのアプローチについては、さらにいくつかのコメントが該当する。
【００９４】
第１に、フレーム間変化の追跡に基づく故障検出は、本質的にかつそれ自体ではゆっくりと変化する位置ずれを考慮しない。従って、図６のブロック６０６Ｂにおける故障検出は、例えば、同じタイプの変化評価を実施することができるが、現フレームについての最悪ケース誤差と、過去の（例えば３秒前）のフレームからの最悪ケース誤差とを比較することができる。もちろん、最悪ケース誤差値はフィルタ処理を用いてブロック６０６Ｂで算出してもよいが、それでもやはりマシンビジョンシステム１０は、現フレームにおいて求められた最悪ケース誤差と、過去（例えば９０または１００フレーム前）に求められた最悪ケース誤差との比較によって、徐々に変化する位置ずれを検出して対応する。
【００９５】
第２に、フレーム間変化の決定についての先の説明において、「有効」なフレームを用いることを述べた。フレームは、そのフレームについて行われた機械的な位置ずれ判定が規定された限度内であれば有効と見なすことができ、それらの限界は、所与のいずれかのフレームにおいて求められた機械的な位置ずれが、マシンビジョンシステム１０によって用いるには不正確であると見なされる程度に大きすぎるもしくは非常に大きな変化を表すかどうかの判定に用いることのできる、デルタまたは許容オフセットとして規定されてよい。
【００９６】
これらのことを踏まえ、１つ以上の実施形態および図８に示した位置ラベルに関して、処理回路２４および／または３６は、第１のコーナー移動ベクトルをカメラ１６−１および１６−２のステレオ対の第１のカメラ１６−１のイメージャシフトおよび倍率変化の関数として算出し、第２のコーナー移動ベクトルを第２のカメラ１６−２のイメージャシフトおよび倍率変化の関数として、さらには第１および第２のカメラ１６−１および１６−２間の相対的な回転量および倍率比の関数として算出し、第１および第２のコーナー移動ベクトルの差を求め、そしてこの差を、セットアップデータから既知である本来の第１および第２のコーナー移動ベクトルの差と比較する（例えば、上述したdruntime-dsetupの判定）ように構成される。
【００９７】
上述した処理は、第１のカメラ１６−１についての本来の画像コーナー位置（点Ａ）を、第１のカメラ１６−１の修正された座標系から歪みのない座標系に変換し（点Ｂ）、第１のカメラ１６−１の歪みのない座標系から歪みのある座標系に変換する（点Ｃ）ことによって、変換されたコーナー位置（点Ｆ）を取得するように構成されることに基づいて、第１のコーナー移動ベクトルを算出する処理回路２４および／または３６に基づく。ここで、第１のカメラ１６−１の歪みのある座標系は、第１のカメラ１６−１のレンズ歪みを反映した、第１のカメラ１６ー１のそのままの座標系である。
【００９８】
処理回路２４および／または３６はさらに、第１のカメラ１６−１に関する移動されたコーナー位置（点Ｄ）を、変換されたコーナー位置（点Ｃ）および第１のカメラ１６−１について推定された機械的な位置ずれの関数として算出し、移動されたコーナー位置（点Ｄ）を第１のカメラ１６−１の歪みのある座標系から修正された座標系に変換して戻す（すなわち、点Ｅに変換し、さらに点Ｆに変換する）ことにより、第１のカメラ１６ー１についての移動され変換されたコーナー位置（点Ｆ）を得るように構成される。そこから、処理回路２４および／または３６は第１のコーナー移動ベクトルを、移動され変換されたコーナー位置（点Ｆ）と、本来の画像コーナー位置（点Ａ）との差として算出するように構成される。
【００９９】
さらに、処理回路２４および／または３６は、第１のカメラ１６−１についての本来の画像コーナー位置（点Ａ）を第１のカメラ１６−１の修正された座標系から第１のカメラ１６−１の歪みのない座標系に変換することに基づいて、変換されたコーナー位置（点Ｂ）を取得し、変換されたコーナー位置（点Ｂ）を第２のカメラ１６−２の歪みのない座標系に射影することにより、射影されたコーナー位置（点Ｈ）を求めるように構成されることに基づいて、第２のコーナー移動ベクトルを算出するように構成される。
【０１００】
そして処理回路２４および／または３６は、射影されたコーナー位置を第２のカメラ１６−２の修正された座標系に変換することによって第２の変換されたコーナー位置（点Ｎ）を取得するとともに、射影されたコーナー位置（点Ｈ）を第１および第２のカメラ１６−１および１６−２間の相対的な回転量の関数として移動させることによって第３の変換されたコーナー位置（点Ｉ）を取得し、この移動後に、射影されたコーナー位置（点Ｉ）を、第２のカメラ１６−２の歪みのある座標系に変換する（点Ｊ）。
【０１０１】
そして処理回路２４および／または３６は、第３の変換されたコーナー位置（点Ｊ）を、第２のカメラについて推定された推定イメージャシフトおよび推定倍率変化の関数として歪みのある座標気内で移動させ（これで点Ｋが得られる）、さらに、第２のカメラの歪みのある座標系内での移動（点Ｋ）後に、第３の変換されたコーナー位置を、第２のカメラ１６−２の歪みのない座標系に変換し（点Ｌ）、さらに第２のカメラ１６ー２の修正された座標系に変換する（点Ｍ）ことにより、第４の変換されたコーナー位置（点Ｍ）を取得する。そして処理回路２４および／または３６は、第２のコーナー移動ベクトルを、第２の変換されたコーナー位置（点Ｎ）および第４の変換されたコーナー位置（点Ｍ）との差として算出する。
【０１０２】
さらに、上述したように、処理回路２４および／または３６は、１つ以上の実施形態において、ＲＭ５４のボケ(blurring)を検出するために現フレームまたはいくつかのフレームを評価し、規定された閾値を超えるボケのレベルを検出したことに応じてマシンビジョンシステム１０を動作の稼働状態から動作の故障状態へ遷移させるように構成される。ボケは、レンズの劣化および／またはほこり、油分などの均質な汚染によって生じうる。そのような実施形態の少なくとも１つにおいて、処理回路２４および／または３６は、規定されたボケ閾値を、関連する画像または複数の画像内のＲＭ５４の位置と、第１および第２のカメラ１６−１および１６−２のレンズ１８について既知の、対応するフォーカス品質プロファイルとの関数として適合させるように構成される。
【０１０３】
さらに、マシンビジョンシステム１０は、カメラ１６−１および１６−２のステレオ対によって撮影されるシーンに所定数のＲＭ５４が存在することを要求するように構成されてもよい。そのような実施形態において、処理回路２４および／または３６は、例えば各フレームにおいて画像データを評価し、最低限必要な数のＲＭ５４が視認できるかどうかを判定し、もし視認できなければ動作の稼働状態から動作の故障状態へ遷移するように構成される。
【０１０４】
特に、先の説明および関連する図面で提示される教示の利益を享受する当業者は、開示された１つ以上の発明の変形物および他の実施形態を想起するであろう。例えば、ここでの教示は任意数のステレオカメラ対や、３つ以上のカメラの使用に適用可能であり、例えば視野が重複する３つ、４つ、またはさらに多くのカメラにおける、またそれらカメラ間における位置ずれを、３Ｄ測距および物体検知に用いることができる。
【０１０５】
従って、１つ以上の発明は開示される特定の実施形態に限定されるべきでなく、変形物および他の実施形態は本開示の範囲に含まれるべきであることを理解すべきである。ここでは特定の用語が用いられているかもしれないが、それらは汎用的かつ説明的な意味でのみ用いられており、限定目的で用いられてはいない。
【図１】
0006299879.tif 000013
【図２】
0006299879.tif 000014
【図３】
0006299879.tif 000015
【図４】
0006299879.tif 000016
【図５】
0006299879.tif 000017
【図６】
0006299879.tif 000018
【図７】
0006299879.tif 000019
【図８】
0006299879.tif 000020