JP6197340B2 - 画像処理装置、画像処理方法、およびプログラム - Google Patents

画像処理装置、画像処理方法、およびプログラム

Info

Publication number
JP6197340B2
JP6197340B2 JP2013079975A JP2013079975A JP6197340B2 JP 6197340 B2 JP6197340 B2 JP 6197340B2 JP 2013079975 A JP2013079975 A JP 2013079975A JP 2013079975 A JP2013079975 A JP 2013079975A JP 6197340 B2 JP6197340 B2 JP 6197340B2
Authority
JP
Japan
Prior art keywords
edge
image
image processing
model
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013079975A
Other languages
English (en)
Other versions
JP2014203311A (ja
Inventor
加藤 豊
豊 加藤
豊 木内
豊 木内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2013079975A priority Critical patent/JP6197340B2/ja
Priority to US14/244,034 priority patent/US9286669B2/en
Priority to EP14163293.5A priority patent/EP2793172B1/en
Priority to CN201410138793.3A priority patent/CN104103069B/zh
Publication of JP2014203311A publication Critical patent/JP2014203311A/ja
Application granted granted Critical
Publication of JP6197340B2 publication Critical patent/JP6197340B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/754Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries involving a deformation of the sample pattern or of the reference pattern; Elastic matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)

Description

