JP2013191181A - Image matching method, image matching device employing the same and program - Google Patents

Image matching method, image matching device employing the same and program Download PDF

Info

Publication number
JP2013191181A
JP2013191181A JP2012058821A JP2012058821A JP2013191181A JP 2013191181 A JP2013191181 A JP 2013191181A JP 2012058821 A JP2012058821 A JP 2012058821A JP 2012058821 A JP2012058821 A JP 2012058821A JP 2013191181 A JP2013191181 A JP 2013191181A
Authority
JP
Japan
Prior art keywords
data
image
calculation
matching
pixel
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.)
Granted
Application number
JP2012058821A
Other languages
Japanese (ja)
Other versions
JP5949002B2 (en
Inventor
Shiro Fujieda
紫朗 藤枝
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2012058821A priority Critical patent/JP5949002B2/en
Priority to PCT/JP2012/080704 priority patent/WO2013136603A1/en
Publication of JP2013191181A publication Critical patent/JP2013191181A/en
Application granted granted Critical
Publication of JP5949002B2 publication Critical patent/JP5949002B2/en
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)

Abstract

PROBLEM TO BE SOLVED: To fasten matching processing by remarkably shortening an arithmetic time.SOLUTION: Angle data is derived by determining an angle representing a density gradient direction in a pixel within a gradation image as a rotational angle around a specific direction with respect to a reference direction as an 8-bit integer with no code according to a definition of replacing an angle within a range of 0° or more and less than 360° with an integer from 0 to 255. Data for collation is created by making the angle data corresponding to coordinates of the image, and the data for collation is collated with model data which is created by a similar technique. In collation, angle data in pixels combined for each set of pixels in a corresponding relationship between the data for collation and the model data is regarded as bit integers with codes in complementary representations of 2, and an absolute value of a difference between these integers is calculated. Further, through arithmetic operation of accumulating the absolute value of the difference calculated for each combination while regarding the absolute value as an 8-bit integer with no code, a degree of mismatching between the data for collation and the model data is calculated.

Description

本発明は、文字や図形などのパターン画像を含む濃淡画像をあらかじめ準備されたモデル画像と照合する処理(以下、これを「画像マッチング」という。)に関する。特に、本発明は、画像における濃度勾配方向の分布パターンを比較する手法による画像マッチング方法、およびこの方法が適用された画像マッチング装置およびプログラムに関する。   The present invention relates to processing (hereinafter referred to as “image matching”) in which a grayscale image including a pattern image such as a character or a graphic is collated with a model image prepared in advance. In particular, the present invention relates to an image matching method based on a method for comparing distribution patterns in density gradient directions in an image, and an image matching apparatus and program to which this method is applied.

上記のマッチング処理の前提技術を示すものとして、特許文献1をあげる。
この特許文献1には、画素単位での濃度勾配方向の分布のパターンを、x軸の正方向から反時計回りに見た角度により表すと定義して、照合対象の画像の各画素の座標にその画素における濃度勾配方向を表す角度データを対応づけた疑似画像(以下、「照合用データ」という。)を生成し、同様の方法によりモデル画像から生成された疑似画像(以下、「モデルデータ」という。)と照合用データとを比較することが記載されている。
Patent Document 1 is given as an example of the prerequisite technique for the above matching process.
This Patent Document 1 defines that the distribution pattern of the density gradient direction in pixel units is represented by an angle viewed counterclockwise from the positive direction of the x-axis, and represents the coordinates of each pixel of the image to be collated. A pseudo image (hereinafter referred to as “collation data”) in which angle data representing the density gradient direction in the pixel is associated is generated, and a pseudo image (hereinafter referred to as “model data”) generated from the model image by a similar method. And the comparison data are described.

また、特許文献1には、照合データとモデルデータとの間で、対応関係にある画素の組み合わせ毎に濃度勾配方向の角度差の正弦の絶対値を求め、この絶対値を画素単位での濃度勾配方向の不一致度として、組み合わせ毎の不一致度を累計したものを、照合用の画像のモデル画像に対する不一致度とすることが記載されている。   Further, in Patent Document 1, an absolute value of a sine of an angle difference in a density gradient direction is obtained for each combination of pixels in a correspondence relationship between collation data and model data, and this absolute value is obtained as a density in pixel units. As the inconsistency degree in the gradient direction, the sum of the inconsistency degrees for each combination is described as the inconsistency degree with respect to the model image of the image for verification.

上記の画素単位での不一致度は、対応関係にある画素間の角度差θが0°および180°のときに最小値となり、θが90°および270°のときに最大値となる。また、θが最小値に対応する角度から最大値に対応する角度に向かうにつれて徐々に不一致度が増加する。したがって、パターン画像と背景との明暗の関係がモデル画像と同様の画像を照合する場合には、モデル画像に対する類似度が高い画像ほど、画素単位での不一致度が0°に近い画素の組み合わせが増え、それらによる不一致度の累計値が小さくなる。一方、パターン画像と背景との明暗の関係がモデル画像とは反対になる画像を照合する場合には、モデル画像に対する類似度が高い画像ほど、画素単位での不一致度が180°に近くなる画素の組み合わせが増え、それらによる不一致度の累計値が小さくなる。   The degree of disagreement in pixel units is the minimum value when the angle difference θ between the corresponding pixels is 0 ° and 180 °, and the maximum value when θ is 90 ° and 270 °. Further, the degree of inconsistency gradually increases as θ goes from the angle corresponding to the minimum value to the angle corresponding to the maximum value. Therefore, in the case where an image having the same light / dark relationship between the pattern image and the background as that of the model image is collated, an image having a higher degree of similarity to the model image has a combination of pixels with a degree of mismatch closer to 0 ° in pixel units. The cumulative value of the degree of inconsistency due to these increases. On the other hand, in the case of collating images in which the light / dark relationship between the pattern image and the background is opposite to that of the model image, the higher the degree of similarity to the model image, the closer the pixel unit mismatch degree is to 180 °. The number of combinations increases, and the cumulative value of the degree of inconsistency due to them decreases.

特許第4023096号公報 (請求項1,3,段落0039〜0070等を参照。)Japanese Patent No. 4023096 (See claims 1, 3, paragraphs 0039-0070, etc.)

特許文献1に記載のとおり、濃度勾配方向を表す角度データは、特定の方向(たとえばx軸の正方向)を基準方向として、その基準方向に対する一定の方向まわりの回転角度として表される。よって、角度データが取り得る数値の範囲は0°以上360°未満となり、組み合わせられた画素間の角度データの差θも同様に、0°≦θ<360°の範囲でばらつくことになる。   As described in Patent Document 1, the angle data representing the concentration gradient direction is expressed as a rotation angle around a certain direction with respect to the reference direction with a specific direction (for example, the positive direction of the x-axis) as the reference direction. Therefore, the range of numerical values that the angle data can take is 0 ° or more and less than 360 °, and the difference θ of the angle data between the combined pixels also varies in the range of 0 ° ≦ θ <360 °.

しかし、θが180°以上になる場合には、そのθは、濃度勾配方向を示すベクトルがなす狭い方の角度ではなく、その外側を大回りした角度を示すことになる。
たとえば、一方の濃度勾配方向を示す角度が10°で他方の濃度勾配方向を示す角度が350°の場合には、10°の方向から時計回り方向に350°の方向を見た角度である20°を導出すべきであるが、演算で算出される角度差は340°になってしまう。
However, when θ is 180 ° or more, the θ indicates not the narrower angle formed by the vector indicating the concentration gradient direction but the angle that goes around the outside.
For example, when the angle indicating one concentration gradient direction is 10 ° and the angle indicating the other concentration gradient direction is 350 °, the angle is as viewed from a direction of 350 ° clockwise from the direction of 10 °. The angle should be derived, but the angle difference calculated by the calculation is 340 °.

特許文献1に記載された発明では、角度差の正弦の絶対値を算出する方法によりこの問題を解決しているが、モデル画像と照合対象の画像との明暗が反転することを考慮する必要がない場合には、角度差の絶対値を画素単位での不一致度として、その不一致度の累計演算を実施してもよい。しかし、この方法をとる場合には、算出された角度差θが180度を超えるときには、その角度差θを(360°−θ)に置き換えてから加算する必要があるため、演算を十分に高速化するのが困難である。   In the invention described in Patent Document 1, this problem is solved by the method of calculating the absolute value of the sine of the angle difference. However, it is necessary to consider that the contrast between the model image and the image to be collated is inverted. If there is no difference, the absolute value of the angle difference may be regarded as a mismatch degree in units of pixels, and the total calculation of the mismatch degree may be performed. However, when this method is used, when the calculated angle difference θ exceeds 180 degrees, it is necessary to add the angle difference θ after replacing it with (360 ° −θ). It is difficult to convert.

本発明は上記の問題点に着目し、簡単な方法によって、画素単位での不一致度を表すパラメータを効率良く求めることができるようにし、これによって演算時間を大幅に短縮して、マッチング処理を高速化することを、課題とする。   The present invention pays attention to the above-mentioned problems, and enables a parameter representing the degree of inconsistency in pixel units to be efficiently obtained by a simple method, thereby greatly reducing the calculation time and speeding up the matching process. The challenge is to make it easier.

本発明は、濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を照合用データとして作成する処理と、モデル画像における濃度勾配方向の分布パターンを表す疑似画像をモデルデータとして照合用データに対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を用いて照合用データとモデルデータとの不一致度を求める第2演算とを実行する画像マッチング方法に適用される。   The present invention creates a pseudo image representing a density gradient direction distribution pattern in a grayscale image as matching data, and associates a pseudo image representing a density gradient direction distribution pattern in a model image as model data with matching data. Thus, the first calculation for obtaining the angle difference in the density gradient direction in pixel units between the two pseudo images, and the second calculation for obtaining the degree of mismatch between the verification data and the model data using the angle difference calculated by the first calculation. This is applied to an image matching method for performing an operation.

本発明では、照合用データを作成する処理において、0°以上360°未満の範囲にある角度を0から255までの整数に置き換えるという定義に従って、濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記角度データとして導出する。
また、第1演算では、照合用データと同じ定義に基づき作成されたモデルデータと照合用データとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データを2の補数表現による符号付き8ビット整数とみなして、これらの整数の差の絶対値を算出し、第2演算では、第1演算で算出された各絶対値を符号なし8ビット整数とみなして累計する演算を実行する。そして、照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、照合用データとモデルデータとの不一致度として特定する。
In the present invention, in the process of creating the collation data, it is determined in advance for at least the edge pixels in the grayscale image according to the definition that the angle in the range of 0 ° or more and less than 360 ° is replaced with an integer from 0 to 255. An unsigned 8-bit integer corresponding to the rotation angle when the density gradient direction in the target pixel is represented by the rotation angle around a specific direction with respect to the reference direction is derived as the angle data.
Further, in the first calculation, the angle data at the combined pixel is expressed in two's complement for each set of pixels in a correspondence relationship between the model data created based on the same definition as the verification data and the verification data. And the absolute value of the difference between these integers is calculated. In the second operation, the operation is performed by accumulating each absolute value calculated in the first operation as an unsigned 8-bit integer. Run. Then, the sum of absolute values of the differences when the first calculation and the second calculation are completed for all of the sets of pixels in a correspondence relationship between the verification data and the model data is obtained as the verification data and the model data. Specified as the discrepancy degree.

上記方法によれば、濃度勾配方向を表す角度のうち、0°以上180°未満の角度は0〜127の整数に置き換えられ、180°以上360未満の角度は128〜255の整数に置き換えられる。これらは、符号なし8ビット整数として表されるが、2の補数表現による符号付き8ビット整数であるものと仮定すると、0〜127の範囲にある数値は変化しないが、128〜255の範囲の数値は−128〜−1の範囲の数値となる。   According to the above method, of the angles representing the concentration gradient direction, an angle of 0 ° to less than 180 ° is replaced with an integer of 0 to 127, and an angle of 180 ° to less than 360 is replaced with an integer of 128 to 255. These are represented as unsigned 8-bit integers, but assuming that they are signed 8-bit integers in 2's complement representation, numbers in the range 0-127 do not change, but in the range 128-255 The numerical value is in the range of -128 to -1.

