説明

画像処理装置および方法

【課題】撮影画像から対象物の画像を精度よく検出する。
【解決手段】コンピュータ1は、設定モードにおいて撮影部18が撮影した対象物の撮影画像を、表示部3に表示する。そして、キーボード6Aからの外部入力に従い高さの閾値データを受付ける。撮影画像について検出された高さ情報と、受付けた閾値データとに基づき、撮影画像から、閾値データが指示する高さ情報を有した部分画像を抽出して表示部3に表示する。運転モードでは、コンピュータ1は、対象物を撮影することにより取得した画像を表示部3に表示し、当該撮影画像について検出された高さ情報と、設定モードにおいて予め受付けた閾値データとに基づき、当該撮影画像から、当該閾値データが指示する高さ情報を有した部分画像を抽出する。運転モードで抽出された画像データは、対象物の欠陥検査のために適用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、取得した画像の中から予め設定した高さ情報を有する領域を特定して抽出する画像処理装置および方法に関する。
【背景技術】
【0002】
製造現場においては、省力化および高効率化の観点から、オートメーション化が進められている。オートメーション化を実現するために、多くのセンサ類が使用される。このようなセンサ類の中でもワーク(検査対象物)を撮影し、撮影した画像を処理することで当該ワークの欠陥検査を行なうことができる画像センサがよく用いられる。
【0003】
多くの画像センサは、ワークを撮影する撮影部と、撮影部から得られた画像を処理する画像処理部から構成され、撮影部により撮影された画像の中に所定の形状を持つ領域が含まれるか否かなどを判断する。このような画像処理を用いたワークの欠陥検査において、たとえば、パレット上に置かれたワークの欠陥検査がある。従来、ワークは、製造ラインを搬送される過程で撮影部であるカメラの視野の同じ場所で停止する。撮影画像からワーク画像を検出するために、視野の所定位置に計測領域を設け、計測領域のサイズをワークのサイズに一致するように設定する。撮影画像においてワークの位置を計測領域に一致するようにずれを修正した後に、検査工程に移る。位置ずれの修正は、撮影した画像についてサーチやエッジ処理を適用して行う。
【0004】
また撮影画像からワーク画像を検出する他の方法として、色情報を用いて背景をカットする処理が提供されている。この処理の一例として、出願人による特許文献1(特開2008−15706号公報)に記載の技術が提案されている。この技術では、ワークの色情報を使って、撮影画像からワーク画像のみを抽出(背景をカット)することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−15706号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述の計測領域を利用したワーク画像の検出では、パレット上に、ワークとよく似た背景(緩衝材など)が存在すると、サーチやエッジ処理を使っても、背景の影響で、サーチ計測やエッジ位置計測を正確に行なうことができず、位置ずれ量を検出することが困難となり、正確な位置ずれの修正を行なうことができない。その結果、ワークの欠陥検査に時間がかかり、また高い検査精度を得ることが困難となる。
【0007】
また、上述の色情報を用いた背景カット処理によるワーク画像の検出では、背景とワークが同じ色であった場合には背景のみのカット処理は困難である。また、色情報を用いるため、照明条件など外部環境の影響を受けやすい。
【0008】
それゆえにこの発明の目的は、検出対象の配置および背景の色の制約を受けず、また照明条件などの外部環境の影響を受けることなく、撮影画像から対象物の画像を検出することのできる画像処理装置および方法を提供することである。
【課題を解決するための手段】
【0009】
この発明のある局面に従う画像処理装置は、表示部と、対象物の高さ情報を入力する高さ入力部と、設定モードにおいて、画像処理のためのデータを設定する設定部と、運転モードにおいて、画像を入力し、設定部が予め設定したデータに基づき入力画像を処理する運転処理部とを備える。
【0010】
設定部は、設定モードにおいて対象物を撮影することにより取得した第1画像を、表示部に表示する設定画像表示部と、外部入力に従い、高さの閾値データを受付ける閾値受付部と、高さ入力部が設定モードにおいて入力した高さ情報と、閾値受付部により受付けた閾値データとに基づき、第1画像から、閾値データが指示する高さ情報を有した第1部分画像を検出する第1検出部と、を含む。
【0011】
運転処理部は、運転モードにおいて対象物を撮影することにより取得した第2画像を入力し、表示部に表示する運転画像表示部と、高さ入力部が運転モードにおいて入力した高さ情報と、設定モードにおいて閾値受付部が受付けた閾値データとに基づき、第2画像から、当該閾値データが指示する高さ情報を有した第2部分画像を検出する第2検出部と、を含む。
【0012】
好ましくは、設定部は、設定モードにおいて、第1検出部が検出した第1部分画像を表示部の画面に表示し、画面の第1部分画像の背景画像は、所定色で表示される。
【0013】
この態様により、設定モードにおいては、ユーザは、検出した第1部分画像を確認することができる。所望画像が検出されていないと確認した場合には、再度、外部入力をして閾値データの再設定を行うことができる。
【0014】
好ましくは、背景画像の所定色は可変である。
好ましくは、高さ情報は、対象物の画像の部分毎に対象物の高さを指す。
【0015】
好ましくは、高さ情報は、対象物の画像の画素毎に対象物の高さを指す。
好ましくは、設定部は、設定モードにおいて高さ入力部が入力した高さ情報に基づき、第1画像の指定された位置に対応する部分の高さ情報を検出し、検出した当該高さ情報に基づき、当該指定位置に対応する対象物の断面形状を指す第1ラインを、第1画像とともに表示する断面形状表示部を、さらに含む。
【0016】
好ましくは、第1ラインが指す断面形状に対応する高さ情報の値が、第1ラインに関連付けて、または、近傍に表示される。好ましくは、この高さ情報の値の表示または非表示は、切替可能である。
【0017】
好ましくは、第1画像は直交する第1軸および第2軸で規定される2次元座標平面に対応し、指定位置は、第1軸および第2軸それぞれに平行な第2ラインのそれぞれが通過する座標により指示される。
【0018】
好ましくは、閾値受付部が受付けた閾値データが指す高さ情報を示すための第3ラインを、第1ラインに関連付けて第1画像とともに表示する。
【0019】
好ましくは、第3ラインに関連付けて、または、近傍に、高さ情報の値が表示される。好ましくは、この高さ情報の値の表示または非表示は、切替可能である。
【0020】
好ましくは、外部入力は、設定画像表示部により表示された第1画像における部分エリアを指定するエリア指定入力を含み、高さ入力部が入力した高さ情報のうち、指定された前記エリアに対応する部分の高さ情報により指示される。
【0021】
好ましくは、外部入力は、設定画像表示部により表示された第1画像における複数の点を指定する点指定入力を含み、高さの閾値データは、高さ入力部が入力した高さ情報のうち、指定された複数点に対応する部分を通る平面の高さにより指示される。
【0022】
好ましくは、平面は、閾値データの上限と下限それぞれに対応する上限面と下限面を含み、複数点は上限面と前記下限面のための指定点を含み、高さの閾値データは、上限面と下限面それぞれの前記高さ情報により指示され、第2検出部は、運転モードにおいて高さ入力部が入力した高さ情報と、設定モードにおいて閾値受付部が受付けた閾値データが指示する上限面および下限面の高さ情報とに基づき、上限面の高さ情報以下、且つ下限面の高さ情報以上である高さ情報を有した第2部分画像を検出する。
【0023】
好ましくは、上限面と下限面それぞれの高さ情報は、外部入力に基づき可変である。
好ましくは、部分毎の対象物の高さ情報は、当該部分に対応する画像の階調値を指し、閾値受付部は、部分毎の階調値と外部入力とに基づき、第1画像において周囲領域の画素の濃淡変化の程度よりも、大きな変化程度を有する部分を検出し、検出した部分を通る曲面を生成する濃淡面生成部を、含み、閾値受付部は、曲面が通る部分に対応の高さ情報に基づいた閾値データを受付ける面閾値受付部を、有する。
【0024】
好ましくは、面閾値受付部が受付ける閾値データは、オフセット値に基づき更新された後の曲面が通る部分に対応の高さ情報を指す。
【0025】
好ましくは、オフセット値は、外部入力に基づき変更可能である。
好ましくは、周囲領域のサイズは、外部入力に基づき変更可能である。
【0026】
この発明のある局面に従う画像処理法は、設定モードにおいて、画像処理のためのデータを設定する設定ステップと、運転モードにおいて、画像を入力し、設定ステップよって設定されたデータに基づき入力画像を処理する運転処理ステップとを備える。
【0027】
設定ステップでは、設定モードにおいて対象物を撮影することにより取得した第1画像を、表示する設定画像表示ステップと、外部入力に従い高さの閾値データを受付ける閾値受付ステップと、設定モードにおいて入力する対象物の高さ情報と、閾値受付ステップにより受付けた閾値データとに基づき、第1画像から、閾値データが指示する高さ情報を有した第1部分画像を検出する第1検出ステップと、を含む。
【0028】
運転処理ステップは、運転モードにおいて対象物を撮影することにより取得した第2画像を入力し、表示する運転画像表示ステップと、運転モードにおいて入力する対象物の高さ情報と、設定モードにおいて閾値受付ステップが受付けた閾値データとに基づき、第2画像から、当該閾値データが指示する高さ情報を有した第2部分画像を検出する第2検出ステップと、を含む。
【発明の効果】
【0029】
この発明によれば、対象物の撮影画像から、対象物の高さ情報に基づき、外部入力に従う高さの閾値データに該当する部分画像を検出するので、対象物の背景の模様や色に制約を受けることなく、また照明条件などの外部環境変化に影響を受けることなく、撮影画像から閾値データで指定された部分画像を検出することができる。
【図面の簡単な説明】
【0030】
【図1】この発明の実施の形態に係る画像処理装置の全体構成を示す概略図である。
【図2】この発明の実施の形態に係る画像処理装置が搭載されるコンピュータのハードウェア構成を示す概略図である。
【図3】(A)〜(D)は、この発明の実施の形態に係る高さ閾値の指定方法を説明する図である。
【図4】この発明の実施の形態に係る全体処理の概略フローチャートである。
【図5】この発明の実施の形態に係る設定処理の概略フローチャートである。
【図6】この発明の実施の形態に係る表示画像の選択を説明するための図である。
【図7】(A)〜(C)は、この発明の実施の形態に係る表示画像として選択される候補画像の一例を示す図である。
【図8】この発明の実施の形態に係るLUTの作成手順を説明するための図である。
【図9】この発明の実施の形態に係る画像におけるプロファイルの表示を説明する図である。
【図10】この発明の実施の形態に係る点指定方法によるパラメータ設定の処理フローチャートである。
【図11】図10の処理フローチャートにおいて表示される画面の一例を示す図である。
【図12】図10の処理フローチャートにおいて表示される画面の他の例を示す図である。
【図13】図10の処理フローチャートにおいて表示される画面のさらなる他の例を示す図である。
【図14】図10の処理フローチャートにおいて表示される画面のさらなる他の例を示す図である。
【図15】本実施の形態に係る静的平面指定方法によるパラメータ設定の処理フローである。
【図16】図15の処理フローチャートにおいて表示される画面の一例を示す図である。
【図17】図15の処理フローチャートにおいて表示される画面の他の例を示す図である。
【図18】本発明の実施の形態に係る動的平面指定方法に従うパラメータ設定の処理フローチャートである。
【図19】図18の処理フローチャートにおいて表示される画面の一例を示す図である。
【図20】図18の処理フローチャートにおいて表示される画面の他の例を示す図である。
【図21】本発明の実施の形態に係る動的曲面指定方法によるパラメータ設定処理のフローチャートである。
【図22】図21の処理フローチャートにおいて表示される画面の一例を示す図である。
【図23】(A)〜(C)は本発明の実施の形態に係る動的曲面指定の概念を説明する図である。
【図24】本発明の実施の形態に係る動的曲面指定のアルゴリズムに適用されるフィルタを説明する図である。
【図25】本発明の実施の形態に係る運転処理のフローチャートである。
【図26】図25の処理フローチャートにおいて表示される画面の一例を示す図である。
【発明を実施するための形態】
【0031】
この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については同一符号を付してその説明は繰返さない。
【0032】
<全体装置構成>
図1を参照して、この発明の実施の形態に従う画像処理装置1は、代表的に生産ラインなどに組込まれ、検査対象物(以下、「ワーク」とも称す)を光学的に処理することができる。この光学的な処理には、ワーク表面の欠陥検出が含まれる。
【0033】
一例として、本実施の形態においては、斜線で示すワークを搭載するパレット14は、ベルトコンベアなどの搬送機構16によって搬送され、搬送されたパレット14は、撮影部18によって逐次撮影される。撮影部18によって撮影された画像データ(以下「入力画像」とも称す)は、画像処理装置として機能するコンピュータ1へ伝送される。なお、入力画像としては、カラー画像であってもよいし、モノクロ(グレースケール)画像であってもよい。
【0034】
パレット14が撮影部18の撮影範囲に到達したことは、搬送機構16の両端に配置された光電センサによって検出される。具体的には、光電センサは、同一の光軸上に配置された受光部15aと投光部15bとからなり、投光部15bから放射される光がパレット14で遮蔽されることを受光部15aで検出することによって、パレット14の到達を検出する。
【0035】
撮影部18は、上述した光電センサによってパレット14の到着が検出されると、これに応じてワークを含むパレット14の撮影を開始する。あるいは、連続的に撮影を行なっておき、パレット14の到着が検出されたタイミングで、後述するワークの欠陥検出や、その他の検査・計測を開始するようにしてもよい。
【0036】
撮影部18は、後述する第1カメラ部2Aおよび第2カメラ部2Bを含む。
コンピュータ1は、CD−ROM(Compact Disc-Read Only Memory)12が着脱自在に装着されて、装着されたCD−ROMをアクセスする機能を内蔵している。また、表示部3と、キーボード6Aと、マウス6Bとを含む。そして、コンピュータ1は、予め格納されたプログラムを実行することで、本実施の形態に従う画像上の検査対象のワークを検出するための画像処理のためのパラメータの設定を支援する方法を提供する。
【0037】
<ハードウェア構成>
図2を参照してコンピュータ1は、CPU(Central Processing Unit)4、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む主記憶部8、表示部3に係る情報の表示に関する処理を行なう表示処理部9、外部の通信網などと接続するための外部I/F(Interface)10、キーボード6Aおよびマウス6Bからの入力データを受付けるための入力部6、CD−ROM12などの記録媒体をアクセスし、データを読取るための読取部11、ハードディスクなどの補助記憶部5、撮影部18によって撮影された画像データを入力するための撮影部I/F7を含む。これらの各部はバス13を介して相互に接続されている。
【0038】
撮影部18は、第1カメラ部2Aと第2カメラ部2Bを含む。第1カメラ部2Aは、上述した光電センサによってワークを搭載するパレット14の到着が検出されると、これに応じてワークを含むパレット14の撮影を開始する。
【0039】
一例として、第1カメラ部2Aは、レンズなどの光学系に加えて、CCD(Charge Coupled Device)やCIS(Contact Image Sensor)といった複数の画素に区画された撮像素子を含んで構成される。第2カメラ部2Bは、後述する距離画像を撮影するために設けられる。
【0040】
本実施の形態に従う画像処理装置は、CPU4が主記憶部8、補助記憶部5またはCD−ROM12などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、CD−ROM12などの記録媒体に格納されて、またはインターネットなどの各種通信網を介して流通する。そして、このようなプログラムは、CD−ROM12などにより記録媒体から読取られて、内部の記憶装置である補助記憶部5に一旦格納される。さらに、補助記憶部5から主記憶部8に読出されて、CPU4により実行される。
【0041】
CPU4は、プログラムされた命令を逐次実行することで、各種の演算を実施する演算処理部である。
【0042】
撮影部I/F7は、コンピュータ1と撮影部18との間のデータ通信を仲介する。撮影部1/F7は、画像バッファを含むことが好ましい。画像バッファは、撮影部I/F7で撮影され逐次伝送される入力画像データを一旦蓄積し、1回の撮影分の入力画像データが蓄積されると、その蓄積されたデータを主記憶部8または補助記憶部5へ転送する。
【0043】
外部I/F10は、コンピュータ1と外部のデバイスとの間のデータ通信を仲介するための装置である。外部I/F10は、上述した光電センサなどからの検出信号を受信してCPU4へ伝達する。
【0044】
補助記憶部5は、CPU4が実行するプログラムや入力画像データなどを格納する不揮発性の記憶装置である。
【0045】
コンピュータ1に接続される表示部3は、CPU4が出力する情報(画像を含む)を表示するためのものであって、たとえばLCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などから構成される。
【0046】
マウス6Bはクリックやスライドなどの動作に応じたユーザからの指令を受付ける。キーボード6Aは、入力されるキーに応じたユーザからの指令を受付ける。
【0047】
また、コンピュータ1には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【0048】
本実施の形態に係る画像処理装置の表示部3における画面の表示は、CPU4および図示しないグラフィックボードなどが協働することで、行なわれる。このような画面表示は、OS(Operating System)の一部として組込まれるGUI(Graphical User Interface)プログラムによって実現され、またGUIは、ユーザがキーボード6Aやマウス6Bにより操作される画面上のカーソルを用いて、さまざまなユーザ設定を行なうための環境も提供する。
【0049】
<高さ閾値の指定方法>
本実施の形態に従う画像処理装置では、入力画像からワークの画像領域を検出するために、ワークの絶対距離または相対距離を計測し、後述の距離画像を作成する。
【0050】
作成された距離画像について任意の高さ範囲を指定し、指定された範囲に該当する箇所のみを入力画像から抽出することにより、欠陥検査などのための対象画像を検出する。
【0051】
本実施の形態において距離画像とは、入力画像が示す高さ情報を、グレースケールで表わした画像である。すなわち、入力画像の各画素の輝度レベルは、撮影部18と撮影対象までの距離(遠近)で相違するので、この輝度レベルの相違によって対象物の各画素に対応の距離に対応の高さ情報が検出され、検出された高さ情報を、所定手順に従い階調情報へ変換し、変換によって得られた階調情報に従い画像を生成することにより、距離画像が検出される。
【0052】
距離の計測方法としてはピント(焦点)が合っている画像を重ねることにより作成された画像の焦点距離から対象物までの距離を計測する合焦点法、光源から出た光が対象物表面で反射しセンサに届くまでの光の飛行時間に基づき対象物までの距離を検出するTOF(Time Of Flight)法、レーザをラインビームとして対象物に照射して反射光成分により距離を検出する方法、カメラを2つ用いたステレオ法などがある。本実施の形態では、カメラを2つ用いたステレオ法により距離の計測を行なうが、距離の計測方法はこれに限定されず、他の方法であってもよい。
【0053】
ステレオカメラを用いた距離の計測方法は、公知のものである。簡単に説明すると、対象物を複数の異なる方向から同時に複数のカメラで撮影することにより、その対象物の奥行き方向の情報も記録される。本実施の形態では、第2カメラ部2Bに、異なる位置に配置された2台のカメラを備える。2台のカメラで、1つの対象物(パレット14など)を撮影すると、2台のカメラ(左右の異なる位置に置かれたカメラ)の撮影画像には視差が発生する。CPU4は、撮影画像に基づき、当該視差に従いカメラから対象物までの距離を所定演算式に従い算出することにより、対象物までの距離情報を得る。さらに、CPU4は、2台のカメラを少しずつずらすことにより、対象物表面の各点におけるカメラから当該点までの距離を求める。これにより、対象物表面について各点に対応の部分毎、または画素毎の距離情報が検出される。検出された距離情報である高さ情報に基づきLUT(Look Up Table)を検索することにより、対応のグレースケール値(階調情報)をLUTから読出し、読出した階調情報に基づき距離画像を生成する。
【0054】
図3(A)〜(D)には、上述のようにして検出された距離画像において、検査対象として抽出するべき画像領域を検出するための閾値(高さ閾値)の指定方法が模式的に示される。対象物が必ず基準面に対して水平である場合には、「点指定方式」(図3(A))に従い高さ閾値を指定することができる。対象物が基準面に対し必ず一定の傾きをもって置かれている場合には、「静的平面指定方式」(図3(B))を適用して高さ閾値を指定することができる。また、基準面に対し対象物の傾きが変動する場合には、「動的平面指定方式」(図3(C))を適用することにより、高さ閾値を指定することができる。また、対象物が形状不安定な場合には、「動的曲面指定方式」(図3(D))により、高さ閾値を指定することができる。
【0055】
ここで基準面とは、たとえば撮影部18のカメラの光軸に対して直交する面、またはコンベアの搬送面を指す。このように、基準面は予め定められた座標系に基づいて、それに対する傾きを表わす面である。
【0056】
<概略フローチャート>
図4を参照して、本実施の形態に係る画像処理装置は動作モードとして、パラメータ設定モード、運転モードおよび検査モードを含む。これら動作モードは、外部からの入力に従い切替可能である。
【0057】
画像処理装置の全体処理は、パラメータ設定モードにおいて、距離画像から対象画像を抽出(検出)するためのパラメータの設定処理(ステップS3)、運転モードにおいて、予め設定されたパラメータを用いて入力画像から検査対象画像を検出する運転処理(ステップS5)、および検査モードにおいて、運転処理によって検出された画像を用いたワークの欠陥検査などの処理(ステップS7)を含む。なお、図4ではステップS3〜S7は連続して実行されるように記載したが、各処理は、図4に示す前段の処理が終了して必要なパラメータ値または画像データが検出されているならば、実行順序は、これに限定されるものではない。
【0058】
<パラメータ設定概略処理>
図5を参照して、図4のパラメータ設定処理(ステップS3)は、まず、ユーザによる表示画像の選択入力(ステップS33)、高さ閾値の指定方法(図3(A)〜(D)のいずれかの方法)の選択的な決定(ステップS35)、決定された高さ閾値の指定方法に従うパラメータ値の設定処理(ステップS37)、および、設定されたパラメータ値に従い、ステップS33で選択された表示画像から抽出した画像の表示処理(ステップS39)を含む。以下、各ステップの処理について説明する。
【0059】
<表示画像選択>
図5のステップS33における表示画像の選択について図6および図7(A)〜(C)を参照し説明する。
【0060】
図5のステップS33では表示部3に図6の画面が表示される。図6の画面は、画像を表示するための画像領域301、「表示切替」タブ306、「表示設定」エリア300および、設定パラメータの格納を指示するために操作される「OK」ボタン400と、操作の取消しを指示するために操作される「キャンセル」ボタン401が表示される。
【0061】
「表示設定」エリア300は、画像領域301に表示するべき画像の種類を設定するための入力を受付けるエリアである。ここでは、第1カメラ部2Aによって撮影された入力画像を指す「計測画像」、「距離画像」および「超深度画像」のいずれかを選択することができる。図6では、「入力画像」が選択されており、画像領域301には、入力画像が表示されている。「表示切替」タブ306は、画像領域301に表示される画像について動画/静止画に切替えるために選択操作される。
【0062】
図7(A)〜(C)には、図6の画像領域301に表示される画像が例示される。図7(A)には、第1カメラ部2Aによる撮影画像である入力画像が、図7(B)には超深度画像が、図7(C)には距離画像がそれぞれ示される。超深度画像は、画像のすべての箇所についてピントが合った画像であり、ユーザに対し入力画像についてより明瞭な画像を提供するために表示される。超深度画像は、第1カメラ部2Aによって対象を複数回撮影し、合焦点法に従いこれら画像を重ね合わせることにより、生成することができる。超深度画像は、CPU4が第1カメラ部2Aから出力される入力画像を、合焦点法に従い合成することにより生成する。生成された超深度画像は、主記憶部8に格納され、主記憶部8から読出された超深度画像のデータは表示部3に表示される。
【0063】
距離画像についても、前述した手順に従い、CPU4によって生成されて、主記憶部8に格納される。主記憶部8から読出された距離画像のデータは表示部3において表示される。
【0064】
図8には、ルックアップテーブル(LUT)の内容が模式的に示される。LUTには、高さ情報のそれぞれに対応して、グレースケール値が格納されている。前述したステレオカメラを用いて検出された高さ情報を入力値としてLUTを計測し、対応するグレースケール値を出力値として読出すことにより、読出されたグレースケール値を用いて距離画像が生成される。ここでは、グレースケール値(階調値)は0〜255のいずれかの値であり、高さ情報についてもグレースケール値(階調値)に対応する下限値と上限値を有する。距離画像は、各画素について座標値(X,Y,Z)を有する。座標値Zは、基準面に直交するZ軸の座標であって、高さ情報を指し、座標値(X,Y)はZ軸に直交するX軸およびY軸の座標であって、基準面はおよび画像は、直交するX軸およびY軸で規定される2次元座標の平面であると想定する。
【0065】
ここでは、表示画像の選択のために、入力画像についての参考画像として超深度画像(図7(B)参照)を提示しているが、超深度画像に代替して「距離情報重畳画像」であってもよい。CPU4は、「距離情報重畳画像」を次のように検出する。
【0066】
つまり、第1カメラ部2Aの撮影画像である入力画像または超深度画像を、各画素の階調値に基づきグレースケール画像に変換する。そして、グレースケール画像の各画素の階調値に基づきLUTを検索し、対応の高さ情報を読出す。そして読出された高さ情報を、所定の変換式に従い処理することにより、各画素に対応のR(赤)、G(緑)およびB(青)の各階調値を算出する。算出により決定した3原色(RGB)の階調値を用いて画像データを生成する。生成された画像データは「距離情報重畳画像」を指す。「距離情報重畳画像」が表示部3に表示された場合には、ユーザは、入力画像が指す高さ情報を色相の相違により確認することができる。
【0067】
<プロファイル表示>
本実施の形態では、パラメータ設定のために、図9の画像領域301に表示された入力画像とともに、当該入力画像の所定位置の高さ情報に基づき、当該所定位置に対応するワークの断面形状を指すプロファイルを重畳して表示することができる。
【0068】
高さ情報のプロファイル情報の表示に関しては、「水平および垂直」、「水平のみ」、「垂直のみ」および「非表示」の4種類から選択することができる。ここで、基準面に平行な面を、直交するX軸およびY軸で規定される2次元座標平面と想定した場合に、「垂直」はY軸が延びる方向を指し、「水平」はX軸が延びる方向を指す。プロファイルの表示を選択した場合、ユーザはマウス6Bを操作して、画像領域301の所望する位置をクリックする。この所望位置を、「タップ位置」という。
【0069】
図9においてタップ位置303が指定されると、CPU4は、画像領域301において、タップ位置303の座標(X,Y)で直交する黄色い破線Y2を画像に重畳して描画する。ここでは、ユーザは予めプロファイルの表示として「水平および垂直」を選択しているものと想定する。
【0070】
CPU4は、続いて、ユーザの「水平および垂直」の選択に基づき、主記憶部8に格納された距離画像の高さ情報に基づき、破線Y2が通る各画素について、高さ情報を抽出して、垂直(Y)方向および水平(X)方向に該当画素の高さ情報が指す値をプロットし、そのプロット値を黄色の実線Y1で繋げる。画像に重畳して描画された実線Y1をプロファイルと呼ぶ。このプロファイルが表示されることにより、ユーザはタップ位置303で直交する水平方向の軸および垂直方向の軸(破線Y2に相当)におけるワークの高さ情報(断面形状の高さ)の変化を確認することができる。
【0071】
CPU4は、高さ情報の上限値および下限値を示すための画像領域301において、青色の破線Bを画像に重畳して描画する。この破線Bにより、ユーザが高さ情報を指定するためのスケール(分解能)の情報を、ユーザに与えることができる。上限値および下限値は、距離画像から検出する。検出した上限値および下限値は、破線Bの近傍に表示される。
【0072】
ユーザは、破線Bとその上下限値を参照しながら、抽出したい高さ情報を有する面を指定するために、マウス6Bを操作して画像領域301に垂直および水平のラインである赤色の実線Rを描画する。引いた実線Rについて、CPU4は、破線Bのスケールに従い、高さの数値を算出し、算出値を実線Rの近傍に表示する。これにより、ユーザは所望する抽出面の高さ情報を、数値で確認することができる。
【0073】
図9では、スケールに相当する破線Bと抽出面の高さ情報を示す実線Rについて、その線の近傍に高さ情報の数値を表示しているが、表示を省略してもよい。さらには、当該数値を表示するか否かは、ユーザの選択入力に従い可変としてもよい。
【0074】
<高さ閾値の指定>
図3(A)〜(D)に示す高さ閾値の指定方法のうちから所望方法を選択する場合、CPU4は、これら方法の一覧を表示部3に表示し、ユーザは一覧からキーボード6Aまたはマウス6Bを操作して、所望するいずれかの方法を選択的に入力する。CPU4は、選択指定された高さ閾値の指定方法のための処理フローチャートに従うプログラムを実行する。
【0075】
<点指定方法>
図10のフローチャートに従い、図11および図12の表示画面例を参照しながら、点指定方法による抽出面に係る高さ閾値の指定方法について説明する。
【0076】
図11には、プロファイルが表示された状態において、点指定方法で高さ閾値を設定する画面が示される。図11のエリア303には、上限および下限の高さ閾値を指定するためにそれぞれスライダが表示される。スライダそれぞれは、高さ情報の目盛を有するバーと、バー上をマウス6Bのドラッグ操作で図中矢印方向に移動するボタン304とからなる。バーの目盛のスケールは、青色破線Bで示す高さ情報の上下限値に従い決まる。ユーザが、バー上のボタン304をドラッグ操作してスライドさせて、たとえば図12に示すような位置にまで移動した場合には、CPU4は、移動後のバー上の位置を読取り、読取った位置に対応する高さ情報の値を、上下限値に基づき算出して、上限および下限の算出値をボックス305にそれぞれ表示する。
【0077】
図12のボックス305には、スライダ操作によって指定された高さ閾値の上限値である値(=100)と下限値(=50)が表示されている。図12では、画像領域301の表示画像は、ステップS33でユーザが選択した表示画像のうち、指定した高さ閾値に該当する領域の部分画像が抽出されて表示される。その背景画像については、ユーザが所望の表示色を指定することができる。表示色は、好ましくは、抽出画像を際立たせるような色である。画像領域301に表示される画像は、「前後表示切替」タブ322を操作することにより、図12のように指定した高さ閾値に該当する部分画像のみ(抽出後画像)と、抽出前画像(ステップS33で選択した全体画像)との間で切替表示することができる。
【0078】
なお、図12の画面で、ユーザが、バー上のボタン304をドラッグ操作してスライドさせて、上下限値を更新した場合には、CPU4は当該ドラッグ操作を割込みとして処理する。これにより、割込みに応答して、ステップS33で指定された画像から更新後の上下限値に該当する画像の検出と、当該検出画像を用いた図12の画像領域301の表示更新処理を行う。
【0079】
図10を参照して、動作において、CPU4は、キーボード6Aまたはマウス6Bを介したユーザからの入力情報に従い、図8に示したLUTを作成する(ステップT1)。
【0080】
続いて、CPU4は、第2カメラ部2Bから入力したステレオカメラによる視差を有した画像情報に従い、前述した手順に従い距離画像を作成し格納する(ステップT3)。
【0081】
続いてCPU4は、ステップS33でユーザが選択した表示画像と、ユーザ操作によるプロファイルとを画像領域301に表示する(ステップT5)。これにより、図9の画像領域301において、選択した表示画像と、指定のタップ位置303に従う黄色実線Y2のプロファイルとが表示される。併せて、青色破線Bのスケールが表示される。
【0082】
続いてCPU4は、「OK」ボタン400がクリックされたか否かを判定する(ステップT7)。ユーザは、点指定方法によるパラメータの設定を終了する場合、「OK」ボタン400をクリックする。クリックされた場合、CPU4は設定されたデータを補助記憶部5に格納する。この時点で、補助記憶部5には、図示するようにステップT1で作成したLUTのデータ51、画像表示領域301に表示される表示画像のデータ52、およびスライダ操作でユーザが設定した抽出面の高さ情報の閾値(上限値および下限値)のデータ53を含む情報が格納されている(ステップT15)。
【0083】
ステップT15では、データの格納先を、補助記憶部5としているが、主記憶部8であってもよい。
【0084】
データの記憶終了後、処理は元の処理(図5の処理)に戻る。
「OK」ボタン400がクリックされていないと判定されると(ステップT7でNO)、続いて「キャンセル」ボタン401が操作されたか否かが判定される(ステップT9)。ユーザは、パラメータの設定操作をキャンセルする場合、「キャンセル」ボタン401を操作するので、CPU4は、「キャンセル」ボタン401の操作を検出すると(ステップT9でYES)、設定データを何ら記憶せず、処理を元の処理に戻す。
【0085】
「キャンセル」ボタン401が操作されていないと判定されると(ステップT9でNO)、CPU4は、画像領域301の表示画像の任意箇所に、ユーザの操作によって矩形307が描画されたか否かを判定する(図13参照)。
【0086】
描画されたと判定すると(ステップT11でYES)、矩形307のエリアの座標値に基づき対応する距離画像から、当該矩形307内の画像の高さ情報が指す高さの最大値と最小値を検出する(ステップT17)。CPU4は、検出した最大値と最小値に基づき、図13のエリア303の上限値のバー上のボタン304を、検出された最大値+1の位置にまでスライド(移動)させ、同様に、下限値のバー上のボタン304の位置を、検出された最小値−1の位置にまでスライド(移動)させる(図14参照)。
【0087】
続いて、CPU4は、エリア303の高さ閾値の上限値および下限値の値305を、移動後のボタン304が指す上限値および下限値に更新する(ステップT21)。
【0088】
続いてCPU4は、ステップT21で設定された値305に従い、実線Rを画像領域301に描画し、値305により「画像の抽出」を行い、検出された抽出後の画像を表示する(ステップT23)。その後、処理はステップT7に戻る。
【0089】
ここで「画像の抽出」とは、距離画像を検索して、座標Zの値がステップT21で設定された値305の高さ情報に該当する画素の座標(X,Y,Z)を検出し、検出した座標に基づき、ステップS33で選択された表示画像のデータを検索して、当該座標に該当する画素からなる画像データのみを読出すことを指す。読出した画像データを表示することで、図12の抽出後画像が表示される。
【0090】
一方、矩形307が描画されていないと判定されると(ステップT11でNO)、CPU4は、エリア303のバー上のボタン304ががスライド操作(移動)されたか否かを判定する(図11参照)。ユーザがスライド操作し、たとえば図12に示すような位置にまで移動させた場合には、CPU4は、移動後の位置に対応する高さ閾値の上限値と下限値を値305として表示する(図12参照)。
【0091】
このように、点指定方法による高さ閾値の設定では、ユーザはバー上のボタン304をスライド操作することによって設定することができる。また、表示領域301に矩形307を描画することによって、矩形307の領域において検出される高さ上下限値に従い自動的にボタン304をスライド移動させて、所望の高さ閾値を設定することもできる。また、この両方法を併用して設定することもできる。
【0092】
<静的平面指定方法>
図15のフローチャートに従い、図16および図17の表示画面例を参照し、静的平面指定方法について説明する。
【0093】
図16の画面においては、高さ情報に基づき画像を抽出するための基準面に平行な面を決定するために、ユーザは、マウス6Bを操作し、画像領域301において少なくとも3箇所の点310を指定する。面を規定するために点310は3点以上指定すればよく、3点以上であるば、追加および削除は自由に行なうことができる。
【0094】
CPU4は、画像領域301の指定点310の座標(X,Y)を検出し、検出した座標(X,Y)に基づき、当該画像領域301に表示される画像(ステップS33で選択された画像)に対応する距離画像のデータを検索する。この検索結果、指定点310に対応する座標(X,Y,Z)の値を距離画像データから読出すことができる。CPU4は、指定点310のそれぞれに対応する座標(X,Y,Z)の値を、表示部3の座標表示エリア308に表示する。
【0095】
点310を指定した後、ユーザが「面設定」タブ309をクリックして選択すると、CPU4は、指定した点310をすべて通る面を生成する。ここで、ユーザが“上限面”の「面設定」タブ309を選択していると検出した場合には、CPU4は上限面についての面情報を、生成した面の情報を用いて更新する。“下限面”の「面設定」タブ309が選択されていると検出した場合には、下限面の面情報を、生成した面の情報を用いて更新する。図16では、未だ上下限面の高さが指定されていないので、上下限面の高さを指す赤色実線Rは、スケール値を表示する青色破線Bに重なって表示されている。
【0096】
上述のように下限面および上限面の面情報により面の高さが、座標表示エリア308の値に基づき指定されると、画面は図17のように更新される。図17を参照して、指定された上限面および下限面の高さ値に基づき、CPU4によって水平方向に延びる上限面および下限面について、画面に向かって左端および右端の高さおよび面の傾きが算出されて、情報316、317、318および315のデータとして表示される。同様にして、垂直方向に延びる上限面および下限面について、画面の上端および下端の高さおよび面の傾きが算出されて、情報316、317、318および315のデータとして表示される。
【0097】
図17では、ボックス312の指定操作によって、「面情報」エリア311の情報を、水平方向に延びる上限面および下限面の情報の表示、または垂直方向に延びる上限面および下限面の情報の表示のいずれかに選択的に表示切替することができる。図17では、ボックス312において“水平方向”が指定された状態であるので、水平方向に延びる上限面および下限面についての情報316、317、318および315が「面情報」エリア311において表示されている。
【0098】
さらに、ユーザは、バー上のボタン317と319を、キーボード6Aまたはマウス6Bで操作してスライド操作することにより、「面情報」エリア311の情報316および318の高さの値を、このスライド操作に連動した対応する値に可変に調整することができる。画像領域301においては、「面情報」エリア311における値の設定に連動して、水平方向および垂直方向に、上限面313および下限面314の高さにおいて赤実線Rが描画される。
【0099】
図16と図17の画面で説明した「静的平面指定方法」に従うパラメータの設定手順を、図15のフローチャートを参照し説明する。
【0100】
CPU4は、ステップT1〜T5において、前述と同様にLUTを生成し、距離画像を生成し、選択された表示画像とプロファイルを表示部3の画像領域301に表示する。
【0101】
CPU4は、「OK」ボタン400または「キャンセル」ボタン401が操作されたか否かを判定する(ステップT7、ステップT9)。いずれのボタンも操作されていないと判定すると、画像領域301において点310が3つ以上指定されたか否かを判定する(ステップT27)。3つ以上指定されていないと判定すると(ステップT27でNO)、ステップT7の処理に戻る。
【0102】
3つ以上指定されたと判定すると(ステップT27でYES)、CPU4は、ユーザによって“上限面に設定”の「面設定」タブ309が操作されたか否かを判定する(ステップT29)。操作されていないと判定すると(ステップT29でNO)、処理はステップT31に移る。
【0103】
“上限面に設定”の「面設定」タブ309が操作されたと判定すると(ステップT29でYES)、ステップT33において、「面情報」エリア311における上限面についての水平方向(左)および(右)ならびに垂直方向(上)および(下)の情報316および318の値それぞれが、バー上のボタン317および319の位置が示す値を指すように更新される。その後、処理はステップT37に移る。
【0104】
“下限面に設定”の「面設定」タブ309が操作されたと判定すると(ステップT31でYES)、ステップT35において、「面情報」エリア311における下限面についての水平方向(左)および(右)ならびに垂直方向(上)および(下)の情報316および318の値それぞれが、バー上のボタン317および319の位置が示す値を指すように更新される。その後、処理はステップT37に移る。
【0105】
ステップT37では、CPU4は、ステップT33およびT35で更新した値を用いて「面情報」エリア311において情報316、317、318および319を表示するとともに、「面情報」エリア311における上限面および下限面の高さおよび傾きを示す赤色の実線313および314を描画する。そして、上限面および下限面の高さ閾値に該当する高さ情報を有する画像データを、ステップS33で指定された画像データから「画像の抽出」をして、抽出後画像を画像領域301に表示する。
【0106】
ここで「画像の抽出」とは、距離画像を検索して、座標Zの値が「面情報」エリア311における情報316、317、318および319で示す高さ情報の面(上限・下限)の間に該当している画素の座標(X,Y,Z)を検出し、検出した座標に基づき、ステップS33で選択された表示画像のデータを検索して、当該座標に該当する画素からなる画像データのみを読出すことを指す。読出した画像データを表示することで、画像領域301には抽出後画像が表示される。
【0107】
「OK」ボタン400が操作されたと判定されると(ステップT7でYES)、設定データの格納処理が行なわれる(ステップT15)。この時点で、補助記憶部5にはLUTのデータ51、画像領域301の表示画像のデータ52、上限面および下限面についての水平方向の左端の高さデータ54、同様に右端の高さデータ55、上限面および下限面の垂直方向の上端の高さおよび下端の高さのデータ54と57を含む情報が格納されている。
【0108】
<動的平面指定方法>
次に、動的平面指定方法について、図18のフローチャートに従い、図19および図20の表示画面を参照し説明する。
【0109】
図19を参照してユーザは、画像領域301の画像を参照し、高さ閾値を有する画像抽出のための面を決定するため、点310を少なくとも3点指定操作する。ここで、点310は3点以上指定されるならば、点310の追加および削除は自由に行なえる。指定された3つ以上の点310により、これら点310の座標の画素を通る画像抽出のための面が一意に決定される。
【0110】
ユーザは、面を指定するための点310を指定した後、指定面は上限面および下限面のいずれであるかを指定するために「面選択」タブ320において“上限面”または“下限面”のいずれかをマウス6Bを操作してクリックする。これにより指定した面を、上限面および下限面のいずれかに選択することができる。
【0111】
CPU4は、ユーザが指定した点310のそれぞれについて、対応する座標位置を検出し、距離画像から対応画素の座標(X,Y,Z)の値を検出し、検出した座標(X,Y,Z)の値を「座標表示」エリア308に表示する。
【0112】
ユーザは、「座標表示」エリア308に表示された値を確認することによって、サンプリング(指定)点310における高さ値の補正を所望する場合には、「オフセット設定」エリア321に、キーボード6Aを操作することにより、補正のためのオフセット値を入力する。具体的に、オフセット値は±αで指定することができる。
【0113】
CPU4は、指定された点310それぞれの座標(X,Y,Z)の値に基づき、これら座標(X,Y,Z)値により定まる面を生成し、生成した面の水平方向の高さ(画面の左端および右端の高さ)、垂直方向の高さ(画面の上端と下端の高さ)および傾きを算出し、算出した値を情報323、324および325として表示する。
【0114】
ここで、ユーザが「オフセット設定」エリア321にオフセット値を指定していた場合には、CPU4は、指定された点310それぞれの座標値(X,Y,Z)と、「オフセット設定」エリア321で指定されたオフセット値とに基づき、情報323、324および325の値を算出しなおし、算出しなおした値を表示する。
【0115】
ユーザが「前後表示切替」タブ322を操作すると、CPU4は、情報323と324によって設定された高さ抽出面(上限面および下限面)に基づき当該上限面の高さ情報以下の高さ、且つ下限面の高さの高さ情報を有する「画像の抽出」がされて、図20に示すように画像領域301に抽出後画像が表示される。
【0116】
ここで「画像の抽出」とは、距離画像を検索して、座標Zの値が情報323および324で示す高さ情報の面(上限・下限)の間に該当している画素の座標(X,Y,Z)を検出し、検出した座標に基づき、ステップS33で選択された表示画像のデータを検索して、当該座標に該当する座標(X,Y)の画素からなる画像データのみを表示画像データから読出すことを指す。読出した画像データを表示することで、画像領域301には図20にような抽出後画像が表示される。
【0117】
図18のフローチャートを参照して、図19および図20で説明した動的平面指定方法について説明する。
【0118】
CPU4は、LUTを作成し、距離画像を作成し、表示画像とプロファイルを画像領域301に表示する(ステップT1〜T5)。続いて「OK」ボタン400または「キャンセル」ボタン401が操作されたか否かを判定する(ステップT7およびステップT9)。操作されたと判定された場合、設定データの格納(ステップT15)または一連の処理の終了が行なわれる。
【0119】
CPU4は、ステップT7およびステップT9において「OK」ボタン400および「キャンセル」ボタン401のいずれも操作されていないと判定すると、ステップT39において、ユーザが設定しようとする面が、上限面→下限面に変更されたか、または下限面→上限面に変更がされたかを、「面選択」タブ320の操作による入力に基づき判定する。変更されたと判定すると(ステップT39でYES)、サンプリング点である点310の座標と「オフセット設定」エリア321で入力された補正値とを用いて、反映するべき面(上限面または下限面)の設定値を変更する(ステップT43)。この設定値は、上限面(または下限面)の点310が指すサンプリング点に座標(X,Y,Z)の値および高さ補正値を含む。その後、処理はステップT41に移る。
【0120】
設定する面の変更がされていないと判定されると(ステップT39でNO)、ステップT41において画像領域301に点310が3点以上指定されたか否かが検出される。3点以上の指定がされていないと検出すると(ステップT41でNO)、処理はステップT7に戻る。
【0121】
3点以上指定されたと判定されると(ステップT41でYES)、CPU4は「オフセット設定」エリア321にオフセット値が入力されたか否かを判定する(ステップT45)。オフセット値が入力されたと判定すると(ステップT45でYES)、情報323と324で指定された設定値を、オフセット値に基づき更新する(ステップT47)。その後、ステップT49の処理に移る。
【0122】
ステップT49では、設定されているパラメータ(情報323および324の値)に基づき、図20のように、画像領域301における上限面および下限面313および314を示す赤色実線Rの表示と、青色破線Bのスケールの表示および黄色実線Y1のプロファイルの表示を更新する。また、「画像の抽出」がされて、抽出後画像が表示される(ステップT49)。その後処理はステップT7に戻る。
【0123】
図18のステップT7で「OK」ボタン400が操作されると、ユーザが設定したパラメータデータが補助記憶部5に格納される。この時点で、補助記憶部5には、LUTのデータ51、画像領域301の表示画像の種類521、上限面のサンプリング点(点310)の座標値58、上限面の高さ補正値(「オフセット設定」エリア321の入力値)59、下限面の点310の座標値60および下限面の高さ補正値(「オフセット設定」エリア321の入力値)61を含む情報が格納されている。
【0124】
<動的曲面指定方法>
「動的曲面指定方法」について、図21のフローチャートに従い図22の表示画面を参照し説明するために、まず、図23の動的曲面指定の原理について説明する。
【0125】
図23を参照して、CPU4は、距離画像において、周辺領域画素の平均階調値よりも高い/低いのいずれか一方の階調値を有する部分の画素を白画素とし、他の画素を黒画素とする2値化処理を行う。これにより、周囲の画素よりも濃淡の変化の程度が大きい画素は、白画素として抽出されることになる。抽出された白画素を連ねることにより、明るさ(濃淡)の変化の大きい部分(画素)を連ねた面を抽出することができる。この抽出面を「動的曲面」という。動的曲面により撮影の対象物である外形形状が概略示される。
【0126】
「動的曲面」を的確に抽出するために、明るさの変化が大きい画素をより強調する。そのために、たとえば、CPU4は、距離画像において、ある注目画素を中心とした上下左右に隣接して位置する計9つの画素の階調値に対して、図23(C)に示すようなフィルタ406を適用する。フィルタ406の中央(斜線部)を注目画素に対応させる。CPU4は、9つの画素それぞれの階調値をすべて加算し、加算して得られた値に基づき平均値を検出する。注目画素の階調値を、この平均値と比較し、比較結果、注目画素の階調値が平均値よりも高ければ、当該注目画素の階調値を白画素の値に置換する。入力画像において、注目画素を移動させながら、フィルタ406を適用して、その階調値を周囲画素の階調値の平均と比較する。これにより、高さ情報(距離)が急変する画素(すなわち、極大値の画素)が検出されて、白画素に置換される。注目画素の階調値が平均値よりも低い場合でも同様である。
【0127】
たとえば、注目画素の階調値が、周囲画素の平均値よりも高い、すなわち明るい領域を動的曲面として抽出する場合には、図23(A)に示されるように、入力画像の各部の階調値を指す濃度値402のうち、周囲の画像の平均の濃度値403を超えている濃度値402を有する部分の画素404が抽出されて、抽出画素404が白画素に置換される。
【0128】
ユーザは濃度値403の値を、抽出オフセット値401を用いて調整(更新)することにより、入力画像において抽出画素404に該当する部分画像の位置を変化させることができる。更新後の濃度値403の値が、抽出閾値400として設定される。たとえば、抽出閾値400を超える階調値の領域の「画像を抽出」する。抽出閾値400の階調値を有する画素の座標値をプロットし、プロットした点を面状に連ねることにより、図22の赤色実線Rで示される自由曲面の動的曲面を生成することができる。
【0129】
図22の画面を参照して、ユーザが抽出条件(フィルタサイズ)に従い抽出された動的曲面を示す実線Rの自由曲面よりも高い高さ情報を有する領域の画像のみを抽出したい場合は、「抽出領域」タブ326において“高いところ”とキーボード6Aを操作し入力する。逆に、実線Rの動的曲面よりも低い高さ情報の画像を抽出したい場合には「抽出領域」タブ326に“低いところ”と入力する。
【0130】
本実施の形態では、動的曲面の抽出条件であるフィルタ406のサイズを可変に設定することができる。ユーザは「フィルタサイズ」タブ327を指定することにより、フィルタサイズを可変に設定することができる。フィルタサイズの設定は、「フィルタサイズ」タブ327の数値入力の他に、フィルタサイズの目盛が打たれたバー上のボタン328のスライド操作によるものであってもよい。また、抽出オフセット値401を「抽出オフセット」タブ329において可変に入力することができる。「抽出オフセット」タブ329における数値入力に代替して、抽出オフセット値401の目盛が打たれたバー上のボタン330のスライド操作による入力であってもよい。
【0131】
図23(B)には、抽出閾値400よりも低い、すなわち暗い領域の画像を抽出する場合が例示される。図23(B)の抽出条件とするためには、図22の「抽出領域」タブ326を“低いところ”と設定すればよい。
【0132】
(動的曲面抽出アルゴリズムと抽出画像)
上述した動的曲面抽出のためのアルゴリズムを説明する。動的曲面指定のために入力画像I(i,j)のすべての画素を注目画素とし、図24のサイズ5×5のフィルタ406の中央(斜線部)を注目画素に対応させるように注目画素と周囲画素の計25個画素にフィルタ406を適用する。CPU4は、[数1]の式に従う演算処理により、入力画像I(i,j)すべての画素について、注目画素の階調値と周囲画素の階調値の平均値との差分を検出することにより、入力画像I(i,j)の各画素に検出差分が割当てられた、差分画像DI(i,j)を算出(生成)する。
【0133】
【数1】

