シミュレーション装置の画像データ生成装置
【課題】設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置に再現可能にする。
【解決手段】本発明のシミュレーション装置の画像データ生成装置は、現実の工場においてカメラで撮影して得られた複数の2次元撮影画像を、その撮影角度データと共にシミュレーション装置に入力する手段と、検査対象のワークの3次元データを入力する手段と、複数の2次元撮影画像の中から、検査カメラの撮影角度と一致する撮影角度データを有する2次元撮影画像を選択して背景画像とする手段と、検査カメラの光軸に対して背景画像の平面が直交するように設定する手段と、背景画像上にワークを重ねて配置したものを検査カメラにより撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力する手段とを備えている。
【解決手段】本発明のシミュレーション装置の画像データ生成装置は、現実の工場においてカメラで撮影して得られた複数の2次元撮影画像を、その撮影角度データと共にシミュレーション装置に入力する手段と、検査対象のワークの3次元データを入力する手段と、複数の2次元撮影画像の中から、検査カメラの撮影角度と一致する撮影角度データを有する2次元撮影画像を選択して背景画像とする手段と、検査カメラの光軸に対して背景画像の平面が直交するように設定する手段と、背景画像上にワークを重ねて配置したものを検査カメラにより撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力する手段とを備えている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検査カメラを使う視覚検査システムを設計する場合に用いるシミュレーション装置において使用するための画像データを生成するシミュレーション装置の画像データ生成装置に関する。
【背景技術】
【0002】
工場の生産設備等に組み込まれる視覚検査システムを設計する場合、依頼元のオーダーメイドで設計することになるので、組み込む予定の依頼元の工場で実際にテストしながら視覚検査システムを設計可能であるならば、比較的容易に設計することができる。しかし、視覚検査システムを納品する前に、依頼元の工場で設計することはかなり困難であることが多い。このため、視覚検査システムを製造販売するメーカーの実験室内でテストしたり、シミュレーション装置(シミュレータ)によりテストしたりして設計している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平4−217480号公報
【特許文献2】特開2000−267719号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記したようにして設計した視覚検査システムを依頼元の工場に納品し設置して動作させてみると、実際に検査カメラで撮影される画像と、実験室やシミュレーション装置内で検査カメラで撮影される画像とが異なるために、予定していた検査機能が発揮できなくなる場合があった。このような場合には、2度手間となってしまうが、実際の工場で再調整を行なう必要があった。
【0005】
これに対して、シミュレーション装置において、その仮想空間内で依頼元の工場の設備そのものを再現する対策が考えられる。この対策を行なえば、確かに工場と同じ環境をシミュレーション装置に再現できるので、上記2度手間対策としては、ある程度効果的である。しかし、シミュレーション装置で工場設備を再現するには、工場設備の3Dデータ(3次元画像データ)を生成して用意する必要があり、この工場設備の3Dデータを生成する作業は、非常に手間のかかる作業であるため、設計時間が非常に長くなるおそれがあり、実現可能な対策とはいえない。また、シミュレーション装置で工場設備を再現できたとしても、現実の工場内の経年劣化などで発生する微細なコントラスト変化や模様変化などまでは、再現が困難であるので、この点では、実際の工場で再調整しなければならない可能性がある。特に、微細なコントラスト変化や模様変化などを再現できないことは、視覚検査システムにとっては、大きな問題となるおそれがある。尚、シミュレーション装置の例を、特許文献1、2に示す。
【0006】
そこで、本発明の目的は、設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置に再現することができるシミュレーション装置の画像データ生成装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1の発明によれば、現実の工場において検査カメラの設定位置からカメラで前記工場の背景を複数の撮影角度でそれぞれ撮影して得られた複数の2次元撮影画像を、その撮影角度データと共にシミュレーション装置に入力する手段と、検査対象のワークの3次元データを前記シミュレーション装置に入力する手段と、前記シミュレーション装置内において、前記検査カメラの位置と前記ワークの位置を設定する手段と、前記複数の2次元撮影画像の中から、前記検査カメラの撮影角度と一致する撮影角度データを有する2次元撮影画像を選択し、この選択した画像を背景画像とする手段と、前記背景画像の位置を、前記検査カメラの光軸に対して前記背景画像の平面が直交するように設定するものであって、前記検査カメラの撮影角度が変化していくときに、前記検査カメラの光軸に対する前記背景画像の平面の直交関係を維持する手段と、前記シミュレーション装置内において、前記背景画像上に前記ワークを重ねて配置したものを前記検査カメラにより撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力する手段とを備え、前記検査カメラを平行移動させる場合には、2次元背景画像も平行移動させるように設定したので、設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置に再現することができる。
また、請求項2の発明のように、前記2次元背景画像Aiを平行移動させる場合、上下方向、左右方向、および、奥行き方向の3方向に平行移動させることが可能な構成となっていることが好ましい。
【図面の簡単な説明】
【0008】
【図1】本発明の一実施例を示すシミュレーション装置の斜視図
【図2】検査カメラと検査対象ワークと2次元背景画像との配置関係を示す図
【図3】デジカメで工場設備の2次元背景画像を撮影する様子を示す図
【図4】検査カメラの撮影角度と2次元背景画像とを対応させる関係を示す図
【図5】検査カメラの光軸と2次元背景画像の平面が直交する関係を示す図
【図6】検査カメラの撮影角度が変化したときに、光軸と2次元背景画像の平面が直交する関係が維持されることを示す図
【図7】検査カメラを平行移動させるときに、2次元背景画像も平行移動させることを示す図
【図8】検査カメラの光軸に対して2次元背景画像の平面が直交するように2次元背景画像の位置を設定する処理の制御内容を示すフローチャート
【図9】工場設備および検出対象ワークを示す斜視図
【図10】工場設備をデジカメで撮影する様子を示す図
【図11】デジカメで撮影した2次元背景画像を示す図
【図12】検出対象ワーク(3Dデータ)の斜視図
【図13】2次元背景画像に検出対象ワーク(3Dデータ)を重ね合わせた画像を示す図
【発明を実施するための形態】
【0009】
以下、本発明を視覚検査システムをシミュレートするシミュレーション装置に適用した一実施例について、図面を参照しながら説明する。本実施例のシミュレーション装置1は、図1に示すように、パソコン2と、このパソコン2にインストールされたシミュレーションプログラム(シミュレータ)3とから構成されている。
【0010】
設計した視覚検査システムを上記シミュレーション装置1でシミュレートする場合、視覚検査システムを構成する視覚検査プログラム4をシミュレーション装置1(パソコン2)に取り込んでおく。そして、視覚検査システムを構成する検査カメラ5や光源6等については、予めシミュレーション装置1(パソコン2)内のプログラムを用いて仮想的にそれぞれに対応する仮想な検査カメラ5や仮想な光源6等を設けておく。検査カメラ5の位置や姿勢は、シミュレーション装置1のマウスやキーボード等で自由に設定、変更可能である。また、光源6等の条件(照度、位置、方向、色等)も、マウスやキーボード等で自由に設定、変更可能である。
【0011】
更に、検査対象ワーク7については、予め3DCADを用いて検査対象ワーク7の3Dデータを作成し、この作成した3Dデータ(または、ワーク7の供給メーカーから提供された3Dデータ)をシミュレーション装置1(パソコン2)内の記憶部に取り込んでおく(入力する)。また、検査カメラ5の撮影のタイミングを指示するためのトリガー信号を出力するPLC(プログラマブルコントローラ)8をシミュレーション装置1(パソコン2)に接続する。このPLC8は、視覚検査システムを納品する工場の設備に組み込まれているPLCと同じ制御機能を有している。
【0012】
次に、納品する工場の設備の2次元画像データ、具体的には、検査対象ワーク7を検査カメラ5で撮影したときに検査対象ワーク7の背景となる画像(以下、2次元背景画像と称す)を準備(作成)する。この場合、図2(a)に示すように、2次元背景画像9a、9b、・・・を準備したとし、これら2次元背景画像9a、9b、・・・をシミュレーション装置1に取り込んで利用する際には、図2(b)に示すように、検査カメラ5の光軸L1、L2に直交するように2次元背景画像9a、9bを配置する。尚、光軸L1の検査カメラ5の撮影位置(撮影角度)P1に2次元背景画像9aが対応しているとし、光軸L2の検査カメラ5の撮影位置(撮影角度)P2に2次元背景画像9bが対応しているとする。
【0013】
そして、図2(b)に示すように、検査対象ワーク7の3Dデータを所定位置(ワーク7を配置する位置)に配置し、撮影位置(撮影角度)P1の検査カメラ5で検査対象ワーク7を撮影すると、図2(c)に示すような撮影画像10a(2次元背景画像9aを背景とする画像)を撮影することができる。同様にして、撮影位置(撮影角度)P2の検査カメラ5で検査対象ワーク7を撮影すると、図2(c)に示すような撮影画像10b(2次元背景画像9bを背景とする画像)を撮影することできる。
【0014】
以下、上記撮影画像10a、10bが、実際の工場の設備で撮影した画像とほぼ同じような類似する画像(即ち、画像処理する上でほぼ同等の画像)となる次元背景画像9a、9bを準備(作成)する手順について、具体的に説明する。理解を容易にするために用例では2次元空間で説明を行なうが、現実では3次元空間に拡張して、同様に処理するものとする。
【0015】
まず、図3に示すように、実際の工場の設備において、検査対象ワーク7の背景となる画像をデジカメ9により撮影する。この場合、撮影者10は、検査カメラ5のカメラ設定位置Pから検査対象ワーク7の背景を、例えば5つの撮影ポジション1〜5で、即ち、5つの撮影角度B1〜B5で順次撮影する。そして、撮影した2次元画像A1〜A5と、撮影角度データB1〜B5とを対応させてペアで記録するように構成されている。尚、2次元画像A1B1、A2B2、・・・AnBnの順で、撮影角度が増加(または減少)するように設定されている。
【0016】
そして、上記したようにして準備した2次元背景画像A1B1、A2B2、・・・を、その撮影角度データB1〜B5と共にシミュレーション装置1(パソコン2)内の記憶部(ハードディスク等)に取り込む(入力する)。この場合、2次元背景画像A1B1、A2B2、・・・を記録したメモリカード等からメモリカードリーダを介してシミュレーション装置1に入力させると共に、撮影角度データB1〜B5をキーボード等を操作することにより入力させる構成となっている。
【0017】
さて、上記2次元背景画像A1B1、A2B2、・・・と、前記した検査対象ワーク7の3Dデータとをシミュレーション装置1に入力させる処理が完了したら、シミュレーション装置1内において、検査カメラ5の位置と検査対象ワーク7の位置とを設定する。続いて、シミュレーション装置1内において、上記入力した2次元背景画像A1B1、A2B2、・・・の中から、検査カメラ5の撮影角度と一致する撮影角度データを有する2次元撮影画像を選択し、この選択した画像を背景画像として設定する処理を実行する。
【0018】
具体的には、図4に示すように、検査カメラ5の撮影角度Cが撮影角度データB1と一致したら、2次元背景画像A1を背景画像として設定する。同様にして、検査カメラ5の撮影角度Cが撮影角度データB2と一致したら、2次元背景画像A2を背景画像として設定し、検査カメラ5の撮影角度Cが撮影角度データB3と一致したら、2次元背景画像A3を背景画像として設定し、検査カメラ5の撮影角度Cが撮影角度データB4と一致したら、2次元背景画像A4を背景画像として設定し、検査カメラ5の撮影角度Cが撮影角度データB5と一致したら、2次元背景画像A5を背景画像として設定する。
【0019】
また、検査カメラ5の撮影角度Cが撮影角度データB1と一致しない場合であっても、撮影角度データB1と撮影角度データB2の中間の角度までの間は、2次元背景画像A1を背景画像として設定し、上記中間の角度を越えたら、2次元背景画像A2を背景画像として設定する。即ち、
(B(i−1)+Bi)/2<C≦(Bi+B(i+1))/2
であるときには、2次元背景画像Aiを背景画像として設定するように構成されている。この背景画像の設定例を図4に示す。
【0020】
即ち、検査カメラ5の撮影角度Cが図4中の角度C1内であるとき、2次元背景画像A1を設定し、撮影角度Cが図4中の角度C2内であるとき、2次元背景画像A2を設定し、撮影角度Cが図4中の角度C3内であるとき、2次元背景画像A3を設定し、撮影角度Cが図4中の角度C4内であるとき、2次元背景画像A4を設定し、撮影角度Cが図4中の角度C5内であるとき、2次元背景画像A5を設定する。
【0021】
そして、図5に示すように、検査カメラ5の光軸11に対して2次元背景画像Aiの平面が直交するように、2次元背景画像Aiの位置を設定している。更に、図6に示すように、検査カメラ55の撮影角度が変化していくときに、検査カメラ5の光軸11に対する2次元背景画像Aiの平面の直交関係を維持するように構成されている。例えば、検査カメラ5の撮影角度Cが図4中の角度C1内であるときは、同じ2次元背景画像A1を設定し続けるが、このとき、図6に示すように、検査カメラ55の撮影角度Cが角度C1内で変化していくときに、検査カメラ5の光軸11に対する2次元背景画像A1の平面の直交関係を維持するように設定している。
【0022】
尚、検査カメラ5の撮影角度Cが図4中の角度Ci内であるときに、同じ2次元背景画像Aiを設定し続ける理由は、検査カメラ5の撮影角度Cが角度Ci内であれば、検査対象ワーク7の背景は、あまり変化しないことから、同じ2次元背景画像Aiを設定し続けても、ほとんど支障がない。特に、画像処理する対象は、検査対象ワーク7であることから、検査対象ワーク7の画像が正確であれば、背景画像が少し正確でなかったとしても、問題が発生することはない。つまり、背景は、しょせん背景であり、それぼど正確でなくても良いのである。そして、この場合、用意する2次元背景画像としては5つの2次元背景画像A1〜A5だけであるから、用意する画像のデータ量を大幅に少なくすることができ、しかも、画像処理を十分正確に実行することができる。従って、画像データを用意する手間を大幅に少なくすることができながら、十分な効果を得ることができる。
【0023】
また、検査カメラ5(のカメラ視点)を平行移動させる場合には、図7に示すように、2次元背景画像Aiも平行移動させるように設定する。この場合、上下方向、左右方向、および、奥行き方向の3方向に平行移動させることが可能なように構成されている。
【0024】
次に、シミュレーション装置1において、検査カメラ5の光軸11に対して2次元背景画像Aiの平面が直交するように2次元背景画像Aiを設定する処理の一例の制御内容について、図8のフローチャートを参照して説明する。まず、ステップS10においては、準備した2次元背景画像Aiと、その撮影角度データBiとをシミュレーション装置1(パソコン2)内の記憶部に登録(入力)する。この場合、2次元背景画像Aiおよび撮影角度データBiのペアの登録数をnとする(従って、i=1、・・・、n)。
【0025】
続いて、ステップS20へ進み、撮影角度データBiを基準にして2次元背景画像Aiをソートする(A1B1、A2B2、・・・、AnBn)。この場合、説明上、昇順とするが、降順でも良い。そして、ステップS30へ進み、検査カメラ5の位置を設定し、検査カメラ5の撮影角度(カメラ視点角度)Cを取得する。
【0026】
次いで、ステップS40へ進み、撮影角度Cが撮影角度データB1よりも小さいか否かを判断する。ここで、撮影角度Cが撮影角度データB1よりも小さいときには、「YES」へ進み、ステップS130へ進み、設定する画像Gとして2次元背景画像A1を設定する。
【0027】
一方、ステップS40において、撮影角度Cが撮影角度データB1よりも小さくないときには、「NO」へ進み、ステップS50へ進み、変数iに「0」をセットする。続いて、ステップS60へ進み、
(B(i−1)+Bi)/2<C≦(Bi+B(i+1))/2
が成立するか否かを判断する。ここで、上記式が成立するときには、「YES」へ進み、ステップS140へ進み、設定する画像Gとして2次元背景画像Aiを設定する。
【0028】
また、ステップS60において、上記式が成立しないときには、「NO」へ進み、ステップS70へ進み、変数iをカウントアップ(+1)する。そして、ステップS80へ進み、変数iがnよりも小さいか否かを判断し、ここで、変数iがnよりも小さいときには、「YES」へ進み、ステップS60へ戻り、同じ処理を繰り返す。一方、ステップS80において、変数iがnよりも小さくないときには、「NO」へ進み、ステップS90へ進み、設定する画像Gとして2次元背景画像Anを設定する。
【0029】
この後、ステップS100へ進み、図5に示すように、検査カメラ5の視点から延びる光軸11の逆向きベクトル(V)を算出する。そして、ステップS110へ進み、法線が逆向きベクトル(V)となる平面Pを作成する。続いて、ステップS120へ進み、上記平面Pに画像G(即ち、2次元背景画像Ai)を貼り付ける。これにより、検査カメラ5の光軸11に対して2次元背景画像Aiの平面が直交するように2次元背景画像Aiの位置を設定する処理が完了する。
【0030】
尚、本シミュレーション装置1の画面で環境光等の調整が必要であれば、その調整を行なう。
そして、次の処理ステップでは、本シミュレーション装置1で設備動作を記述する。
【0031】
更に、次の処理ステップでは、本シミュレーション装置1において、設備動作シミュレーションを開始する。
続いて、次の処理ステップでは、仮想空間内の映像を、外部トリガー入力のタイミングで検査カメラ5により撮影する。
【0032】
そして、次の処理ステップでは、撮影した画像データを視覚検査プログラムに出力する。
更に、次の処理ステップでは、視覚検査プログラムを実行し、画像処理を行なう。
【0033】
さて、上述した本実施例のシミュレーション装置1用の2次元背景画像Aiを作成する処理並びにシミュレーション装置1の動作の一例について、図9ないし図13を参照して説明する。
【0034】
この一例では、図9に示すように、実在する工場の対象設備Tにおいて、丸印で示す位置に検査対象ワーク7(3Dデータからなる仮想ワーク)を置き、画像処理によってワーク7の欠品を検査する視覚検査システムを設計する。この場合、検査対象ワーク7の画像処理に最も適した検査カメラ5の位置を、実際に画像処理した結果から決定する処理を行なう。
【0035】
まず、図10(a)に示すように、実在する工場の対象設備Tについて、デジカメ9を使用して5つの位置(0)〜(4)から撮影し、5枚の2次元背景画像A1〜A5(図11参照)を取得する。尚、5つの位置(0)〜(4)のうち、位置(0)は、XY平面に垂直でXY軸の交点の位置であり、位置(1)〜(4)は、それぞれXY平面上の45度、135度、−135度、−45度の位置であり(図10(b)参照)、且つ、高さ方向がXZ平面での45度の位置である(図10(c)参照)。
【0036】
次に、上記撮影した2次元背景画像A1〜A5と、撮影条件の情報(撮影角度データ)とをペアでシミュレーション装置1内の記憶部に登録する(図11参照)。そして、設計上の検査対象ワーク7の3Dデータ(図12参照)を用意し、これをシミュレーション装置1内の記憶部に取り込む(登録する)。
【0037】
この後、シミュレーション装置1において、検査カメラ5の位置および撮影角度に対応させて、2次元背景画像A1〜A5と検査対象ワーク7の3Dデータとを重ね合わせて、検査カメラ5による撮影画像を仮想空間内で擬似的に(計算により)作成する。図13に、検査カメラ5による撮影画像の作成例B1〜B5を示す。尚、図13において、符号(0)〜(4)は、5つの位置(撮影角度)(0)〜(4)に対応している。
【0038】
そして、上記したようにして作成した撮影画像B1〜B5を視覚検査プログラムに与えて、該視覚検査プログラムにより画像処理を実行するように構成されている。
このような構成の本実施例によれば、現実の工場において検査カメラ5の設定位置からデジカメにより前記工場の背景を複数の撮影角度でそれぞれ撮影して得られた複数の2次元撮影画像Aiを、その撮影角度データBiと共にシミュレーション装置1に入力si、検査対象のワーク7の3次元データをシミュレーション装置1に入力し、シミュレーション装置1内において検査カメラ5の位置とワーク7の位置を設定し、複数の2次元撮影画像Aiの中から、検査カメラ5の撮影角度と一致する撮影角度データBiを有する2次元撮影画像Aiを選択し、この選択した画像を背景画像とし、この背景画像の位置を、検査カメラ5の光軸に対して背景画像の平面が直交するように設定するものであって、検査カメラ5の撮影角度が変化していくときに、検査カメラ5の光軸に対する背景画像の平面の直交関係を維持するようにし、そして、シミュレーション装置1内において、背景画像上にワーク7の3Dデータを重ねて配置したものを検査カメラ5により撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力するように構成したので、視覚検査システムの設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置1に容易に再現することができる。
【0039】
また、上記実施例においては、検査カメラ5の撮影角度Cが撮影角度データB1と一致しない場合であっても、撮影角度データB1と撮影角度データB2の中間の角度までの間は、2次元背景画像A1を背景画像として設定し、上記中間の角度を越えたら、2次元背景画像A2を背景画像として設定する。即ち、
(B(i−1)+Bi)/2<C≦(Bi+B(i+1))/2
であるときには、2次元背景画像Aiを背景画像として設定するように構成したので、用意する2次元背景画像としては5つの2次元背景画像A1〜A5だけであるから、用意する画像のデータ量を大幅に少なくすることができ、しかも、画像処理を十分正確に実行することができる。
【符号の説明】
【0040】
図面中、1はシミュレーション装置、2はパソコン、3はシミュレーションプログラム、4は視覚検査プログラム、5は検査カメラ、6は光源、7は検査対象ワーク、8はPLC、9はデジカメ、10は撮影者、11は光軸を示す。
【技術分野】
【0001】
本発明は、検査カメラを使う視覚検査システムを設計する場合に用いるシミュレーション装置において使用するための画像データを生成するシミュレーション装置の画像データ生成装置に関する。
【背景技術】
【0002】
工場の生産設備等に組み込まれる視覚検査システムを設計する場合、依頼元のオーダーメイドで設計することになるので、組み込む予定の依頼元の工場で実際にテストしながら視覚検査システムを設計可能であるならば、比較的容易に設計することができる。しかし、視覚検査システムを納品する前に、依頼元の工場で設計することはかなり困難であることが多い。このため、視覚検査システムを製造販売するメーカーの実験室内でテストしたり、シミュレーション装置(シミュレータ)によりテストしたりして設計している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平4−217480号公報
【特許文献2】特開2000−267719号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記したようにして設計した視覚検査システムを依頼元の工場に納品し設置して動作させてみると、実際に検査カメラで撮影される画像と、実験室やシミュレーション装置内で検査カメラで撮影される画像とが異なるために、予定していた検査機能が発揮できなくなる場合があった。このような場合には、2度手間となってしまうが、実際の工場で再調整を行なう必要があった。
【0005】
これに対して、シミュレーション装置において、その仮想空間内で依頼元の工場の設備そのものを再現する対策が考えられる。この対策を行なえば、確かに工場と同じ環境をシミュレーション装置に再現できるので、上記2度手間対策としては、ある程度効果的である。しかし、シミュレーション装置で工場設備を再現するには、工場設備の3Dデータ(3次元画像データ)を生成して用意する必要があり、この工場設備の3Dデータを生成する作業は、非常に手間のかかる作業であるため、設計時間が非常に長くなるおそれがあり、実現可能な対策とはいえない。また、シミュレーション装置で工場設備を再現できたとしても、現実の工場内の経年劣化などで発生する微細なコントラスト変化や模様変化などまでは、再現が困難であるので、この点では、実際の工場で再調整しなければならない可能性がある。特に、微細なコントラスト変化や模様変化などを再現できないことは、視覚検査システムにとっては、大きな問題となるおそれがある。尚、シミュレーション装置の例を、特許文献1、2に示す。
【0006】
そこで、本発明の目的は、設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置に再現することができるシミュレーション装置の画像データ生成装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1の発明によれば、現実の工場において検査カメラの設定位置からカメラで前記工場の背景を複数の撮影角度でそれぞれ撮影して得られた複数の2次元撮影画像を、その撮影角度データと共にシミュレーション装置に入力する手段と、検査対象のワークの3次元データを前記シミュレーション装置に入力する手段と、前記シミュレーション装置内において、前記検査カメラの位置と前記ワークの位置を設定する手段と、前記複数の2次元撮影画像の中から、前記検査カメラの撮影角度と一致する撮影角度データを有する2次元撮影画像を選択し、この選択した画像を背景画像とする手段と、前記背景画像の位置を、前記検査カメラの光軸に対して前記背景画像の平面が直交するように設定するものであって、前記検査カメラの撮影角度が変化していくときに、前記検査カメラの光軸に対する前記背景画像の平面の直交関係を維持する手段と、前記シミュレーション装置内において、前記背景画像上に前記ワークを重ねて配置したものを前記検査カメラにより撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力する手段とを備え、前記検査カメラを平行移動させる場合には、2次元背景画像も平行移動させるように設定したので、設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置に再現することができる。
また、請求項2の発明のように、前記2次元背景画像Aiを平行移動させる場合、上下方向、左右方向、および、奥行き方向の3方向に平行移動させることが可能な構成となっていることが好ましい。
【図面の簡単な説明】
【0008】
【図1】本発明の一実施例を示すシミュレーション装置の斜視図
【図2】検査カメラと検査対象ワークと2次元背景画像との配置関係を示す図
【図3】デジカメで工場設備の2次元背景画像を撮影する様子を示す図
【図4】検査カメラの撮影角度と2次元背景画像とを対応させる関係を示す図
【図5】検査カメラの光軸と2次元背景画像の平面が直交する関係を示す図
【図6】検査カメラの撮影角度が変化したときに、光軸と2次元背景画像の平面が直交する関係が維持されることを示す図
【図7】検査カメラを平行移動させるときに、2次元背景画像も平行移動させることを示す図
【図8】検査カメラの光軸に対して2次元背景画像の平面が直交するように2次元背景画像の位置を設定する処理の制御内容を示すフローチャート
【図9】工場設備および検出対象ワークを示す斜視図
【図10】工場設備をデジカメで撮影する様子を示す図
【図11】デジカメで撮影した2次元背景画像を示す図
【図12】検出対象ワーク(3Dデータ)の斜視図
【図13】2次元背景画像に検出対象ワーク(3Dデータ)を重ね合わせた画像を示す図
【発明を実施するための形態】
【0009】
以下、本発明を視覚検査システムをシミュレートするシミュレーション装置に適用した一実施例について、図面を参照しながら説明する。本実施例のシミュレーション装置1は、図1に示すように、パソコン2と、このパソコン2にインストールされたシミュレーションプログラム(シミュレータ)3とから構成されている。
【0010】
設計した視覚検査システムを上記シミュレーション装置1でシミュレートする場合、視覚検査システムを構成する視覚検査プログラム4をシミュレーション装置1(パソコン2)に取り込んでおく。そして、視覚検査システムを構成する検査カメラ5や光源6等については、予めシミュレーション装置1(パソコン2)内のプログラムを用いて仮想的にそれぞれに対応する仮想な検査カメラ5や仮想な光源6等を設けておく。検査カメラ5の位置や姿勢は、シミュレーション装置1のマウスやキーボード等で自由に設定、変更可能である。また、光源6等の条件(照度、位置、方向、色等)も、マウスやキーボード等で自由に設定、変更可能である。
【0011】
更に、検査対象ワーク7については、予め3DCADを用いて検査対象ワーク7の3Dデータを作成し、この作成した3Dデータ(または、ワーク7の供給メーカーから提供された3Dデータ)をシミュレーション装置1(パソコン2)内の記憶部に取り込んでおく(入力する)。また、検査カメラ5の撮影のタイミングを指示するためのトリガー信号を出力するPLC(プログラマブルコントローラ)8をシミュレーション装置1(パソコン2)に接続する。このPLC8は、視覚検査システムを納品する工場の設備に組み込まれているPLCと同じ制御機能を有している。
【0012】
次に、納品する工場の設備の2次元画像データ、具体的には、検査対象ワーク7を検査カメラ5で撮影したときに検査対象ワーク7の背景となる画像(以下、2次元背景画像と称す)を準備(作成)する。この場合、図2(a)に示すように、2次元背景画像9a、9b、・・・を準備したとし、これら2次元背景画像9a、9b、・・・をシミュレーション装置1に取り込んで利用する際には、図2(b)に示すように、検査カメラ5の光軸L1、L2に直交するように2次元背景画像9a、9bを配置する。尚、光軸L1の検査カメラ5の撮影位置(撮影角度)P1に2次元背景画像9aが対応しているとし、光軸L2の検査カメラ5の撮影位置(撮影角度)P2に2次元背景画像9bが対応しているとする。
【0013】
そして、図2(b)に示すように、検査対象ワーク7の3Dデータを所定位置(ワーク7を配置する位置)に配置し、撮影位置(撮影角度)P1の検査カメラ5で検査対象ワーク7を撮影すると、図2(c)に示すような撮影画像10a(2次元背景画像9aを背景とする画像)を撮影することができる。同様にして、撮影位置(撮影角度)P2の検査カメラ5で検査対象ワーク7を撮影すると、図2(c)に示すような撮影画像10b(2次元背景画像9bを背景とする画像)を撮影することできる。
【0014】
以下、上記撮影画像10a、10bが、実際の工場の設備で撮影した画像とほぼ同じような類似する画像(即ち、画像処理する上でほぼ同等の画像)となる次元背景画像9a、9bを準備(作成)する手順について、具体的に説明する。理解を容易にするために用例では2次元空間で説明を行なうが、現実では3次元空間に拡張して、同様に処理するものとする。
【0015】
まず、図3に示すように、実際の工場の設備において、検査対象ワーク7の背景となる画像をデジカメ9により撮影する。この場合、撮影者10は、検査カメラ5のカメラ設定位置Pから検査対象ワーク7の背景を、例えば5つの撮影ポジション1〜5で、即ち、5つの撮影角度B1〜B5で順次撮影する。そして、撮影した2次元画像A1〜A5と、撮影角度データB1〜B5とを対応させてペアで記録するように構成されている。尚、2次元画像A1B1、A2B2、・・・AnBnの順で、撮影角度が増加(または減少)するように設定されている。
【0016】
そして、上記したようにして準備した2次元背景画像A1B1、A2B2、・・・を、その撮影角度データB1〜B5と共にシミュレーション装置1(パソコン2)内の記憶部(ハードディスク等)に取り込む(入力する)。この場合、2次元背景画像A1B1、A2B2、・・・を記録したメモリカード等からメモリカードリーダを介してシミュレーション装置1に入力させると共に、撮影角度データB1〜B5をキーボード等を操作することにより入力させる構成となっている。
【0017】
さて、上記2次元背景画像A1B1、A2B2、・・・と、前記した検査対象ワーク7の3Dデータとをシミュレーション装置1に入力させる処理が完了したら、シミュレーション装置1内において、検査カメラ5の位置と検査対象ワーク7の位置とを設定する。続いて、シミュレーション装置1内において、上記入力した2次元背景画像A1B1、A2B2、・・・の中から、検査カメラ5の撮影角度と一致する撮影角度データを有する2次元撮影画像を選択し、この選択した画像を背景画像として設定する処理を実行する。
【0018】
具体的には、図4に示すように、検査カメラ5の撮影角度Cが撮影角度データB1と一致したら、2次元背景画像A1を背景画像として設定する。同様にして、検査カメラ5の撮影角度Cが撮影角度データB2と一致したら、2次元背景画像A2を背景画像として設定し、検査カメラ5の撮影角度Cが撮影角度データB3と一致したら、2次元背景画像A3を背景画像として設定し、検査カメラ5の撮影角度Cが撮影角度データB4と一致したら、2次元背景画像A4を背景画像として設定し、検査カメラ5の撮影角度Cが撮影角度データB5と一致したら、2次元背景画像A5を背景画像として設定する。
【0019】
また、検査カメラ5の撮影角度Cが撮影角度データB1と一致しない場合であっても、撮影角度データB1と撮影角度データB2の中間の角度までの間は、2次元背景画像A1を背景画像として設定し、上記中間の角度を越えたら、2次元背景画像A2を背景画像として設定する。即ち、
(B(i−1)+Bi)/2<C≦(Bi+B(i+1))/2
であるときには、2次元背景画像Aiを背景画像として設定するように構成されている。この背景画像の設定例を図4に示す。
【0020】
即ち、検査カメラ5の撮影角度Cが図4中の角度C1内であるとき、2次元背景画像A1を設定し、撮影角度Cが図4中の角度C2内であるとき、2次元背景画像A2を設定し、撮影角度Cが図4中の角度C3内であるとき、2次元背景画像A3を設定し、撮影角度Cが図4中の角度C4内であるとき、2次元背景画像A4を設定し、撮影角度Cが図4中の角度C5内であるとき、2次元背景画像A5を設定する。
【0021】
そして、図5に示すように、検査カメラ5の光軸11に対して2次元背景画像Aiの平面が直交するように、2次元背景画像Aiの位置を設定している。更に、図6に示すように、検査カメラ55の撮影角度が変化していくときに、検査カメラ5の光軸11に対する2次元背景画像Aiの平面の直交関係を維持するように構成されている。例えば、検査カメラ5の撮影角度Cが図4中の角度C1内であるときは、同じ2次元背景画像A1を設定し続けるが、このとき、図6に示すように、検査カメラ55の撮影角度Cが角度C1内で変化していくときに、検査カメラ5の光軸11に対する2次元背景画像A1の平面の直交関係を維持するように設定している。
【0022】
尚、検査カメラ5の撮影角度Cが図4中の角度Ci内であるときに、同じ2次元背景画像Aiを設定し続ける理由は、検査カメラ5の撮影角度Cが角度Ci内であれば、検査対象ワーク7の背景は、あまり変化しないことから、同じ2次元背景画像Aiを設定し続けても、ほとんど支障がない。特に、画像処理する対象は、検査対象ワーク7であることから、検査対象ワーク7の画像が正確であれば、背景画像が少し正確でなかったとしても、問題が発生することはない。つまり、背景は、しょせん背景であり、それぼど正確でなくても良いのである。そして、この場合、用意する2次元背景画像としては5つの2次元背景画像A1〜A5だけであるから、用意する画像のデータ量を大幅に少なくすることができ、しかも、画像処理を十分正確に実行することができる。従って、画像データを用意する手間を大幅に少なくすることができながら、十分な効果を得ることができる。
【0023】
また、検査カメラ5(のカメラ視点)を平行移動させる場合には、図7に示すように、2次元背景画像Aiも平行移動させるように設定する。この場合、上下方向、左右方向、および、奥行き方向の3方向に平行移動させることが可能なように構成されている。
【0024】
次に、シミュレーション装置1において、検査カメラ5の光軸11に対して2次元背景画像Aiの平面が直交するように2次元背景画像Aiを設定する処理の一例の制御内容について、図8のフローチャートを参照して説明する。まず、ステップS10においては、準備した2次元背景画像Aiと、その撮影角度データBiとをシミュレーション装置1(パソコン2)内の記憶部に登録(入力)する。この場合、2次元背景画像Aiおよび撮影角度データBiのペアの登録数をnとする(従って、i=1、・・・、n)。
【0025】
続いて、ステップS20へ進み、撮影角度データBiを基準にして2次元背景画像Aiをソートする(A1B1、A2B2、・・・、AnBn)。この場合、説明上、昇順とするが、降順でも良い。そして、ステップS30へ進み、検査カメラ5の位置を設定し、検査カメラ5の撮影角度(カメラ視点角度)Cを取得する。
【0026】
次いで、ステップS40へ進み、撮影角度Cが撮影角度データB1よりも小さいか否かを判断する。ここで、撮影角度Cが撮影角度データB1よりも小さいときには、「YES」へ進み、ステップS130へ進み、設定する画像Gとして2次元背景画像A1を設定する。
【0027】
一方、ステップS40において、撮影角度Cが撮影角度データB1よりも小さくないときには、「NO」へ進み、ステップS50へ進み、変数iに「0」をセットする。続いて、ステップS60へ進み、
(B(i−1)+Bi)/2<C≦(Bi+B(i+1))/2
が成立するか否かを判断する。ここで、上記式が成立するときには、「YES」へ進み、ステップS140へ進み、設定する画像Gとして2次元背景画像Aiを設定する。
【0028】
また、ステップS60において、上記式が成立しないときには、「NO」へ進み、ステップS70へ進み、変数iをカウントアップ(+1)する。そして、ステップS80へ進み、変数iがnよりも小さいか否かを判断し、ここで、変数iがnよりも小さいときには、「YES」へ進み、ステップS60へ戻り、同じ処理を繰り返す。一方、ステップS80において、変数iがnよりも小さくないときには、「NO」へ進み、ステップS90へ進み、設定する画像Gとして2次元背景画像Anを設定する。
【0029】
この後、ステップS100へ進み、図5に示すように、検査カメラ5の視点から延びる光軸11の逆向きベクトル(V)を算出する。そして、ステップS110へ進み、法線が逆向きベクトル(V)となる平面Pを作成する。続いて、ステップS120へ進み、上記平面Pに画像G(即ち、2次元背景画像Ai)を貼り付ける。これにより、検査カメラ5の光軸11に対して2次元背景画像Aiの平面が直交するように2次元背景画像Aiの位置を設定する処理が完了する。
【0030】
尚、本シミュレーション装置1の画面で環境光等の調整が必要であれば、その調整を行なう。
そして、次の処理ステップでは、本シミュレーション装置1で設備動作を記述する。
【0031】
更に、次の処理ステップでは、本シミュレーション装置1において、設備動作シミュレーションを開始する。
続いて、次の処理ステップでは、仮想空間内の映像を、外部トリガー入力のタイミングで検査カメラ5により撮影する。
【0032】
そして、次の処理ステップでは、撮影した画像データを視覚検査プログラムに出力する。
更に、次の処理ステップでは、視覚検査プログラムを実行し、画像処理を行なう。
【0033】
さて、上述した本実施例のシミュレーション装置1用の2次元背景画像Aiを作成する処理並びにシミュレーション装置1の動作の一例について、図9ないし図13を参照して説明する。
【0034】
この一例では、図9に示すように、実在する工場の対象設備Tにおいて、丸印で示す位置に検査対象ワーク7(3Dデータからなる仮想ワーク)を置き、画像処理によってワーク7の欠品を検査する視覚検査システムを設計する。この場合、検査対象ワーク7の画像処理に最も適した検査カメラ5の位置を、実際に画像処理した結果から決定する処理を行なう。
【0035】
まず、図10(a)に示すように、実在する工場の対象設備Tについて、デジカメ9を使用して5つの位置(0)〜(4)から撮影し、5枚の2次元背景画像A1〜A5(図11参照)を取得する。尚、5つの位置(0)〜(4)のうち、位置(0)は、XY平面に垂直でXY軸の交点の位置であり、位置(1)〜(4)は、それぞれXY平面上の45度、135度、−135度、−45度の位置であり(図10(b)参照)、且つ、高さ方向がXZ平面での45度の位置である(図10(c)参照)。
【0036】
次に、上記撮影した2次元背景画像A1〜A5と、撮影条件の情報(撮影角度データ)とをペアでシミュレーション装置1内の記憶部に登録する(図11参照)。そして、設計上の検査対象ワーク7の3Dデータ(図12参照)を用意し、これをシミュレーション装置1内の記憶部に取り込む(登録する)。
【0037】
この後、シミュレーション装置1において、検査カメラ5の位置および撮影角度に対応させて、2次元背景画像A1〜A5と検査対象ワーク7の3Dデータとを重ね合わせて、検査カメラ5による撮影画像を仮想空間内で擬似的に(計算により)作成する。図13に、検査カメラ5による撮影画像の作成例B1〜B5を示す。尚、図13において、符号(0)〜(4)は、5つの位置(撮影角度)(0)〜(4)に対応している。
【0038】
そして、上記したようにして作成した撮影画像B1〜B5を視覚検査プログラムに与えて、該視覚検査プログラムにより画像処理を実行するように構成されている。
このような構成の本実施例によれば、現実の工場において検査カメラ5の設定位置からデジカメにより前記工場の背景を複数の撮影角度でそれぞれ撮影して得られた複数の2次元撮影画像Aiを、その撮影角度データBiと共にシミュレーション装置1に入力si、検査対象のワーク7の3次元データをシミュレーション装置1に入力し、シミュレーション装置1内において検査カメラ5の位置とワーク7の位置を設定し、複数の2次元撮影画像Aiの中から、検査カメラ5の撮影角度と一致する撮影角度データBiを有する2次元撮影画像Aiを選択し、この選択した画像を背景画像とし、この背景画像の位置を、検査カメラ5の光軸に対して背景画像の平面が直交するように設定するものであって、検査カメラ5の撮影角度が変化していくときに、検査カメラ5の光軸に対する背景画像の平面の直交関係を維持するようにし、そして、シミュレーション装置1内において、背景画像上にワーク7の3Dデータを重ねて配置したものを検査カメラ5により撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力するように構成したので、視覚検査システムの設計時間を長くすることなく、納品先の工場と類似する環境をシミュレーション装置1に容易に再現することができる。
【0039】
また、上記実施例においては、検査カメラ5の撮影角度Cが撮影角度データB1と一致しない場合であっても、撮影角度データB1と撮影角度データB2の中間の角度までの間は、2次元背景画像A1を背景画像として設定し、上記中間の角度を越えたら、2次元背景画像A2を背景画像として設定する。即ち、
(B(i−1)+Bi)/2<C≦(Bi+B(i+1))/2
であるときには、2次元背景画像Aiを背景画像として設定するように構成したので、用意する2次元背景画像としては5つの2次元背景画像A1〜A5だけであるから、用意する画像のデータ量を大幅に少なくすることができ、しかも、画像処理を十分正確に実行することができる。
【符号の説明】
【0040】
図面中、1はシミュレーション装置、2はパソコン、3はシミュレーションプログラム、4は視覚検査プログラム、5は検査カメラ、6は光源、7は検査対象ワーク、8はPLC、9はデジカメ、10は撮影者、11は光軸を示す。
【特許請求の範囲】
【請求項1】
現実の工場において検査カメラの設定位置からカメラで前記工場の背景を複数の撮影角度でそれぞれ撮影して得られた複数の2次元撮影画像を、その撮影角度データと共にシミュレーション装置に入力する手段と、
検査対象のワークの3次元データを前記シミュレーション装置に入力する手段と、
前記シミュレーション装置内において、前記検査カメラの位置と前記ワークの位置を設定する手段と、
前記複数の2次元撮影画像の中から、前記検査カメラの撮影角度と一致する撮影角度データを有する2次元撮影画像を選択し、この選択した画像を背景画像とする手段と、
前記背景画像の位置を、前記検査カメラの光軸に対して前記背景画像の平面が直交するように設定するものであって、前記検査カメラの撮影角度が変化していくときに、前記検査カメラの光軸に対する前記背景画像の平面の直交関係を維持する手段と、
前記シミュレーション装置内において、前記背景画像上に前記ワークを重ねて配置したものを前記検査カメラにより撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力する手段とを備え、
前記検査カメラを平行移動させる場合には、2次元背景画像も平行移動させるように設定することを特徴とするシミュレーション装置の画像データ生成装置。
【請求項2】
前記2次元背景画像Aiを平行移動させる場合、上下方向、左右方向、および、奥行き方向の3方向に平行移動させることが可能な構成となっていることを特徴とする請求項1記載のシミュレーション装置の画像データ生成装置。
【請求項1】
現実の工場において検査カメラの設定位置からカメラで前記工場の背景を複数の撮影角度でそれぞれ撮影して得られた複数の2次元撮影画像を、その撮影角度データと共にシミュレーション装置に入力する手段と、
検査対象のワークの3次元データを前記シミュレーション装置に入力する手段と、
前記シミュレーション装置内において、前記検査カメラの位置と前記ワークの位置を設定する手段と、
前記複数の2次元撮影画像の中から、前記検査カメラの撮影角度と一致する撮影角度データを有する2次元撮影画像を選択し、この選択した画像を背景画像とする手段と、
前記背景画像の位置を、前記検査カメラの光軸に対して前記背景画像の平面が直交するように設定するものであって、前記検査カメラの撮影角度が変化していくときに、前記検査カメラの光軸に対する前記背景画像の平面の直交関係を維持する手段と、
前記シミュレーション装置内において、前記背景画像上に前記ワークを重ねて配置したものを前記検査カメラにより撮影して得られる画像を計算により求め、この求めた画像を検査カメラ画像として出力する手段とを備え、
前記検査カメラを平行移動させる場合には、2次元背景画像も平行移動させるように設定することを特徴とするシミュレーション装置の画像データ生成装置。
【請求項2】
前記2次元背景画像Aiを平行移動させる場合、上下方向、左右方向、および、奥行き方向の3方向に平行移動させることが可能な構成となっていることを特徴とする請求項1記載のシミュレーション装置の画像データ生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−133817(P2012−133817A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2012−71508(P2012−71508)
【出願日】平成24年3月27日(2012.3.27)
【分割の表示】特願2008−210627(P2008−210627)の分割
【原出願日】平成20年8月19日(2008.8.19)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【出願人】(390001052)一般財団法人機械振興協会 (21)
【Fターム(参考)】
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願日】平成24年3月27日(2012.3.27)
【分割の表示】特願2008−210627(P2008−210627)の分割
【原出願日】平成20年8月19日(2008.8.19)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【出願人】(390001052)一般財団法人機械振興協会 (21)
【Fターム(参考)】
[ Back to top ]