すなわち、元の濃度勾配を表す角度をθとすると、0°≦θ<180°の範囲と、180°≦θ<360°の範囲とは、0°の方向を挟んで角度を計る向きが逆になる。さらに言い換えれば、0°≦θ<180°を示す0〜127の整数は、当初の定義どおりで変化しないが、180°≦θ<360°を示す128〜255の整数は、その値から256(360°に相当)を差し引いた負の値に置き換えられる。   That is, if the angle representing the original concentration gradient is θ, the range of 0 ° ≦ θ <180 ° and the range of 180 ° ≦ θ <360 ° are opposite in the direction of measuring the angle across the 0 ° direction. become. In other words, an integer of 0 to 127 indicating 0 ° ≦ θ <180 ° does not change as originally defined, but an integer of 128 to 255 indicating 180 ° ≦ θ <360 ° is 256 ( (Equivalent to 360 °) is replaced with a negative value.

本発明では、この仕組みを利用して、第1演算において、各角度データを2の補数表現による符号付き8ビット整数とみなして各整数の差の絶対値を算出するので、差分演算の結果が128以上となる場合でも、その差は−1から−128までの負の値とみなされる。2の補数表現によれば、−1の補数は1となり、−128の補数は127となるから、角度データの差が負の値になる場合でも、その絶対値は、必ず1から127までの範囲に含まれる。よって、演算対象の角度データの値がどのような組み合わせになっても、常に差の絶対値として、0°以上180°未満に相当する0から127までの整数を得ることができる。   In the present invention, using this mechanism, in the first calculation, each angle data is regarded as a signed 8-bit integer in two's complement representation, and the absolute value of the difference between the integers is calculated. Even if it is 128 or more, the difference is regarded as a negative value from −1 to −128. According to the 2's complement expression, the -1's complement is 1 and the -128's complement is 127, so even if the difference between the angle data is a negative value, the absolute value is always between 1 and 127. Included in the range. Therefore, an integer from 0 to 127 corresponding to 0 ° or more and less than 180 ° can always be obtained as the absolute value of the difference regardless of the combination of the values of the angle data to be calculated.

0から127までの整数は、符号付きとしても符号なしとしても同値であるから、第2演算において、第1演算で算出された各絶対値を符号なし8ビット整数とみなして累計しても、演算に矛盾が生じることはない。よって、十分なビット数のレジスタを確保して、第2演算で各絶対値を符号なし8ビット整数として取り扱って累計演算を行えば、第2演算が終了したときに、照合用データとモデルデータとの不一致度を正しく特定することができる。   Since the integers from 0 to 127 are the same whether signed or unsigned, in the second calculation, the absolute values calculated in the first calculation are regarded as unsigned 8-bit integers and accumulated. There is no contradiction in the operation. Therefore, if a register with a sufficient number of bits is secured and each absolute value is handled as an unsigned 8-bit integer in the second operation and the cumulative operation is performed, the matching data and the model data are obtained when the second operation is completed. It is possible to correctly specify the degree of inconsistency with.

この方法の第1演算によれば、対応づけられた2つの画素における角度データの値の組み合わせに関わらず、常に同じ手順による演算を実行することができるので、シングル命令マルチデータ(Single Instruction Multiple Data;略してSIMDという。)方式を適用することができる。
SIMD方式の演算(以下、「SIMD演算」という。)とは、CPUに単一の命令を与えることにより、複数のデータ群に対してその命令による演算を並列で実行するもので、演算の時間を大幅に短縮することができる。
According to the first calculation of this method, the calculation according to the same procedure can always be executed regardless of the combination of the values of the angle data in the two associated pixels. Abbreviated as SIMD) method.
The SIMD operation (hereinafter referred to as “SIMD operation”) is a method in which a single instruction is given to the CPU, and an operation according to the instruction is executed in parallel on a plurality of data groups. Can be greatly shortened.

以下に、SIMD演算が適用される2つの実施形態を示す。いずれの実施形態でも、モデルデータとして、モデル画像における各画素の濃度勾配方向を前出の定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を作成する。   In the following, two embodiments to which SIMD operations are applied are shown. In any of the embodiments, as the model data, a pseudo image is created by combining the angle data representing the density gradient direction of each pixel in the model image based on the above definition with the respective coordinates.

第1の実施形態では、照合用データを作成する処理において、モデル画像よりサイズが大きい濃淡画像を対象として、この画像内の各画素の濃度勾配方向を前出の定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合用データとして作成する。また、累計値を格納するための記憶領域をM個(M≧2)設定すると共に、照合用データの画素配列にモデルデータの画素配列を合わせる対応づけステップを、モデルデータへの対応位置を一方の座標軸に沿ってM画素分の間隔をあけて動かしながら繰り返す。そして、毎回の対応づけステップにおいて、モデルデータ中の各画素に順に着目して、照合用データ中の着目画素に対応する位置にある画素からモデルデータへの対応位置の移動方向に沿って並ぶM個の画素を着目画素に個別に組み合わせて、組み合わせ毎に角度データを表す整数の差の絶対値を求める第1演算と、第1演算により得たM個の差の絶対値を前記M個の記憶領域に1つずつ対応づけて、各記憶領域内の累計値をそれぞれに対応づけられた差の絶対値の加算により更新する第2演算とを、それぞれSIMD演算として実行する。   In the first embodiment, in the process of creating the data for verification, angle data representing the density gradient direction of each pixel in the image based on the above definition is used for a grayscale image having a size larger than that of the model image. A pseudo image combined with each coordinate is created as collation data. In addition, M storage areas for storing the cumulative values are set (M ≧ 2), and an associating step of matching the pixel array of the model data with the pixel array of the data for verification is performed at one position corresponding to the model data. This is repeated while moving at an interval of M pixels along the coordinate axis. Then, in each association step, attention is paid to each pixel in the model data in turn, and M is arranged along the moving direction of the corresponding position from the pixel at the position corresponding to the target pixel in the matching data to the model data. A first calculation for individually combining the pixels with the pixel of interest, and obtaining an absolute value of an integer difference representing angle data for each combination, and an absolute value of the M differences obtained by the first calculation as the M A second operation for associating each storage area with one another and updating the accumulated value in each storage area by adding the absolute value of the corresponding difference is executed as a SIMD operation.

上記の実施形態は、モデル画像よりサイズの大きい濃淡画像の中からモデル画像に対する類似度が最も大きい領域を探すサーチ処理に適用することができる。この実施形態によれば、モデルデータ中の各画素にそれぞれ照合用データ側のM個の画素を一度に対応づけて、第1演算および第2演算を一挙に実施することができるので、1回の対応づけステップでM回分の対応づけをしたのと同様の結果を得ることができる。よって、サーチに要する時間を大幅に削減することが可能になる。   The above embodiment can be applied to search processing for searching for a region having the highest similarity to a model image from grayscale images having a size larger than that of the model image. According to this embodiment, the first calculation and the second calculation can be performed at a time by associating M pixels on the matching data side with each pixel in the model data at a time. It is possible to obtain the same result as the M-time association in the association step. Therefore, it is possible to greatly reduce the time required for the search.

さらに、上記の実施形態の下位概念となる一実施形態では、毎回の対応づけステップにおいて、モデルデータ中の全ての画素に対する第1演算および第2演算が終了したときにM個の記憶領域に格納されている累計値の中の最小値をその対応づけステップにおける不一致度として特定すると共に、照合用データ内のモデルデータに位置合わせされている領域の位置と不一致度として特定された値が格納されていた記憶領域の前記M個の記憶領域内の順位とに基づき、照合用データ内における当該不一致度への対応位置を特定する。さらに、毎回の対応づけステップにおいて特定された不一致度の中の最小値を特定して、その最小の不一致度への対応位置をモデルデータに対応する位置であると判定する。   Further, in one embodiment, which is a subordinate concept of the above embodiment, in each association step, the first calculation and the second calculation for all the pixels in the model data are stored in M storage areas when the calculation is completed. In addition to specifying the minimum value of the accumulated total values as the degree of inconsistency in the corresponding step, the value specified as the degree of inconsistency with the position of the region aligned with the model data in the matching data is stored. Based on the order of the storage areas in the M storage areas, the position corresponding to the degree of inconsistency in the verification data is specified. Further, the minimum value among the inconsistencies specified in each association step is specified, and the position corresponding to the minimum inconsistency is determined as the position corresponding to the model data.

上記の実施形態によれば、対応づけステップでの一連の演算が終了する毎に、そのステップで処理された範囲において最小の不一致度が得られた位置を特定してゆき、最終的に最も低い不一致度が得られた位置をモデルデータに対応する位置(すなわちマッチング位置)として特定する。このようにすれば、モデルデータに対するマッチング位置を見つける処理を効率良く実施することがでできる。   According to the above embodiment, every time a series of operations in the association step is completed, the position where the minimum inconsistency is obtained in the range processed in that step is identified, and finally the lowest The position where the degree of mismatch is obtained is specified as the position corresponding to the model data (that is, the matching position). In this way, the process of finding the matching position for the model data can be performed efficiently.

SIMD演算を使用する第2の実施形態では、照合用データを作成する処理において、モデル画像と同じサイズの濃淡画像を対象として、この画像の各画素の濃度勾配方向を前出の定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合データとして作成する。
また、累計値を格納するための記憶領域を1つ設定して、照合用データの画素配列にモデルデータの画素配列を合わせて両者間で対応する画素の組み合わせをM組(M≧2)設定する対応づけステップを、対応関係にある全ての画素が組み合わせられるまで繰り返す。毎回の対応づけステップにおいては、M組の組み合わせ毎に、組み合わせられた画素間での角度データを表す整数の差の絶対値を算出する第1演算を、SIMD演算として実行した後に、記憶領域内の累計値を第1演算により算出されたM個の差の絶対値の総和の加算により更新する演算を、第2演算として実行する。
In the second embodiment using the SIMD operation, in the process of creating the matching data, the density gradient direction of each pixel of this image is represented based on the above definition for the gray image having the same size as the model image. A pseudo image in which the angle data is combined with each coordinate is created as collation data.
In addition, one storage area for storing the cumulative value is set, and the pixel arrangement of the model data is matched with the pixel arrangement of the data for verification, and M combinations (M ≧ 2) corresponding pixel combinations are set between the two. The associating step is repeated until all the pixels in the correspondence relationship are combined. In each association step, after executing the first calculation for calculating the absolute value of the difference between the integers representing the angle data between the combined pixels as the SIMD calculation for each of the M sets of combinations, The operation of updating the accumulated value of the two by the addition of the sum of the absolute values of the M differences calculated by the first operation is executed as the second operation.

上記第2の実施形態は、たとえば、モデル画像と同じサイズの濃淡画像(モデル画像より大きい画像内の一部領域の画像でもよい。)を対象にして、モデル画像との類似の度合いを判定する場合に実施することができる。この実施形態では、モデルデータと照合用データとの間で対応関係にあるM組の画素の組み合わせに対する第1演算を一括で実施することができるので、第1演算に要する時間を大幅に短縮することが可能になる。また、第1演算の都度、その演算により得られたM個の絶対値の総和を累計する処理を行うので、画像全体の不一致度も効率良く求めることが可能になる。   In the second embodiment, for example, a degree of similarity with a model image is determined for a grayscale image having the same size as the model image (may be an image of a partial region in an image larger than the model image). Can be implemented in case. In this embodiment, since the first calculation for the combination of M pixels having a correspondence relationship between the model data and the matching data can be performed at once, the time required for the first calculation is greatly reduced. It becomes possible. In addition, every time the first calculation is performed, a process of accumulating the sum of the M absolute values obtained by the calculation is performed, so that the degree of inconsistency of the entire image can be obtained efficiently.

第2の実施形態は、濃淡画像中のパターンの良否を判定する検査に利用することができる。この場合の一実施形態では、全ての画素の組み合わせに対する第1演算およびその後の第2演算が終了したことに応じて、その時点における記憶領域内の累計値をあらかじめ定めたしきい値と比較し、その比較結果に基づき濃淡画像の良否を判定する。   The second embodiment can be used for an inspection for determining the quality of a pattern in a grayscale image. In an embodiment of this case, in response to the completion of the first calculation and the subsequent second calculation for all pixel combinations, the cumulative value in the storage area at that time is compared with a predetermined threshold value. The quality of the grayscale image is determined based on the comparison result.

第1および第2の実施形態に共通する一実施形態では、モデルデータおよび照合用データを作成する処理において、濃度勾配の強度が所定のしきい値を下回る画素に対しては、濃度勾配方向を示す角度データを0または+127に設定する。   In one embodiment common to the first and second embodiments, in the process of creating model data and verification data, the density gradient direction is set for pixels whose density gradient intensity is below a predetermined threshold. The indicated angle data is set to 0 or +127.

本発明のように濃度勾配方向のパターンを比較する場合には、濃度勾配の強度が強いエッジ画素のみを差分演算の対象にするのが望ましいが、演算の対象を判別するための処理を入れると、SIMD演算を効率良く実行するのが困難になる。一方、全ての画素に濃度勾配方向を示す角度データを設定して演算の対象とすると、僅かな濃度勾配でも累計値に影響を及ぼすので、算出される不一致度が不正確になる。
この問題に関して、上記の実施形態では、濃度勾配の強度が弱い画素に対する角度データに一律に0または+127をあてはめることにより、場合分けすることなく、全ての画素を対象にしたSIMD演算を実行しても、演算の精度を確保できるようにしている。
When comparing patterns in the direction of density gradient as in the present invention, it is desirable that only edge pixels with strong density gradient strength are targeted for difference calculation, but if processing for determining the target of calculation is included Therefore, it becomes difficult to perform SIMD computation efficiently. On the other hand, if angle data indicating the density gradient direction is set for all the pixels and the calculation target is set, even a slight density gradient affects the cumulative value, so that the calculated inconsistency becomes inaccurate.
With respect to this problem, in the above-described embodiment, SIMD calculation is performed on all the pixels without dividing the case by uniformly assigning 0 or +127 to the angle data for the pixels having a weak density gradient. In addition, the accuracy of the calculation is ensured.

0は角度データを計る基準の方向に対応し、+127は、2の補数表現による符号付き8ビット整数とみなされた角度データ群の最大値となる。したがって、濃度勾配強度が弱い画素に角度データとして0または+127を一律にあてはめると、エッジ画素でない画素同士が組み合わせられた場合の第1演算では、双方の角度データが一致して差の絶対値が0となるので、累計値には全く影響を及ぼさない。また、エッジ画素でない画素とエッジ画素とが組み合わせられた場合の第1演算では、前者の0または+127に対して後者は異なる数値になる可能性が高いので、差の絶対値は0より大きくなり、不一致度が増える。よって、照合用の画像とモデル画像との間におけるエッジ画素の不整合の度合いが増えるほど、不一致度は高くなるから、不一致度の信頼度を高めることができる。   0 corresponds to the reference direction for measuring the angle data, and +127 is the maximum value of the angle data group regarded as a signed 8-bit integer in 2's complement representation. Therefore, when 0 or +127 is uniformly applied to the pixels having a weak density gradient intensity as the angle data, in the first calculation when the pixels other than the edge pixels are combined, both the angle data match and the absolute value of the difference is obtained. Since it is 0, the cumulative value is not affected at all. In addition, in the first calculation when a pixel that is not an edge pixel and an edge pixel are combined, the latter is likely to be a different value from the former 0 or +127, so the absolute value of the difference is greater than 0. , The discrepancy increases. Therefore, as the degree of mismatch of edge pixels between the matching image and the model image increases, the degree of mismatch increases, so the reliability of the degree of mismatch can be increased.