【0134】
そしてCPU4は、入力画像I(i,j)から「画像の抽出」をするために、差分画像DI(i,j)の各画素の差分と、抽出オフセット値410に対応のオフセット値offsetとを比較する。そして、比較結果に基づき、抽出された画像に対応する出力画像O(i,j)を算出(生成)する。
【0135】
具体的には、「抽出領域」タブ326に“高いところ”と入力された場合には、[数2]の比較式に基づき出力画像O(i,j)が算出され、「抽出領域」タブ326に“低いところ”と入力された場合には、[数3]の比較式に基づき出力画像O(i,j)が算出される。
【0136】
【数2】

【0137】
【数3】

【0138】
図21のフローチャートを参照して、動的曲面指定方法の処理フローチャートについて説明する。
【0139】
CPU4は、LUTを作成し、距離画像を作成し、表示画像とプロファイルを画像領域301に表示する(ステップT1〜T5)。続いて「OK」ボタン400または「キャンセル」ボタン401が操作されたか否かを判定する(ステップT7およびステップT9)。操作されたと判定された場合、設定データの格納(ステップT15)または一連の処理の終了が行なわれる。
【0140】
CPU4は、ステップT7およびステップT9において「OK」ボタン400および「キャンセル」ボタン401のいずれも操作されていないと判定すると、ステップT53において、「抽出領域」タブ326の入力データに基づきユーザが画像を抽出するべき領域の設定を変更したか否かを検出する(ステップT53)。設定変更をしたと検出されると(ステップT53でYES)、設定された領域が抽出するべき領域としてセットされる(ステップT59)。その後、処理は、後述のステップT65に移行する。
【0141】
設定変更はしていないことが検出されると(ステップT53でNO)、「フィルタサイズ」タブ327において、ユーザがフィルタのサイズを変更した否かを判定する(ステップT55)。フィルタサイズの変更がされたと検出されると(ステップT55でYES)、設定されたフィルタサイズが画像の抽出に用いるべきフィルタ406のサイズとしてセットされる(ステップT61)。その後、処理は、後述のステップT65に移行する。
【0142】
フィルタサイズの設定変更はしていないことが検出されると(ステップT55でNO)、「抽出オフセット」タブ329において、ユーザが抽出オフセット値401を変更した否かを判定する(ステップT57)。抽出オフセット値の変更がされたと検出されると(ステップT57でYES)、設定された抽出オフセット値が画像の抽出に用いるべき図23で示すオフセット値401としてセットされる(ステップT63)。その後、処理は後述のステップT65に移行する。
【0143】
ステップT65では、設定されているパラメータ値に基づき、図22のように、画像領域301における動的曲面の赤色実線Rの表示と、青色破線Bのスケールの表示および黄色実線Y1などのプロファイル表示を更新する。また、「抽出領域」タブ326、「フィルタサイズ」タブ327および「抽出オフセット」タブ329などにおけるユーザが設定した値と上述の式とに従って「画像の抽出」がされて、抽出後画像が画像領域301に表示される(ステップT65)。その後、処理はステップT7に戻る。
【0144】
図21のステップT7で「OK」ボタン400が操作されると(ステップT7でYES)、ユーザが設定したパラメータデータは補助記憶部5に格納される。この時点で、補助記憶部5には、LUTのデータ51、画像領域301の表示画像のデータ52、抽出領域を指示するデータ62、フィルタ406のサイズのデータ63、抽出オフセット401を指すデータ64を含む情報が格納されている。
【0145】
なお、上述の高さ閾値指定方法のそれぞれでは、距離画像を取得するために、撮影部18によりワーク14を実際に撮影し、得られた画像データに基づき距離画像を生成している(ステップT3参照)が、取得の経路はこれに限定されない。つまり、ステップT3では、準備された距離画像のデータを外部I/F10または読取部11を介してネットワークまたはCD−ROM12から入力する、または補助記憶部5に記憶しておき補助記憶部5から読出すことにより取得してもよい。
【0146】
<運転処理>
上述した高さ閾値の指定方法に従い補助記憶部5にパラメータの値が格納されると、CPU4は補助記憶部5のパラメータ値を用いて、ワークの欠陥検査のための運転モードの処理(ステップS5)を実行する。運転モードの処理を、図25のフローチャートに従い、表示部3に表示される図26の運転画面を参照しながら説明する。
【0147】
まずCPU4は、外部からの入力指示に従い運転モードに移行すると、補助記憶部5に格納されたパラメータ値を読出し、主記憶部8に格納する。
【0148】
続いて、CPU4は、撮影部18の第1カメラ部2Aにより、コンベア16上を搬送されるパレット14を撮影する。第1カメラ部2Aの撮影画像である入力画像が主記憶部8に格納される(ステップS51)。
【0149】
また、第2カメラ部2Bによりパレット14を撮影し、撮影画像である視差画像が出力される。CPU4は、視差画像に基づき各画素の高さ情報を検出して、検出した高さ情報と主記憶部8から読出したLUTに基づき、距離画像を生成(検出)する(ステップS53)。距離画像(濃淡画像)は、主記憶部8に格納される。
【0150】
続いて、CPU4は、予めユーザが指定した「高さ閾値指定方法」に従う設定パラメータの値を主記憶部8から読出し、読出したパラメータ値が指示する高さ閾値に基づき、入力画像から、当該指定方法に従う前述した「画像の抽出」の処理を行う。当該処理によって抽出後画像が検出されて主記憶部8に格納される(ステップS55)。抽出後画像は、表示部3に表示される(図26参照)。この場合においても、抽出後画像の背景の表示色は、ユーザが抽出後画像を確認しやすいように変更されてよい。
【0151】
<欠陥検査>
CPU4は、上述の手順に従い検出された抽出後画像を用いて、所定手順に従い欠陥検査処理(図4のステップS7)を実行する。欠陥検査には、たとえばモデル画像と抽出後画像とのパターンマッチングなど、公知の手順を適用することができるので、ここでは詳細説明は略す。
【0152】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0153】
1 コンピュータ、2A 第1カメラ部、2B 第2カメラ部、3 表示部、4 CPU、14 ワークを搭載したパレット、18 撮影部、300 「表示設定」エリア、301 画像領域、308 「座標表示」エリア、309 「面設定」タブ、310 点、311 「面情報」エリア、320 「面選択」タブ、321 「オフセット設定」エリア、322 「前後表示切替」タブ、326 「抽出領域」タブ、327 「フィルタサイズ」タブ、329 「抽出オフセット」タブ。

