以下、添付の図面を参照しながら、本発明の各実施形態について説明する。各実施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。図面は、あくまでも模式的に示したものである。図面では、容易に理解が可能となるように、必要に応じて各部の寸法および数が誇張または簡略化されて図示されている場合がある。また、図面では、同様な構成および機能を有する部分に同じ符号が付されており、重複した説明が適宜省略されている。図1から図3(b)、図5、図18および図19には、右手系のXYZ座標系が付されている。このXYZ座標系では、図1の検査装置2において水平方向に沿って検査対象物(ワークともいう)W0が搬送される方向が+X方向とされ、水平面に沿った+X方向に直交する方向が+Y方向とされ、+X方向および+Y方向の両方に直交する重力方向が-Z方向とされている。このXYZ座標系は、検査装置2の実空間における方位関係を示している。図5および図7(a)から図8(c)には、検査対象物W0の3次元モデルにおける右手系のxyz座標系(3次元モデル座標系ともいう)が付されている。図5には、撮像部421における左手系のx’y’z’座標系(カメラ座標系ともいう)が付されている。
<1.第1実施形態>
<1-1.検査装置>
<1-1-1.検査装置の概略的な構成>
図1は、検査装置2の概略的な構成の一例を示す図である。検査装置2は、例えば、3次元形状を有する検査対象物W0を検査するための装置である。図1で示されるように、検査装置2は、例えば、搬入部(投入部ともいう)10、4つの搬送部20、2つの昇降部30、2つの検査部40、反転部50、搬出部60および制御装置70を備えている。4つの搬送部20は、例えば、第1搬送部20a、第2搬送部20b、第3搬送部20cおよび第4搬送部20dを含む。2つの昇降部30は、例えば、第1昇降部30aおよび第2昇降部30bを含む。2つの検査部40は、例えば、第1検査部40aおよび第2検査部40bを含む。
検査装置2では、例えば、制御装置70の制御によって、次のような流れで検査対象物W0の搬送、撮像および反転などの各種の動作が行われ得る。まず、例えば、検査装置2の外部から搬入部10に検査対象物W0が搬入される。次に、例えば、第1搬送部20aによって、予め設定された所望の姿勢(第1検査用姿勢ともいう)で保持された検査対象物W0が、搬入部10から第1昇降部30aまで搬送される。次に、例えば、第1昇降部30aによって、第1検査用姿勢で保持された検査対象物W0が、第1検査部40aまで上昇される。第1検査部40aでは、例えば、第1検査用姿勢で保持された検査対象物W0を対象として、予め設定された複数の角度で照明および撮像が行われる。次に、例えば、第1昇降部30aによって、第1検査用姿勢で保持された検査対象物W0が、第1検査部40aの下方に下降される。次に、例えば、第2搬送部20bによって、第1検査用姿勢で保持された検査対象物W0が、第1昇降部30aから反転部50まで搬送される。反転部50では、例えば、検査対象物W0の上下が反転されて、予め設定された所望の姿勢(第2検査用姿勢ともいう)で保持される。次に、例えば、第3搬送部20cによって、第2検査用姿勢で保持された検査対象物W0が、反転部50から第2昇降部30bまで搬送される。次に、例えば、第2昇降部30bによって、第2検査用姿勢で保持された検査対象物W0が、第2検査部40bまで上昇される。第2検査部40bでは、例えば、第2検査用姿勢で保持された検査対象物W0を対象として、予め設定された複数の角度で照明および撮像が行われる。次に、例えば、第2昇降部30bによって、第2検査用姿勢で保持された検査対象物W0が、第2検査部40bの下方に下降される。次に、例えば、第4搬送部20dによって、第2検査用姿勢で保持された検査対象物W0が、第2昇降部30bから搬出部60まで搬送される。そして、例えば、搬出部60から検査装置2の外部に検査対象物W0が搬出される。
ここで、4つの搬送部20は、例えば、一体的に構成されてもよいし、複数の部分で構成されてもよい。一体的に構成される4つの搬送部20は、例えば、直動ガイドと、駆動機構と、を有する。直動ガイドには、例えば、第1搬送部20aから第4搬送部20dまで直線状に延びる一対のレールが適用される。駆動機構には、例えば、直動ガイド上に配された、検査対象物W0を保持する保持機構を水平方向に移動させるボールネジおよびモータなどが適用される。各昇降部30には、例えば、検査対象物W0を保持する保持機構が、シリンダもしくはモータなどの昇降機構によって昇降される構成などが適用される。反転部50には、例えば、検査対象物W0を把持する把持部と、この把持部を移動および回転させる腕部と、を有する構成などが適用される。制御装置70は、例えば、コンピュータなどの情報処理装置で構成される。2つの検査部40には、例えば、同様な構成が適用される。
<1-1-2.検査部の構成>
図2(a)から図3(b)は、検査部40の一構成例を示す図である。図2(a)から図3(b)で示されるように、検査部40は、例えば、保持部41と、複数の撮像モジュール42と、を有する。図2(a)には、保持部41の一構成例が模式的に描かれた平面図が示されている。図2(b)には、保持部41の一構成例が模式的に描かれた正面図が示されている。図2(a)および図2(b)では、便宜的に複数の撮像モジュール42の図示が省略されている。図3(a)には、検査部40における複数の撮像モジュール42の配置の一例が描かれた平面図が示されている。図3(b)には、図3(a)のIIb-IIb線に沿った仮想的な切断面の一例が示されている。図3(a)および図3(b)では、便宜的に保持部41の図示が省略されている。
<1-1-2-1.保持部>
保持部41は、検査対象物W0を保持するための部分である。保持部41は、例えば、検査対象物W0を所望の姿勢で保持することができる。例えば、第1検査部40aの保持部41は、検査対象物W0を第1検査用姿勢で保持することができる。例えば、第2検査部40bの保持部41は、検査対象物W0を第2検査用姿勢で保持することができる。
図2(a)および図2(b)で示されるように、保持部41は、例えば、第1部分411と、第2部分412と、を有する。第1部分411と第2部分412とは、例えば、水平方向に沿った第1方向d1および該第1方向d1とは逆の第2方向d2において、相互に対向するように位置している。
第1部分411は、例えば、第1ガイド部411aと、第1可動部材411bと、第1挟持部材411cと、を含む。第1ガイド部411aは、例えば、第1方向d1に沿って延びるように位置している。第1ガイド部411aには、例えば、第1方向d1に沿って直線状に延びるレール部材または第1方向d1に沿って直線状に延びる一対のガイド部材などが適用される。第1可動部材411bは、例えば、モータなどで付与される駆動力によって第1ガイド部411aに沿って第1方向d1への移動および第2方向d2への移動を行うことができる。換言すれば、第1可動部材411bは、例えば、第1方向d1および第2方向d2における往復移動が可能である。第1可動部材411bには、例えば、直方体状のブロックが適用される。第1挟持部材411cは、例えば、第1可動部材411b上に固定されており、第1方向d1の端部が検査対象物W0の外面の一部に沿った形状を有する。
第2部分412は、例えば、第2ガイド部412aと、第2可動部材412bと、第2挟持部材412cと、を含む。第2ガイド部412aは、例えば、第2方向d2に沿って延びるように位置している。第2ガイド部412aには、例えば、第2方向d2に沿って直線状に延びるレール部材または第2方向d2に沿って直線状に延びる一対のガイド部材などが適用される。第2可動部材412bは、例えば、モータなどで付与される駆動力によって第2ガイド部412aに沿って第2方向d2への移動および第1方向d1への移動を行うことができる。換言すれば、第2可動部材412bは、例えば、第1方向d1および第2方向d2における往復移動が可能である。第2可動部材412bには、例えば、直方体状のブロックが適用される。第2挟持部材412cは、例えば、第2可動部材412b上に固定されており、第2方向d2の端部が検査対象物W0の外面の一部に沿った形状を有する。
ここで、例えば、第1部分411と第2部分412との間に検査対象物W0が配置された状態で、検査対象物W0に近づくように、第1可動部材411bを第1方向d1に移動させるとともに第2可動部材412bを第2方向d2に移動させると、第1挟持部材411cと第2挟持部材412cとで検査対象物W0が挟持される。これにより、例えば、第1挟持部材411cと第2挟持部材412cとによって検査対象物W0が所望の姿勢で保持され得る。第1検査部40aでは、例えば、保持部41によって検査対象物W0が第1検査用姿勢で保持され得る。第2検査部40bでは、例えば、保持部41によって検査対象物W0が第2検査用姿勢で保持され得る。
<1-1-2-2.複数の撮像モジュール>
図3(a)および図3(b)で示されるように、各撮像モジュール42は、例えば、撮像部421と、照明部422と、を有する。
撮像部421は、例えば、保持部41によって保持された検査対象物W0を撮像することができる。図3(a)および図3(b)の例では、各撮像部421は、保持部41によって所望の姿勢で保持されている検査対象物W0を予め設定された方向(撮像方向)に向かって撮像することができる。撮像部421は、例えば、撮像素子と、光学系と、を有する。撮像素子には、例えば、電荷結合素子(Charge Coupled Device:CCD)などが適用される。光学系には、例えば、撮像素子に検査対象物W0の光像を結像させるためのレンズ部などが適用される。
照明部422は、例えば、保持部41によって保持された検査対象物W0を照明することができる。図3(a)および図3(b)の例では、各照明部422は、保持部41によって所望の姿勢で保持されている検査対象物W0を予め設定された方向(照明方向)に向かって照明することができる。各照明部422には、例えば、複数の発光部が2次元的に配列された平面状の発光領域を有する照明などが適用される。これにより、例えば、各照明部422によって、検査対象物W0を広範囲にわたって照明することができる。発光部には、例えば、発光ダイオード(Light Emitting Diode:LED)が適用される。
ここで、例えば、各撮像モジュール42は、同様な構成を有する。ここでは、例えば、各撮像モジュール42において、撮像部421のレンズ部は、照明部422の孔部に挿通された状態で位置している。別の観点から言えば、例えば、撮像部421のレンズ部における光軸が、照明部422の孔部を通るように設定されている。複数の撮像モジュール42は、それぞれ異なるアングルで検査対象物W0を撮像することができる。図3(a)および図3(b)の例では、複数の撮像モジュール42は、17個の撮像モジュール42を含む。このため、図3(a)および図3(b)の例では、17個の撮像モジュール42によって、17個のアングルで検査対象物W0が撮像され得る。17個の撮像モジュール42は、1つの第1撮像モジュール42vと、8つの第2撮像モジュール42sと、8つの第3撮像モジュール42hと、を含む。
<<第1撮像モジュール>>
第1撮像モジュール42vは、第1撮像部Cv1と、第1照明部Lv1と、を含む。第1撮像部Cv1は、例えば、撮像方向としての重力方向(-Z方向)に向かって検査対象物W0を撮像することができる撮像部(天井撮像部とも上方撮像部ともいう)である。第1照明部Lv1は、例えば、照明方向としての重力方向(-Z方向)に向かって検査対象物W0を照明することができる照明部(天井照明部とも上方照明部ともいう)である。このため、例えば、第1撮像部Cv1は、重力方向(下方向)に向かって、第1照明部Lv1によって照明された検査対象物W0の少なくとも一部を被写体として撮像することができる。換言すれば、例えば、第1撮像部Cv1は、下方向に向けた1つのアングル(下方アングルともいう)で、検査対象物W0を撮像することができる。
<<第2撮像モジュール>>
各第2撮像モジュール42sでは、撮像部421が、撮像方向としての斜め下方向に向かって検査対象物W0を撮像することができ、照明部422が、照明方向としての斜め下方向に向かって検査対象物W0を照明することができる。このため、各第2撮像モジュール42sでは、例えば、撮像部421が、斜め下方向に向かって、照明部422によって照明された検査対象物W0の少なくとも一部を被写体として撮像することができる。換言すれば、各第2撮像モジュール42sでは、例えば、撮像部421は、斜め下方向に向けたアングル(斜め下方アングルともいう)で、検査対象物W0を撮像することができる。
8つの第2撮像モジュール42sは、1つ目から8つ目の第2撮像モジュール42sを含む。1つ目の第2撮像モジュール42sは、第2A撮像部Cs1と、第2A照明部Ls1と、を含む。2つ目の第2撮像モジュール42sは、第2B撮像部Cs2と、第2B照明部Ls2と、を含む。3つ目の第2撮像モジュール42sは、第2C撮像部Cs3と、第2C照明部Ls3と、を含む。4つ目の第2撮像モジュール42sは、第2D撮像部Cs4と、第2D照明部Ls4と、を含む。5つ目の第2撮像モジュール42sは、第2E撮像部Cs5と、第2E照明部Ls5と、を含む。6つ目の第2撮像モジュール42sは、第2F撮像部Cs6と、第2F照明部Ls6と、を含む。7つ目の第2撮像モジュール42sは、第2G撮像部Cs7と、第2G照明部Ls7と、を含む。8つ目の第2撮像モジュール42sは、第2H撮像部Cs8と、第2H照明部Ls8と、を含む。
また、1つ目の第2撮像モジュール42sでは、撮像方向および照明方向は、それぞれXZ平面に略平行であり且つ+X方向に進むほど-Y方向に向かう方向である。そして、2つ目から8つ目の第2撮像モジュール42sは、検査対象物W0が配される領域を通り且つZ軸方向に沿って伸びる仮想的な軸(第1仮想軸ともいう)A1を中心として、1つ目の第2撮像モジュール42sを基準に反時計回りに45度ずつ回転した位置に配されている。具体的には、第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに45度回転した位置に、2つ目の第2撮像モジュール42sが配されている。第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに90度回転した位置に、3つ目の第2撮像モジュール42sが配されている。第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに135度回転した位置に、4つ目の第2撮像モジュール42sが配されている。第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに180度回転した位置に、5つ目の第2撮像モジュール42sが配されている。第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに225度回転した位置に、6つ目の第2撮像モジュール42sが配されている。第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに270度回転した位置に、7つ目の第2撮像モジュール42sが配されている。第1仮想軸A1を中心として1つ目の第2撮像モジュール42sから反時計回りに315度回転した位置に、8つ目の第2撮像モジュール42sが配されている。このため、複数の第2撮像モジュール42sにおける複数の撮像部421(具体的には、第2A撮像部Cs1、第2B撮像部Cs2、第2C撮像部Cs3、第2D撮像部Cs4、第2E撮像部Cs5、第2F撮像部Cs6、第2G撮像部Cs7および第2H撮像部Cs8)によって、検査対象物W0を囲む相互に異なる斜め下方に向けた8つのアングル(斜め下方アングル)で、検査対象物W0を撮像することができる。
<<第3撮像モジュール>>
各第3撮像モジュール42hでは、撮像部421が、撮像方向としての略水平方向に向かって検査対象物W0を撮像することができ、照明部422が、照明方向としての略水平方向に向かって検査対象物W0を照明することができる。このため、各第3撮像モジュール42hでは、例えば、撮像部421が、略水平方向に向かって、照明部422によって照明された検査対象物W0の少なくとも一部を被写体として撮像することができる。換言すれば、各第3撮像モジュール42hでは、例えば、撮像部421は、略水平方向に向けたアングル(略水平アングルともいう)で、検査対象物W0を撮像することができる。
8つの第3撮像モジュール42hは、1つ目から8つ目の第3撮像モジュール42hを含む。1つ目の第3撮像モジュール42hは、第3A撮像部Ch1と、第3A照明部Lh1と、を含む。2つ目の第3撮像モジュール42hは、第3B撮像部Ch2と、第3B照明部Lh2と、を含む。3つ目の第3撮像モジュール42hは、第3C撮像部Ch3と、第3C照明部Lh3と、を含む。4つ目の第3撮像モジュール42hは、第3D撮像部Ch4と、第3D照明部Lh4と、を含む。5つ目の第3撮像モジュール42hは、第3E撮像部Ch5と、第3E照明部Lh5と、を含む。6つ目の第3撮像モジュール42hは、第3F撮像部Ch6と、第3F照明部Lh6と、を含む。7つ目の第3撮像モジュール42hは、第3G撮像部Ch7と、第3G照明部Lh7と、を含む。8つ目の第3撮像モジュール42hは、第3H撮像部Ch8と、第3H照明部Lh8と、を含む。また、1つ目の第3撮像モジュール42hでは、撮像方向および照明方向は、それぞれXZ平面に略平行であり且つ+X方向から重力方向に5度傾斜した方向である。
そして、2つ目から8つ目の第3撮像モジュール42hは、検査対象物W0が配される領域を通り且つZ軸方向に沿って伸びる第1仮想軸A1を中心として、1つ目の第3撮像モジュール42hを基準に反時計回りに45度ずつ回転した位置に配されている。具体的には、第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに45度回転した位置に、2つ目の第3撮像モジュール42hが配されている。第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに90度回転した位置に、3つ目の第3撮像モジュール42hが配されている。第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに135度回転した位置に、4つ目の第3撮像モジュール42hが配されている。第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに180度回転した位置に、5つ目の第3撮像モジュール42hが配されている。第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに225度回転した位置に、6つ目の第3撮像モジュール42hが配されている。第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに270度回転した位置に、7つ目の第3撮像モジュール42hが配されている。第1仮想軸A1を中心として1つ目の第3撮像モジュール42hから反時計回りに315度回転した位置に、8つ目の第3撮像モジュール42hが配されている。このため、複数の第3撮像モジュール42hにおける複数の撮像部421(具体的には、第3A撮像部Ch1、第3B撮像部Ch2、第3C撮像部Ch3、第3D撮像部Ch4、第3E撮像部Ch5、第3F撮像部Ch6、第3G撮像部Ch7および第3H撮像部Ch8)によって、検査対象物W0を囲む相互に異なる略水平方向に向けた8つのアングル(略水平アングル)で、検査対象物W0を撮像することができる。
ここで、各撮像部421における撮像で得られる画像データは、例えば、制御装置70の記憶部に記憶されてもよいし、検査装置2の外部の装置(外部装置ともいう)に通信回線などを介して送信されてもよい。そして、例えば、制御装置70または外部装置では、画像データを用いた各種の画像処理などによって検査対象物W0の欠陥の有無を検出する検査が行われ得る。ここで、外部装置には、例えば、情報処理装置1などが含まれ得る。
<1-2.情報処理装置>
<1-2-1.情報処理装置の概略的な構成>
図4は、第1実施形態に係る情報処理装置1の電気的な構成の一例を示すブロック図である。図4で示されるように、情報処理装置1は、例えば、コンピュータなどで実現される。情報処理装置1は、例えば、バスライン1bを介して接続された、通信部11、入力部12、出力部13、記憶部14、制御部15およびドライブ16を備えている。
通信部11は、例えば、通信回線などを介して外部の装置との間でデータ通信を行うことができる機能を有する。この通信部11は、例えば、プログラム14pおよび各種データ14dなどを受信することができる。
入力部12は、例えば、情報処理装置1を使用するユーザの動作などに応答して情報の入力を受け付けることができる機能を有する。入力部12には、例えば、操作部、マイクおよび各種センサなどが含まれ得る。操作部は、例えば、ユーザの操作に応じた信号を入力することができるマウスおよびキーボードなどを含み得る。マイクは、例えば、ユーザの音声に応じた信号を入力することができる。各種センサは、例えば、ユーザの動きに応じた信号を入力することができる。
出力部13は、例えば、各種情報をユーザが認識可能な態様で出力することができる機能を有する。出力部13には、例えば、表示部、プロジェクタおよびスピーカなどが含まれ得る。表示部は、例えば、各種情報をユーザが認識可能な態様で可視的に出力することができる。表示部には、例えば、液晶ディスプレイまたは有機ELディスプレイなどが適用され得る。表示部は、入力部12と一体化されたタッチパネルの形態を有していてもよい。プロジェクタは、例えば、各種情報をユーザが認識可能な態様でスクリーンなどの被投影物上に可視的に出力させることができる。プロジェクタと被投影物とが協働して各種情報をユーザが認識可能な態様で可視的に出力する表示部として機能し得る。スピーカは、例えば、各種情報をユーザが認識可能な態様で可聴的に出力することができる。
記憶部14は、例えば、各種情報を記憶することができる機能を有する。この記憶部14は、例えば、ハードディスクまたはフラッシュメモリなどの不揮発性の記憶媒体で構成され得る。記憶部14では、例えば、1つの記憶媒体を有する構成、2つ以上の記憶媒体を一体的に有する構成、および2つ以上の記憶媒体を2つ以上の部分に分けて有する構成の何れが採用されてもよい。記憶部14には、例えば、プログラム14pおよび各種データ14dが記憶され得る。各種データ14dには、3次元モデル情報と、位置姿勢情報と、が含まれ得る。3次元モデル情報は、例えば、検査対象物W0についての3次元形状のモデル(3次元モデルともいう)3dmに係る情報である。位置姿勢情報は、例えば、検査装置2における撮像部421および検査対象物W0についての位置および姿勢に係る情報である。各種データ14dには、例えば、各撮像部421についての参照画像に係る情報が含まれていてもよい。参照画像は、例えば、撮像部421による検査対象物W0の撮像で得られた画像に係る情報である。各撮像部421について、例えば、参照画像は、検査部40の保持部41によって所望の姿勢で保持された検査対象物W0を、事前に撮像部421を用いて撮像することで取得され得る。各種データ14dには、例えば、各撮像部421が撮像可能な領域を規定する画角や焦点距離などのパラメータに係る情報(撮像パラメータ情報ともいう)が含まれていてもよい。
3次元モデル情報には、例えば、検査対象物W0の3次元形状についての設計上のデータ(物体設計データともいう)などが適用される。物体設計データには、例えば、検査対象物W0の3次元形状を複数のポリゴンなどの複数の平面で表現したデータが適用される。このデータには、例えば、各平面の位置および向きを規定するデータが含まれる。複数の平面には、例えば、三角形状の平面などが適用される。各平面の位置を規定するデータには、例えば、平面の外形を規定する3つ以上の頂点の座標のデータなどが適用される。各平面の向きを規定するデータには、例えば、平面の法線が延びる方向(法線方向ともいう)を示すベクトル(法線ベクトルともいう)のデータなどが適用される。3次元モデル情報においては、図5で示されるように、検査対象物W0の3次元モデル3dmの位置および姿勢は、例えば、検査部40において検査対象物W0が配される領域の基準位置(第1基準位置ともいう)P1に対応する位置を原点とした、xyz座標系(3次元モデル座標系)を用いて示され得る。具体的には、例えば、検査対象物W0の3次元モデル3dmの位置は、x座標、y座標およびz座標で示され、検査対象物W0の3次元モデル3dmの姿勢は、x軸を中心とした回転角Rx、y軸を中心とした回転角Ry、およびz軸を中心とした回転角Rzで示され得る。
位置姿勢情報には、例えば、検査部40の保持部41によって所望の姿勢で保持される検査対象物W0と、検査部40の各撮像部421と、の間における相対的な位置の関係、相対的な角度の関係および相対的な姿勢の関係などが明らかとなる設計上の情報などが適用され得る。例えば、図5で示されるように、位置姿勢情報には、検査部40において検査対象物W0が配される領域の基準位置(第1基準位置)P1の座標の情報、各撮像部421についての基準位置(第2基準位置ともいう)P2の座標の情報、第1基準位置P1に対応する基準点を原点とするxyz座標系(3次元モデル座標系)の情報、および各撮像部421についての第2基準位置P2に対応する基準点を原点とするx’y’z’座標系(カメラ座標系)の情報などが含まれ得る。ここでは、例えば、各撮像部421に係るx’y’z’座標系のz’軸は、撮像部421の光学系の光軸に沿った軸であり、第1基準位置P1を通るように設定される。ここで、例えば、第1撮像部Cv1について、xyz座標系のz軸とx’y’z’座標系のz’軸とが同一直線上に位置し且つ向きが逆の関係を有し、x軸とx’軸とが互いに平行で且つ向きが同一の関係を有し、y軸とy’軸とが互いに平行で且つ向きが同一の関係を有するように設定される。
制御部15は、例えば、プロセッサとして働く演算処理部15aおよび情報を一時的に記憶することができるメモリ15bなどを含む。演算処理部15aには、例えば、中央演算部(CPU)などの電気回路が適用される。この場合、演算処理部15aは、例えば、1つ以上のプロセッサを有する。メモリ15bには、例えば、ランダムアクセスメモリ(RAM)などが適用される。演算処理部15aでは、例えば、記憶部14に記憶されているプログラム14pが読み込まれて実行される。これにより、情報処理装置1は、例えば、各種の画像処理を行う装置(画像処理装置ともいう)100として機能し得る。換言すれば、例えば、プログラム14pが情報処理装置1に含まれる演算処理部15aによって実行されることで、情報処理装置1を画像処理装置100として機能させることができる。画像処理装置100は、例えば、図1から図3(b)で示された検査装置2の検査部40において所定のアングルで検査対象物W0を撮像することで取得され得る画像(撮像画像ともいう)について、検査対象物W0のうちの検査の対象となる部分が捉えられるものと予想される領域(検査画像領域ともいう)を指定する情報(領域指定情報ともいう)を作成することができる。例えば、画像処理装置100では、同一の設計に基づく複数の検査対象物W0について連続的な検査を行う前、あるいは連続的な検査の初期段階において、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査の対象となる部分が捉えられるものと予想される領域(検査画像領域)を指定する領域指定情報が作成されてもよいし、1つ以上の検査対象物W0について検査を行う前、あるいは検査の際において、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査の対象となる部分が捉えられるものと予想される領域(検査画像領域)を指定する領域指定情報が作成されてもよい。制御部15における各種情報処理によって一時的に得られる各種情報は、適宜メモリ15bなどに記憶され得る。
ドライブ16は、例えば、可搬性の記憶媒体16mの脱着が可能な部分である。ドライブ16では、例えば、記憶媒体16mが装着されている状態で、この記憶媒体16mと制御部15との間におけるデータの授受が行われ得る。ここで、例えば、プログラム14pが記憶された記憶媒体16mがドライブ16に装着されることで、記憶媒体16mから記憶部14内にプログラム14pが読み込まれて記憶されてもよい。また、例えば、各種データ14dまたは各種データ14dの一部のデータが記憶された記憶媒体16mがドライブ16に装着されることで、記憶媒体16mから記憶部14内に各種データ14dまたは各種データ14dの一部のデータが読み込まれて記憶されてもよい。各種データ14dの一部のデータには、例えば、3次元モデル情報が含まれてもよいし、位置姿勢情報が含まれていてもよい。
<1-2-2.画像処理装置の機能的な構成>
図6は、演算処理部15aで実現される機能的な構成を例示するブロック図である。図6には、演算処理部15aでプログラム14pの実行によって実現されるデータ処理に係る各種機能が例示されている。
図6で示されるように、演算処理部15aは、実現される機能的な構成として、例えば、第1取得部151と、第2取得部152と、指定部153と、出力制御部154と、設定部155と、を有する。これらの各部の処理におけるワークスペースとして、例えば、メモリ15bが使用される。演算処理部15aで実現される機能的な構成の少なくとも一部の機能は、例えば、専用の電子回路などのハードウェアで構成されてもよい。
<1-2-2-1.第1取得部>
第1取得部151は、例えば、検査対象物W0の3次元モデル3dmに係る情報(3次元モデル情報)と、検査対象物W0の3次元モデル3dmにおける検査の対象となる部分の領域(検査領域ともいう)に係る情報(検査領域情報ともいう)と、を取得する機能を有する。ここでは、第1取得部151は、例えば、記憶部14に記憶された3次元モデル情報を取得することができる。
図7(a)は、検査対象物W0の3次元モデル3dmの第1例を示す図である。図7(a)の例では、3次元モデル3dmは、2つの円柱が積層されたような形状を有する。図8(a)は、検査対象物W0の3次元モデル3dmの第2例を示す図である。図8(a)の例では、3次元モデル3dmは、四角錐状の形状を有する。
第1実施形態では、例えば、第1取得部151は、3次元モデル3dmを構成する複数の平面の向きに係る情報と、複数の平面における平面の連結状態と、に基づいて、3次元モデル3dmの表面を複数の領域(単位検査領域ともいう)に区分することで、検査領域情報を取得することができる。これにより、例えば、3次元モデル3dmにおける検査領域情報が容易に取得され得る。検査領域情報には、例えば、検査対象物W0の3次元モデル3dmの表面について区分された複数の単位検査領域を特定するための情報が適用される。ここで、例えば、3次元モデル情報と検査領域情報との組は、表面が複数の単位検査領域に区分された3次元モデル3dmについての情報の役割を果たす。
第1実施形態では、例えば、第1取得部151によって、第1領域区分処理と、第2領域区分処理と、がこの記載の順に行われ得る。第1領域区分処理は、例えば、3次元モデル3dmを構成する複数の平面の向きに係る情報に基づいて、3次元モデル3dmの表面を複数の領域に区分する処理である。各平面の向きに係る情報としては、例えば、平面の法線ベクトルが用いられる。第2領域区分処理は、例えば、第1領域区分処理で複数の領域に区分された3次元モデル3dmの表面を、3次元モデル3dmを構成する複数の平面における平面の連結状態に基づいて、さらに複数の領域に区分する処理である。
<<第1領域区分処理>>
第1領域区分処理では、例えば、所定のルール(区分ルールともいう)に従って、3次元モデル3dmの表面が複数の領域に区分される。区分ルールとしては、例えば、法線ベクトルの方向が所定範囲内の方向にある平面が所定領域に属するものとされるルールが考えられる。例えば、3次元モデル3dmの表面が、重力方向とは反対の方向(上方向ともいう)を向いた面の領域(上面領域ともいう)と、水平方向に沿った方向を向いた面の領域(側面領域ともいう)と、重力方向(下方向ともいう)を向いた面の領域(下面領域ともいう)と、に区分されるルールが考えられる。換言すれば、例えば、3次元モデル3dmの表面が、3つの領域としての、上面領域、側面領域および下面領域に区分される区分ルールが考えられる。ここでは、例えば、法線ベクトルの方向が上方向(+z方向)を基準として第1の角度(例えば、45度)以内の傾きの範囲(第1所定範囲ともいう)内にある平面が、第1所定領域としての上面領域に属するものとされ、法線ベクトルの方向が下方向(-z方向)を基準として第2の角度(例えば、45度)以内の傾きの範囲(第2所定範囲ともいう)内にある平面が、第2所定領域としての下面領域に属するものとされ、法線ベクトルの方向が、第1所定範囲および第2所定範囲の何れにも重ならない残余の範囲(第3所定範囲ともいう)内にある平面が、第3所定領域としての側面領域に属するものとされる区分ルールが考えられる。
図7(b)は、第1領域区分処理によって複数の領域に区分された3次元モデル3dmの表面の第1例を示す図である。図7(b)には、図7(a)で示された3次元モデル3dmの表面を構成する複数の平面が、上面領域Ar1と、下面領域Ar2と、側面領域Ar3と、に区分された状態が例示されている。
第1領域区分処理における区分ルールには、例えば、他のルールが適用されてもよい。例えば、3次元モデル3dmの表面が、上方向を向いた面の領域(上面領域)と、斜め上方向を向いた面の領域(斜め上面領域ともいう)と、水平方向に沿った方向を向いた面の領域(側面領域)と、斜め下方向を向いた面の領域(斜め下面領域ともいう)と、下方向を向いた面の領域(下面領域)と、に区分される区分ルールが考えられる。換言すれば、例えば、3次元モデル3dmの表面が、5つの領域としての、上面領域、斜め上面領域、側面領域、斜め下面領域および下面領域に区分される区分ルールが考えられる。ここでは、例えば、法線ベクトルの方向が上方向(+z方向)を基準として第3の角度(例えば、30度)未満の傾きの範囲(第4所定範囲ともいう)内にある平面が、第4所定領域としての上面領域に属するものとされ、法線ベクトルの方向が上方向(+z方向)を基準として第3の角度(例えば、30度)から第4の角度(例えば、60度)の傾きの範囲(第5所定範囲ともいう)内にある平面が、第5所定領域としての斜め上面領域に属するものとされ、法線ベクトルの方向が下方向(-z方向)を基準として第5の角度(例えば、30度)未満の傾きの範囲(第6所定範囲ともいう)内にある平面が、第6所定領域としての下面領域に属するものとされ、法線ベクトルの方向が下方向(-z方向)を基準として第5の角度(例えば、30度)から第6の角度(例えば、60度)の傾きの範囲(第7所定範囲ともいう)内にある平面が、第7所定領域としての斜め下面領域に属するものとされ、法線ベクトルの方向が、第4所定範囲から第7所定範囲の何れにも重ならない残余の範囲(第8所定範囲ともいう)内にある平面が、第8所定領域としての側面領域に属するものとされる区分ルールが考えられる。
図8(b)は、第1領域区分処理によって複数の領域に区分された3次元モデル3dmの表面の第2例を示す図である。図8(b)には、図8(a)で示された3次元モデル3dmの表面を構成する複数の平面が、上面領域と、斜め上面領域と、下面領域と、斜め下面領域と、側面領域と、に区分された状態が例示されている。具体的には、図8(b)では、図8(a)で示された3次元モデル3dmの表面を構成する複数の平面が、斜め上面領域Ar5と、下面領域Ar6と、に区分された状態が示されている。
<<第2領域区分処理>>
第2領域区分処理では、例えば、第1領域区分処理によって得られた各領域について、3次元モデル3dmにおいて連結している領域が1つの塊の領域として区分され得る。換言すれば、第1領域区分処理によって得られた各領域について、3次元モデル3dmにおいて連結していない領域が、別の単位検査領域に区分される。これにより、例えば、3次元モデル3dmにおけるより細かい検査領域情報が容易に取得され得る。図7(c)は、第2領域区分処理によって複数の領域に分割された3次元モデル3dmの表面の第1例を示す図である。図7(c)には、図7(b)で示された上面領域Ar1が、相互に連結していない第1上面領域Ar1aと第2上面領域Ar1bとに区分され、図7(b)で示された側面領域Ar3が、相互に連結していない第1側面領域Ar3aと第2側面領域Ar3bとに区分された状態が例示されている。換言すれば、図7(c)には、図7(a)で示された3次元モデル3dmの表面が、5つの単位検査領域としての、第1上面領域Ar1a、第2上面領域Ar1b、下面領域Ar2、第1側面領域Ar3aおよび第2側面領域Ar3bに区分された状態の一例が示されている。
<1-2-2-2.第2取得部>
第2取得部152は、例えば、検査装置2における撮像部421および検査対象物W0についての位置および姿勢に係る情報(位置姿勢情報)を取得する機能を有する。ここでは、第2取得部152は、例えば、記憶部14に記憶された位置姿勢情報を取得することができる。
<1-2-2-3.指定部>
指定部153は、例えば、第1取得部151によって取得された3次元モデル情報および検査領域情報と、第2取得部152によって取得された位置姿勢情報と、に基づいて、各撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報を作成することができる。第1実施形態では、指定部153によって、例えば、[A]第1モデル画像Im1の生成、[B]複数の第2モデル画像Im2の生成、[C]1つのモデル画像の検出、および[D]撮影画像についての領域指定情報の作成、の処理が行われる。
<<[A]第1モデル画像Im1の生成>>
指定部153は、例えば、3次元モデル情報と位置姿勢情報とに基づいて、各撮像部421によって検査対象物W0を仮想的に捉えた画像(第1モデル画像ともいう)Im1を生成することができる。ここでは、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。
ここで、例えば、図5で示されたxyz座標系(3次元モデル座標系)とx’y’z’座標系(カメラ座標系)との関係を用いて、図3(a)および図3(b)の例における各撮像部421によって3次元モデル3dmを仮想的に捉えた第1モデル画像Im1を生成する場合について説明する。ここでは、例えば、3次元モデル3dmのxyz座標系(3次元モデル座標系)における位置および姿勢を(x,y,z,Rx,Ry,Rz)=(0,0,0,0,0,0)とし、x’y’z’座標系(カメラ座標系)について、x’軸を中心とした回転角をRx’とし、y’軸を中心とした回転角をRy’とし、z’軸を中心とした回転角をRz’とする。
図3(a)および図3(b)の例における第1撮像部Cv1について、図5で示されるように、xyz座標系(3次元モデル座標系)の原点とx’y’z’座標系(カメラ座標系)の原点との設計上の距離(原点間距離ともいう)をDvとする場合を想定する。この場合には、例えば、xyz座標系(3次元モデル座標系)とx’y’z’座標系(カメラ座標系)との間で、x’=x、y’=y、z’=(Dv-z)、Rx’=Rx、Ry’=RyおよびRz’=Rzの関係が成立する。このため、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータは、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dv,0,0,0)となる。このパラメータは、例えば、第1撮像部Cv1の位置および姿勢と3次元モデル3dmの位置および姿勢との設計上の関係を示すパラメータ(位置姿勢パラメータともいう)としての役割を果たし得る。この位置姿勢パラメータは、例えば、回転角Rz’、回転角Ry’および回転角Rx’の回転がこの記載の順に行われることで、xyz座標系(3次元モデル座標系)における3次元モデル3dmの姿勢が、x’y’z’座標系(カメラ座標系)における3次元モデル3dmの姿勢に変換され得ることを示している。また、この位置姿勢パラメータは、例えば、x’座標、y’座標およびz’座標の数値に基づいて、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置が、x’y’z’座標系(カメラ座標系)における3次元モデル3dmの位置に変換され得ることを示している。
図3(a)および図3(b)の例における第2A撮像部Cs1については、設計上の原点間距離がDs1であれば、3次元モデル3dmのx’y’z’座標系における位置および姿勢を示すパラメータは、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds1,-45,0,90)となる。このパラメータは、例えば、第2A撮像部Cs1の位置および姿勢と3次元モデル3dmの位置および姿勢との設計上の関係を示すパラメータ(位置姿勢パラメータ)としての役割を果たし得る。この位置姿勢パラメータは、例えば、回転角Rz’、回転角Ry’および回転角Rx’の回転がこの記載の順に行われることで、xyz座標系(3次元モデル座標系)における3次元モデル3dmの姿勢が、x’y’z’座標系(カメラ座標系)における3次元モデル3dmの姿勢に変換され得ることを示している。また、この位置姿勢パラメータは、例えば、x’座標、y’座標およびz’座標の数値に基づいて、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置が、x’y’z’座標系(カメラ座標系)における3次元モデル3dmの位置に変換され得ることを示している。
図3(a)および図3(b)の例における第2B撮像部Cs2については、設計上の原点間距離がDs2であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds2,-45,0,45)となる。図3(a)および図3(b)の例における第2C撮像部Cs3については、設計上の原点間距離がDs3であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds3,-45,0,0)となる。図3(a)および図3(b)の例における第2D撮像部Cs4については、設計上の原点間距離がDs4であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds4,-45,0,-45)となる。図3(a)および図3(b)の例における第2E撮像部Cs5については、設計上の原点間距離がDs5であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds5,-45,0,-90)となる。図3(a)および図3(b)の例における第2F撮像部Cs6については、設計上の原点間距離がDs6であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds6,-45,0,-135)となる。図3(a)および図3(b)の例における第2G撮像部Cs7については、設計上の原点間距離がDs7であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds7,-45,0,180)となる。図3(a)および図3(b)の例における第2H撮像部Cs8については、設計上の原点間距離がDs8であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds8,-45,0,135)となる。
図3(a)および図3(b)の例における第3A撮像部Ch1については、設計上の原点間距離がDh1であれば、3次元モデル3dmのx’y’z’座標系における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh1,-85,0,90)となる。このパラメータは、例えば、第3A撮像部Ch1の位置および姿勢と3次元モデル3dmの位置および姿勢との設計上の関係を示すパラメータ(位置姿勢パラメータ)としての役割を果たし得る。この位置姿勢パラメータも、例えば、回転角Rz’、回転角Ry’および回転角Rx’の回転がこの記載の順に行われることで、xyz座標系(3次元モデル座標系)における3次元モデルの姿勢が、x’y’z’座標系(カメラ座標系)における3次元モデルの姿勢に変換され得ること、を示している。また、この位置姿勢パラメータは、例えば、x’座標、y’座標およびz’座標の数値に基づいて、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置が、x’y’z’座標系(カメラ座標系)における3次元モデル3dmの位置に変換され得ることを示している。
図3(a)および図3(b)の例における第3B撮像部Ch2については、設計上の原点間距離がDh2であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh2,-85,0,45)となる。図3(a)および図3(b)の例における第3C撮像部Ch3については、設計上の原点間距離がDh3であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh3,-85,0,0)となる。図3(a)および図3(b)の例における第3D撮像部Ch4については、設計上の原点間距離がDh4であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh4,-85,0,-45)となる。図3(a)および図3(b)の例における第3E撮像部Ch5については、設計上の原点間距離がDh5であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh5,-85,0,-90)となる。図3(a)および図3(b)の例における第3F撮像部Ch6については、設計上の原点間距離がDh6であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh6,-85,0,-135)となる。図3(a)および図3(b)の例における第3G撮像部Ch7については、設計上の原点間距離がDh7であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh7,-85,0,180)となる。図3(a)および図3(b)の例における第3H撮像部Ch8については、設計上の原点間距離がDh8であれば、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータ(位置姿勢パラメータ)は、(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Dh8,-85,0,135)となる。
ここでは、例えば、各撮像部421について、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢に係るパラメータ(位置姿勢パラメータ)と、3次元モデル情報と、に基づいて、撮像部421によって3次元モデル3dmを仮想的に捉えた第1モデル画像Im1が生成され得る。このとき、例えば、位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmが2次元平面に投影されることで、第1モデル画像Im1が生成され得る。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmが2次元平面に投影される。このとき、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。第1モデル画像Im1には、例えば、3次元モデル3dmの輪郭に対応する部分が所定の種類の線(第1輪郭線ともいう)Ln1で描かれた線画などが適用され得る。第1モデル画像Im1では、例えば、3次元モデル3dmのうちの外縁および角部に対応する部分が第1輪郭線Ln1とされる。第1輪郭線Ln1は、例えば、2点鎖線、1点鎖線、破線、太線および細線などの何れの線であってもよい。図9(a)は、第1モデル画像Im1の一例を示す図である。図9(a)には、第2A撮像部Cs1に係る第1モデル画像Im1の一例が示されている。
また、第1実施形態では、指定部153は、例えば、記憶部14に記憶された各撮像部421に係る参照画像を取得することができる。図9(b)は、参照画像Ir1の一例を示す図である。図9(b)には、第2A撮像部Cs1に係る参照画像Ir1の一例が示されている。図10は、第1モデル画像Im1と参照画像Ir1とを重畳させた画像(第1重畳画像ともいう)Io1の一例を示す図である。図10には、図9(a)で示された第1モデル画像Im1と、図9(b)で示された参照画像Ir1と、を重畳させた第1重畳画像Io1の一例が示されている。ここでは、第1モデル画像Im1の外縁と参照画像Ir1の外縁とが一致するように、第1モデル画像Im1と参照画像Ir1とが重畳されている。例えば、図10で示されるように、第1モデル画像Im1における3次元モデル3dmの輪郭に対応する第1輪郭線Ln1と、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す線(第2輪郭線ともいう)Ln2と、の間でズレが生じている場合がある。参照画像Ir1では、例えば、検査対象物W0のうちの外縁および角部に対応する部分が第2輪郭線Ln2とされる。このような第1輪郭線Ln1と第2輪郭線Ln2とのズレは、例えば、各撮像部421および検査対象物W0の設計上の位置および姿勢と、検査部40における各撮像部421および検査対象物W0の実際の位置および姿勢と、の間における誤差などに起因して生じ得る。具体的には、このズレを生じる誤差としては、例えば、各撮像部421のx’y’z’座標系(カメラ座標系)における設計上の原点の位置と各撮像部421の実際の第2基準位置P2との間における誤差、およびxyz座標系(3次元モデル座標系)における設計上の原点の位置と検査対象物W0に係る実際の第1基準位置P1との間における誤差などが挙げられる。また、このズレを生じる誤差には、例えば、各撮像部421のx’y’z’座標系(カメラ座標系)で規定される設計上の姿勢と各撮像部421の実際の姿勢との間における誤差、および各撮像部421についての設計上の原点間距離Dv,Ds1~Ds8,Dh1~Dh8と第1基準位置P1と第2基準位置P2との実際の距離との間における誤差などが含まれ得る。
<<[B]複数の第2モデル画像Im2の生成>>
指定部153は、例えば、各撮像部421について、3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータを、第1モデル画像Im1の生成に用いられた位置姿勢パラメータ(第1位置姿勢パラメータともいう)を基準として所定のルールで変更させつつ撮像部421によって検査対象物W0を仮想的に捉えた複数のモデル画像(第2モデル画像ともいう)Im2をそれぞれ生成することができる。ここでも、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。
例えば、各撮像部421について、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置姿勢パラメータとしての(x’,y’,z’,Rx’,Ry’,Rz’)が、第1モデル画像Im1の生成に用いられた3次元モデル3dmのカメラ座標系における位置姿勢パラメータ(第1位置姿勢パラメータ)が基準とされて所定のルールで変更させられつつ、第2モデル画像Im2がそれぞれ生成される。所定のルールには、例えば、位置姿勢パラメータとしての(x’,y’,z’,Rx’,Ry’,Rz’)のうちの少なくとも1つ以上の値が少しずつ変更されるルールが採用される。具体的には、所定のルールとして、例えば、z’座標、回転角Rx’,回転角Ry’および回転角Rz’の各値が少しずつ変更されるルールが採用される。
例えば、図3(a)および図3(b)の例における第2A撮像部Cs1については、3次元モデル3dmのx’y’z’座標系における位置および姿勢に係る第1位置姿勢パラメータとしての(x’,y’,z’,Rx’,Ry’,Rz’)=(0,0,Ds1,-45,0,90)が基準とされて、z’座標、回転角Rx’,回転角Ry’および回転角Rz’の各値が少しずつ変更されながら、それぞれ第2モデル画像Im2が生成される。ここでは、例えば、z’座標についての基準値(例えば、Ds1)に対する許容範囲(距離許容範囲ともいう)と、回転角Rx’についての基準値(例えば、-45)に対する許容範囲(第1回転許容範囲ともいう)と、回転角Ry’についての基準値(例えば、0)に対する許容範囲(第2回転許容範囲ともいう)と、回転角Rz’についての基準値(例えば、90)に対する許容範囲(第3回転許容範囲ともいう)と、が設定される。距離許容範囲、第1回転許容範囲、第2回転許容範囲および第3回転許容範囲のそれぞれは、予め比較的狭い範囲に設定され得る。距離許容範囲は、例えば、基準値に対する±10mmから±30mm程度の範囲などに設定され得る。第1回転許容範囲、第2回転許容範囲および第3回転許容範囲のそれぞれは、基準値に対する±1(度)から±3(度)程度の範囲に設定され得る。距離許容範囲、第1回転許容範囲、第2回転許容範囲および第3回転許容範囲のそれぞれは、例えば、適宜に変更可能であってもよい。z’座標、回転角Rx’、回転角Ry’および回転角Rz’の各値を少しずつ変更するピッチは、予め設定され得る。z’座標についての変更のピッチは、例えば、0.5mmから2mm程度に設定され得る。回転角Rx’、回転角Ry’および回転角Rz’のそれぞれについての変更のピッチは、例えば、0.1(度)から0.5(度)程度に設定され得る。
そして、例えば、各撮像部421について、複数の変更後の3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータと、3次元モデル情報と、に基づいて、複数の第2モデル画像Im2が生成される。ここでは、例えば、変更後の位置姿勢パラメータによって、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmが2次元平面に投影されることで、第2モデル画像Im2が生成され得る。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmが2次元平面に投影される。このとき、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。第2モデル画像Im2には、例えば、第1モデル画像Im1と同様に、3次元モデル3dmの輪郭に対応する部分が所定の種類の第1輪郭線Ln1で描かれた線画などが適用され得る。第2モデル画像Im2でも、第1モデル画像Im1と同様に、例えば、3次元モデル3dmのうちの外縁および角部に対応する部分が第1輪郭線Ln1とされる。図11(a)は、第2モデル画像Im2の一例を示す図である。図11(a)には、第2A撮像部Cs1に係る第2モデル画像Im2の一例が示されている。
<<[C]1つのモデル画像の検出>>
指定部153は、例えば、各撮像部421について、第1モデル画像Im1および複数の第2モデル画像Im2のそれぞれにおける3次元モデル3dmに対応する部分と、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の一致度に応じて、第1モデル画像Im1および複数の第2モデル画像Im2のうちの1つのモデル画像を検出することができる。
第1モデル画像Im1および複数の第2モデル画像Im2のそれぞれにおける3次元モデル3dmに対応する部分は、例えば、3次元モデル3dmの輪郭に対応する部分を示す第1輪郭線Ln1で示される。参照画像Ir1における検査対象物W0に対応する部分は、例えば、検査対象物W0の輪郭に対応する部分を示す輪郭線Ln2で示される。一致度としては、例えば、参照画像Ir1と、第1モデル画像Im1および複数の第2モデル画像Im2のそれぞれと、を画像の外縁が合致するように重畳させた場合における、第2輪郭線Ln2に対する第1輪郭線Ln1の一致の程度が適用される。ここでは、例えば、参照画像Ir1における第2輪郭線Ln2がソーベルフィルタ(Sobel filter)などを用いて抽出された上で、参照画像Ir1に、第1モデル画像Im1および複数の第2モデル画像Im2のそれぞれが重畳させられる。図11(b)は、参照画像Ir1と第2モデル画像Im2とを重畳させた画像(第2重畳画像ともいう)Io2の一例を示す図である。図11(b)には、図9(b)で示された参照画像Ir1と、図11(a)で示された第2モデル画像Im2と、を重畳させた第2重畳画像Io2の一例が示されている。ここでは、例えば、第1モデル画像Im1について、第1重畳画像Io1において第1輪郭線Ln1と第2輪郭線Ln2とが重なっている部分の画素数が一致度として算出され得る。また、例えば、各第2モデル画像Im2について、第2重畳画像Io2において第1輪郭線Ln1と第2輪郭線Ln2とが重なっている部分の画素数が一致度として算出され得る。
そして、ここでは、各撮像部421について、第1モデル画像Im1および複数の第2モデル画像Im2のうちの一致度に応じて検出される1つのモデル画像として、例えば、算出された一致度が最も高いモデル画像が検出される態様が考えられる。これにより、例えば、第1輪郭線Ln1と第2輪郭線Ln2とのズレを低減するような補正の処理(マッチング処理ともいう)が実現され得る。
<<[D]撮影画像についての領域指定情報の作成>>
指定部153は、例えば、各撮像部421について、検出された1つのモデル画像の生成に用いられた3次元モデル3dmの位置および姿勢に係るパラメータ(位置姿勢パラメータ)と、3次元モデル情報および検査領域情報とに基づいて、撮像画像に対する検査画像領域を指定する領域指定情報を作成することができる。なお、ここで、検出された1つのモデル画像の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータは、例えば、上記のマッチング処理によって得られた位置姿勢パラメータであると言える。また、ここで、例えば、3次元モデル情報と検査領域情報との組は、表面が複数の単位検査領域に区分された3次元モデル3dmの情報の役割を果たす。
ここでは、例えば、各撮像部421について、検出された1つのモデル画像の生成に用いられた位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影される。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmの複数の単位検査領域が2次元平面に投影される。このとき、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。また、このとき、例えば、前面に存在する部分で隠れる面を消去する隠れ面消去の処理が行われるとともに、複数の単位検査領域がそれぞれ投影された複数の画像領域が相互に区別可能な状態とされる。相互に区別可能な状態としては、例えば、複数の単位検査領域がそれぞれ投影された複数の画像領域に対して、互いに異なる色またはハッチングなどが指定されている状態などが考えられる。
上記投影で生成される画像(投影画像ともいう)は、例えば、撮像部421で検査対象物W0の撮像を行った場合に取得され得る画像(撮像画像)において複数の単位検査領域に対応する複数の検査の対象となる部分がそれぞれ捉えられるものと予想される複数の領域(検査画像領域ともいう)が指定された画像(領域指定画像ともいう)Is1となる。ここでは、例えば、領域指定画像Is1が、領域指定情報の一例としての役割を有する。図12は、領域指定画像Is1の一例を示す図である。図12には、図7(c)で示された表面が複数の領域に区分された3次元モデル3dmの投影によって生成される領域指定画像Is1の一例が示されている。図12の領域指定画像Is1では、第1上面領域Ar1aに対応する検査画像領域(第1検査画像領域ともいう)A11、第2上面領域Ar1bに対応する検査画像領域(第2検査画像領域ともいう)A12、第1側面領域Ar3aに対応する検査画像領域(第3検査画像領域ともいう)A31、および第2側面領域Ar3bに対応する検査画像領域(第4検査画像領域ともいう)A32が示されている。
このようにして、例えば、各撮像部421について、設計上の3次元モデル情報および位置姿勢情報に基づいて生成された、撮像部421が3次元モデルを仮想的に捉えた第1モデル画像Im1における3次元モデル3dmに対応する部分と、事前に撮像部421で得られた参照画像Ir1における検査対象物W0に対応する部分と、の間にズレが生じている場合であっても、このズレが低減されるように自動的な補正が行われて、撮像画像に対する検査画像領域を指定する領域指定情報が作成され得る。その結果、例えば、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される領域(検査画像領域)が効率良く指定され得る。
<1-2-2-4.出力制御部>
出力制御部154は、例えば、出力部13によって、各種情報をユーザが認識可能な態様で出力させることができる。例えば、出力制御部154は、指定部153で作成された領域指定情報によって指定された検査画像領域に係る情報を出力部13によって可視的に出力させてもよい。例えば、各撮像部421について、図12で示されたような領域指定画像Is1が、出力部13によって表示される態様が考えられる。これにより、ユーザは、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について指定された検査画像領域を確認することができる。
<1-2-2-5.設定部>
設定部155は、例えば、指定部153で作成された領域指定情報によって指定された検査画像領域に係る情報が出力部13によって可視的に出力された状態で、ユーザの動作に応答して入力部12で受け付けられた情報に応じて、検査画像領域に対して検査条件を設定することができる。これにより、例えば、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について指定された検査画像領域に対して、ユーザが容易に検査条件を設定することができる。
ここでは、例えば、出力部13によって表示される画面(検査条件設定画面ともいう)Ss1において、検査画像領域に対して検査条件を設定することができる態様が考えられる。図13は、検査条件設定画面Ss1の一例を示す図である。図13の例では、検査条件設定画面Ss1は、図12で示されたような領域指定画像Is1を含む。検査条件設定画面Ss1には、領域指定画像Is1がそのまま含まれていてもよいし、領域指定画像Is1にトリミングなどの各種画像処理が施されることで生成される画像が含まれていてもよい。換言すれば、検査条件設定画面Ss1は、例えば、指定部153で作成された領域指定情報によって指定された検査画像領域に係る情報を含んでいればよい。検査条件設定画面Ss1が表示された状態におけるユーザの動作としては、例えば、入力部12に含まれるマウスおよびキーボードの操作などが考えられる。図13に示される検査条件設定画面Ss1の例では、ユーザは、入力部12を介して、第1検査画像領域A11、第2検査画像領域A12、第3検査画像領域A31および第4検査画像領域A32のそれぞれに対する吹き出しに検査条件を入力し、決定ボタン(OKボタン)を押下することで、各検査画像領域に対して検査条件を設定することが可能である。ここで、検査条件には、例えば、撮像画像の輝度に係る条件などが適用され得る。輝度に係る条件としては、例えば、欠陥がない参照画像Ir1を基準とした許容される輝度の範囲を示す値、および輝度が所定値以上の異なる部分についての許容される面積の範囲を示す値などが考えられる。
なお、複数の撮像部421のそれぞれについて、別々の検査条件設定画面Ss1が表示されてもよいし、複数の撮像部421のうちの2つ以上の撮像部421についての検査画像領域に係る情報を含む検査条件設定画面Ss1が表示されてもよい。
<1-2-3.画像処理のフロー>
図14(a)から図14(c)は、第1実施形態に係る画像処理方法に沿って画像処理装置100で実行される画像処理のフローの一例を示す流れ図である。この処理のフローは、例えば、演算処理部15aにおいてプログラム14pが実行されることで実現され得る。また、この処理のフローは、例えば、記憶部14にプログラム14pおよび各種データ14dが記憶された状態で、ユーザによる入力部12を介した信号の入力に応答して開始される。ここでは、例えば、図14(a)で示されるステップS1からステップS3の処理がこの記載の順に行われる。なお、例えば、ステップS1の処理とステップS2の処理とが並行して行われてもよいし、ステップS2の処理の後に、ステップS1の処理が行われてもよい。
図14(a)のステップS1では、例えば、第1取得部151によって、検査対象物W0の3次元モデルに係る情報(3次元モデル情報)と、該3次元モデルにおける検査領域に係る情報(検査領域情報)とが取得されるステップ(第1取得ステップともいう)が実行される。このステップS1では、例えば、図14(b)で示されるステップS21およびステップS22の処理がこの記載の順に行われる。
ステップS11では、例えば、第1取得部151によって、記憶部14に記憶された3次元モデル情報が取得される。
ステップS12では、例えば、第1取得部151によって、3次元モデル3dmを構成する複数の平面の向きに係る情報と、複数の平面における平面の連結状態と、に基づいて、3次元モデル3dmの表面が複数の領域(単位検査領域)に区分されることで、検査領域情報が取得される。検査領域情報としては、例えば、検査対象物W0の3次元モデル3dmの表面について区分された複数の単位検査領域を特定するための情報が採用される。ここでは、例えば、上述した第1領域区分処理と第2領域区分処理とがこの記載の順に行われることで、3次元モデル3dmの表面が複数の領域(単位検査領域)に区分される。
ステップS2では、例えば、第2取得部152によって、検査装置2における撮像部421および検査対象物W0についての位置および姿勢に係る位置姿勢情報が取得されるステップ(第2取得ステップともいう)が実行される。ここでは、例えば、第2取得部152によって記憶部14に記憶された位置姿勢情報が取得される。位置姿勢情報には、例えば、検査部40の保持部41によって所望の姿勢で保持される検査対象物W0と、検査部40の各撮像部421と、の間における相対的な位置の関係、相対的な角度の関係および相対的な姿勢の関係などが明らかとなる設計上の情報などが適用され得る。この位置姿勢情報には、例えば、検査部40において検査対象物W0が配される領域の基準位置(第1基準位置)P1の座標の情報、各撮像部421についての基準位置(第2基準位置)P2の座標の情報、第1基準位置P1に対応する基準点を原点とするxyz座標系(3次元モデル座標系)の情報、および各撮像部421についての第2基準位置P2に対応する基準点を原点とするx’y’z’座標系(カメラ座標系)の情報などが含まれ得る。
ステップS3では、例えば、指定部153によって、ステップS1で取得された3次元モデル情報および検査領域情報と、ステップS2で取得された位置姿勢情報と、に基づいて、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報が作成されるステップ(指定ステップともいう)が実行される。このステップS3では、例えば、図14(c)で示されるステップS31からステップS34の処理がこの記載の順に行われる。
ステップS31では、例えば、指定部153によって、3次元モデル情報と位置姿勢情報とに基づいて、各撮像部421によって検査対象物W0が仮想的に捉えられた第1モデル画像Im1が生成される。
ステップS32では、例えば、指定部153によって、各撮像部421について、3次元モデル3dmの位置および姿勢に係るパラメータ(位置姿勢パラメータ)が、第1モデル画像Im1の生成に用いられた位置姿勢パラメータ(第1位置姿勢パラメータ)が基準とされて所定のルールで変更させられつつ撮像部421によって検査対象物W0を仮想的に捉えた複数の第2モデル画像Im2がそれぞれ生成される。
ステップS33では、例えば、指定部153によって、各撮像部421について、第1モデル画像Im1および複数の第2モデル画像Im2のそれぞれにおける3次元モデル3dmに対応する部分と、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の一致度に応じて、第1モデル画像Im1および複数の第2モデル画像Im2のうちの1つのモデル画像が検出される。例えば、参照画像Ir1と第1モデル画像Im1および複数の第2モデル画像Im2のそれぞれとが画像の外縁が合致するように重畳させられた場合に、第2輪郭線Ln2に対する第1輪郭線Ln1の一致の程度が、一致度として算出される。そして、例えば、第1モデル画像Im1および複数の第2モデル画像Im2のうち、算出された一致度が最も高いモデル画像が1つのモデル画像として検出され得る。
ステップS34では、例えば、指定部153によって、各撮像部421について、検出された1つのモデル画像の生成に用いられた3次元モデル3dmの位置および姿勢に係るパラメータ(位置姿勢パラメータ)と、3次元モデル情報および検査領域情報とに基づいて、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査画像領域を指定する領域指定情報が作成される。ここでは、例えば、指定部153によって、各撮像部421について、検出された1つのモデル画像の生成に用いられた位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影されることで、領域指定情報の一例として、図12で示されたような領域指定画像Is1が生成される。領域指定画像Is1では、例えば、撮像部421で検査対象物W0の撮像を行った場合に取得され得る撮像画像において複数の単位検査領域に対応する複数の検査の対象となる部分がそれぞれ捉えられるものと予想される複数の検査画像領域が指定される。
<1-3.第1実施形態のまとめ>
以上のように、第1実施形態に係る画像処理装置100および画像処理方法によれば、例えば、各撮像部421について、設計上の3次元モデル情報および位置姿勢情報に基づいて生成された、撮像部421が3次元モデル3dmを仮想的に捉えた第1モデル画像Im1における3次元モデル3dmに対応する部分と、事前に撮像部421で得られた参照画像Ir1における検査対象物W0に対応する部分と、の間にズレが生じている場合であっても、このズレが低減されるように自動的な補正が行われて、撮像画像について検査画像領域を指定する領域指定情報が作成され得る。その結果、例えば、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
<2.他の実施形態>
本発明は上述の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更および改良などが可能である。
<2-1.第2実施形態>
上記第1実施形態では、例えば、指定部153によって、各撮像部421に対し、4段階の処理([A]第1モデル画像Im1の生成、[B]複数の第2モデル画像Im2の生成、[C]1つのモデル画像の検出、および[D]撮影画像についての領域指定情報の作成)が自動的に行われたが、これに限られない。例えば、上記の2段階目の処理([B]複数の第2モデル画像Im2の生成)および3段階目の処理([C]1つのモデル画像の検出)で実現された第1輪郭線Ln1と第2輪郭線Ln2との間のズレを低減するようなマッチング処理が、ユーザの動作に応じて行われてもよい。換言すれば、指定部153では、ユーザの動作に応じたマッチング処理(手動マッチング処理ともいう)が行われてもよい。
この場合には、例えば、出力部13で可視的に出力される画面(手動マッチング画面ともいう)によって、ユーザの動作に応じた手動マッチング処理を実現させる態様が考えられる。図15(a)および図15(b)は、第2実施形態に係る手動マッチング画面Sc2を例示する図である。
ここでは、例えば、まず、上述した1段階目の処理([A]第1モデル画像Im1の生成)と同様に、指定部153は、3次元モデル情報と位置姿勢情報とに基づいて撮像部421によって検査対象物W0を仮想的に捉えた第1モデル画像Im1を生成する。このとき、例えば、出力部13は、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1と第1モデル画像Im1とを重畳した画像(第1重畳画像)Io1を可視的に出力する。例えば、図15(a)で示されるように、参照画像Ir1と第1モデル画像Im1とが重畳された第1重畳画像Io1に係る画像を含む初期状態の手動マッチング画面Sc2が出力部13によって表示される。ここでは、第1モデル画像Im1の外縁と参照画像Ir1の外縁とが一致するように、第1モデル画像Im1と参照画像Ir1とが重畳される。初期状態の手動マッチング画面Sc2では、例えば、参照画像Ir1における検査対象物W0に対応する部分と、第1モデル画像Im1における3次元モデル3dmに対応する部分と、の間にズレが生じている場合がある。換言すれば、例えば、第1モデル画像Im1における3次元モデル3dmの輪郭に対応する第1輪郭線Ln1と、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す第2輪郭線Ln2と、の間にズレが生じている場合がある。
この場合には、例えば、手動マッチング画面Sc2によって、手動マッチング処理を実現させることができる。手動マッチング画面Sc2では、例えば、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す第2輪郭線Ln2に対して、第1モデル画像Im1における3次元モデル3dmの輪郭に対応する部分を示す第1輪郭線Ln1を基準として、ユーザが入力部12を介して第1輪郭線Ln1を回転ならびに拡大および縮小などによって移動させることで、上記のズレを低減させることができる。ここでは、例えば、指定部153は、ユーザの動作に応答して入力部12で受け付けられた情報に応じて、3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータを、第1モデル画像Im1の生成に用いられた位置姿勢パラメータ(第1位置姿勢パラメータ)を基準として変更しつつ、撮像部421によって検査対象物W0が仮想的に捉えられた複数の第2モデル画像Im2を順次に生成する。このとき、例えば、ユーザの動作に応答して入力部12で受け付けられた情報に応じて、位置姿勢パラメータとしての(x’,y’,z’,Rx’,Ry’,Rz’)のうち、z’座標、回転角Rx’,回転角Ry’および回転角Rz’の各値の変更が可能である態様が考えられる。具体的には、例えば、手動マッチング画面Sc2において、ユーザによる入力部12のマウスの操作に応じて、第1輪郭線Ln1で囲まれる領域にマウスポインタが合わせられて左クリックよる第1輪郭線Ln1の指定によって、第1輪郭線Ln1を回転ならびに拡大および縮小などによって移動させることが可能な状態(移動可能状態ともいう)とされる。ここでは、例えば、ユーザによるマウスの操作における左クリックが行われるたびに、移動可能状態に設定される処理と、移動可能状態が解除される処理と、が行われる態様が考えられる。移動可能状態では、例えば、マウスの上下の移動に応じて回転角Rx’の値が変更され、マウスの左右の移動に応じて回転角Ry’の値が変更され、マウスの平面上における角度の変更(回転)によって、回転角Rz’の値が変更され、マウスのホイールの回転によって、z’座標の値が変更され得る態様が考えられる。ここでは、例えば、位置姿勢パラメータにおけるz’座標、回転角Rx’,回転角Ry’および回転角Rz’の少なくとも1つの値が変更されるたびに、変更後の位置姿勢パラメータを用いて第2モデル画像Im2が生成される。
ここで、例えば、出力部13は、指定部153によって複数の第2モデル画像Im2のそれぞれが新たに生成されるたびに、参照画像Ir1と新たに生成された第2モデル画像Im2とが重畳された重畳画像(第2重畳画像)Io2を可視的に出力する。図15(b)には、参照画像Ir1と第2モデル画像Im2とが重畳された第2重畳画像Io2に係る画像を含む手動マッチング画面Sc2が示されている。ここでは、第2モデル画像Im2の外縁と参照画像Ir1の外縁とが一致するように、第2モデル画像Im2と参照画像Ir1とが重畳される。図15(b)の手動マッチング画面Sc2の例では、参照画像Ir1における検査対象物W0に対応する部分と、第2モデル画像Im2における3次元モデル3dmに対応する部分と、が略一致している。換言すれば、図15(b)の手動マッチング画面Sc2の例では、第2モデル画像Im2における3次元モデル3dmの輪郭に対応する第1輪郭線Ln1と、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す第2輪郭線Ln2と、が略一致している状態が示されている。手動マッチング画面Sc2では、例えば、図15(a)で示された初期状態を基準として、ユーザは、固定された第2輪郭線Ln2に対して、回転ならびに拡大および縮小などによって第1輪郭線Ln1を移動させつつ、図15(b)で示されるように、第2輪郭線Ln2に対して第1輪郭線Ln1を合わせ込むことで、手動マッチング処理が実現され得る。
そして、例えば、指定部153は、ユーザの特定の動作に応答して入力部12で受け付けられた情報に応答して、複数の第2モデル画像Im2のうちの出力部13によって可視的に出力されている第2重畳画像Io2を生成する際に参照画像Ir1に重畳された1つの第2モデル画像Im2の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータと、3次元モデル情報および検査領域情報と、に基づいて、撮像画像について検査画像領域を指定する。ここで、ユーザの特定の動作としては、例えば、移動可能状態が解除された状態における手動マッチング画面Sc2上の所定のボタンとしてのOKボタンB1のマウスポインタによる押下などが挙げられる。そして、ここでは、例えば、指定部153によって、手動マッチング画面Sc2に表示されている第2重畳画像Io2を生成する際に参照画像Ir1に重畳された1つの第2モデル画像Im2の生成に用いられた位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影されることで、領域指定情報の一例として、図12で示されたような領域指定画像Is1が生成される。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmの複数の単位検査領域が2次元平面に投影される。このとき、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。また、このとき、例えば、前面に存在する部分で隠れる面を消去する隠れ面消去の処理が行われるとともに、複数の単位検査領域がそれぞれ投影された複数の画像領域が相互に区別可能な状態とされる。ここで、複数の第2モデル画像Im2のうち、ユーザが特定の動作を行った際に出力部13によって可視的に出力されている第2重畳画像Io2の生成で参照画像Ir1に重畳された第2モデル画像Im2の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータは、例えば、マッチング処理によって得られた位置姿勢パラメータであると言える。
このような構成が採用される場合には、例えば、図14(a)の指定ステップ(ステップS3)において、図16で示されるステップS31bからステップS35bの処理が行われ得る。
ステップS31bでは、例えば、指定部153によって、3次元モデル情報と位置姿勢情報とに基づき、撮像部421によって検査対象物W0が仮想的に捉えられた第1モデル画像Im1が生成される。
ステップS32bでは、例えば、出力部13によって、撮像部421による検査対象物W0の事前に撮像で得られた参照画像Ir1と、ステップS31bで生成された第1モデル画像Im1と、を重畳した第1重畳画像Io1が可視的に出力される。ここでは、例えば、出力部13によって、参照画像Ir1と第1モデル画像Im1とが重畳された第1重畳画像Io1に係る画像を含む初期状態の手動マッチング画面Sc2が表示される。
ステップS33bでは、例えば、指定部153によって、ユーザの動作に応答して入力部12で受け付けられた情報に応じて、3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータが、第1モデル画像Im1の生成に用いられた第1位置姿勢パラメータが基準とされて変更されつつ、撮像部421によって検査対象物W0が仮想的に捉えられた複数の第2モデル画像Im2が順次に生成される。このとき、例えば、出力部13によって、複数の第2モデル画像Im2のそれぞれが新たに生成されるたびに、参照画像Ir1と新たに生成された第2モデル画像Im2とが重畳された第2重畳画像Io2が可視的に出力される。ここでは、例えば、ユーザは入力部12を介した情報の入力によって、出力部13によって表示された手動マッチング画面Sc2において、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す固定された第2輪郭線Ln2に対して、第1モデル画像Im1における3次元モデル3dmの輪郭に対応する第1輪郭線Ln1を初期状態として、新たに生成された第2モデル画像Im2における3次元モデル3dmの輪郭に対応する第1輪郭線Ln1に時間順次に切り替えることができる。換言すれば、手動マッチング画面Sc2において、例えば、固定された第2輪郭線Ln2に対して、第1輪郭線Ln1を回転ならびに拡大および縮小などによって移動させることができる。これにより、例えば、手動のマッチング処理が実行される。
ステップS34bでは、例えば、指定部153によって、ユーザによって特定の動作が実施されたか否かが判定される。ここで、例えば、ユーザによって特定の動作が実施されていなければ、ステップS33bに戻り、ユーザによって特定の動作が実施されれば、ユーザによる特定の動作に応答して入力部12で受け付けられた情報に応答して、ステップS35bに進む。ここで、ユーザの特定の動作には、例えば、手動マッチング画面Sc2上の所定のボタンとしてのOKボタンB1のマウスポインタによる押下などが適用される。
ステップS35bでは、例えば、指定部153によって、複数の第2モデル画像Im2のうちの出力部13によって可視的に出力されている第2重畳画像Io2を生成する際に参照画像Ir1に重畳された1つの第2モデル画像Im2の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータと、3次元モデル情報および検査領域情報と、に基づいて、撮像画像について検査画像領域を指定する領域指定情報が作成される。ここでは、例えば、指定部153によって、手動マッチング画面Sc2に表示されている第2重畳画像Io2を生成する際に参照画像Ir1に重畳された1つの第2モデル画像Im2の生成に用いられた位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影されることで、領域指定情報の一例として、図12で示されたような領域指定画像Is1が生成される。
このような第2実施形態に係る画像処理装置100および画像処理方法によれば、例えば、各撮像部421について、設計上の3次元モデル情報および位置姿勢情報に基づいて生成された、撮像部421が3次元モデル3dmを仮想的に捉えた第1モデル画像Im1における3次元モデル3dmに対応する部分と、事前に撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の間にズレが生じている場合であっても、このズレが低減されるように手動で補正が行われて、撮像画像について検査画像領域を指定する領域指定情報が作成され得る。その結果、例えば、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
<2-2.第3実施形態>
上記第1実施形態では、自動でマッチング処理が行われ、上記第2実施形態では、手動でマッチング処理が行われたが、これに限られない。例えば、手動でマッチング処理を行った上に、さらに自動でマッチング処理が行われてもよい。例えば、上記第1実施形態における、指定部153によって行われた各撮像部421に対する4段階の処理([A]第1モデル画像Im1の生成、[B]複数の第2モデル画像Im2の生成、[C]1つのモデル画像の検出、および[D]撮影画像についての領域指定情報の作成)のうち、上記の2段階目の処理([B]複数の第2モデル画像Im2の生成)および3段階目の処理([C]1つのモデル画像の検出)で実現された第1輪郭線Ln1と第2輪郭線Ln2との間のズレを低減するような自動的なマッチング処理の代わりに、ユーザの動作に応じた手動のマッチング処理(手動マッチング処理)と、その後の自動のマッチング処理(自動マッチング処理ともいう)と、が行われてもよい。この場合には、例えば、第2実施形態と同様に、出力部13で可視的に出力される画面(手動マッチング画面)によって、ユーザの動作に応じた手動マッチング処理が実現され、さらに、第1実施形態と同様な自動のマッチング処理が行われる態様が考えられる。
具体的には、まず、指定部153は、3次元モデル情報と位置姿勢情報とに基づいて撮像部421によって検査対象物W0を仮想的に捉えた第1モデル画像Im1を生成する。このとき、例えば、出力部13は、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1と第1モデル画像Im1とが重畳された画像(第1重畳画像)Io1を可視的に出力する。ここでは、例えば、図15(a)で示されたように、参照画像Ir1と第1モデル画像Im1とが重畳された第1重畳画像Io1に係る画像を含む初期状態の手動マッチング画面Sc2が出力部13によって表示される。
この手動マッチング画面Sc2では、例えば、参照画像Ir1における検査対象物W0に対応する部分と、第1モデル画像Im1における3次元モデル3dmに対応する部分と、の間で生じたズレを低減させるような手動の補正が実現され得る。換言すれば、手動マッチング画面Sc2では、例えば、第1モデル画像Im1における3次元モデル3dmの輪郭に対応する第1輪郭線Ln1と、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す第2輪郭線Ln2と、の間のズレを低減させるような手動の補正が実現され得る。例えば、第2輪郭線Ln2に対して、初期状態に係る第1輪郭線Ln1を基準として、ユーザが入力部12を介して第1輪郭線Ln1を回転ならびに拡大および縮小などによって移動させることで、上記のズレを低減させることができる。ここでは、例えば、指定部153は、ユーザの動作に応答して入力部12で受け付けられた情報に応じて、3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータを、第1モデル画像Im1の生成に用いられた位置姿勢パラメータ(第1位置姿勢パラメータ)を基準として変更しつつ、撮像部421によって検査対象物W0が仮想的に捉えられた複数の第2モデル画像Im2を順次に生成する。より具体的には、例えば、ユーザの動作に応答して入力部12で受け付けられた情報に応じて、位置姿勢パラメータとしての(x’,y’,z’,Rx’,Ry’,Rz’)のうちの少なくとも一部の数値(z’座標、回転角Rx’,回転角Ry’および回転角Rz’など)が変更されるたびに、変更後の位置姿勢パラメータを用いて第2モデル画像Im2が生成される。このとき、例えば、出力部13は、指定部153によって複数の第2モデル画像Im2のそれぞれが新たに生成されるたびに、参照画像Ir1と新たに生成された第2モデル画像Im2とが重畳された重畳画像(第2重畳画像)Io2を可視的に出力する。より具体的には、手動マッチング画面Sc2において、例えば、図15(a)で示された初期状態を基準として、ユーザは、固定された第2輪郭線Ln2に対して、回転ならびに拡大および縮小などによって第1輪郭線Ln1を移動させつつ、図15(b)で示されるように、第2輪郭線Ln2に対して第1輪郭線Ln1を合わせ込むことで、手動マッチング処理が実現され得る。
ここで、例えば、指定部153は、ユーザの特定の動作に応答して入力部12で受け付けられた情報に応答して、複数の第2モデル画像Im2のうちの出力部13によって可視的に出力されている第2重畳画像Io2を生成する際に参照画像Ir1に重畳された1つの第2モデル画像(基準第2モデル画像)Im2の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータ(第2位置姿勢パラメータともいう)を基準として、3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータを所定のルールで変更させつつ撮像部421によって検査対象物W0を仮想的に捉えた複数のモデル画像(第3モデル画像ともいう)Im3をそれぞれ生成する。ここでは、例えば、各撮像部421について、複数の変更後の3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータと、3次元モデル情報と、に基づいて、複数の第3モデル画像Im3が生成される。より具体的には、例えば、変更後の位置姿勢パラメータによって、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmが2次元平面に投影されることで、第3モデル画像Im3が生成され得る。第3モデル画像Im3には、例えば、図11(a)で示されたように、第1モデル画像Im1および第2モデル画像Im2と同様に、3次元モデル3dmの輪郭に対応する部分が所定の種類の第1輪郭線Ln1で描かれた線画などが適用され得る。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmが2次元平面に投影される。このとき、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。第3実施形態では、例えば、上述した手動マッチング処理が行われることで、3次元モデル3dmの輪郭に対応する第1輪郭線Ln1と、参照画像Ir1で捉えられた検査対象物W0の輪郭に対応する部分を示す第2輪郭線ともいうLn2と、の間のズレが、既にある程度低減されている。このため、例えば、位置姿勢パラメータが変更される範囲が、第1実施形態の例よりも狭く設定されてもよい。具体的には、例えば、距離許容範囲、第1回転許容範囲、第2回転許容範囲および第3回転許容範囲のそれぞれが、第1実施形態の例よりも狭く設定されてもよい。
また、ここで、例えば、指定部153は、各撮像部421について、1つの第2モデル画像(基準第2モデル画像)Im2および複数の第3モデル画像Im3のそれぞれにおける3次元モデル3dmに対応する部分と、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の一致度に応じて、1つの第2モデル画像(基準第2モデル画像)Im2および複数の第3モデル画像Im3のうちの1つのモデル画像を検出する。一致度としては、例えば、図11(b)で示されたように、参照画像Ir1と、基準第2モデル画像Im2および複数の第3モデル画像Im3のそれぞれと、を画像の外縁が合致するように重畳させた場合における、第2輪郭線Ln2に対する第1輪郭線Ln1の一致の程度が適用される。ここでは、例えば、参照画像Ir1における第2輪郭線Ln2がソーベルフィルタ(Sobel filter)などを用いて抽出された上で、参照画像Ir1に、基準第2モデル画像Im2および複数の第3モデル画像Im3のそれぞれが重畳させられる。例えば、図11(b)で示されるように、参照画像Ir1と第3モデル画像Im3とを重畳させた画像(第3重畳画像ともいう)Io3が生成される。ここでは、例えば、基準第2モデル画像Im2について、第2重畳画像Io2において第1輪郭線Ln1と第2輪郭線Ln2とが重なっている部分の画素数が一致度として算出され得る。また、例えば、各第3モデル画像Im3について、第3重畳画像Io3において第1輪郭線Ln1と第2輪郭線Ln2とが重なっている部分の画素数が一致度として算出され得る。そして、ここでは、各撮像部421について、基準第2モデル画像Im2および複数の第3モデル画像Im3のうちの一致度に応じて検出される1つのモデル画像として、例えば、算出された一致度が最も高いモデル画像が検出され得る。これにより、例えば、第1輪郭線Ln1と第2輪郭線Ln2との間のズレを低減するような自動的な補正の処理(自動マッチング処理)が実現され得る。
そして、例えば、指定部153は、各撮像部421について、検出された1つのモデル画像の生成に用いられた3次元モデル3dmの位置および姿勢に係るパラメータ(位置姿勢パラメータ)と、3次元モデル情報および検査領域情報とに基づいて、撮像画像について検査画像領域を指定する領域指定情報を作成する。ここでは、例えば、指定部153によって、検出された1つのモデル画像の生成に用いられた位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影されることで、領域指定情報の一例として、図12で示されるような領域指定画像Is1が生成される。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmの複数の単位検査領域が2次元平面に投影される。このとき、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。また、このとき、例えば、前面に存在する部分で隠れる面を消去する隠れ面消去の処理が行われるとともに、複数の単位検査領域がそれぞれ投影された複数の画像領域が相互に区別可能な状態とされる。ここで、検出された1つのモデル画像の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータは、例えば、マッチング処理によって得られた位置姿勢パラメータであると言える。
このような構成が採用される場合には、例えば、図14(a)の指定ステップ(ステップS3)において、図17で示されるステップS31cからステップS37cの処理が行われ得る。
ステップS31cでは、例えば、図16のステップS31bと同様な処理が行われ、ステップS32cでは、例えば、図16のステップS32bと同様な処理が行われ、ステップS33cでは、例えば、図16のステップS33bと同様な処理が行われる。
ステップS34cでは、図16のステップS34bと同様に、例えば、指定部153によって、ユーザによって特定の動作が実施されたか否かが判定される。ここで、例えば、ユーザによって特定の動作が実施されていなければ、ステップS33cに戻り、ユーザによって特定の動作が実施されれば、ユーザによる特定の動作に応答して入力部12で受け付けられた情報に応答して、ステップS35cに進む。ここで、ユーザの特定の動作には、例えば、手動マッチング画面Sc2上の所定のボタンとしてのOKボタンB1のマウスポインタによる押下などが適用される。
ステップS35cでは、例えば、指定部153によって、ステップS33cで生成された複数の第2モデル画像Im2のうちの出力部13によって可視的に出力されている第2重畳画像Io2を生成する際に参照画像Ir1に重畳された1つの第2モデル画像(基準第2モデル画像)Im2の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータ(第2位置姿勢パラメータ)が基準とされて、3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータが所定のルールで変更させられつつ撮像部421によって検査対象物W0が仮想的に捉えられた複数のモデル画像(第3モデル画像)Im3がそれぞれ生成される。
ステップS36cでは、例えば、指定部153によって、各撮像部421について、1つの第2モデル画像(基準第2モデル画像)Im2および複数の第3モデル画像Im3のそれぞれにおける3次元モデル3dmに対応する部分と、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の一致度に応じて、1つの第2モデル画像(基準第2モデル画像)Im2および複数の第3モデル画像Im3のうちの1つのモデル画像が検出される。ここでは、例えば、参照画像Ir1と1つの基準第2モデル画像Im2および複数の第3モデル画像Im3のそれぞれとが画像の外縁が合致するように重畳させられた場合に、第2輪郭線Ln2に対する第1輪郭線Ln1の一致の程度(一致度)が、基準第2モデル画像Im2および複数の第3モデル画像Im3のうちで最も高いモデル画像が1つのモデル画像として検出される。
ステップS37cでは、例えば、指定部153によって、各撮像部421について、ステップS36cで検出された1つのモデル画像の生成に用いられた3次元モデル3dmの位置および姿勢に係る位置姿勢パラメータと、3次元モデル情報および検査領域情報とに基づいて、撮像画像について検査画像領域を指定する領域指定情報が作成される。ここでは、例えば、指定部153によって、各撮像部421について、ステップS36cで検出された1つのモデル画像の生成に用いられた位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影されることで、領域指定情報の一例として、図12で示されたような領域指定画像Is1が生成される。
このような第3実施形態に係る画像処理装置100および画像処理方法によれば、例えば、各撮像部421について、設計上の3次元モデル情報および位置姿勢情報に基づいて生成された、撮像部421が3次元モデル3dmを仮想的に捉えた第1モデル画像Im1における3次元モデル3dmに対応する部分と、事前に撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の間に生じたズレが低減されるように手動および自動の補正が順に行われて、撮像画像について検査画像領域を指定する領域指定情報が作成され得る。これにより、例えば、手動の補正ではズレの低減が不十分である場合に、さらなる自動の補正によってズレが低減され得る。その結果、例えば、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
<2-3.第4実施形態>
上記各実施形態では、例えば、検査部40が複数の撮像部421を有していたが、これに限られない。検査部40は、例えば、1つ以上の撮像部421を有していてもよい。ここでは、検査部40は、相互に異なる複数の位置および姿勢で固定された複数の撮像部421を有する代わりに、例えば、図18で示されるように、撮像部421の位置および姿勢を相互に異なる複数の位置および姿勢となるように撮像部421を移動させることが可能な移動機構44を有していてもよい。図18は、第4実施形態に係る検査部40の一構成例を示す図である。図18では、便宜的に保持部41の図示が省略されている。図18の例では、検査部40は、撮像モジュール42と移動機構44とを有する。移動機構44は、例えば、検査部40の筐体などに固定されている。移動機構44は、例えば、検査対象物W0に対する撮像モジュール42の相対的な位置および姿勢を変更させることができる。移動機構44には、例えば、ロボットアームなどが適用される。ロボットアームには、例えば、6軸ロボットアームなどが適用される。撮像モジュール42は、例えば、ロボットアームの先端に固定されている。これにより、例えば、移動機構44は、撮像モジュール42の位置および姿勢が相互に異なる複数の位置および姿勢となるように、撮像モジュール42を移動させることができる。このような構成が採用される場合には、上記各実施形態における各撮像部421についての画像処理は、1つの撮像部421における複数の位置および姿勢についての画像処理とされればよい。
<2-4.第5実施形態>
上記各実施形態では、例えば、複数の位置および姿勢で配される撮像部421のそれぞれについて、マッチング処理が行われたが、これに限られない。例えば、複数の位置および姿勢のうちの一部の位置および姿勢で配される撮像部421について、マッチング処理が行われてもよい。この場合には、例えば、複数の位置および姿勢のうちの一部の位置および姿勢を除く残余の位置および姿勢で配される撮像部421については、指定部153によって、一部の位置および姿勢で配される撮像部421についてのマッチング処理で得られた位置姿勢パラメータと、位置姿勢情報に含まれる撮像部421の複数の位置および姿勢についての相対的な関係に係る情報と、に基づいて、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報が作成されてもよい。このような構成が採用されれば、例えば、各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
ここでは、例えば、図3(a)および図3(b)の例については、8つの第2撮像モジュール42sのうちの1つの第2撮像モジュール42sの撮像部421についてマッチング処理で得られた位置姿勢パラメータを基準となる位置姿勢パラメータ(第1基準位置姿勢パラメータともいう)とする。そして、この第1基準位置姿勢パラメータと、8つの第2撮像モジュール42sについての相対的な位置および姿勢に係る情報と、に基づいて、8つの第2撮像モジュール42sのうちの残余の7つの第2撮像モジュール42sの各撮像部421について、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報が作成されてもよい。具体的には、例えば、第1基準位置姿勢パラメータにおける回転角Rz’の値が45(度)ずつ変更されることで、残余の7つの第2撮像モジュール42sの各撮像部421について、3次元モデル3dmにおける複数の単位検査領域を2次元平面に投影させるための位置姿勢パラメータが算出され得る。これにより、例えば、8つの第2撮像モジュール42sの各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
また、例えば、図3(a)および図3(b)の例については、8つの第3撮像モジュール42hのうちの1つの第3撮像モジュール42hの撮像部421についてマッチング処理で得られた位置姿勢パラメータを基準となる位置姿勢パラメータ(第2基準位置姿勢パラメータともいう)とする。そして、この第2基準位置姿勢パラメータと、8つの第3撮像モジュール42hについての相対的な位置および姿勢に係る情報と、に基づいて、8つの第3撮像モジュール42hのうちの残余の7つの第3撮像モジュール42hの各撮像部421について、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報が作成されてもよい。具体的には、例えば、第2基準位置姿勢パラメータにおける回転角Rz’の値が45(度)ずつ変更されることで、残余の7つの第3撮像モジュール42hの各撮像部421について、3次元モデル3dmにおける複数の単位検査領域を2次元平面に投影させるための位置姿勢パラメータが算出され得る。これにより、例えば、8つの第3撮像モジュール42hの各撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
<2-5.第6実施形態>
上記各実施形態では、マッチング処理が行われたが、これに限られない。例えば、各撮像部421および検査対象物W0の設計上の位置および姿勢と、検査部40における各撮像部421および検査対象物W0の実際の位置および姿勢と、の間における誤差が、非常に小さな場合には、上述したマッチング処理が行われなくてもよい。
この場合には、指定部153は、例えば、第1取得部151によって取得された3次元モデル情報および検査領域情報と、第2取得部152によって取得された位置姿勢情報と、に基づいて、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報を作成することができる。
ここでは、例えば、各撮像部421について、3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢に係る位置姿勢パラメータに従って、xyz座標系(3次元モデル座標系)における3次元モデル3dmの位置および姿勢が、x’y’z’座標系(カメラ座標系)における位置および姿勢に変換された後に、3次元モデル3dmにおける複数の単位検査領域が2次元平面に投影される。ここでは、例えば、レンダリングなどの手法によって、カメラ座標系の原点を基準点とするとともにカメラ座標系のz’軸方向を撮像方向として、3次元モデル3dmの複数の単位検査領域が2次元平面に投影される。ここでは、例えば、記憶部14などに記憶された各撮像部421に係る撮像パラメータ情報が適宜用いられ得る。このとき、例えば、前面に存在する部分で隠れる面を消去する隠れ面消去の処理が行われるとともに、複数の単位検査領域がそれぞれ投影された複数の画像領域が相互に区別可能な状態とされる。相互に区別可能な状態としては、例えば、複数の単位検査領域がそれぞれ投影された複数の画像領域に対して、互いに異なる色またはハッチングなどが指定されている状態などが考えられる。このような投影によって、例えば、撮像部421で検査対象物W0の撮像を行った場合に取得され得る撮像画像において複数の単位検査領域に対応する複数の検査の対象となる部分がそれぞれ捉えられるものと予想される複数の検査画像領域が指定された領域指定画像Is1が生成される。
このような構成が採用される場合には、例えば、図14(a)の指定ステップ(ステップS3)において、図14(c)で示されるステップS31およびステップS33の処理が行われず、ステップS33において、指定部153によって、第1取得部151によって取得された3次元モデル情報および検査領域情報と、第2取得部152によって取得された位置姿勢情報と、に基づいて、撮像部421による検査対象物W0の撮像で取得され得る撮像画像について検査領域に対応する検査画像領域を指定する領域指定情報が作成されればよい。
このような第6実施形態に係る画像処理装置100および画像処理方法によれば、例えば、撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
<2-6.その他の実施形態>
上記各実施形態において、例えば、第1取得部151は、上述した第1領域区分処理および第2領域区分処理のうちの第2領域区分処理を行わなくてもよい。換言すれば、例えば、第1取得部151は、3次元モデル3dmを構成する複数の平面の向きに係る情報に基づいて、3次元モデル3dmの表面を複数の領域に区分することで、検査領域情報を取得することができてもよい。このような構成が採用されても、例えば、3次元モデル情報から検査領域に係る情報が容易に取得され得る。
上記各実施形態において、例えば、第1取得部151は、3次元モデル3dmを構成する複数の平面の向きに係る情報と、複数の平面における平面の連結状態と、に基づいて、3次元モデル3dmの表面を複数の領域(単位検査領域ともいう)に区分することで、検査領域情報を取得したが、これに限られない。例えば、第1取得部151は、事前に準備された3次元モデル3dmにおける検査領域に係る検査領域情報を取得してもよい。ここでは、例えば、記憶部14などに記憶された各種データ14dに検査領域情報が含まれていれば、第1取得部151は、記憶部14などから検査領域情報を取得することができる。この場合には、例えば、第1取得部151は、上述した第1領域区分処理および第2領域区分処理の両方を行わなくてよい。
上記各実施形態では、例えば、第1取得部151で行われる第1領域区分処理によって、図7(a)で示された2つの円柱が積層されたような形状を有する3次元モデル3dmの表面を構成する複数の平面が、図7(b)で示されたように、上面領域Ar1と、下面領域Ar2と、側面領域Ar3と、に区分されたが、これに限られない。例えば、第1領域区分処理の区分ルールに、円筒状の側面領域Ar3が、法線ベクトルの方向が所定の角度範囲(例えば、45度)に収まる複数の平面が1つの領域に属するものとされるルールが加えられてもよい。この場合には、例えば、側面領域Ar3が、さらに複数の領域(例えば、8つの領域)に区分され得る。
上記各実施形態において、例えば、第1取得部151によって行われる第1領域区分処理における所定の区分ルールとして、隣り合う平面の法線ベクトルの方向が所定の角度範囲に収まる複数の平面が1つの領域に属するものとされるルールが考えられる。ここで、例えば、3次元モデル3dmが、図8(a)で示された四角錐状の形状を有する場合には、図8(c)で示されるように、四角錐状の3次元モデル3dmの表面を構成する複数の平面が、第1斜面領域Ar9と、第2斜面領域Ar10と、第3斜面領域Ar11と、第4斜面領域Ar12と、下面領域Ar13と、に区分され得る態様が考えられる。このような構成が採用される場合には、例えば、第1取得部151では第2領域区分処理が行われなくてもよい。換言すれば、例えば、第1取得部151は、3次元モデル3dmを構成する複数の平面における向きに係る情報(法線ベクトルなど)に基づいて、3次元モデルの表面を複数の領域に区分することで、検査領域情報を取得してもよい。このような構成によっても、例えば、3次元モデルに係る情報から検査領域に係る情報が容易に取得され得る。
上記各実施形態では、例えば、検査領域情報には、検査対象物W0の3次元モデルの表面について区分された複数の単位検査領域を特定するための情報が適用されたが、これに限られない。例えば、検査領域情報には、検査対象物W0の3次元モデルの表面について1つ以上の単位検査領域を特定するための情報が適用されてもよい。また、検査領域情報には、例えば、検査対象物W0の3次元モデル3dmのすべての表面について1つ以上の単位検査領域を特定するための情報が適用されてもよいし、検査対象物W0の3次元モデル3dmの一部の表面について1つ以上の単位検査領域を特定するための情報が適用されてもよい。換言すれば、例えば、3次元モデル情報と検査領域情報との組は、少なくとも一部の表面について1つ以上の単位検査領域が特定された3次元モデル3dmについての情報の役割を果たしてもよい。
上記各実施形態において、例えば、検査部40が、図3(a)および図3(b)で示された複数の撮像部421のうちの少なくとも1つの撮像部421を有する構成とされてもよい。この場合には、上記各実施形態における画像処理は、少なくとも1つの撮像部421について行われればよい。
上記各実施形態において、例えば、図19で示されるように、情報処理装置1が、検査装置2の制御装置70を構成しており、検査装置2における各種の画像処理を行う装置(画像処理装置)100として機能してもよい。ここでは、検査装置2は、例えば、画像処理装置100を、画像処理を行う部分(画像処理部ともいう)として有しているものとみなすことができる。この場合には、検査装置2では、例えば、撮像部421について、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。
上記各実施形態において、例えば、第2取得部152によって取得される位置姿勢情報は、1つ以上の位置および姿勢の撮像部421について、上述した3次元モデル3dmのx’y’z’座標系(カメラ座標系)における位置および姿勢を示すパラメータの形式の情報を含んでいてもよい。
上記各実施形態において、例えば、撮像部421は、検査対象物W0の外面だけでなく、検査対象物W0の内面も撮像することができてもよい。検査対象物W0の内面も撮像することができる撮像部421には、例えば、超音波またはX線など電磁波を用いた撮像手段が適用される。
上記第1実施形態から上記第5実施形態において、参照画像Ir1は、事前に撮像部421による撮像で得られた画像ではなく、実際の検査用に検査対象物W0を撮像部421で撮像して得た撮像画像であってもよい。例えば、同一の設計に基づく複数の検査対象物W0を連続して検査する場合に、1つ目の検査対象物W0を撮像部421で撮像して得た撮像画像を参照画像Ir1として使用して検査画像領域を指定する領域指定情報を作成し、2つ目以降の検査対象物W0を撮像部421で撮像して得た撮像画像に対しては、1つ目の検査対象物W0の検査時に作成した領域指定情報および1つ目の検査対象物W0の検査時に設定した検査画像領域に対する検査条件などの情報を使用する構成としてもよい。
また、上記第1実施形態では、自動マッチング処理が行われ、上記第2実施形態では、手動マッチング処理が行われ、上記第3実施形態では手動マッチング処理を行った上に、さらに自動マッチング処理が行われたが、これらに限られない。例えば、自動マッチング処理を行った上に、さらに手動マッチング処理が行われてもよい。この場合、例えば、上記第1実施形態の自動マッチング処理に係るステップS31からステップS33と同様な処理が行われることで、ステップS33で1つのモデル画像が検出された後に、検出された1つのモデル画像に対し、上記第2実施形態の手動マッチング処理に係るステップS32bからステップS35bと同様な処理が行われてもよい。ここでは、例えば、ステップS32bおよびステップS33bにおいて、第1モデル画像Im1の代わりに、ステップS33で検出された1つのモデル画像が用いられる。このような構成が採用されれば、例えば、各撮像部421について、設計上の3次元モデル情報および位置姿勢情報に基づいて生成された、撮像部421が3次元モデル3dmを仮想的に捉えた第1モデル画像Im1における3次元モデル3dmに対応する部分と、撮像部421による検査対象物W0の撮像で得られた参照画像Ir1における検査対象物W0に対応する部分と、の間に生じたズレの低減が、自動マッチング処理による自動の補正では不十分である場合に、さらなる手動マッチング処理による手動の補正によってズレが低減され得る。これにより、例えば、検査対象物W0の撮像で取得され得る撮像画像について、検査の対象となる部分が捉えられるものと予想される検査画像領域が効率良く指定され得る。このような構成は、例えば、参照画像Ir1中において、保持部41と検査対象物W0とが重なり、自動マッチング処理による補正が十分に行えない場合などに有効と考えられる。
なお、上記各実施形態および各種変形例をそれぞれ構成する全部または一部を、適宜、矛盾しない範囲で組み合わせ可能であることは、言うまでもない。