したがって、たとえば、照合対象の画像中のパターン画像の一部がモデル画像に一致するが、他の部分はモデル画像に一致しない場合には、そのパターン画像はモデル画像には対応していないと判別することができる。   Therefore, for example, if a part of the pattern image in the image to be matched matches the model image, but the other part does not match the model image, it is determined that the pattern image does not correspond to the model image. can do.

上記の方法が適用される画像マッチング装置は、濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を作成する疑似画像作成手段と、照合用の濃淡画像から作成された疑似画像を照合用データとし、モデル画像から作成された疑似画像をモデルデータとして両疑似画像を対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を用いて照合用データとモデルデータとの不一致度を求める第2演算とを実行するマッチング処理手段と、マッチング処理手段による処理結果を出力する出力手段とを具備する。   The image matching apparatus to which the above method is applied includes a pseudo image creating means for creating a pseudo image representing a distribution pattern in a density gradient direction in a grayscale image, and a pseudo image created from the grayscale image for matching as matching data. , A first calculation for associating both pseudo images using the pseudo image created from the model image as model data, and obtaining an angle difference in the density gradient direction in pixel units between the two pseudo images, and the first calculation Matching processing means for executing a second calculation for determining the degree of inconsistency between the matching data and the model data using the angle difference, and output means for outputting a processing result by the matching processing means.

疑似画像作成手段は、0°以上360°未満の範囲にある角度を0から255までの整数に置き換えるという定義に従って、濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、角度データとして導出する。   According to the definition that the angle in the range of 0 ° or more and less than 360 ° is replaced with an integer from 0 to 255, the pseudo image creating means is configured to specify a specific direction with respect to a predetermined reference direction for at least edge pixels in the grayscale image. An unsigned 8-bit integer corresponding to the rotation angle when the density gradient direction in the target pixel is represented by the rotation angle around the direction is derived as angle data.

マッチング処理手段には、以下の第1演算手段、第2演算手段、不一致度特定手段が含まれる。
第1演算手段は、照合用データとモデルデータとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データを2の補数表現による符号付き8ビット整数とみなしてこれらの整数の差の絶対値を算出する。
The matching processing means includes the following first calculation means, second calculation means, and mismatch degree identification means.
The first computing means regards the angle data in the combined pixel as a signed 8-bit integer in 2's complement representation for each set of pixels that have a correspondence relationship between the matching data and the model data, and these integers. Calculate the absolute value of the difference.

第2演算手段は、第1演算手段により算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行する。
不一致度特定手段は、照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、照合用データとモデルデータとの不一致度として特定する。
The second calculation means performs an operation of accumulating the absolute value of the difference calculated by the first calculation means as an unsigned 8-bit integer.
The mismatch degree specifying means calculates the accumulated absolute value of the differences when the first calculation and the second calculation are completed for all of the pixel sets in a correspondence relationship between the verification data and the model data, And the model data are identified as the degree of inconsistency.

上記の画像マッチング装置によれば、照合用データとモデルデータとの間で対応づけられた画素間の角度データがどのような値の組み合わせになっても、各角度データの差の絶対値を求める演算と、差の絶対値を累計する演算とにより対応できるので、演算時間を大幅に短縮することができる。
さらに、第1演算手段を、M組(M≧2)の画素の組み合わせを対象にした第1演算をSIMD演算として実行する手段とすれば、演算時間を大きく短縮することができ、高速処理が要求される現場に対応することが容易になる。
According to the image matching device, the absolute value of the difference between the angle data is obtained regardless of the combination of the angle data between the pixels associated with the matching data and the model data. Since it is possible to cope with the calculation and the calculation for accumulating the absolute value of the difference, the calculation time can be greatly shortened.
Furthermore, if the first calculation means is a means for executing the first calculation for the combination of M (M ≧ 2) pixels as SIMD calculation, the calculation time can be greatly shortened, and high-speed processing can be achieved. It becomes easy to respond to the required site.

さらに本発明は、上記の疑似画像作成手段およびマッチング処理手段として、コンピュータを機能させるプログラムを提供する。   Furthermore, the present invention provides a program that causes a computer to function as the above-described pseudo image creation means and matching processing means.

本発明によれば、照合用データとモデルデータとの間の不一致度を求める演算に要する時間を大幅に短縮すると共に、算出される不一致度の精度を確保することができる。よって、モデル画像に対応する領域を検索する処理や検査などを短時間で実施することが要求される現場に適した画像マッチング処理を実現することができる。   According to the present invention, it is possible to greatly reduce the time required for the calculation for obtaining the degree of mismatch between the verification data and the model data and to ensure the accuracy of the calculated degree of mismatch. Therefore, it is possible to realize an image matching process suitable for a site where a process for searching for an area corresponding to a model image, an inspection, and the like are required in a short time.

画像マッチング装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of an image matching apparatus. 符号なし8ビット整数によるエッジコードと、これを2の補数表現による符号付き8ビット整数とみなした場合の数値との関係を示すテーブルである。It is a table | surface which shows the relationship between the edge code by an unsigned 8-bit integer, and the numerical value at the time of considering this as the signed 8-bit integer by 2's complement expression. 2の補数表現とみなしたエッジコードと元の角度との関係を示す図である。It is a figure which shows the relationship between the edge code considered as 2's complement expression, and the original angle. 角度差の算出対象のエッジコードの組み合わせの例を、元の角度に関係づけて示す図である。It is a figure which shows the example of the combination of the edge code of the calculation object of an angle difference in relation to the original angle. モデル画像の例を、マッチング処理に用いられるパラメータと共に示す図である。It is a figure which shows the example of a model image with the parameter used for a matching process. 照合用データに対するサーチ処理の原理を説明する図である。It is a figure explaining the principle of the search process with respect to the data for collation. サーチ処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of a search process. 図7のステップS2における詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure in step S2 of FIG. 図7のステップS7における詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure in step S7 of FIG. 検査対象の濃淡画像に対するマッチング処理の原理を示す図である。It is a figure which shows the principle of the matching process with respect to the grayscale image of a test object. 検査の手順を示すフローチャートである。It is a flowchart which shows the procedure of a test | inspection.

図1は、本発明が適用される画像マッチング装置の構成を機能ブロック図により示す。
このパターン認識装置は、カメラにより生成された濃淡画像からあらかじめ登録されたモデルのパターンを検出する目的に使用されるもので、その実体は、専用のプログラムがインストールされたコンピュータである。
FIG. 1 is a functional block diagram showing the configuration of an image matching apparatus to which the present invention is applied.
This pattern recognition apparatus is used for the purpose of detecting a model pattern registered in advance from a grayscale image generated by a camera, and the entity is a computer in which a dedicated program is installed.

図1に示すように、この実施例のパターン認識装置は、画像入力部1、モード選択部2、入力画像処理部3、コード変換テーブル4、モデルメモリ5、サーチ制御部6、結果出力部7、SIMD演算実行部10などを具備する。また、図1には示していないが、このパターン認識装置には、処理対象の画像を生成するためのカメラ、画像や処理結果を表示するための表示部、キーボードやマウスなどを含む操作部などの周辺機器が接続されている。   As shown in FIG. 1, the pattern recognition apparatus of this embodiment includes an image input unit 1, a mode selection unit 2, an input image processing unit 3, a code conversion table 4, a model memory 5, a search control unit 6, and a result output unit 7. , SIMD calculation execution unit 10 and the like. Although not shown in FIG. 1, the pattern recognition apparatus includes a camera for generating an image to be processed, a display unit for displaying images and processing results, an operation unit including a keyboard and a mouse, and the like. Peripheral devices are connected.

上記の認識処理装置では、濃淡画像における画素単位での濃度勾配方向を角度データとして表して、この角度データ(以下、「エッジコード」という。)の分布のパターンをモデルデータと照合する方法により、モデルパターンに類似するパターンが含まれる領域をを検出する。画像入力部1は、その処理対象の濃淡画像を入力する。入力画像処理部3は、画像入力部1が入力した画像内の各画素のエッジコードを求めて、画素の座標とエッジコードとを組み合わせた疑似画像を作成する。コード変換テーブル4は、この処理に使用される参照用のテーブルである。   In the above recognition processing device, the density gradient direction in pixel units in the grayscale image is represented as angle data, and the distribution pattern of this angle data (hereinafter referred to as “edge code”) is collated with model data, A region including a pattern similar to the model pattern is detected. The image input unit 1 inputs the grayscale image to be processed. The input image processing unit 3 obtains the edge code of each pixel in the image input by the image input unit 1 and creates a pseudo image by combining the coordinates of the pixel and the edge code. The code conversion table 4 is a reference table used for this processing.

モード選択部2は、ユーザの選択操作に応じて、設定モードおよび計測モードのうち操作により選択されたモードを装置内の各部に設定する。具体的には、設定モードが選択された場合には、入力画像処理部3は、画像入力部1から入力された画像の一部をモデル画像として切り出して、そのモデル画像中の各画素のエッジコードによる疑似画像を作成し、これをモデルデータとしてモデルメモリ5に登録する。
なお、モデル画像の切り出し領域は、表示部に入力画像を表示して、ユーザによる領域の指定操作を受け付けることにより定められる。また、モデル画像もモデルデータと共にモデルメモリ5に登録される。
The mode selection unit 2 sets the mode selected by the operation among the setting mode and the measurement mode in each unit in the apparatus according to the user's selection operation. Specifically, when the setting mode is selected, the input image processing unit 3 cuts out a part of the image input from the image input unit 1 as a model image, and the edge of each pixel in the model image A pseudo image by a code is created and registered in the model memory 5 as model data.
The model image cut-out region is determined by displaying the input image on the display unit and receiving a region specifying operation by the user. The model image is also registered in the model memory 5 together with the model data.

計測モードが選択された場合には、入力画像処理部3は、画像入力部1が入力した画像中の全画素を対象にエッジコードを求め、各画素の座標にそれぞれのエッジコードを対応づけた疑似画像を作成する。この疑似画像は、照合用データとしてサーチ制御部6に渡される。サーチ制御部6は、モデルメモリ5内のモデルデータを読み出すと共に、SIMD演算実行部10と協働して後述するサーチ処理を実行することによって、モデルデータへの類似度が最も高い領域の類似度および当該領域の基準点の座標(以下、「マッチング位置」という。)を特定する。結果出力部7は、特定された類似度やマッチング位置を含む処理結果を、表示部や外部機器などに出力する。   When the measurement mode is selected, the input image processing unit 3 obtains an edge code for all pixels in the image input by the image input unit 1 and associates each edge code with the coordinates of each pixel. Create a pseudo image. This pseudo image is passed to the search control unit 6 as verification data. The search control unit 6 reads the model data in the model memory 5 and executes a search process to be described later in cooperation with the SIMD calculation execution unit 10 to thereby determine the similarity of the region having the highest similarity to the model data. In addition, the coordinates of the reference point of the area (hereinafter referred to as “matching position”) are specified. The result output unit 7 outputs a processing result including the specified similarity and matching position to a display unit, an external device, or the like.

この実施例では、類似度として、モデルデータに対する不一致度を求める。
SIMD演算実行部10は、この不一致度の算出に用いられるもので、第1演算部11と第2演算部12とが含まれる。詳細は後記するが、第1演算部11では、照合用データとモデルデータとの間における画素単位の不一致度として、対応関係にある画素の組におけるエッジコードの差の絶対値を算出する。
In this embodiment, the degree of inconsistency with respect to model data is obtained as the degree of similarity.
The SIMD calculation execution unit 10 is used for calculating the degree of mismatch, and includes a first calculation unit 11 and a second calculation unit 12. Although details will be described later, the first calculation unit 11 calculates the absolute value of the difference between the edge codes in the pair of pixels in the correspondence relationship as the degree of mismatch in pixel units between the matching data and the model data.

この実施例では、この差の絶対値のことを「角度差」と呼ぶ。
第2演算部12は、第1演算部11により算出された角度差を累計する演算によって、照合対象の画像中のモデル画像に対応づけられた範囲の不一致度を求める。
In this embodiment, the absolute value of this difference is called an “angle difference”.
The second calculation unit 12 obtains the degree of inconsistency of the range associated with the model image in the image to be collated by calculating the total of the angle differences calculated by the first calculation unit 11.

以下、この実施例におけるエッジコードのデータ構成と、第1演算および第2演算の仕組みについて説明する。
この実施例でも、特許文献1に記載された発明と同様に、x軸における濃度勾配Exが示すベクトルと、y軸における濃度勾配Eyが示すベクトルとの合成ベクトルを濃度勾配方向とする。そして、この合成ベクトルをx軸の正方向を基準方向とした反時計回りの回転角度として表した値を、エッジコードとする。
Hereinafter, the data structure of the edge code and the mechanism of the first calculation and the second calculation in this embodiment will be described.
Also in this embodiment, as in the invention described in Patent Document 1, the combined vector of the vector indicated by the concentration gradient Ex on the x axis and the vector indicated by the concentration gradient Ey on the y axis is set as the concentration gradient direction. Then, a value representing this combined vector as a counterclockwise rotation angle with the positive direction of the x axis as a reference direction is defined as an edge code.