本発明は、予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置、画像処理方法、およびプログラムに関するものである。
従来から、FA(Factory Automation)分野などにおいては、計測対象物(以下、「ワーク」とも称す。)を撮像した入力画像に対して、予め登録されたパターン(以下、「モデル」とも称す。)に基づくサーチ処理(以下、「パターンマッチング処理」とも称す。)が用いられている。このようなパターンマッチング処理により、ワークに現れるキズやゴミなどの欠陥を検出したり、モデルと類似しているワーク上の領域を探索したりすることができる。
このようなパターンマッチング処理の一手法として、入力画像において濃淡値(明るさ)の変化がある部分(以下、「エッジ(部分)」とも称す。)を抽出するとともに、エッジの変化方向を示す値(以下、「エッジコード」もしくは「EC(Edge Code)」とも称す。)に基づいてパターンマッチングを行うことが知られている。たとえば、特開2002−230549号公報(特許文献1)を参照されたい。
また、当該特許文献1には、スコア累計値に基づく閾値処理によるパターンマッチング処理が開示されている。具体的には、当該パターンマッチング処理においては、モデルデータ中の各画素と対応画素との間のエッジコードの一致度合いを示すスコアを画素単位で算出してこれを累計した値を類似度とし、入力画像においてモデルデータを走査しつつ類似度の最大値を求め、この最大値が既定の閾値を越えたかどうかで入力画像の中にモデルとマッチする領域があるかどうかを判定する。
このようなエッジコードを用いることで、入力画像の撮像時における影響(たとえば、影の映り込みや照明ムラ)があっても、モデルと一致する領域を的確に探索することができる。
さらに、従来、モデルと一致する領域の探索結果に基づき、モデルと計測対象物全体との一致度を算出することがなされている。また、従来、当該算出された一致度と、予め定められた閾値とに基づき、計測対象物の良否が判定されている。
特開2002−230549号公報
しかしながら、従来では、計測対象物の局所的な形状の歪みを許容したいというニーズに対して、類似度(スコアの累計値)の閾値を下げると、形状がモデルと不一致のものも誤って許容される危険性が大きくなるといった問題が生じる。
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、計測対象物の形状的な特徴を用いたパターンマッチングにおいて、当該対象物の局所的な形状の歪みを許容することができる画像処理装置、画像処理方法、およびプログラムを提供することにある。
本発明のある局面に従うと、画像処理装置は、予め登録されたモデルと類似する領域を入力画像からサーチする。モデルは、モデル画像から抽出されたエッジ上の複数の第1の位置と、各第1の位置におけるエッジの変化方向とにより規定される。画像処理装置は、第1の位置に対応する入力画像の第2の位置におけるエッジの変化方向を算出する第1の算出手段と、エッジの変化方向の許容値に関する指示を受け付ける受付手段と、受付けた指示と、第1の位置におけるエッジの変化方向と、第2の位置におけるエッジの変化方向とに基づき、第1の位置と当該第1の位置に対応する第2の位置との類似度を算出する第2の算出手段と、複数の第2の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定する第1の判定手段とを備える。
好ましくは、画像処理装置は、受付手段は、上記指示として、2つのエッジの変化方向の相違を表す情報と当該2つのエッジの類似度とが関連付けられた複数のデータのいずれかを指定するための指示を受け付ける。
好ましくは、画像処理装置は、複数のデータを予め記憶した記憶手段をさらに備える。
好ましくは、複数のデータの各々は、2つのエッジの変化方向の角度差が大きくなるほど2つのエッジの一致度が小さくなるように角度差と類似度とが関連付けられている。角度差に対する類似度の関連付けは、複数のデータ間で互いに異なっている。画像処理装置は、第1の位置におけるエッジの変化方向と、当該第1の位置に対応する第2の位置におけるエッジの変化方向との角度差を、第2の位置毎に算出する第3の算出手段をさらに備える。第2の算出手段は、指定されたデータと算出された角度差とに基づき、第1の位置と当該第1の位置に対応する第2の位置との類似度を算出する。
好ましくは、画像処理装置は、第1の位置に対応する第2の位置が入力画像のエッジ領域に属するか否かを、第1の位置毎に判定する第2の判定手段をさらに備える。第1の算出手段は、第2の判定手段によって第1の位置に対応する第2の位置が入力画像のエッジ領域に属すると判定された場合に、第1の位置に対応する第2の位置におけるエッジの変化方向を算出する。
好ましくは、画像処理装置は、第1の位置と当該第1の位置に対応する第2の位置との類似度に基づき、当該第1の位置と当該第2の位置とが類似するか否かを判定する第3の判定手段と、第1の位置に類似する第2の位置と第1の位置に類似しない第2の位置とを互いに異なる表示態様で、入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える。
好ましくは、画像処理装置は、第1の位置に対応する第2の位置が前記入力画像のエッジ領域に属するか否かを、第1の位置毎に判定する第2の判定手段と、入力画像のエッジ領域に属する第2の位置と入力画像のエッジ領域に属さない第2の位置とを互いに異なる表示態様で、入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える。
好ましくは、上記表示態様は色である。
好ましくは、各第1の位置は、モデル画像のエッジ上の点をサンプリングすることにより得られた位置である。
本発明の他の局面に従うと、画像処理方法は、予め登録されたモデルと類似する領域を入力画像からサーチするために用いられる。モデルは、モデル画像から抽出されたエッジ上の複数の第1の位置と、各第1の位置におけるエッジの変化方向とにより規定される。画像処理方法は、第1の位置に対応する入力画像の第2の位置におけるエッジの変化方向を算出するステップと、エッジの変化方向の許容値に関する指示を受け付けるステップと、受付けた指示と、第1の位置におけるエッジの変化方向と、第2の位置におけるエッジの変化方向とに基づき、第1の位置と当該第1の位置に対応する第2の位置との類似度を算出するステップと、複数の第2の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定するステップとを備える。
本発明のさらに他の局面に従うと、プログラムは、予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置を制御する。モデルは、モデル画像から抽出されたエッジ上の複数の第1の位置と、各第1の位置におけるエッジの変化方向とにより規定される。プログラムは、第1の位置に対応する入力画像の第2の位置におけるエッジの変化方向を算出するステップと、エッジの変化方向の許容値に関する指示を受け付けるステップと、受付けた指示と、第1の位置におけるエッジの変化方向と、第2の位置におけるエッジの変化方向とに基づき、第1の位置と当該第1の位置に対応する第2の位置との類似度を算出するステップと、複数の第2の位置における算出された類似度に基づき、入力画像における特定の領域がモデルと類似するか否かを判定するステップとを、画像処理装置のプロセッサに実行させる。
本発明によれば、計測対象物の形状的な特徴を用いたパターンマッチングにおいて、当該対象物の局所的な形状の歪みを許容することができる。
画像処理装置を含む視覚センサシステムの全体構成を示す概略図である。 画像処理装置の概略構成図である。 モデル登録処理における処理の流れを説明するためのフローチャートである。 モデル登録処理における各処理により生成される画像を表した図である。 計測処理全体の流れを説明するためのフローチャートである。 計測処理における処理により生成される画像を表した図である。 図5のステップS106における探索処理における処理の流れを説明するためのフローチャートである。 サンプリング点と、対応点と、エッジの変化方法と、角度差とを説明するための図である。 CPUが、一致度を算出するときに利用するデータを表した図である。 モデル画像と入力画像との相違を説明するための図である。 入力画像においてモデルと一致する部分と一致しない部分とを説明するための図である。 入力画像においてモデルと一致する部分と一致しない部分とを説明するための図である。 画像処理装置の機能的構成を説明するためのブロック図である。 画像処理装置が設定モードにおいて提供するユーザインターフェイス画面の一例を示す図である。 画像処理装置が計測モードにおいて提供するユーザインターフェイス画面の一例を示す図である。 図15からの遷移した後のユーザインターフェイス画面の一例を示す図である。 画像処理装置が計測モードにおいて提供するユーザインターフェイス画面の他の例を示す図である。 図17からの遷移した後のユーザインターフェイス画面の一例を示す図である。 エッジコードおよびエッジコード画像の算出処理を説明するための図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.システム構成>
図1は、本発明の実施の形態に係る画像処理装置100を含む視覚センサシステム1の全体構成を示す概略図である。
図1を参照して、視覚センサシステム1は生産ラインなどに組み込まれ、ワーク2に対して、予め登録されているモデル(但し、後述するように「エッジコード画像」が用いられる)を用いてパターンマッチング処理を実行する。
視覚センサシステム1においては、ワーク2はベルトコンベヤなどの搬送機構6によって搬送され、搬送されたワーク2は、撮像装置8によって所定タイミングで撮像される。撮像装置8は、一例として、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった、複数の画素に区画された撮像素子を含んで構成される。なお、撮像装置8で撮像されるワーク2に対して光を照射する照明機構をさらに設けてもよい。
撮像装置8の撮像によって得られる画像(以下、「入力画像」とも称す。)は、画像処理装置100へ伝送される。画像処理装置100は、この撮像装置8から受けた入力画像に対してパターンマッチング処理を実行し、その結果を接続されたディスプレイ102で表示したり、その結果を外部装置へ出力したりする。
ワーク2が撮像装置8の視野内に到達したことは、搬送機構6の両端に配置された光電センサ4によって検出される。具体的には、光電センサ4は、同一の光軸上に配置された受光部4aと投光部4bとを含み、投光部4bから放射される光がワーク2で遮蔽されることを受光部4aで検出することによって、ワーク2の到達を検出する。この光電センサ4のトリガ信号は、PLC(Programmable Logic Controller)5へ出力される。
PLC5は、光電センサ4などからのトリガ信号を受信するとともに、搬送機構6の制御自体を司る。
画像処理装置100は、ワーク2に対して各種の画像処理を実行する計測モードと、後述するモデル登録処理などを行うための設定モードとを有している。これらのモードは、ユーザがマウス104などを操作することで切替えられる。
画像処理装置100は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、後述するような各種機能を提供する。このようなプログラムは、典型的には、メモリカード106などに格納された状態で流通する。
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
図2は、本発明の実施の形態に係る画像処理装置100の概略構成図である。図2を参照して、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)
110と、記憶部としてのメインメモリ112およびハードディスク114と、カメラインターフェイス116と、入力インターフェイス118と、表示コントローラ120と、PLCインターフェイス122と、通信インターフェイス124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続
される。
CPU110は、ハードディスク114に格納されたプログラム(コード)をメインメモリ112に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク114から読み出されたプログラムに加えて、撮像装置8によって取得された画像データ、ワークデータ、モデルに関する情報などを保持する。さらに、ハードディスク114には、各種設定値などが格納されてもよい。なお、ハードディスク114に加えて、あるいは、ハードディスク114に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
カメラインターフェイス116は、CPU110と撮像装置8との間のデータ伝送を仲介する。すなわち、カメラインターフェイス116は、ワーク2を撮像して画像データを生成するための撮像装置8と接続される。より具体的には、カメラインターフェイス116は、1つ以上の撮像装置8と接続が可能であり、撮像装置8からの画像データを一時的に蓄積するための画像バッファ116aを含む。そして、カメラインターフェイス116は、画像バッファ116aに所定コマ数の画像データが蓄積されると、その蓄積されたデータをメインメモリ112へ転送する。また、カメラインターフェイス116は、CPU110が発生した内部コマンドに従って、撮像装置8に対して撮像コマンドを与える。
入力インターフェイス118は、CPU110とマウス104、キーボード、タッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス118は、ユーザが入力部を操作することで与えられる操作指令を受付ける。
表示コントローラ120は、表示装置の典型例であるディスプレイ102と接続され、CPU110における画像処理の結果などをユーザに通知する。すなわち、表示コントローラ120は、ディスプレイ102に接続され、当該ディスプレイ102での表示を制御する。
PLCインターフェイス122は、CPU110とPLC5との間のデータ伝送を仲介する。より具体的には、PLCインターフェイス122は、PLC5によって制御される生産ラインの状態に係る情報やワークに係る情報などをCPU110へ伝送する。
通信インターフェイス124は、CPU110とコンソール(あるいは、パーソナルコンピュータやサーバ装置)などとの間のデータ伝送を仲介する。通信インターフェイス124は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。なお、後述するように、メモリカード106に格納されたプログラムを画像処理装置100にインストールする形態に代えて、通信インターフェイス124を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置100にインストールしてもよい。
データリーダ/ライタ126は、CPU110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ126は、このメモリカード106からプログラムを読出す。また、データリーダ/ライタ126は、CPU110の内部指令に応答して、撮像装置8によって取得された画像データおよび/または画像処理装置100における処理結果などをメモリカード106へ書込む。なお、メモリカード106は、CF(Compact Flash)、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。
また、画像処理装置100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
<B.モデル登録処理>
図3は、モデル登録処理における処理の流れを説明するためのフローチャートである。つまり、図3は、モデルを生成するための処理の流れを表したフローチャートである。
図3を参照して、ステップS2において、画像処理装置100のCPU110は、基準とすべきワーク2を撮像装置8によって撮像することにより得られたモデル画像を取得する。ステップS4において、CPU110は、モデル画像からエッジの抽出を行ない、エッジ抽出画像を生成する。すなわち、CPU110は、モデル画像の全ての画素に対して、公知のフィルタ処理によってエッジの強度を算出し、当該エッジ強度が既定の閾値を越えた画素をエッジ点として抽出する。また、CPU110は、抽出した全てのエッジ点に対して、特許文献1に示される方法によってエッジの変化方向を示すエッジコードを算出する。
本実施の形態においては、エッジの変化方向を示す値の一例として、エッジの接線方向
がエッジコード(エッジ方向/エッジ角度)として算出される。図19は、本発明の実施の形態に係るエッジコードおよびエッジコード画像の算出処理を説明するための図である。特に、図19(a)には、各エッジ点におけるエッジコードを算出する方法を示し、図19(b)には、エッジコード画像のデータ構造の一例を示す。
図19(a)に示すような画像に対して、B方向に走査してエッジ抽出処理を行った場合を考える。なお、エッジ抽出処理では、B方向に存在する各画素について、当該画素の濃淡値およびその周辺の画素の濃淡値に基づいてエッジ強度を検出し、B方向に対するエッジ強度のプロファイルにおける極大値がエッジとして抽出される。
図19(a)に示す例では、エッジEDGの一部として座標位置E(x,y)をもつエッジ点が抽出される。そして、抽出された座標位置E(x,y)の周辺画素の濃淡値などに基づいて、いずれの方向にエッジEDGが続いているのかが判断される。概略すれば、エッジEDGを構成する座標位置E(x,y)のエッジ点における接線ベクトルCが算出される。この接線ベクトルCと基準ベクトル(図19(a)に示す例では、B方向)とのなす角度Ec(x,y)をエッジコードとして算出する。なお、この角度Ec(x,y)は、0°〜360°(あるいは、−180°〜180°)を有効範囲として定義してもよいし、0°〜180°を有効範囲として定義してもよい。後者の場合には、接線ベクトルCと基準ベクトルとのなす角度差の絶対値となる。
なお、代替の方法として、抽出されたエッジにおける濃淡の変化方向をエッジコードと
して算出してもよい。この場合には、図19(a)に示す接線ベクトルCと直交する方向がエッジコードとなる。
ステップS6において、CPU110は、抽出したエッジを細線化し、細線化エッジ画像を生成する。詳しくは、CPU110は、抽出した全てのエッジに対して、当該エッジの両隣のエッジよりも強度が強いエッジのみが残るようにエッジ抽出画像を細線化することにより、細線化エッジ画像を生成する。
ステップS8において、CUP110は、細線化処理されたエッジの連結を行なう。具体的には、CPU110は、隣接するエッジのうち、エッジの変化方向の角度差が一定値以内のエッジを連結することにより、エッジをグループ化する。
ステップS10において、CPU110は、連結されたエッジに対してノイズ除去処理を行なうことにより、ノイズ除去後のエッジ画像を生成する。具体的には、CPU110は、連結することにより得られた複数のグループのうち、構成するエッジの数が5個未満のグループを除去することにより、ノイズ除去後のエッジ画像を生成する。
ステップS12において、CPU110は、ノイズ除去後のエッジ画像について、サンプリング処理を行なう。具体的には、CPU110は、除去されなかった複数のグループに対して、等間隔にモデル点を配置することにより、モデルを生成する。
生成されたモデルは、少なくとも、抽出されたエッジ上の複数の位置と、各当該位置におけるエッジの変化方向とにより規定される。一例として、モデルは、少なくとも、抽出されたエッジ上の点を等間隔にサンプリングすることにより得られた複数のサンプリング点(サンプリング位置)と、各サンプリング点におけるエッジの変化方向とにより規定される。なお、生成されたモデルは、メインメモリ112に格納される。
図4は、モデル登録処理における各処理により生成される画像を表した図である。以下、図4に示した各画像A〜Eについて、図3における各ステップと対応付けて説明する。
図4を参照して、画像Aは、ワーク2を撮像することにより得られたモデル画像310を表している。つまり、画像Aは、図3におけるステップS2の処理により得られる画像を表している。モデル画像310は、ワーク2の表面に描かれた十字状のマークに対応する領域311を含む。画像Bは、エッジ抽出画像320を説明するための画像である。つまり、画像Bは、図3におけるステップS4の処理により得られる画像を表している。エッジ抽出画像320は、エッジ点の集合であるエッジ領域321を含む。
画像Cは、細線化エッジ画像330を表している。つまり、画像Cは、図3におけるステップS6の処理を行なった後に得られる画像を表している。画像Dは、ノイズ除去後のエッジ画像340を説明するための画像である。つまり、画像Dは、図3におけるステップS10の処理により得られる画像を表している。
画像Eは、モデル画像310に基づいて生成されたモデル350を説明するための画像である。つまり、画像Eは、図3におけるステップS12の処理により得られるデータを模式的に表している。モデル350は、複数のサンプリング点351を含む。なお、説明の便宜上、複数のサンプリング点351のうちの一部の4つのサンプリング点を、それぞれサンプリング点351a,351b、351c、351dと称する。
<C.計測処理>
パターンマッチング処理では、一致度のみならず、不一致度、相違度、または距離といった概念で、類似の度合(類似度)を計算する場合がある。以下では、類似度の一例として、一致度を用いた構成について説明する。なお、一致度とは、比較対象となる2つのものが、どの程度、くい違いがないかを表した度合いである。
画像処理装置100は、モデル登録の処理を終了した後に、登録されたモデルと一致する領域を計測対象となるワークの画像(入力画像)において特定する処理を行なう。
(c1.処理全体の流れ)
図5は、計測処理全体の流れを説明するためのフローチャートである。図5を参照して、ステップS102において、CPU110は、計測対象のワークを撮像装置8により撮像することにより得られた画像(入力画像)を取得する。ステップS104において、CPU110は、入力画像からエッジの抽出を行ない、エッジ抽出画像を生成する。また生成したエッジ抽出画像における各エッジ点のエッジコードを算出する。ステップS106において、CPU110は、モデルと一致する領域を入力画像から探索(サーチ)することにより、モデルと一致する領域を入力画像において特定する。
ステップS108において、CPU110は、探索結果に基づいて、モデルと入力画像との一致度を算出する。ステップS110において、CPU110は、探索処理に基づく結果をディスプレイ102に出力する。ステップS106の探索処理の詳細については、後述する(図7)。
なお、計測対象のワーク2を撮像することにより得られた入力画像に対しては、細線化処理およびノイズ除去を行なわない。
図6は、計測処理における処理により生成される画像を表した図である。以下、図6に示した各画像A〜Cについて、図5におけるステップと対応付けて説明する。
図6を参照して、画像Aは、計測対象のワーク2を撮像することにより得られた入力画像510を表した画像である。つまり、画像Aは、図5におけるステップS102の処理により得られる画像を表している。入力画像510は、ワーク2の表面に描かれた十字状のマークに対応する画像511を含む。また、画像Bは、計測対象のワーク2のエッジ抽出画像520を説明するための画像である。つまり、画像Bは、図5におけるステップS104の処理により得られた画像を表している。エッジ抽出画像520は、エッジ点の集合であるエッジ領域521を含む。
(c2.探索処理)
図7は、図5のステップS106における探索処理における処理の流れを説明するためのフローチャートである。図7を参照して、ステップS602において、CPU110は、サンプリング点351に対応する対応点が、入力画像510において抽出されたエッジ抽出領域521に属するか否かを、サンプリング点351毎に判定する。なお、対応点については、後述する(図8)。
ステップS606において、CPU110は、サンプリング点351におけるエッジコードと、当該サンプリング点351に対応するエッジ抽出画像520上の対応点におけるエッジコードとの角度差を、当該対応点毎に算出する。
ステップS608において、CPU110は、予め選択されたデータと上記算出された角度差とに基づき、サンプリング点351と当該サンプリング点351に対応する対応点との一致度(部分一致度)を算出する。ステップS610において、CPU110は、複数の対応点における上記算出された一致度に基づき、モデル350と一致する部分を入力画像510(正確には、エッジ抽出画像520)において特定する。
図8は、サンプリング点と、対応点と、エッジの変化方法と、角度差とを説明するための図である。図8を参照して、(a)は、モデル350を模式的に表している。上述したように、モデル350は、少なくとも、複数のサンプリング点351と、各サンプリング点におけるエッジコードとにより規定される。また、図8(a)における各矢印は、各サンプリング点におけるエッジコードを表している。
図8(b)は、エッジ抽出画像520上のエッジ領域521における対応点と、当該対応点におけるエッジの変化方向とを表した図である。複数の対応点のうちの対応点551aは、複数のサンプリング点351のうちのサンプリング点351aに対応する点である。同様に、対応点551bは、サンプリング点351bに対応する点である。対応点551cは、サンプリング点351cに対応する点である。サンプリング点351dに対応するエッジ点は存在しない。
また、画像Bにおける各矢印は、対応点におけるエッジの変化方向を表している。
CPU110は、上述したように、サンプリング点351におけるエッジの変化方向と、当該サンプリング点に対応する対応点におけるエッジの変化方向との角度差を算出する。CPU110は、具体例を挙げれば、サンプリング点351aにおけるエッジの変化方向と、サンプリング点351aに対応する対応点551aにおけるエッジの変化方向との角度差を算出する。なお、CPU110は、対応点がエッジ領域に属しているサンプリング点351に対してのみ、上記角度差を算出する。
図9は、CPU110が、一致度を算出するときに利用するデータD9を表した図である。つまり、図9は、図7のステップS608の部分一致度算出処理に利用するデータを表した図である。
図9を参照して、データD9では、3つの歪み許容レベル(高,中,低)の各々と、角度差(具体的には角度差の範囲)とに対して、1つのサンプリング点351と1つの対応点との一致度を表すスコアが対応付けられている。詳しくは、データD9は、複数のデータD91,D92,D93を含んで構成されている。複数のデータD91,D92,D93の各々は、2つのエッジの変化方向の相違を表す情報と当該2つのエッジの類似度とが関連付けられている。
たとえば、歪み許容レベルが「高」を表すデータD91は、2つのエッジの変化方向の角度差が大きくなるほど当該2つのエッジの一致度が小さくなるように角度差と一致度とが関連付けられている。
また、歪み許容レベルが「中」を表すデータD92は、2つのエッジの変化方向の角度差が大きくなるほど当該2つのエッジの一致度が小さくなるとともに、角度差に対する一致度の関連付けがデータD91とは異なる。より詳しくは、データD92においては、複数の範囲(10°以上20°未満,20°以上30°未満,30°以上40°未満,40°以上60°未満)において、スコアがデータD91のスコアよりも小さく設定されている。つまり、データD92は、データD91よりも対象物の局所的な形状変化に対する許容度合いを厳しくすることを表している。
また、歪み許容レベルが「低」を表すデータD93は、2つのエッジの変化方向の角度差が大きくなるほど当該2つのエッジの一致度が小さくなるとともに、角度差に対する一致度の関連付けがデータD91,D92とは異なる。より詳しくは、データD93においては、複数の範囲(10°以上20°未満,20°以上30°未満,30°以上40°未満,40°以上60°未満)において、スコアがデータD91,92のスコアよりも小さく設定されている。つまり、データD93は、データD92よりも対象物の局所的な形状変化に対する許容度合いを厳しくすることを表している。
なお、図9に示したデータD9は一例であって、データの形式および一致度を表すスコアの値は、これに限定されるものではない。たとえば、データD9のように角度差と対応付けられたスコアを予め記憶しておくのではなく、角度差の閾値の入力を受け付け、計測されたエッジコードとモデルのエッジコードとの角度差がその閾値未満のときのみ、スコアを1として計測対象全体の一致度にインクリメントしていくような構成でもよい。
また、予め定められた計算式を用いてデータD9(D91,D92,D93)を生成するように、画像処理装置100を構成してもよい。この場合には、画像処理装置100は、データD9の代わりに当該計算式を予め記憶しておけばよい。
また、画像処理装置100のCPU110は、ユーザからの指示に基づき、データD91,D92,D93のうちの1つのデータを読み出し、当該読み出したデータを以下の2つの一致度の算出に利用する。
(I)エッジの変化方向の一致度
CPU110は、閾値Th1(たとえば、スコア=50)以上となる、サンプリング点351と当該サンプリング点に対応する対応点とについては、サンプリング点351のエッジの変化方向と当該サンプリング点に対応する対応点のエッジの変化方向とが一致しているものとして取り扱う。
たとえば、サンプリング点351のエッジの変化方向と当該サンプリング点に対応する対応点のエッジの変化方向との角度差が25°である場合、歪み許容レベル“高”がユーザによって選択された場合、スコアが50となる。よって、閾値Th1以上となり、両点のエッジの変化方向とが一致しているものと判定される。一方、角度差が25°である場合、歪み許容レベル“中”がユーザによって選択された場合、スコアが40となる。よって、閾値Th1未満となり、両点のエッジの変化方向とが一致していないと判定される。このように、角度差が同じであっても、使用されるデータにより判定結果が異なることになる。
画像処理装置100は、サンプリング点351のエッジの変化方向と当該サンプリング点に対応する対応点のエッジの変化方向との角度差に基づくスコアが閾値Th1以上となるとき、サンプリング点351と当該サンプリング点351に対応する対応点とが一致していると判定する。つまり、このような場合、画像処理装置100は、サンプリング点351の近傍(サンプリング点を含む局所的な線分)では、モデル(モデル画像)と入力画像とが一致していると判定する。また、詳細については後述するが、CPU110は、エッジの変化方向が一致しているか否かに応じて、計測結果を表す画像の表示態様を変化させる。なお、ここで一致と判定されるのは方向に関してである。
(II)計測対象全体の一致度
CPU110は、上記スコアを用いて、計測対象全体の一致度をさらに計算する。CPU110は、サンプリング点351毎に、選択された歪み許容レベルのデータD9を利用して、スコアを求める。CPU110は、さらに、スコアの平均値を算出する。なお、サンプリング点351に対応する対応点が、入力画像510において抽出されたエッジ抽出領域521に属しない場合には、当該サンプリング点351については、スコアを0とする。
CPU110は、上記平均値が予め定められた閾値Th2(たとえば、90)以上の場合、モデルと計測対象であるワーク2とが一致していると判断する。一方、CPU110は、上記平均値が閾値Th2(たとえば、90)未満の場合、モデルと計測対象であるワーク2とが一致していないと判断する。一例を挙げて説明すれば、以下のとおりである。なお、画像処理装置100は、計測対象全体の一致度としてスコアの平均値を用いている。
サンプリング点の数を100個、対応点の数を96個とする。また、角度差が0°以上10°未満のデータが60個、角度差が10°以上20°未満のデータが30個、角度差が20°以上30°未満のデータが6個であったとする。この場合、歪み許容レベル“高”が選択されると、平均値は、(100×60+90×30+50×6+0×(100−96))÷100=90となる。また、歪み許容レベル“中”が選択されると、平均値は、(100×60+70×30+40×6+0×(100−96))÷100=83.4となる。
したがって、歪み許容レベル“高”が選択された場合には、CPU110は、モデルと計測対象であるワーク2とが一致していると判断する。一方、歪み許容レベル“中”が選択された場合には、CPU110は、モデルと計測対象であるワーク2とが一致していないと判断する。
(c3.表示処理)
図10は、モデル画像310と入力画像510との相違を説明するための図である。図10を参照して、画像Aは、ワーク2を撮像することにより得られたモデル画像310と、図4のエッジ画像340におけるエッジ部分3401とを表している。画像Bは、計測対象のワーク2を撮像することにより得られた入力画像510を表している。画像Aに比べると、画像Bでは、領域P1においてワークが歪んでいる。また、領域P2においてワークが一部の欠損している。
このような場合に、画像処理装置100がディスプレイ102に表示させる画像について、以下説明する。なお、ディスプレイ102に実際に表示されるユーザインターフェイスについては、後述する(図14〜図18)。
図11は、入力画像510においてモデル350と一致する部分と一致しない部分とを説明するための図である。具体的には、図11は、ユーザによって、図9に基づいて説明した歪み許容レベル“低”が選択された場合の画像を表している。
図11を参照して、画像処理装置100は、ワーク2に対応する画像511を含む入力画像510に、隣接する対応点を同士を結んだ線分により構成される線画像540を重ねた画像1100をディスプレイ102に表示する。画像処理装置100は、線画像540を表示させる際、モデル350と一致する箇所と、モデル350と一致しない箇所とを、互いに異なる態様でディスプレイ102に表示させる。より正確には、画像処理装置100は、線画像540を表示させる際、サンプリング点351と一致する対応点同士(隣接対応点同士)を結んだ線分と、サンプリング点351と一致しない対応点同士(隣接対応点同士)を結んだ線分とを、互いに異なる態様でディスプレイ102に表示させる。
また、画像処理装置100は、モデル350と一致しない箇所については、エッジ領域に属していない箇所(つまり、エッジ領域に属していない対応点同士を結んだ線分)と、エッジ領域に属している箇所(つまり、エッジ領域に属している対応点同士を結んだ線分)とを、さらに互いに異なる態様でディスプレイ102に表示させる。
一例として、画像処理装置100は、線画像540における、モデル350と一致する箇所と、モデル350と一致しない箇所541〜545とを、互いに異なる色でディスプレイ102に表示させる。また、画像処理装置100は、モデル350と一致しない箇所541〜545については、対応点がエッジ領域に属していない箇所541,542と、対応点がエッジ領域に属している箇所543,544,545とを、さらに互いに異なる色でディスプレイ102に表示させる。
具体例を挙げれば、画像処理装置100は、モデル350と一致する箇所を第1の色(たとえば緑色)で表示し、対応点がエッジ領域に属していない箇所541,542を第2の色(たとえば赤色)で表示し、対応点がエッジ領域に属している箇所543,544,545を第3の色(たとえば黄色)で表示する。なお、枠900は、計測対象とする領域を表した線である。
図12は、入力画像510においてモデル350と一致する部分と一致しない部分とを説明するための図である。具体的には、図12は、ユーザによって、図9に基づいて説明した歪み許容レベル“高”が選択された場合の画像を表している。
図12を参照して、画像処理装置100は、ワーク2に対応する画像511を含む入力画像510に線画像540を重ねた画像1200をディスプレイ102に表示する。その際、画像処理装置100は、図11でも説明したとおり、入力画像510における、モデル350と一致する箇所と、モデル350と一致しない箇所とを、互いに異なる態様でディスプレイ102に表示させる。また、画像処理装置100は、モデル350と一致しない箇所については、対応点がエッジ領域に属していない箇所と、対応点がエッジ領域に属している箇所とを、さらに互いに異なる態様でディスプレイ102に表示させる。
一例として、画像処理装置100は、線画像540における、モデル350と一致する箇所と、モデル350と一致しない箇所542とを、互いに異なる色でディスプレイ102に表示させる。また、画像処理装置100は、モデル350と一致しない箇所については、対応点がエッジ領域に属していない箇所542と、対応点がエッジ領域に属している箇所とを、さらに互いに異なる色でディスプレイ102に表示させる。
具体例を挙げれば、画像処理装置100は、モデル350と一致する箇所を第1の色(たとえば緑色)で表示し、対応点がエッジ領域に属していない箇所542を第2の色(たとえば赤色)で表示する。図12においては、歪み許容レベル“高”が選択されているため、モデル350と一致しない箇所のうち、対応点がエッジ領域に属している箇所は存在していない。つまり、図12においては、図11において第3の色(たとえば黄色)で示した表示がなされないことになる。
このように、サンプリング点351に対応する対応点がエッジ領域に属している場合、画像処理装置100は、当該サンプリング点351におけるエッジの変化方向と当該対応点におけるエッジの変化方向とが一致しているか否かに応じて、計測結果を表す画像の表示態様を変化させる。つまり、画像処理装置100は、一例として、対応点がエッジ領域に属していることを条件に、エッジの変化方向が一致している箇所を緑色で表示し、エッジ方向が一致していない箇所を黄色で表示する。さらに、画像処理装置100は、対応点がエッジ領域に属していない箇所を赤色で表示する。
<D.機能的構成>
図13は、画像処理装置100の機能的構成を説明するためのブロック図である。図13を参照して、画像処理装置100は、制御部1010と、記憶部1020とを備える。制御部1010は、受付部1101と、角度差算出部1105と、一致度算出部1106と、部分判定部1107と、全体判定部1108と、表示制御部1109とを備える。エッジ抽出部1102は、位置判定部1103と、方向算出部1104とを備える。
記憶部1020には、モデルと、データD9と、閾値Th1、閾値Th2とが予め格納されている。
受付部1101は、エッジの変化方向の許容値に関する指示を受け付ける。受付部1101は、典型的には、3つの歪み許容レベルの中から、1つの歪み許容レベルを選択するための指令をマウス104等の入力装置を介して受け付ける。つまり、データD91、データD92、およびデータD93のうちのいずれかを指定するための指示を受け付ける。さらに、受付部1101は、ディスプレイ102に表示させるユーザインターフェイスを選択するための指示をユーザから受け付ける。当該指示は、表示制御部1109に送られる。
エッジ抽出部1102は、入力画像510のエッジを抽出する。より具体的には、入力画像510に含まれる、ワーク2に対応する画像511のエッジを抽出する。また、エッジの抽出の一環として、位置判定部1103が、サンプリング点351に対応する対応点が上記抽出されたエッジ領域に属するか否かをサンプリング点351毎に判定し、方向算出部1104が上記対応点におけるエッジの変化方向を算出する。
角度差算出部1105は、サンプリング点351におけるエッジの変化方向と、当該サンプリング点351に対応する対応点におけるエッジの変化方向との角度差を、対応点毎に算出する。
一致度算出部1106は、選択されたデータ(たとえば、データD91)と、サンプリング点351におけるエッジの変化方向と、当該サンプリング点351に対応する対応点におけるエッジの変化方向とに基づき、サンプリング点351当該サンプリング点351に対応する対応点との一致度(部分一致度)を算出する。具体的には、一致度算出部1106は、選択されたデータ(たとえば、データD91)と上記算出された角度差とに基づき、サンプリング点351と当該サンプリング点351に対応する対応点との一致度を示すスコアを算出する。一致度算出部1106は、算出されたスコアを、部分判定部1107と全体判定部1108とに送る。
部分判定1107は、サンプリング点351と当該サンプリング点351に対応する対応点との一致度に基づき、当該サンプリング点351と当該対応点とが一致するか否かを判定する。詳しくは、部分判定部1107は、複数の対応点における上記算出されたスコア(一致度)および閾値Th1に基づき、サンプリング点351と、当該サンプリング点351に対応する対応点とが一致するか否かを判定する。より詳しくは、部分判定部1107は、対応する対応点が入力画像510のエッジ領域に属しているサンプリング点351と、当該サンプリング点に対応する対応点とが一致するか否かを判定する。
具体的には、上記算出されたスコアが閾値Th1以上の場合には、部分判定部1107は、サンプリング点351と、当該サンプリング点351に対応する対応点とが一致していると判定する。また、上記算出されたスコアが閾値Th1未満の場合には、部分判定部1107は、サンプリング点351と、当該サンプリング点351に対応する対応点とが一致していないと判定する。
全体判定部1108は、複数の対応点における算出されたスコアに基づき、入力画像510における特定の領域(つまり、入力画像510における、パターンマッチング処理の対象とした一部の領域(典型的には、抽出した矩形領域))がモデル350と一致するか否かを判定する。具体的には、判定部1108は、複数の対応点における算出された一致度と、閾値Th2とに基づき、入力画像510における特定の領域がモデル350と一致するか否かを判定する。より具体的には、全体判定部1108は、複数の対応点における上記算出されたスコアの平均値(計測対象全体の一致度)と、閾値Th2とに基づき、入力画像510がモデル350と一致するか否かを判定する。つまり、全体判定部1108は、計測対象であるワーク2の良否を判定する。なお、良否判定の手法は、上述したので、ここでは、繰り返し説明しない。
表示制御部1109は、複数の対応点のうち、サンプリング点351に一致する対応点(以下、「一致点」とも称する)と当該サンプリング点351に一致しない対応点(以下、「不一致点」とも称する)とを、互いに異なる表示態様で、入力画像510に対応付けてディスプレイ102に表示させる。たとえば、表示制御部1109は、不一致点と一致点とを、互いに異なる色でディスプレイ102に表示させる。なお、ここでの不一致点は、エッジ領域に属しないと判定された対応点と、エッジ領域に属すると判定されたが上記算出されたスコアが閾値Th1未満となった対応点とを含む。より詳しくは、表示制御部1109は、エッジ領域に属すると判定された複数の対応点のうち、サンプリング点351に一致する対応点と当該サンプリング点351に一致しない対応点とを、互いに異なる表示態様で、入力画像510に対応付けてディスプレイ102に表示させる。
また、表示制御部1109は、対応点を、入力画像510のエッジ領域に属する場合と属さない場合とで異なる表示態様となるようにディスプレイ102に表示させる。たとえば、表示制御部1109は、エッジ領域に属する対応点と、エッジ領域に属さない対応点とを、互いに異なる色でディスプレイ102に表示させる。
つまり、表示制御部1109は、複数の対応点のうち、(i)一致点(入力画像510のエッジ領域に属し、かつエッジの変化方向が一致している(スコアが閾値Th1以上)の対応点)と、(ii)不一致点のうち、入力画像510のエッジ領域に属しない対応点と、(iii)不一致点のうち、入力画像510のエッジ領域に属する一方で、エッジの変化方向が一致しない(スコアが閾値Th1未満)の対応点とを、互いに異なる表示態様(たとえば、異なる色)でディスプレイ102に表示させる。
さらに、表示制御部1109は、図11および図12に示したとおり、入力画像510を表示している状態において、互いに隣接する対応点同士を結んだ線分により構成される線画像540を表示する。
このように、表示制御部1109は、対応点の近傍の表示態様を、当該対応点の表示態様に応じた表示態様に設定する。たとえば、表示制御部1109は、上記一致点およびその近傍を、第1の色(たとえば緑色)でディスプレイ102に表示させる。また、表示制御部1109は、上記不一致点のうち、入力画像510のエッジ領域に属しない対応点、および当該対応点の近傍を、第2の色(たとえば赤色)で表示する。さらに、表示制御部1109は、不一致点のうち、入力画像510のエッジ領域に属するが、エッジの変化方向が一致しない対応点、および当該対応点の近傍を第3の色(たとえば黄色)で表示する。
また、表示制御部1109は、全体判定部1108による良否判定結果等の各種の情報をディスプレイ102に表示させる(図14〜図18)。
<E.ユーザインターフェイス>
画像処理装置100がディスプレイ102に表示させるユーザインターフェイスについて、図14〜図18に基づいて説明する。
(e1.設定モード)
図14は、画像処理装置100が設定モードにおいて提供するユーザインターフェイス画面の一例を示す図である。図14は、ユーザがパターンマッチング処理に必要な各種設定値(計測条件)を設定する際のユーザインターフェイス画面1400を示す。
図14に示すユーザインターフェイス画面1400では、モデル登録タブ202と、領域設定タブ206と、検出点タブ208と、基準設定タブ210と、計測パラメータタブ212と、出力パラメータタブ214とが選択可能に表示される。なお、図14に示すユーザインターフェイス画面1400においては、計測パラメータタブ212が選択されている状態を示す。また、ユーザインターフェイス画面1400は、計測条件設定エリア260と、判定条件設定エリア270と、画像表示エリア250と、全体表示エリア252とを含む。
計測条件設定エリア260は、エッジ抽出処理を行なう際のエッジレベル(エッジ強度)の設定ボックスと、歪み許容レベルを設定するための設定ボックスとを含む。エッジレベルを変更することにより、エッジの領域が変更される。具体的には、エッジレベルを高くすることにより、エッジ抽出画像320におけるエッジ幅は細くなる。エッジレベルを低くすることにより、エッジ抽出画像320におけるエッジ幅は太くなる。なお、エッジレベルを高くすることは、エッジ強度の閾値を高くすることを意味する。
歪み許容レベルをユーザが変更することにより、図9に示したデータD9に含まれるデータD91,D92,D93のうち、どのデータを利用するかが決定される。たとえば、歪み許容レベル“低”が選択された場合、データD93が利用されることになる。
判定条件設定エリア270では、本実施の形態に係るパターンマッチング処理により得られる計測結果のうち有効とされるものを設定するための判定条件を受付ける。
すなわち、計測座標Xの数値入力ボックスに入力される数値範囲(座標範囲)は、計測座標のx成分についての判定条件として用いられる。また、計測座標Yの数値入力ボックスに入力される数値範囲(座標範囲)は、計測座標のy成分についての判定条件として用いられる。また、計測角度の数値入力ボックスに入力される数値範囲(角度範囲)は、計測結果の角度成分についての判定条件として用いられる。
さらに、相関値の数値入力ボックスに入力される数値範囲は、各計測座標における相関値の判定条件として用いられる。また、検出数の数値入力ボックスに入力される数値範囲は、1回のパターンマッチング処理の実行により出力される最大の検出数の条件として用いられる。
なお、図14に示すユーザインターフェイス画面1400においては、画像表示エリア250にエッジ抽出画像320が表示される。なお、画像表示エリア250に表示される画像は、エッジ抽出画像320に限定されるものではない。また、全体表示エリア252には、画像表示エリア250において表示可能な画像の全体が表示される。
(e2.計測モード)
(I)歪み許容レベル“低”の場合のユーザインターフェイス
図15は、画像処理装置100が計測モードにおいて提供するユーザインターフェイス画面の一例を示す図である。具体的には、図15は、歪み許容レベルが“低”に設定された場合のユーザインターフェイス画面1500を表した図である。
図15を参照して、ユーザインターフェイス画面1500では、撮像装置8の視野内に複数のワークが存在する場合に生成する画像データに対して、上述したようなパターンマッチング処理を行うことで得られた計測結果を示す。
画像処理装置100は、入力画像に対して、予め登録されているモデルに基づくパターンマッチング処理を行うと、図11の画像1100を画像表示エリア1501に表示させる。また、画像処理装置100は、計測結果を示す数値をディスプレイに102に表示させる(符号1502)。さらに、画像処理装置100は、計測結果に基づくワーク2の良否判定結果(OKまたはNGの表示)を、画面右上の領域にも表示する。図15の例では、相関値が閾値Th2(=90)以上であるため、“OK”の表示がなされている。
図16は、図15からの遷移した後のユーザインターフェイス画面の一例を示す図である。具体的には、図16は、図15の状態において、ユーザ操作に基づき、画面右下のサブ画像番号において「画像3」が選択された後のユーザインターフェイス画面1600を表している。
画像3が選択されると、画像処理装置100は、画像1100に対して計測対象のワーク2のエッジ抽出画像520(図6の画像B)をオーバラップさせたユーザインターフェイス画面1600をディスプレイ102に表示させる。
(II)歪み許容レベル“高”の場合のユーザインターフェイス
図17は、画像処理装置100が計測モードにおいて提供するユーザインターフェイス画面の他の例を示す図である。具体的には、図17は、歪み許容レベルが“高”に設定された場合のユーザインターフェイス画面1700を表した図である。
図17を参照して、ユーザインターフェイス画面1700では、図15のユーザインターフェイス画面1500と同様に、撮像装置8の視野内に複数のワークが存在する場合に生成する画像データに対して、上述したようなパターンマッチング処理を行うことで得られた計測結果を示す。
画像処理装置100は、入力画像に対して、予め登録されているモデルに基づくパターンマッチング処理を行うと、図12の画像1200を画像表示エリア1701に表示させる。また、画像処理装置100は、計測結果を示す数値をディスプレイに102に表示させる(符号1702)。さらに、画像処理装置100は、計測結果に基づくワーク2の良否判定結果(OKまたはNGの表示)を、画面右上の領域にも表示する。図17の例では、相関値が閾値Th2(=90)以上であるため、“OK”の表示がなされている。
図18は、図17からの遷移した後のユーザインターフェイス画面の一例を示す図である。具体的には、図18は、図17の状態において、ユーザ操作に基づき、画面右下のサブ画像番号において「画像3」が選択された後のユーザインターフェイス画面を表している。
画像3が選択されると、画像処理装置100は、画像1200に対して計測対象のワーク2のエッジ抽出画像520をオーバラップさせたユーザインターフェイス画面をディスプレイ102に表示させる。
<F.利点>
画像処理装置100によれば、エッジレベル(図14参照)および計測対象(ワーク2)の良否判定の閾値Th2を変更することなく、モデルと計測対象全体との一致度を変更可能となる。つまり、上述したように、ユーザは、歪み許容レベルを変更することにより、1個の計測対象について、計測対象全体の一致度(スコアの平均値,相関値)を変更させることができる。このように、画像処理装置100によれば、計測対象物(ワーク2)の形状的な特徴を用いたパターンマッチングにおいて、当該対象物の局所的な形状の歪みを許容することができる。
また、表示制御部1109が、一致点および当該一致点の近傍と、不一致点および当該不一致点の近傍とを、互いに異なる表示態様(たとえば異なる色)でディスプレイ102に表示させることにより、ユーザは、モデルと入力画像との不一致箇所を容易に判別することができる。詳しくは、ユーザは、計測対象であるワーク2の問題のある個所を容易に把握することが可能となる。特に、不一致点の表示に関しては、表示制御部1109が、入力画像510のエッジ領域に属しない対応点と、入力画像510のエッジ領域に属する一方でエッジの変化方向が一致しないの対応点とを互いに異なる表示態様(たとえば異なる色)でディスプレイ102に表示させることにより、ユーザは、どのような原因で不一致が生じているのかを容易に判断できる。
<G.変形例>
上記おいては、互いに異なる表示態様として、異なる色を例に挙げて説明したが、これに限定されるものではない。たとえば、一致点および当該一致点の近傍と、不一致点および当該不一致点の近傍とを、一種類の色(たとえば、緑色)で表示するとともに、互いに異なる線種、線幅、または濃度等で表示するように、画像処理装置100を構成してもよい。さらに、この構成の場合、不一致点の表示に関しては、入力画像510のエッジ領域に属さない対応点と、入力画像510のエッジ領域に属する一方でエッジの変化方向が一致さない対応点とを、互いに異なる線種、線幅、または濃度等で表示するように、画像処理装置100を構成することが好ましい。
また、対応点のスコアに応じて、色の濃度を変化させてもよい。具体的には、、一致点および当該一致点の近傍と、不一致点および当該不一致点の近傍とを、互いに異なる色で表示させる際に、入力画像510のエッジ領域に属する一方でエッジの変化方向が一致しないの対応点および当該対応点の近傍に関しては、スコアが低い箇所(サンプリング点およびその近傍)ほど色の濃度が高くなるように、画像処理装置100を構成してもよい。この構成によれば、ユーザは、計測対象であるワーク2において規定以上の歪みの生じている箇所における、当該歪みの程度を容易に把握できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 視覚センサシステム、2 ワーク、4 光電センサ、4a 受光部、4b 投光部、5 PLC、6 搬送機構、8 撮像装置、100 画像処理装置、102 ディスプレイ、104 マウス、110 CPU、112 メインメモリ、114 ハードディスク、116 カメラインターフェイス、116a 画像バッファ、120 表示コントローラ、124 通信インターフェイス、250,1501,1701 画像表示エリア、252 全体表示エリア、260 計測条件設定エリア、270 判定条件設定エリア、310 モデル画像、351,351a,351a,351b,351b,351c,351d サンプリング点、320,520 エッジ抽出画像、330 細線化エッジ画像、340,520 エッジ画像、350 モデル、510 入力画像、551a,551b,551c 対応点、900 枠、1010 制御部、1020 記憶部、1101 受付部、1102 エッジ抽出部、1103 位置判断部、1104 方向判断部、1105 角度差算出部、1106 一致度算出部、1107 特定部、1108 良否判定部、1109 表示制御部、1400,1500,1600,1700 ユーザインターフェイス画面。

