(57)【要約】      （修正有）【課題】ワークの外観検査などのカメラを用いた処理を実行する場合に、ワークを設置する際の位置ずれ、またはロボットの制御誤差が生じた場合に、検査箇所にカメラのピントが合わないことにより、検査の精度が落ちてしまうおそれがある。【解決手段】画像処理システムＳＹＳは、ラインＬによって提供されたワークＷの配置状況を特定する。画像処理システムＳＹＳは、特定したワークＷの配置状況に応じて、設定されたワークＷの計測点Ｗｐについての法線Ｖを特定し、特定した法線Ｖと２次元カメラ３１０の光軸とが一致するように２次元カメラ３１０の位置姿勢を変化させる（Ｓ１）。画像処理システムＳＹＳは、特定した法線Ｖと２次元カメラ３１０の光軸とが一致するように、２次元カメラ３１０と計測点Ｗｐとの距離を変化させることで、２次元カメラ３１０のピントを計測点Ｗｐに合わせる。【選択図】図３
2018194542.tif 000002
【特許請求の範囲】
【請求項１】
ワークの外観画像を用いて、当該ワークに予め設定された１または複数の計測点についての画像計測を行う画像処理システムであって、
前記外観画像を撮像する第１の撮像部と、
前記第１の撮像部と前記ワークとの相対的な位置関係を変化させるロボットと、
前記ワークを撮像して得られる情報に基づいて、前記ワークの配置状況を特定するとともに、当該特定したワークの配置状況に応じて、前記ワークに設定された各計測点についての基準線を特定する基準線特定手段と、
前記特定した基準線上に前記第１の撮像部を位置決めするとともに、前記第１の撮像部の光軸を前記特定した基準線と一致させた状態で、前記第１の撮像部と前記ワークとの間の距離を変化させるように、前記ロボットへ指令を与える距離調整手段と、
前記第１の撮像部により撮像される外観画像に基づいて、前記第１の撮像部の合焦度に関する第１の特徴量を算出する第１の特徴量算出手段と、
前記第１の撮像部と前記ワークとの間の距離の変化に応じた前記第１の特徴量の変化に基づいて、前記計測点についての画像計測を行うための前記第１の撮像部と前記ワークとの間の距離を決定する距離決定手段とを備える、画像処理システム。
【請求項２】
前記ワークおよび前記ロボットの少なくとも一部を視野範囲に含むように配置され、前記視野範囲内に存在する被写体の３次元画像を撮像する第２の撮像部と、
前記１または複数の計測点の各々に関連付けられた基準線方向を規定する情報を格納する記憶手段とをさらに備え、
前記基準線特定手段は、
前記３次元画像内で前記ワークの形状情報に合致する部分を探索する第１の探索手段と、
前記第１の探索手段により探索された部分の情報と、前記記憶手段に格納された基準線方向を規定する情報とに基づいて、各計測点についての基準線を決定する基準線決定手段とを含む、請求項１に記載の画像処理システム。
【請求項３】
前記基準線特定手段は、
前記基準線決定手段により決定された基準線上に前記第１の撮像部を位置決めした状態で前記第１の撮像部により撮像される画像に対して、対応する計測点の基準画像に合致する部分を探索する第２の探索手段と、
前記第２の探索手段により探索された部分の情報に基づいて、前記基準線決定手段により決定された基準線を補正する補正手段とをさらに含む、請求項２に記載の画像処理システム。
【請求項４】
前記第１の撮像部と前記ワークとの間の距離を保った状態で、前記特定した基準線と前記第１の撮像部の光軸とのなす角度を０から予め定められた値まで変化させるように、前記ロボットへ指令を与える位置調整手段と、
前記角度の変化に応じた前記第１の特徴量の変化に基づいて、前記計測点についての画像計測を行うための前記第１の撮像部と前記ワークとの相対的な位置関係を決定する位置決定手段とをさらに備える、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記第１の撮像部により撮像される外観画像に基づいて、予め設定された検出対象部位に関する第２の特徴量を算出する第２の特徴量算出手段と、
前記第１の撮像部と前記ワークとの間を前記距離決定手段により決定された距離に位置決めした状態で算出される前記第２の特徴量に基づいて、対象となる計測点または当該計測点の近傍における前記検出対象部位の有無を判断する画像計測手段とをさらに備える、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
前記基準線特定手段は、前記画像計測手段による前記検出対象部位の有無の判断が完了すると、次の計測点に前記第１の撮像部を位置決めするための指令を前記ロボットへ与える、請求項５に記載の画像処理システム。
【請求項７】
前記ワークの設計情報を表示するとともに、当該表示された設計情報に対するユーザ操作に応じて、前記１または複数の計測点を設定する計測点設定受付手段をさらに備える、請求項１〜６のいずれか１項に記載の画像処理システム。
【請求項８】
前記計測点設定受付手段により設定された計測点の各々について、前記ワークの設計情報に基づいて各計測点の表面形状を算出するとともに、算出された表面形状に基づいて各計測点の基準線を算出する基準線算出手段をさらに備える、請求項７に記載の画像処理システム。
【請求項９】
ワークの外観画像を用いて、当該ワークに予め設定された１または複数の計測点についての画像計測を行うための画像処理装置であって、
前記外観画像を撮像する第１の撮像部から外観画像に関する情報を受け取るインターフェースと、
前記ワークと前記第１の撮像部との相対的な位置関係を変化させるロボットと通信するためのインターフェースと、
前記ワークを撮像させて得られる情報に基づいて、前記ワークの配置状況を特定するとともに、当該特定したワークの配置状況に応じて、前記ワークに設定された各計測点についての基準線を特定する基準線特定手段と、
前記特定した基準線上に前記第１の撮像部を位置決めするとともに、前記第１の撮像部の光軸を前記特定した基準線と一致させた状態で、前記第１の撮像部と前記ワークとの間の距離を変化させるように、前記ロボットへ指令を与える距離調整手段と、
前記第１の撮像部により撮像される外観画像に基づいて、前記第１の撮像部の合焦度に関する第１の特徴量を算出する第１の特徴量算出手段と、
前記第１の撮像部と前記ワークとの間の距離の変化に応じた前記第１の特徴量の変化に基づいて、前記計測点についての画像計測を行うための前記第１の撮像部と前記ワークとの間の距離を決定する距離決定手段とを備える、画像処理装置。
【請求項１０】
ワークの外観画像を用いて、当該ワークに予め設定された１または複数の計測点についての画像計測を行うための画像処理プログラムであって、
前記画像処理プログラムは、コンピュータに、
第１の撮像部を用いて前記ワークを撮像するステップと、
前記ワークを撮像して得られる情報に基づいて、前記ワークの配置状況を特定するステップと、
前記特定したワークの配置状況に応じて、前記ワークに設定された各計測点についての基準線を特定するステップと、
前記特定した基準線上に前記第１の撮像部を位置決めするステップと、
前記第１の撮像部の光軸を前記特定した基準線と一致させた状態で、前記第１の撮像部と前記ワークとの間の距離を変化させるように、前記第１の撮像部と前記ワークとの相対的な位置関係を変化させるロボットへ指令を与えるステップと、
前記第１の撮像部により撮像される外観画像に基づいて、前記第１の撮像部の合焦度に関する第１の特徴量を算出するステップと、
前記第１の撮像部と前記ワークとの間の距離の変化に応じた前記第１の特徴量の変化に基づいて、前記計測点についての画像計測を行うための前記第１の撮像部と前記ワークとの間の距離を決定するステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ＦＡ（Factory  Automation）分野において、ワークに対して、部品の組み付けが正しく行われているか、または傷がついていないかどうかなどの視覚検査をするロボットが普及している。このようなロボットにおいて、検査時のロボットの位置および姿勢を示す計測点の位置データは、予め教示され記憶されている。
【背景技術】
【０００２】
計測点の位置データをロボットに教示し記憶させる方法として、例えば、特開２００５−０５２９２６号公報（特許文献１）は、「３次元ＣＡＤシステム上で仮想ワークに対し、仮想カメラの位置を求める」技術を開示している（段落［０００９］参照）。
【０００３】
また、正確な視覚検査を行う技術に関し、例えば、特開平８−３１３２２５号公報（特許文献２）は、「カメラを検査箇所を中心として移動させ、画像の明るさや形状などの特徴量の変化を計測することにより、画像処理に適したカメラ位置を決定」する視覚検査装置を開示している（段落［００１４］参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０５２９２６号公報
【特許文献２】特開平８−３１３２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１および特許文献２のいずれの装置においても、ワークを設置する際の位置ずれ、またはロボットの制御誤差が生じることは考慮されていない。
【０００６】
ワークを設置する際の位置ずれ、またはロボットを制御する際の誤差が生じることにより、実際にロボットを計測点に動かしたときのロボットとワークとの相対的な位置関係が、ロボットに記憶されているロボットとワークとの相対的な位置関係と異なってしまうおそれがある。その結果、検査箇所に撮像部であるカメラのピントが合わないことがある。検査箇所に撮像部のピントが合っていない場合、検査の精度が落ちてしまうおそれがある。
【０００７】
検査箇所毎にピントが合うように、ユーザがティーチングペンダントを使用してロボットの位置を調整する方法があるものの、検査箇所が増えるほど、ユーザの調整工数が増大するという課題がある。
【０００８】
また、オートフォーカス機能により撮像部のピントを合わせる方法があるものの、オートフォーカス機能を用いた場合には、撮像部の焦点距離が変わることで光学的なサイズが変わってしまうという課題がある。
【０００９】
したがって、ワークに設定された計測点に対して撮像部を適切な位置に配置して適切な撮像を行うための技術が望まれている。
【課題を解決するための手段】
【００１０】
ある局面に従うと、ワークの外観画像を用いて、ワークに予め設定された１または複数の計測点についての画像計測を行う画像処理システムは、外観画像を撮像する第１の撮像部と、第１の撮像部とワークとの相対的な位置関係を変化させるロボットと、ワークを撮像して得られる情報に基づいて、ワークの配置状況を特定するとともに、特定したワークの配置状況に応じて、ワークに設定された各計測点についての基準線を特定する基準線特定手段と、特定した基準線上に第１の撮像部を位置決めするとともに、第１の撮像部の光軸を特定した基準線方向と一致させた状態で、第１の撮像部とワークとの間の距離を変化させるように、ロボットへ指令を与える距離調整手段と、第１の撮像部により撮像される外観画像に基づいて、第１の撮像部の合焦度に関する第１の特徴量を算出する第１の特徴量算出手段と、第１の撮像部とワークとの間の距離の変化に応じた第１の特徴量の変化に基づいて、計測点についての画像計測を行うための第１の撮像部とワークとの間の距離を決定する距離決定手段とを含む。
【００１１】
好ましくは、画像処理システムは、ワークおよびロボットの少なくとも一部を視野範囲に含むように配置され、視野範囲内に存在する被写体の３次元画像を撮像する第２の撮像部と、１または複数の計測点の各々に関連付けられた基準線方向を規定する情報を格納する記憶手段とをさらに含む。基準線特定手段は、３次元画像内でワークの形状情報に合致する部分を探索する第１の探索手段と、第１の探索手段により探索された部分の情報と、記憶手段に格納された基準線方向を規定する情報とに基づいて、各計測点についての基準線を決定する基準線決定手段とを含む。
【００１２】
好ましくは、基準線特定手段は、基準線決定手段により決定された基準線上に第１の撮像部を位置決めした状態で第１の撮像部により撮像される画像に対して、対応する計測点の基準画像に合致する部分を探索する第２の探索手段と、第２の探索手段により探索された部分の情報に基づいて、基準線決定により決定された基準線を補正する補正手段とをさらに含む。
【００１３】
好ましくは、画像処理システムは、第１の撮像部とワークとの間の距離を保った状態で、特定した基準線と第１の撮像部の光軸とのなす角度を０から予め定められた値まで変化させるように、ロボットへ指令を与える位置調整手段と、角度の変化に応じた第１の特徴量の変化に基づいて、計測点についての画像計測を行うための第１の撮像部とワークとの相対的な位置関係を決定する位置決定手段とを含む。
【００１４】
好ましくは、画像処理システムは、第１の撮像部により撮像される外観画像に基づいて、予め設定された検出対象部位に関する第２の特徴量を算出する第２の特徴量算出手段と、第１の撮像部とワークとの間を距離決定手段により決定された距離に位置決めした状態で算出される第２の特徴量に基づいて、対象となる計測点または計測点の近傍における検出対象部位の有無を判断する画像計測手段とをさらに含む。
【００１５】
好ましくは、基準線特定手段は、画像計測手段による検出対象部位の有無の判断が完了すると、次の計測点に第１の撮像部を位置決めするための指令をロボットへ与える。
【００１６】
好ましくは、画像処理システムは、ワークの設計情報を表示するとともに、表示された設計情報に対するユーザ操作に応じて、１または複数の計測点を設定する計測点設定受付手段をさらに含む。
【００１７】
好ましくは、画像処理システムは、計測点設定受付手段により設定された計測点の各々について、ワークの設計情報に基づいて各計測点の表面形状を算出するとともに、算出された表面形状に基づいて各計測点の基準線を算出する基準線算出手段をさらに含む。
【００１８】
他の局面に従うと、ワークの外観画像を用いて、当該ワークに予め設定された１または複数の計測点についての画像計測を行うための画像処理装置は、外観画像を撮像する第１の撮像部から外観画像に関する情報を受け取るインターフェースと、ワークと第１の撮像部との相対的な位置関係を変化させるロボットと通信するためのインターフェースと、ワークを撮像させて得られる情報に基づいて、ワークの配置状況を特定するとともに、特定したワークの配置状況に応じて、ワークに設定された各計測点についての基準線を特定する基準線特定手段と、特定した基準線上に第１の撮像部を位置決めするとともに、第１の撮像部の光軸を特定した基準線方向と一致させた状態で、第１の撮像部とワークとの間の距離を変化させるように、ロボットへ指令を与える距離調整手段と、第１の撮像部により撮像される外観画像に基づいて、第１の撮像部の合焦度に関する第１の特徴量を算出する第１の特徴量算出手段と、第１の撮像部とワークとの間の距離の変化に応じた第１の特徴量の変化に基づいて、計測点についての画像計測を行うための第１の撮像部とワークとの間の距離を決定する距離決定手段とを含む。
【００１９】
他の局面に従うと、ワークの外観画像を用いて、当該ワークに予め設定された１または複数の計測点についての画像計測を行うための画像処理プログラムは、コンピュータに、第１の撮像部を用いてワークを撮像するステップと、ワークを撮像して得られる情報に基づいて、ワークの配置状況を特定するステップと、特定したワークの配置状況に応じて、ワークに設定された各計測点についての基準線を特定するステップと、特定した基準線上に第１の撮像部を位置決めするステップと、第１の撮像部の光軸を特定した基準線方向と一致させた状態で、第１の撮像部とワークとの間の距離を変化させるように、第１の撮像部とワークとの相対的な位置関係を変化させるロボットへ指令を与えるステップと、第１の撮像部により撮像される外観画像に基づいて、第１の撮像部の合焦度に関する第１の特徴量を算出するステップと、第１の撮像部とワークとの間の距離の変化に応じた第１の特徴量の変化に基づいて、計測点についての画像計測を行うための第１の撮像部とワークとの間の距離を決定するステップとを実行させる。
【発明の効果】
【００２０】
ある局面において、ワークに設定された計測点に対して撮像部を適切な位置に配置して適切な撮像を行うことができる。
【００２１】
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００２２】
【図１】第１の実施の形態に係る画像処理システムの基本構成を示す模式図である。
【図２】画像処理システムのハードウェア構成について示す模式図である。
【図３】２次元カメラのピントをワークの計測点に合わせる処理が実行されたときのロボットの動きの一例を示す図である。
【図４】検査処理のフローチャートである。
【図５】画像処理装置の機能構成の一例を示す図である。
【図６】検査経路生成処理のフローチャートである。
【図７】検査経路生成処理の実行において機能する画像処理装置の機能構成の一例を示す図である。
【図８】法線補正処理のフローチャートである。
【図９】法線決定システムの機能構成を示す模式図である。
【図１０】ピント調整処理のフローチャートである。
【図１１】ピント調整システムの機能構成を示す模式図である。
【図１２】検査実行処理のフローチャートである。
【図１３】検査実行システムの機能構成を示す模式図である。
【図１４】カメラの円弧軌道の一例を示す図である。
【図１５】ユーザが入力装置を用いて検査経路を入力したときの処理の一例を示す図である。
【図１６】第２の実施の形態に係る法線決定処理のフローチャートである。
【図１７】第３の実施の形態に係る画像処理システムの構成を示す模式図である。
【図１８】基準線の変形例を示す模式図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
【００２４】
＜第１の実施の形態＞
［Ａ．画像処理システム構成］
図１は、第１の実施の形態に係る画像処理システムＳＹＳの基本構成を示す模式図である。図１に示す画像処理システムＳＹＳは、ラインＬによって提供されるワークＷの外観画像を用いて、ワークＷの外観を検査するためのシステムである。画像処理システムＳＹＳにおいては、予め定められたワークＷに１または複数設定された計測点ごとに外観検査が行われる。
【００２５】
画像処理システムＳＹＳは、画像処理装置２と、ロボット２１０と、２次元カメラ３１０と、３次元カメラ４１０とを含む。典型的には、ロボット２１０は多関節ロボットであって、ＳＣＡＲＡ型ロボットなどであってもよい。２次元カメラ３１０はロボット２１０の先端に取り付けられている。ロボット２１０が動くことにより、２次元カメラ３１０の位置および姿勢が変更される。そのため、ロボット２１０は、２次元カメラ３１０とワークＷとの相対的な位置関係を変化させることができる。
【００２６】
３次元カメラ４１０は、ラインＬ上の所定位置に設けられており、その撮像視野にラインＬの少なくとも一部が含まれるように配置されている。ラインＬによってワークＷが３次元カメラ４１０の撮像視野内に位置するように提供されたときに、３次元カメラ４１０は、当該ワークＷを撮像することができる。
【００２７】
画像処理装置２は、管理装置１００と、ロボット制御部２００と、２次元画像処理装置３００と、３次元画像処理装置４００とから構成される。なお、第１の実施の形態において、画像処理装置２は、４つの装置から構成されるとしたが、一の装置から構成されてもよく、２以上あるいは５以上の装置から構成されてもよい。
【００２８】
管理装置１００は、ロボット制御部２００、２次元画像処理装置３００および３次元画像処理装置４００のそれぞれとネットワークＮＷを介して接続されている。ネットワークＮＷは、たとえば、フィールドネットワークである。一例としては、ネットワークＮＷには、ＥｔｈｅｒＣＡＴ（登録商標）やＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）などが採用される。
【００２９】
また、管理装置１００は、表示装置１１０および入力装置１２０と電気的に接続されている。ロボット制御部２００は、ロボット２１０と電気的に接続されている。２次元画像処理装置３００は、２次元カメラ３１０と電気的に接続されている。３次元画像処理装置４００は３次元カメラ４１０と電気的に接続されている。なお、電気的に接続された各装置は、一体で構成されてもよい。つまり、ロボット２１０とロボット制御部２００とは、一体で構成されていてもよい。２次元画像処理装置３００と２次元カメラ３１０とは、一体で構成されていてもよい。３次元画像処理装置４００と３次元カメラ４１０とは、一体で構成されていてもよい。
【００３０】
［Ｂ．画像処理システムＳＹＳのハードウェア構成］
図２は、画像処理システムＳＹＳのハードウェア構成について示す模式図である。管理装置１００は、演算処理部であるＣＰＵ（Central Processing Unit）１３０と、記憶部としてのメインメモリ１４０およびハードディスク１５０と、表示コントローラ１６０と、データリーダ／ライタ１７０と、入力インターフェース（Ｉ／Ｆ）１８１と、ロボットインターフェイス（Ｉ／Ｆ）１８２と、２次元カメラインターフェイス（Ｉ／Ｆ）１８３と、３次元カメラインターフェイス（Ｉ／Ｆ）１８４とを含む。これらの各部は、バス１８５を介して、互いにデータ通信可能に接続される。
【００３１】
ＣＰＵ１３０は、ハードディスク１５０にインストールされた画像処理プログラム１５１を含むプログラム（コード）をメインメモリ１４０に展開して、これらを所定順序で実行することで、各種の演算を実施する。
【００３２】
メインメモリ１４０は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置である。メインメモリ１４０は、ハードディスク１５０から読み出されたプログラムに加えて、ワークＷの外観を検査するための検査用情報１４１１、２次元画像処理装置３００または３次元画像処理装置４００から送られた画像処理結果、ＣＰＵ１３０の処理結果、ならびにロボット２１０、２次元カメラ３１０および３次元カメラ４１０の位置姿勢（３次元座標上の座標値（Ｘ，Ｙ，Ｚ）および角度（θｘ、θｙ、θｚ））に関する情報などを保持する。
【００３３】
検査用情報１４１１は、たとえば、ワークＷの３次元ＣＡＤ情報、ワークＷの計測点の座標位置、計測点についての基準線の方向を示す法線ベクトル、計測点において検査する検査内容、計測点が複数ある場合には検査順序、検査する際の２次元カメラ３１０の移動経路などを含む。また、検査用情報１４１１はワークＷの種類ごとに設けられている。ワークＷの種類としては、たとえば、エンジンブロックやペットボトルなどがある。
【００３４】
ハードディスク１５０には、各種設定値などが格納されてもよい。なお、ハードディスク１５０に加えて、あるいは、ハードディスク１５０に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００３５】
表示コントローラ１６０は、表示装置１１０であるディスプレイと接続され、ＣＰＵ１３０における処理結果などをユーザに通知する。すなわち、表示コントローラ１６０は、表示装置１１０に接続され、当該表示装置１１０での表示を制御する。
【００３６】
データリーダ／ライタ１７０は、ＣＰＵ１３０と記録媒体であるメモリカード１７１との間のデータ伝送を仲介する。すなわち、メモリカード１７１には、管理装置１００で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１７０は、このメモリカード１７１からプログラムを読出す。また、データリーダ／ライタ１７０は、ＣＰＵ１３０の内部指令に応答して、２次元画像処理装置３００または３次元画像処理装置４００から送られた画像処理結果、ＣＰＵ１３０の処理結果などをメモリカード１７１へ書き込む。なお、メモリカード１７１は、ＣＦ（Compact Flash（登録商標））、ＳＤ（Secure Digital）などの汎用的な半導体記憶デバイスや、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体や、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体などからなる。
【００３７】
入力Ｉ／Ｆ１８１は、ＣＰＵ１３０とマウス、キーボード、タッチパネルなどの入力装置１２０との間のデータ伝送を仲介する。すなわち、入力Ｉ／Ｆ１８１は、ユーザが入力装置１２０を操作することで与えられる操作指令を受付ける。操作指令は、たとえば、ワークＷの計測点を指定する指令、ワークＷを指定する指令、検査を開始する指令が含まれる。
【００３８】
ロボットＩ／Ｆ１８２は、ＣＰＵ１３０とロボット制御部２００との間のデータ伝送を仲介する。すなわち、ロボットＩ／Ｆ１８２は、ロボット制御部２００と接続される。また、ロボットＩ／Ｆ１８２は、ＣＰＵ１３０からの内部コマンドに従って、ロボット制御部２００に移動を指示するコマンドを与える。
【００３９】
２次元カメラＩ／Ｆ１８３は、ＣＰＵ１３０と２次元画像処理装置３００との間のデータ伝送を仲介する。すなわち、２次元カメラＩ／Ｆ１８３は、ワークＷを撮像して得られた２次元画像を処理するための２次元画像処理装置３００と接続される。また、２次元カメラＩ／Ｆ１８３は、ＣＰＵ１３０からの内部コマンドに従って、２次元画像処理装置３００に対して各種画像処理の実行を指示するコマンドを与える。
【００４０】
３次元カメラＩ／Ｆ１８４は、ＣＰＵ１３０と３次元画像処理装置４００との間のデータ伝送を仲介する。また、３次元カメラＩ／Ｆ１８４は、ＣＰＵ１３０からの内部コマンドに従って、３次元画像処理装置４００に対して各種画像処理の実行を指示するコマンドを与える。
【００４１】
ロボット制御部２００は、ロボットＩ／Ｆ１８２から与えられるコマンドに従って、ロボット２１０の動作を制御する。ロボット２１０の動作とは、ロボット２１０に取り付けられた２次元カメラ３１０の位置および姿勢を変える動作である。すなわち、ロボット制御部２００は、２次元カメラ３１０の位置および姿勢を制御しているともいえる。
【００４２】
２次元画像処理装置３００は、撮像制御部３２０と画像処理エンジン３３０と、入出力Ｉ／Ｆ３４０とを含む。これらの各部は、バス３５０を介して、互いにデータ通信可能に接続される。撮像制御部３２０は、画像処理エンジン３３０からの指示に従って、接続されている２次元カメラ３１０における撮像動作を制御する。画像処理エンジン３３０は、入出力Ｉ／Ｆ３４０を介してＣＰＵ１３０から指示された各種画像処理を実行する。入出力Ｉ／Ｆ３４０は、画像処理エンジン３３０が実行した各種画像処理の結果を２次元カメラＩ／Ｆ１８３を介して管理装置１００に送信する。また、入出力Ｉ／Ｆ３４０は、２次元カメラＩ／Ｆ１８３を介して送られるＣＰＵ１３０からの各種指示を受け取る。
【００４３】
３次元画像処理装置４００は、撮像制御部４２０と画像処理エンジン４３０と、入出力Ｉ／Ｆ４４０とを含む。これらの各部は、バス４５０を介して、互いにデータ通信可能に接続される。なお、３次元画像処理装置４００が備えるハードウェアのうち、２次元画像処理装置３００が備えるハードウェアと同じ名称のハードウェアは、当該同じ名称のハードウェアと同じ機能を有するものとし、説明を省略する。
【００４４】
２次元カメラ３１０および３次元カメラ４１０は、各々、撮像視野に存在する被写体を撮像する撮像部である。２次元カメラ３１０は、主たる構成要素として、レンズや絞りなどの光学系と、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの受光素子とを含む。３次元カメラ４１０は、典型的には、アクティブ方式の３次元カメラであって、計測用のパターンを投光するプロジェクタと、カメラとで構成され、カメラの主たる構成要素として、レンズや絞りなどの光学系と、ＣＣＤイメージセンサやＣＭＯＳイメージセンサなどの受光素子とを含む。なお、パッシブ方式のステレオカメラであってもよい。
【００４５】
２次元カメラ３１０は、２次元画像処理装置３００からの指令に従って撮像するとともに、その撮像によって得られた２次元画像データを２次元画像処理装置３００へ出力する。
【００４６】
３次元カメラ４１０は、３次元画像処理装置４００からの指令に従って撮像するとともに、その撮像によって得られた３次元画像データを３次元画像処理装置４００へ出力する。
【００４７】
［Ｃ．画像処理システムの概要］
次に、画像処理システムＳＹＳの概要について説明する。画像処理システムＳＹＳは、ワークＷに設定された１または複数の計測点ＷｐごとにワークＷの外観を検査するためのシステムである。画像処理システムＳＹＳにおいて実行されるワークＷの外観検査に関する処理は、２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理と、２次元カメラ３１０のピントを計測点Ｗｐに合わせた状態で検査を実行する処理とを含む。計測点ＷｐごとにワークＷの外観検査をするとは、ワークＷ上に設定された計測点Ｗｐごとに、計測点Ｗｐを含む計測領域に対する外観検査を行なうことを意味する。計測点Ｗｐは、計測領域を代表する点であって、２次元カメラ３１０の光軸を合わせるための基準点に相当する。
【００４８】
画像処理システムＳＹＳにおいては、２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理と、２次元カメラ３１０のピントを計測点Ｗｐに合わせた状態で検査を実行する処理とを繰り返すことでワークＷ全体の外観検査が行われる。
【００４９】
２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理は、計測点Ｗｐについての基準線を特定する処理と、特定した基準線上で２次元カメラ３１０のピントを計測点Ｗｐに合わせる処理とを含む。画像処理システムＳＹＳにおいては、特定した法線Ｖ上に２次元カメラ３１０を位置決めすることができる。ここで、「基準線」とは、２次元カメラ３１０の向きを設定する際の基準になる線であって、計測点Ｗｐが位置するワークＷの微小平面に対して略垂直な垂線である法線や、ユーザによって任意に設定される線を含む。本実施の形態においては、基準線を法線Ｖとして説明する。
【００５０】
図３を参照して、２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理が実行されたときのロボット２１０の具体的な動きについて説明する。図３は、２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理が実行されたときのロボット２１０の動きの一例を示す図である。
【００５１】
図３には、法線Ｖ上に２次元カメラ３１０を位置決めする処理（ステップＳ１）が実行されたときのロボット２１０の動きと、法線Ｖ上で２次元カメラ３１０のピントを合わせる処理（ステップＳ１）が実行されたときのロボット２１０の動きとが示されている。
【００５２】
ステップＳ１において、管理装置１００は、ワークＷを撮像して得られる情報に基づいてワークＷの配置状況を特定する。ここで、配置状況は、ワークＷの位置だけでなく、ワークＷの向きを含む概念である。管理装置１００は、特定したワークＷの配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖを特定する。ここで、計測点Ｗｐが図３に示すように複数設定されている場合にあっては、法線Ｖが特定されることで、検査経路ＷＬが生成されることとなる。つまり、検査経路ＷＬを生成するためには、管理装置１００はワークＷの配置状況を特定するとともに、特定したワークＷの配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖを特定する必要がある。
【００５３】
管理装置１００は、特定した法線Ｖと２次元カメラ３１０の光軸Ｏとが一致するように２次元カメラ３１０の位置姿勢を決定し、決定した２次元カメラ３１０の位置姿勢に関する情報をロボット制御部２００に送信する。ロボット制御部２００は、受信した２次元カメラ３１０の位置姿勢に関する情報に基づいてロボット２１０に動作指令を送る。これにより、ロボット２１０の姿勢が、図３（Ｓ１）中の破線で示されたロボット２１０’の姿勢に変わることで、２次元カメラ３１０の位置姿勢を図３（Ｓ１）中の破線で示された２次元カメラ３１０’の位置姿勢に変える。
【００５４】
ステップＳ２において、管理装置１００は、決定した法線Ｖと２次元カメラ３１０の光軸Ｏとが一致する状態で２次元カメラ３１０を動かすための法線軌道を生成する。管理装置１００は、生成した法線軌道に関する情報および動作を指示するコマンドをロボット制御部２００に送信する。これにより、ロボット２１０は２次元カメラ３１０を図３（Ｓ２）中の両向き矢印の方向に沿って動かし、２次元カメラ３１０と計測点Ｗｐとの距離を変化させる。
【００５５】
また、ステップＳ２において、管理装置１００は、２次元カメラ３１０により撮像される２次元画像に基づいて２次元カメラ３１０の合焦度ａに関する特徴量を算出することを２次元画像処理装置３００に指示する。ここで、「合焦度ａ」とは、２次元カメラ３１０のピントがどの程度合っているかを示す指標である。なお、以下においては、合焦度ａに関する特徴量を単に合焦度ａともいう。管理装置１００は、計測点Ｗｐと２次元カメラ３１０との距離が異なる各位置における２次元カメラ３１０の合焦度ａを得る。管理装置１００は、２次元カメラ３１０と計測点Ｗｐとの間の距離の変化に応じた合焦度ａの変化に基づいて、２次元カメラ３１０のピントが計測点Ｗｐに合っている２次元カメラ３１０と計測点Ｗｐとの間の距離を決定する。
【００５６】
このように、画像処理システムＳＹＳは、ラインＬによって提供されたワークＷの配置状況に応じて、設定されたワークＷの計測点Ｗｐについての法線Ｖを特定することができる。また、画像処理システムＳＹＳは、２次元カメラ３１０と計測点Ｗｐとの距離を変化させることで、２次元カメラ３１０のピントを計測点Ｗｐに合わせることができる。その結果、２次元カメラ３１０の光学系を変えることなく、２次元カメラ３１０のピントを計測点Ｗｐに合わせることができる。よって、画像処理システムＳＹＳにおいては、正確な外観検査を実行することができる。また、画像処理システムＳＹＳにおいては、管理装置１００が外観画像に基づいて計測点Ｗｐの法線Ｖを決定し、２次元カメラ３１０を法線Ｖ上に沿って動かしたときの２次元カメラ３１０の合焦度ａに基づいて、２次元カメラ３１０のピントが計測点Ｗｐに合う位置を決定する。そのため、画像処理システムＳＹＳにおいては、ラインＬによって提供されたワークＷの位置と、２次元カメラ３１０との位置関係を調整することができる。
【００５７】
［Ｄ．検査処理］
画像処理システムＳＹＳにおいて実行されるワークＷの外観検査に関する処理は、２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理と、２次元カメラ３１０のピントを計測点Ｗｐに合わせた状態で検査を実行する処理とを含む。２次元カメラ３１０のピントをワークＷの計測点Ｗｐに合わせる処理は、計測点についての法線Ｖを特定する処理と、特定した法線Ｖ上で２次元カメラ３１０のピントを計測点Ｗｐに合わせる処理とを含む。
【００５８】
計測点Ｗｐについての法線Ｖを特定する処理は、より具体的には、ワークＷを撮像して得られる情報に基づいてワークＷの配置状況を特定する処理と、特定した配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖを特定する処理とを含む。
【００５９】
第１の実施の形態において、計測点Ｗｐについての法線Ｖを特定する処理は、３次元カメラ４１０および２次元カメラ３１０を用いて行われる。具体的には、計測点Ｗｐについての法線Ｖを特定する処理は、３次元カメラ４１０が撮像した３次元画像に基づいてワークＷに設定された各計測点Ｗｐについての法線Ｖを決定する処理と、決定された法線Ｖ上に２次元カメラ３１０を位置決めした状態で決定された法線Ｖを当該２次元カメラ３１０が撮像した２次元画像に基づいて補正する処理とを含む。
【００６０】
つまり、第１の実施の形態において、計測点Ｗｐについての法線Ｖを特定する処理は、（１）３次元画像に基づいてワークＷの配置状況を特定する処理と、（２）３次元画像に基づいて特定した配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖを決定する処理と、（３）決定された法線Ｖ上に２次元カメラ３１０を位置決めした状態で当該２次元カメラ３１０が撮像した２次元画像に基づいてワークＷの配置状況を特定する処理と、（４）決定された法線Ｖを２次元画像に基づいて特定した配置状況に応じて補正する処理とから成る。
【００６１】
図４を参照して、画像処理システムＳＹＳにおいて実行されるワークＷの外観検査に関する処理を実現するために、管理装置１００のＣＰＵ１３０が実行する検査処理について説明する。図４は、検査処理のフローチャートである。ＣＰＵ１３０は、ワークＷの検査を実行する指令を受け付けたことに基づいて検査処理を実行する。なお、ワークＷの検査を実行する指令は、たとえば、入力装置１２０からユーザによって入力される。また、ワークＷの検査を実行する指令は、ワークＷが３次元カメラ４１０の撮像視野範囲内に提供されたことに応じて３次元画像処理装置４００またはラインＬを管理する装置（図示せず）から入力されてもよい。第１の実施の形態において、ＣＰＵ１３０は、ワークＷの検査を実行する指令とともに、ワークＷの種類を特定可能なワークナンバーを受け付けるものとする。
【００６２】
ステップＳ１００において、ＣＰＵ１３０は、メインメモリ１４０に記憶されている複数の検査用情報１４１１の中から、ワークナンバーに対応する検査用情報１４１１を特定する。
【００６３】
ステップＳ２００において、ＣＰＵ１３０は、３次元カメラ４１０が撮像したワークＷの３次元画像に基づいてワークＷの配置状況を特定し、検査経路ＷＬを生成する検査経路生成処理を実行する。ＣＰＵ１３０が検査経路生成処理を実行することで、（１）３次元画像に基づいてワークＷの配置状況を特定する処理と、（２）３次元画像に基づいて特定した配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖを決定する処理とが行われることとなる。
【００６４】
ステップＳ３００において、ＣＰＵ１３０は、検査箇所があるか否かを判断する。具体的には、ＣＰＵ１３０は、検査が済んでいない計測点Ｗｐがあるか否かを判断する。全ての計測点Ｗｐについて検査が済んでいる場合には（ステップＳ３００においてＮＯ）、ＣＰＵ１３０は、検査処理を終了する。検査が済んでいない計測点Ｗｐがある場合には（ステップＳ３００においてＹＥＳ）、ＣＰＵ１３０は、制御をステップＳ３１０に切り替える。
【００６５】
ステップＳ３１０において、ＣＰＵ１３０は、検査が済んでいない一の計測点Ｗｐを決める。
【００６６】
ステップＳ４００において、ＣＰＵ１３０は、法線補正処理を実行する。法線補正処理は、検査が済んでいない一の計測点Ｗｐについての法線Ｖを補正する処理である。ＣＰＵ１３０が法線補正処理を実行することで、（３）決定された法線Ｖ上に２次元カメラ３１０を位置決めした状態で当該２次元カメラ３１０が撮像した２次元画像に基づいてワークＷの配置状況を特定する処理と、（４）決定された法線Ｖを２次元画像に基づいて特定したワークＷの配置状況に応じて補正する処理とが行われることとなる。
【００６７】
ステップＳ５００において、ＣＰＵ１３０は、ピント調整処理を実行する。ピント調整処理は、２次元カメラ３１０のピントを計測点Ｗｐに合わせる処理である。ＣＰＵ１３０がピント調整処理を実行することで、決定した法線Ｖ上で２次元カメラ３１０のピントを計測点Ｗｐに合わせる処理が行われることとなる。
【００６８】
ステップＳ６００において、ＣＰＵ１３０は、検査実行処理を実行する。検査実行処理は、計測点Ｗｐにおける検査を実行する処理である。ＣＰＵ１３０が検査実行処理を実行することで、２次元カメラ３１０のピントを計測点Ｗｐに合わせた状態で検査を実行する処理が行なわれることとなる。
【００６９】
［Ｅ．画像処理装置の機能構成］
図５を参照して、画像処理装置２の機能全体について説明する。図５は、画像処理装置２の機能構成の一例を示す図である。上述のように、画像処理装置２は、管理装置１００、ロボット制御部２００、２次元画像処理装置３００、および３次元画像処理装置４００を含む。
【００７０】
管理装置１００は、記憶部であるメインメモリ１４０を含む。メインメモリ１４０は、検査用情報１４１１を格納する機能構成として格納部１４１を含む。また、管理装置１００は、他の機能構成として、位置決定部１３１、経路生成部１３２、法線補正部１３３、法線軌道生成部１３４、ピント位置決定部１３５、円弧軌道生成部１３６、検査結果判定部１３７、および検査結果登録部１３８を含む。位置決定部１３１、経路生成部１３２、法線補正部１３３、法線軌道生成部１３４、ピント位置決定部１３５、円弧軌道生成部１３６、検査結果判定部１３７、および検査結果登録部１３８は、典型的には、管理装置１００のＣＰＵがプログラムを実行することで実現される。
【００７１】
ロボット制御部２００は、機能構成として、ワールド座標系における２次元カメラ３１０の位置姿勢の情報を、ロボット座標系における２次元カメラ３１０の位置姿勢の情報に変換する変換部２２０を備える。具体的に、変換部は、ワールド座標系の位置座標（Ｘｗ，Ｙｗ，Ｚｗ）からロボット座標系の位置座標（Ｘｒ，Ｙｒ，Ｚｒ）に変換するとともに、ワールド座標系の向きに関する情報（Ｎｗ）をロボット座標系の向きに関する情報（Ｎｒ）に変換する。ここで、向きに関する情報は、たとえばベクトルによって示される。なお、角度によって示されてもよい。
【００７２】
２次元画像処理装置３００は、画像処理エンジン３３０を含む。画像処理エンジン３３０は、機能構成として、特定部３３１、合焦度算出部３３２、および特徴量算出部３３３を含む。
【００７３】
３次元画像処理装置４００は、画像処理エンジン４３０を含む。画像処理エンジン４３０は、機能構成として、特定部４３１を含む。
【００７４】
なお、図５に示す画像処理装置２の機能構成のうち、一部または全部の機能をＡＳＬ（Application Sub-Layer）やＦＰＧＡ（Field Programmable Gate Array）などのハードワイヤード回路を用いて実現してもよい。なお、管理装置１００、ロボット制御部２００、２次元画像処理装置３００および３次元画像処理装置４００の各装置の機能の一部または全部の機能は他の装置に実装されてもよい。
【００７５】
格納部１４１は、入力装置１２０から入力された検査経路ＷＬに関する情報を格納する。ＣＰＵ１３０は、入力装置１２０から検査経路ＷＬに関する情報が入力されたときに、格納部１４１に情報を記録する。なお、格納部１４１に記憶されている情報は、入力装置１２０から入力された情報に限られず、メモリカード１７１または／およびハードディスク１５０から読み出された情報を含む。検査経路ＷＬに関する情報としては、たとえば、各計測点Ｗｐの３ＤＣＡＤ上の座標位置（Ｘｍ，Ｙｍ，Ｚｍ）および各計測点Ｗｐについての法線ベクトル（Ｎｍ）が含まれる。
【００７６】
位置決定部１３１は、経路生成部１３２、法線補正部１３３、法線軌道生成部１３４、ピント位置決定部１３５および円弧軌道生成部１３６のそれぞれから送られる２次元カメラ３１０の位置および向きに関する情報から、２次元カメラ３１０のワールド座標系における位置および向きを決定する。位置決定部１３１は、２次元カメラ３１０のワールド座標系での位置および向きに関する情報をロボット制御部２００に送信する。
【００７７】
３次元画像処理装置４００の特定部４３１は、ラインＬ上によって提供されたワークＷの配置状況を３次元画像から特定する。一例として、特定部４３１は、3次元パータンマッチングやICP（Iterative Closest Point）などの3次元画像処理によりワークＷの配置状況を算出する。特定部４３１によって計測されたワークＷの位置は、典型的には、３次元カメラ４１０におけるカメラ座標系の座標値（Ｘｃ３，Ｙｃ３，Ｚｃ３）［ｐｉｘｃｅｌ］で表される。また、特定部４３１によって計測されたワークＷの向きは、典型的には、３次元カメラ４１０におけるカメラ座標系のｘ軸、ｙ軸、ｚ軸周りの回転角（θｘｃ３，θｙｃ３，θｚｃ３）［ラジアン］で表される。特定部４３１によって計測されたワークＷの位置および傾きは管理装置１００に送られる。
【００７８】
経路生成部１３２は、特定部４３１から送られた３次元カメラ４１０のカメラ座標系におけるワークＷの位置および向き、ならびに、格納部１４１に格納されたワークＷの検査用情報１４１１などに基づいて検査経路ＷＬを生成する。検査経路ＷＬは、典型的には、ワールド座標系の座標位置（Ｘｗ，Ｙｗ，Ｚｗ）［ｍｍ］および法線ベクトル（Ｎｗ）によって表現される。つまり、経路生成部１３２は、３次元画像に基づいて特定された配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖを決定する。
【００７９】
また、経路生成部１３２は、検査の開始および終了を管理する。具体的には、検査の開始指示を受けたことに基づいて、検査経路ＷＬを生成する。経路生成部１３２は、生成した検査経路ＷＬに基づいて２次元カメラ３１０の位置および向き（Ｘｗ，Ｙｗ，Ｚｗ，Ｎｗ）を決定し、位置決定部１３１に指示を出す。また、経路生成部１３２は、一の計測点について検査が終了したことを示す終了信号を受けて、次の計測点Ｗｐに２次元カメラ３１０を位置決めするために２次元カメラ３１０の位置および向き（Ｘｗ，Ｙｗ，Ｚｗ）を決定し、位置決定部１３１に指示を出す。経路生成部１３２は、全ての計測点Ｗｐについて終了信号を受け付けたことに基づいて、検査を終了する。
【００８０】
このように、第１の実施の形態においては、経路生成部１３２が、検査の終了を示す終了信号を受けて、順次、２次元カメラ３１０を動かすようにロボット制御部２００に指示を出す。そのため、ユーザが計測点における検査が完了したことを確認し、確認した上で次の計測点Ｗｐにおける検査を開始することを管理装置１００に指示する必要がない。つまり、第１の実施の形態にかかる画像処理システムＳＹＳは、経路生成部１３２を備えることによって、ユーザの操作性が向上する。
【００８１】
２次元画像処理装置３００の特定部３３１は、経路生成部１３２によって決定された計測点Ｗｐの法線Ｖを補正するための情報を２次元画像から特定する。一例として、特定部３３１は、パターンマッチングなどの画像処理により計測点Ｗｐの法線Ｖを補正するための情報を算出する。ここで、計測点Ｗｐの法線Ｖを補正するための情報とは、計測点Ｗｐの位置に関する情報である。特定部４３１によって算出された計測点Ｗｐの位置は、典型的には、２次元カメラ３１０におけるカメラ座標系の座標値（Ｘｃ２，Ｙｃ２）［ｐｉｘｃｅｌ］と、法線を軸とした場合の軸回りの回転角θｃ２［ラジアン］とで表される。特定部３３１によって計測された計測点Ｗｐの位置に関する情報は管理装置１００に送られる。
【００８２】
法線補正部１３３は、経路生成部１３２によって決定された計測点Ｗｐの法線Ｖを補正する。具体的には、法線補正部１３３は、特定部３３１によって計測された計測点Ｗｐの位置に関する情報に基づいて、計測点Ｗｐの法線Ｖを特定する。つまり、法線補正部１３３は、間接的には、２次元画像に基づいて計測点Ｗｐの法線Ｖを特定する。以下、２次元画像に基づいて特定された計測点Ｗｐの法線Ｖを「計測された計測点Ｗｐの法線Ｖ」（実測値）ともいう。一方、２次元カメラ３１０の位置決めをするにあたって参照された計測点Ｗｐの法線Ｖを「決定された計測点Ｗｐの法線Ｖ」（指定値）ともいう。
【００８３】
法線補正部１３３は、計測された計測点Ｗｐの法線Ｖと決定された計測点Ｗｐの法線Ｖとの乖離値を算出し、その乖離値に基づいて決定された計測点Ｗｐの位置を補正し、計測点Ｗｐの位置を再度決定する。法線補正部１３３は、決定した計測点Ｗｐの位置に基づいて２次元カメラ３１０の位置および向き（Ｘｗ，Ｙｗ，Ｚｗ，Ｎｗ）を決定し、位置決定部１３１に送信する。法線補正部１３３は、乖離値が予め定められた値以下になったことに基づいて、計測点Ｗｐの位置および法線ベクトルを決定する。法線補正部１３３は、決定した計測点Ｗｐの位置および法線ベクトル（Ｘｗ，Ｙｗ，Ｚｗ，Ｎｗ）を法線軌道生成部１３４に送信する。
【００８４】
法線軌道生成部１３４は、受信した計測点Ｗｐの位置および法線ベクトルに基づいて、２次元カメラ３１０の光軸Ｏと計測点Ｗｐについての法線Ｖとを一致させた状態で、２次元カメラ３１０と計測点Ｗｐとの間の距離を変化させる２次元カメラ３１０の法線軌道（Ｘｗ（ｔ），Ｙｗ（ｔ），Ｚｗ（ｔ））を生成する。法線軌道生成部１３４は、生成した法線軌道、移動させる範囲などを位置決定部１３１およびピント位置決定部１３５に送信する。
【００８５】
合焦度算出部３３２は、２次元画像から合焦度ａを算出するとともに、当該２次元画像を２次元カメラ３１０が撮像した時間ｔとの関係ａ（ｔ）をピント位置決定部１３５に送信する。
【００８６】
ピント位置決定部１３５は、合焦度算出部３３２から送信された２次元画像の合焦度ａ（ｔ）および法線軌道生成部１３４から送信された法線軌道などの情報から、合焦度ａが最も高くなる位置を特定する。ピント位置決定部１３５は特定した位置から必要に応じて法線軌道生成部１３４に移動範囲を指定して法線軌道を生成するための指示を出す。ピント位置決定部１３５は、ピント位置を決定するための十分な情報を合焦度算出部３３２から得られたことに基づいて、ピント位置（Ｘｗ，Ｙｗ，Ｚｗ）を決定し、円弧軌道生成部１３６に送信する。
【００８７】
円弧軌道生成部１３６は、ピント位置決定部１３５から送られたピント位置における２次元カメラ３１０と計測点Ｗｐとの距離を保った状態で計測点についての法線Ｖと２次元カメラ３１０の光軸Ｏとのなす角度が変わるように円弧軌道を生成する。円弧軌道生成部１３６は２次元カメラ３１０の光軸Ｏと計測点Ｗｐとが交わるように２次元カメラ３１０の位置および向きについて円弧軌道（Ｘｗ（ｔ），Ｙｗ（ｔ），Ｚｗ（ｔ）、Ｎｗ（ｔ））を生成する。円弧軌道生成部１３６は、生成した円弧軌道と、移動させる範囲などを位置決定部１３１および検査結果判定部１３７に送信する。
【００８８】
特徴量算出部３３３は、計測点ごとに定められた検査を実行するための特徴量ｂを算出する。特徴量算出部３３３は、検査内容に対応する特徴量ｂを２次元画像から算出する。特徴量ｂの算出方法は、たとえば、ワークＷの種類と検査内容とから決定されてもよい。特徴量算出部３３３は、算出した特徴量ｂと当該２次元画像を２次元カメラ３１０が撮像した時間ｔとの関係ｂ（ｔ）を検査結果判定部１３７に送信する。
【００８９】
検査結果判定部１３７は、２次元画像の特徴量ｂ（ｔ）および円弧軌道生成部１３６から送信された円弧軌道などの情報から、特徴量ｂが増加する方向を特定する。特徴量ｂが増加する方向を円弧軌道生成部１３６に送信する。円弧軌道生成部１３６は、２次元カメラ３１０を動かすことができる範囲内で、特徴量ｂが増加する方向に２次元カメラ３１０を動かすことができる場合は、円弧軌道などを生成する。検査結果判定部１３７は、２次元カメラ３１０を動かすことができる範囲内における特徴量ｂを得た場合に、特徴量ｂの最大値を特定し、最大値が予め定められた規定値以上であるか否かに基づいて、検査結果を判断する。検査結果判定部１３７は、得られた検査結果を検査結果登録部１３８に送信する。
【００９０】
検査結果登録部１３８は、検査結果判定部１３７から送られた検査結果を出力するとともに、終了信号を経路生成部１３２に送信する。出力された検査結果はメインメモリ１４０の所定領域に記憶される。検査結果登録部１３８は、検査結果をメインメモリ１４０に記憶するとともに、表示装置１１０に検査結果を表示させてもよい。
【００９１】
［Ｆ．検査経路生成処理］
図６および図７を参照して、管理装置１００のＣＰＵ１３０が実行する検査経路生成処理（ステップＳ２００、図４参照）について詳細に説明する。図６は、検査経路生成処理のフローチャートである。図７は、検査経路生成処理の実行において機能する画像処理装置２の機能構成の一例を示す図である。なお、図７においては、ワークＷの形状を図１および図３に比べて簡略化して記載している。
【００９２】
ＣＰＵ１３０が検査経路生成処理を実行することで、ワークＷの配置状況が特定されるとともに、特定されたワークＷの配置状況に応じて、ワークＷに設定された各計測点Ｗｐについての法線Ｖが特定される。
【００９３】
図４に示すように、検査経路生成処理（ステップＳ２００）は、ワークナンバーに対応する検査用情報１４１１がステップＳ１００において特定された後、実行される。検査用情報１４１１はたとえば、メインメモリ１４０に設けられた格納部１４１にワークナンバーごとに記憶されている。たとえば、検査用情報１４１１としては、認識用ＣＡＤモデルならびに、計測点ナンバー（Ｎｏ．ｉ）ごとに計測点Ｗｐの３ＤＣＡＤ上での座標値（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）、大きさを所定値とした法線ベクトル（Ｎｍｉ）、検査項目、およびレファレンスモデル画像（Ｉｉ）が格納部１４１に記憶されている（図７参照）。計測点Ｎｏ．ｉ（ｉ＝１，２，・・・）は、計測順序を示しており、経路生成部１３２は、Ｎｏ．ｉの計測点の次にＮｏ．（ｉ＋１）の計測点Ｗｐについて検査を実行するように制御する。
【００９４】
ここで、レファレンスモデル画像（Ｉｉ）とは、計測点の基準画像であって、２次元カメラ３１０の光軸Ｏと、Ｎｏ．ｉの計測点Ｗｐについての法線Ｖとが一致している場合に２次元カメラ３１０の撮像領域内に含まれる基準となる画像であればよい。また、レファレンスモデル画像（Ｉｉ）は、典型的には、認識用ＣＡＤモデルからＣＧ（Computer Graphics）レンダリングによって生成される。なお、レファレンスモデル画像（Ｉｉ）は、ワークＷを実際に撮像した画像から生成してもよい。
【００９５】
ワークＷの検査用情報１４１１が特定された後、ステップＳ２０１において、ＣＰＵ１３０は、３次元画像処理装置４００に、特定された検査用情報１４１１の認識用ＣＡＤモデルを送る。３次元画像処理装置４００は、画像処理エンジン４３０の記憶部４３２に認識用ＣＡＤモデルを一時的に記憶する。なお、３次元画像処理装置４００は、ワークナンバーごとに認識用ＣＡＤモデルを予め記憶していてもよい。この場合、ステップＳ２０１において、ＣＰＵ１３０は、ワークナンバーだけを３次元画像処理装置４００に送信する。
【００９６】
ステップＳ２０２において、ＣＰＵ１３０は、３次元画像処理装置４００にワークＷの配置状況を特定することを指示する。
【００９７】
図７を参照して、３次元画像処理装置４００が実行するワークＷの配置状況の特定方法を説明する。３次元画像処理装置４００の特定部４３１は、ワークＷの配置状況を特定することの指示を受け、撮像制御部４２０に３次元画像を取得することを指示する。撮像制御部４２０は、取得した３次元画像を画像処理エンジン４３０の格納部４３３に格納する。特定部４３１は、格納部４３３に記憶された３次元画像内において、記憶部４３２に記憶された認識用ＣＡＤモデルと類似する画像領域を探索する。特定部４３１は、探索した画像領域から、３次元画像内におけるワークＷの位置（Ｘｃ３，Ｙｃ３，Ｚｃ３）と３次元画像内におけるワークＷの向き（θｘｃ３，θｙｃ３，θｚｃ３）とを算出する。特定部４３１は、算出した３次元画像内におけるワークＷの位置および向きを管理装置１００に送信する。
【００９８】
図６に戻って検査経路生成処理について説明する。３次元画像処理装置４００からワークＷの位置およびワークＷの向きに関する情報を受け、ステップＳ２０３において、ＣＰＵ１３０は、グローバル座標系におけるワークＷの配置状況を特定する。具体的には、ＣＰＵ１３０の機能構成に含まれる変換部１３９（図７参照）が、カメラ座標系の値（Ｘｃ３，Ｙｃ３，Ｚｃ３，θｘｃ３，θｙｃ３，θｚｃ３）を３次元カメラ４１０の座標値（Ｘｗ０，Ｙｗ０，Ｚｗ０）および予め定められた座標変換式に基づいてグローバル座標系の値（Ｘｗ，Ｙｗ，Ｚｗ，θｘｗ，θｙｗ，θｚｗ）に変換する。これにより、図７に示すように、ラインＬによって提供されたワークＷについての検査経路ＷＬが生成される。
【００９９】
ステップＳ２０４において、ＣＰＵ１３０は、法線Ｖを決定することで検査経路ＷＬを生成して、検査処理に戻る。具体的には、経路生成部１３２（図７参照）が、格納部１４１に格納された検査用情報１４１１のうち、計測点Ｗｐｉごとの座標（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）および法線ベクトル（Ｎｍｉ）をグローバル座標系におけるワークＷの位置（Ｘｗ，Ｙｗ，Ｚｗ）および向き（θｘｗ，θｙｗ，θｚｗ）ならびに予め定められた変換式に基づいてグローバルワーク座標系の座標値（Ｘｗｉ，Ｙｗｉ，Ｚｗｉ）および法線ベクトル（Ｎｗｉ）に変換する。グローバル座標系における計測点Ｗｐの座標値および法線ベクトルが算出されることで法線Ｖが決定する。また、グローバル座標系における計測点Ｗｐの座標値および法線ベクトルが算出されることで検査経路ＷＬも生成されることとなる。経路生成部１３２は、格納部１４１の検査用情報１４１１を生成した検査経路の情報に更新する。経路生成部１３２は、更新した情報をメインメモリ１４０の第１記憶部１４２（図９参照）に記憶する。
【０１００】
このように、ＣＰＵ１３０が検査経路生成処理を実行することで、３次元画像処理装置４００が３次元画像に基づいてワークＷの配置状況を特定する。また、ＣＰＵ１３０が検査経路生成処理を実行することで、ワークＷに設定された各計測点Ｗｐについて、ワールド座標系における各計測点Ｗｐの位置および法線ベクトルが算出される。つまり、ＣＰＵ１３０が検査経路生成処理を実行することで、特定したワークＷの配置状況に応じてワークＷに設定された各計測点Ｗｐについての法線Ｖが決まる。
【０１０１】
［Ｇ．法線補正処理］
図８および図９を参照して、管理装置１００のＣＰＵ１３０が実行する法線補正処理（ステップＳ４００、図４参照）について詳細に説明する。図８は、法線補正処理のフローチャートである。図９は、法線補正処理の実行において機能する画像処理装置２の機能構成の一例を示す図である。なお、図９においては、ワークＷの形状を図１および図３に比べて簡略化して記載している。
【０１０２】
ステップＳ４０１において、ＣＰＵ１３０は、２次元画像処理装置３００にレファレンスモデル画像を送る。具体的には、経路生成部１３２がステップＳ３１０において決めた計測点Ｗｐについてのレファレンスモデル画像を第１記憶部１４２から特定し、２次元カメラＩ／Ｆ１８３を介して２次元画像処理装置３００に送信する。２次元画像処理装置３００は、画像処理エンジン３３０の記憶部３３４にレファレンスモデル画像を一時的に記憶する。なお、２次元画像処理装置３００は、計測点ごとにレファレンスモデル画像を予め記憶していてもよい。この場合、ステップＳ４０１において、ＣＰＵ１３０は、計測点ナンバーだけを２次元画像処理装置３００に送信する。
【０１０３】
ステップＳ４０２において、ＣＰＵ１３０は、第１記憶部１４２に記憶された計測点Ｗｐの位置および法線ベクトルから２次元カメラ３１０の位置および向きを決定する。具体的には、経路生成部１３２は、ステップＳ３１０において決めた計測点Ｗｐについてのワールド座標系の座標位置および法線ベクトルを第１記憶部１４２から特定する。経路生成部１３２は、特定した法線ベクトルと２次元カメラ３１０の光軸Ｏとが一致するように２次元カメラ３１０の向きを決定する。また、経路生成部１３２は、計測点Ｗｐについての法線Ｖ上に２次元カメラ３１０が位置し、かつ、２次元カメラ３１０と計測点Ｗｐとの距離が予め定められた距離となるように２次元カメラ３１０の位置を決定する。ここで、予め定められた距離とは、２次元カメラ３１０の焦点距離から算出される距離であって、理論上、計測点に２次元カメラ３１０のピントが合う距離である。
【０１０４】
ステップＳ４０３において、ＣＰＵ１３０は、ロボット制御部２００に動作を指示する。具体的には、経路生成部１３２は、決定した２次元カメラ３１０の位置（Ｘｗ，Ｙｗ，Ｚｗ）および向き（Ｎｗ）を位置決定部１３１に送信する。位置決定部１３１は、ロボットＩ／Ｆ１８２を介してロボット制御部２００に２次元カメラ３１０の位置および向きを送信する（図９参照）。
【０１０５】
ステップＳ４０４において、ＣＰＵ１３０は、２次元画像処理装置３００に、計測点Ｗｐの法線を特定することを指示する。
【０１０６】
図９を参照して、２次元画像処理装置３００が実行する計測点Ｗｐの法線の特定方法を説明する。２次元画像処理装置３００の特定部３３１は、計測点Ｗｐの法線を特定することの指示を受け、撮像制御部３２０に２次元画像を取得することを指示する。撮像制御部３２０は、取得した２次元画像を画像処理エンジン３３０の格納部３３５に格納する。
【０１０７】
特定部３３１は、格納部３３５に記憶された２次元画像内において、記憶部３３４に記憶されたレファレンスモデル画像と類似する画像領域を探索する。特定部３３１は、探索した画像領域から、２次元画像内における計測点Ｗｐの位置（Ｘｃ２，Ｙｃ２）と２次元画像内における計測点Ｗｐの向き（θｃ２）とを算出する。特定部３３１は、算出した２次元画像内における計測点Ｗｐの位置および向きを管理装置１００に送信する。
【０１０８】
図８に戻って法線補正処理について説明する。２次元画像処理装置３００から計測点Ｗｐの位置および計測点Ｗｐの向きに関する情報を受け、ステップＳ４０５において、ＣＰＵ１３０は、グローバル座標系における計測点Ｗｐの位置および計測点Ｗｐの法線ベクトルを特定する。具体的には、ＣＰＵ１３０の機能構成に含まれる変換部１３９（図９参照）が、カメラ座標系の値（Ｘｃ２，Ｙｃ２，θｃ２）を位置決定部１３１がロボット制御部２００に送った２次元カメラ３１０の位置（Ｘｗ，Ｙｗ，Ｚｗ）および向き（Ｎｗ）、並びに、予め定められた座標変換式に基づいてグローバル座標系の値（Ｘｗ，Ｙｗ，Ｚｗ，Ｎｗ）に変換する。これにより、計測された計測点Ｗｐの法線Ｖ（実測値）が特定される。
【０１０９】
ステップＳ４０６において、ＣＰＵ１３０は乖離値を決定する。乖離値とは、計測された計測点Ｗｐの法線Ｖ（実測値）と決定された計測点の法線（指定値）とのズレを示す値である。ここで、２次元カメラ３１０の位置および向きは、決定された計測点Ｗｐの法線Ｖ（指定値）と２次元カメラ３１０の光軸Ｏとが一致するように決定される。よって、乖離値とは、計測された計測点Ｗｐの法線Ｖと２次元カメラ３１０の光軸Ｏとのズレを示す値でもある。乖離値は、たとえば、ベクトル（ΔＮ）などで示される。具体的には、法線補正部１３３の機能構成に含まれる乖離値算出部１３３０（図９参照）が、２次元カメラ３１０の位置および向きと、計測された計測点Ｗｐの法線Ｗｐの法線Ｖ（実測値）とから、乖離値（ΔＮ）を算出する。ここで、第１の実施の形態においては、２次元画像内における計測点Ｗｐの向き（θｃ２）とは、法線を軸とした軸周りの回転角である。そのため、変換部１３９によって変換されたグローバル座標系における計測点Ｗｐの法線ベクトルと、決定された計測点の法線ベクトルとは一致する。つまり、計測点Ｗｐの法線Ｖ（実測値）と決定された計測点の法線（指定値）とのズレとは、法線ベクトルが一致しないことに起因するズレではなく、計測点Ｗｐの位置座標が一致しないことに起因するズレである。
【０１１０】
ステップＳ４０７において、ＣＰＵ１３０は、乖離値が予め定められた第１閾値以下であるかを判断する。乖離値が第１閾値以下ではない場合には（ステップＳ４０７においてＮＯ）、ＣＰＵ１３０は、制御をステップＳ４０８に切り替える。
【０１１１】
ステップＳ４０８において、ＣＰＵ１３０は、乖離値から補正量を算出する。具体的には、法線補正部１３３の機能構成に含まれる補正量算出部１３３２（図９参照）が、乖離値（ΔＮ）に基づいて２次元カメラ３１０を移動させる補正量（ΔＸ，ΔＹ，ΔＺ，Δθｘ，Δθｙ，Δθｚ）を決定する。これにより、２次元カメラ３１０の光軸Ｏと、計測された計測点Ｗｐの法線Ｖ（実測値）とを一致させるために必要な補正量が算出されることになる。
【０１１２】
ステップＳ４０９において、ＣＰＵ１３０は、補正量から２次元カメラ３１０の位置および向きを決定する。具体的には、補正量算出部１３３２は、算出した補正量と、ステップＳ４０３において位置決定部１３１が指示した２次元カメラ３１０の位置および向きとから、２次元カメラ３１０の位置および向き（Ｘｗ，Ｙｗ，Ｚｗ，Ｎｗ）を決定する。このとき、法線補正部１３３の機能構成に含まれる更新部１３３１は、補正量に基づいて第１記憶部１４２に記憶された計測点Ｗｐの位置を補正し、補正した計測点Ｗｐの位置に第１記憶部１４２の情報を更新する。これにより、計測された計測点Ｗｐの法線Ｖ（実測値）が決定された計測点Ｗｐの法線Ｖ（指示値）として、第１記憶部１４２に記憶される。
【０１１３】
ＣＰＵ１３０は、乖離値が第１閾値以下になるまで（ステップＳ４０７においてＹＥＳ）、ステップＳ４０３からステップＳ４０９を繰り返す。乖離値が第１閾値以下である場合には（ステップＳ４０７においてＹＥＳ）、ＣＰＵ１３０は、制御をステップＳ４１０に切り替える。
【０１１４】
ＣＰＵ１３０は、ステップＳ４１０において、補正後の計測点Ｗｐの法線Ｖを決定する。具体的には、ステップＳ４０９において更新部１３３１が更新した第１記憶部１４２の情報を補正後の計測点Ｗｐの位置および法線ベクトルとして決定する。
【０１１５】
このように、画像処理システムＳＹＳの画像処理装置２に含まれる特定部４３１は、３次元カメラ４１０によって撮像された３次元画像内において、記憶部４３２に記憶された認識用ＣＡＤモデルと類似する画像領域を探索する。画像処理システムＳＹＳの画像処理装置２に含まれる経路生成部１３２は、特定部４３１によって探索された画像領域から得られる情報と、格納部１４１に格納された３ＤＣＡＤ上での計測点Ｗｐごとの座標（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）および法線ベクトル（Ｎｍｉ）をグローバルワーク座標系の座標値（Ｘｗｉ，Ｙｗｉ，Ｚｗｉ）および法線ベクトル（Ｎｗｉ）に変換する。これにより、特定部４３１はワークＷに設定された各計測点Ｗｐについての法線Ｖを決定する。
【０１１６】
さらに、画像処理システムＳＹＳにおいては、特定部４３１が決定した法線Ｖ上に２次元カメラ３１０を位置決めした状態で２次元カメラ３１０によって撮像された２次元画像内において、特定部３３１は、記憶部３３４に記憶されたレファレンスモデル画像と類似する画像領域を探索する。画像処理システムＳＹＳの画像処理装置２に含まれる法線補正部１３３は、特定部３３１によって探索された画像領域から得られる情報に基づいて、特定部４３１が決定した法線Ｖを補正して法線Ｖを決定する。
【０１１７】
つまり、第１の実施の形態に係る画像処理システムＳＹＳにおいては、ワークＷに設定された各計測点Ｗｐについての法線Ｖを３次元画像から得られる情報に基づいて決定した上で、さらに、２次元画像から得られる情報に基づいて補正する。つまり、ロボット２１０の制御誤差によって生じる、２次元カメラ３１０の光軸Ｏと、計測点Ｗｐについての法線Ｖとのズレを２次元画像から得られる情報に基づいて補正することができる。また、ワークＷのＣＡＤモデルとラインＬによって提供されたワークＷとの誤差によって生じる、２次元カメラ３１０の光軸Ｏと計測点Ｗｐについての法線Ｖとのズレを、２次元画像から得られる情報に基づいて補正することができる。そのため、第１の実施の形態に係る画像処理システムＳＹＳを用いることで、より正確に２次元カメラ３１０とワークＷとの位置関係を調整することができる。
【０１１８】
なお、第１の実施の形態においては、２次元画像内における計測点Ｗｐの向き（θｃ２）とは、法線を軸とした軸周りの回転角であるとした。しかし、２次元画像処理装置３００は、レファレンスモデル画像と類似する画像領域を探索し、探索した結果得られた画像領域内の画像の歪みから、計測点Ｗｐが位置する平面とワークＷが設置された面との角度を求めてもよい。このような場合にあっては、ＣＰＵ１３０は、法線ベクトルのズレも検出することができる。
【０１１９】
［Ｈ．ピント調整処理］
図１０および図１１を参照して、管理装置１００のＣＰＵ１３０が実行するピント位置調整処理（ステップＳ５００、図４参照）について詳細に説明する。図１０は、ピント位置調整処理のフローチャートである。図１１は、ピント位置調整処理の実行において機能する画像処理装置２の機能構成の一例を示す図である。なお、図１１においては、ワークＷの形状を図１および図３に比べて簡略化して記載している。
【０１２０】
ステップＳ５０１において、ＣＰＵ１３０は、２次元カメラ３１０を移動させる軌道を生成する。具体的には、法線軌道生成部１３４は、法線補正処理（ステップＳ４００）において決定された補正後の法線Ｖと２次元カメラ３１０の光軸Ｏとを一致させた状態で、２次元カメラ３１０と計測点Ｗｐとの距離を変化させる２次元カメラ３１０の法線軌道（Ｘｗ（ｔ），Ｙｗ（ｔ），Ｚｗ（ｔ），Ｎｗ）を生成する。
【０１２１】
ステップＳ５０２において、ＣＰＵ１３０は、２次元カメラ３１０の移動範囲を決定する。移動範囲は、初期値が決定されており、ステップＳ５０２〜ステップＳ５０６を繰り返すことで徐々に変化する。具体的には、ステップＳ５０５において得られた合焦度ａと２次元カメラ３１０の位置との関係から、合焦度ａが増加する方向に２次元カメラ３１０が動くように移動範囲を決定する。
【０１２２】
ステップＳ５０３において、ＣＰＵ１３０は、ロボット制御部２００に２次元カメラ３１０を動かすことを指示する。具体的には、ＣＰＵ１３０は、ステップＳ５０２で決定した移動範囲内であって、ステップＳ５０１の軌道上を２次元カメラ３１０が一定の速度で動くようにロボット制御部２００に指示する。ここで２次元カメラ３１０を動かす速度は、１回撮像するために要する時間で動く距離が２次元カメラ３１０の焦点深度以下となる速度である。
【０１２３】
ステップＳ５０４において、ＣＰＵ１３０は、２次元画像処理装置３００に合焦度ａを算出することを指示する。具体的には、ＣＰＵ１３０は、ステップＳ５０３においてＣＰＵ１３０がロボット制御部２００に指示した移動範囲内を２次元カメラ３１０が動いている第１期間中に２次元カメラ３１０が撮像した２次元画像から２次元カメラ３１０の合焦度ａを算出することを２次元画像処理装置３００に指示する。
【０１２４】
図１１を参照して、２次元画像処理装置３００が実行する合焦度ａの算出方法を説明する。２次元画像処理装置３００の合焦度算出部３３２は、合焦度ａを算出することの指示を受け、撮像制御部３２０に第１期間中に撮像された２次元画像を取得することを指示する。撮像制御部３２０は、取得した２次元画像を画像処理エンジン３３０の格納部３３５に格納する。合焦度算出部３３２は、格納部３３５に記憶された２次元画像の合焦度ａを算出するための所定の画像処理を２次元画像に対して実行する。たとえば、２次元画像の濃度偏差を合焦度ａに関する特徴量とし、算出した濃度偏差を合焦度ａとしてもよい。合焦度算出部３３２は、算出した合焦度ａと当該２次元画像を２次元カメラ３１０が撮像した時間ｔとの関係ａ（ｔ）をピント位置決定部１３５に送信する。
【０１２５】
図１０に戻ってピント調整処理について説明する。２次元画像処理装置３００から合焦度ａと当該２次元画像を２次元カメラ３１０が撮像した時間ｔとの関係ａ（ｔ）を受け、ステップＳ５０５において、ＣＰＵ１３０は、合焦度ａと２次元カメラ３１０の位置との関係を記憶する。具体的には、ＣＰＵ１３０は、ステップＳ５０３において指示した２次元カメラ３１０の移動範囲などから、撮像した時間ｔにおける２次元カメラ３１０の位置を特定する。特定した２次元カメラ３１０の位置（Ｘｗ（ｔ）、Ｙｗ（ｔ），Ｚｗ（ｔ））と合焦度ａ（ｔ）との関係を第２記憶部１４３に記憶する。
【０１２６】
ステップＳ５０６において、ＣＰＵ１３０は、合焦度ａが移動範囲内で極値をとるか否かを判断する。合焦度ａが移動範囲内で極値を取らない場合には（ステップＳ５０６においてＮＯ）、ＣＰＵ１３０は、合焦度ａが移動範囲内で極値をとるまでステップＳ５０２〜ステップＳ５０６を繰り返す。ここで、ＣＰＵ１３０は、ステップＳ５０２において移動範囲を決定する際に、２次元カメラ３１０の始点位置をワークＷから離れた位置にする、あるいは、近くにすることで、合焦度ａが極値を取る位置を探す。なお、２次元カメラ３１０の始点位置をワークＷに近い位置に設定する場合には、ワークＷと２次元カメラ３１０およびロボット２１０とが接触しないような位置に設定する。
【０１２７】
合焦度ａが移動範囲内で極値をとる場合には（ステップＳ５０６においてＹＥＳ）、ＣＰＵ１３０は、ステップＳ５０７に制御を切り換える。
【０１２８】
ステップＳ５０７において、合焦度ａが極値をとる位置をピント位置に決定し、検査処理に戻る。具体的には、ピント位置決定部１３５は、記憶部に記憶された合焦度ａのうちの最も高い合焦度ａmaxとなる２次元画像を撮像したときの２次元カメラ３１０の位置をピント位置（Ｘｗ，Ｙｗ，Ｚｗ）に決定する（図１１参照）。
【０１２９】
このように、ＣＰＵ１３０がピント調整処理を実行することで、決定した法線Ｖ上で２次元カメラ３１０のピントを計測点Ｗｐに合わせる処理が行われることとなる。
【０１３０】
［Ｉ．検査実行処理］
図１２〜図１４を参照して、管理装置１００のＣＰＵ１３０が実行する検査実行処理（ステップＳ６００、図４参照）について詳細に説明する。図１２は、検査実行処理のフローチャートである。図１３は、検査実行処理の実行において機能する画像処理装置２の機能構成の一例を示す図である。図１４は、２次元カメラ３１０の円弧軌道の一例を示す図である。なお、図１３においては、ワークＷの形状を図１および図３に比べて簡略化して記載している。
【０１３１】
ステップＳ６０１において、ＣＰＵ１３０は、計測点の検査項目を特定する。具体的には、第１記憶部１４２に記憶されている計測点Ｗｐと検査項目との対応関係に基づいて、検査項目を特定する。
【０１３２】
ステップＳ６０２において、ＣＰＵ１３０は、検査項目が検査Ａであるか否かを判断する。ここで、検査Ａとは、ワークＷの表面に正確に印字がされているかなどの２次元カメラ３１０が撮像した方向によって検査結果が変わるおそれのある検査をいう。検査Ａである場合（ステップＳ６０２においてＹＥＳ）、ＣＰＵ１３０は、ステップＳ６１５に制御を切り換える。
【０１３３】
ステップＳ６１５において、ＣＰＵ１３０は、ピント位置で検査を実行する。具体的には、検査結果判定部１３７は、ピント位置調整処理（ステップＳ５００）において決定したピント位置で検査Ａを実行する。
【０１３４】
検査Ａではない場合（ステップＳ６０２においてＮＯ）、ＣＰＵ１３０は、ステップＳ６０３において、ピント位置を中心とする円弧軌道を生成する。具体的には、円弧軌道生成部１３６が、ピント位置決定部１３５が決定した２次元カメラ３１０の位置と計測点Ｗｐとの距離を保った状態で計測点Ｗｐについての法線Ｖと２次元カメラ３１０の光軸Ｏとのなす角度が０から予め定められた値まで変化するように円弧軌道（Ｘｗ（ｔ），Ｙｗ（ｔ），Ｚｗ（ｔ），Ｎｗ（ｔ））を生成する。ここで、円弧軌道について、図１４を用いて説明する。円弧軌道生成部１３６は、図１４（ａ）に示すように、ピント位置決定部１３５において決定した２次元カメラ３１０の位置Ｃと計測点Ｗｐとの距離を半径ｒとした球の表面上を２次元カメラ３１０が位置するように円弧軌道を生成する。円弧軌道は図１４（ｂ）に示すように、２次元カメラ３１０の光軸Ｏと法線Ｖとの角度を一定にして計測点Ｗｐの周りを一周させた後に、角度を変えて再度一周させることを繰り返す軌道であってもよい。また、図１４（ｃ）に示すように、２次元カメラ３１０の光軸Ｏと法線Ｖとの角度を徐々に変えながら計測点Ｗｐの周囲をらせん状に移動する軌道であってもよい。
【０１３５】
図１２に戻って検査実行処理について説明する。ステップＳ６０４において、ＣＰＵ１３０は、２次元カメラ３１０の移動範囲を決定する。移動範囲は、たとえば、計測点Ｗｐの周囲を少なくとも一周する範囲である。
【０１３６】
ステップＳ６０５において、ＣＰＵ１３０は、ロボット制御部２００に２次元カメラ３１０を動かすことを指示する。具体的には、ＣＰＵ１３０は、ステップＳ６０４で決定した移動範囲内であって、ステップＳ６０１の軌道上を２次元カメラ３１０が一定の速度で動くようにロボット制御部２００に指示する。
【０１３７】
ステップＳ６０６において、ＣＰＵ１３０は、２次元画像処理装置３００に検査内容に対応する特徴量ｂを算出することを指示する。具体的には、ＣＰＵ１３０は、ステップＳ６０５においてＣＰＵ１３０がロボット制御部２００に指示した移動範囲内を２次元カメラ３１０が動いている第２期間中に２次元カメラ３１０が撮像した２次元画像から検査内容ごとに予め定められている特徴量ｂを算出することを２次元画像処理装置３００に指示する。
【０１３８】
図１３を参照して、２次元画像処理装置３００が実行する特徴量ｂの算出方法を説明する。２次元画像処理装置３００の特徴量算出部３３３は、特徴量ｂを算出することの指示を受け、撮像制御部３２０に第２期間中に撮像された２次元画像を取得することを指示する。撮像制御部３２０は、取得した２次元画像を画像処理エンジン３３０の格納部３３５に格納する。特徴量算出部３３３は、格納部３３５に記憶された２次元画像の特徴量ｂを算出するための所定の画像処理を２次元画像に対して実行する。特徴量算出部３３３は、算出した特徴量ｂと当該２次元画像を２次元カメラ３１０が撮像した時間ｔとの関係ｂ（ｔ）を検査結果判定部１３７に送信する。
【０１３９】
特徴量ｂは、外観検査において外観に異常があるか否かを判断する指標となる量である。たとえば、外観に縞模様などの特定パターンが施されているワークＷに対してキズ検査を実行するような場合、特徴量算出部３３３は、２次元画像に対して特定パターンを除去するための処理を実行した後、欠陥を示す領域を特定するためのラベリング処理を実行する。これにより、特徴量算出部３３３は、欠陥面積または欠陥長さを特徴量ｂとして算出する。なお、他の方法で特徴量ｂを算出してもよい。
【０１４０】
たとえば、特徴量算出部３３３は、２次元画像を複数領域に分割し、隣接した領域間の色差から欠陥度を算出し、ラベリング処理を実行することで欠陥度が規定値以上となる領域を特定し、当該領域から欠陥面積または欠陥長さを特徴量ｂとして算出してもよい。この方法は、典型的には、細かなキズを検出することを目的とした場合に用いられる方法である。
【０１４１】
なお、特徴量算出部３３３は次の方法を用いて特徴量ｂを算出してもよい。特徴量算出部３３３は、２次元画像に対して公知のエッジ抽出処理を行った後、公知の膨張処理を行う。特徴量算出部３３３は、膨張処理後に欠陥を示す領域を特定するためのラベリング処理を実行することで、欠陥面積または欠陥長さを特徴量ｂとして算出する。この方法は、典型的には、打痕、凹みなどを検出することを目的とした場合に用いられる方法である。
【０１４２】
なお、特徴量ｂを算出する方法は、外観検査において外観に異常があるか否かを判断する指標となる量を抽出するための方法であればよく、開示した方法に限られるものではない。
【０１４３】
図１２に戻って検査実行処理について説明する。２次元画像処理装置３００から特徴量ｂと当該２次元画像を２次元カメラ３１０が撮像した時間ｔとの関係ｂ（ｔ）を受け、ステップＳ６０７において、ＣＰＵ１３０は、特徴量ｂと２次元カメラ３１０の位置との関係を記憶する。具体的には、ＣＰＵ１３０は、ステップＳ５０５において指示した２次元カメラ３１０の移動範囲などから、撮像した時間ｔにおける２次元カメラ３１０の位置および向きを特定する。特定した２次元カメラ３１０の位置および向き（Ｘｗ（ｔ）、Ｙｗ（ｔ），Ｚｗ（ｔ），Ｎｗ（ｔ））と合焦度ａ（ｔ）との関係を第３記憶部１４４に記憶する。
【０１４４】
ステップＳ６０８において、ＣＰＵ１３０は、特徴量ｂが増加する方向があるか否かを判断する。具体的には、ＣＰＵ１３０は、移動範囲内における特徴量ｂの最大値と最小値を特定し、最大値と最小値との差が第３閾値以上であるか否かに基づいて判断する。ＣＰＵ１３０は、最大値と最小値との差が第３閾値以上である場合、最小値となる位置から最大値となる位置に向かう方向を増加する方向として、特徴量ｂが増加する方向があると判断する。
【０１４５】
特徴量ｂが増加する方向がない場合には（ステップＳ６０８においてＮＯ）、ＣＰＵ１３０は、ステップＳ６１６に制御を切り換える。
【０１４６】
特徴量ｂが増加する方向がある場合には（ステップＳ６０９においてＹＥＳ）、ＣＰＵ１３０は、ステップＳ６０９において、特徴量ｂが増加する方向に向かう軌道を生成する。具体的には、ＣＰＵ１３０は、第３記憶部１４４に記憶された２次元カメラ３１０の位置および向きの情報と、特徴量ｂとから、特徴量ｂが増加する方向を決定し、当該方向に向かう軌道を生成する。
【０１４７】
ステップＳ６１０において、ＣＰＵ１３０は、２次元カメラ３１０の移動範囲を決定する。具体的には、ＣＰＵ１３０は、特徴量ｂが増加する方向に移動範囲を決定する。
【０１４８】
ステップＳ６１１において、ＣＰＵ１３０は、ロボット制御部２００に２次元カメラ３１０を動かすことを指示する。具体的には、ＣＰＵ１３０は、ステップＳ６１０で決定した移動範囲内であって、ステップＳ６０９の軌道上を２次元カメラ３１０が一定の速度で動くようにロボット制御部２００に指示する。
【０１４９】
ステップＳ６１２において、ＣＰＵ１３０は、２次元画像処理装置３００に検査内容に対応する特徴量ｂを算出することを指示する。
【０１５０】
ステップＳ６１３において、ＣＰＵ１３０は、特徴量ｂと２次元カメラ３１０の位置との関係を記憶する。
【０１５１】
ステップＳ６１４において、ＣＰＵ１３０は、移動範囲が限界値であるか否かを判定する。具体的には、ＣＰＵ１３０は、増加方向に２次元カメラ３１０を移動させることが可能であるか否かを判定する。増加方向に２次元カメラ３１０を移動させることが可能であるかは、２次元カメラ３１０または／およびロボット２１０とワークＷとが当たらないかどうか、または、ロボット２１０の稼働限界かどうかによって、位置決定部１３１が決定する。移動範囲が限界値ではない場合には（ステップＳ６１４においてＮＯ）、ＣＰＵ１３０は、移動範囲が限界値になるまでステップＳ６０９〜ステップＳ６１４を繰り返す。
【０１５２】
移動範囲が限界値である場合（ステップＳ６１４においてＹＥＳ）、特徴量ｂが増加する方向がない場合（ステップＳ６０８においてＮＯ）、ピント位置で検査を実行した後（ステップＳ６１５の実行後）、ＣＰＵ１３０は、ステップＳ６１６において、検査データを送信する。具体的には、ＣＰＵ１３０は、検査結果登録部１３８に検査結果を送信し、登録する。ＣＰＵ１３０は、特徴量ｂが増加する方向がない場合（ステップＳ６０８においてＮＯ）、第３記憶部１４４に記憶された特徴量ｂの最大値を算出し、算出した最大値が規定値以下であるか否かを判断する。規定値以下である場合、ＣＰＵ１３０は異常なしと判定し、検査結果として異常なし（図１３中の丸印）を登録する。規定値より高い場合、ＣＰＵ１３０は異常ありと判定し、検査結果として異常ある（（図１３中のバツ印）を登録する。ＣＰＵ１３０は、移動範囲が限界値である場合（ステップＳ６１４においてＹＥＳ）、第３記憶部１４４に記憶された特徴量ｂのうちの最も高い特徴量ｂｍａｘを特定し（図１３参照）、特徴量ｂｍａｘが規定値以下であるか否かを判断する。規定値以下である場合、ＣＰＵ１３０は異常なしと判定し、検査結果を登録する。規定値より高い場合、ＣＰＵ１３０は異常ありと判定し、検査結果を登録する。ピント位置で検査を実行した後（ステップＳ６１５の実行後）である場合、ＣＰＵ１３０は、ピント位置での検査結果を登録する。たとえば、検査結果判定部１３７は、２次元画像処理装置３００に、ピント位置で得られた２次元画像と基準となる２次元画像とのマッチング度合いを算出するように指示し、得られたマッチング度合に応じて、異常があるか否かを判定する。
【０１５３】
このように、第１の実施の形態に係る画像処理システムＳＹＳにおいては、円弧軌道生成部１３６は、２次元カメラ３１０と計測点Ｗｐとの間の距離を保った状態で計測点Ｗｐについての法線Ｖと２次元カメラ３１０の光軸Ｏとのなす角度が０から予め定められた値まで変化するような円弧軌道上を生成する。ＣＰＵ１３０は、円弧軌道生成部１３６が生成した円弧軌道上を２次元カメラ３１０が動くようにロボット制御部２００に指示する。また、検査結果判定部１３７は、法線Ｖと光軸Ｏとのなす角度の変化に応じた特徴量ｂの変化に基づいて、２次元カメラ３１０の移動範囲を決定する。つまり、検査結果判定部１３７は、法線Ｖと光軸Ｏとのなす角度の変化に応じた特徴量ｂの変化に基づいて、２次元カメラ３１０とワークＷとの相対的な位置関係を決定する。
【０１５４】
検査結果判定部１３７が、２次元カメラ３１０とワークＷとの位置関係を特徴量ｂに基づいて決定するため、特徴量ｂを算出する上で最適な位置で検査を実行することができる。つまり、本実施の形態に係る画像処理システムＳＹＳを用いることで、ワークＷへの光の当り具合によるハレーションが起きにくい位置で検査を実行することができる。なお、本実施の形態における特徴量ｂは、合焦度算出部３３２が合焦度ａとして算出する濃度偏差であってもよい。つまり、特徴量算出部３３５と合焦度算出部３３２とを一体としてもよい。
【０１５５】
［Ｊ．入力装置を用いた検査経路の登録方法］
図１５を参照して、入力装置を用いた検査経路ＷＬの登録方法について説明する。図１５は、ユーザが入力装置１２０を用いて検査経路ＷＬを入力したときの処理の一例を示す図である。図１５（ａ）は入力装置１２０を用いてユーザが経路を入力した場合に、表示装置１１０に表示される画面の一例である。図１５（ｂ）は、法線ベクトルの作成方法を説明するための図である。
【０１５６】
図１５（ａ）に示すように、ユーザは表示装置１１０に表示されたワークの３ＤＣＡＤモデル上にカーソルをおき、計測点と当該検査箇所において検査したい項目を選択する。計測点を選択すると、図１５（ｂ）に示す方法で、計測点についての法線が作成される。管理装置１００のＣＰＵ１３０は、ワークの３ＤＣＡＤデータに基づいて法線ベクトルを作成する。具体的には、ＣＰＵ１３０は、計測点Ｗｐ２が位置するＰ１（ｘ１、ｙ１、ｚ１），Ｐ２（ｘ２、ｙ２、ｚ２）およびＰ３（ｘ３、ｙ３、ｚ３）に囲まれる微小平面を特定する。ＣＰＵ１３０は、特定した微小平面に基づいて、当該微小平面に対して垂直なベクトルを法線ベクトルＮｍ２として算出する。
【０１５７】
ＣＰＵ１３０は、入力装置１２０によってユーザが登録した情報を格納部１４１に登録する。これにより、検査用情報１４１１が格納部１４１に記憶される。
【０１５８】
このように、第１の実施の形態における画像処理システムＳＹＳの画像処理装置２は、ワークＷの設計情報であるワークの３ＤＣＡＤモデルを表示装置１１０に表示するとともに、ユーザ操作に応じて計測点Ｗｐを設定する。そのため、第１の実施の形態における画像処理システムＳＹＳにおいては、計測点Ｗｐを設定する上での自由度が高い。
【０１５９】
また、第１の実施の形態における画像処理システムＳＹＳの画像処理装置２は、ユーザ操作に応じて設定された計測点Ｗｐの各々について法線Ｖを算出することができる。そのため、ユーザは計測点Ｗｐを設定し、検査の開始を指示するだけで、正確な検査を実行することができ、画像処理システムＳＹＳを利用するユーザの利便性が向上する。
＜第２の実施の形態＞
第１の実施の形態において、ワークＷの計測点Ｗｐごとの法線を決定する場合、管理装置１００は、３次元画像に基づいて経路を生成する際に決定した後、さらに２次元画像に基づいて計測点Ｗｐごとに決定した法線Ｖを補正した。しかし、２次元カメラ３１０を用いなくてもよい。具体的には、図６および図７を参照して説明した経路生成処理によって、各計測点の３ＤＣＡＤ上の各計測点Ｗｐの座標位置および各計測点Ｗｐについての法線ベクトルがグローバル座標系に変換されて、グローバル座標系における計測点Ｗｐの座標位置および各計測点Ｗｐについての法線ベクトルが算出されたことをもって、計測点Ｗｐの法線Ｖが決定されたとしてもよい。この場合、管理装置１００は、図８に示す法線補正処理（ステップＳ４００）を実行することなく、ピント位置調整処理（ステップＳ５００）を実行する。
【０１６０】
たとえば、第１の実施の形態における経路生成処理（ステップＳ２００）および法線補正処理（ステップＳ４００）のかわりに、図１６に示す、法線決定処理（ステップＳ４００Ａ）を実行してもよい。図１６は、第２の実施の形態に係る法線決定処理のフローチャートである。
【０１６１】
ステップＳ４０１Ａにおいて、ＣＰＵ１３０は、３次元画像処理装置４００に特定された検査用情報１４１１の認識用ＣＡＤモデルを送る。
【０１６２】
ステップＳ４０２Ａにおいて、ＣＰＵ１３０は、３次元画像処理装置４００にワークＷの配置状況を特定することを指示する。
【０１６３】
ステップＳ４０３Ａにおいて、ＣＰＵ１３０は、グローバル座標系におけるワークＷの配置状況を特定する。
【０１６４】
ステップＳ４０４Ａにおいて、ＣＰＵ１３０は、各計測点Ｗｐの法線Ｖを決定する。具体的には、格納部１４１に格納された検査情報のうち、計測点Ｗｐごとの座標（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）および法線ベクトル（Ｎｍｉ）をグローバル座標系におけるワークＷの位置（Ｘｗ，Ｙｗ，Ｚｗ）および向き（θｘｗ，θｙｗ，θｚｗ）ならびに予め定められた変換式に基づいてグローバルワーク座標系の座標値（Ｘｗｉ，Ｙｗｉ，Ｚｗｉ）および法線ベクトル（Ｎｗｉ）に変換して、各計測点Ｗｐの法線Ｖを決定する。経路生成部１３２は、格納部１４１の検査用情報１４１１をグローバル座標系における座標値および法線ベクトルに更新し、第１記憶部１４２（図９参照）に記憶する。
【０１６５】
ここで、第２の実施の形態におけるピント調整処理のステップＳ５０１においては、ステップＳ４０４Ａにより決定した法線Ｖに基づいて２次元カメラ３１０の軌道を生成する。
【０１６６】
このように、第２の実施の形態に係る画像処理システムＳＹＳの画像処理装置２に含まれる特定部４３１は、３次元カメラ４１０によって撮像された３次元画像内において、記憶部４３２に記憶された認識用ＣＡＤモデルと類似する画像領域を探索する。画像処理システムＳＹＳの画像処理装置２に含まれる経路生成部１３２は、特定部４３１によって探索された画像領域から得られる情報と、格納部１４１に格納された３ＤＣＡＤ上での計測点ごとの座標（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）および法線ベクトル（Ｎｍｉ）をグローバルワーク座標系の座標値（Ｘｗｉ，Ｙｗｉ，Ｚｗｉ）および法線ベクトル（Ｎｗｉ）に変換する。これにより、ワークＷに設定された各計測点Ｗｐについての法線Ｖが決まる。つまり、画像処理システムＳＹＳにおいては、ワークＷに設定された各計測点Ｗｐについての法線Ｖを一度の撮像で決定することができ、早くに法線Ｖを決定することができる。
＜第３の実施の形態＞
第１および第２の実施の形態において、ロボット２１０は、２次元カメラ３１０の位置を移動させることで２次元カメラ３１０とワークＷとの距離を変化させるものとした。しかし、図１７に示すように、ロボット２１０は、ワークＷの位置を移動させることで２次元カメラ３１０とワークＷとの位置を変更させてもよい。図１７は、第３の実施の形態に係る画像処理システムの構成を示す模式図である。ロボット２１０は、典型的には、ＳＣＡＲＡ型ロボットであって、ワールド座標系におけるＸ，Ｙ，Ｚ方向（図１７に示す座標軸）にワークＷを動かすことができる。これにより、２次元カメラ３１０とワークＷの計測点についての法線とを一致させたうえで、２次元カメラ３１０のピントを合わせることができる。
【０１６７】
なお、図１７においては、ＳＣＡＲＡ型ロボットを例に挙げたが、ワークＷが十分に小さい場合は、アーム型ロボットによって、ワークＷの位置だけでなく、姿勢を変えることができる構成にしてもよい。また、ワークＷが十分に小さい場合は、２次元カメラ３１０を移動させる場合に比べて、ロボット２１０の動作範囲が小さくなるため、早くに移動させることができる。
【０１６８】
＜変形例＞
［検査用のカメラ］
第１〜第３の実施の形態において、外観検査に使用されるカメラを２次元カメラ３１０とした。なお、変位センサを２次元カメラ３１０の代わりに用いてもよい。変位センサには、光切断センサ、超音波変位センサなどを含む。変位センサを用いることで、２次元カメラを用いる場合と比較して、微細な欠陥の検出が可能になる。
【０１６９】
［照明装置］
第１〜第３の実施の形態において、画像処理システムＳＹＳは２次元カメラ３１０を円弧軌道に沿って動かすことで、ハレーションが起きにくい位置で検査を実行するとした。なお、２次元カメラ３１０ではなく、ワークＷに光を照射する照明（図示せず）の位置または／および向きを変えることで、ハレーションの起きにくい状況で検査を実行できるようにしてもよい。つまり、円弧軌道生成部１３６は、２次元カメラ３１０の位置および向きを変化させる軌道を生成するのではなく、照明の位置または／および向きを変えるための軌道を生成してもよい。
【０１７０】
［２次元カメラの位置決め方法］
第１〜第３の実施の形態において、検査を実行する際の２次元カメラ３１０の位置を決定する方法として、ピントを合わせた後に、検査内容に応じて法線Ｖと光軸Ｏとのなす角度を変化させることで、検査を実行する際に２次元カメラ３１０の位置として最適な位置を決定することとした。しかし、ピントを合わせながら、検査内容に応じて法線Ｖと光軸Ｏとのなす角度を変化させることで、２次元カメラ３１０の位置として最適な位置を決定してもよい。具体的には、２次元カメラ３１０を法線軌道上に沿ってわずかに動かし、動かした位置において、法線Ｖと光軸Ｏとのなす角度を変化させるようにしてもよい。画像処理装置２は、２次元画像とレファレンスモデル画像とのマッチング度合いを示す特徴量を算出し、法線Ｖと光軸Ｏとのなす角度のうち、当該特徴量に基づいて２次元カメラ３１０の向きである角度を決定してもよい。その後、画像処理装置２は、決定した２次元カメラ３１０の向きを保った状態で、ワークＷと２次元カメラ３１０との間の距離を変化させ、２次元画像とレファレンスモデル画像とのマッチング度合いを示す特徴量から、距離を決定してもよい。
【０１７１】
また、第１の実施の形態において、２次元カメラと３次元カメラを用いて、２次元カメラの位置決めを行うとした。また、第２の実施の形態において、３次元カメラのみを用いて検査に用いる２次元カメラの位置決めを行うとして。２次元カメラのみを用いて、ワークＷに設定された各計測点Ｗｐについての各法線Ｖを決定してもよい。
【０１７２】
［基準線について］
本実施の形態において、基準線とは、計測点Ｗｐが位置する微小平面に対して垂直な垂線である垂線とした。しかし、基準線は、ユーザによって設定可能なものであってもよい。たとえば、基準線は、撮像領域内に位置するワークが可能な限り２次元カメラ３１０の被写界深度内に位置するように、２次元カメラ３１０の向きを設定する際の基準になる線であってもよい。
【０１７３】
図１８は、基準線の変形例を示す模式図である。基準線は、たとえば、ワークＷの材質と、照射光が入射する方向とに基づいて設定されてもよい。たとえば、図１８（ａ）の基準線Ｖ１は、照明の光が２次元カメラ３１０の光軸に沿って照射され、かつ、ワークＷの表面の材質が正反射をする材質である場合に、正反射光を入射させない位置にカメラを配置するために設定される。具体的に、基準線Ｖ１は、計測点Ｗｐ１を通るような線であって、垂線を傾斜させたように設定されている。このようにすることで、計測点Ｗｐ１を含む計測領域に入射して、その計測領域から反射する光の方向を考慮して２次元カメラ３１０を配置することができる。
【０１７４】
また、基準線は、計測点Ｗｐを含む計測領域におけるワークＷの表面の形状に基づいて設定されてもよい。たとえば、図１８（ａ）の基準線Ｖ２、基準線Ｖ３、図１８（ｂ）の基準線Ｖ５、および図１８（ｃ）の基準線Ｖ６は、各々、計測点Ｗｐ（すなわち計測点Ｗｐ２，計測点Ｗｐ３，計測点Ｗｐ５，計測点Ｗｐ６）付近が複数の面から構成されている場合に、複数の面の各々が２次元カメラ３１０の撮像視野に含まれるように設定される。このようにすることで、ワークＷの表面形状が複雑である場合も、その形状を考慮して２次元カメラ３１０を配置することができる。
【０１７５】
また、図１８（ｂ）の基準線Ｖ４は、計測点Ｗｐ４が設定されている領域を撮像視野に含めるために設定される。具体的には、基準線Ｖ５は、障害物であるワークＷの表面上の凹凸を避けるように設定される。このようにすることで、ワークＷの表面に凹凸があったとしても、その凹凸により視界が遮られることを予め防止することができる。
【０１７６】
これらの基準線は、図１５を用いて説明した、検査経路ＷＬを登録する際の一連の処理において、画像処理装置２が算出してもよく、また、ユーザが計測点Ｗｐを基準に設定してもよい。また、画像処理装置２が算出したうえで、ユーザが微調整をできるような構成であってもよい。
【０１７７】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１７８】
ＳＹＳ  画像処理システム、２  画像処理装置、１００  管理装置、１１０  表示装置、１２０  入力装置、１３１  位置決定部、１３２  経路生成部、１３３  法線補正部、１３３０  乖離値算出部、１３３１  更新部、１３３２  補正量算出部、１３４  法線軌道生成部、１３５  ピント位置決定部、１３６  円弧軌道生成部、１３７  検査結果判定部、１３８  検査結果登録部、１３９，２２０  変換部、１４０  メインメモリ、１４１，３３５，４３３  格納部、１４２  第１記憶部、１４３  第２記憶部、１４４  第３記憶部、１５０  ハードディスク、１６０  表示コントローラ、１７０  データリーダ／ライタ、１７１  メモリカード、１８１  入力Ｉ／Ｆ、１８２  ロボットＩ／Ｆ、１８３  ２次元カメラＩ／Ｆ、１８４  ３次元カメラＩ／Ｆ、１８５，３５０，４５０  バス、２００  ロボット制御部、２１０  ロボット、３００  ２二次元画像処理装置、３１０  ２次元カメラ、３２０，４２０  撮像制御部、３３０，４３０  画像処理エンジン、３３１，４３１  特定部、３３２  合焦度算出部、３３３  特徴量算出部、３３４，４３２  記憶部、３４０，４４０  入出力Ｉ／Ｆ、４００  ３次元画像処理装置、４１０  ３次元カメラ、ＮＷ  ネットワーク、Ｗｐ  計測点、Ｏ  光軸、Ｖ  法線、Ｗ  ワーク、ＷＬ  検査経路、ａ  合焦度、ｂ  特徴量。
【図１】
2018194542.tif 000003
【図２】
2018194542.tif 000004
【図３】
2018194542.tif 000005
【図４】
2018194542.tif 000006
【図５】
2018194542.tif 000007
【図６】
2018194542.tif 000008
【図７】
2018194542.tif 000009
【図８】
2018194542.tif 000010
【図９】
2018194542.tif 000011
【図１０】
2018194542.tif 000012
【図１１】
2018194542.tif 000013
【図１２】
2018194542.tif 000014
【図１３】
2018194542.tif 000015
【図１４】
2018194542.tif 000016
【図１５】
2018194542.tif 000017
【図１６】
2018194542.tif 000018
【図１７】
2018194542.tif 000019
【図１８】
2018194542.tif 000020
【手続補正書】
【提出日】平成30年4月27日(2018.4.27)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
好ましくは、基準線特定手段は、基準線決定手段により決定された基準線上に第１の撮像部を位置決めした状態で第１の撮像部により撮像される画像に対して、対応する計測点の基準画像に合致する部分を探索する第２の探索手段と、第２の探索手段により探索された部分の情報に基づいて、基準線決定手段により決定された基準線を補正する補正手段とをさらに含む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１５４
【補正方法】変更
【補正の内容】
【０１５４】
検査結果判定部１３７が、２次元カメラ３１０とワークＷとの位置関係を特徴量ｂに基づいて決定するため、特徴量ｂを算出する上で最適な位置で検査を実行することができる。つまり、本実施の形態に係る画像処理システムＳＹＳを用いることで、ワークＷへの光の当り具合によるハレーションが起きにくい位置で検査を実行することができる。なお、本実施の形態における特徴量ｂは、合焦度算出部３３２が合焦度ａとして算出する濃度偏差であってもよい。つまり、特徴量算出部３３３と合焦度算出部３３２とを一体としてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１６６
【補正方法】変更
【補正の内容】
【０１６６】
このように、第２の実施の形態に係る画像処理システムＳＹＳの画像処理装置２に含まれる特定部４３１は、３次元カメラ４１０によって撮像された３次元画像内において、記憶部４３２に記憶された認識用ＣＡＤモデルと類似する画像領域を探索する。画像処理システムＳＹＳの画像処理装置２に含まれる経路生成部１３２は、特定部４３１によって探索された画像領域から得られる情報と、格納部１４１に格納された３ＤＣＡＤ上での計測点ごとの座標（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）および法線ベクトル（Ｎｍｉ）をグローバルワーク座標系の座標値（Ｘｗｉ，Ｙｗｉ，Ｚｗｉ）および法線ベクトル（Ｎｗｉ）に変換する。これにより、ワークＷに設定された各計測点Ｗｐについての法線Ｖが決まる。つまり、画像処理システムＳＹＳにおいては、ワークＷに設定された各計測点Ｗｐについての法線Ｖを一度の撮像で決定することができ、早くに法線Ｖを決定することができる。
＜第３の実施の形態＞
第１および第２の実施の形態において、ロボット２１０は、２次元カメラ３１０の位置を移動させることで２次元カメラ３１０とワークＷとの距離を変化させるものとした。しかし、図１７に示すように、ロボット２１０は、ワークＷの位置を移動させることで２次元カメラ３１０とワークＷとの距離を変更させてもよい。図１７は、第３の実施の形態に係る画像処理システムの構成を示す模式図である。ロボット２１０は、典型的には、ＳＣＡＲＡ型ロボットであって、ワールド座標系におけるＸ，Ｙ，Ｚ方向（図１７に示す座標軸）にワークＷを動かすことができる。これにより、２次元カメラ３１０とワークＷの計測点についての法線とを一致させたうえで、２次元カメラ３１０のピントを合わせることができる。