上記の回転角度は、Ey/Exの逆正接(arctan(Ey/Ex))を用いて算出されるが、Ex,Eyが正の値をとるか、負の値をとるかによって演算式が変わる。この実施例では、Ey/Exの値とその値から導き出されるエッジコードとの組み合わせを登録したコード変換テーブル4を参照する方法によって、エッジコードの導出に要する処理時間を短縮するようにしている。   The rotation angle is calculated using the arc tangent of Ey / Ex (arctan (Ey / Ex)), but the calculation formula varies depending on whether Ex and Ey take a positive value or a negative value. . In this embodiment, the processing time required for deriving the edge code is shortened by referring to the code conversion table 4 in which the combination of the Ey / Ex value and the edge code derived from the value is registered.

一般的なエッジコードは、0度以上360度未満の範囲に含まれる角度として算出されるが、この実施例では、上記の角度範囲を0から255までの整数に置き換えて、これらの整数を符号なし8ビット整数として、対応するEy/Exの値に組み合わせてコード変換テーブル4に格納する。   A general edge code is calculated as an angle included in a range of 0 degree or more and less than 360 degree. In this embodiment, the above angle range is replaced with an integer from 0 to 255, and these integers are encoded. None An 8-bit integer is stored in the code conversion table 4 in combination with the corresponding Ey / Ex value.

具体的に、通常の0°〜360°のスケールで表される角度をθとし、整数表現のエッジコードをECとすると、θを256/360倍した値の小数点以下を四捨五入した値がECとなる。
したがって、0°≦θ<180°の角度範囲は0≦EC<127となり、180°≦θ<360°の角度範囲は、128≦EC<255となる。
Specifically, when θ is an angle represented by a normal scale of 0 ° to 360 ° and EC is an edge code expressed as an integer, a value obtained by rounding off the decimal point of a value obtained by multiplying θ by 256/360 is EC and Become.
Therefore, the angle range of 0 ° ≦ θ <180 ° is 0 ≦ EC <127, and the angle range of 180 ° ≦ θ <360 ° is 128 ≦ EC <255.

サーチ制御部6は、照合用データとモデルデータとの間で対応関係にある画素の組み合わせをM組設定する(M≧2;以下の具体例ではM=16)。第1演算部11では、このM組について、上記の方法により導出された整数表現のエッジコードECの角度差を算出する演算を一括で実行する。第2演算部12では、第1演算部11により算出されたM個の角度差を累計する演算を一括で実行する。   The search control unit 6 sets M combinations of pixels having a correspondence relationship between the matching data and the model data (M ≧ 2; M = 16 in the following specific example). The first calculation unit 11 collectively executes a calculation for calculating the angle difference of the integer-represented edge code EC derived by the above method for the M sets. The second calculation unit 12 collectively executes a calculation for accumulating the M angle differences calculated by the first calculation unit 11.

また、第1演算部11では、演算対象のエッジコードECを符号なし8ビット整数ではなく、2の補数表現による符号付き8ビット整数とみなして演算を実行する。一方、第2演算部12では、64ビットの記憶領域に累計値を格納すると共に、第1演算部11により算出された角度差を符号なし8ビット整数とみなして、累計演算を実行する。   Further, the first calculation unit 11 performs the calculation by regarding the edge code EC to be calculated as a signed 8-bit integer represented by 2's complement not an unsigned 8-bit integer. On the other hand, the second calculation unit 12 stores the total value in a 64-bit storage area, and regards the angle difference calculated by the first calculation unit 11 as an unsigned 8-bit integer, and executes the total calculation.

図2は、エッジコードECを表す符号なし8ビット整数の10進表記および2進表記の組み合わせに、この整数を2の補数表現による符号なし8ビット整数とみなした場合に当該整数が表す値を対応づけたテーブルを示す。また、テーブルの欄外に、各組み合わせとECの元データであるθ(0°≦θ<360°)との関係を示す。   FIG. 2 shows a value represented by an integer when an unsigned 8-bit integer representing an edge code EC is combined with a decimal notation and a binary notation and this integer is regarded as an unsigned 8-bit integer in two's complement notation. The associated table is shown. Further, the relationship between each combination and θ (0 ° ≦ θ <360 °) which is the original data of EC is shown outside the table.

このテーブルに示すとおり、0°≦θ<180°の範囲の角度θに対応する0〜127の整数は、2の補数表現による整数とみなしても、同じ値となる。
これに対し、180°≦θ<360°の範囲の角度θに対応する128〜255の整数は、2の補数表現による整数であるとみなすと、−128から−1までの範囲の負の整数となる。
As shown in this table, an integer from 0 to 127 corresponding to an angle θ in the range of 0 ° ≦ θ <180 ° is the same value even if it is regarded as an integer in 2's complement expression.
On the other hand, an integer of 128 to 255 corresponding to an angle θ in a range of 180 ° ≦ θ <360 ° is a negative integer in a range of −128 to −1 when it is regarded as an integer in 2's complement expression. It becomes.

図3は、上記の2の補数表現による整数をθの角度範囲に対応づけて示したものである。この図3に示すように、0°から180°までの角度θは、エッジコードの導出時の規定どおり、0°の方向を基準とする反時計回りの回転角度として示されるが、180°以上の角度θは、反対に、0°の方向を基準とする時計回り方向の角度として示されることになる。この仕組みは、エッジコードだけでなく、エッジコードから算出される角度差にもあてはまる。   FIG. 3 shows the integer in the two's complement expression in association with the angle range of θ. As shown in FIG. 3, the angle θ from 0 ° to 180 ° is shown as a counterclockwise rotation angle with respect to the direction of 0 ° as defined in the derivation of the edge code, but 180 ° or more. In contrast, the angle θ is indicated as a clockwise angle with respect to the direction of 0 °. This mechanism applies not only to the edge code but also to the angle difference calculated from the edge code.

図4(1)〜(4)は、角度差の算出の対象となる2つのエッジコードの値の組み合わせを4通り設定して、これらを0°から360°までの角度範囲に対応させて示す。各図では、0°,90°,128°,270°を、それぞれ符号なし8ビット整数によるエッジコードによる数値0,64,128,192により示している。一方、算出対象の2つのエッジコードについては、一方をA、他方をBとして、2の補数表現に基づく方向まわりの角度として示す。   4 (1) to 4 (4) show four combinations of two edge code values to be subjected to angle difference calculation, and show these corresponding to an angle range from 0 ° to 360 °. . In each figure, 0 °, 90 °, 128 °, and 270 ° are indicated by numerical values 0, 64, 128, and 192 based on edge codes using unsigned 8-bit integers, respectively. On the other hand, for the two edge codes to be calculated, one is A and the other is B, and is shown as an angle around the direction based on the two's complement expression.

以下、A,Bの値に対応する符号なし8ビット整数をa,bとして説明する。
まず、A≧0,B<0(0≦a<128,128≦b≦359)の場合には、
|A−B|=|A|+|B|となる。
Hereinafter, an unsigned 8-bit integer corresponding to the values A and B will be described as a and b.
First, if A ≧ 0, B <0 (0 ≦ a <128, 128 ≦ b ≦ 359),
| 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 (1) and 4 (2) show cases in which A ≧ 0 and B <0. As shown in FIG. 4A, when the angle between the direction indicated by A and the direction indicated by B across the direction of 0 ° is smaller than 180 °, | A | + | B | <128 Therefore, the value of | A | + | B | is directly applied to | A−B |.

一方、図4(2)に示すように、0°の方向を挟んでAが示す方向とBが示す方向とがなす角度が180°以上になる場合には、2の補数表現による|A|+|B|の値は負の値となる。よって、|A|+|B|を示す負の値の絶対値が|A−B|にあてはめられる。すなわち、180°の方向を挟んでAが示す方向とBが示す方向とがなす角度(図4(2)中の角度C)が|A−B|にあてはめられることになる。   On the other hand, as shown in FIG. 4B, when the angle formed by the direction indicated by A and the direction indicated by B across the direction of 0 ° is 180 ° or more, | A | The value of + | B | is a negative value. Therefore, the absolute value of a negative value indicating | A | + | B | is applied to | A−B |. That is, the angle formed by the direction indicated by A and the direction indicated by B across the 180 ° direction (angle C in FIG. 4B) is applied to | A−B |.

A,Bがともに0以上となる場合(図4(3))や、A,Bがともに負の値となる場合(図4(4))には、|A−B|=|A|−|B|となる。
よって、0≦|A−B|≦127となる。
When both A and B are 0 or more (FIG. 4 (3)), or when both A and B are negative values (FIG. 4 (4)), | A−B | = | A | − | B |.
Therefore, 0 ≦ | A−B | ≦ 127.

このように、図4(1)〜(4)のいずれの事例においても、|A−B|の値は、0から127までの整数として表されるが、確認のため、以下に図4(1)(2)に対応する具体例を2つあげる。なお、各例で使用する数値は、いずれも図2のテーブルに示されている。   As described above, in any case of FIGS. 4 (1) to 4 (4), the value of | A−B | is expressed as an integer from 0 to 127. 1) Two specific examples corresponding to (2) are given below. The numerical values used in each example are all shown in the table of FIG.

まず、図4(1)の例として、a=10(00001010),b=250(11111010)とすると、00001010−11111010=11110000となる。この演算結果を符号なしの整数とすると240になる。この場合には、もう一段階、256−240の演算を行い、その演算結果の絶対値を角度差とするので、角度差は16となる。
一方、上記の演算結果を2の補数表現による整数とみなすと、その値は−16となるから、その絶対値を求めることにより、16を導出することができる。
First, in the example of FIG. 4A, if a = 10 (000001010) and b = 250 (11111010), then 00001010-11111010 = 11110000. If this calculation result is an unsigned integer, 240 is obtained. In this case, the calculation of another step, 256-240, is performed, and the absolute value of the calculation result is used as the angle difference, so the angle difference is 16.
On the other hand, if the above calculation result is regarded as an integer in 2's complement expression, the value becomes -16. Therefore, 16 can be derived by obtaining the absolute value.

つぎに図4(2)の例として、a=100(01100100),b=156(10011100)とすると、01100100−10011100=11001000となる。この演算結果を符号なしの整数とすると200になるが、この場合には、もう一段階、256−200の演算を行うことにより、角度差56が導出される。
一方、上記の演算結果を2の補数表現による整数とみなすと、その値は−56となるから、その絶対値を求めることにより、56を導出することができる。
Next, as an example of FIG. 4B, when a = 100 (01100100) and b = 156 (10011100), 01100100-10011100 = 11001000 is obtained. If this calculation result is an unsigned integer, it becomes 200. In this case, the angle difference 56 is derived by performing another calculation, 256-200.
On the other hand, if the above calculation result is regarded as an integer in 2's complement notation, the value becomes −56. Therefore, 56 can be derived by obtaining the absolute value.

上記のとおり、0〜255の範囲で表されたエッジコードECにより差の絶対値を求めた場合に演算結果が128以上(180°以上に相当)となるケースでも、その差の値を2の補数表現による負の値とみなして、2の補数表現に基づき絶対値に転換すれば、どのような値の組み合わせによる演算でも、0から127までの数値(すなわち0°以上180°未満の角度範囲に対応する数値)の範囲内の角度差を得ることができる。第2演算では、この角度差を符号なし8ビット整数として累計するが、0から127までの数値であれば、符号なしでも符号付きでも同値であるので、演算結果に矛盾が生じることはない。しかも、8ビットで表すことができる数値が2倍になるので、累計値の増大にも対応しやすくなる。   As described above, even when the calculation result is 128 or more (corresponding to 180 ° or more) when the absolute value of the difference is obtained by the edge code EC expressed in the range of 0 to 255, the difference value is set to 2. As long as it is regarded as a negative value in the complement expression and converted to an absolute value based on the two's complement expression, a numerical value from 0 to 127 (that is, an angle range of 0 ° to less than 180 °) can be obtained by any combination of values. Can be obtained. In the second calculation, this angular difference is accumulated as an unsigned 8-bit integer. However, if the numerical value is from 0 to 127, the value is the same regardless of whether it is unsigned or signed. In addition, since the numerical value that can be represented by 8 bits is doubled, it is easy to cope with an increase in the cumulative value.

演算対象の2つのエッジコードを符号付き8ビット整数とみなすことで、どのような値の組み合わせでも、180°以内の角度差に相当する0〜127の数値を得ることができるので、演算式の場合分けが不要になる。これを利用して、第1演算部11では、M組の画素の組み合わせを対象にしたSIMD演算を実行する。第2演算部12でも、第1演算部11により算出された角度差の累計演算を一活で行うSIMD演算を実行する。   By regarding the two edge codes to be calculated as signed 8-bit integers, a numerical value of 0 to 127 corresponding to an angle difference within 180 ° can be obtained with any combination of values. Case separation is unnecessary. Using this, the first calculation unit 11 executes SIMD calculation for the combination of M pixels. Also in the 2nd calculating part 12, the SIMD calculation which performs the total calculation of the angle difference calculated by the 1st calculating part 11 in one activity is performed.

以下、このSIMD演算を用いたサーチ処理の手順を詳細に説明する。なお、以下では画素のことを便宜上、「点」という場合がある。
図5は、モデル画像を例示したものである。以下の説明では、このモデル画像の左上頂点を基準点として、その座標を(X,Y)とする。また、モデル画像の横方向(x軸に対応)の幅(画素数)をdXとし、縦方向(y軸に対応)の幅(画素数)をdYとする。また、モデル画像において、基準点(X,Y)からx方向にi画素、y方向にj画素離れている画素の座標を、(X+i,Y+j)とする。
これらのパラメータは、このモデル画像から作成されるモデルデータ(エッジコードによる疑似画像)にも、適用される。
Hereinafter, the procedure of search processing using this SIMD calculation will be described in detail. In the following description, a pixel may be referred to as a “point” for convenience.
FIG. 5 illustrates a model image. In the following description, the upper left vertex of this model image is used as a reference point, and its coordinates are (X 0 , Y 0 ). The width (number of pixels) in the horizontal direction (corresponding to the x axis) of the model image is dX, and the width (number of pixels) in the vertical direction (corresponding to the y axis) is dY. In the model image, the coordinates of a pixel that is i pixels in the x direction and j pixels in the y direction from the reference point (X 0 , Y 0 ) are defined as (X 0 + i, Y 0 + j).
These parameters are also applied to model data (pseudo image by edge code) created from this model image.