Claims (10)

  1. 予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置であって、
    前記モデルは、モデル画像から抽出されたエッジ上の複数の第1の位置と、各前記第1の位置におけるエッジの変化方向とにより規定され、
    前記第1の位置に対応する前記入力画像の第2の位置におけるエッジの変化方向を算出する第1の算出手段と、
    エッジの変化方向の許容値に関する指示を受け付ける受付手段と、
    前記受付けた指示と、前記第1の位置におけるエッジの変化方向と、前記第2の位置におけるエッジの変化方向とに基づき、前記第1の位置と当該第1の位置に対応する前記第2の位置との類似度を算出する第2の算出手段と、
    複数の前記第2の位置における前記算出された類似度と予め定められた閾値とに基づき、前記入力画像における特定の領域が前記モデルと類似するか否かを判定する第1の判定手段とを備え、
    前記受付手段は、前記指示として、2つのエッジの変化方向の相違を表す情報と当該2つのエッジの類似度とが関連付けられた複数のデータのいずれかを指定するための指示を受け付け、
    前記複数のデータの各々は、2つのエッジの変化方向の角度差が大きくなるほど前記2つのエッジの一致度が小さくなるように前記角度差と前記類似度とが関連付けられ、
    前記角度差に対する前記類似度の関連付けは、前記複数のデータ間で互いに異なっている、画像処理装置。
  2. 前記複数のデータを予め記憶した記憶手段をさらに備える、請求項に記載の画像処理装置。
  3. 記画像処理装置は、
    前記第1の位置におけるエッジの変化方向と、当該第1の位置に対応する前記第2の位置におけるエッジの変化方向との角度差を、前記第2の位置毎に算出する第3の算出手段をさらに備え、
    前記第2の算出手段は、前記指定されたデータと前記算出された角度差とに基づき、前記第1の位置と当該第1の位置に対応する前記第2の位置との前記類似度を算出する、請求項またはに記載の画像処理装置。
  4. 前記第1の位置に対応する第2の位置が前記入力画像のエッジ領域に属するか否かを、前記第1の位置毎に判定する第2の判定手段をさらに備え、
    前記第1の算出手段は、前記第2の判定手段によって前記第1の位置に対応する第2の位置が前記入力画像のエッジ領域に属すると判定された場合に、前記第1の位置に対応する第2の位置におけるエッジの変化方向を算出する、請求項に記載の画像処理装置。
  5. 前記第1の位置と当該第1の位置に対応する前記第2の位置との前記類似度に基づき、当該第1の位置と当該第2の位置とが類似するか否かを判定する第3の判定手段と、
    前記第1の位置に類似する第2の位置と前記第1の位置に類似しない第2の位置とを互いに異なる表示態様で、前記入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える、請求項1からのいずれか1項に記載の画像処理装置。
  6. 前記第1の位置に対応する第2の位置が前記入力画像のエッジ領域に属するか否かを、前記第1の位置毎に判定する第2の判定手段と、
    前記入力画像のエッジ領域に属する第2の位置と前記入力画像のエッジ領域に属さない第2の位置とを互いに異なる表示態様で、前記入力画像に対応付けてディスプレイに表示させる表示制御手段とをさらに備える、請求項1からのいずれか1項に記載の画像処理装置。
  7. 前記表示態様は色である、請求項またはに記載の画像処理装置。
  8. 各前記第1の位置は、前記モデル画像のエッジ上の点をサンプリングすることにより得られた位置である、請求項1からのいずれか1項に記載の画像処理装置。
  9. 予め登録されたモデルと類似する領域を入力画像からサーチする画像処理方法であって、
    前記モデルは、モデル画像から抽出されたエッジ上の複数の第1の位置と、各前記第1の位置におけるエッジの変化方向とにより規定され、
    前記画像処理方法は、
    前記第1の位置に対応する前記入力画像の第2の位置におけるエッジの変化方向を算出するステップと、
    エッジの変化方向の許容値に関する指示を受け付けるステップと、
    前記受付けた指示と、前記第1の位置におけるエッジの変化方向と、前記第2の位置におけるエッジの変化方向とに基づき、前記第1の位置と当該第1の位置に対応する前記第2の位置との類似度を算出するステップと、
    複数の前記第2の位置における前記算出された類似度と予め定められた閾値とに基づき、前記入力画像における特定の領域が前記モデルと類似するか否かを判定するステップとを備え
    前記指示を受け付けるステップでは、前記指示として、2つのエッジの変化方向の相違を表す情報と当該2つのエッジの類似度とが関連付けられた複数のデータのいずれかを指定するための指示を受け付け、
    前記複数のデータの各々は、2つのエッジの変化方向の角度差が大きくなるほど前記2つのエッジの一致度が小さくなるように前記角度差と前記類似度とが関連付けられ、
    前記角度差に対する前記類似度の関連付けは、前記複数のデータ間で互いに異なっている、画像処理方法。
  10. 予め登録されたモデルと類似する領域を入力画像からサーチする画像処理装置を制御するためのプログラムであって、
    前記モデルは、モデル画像から抽出されたエッジ上の複数の第1の位置と、各前記第1の位置におけるエッジの変化方向とにより規定され、
    前記プログラムは、
    前記第1の位置に対応する前記入力画像の第2の位置におけるエッジの変化方向を算出するステップと、
    エッジの変化方向の許容値に関する指示を受け付けるステップと、
    前記受付けた指示と、前記第1の位置におけるエッジの変化方向と、前記第2の位置におけるエッジの変化方向とに基づき、前記第1の位置と当該第1の位置に対応する前記第2の位置との類似度を算出するステップと、
    複数の前記第2の位置における前記算出された類似度と予め定められた閾値とに基づき、前記入力画像における特定の領域が前記モデルと類似するか否かを判定するステップとを、前記画像処理装置のプロセッサに実行させ
    前記指示を受け付けるステップでは、前記指示として、2つのエッジの変化方向の相違を表す情報と当該2つのエッジの類似度とが関連付けられた複数のデータのいずれかを指定するための指示を受け付け、
    前記複数のデータの各々は、2つのエッジの変化方向の角度差が大きくなるほど前記2つのエッジの一致度が小さくなるように前記角度差と前記類似度とが関連付けられ、
    前記角度差に対する前記類似度の関連付けは、前記複数のデータ間で互いに異なっている、プログラム。