【特許請求の範囲】
【請求項1】
表示部と、
対象物の高さ情報を入力する高さ入力部と、
設定モードにおいて、画像処理のためのデータを設定する設定部と、
運転モードにおいて、画像を入力し、前記設定部が予め設定したデータに基づき入力画像を処理する運転処理部とを備え、
前記設定部は、
前記設定モードにおいて前記対象物を撮影することにより取得した第1画像を、前記表示部に表示する設定画像表示部と、
外部入力に従い、前記高さの閾値データを受付ける閾値受付部と、
前記高さ入力部が前記設定モードにおいて入力する前記高さ情報と、前記閾値受付部により受付けた前記閾値データとに基づき、前記第1画像から、前記閾値データが指示する高さ情報を有した第1部分画像を検出する第1検出部と、を含み、
前記運転処理部は、
前記運転モードにおいて前記対象物を撮影することにより取得した第2画像を入力し、前記表示部に表示する運転画像表示部と、
前記高さ入力部が前記運転モードにおいて入力する前記高さ情報と、前記設定モードにおいて前記閾値受付部が受付けた前記閾値データとに基づき、前記第2画像から、当該閾値データが指示する高さ情報を有した第2部分画像を検出する第2検出部と、を含む、画像処理装置。
【請求項2】
前記設定部は、
前記設定モードにおいて、前記第1検出部が検出した前記第1部分画像を前記表示部の画面に表示し、前記画面の前記第1部分画像の背景画像は、所定色で表示される、請求項1に記載の画像処理装置。
【請求項3】
前記高さ情報は、前記対象物の画像の部分毎に前記対象物の高さを指す、請求項1または2に記載の画像処理装置。
【請求項4】
前記設定部は、
前記設定モードにおいて前記高さ入力部が入力した前記高さ情報に基づき、前記第1画像の指定された位置に対応する部分の前記高さ情報を検出し、検出した当該高さ情報に基づき、当該指定位置に対応する前記対象物の断面形状を指す第1ラインを、前記第1画像とともに表示する断面形状表示部を、さらに含む、請求項3に記載の画像処理装置。
【請求項5】
前記第1画像は直交する第1軸および第2軸で規定される2次元座標平面に対応し、
前記指定位置は、前記第1軸および前記第2軸それぞれに平行な第2ラインのそれぞれが通過する座標により指示される、請求項4に記載の画像処理装置。
【請求項6】
前記閾値受付部が受付けた前記閾値データが指す高さ情報を示すための第3ラインを、前記第1ラインに関連付けて前記第1画像とともに表示する、請求項4または5に記載の画像処理装置。
【請求項7】
前記外部入力は、前記設定画像表示部により表示された前記第1画像におけるエリアを指定するエリア指定入力を含み、
前記高さの閾値データは、前記高さ入力部が入力した前記高さ情報のうち、指定された前記エリアに対応する部分の前記高さ情報により指示される、請求項3に記載の画像処理装置。
【請求項8】
前記外部入力は、前記設定画像表示部により表示された前記第1画像における複数の点を指定する点指定入力を含み、
前記高さの閾値データは、前記高さ入力部が入力した前記高さ情報のうち、指定された前記複数点に対応する部分を通る平面の高さにより指示される、請求項3から6のいずれかに記載の画像処理装置。
【請求項9】
前記平面は、前記閾値データの上限と下限それぞれに対応する上限面と下限面を含み、
前記複数点は前記上限面と前記下限面のための指定点を含み、
前記高さの閾値データは、前記上限面と前記下限面それぞれの前記高さ情報により指示され、
前記第2検出部は、
前記運転モードにおいて前記高さ入力部が入力した前記高さ情報と、前記設定モードにおいて前記閾値受付部が受付けた前記閾値データが指示する前記上限面および前記下限面の前記高さ情報とに基づき、前記上限面の高さ情報以下、且つ前記下限面の高さ情報以上である前記高さ情報を有した前記第2部分画像を検出する、請求項8に記載の画像処理装置。
【請求項10】
前記上限面と前記下限面それぞれの前記高さ情報は、外部入力に基づき可変である、請求項9に記載の画像処理装置。
【請求項11】
前記部分毎の前記対象物の高さ情報は、当該部分に対応する画像の階調値を指し、
前記閾値受付部は、
前記部分毎の前記階調値と外部入力とに基づき、前記第1画像において周囲領域の濃淡変化の程度よりも、大きな変化程度を有する部分を検出し、検出した部分を通る曲面を生成する濃淡面生成部を、含み、
前記閾値受付部は、前記曲面が通る部分に対応の前記高さ情報に基づいた前記閾値データを受付ける面閾値受付部を、有する、請求項3から6のいずれかに記載の画像処理装置。
【請求項12】
前記面閾値受付部が受付ける前記閾値データは、オフセット値に基づき更新された後の前記曲面が通る部分に対応の前記高さ情報を指す、請求項11に記載の画像処理装置。
【請求項13】
前記オフセット値は、外部入力に基づき変更可能である、請求項12に記載の画像処理装置。
【請求項14】
前記周囲領域のサイズは、外部入力に基づき変更可能である、請求項11から13のいずれかに記載の画像処理装置。
【請求項15】
設定モードにおいて、画像処理のためのデータを設定する設定ステップと、
運転モードにおいて、画像を入力し、前記設定ステップよって設定されたデータに基づき入力画像を処理する運転処理ステップとを備え、
前記設定ステップでは、
前記設定モードにおいて対象物を撮影することにより取得した第1画像を、表示する設定画像表示ステップと、
外部入力に従い、前記高さの閾値データを受付ける閾値受付ステップと、
前記設定モードにおいて入力する前記対象物の前記高さ情報と、前記閾値受付ステップにより受付けた前記閾値データとに基づき、前記第1画像から、前記閾値データが指示する高さ情報を有した第1部分画像を検出する第1検出ステップと、を含み、
前記運転処理ステップは、
前記運転モードにおいて前記対象物を撮影することにより取得した第2画像を入力し、表示する運転画像表示ステップと、
前記運転モードにおいて入力する前記対象物の前記高さ情報と、前記設定モードにおいて前記閾値受付ステップが受付けた前記閾値データとに基づき、前記第2画像から、当該閾値データが指示する高さ情報を有した第2部分画像を検出する第2検出ステップと、を含む、画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図10】
image rotate

【図15】
image rotate

【図18】
image rotate

【図21】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図6】
image rotate

【図7】
image rotate

【図9】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図16】
image rotate

【図17】
image rotate

【図19】
image rotate

【図20】
image rotate

【図22】
image rotate

【図26】
image rotate


【公開番号】特開2010−216838(P2010−216838A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−60888(P2009−60888)
【出願日】平成21年3月13日(2009.3.13)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】