図6(1)は、照合用データに相当する疑似画像を示すとともに、その疑似画像中に、モデルデータとの1回分のマッチングの対象となる領域を、g1,g2,g3・・・として示す。図6(2)は、これらの領域g1,g2,g3・・・の中の1つ(領域gn)を拡大したものである。   FIG. 6 (1) shows a pseudo image corresponding to the collation data, and the regions to be matched once with the model data are shown as g1, g2, g3... In the pseudo image. . FIG. 6B is an enlarged view of one of these regions g1, g2, g3... (Region gn).

この実施例では、上記の照合用データに対し、図5のモデル画像から作成されたモデルデータを、x軸に対しては16画素おきに、y軸に対しては1画素ずつ、位置をずらして対応づけて、マッチング処理を実行する。毎時のマッチング処理では、図6(2)に示すように、モデルデータよりもx軸方向の幅が15画素分大きい領域が設定され、その左上頂点が基準点(x,y)に設定される。図6(2)中に一点鎖線で示すように、この領域は、モデルデータと同じサイズの領域をx軸に沿って1画素ずつずらして15回走査する場合の走査範囲に相当する。 In this embodiment, the position of the model data created from the model image of FIG. 5 is shifted by 16 pixels with respect to the x-axis and by one pixel with respect to the y-axis with respect to the above-described verification data. And matching processing is executed. In the hourly matching process, as shown in FIG. 6 (2), an area whose width in the x-axis direction is 15 pixels larger than the model data is set, and its upper left vertex is set as a reference point (x 0 , y 0 ). Is done. As indicated by the alternate long and short dash line in FIG. 6B, this region corresponds to a scanning range in the case where a region having the same size as the model data is scanned 15 times by shifting one pixel along the x axis.

マッチング処理においては、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個の角度差をそれぞれ対応する配列内の値に加算する。 In the matching process, 16 pixels P arranged along the x-axis with the pixel P 0 at the coordinate corresponding to the pixel of interest (X 0 + i, Y 0 + j) in the model pattern set by i and j as the head. 0 , P 1 ,... P 15 are combined with the pixel of interest, respectively, and the angle difference for each combination is calculated by the SIMD calculation of the first calculation unit 11. Furthermore, in the SIMD operation of the second arithmetic unit 12, the pixel P 0 of the reference data side, P 1, 16 pieces of sequence ur corresponding to the arrangement order of ··· P 15 (0), ur (2), · Using ur (15), the 16 angular differences calculated by the first calculation unit 11 are added to the values in the corresponding array.

上記2段階のSIMD演算により、通常はモデルデータをx軸方向に1画素ずつずらしながら16回分のマッチング処理を実行する必要がある範囲のマッチング処理を、一括して実施することができる。これにより、マッチング処理に要する時間を大幅に短縮することができる。   By the two-stage SIMD calculation, it is possible to collectively perform matching processing in a range in which it is usually necessary to execute matching processing for 16 times while shifting the model data pixel by pixel in the x-axis direction. As a result, the time required for the matching process can be significantly reduced.

以後は、照合用データにおいて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)とする。 Hereinafter, a pixel group in the region gn (n = 1, 2, 3,...) Processed by one matching process in the verification data is referred to as a “group”. Also, the coordinates of the leftmost point P 0 in the pixel group corresponding to the pixel of interest (X 0 + i, Y 0 + j) of the model data in the group gn are set as (xi, yj), and the following points P 1 , The coordinates of P 2 ,... P 15 are (xi + 1, yj) (xi + 2, yj).

図7は、照合用データに対するサーチ処理における一連の流れを示し、図8は図7中のステップS2における詳細手順を示し、図9は図7中のステップS7における詳細手順を示す。以下、図7のメイン処理のフローチャートの流れに沿って説明しながら、適宜、図8および図9を参照する。   FIG. 7 shows a series of flows in search processing for collation data, FIG. 8 shows a detailed procedure in step S2 in FIG. 7, and FIG. 9 shows a detailed procedure in step S7 in FIG. Hereinafter, referring to the flowchart of the main process in FIG. 7, reference will be made to FIGS. 8 and 9 as appropriate.

この実施例のサーチ処理は、計測モードの選択に応じて開始される。最初に、画像入力部1が照合対象の画像を入力する(ステップS1)と、入力画像処理部3によって、入力画像内の各画素のエッジコードが導出され、照合用データが作成される(ステップS2)。   The search process of this embodiment is started according to the selection of the measurement mode. First, when the image input unit 1 inputs an image to be collated (step S1), the input image processing unit 3 derives an edge code of each pixel in the input image and creates collation data (step). S2).

図8は、照合用データの作成処理のうち、画素毎に実行される手順を取り出したものである。ここで、この図8を参照する。入力画像処理部3では、処理対象の画素につき、x,yの各軸の濃度勾配Ex,Eyを求める(ステップS21)。さらにEx,Eyの二乗和を求めて、これを濃度勾配強度とし(ステップS22)、その値を所定のしきい値と比較する(ステップS23)。   FIG. 8 shows the procedure executed for each pixel in the verification data creation process. Reference is now made to FIG. The input image processing unit 3 obtains density gradients Ex and Ey on the x and y axes for the pixel to be processed (step S21). Further, the sum of squares of Ex and Ey is obtained and used as the density gradient strength (step S22), and the value is compared with a predetermined threshold value (step S23).

濃度勾配強度がしきい値以上であれば(ステップS23が「YES」)、先に述べたコード変換テーブル4を参照して、Ey/Exに対応するエッジコードを読み出し(ステップS24)、これを処理対象の画素の座標に格納する(ステップS26)。一方、濃度勾配強度がしきい値を下回る場合(ステップS23が「NO」)には、エッジコードに127を設定し(ステップS25)、これを処理対象の画素の座標に格納する(ステップS26)。   If the density gradient strength is greater than or equal to the threshold value ("YES" in step S23), the edge code corresponding to Ey / Ex is read with reference to the code conversion table 4 described above (step S24). Stored in the coordinates of the pixel to be processed (step S26). On the other hand, when the density gradient strength is below the threshold value (step S23 is “NO”), 127 is set as the edge code (step S25), and this is stored in the coordinates of the pixel to be processed (step S26). .

上記の処理により、画像中のパターンのエッジを構成する画素(エッジ画素)には、その濃度勾配に応じたエッジコードが設定されるが、その他の濃度勾配強度が弱い画素には一律に127の値が設定される。127という値は、エッジコードが符号付き8ビット整数とみなされた場合の最大値に相当するが、エッジ画素でない画素どおしが組み合わせられた場合の角度差は0となるので、累計演算には影響を及ぼさない。逆に、わずかな濃度むらによる濃度勾配が角度差の累計値に影響を与えることがなくなり、累計値の精度が向上する。しかも、エッジ画素とエッジ画素以外の画素との組み合わせによる角度差を強調する効果が生じるので、不一致度としての確度を高めることができる。
なお、濃度勾配強度が低い画素には、127に限らず、最小値の0を設定してもよい。
With the above processing, the edge code corresponding to the density gradient is set for the pixels (edge pixels) constituting the edge of the pattern in the image, but 127 pixels are uniformly applied to the other pixels with low density gradient strength. Value is set. The value 127 corresponds to the maximum value when the edge code is regarded as a signed 8-bit integer, but the angle difference when pixels that are not edge pixels are combined is 0. Has no effect. On the contrary, the density gradient due to slight density unevenness does not affect the accumulated value of the angle difference, and the accuracy of the accumulated value is improved. In addition, since the effect of enhancing the angle difference due to the combination of the edge pixel and the pixel other than the edge pixel is produced, the accuracy as the degree of mismatch can be increased.
Note that a pixel having a low density gradient strength is not limited to 127, and a minimum value of 0 may be set.

図7に参照を戻す。
ステップS3からは、サーチ制御部6が主体となって実行する処理になる。ステップS3では、処理対象のグループを表すカウンタnを初期値の0にすると共に、基準点(左上頂点)のy座標yに照合用データの左上頂点のy座標y1(図6(1)に示す。)をセットし、ステップS4〜11のループに入る。
Returning to FIG.
From step S3, the search control unit 6 performs the main process. In step S3, the counter n representing the group to be processed as well as the initial value of 0, the reference point y coordinates of the upper left vertex of the reference data to the y-coordinate y 0 (upper left corner) y1 (FIG. 6 (1) Set) to enter the loop of steps S4 to S11.

はじめてステップS4〜S11のループに入ったときのケースで説明すると、ステップS4では、基準点のx座標xに、照合用データの左上頂点のx座標x1(図6(1)に示す。)をセットする。この処理と先のステップS3の処理とによって、照合用データの左上頂点(x1,y1)が基準点に初期設定される。
ステップS5では、ステップS3で0に設定したnに1を加算する処理により、n=1とする。
The first time will be described in case when entering the loop of steps S4~S11, in step S4, the x-coordinate x 0 of the reference point, x coordinate of the upper left vertex of the reference data x1 (shown in FIG. 6 (1).) Set. By this process and the process of the previous step S3, the upper left vertex (x1, y1) of the verification data is initialized to the reference point.
In step S5, n = 1 is set by adding 1 to n set to 0 in step S3.

ステップS6では、モデルパターンの基準点(X,Y)に、照合用データの基準点(x,y)を対応づける。この段階では、ステップS3,S4において、(x1,y1)が照合用データの基準点(x,y)に設定されているので、照合用データの左上頂点がモデルパターンの基準点(X,Y)に対応づけられることになる。 In step S6, the reference point (x 0 , y 0 ) of the verification data is associated with the reference point (X 0 , Y 0 ) of the model pattern. At this stage, in steps S3 and S4, (x1, y1) is set as the reference point (x 0 , y 0 ) for the matching data, so the upper left vertex of the matching data is the reference point (X 0 , Y 0 ).

このようにnのインクリメントと基準点の対応づけとを行うことにより、図6(1)に示したグループg1が照合対象のグループに設定される。ステップS7では、このグループg1に対するマッチング処理により、当該グループg1内の最小の不一致度UR1と、その不一致度への対応点Q1(UR1が得られた位置を示す。)の座標を特定する。   Thus, by performing the increment of n and the association of the reference points, the group g1 shown in FIG. 6A is set as a group to be collated. In step S7, the minimum disagreement UR1 in the group g1 and the coordinates of the corresponding point Q1 corresponding to the disagreement (indicating the position where UR1 is obtained) are specified by the matching process for the group g1.

ステップS7が終了すると、ステップS9においてxに16を加算した後に、ステップS5に戻ってnの値を1つ増やし、さらにステップS6で、更新されたxに基づく点(x,y)にモデルパターンの基準点(X,Y)を対応づける。これにより、モデルパターンに対応づけられる領域がx軸に沿って16画素分移動して、新しいグループg2が設定された状態となる。このグループg2に対してもステップS7が実行される。 When step S7 has been completed, after adding x 0 to 16 in step S9, incremented by 1 the value of n back to the step S5, further in step S6, a point based on x 0, which is updated (x 0, y 0 ) To the reference point (X 0 , Y 0 ) of the model pattern. As a result, the region associated with the model pattern is moved by 16 pixels along the x-axis, and a new group g2 is set. Step S7 is also executed for this group g2.

以下も同様の流れで処理を進行させることによって、毎回、x方向の幅がdX+15で、y方向の幅がdYの領域内の画素群によるグループが設定され、そのグループ内における最小の不一致度URnおよびその対応点Qnが特定される。   In the following, by proceeding in the same flow, a group of pixel groups in the region where the width in the x direction is dX + 15 and the width in the y direction is dY is set each time, and the minimum mismatch URn in the group is set. And its corresponding point Qn is specified.

処理中のグループの右端のx座標(x+dx+15)がx2以上となると(ステップS8が「YES」)、ステップS11においてyに1を加算した後に、ステップS4に戻り、xを再びx1に設定する。このステップS11およびステップS4によって、次のグループの基準点(x,y)は、1画素下にずれた状態となってグループの左端に戻る。 When the x coordinate (x 0 + dx + 15) of the right end of the group being processed is equal to or greater than x2 (“YES” in step S8), 1 is added to y 0 in step S11, and then the process returns to step S4 and x 0 is again x1. Set to. By this step S11 and step S4, the reference point (x 0 , y 0 ) of the next group is shifted down by one pixel and returned to the left end of the group.

その後、処理対象のグループの右端のx座標(x+dx+15)がx2以上となり、下端のy座標(y+dY)がy2以上となるまで、xまたはyを更新し(ステップS9,S11)、nの値の更新(ステップS5)およびモデルパターンの基準点(X,Y)への対応点の更新(ステップS6)を行うことにより、処理対象のグループを変更する。そして、変更後のグループに対しステップS7を実行する。 Thereafter, x 0 or y 0 is updated until the x coordinate (x 0 + dx + 15) at the right end of the group to be processed becomes x2 or more and the y coordinate (y 0 + dY) at the bottom becomes y2 or more (steps S9 and S11). ), Updating the value of n (step S5) and updating the corresponding point to the reference point (X 0 , Y 0 ) of the model pattern (step S6), the group to be processed is changed. And step S7 is performed with respect to the group after a change.