JP2013079975A 2013-04-05 2013-04-05 画像処理装置、画像処理方法、およびプログラム Active JP6197340B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013079975A JP6197340B2 (ja) 2013-04-05 2013-04-05 画像処理装置、画像処理方法、およびプログラム
US14/244,034 US9286669B2 (en) 2013-04-05 2014-04-03 Image processing apparatus, image processing method and program
EP14163293.5A EP2793172B1 (en) 2013-04-05 2014-04-03 Image processing apparatus, image processing method and program
CN201410138793.3A CN104103069B (zh) 2013-04-05 2014-04-08 图像处理装置、图像处理方法及记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013079975A JP6197340B2 (ja) 2013-04-05 2013-04-05 画像処理装置、画像処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2014203311A JP2014203311A (ja) 2014-10-27
JP6197340B2 true JP6197340B2 (ja) 2017-09-20

Family

ID=50424107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013079975A Active JP6197340B2 (ja) 2013-04-05 2013-04-05 画像処理装置、画像処理方法、およびプログラム

Country Status (4)

Country Link
US (1) US9286669B2 (ja)
EP (1) EP2793172B1 (ja)
JP (1) JP6197340B2 (ja)
CN (1) CN104103069B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6613625B2 (ja) * 2015-05-28 2019-12-04 富士通株式会社 画像処理プログラム、画像処理装置、及び画像処理方法
JP6630545B2 (ja) * 2015-11-24 2020-01-15 株式会社キーエンス 位置決め方法、位置決め装置、プログラムおよびコンピュータ可読記録媒体
JP6333871B2 (ja) * 2016-02-25 2018-05-30 ファナック株式会社 入力画像から検出した対象物を表示する画像処理装置
JP6886260B2 (ja) * 2016-09-07 2021-06-16 キヤノン株式会社 画像処理装置、その制御方法、およびプログラム
KR102112768B1 (ko) * 2018-08-06 2020-06-04 네이버웹툰 주식회사 이미지 매칭을 이용한 표식 검출 방법, 장치 및 프로그램
JP7488033B2 (ja) * 2019-08-22 2024-05-21 ファナック株式会社 物体検出装置及び物体検出用コンピュータプログラム
KR102535136B1 (ko) * 2021-08-05 2023-05-26 현대모비스 주식회사 영상정합장치 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868175B1 (en) * 1999-08-26 2005-03-15 Nanogeometry Research Pattern inspection apparatus, pattern inspection method, and recording medium
JP3524853B2 (ja) * 1999-08-26 2004-05-10 株式会社ナノジオメトリ研究所 パターン検査装置、パターン検査方法および記録媒体
JP4023096B2 (ja) 2001-02-05 2007-12-19 オムロン株式会社 画像処理方法およびその装置
JP4366886B2 (ja) * 2001-05-24 2009-11-18 コニカミノルタビジネステクノロジーズ株式会社 画像認識のための装置と方法
KR100817656B1 (ko) * 2005-03-15 2008-03-31 오므론 가부시키가이샤 화상 처리 방법, 3차원 위치 계측 방법 및 화상 처리 장치
JP5124997B2 (ja) * 2006-06-13 2013-01-23 横浜ゴム株式会社 タイヤ金型サイドプレートの検査方法および検査装置、タイヤ金型サイドプレート種類の判定方法および判定装置、タイヤ金型加工工程の検査方法および検査装置
JP2010097438A (ja) * 2008-10-16 2010-04-30 Keyence Corp 画像処理を用いた輪郭情報抽出方法、画像処理におけるパターンモデルの作成方法、画像処理におけるパターンモデルの位置決め方法、画像処理装置、画像処理プログラム及びコンピュータで読み取り可能な記録媒体
CN101673345B (zh) * 2009-07-01 2012-05-09 北京交通大学 基于形状先验的提取目标闭合轮廓的方法
JP5152231B2 (ja) * 2010-03-12 2013-02-27 オムロン株式会社 画像処理方法および画像処理装置
JP5612916B2 (ja) * 2010-06-18 2014-10-22 キヤノン株式会社 位置姿勢計測装置、その処理方法、プログラム、ロボットシステム
CN102020036A (zh) * 2010-11-02 2011-04-20 昆明理工大学 一种条烟外包装透明纸缺陷的视觉检测方法

