JP5949002B2 - 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム - Google Patents

画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム Download PDF

Info

Publication number
JP5949002B2
JP5949002B2 JP2012058821A JP2012058821A JP5949002B2 JP 5949002 B2 JP5949002 B2 JP 5949002B2 JP 2012058821 A JP2012058821 A JP 2012058821A JP 2012058821 A JP2012058821 A JP 2012058821A JP 5949002 B2 JP5949002 B2 JP 5949002B2
Authority
JP
Japan
Prior art keywords
data
image
matching
calculation
angle
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
JP2012058821A
Other languages
English (en)
Other versions
JP2013191181A (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 JP2012058821A priority Critical patent/JP5949002B2/ja
Priority to PCT/JP2012/080704 priority patent/WO2013136603A1/ja
Publication of JP2013191181A publication Critical patent/JP2013191181A/ja
Application granted granted Critical
Publication of JP5949002B2 publication Critical patent/JP5949002B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • 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/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • G06V10/7515Shifting the patterns to accommodate for positional errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Description

本発明は、文字や図形などのパターン画像を含む濃淡画像をあらかじめ準備されたモデル画像と照合する処理(以下、これを「画像マッチング」という。)に関する。特に、本発明は、画像における濃度勾配方向の分布パターンを比較する手法による画像マッチング方法、およびこの方法が適用された画像マッチング装置およびプログラムに関する。
上記のマッチング処理の前提技術を示すものとして、特許文献1をあげる。
この特許文献1には、画素単位での濃度勾配方向の分布のパターンを、x軸の正方向から反時計回りに見た角度により表すと定義して、照合対象の画像の各画素の座標にその画素における濃度勾配方向を表す角度データを対応づけた疑似画像(以下、「照合用データ」という。)を生成し、同様の方法によりモデル画像から生成された疑似画像(以下、「モデルデータ」という。)と照合用データとを比較することが記載されている。
また、特許文献1には、照合データとモデルデータとの間で、対応関係にある画素の組み合わせ毎に濃度勾配方向の角度差の正弦の絶対値を求め、この絶対値を画素単位での濃度勾配方向の不一致度として、組み合わせ毎の不一致度を累計したものを、照合用の画像のモデル画像に対する不一致度とすることが記載されている。
上記の画素単位での不一致度は、対応関係にある画素間の角度差θが0°および180°のときに最小値となり、θが90°および270°のときに最大値となる。また、θが最小値に対応する角度から最大値に対応する角度に向かうにつれて徐々に不一致度が増加する。したがって、パターン画像と背景との明暗の関係がモデル画像と同様の画像を照合する場合には、モデル画像に対する類似度が高い画像ほど、画素単位での不一致度が0°に近い画素の組み合わせが増え、それらによる不一致度の累計値が小さくなる。一方、パターン画像と背景との明暗の関係がモデル画像とは反対になる画像を照合する場合には、モデル画像に対する類似度が高い画像ほど、画素単位での不一致度が180°に近くなる画素の組み合わせが増え、それらによる不一致度の累計値が小さくなる。
特許第4023096号公報 (請求項1,3,段落0039〜0070等を参照。)
特許文献1に記載のとおり、濃度勾配方向を表す角度データは、特定の方向(たとえばx軸の正方向)を基準方向として、その基準方向に対する一定の方向まわりの回転角度として表される。よって、角度データが取り得る数値の範囲は0°以上360°未満となり、組み合わせられた画素間の角度データの差θも同様に、0°≦θ<360°の範囲でばらつくことになる。
しかし、θが180°以上になる場合には、そのθは、濃度勾配方向を示すベクトルがなす狭い方の角度ではなく、その外側を大回りした角度を示すことになる。
たとえば、一方の濃度勾配方向を示す角度が10°で他方の濃度勾配方向を示す角度が350°の場合には、10°の方向から時計回り方向に350°の方向を見た角度である20°を導出すべきであるが、演算で算出される角度差は340°になってしまう。
特許文献1に記載された発明では、角度差の正弦の絶対値を算出する方法によりこの問題を解決しているが、モデル画像と照合対象の画像との明暗が反転することを考慮する必要がない場合には、角度差の絶対値を画素単位での不一致度として、その不一致度の累計演算を実施してもよい。しかし、この方法をとる場合には、算出された角度差θが180度を超えるときには、その角度差θを(360°−θ)に置き換えてから加算する必要があるため、演算を十分に高速化するのが困難である。
本発明は上記の問題点に着目し、簡単な方法によって、画素単位での不一致度を表すパラメータを効率良く求めることができるようにし、これによって演算時間を大幅に短縮して、マッチング処理を高速化することを、課題とする。
本発明は、濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を照合用データとして作成する処理と、モデル画像における濃度勾配方向の分布パターンを表す疑似画像をモデルデータとして照合用データに対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を累計する第2演算とを実行することにより、照合用データとモデルデータとの不一致度を求める画像マッチング方法に適用される。
本発明では、照合用データを作成する処理において、0°以上360°未満の範囲にある角度を当該角度を256/360倍した値を整数に丸めた結果に相当する整数に置き換えるという定義に従って、濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記濃度勾配方向を表す角度データとして導出する。
また、第1演算では、照合用データと同じ定義に基づき作成されたモデルデータと照合用データとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データの差の値を2の補数表現による符号付き8ビット整数とみなして、当該差の絶対値を算出し、第2演算では、第1演算で算出された各絶対値を符号なし8ビット整数とみなして累計する演算を実行する。そして、照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、照合用データとモデルデータとの不一致度として特定する。
上記方法によれば、濃度勾配方向を表す角度のうち、0°以上180°未満の角度は0〜127の整数に置き換えられ、180°以上360°未満の角度は128〜255の整数に置き換えられる。これらは、符号なし8ビット整数として表されるが、2の補数表現による符号付き8ビット整数であるものと仮定すると、0〜127の範囲にある数値は変化しないが、128〜255の範囲の数値は−128〜−1の範囲の数値となる。
すなわち、元の濃度勾配を表す角度をθとすると、0°≦θ<180°の範囲と、180°≦θ<360°の範囲とは、0°の方向を挟んで角度を計る向きが逆になる。さらに言い換えれば、0°≦θ<180°を示す0〜127の整数は、当初の定義どおりで変化しないが、180°≦θ<360°を示す128〜255の整数は、その値から256(360°に相当)を差し引いた負の値に置き換えられる。
本発明では、この仕組みを利用して、第1演算において、符号なし8ビット整数による角度データの差の値を2の補数表現による符号付き8ビット整数とみなして、当該差の絶対値を算出するので、差分演算の結果が128以上となる場合でも、その差は−1から−128までの負の値とみなされる。よって、角度データの差が負の値になる場合でも、0°以上180°未満に相当する0から127までの整数を得ることができる。
0から127までの整数は、符号付きとしても符号なしとしても同値であるから、第2演算において、第1演算で算出された各絶対値を符号なし8ビット整数とみなして累計しても、演算に矛盾が生じることはない。よって、十分なビット数のレジスタを確保して、第2演算で各絶対値を符号なし8ビット整数として取り扱って累計演算を行えば、第2演算が終了したときに、照合用データとモデルデータとの不一致度を正しく特定することができる。
この方法の第1演算によれば、対応づけられた2つの画素における角度データの値の組み合わせに関わらず、常に同じ手順による演算を実行することができるので、シングル命令マルチデータ(Single Instruction Multiple Data;略してSIMDという。)方式を適用することができる。
SIMD方式の演算(以下、「SIMD演算」という。)とは、CPUに単一の命令を与えることにより、複数のデータ群に対してその命令による演算を並列で実行するもので、演算の時間を大幅に短縮することができる。
以下に、SIMD演算が適用される2つの実施形態を示す。いずれの実施形態でも、モデルデータとして、モデル画像における各画素の濃度勾配方向を前出の定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を作成する。
第1の実施形態では、照合用データを作成する処理において、モデル画像よりサイズが大きい濃淡画像を対象として、この画像内の各画素の濃度勾配方向を前出の定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合用データとして作成する。また、累計値を格納するための記憶領域として8ビットより大きい容量の記憶領域をM個(M≧2)設定すると共に、照合用データの画素配列にモデルデータの画素配列を合わせる対応づけステップを、モデルデータへの対応位置を一方の座標軸に沿ってM画素分の間隔をあけて動かしながら繰り返す。そして、毎回の対応づけステップにおいて、モデルデータ中の各画素に順に着目して、照合用データ中の着目画素に対応する位置にある画素からモデルデータへの対応位置の移動方向に沿って並ぶM個の画素を着目画素に個別に組み合わせて、組み合わせ毎に角度データを表す整数の差の絶対値を求める第1演算と、第1演算により得たM個の差の絶対値を前記M個の記憶領域に1つずつ対応づけて、各記憶領域内の累計値をそれぞれに対応づけられた差の絶対値の加算により更新する第2演算とを、それぞれSIMD演算として実行する。
上記の実施形態は、モデル画像よりサイズの大きい濃淡画像の中からモデル画像に対する類似度が最も大きい領域を探すサーチ処理に適用することができる。この実施形態によれば、モデルデータ中の各画素にそれぞれ照合用データ側のM個の画素を一度に対応づけて、第1演算および第2演算を一挙に実施することができるので、1回の対応づけステップでM回分の対応づけをしたのと同様の結果を得ることができる。よって、サーチに要する時間を大幅に削減することが可能になる。
さらに、上記の実施形態の下位概念となる一実施形態では、毎回の対応づけステップにおいて、モデルデータ中の全ての画素に対する第1演算および第2演算が終了したときにM個の記憶領域に格納されている累計値の中の最小値をその対応づけステップにおける不一致度として特定すると共に、照合用データ内のモデルデータに位置合わせされている領域の位置と不一致度として特定された値が格納されていた記憶領域の前記M個の記憶領域内の順位とに基づき、照合用データ内における当該不一致度への対応位置を特定する。さらに、毎回の対応づけステップにおいて特定された不一致度の中の最小値を特定して、その最小の不一致度への対応位置をモデルデータに対応する位置であると判定する。
上記の実施形態によれば、対応づけステップでの一連の演算が終了する毎に、そのステップで処理された範囲において最小の不一致度が得られた位置を特定してゆき、最終的に最も低い不一致度が得られた位置をモデルデータに対応する位置(すなわちマッチング位置)として特定する。このようにすれば、モデルデータに対するマッチング位置を見つける処理を効率良く実施することができる
SIMD演算を使用する第2の実施形態では、照合用データを作成する処理において、モデル画像と同じサイズの濃淡画像を対象として、この画像の各画素の濃度勾配方向を前出の定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合データとして作成する。
また、累計値を格納するために8ビットより大きい容量の記憶領域を1つ設定して、照合用データの画素配列にモデルデータの画素配列を合わせて両者間で対応する画素の組み合わせをM組(M≧2)設定する対応づけステップを、対応関係にある全ての画素が組み合わせられるまで繰り返す。毎回の対応づけステップにおいては、M組の組み合わせ毎に、組み合わせられた画素間での角度データを表す整数の差の絶対値を算出する第1演算を、SIMD演算として実行した後に、記憶領域内の累計値を、第1演算により算出されたM個の差の絶対値の総和を当該累計値に加算した値に更新する演算を、第2演算として実行する。
上記第2の実施形態は、たとえば、モデル画像と同じサイズの濃淡画像(モデル画像より大きい画像内の一部領域の画像でもよい。)を対象にして、モデル画像との類似の度合いを判定する場合に実施することができる。この実施形態では、モデルデータと照合用データとの間で対応関係にあるM組の画素の組み合わせに対する第1演算を一括で実施することができるので、第1演算に要する時間を大幅に短縮することが可能になる。また、第1演算の都度、その演算により得られたM個の絶対値の総和を累計する処理を行うので、画像全体の不一致度も効率良く求めることが可能になる。
第2の実施形態は、濃淡画像中のパターンの良否を判定する検査に利用することができる。この場合の一実施形態では、全ての画素の組み合わせに対する第1演算およびその後の第2演算が終了したことに応じて、その時点における記憶領域内の累計値をあらかじめ定めたしきい値と比較し、その比較結果に基づき濃淡画像の良否を判定する。
第1および第2の実施形態に共通する一実施形態では、モデルデータおよび照合用データを作成する処理において、濃度勾配の強度が所定のしきい値を下回る画素に対しては、濃度勾配方向を示す角度データを0または+127に設定する。
本発明のように濃度勾配方向のパターンを比較する場合には、濃度勾配の強度が強いエッジ画素のみを差分演算の対象にするのが望ましいが、演算の対象を判別するための処理を入れると、SIMD演算を効率良く実行するのが困難になる。一方、全ての画素に濃度勾配方向を示す角度データを設定して演算の対象とすると、僅かな濃度勾配でも累計値に影響を及ぼすので、算出される不一致度が不正確になる。
この問題に関して、上記の実施形態では、濃度勾配の強度が弱い画素に対する角度データに一律に0または+127をあてはめることにより、場合分けすることなく、全ての画素を対象にしたSIMD演算を実行しても、演算の精度を確保できるようにしている。
0は角度データを計る基準の方向に対応し、+127は、2の補数表現による符号付き8ビット整数とみなされた角度データ群の最大値となる。したがって、濃度勾配強度が弱い画素に角度データとして0または+127を一律にあてはめると、エッジ画素でない画素同士が組み合わせられた場合の第1演算では、双方の角度データが一致して差の絶対値が0となるので、累計値には全く影響を及ぼさない。また、エッジ画素でない画素とエッジ画素とが組み合わせられた場合の第1演算では、前者の0または+127に対して後者は異なる数値になる可能性が高いので、差の絶対値は0より大きくなり、不一致度が増える。よって、照合用の画像とモデル画像との間におけるエッジ画素の不整合の度合いが増えるほど、不一致度は高くなるから、不一致度の信頼度を高めることができる。
したがって、たとえば、照合対象の画像中のパターン画像の一部がモデル画像に一致するが、他の部分はモデル画像に一致しない場合には、そのパターン画像はモデル画像には対応していないと判別することができる。
上記の方法が適用される画像マッチング装置は、濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を作成する疑似画像作成手段と、照合用の濃淡画像から作成された疑似画像を照合用データとし、モデル画像から作成された疑似画像をモデルデータとして両疑似画像を対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を累計する第2演算とを実行することにより、照合用データとモデルデータとの不一致度を求めるマッチング処理手段と、マッチング処理手段による処理結果を出力する出力手段とを具備する。
疑似画像作成手段は、0°以上360°未満の範囲にある角度を当該角度を255/360倍した値を整数に丸めた結果に相当する整数に置き換えるという定義に従って、濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、濃度勾配方向を表す角度データとして導出する。
マッチング処理手段には、以下の第1演算手段、第2演算手段、不一致度特定手段が含まれる。
第1演算手段は、照合用データとモデルデータとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データの差の値を2の補数表現による符号付き8ビット整数とみなして、当該差の差の絶対値を算出する。
第2演算手段は、第1演算手段により算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行する。
不一致度特定手段は、照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、照合用データとモデルデータとの不一致度として特定する。
上記の画像マッチング装置によれば、照合用データとモデルデータとの間で対応づけられた画素間の角度データがどのような値の組み合わせになっても、各角度データの差の絶対値を求める演算と、差の絶対値を累計する演算とにより対応できるので、演算時間を大幅に短縮することができる。
さらに、第1演算手段を、M組(M≧2)の画素の組み合わせを対象にした第1演算をSIMD演算として実行する手段とすれば、演算時間を大きく短縮することができ、高速処理が要求される現場に対応することが容易になる。
さらに本発明は、上記の疑似画像作成手段およびマッチング処理手段として、コンピュータを機能させるプログラムを提供する。
本発明によれば、照合用データとモデルデータとの間の不一致度を求める演算に要する時間を大幅に短縮すると共に、算出される不一致度の精度を確保することができる。よって、モデル画像に対応する領域を検索する処理や検査などを短時間で実施することが要求される現場に適した画像マッチング処理を実現することができる。
画像マッチング装置の構成を示す機能ブロック図である。 符号なし8ビット整数によるエッジコードと、これを2の補数表現による符号付き8ビット整数とみなした場合の数値との関係を示すテーブルである。 2の補数表現とみなしたエッジコードと元の角度との関係を示す図である。 角度差の算出対象のエッジコードの組み合わせの例を、元の角度に関係づけて示す図である。 モデル画像の例を、マッチング処理に用いられるパラメータと共に示す図である。 照合用データに対するサーチ処理の原理を説明する図である。 サーチ処理の手順を示すフローチャートである。 図7のステップS2における詳細手順を示すフローチャートである。 図7のステップS7における詳細手順を示すフローチャートである。 検査対象の濃淡画像に対するマッチング処理の原理を示す図である。 検査の手順を示すフローチャートである。
図1は、本発明が適用される画像マッチング装置の構成を機能ブロック図により示す。
このパターン認識装置は、カメラにより生成された濃淡画像からあらかじめ登録されたモデルのパターンを検出する目的に使用されるもので、その実体は、専用のプログラムがインストールされたコンピュータである。
図1に示すように、この実施例のパターン認識装置は、画像入力部1、モード選択部2、入力画像処理部3、コード変換テーブル4、モデルメモリ5、サーチ制御部6、結果出力部7、SIMD演算実行部10などを具備する。また、図1には示していないが、このパターン認識装置には、処理対象の画像を生成するためのカメラ、画像や処理結果を表示するための表示部、キーボードやマウスなどを含む操作部などの周辺機器が接続されている。
上記の認識処理装置では、濃淡画像における画素単位での濃度勾配方向を角度データとして表して、この角度データ(以下、「エッジコード」という。)の分布のパターンをモデルデータと照合する方法により、モデルパターンに類似するパターンが含まれる領域をを検出する。画像入力部1は、その処理対象の濃淡画像を入力する。入力画像処理部3は、画像入力部1が入力した画像内の各画素のエッジコードを求めて、画素の座標とエッジコードとを組み合わせた疑似画像を作成する。コード変換テーブル4は、この処理に使用される参照用のテーブルである。
モード選択部2は、ユーザの選択操作に応じて、設定モードおよび計測モードのうち操作により選択されたモードを装置内の各部に設定する。具体的には、設定モードが選択された場合には、入力画像処理部3は、画像入力部1から入力された画像の一部をモデル画像として切り出して、そのモデル画像中の各画素のエッジコードによる疑似画像を作成し、これをモデルデータとしてモデルメモリ5に登録する。
なお、モデル画像の切り出し領域は、表示部に入力画像を表示して、ユーザによる領域の指定操作を受け付けることにより定められる。また、モデル画像もモデルデータと共にモデルメモリ5に登録される。
計測モードが選択された場合には、入力画像処理部3は、画像入力部1が入力した画像中の全画素を対象にエッジコードを求め、各画素の座標にそれぞれのエッジコードを対応づけた疑似画像を作成する。この疑似画像は、照合用データとしてサーチ制御部6に渡される。サーチ制御部6は、モデルメモリ5内のモデルデータを読み出すと共に、SIMD演算実行部10と協働して後述するサーチ処理を実行することによって、モデルデータへの類似度が最も高い領域の類似度および当該領域の基準点の座標(以下、「マッチング位置」という。)を特定する。結果出力部7は、特定された類似度やマッチング位置を含む処理結果を、表示部や外部機器などに出力する。
この実施例では、類似度として、モデルデータに対する不一致度を求める。
SIMD演算実行部10は、この不一致度の算出に用いられるもので、第1演算部11と第2演算部12とが含まれる。詳細は後記するが、第1演算部11では、照合用データとモデルデータとの間における画素単位の不一致度として、対応関係にある画素の組におけるエッジコードの差の絶対値を算出する。
この実施例では、この差の絶対値のことを「角度差」と呼ぶ。
第2演算部12は、第1演算部11により算出された角度差を累計する演算によって、照合対象の画像中のモデル画像に対応づけられた範囲の不一致度を求める。
以下、この実施例におけるエッジコードのデータ構成と、第1演算および第2演算の仕組みについて説明する。
この実施例でも、特許文献1に記載された発明と同様に、x軸における濃度勾配Exが示すベクトルと、y軸における濃度勾配Eyが示すベクトルとの合成ベクトルを濃度勾配方向とする。そして、この合成ベクトルをx軸の正方向を基準方向とした反時計回りの回転角度として表した値を、エッジコードとする。
上記の回転角度は、Ey/Exの逆正接(arctan(Ey/Ex))を用いて算出されるが、Ex,Eyが正の値をとるか、負の値をとるかによって演算式が変わる。この実施例では、Ey/Exの値とその値から導き出されるエッジコードとの組み合わせを登録したコード変換テーブル4を参照する方法によって、エッジコードの導出に要する処理時間を短縮するようにしている。
一般的なエッジコードは、0度以上360度未満の範囲に含まれる角度として算出されるが、この実施例では、上記の角度範囲を0から255までの整数に置き換えて、これらの整数を符号なし8ビット整数として、対応するEy/Exの値に組み合わせてコード変換テーブル4に格納する。
具体的に、通常の0°〜360°のスケールで表される角度をθとし、整数表現のエッジコードをECとすると、θを256/360倍した値の小数点以下を四捨五入した値がECとなる。
したがって、0°≦θ<180°の角度範囲は0≦EC<127となり、180°≦θ<360°の角度範囲は、128≦EC<255となる。
サーチ制御部6は、照合用データとモデルデータとの間で対応関係にある画素の組み合わせをM組設定する(M≧2;以下の具体例ではM=16)。第1演算部11では、このM組について、上記の方法により導出された整数表現のエッジコードECの角度差を算出する演算を一括で実行する。第2演算部12では、第1演算部11により算出されたM個の角度差を累計する演算を一括で実行する。
また、第1演算部11では、演算対象のエッジコードECを符号なし8ビット整数ではなく、2の補数表現による符号付き8ビット整数とみなして演算を実行する。一方、第2演算部12では、64ビットの記憶領域に累計値を格納すると共に、第1演算部11により算出された角度差を符号なし8ビット整数とみなして、累計演算を実行する。
図2は、エッジコードECを表す符号なし8ビット整数の10進表記および2進表記の組み合わせに、この整数を2の補数表現による符号なし8ビット整数とみなした場合に当該整数が表す値を対応づけたテーブルを示す。また、テーブルの欄外に、各組み合わせとECの元データであるθ(0°≦θ<360°)との関係を示す。
このテーブルに示すとおり、0°≦θ<180°の範囲の角度θに対応する0〜127の整数は、2の補数表現による整数とみなしても、同じ値となる。
これに対し、180°≦θ<360°の範囲の角度θに対応する128〜255の整数は、2の補数表現による整数であるとみなすと、−128から−1までの範囲の負の整数となる。
図3は、上記の2の補数表現による整数をθの角度範囲に対応づけて示したものである。この図3に示すように、0°から180°までの角度θは、エッジコードの導出時の規定どおり、0°の方向を基準とする反時計回りの回転角度として示されるが、180°以上の角度θは、反対に、0°の方向を基準とする時計回り方向の角度として示されることになる。この仕組みは、エッジコードだけでなく、エッジコードから算出される角度差にもあてはまる。
図4(1)〜(4)は、角度差の算出の対象となる2つのエッジコードの値の組み合わせを4通り設定して、これらを0°から360°までの角度範囲に対応させて示す。各図では、0°,90°,128°,270°を、それぞれ符号なし8ビット整数によるエッジコードによる数値0,64,128,192により示している。一方、算出対象の2つのエッジコードについては、一方をA、他方をBとして、2の補数表現に基づく方向まわりの角度として示す。
以下、A,Bの値に対応する符号なし8ビット整数をa,bとして説明する。
まず、A≧0,B<0(0≦a<128,128≦b≦255)の場合には、
|A−B|=|A|+|B|となる。
図4(1)(2)は、A≧0,B<0の事例を場合分けしたものである。図4(1)に示すように、0°の方向を挟んでAが示す方向とBが示す方向とがなす角度が180°より小さくなる場合には、|A|+|B|<128となるので、|A|+|B|の値がそのまま|A−B|にあてはめられる。
一方、図4(2)に示すように、0°の方向を挟んでAが示す方向とBが示す方向とがなす角度が180°以上になる場合には、2の補数表現による|A|+|B|の値は負の値となる。よって、|A|+|B|を示す負の値の絶対値が|A−B|にあてはめられる。すなわち、180°の方向を挟んでAが示す方向とBが示す方向とがなす角度(図4(2)中の角度C)が|A−B|にあてはめられることになる。
A,Bがともに0以上となる場合(図4(3))や、A,Bがともに負の値となる場合(図4(4))には、|A−B|=|A|−|B|となる。
よって、0≦|A−B|≦127となる。
このように、図4(1)〜(4)のいずれの事例においても、|A−B|の値は、0から127までの整数として表されるが、確認のため、以下に図4(1)(2)に対応する具体例を2つあげる。なお、各例で使用する数値は、いずれも図2のテーブルに示されている。
まず、図4(1)の例として、a=10(00001010),b=250(11111010)とすると、00001010−11111010=11110000となる。この演算結果を符号なしの整数とすると240になる。この場合には、もう一段階、256−240の演算を行い、その演算結果の絶対値を角度差とするので、角度差は16となる。
一方、上記の演算結果を2の補数表現による整数とみなすと、その値は−16となるから、その絶対値を求めることにより、16を導出することができる。
つぎに図4(2)の例として、a=100(01100100),b=156(10011100)とすると、01100100−10011100=11001000となる。この演算結果を符号なしの整数とすると200になるが、この場合には、もう一段階、256−200の演算を行うことにより、角度差56が導出される。
一方、上記の演算結果を2の補数表現による整数とみなすと、その値は−56となるから、その絶対値を求めることにより、56を導出することができる。
上記のとおり、0〜255の範囲で表されたエッジコードECにより差の絶対値を求めた場合に演算結果が128(180°に相当)を超えるケースでも、その差の値を2の補数表現による負の値とみなして、2の補数表現に基づき絶対値に転換すれば、どのような値の組み合わせによる演算でも、0から127までの数値(すなわち0°以上180°未満の角度範囲に対応する数値)の範囲内の角度差を得ることができる。第2演算では、この角度差を符号なし8ビット整数として累計するが、0から127までの数値であれば、符号なしでも符号付きでも同値であるので、演算結果に矛盾が生じることはない。しかも、8ビットで表すことができる数値が2倍になるので、累計値の増大にも対応しやすくなる。
演算対象の2つのエッジコードを符号付き8ビット整数とみなすことで、どのような値の組み合わせでも、180°以内の角度差に相当する数値を得ることができるので、演算式の場合分けが不要になる。これを利用して、第1演算部11では、M組の画素の組み合わせを対象にしたSIMD演算を実行する。第2演算部12でも、第1演算部11により算出された角度差の累計演算を一活で行うSIMD演算を実行する。
以下、このSIMD演算を用いたサーチ処理の手順を詳細に説明する。なお、以下では画素のことを便宜上、「点」という場合がある。
図5は、モデル画像を例示したものである。以下の説明では、このモデル画像の左上頂点を基準点として、その座標を(X,Y)とする。また、モデル画像の横方向(x軸に対応)の幅(画素数)をdXとし、縦方向(y軸に対応)の幅(画素数)をdYとする。また、モデル画像において、基準点(X,Y)からx方向にi画素、y方向にj画素離れている画素の座標を、(X+i,Y+j)とする。
これらのパラメータは、このモデル画像から作成されるモデルデータ(エッジコードによる疑似画像)にも、適用される。
図6(1)は、照合用データに相当する疑似画像を示すとともに、その疑似画像中に、モデルデータとの1回分のマッチングの対象となる領域を、g1,g2,g3・・・として示す。図6(2)は、これらの領域g1,g2,g3・・・の中の1つ(領域gn)を拡大したものである。
この実施例では、上記の照合用データに対し、図5のモデル画像から作成されたモデルデータを、x軸に対しては16画素おきに、y軸に対しては1画素ずつ、位置をずらして対応づけて、マッチング処理を実行する。毎時のマッチング処理では、図6(2)に示すように、モデルデータよりもx軸方向の幅が15画素分大きい領域が設定され、その左上頂点が基準点(x,y)に設定される。図6(2)中に一点鎖線で示すように、この領域は、モデルデータと同じサイズの領域をx軸に沿って1画素ずつずらして15回走査する場合の走査範囲に相当する。
マッチング処理においては、i,jにより設定されるモデルパターン中の着目画素(X+i,Y+j)に対応する座標の画素Pを先頭にしてx軸に沿って並ぶ16個の画素P,P,・・・P15をそれぞれ着目画素に組み合わせ、第1演算部11のSIMD演算によって、組み合わせ毎の角度差を算出する。さらに、第2演算部12のSIMD演算では、照合用データ側の画素P,P,・・・P15の並び順序に対応する16個の配列ur(0),ur(2),・・・ur(15)を用いて、第1演算部11により算出される16個の角度差をそれぞれ対応する配列内の値に加算する。
上記2段階のSIMD演算により、通常はモデルデータをx軸方向に1画素ずつずらしながら16回分のマッチング処理を実行する必要がある範囲のマッチング処理を、一括して実施することができる。これにより、マッチング処理に要する時間を大幅に短縮することができる。
以後は、照合用データにおいて1回分のマッチング処理により処理される領域gn(n=1,2,3・・・)内の画素群を「グループ」と呼ぶ。また、グループgn内でモデルデータの着目画素(X+i,Y+j)に対応する画素群のうちの左端の点Pの座標を(xi,yj)とおき、以下の点P,P,・・・P15の座標を、それぞれ(xi+1,yj)(xi+2,yj)・・・(xi+15,yj)とする。
図7は、照合用データに対するサーチ処理における一連の流れを示し、図8は図7中のステップS2における詳細手順を示し、図9は図7中のステップS7における詳細手順を示す。以下、図7のメイン処理のフローチャートの流れに沿って説明しながら、適宜、図8および図9を参照する。
この実施例のサーチ処理は、計測モードの選択に応じて開始される。最初に、画像入力部1が照合対象の画像を入力する(ステップS1)と、入力画像処理部3によって、入力画像内の各画素のエッジコードが導出され、照合用データが作成される(ステップS2)。
図8は、照合用データの作成処理のうち、画素毎に実行される手順を取り出したものである。ここで、この図8を参照する。入力画像処理部3では、処理対象の画素につき、x,yの各軸の濃度勾配Ex,Eyを求める(ステップS21)。さらにEx,Eyの二乗和を求めて、これを濃度勾配強度とし(ステップS22)、その値を所定のしきい値と比較する(ステップS23)。
濃度勾配強度がしきい値以上であれば(ステップS23が「YES」)、先に述べたコード変換テーブル4を参照して、Ey/Exに対応するエッジコードを読み出し(ステップS24)、これを処理対象の画素の座標に格納する(ステップS26)。一方、濃度勾配強度がしきい値を下回る場合(ステップS23が「NO」)には、エッジコードに127を設定し(ステップS25)、これを処理対象の画素の座標に格納する(ステップS26)。
上記の処理により、画像中のパターンのエッジを構成する画素(エッジ画素)には、その濃度勾配に応じたエッジコードが設定されるが、その他の濃度勾配強度が弱い画素には一律に127の値が設定される。127という値は、エッジコードが符号付き8ビット整数とみなされた場合の最大値に相当するが、エッジ画素でない画素どおしが組み合わせられた場合の角度差は0となるので、累計演算には影響を及ぼさない。逆に、わずかな濃度むらによる濃度勾配が角度差の累計値に影響を与えることがなくなり、累計値の精度が向上する。しかも、エッジ画素とエッジ画素以外の画素との組み合わせによる角度差を強調する効果が生じるので、不一致度としての確度を高めることができる。
なお、濃度勾配強度が低い画素には、127に限らず、最小値の0を設定してもよい。
図7に参照を戻す。
ステップS3からは、サーチ制御部6が主体となって実行する処理になる。ステップS3では、処理対象のグループを表すカウンタnを初期値の0にすると共に、基準点(左上頂点)のy座標yに照合用データの左上頂点のy座標y1(図6(1)に示す。)をセットし、ステップS4〜11のループに入る。
はじめてステップS4〜S11のループに入ったときのケースで説明すると、ステップS4では、基準点のx座標xに、照合用データの左上頂点のx座標x1(図6(1)に示す。)をセットする。この処理と先のステップS3の処理とによって、照合用データの左上頂点(x1,y1)が基準点に初期設定される。
ステップS5では、ステップS3で0に設定したnに1を加算する処理により、n=1とする。
ステップS6では、モデルパターンの基準点(X,Y)に、照合用データの基準点(x,y)を対応づける。この段階では、ステップS3,S4において、(x1,y1)が照合用データの基準点(x,y)に設定されているので、照合用データの左上頂点がモデルパターンの基準点(X,Y)に対応づけられることになる。
このようにnのインクリメントと基準点の対応づけとを行うことにより、図6(1)に示したグループg1が照合対象のグループに設定される。ステップS7では、このグループg1に対するマッチング処理により、当該グループg1内の最小の不一致度UR1と、その不一致度への対応点Q1(UR1が得られた位置を示す。)の座標を特定する。
ステップS7が終了すると、ステップS9においてxに16を加算した後に、ステップS5に戻ってnの値を1つ増やし、さらにステップS6で、更新されたxに基づく点(x,y)にモデルパターンの基準点(X,Y)を対応づける。これにより、モデルパターンに対応づけられる領域がx軸に沿って16画素分移動して、新しいグループg2が設定された状態となる。このグループg2に対してもステップS7が実行される。
以下も同様の流れで処理を進行させることによって、毎回、x方向の幅がdX+15で、y方向の幅がdYの領域内の画素群によるグループが設定され、そのグループ内における最小の不一致度URnおよびその対応点Qnが特定される。
処理中のグループの右端のx座標(x+dx+15)がx2以上となると(ステップS8が「YES」)、ステップS11においてyに1を加算した後に、ステップS4に戻り、xを再びx1に設定する。このステップS11およびステップS4によって、次のグループの基準点(x,y)は、1画素下にずれた状態となってグループの左端に戻る。
その後、処理対象のグループの右端のx座標(x+dx+15)がx2以上となり、下端のy座標(y+dY)がy2以上となるまで、xまたはyを更新し(ステップS9,S11)、nの値の更新(ステップS5)およびモデルパターンの基準点(X,Y)への対応点の更新(ステップS6)を行うことにより、処理対象のグループを変更する。そして、変更後のグループに対しステップS7を実行する。
ここで、図9を参照して、各グループgnに対するステップS7のマッチング処理を詳細に説明する。
このマッチング処理は、処理対象のグループgn内に、モデルデータに対応する大きさの照合領域を16個設定して、これらの照合領域毎に、モデルデータ側の対応画素とのエッジコードの角度差を求める第1演算と、角度差の累計値を求める第2演算とを実行するものである。最初のステップS101では、照合領域毎の累計値を格納する配列ur(k)(k=0〜15)をゼロリセットする。
つぎに、i,jに初期値の0をセットし(ステップS102)、ステップS103〜S109のループに入る。
図5を用いて説明したように、モデルデータ内の着目画素は、基準点(X,Y)とi,jの値とを用いて、(X+i,Y+j)と表される。ステップS103では、照合用データ側の基準点の座標x,yに同様にi,jを加えることにより、照合対象の16点の先頭の点Pを示す座標xi,yjを導出する。
ステップS104では、k=0〜15として、照合対象の各点の座標を(xi+k,yj)と示す。このステップS104は、第1演算部11による処理に相当するもので、(xi+k,yj)で特定される16点P〜P15をそれぞれモデルデータ側の座標(X+i,Y+j)の点と組み合わせて、組み合わせ毎のエッジコードの角度差(差の絶対値)dT(k)を一括で算出する。先に説明したように、各エッジコードは符号付き8ビット整数とみなされて処理されるので、エッジコードの値の組み合わせにかかわらず、演算を統一することができる。
つぎのステップS105は、第2演算部12による処理に相当するもので、同様にk=0〜15として、ステップS104で算出された16個の角度差dT(k)を、それぞれkの値が一致する累計値ur(k)に加算する演算を一括で実行する。この演算では、各角度差dT(k)は符号なし8ビット整数として取り扱われる。また累計値ur(k)には、累計値の増大に対応できるように、64ビットのデータ長が設定される。
以下、同様にして、i=dXかつj=dYとなるまでi,jの値を1ずつ増やすことにより(ステップS106,S107,S108,S109)、モデルデータ中の着目画素および照合対象の画素P〜P15を変更しつつ、ステップS104およびS105を繰り返す。
なお、ステップS104では、毎回、演算対象のエッジコードを格納するレジスタやdT(k)をリセットしてから演算を実行する。x,yの各軸方向における照合用データの画素数によっては、右端側や下端側のグループでは図6(2)に示した大きさを確保できず、モデルデータが照合用データからはみ出る可能性があるが、上記のリセット処理によれば、モデルデータ側のエッジコードに組み合わせられるエッジコードが存在しない場合には、そのエッジコードを0とみなした演算を実行することができる。これによりSIMD演算で演算エラーが生じるのを防ぐと共に、モデルデータに対応する可能性のない照合領域における累計値ur(k)を大きな値にすることができる。
モデルデータ内の全ての画素に対する処理が終了すると、ステップS106およびS108が「YES」となり、ステップS110以下の処理に進む。
ステップS110では、kをに設定すると共に、グループg1につき求めた累計値ur()を不一致度URnに初期設定する。また、ステップS111において、グループg1の基準点の座標である(x,y)を、不一致度Snへの対応点Qnとして初期設定する。
この後は、kを1つ増やし、更新後のkにより特定される累計値ur(k)をURnと比較し(ステップS112,S113)、ur(k)<URnであれば(ステップS113が「YES」)、そのur(k)をURnとする(ステップS114)。また、URnへの対応点Qnの座標を(x+k,y)に変更する(ステップS115)。
一方、ur(k)≧URnであれば、ステップS114,S115はスキップされる。
最終的にk=15となると(ステップS116が「YES」)、これをもってグループgnに対する処理は終了する。このとき、URnには、16個の累計値ur(k)(k=0〜15)の中の最小値が格納され、Qnには、その最小値が得られた領域の基準点の座標が格納される。
ここで、再び図7に参照を戻し、モデルデータが対応づけられたグループ毎のマッチング処理が全て終了した後の処理について説明する。
最後のグループに対する処理が終了すると、ステップS8,S10が「YES」となってステップS12に進み、この段階でのnの値をNとした上で、nを1に戻す(Nの値によりグループの設定数が保存されたことになる。)。
つぎに、ステップS13では、グループg1の不一致度UR1を照合用データ全体の不一致度URとして初期設定し、その不一致度URへの対応点Qに不一致度UR1への対応点Q1の座標を初期設定する。
この後は、図9のステップS112〜S116と同様の手順により、nの値を1ずつ増やすことにより各グループgnに順に着目して、そのグループgnの不一致度URnをURと比較し(ステップS14,S15)、URnがURより小さい場合には(ステップS15が「YES」)、そのURnをURとし、対応点QnをQとする(ステップS16,17)。この処理をn=Nとなるまで実行することにより(ステップS18が「YES」)、グループg1〜g毎の最小不一致度UR1〜URの中で最も小さな値が、照合用データ内の不一致度URとして特定される。さらに、その不一致度URが得られたときの照合領域においてモデルデータの基準点(X,Y)に対応づけられた点Qの座標が、マッチング位置として確定する。
最後のステップS19では、確定した点Qの座標をマッチング位置として出力する。ただし、出力はマッチング位置のみに限らず、不一致度UR、またはこれを一致度に変換した値を一緒に出力してもよい。また出力は表示や外部への出力に限らず、たとえば、パターン認識結果を受けて別の処理を行うアプリケーション(たとえばOCR用のアプリケーション)に、マッチング位置の座標やdX,dYの値など、パターンが含まれる範囲を特定するためのデータを提供してもよい。
以上に説明したサーチ処理によれば、モデルデータに対し、一度に16個の照合領域を設定して、これらの照合領域に対するマッチング処理を一括して実行することができるので、処理に要する時間を格段に短縮することができる。
また、0°から360°の角度範囲をそのまま反映させた8ビットの整数をエッジコードとして疑似画像を作成するには、濃度勾配Ex,Eyから算出される角度θを1/2倍した値をエッジコードとする必要があるが、そうすると分解能が半分になるので、角度差の精度も粗くなってしまう。これに対し、上記の実施例では、角度θを256/360倍した値をエッジコードとするので、角度差の精度を大幅に高めることができる。
加えて、上記実施例では、エッジ画素以外の画素のエッジコードを127に置き換える処理によって、僅かな濃度勾配が不一致度に影響を及ぼさないようにすると共に、モデルデータとエッジのパターンが整合しない箇所における角度差が大きくなるようにしているので、不一致度の精度を高めることができる。つまり、照合用データが示すパターンの一部がモデルのパターンに一致する場合でも、他の箇所がモデルのパターンとは異なる場合には、不一致度を高めることができる。よって、照合対象の画像のモデル画像に対する類似の度合を正しく判別することが可能になる。
また、この特徴を生かせば、照合対象のパターンの適否を検査する処理においても、精度の良い検査をすることが可能になる。この場合に、検査対象の画像がモデル画像と同じサイズであれば、上記の実施例とは異なる方式によるSIMD演算によって、処理速度を短縮することができる。以下、その具体例を説明する。
図10は、検査の対象となる画像の例を示す。この画像は、入力された画像からあらかじめ定めた計測領域内の画像を切り出して設定されたものであるため、モデル画像と同様に、x軸方向の画素数がdXで,y軸方向の画素数がdYとなっている。
図11は、図10に示した画像を用いた検査の手順を示す。なお、この例における照合対象のモデル画像は先の図5と同じものである。また、この実施例では、照合用画像の左上頂点を基準点として、その座標を(x,y)とする。
以下、適宜、図5,図10を参照しながら、図11の処理手順を説明する。
図11のフローチャートでは省略しているが、この実施例でも、図7のステップS1,S2と同様の処理を実行することにより、照合用の画像におけるエッジコードの分布を示す照合データを作成する。
また、この実施例でも、先の実施例と同様に、モデルデータ中の着目点を変数i,jによって設定する。ステップS201では、これらi,jに初期値0として設定する。次のステップS202では、累計値urに、初期値として0を設定する。
ステップS203では、モデルパターンに、その基準点の座標(X,Y)と上記i,jとを用いて、着目画素の座標(Xi,Y)を設定する。続いて、照合用データについても、同様に、基準点(x,y)とi,jとを用いて、照合対象の座標(xi,y)を設定する。図10における点Pは、図5の座標(X+i,Y)に対応する位置にある画素である。
ステップS205では、k=0〜15として、モデルデータ中の(Xi+k,Yj)により特定される16点と、照合用データ中の(xi+k,yj)により特定される16点とを抽出し、これらをkの値が一致するもの毎に組み合わせて、組み合わせ毎にエッジコードの角度差dT(k)を算出する。具体的に図10を用いて説明すると、座標(xi,yj)の位置にある点Pはモデルデータの座標(Xi,Y)の位置にある点と組み合わせられ、座標(xi+1,yj)の位置にある点Pはモデルデータの座標(Xi+1,Yj)の位置にある点と組み合わせられる、という具合に、それぞれの基準点に対する相対位置が一致する画素同士が組み合わせられる。そして、組み合わせ毎にエッジコードの角度差が算出されるのである。
このステップS205の演算も、各エッジコードを符号付き8ビット整数とみなしたSIMD演算として、一括で実行される。
上記の演算が終了すると、ステップS206において、16組の角度差dT(k)(k=0〜15)をurに加算する演算を実行する。フローチャートでは、簡略化のためにΣdT(k)と記載したが、実際には、
ur=ur+dT(0)+dT(1)+・・・+dT(15)
という演算式を実行すれば良いので、効率良く累計値urを更新することができる。
この後は、iに16を加算し、ステップS203に戻る。このステップS203および続くステップS204では、それぞれ更新されたiの値に基づき、着目画素(Xi,Yj)(xi,yj)をx軸方向に沿って16画素ずらす。これにより、前回の照合対象の画素群の隣の16個の画素が組み合わせられて、これらを対象にステップS205およびS206が実施される。
照合対象の点が画像の右端まで達すると、ステップS207が「YES」となる。この場合には、ステップS210において、jを1加算して、ステップS203に戻る。この処理により、照合対象位置は、1画素下にずれた状態で左端側に戻る。
以下、同様にして、照合用データとモデルデータとの間で、毎回、16組の画素の組が対応づけされて、各組におけるエッジコードの角度差が一括で算出され、それらの角度差の総和により累計値urが更新される。この実施例でも、ステップS205の演算前に、各レジスタをゼロリセットするので、照合位置が右端側に移動した場合に16組の組み合わせが確保できない場合でも、累計演算に影響を及ぼすことなく、演算を進めることが可能になる。
全ての画素の組み合わせに対する処理が終了すると、ステップS207およびS209が「YES」となる。この時点での累計値urは、モデル画像に対する照合対象の画像の不一致度を示すものとなる。ステップS211ではこの不一致度urをあらかじめ定めた基準値ur0と比較し、ur≦ur0であれば、ステップS212に進んで、良判定を出力する。これに対し、ur>ur0となった場合には、ステップS213に進んで、不良判定を出力する。
上記の検査でも、16組のエッジコードの角度差を1回の演算で求めるので、不一致度urを導出するまでの演算時間を大幅に短縮することができ、検査の高速化を実現することができる。また、先に述べたように、角度差の精度が高められ、また、モデルのパターンとは異なるパターンが含まれる画像に対する不一致度が高められるような仕組みが導入されているので、検査の精度を向上することが可能になる。
3 入力画像処理部
4 コード変換テーブル
5 モデルメモリ
6 サーチ制御部
10 SIMD演算実行部
11 第1演算部
12 第2演算部

Claims (9)

  1. 濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を照合用データとして作成する処理と、モデル画像における濃度勾配方向の分布パターンを表す疑似画像をモデルデータとして前記照合用データに対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を累計する第2演算とを実行することにより、前記照合用データとモデルデータとの不一致度を求める方法において、
    前記照合用データを作成する処理では、0°以上360°未満の範囲にある角度を当該角度を256/360倍した値を整数に丸めた結果に相当する整数に置き換えるという定義に従って、前記濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記濃度勾配方向を表す角度データとして導出し、
    前記第1演算では、前記照合用データと同じ定義に基づき作成されたモデルデータと前記照合用データとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データの差の値を2の補数表現による符号付き8ビット整数とみなして、当該差の絶対値を算出し、
    前記第2演算では、前記第1演算で算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行し、
    前記照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する前記第1演算および前記第2演算が終了したときの差の絶対値の累計値を、前記照合用データとモデルデータとの不一致度として特定する、
    ことを特徴とする画像マッチング方法。
  2. 請求項1に記載された方法において、
    前記モデルデータとして、前記モデル画像における各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像をあらかじめ作成し、
    前記照合用データを作成する処理では、モデル画像よりサイズが大きい濃淡画像を対象に、この画像内の各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合用データとして作成し、
    前記累計値を格納するための記憶領域として8ビットより大きい容量の記憶領域をM個(M≧2)設定すると共に、前記照合用データの画素配列にモデルデータの画素配列を合わせる対応づけステップを、モデルデータへの対応位置を一方の座標軸に沿ってM画素分の間隔をあけて動かしながら繰り返し、
    毎回の対応づけステップでは、モデルデータ中の各画素に順に着目して、照合用データ中の着目画素に対応する位置にある画素からモデルデータへの対応位置の移動方向に沿って並ぶM個の画素を前記着目画素に個別に組み合わせて、組み合わせ毎に前記角度データを表す整数の差の絶対値を求める前記第1演算と、前記第1演算により得たM個の差の絶対値を前記M個の記憶領域に1つずつ対応づけて、各記憶領域内の累計値をそれぞれに対応づけられた差の絶対値の加算により更新する前記第2演算とを、それぞれSIMD演算として実行する、画像マッチング方法。
  3. 請求項2に記載された方法において、
    毎回の対応づけステップでは、モデルデータ中の全ての画素に対する前記第1演算および前記第2演算が終了したときに前記M個の記憶領域に格納されている累計値の中の最小値をその対応づけステップにおける不一致度として特定すると共に、照合用データ内の前記モデルデータに位置合わせされている領域の位置と前記不一致度として特定された値が格納されていた記憶領域の前記M個の記憶領域内の順位とに基づき、前記照合用データ内における当該不一致度への対応位置を特定し、
    毎回の対応づけステップにおいて特定された不一致度の中の最小値を特定して、その最小の不一致度への対応位置を前記モデルデータに対応する位置であると判定する、画像マッチング方法。
  4. 請求項1に記載された方法において、
    前記モデルデータとして、前記モデル画像における各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像をあらかじめ作成し、
    前記照合用データを作成する処理では、モデル画像と同じサイズの濃淡画像を対象として、この画像の各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合用データとして作成し、
    前記累計値を格納するために8ビットより大きい容量の記憶領域を1つ設定して、前記照合用データの画素配列にモデルデータの画素配列を合わせて両者間で対応する画素の組み合わせをM組(M≧2)設定する対応づけステップを、対応関係にある全ての画素が組み合わせられるまで繰り返し、
    毎回の対応づけステップにおいて、前記M組の組み合わせ毎に、組み合わせられた画素間での前記角度データを表す整数の差の絶対値を算出する前記第1演算を、SIMD演算として実行した後に、前記記憶領域内の累計値を、前記第1演算により算出されたM個の差の絶対値総和を当該累計値に加算した値に更新する演算を、前記第2演算として実行する、画像マッチング方法。
  5. 請求項4に記載された方法において、
    前記全ての画素の組み合わせに対する前記第1演算およびその後の前記第2演算が終了したことに応じて、その時点における前記記憶領域内の累計値をあらかじめ定めたしきい値と比較して、その比較結果に基づき前記濃淡画像の良否を判定する、画像マッチング方法。
  6. 請求項2または4に記載された方法において、
    前記モデルデータおよび照合用データを作成する処理では、濃度勾配の強度が所定のしきい値を下回る画素に対しては、前記濃度勾配方向を示す角度データを0または+127に設定する、画像マッチング方法。
  7. 濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を作成する疑似画像作成手段と、照合用の濃淡画像から作成された疑似画像を照合用データとし、モデル画像から作成された疑似画像をモデルデータとして両疑似画像を対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を累計する第2演算とを実行することにより、前記照合用データとモデルデータとの不一致度を求めるマッチング処理手段と、マッチング処理手段による処理結果を出力する出力手段とを具備する装置であって、
    前記疑似画像作成手段は、0°以上360°未満の範囲にある角度を当該角度を255/360倍した値を整数に丸めた結果に相当する整数に置き換えるという定義に従って、前記濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記濃度勾配方向を表す角度データとして導出し、
    前記マッチング処理手段は、
    前記第1演算として、前記照合用データとモデルデータとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データの差の値を2の補数表現による符号付き8ビット整数とみなして、当該差の絶対値を算出する第1演算手段と、
    前記第2演算として、前記第1演算手段により算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行する第2演算手段と、
    前記照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する前記第1演算および前記第2演算が終了したときの差の絶対値の累計値を、前記照合用データとモデルデータとの不一致度として特定する不一致度特定手段とを具備する、
    ことを特徴とする画像マッチング装置。
  8. 前記第1演算手段は、M組(M≧2)の画素の組み合わせを対象にした前記第1演算をSIMD演算として実行する、請求項7に記載された画像マッチング装置。
  9. 濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を作成する疑似画像作成手段と、照合用の濃淡画像から作成された疑似画像を照合用データとし、モデル画像から作成された疑似画像をモデルデータとして両疑似画像を対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を累計する第2演算とを実行することにより、前記照合用データとモデルデータとの不一致度を求めるマッチング処理手段として、コンピュータを機能させるプログラムであって、
    前記疑似画像作成手段は、0°以上360°未満の範囲にある角度を当該角度を255/360倍した値を整数に丸めた結果に相当する整数に置き換えるという定義に従って、前記濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記濃度勾配方向を表す角度データとして導出し、
    前記マッチング処理手段は、
    前記第1演算として、前記照合用データとモデルデータとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データの差を2の補数表現による符号付き8ビット整数とみなして、当該差の絶対値を算出する第1演算手段と、
    前記第2演算として、前記第1演算手段により算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行する第2演算手段と、
    前記照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する前記第1演算および前記第2演算が終了したときの差の絶対値の累計値を、前記照合用データとモデルデータとの不一致度として特定する不一致度特定手段とを具備する、
    ことを特徴とする画像マッチング用のプログラム。
JP2012058821A 2012-03-15 2012-03-15 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム Active JP5949002B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012058821A JP5949002B2 (ja) 2012-03-15 2012-03-15 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム
PCT/JP2012/080704 WO2013136603A1 (ja) 2012-03-15 2012-11-28 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012058821A JP5949002B2 (ja) 2012-03-15 2012-03-15 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2013191181A JP2013191181A (ja) 2013-09-26
JP5949002B2 true JP5949002B2 (ja) 2016-07-06

Family

ID=49160556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012058821A Active JP5949002B2 (ja) 2012-03-15 2012-03-15 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム

Country Status (2)

Country Link
JP (1) JP5949002B2 (ja)
WO (1) WO2013136603A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111695498B (zh) * 2020-06-10 2023-04-07 西南林业大学 一种木材同一性检测方法
CN112361995B (zh) * 2020-12-02 2022-06-24 四川云盾光电科技有限公司 一种视觉绝对式转动角度测量方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3212385B2 (ja) * 1992-11-13 2001-09-25 富士通株式会社 クロック再生回路
JPH10162143A (ja) * 1996-12-04 1998-06-19 Omron Corp 類似度算出装置
US6301370B1 (en) * 1998-04-13 2001-10-09 Eyematic Interfaces, Inc. Face recognition from video images
JP4023096B2 (ja) * 2001-02-05 2007-12-19 オムロン株式会社 画像処理方法およびその装置
JP4314017B2 (ja) * 2002-11-06 2009-08-12 キヤノン株式会社 階層処理装置
JP5271031B2 (ja) * 2008-08-09 2013-08-21 株式会社キーエンス 画像のデータ圧縮方法、画像処理におけるパターンモデルの位置決め方法、画像処理装置、画像処理プログラム及びコンピュータで読み取り可能な記録媒体

Also Published As

Publication number Publication date
WO2013136603A1 (ja) 2013-09-19
JP2013191181A (ja) 2013-09-26

Similar Documents

Publication Publication Date Title
JP5487970B2 (ja) 特徴点配置照合装置及び画像照合装置、その方法及びプログラム
US9971954B2 (en) Apparatus and method for producing image processing filter
US20100063784A1 (en) System and method for fitting feature elements using a point-cloud of an object
CN110766737B (zh) 训练深度估计模型的方法和设备以及存储介质
WO2014091837A1 (ja) 3次元モデル生成装置、3次元モデル生成方法及び3次元モデル生成プログラム
CN110598305B (zh) 一种比较电路扫描仿真增量的灵敏度分析方法
JP2016186703A (ja) 画像認識方法、画像認識装置および画像認識プログラム
JP5949002B2 (ja) 画像マッチング方法、およびこの方法を用いた画像マッチング装置およびプログラム
US8548225B2 (en) Point selection in bundle adjustment
TWI514180B (zh) 尺寸號資訊處理系統及方法
CN104376120B (zh) 一种信息检索方法及系统
CN107480710B (zh) 特征点匹配结果处理方法和装置
JP2006119927A (ja) パターンマッチング方法およびプログラム
JP5566257B2 (ja) データ生成方法および画像検査方法
JP5093604B2 (ja) フィレット面認識方法、フィレット面認識プログラム及び計測情報処理装置
US20130114898A1 (en) Template matching processing device and template matching processing program
JP2010160543A (ja) 半導体装置のレイアウトパターンのレイアウト検証装置、レイアウト検証プログラム及びレイアウト検証方法
JP2001229407A (ja) 数値解析用モデル作成装置、数値解析用モデル作成方法および記憶媒体
CN112433442A (zh) 掩模版图案修正方法、装置、计算机设备及可读存储介质
CN112001857A (zh) 一种基于双目相机的图像校正方法、系统、设备和可读存储介质
JP2015201055A (ja) 欠陥箇所予測装置、欠陥箇所予測プログラムおよび欠陥箇所予測方法
JP2021015099A (ja) 検査対象品の欠陥検出方法、その装置及びそのコンピュータプログラム
JP2662856B2 (ja) 形状特徴計測装置および方法
JP2016164762A (ja) 解析モデル作成装置、解析モデル作成プログラム及び解析モデル作成方法
EP4095795B1 (en) Automated optical guide

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160328

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: 20160510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160523

R150 Certificate of patent or registration of utility model

Ref document number: 5949002

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250