ここで、図9を参照して、各グループgnに対するステップS7のマッチング処理を詳細に説明する。   Here, with reference to FIG. 9, the matching process of step S7 with respect to each group gn is demonstrated in detail.

このマッチング処理は、処理対象のグループgn内に、モデルデータに対応する大きさの照合領域を16個設定して、これらの照合領域毎に、モデルデータ側の対応画素とのエッジコードの角度差を求める第1演算と、角度差の累計値を求める第2演算とを実行するものである。最初のステップS101では、照合領域毎の累計値を格納する配列ur(k)(k=0〜15)をゼロリセットする。   This matching process is performed by setting 16 matching areas having a size corresponding to the model data in the group gn to be processed, and for each of these matching areas, the angle difference of the edge code with the corresponding pixel on the model data side. And a second calculation for obtaining a cumulative value of angle differences. In the first step S101, the array ur (k) (k = 0 to 15) storing the accumulated value for each collation area is reset to zero.

つぎに、i,jに初期値の0をセットし(ステップS102)、ステップS103〜S109のループに入る。
図5を用いて説明したように、モデルデータ内の着目画素は、基準点(X,Y)とi,jの値とを用いて、(X+i,Y+j)と表される。ステップS103では、照合用データ側の基準点の座標x,yに同様にi,jを加えることにより、照合対象の16点の先頭の点Pを示す座標xi,yjを導出する。
Next, initial values 0 are set in i and j (step S102), and a loop of steps S103 to S109 is entered.
As described with reference to FIG. 5, the target pixel in the model data is expressed as (X 0 + i, Y 0 + j) using the reference point (X 0 , Y 0 ) and the values of i, j. The In step S103, by adding i and j to the coordinates x 0 and y 0 of the reference point on the collation data side, coordinates xi and yj indicating the first point P 0 of the 16 points to be collated are derived.

ステップS104では、k=0〜15として、照合対象の各点の座標を(xi+k,yj)と示す。このステップS104は、第1演算部11による処理に相当するもので、(xi+k,yj)で特定される16点P〜P15をそれぞれモデルデータ側の座標(X+i,Y+j)の点と組み合わせて、組み合わせ毎のエッジコードの角度差(差の絶対値)dT(k)を一括で算出する。先に説明したように、各エッジコードは符号付き8ビット整数とみなされて処理されるので、エッジコードの値の組み合わせにかかわらず、演算を統一することができる。 In step S104, assuming that k = 0 to 15, the coordinates of each point to be collated are indicated as (xi + k, yj). This step S104 corresponds to the processing by the first calculation unit 11, and the 16 points P 0 to P 15 specified by (xi + k, yj) are coordinated on the model data side (X 0 + i, Y 0 + j), respectively. In combination with this point, the angle difference (absolute value) dT (k) of the edge code for each combination is calculated in a lump. As described above, each edge code is regarded as a signed 8-bit integer and processed, so that the operation can be unified regardless of the combination of edge code values.

つぎのステップS105は、第2演算部12による処理に相当するもので、同様にk=0〜15として、ステップS104で算出された16個の角度差dT(k)を、それぞれkの値が一致する累計値ur(k)に加算する演算を一括で実行する。この演算では、各角度差dT(k)は符号なし8ビット整数として取り扱われる。また累計値ur(k)には、累計値の増大に対応できるように、64ビットのデータ長が設定される。   The next step S105 corresponds to the processing by the second calculation unit 12, and similarly, k = 0 to 15 and the sixteen angular differences dT (k) calculated in step S104 are represented by k values. Calculations to be added to the matching accumulated value ur (k) are executed in a batch. In this calculation, each angular difference dT (k) is treated as an unsigned 8-bit integer. The cumulative value ur (k) is set to a data length of 64 bits so that the cumulative value can be increased.

以下、同様にして、i=dXかつj=dYとなるまでi,jの値を1ずつ増やすことにより(ステップS106,S107,S108,S109)、モデルデータ中の着目画素および照合対象の画素P〜P15を変更しつつ、ステップS104およびS105を繰り返す。 Similarly, by increasing the values of i and j by 1 until i = dX and j = dY (steps S106, S107, S108, S109), the pixel of interest and the pixel P to be compared in the model data while changing the 1 to P 15, and repeats the steps S104 and S105.

なお、ステップS104では、毎回、演算対象のエッジコードを格納するレジスタやdT(k)をリセットしてから演算を実行する。x,yの各軸方向における照合用データの画素数によっては、右端側や下端側のグループでは図6(2)に示した大きさを確保できず、モデルデータが照合用データからはみ出る可能性があるが、上記のリセット処理によれば、モデルデータ側のエッジコードに組み合わせられるエッジコードが存在しない場合には、そのエッジコードを0とみなした演算を実行することができる。これによりSIMD演算で演算エラーが生じるのを防ぐと共に、モデルデータに対応する可能性のない照合領域における累計値ur(k)を大きな値にすることができる。   In step S104, the calculation is executed after resetting the register for storing the calculation target edge code and dT (k) each time. Depending on the number of pixels of the collation data in the x and y axis directions, the size shown in FIG. 6 (2) cannot be secured in the right end group or the lower end group, and the model data may protrude from the collation data. However, according to the above-described reset processing, when there is no edge code combined with the edge code on the model data side, it is possible to execute an operation with the edge code regarded as 0. As a result, it is possible to prevent a calculation error from occurring in the SIMD calculation and to increase the cumulative value ur (k) in the collation area that has no possibility of corresponding to the model data.

モデルデータ内の全ての画素に対する処理が終了すると、ステップS106およびS108が「YES」となり、ステップS110以下の処理に進む。
ステップS110では、kを1に設定すると共に、グループg1につき求めた累計値ur(1)を不一致度URnに初期設定する。また、ステップS111において、グループg1の基準点の座標である(x,y)を、不一致度Snへの対応点Qnとして初期設定する。
When the processes for all the pixels in the model data are completed, Steps S106 and S108 are “YES”, and the process proceeds to Step S110 and subsequent steps.
In step S110, k is set to 1 and the cumulative value ur (1) obtained for the group g1 is initialized to the mismatch degree URn. In step S111, (x 0 , y 0 ), which is the coordinates of the reference point of the group g1, is initialized as the corresponding point Qn to the mismatch degree Sn.

この後は、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はスキップされる。
Thereafter, k is incremented by 1, and the cumulative value ur (k) specified by the updated k is compared with URn (steps S112 and S113). If ur (k) <URn (step S113 is “ YES ”), ur (k) is set to URn (step S114). Further, the coordinate of the corresponding point Qn to URn is changed to (x 0 + k, y 0 ) (step S115).
On the other hand, if ur (k) ≧ URn, steps S114 and S115 are skipped.

最終的にk=15となると(ステップS116が「YES」)、これをもってグループgnに対する処理は終了する。このとき、URnには、16個の累計値ur(k)(k=0〜15)の中の最小値が格納され、Qnには、その最小値が得られた領域の基準点の座標が格納される。   When k = 15 is finally set (step S116 is “YES”), the processing for the group gn is finished. At this time, the minimum value among the 16 cumulative values ur (k) (k = 0 to 15) is stored in URn, and the coordinate of the reference point of the area where the minimum value is obtained is stored in Qn. Stored.

ここで、再び図7に参照を戻し、モデルデータが対応づけられたグループ毎のマッチング処理が全て終了した後の処理について説明する。
最後のグループに対する処理が終了すると、ステップS8,S10が「YES」となってステップS12に進み、この段階でのnの値をNとした上で、nを1に戻す(Nの値によりグループの設定数が保存されたことになる。)。
Here, referring back to FIG. 7 again, the processing after all the matching processing for each group to which the model data is associated will be described.
When the processing for the last group is completed, Steps S8 and S10 are “YES” and the process proceeds to Step S12. The value of n at this stage is set to N, and then n is returned to 1 (the group value depends on the value of N). The number of settings for was saved.)

つぎに、ステップS13では、グループg1の不一致度UR1を照合用データ全体の不一致度URとして初期設定し、その不一致度URへの対応点Qに不一致度UR1への対応点Q1の座標を初期設定する。   Next, in step S13, the mismatch degree UR1 of the group g1 is initially set as the mismatch degree UR of the entire matching data, and the coordinates of the corresponding point Q1 corresponding to the mismatch degree UR1 are initially set to the corresponding point Q corresponding to the mismatch degree UR. To do.

この後は、図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〜g1毎の最小不一致度UR1〜UR15の中で最も小さな値が、照合用データ内の不一致度URとして特定される。さらに、その不一致度URが得られたときの照合領域においてモデルデータの基準点(X,Y)に対応づけられた点Qの座標が、マッチング位置として確定する。 Thereafter, in the same procedure as in steps S112 to S116 in FIG. 9, the value of n is incremented by 1 to pay attention to each group gn in turn, and the mismatch URn of the group gn is compared with UR (step S14). , S15), if URn is smaller than UR ("YES" in step S15), the URn is set to UR and the corresponding point Qn is set to Q (steps S16 and S17). By executing this process until n = N (“YES” in step S18), the smallest value among the minimum mismatch UR1 to UR15 for each of the groups g1 to g1 is the mismatch UR in the matching data. Identified as Further, the coordinates of the point Q associated with the reference point (X 0 , Y 0 ) of the model data in the collation area when the inconsistency UR is obtained are determined as the matching position.

最後のステップS19では、確定した点Qの座標をマッチング位置として出力する。ただし、出力はマッチング位置のみに限らず、不一致度UR、またはこれを一致度に変換した値を一緒に出力してもよい。また出力は表示や外部への出力に限らず、たとえば、パターン認識結果を受けて別の処理を行うアプリケーション(たとえばOCR用のアプリケーション)に、マッチング位置の座標やdX,dYの値など、パターンが含まれる範囲を特定するためのデータを提供してもよい。   In the last step S19, the coordinates of the determined point Q are output as a matching position. However, the output is not limited to the matching position, and the mismatch degree UR or a value obtained by converting the mismatch degree UR may be output together. Also, the output is not limited to display or output to the outside. For example, an application that receives a pattern recognition result and performs another process (for example, an application for OCR) can provide a pattern such as coordinates of matching positions and values of dX and dY. Data for specifying the included range may be provided.

以上に説明したサーチ処理によれば、モデルデータに対し、一度に16個の照合領域を設定して、これらの照合領域に対するマッチング処理を一括して実行することができるので、処理に要する時間を格段に短縮することができる。   According to the search process described above, 16 collation areas can be set for the model data at a time, and the matching process for these collation areas can be collectively executed. It can be significantly shortened.

また、0°から360°の角度範囲をそのまま反映させた8ビットの整数をエッジコードとして疑似画像を作成するには、濃度勾配Ex,Eyから算出される角度θを1/2倍した値をエッジコードとする必要があるが、そうすると分解能が半分になるので、角度差の精度も粗くなってしまう。これに対し、上記の実施例では、角度θを256/356倍した値をエッジコードとするので、角度差の精度を大幅に高めることができる。   In order to create a pseudo image using an 8-bit integer that reflects the angle range from 0 ° to 360 ° as an edge code, a value obtained by multiplying the angle θ calculated from the density gradients Ex and Ey by ½ is used. Although it is necessary to use an edge code, since the resolution is halved, the accuracy of the angle difference becomes coarse. On the other hand, in the above embodiment, since the value obtained by multiplying the angle θ by 256/356 is used as the edge code, the accuracy of the angle difference can be greatly improved.

加えて、上記実施例では、エッジ画素以外の画素のエッジコードを127に置き換える処理によって、僅かな濃度勾配が不一致度に影響を及ぼさないようにすると共に、モデルデータとエッジのパターンが整合しない箇所における角度差が大きくなるようにしているので、不一致度の精度を高めることができる。つまり、照合用データが示すパターンの一部がモデルのパターンに一致する場合でも、他の箇所がモデルのパターンとは異なる場合には、不一致度を高めることができる。よって、照合対象の画像のモデル画像に対する類似の度合を正しく判別することが可能になる。   In addition, in the above-described embodiment, by replacing the edge code of the pixels other than the edge pixels with 127, a slight density gradient does not affect the degree of mismatch, and the model data and the edge pattern do not match. Since the angle difference is increased, the accuracy of the mismatch degree can be increased. That is, even when a part of the pattern indicated by the matching data matches the model pattern, the degree of mismatch can be increased if the other part is different from the model pattern. Therefore, it is possible to correctly determine the degree of similarity of the image to be collated with the model image.

また、この特徴を生かせば、照合対象のパターンの適否を検査する処理においても、精度の良い検査をすることが可能になる。この場合に、検査対象の画像がモデル画像と同じサイズであれば、上記の実施例とは異なる方式によるSIMD演算によって、処理速度を短縮することができる。以下、その具体例を説明する。   Further, if this feature is utilized, it is possible to perform a highly accurate inspection even in the process of inspecting the suitability of the pattern to be verified. In this case, if the image to be inspected is the same size as the model image, the processing speed can be shortened by SIMD calculation using a method different from that of the above embodiment. Specific examples will be described below.

図10は、検査の対象となる画像の例を示す。この画像は、入力された画像からあらかじめ定めた計測領域内の画像を切り出して設定されたものであるため、モデル画像と同様に、x軸方向の画素数がdXで,y軸方向の画素数がdYとなっている。   FIG. 10 shows an example of an image to be inspected. Since this image is set by cutting out an image in a predetermined measurement region from the input image, the number of pixels in the x-axis direction is dX and the number of pixels in the y-axis direction, as in the model image. Is dY.