Also Published As

Publication number Publication date
EP2793172A1 (en) 2014-10-22
EP2793172B1 (en) 2018-09-05
CN104103069B (zh) 2018-01-16
JP2014203311A (ja) 2014-10-27
US20140301648A1 (en) 2014-10-09
US9286669B2 (en) 2016-03-15
CN104103069A (zh) 2014-10-15

Similar Documents

Publication Publication Date Title
JP6197340B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP5699788B2 (ja) スクリーン領域検知方法及びシステム
JP5152231B2 (ja) 画像処理方法および画像処理装置
JP7049983B2 (ja) 物体認識装置および物体認識方法
US11158039B2 (en) Using 3D vision for automated industrial inspection
JP5791475B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
CN103852034B (zh) 一种电梯导轨垂直度检测方法
JP2010112802A (ja) 木材の外観検査装置、木材の外観検査方法
JP6177541B2 (ja) 文字認識装置、文字認識方法及びプログラム
WO2014103617A1 (ja) 位置合せ装置、欠陥検査装置、位置合せ方法、及び制御プログラム
CN110009615A (zh) 图像角点的检测方法及检测装置
WO2020209046A1 (ja) 物体検出装置
JP2005172559A (ja) パネルの線欠陥検出方法及び装置
JP2006098217A (ja) 画像検査装置、画像検査方法及び画像検査プログラム
JP2022009474A (ja) ビジョンシステムでラインを検出するためのシステム及び方法
JP6772059B2 (ja) 電子制御装置、電子制御システムおよび電子制御方法
JP2020071739A (ja) 画像処理装置
JP7380332B2 (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
JP2000321038A (ja) パターン欠陥検出方法
JP2710685B2 (ja) 外観検査による欠陥検出方法
CN112730427B (zh) 一种基于机器视觉的产品表面缺陷检测方法及系统
US10852244B2 (en) Image processing apparatus, image processing method, and recording medium
JP3041056B2 (ja) 半導体ペレットの検出方法
JPH11351835A (ja) 工具の撮像画像処理による刃先部輪郭線抽出方法
KR20240099635A (ko) 위치보정부가 구비된 물류로봇

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170412

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170807

R150 Certificate of patent or registration of utility model

Ref document number: 6197340

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150