(57)【要約】【課題】２以上のカメラのカメラ画像で１以上の部品の対応を見出すためのコンピュータプログラムプロダクトを含む、方法、システム、装置の提供。【解決手段】２以上のカメラのカメラ画像で１以上の部品の対応を見出すためのコンピュータプログラムプロダクトを含む、方法、システム、装置が記述される。第１カメラの第１カメラ画像における第１部品に対して、第１カメラ画像での第１部品の第１特徴座標の、３Ｄ物理的空間への第１バックプロジェクションである第１の３Ｄ光線が計算される。第２カメラの第２カメラ画像での第２部品に対して、第２カメラ画像における第２部品の第２特徴座標の、３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線が計算され、第１特徴座標、第２特徴座標は、モデルにおいて特定されている通りの第１特徴に対応している。第１の３Ｄ光線と第２の３Ｄ光線との間の第１距離が計算される。【選択図】図１
2018092636.tif 000002
【特許請求の範囲】
【請求項１】
図面に記載の方法、システム、装置など。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の詳細な説明）
（関連出願の引用）
本出願は、２０１１年１２月１６日に出願された「Ｍｕｌｔｉ−Ｐａｒｔ  Ｃｏｒｒｅｓｐｏｎｄｅｒ  ｆｏｒ  Ｍｕｌｔｉｐｌｅ  Ｃａｍｅｒａｓ」と題する米国特許出願第６１／５７６，９５２号の利益および優先権を主張し、米国特許出願第６１／５７６，９５２号の全内容が本明細書に参考として援用されている。
【０００２】
（技術分野）
本発明は概して、マシンビジョンの分野に関し、より詳細には、別個のカメラ画像において部品を対応させることに関する。
【背景技術】
【０００３】
（背景）
（発明の背景）
デジタル画像は、多くのデバイスによって形成され、そして、多くの実用的目的のために使用される。デバイスは、可視光線または赤外線で動作するカメラ、ラインスキャンセンサ、フライングスポットスキャナ、電子顕微鏡、ＣＴスキャナを含むＸ線デバイス、磁気共鳴イメージャ、および当業者に知られている他のデバイスを含む。実用的な用途は、産業オートメーション、医療診断、様々な軍事目的、民間の目的、および科学的目的のための衛星撮像、写真処理、監視および交通モニタリング、文書処理、ならびにその他多数において見出される。
【０００４】
これらの用途に役立てるために、様々なデバイスによって形成された画像は、デジタルデバイスによって分析され、適切な情報を抽出する。実用の面でかなり重要である分析の１つの形態は、撮像デバイスの視野における物体と対応する画像における模様の位置、配向、および大きさを決定することである。模様の位置特定方法は、産業オートメーションにおいて特に重要であり、産業オートメーションにおいては、模様の位置特定方法は、半導体製造、電子機器組み立て、製薬、食品加工、消費財製造、およびその他多数におけるロボットならびに他のオートメーション機器を案内するために使用される。
【０００５】
１つより多くの撮像デバイスを使用する用途において、実用の面で重要なデジタル画像分析の別の形態は、１つのデバイスの視野および別のデバイスの視野における部品の間の対応（例えば、別個の視野におけるどの部品が同じ物理的部品と対応するか）を特定することである。従って、別個の視野において迅速に部品を対応させるシステムおよび方法が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００６】
（本技術の概要）
一局面において、本技術は、２つ以上のカメラのカメラ画像において１つ以上の部品の対応を見出すコンピュータで実行される方法に関する。方法は、第１のカメラの第１のカメラ画像における第１の部品に対して、該第１のカメラ画像における該第１の部品の第１の特徴座標の、３Ｄ物理的空間への第１のバックプロジェクションである第１の３Ｄ光線を計算することを含む。方法は、第２のカメラの第２のカメラ画像における第２の部品に対して、該第２のカメラ画像における該第２の部品の第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することを含み、ここで該第１の特徴座標および該第２の特徴座標は、モデルにおいて特定されているとおりの第１の特徴に対応している。方法は、該第１の３Ｄ光線と該第２の３Ｄ光線との間の第１の距離を計算することを含む。
【０００７】
別の局面において、本技術は、２つ以上のカメラのカメラ画像において１つ以上の部品の対応を見出すコンピュータで実行される方法に関する。方法は、第１のカメラの第１のカメラ画像における第１の部品に対して、該第１のカメラ画像における第１の特徴座標の、３Ｄ物理的空間へのバックプロジェクションである第１の３Ｄ光線を計算すること、該第１のカメラ画像における第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することを含む。方法は、第２のカメラの第２のカメラ画像における第２の部品に対して、該第２のカメラ画像における第３の特徴座標の、該３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算すること、該第２のカメラ画像における第４の特徴座標の、該３Ｄ物理的空間への第４のバックプロジェクションである第４の３Ｄ光線を計算することを含み、ここで、該第１の特徴座標および該第３の特徴座標は、モデルにおいて特定されているとおりの同じ第１の特徴に対応し、該第２の特徴座標および該第４の特徴座標は、該モデルにおいて特定されているとおりの同じ第２の特徴に対応する。方法は、該第１の３Ｄ光線および該第３の３Ｄ光線上の最近ポイント間の第１のポイントならびに該第２の３Ｄ光線および該第４の３Ｄ光線上の最近ポイント間の第２のポイントを計算することを含む。
【０００８】
一部の実施形態において、方法は、前記第１のカメラの前記第１のカメラ画像における前記第１の部品に対して、該第１のカメラ画像における第３の特徴座標の、３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算することと、前記第２のカメラの前記第２のカメラ画像における前記第２の部品に対して、該第２のカメラ画像における第４の特徴座標の、該３Ｄ物理的空間への第４のバックプロジェクションである第４の３Ｄ光線を計算することであって、該第３の特徴座標および該第４の特徴座標は、該モデルにおいて特定されているとおりの第２の特徴に対応している、ことと、該第３の３Ｄ光線と該第４の３Ｄ光線との間の第２の距離を計算することとを含む。
【０００９】
一部の実施形態において、方法は、前記第１の距離および前記第２の距離のうちの少なくとも１つに基づいて候補部品対応スコアを計算することを含む。一部の実施形態において、前記候補部品対応スコアは、前記第１の距離および前記第２の距離の平均である。一部の実施形態において、方法は、前記第１の距離が所定の閾値を超過する場合、候補部品対応としての前記第１のカメラの前記第１のカメラ画像における前記第１の部品と前記第２のカメラの前記第２のカメラ画像における前記第２の部品とのペアリングを除外することを含む。
【００１０】
一部の実施形態において、方法は、第３のカメラの第３のカメラ画像における第３の部品に対して、該第３のカメラ画像における該第３の部品の第３の特徴座標の、前記３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算することであって、前記第１の特徴座標、前記第２の特徴座標、および該第３の特徴座標は、前記モデルにおいて特定されているとおりの前記第１の特徴に対応している、ことと、該第３の３Ｄ光線と、前記第１の３Ｄ光線および前記第２の３Ｄ光線上の最近ポイント間の第１のポイントとの間の第２の距離を計算することとを含む。
【００１１】
一部の実施形態において、方法は、第３のカメラの第３のカメラ画像における第３の部品に対して、該第３のカメラ画像における該第３の部品の第３の特徴座標の、前記３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算することであって、前記第１の特徴座標、前記第２の特徴座標、および該第３の特徴座標は、前記モデルにおいて特定されているとおりの特徴に対応している、ことと、前記第１の３Ｄ光線と該第３の３Ｄ光線との間の第２の距離を計算し、かつ前記第２の３Ｄ光線と該第３の３Ｄ光線との間の第３の距離を計算することとを含む。
【００１２】
一部の実施形態において、方法は、前記第１のポイントと前記第２のポイントとの間の距離を計算することを含む。一部の実施形態において、方法は、前記距離を所定の値と比較することにより、距離残差を決定することを含む。一部の実施形態において、前記所定の値は、前記モデルにおいて特定されているとおりの前記第１の特徴および前記第２の特徴に基づく。一部の実施形態において、前記所定の値は、入力された値に基づく。
【００１３】
一部の実施形態において、方法は、前記距離残差に基づいて候補対応スコアを計算することを含む。一部の実施形態において、方法は、前記距離残差が所定の閾値を超過する場合、候補部品対応としての前記第１のカメラ画像における前記第１の部品と前記第２のカメラ画像における前記第２の部品とのペアリングを除外することを含む。一部の実施形態において、方法は、前記第１の３Ｄ光線と前記第３の３Ｄ光線との間の第１の距離を計算し、かつ前記第２の３Ｄ光線と前記第４の３Ｄ光線との間の第２の距離を計算することと、前記距離残差、該第１の距離、および該第２の距離に基づいて候補部品対応スコアを計算することとを含む。
【００１４】
別の局面において、本技術は、システムに関する。システムは、２つ以上のカメラと、対応モジュールであって、該対応モジュールは、該２つ以上のカメラのうちの第１のカメラの第１のカメラ画像における第１の部品に対して、該第１のカメラ画像における該第１の部品の第１の特徴座標の、３Ｄ物理的空間への第１のバックプロジェクションである第１の３Ｄ光線を計算することと、該２つ以上のカメラのうちの第２のカメラの第２のカメラ画像における第２の部品に対して、該第２のカメラ画像における該第２の部品の第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することであって、該第１の特徴座標および該第２の特徴座標は、モデルにおいて特定されているとおりの第１の特徴に対応している、ことと、該第１の３Ｄ光線と該第２の３Ｄ光線との間の第１の距離を計算することとを実行するように構成されている、対応モジュールとを含む。
【００１５】
別の局面において、本技術は、システムに関する。システムは、２つ以上のカメラと、対応モジュールであって、該対応モジュールは、該２つ以上のカメラのうちの第１のカメラの第１のカメラ画像における第１の部品に対して、該第１のカメラ画像における第１の特徴座標の、３Ｄ物理的空間へのバックプロジェクションである第１の３Ｄ光線を計算し、該第１のカメラ画像における第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することと、該２つ以上のカメラのうちの第２のカメラの第２のカメラ画像における第２の部品に対して、該第２のカメラ画像における第３の特徴座標の、該３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算し、該第２のカメラ画像における第４の特徴座標の、該３Ｄ物理的空間への第４のバックプロジェクションである第４の３Ｄ光線を計算することであって、該第１の特徴座標および該第３の特徴座標は、モデルにおいて特定されているとおりの同じ第１の特徴に対応し、該第２の特徴座標および該第４の特徴座標は、該モデルにおいて特定されているとおりの同じ第２の特徴に対応する、ことと、該第１の３Ｄ光線および該第３の３Ｄ光線上の最近ポイント間の第１のポイントならびに該第２の３Ｄ光線および該第４の３Ｄ光線上の最近ポイント間の第２のポイントを計算することとを実行するように構成されている、対応モジュールとを含む。
【００１６】
本技術の他の局面および利点が、ただの例として本技術の原理を示している添付の図面との関連でなされている以下の詳細な説明から明らかとなる。
【００１７】
例えば、本発明は、以下を提供する。
（項目１）
２つ以上のカメラのカメラ画像において１つ以上の部品の対応を見出すコンピュータで実行される方法であって、該方法は、
第１のカメラの第１のカメラ画像における第１の部品に対して、
該第１のカメラ画像における該第１の部品の第１の特徴座標の、３Ｄ物理的空間への第１のバックプロジェクションである第１の３Ｄ光線を計算することと、
第２のカメラの第２のカメラ画像における第２の部品に対して、
該第２のカメラ画像における該第２の部品の第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することであって、
該第１の特徴座標および該第２の特徴座標は、モデルにおいて特定されているとおりの第１の特徴に対応している、ことと、
該第１の３Ｄ光線と該第２の３Ｄ光線との間の第１の距離を計算することと
を含む、方法。
（項目２）
上記第１のカメラの上記第１のカメラ画像における上記第１の部品に対して、
該第１のカメラ画像における第３の特徴座標の、３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算することと、
上記第２のカメラの上記第２のカメラ画像における上記第２の部品に対して、
該第２のカメラ画像における第４の特徴座標の、該３Ｄ物理的空間への第４のバックプロジェクションである第４の３Ｄ光線を計算することであって、
該第３の特徴座標および該第４の特徴座標は、該モデルにおいて特定されているとおりの第２の特徴に対応している、ことと、
該第３の３Ｄ光線と該第４の３Ｄ光線との間の第２の距離を計算することと
をさらに含む、上記項目に記載のコンピュータで実行される方法。
（項目３）
上記第１の距離および上記第２の距離のうちの少なくとも１つに基づいて候補部品対応スコアを計算することをさらに含む、上記項目のいずれか一項に記載のコンピュータで実行される方法。
（項目４）
上記候補部品対応スコアは、上記第１の距離および上記第２の距離の平均である、上記項目のいずれか一項に記載のコンピュータで実行される方法。
（項目５）
上記第１の距離が所定の閾値を超過する場合、候補部品対応としての上記第１のカメラの上記第１のカメラ画像における上記第１の部品と上記第２のカメラの上記第２のカメラ画像における上記第２の部品とのペアリングを除外することをさらに含む、上記項目のいずれか一項に記載のコンピュータで実行される方法。
（項目６）
第３のカメラの第３のカメラ画像における第３の部品に対して、
該第３のカメラ画像における該第３の部品の第３の特徴座標の、上記３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算することであって、
上記第１の特徴座標、上記第２の特徴座標、および該第３の特徴座標は、上記モデルにおいて特定されているとおりの上記第１の特徴に対応している、ことと、
該第３の３Ｄ光線と、上記第１の３Ｄ光線および上記第２の３Ｄ光線上の最近ポイント間の第１のポイントとの間の第２の距離を計算することと
をさらに含む、上記項目のいずれか一項に記載のコンピュータで実行される方法。
（項目７）
第３のカメラの第３のカメラ画像における第３の部品に対して、
該第３のカメラ画像における該第３の部品の第３の特徴座標の、上記３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算することであって、
上記第１の特徴座標、上記第２の特徴座標、および該第３の特徴座標は、上記モデルにおいて特定されているとおりの特徴に対応している、ことと、
上記第１の３Ｄ光線と該第３の３Ｄ光線との間の第２の距離を計算し、かつ上記第２の３Ｄ光線と該第３の３Ｄ光線との間の第３の距離を計算することと
をさらに含む、上記項目のいずれか一項に記載のコンピュータで実行される方法。
（項目８）
２つ以上のカメラのカメラ画像において１つ以上の部品の対応を見出すコンピュータで実行される方法であって、該方法は、
第１のカメラの第１のカメラ画像における第１の部品に対して、
該第１のカメラ画像における第１の特徴座標の、３Ｄ物理的空間へのバックプロジェクションである第１の３Ｄ光線を計算し、
該第１のカメラ画像における第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することと、
第２のカメラの第２のカメラ画像における第２の部品に対して、
該第２のカメラ画像における第３の特徴座標の、該３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算し、
該第２のカメラ画像における第４の特徴座標の、該３Ｄ物理的空間への第４のバックプロジェクションである第４の３Ｄ光線を計算することであって、
該第１の特徴座標および該第３の特徴座標は、モデルにおいて特定されているとおりの同じ第１の特徴に対応し、該第２の特徴座標および該第４の特徴座標は、該モデルにおいて特定されているとおりの同じ第２の特徴に対応する、ことと、
該第１の３Ｄ光線および該第３の３Ｄ光線上の最近ポイント間の第１のポイントならびに該第２の３Ｄ光線および該第４の３Ｄ光線上の最近ポイント間の第２のポイントを計算することと
を含む、方法。
（項目９）
上記第１のポイントと上記第２のポイントとの間の距離を計算することをさらに含む、上記項目に記載の方法。
（項目１０）
上記距離を所定の値と比較することにより、距離残差を決定することをさらに含む、上記項目のいずれか一項に記載の方法。
（項目１１）
上記所定の値は、上記モデルにおいて特定されているとおりの上記第１の特徴および上記第２の特徴に基づく、上記項目のいずれか一項に記載の方法。
（項目１２）
上記所定の値は、入力された値に基づく、上記項目のいずれか一項に記載の方法。
（項目１３）
上記距離残差に基づいて候補対応スコアを計算することをさらに含む、上記項目のいずれか一項に記載の方法。
（項目１４）
上記距離残差が所定の閾値を超過する場合、候補部品対応としての上記第１のカメラ画像における上記第１の部品と上記第２のカメラ画像における上記第２の部品とのペアリングを除外することをさらに含む、上記項目のいずれか一項に記載の方法。
（項目１５）
上記第１の３Ｄ光線と上記第３の３Ｄ光線との間の第１の距離を計算し、かつ上記第２の３Ｄ光線と上記第４の３Ｄ光線との間の第２の距離を計算することと、上記距離残差、該第１の距離、および該第２の距離に基づいて候補部品対応スコアを計算することとをさらに含む、上記項目のいずれか一項に記載の方法。
（項目１６）
システムであって、該システムは、
２つ以上のカメラと、
対応モジュールであって、該対応モジュールは、
該２つ以上のカメラのうちの第１のカメラの第１のカメラ画像における第１の部品に対して、
該第１のカメラ画像における該第１の部品の第１の特徴座標の、３Ｄ物理的空間への第１のバックプロジェクションである第１の３Ｄ光線を計算することと、
該２つ以上のカメラのうちの第２のカメラの第２のカメラ画像における第２の部品に対して、
該第２のカメラ画像における該第２の部品の第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することであって、
該第１の特徴座標および該第２の特徴座標は、モデルにおいて特定されているとおりの第１の特徴に対応している、ことと、
該第１の３Ｄ光線と該第２の３Ｄ光線との間の第１の距離を計算することと
を実行するように構成されている、対応モジュールと
を備えている、システム。
（項目１７）
システムであって、該システムは、
２つ以上のカメラと、
対応モジュールであって、該対応モジュールは、
該２つ以上のカメラのうちの第１のカメラの第１のカメラ画像における第１の部品に対して、
該第１のカメラ画像における第１の特徴座標の、３Ｄ物理的空間へのバックプロジェクションである第１の３Ｄ光線を計算し、
該第１のカメラ画像における第２の特徴座標の、該３Ｄ物理的空間への第２のバックプロジェクションである第２の３Ｄ光線を計算することと、
該２つ以上のカメラのうちの第２のカメラの第２のカメラ画像における第２の部品に対して、
該第２のカメラ画像における第３の特徴座標の、該３Ｄ物理的空間への第３のバックプロジェクションである第３の３Ｄ光線を計算し、
該第２のカメラ画像における第４の特徴座標の、該３Ｄ物理的空間への第４のバックプロジェクションである第４の３Ｄ光線を計算することであって、
該第１の特徴座標および該第３の特徴座標は、モデルにおいて特定されているとおりの同じ第１の特徴に対応し、該第２の特徴座標および該第４の特徴座標は、該モデルにおいて特定されているとおりの同じ第２の特徴に対応する、ことと、
該第１の３Ｄ光線および該第３の３Ｄ光線上の最近ポイント間の第１のポイントならびに該第２の３Ｄ光線および該第４の３Ｄ光線上の最近ポイント間の第２のポイントを計算することと
を実行するように構成されている、対応モジュールと
を備えている、システム。
【図面の簡単な説明】
【００１８】
本技術の上記の目的、特徴、および利点ならびに他の目的、特徴、および利点が、添付の図面と合わせて読まれるとき、以下の様々な実施形態の説明からより十分に理解される。
【図１】図１は、本技術との使用が可能であるシステムを示している。
【図２】図２は、２つの画像捕捉デバイスの視野を示している。
【図３】図３は、２つ以上のカメラの視野における１つ以上の部品の対応を見出す方法を示している流れ図である。
【図４】図４は、部品および部品の画像を示している。
【発明を実施するための形態】
【００１９】
（実施形態の説明）
（詳細な説明）
概して、本技術は、複数のカメラ画像の間で部品を対応させるコンピュータ化されたシステムおよびコンピュータで実行される方法を含む。３Ｄマシンビジョンシステムにおいて、同じまたは重複する場面を撮像する２つ以上の２Ｄカメラは、場面または複数の場面における品目に関する３Ｄ情報（例えば、カメラまたは他の既知のポイントからの距離）を決定するために使用されることができる。１つのカメラの視野における品目と第２のカメラの視野における品目とが同じ物理的品目に対応するかどうかを決定することは、場面の中の品目についての３Ｄ情報を決定することに関連して別個の画像を利用することを容易にすることができる。本明細書に記述されるコンピュータ化されたシステムおよびコンピュータで実行される方法は、別個のカメラの視野における品目を対応させることを容易にする。
【００２０】
図１は、本技術との使用が可能であるシステム１００を示している。システム１００は、画像捕捉デバイス（例えば、カメラ）１０５と画像捕捉デバイス１１０とを含む。画像捕捉デバイス１０５と画像捕捉デバイス１１０とは、作業空間１１２の画像を捕捉するように位置決めされている。画像平面１１５は、画像捕捉デバイス１０５の画像平面であり、画像捕捉デバイス１０５によって捕捉される作業空間１１２の画像の二次元平面を表す。画像平面１２０は、画像捕捉デバイス１１０の画像平面であり、画像捕捉デバイス１１０によって捕捉される作業空間１１２の画像の二次元平面を表す。システム１００は、２つの画像捕捉デバイス（画像捕捉デバイス１０５と画像捕捉デバイス１１０）によって示されているが、しかし、本技術は、２つ以上の画像捕捉デバイスを有するシステムとの使用が可能である。
【００２１】
システム１００は、対応モジュール１２５を含む。対応モジュール１２５は、画像捕捉デバイス１０５と画像捕捉デバイス１１０から画像を受信する。対応モジュール１２５は、画像平面１１５（例えば、画像捕捉デバイス１０５の視野）における部品の、画像平面１２０（例えば、画像捕捉デバイス１１０の視野）における部品との対応を決定するために、本明細書に記述された方法を使用するように構成されることができる。
【００２２】
システム１００は、１つの画像捕捉デバイスの座標系から別の画像捕捉デバイスの座標系への数学的変換を提供するように較正されることができる。システム１００は、画像捕捉デバイスの座標系から画像捕捉デバイスの視野における物理的な場面に対する座標系への数学的変換を提供するように較正されることができる。特徴座標と関連する画像ポイントｘは、ｘおよびカメラセンターによって定義された３Ｄ光線にバックプロジェクションする。較正は、画像ポイントを光線の方向に関連付ける。カメラ較正に関するさらなる情報は、２０００年１２月２２日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  ａｐｐａｒａｔｕｓ  ｆｏｒ  ｃａｌｉｂｒａｔｉｎｇ  ａｎ  ｉｍａｇｅ  ａｃｑｕｉｓｉｔｉｏｎ  ｓｙｓｔｅｍ」と題する米国特許第６，７９８，９２５号、ならびに「Ｍｕｌｔｉｐｌｅ  ｖｉｅｗ  Ｇｅｏｍｅｔｒｙ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ」第２版、Ｒｉｃｈａｒｄ  ＨａｒｔｌｅｙおよびＡｎｄｒｅｗ  Ｚｉｓｓｅｒｍａｎ（２００４）に見出されることができ、これらの全内容は、本明細書に参考として援用されている。
【００２３】
システム１００は、本明細書に記述されたコンピュータで実行される方法を実行するように特に構成されているコンピュータ化されたシステムの例である。しかしながら、図１に関して述べられているシステム構造および内容は、単に例示的な目的のためのものであり、他の例を図１に示されている特定の構造に限定するようには意図されていない。当業者には明らかであるように、多くの異形のシステム構造が、本明細書に記述されたコンピュータ化されたシステムおよび方法から逸脱することなく設計されることができる。
【００２４】
図２は、２つの画像捕捉デバイスの視野を示している。視野２１０は、第１の画像捕捉デバイス（例えば、画像捕捉デバイス１０５）の視野である。視野２２０は、第２の画像捕捉デバイス（例えば、画像捕捉デバイス１１０）の視野である。視野２１０および２２０は、同じ部品のグループを示している。本明細書に記述されている技術は、１つの視野におけるどの部品例が、他の視野におけるどの部品例と対応するかを特定することを容易にするために使用されることができる。本明細書で使用される場合、部品例とは、画像内における物理的な部品の表示を指す。
【００２５】
例えば、図２において、視野２１０および２２０は、両方とも、幾つかの部品例を含む。本明細書に記述されているコンピュータ化されたシステムおよびコンピュータで実行される方法は、視野２１０における部品を視野２２０における部品とマッチさせること（例えば、視野２１０における部品２２５と視野２２０における部品２３０とが、同じ物理的部品に対応すると決定すること）を補佐することができる。
【００２６】
図３は、２つ以上のカメラの視野における１つ以上の部品の対応を見出す方法を示している流れ図３００である。ステップ３０５において、部品に対する３Ｄモデル特徴が生成される。一部の実施形態において、３Ｄモデル特徴は、３Ｄポイントであることができる。一部の実施形態において、３Ｄモデル特徴は、コーナ、円、およびラインセグメントのうちの少なくとも１つでもあることができる。３Ｄモデルは、物理的部品の数学的記述であることができる。３Ｄモデルを生成する方法は、当業者によく知られている。例えば、その全内容が本明細書に参考として援用されている「Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ：ｐｒｉｎｃｉｐｌｅｓ  ａｎｄ  ｐｒａｃｔｉｃｅ，」Ｊａｍｅｓ  Ｄ．Ｆｏｌｅｙ（１９９６）を参照されたい。例えば、３Ｄモデルは、部品の寸法、その頂点、または部品の物理的特徴を特定する他の属性を含むことができる。部品特徴は、画像捕捉デバイスによって捕捉された画像における部品の特定の際に補佐するために選択されることができる部品の局面である。例えば、部品特徴は、部品の鋸歯状のエッジ、部品における穴、または部品の任意の他の物理的局面であることができる。部品特徴は、モデルに基づいて手動で、またはプログラム的に選択されることができる。３Ｄモデルは、ＭＡ、ネーティックのＣｏｇｎｅｘ  Ｃｏｒｐｏｒａｔｉｏｎによって提供されるＣｏｇｎｅｘ  ＶｉｓｉｏｎＰｒｏ（登録商標）３Ｄ三角測量機能を使用して生成されることができる。
【００２７】
ステップ３１０において、部品ロケータツールは、部品例の位置を特定するように訓練される。特徴ファインダツールは、部品特徴の位置を特定するように訓練される。一部の実施形態において、部品の位置の特定および特徴を見出すことは、同じツールを使用して実行される。一部の実施形態において、部品の位置の特定および特徴を見出すことは、別個のツールを使用して実行される。一部の実施形態において、特徴の位置は、コーナファインダ、円ファインダ、または他のパターンマッチングツールを使用して特定されることができる。一部の実施形態において、特徴の位置は、部品ロケータツールから生じる２Ｄポーズを適用することによって（例えば、訓練画像からランタイム画像へ特徴の位置をマッピングするための部品ロケーションポーズ（ｌｏｃａｔｉｏｎ  ｐｏｓｅ）を使用することによって）直接的に特定されることができる。
【００２８】
訓練ステップは、画像捕捉デバイスの２Ｄ画像において３Ｄモデルによって記述された部品の位置を特定するように特徴ファインダツールを訓練する。例えば、Ｃｏｇｎｅｘ  ＰａｔＭａｘは、画像において部品特徴を見出すように訓練されることができる。
【００２９】
ステップ３１５において、２Ｄ部品例の位置は、各カメラの画像において特定される。図４は、部品およびこれらの部品の画像を示す。図４において、部品４０２は、特徴４０５（例えば、部品のボックス状のコーナ４０５）を有し、部品４０７は、特徴４１０を有する。部品４０２と部品４０７の両方は、同じモデル（図示されず）によってモデル化されており、特徴４０５および特徴４１０は、モデルにおける同じ特徴の例である。カメラ４１５は、部品４０５（部品例４２５）および部品４０７（部品例４３０）の２Ｄプロジェクションを含む画像４２０をカメラ４１５の画像平面の中に捕捉することができる。カメラ４３５は、部品４０５（部品例４４５）および部品４０７（部品例４５０）の２Ｄプロジェクションを含む画像４４０をカメラ４３５の画像平面の中に捕捉することができる。部品例の位置は、例えば、Ｃｏｇｎｅｘ  ＰａｔＭａｘを使用して特定の画像において特定されることができる（例えば、部品例４２５および４３０は、画像４２０において、ならびに部品例４４５および４５０は、画像４４０において）。いかにしてＣｏｇｎｅｘ  ＰａｔＭａｘが画像における部品例を見出すことができるかについてのさらなる記述は、「Ｍｅｔｈｏｄ  ｆｏｒ  Ｆａｓｔ，Ｒｏｂｕｓｔ，  Ｍｕｌｔｉ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ」と題して１９９８年７月１３日に出願された米国特許第７，０１６，５３９号および「Ｆａｓｔ  ｈｉｇｈ−ａｃｃｕｒａｃｙ  ｍｕｌｔｉ−ｄｉｍｅｎｓｉｏｎａｌ  ｐａｔｔｅｒｎ  ｉｎｓｐｅｃｔｉｏｎ」と題して２００３年１１月１０日に出願された米国特許第７，０６５，２６２号に見出されることができ、これらの全内容は、参考として本明細書に援用されている。
【００３０】
ステップ３２０において、各２Ｄ部品例に対する特徴位置または座標は、各カメラの画像において見出される。図４の示された例において、特徴４５５（画像４２０の中への特徴４０５の２Ｄプロジェクション）、特徴４６０（画像４２０の中への特徴４１０の２Ｄプロジェクション）、特徴４６５（画像４４０の中への特徴４０５の２Ｄプロジェクション）、および特徴４７０（画像４４０の中への特徴４１０の２Ｄプロジェクション）は、例えば、Ｃｏｇｎｅｘ  ＰａｔＭａｘを使用して見出されることができる。一部の実施形態において、特徴位置は、部品例内において、部品ロケーションポーズを特徴位置オフセットに適用することによって計算されることができる。例えば、部品例４２５内における特徴４５５に対するオフセットは、部品４２５の見出されたポーズと組み合わされることができ、そして、特徴位置として使用されることができる。このアプローチの利益は、閉塞された特徴の位置がこの方法で取得されることができる点にある。
【００３１】
ステップ３２５において、対応候補のリストが作成される。一部の実施形態において、対応候補リストは、各カメラの画像から１つの部品例を選択することによって生成されるすべての組み合わせのリストであることができる。一部の実施形態において、対応候補リストは、各カメラの画像から１つの部品例を選択することによって生成される全ての組み合わせのサブセットを含むリストであることができる。例えば、図４を参照すると、対応候補は、（部品例４２５／部品例４４５）；（部品例４２５／部品例４５０）；（部品例４３０／部品例４４５）；（部品例４３０／部品例４５０）（例えば、画像４２０からの部品例と画像４４０からの部品例との全ての組み合わせ）であることができる。
【００３２】
３つのカメラを使用する実施形態において、対応候補は、第１のカメラの画像からの部品例、第２のカメラの画像からの部品例、および第３のカメラの画像からの部品例を選択することによって生成される全ての組み合わせを含むことができる。既に述べられたように、本明細書に記述される方法は、１つより多くの任意の数のカメラとの使用が可能である。
【００３３】
ステップ３３０において、対応候補が評価される。一部の実施形態において、対応候補は、対応候補の各部品例における同じ部品特徴の例を使用して三角測量に基づき評価される。対応する部品特徴は、比較されることができる（例えば、１つの部品例４２５における特徴４５５は、別の部品例４４５における同じ特徴４６５と比較される）。図４を参照すると、例えば、対応候補（部品例４２５／部品例４４５）が評価されることができる。特徴４５５から始めると、（画像４２０における特徴４５５の座標の、３Ｄ物理的空間へのバックプロジェクションである）光線４７５が計算される。（画像４４０における特徴４６５の座標の、３Ｄ物理的空間へのバックプロジェクションである）光線４８０も計算される。光線４７５と光線４８０との間の光線残差（例えば、光線４７５および４８０上の最近ポイント間の距離）が計算される。一部の実施形態において、光線残差が閾値よりも大きい場合、対応候補は、対応候補リストから除去される。大きな光線残差は、比較されている部品例が、２つの異なる物理的部品に対応することを示唆することができる。光線残差が閾値より小さい場合、残りの特徴が同様な態様で評価され、そして光線残差が閾値と比較される。特徴の各々に対する各残差が閾値よりも小さい場合、対応候補スコアが計算され、そして対応候補は、対応候補リストに残る。一部の実施形態において、光線残差は、特徴全部未満に対して計算される。
【００３４】
一部の実施形態において、閾値は、部品寸法に基づく。例えば、閾値は、一辺に沿った部品の寸法の百分率であることができる。
【００３５】
一部の実施形態において、対応候補スコアは、残差の平均であることができる。一部の実施形態において、対応候補スコアは、残差の合計であることができる。
【００３６】
光線残差は、存在するカメラの数に依存して、多くの様々な方法で計算されることができる。例えば、３つのカメラを使用する実施形態において、光線残差は、３つの光線（例えば、各光線は、各カメラ画像に対する特徴座標の、３Ｄ物理的空間へのバックプロジェクションである）の間の距離の合計として計算されることができる。一部の実施形態において、残差は、第１の光線と第２の光線との間の距離および最初の２つの光線間のポイントと第３の光線との間の距離の合計として計算されることができる。３つ以上のカメラを使用する別の実施形態において、光線残差は、第１の光線および第２の光線の最近ポイント間のポイントを決定し、そして次に、第３のカメラの画像の中に３Ｄポイントをプロジェクションし、そして、プロジェクションされたポイントの距離を第３の画像における特徴の位置と比較することによって計算されることができる。
【００３７】
一部の実施形態において、対応候補は、モデルの幾何学的形状に基づいて評価されることができる。例えば、光線４７５および光線４８０上の最近ポイント間の第１のポイントが計算されることができる。別の特徴に対する光線に対する最近ポイント間のポイントが計算されることができる。これら２つのポイント間の計算された距離が、部品モデルにおけるこれら２つの特徴間の提供された距離と比較されることができる。例えば、計算された距離と提供された距離との差である距離残差が計算されることができる。一部の実施形態において、距離残差が閾値よりも大きい場合、対応候補は、対応候補リストから除去される。大きな距離残差は、２つの異なった物理的部品に対応する部品例が評価されつつあることを示すことができる。距離残差が閾値より小さい場合、残りの特徴間の距離が、同様な態様で評価され、そして、距離残差が閾値と比較される。各距離残差が閾値より小さい場合、対応候補スコアが計算され、そして、対応候補は、対応候補リスト上に残る。一部の実施形態において、対応候補スコアは、距離残差の平均であることができる。一部の実施形態において、対応候補スコアは、距離残差の合計であることができる。一部の実施形態において、対応候補スコアは、距離残差の重み付き平均であることができ、ここで、重み付けは、モデル寸法に基づく。一部の実施形態において、対応候補スコアは、光線残差および距離残差に基づく。
【００３８】
ステップ３３５において、対応候補リストにおける対応候補が分類される。一部の実施形態において、対応候補は、最も可能性の高い対応候補が最初となるように、それぞれの対応候補スコアによって分類される。対応候補リストは、アレイ、リンクされたリスト、または他のデータ構造であることができる。
【００３９】
例えば、図４を参照すると、分類された対応候補リストは、以下の対応候補を含むことができる：
部品例４２５／部品例４４５（対応候補スコア８）；
部品例４３０／部品例４５０（対応候補スコア９）；
部品例４２５／部品例４５０（対応候補スコア２０）；
部品例４３０／部品例４４５（対応候補スコア３５）。
【００４０】
ステップ３４０において、最良の対応候補が、対応候補リストから除去され、結果リストに加えられる。一部の実施形態において、最良の対応候補は、所定の閾値を満足するスコアを有さなくてはならず、そして次に、結果リストに加えられる。結果リストは、見出された部品対応のリストである。
【００４１】
ステップ３４５において、ステップ３４０において除去された対応候補における部品例を含む、対応候補リストにおける対応候補は、対応候補リストから除去される。例えば、上記の対応候補リストを参照すると、対応候補（部品例４２５／部品例４４５）が、最低のスコアを有する対応候補として対応候補リストから除去された後、対応候補（部品例４２５／部品例４５０）と対応候補（部品例４３０／部品例４４５）の両方は、除去されることができる。なぜならば、各々は、対応候補（部品例４２５／部品例４４５））と部品例を共有するからである。
【００４２】
ステップ３５０において、対応候補リストには候補が幾つか残っているかどうかが決定される。リストが空である場合、方法は戻ることができる。結果リストにおける対応候補は、見出された部品例対応を特定している。
【００４３】
対応候補リストに対応候補が残っている場合、ステップ３４０について記述されたように、最低の対応候補スコアを有する対応候補が、対応候補リストから除去される。対応候補リストは次に、ステップ３４５について記述されたように、最低の対応候補スコアを有する対応候補と部品例を共有する対応候補を除去して間引かれる。
【００４４】
上述の技術は、デジタルおよび／もしくはアナログ電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、または様々な組み合わせにおいて実行されることができる。実施形態は、コンピュータプログラムプロダクト、すなわち、例えばプログラム可能なプロセッサ、コンピュータ、および／または複数のコンピュータのようなデータ処理装置によって実行するための、またはその動作を制御するための、マシン読み取り可能な格納デバイスにおいて触知可能に具体化されたコンピュータプログラムとして、であることができる。コンピュータプログラムは、ソースコード、コンパイル済みコード、解釈済みコード、および／またはマシンコードを含む任意の形態のコンピュータまたはプログラミング言語で書き込まれることができ、そして、コンピュータプログラムは、スタンドアロンプログラムとしての形態、または、サブルーチン、素子、もしくはコンピューティング環境における使用に対して適切な他のユニットとしての形態を含む任意の形態で配備されることができる。コンピュータプログラムは、１つ以上の場所において、１つのコンピュータで、または複数のコンピュータで実行されるように配備されることができる。
【００４５】
方法のステップは、本発明の機能を実行するためのコンピュータプログラムを実行する１つ以上のプロセッサにより、入力データで動作することおよび／または出力データを発生させることによって実行されることができる。方法のステップは、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）、ＦＰＡＡ（フィールドプログラマブルアナログアレイ）、ＣＰＬＤ（複合プログラマブル論理デバイス）、ＰＳｏＣ（プログラマブルシステムオンチップ）、ＡＳＩＰ（特定用途の命令セットプロセッサ）、またはＡＳＩＣ（特定用途の集積回路）のような専用論理回路網によっても実行されることができ、装置は、このような専用論理回路網として実装されることができる。サブルーチンは、１つ以上の機能を実行するコンピュータプログラムおよび／またはプロセッサ／特殊回路網の部分を指すことができる。
【００４６】
コンピュータプログラムの実行に対して適切なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルまたはアナログコンピュータの任意の１つ以上のプロセッサを含む。一般的に、プロセッサは、読み出し専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの必須の素子は、命令を実行するためのプロセッサおよび命令および／またはデータを格納するための１つ以上のメモリデバイスである。キャッシャのようなメモリデバイスは、データを一時的に格納するために使用されることができる。メモリデバイスは、長期のデータ格納のためにも使用されることができる。一般的に、コンピュータはまた、データを格納するための１つ以上の大容量格納デバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはこれらからデータを受信するかもしくはこれらへデータを転送するか、またはその両方のために動作可能に結合されている。コンピュータはまた、ネットワークから命令および／もしくはデータを受信し、かつ／または、ネットワークへ命令および／もしくはデータを転送するために、通信ネットワークに動作可能に結合されることができる。コンピュータプログラム命令およびデータを具体化するために適切なコンピュータ読み取り可能格納デバイスは、例として、半導体メモリデバイス、例えばＤＲＡＭ、ＳＲＡＭ，ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス；磁気ディスク、例えば内蔵ハードディスクまたは取り外し可能ディスク；光磁気ディスク；ならびに光ディスク、例えばＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、およびＢｌｕ−ｒａｙディスクを含む全ての形態の揮発性および不揮発性メモリを含む。プロセッサおよびメモリは、専用論理回路網によって補足されることができ、かつ／または専用論理回路網の中に組み込まれることができる。
【００４７】
ユーザとの対話に対して備えるために、上述の技術は、表示装置、例えば、情報をユーザに対して表示するためのＣＲＴ（陰極線管）、プラズマ、またはＬＣＤ（液晶表示）モニタ、ならびにキーボードおよびポインティングデバイス、例えば、ユーザがそれによって入力をコンピュータに提供することができる（例えば、ユーザインターフェース素子と対話することができる）マウス、トラックボール、タッチパッド、または運動センサと通信するコンピュータで実行されることができる。他の種類のデバイスも、ユーザとの対話に対して備えるために使用されることができる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、音声、および／または触覚入力を含む任意の形態で受信されることができる。
【００４８】
上述の技術は、バックエンドコンポーネントを含む分散型コンピューティングシステムで実行されることができる。バックエンドコンポーネントは、例えばデータサーバ、ミドルウェアコンポーネント、および／またはアプリケーションサーバであることができる。上述の技術は、フロントエンドコンポーネントを含む分散型コンピューティングシステムで実行されることができる。フロントエンドコンポーネントは、例えばグラフィカルユーザインターフェース、ユーザがそれを介して例示の実施形態と対話することができるウェブブラウザ、および／または送信デバイスに対する他のグラフィカルユーザインターフェースを有するクライアントコンピュータであることができる。上述の技術は、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせを含む分散型コンピューティングシステムで実行されることができる。
【００４９】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般的に、互いから遠く離れており、通常、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータで進行しかつ互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
【００５０】
コンピューティングシステムのコンポーネントは、デジタルまたはアナログデータ通信（例えば、通信ネットワーク）の任意の形態または媒体によって相互に接続されることができる。通信ネットワークの例は、回路ベースのネットワークおよびパケットベースのネットワークを含む。パケットベースのネットワークは、例えば、インターネット、搬送波インターネットプロトコル（ＩＰ）ネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、キャンパスエリアネットワーク（ＣＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ホームエリアネットワーク（ＨＡＮ））、プライベートＩＰネットワーク、ＩＰ私設交換網（ＩＰＢＸ）、無線ネットワーク（例えば、無線アクセスネットワーク（ＲＡＮ）、８０２．１１ネットワーク、８０２．１６ネットワーク、汎用パケット無線サービス（ＧＰＲＳ）ネットワーク、ＨｉｐｅｒＬＡＮ）、および／または他のパケットベースのネットワークを含むことができる。回路ベースのネットワークは、例えば、公衆電話交換ネットワーク（ＰＳＴＮ）、私設交換網（ＰＢＸ）、無線ネットワーク（例えば、ＲＡＮ、ブルートゥース、符号分割多重アクセス（ＣＤＭＡ）ネットワーク、時分割多重アクセス（ＴＤＭＡ）ネットワーク、移動通信に対するグローバルシステム（ＧＳＭ（登録商標））ネットワーク）、および／または他の回路ベースのネットワークを含むことができる。
【００５１】
コンピューティングシステムのデバイスおよび／またはコンピューティングデバイスは、例えば、コンピュータ、ブラウザデバイスを備えているコンピュータ、電話、ＩＰ電話、モバイルデバイス（例えば、携帯電話、携帯情報端末（ＰＤＡ）デバイス、ラップトップコンピュータ、電子メールデバイス）、サーバ、１つ以上の処理カードを備えているラック、専用回路網、および／または他の通信デバイスを含むことができる。ブラウザデバイスは、例えば、ワールドワイドウェブブラウザ（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能であるＭｉｃｒｏｓｏｆｔ（登録商標）Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）、Ｍｏｚｉｌｌａ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能であるＭｏｚｉｌｌａ（登録商標）Ｆｉｒｅｆｏｘ）を備えているコンピュータ（例えば、デスクトップコンピュータ、ラップトップコンピュータ）を含む。モバイルコンピューティングデバイスは、例えば、Ｂｌａｃｋｂｅｒｒｙ（登録商標）を含む。ＩＰ電話は、例えば、Ｃｉｓｃｏ  Ｓｙｓｔｅｍ，Ｉｎｃから入手可能であるＣｉｓｃｏ（登録商標）Ｕｎｉｆｉｅｄ  ＩＰ  Ｐｈｏｎｅ  ７９８５Ｇ、および／またはＣｉｓｃｏ  Ｓｙｓｔｅｍ，Ｉｎｃから入手可能であるＣｉｓｃｏ（登録商標）Ｕｎｉｆｉｅｄ  Ｗｉｒｅｌｅｓｓ  Ｐｈｏｎｅ  ７９２０を含む。
【００５２】
当業者は、本発明がその精神または必須の特性から逸脱することなく他の特定の形態で具体化され得ることを認識する。従って、上述の実施形態は、あらゆる点において、例を示すものであり、本明細書に記述された発明を限定するものではないと考えられるべきである。従って、本発明の範囲は、上述の説明によっては示されず、添付の請求項によって示され、そして、請求項の均等物の意味および範囲内にある全ての変更は、従って、それらに含まれていることが意図されている。
【図１】
2018092636.tif 000003
【図２】
2018092636.tif 000004
【図３】
2018092636.tif 000005
【図４】
2018092636.tif 000006