図11は、図10に示した画像を用いた検査の手順を示す。なお、この例における照合対象のモデル画像は先の図5と同じものである。また、この実施例では、照合用画像の左上頂点を基準点として、その座標を(x,y)とする。 FIG. 11 shows an inspection procedure using the image shown in FIG. Note that the model image to be collated in this example is the same as that in FIG. In this embodiment, the upper left vertex of the verification image is used as a reference point, and its coordinates are (x 0 , y 0 ).

以下、適宜、図5,図10を参照しながら、図11の処理手順を説明する。
図11のフローチャートでは省略しているが、この実施例でも、図7のステップS1,S2と同様の処理を実行することにより、照合用の画像におけるエッジコードの分布を示す照合データを作成する。
The processing procedure of FIG. 11 will be described below with reference to FIGS. 5 and 10 as appropriate.
Although omitted in the flowchart of FIG. 11, in this embodiment as well, collation data indicating the distribution of edge codes in the image for collation is created by executing the same processing as steps S1 and S2 of FIG.

また、この実施例でも、先の実施例と同様に、モデルデータ中の着目点を変数i,jによって設定する。ステップS201では、これらi,jに初期値0として設定する。次のステップS202では、累計値urに、初期値として0を設定する。   Also in this embodiment, as in the previous embodiment, the point of interest in the model data is set by variables i and j. In step S201, initial values 0 are set for i and j. In the next step S202, 0 is set as the initial value in the cumulative value ur.

ステップS203では、モデルパターンに、その基準点の座標(X,Y)と上記i,jとを用いて、着目画素の座標(Xi,Yi)を設定する。続いて、照合用データについても、同様に、基準点(x,y)とi,jとを用いて、照合対象の座標(xi,yi)を設定する。図10における点Pは、図5の座標(X+i,Y+i)に対応する位置にある画素である。 In step S203, the coordinates (Xi, Yi) of the pixel of interest are set in the model pattern using the coordinates (X 0 , Y 0 ) of the reference point and the above i, j. Subsequently, the coordinates (xi, yi) to be collated are similarly set for the collation data using the reference point (x 0 , y 0 ) and i, j. A point P 0 in FIG. 10 is a pixel at a position corresponding to the coordinates (X 0 + i, Y 0 + i) in FIG.

ステップS205では、k=0〜15として、モデルデータ中の(Xi+k,Yj)により特定される16点と、照合用データ中の(xi+k,yj)により特定される16点とを抽出し、これらをkの値が一致するもの毎に組み合わせて、組み合わせ毎にエッジコードの角度差dT(k)を算出する。具体的に図10を用いて説明すると、座標(xi,yj)の位置にある点Pはモデルデータの座標(Xi,Yi)の位置にある点と組み合わせられ、座標(xi+1,yj)の位置にある点Pはモデルデータの座標(Xi+1,Yj)の位置にある点と組み合わせられる、という具合に、それぞれの基準点に対する相対位置が一致する画素同士が組み合わせられる。そして、組み合わせ毎にエッジコードの角度差が算出されるのである。 In step S205, as k = 0 to 15, 16 points specified by (Xi + k, Yj) in the model data and 16 points specified by (xi + k, yj) in the matching data are extracted. Are combined for each of the matching values of k, and the angle difference dT (k) of the edge code is calculated for each combination. Specifically, referring to FIG. 10, the point P 0 at the position of the coordinates (xi, yj) is combined with the point at the position of the coordinates (Xi, Yi) of the model data, and the coordinates (xi + 1, yj) The point P 1 at the position is combined with the point at the position of the coordinates (Xi + 1, Yj) of the model data, and so on, and the pixels having the same relative position with respect to each reference point are combined. The angle difference between the edge codes is calculated for each combination.

このステップS205の演算も、各エッジコードを符号付き8ビット整数とみなしたSIMD演算として、一括で実行される。   The calculation in step S205 is also executed collectively as a SIMD calculation in which each edge code is regarded as a signed 8-bit integer.

上記の演算が終了すると、ステップS206において、16組の角度差dT(k)(k=0〜15)をurに加算する演算を実行する。フローチャートでは、簡略化のためにΣdT(k)と記載したが、実際には、
ur=ur+dT(0)+dT(1)+・・・+dT(15)
という演算式を実行すれば良いので、効率良く累計値urを更新することができる。
When the above calculation is completed, in step S206, a calculation for adding 16 sets of angle differences dT (k) (k = 0 to 15) to ur is executed. In the flowchart, ΣdT (k) is described for simplification.
ur = ur + dT (0) + dT (1) +... + dT (15)
Therefore, the cumulative value ur can be updated efficiently.

この後は、iに16を加算し、ステップS203に戻る。このステップS203および続くステップS204では、それぞれ更新されたiの値に基づき、着目画素(Xi,Yj)(xi,yj)をx軸方向に沿って16画素ずらす。これにより、前回の照合対象の画素群の隣の16個の画素が組み合わせられて、これらを対象にステップS205およびS206が実施される。   Thereafter, 16 is added to i, and the process returns to step S203. In step S203 and subsequent step S204, the pixel of interest (Xi, Yj) (xi, yj) is shifted by 16 pixels along the x-axis direction based on the updated value of i. Thereby, the 16 pixels adjacent to the previous pixel group to be collated are combined, and steps S205 and S206 are performed on these.

照合対象の点が画像の右端まで達すると、ステップS207が「YES」となる。この場合には、ステップS210において、jを1加算して、ステップS203に戻る。この処理により、照合対象位置は、1画素下にずれた状態で左端側に戻る。   When the point to be collated reaches the right end of the image, step S207 is “YES”. In this case, j is incremented by 1 in step S210, and the process returns to step S203. By this processing, the collation target position returns to the left end side in a state of being shifted down by one pixel.

以下、同様にして、照合用データとモデルデータとの間で、毎回、16組の画素の組が対応づけされて、各組におけるエッジコードの角度差が一括で算出され、それらの角度差の総和により累計値urが更新される。この実施例でも、ステップS205の演算前に、各レジスタをゼロリセットするので、照合位置が右端側に移動した場合に16組の組み合わせが確保できない場合でも、累計演算に影響を及ぼすことなく、演算を進めることが可能になる。   In the same manner, 16 pixel groups are associated with each other between the matching data and the model data, and the angle difference of the edge code in each group is calculated at once. The accumulated value ur is updated by the sum. Also in this embodiment, since each register is reset to zero before the calculation in step S205, the calculation can be performed without affecting the total calculation even when 16 combinations cannot be secured when the collation position is moved to the right end side. It becomes possible to proceed.

全ての画素の組み合わせに対する処理が終了すると、ステップS207およびS209が「YES」となる。この時点での累計値urは、モデル画像に対する照合対象の画像の不一致度を示すものとなる。ステップS211ではこの不一致度urをあらかじめ定めた基準値ur0と比較し、ur≦ur0であれば、ステップS212に進んで、良判定を出力する。これに対し、ur>ur0となった場合には、ステップS213に進んで、不良判定を出力する。   When the processing for all pixel combinations is completed, steps S207 and S209 are “YES”. The cumulative value ur at this time indicates the degree of mismatch between the image to be verified and the model image. In step S211, the degree of inconsistency ur is compared with a predetermined reference value ur0. If ur ≦ ur0, the process proceeds to step S212, and a good determination is output. On the other hand, if ur> ur0, the process proceeds to step S213 to output a defect determination.

上記の検査でも、16組のエッジコードの角度差を1回の演算で求めるので、不一致度urを導出するまでの演算時間を大幅に短縮することができ、検査の高速化を実現することができる。また、先に述べたように、角度差の精度が高められ、また、モデルのパターンとは異なるパターンが含まれる画像に対する不一致度が高められるような仕組みが導入されているので、検査の精度を向上することが可能になる。   Even in the above-described inspection, the angle difference between 16 sets of edge codes is obtained by one operation, so that the operation time required to derive the inconsistency ur can be greatly reduced, and the inspection speed can be increased. it can. In addition, as described above, the accuracy of the angle difference is increased, and a mechanism is introduced that increases the degree of inconsistency for images containing patterns different from the model pattern. It becomes possible to improve.

3 入力画像処理部
4 コード変換テーブル
5 モデルメモリ
6 サーチ制御部
10 SIMD演算実行部
11 第1演算部
12 第2演算部
3 Input Image Processing Unit 4 Code Conversion Table 5 Model Memory 6 Search Control Unit 10 SIMD Operation Execution Unit 11 First Operation Unit 12 Second Operation Unit

Claims (9)

濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を照合用データとして作成する処理と、モデル画像における濃度勾配方向の分布パターンを表す疑似画像をモデルデータとして前記照合用データに対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を用いて前記照合用データとモデルデータとの不一致度を求める第2演算とを実行する方法において、
前記照合用データを作成する処理では、0°以上360°未満の範囲にある角度を0から255までの整数に置き換えるという定義に従って、前記濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記角度データとして導出し、
前記第1演算では、前記照合用データと同じ定義に基づき作成されたモデルデータと前記照合用データとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データを2の補数表現による符号付き8ビット整数とみなして、これらの整数の差の絶対値を算出し、
前記第2演算では、第1演算で算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行し、
前記照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、前記照合用データとモデルデータとの不一致度として特定する、
ことを特徴とする画像マッチング方法。
A process for creating a pseudo image representing a distribution pattern in the density gradient direction in the grayscale image as matching data, and a pseudo image representing the distribution pattern in the density gradient direction in the model image as model data corresponding to the matching data. A first calculation for obtaining an angular difference in the density gradient direction in pixel units between the pseudo images, and a second calculation for obtaining a degree of mismatch between the verification data and the model data using the angular difference calculated by the first calculation; In the method of performing
In the process of creating the verification data, a predetermined reference for at least the edge pixels in the grayscale image is defined according to the definition of replacing an angle in the range of 0 ° or more and less than 360 ° with an integer from 0 to 255. An unsigned 8-bit integer corresponding to the rotation angle when the density gradient direction in the target pixel is represented by the rotation angle around a specific direction with respect to the direction of
In the first calculation, the angle data in the combined pixel is set to a 2's complement for each set of pixels in a correspondence relationship between the model data created based on the same definition as the verification data and the verification data. Assuming signed 8-bit integers by expression, calculate the absolute value of the difference between these integers,
In the second operation, the absolute value of the difference calculated in the first operation is regarded as an unsigned 8-bit integer and is accumulated.
A cumulative value of absolute values of differences when the first calculation and the second calculation are completed for all of the pixel sets in a correspondence relationship between the verification data and the model data is obtained as the verification data and the model data. Identified as the discrepancy of
An image matching method characterized by that.
請求項1に記載された方法において、
前記モデルデータとして、前記モデル画像における各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像をあらかじめ作成し、
前記照合用データを作成する処理では、モデル画像よりサイズが大きい濃淡画像を対象に、この画像内の各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合用データとして作成し、
前記累計値を格納するための記憶領域をM個(M≧2)設定すると共に、前記照合用データの画素配列にモデルデータの画素配列を合わせる対応づけステップを、モデルデータへの対応位置を一方の座標軸に沿ってM画素分の間隔をあけて動かしながら繰り返し、
毎回の対応づけステップでは、モデルデータ中の各画素に順に着目して、照合用データ中の着目画素に対応する位置にある画素からモデルデータへの対応位置の移動方向に沿って並ぶM個の画素を前記着目画素に個別に組み合わせて、組み合わせ毎に前記角度データを表す整数の差の絶対値を求める第1演算と、第1演算により得たM個の差の絶対値を前記M個の記憶領域に1つずつ対応づけて、各記憶領域内の累計値をそれぞれに対応づけられた差の絶対値の加算により更新する第2演算とを、それぞれSIMD演算として実行する、画像マッチング方法。
The method of claim 1, wherein
As the model data, a pseudo image in which angle data representing the density gradient direction of each pixel in the model image based on the definition is combined with each coordinate is created in advance.
In the process of creating the matching data, a pseudo image in which a grayscale image having a size larger than that of the model image is used as a target and angle data representing the density gradient direction of each pixel in the image based on the definition is combined with each coordinate. Is created as collation data,
The M storage area for storing the cumulative value is set (M ≧ 2), and an associating step for matching the pixel array of the model data with the pixel array of the verification data is performed at one position corresponding to the model data. Repeatedly moving with an interval of M pixels along the coordinate axis of
At each association step, attention is paid to each pixel in the model data in turn, and M pixels lined up along the moving direction of the corresponding position from the pixel corresponding to the target pixel in the matching data to the model data. A pixel is individually combined with the pixel of interest, and a first calculation for obtaining an absolute value of an integer difference representing the angle data for each combination, and M absolute values of M differences obtained by the first calculation are calculated as M An image matching method in which a second operation for associating storage areas one by one and updating a cumulative value in each storage area by adding an absolute value of the difference is performed as a SIMD operation.
請求項2に記載された方法において、
毎回の対応づけステップでは、モデルデータ中の全ての画素に対する第1演算および第2演算が終了したときに前記M個の記憶領域に格納されている累計値の中の最小値をその対応づけステップにおける不一致度として特定すると共に、照合用データ内の前記モデルデータに位置合わせされている領域の位置と前記不一致度として特定された値が格納されていた記憶領域の前記M個の記憶領域内の順位とに基づき、前記照合用データ内における当該不一致度への対応位置を特定し、
毎回の対応づけステップにおいて特定された不一致度の中の最小値を特定して、その最小の不一致度への対応位置を前記モデルデータに対応する位置であると判定する、画像マッチング方法。
The method of claim 2, wherein
In each association step, the minimum value among the cumulative values stored in the M storage areas when the first computation and the second computation for all the pixels in the model data are completed is the association step. In the M storage areas of the storage area in which the position of the area aligned with the model data in the verification data and the value specified as the mismatch degree are stored. Based on the ranking, the corresponding position to the inconsistency in the matching data is specified,
An image matching method in which a minimum value among the inconsistencies specified in each association step is specified, and a position corresponding to the minimum inconsistency is determined to be a position corresponding to the model data.
請求項1に記載された方法において、
前記モデルデータとして、前記モデル画像における各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像をあらかじめ作成し、
前記照合用データを作成する処理では、モデル画像と同じサイズの濃淡画像を対象として、この画像の各画素の濃度勾配方向を前記定義に基づき表した角度データをそれぞれの座標に組み合わせた疑似画像を照合用データとして作成し、
前記累計値を格納するための記憶領域を1つ設定して、前記照合用データの画素配列にモデルデータの画素配列を合わせて両者間で対応する画素の組み合わせをM組(M≧2)設定する対応づけステップを、対応関係にある全ての画素が組み合わせられるまで繰り返し、
毎回の対応づけステップにおいて、前記M組の組み合わせ毎に、組み合わせられた画素間での前記角度データを表す整数の差の絶対値を算出する第1演算を、SIMD演算として実行した後に、前記記憶領域内の累計値を第1演算により算出されたM個の差の絶対値の総和の加算により更新する演算を、前記第2演算として実行する、画像マッチング方法。
The method of claim 1, wherein
As the model data, a pseudo image in which angle data representing the density gradient direction of each pixel in the model image based on the definition is combined with each coordinate is created in advance.
In the process of creating the matching data, a gray image having the same size as the model image is processed, and a pseudo image in which angle data representing the density gradient direction of each pixel of the image based on the definition is combined with each coordinate is used. Create as verification data,
One storage area for storing the cumulative value is set, and the pixel array of the model data is matched with the pixel array of the matching data, and M pairs (M ≧ 2) corresponding pixel combinations are set between the two. The matching step is repeated until all the pixels in the correspondence relationship are combined,
In each associating step, for each of the M sets of combinations, after executing a first operation for calculating an absolute value of an integer difference representing the angle data between the combined pixels as a SIMD operation, the storage An image matching method, wherein an operation for updating a cumulative value in a region by adding a sum of absolute values of M differences calculated by a first operation is executed as the second operation.
請求項4に記載された方法において、
前記全ての画素の組み合わせに対する第1演算およびその後の第2演算が終了したことに応じて、その時点における前記記憶領域内の累計値をあらかじめ定めたしきい値と比較して、その比較結果に基づき前記濃淡画像の良否を判定する、画像マッチング方法。
The method of claim 4, wherein
In response to the completion of the first calculation and the subsequent second calculation for all the pixel combinations, the cumulative value in the storage area at that time is compared with a predetermined threshold value, and the comparison result is obtained. An image matching method for determining quality of the grayscale image based on the image quality.
請求項2または4に記載された方法において、
前記モデルデータおよび照合用データを作成する処理では、濃度勾配の強度が所定のしきい値を下回る画素に対しては、前記濃度勾配方向を示す角度データを0または+127に設定する、画像マッチング方法。
The method according to claim 2 or 4, wherein
In the process of creating the model data and the collation data, an image matching method in which angle data indicating the density gradient direction is set to 0 or +127 for pixels whose density gradient intensity is below a predetermined threshold value .
濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を作成する疑似画像作成手段と、照合用の濃淡画像から作成された疑似画像を照合用データとし、モデル画像から作成された疑似画像をモデルデータとして両疑似画像を対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を用いて前記照合用データとモデルデータとの不一致度を求める第2演算とを実行するマッチング処理手段と、マッチング処理手段による処理結果を出力する出力手段とを具備する装置であって、
前記疑似画像作成手段は、0°以上360°未満の範囲にある角度を0から255までの整数に置き換えるという定義に従って、前記濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記角度データとして導出し、
前記マッチング処理手段は、
前記第1演算として、前記照合用データとモデルデータとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データを2の補数表現による符号付き8ビット整数とみなしてこれらの整数の差の絶対値を算出する第1演算手段と、
前記第2演算として、前記第1演算手段により算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行する第2演算手段と、
前記照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、前記照合用データとモデルデータとの不一致度として特定する不一致度特定手段とを具備する、
ことを特徴とする画像マッチング装置。
Pseudo image creation means for creating a pseudo image representing the distribution pattern in the density gradient direction in a grayscale image, and a pseudo image created from the grayscale image for matching as the matching data, and the pseudo image created from the model image as model data As a result of associating the two pseudo images with each other, the first calculation for obtaining the angle difference in the density gradient direction in pixel units between the two pseudo images, and the matching data and the model data using the angle difference calculated by the first calculation A matching processing unit that executes a second operation for obtaining a degree of mismatch with the output unit, and an output unit that outputs a processing result by the matching processing unit,
The pseudo image creating means is configured to replace at least an edge pixel in the grayscale image with respect to a predetermined reference direction according to a definition that an angle in a range of 0 ° or more and less than 360 ° is replaced with an integer from 0 to 255. An unsigned 8-bit integer corresponding to the rotation angle when the density gradient direction in the target pixel is represented by a rotation angle around a specific direction is derived as the angle data,
The matching processing means includes
As the first calculation, for each set of pixels having a correspondence relationship between the matching data and the model data, the angle data in the combined pixels is regarded as a signed 8-bit integer in two's complement representation, and these First computing means for calculating an absolute value of the difference between the integers;
As the second operation, a second operation unit that performs an operation of accumulating the absolute value of the difference calculated by the first operation unit as an unsigned 8-bit integer;
A cumulative value of absolute values of differences when the first calculation and the second calculation are completed for all of the pixel sets in a correspondence relationship between the verification data and the model data is obtained as the verification data and the model data. A non-matching degree specifying means for specifying as a non-matching degree of
An image matching apparatus characterized by that.
前記第1演算手段は、M組(M≧2)の画素の組み合わせを対象にした第1演算をSIMD演算として実行する、請求項7に記載された画像マッチング装置。   The image matching apparatus according to claim 7, wherein the first calculation unit executes a first calculation for a combination of M sets (M ≧ 2) as a SIMD calculation. 濃淡画像における濃度勾配方向の分布パターンを表す疑似画像を作成する疑似画像作成手段と、照合用の濃淡画像から作成された疑似画像を照合用データとし、モデル画像から作成された疑似画像をモデルデータとして両疑似画像を対応づけて、両疑似画像間における画素単位での濃度勾配方向の角度差を求める第1演算と、第1演算により算出された角度差を用いて前記照合用データとモデルデータとの不一致度を求める第2演算とを実行するマッチング処理手段として、コンピュータを機能させるプログラムであって、
前記疑似画像作成手段は、0°以上360°未満の範囲にある角度を0から255までの整数に置き換えるという定義に従って、前記濃淡画像中の少なくともエッジ画素を対象に、あらかじめ定めた基準の方向に対する特定の方向まわりの回転角度により対象画素における濃度勾配方向を表した場合の回転角度に対応する符号なし8ビット整数を、前記角度データとして導出し、
前記マッチング処理手段は、
前記第1演算として、前記照合用データとモデルデータとの間で対応関係にある画素の組毎に、組み合わせられた画素における角度データを2の補数表現による符号付き8ビット整数とみなしてこれらの整数の差の絶対値を算出する第1演算手段と、
前記第2演算として、前記第1演算手段により算出された差の絶対値を符号なし8ビット整数とみなして累計する演算を実行する第2演算手段と、
前記照合用データとモデルデータとの間で対応関係にある画素の組の全てに対する第1演算および第2演算が終了したときの差の絶対値の累計値を、前記照合用データとモデルデータとの不一致度として特定する不一致度特定手段とを具備する、
ことを特徴とする画像マッチング用のプログラム。
Pseudo image creation means for creating a pseudo image representing the distribution pattern in the density gradient direction in a grayscale image, and a pseudo image created from the grayscale image for matching as the matching data, and the pseudo image created from the model image as model data As a result of associating the two pseudo images with each other, the first calculation for obtaining the angle difference in the density gradient direction in pixel units between the two pseudo images, and the matching data and the model data using the angle difference calculated by the first calculation A program for causing a computer to function as a matching processing means for executing a second calculation for obtaining a degree of inconsistency with
The pseudo image creating means is configured to replace at least an edge pixel in the grayscale image with respect to a predetermined reference direction according to a definition that an angle in a range of 0 ° or more and less than 360 ° is replaced with an integer from 0 to 255. An unsigned 8-bit integer corresponding to the rotation angle when the density gradient direction in the target pixel is represented by a rotation angle around a specific direction is derived as the angle data,
The matching processing means includes
As the first calculation, for each set of pixels having a correspondence relationship between the matching data and the model data, the angle data in the combined pixels is regarded as a signed 8-bit integer in two's complement representation, and these First computing means for calculating an absolute value of the difference between the integers;
As the second operation, a second operation unit that performs an operation of accumulating the absolute value of the difference calculated by the first operation unit as an unsigned 8-bit integer;
A cumulative value of absolute values of differences when the first calculation and the second calculation are completed for all of the pixel sets in a correspondence relationship between the verification data and the model data is obtained as the verification data and the model data. A non-matching degree specifying means for specifying as a non-matching degree of
An image matching program characterized by that.
JP2012058821A 2012-03-15 2012-03-15 Image matching method, and image matching apparatus and program using the method Active JP5949002B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012058821A JP5949002B2 (en) 2012-03-15 2012-03-15 Image matching method, and image matching apparatus and program using the method
PCT/JP2012/080704 WO2013136603A1 (en) 2012-03-15 2012-11-28 Image matching method and image matching device and program using such method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012058821A JP5949002B2 (en) 2012-03-15 2012-03-15 Image matching method, and image matching apparatus and program using the method

Publications (2)

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

Family

ID=49160556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012058821A Active JP5949002B2 (en) 2012-03-15 2012-03-15 Image matching method, and image matching apparatus and program using the method

Country Status (2)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111695498B (en) * 2020-06-10 2023-04-07 西南林业大学 Wood identity detection method
CN112361995B (en) * 2020-12-02 2022-06-24 四川云盾光电科技有限公司 Visual absolute type rotation angle measuring method and device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06152669A (en) * 1992-11-13 1994-05-31 Fujitsu Ltd Clock recovery circuit
JPH10162143A (en) * 1996-12-04 1998-06-19 Omron Corp Similarity calculating device
JP2002511617A (en) * 1998-04-13 2002-04-16 アイマティック・インターフェイシズ・インコーポレイテッド Face recognition from video images
JP2002230549A (en) * 2001-02-05 2002-08-16 Omron Corp Image processing method and device
JP2004157756A (en) * 2002-11-06 2004-06-03 Canon Inc Hierarchy processing device
JP2010067246A (en) * 2008-08-09 2010-03-25 Keyence Corp Image data compression method, pattern model positioning method in image processing, image processing apparatus, image processing program, and computer readable recording medium

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06152669A (en) * 1992-11-13 1994-05-31 Fujitsu Ltd Clock recovery circuit
JPH10162143A (en) * 1996-12-04 1998-06-19 Omron Corp Similarity calculating device
JP2002511617A (en) * 1998-04-13 2002-04-16 アイマティック・インターフェイシズ・インコーポレイテッド Face recognition from video images
JP2002230549A (en) * 2001-02-05 2002-08-16 Omron Corp Image processing method and device
JP2004157756A (en) * 2002-11-06 2004-06-03 Canon Inc Hierarchy processing device
JP2010067246A (en) * 2008-08-09 2010-03-25 Keyence Corp Image data compression method, pattern model positioning method in image processing, image processing apparatus, image processing program, and computer readable recording medium

Also Published As

Publication number Publication date
WO2013136603A1 (en) 2013-09-19
JP5949002B2 (en) 2016-07-06

Similar Documents

Publication Publication Date Title
US20100063784A1 (en) System and method for fitting feature elements using a point-cloud of an object
CN110766737B (en) Method and apparatus for training depth estimation model and storage medium
US9971954B2 (en) Apparatus and method for producing image processing filter
WO2014091837A1 (en) 3d-model generation device, 3d-model generation method, and 3d-model generation program
CN110598305B (en) Sensitivity analysis method for comparing scanning simulation increment of circuit
US20140341461A1 (en) Image processing apparatus, distortion-corrected map creation apparatus, and semiconductor measurement apparatus
JP2016186703A (en) Image recognition method, image recognition device, and image recognition program
JP5949002B2 (en) Image matching method, and image matching apparatus and program using the method
EP3349443A1 (en) Stereoscopic image processing apparatus and stereoscopic image processing method
US8548225B2 (en) Point selection in bundle adjustment
TWI514180B (en) System and method for processing information of measurement numbers
CN113989384A (en) Camera calibration method, cropping data generation method, device, equipment and medium
CN104376120B (en) A kind of information retrieval method and system
JP2006119927A (en) Pattern matching method and program
US9582617B2 (en) Simulation device and simulation program for simulating process using first and second masks
JP5093604B2 (en) Fillet surface recognition method, fillet surface recognition program, and measurement information processing apparatus
JP6996200B2 (en) Image processing method, image processing device, and image processing program
Aizawa et al. Constant time neighbor finding in quadtrees: An experimental result
US20130114898A1 (en) Template matching processing device and template matching processing program
JP2010160543A (en) Layout verification device, layout verification program, and layout verification method of layout pattern of semiconductor device
US20240104890A1 (en) Image processing device, recording medium, and image processing method
CN112433442A (en) Mask pattern correction method and device, computer equipment and readable storage medium
JP5528249B2 (en) Optimal alignment calculation device and program
JP2021015099A (en) Method for detecting defect of inspection object, device therefor, and computer program therefor
CN110648287A (en) Parallel efficient calculation method for box type filter

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