(57)【要約】【課題】撮影画像から対象物の画像を精度よく検出する。【解決手段】コンピュータ１は、設定モードにおいて撮影部１８が撮影した対象物の撮影画像を、表示部３に表示する。そして、キーボード６Ａからの外部入力に従い高さの閾値データを受付ける。撮影画像について検出された高さ情報と、受付けた閾値データとに基づき、撮影画像から、閾値データが指示する高さ情報を有した部分画像を抽出して表示部３に表示する。運転モードでは、コンピュータ１は、対象物を撮影することにより取得した画像を表示部３に表示し、当該撮影画像について検出された高さ情報と、設定モードにおいて予め受付けた閾値データとに基づき、当該撮影画像から、当該閾値データが指示する高さ情報を有した部分画像を抽出する。運転モードで抽出された画像データは、対象物の欠陥検査のために適用される。【選択図】図１
2010216838.tif 000002
【特許請求の範囲】
【請求項１】
表示部と、
対象物の高さ情報を入力する高さ入力部と、
設定モードにおいて、画像処理のためのデータを設定する設定部と、
運転モードにおいて、画像を入力し、前記設定部が予め設定したデータに基づき入力画像を処理する運転処理部とを備え、
前記設定部は、
前記設定モードにおいて前記対象物を撮影することにより取得した第１画像を、前記表示部に表示する設定画像表示部と、
外部入力に従い、前記高さの閾値データを受付ける閾値受付部と、
前記高さ入力部が前記設定モードにおいて入力する前記高さ情報と、前記閾値受付部により受付けた前記閾値データとに基づき、前記第１画像から、前記閾値データが指示する高さ情報を有した第１部分画像を検出する第１検出部と、を含み、
前記運転処理部は、
前記運転モードにおいて前記対象物を撮影することにより取得した第２画像を入力し、前記表示部に表示する運転画像表示部と、
前記高さ入力部が前記運転モードにおいて入力する前記高さ情報と、前記設定モードにおいて前記閾値受付部が受付けた前記閾値データとに基づき、前記第２画像から、当該閾値データが指示する高さ情報を有した第２部分画像を検出する第２検出部と、を含む、画像処理装置。
【請求項２】
前記設定部は、
前記設定モードにおいて、前記第１検出部が検出した前記第１部分画像を前記表示部の画面に表示し、前記画面の前記第１部分画像の背景画像は、所定色で表示される、請求項１に記載の画像処理装置。
【請求項３】
前記高さ情報は、前記対象物の画像の部分毎に前記対象物の高さを指す、請求項１または２に記載の画像処理装置。
【請求項４】
前記設定部は、
前記設定モードにおいて前記高さ入力部が入力した前記高さ情報に基づき、前記第１画像の指定された位置に対応する部分の前記高さ情報を検出し、検出した当該高さ情報に基づき、当該指定位置に対応する前記対象物の断面形状を指す第１ラインを、前記第１画像とともに表示する断面形状表示部を、さらに含む、請求項３に記載の画像処理装置。
【請求項５】
前記第１画像は直交する第１軸および第２軸で規定される２次元座標平面に対応し、
前記指定位置は、前記第１軸および前記第２軸それぞれに平行な第２ラインのそれぞれが通過する座標により指示される、請求項４に記載の画像処理装置。
【請求項６】
前記閾値受付部が受付けた前記閾値データが指す高さ情報を示すための第３ラインを、前記第１ラインに関連付けて前記第１画像とともに表示する、請求項４または５に記載の画像処理装置。
【請求項７】
前記外部入力は、前記設定画像表示部により表示された前記第１画像におけるエリアを指定するエリア指定入力を含み、
前記高さの閾値データは、前記高さ入力部が入力した前記高さ情報のうち、指定された前記エリアに対応する部分の前記高さ情報により指示される、請求項３に記載の画像処理装置。
【請求項８】
前記外部入力は、前記設定画像表示部により表示された前記第１画像における複数の点を指定する点指定入力を含み、
前記高さの閾値データは、前記高さ入力部が入力した前記高さ情報のうち、指定された前記複数点に対応する部分を通る平面の高さにより指示される、請求項３から６のいずれかに記載の画像処理装置。
【請求項９】
前記平面は、前記閾値データの上限と下限それぞれに対応する上限面と下限面を含み、
前記複数点は前記上限面と前記下限面のための指定点を含み、
前記高さの閾値データは、前記上限面と前記下限面それぞれの前記高さ情報により指示され、
前記第２検出部は、
前記運転モードにおいて前記高さ入力部が入力した前記高さ情報と、前記設定モードにおいて前記閾値受付部が受付けた前記閾値データが指示する前記上限面および前記下限面の前記高さ情報とに基づき、前記上限面の高さ情報以下、且つ前記下限面の高さ情報以上である前記高さ情報を有した前記第２部分画像を検出する、請求項８に記載の画像処理装置。
【請求項１０】
前記上限面と前記下限面それぞれの前記高さ情報は、外部入力に基づき可変である、請求項９に記載の画像処理装置。
【請求項１１】
前記部分毎の前記対象物の高さ情報は、当該部分に対応する画像の階調値を指し、
前記閾値受付部は、
前記部分毎の前記階調値と外部入力とに基づき、前記第１画像において周囲領域の濃淡変化の程度よりも、大きな変化程度を有する部分を検出し、検出した部分を通る曲面を生成する濃淡面生成部を、含み、
前記閾値受付部は、前記曲面が通る部分に対応の前記高さ情報に基づいた前記閾値データを受付ける面閾値受付部を、有する、請求項３から６のいずれかに記載の画像処理装置。
【請求項１２】
前記面閾値受付部が受付ける前記閾値データは、オフセット値に基づき更新された後の前記曲面が通る部分に対応の前記高さ情報を指す、請求項１１に記載の画像処理装置。
【請求項１３】
前記オフセット値は、外部入力に基づき変更可能である、請求項１２に記載の画像処理装置。
【請求項１４】
前記周囲領域のサイズは、外部入力に基づき変更可能である、請求項１１から１３のいずれかに記載の画像処理装置。
【請求項１５】
設定モードにおいて、画像処理のためのデータを設定する設定ステップと、
運転モードにおいて、画像を入力し、前記設定ステップよって設定されたデータに基づき入力画像を処理する運転処理ステップとを備え、
前記設定ステップでは、
前記設定モードにおいて対象物を撮影することにより取得した第１画像を、表示する設定画像表示ステップと、
外部入力に従い、前記高さの閾値データを受付ける閾値受付ステップと、
前記設定モードにおいて入力する前記対象物の前記高さ情報と、前記閾値受付ステップにより受付けた前記閾値データとに基づき、前記第１画像から、前記閾値データが指示する高さ情報を有した第１部分画像を検出する第１検出ステップと、を含み、
前記運転処理ステップは、
前記運転モードにおいて前記対象物を撮影することにより取得した第２画像を入力し、表示する運転画像表示ステップと、
前記運転モードにおいて入力する前記対象物の前記高さ情報と、前記設定モードにおいて前記閾値受付ステップが受付けた前記閾値データとに基づき、前記第２画像から、当該閾値データが指示する高さ情報を有した第２部分画像を検出する第２検出ステップと、を含む、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取得した画像の中から予め設定した高さ情報を有する領域を特定して抽出する画像処理装置および方法に関する。
【背景技術】
【０００２】
製造現場においては、省力化および高効率化の観点から、オートメーション化が進められている。オートメーション化を実現するために、多くのセンサ類が使用される。このようなセンサ類の中でもワーク（検査対象物）を撮影し、撮影した画像を処理することで当該ワークの欠陥検査を行なうことができる画像センサがよく用いられる。
【０００３】
多くの画像センサは、ワークを撮影する撮影部と、撮影部から得られた画像を処理する画像処理部から構成され、撮影部により撮影された画像の中に所定の形状を持つ領域が含まれるか否かなどを判断する。このような画像処理を用いたワークの欠陥検査において、たとえば、パレット上に置かれたワークの欠陥検査がある。従来、ワークは、製造ラインを搬送される過程で撮影部であるカメラの視野の同じ場所で停止する。撮影画像からワーク画像を検出するために、視野の所定位置に計測領域を設け、計測領域のサイズをワークのサイズに一致するように設定する。撮影画像においてワークの位置を計測領域に一致するようにずれを修正した後に、検査工程に移る。位置ずれの修正は、撮影した画像についてサーチやエッジ処理を適用して行う。
【０００４】
また撮影画像からワーク画像を検出する他の方法として、色情報を用いて背景をカットする処理が提供されている。この処理の一例として、出願人による特許文献１（特開２００８−１５７０６号公報）に記載の技術が提案されている。この技術では、ワークの色情報を使って、撮影画像からワーク画像のみを抽出（背景をカット）することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１５７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の計測領域を利用したワーク画像の検出では、パレット上に、ワークとよく似た背景（緩衝材など）が存在すると、サーチやエッジ処理を使っても、背景の影響で、サーチ計測やエッジ位置計測を正確に行なうことができず、位置ずれ量を検出することが困難となり、正確な位置ずれの修正を行なうことができない。その結果、ワークの欠陥検査に時間がかかり、また高い検査精度を得ることが困難となる。
【０００７】
また、上述の色情報を用いた背景カット処理によるワーク画像の検出では、背景とワークが同じ色であった場合には背景のみのカット処理は困難である。また、色情報を用いるため、照明条件など外部環境の影響を受けやすい。
【０００８】
それゆえにこの発明の目的は、検出対象の配置および背景の色の制約を受けず、また照明条件などの外部環境の影響を受けることなく、撮影画像から対象物の画像を検出することのできる画像処理装置および方法を提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従う画像処理装置は、表示部と、対象物の高さ情報を入力する高さ入力部と、設定モードにおいて、画像処理のためのデータを設定する設定部と、運転モードにおいて、画像を入力し、設定部が予め設定したデータに基づき入力画像を処理する運転処理部とを備える。
【００１０】
設定部は、設定モードにおいて対象物を撮影することにより取得した第１画像を、表示部に表示する設定画像表示部と、外部入力に従い、高さの閾値データを受付ける閾値受付部と、高さ入力部が設定モードにおいて入力した高さ情報と、閾値受付部により受付けた閾値データとに基づき、第１画像から、閾値データが指示する高さ情報を有した第１部分画像を検出する第１検出部と、を含む。
【００１１】
運転処理部は、運転モードにおいて対象物を撮影することにより取得した第２画像を入力し、表示部に表示する運転画像表示部と、高さ入力部が運転モードにおいて入力した高さ情報と、設定モードにおいて閾値受付部が受付けた閾値データとに基づき、第２画像から、当該閾値データが指示する高さ情報を有した第２部分画像を検出する第２検出部と、を含む。
【００１２】
好ましくは、設定部は、設定モードにおいて、第１検出部が検出した第１部分画像を表示部の画面に表示し、画面の第１部分画像の背景画像は、所定色で表示される。
【００１３】
この態様により、設定モードにおいては、ユーザは、検出した第１部分画像を確認することができる。所望画像が検出されていないと確認した場合には、再度、外部入力をして閾値データの再設定を行うことができる。
【００１４】
好ましくは、背景画像の所定色は可変である。
好ましくは、高さ情報は、対象物の画像の部分毎に対象物の高さを指す。
【００１５】
好ましくは、高さ情報は、対象物の画像の画素毎に対象物の高さを指す。
好ましくは、設定部は、設定モードにおいて高さ入力部が入力した高さ情報に基づき、第１画像の指定された位置に対応する部分の高さ情報を検出し、検出した当該高さ情報に基づき、当該指定位置に対応する対象物の断面形状を指す第１ラインを、第１画像とともに表示する断面形状表示部を、さらに含む。
【００１６】
好ましくは、第１ラインが指す断面形状に対応する高さ情報の値が、第１ラインに関連付けて、または、近傍に表示される。好ましくは、この高さ情報の値の表示または非表示は、切替可能である。
【００１７】
好ましくは、第１画像は直交する第１軸および第２軸で規定される２次元座標平面に対応し、指定位置は、第１軸および第２軸それぞれに平行な第２ラインのそれぞれが通過する座標により指示される。
【００１８】
好ましくは、閾値受付部が受付けた閾値データが指す高さ情報を示すための第３ラインを、第１ラインに関連付けて第１画像とともに表示する。
【００１９】
好ましくは、第３ラインに関連付けて、または、近傍に、高さ情報の値が表示される。好ましくは、この高さ情報の値の表示または非表示は、切替可能である。
【００２０】
好ましくは、外部入力は、設定画像表示部により表示された第１画像における部分エリアを指定するエリア指定入力を含み、高さ入力部が入力した高さ情報のうち、指定された前記エリアに対応する部分の高さ情報により指示される。
【００２１】
好ましくは、外部入力は、設定画像表示部により表示された第１画像における複数の点を指定する点指定入力を含み、高さの閾値データは、高さ入力部が入力した高さ情報のうち、指定された複数点に対応する部分を通る平面の高さにより指示される。
【００２２】
好ましくは、平面は、閾値データの上限と下限それぞれに対応する上限面と下限面を含み、複数点は上限面と前記下限面のための指定点を含み、高さの閾値データは、上限面と下限面それぞれの前記高さ情報により指示され、第２検出部は、運転モードにおいて高さ入力部が入力した高さ情報と、設定モードにおいて閾値受付部が受付けた閾値データが指示する上限面および下限面の高さ情報とに基づき、上限面の高さ情報以下、且つ下限面の高さ情報以上である高さ情報を有した第２部分画像を検出する。
【００２３】
好ましくは、上限面と下限面それぞれの高さ情報は、外部入力に基づき可変である。
好ましくは、部分毎の対象物の高さ情報は、当該部分に対応する画像の階調値を指し、閾値受付部は、部分毎の階調値と外部入力とに基づき、第１画像において周囲領域の画素の濃淡変化の程度よりも、大きな変化程度を有する部分を検出し、検出した部分を通る曲面を生成する濃淡面生成部を、含み、閾値受付部は、曲面が通る部分に対応の高さ情報に基づいた閾値データを受付ける面閾値受付部を、有する。
【００２４】
好ましくは、面閾値受付部が受付ける閾値データは、オフセット値に基づき更新された後の曲面が通る部分に対応の高さ情報を指す。
【００２５】
好ましくは、オフセット値は、外部入力に基づき変更可能である。
好ましくは、周囲領域のサイズは、外部入力に基づき変更可能である。
【００２６】
この発明のある局面に従う画像処理法は、設定モードにおいて、画像処理のためのデータを設定する設定ステップと、運転モードにおいて、画像を入力し、設定ステップよって設定されたデータに基づき入力画像を処理する運転処理ステップとを備える。
【００２７】
設定ステップでは、設定モードにおいて対象物を撮影することにより取得した第１画像を、表示する設定画像表示ステップと、外部入力に従い高さの閾値データを受付ける閾値受付ステップと、設定モードにおいて入力する対象物の高さ情報と、閾値受付ステップにより受付けた閾値データとに基づき、第１画像から、閾値データが指示する高さ情報を有した第１部分画像を検出する第１検出ステップと、を含む。
【００２８】
運転処理ステップは、運転モードにおいて対象物を撮影することにより取得した第２画像を入力し、表示する運転画像表示ステップと、運転モードにおいて入力する対象物の高さ情報と、設定モードにおいて閾値受付ステップが受付けた閾値データとに基づき、第２画像から、当該閾値データが指示する高さ情報を有した第２部分画像を検出する第２検出ステップと、を含む。
【発明の効果】
【００２９】
この発明によれば、対象物の撮影画像から、対象物の高さ情報に基づき、外部入力に従う高さの閾値データに該当する部分画像を検出するので、対象物の背景の模様や色に制約を受けることなく、また照明条件などの外部環境変化に影響を受けることなく、撮影画像から閾値データで指定された部分画像を検出することができる。
【図面の簡単な説明】
【００３０】
【図１】この発明の実施の形態に係る画像処理装置の全体構成を示す概略図である。
【図２】この発明の実施の形態に係る画像処理装置が搭載されるコンピュータのハードウェア構成を示す概略図である。
【図３】（Ａ）〜（Ｄ）は、この発明の実施の形態に係る高さ閾値の指定方法を説明する図である。
【図４】この発明の実施の形態に係る全体処理の概略フローチャートである。
【図５】この発明の実施の形態に係る設定処理の概略フローチャートである。
【図６】この発明の実施の形態に係る表示画像の選択を説明するための図である。
【図７】（Ａ）〜（Ｃ）は、この発明の実施の形態に係る表示画像として選択される候補画像の一例を示す図である。
【図８】この発明の実施の形態に係るＬＵＴの作成手順を説明するための図である。
【図９】この発明の実施の形態に係る画像におけるプロファイルの表示を説明する図である。
【図１０】この発明の実施の形態に係る点指定方法によるパラメータ設定の処理フローチャートである。
【図１１】図１０の処理フローチャートにおいて表示される画面の一例を示す図である。
【図１２】図１０の処理フローチャートにおいて表示される画面の他の例を示す図である。
【図１３】図１０の処理フローチャートにおいて表示される画面のさらなる他の例を示す図である。
【図１４】図１０の処理フローチャートにおいて表示される画面のさらなる他の例を示す図である。
【図１５】本実施の形態に係る静的平面指定方法によるパラメータ設定の処理フローである。
【図１６】図１５の処理フローチャートにおいて表示される画面の一例を示す図である。
【図１７】図１５の処理フローチャートにおいて表示される画面の他の例を示す図である。
【図１８】本発明の実施の形態に係る動的平面指定方法に従うパラメータ設定の処理フローチャートである。
【図１９】図１８の処理フローチャートにおいて表示される画面の一例を示す図である。
【図２０】図１８の処理フローチャートにおいて表示される画面の他の例を示す図である。
【図２１】本発明の実施の形態に係る動的曲面指定方法によるパラメータ設定処理のフローチャートである。
【図２２】図２１の処理フローチャートにおいて表示される画面の一例を示す図である。
【図２３】（Ａ）〜（Ｃ）は本発明の実施の形態に係る動的曲面指定の概念を説明する図である。
【図２４】本発明の実施の形態に係る動的曲面指定のアルゴリズムに適用されるフィルタを説明する図である。
【図２５】本発明の実施の形態に係る運転処理のフローチャートである。
【図２６】図２５の処理フローチャートにおいて表示される画面の一例を示す図である。
【発明を実施するための形態】
【００３１】
この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については同一符号を付してその説明は繰返さない。
【００３２】
＜全体装置構成＞
図１を参照して、この発明の実施の形態に従う画像処理装置１は、代表的に生産ラインなどに組込まれ、検査対象物（以下、「ワーク」とも称す）を光学的に処理することができる。この光学的な処理には、ワーク表面の欠陥検出が含まれる。
【００３３】
一例として、本実施の形態においては、斜線で示すワークを搭載するパレット１４は、ベルトコンベアなどの搬送機構１６によって搬送され、搬送されたパレット１４は、撮影部１８によって逐次撮影される。撮影部１８によって撮影された画像データ（以下「入力画像」とも称す）は、画像処理装置として機能するコンピュータ１へ伝送される。なお、入力画像としては、カラー画像であってもよいし、モノクロ（グレースケール）画像であってもよい。
【００３４】
パレット１４が撮影部１８の撮影範囲に到達したことは、搬送機構１６の両端に配置された光電センサによって検出される。具体的には、光電センサは、同一の光軸上に配置された受光部１５ａと投光部１５ｂとからなり、投光部１５ｂから放射される光がパレット１４で遮蔽されることを受光部１５ａで検出することによって、パレット１４の到達を検出する。
【００３５】
撮影部１８は、上述した光電センサによってパレット１４の到着が検出されると、これに応じてワークを含むパレット１４の撮影を開始する。あるいは、連続的に撮影を行なっておき、パレット１４の到着が検出されたタイミングで、後述するワークの欠陥検出や、その他の検査・計測を開始するようにしてもよい。
【００３６】
撮影部１８は、後述する第１カメラ部２Ａおよび第２カメラ部２Ｂを含む。
コンピュータ１は、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）１２が着脱自在に装着されて、装着されたＣＤ−ＲＯＭをアクセスする機能を内蔵している。また、表示部３と、キーボード６Ａと、マウス６Ｂとを含む。そして、コンピュータ１は、予め格納されたプログラムを実行することで、本実施の形態に従う画像上の検査対象のワークを検出するための画像処理のためのパラメータの設定を支援する方法を提供する。
【００３７】
＜ハードウェア構成＞
図２を参照してコンピュータ１は、ＣＰＵ（Central Processing Unit）４、ＲＯＭ（Read Only Memory）およびＲＡＭ(Random Access Memory）を含む主記憶部８、表示部３に係る情報の表示に関する処理を行なう表示処理部９、外部の通信網などと接続するための外部Ｉ／Ｆ（Interface）１０、キーボード６Ａおよびマウス６Ｂからの入力データを受付けるための入力部６、ＣＤ−ＲＯＭ１２などの記録媒体をアクセスし、データを読取るための読取部１１、ハードディスクなどの補助記憶部５、撮影部１８によって撮影された画像データを入力するための撮影部Ｉ／Ｆ７を含む。これらの各部はバス１３を介して相互に接続されている。
【００３８】
撮影部１８は、第１カメラ部２Ａと第２カメラ部２Ｂを含む。第１カメラ部２Ａは、上述した光電センサによってワークを搭載するパレット１４の到着が検出されると、これに応じてワークを含むパレット１４の撮影を開始する。
【００３９】
一例として、第１カメラ部２Ａは、レンズなどの光学系に加えて、ＣＣＤ（Charge Coupled Device）やＣＩＳ（Contact Image Sensor）といった複数の画素に区画された撮像素子を含んで構成される。第２カメラ部２Ｂは、後述する距離画像を撮影するために設けられる。
【００４０】
本実施の形態に従う画像処理装置は、ＣＰＵ４が主記憶部８、補助記憶部５またはＣＤ−ＲＯＭ１２などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、ＣＤ−ＲＯＭ１２などの記録媒体に格納されて、またはインターネットなどの各種通信網を介して流通する。そして、このようなプログラムは、ＣＤ−ＲＯＭ１２などにより記録媒体から読取られて、内部の記憶装置である補助記憶部５に一旦格納される。さらに、補助記憶部５から主記憶部８に読出されて、ＣＰＵ４により実行される。
【００４１】
ＣＰＵ４は、プログラムされた命令を逐次実行することで、各種の演算を実施する演算処理部である。
【００４２】
撮影部Ｉ／Ｆ７は、コンピュータ１と撮影部１８との間のデータ通信を仲介する。撮影部１／Ｆ７は、画像バッファを含むことが好ましい。画像バッファは、撮影部Ｉ／Ｆ７で撮影され逐次伝送される入力画像データを一旦蓄積し、１回の撮影分の入力画像データが蓄積されると、その蓄積されたデータを主記憶部８または補助記憶部５へ転送する。
【００４３】
外部Ｉ／Ｆ１０は、コンピュータ１と外部のデバイスとの間のデータ通信を仲介するための装置である。外部Ｉ／Ｆ１０は、上述した光電センサなどからの検出信号を受信してＣＰＵ４へ伝達する。
【００４４】
補助記憶部５は、ＣＰＵ４が実行するプログラムや入力画像データなどを格納する不揮発性の記憶装置である。
【００４５】
コンピュータ１に接続される表示部３は、ＣＰＵ４が出力する情報（画像を含む）を表示するためのものであって、たとえばＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）などから構成される。
【００４６】
マウス６Ｂはクリックやスライドなどの動作に応じたユーザからの指令を受付ける。キーボード６Ａは、入力されるキーに応じたユーザからの指令を受付ける。
【００４７】
また、コンピュータ１には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【００４８】
本実施の形態に係る画像処理装置の表示部３における画面の表示は、ＣＰＵ４および図示しないグラフィックボードなどが協働することで、行なわれる。このような画面表示は、ＯＳ（Operating System）の一部として組込まれるＧＵＩ（Graphical User Interface）プログラムによって実現され、またＧＵＩは、ユーザがキーボード６Ａやマウス６Ｂにより操作される画面上のカーソルを用いて、さまざまなユーザ設定を行なうための環境も提供する。
【００４９】
＜高さ閾値の指定方法＞
本実施の形態に従う画像処理装置では、入力画像からワークの画像領域を検出するために、ワークの絶対距離または相対距離を計測し、後述の距離画像を作成する。
【００５０】
作成された距離画像について任意の高さ範囲を指定し、指定された範囲に該当する箇所のみを入力画像から抽出することにより、欠陥検査などのための対象画像を検出する。
【００５１】
本実施の形態において距離画像とは、入力画像が示す高さ情報を、グレースケールで表わした画像である。すなわち、入力画像の各画素の輝度レベルは、撮影部１８と撮影対象までの距離（遠近）で相違するので、この輝度レベルの相違によって対象物の各画素に対応の距離に対応の高さ情報が検出され、検出された高さ情報を、所定手順に従い階調情報へ変換し、変換によって得られた階調情報に従い画像を生成することにより、距離画像が検出される。
【００５２】
距離の計測方法としてはピント（焦点）が合っている画像を重ねることにより作成された画像の焦点距離から対象物までの距離を計測する合焦点法、光源から出た光が対象物表面で反射しセンサに届くまでの光の飛行時間に基づき対象物までの距離を検出するＴＯＦ（Time Of Flight）法、レーザをラインビームとして対象物に照射して反射光成分により距離を検出する方法、カメラを２つ用いたステレオ法などがある。本実施の形態では、カメラを２つ用いたステレオ法により距離の計測を行なうが、距離の計測方法はこれに限定されず、他の方法であってもよい。
【００５３】
ステレオカメラを用いた距離の計測方法は、公知のものである。簡単に説明すると、対象物を複数の異なる方向から同時に複数のカメラで撮影することにより、その対象物の奥行き方向の情報も記録される。本実施の形態では、第２カメラ部２Ｂに、異なる位置に配置された２台のカメラを備える。２台のカメラで、１つの対象物（パレット１４など）を撮影すると、２台のカメラ（左右の異なる位置に置かれたカメラ）の撮影画像には視差が発生する。ＣＰＵ４は、撮影画像に基づき、当該視差に従いカメラから対象物までの距離を所定演算式に従い算出することにより、対象物までの距離情報を得る。さらに、ＣＰＵ４は、２台のカメラを少しずつずらすことにより、対象物表面の各点におけるカメラから当該点までの距離を求める。これにより、対象物表面について各点に対応の部分毎、または画素毎の距離情報が検出される。検出された距離情報である高さ情報に基づきＬＵＴ（Look Up Table）を検索することにより、対応のグレースケール値（階調情報）をＬＵＴから読出し、読出した階調情報に基づき距離画像を生成する。
【００５４】
図３（Ａ）〜（Ｄ）には、上述のようにして検出された距離画像において、検査対象として抽出するべき画像領域を検出するための閾値（高さ閾値）の指定方法が模式的に示される。対象物が必ず基準面に対して水平である場合には、「点指定方式」（図３（Ａ））に従い高さ閾値を指定することができる。対象物が基準面に対し必ず一定の傾きをもって置かれている場合には、「静的平面指定方式」（図３（Ｂ））を適用して高さ閾値を指定することができる。また、基準面に対し対象物の傾きが変動する場合には、「動的平面指定方式」（図３（Ｃ））を適用することにより、高さ閾値を指定することができる。また、対象物が形状不安定な場合には、「動的曲面指定方式」（図３（Ｄ））により、高さ閾値を指定することができる。
【００５５】
ここで基準面とは、たとえば撮影部１８のカメラの光軸に対して直交する面、またはコンベアの搬送面を指す。このように、基準面は予め定められた座標系に基づいて、それに対する傾きを表わす面である。
【００５６】
＜概略フローチャート＞
図４を参照して、本実施の形態に係る画像処理装置は動作モードとして、パラメータ設定モード、運転モードおよび検査モードを含む。これら動作モードは、外部からの入力に従い切替可能である。
【００５７】
画像処理装置の全体処理は、パラメータ設定モードにおいて、距離画像から対象画像を抽出（検出）するためのパラメータの設定処理（ステップＳ３）、運転モードにおいて、予め設定されたパラメータを用いて入力画像から検査対象画像を検出する運転処理（ステップＳ５）、および検査モードにおいて、運転処理によって検出された画像を用いたワークの欠陥検査などの処理（ステップＳ７）を含む。なお、図４ではステップＳ３〜Ｓ７は連続して実行されるように記載したが、各処理は、図４に示す前段の処理が終了して必要なパラメータ値または画像データが検出されているならば、実行順序は、これに限定されるものではない。
【００５８】
＜パラメータ設定概略処理＞
図５を参照して、図４のパラメータ設定処理（ステップＳ３）は、まず、ユーザによる表示画像の選択入力（ステップＳ３３）、高さ閾値の指定方法（図３（Ａ）〜（Ｄ）のいずれかの方法）の選択的な決定（ステップＳ３５）、決定された高さ閾値の指定方法に従うパラメータ値の設定処理（ステップＳ３７）、および、設定されたパラメータ値に従い、ステップＳ３３で選択された表示画像から抽出した画像の表示処理（ステップＳ３９）を含む。以下、各ステップの処理について説明する。
【００５９】
＜表示画像選択＞
図５のステップＳ３３における表示画像の選択について図６および図７（Ａ）〜（Ｃ）を参照し説明する。
【００６０】
図５のステップＳ３３では表示部３に図６の画面が表示される。図６の画面は、画像を表示するための画像領域３０１、「表示切替」タブ３０６、「表示設定」エリア３００および、設定パラメータの格納を指示するために操作される「ＯＫ」ボタン４００と、操作の取消しを指示するために操作される「キャンセル」ボタン４０１が表示される。
【００６１】
「表示設定」エリア３００は、画像領域３０１に表示するべき画像の種類を設定するための入力を受付けるエリアである。ここでは、第１カメラ部２Ａによって撮影された入力画像を指す「計測画像」、「距離画像」および「超深度画像」のいずれかを選択することができる。図６では、「入力画像」が選択されており、画像領域３０１には、入力画像が表示されている。「表示切替」タブ３０６は、画像領域３０１に表示される画像について動画／静止画に切替えるために選択操作される。
【００６２】
図７（Ａ）〜（Ｃ）には、図６の画像領域３０１に表示される画像が例示される。図７（Ａ）には、第１カメラ部２Ａによる撮影画像である入力画像が、図７（Ｂ）には超深度画像が、図７（Ｃ）には距離画像がそれぞれ示される。超深度画像は、画像のすべての箇所についてピントが合った画像であり、ユーザに対し入力画像についてより明瞭な画像を提供するために表示される。超深度画像は、第１カメラ部２Ａによって対象を複数回撮影し、合焦点法に従いこれら画像を重ね合わせることにより、生成することができる。超深度画像は、ＣＰＵ４が第１カメラ部２Ａから出力される入力画像を、合焦点法に従い合成することにより生成する。生成された超深度画像は、主記憶部８に格納され、主記憶部８から読出された超深度画像のデータは表示部３に表示される。
【００６３】
距離画像についても、前述した手順に従い、ＣＰＵ４によって生成されて、主記憶部８に格納される。主記憶部８から読出された距離画像のデータは表示部３において表示される。
【００６４】
図８には、ルックアップテーブル（ＬＵＴ）の内容が模式的に示される。ＬＵＴには、高さ情報のそれぞれに対応して、グレースケール値が格納されている。前述したステレオカメラを用いて検出された高さ情報を入力値としてＬＵＴを計測し、対応するグレースケール値を出力値として読出すことにより、読出されたグレースケール値を用いて距離画像が生成される。ここでは、グレースケール値（階調値）は０〜２５５のいずれかの値であり、高さ情報についてもグレースケール値（階調値）に対応する下限値と上限値を有する。距離画像は、各画素について座標値（Ｘ，Ｙ，Ｚ）を有する。座標値Ｚは、基準面に直交するＺ軸の座標であって、高さ情報を指し、座標値（Ｘ，Ｙ）はＺ軸に直交するＸ軸およびＹ軸の座標であって、基準面はおよび画像は、直交するＸ軸およびＹ軸で規定される２次元座標の平面であると想定する。
【００６５】
ここでは、表示画像の選択のために、入力画像についての参考画像として超深度画像（図７（Ｂ）参照）を提示しているが、超深度画像に代替して「距離情報重畳画像」であってもよい。ＣＰＵ４は、「距離情報重畳画像」を次のように検出する。
【００６６】
つまり、第１カメラ部２Ａの撮影画像である入力画像または超深度画像を、各画素の階調値に基づきグレースケール画像に変換する。そして、グレースケール画像の各画素の階調値に基づきＬＵＴを検索し、対応の高さ情報を読出す。そして読出された高さ情報を、所定の変換式に従い処理することにより、各画素に対応のＲ（赤）、Ｇ（緑）およびＢ（青）の各階調値を算出する。算出により決定した３原色（ＲＧＢ）の階調値を用いて画像データを生成する。生成された画像データは「距離情報重畳画像」を指す。「距離情報重畳画像」が表示部３に表示された場合には、ユーザは、入力画像が指す高さ情報を色相の相違により確認することができる。
【００６７】
＜プロファイル表示＞
本実施の形態では、パラメータ設定のために、図９の画像領域３０１に表示された入力画像とともに、当該入力画像の所定位置の高さ情報に基づき、当該所定位置に対応するワークの断面形状を指すプロファイルを重畳して表示することができる。
【００６８】
高さ情報のプロファイル情報の表示に関しては、「水平および垂直」、「水平のみ」、「垂直のみ」および「非表示」の４種類から選択することができる。ここで、基準面に平行な面を、直交するＸ軸およびＹ軸で規定される２次元座標平面と想定した場合に、「垂直」はＹ軸が延びる方向を指し、「水平」はＸ軸が延びる方向を指す。プロファイルの表示を選択した場合、ユーザはマウス６Ｂを操作して、画像領域３０１の所望する位置をクリックする。この所望位置を、「タップ位置」という。
【００６９】
図９においてタップ位置３０３が指定されると、ＣＰＵ４は、画像領域３０１において、タップ位置３０３の座標（Ｘ，Ｙ）で直交する黄色い破線Ｙ２を画像に重畳して描画する。ここでは、ユーザは予めプロファイルの表示として「水平および垂直」を選択しているものと想定する。
【００７０】
ＣＰＵ４は、続いて、ユーザの「水平および垂直」の選択に基づき、主記憶部８に格納された距離画像の高さ情報に基づき、破線Ｙ２が通る各画素について、高さ情報を抽出して、垂直（Ｙ）方向および水平（Ｘ）方向に該当画素の高さ情報が指す値をプロットし、そのプロット値を黄色の実線Ｙ１で繋げる。画像に重畳して描画された実線Ｙ１をプロファイルと呼ぶ。このプロファイルが表示されることにより、ユーザはタップ位置３０３で直交する水平方向の軸および垂直方向の軸（破線Ｙ２に相当）におけるワークの高さ情報（断面形状の高さ）の変化を確認することができる。
【００７１】
ＣＰＵ４は、高さ情報の上限値および下限値を示すための画像領域３０１において、青色の破線Ｂを画像に重畳して描画する。この破線Ｂにより、ユーザが高さ情報を指定するためのスケール（分解能）の情報を、ユーザに与えることができる。上限値および下限値は、距離画像から検出する。検出した上限値および下限値は、破線Ｂの近傍に表示される。
【００７２】
ユーザは、破線Ｂとその上下限値を参照しながら、抽出したい高さ情報を有する面を指定するために、マウス６Ｂを操作して画像領域３０１に垂直および水平のラインである赤色の実線Ｒを描画する。引いた実線Ｒについて、ＣＰＵ４は、破線Ｂのスケールに従い、高さの数値を算出し、算出値を実線Ｒの近傍に表示する。これにより、ユーザは所望する抽出面の高さ情報を、数値で確認することができる。
【００７３】
図９では、スケールに相当する破線Ｂと抽出面の高さ情報を示す実線Ｒについて、その線の近傍に高さ情報の数値を表示しているが、表示を省略してもよい。さらには、当該数値を表示するか否かは、ユーザの選択入力に従い可変としてもよい。
【００７４】
＜高さ閾値の指定＞
図３（Ａ）〜（Ｄ）に示す高さ閾値の指定方法のうちから所望方法を選択する場合、ＣＰＵ４は、これら方法の一覧を表示部３に表示し、ユーザは一覧からキーボード６Ａまたはマウス６Ｂを操作して、所望するいずれかの方法を選択的に入力する。ＣＰＵ４は、選択指定された高さ閾値の指定方法のための処理フローチャートに従うプログラムを実行する。
【００７５】
＜点指定方法＞
図１０のフローチャートに従い、図１１および図１２の表示画面例を参照しながら、点指定方法による抽出面に係る高さ閾値の指定方法について説明する。
【００７６】
図１１には、プロファイルが表示された状態において、点指定方法で高さ閾値を設定する画面が示される。図１１のエリア３０３には、上限および下限の高さ閾値を指定するためにそれぞれスライダが表示される。スライダそれぞれは、高さ情報の目盛を有するバーと、バー上をマウス６Ｂのドラッグ操作で図中矢印方向に移動するボタン３０４とからなる。バーの目盛のスケールは、青色破線Ｂで示す高さ情報の上下限値に従い決まる。ユーザが、バー上のボタン３０４をドラッグ操作してスライドさせて、たとえば図１２に示すような位置にまで移動した場合には、ＣＰＵ４は、移動後のバー上の位置を読取り、読取った位置に対応する高さ情報の値を、上下限値に基づき算出して、上限および下限の算出値をボックス３０５にそれぞれ表示する。
【００７７】
図１２のボックス３０５には、スライダ操作によって指定された高さ閾値の上限値である値（＝１００）と下限値（＝５０）が表示されている。図１２では、画像領域３０１の表示画像は、ステップＳ３３でユーザが選択した表示画像のうち、指定した高さ閾値に該当する領域の部分画像が抽出されて表示される。その背景画像については、ユーザが所望の表示色を指定することができる。表示色は、好ましくは、抽出画像を際立たせるような色である。画像領域３０１に表示される画像は、「前後表示切替」タブ３２２を操作することにより、図１２のように指定した高さ閾値に該当する部分画像のみ（抽出後画像）と、抽出前画像（ステップＳ３３で選択した全体画像）との間で切替表示することができる。
【００７８】
なお、図１２の画面で、ユーザが、バー上のボタン３０４をドラッグ操作してスライドさせて、上下限値を更新した場合には、ＣＰＵ４は当該ドラッグ操作を割込みとして処理する。これにより、割込みに応答して、ステップＳ３３で指定された画像から更新後の上下限値に該当する画像の検出と、当該検出画像を用いた図１２の画像領域３０１の表示更新処理を行う。
【００７９】
図１０を参照して、動作において、ＣＰＵ４は、キーボード６Ａまたはマウス６Ｂを介したユーザからの入力情報に従い、図８に示したＬＵＴを作成する（ステップＴ１）。
【００８０】
続いて、ＣＰＵ４は、第２カメラ部２Ｂから入力したステレオカメラによる視差を有した画像情報に従い、前述した手順に従い距離画像を作成し格納する（ステップＴ３）。
【００８１】
続いてＣＰＵ４は、ステップＳ３３でユーザが選択した表示画像と、ユーザ操作によるプロファイルとを画像領域３０１に表示する（ステップＴ５）。これにより、図９の画像領域３０１において、選択した表示画像と、指定のタップ位置３０３に従う黄色実線Ｙ２のプロファイルとが表示される。併せて、青色破線Ｂのスケールが表示される。
【００８２】
続いてＣＰＵ４は、「ＯＫ」ボタン４００がクリックされたか否かを判定する（ステップＴ７）。ユーザは、点指定方法によるパラメータの設定を終了する場合、「ＯＫ」ボタン４００をクリックする。クリックされた場合、ＣＰＵ４は設定されたデータを補助記憶部５に格納する。この時点で、補助記憶部５には、図示するようにステップＴ１で作成したＬＵＴのデータ５１、画像表示領域３０１に表示される表示画像のデータ５２、およびスライダ操作でユーザが設定した抽出面の高さ情報の閾値（上限値および下限値）のデータ５３を含む情報が格納されている（ステップＴ１５）。
【００８３】
ステップＴ１５では、データの格納先を、補助記憶部５としているが、主記憶部８であってもよい。
【００８４】
データの記憶終了後、処理は元の処理（図５の処理）に戻る。
「ＯＫ」ボタン４００がクリックされていないと判定されると（ステップＴ７でＮＯ）、続いて「キャンセル」ボタン４０１が操作されたか否かが判定される（ステップＴ９）。ユーザは、パラメータの設定操作をキャンセルする場合、「キャンセル」ボタン４０１を操作するので、ＣＰＵ４は、「キャンセル」ボタン４０１の操作を検出すると（ステップＴ９でＹＥＳ）、設定データを何ら記憶せず、処理を元の処理に戻す。
【００８５】
「キャンセル」ボタン４０１が操作されていないと判定されると（ステップＴ９でＮＯ）、ＣＰＵ４は、画像領域３０１の表示画像の任意箇所に、ユーザの操作によって矩形３０７が描画されたか否かを判定する（図１３参照）。
【００８６】
描画されたと判定すると（ステップＴ１１でＹＥＳ）、矩形３０７のエリアの座標値に基づき対応する距離画像から、当該矩形３０７内の画像の高さ情報が指す高さの最大値と最小値を検出する（ステップＴ１７）。ＣＰＵ４は、検出した最大値と最小値に基づき、図１３のエリア３０３の上限値のバー上のボタン３０４を、検出された最大値＋１の位置にまでスライド（移動）させ、同様に、下限値のバー上のボタン３０４の位置を、検出された最小値−１の位置にまでスライド（移動）させる（図１４参照）。
【００８７】
続いて、ＣＰＵ４は、エリア３０３の高さ閾値の上限値および下限値の値３０５を、移動後のボタン３０４が指す上限値および下限値に更新する（ステップＴ２１）。
【００８８】
続いてＣＰＵ４は、ステップＴ２１で設定された値３０５に従い、実線Ｒを画像領域３０１に描画し、値３０５により「画像の抽出」を行い、検出された抽出後の画像を表示する（ステップＴ２３）。その後、処理はステップＴ７に戻る。
【００８９】
ここで「画像の抽出」とは、距離画像を検索して、座標Ｚの値がステップＴ２１で設定された値３０５の高さ情報に該当する画素の座標（Ｘ，Ｙ，Ｚ）を検出し、検出した座標に基づき、ステップＳ３３で選択された表示画像のデータを検索して、当該座標に該当する画素からなる画像データのみを読出すことを指す。読出した画像データを表示することで、図１２の抽出後画像が表示される。
【００９０】
一方、矩形３０７が描画されていないと判定されると（ステップＴ１１でＮＯ）、ＣＰＵ４は、エリア３０３のバー上のボタン３０４ががスライド操作（移動）されたか否かを判定する（図１１参照）。ユーザがスライド操作し、たとえば図１２に示すような位置にまで移動させた場合には、ＣＰＵ４は、移動後の位置に対応する高さ閾値の上限値と下限値を値３０５として表示する（図１２参照）。
【００９１】
このように、点指定方法による高さ閾値の設定では、ユーザはバー上のボタン３０４をスライド操作することによって設定することができる。また、表示領域３０１に矩形３０７を描画することによって、矩形３０７の領域において検出される高さ上下限値に従い自動的にボタン３０４をスライド移動させて、所望の高さ閾値を設定することもできる。また、この両方法を併用して設定することもできる。
【００９２】
＜静的平面指定方法＞
図１５のフローチャートに従い、図１６および図１７の表示画面例を参照し、静的平面指定方法について説明する。
【００９３】
図１６の画面においては、高さ情報に基づき画像を抽出するための基準面に平行な面を決定するために、ユーザは、マウス６Ｂを操作し、画像領域３０１において少なくとも３箇所の点３１０を指定する。面を規定するために点３１０は３点以上指定すればよく、３点以上であるば、追加および削除は自由に行なうことができる。
【００９４】
ＣＰＵ４は、画像領域３０１の指定点３１０の座標（Ｘ，Ｙ）を検出し、検出した座標（Ｘ，Ｙ）に基づき、当該画像領域３０１に表示される画像（ステップＳ３３で選択された画像）に対応する距離画像のデータを検索する。この検索結果、指定点３１０に対応する座標（Ｘ，Ｙ，Ｚ）の値を距離画像データから読出すことができる。ＣＰＵ４は、指定点３１０のそれぞれに対応する座標（Ｘ，Ｙ，Ｚ）の値を、表示部３の座標表示エリア３０８に表示する。
【００９５】
点３１０を指定した後、ユーザが「面設定」タブ３０９をクリックして選択すると、ＣＰＵ４は、指定した点３１０をすべて通る面を生成する。ここで、ユーザが“上限面”の「面設定」タブ３０９を選択していると検出した場合には、ＣＰＵ４は上限面についての面情報を、生成した面の情報を用いて更新する。“下限面”の「面設定」タブ３０９が選択されていると検出した場合には、下限面の面情報を、生成した面の情報を用いて更新する。図１６では、未だ上下限面の高さが指定されていないので、上下限面の高さを指す赤色実線Ｒは、スケール値を表示する青色破線Ｂに重なって表示されている。
【００９６】
上述のように下限面および上限面の面情報により面の高さが、座標表示エリア３０８の値に基づき指定されると、画面は図１７のように更新される。図１７を参照して、指定された上限面および下限面の高さ値に基づき、ＣＰＵ４によって水平方向に延びる上限面および下限面について、画面に向かって左端および右端の高さおよび面の傾きが算出されて、情報３１６、３１７、３１８および３１５のデータとして表示される。同様にして、垂直方向に延びる上限面および下限面について、画面の上端および下端の高さおよび面の傾きが算出されて、情報３１６、３１７、３１８および３１５のデータとして表示される。
【００９７】
図１７では、ボックス３１２の指定操作によって、「面情報」エリア３１１の情報を、水平方向に延びる上限面および下限面の情報の表示、または垂直方向に延びる上限面および下限面の情報の表示のいずれかに選択的に表示切替することができる。図１７では、ボックス３１２において“水平方向”が指定された状態であるので、水平方向に延びる上限面および下限面についての情報３１６、３１７、３１８および３１５が「面情報」エリア３１１において表示されている。
【００９８】
さらに、ユーザは、バー上のボタン３１７と３１９を、キーボード６Ａまたはマウス６Ｂで操作してスライド操作することにより、「面情報」エリア３１１の情報３１６および３１８の高さの値を、このスライド操作に連動した対応する値に可変に調整することができる。画像領域３０１においては、「面情報」エリア３１１における値の設定に連動して、水平方向および垂直方向に、上限面３１３および下限面３１４の高さにおいて赤実線Ｒが描画される。
【００９９】
図１６と図１７の画面で説明した「静的平面指定方法」に従うパラメータの設定手順を、図１５のフローチャートを参照し説明する。
【０１００】
ＣＰＵ４は、ステップＴ１〜Ｔ５において、前述と同様にＬＵＴを生成し、距離画像を生成し、選択された表示画像とプロファイルを表示部３の画像領域３０１に表示する。
【０１０１】
ＣＰＵ４は、「ＯＫ」ボタン４００または「キャンセル」ボタン４０１が操作されたか否かを判定する（ステップＴ７、ステップＴ９）。いずれのボタンも操作されていないと判定すると、画像領域３０１において点３１０が３つ以上指定されたか否かを判定する（ステップＴ２７）。３つ以上指定されていないと判定すると（ステップＴ２７でＮＯ）、ステップＴ７の処理に戻る。
【０１０２】
３つ以上指定されたと判定すると（ステップＴ２７でＹＥＳ）、ＣＰＵ４は、ユーザによって“上限面に設定”の「面設定」タブ３０９が操作されたか否かを判定する（ステップＴ２９）。操作されていないと判定すると（ステップＴ２９でＮＯ）、処理はステップＴ３１に移る。
【０１０３】
“上限面に設定”の「面設定」タブ３０９が操作されたと判定すると（ステップＴ２９でＹＥＳ）、ステップＴ３３において、「面情報」エリア３１１における上限面についての水平方向（左）および（右）ならびに垂直方向（上）および（下）の情報３１６および３１８の値それぞれが、バー上のボタン３１７および３１９の位置が示す値を指すように更新される。その後、処理はステップＴ３７に移る。
【０１０４】
“下限面に設定”の「面設定」タブ３０９が操作されたと判定すると（ステップＴ３１でＹＥＳ）、ステップＴ３５において、「面情報」エリア３１１における下限面についての水平方向（左）および（右）ならびに垂直方向（上）および（下）の情報３１６および３１８の値それぞれが、バー上のボタン３１７および３１９の位置が示す値を指すように更新される。その後、処理はステップＴ３７に移る。
【０１０５】
ステップＴ３７では、ＣＰＵ４は、ステップＴ３３およびＴ３５で更新した値を用いて「面情報」エリア３１１において情報３１６、３１７、３１８および３１９を表示するとともに、「面情報」エリア３１１における上限面および下限面の高さおよび傾きを示す赤色の実線３１３および３１４を描画する。そして、上限面および下限面の高さ閾値に該当する高さ情報を有する画像データを、ステップＳ３３で指定された画像データから「画像の抽出」をして、抽出後画像を画像領域３０１に表示する。
【０１０６】
ここで「画像の抽出」とは、距離画像を検索して、座標Ｚの値が「面情報」エリア３１１における情報３１６、３１７、３１８および３１９で示す高さ情報の面（上限・下限）の間に該当している画素の座標（Ｘ，Ｙ，Ｚ）を検出し、検出した座標に基づき、ステップＳ３３で選択された表示画像のデータを検索して、当該座標に該当する画素からなる画像データのみを読出すことを指す。読出した画像データを表示することで、画像領域３０１には抽出後画像が表示される。
【０１０７】
「ＯＫ」ボタン４００が操作されたと判定されると（ステップＴ７でＹＥＳ）、設定データの格納処理が行なわれる（ステップＴ１５）。この時点で、補助記憶部５にはＬＵＴのデータ５１、画像領域３０１の表示画像のデータ５２、上限面および下限面についての水平方向の左端の高さデータ５４、同様に右端の高さデータ５５、上限面および下限面の垂直方向の上端の高さおよび下端の高さのデータ５４と５７を含む情報が格納されている。
【０１０８】
＜動的平面指定方法＞
次に、動的平面指定方法について、図１８のフローチャートに従い、図１９および図２０の表示画面を参照し説明する。
【０１０９】
図１９を参照してユーザは、画像領域３０１の画像を参照し、高さ閾値を有する画像抽出のための面を決定するため、点３１０を少なくとも３点指定操作する。ここで、点３１０は３点以上指定されるならば、点３１０の追加および削除は自由に行なえる。指定された３つ以上の点３１０により、これら点３１０の座標の画素を通る画像抽出のための面が一意に決定される。
【０１１０】
ユーザは、面を指定するための点３１０を指定した後、指定面は上限面および下限面のいずれであるかを指定するために「面選択」タブ３２０において“上限面”または“下限面”のいずれかをマウス６Ｂを操作してクリックする。これにより指定した面を、上限面および下限面のいずれかに選択することができる。
【０１１１】
ＣＰＵ４は、ユーザが指定した点３１０のそれぞれについて、対応する座標位置を検出し、距離画像から対応画素の座標（Ｘ，Ｙ，Ｚ）の値を検出し、検出した座標（Ｘ，Ｙ，Ｚ）の値を「座標表示」エリア３０８に表示する。
【０１１２】
ユーザは、「座標表示」エリア３０８に表示された値を確認することによって、サンプリング（指定）点３１０における高さ値の補正を所望する場合には、「オフセット設定」エリア３２１に、キーボード６Ａを操作することにより、補正のためのオフセット値を入力する。具体的に、オフセット値は±αで指定することができる。
【０１１３】
ＣＰＵ４は、指定された点３１０それぞれの座標（Ｘ，Ｙ，Ｚ）の値に基づき、これら座標（Ｘ，Ｙ，Ｚ）値により定まる面を生成し、生成した面の水平方向の高さ（画面の左端および右端の高さ）、垂直方向の高さ（画面の上端と下端の高さ）および傾きを算出し、算出した値を情報３２３、３２４および３２５として表示する。
【０１１４】
ここで、ユーザが「オフセット設定」エリア３２１にオフセット値を指定していた場合には、ＣＰＵ４は、指定された点３１０それぞれの座標値（Ｘ，Ｙ，Ｚ）と、「オフセット設定」エリア３２１で指定されたオフセット値とに基づき、情報３２３、３２４および３２５の値を算出しなおし、算出しなおした値を表示する。
【０１１５】
ユーザが「前後表示切替」タブ３２２を操作すると、ＣＰＵ４は、情報３２３と３２４によって設定された高さ抽出面（上限面および下限面）に基づき当該上限面の高さ情報以下の高さ、且つ下限面の高さの高さ情報を有する「画像の抽出」がされて、図２０に示すように画像領域３０１に抽出後画像が表示される。
【０１１６】
ここで「画像の抽出」とは、距離画像を検索して、座標Ｚの値が情報３２３および３２４で示す高さ情報の面（上限・下限）の間に該当している画素の座標（Ｘ，Ｙ，Ｚ）を検出し、検出した座標に基づき、ステップＳ３３で選択された表示画像のデータを検索して、当該座標に該当する座標（Ｘ，Ｙ）の画素からなる画像データのみを表示画像データから読出すことを指す。読出した画像データを表示することで、画像領域３０１には図２０にような抽出後画像が表示される。
【０１１７】
図１８のフローチャートを参照して、図１９および図２０で説明した動的平面指定方法について説明する。
【０１１８】
ＣＰＵ４は、ＬＵＴを作成し、距離画像を作成し、表示画像とプロファイルを画像領域３０１に表示する（ステップＴ１〜Ｔ５）。続いて「ＯＫ」ボタン４００または「キャンセル」ボタン４０１が操作されたか否かを判定する（ステップＴ７およびステップＴ９）。操作されたと判定された場合、設定データの格納（ステップＴ１５）または一連の処理の終了が行なわれる。
【０１１９】
ＣＰＵ４は、ステップＴ７およびステップＴ９において「ＯＫ」ボタン４００および「キャンセル」ボタン４０１のいずれも操作されていないと判定すると、ステップＴ３９において、ユーザが設定しようとする面が、上限面→下限面に変更されたか、または下限面→上限面に変更がされたかを、「面選択」タブ３２０の操作による入力に基づき判定する。変更されたと判定すると（ステップＴ３９でＹＥＳ）、サンプリング点である点３１０の座標と「オフセット設定」エリア３２１で入力された補正値とを用いて、反映するべき面（上限面または下限面）の設定値を変更する（ステップＴ４３）。この設定値は、上限面（または下限面）の点３１０が指すサンプリング点に座標（Ｘ，Ｙ，Ｚ）の値および高さ補正値を含む。その後、処理はステップＴ４１に移る。
【０１２０】
設定する面の変更がされていないと判定されると（ステップＴ３９でＮＯ）、ステップＴ４１において画像領域３０１に点３１０が３点以上指定されたか否かが検出される。３点以上の指定がされていないと検出すると（ステップＴ４１でＮＯ）、処理はステップＴ７に戻る。
【０１２１】
３点以上指定されたと判定されると（ステップＴ４１でＹＥＳ）、ＣＰＵ４は「オフセット設定」エリア３２１にオフセット値が入力されたか否かを判定する（ステップＴ４５）。オフセット値が入力されたと判定すると（ステップＴ４５でＹＥＳ）、情報３２３と３２４で指定された設定値を、オフセット値に基づき更新する（ステップＴ４７）。その後、ステップＴ４９の処理に移る。
【０１２２】
ステップＴ４９では、設定されているパラメータ（情報３２３および３２４の値）に基づき、図２０のように、画像領域３０１における上限面および下限面３１３および３１４を示す赤色実線Ｒの表示と、青色破線Ｂのスケールの表示および黄色実線Ｙ１のプロファイルの表示を更新する。また、「画像の抽出」がされて、抽出後画像が表示される（ステップＴ４９）。その後処理はステップＴ７に戻る。
【０１２３】
図１８のステップＴ７で「ＯＫ」ボタン４００が操作されると、ユーザが設定したパラメータデータが補助記憶部５に格納される。この時点で、補助記憶部５には、ＬＵＴのデータ５１、画像領域３０１の表示画像の種類５２１、上限面のサンプリング点（点３１０）の座標値５８、上限面の高さ補正値（「オフセット設定」エリア３２１の入力値）５９、下限面の点３１０の座標値６０および下限面の高さ補正値（「オフセット設定」エリア３２１の入力値）６１を含む情報が格納されている。
【０１２４】
＜動的曲面指定方法＞
「動的曲面指定方法」について、図２１のフローチャートに従い図２２の表示画面を参照し説明するために、まず、図２３の動的曲面指定の原理について説明する。
【０１２５】
図２３を参照して、ＣＰＵ４は、距離画像において、周辺領域画素の平均階調値よりも高い／低いのいずれか一方の階調値を有する部分の画素を白画素とし、他の画素を黒画素とする２値化処理を行う。これにより、周囲の画素よりも濃淡の変化の程度が大きい画素は、白画素として抽出されることになる。抽出された白画素を連ねることにより、明るさ（濃淡）の変化の大きい部分（画素）を連ねた面を抽出することができる。この抽出面を「動的曲面」という。動的曲面により撮影の対象物である外形形状が概略示される。
【０１２６】
「動的曲面」を的確に抽出するために、明るさの変化が大きい画素をより強調する。そのために、たとえば、ＣＰＵ４は、距離画像において、ある注目画素を中心とした上下左右に隣接して位置する計９つの画素の階調値に対して、図２３（Ｃ）に示すようなフィルタ４０６を適用する。フィルタ４０６の中央（斜線部）を注目画素に対応させる。ＣＰＵ４は、９つの画素それぞれの階調値をすべて加算し、加算して得られた値に基づき平均値を検出する。注目画素の階調値を、この平均値と比較し、比較結果、注目画素の階調値が平均値よりも高ければ、当該注目画素の階調値を白画素の値に置換する。入力画像において、注目画素を移動させながら、フィルタ４０６を適用して、その階調値を周囲画素の階調値の平均と比較する。これにより、高さ情報（距離）が急変する画素（すなわち、極大値の画素）が検出されて、白画素に置換される。注目画素の階調値が平均値よりも低い場合でも同様である。
【０１２７】
たとえば、注目画素の階調値が、周囲画素の平均値よりも高い、すなわち明るい領域を動的曲面として抽出する場合には、図２３（Ａ）に示されるように、入力画像の各部の階調値を指す濃度値４０２のうち、周囲の画像の平均の濃度値４０３を超えている濃度値４０２を有する部分の画素４０４が抽出されて、抽出画素４０４が白画素に置換される。
【０１２８】
ユーザは濃度値４０３の値を、抽出オフセット値４０１を用いて調整（更新）することにより、入力画像において抽出画素４０４に該当する部分画像の位置を変化させることができる。更新後の濃度値４０３の値が、抽出閾値４００として設定される。たとえば、抽出閾値４００を超える階調値の領域の「画像を抽出」する。抽出閾値４００の階調値を有する画素の座標値をプロットし、プロットした点を面状に連ねることにより、図２２の赤色実線Ｒで示される自由曲面の動的曲面を生成することができる。
【０１２９】
図２２の画面を参照して、ユーザが抽出条件（フィルタサイズ）に従い抽出された動的曲面を示す実線Ｒの自由曲面よりも高い高さ情報を有する領域の画像のみを抽出したい場合は、「抽出領域」タブ３２６において“高いところ”とキーボード６Ａを操作し入力する。逆に、実線Ｒの動的曲面よりも低い高さ情報の画像を抽出したい場合には「抽出領域」タブ３２６に“低いところ”と入力する。
【０１３０】
本実施の形態では、動的曲面の抽出条件であるフィルタ４０６のサイズを可変に設定することができる。ユーザは「フィルタサイズ」タブ３２７を指定することにより、フィルタサイズを可変に設定することができる。フィルタサイズの設定は、「フィルタサイズ」タブ３２７の数値入力の他に、フィルタサイズの目盛が打たれたバー上のボタン３２８のスライド操作によるものであってもよい。また、抽出オフセット値４０１を「抽出オフセット」タブ３２９において可変に入力することができる。「抽出オフセット」タブ３２９における数値入力に代替して、抽出オフセット値４０１の目盛が打たれたバー上のボタン３３０のスライド操作による入力であってもよい。
【０１３１】
図２３（Ｂ）には、抽出閾値４００よりも低い、すなわち暗い領域の画像を抽出する場合が例示される。図２３（Ｂ）の抽出条件とするためには、図２２の「抽出領域」タブ３２６を“低いところ”と設定すればよい。
【０１３２】
（動的曲面抽出アルゴリズムと抽出画像）
上述した動的曲面抽出のためのアルゴリズムを説明する。動的曲面指定のために入力画像Ｉ（ｉ，ｊ）のすべての画素を注目画素とし、図２４のサイズ５×５のフィルタ４０６の中央（斜線部）を注目画素に対応させるように注目画素と周囲画素の計２５個画素にフィルタ４０６を適用する。ＣＰＵ４は、［数１］の式に従う演算処理により、入力画像Ｉ（ｉ，ｊ）すべての画素について、注目画素の階調値と周囲画素の階調値の平均値との差分を検出することにより、入力画像Ｉ（ｉ，ｊ）の各画素に検出差分が割当てられた、差分画像ＤＩ（ｉ，ｊ）を算出（生成）する。
【０１３３】
【数１】
2010216838.tif 000003
【０１３４】
そしてＣＰＵ４は、入力画像Ｉ（ｉ，ｊ）から「画像の抽出」をするために、差分画像ＤＩ（ｉ，ｊ）の各画素の差分と、抽出オフセット値４１０に対応のオフセット値offsetとを比較する。そして、比較結果に基づき、抽出された画像に対応する出力画像Ｏ（ｉ，ｊ）を算出（生成）する。
【０１３５】
具体的には、「抽出領域」タブ３２６に“高いところ”と入力された場合には、［数２］の比較式に基づき出力画像Ｏ（ｉ，ｊ）が算出され、「抽出領域」タブ３２６に“低いところ”と入力された場合には、［数３］の比較式に基づき出力画像Ｏ（ｉ，ｊ）が算出される。
【０１３６】
【数２】
2010216838.tif 000004
【０１３７】
【数３】
2010216838.tif 000005
【０１３８】
図２１のフローチャートを参照して、動的曲面指定方法の処理フローチャートについて説明する。
【０１３９】
ＣＰＵ４は、ＬＵＴを作成し、距離画像を作成し、表示画像とプロファイルを画像領域３０１に表示する（ステップＴ１〜Ｔ５）。続いて「ＯＫ」ボタン４００または「キャンセル」ボタン４０１が操作されたか否かを判定する（ステップＴ７およびステップＴ９）。操作されたと判定された場合、設定データの格納（ステップＴ１５）または一連の処理の終了が行なわれる。
【０１４０】
ＣＰＵ４は、ステップＴ７およびステップＴ９において「ＯＫ」ボタン４００および「キャンセル」ボタン４０１のいずれも操作されていないと判定すると、ステップＴ５３において、「抽出領域」タブ３２６の入力データに基づきユーザが画像を抽出するべき領域の設定を変更したか否かを検出する（ステップＴ５３）。設定変更をしたと検出されると（ステップＴ５３でＹＥＳ）、設定された領域が抽出するべき領域としてセットされる（ステップＴ５９）。その後、処理は、後述のステップＴ６５に移行する。
【０１４１】
設定変更はしていないことが検出されると（ステップＴ５３でＮＯ）、「フィルタサイズ」タブ３２７において、ユーザがフィルタのサイズを変更した否かを判定する（ステップＴ５５）。フィルタサイズの変更がされたと検出されると（ステップＴ５５でＹＥＳ）、設定されたフィルタサイズが画像の抽出に用いるべきフィルタ４０６のサイズとしてセットされる（ステップＴ６１）。その後、処理は、後述のステップＴ６５に移行する。
【０１４２】
フィルタサイズの設定変更はしていないことが検出されると（ステップＴ５５でＮＯ）、「抽出オフセット」タブ３２９において、ユーザが抽出オフセット値４０１を変更した否かを判定する（ステップＴ５７）。抽出オフセット値の変更がされたと検出されると（ステップＴ５７でＹＥＳ）、設定された抽出オフセット値が画像の抽出に用いるべき図２３で示すオフセット値４０１としてセットされる（ステップＴ６３）。その後、処理は後述のステップＴ６５に移行する。
【０１４３】
ステップＴ６５では、設定されているパラメータ値に基づき、図２２のように、画像領域３０１における動的曲面の赤色実線Ｒの表示と、青色破線Ｂのスケールの表示および黄色実線Ｙ１などのプロファイル表示を更新する。また、「抽出領域」タブ３２６、「フィルタサイズ」タブ３２７および「抽出オフセット」タブ３２９などにおけるユーザが設定した値と上述の式とに従って「画像の抽出」がされて、抽出後画像が画像領域３０１に表示される（ステップＴ６５）。その後、処理はステップＴ７に戻る。
【０１４４】
図２１のステップＴ７で「ＯＫ」ボタン４００が操作されると（ステップＴ７でＹＥＳ）、ユーザが設定したパラメータデータは補助記憶部５に格納される。この時点で、補助記憶部５には、ＬＵＴのデータ５１、画像領域３０１の表示画像のデータ５２、抽出領域を指示するデータ６２、フィルタ４０６のサイズのデータ６３、抽出オフセット４０１を指すデータ６４を含む情報が格納されている。
【０１４５】
なお、上述の高さ閾値指定方法のそれぞれでは、距離画像を取得するために、撮影部１８によりワーク１４を実際に撮影し、得られた画像データに基づき距離画像を生成している（ステップＴ３参照）が、取得の経路はこれに限定されない。つまり、ステップＴ３では、準備された距離画像のデータを外部Ｉ／Ｆ１０または読取部１１を介してネットワークまたはＣＤ−ＲＯＭ１２から入力する、または補助記憶部５に記憶しておき補助記憶部５から読出すことにより取得してもよい。
【０１４６】
＜運転処理＞
上述した高さ閾値の指定方法に従い補助記憶部５にパラメータの値が格納されると、ＣＰＵ４は補助記憶部５のパラメータ値を用いて、ワークの欠陥検査のための運転モードの処理（ステップＳ５）を実行する。運転モードの処理を、図２５のフローチャートに従い、表示部３に表示される図２６の運転画面を参照しながら説明する。
【０１４７】
まずＣＰＵ４は、外部からの入力指示に従い運転モードに移行すると、補助記憶部５に格納されたパラメータ値を読出し、主記憶部８に格納する。
【０１４８】
続いて、ＣＰＵ４は、撮影部１８の第１カメラ部２Ａにより、コンベア１６上を搬送されるパレット１４を撮影する。第１カメラ部２Ａの撮影画像である入力画像が主記憶部８に格納される（ステップＳ５１）。
【０１４９】
また、第２カメラ部２Ｂによりパレット１４を撮影し、撮影画像である視差画像が出力される。ＣＰＵ４は、視差画像に基づき各画素の高さ情報を検出して、検出した高さ情報と主記憶部８から読出したＬＵＴに基づき、距離画像を生成（検出）する（ステップＳ５３）。距離画像（濃淡画像）は、主記憶部８に格納される。
【０１５０】
続いて、ＣＰＵ４は、予めユーザが指定した「高さ閾値指定方法」に従う設定パラメータの値を主記憶部８から読出し、読出したパラメータ値が指示する高さ閾値に基づき、入力画像から、当該指定方法に従う前述した「画像の抽出」の処理を行う。当該処理によって抽出後画像が検出されて主記憶部８に格納される（ステップＳ５５）。抽出後画像は、表示部３に表示される（図２６参照）。この場合においても、抽出後画像の背景の表示色は、ユーザが抽出後画像を確認しやすいように変更されてよい。
【０１５１】
＜欠陥検査＞
ＣＰＵ４は、上述の手順に従い検出された抽出後画像を用いて、所定手順に従い欠陥検査処理（図４のステップＳ７）を実行する。欠陥検査には、たとえばモデル画像と抽出後画像とのパターンマッチングなど、公知の手順を適用することができるので、ここでは詳細説明は略す。
【０１５２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５３】
１  コンピュータ、２Ａ  第１カメラ部、２Ｂ  第２カメラ部、３  表示部、４  ＣＰＵ、１４  ワークを搭載したパレット、１８  撮影部、３００  「表示設定」エリア、３０１  画像領域、３０８  「座標表示」エリア、３０９  「面設定」タブ、３１０  点、３１１  「面情報」エリア、３２０  「面選択」タブ、３２１  「オフセット設定」エリア、３２２  「前後表示切替」タブ、３２６  「抽出領域」タブ、３２７  「フィルタサイズ」タブ、３２９  「抽出オフセット」タブ。
【図１】
2010216838.tif 000006
【図２】
2010216838.tif 000007
【図３】
2010216838.tif 000008
【図４】
2010216838.tif 000009
【図５】
2010216838.tif 000010
【図８】
2010216838.tif 000011
【図１０】
2010216838.tif 000012
【図１５】
2010216838.tif 000013
【図１８】
2010216838.tif 000014
【図２１】
2010216838.tif 000015
【図２３】
2010216838.tif 000016
【図２４】
2010216838.tif 000017
【図２５】
2010216838.tif 000018
【図６】
2010216838.tif 000019
【図７】
2010216838.tif 000020
【図９】
2010216838.tif 000021
【図１１】
2010216838.tif 000022
【図１２】
2010216838.tif 000023
【図１３】
2010216838.tif 000024
【図１４】
2010216838.tif 000025
【図１６】
2010216838.tif 000026
【図１７】
2010216838.tif 000027
【図１９】
2010216838.tif 000028
【図２０】
2010216838.tif 000029
【図２２】
2010216838.tif 000030
【図２６】
2010216838.tif 000031