JP4935541B2 - Effectiveness determination device, image processing device, imaging device, and program - Google Patents
Effectiveness determination device, image processing device, imaging device, and program Download PDFInfo
- Publication number
- JP4935541B2 JP4935541B2 JP2007175187A JP2007175187A JP4935541B2 JP 4935541 B2 JP4935541 B2 JP 4935541B2 JP 2007175187 A JP2007175187 A JP 2007175187A JP 2007175187 A JP2007175187 A JP 2007175187A JP 4935541 B2 JP4935541 B2 JP 4935541B2
- Authority
- JP
- Japan
- Prior art keywords
- template
- sub
- motion vector
- search
- images
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Studio Devices (AREA)
- Image Analysis (AREA)
Description
本発明は、2つの画像間でテンプレートマッチングを行う有効性判定装置、画像処理装置及びプログラムに関する。 The present invention relates to an effectiveness determination device, an image processing device, and a program for performing template matching between two images.
従来、複数の画像間の対応位置を検出する際に、基準画像から選択したテンプレートを対象画像で追跡して同じパターンが存在するか否かを探索する。ここで、テンプレートの追跡の有効性を事後的に評価する方法として、差分二乗和(SSD:Sum of squared difference)や差分絶対値和(SAD:Sum of absolute difference)等の相違度評価値の最小値を用いたものが知られている(例えば、特許文献1参照)。
しかしながら、相違度評価値の最小値は、追跡の有効性を必ずしも表しているわけではなく、特にノイズが多い画像の場合にはあてにならないといった問題がある。 However, the minimum value of the dissimilarity evaluation value does not necessarily indicate the effectiveness of tracking, and there is a problem that it cannot be applied particularly in the case of an image having a lot of noise.
そこで、本発明の課題は、テンプレートの追跡の有効性を精度良く判定することができる有効性判定装置、画像処理装置、撮像装置及びプログラムを提供することである。 Therefore, an object of the present invention is to provide an effectiveness determination device, an image processing device , an imaging device, and a program that can accurately determine the effectiveness of template tracking.
請求項1に記載の発明の有効性判定装置は、
複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートの位置を対象画像内で探索するテンプレート探索手段と、
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段と、
前記サブテンプレート設定手段により設定された前記サブテンプレートの位置を前記対象画像内で探索するサブテンプレート探索手段と、
前記テンプレート探索手段により探索されたテンプレートの位置と前記サブテンプレート探索手段により探索されたサブテンプレートの位置との間の距離に基づいて、前記テンプレートの探索結果の有効性を判定する有効性判定手段と、
を備えることを特徴としている。
The validity determination device of the invention according to
A template searching means for searching the target image for the position of the template in a predetermined region extracted from any one of the plurality of images in the reference image;
Sub-template setting means for setting a partial region of the template as a sub-template,
Sub template search means for searching the target image for the position of the sub template set by the sub template setting means;
Based on the distance between the position of the template by Ri and the position of the search template on the search means and the sub-template search unit by Ri searched sub templates, effective to determine the effectiveness of a search result of the template Sex determination means;
It is characterized by having.
請求項2に記載の発明の有効性判定装置は、
複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートを対象画像内で追跡して、当該テンプレートの前記複数の画像間における動きベクトルを算出するテンプレート動きベクトル算出手段と、
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段と、
前記サブテンプレート設定手段により設定されたサブテンプレートを前記対象画像内で追跡して、当該サブテンプレートの前記複数の画像間における動きベクトルを算出するサブテンプレート動きベクトル算出手段と、
前記テンプレート動きベクトル算出手段により算出された動きベクトルと前記サブテンプレート動きベクトル算出手段により算出された動きベクトルの一致度を判定する動きベクトル判定手段と、
前記動きベクトル判定手段により判定された動きベクトルの一致度に基づいて、前記テンプレートの追跡結果の有効性を判定する有効性判定手段と、
を備えることを特徴としている。
The validity determination device of the invention according to
A template motion vector calculating means for tracking a template of a predetermined region extracted from any one of the plurality of images in the target image and calculating a motion vector between the plurality of images of the template;
Sub-template setting means for setting a partial region of the template as a sub-template,
Sub template motion vector calculating means for tracking a sub template set by the sub template setting means in the target image and calculating a motion vector between the plurality of images of the sub template;
Motion vector determination means for determining the degree of coincidence between the motion vector calculated by the template motion vector calculation means and the motion vector calculated by the sub-template motion vector calculation means;
Validity determination means for determining the validity of the tracking result of the template based on the degree of coincidence of the motion vectors determined by the motion vector determination means;
It is characterized by having.
請求項3に記載の発明は、請求項1に記載の有効性判定装置において、
前記テンプレート探索手段は、
前記複数の画像間における所定領域のテンプレートの動きベクトルを当該テンプレートの位置として算出するテンプレート動きベクトル算出手段を含み、
前記サブテンプレート探索手段は、
前記複数の画像間におけるサブテンプレートの動きベクトルを当該サブテンプレートの位置として算出するサブテンプレート動きベクトル算出手段を含み、
前記有効性判定手段は、
前記テンプレート動きベクトル算出手段により算出されたテンプレートの動きベクトルと前記サブテンプレート動きベクトル算出手段により算出されたサブテンプレートの動きベクトルとの一致度を、前記テンプレートの位置と前記サブテンプレートの位置との間の距離の近さとして判定し、当該判定結果に基づいて、前記テンプレートの追跡結果の有効性を判定することを特徴としている。
The invention according to claim 3 is the validity determining device according to
The template search means includes:
The motion vector of the template of a predetermined area between the plurality of images includes a template motion vector calculating means for calculating a position of the template,
The sub-template search means includes
The motion vector of the sub-template among the plurality of images includes sub-template motion vector calculation means for calculating a position of the sub-template,
The effectiveness determining means includes
The degree of coincidence between the motion vector of the sub-templates calculated by the motion vector of the template, which is calculated by said template motion vector calculation unit sub-template motion vector calculation means, between the position of the the position of the template sub-template was determined as the closeness of the distance, based on the determination result, it is characterized by determining the efficacy of the tracking result of the template.
請求項4に記載の発明は、請求項3に記載の有効性判定装置において、
前記サブテンプレート設定手段は、前記テンプレートの直和分割となるように複数のサブテンプレートを設定し、
前記対象画像内における前記サブテンプレートの探索にて、前記サブテンプレート設定手段により設定された複数のサブテンプレートの各々に係る相違度評価値を算出するサブ評価値算出手段を備え、
前記テンプレート探索手段は、
前記サブ評価値算出手段により算出された複数のサブテンプレートの相違度評価値に基づいて、前記テンプレートの相違度評価値を算出するテンプレート評価値算出手段を含み、
前記テンプレート動きベクトル算出手段は、
前記テンプレート評価値算出手段により算出された相違度評価値に基づいて、前記テンプレートの動きベクトルを算出することを特徴としている。
The invention described in
The sub-template setting means sets a plurality of sub-templates so as to be a direct sum division of the template,
A sub-evaluation value calculating unit that calculates a dissimilarity evaluation value related to each of the plurality of sub-templates set by the sub-template setting unit in the search for the sub-template in the target image;
The template search means includes:
On the basis of the difference evaluation value of multiple sub-templates calculated by the sub-evaluation value calculation means includes a template evaluation value calculating means for calculating the difference evaluation value of the template,
The template motion vector calculation means includes
The motion vector of the template is calculated based on the dissimilarity evaluation value calculated by the template evaluation value calculating means .
請求項5に記載の発明は、請求項1〜4の何れか一項に記載の有効性判定装置において、
前記サブテンプレートは、前記テンプレートを市松模様状に形成されてなることを特徴としている。
The invention according to
The sub-template is characterized in that the template is formed in a checkered pattern.
請求項6に記載の発明は、請求項1〜4の何れか一項に記載の有効性判定装置において、
前記サブテンプレートは、前記テンプレートをストライプ状に形成されてなることを特徴としている。
The invention according to claim 6 is the validity determining device according to any one of
The sub-template is characterized in that the template is formed in a stripe shape.
請求項7に記載の発明の画像処理装置は、
請求項1〜6の何れか一項の有効性判定装置と、
前記有効性判定手段により有効であると判定された前記テンプレートの追跡結果を用い
て、前記基準画像と前記対象画像の位置合わせを行う位置合わせ手段と、
を備えることを特徴としている。
請求項8に記載の発明の撮像装置は、
画像を撮像する撮像手段と、
請求項1〜6の何れか一項の有効性判定装置と、を備え、
前記有効性判定装置における複数の画像は、前記撮像手段により撮像された画像であることを特徴としている。
An image processing apparatus according to a seventh aspect of the present invention provides:
The validity determination device according to any one of
Alignment means for aligning the reference image and the target image using the tracking result of the template determined to be effective by the effectiveness determination means;
It is characterized by having.
The imaging device of the invention according to claim 8 is,
An imaging means for capturing an image;
The effectiveness determination device according to any one of
The plurality of images in the validity determination device are images captured by the imaging unit.
請求項9に記載の発明のプログラムは、
コンピュータを、
複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートの位置を対象画像内で探索するテンプレート探索手段、
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段、
前記サブテンプレート設定手段により設定された前記サブテンプレートの位置を前記対象画像内で探索するサブテンプレート探索手段、
前記テンプレート探索手段により探索された位置と前記サブテンプレート探索手段により探索された位置との間の距離に基づいて、前記テンプレートの探索結果の有効性を判定する有効性判定手段、
として機能させることを特徴としている。
請求項10に記載の発明のプログラムは、
コンピュータを、
複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートを対象画像内で追跡して、当該テンプレートの前記複数の画像間における動きベクトルを算出するテンプレート動きベクトル算出手段、
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段、
前記サブテンプレート設定手段により設定されたサブテンプレートを前記対象画像内で追跡して、当該サブテンプレートの前記複数の画像間における動きベクトルを算出するサブテンプレート動きベクトル算出手段、
前記テンプレート動きベクトル算出手段により算出された動きベクトルと前記サブテンプレート動きベクトル算出手段により算出された動きベクトルの一致度を判定する動きベクトル判定手段、
前記動きベクトル判定手段により判定された動きベクトルの一致度に基づいて、前記テンプレートの追跡結果の有効性を判定する有効性判定手段、
として機能させることを特徴としている。
The program of the invention according to claim 9 is:
Computer
A template searching means for searching for a position of a template in a predetermined region extracted from any one of the plurality of images in the target image;
Sub-template setting means for setting a partial region of the template as a sub-template,
Sub template search means for searching the target image for the position of the sub template set by the sub template setting means;
Said template said by Ri and the search position to the search means based on the distance between the I Ri searched position in the sub-template search means, the validity judging means for judging the validity of the search result of the template,
It is characterized by making it function as.
The program of the invention according to claim 10 is:
Computer
A template motion vector calculating means for tracking a template of a predetermined region extracted from any one of the plurality of images in the target image and calculating a motion vector between the plurality of images of the template;
Sub-template setting means for setting a partial region of the template as a sub-template,
Sub template motion vector calculation means for tracking a sub template set by the sub template setting means in the target image and calculating a motion vector between the plurality of images of the sub template.
Motion vector determination means for determining the degree of coincidence between the motion vector calculated by the template motion vector calculation means and the motion vector calculated by the sub-template motion vector calculation means;
Validity determination means for determining the validity of the tracking result of the template based on the degree of coincidence of the motion vectors determined by the motion vector determination means;
It is characterized by making it function as.
本発明によれば、ノイズの多い画像に対しても事後的にテンプレートの追跡の有効性を精度良く判定することができる。 According to the present invention, it is possible to accurately determine the effectiveness of template tracking afterwards even for a noisy image.
以下に、本発明について、図面を用いて具体的な態様を説明する。ただし、発明の範囲は、図示例に限定されない。
図1は、本発明を適用した一実施形態の撮像装置100の概略構成を示すブロック図である。
本実施形態の撮像装置100は、ブロックマッチング法を用いた基準画像と対象画像の位置合わせに際して、基準画像内から抽出したテンプレートTを2つのサブテンプレートT0、T1に分割して、各サブテンプレートT0、T1の動きベクトルとテンプレートTの動きベクトルの一致度の判定結果に基づいて、テンプレートTの特徴点対応の有効性を判定する。
具体的には、撮像装置100は、図1に示すように、撮像部1と、撮像補助部2と、表示部3、操作部4と、記録媒体5と、USB端子6と、制御部7等を備えて構成されている。
Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, the scope of the invention is not limited to the illustrated examples.
FIG. 1 is a block diagram illustrating a schematic configuration of an
The
Specifically, as illustrated in FIG. 1, the
撮像部1は、撮像手段として、被写体を連続して撮像して複数の画像フレームを生成する。具体的には、撮像部1は、撮像レンズ群11と、電子撮像部12と、映像信号処理部13と、画像メモリ14と、撮影制御部15等を備えている。
The
撮像レンズ群11は、複数の撮像レンズから構成されている。
電子撮像部12は、撮像レンズ群11を通過した被写体像を二次元の画像信号に変換するCCD(Charge Coupled Device)やCMOS(Complementary Metal-oxide Semiconductor)等の撮像素子から構成されている。
映像信号処理部13は、電子撮像部12から出力される画像信号に対して所定の画像処理を施すものである。
画像メモリ14は、画像処理後の画像信号を一時的に記憶する。
The
The
The video
The
上記構成の撮像部1は、被写体を撮像して撮像画像データ(画像信号)を取得する撮像手段を構成している。
The
撮像補助部2は、撮像部1による被写体の撮像の際に駆動するものであり、フォーカス駆動部21と、ズーム駆動部22等を備えている。
The
フォーカス駆動部21は、撮像レンズ群11に接続されたフォーカス機構部(図示略)を駆動させる。
ズーム駆動部22は、撮像レンズ群11に接続されたズーム機構部(図示略)を駆動させる。
なお、フォーカス駆動部21及びズーム駆動部22は、撮影制御部15に接続され、撮影制御部15の制御下にて駆動する。
The
The
The
表示部3は、撮像部1により撮像された画像を表示するものであり、表示制御部31と、画像表示部32等を備えている。
表示制御部31は、CPU71から適宜出力される表示データを一時的に保存するビデオメモリ(図示略)を備えている。
画像表示部32は、表示制御部31からの出力信号に基づいて所定の画像を表示する液晶モニタ等を備えている。
The display unit 3 displays an image captured by the
The
The
操作部4は、当該撮像装置100の所定操作を行うためのものであり、操作入力部41と、入力回路42等を備えている。
The
操作入力部41は、撮像部1による被写体の撮像を指示するシャッターボタン41aを備えている。
入力回路42は、操作入力部41から出力され入力された操作信号をCPU71に入力するためのものである。
The
The
記録媒体5は、例えば、カード型の不揮発性メモリ(フラッシュメモリ)やハードディスク等により構成され、撮像部1により撮像された画像の画像データを複数記憶する。
The
USB端子6は、外部機器との接続用の端子であり、USBケーブル(図示略)等を介してデータの送受信を行う。 The USB terminal 6 is a terminal for connection with an external device, and transmits and receives data via a USB cable (not shown).
制御部7は、撮像装置100の各部を制御するものであり、例えば、CPU71と、プログラムメモリ72と、データメモリ73等を備えている。
The control unit 7 controls each unit of the
CPU71は、プログラムメモリ72に記憶された撮像装置100用の各種処理プログラムに従って各種の制御動作を行うものである。
The
データメモリ73は、例えば、フラッシュメモリ等により構成され、CPU71によって処理されるデータ等を一時記憶する。
The
プログラムメモリ72は、CPU71の動作に必要な各種プログラムやデータを記憶するものである。具体的には、プログラムメモリ72は、抽出プログラム72a、サブテンプレート設定プログラム72b、動きベクトル算出プログラム72c、動きベクトル判定プログラム72d、有効性判定プログラム72e、位置合わせプログラム72f等を記憶している。
The
抽出プログラム72aは、撮像部1により撮像された連続する複数の画像のうち、何れか一の画像を基準画像として、当該基準画像からテンプレートTを複数抽出する抽出処理に係る機能をCPU71に実現させるためのプログラムである。
具体的には、CPU71による抽出プログラム72aの実行に基づいて、特徴抽出処理により基準画像から所定数(或いは、所定数以上)の特徴の高いブロック領域(特徴点)を選択して、当該ブロックの内容をテンプレートT(例えば、8×8画素の正方形;図2参照)として抽出する。
ここで、特徴抽出処理とは、多数の候補ブロックから追跡に都合の良い特徴性の高いものを選択する処理である。具体的には、各候補ブロックの勾配共分散行列を求め、その行列の最小固有値や、Harrisオペレータと呼ばれる演算の結果を評価値として、評価値の高いものを絶対閾値や相対順位で選別する方法である。即ち、当該評価法の意味するところは、追跡に向く、物体や模様のコーナー(角)のような領域をテンプレートTとして選び、追跡に向かない、平坦であったりランダム性が高かったりする領域を排除することである。
なお、ブロックは、設計により単に所定位置から選択されるようにしても良い。
The
Specifically, based on the execution of the
Here, the feature extraction process is a process of selecting a feature having a high characteristic convenient for tracking from a large number of candidate blocks. Specifically, a method of obtaining a gradient covariance matrix of each candidate block, and selecting a value having a high evaluation value based on an absolute threshold or a relative rank, using the minimum eigenvalue of the matrix or the result of an operation called a Harris operator as an evaluation value It is. That is, the meaning of the evaluation method is to select a region such as a corner of an object or a pattern that is suitable for tracking as a template T, and a region that is not suitable for tracking and is flat or highly random. It is to eliminate.
The block may be simply selected from a predetermined position by design.
サブテンプレート設定プログラム72bは、CPU71をサブテンプレート設定として機能させるものである。即ち、サブテンプレート設定プログラム72bは、抽出処理にて抽出されたテンプレートTの一部分の領域をサブテンプレートT0、T1として設定するサブテンプレート設定処理に係る機能をCPU71に実現させるためのプログラムである。
具体的には、CPU71によるサブテンプレート設定プログラム72bの実行に基づいて、テンプレートTを市松模様状に直和分割(重複なく全体を尽くす分割)して、サブテンプレートT0(図2におけるテンプレートTのうち、ドットで表された画素の集合;図3(a)参照)と、サブテンプレートT1(図2におけるテンプレートTのうち、白抜き(ドットなし)で表された画素の集合;図3(b)参照)を設定する。
The sub
Specifically, based on the execution of the
動きベクトル算出プログラム72cは、CPU71をテンプレート動きベクトル算出手段及びサブテンプレート動きベクトル算出手段として機能させるものである。即ち、動きベクトル算出プログラム72cは、抽出処理にて抽出されたテンプレートTが対象画像内のどこに対応するか、つまり、対象画像内にてテンプレートTの画素値が最適にマッチする位置(対応領域)を探索して、当該テンプレートTの複数の画像間における動きベクトルを算出したり、サブテンプレート設定処理にて設定された各々のサブテンプレートT0、T1の画素値が対象画像内にて最適にマッチする位置を探索して、当該サブテンプレートT0、T1の複数の画像間における動きベクトルを算出する動きベクトル算出処理に係る機能をCPU71に実現させるためのプログラムである。
即ち、動きベクトル算出処理にあっては、先ず、2つのサブテンプレートT0、T1が対象画像内のどこに対応するかを探索領域の中で座標をオフセットしながら、各々のオフセットに関してブロック画素値の相違度を評価し、最も良くマッチすると評価されるオフセットを探索によって特定する。
ここで、相違度評価基準としては差分絶対値和(SAD)を用いており、CPU71は、2つのサブテンプレートT0、T1の各々に係る相違度評価値を関数sadにより算出する。そして、サブ評価値算出処理により算出された2つのサブテンプレートT0、T1の評価値t0、t1に基づいて、当該2つの評価値t0、t1を合算してテンプレートTの評価値tを算出する。ここで、CPU71は、サブ評価値算出手段及びテンプレート評価値算出手段として機能する。
そして、探索の結果、相違度評価値が最も良かった基準画像と対象画像の間の対応するサブテンプレートT0、T1及びテンプレートTの最適なオフセットをサブテンプレート動きベクトル及びテンプレート動きベクトルとする。
このように、CPU71は、動きベクトル算出プログラム72cを実行することで、複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートTを対象画像内で探索するテンプレート探索手段として機能し、また、サブテンプレートT0、T1を対象画像内で探索するサブテンプレート探索手段として機能する。
The motion
That is, in the motion vector calculation process, first, the difference between the block pixel values for each offset is obtained while offsetting the coordinates in the search area to which the two sub-templates T0 and T1 correspond in the target image. The degree is evaluated, and an offset that is evaluated as the best match is specified by searching.
Here, the difference absolute value sum (SAD) is used as the dissimilarity evaluation criterion, and the
Then, as a result of the search, the optimum offsets of the corresponding sub templates T0, T1 and template T between the reference image having the best dissimilarity evaluation value and the target image are set as the sub template motion vector and the template motion vector.
As described above, the
動きベクトル判定プログラム72dは、CPU71を動きベクトル判定手段として機能させるものである。即ち、動きベクトル判定プログラム72dは、動きベクトル算出処理にて算出されたテンプレート動きベクトルと2つのサブテンプレートT0、T1の各々のサブテンプレート動きベクトルの一致度を判定する動きベクトル判定処理に係る機能をCPU71に実現させるためのプログラムである。
具体的には、CPU71による動きベクトル判定プログラム72dの実行に基づいて、テンプレートTの動きベクトル(minx,miny)とサブテンプレートT0の動きベクトル(minx0,miny0)及びサブテンプレートT1の動きベクトル(minx1,miny1)が近いか否かを下記式(1)により判定する。例えば、閾値を2画素距離として、2画素以内であるか否か(近いか否か)を判定する。
Specifically, based on the execution of the motion
有効性判定プログラム72eは、CPU71を有効性判定手段として機能させるものである。即ち、有効性判定プログラム72eは、動きベクトル判定処理におけるテンプレート動きベクトルとサブテンプレート動きベクトルの一致度の判定結果に基づいて、基準画像と対象画像で対応するテンプレートTの特徴点対応(テンプレートTの追跡結果)の有効性を判定する有効性判定処理に係る機能をCPU71に実現させるためのプログラムである。
具体的には、CPU71による有効性判定プログラム72eの実行に基づいて、テンプレートTの探索位置とサブテンプレートT0、T1の探索位置との間の距離に基づいて、テンプレートTの探索結果の有効性を判定するようになっており、テンプレートTの動きベクトル(minx,miny)とサブテンプレートT0の動きベクトル(minx0,miny0)及びサブテンプレートT1の動きベクトル(minx1,miny1)が近いと判断されれば、この特徴点対応を有効としてマークし、近くないと判断されれば、この特徴点対応を無効としてマークする。
なお、特徴点対応判定の有効無効のマーク方法は、例えば、フラグ変数配列などの実装により行うことができる。
The
Specifically, based on the execution of the
In addition, the valid / invalid marking method of the feature point correspondence determination can be performed by mounting a flag variable array, for example.
位置合わせプログラム72fは、CPU71を位置合わせ手段として機能させるものである。即ち、位置合わせプログラム72fは、有効性判定処理にて有効であると判定されたテンプレートTの特徴点対応(テンプレートTの追跡結果)のみを用いて、基準画像と対象画像間における座標変換係数を算出して、これら画像どうしの位置合わせ(座標変換)を行う処理に係る機能をCPU71に実現させるためのプログラムである。
The
次に、画像位置合わせ処理について図4〜図7を参照して説明する。
図4は、撮像装置100による画像位置合わせ処理に係る動作の一例を示すフローチャートである。
なお、以下の画像位置合わせ処理の前段階にて、基準画像を二次元配列Rに格納するとともに、対象画像を二次元配列Oに格納する処理を行う。また、探索範囲を示す定数Aを適当な所定値に設定する。例えば、A=8とすると、探索範囲はx方向に−8〜+8、y方向にも−8〜+8の正方形の範囲となる。
Next, the image alignment process will be described with reference to FIGS.
FIG. 4 is a flowchart illustrating an example of an operation related to the image alignment process performed by the
It should be noted that in the previous stage of the following image alignment processing, the reference image is stored in the two-dimensional array R and the target image is stored in the two-dimensional array O. Further, a constant A indicating the search range is set to an appropriate predetermined value. For example, if A = 8, the search range is a square range of −8 to +8 in the x direction and −8 to +8 in the y direction.
図4に示すように、先ず、CPU71は、プログラムメモリ72内の抽出プログラム72aを実行することで、撮像部1により撮像された連続する複数の画像のうち、基準画像からテンプレートTを複数抽出する(ステップS1)。
そして、CPU71は、抽出処理にて選択された各テンプレートTについて、対象画像内のどこに対応するかの探索(追跡)をループにより処理する(ステップS2〜ステップS5)。
先ず、CPU71は、追跡処理初期設定を行って(ステップS3)、基準画像におけるテンプレートTの位置を示す変数B、Cを設定する。例えば、B=100、C=200とすると、座標(100、200)を左上隅とする8×8画素サイズの矩形ブロックをテンプレートTとすることを表している。
続けて、CPU71は、プログラムメモリ72内の動きベクトル算出プログラム72cを実行することで、追跡処理を実行する(ステップS4)。
As shown in FIG. 4, first, the
Then, the
First, the
Subsequently, the
以下に、追跡処理について図5及び図6を参照して説明する。
図5及び図6は、追跡処理に係る動作の一例を示すフローチャートである。
In the following, the tracking process will be described with reference to FIGS.
5 and 6 are flowcharts illustrating an example of operations related to the tracking process.
図5に示すように、先ず、CPU71は、テンプレートTの相違度評価値tの最小値を意味する変数min、サブテンプレートT0の相違度評価値t0の最小値を意味する変数min0、サブテンプレートT1の相違度評価値t1の最小値を意味する変数min1を十分に大きな定数(INFと表わしたが、例えば最大整数値定数などで良い)によって初期化する(ステップS41)。
As shown in FIG. 5, first, the
続けて、CPU71は、相違度評価値の最小値をループにより探索する(ステップS42〜54)。ここで、当該探索は、画像の2次元探索なので、x成分及びy成分の二重ループにより行う。具体的には、y成分については、範囲が−A〜+Aで増分を1とし(ステップS42)、同様に、x成分についても、範囲が−A〜+Aで増分を1とする(ステップS43)。
次に、探索範囲内における動きベクトルの候補点(x,y)の各々について、相違度評価値を算出する。具体的には、候補点(x,y)及びサブテンプレート選択用の変数pを引数として図7に示した関数sadをコールし、サブテンプレートT0及びサブテンプレートT1の各々について評価値t0、t1を算出する(ステップS44及びS45)。
Subsequently, the
Next, a dissimilarity evaluation value is calculated for each motion vector candidate point (x, y) within the search range. Specifically, the function sad shown in FIG. 7 is called by using the candidate point (x, y) and the variable p for selecting the sub template as arguments, and the evaluation values t0 and t1 are respectively set for the sub template T0 and the sub template T1. Calculate (steps S44 and S45).
ここで、評価値算出処理について図7を参照して説明する。
図7は、関数sad、すなわち評価値算出処理に係る動作の一例を示すフローチャートである。3個の仮引数をとり、第1引数x、第2引数yは動きベクトルの候補点(x,y)を示し、第3引数pはサブテンプレートの区別を示す。p=0ならサブテンプレート0、p=1ならサブテンプレート1の意味である。
Here, the evaluation value calculation process will be described with reference to FIG.
FIG. 7 is a flowchart illustrating an example of an operation related to the function sad, that is, the evaluation value calculation process. It takes three dummy arguments, the first argument x and the second argument y indicate motion vector candidate points (x, y), and the third argument p indicates the distinction between sub-templates. If p = 0, it means
図7に示すように、先ず、CPU71は、変数sumを「0」によって初期化した後(ステップS401)、戻り値となる変数sumをx成分及びy成分についての二重ループにより算出する(ステップS402〜S411)。
即ち、ラインインデックスtyに関するループは、範囲が0〜7で増分を1とし(ステップS402)、2つの市松模様状のサブテンプレートT0、T1の何れか一方を規定する引数pとラインインデックスtyによって決定される偶奇性を示す変数psにより、サブテンプレートT0、T1の一方をたどって行う(ステップS403)。また、ラインインデックスtxに関するループは、範囲が変数ps〜7で増分を2とする(ステップS404)。
As shown in FIG. 7, first, the
That is, the loop relating to the line index ty is determined by the argument p and the line index ty that define one of the two checkered sub-templates T0 and T1 with a range of 0 to 7 and an increment of 1 (step S402). The sub-templates T0 and T1 are traced according to the variable ps indicating the even / oddness (step S403). In the loop related to the line index tx, the range is the variable ps to 7 and the increment is 2 (step S404).
そして、CPU71は、基準画像に係る二次元配列Rにおいて、テンプレートTの左上隅の位置(座標)を示す変数B、Cと、所定のラインインデックスtx、tyにより指定される配列番号の画素の画素値を算出して変数rの値とする(ステップS405)。
次に、CPU71は、対象画像における動きベクトルの候補点(x,y)について画素値を算出する。具体的には、対象画像に係る二次元配列Oにおいて、テンプレートTの左上隅の位置(座標)を示す変数B、Cと、所定のラインインデックスtx、tyと候補点(x,y)により指定される配列番号の画素の画素値を算出して変数oの値とする(ステップS406)。
Then, in the two-dimensional array R related to the reference image, the
Next, the
続けて、CPU71は、基準画像と対象画像における画素の差分値、即ち、変数rと変数oの絶対値sを算出して(ステップS407)、変数sumに加算する(ステップS408)。
そして、ラインインデックスtxに関してループによる処理を変数ps〜7の範囲内で増分を2として繰り返し実行するとともに、ラインインデックスtyに関してループによる処理を0〜7の範囲内で増分を1として繰り返し実行して、ラインインデックスtx及びラインインデックスtyに関してループによる処理が終了すると(ステップS409及びS410)、ステップS408にて算出された変数sumの値を戻り値として設定する(ステップS411)。
これにより、評価値算出処理を終了する。
Subsequently, the
Then, the loop processing for the line index tx is repeatedly executed with an increment of 2 within the range of the variables ps to 7, and the processing by the loop is repeatedly executed for the line index ty with an increment of 1 within the range of 0 to 7. When the processing by the loop is completed for the line index tx and the line index ty (steps S409 and S410), the value of the variable sum calculated in step S408 is set as a return value (step S411).
Thereby, the evaluation value calculation process is terminated.
そして、図5に示すように、サブテンプレートT0に係る変数sumの値を評価値t0とし(ステップS44)、また、サブテンプレートT1に係る変数sumの値を評価値t1とする(ステップS45)。
続けて、2つのサブテンプレートT0、T1の評価値t0、t1を合算して、テンプレートTの評価値tを算出する(ステップS46)。
Then, as shown in FIG. 5, the value of the variable sum related to the sub template T0 is set as the evaluation value t0 (step S44), and the value of the variable sum related to the sub template T1 is set as the evaluation value t1 (step S45).
Subsequently, the evaluation values t0 and t1 of the two sub-templates T0 and T1 are added together to calculate the evaluation value t of the template T (step S46).
次に、CPU71は、評価値tがテンプレートTの相違度評価値の最小値に係る変数minの値よりも小さいか否かを判定する(ステップS47)。ここで、評価値tが変数minよりも小さいと判定されると(ステップS47;YES)、CPU71は、変数minの値を評価値tで更新するとともに、そのときの探索位置(x,y)を変数minx、minyに保存する(ステップS48)。
Next, the
そして、CPU71は、評価値t0がサブテンプレートT0の相違度評価値の最小値に係る変数min0の値よりも小さいか否かを判定する(ステップS49)。ここで、評価値t0が変数min0よりも小さいと判定されると(ステップS49;YES)、CPU71は、変数min0の値を評価値t0で更新するとともに、そのときの探索位置(x,y)を変数minx0、miny0に保存する(ステップS50)。
また、ステップS47にて、評価値tが変数minよりも小さくないと判定されると(ステップS47;NO)、CPU71は、ステップS49の処理を実行する。
続けて、CPU71は、評価値t1がサブテンプレートT1の相違度評価値の最小値に係る変数min1の値よりも小さいか否かを判定する(ステップS51)。ここで、評価値t1が変数min1よりも小さいと判定されると(ステップS51;YES)、CPU71は、変数min1の値を評価値t1で更新するとともに、そのときの探索位置(x,y)を変数minx1、miny1に保存する(ステップS52)。
また、ステップS49にて、評価値t0が変数min0よりも小さくないと判定されると(ステップS49;NO)、CPU71は、ステップS51の処理を実行する。
Then, the
If it is determined in step S47 that the evaluation value t is not smaller than the variable min (step S47; NO), the
Subsequently, the
If it is determined in step S49 that the evaluation value t0 is not smaller than the variable min0 (step S49; NO), the
そして、所定の探索範囲内で動きベクトルの候補点(x,y)の各々についてループによる処理をx成分及びy成分ともに−A〜+Aの範囲内で増分を1として繰り返し実行して、x成分及びy成分に関するループによる処理が終了すると(ステップS53及びS54)、CPU71は、プログラムメモリ72内の動きベクトル判定プログラム72dを実行して、探索範囲内で最もマッチすると判断されたテンプレートTの動きベクトル(minx,miny)とサブテンプレートT0の動きベクトル(minx0,miny0)及びサブテンプレートT1の動きベクトル(minx1,miny1)が近いか否かを式(1)により判定する(ステップS55)。
ここで、テンプレートTの動きベクトル(minx,miny)がサブテンプレートT0の動きベクトル(minx0,miny0)及びサブテンプレートT1の動きベクトル(minx1,miny1)と近いと判断されれば、CPU71は、プログラムメモリ72内の有効性判定プログラム72eを実行することで、当該特徴点対応を有効としてマークして(ステップS56)、その特徴点対応を示す動きベクトル(minx,miny)を保存する(ステップS57)。
一方、ステップS55にて、近くないと判断されれば、CPU71は、プログラムメモリ72内の有効性判定プログラム72eを実行することで、当該特徴点対応を無効としてマークする(ステップS58)。
Then, for each of the motion vector candidate points (x, y) within a predetermined search range, the processing by the loop is repeatedly executed with an increment of 1 within the range of -A to + A for both the x component and the y component, and the x component When the processing related to the y and y components is completed (steps S53 and S54), the
If it is determined that the motion vector (minx, miny) of the template T is close to the motion vector (minx0, miny0) of the sub template T0 and the motion vector (minx1, miny1) of the sub template T1, the
On the other hand, if it is determined in step S55 that it is not near, the
これにより、追跡処理を終了する。
そして、図4に示すように、各特徴点についてのループによる追跡処理が終了すると(ステップS5)、CPU71は、プログラムメモリ72内の位置合わせプログラム72fを実行することで、有効性判定処理にて有効であると判定されたテンプレートTの特徴点対応のみを用いて、基準画像と対象画像間における座標変換係数を算出して(ステップS6)、これら画像どうしの位置合わせ(座標変換)を行う(ステップS7)。
As a result, the tracking process ends.
Then, as shown in FIG. 4, when the tracking process by the loop for each feature point is completed (step S5), the
以上のように、本実施形態の撮像装置100によれば、テンプレートT中の所定領域をサブテンプレートT0、T1として、サブテンプレートT0、T1及びテンプレートTの動きベクトルをそれぞれ求めて、これらテンプレートTの動きベクトルとサブテンプレートT0、T1の動きベクトルの間の大まかな一致度(距離の近さ)を評価することにより、そのマッチングの有効性を判定するようにしたので、画素値にランダム成分が多く含まれるテンプレートTにあっても、事後的にテンプレートTの特徴点対応の有効性を精度良く判定することができる。
即ち、特徴抽出処理における勾配共分散行列は、画素値勾配の2乗に比例し、その最小固有値やHarrisオペレータは、着目領域が同程度の振幅であればランダムなテクスチャやノイズよりもコーナーを選ぶけれども、相対的に振幅の激しいランダムなテクスチャやノイズと相対的に振幅の小さいコーナーとを区別することはできない。特に、ランダムノイズが多いほど、これらの評価基準による分離性は悪くなる。
このため、追跡に不向きなブロックをテンプレートTとして選択してしまい、誤った特徴点対応を得てしまうことがある。とりわけ、ノイズの激しい画像に関しては顕著に発生し、RANSACや最小メディアンのような多数決原理に基づくロバストな位置合せアルゴリズムを用いてさえも、基準画像と対象画像の位置合せが失敗することが多い。なお、勾配共分散行列を経由しないコーナー性特徴検出方法を用いても、それが勾配や画素値そのものの強さに基づく方法である限り、同様の問題が発生し得る。
そこで、本実施形態の撮像装置100によれば、ランダムノイズの激しい画像において、サブテンプレートT0、T1とテンプレートTとで同じマッチング点を持つ確率が低いことを利用して、ノイズの多い画像に対しても事後的にテンプレートTの特徴点対応の有効性を精度良く判定することができる。
このようにして選別される有効な特徴点対応のみを用いることにより、ノイズの強い画像どうしの座標変換係数もロバストに算出することができ、基準画像と対象画像の位置合わせを適正に行うことができる。
As described above, according to the
That is, the gradient covariance matrix in the feature extraction process is proportional to the square of the pixel value gradient, and its minimum eigenvalue and Harris operator select a corner rather than random texture or noise if the region of interest has the same amplitude. However, it is not possible to distinguish a random texture or noise having a relatively large amplitude from a corner having a relatively small amplitude. In particular, the greater the random noise, the worse the separability according to these evaluation criteria.
For this reason, a block unsuitable for tracking is selected as the template T, and an incorrect feature point correspondence may be obtained. In particular, it occurs remarkably with noisy images and often fails to align the reference image with the target image, even with robust alignment algorithms based on the majority rule such as RANSAC or minimal median. Even when the corner feature detection method that does not go through the gradient covariance matrix is used, the same problem may occur as long as it is a method based on the strength of the gradient and the pixel value itself.
Therefore, according to the
By using only the effective feature point correspondence selected in this way, it is possible to robustly calculate the coordinate conversion coefficient between images with strong noise, and to properly align the reference image and the target image. it can.
また、サブテンプレートT0、T1をテンプレートTの直和分割となるように設定し、サブテンプレートT0、T1の評価値t0、t1の合算によりテンプレートTの評価値tを算出するようにしたので、テンプレートTの評価値tを改めて算出する必要がなくなって、演算量或いは演算回路規模を従来例と同等に抑えることができる。
例えば、従来例において動きベクトルの一の候補点に対するSAD値の算出に要するループ回数は82回であるが、本実施形態にあっては、サブテンプレートT0、T1につき82/2回であり、サブテンプレートT0、T1の2つ分を合計すると全く同じ計算量となる。
また、演算器を並列に並べたハードウェアによる構成であっても、加算器の数やツリーの深さは従来例と同等に抑えることができる。
In addition, since the sub-templates T0 and T1 are set to be a direct sum division of the template T, the evaluation value t of the template T is calculated by adding the evaluation values t0 and t1 of the sub-templates T0 and T1. It is not necessary to calculate the evaluation value t of T again, and the amount of calculation or the circuit scale can be suppressed to the same level as in the conventional example.
For example, although the number of loops required for the calculation of the SAD values for one candidate points of the motion vectors in the conventional example is 82 times, in the present embodiment, an 8 2/2 times a sub-template T0, T1 When the two sub-templates T0 and T1 are summed, the calculation amount is exactly the same.
Further, even with a hardware configuration in which arithmetic units are arranged in parallel, the number of adders and the depth of the tree can be suppressed to the same level as in the conventional example.
さらに、各サブテンプレートT0、T1を市松模様状としたことにより、サブテンプレートT0、T1においてもテンプレートTとほぼ同等の空間領域をカバーすることに加え、コーナー性の特徴を任意の方向に対して捉えることができることとなって、サブテンプレート追跡においても正確な追跡能力をある程度確保することができる。
従って、テンプレートTの追跡結果が正しいにもかかわらず、サブテンプレートT0、T1の追跡結果が誤ったために誤って無効とされる可能性を大きく低下させることができる。
Furthermore, the sub-templates T0 and T1 have a checkered pattern, so that the sub-templates T0 and T1 also cover a spatial area that is almost equivalent to the template T, and the corner characteristics can be set in any direction. As a result, it is possible to secure accurate tracking ability to some extent even in sub-template tracking.
Therefore, although the tracking result of the template T is correct, the possibility of being invalidated erroneously because the tracking result of the sub-templates T0 and T1 is incorrect can be greatly reduced.
加えて、不良特徴点の追跡をある程度排除できることとなり、特徴抽出処理を省略してもある程度妥当な結果を得る確率を向上させることができる。 In addition, tracking of defective feature points can be eliminated to some extent, and the probability of obtaining a reasonable result to some extent can be improved even if feature extraction processing is omitted.
なお、上記実施形態では、テンプレートTの動きベクトル(minx,miny)と近いか否かの判定をサブテンプレートT0の動きベクトル(minx0,miny0)及びサブテンプレートT1の動きベクトル(minx1,miny1)の両方と行うようにしたが、これに限られるものではなく、例えば、サブテンプレートT0の動きベクトル(minx0,miny0)及びサブテンプレートT1の動きベクトル(minx1,miny1)のうち、何れか一方であっても良い。 In the above embodiment, it is determined whether or not the motion vector (minx, miny) of the template T is close to both the motion vector (minx0, miny0) of the sub template T0 and the motion vector (minx1, miny1) of the sub template T1. However, the present invention is not limited to this. For example, any one of the motion vector (minx0, miny0) of the sub template T0 and the motion vector (minx1, miny1) of the sub template T1 may be used. good.
また、本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において、種々の改良並びに設計の変更を行っても良い。
例えば、上記実施形態にあっては、テンプレートTを市松模様状に分割してサブテンプレートT0、T1を設定するようにしたが、これに限られるものではなく、例えば、テンプレートTaをストライプ状に分割してサブテンプレートTa0、Ta1を設定するようにしても良いし(図8(a)参照)、また、ストライプ状のサブテンプレートTa0、Ta1を横方向の略真ん中で縦方向に一画素ずらしてなるサブテンプレートTb0、Tb1を設定するようにしても良い(図8(b)参照)。
なお、図8(a)及び図8(b)において、サブテンプレートTa0及びサブテンプレートTb0をドットで表された画素の集合として、サブテンプレートTa1及びサブテンプレートTb1を白抜き(ドットなし)で表された画素の集合とする。
The present invention is not limited to the above-described embodiment, and various improvements and design changes may be made without departing from the spirit of the present invention.
For example, in the above embodiment, the template T is divided into a checkered pattern and the sub-templates T0 and T1 are set. However, the present invention is not limited to this. For example, the template Ta is divided into stripes. Then, the sub-templates Ta0 and Ta1 may be set (see FIG. 8A), and the stripe-shaped sub-templates Ta0 and Ta1 are shifted by one pixel in the vertical direction substantially in the middle of the horizontal direction. Sub-templates Tb0 and Tb1 may be set (see FIG. 8B).
In FIGS. 8A and 8B, the sub template Ta0 and the sub template Tb0 are represented as dots, and the sub template Ta1 and the sub template Tb1 are represented as white (no dots). A set of pixels.
<変形例1>
ここで、ストライプ状に分割されたサブテンプレートTa0、Ta1を画像位置合わせ処理に用いる撮像装置を変形例1として説明する。
変形例1の撮像装置は、追跡処理にて関数sadに変えて図9に示した関数sad_stripeを用いて相違度を評価する。関数sad_stripeも3個の仮引数x、y、pをとり、それらの意味は関数sadと同様である。
図9に示すように、CPU71は、先ず、変数sumを「0」によって初期化した後(ステップS501)、戻り値となる変数sumをx成分及びy成分についての二重ループにより算出する(ステップS502〜S510)。
即ち、ラインインデックスtyに関するループは、範囲をp〜7で増分を2とし(ステップS502)、ラインインデックスtxに関するループは、範囲を0〜7で増分を1とする(ステップS503)。
なお、これ以降の処理(ステップS504〜S510)は、図7におけるステップS405〜S411の処理と同様であり、ラインインデックスtxに関してループによる処理を0〜7の範囲内で増分を1として繰り返し実行するとともに、ラインインデックスtyに関してループによる処理をp〜7の範囲内で増分を2として繰り返し実行する。そして、ラインインデックスtx及びラインインデックスtyに関してループによる処理が終了すると(ステップS508及びS509)、ステップS507にて算出された変数sumの値を戻り値として設定して(ステップS510)、評価値算出処理を終了する。
<
Here, an imaging apparatus that uses sub-templates Ta0 and Ta1 divided into stripes for image alignment processing will be described as a first modification.
The imaging apparatus of the first modification evaluates the degree of difference using the function sad_stripe shown in FIG. 9 instead of the function sad in the tracking process. The function sad_stripe also takes three dummy arguments x, y, and p, and their meanings are the same as the function sad.
As shown in FIG. 9, the
That is, the loop related to the line index ty sets the range to p to 7 and increments to 2 (step S502), and the loop related to the line index tx sets the range to 0 to 7 and increments to 1 (step S503).
The subsequent processing (steps S504 to S510) is the same as the processing of steps S405 to S411 in FIG. 7, and the loop processing for the line index tx is repeatedly executed within the range of 0 to 7 with an increment of 1. At the same time, the loop processing for the line index ty is repeatedly executed within the range of p to 7 with an increment of 2. When the processing by the loop is finished for the line index tx and the line index ty (steps S508 and S509), the value of the variable sum calculated in step S507 is set as a return value (step S510), and the evaluation value calculation process Exit.
従って、サブテンプレートTa0、Ta1をストライプ状としたことにより、サブテンプレートTa0、Ta1においてもテンプレートTaとほぼ同等の空間領域をカバーすることに加え、ストライプの延在方向に直交する方向のエッジを好適に捉えることができ、ストライプの延在方向のエッジも多少の広がりを持つエッジであれば捉えることができ、総合すると、ある程度の広がりを持つコーナー性の特徴ならば任意の方向に対して捉えることができる。
これにより、テンプレートTaの追跡結果が正しいにもかかわらず、サブテンプレートTa0、Ta1の追跡結果が誤ったために誤って無効とされる可能性を大きく低下させることができる。
加えて、画素配列に対して順にアクセスする回数が多くなるためメモリアクセス効率を向上させることができ、アルゴリズムも単純化して高速化を図ることができる。
Accordingly, by forming the sub-templates Ta0 and Ta1 in a stripe shape, the sub-templates Ta0 and Ta1 also cover a space area substantially equivalent to the template Ta, and an edge in a direction perpendicular to the extending direction of the stripe is preferable. The edge of the stripe extension direction can be detected as long as the edge has a certain extent, and when combined, corner characteristics with a certain extent can be captured in any direction. Can do.
Thereby, although the tracking result of the template Ta is correct, the possibility that the tracking result of the sub-templates Ta0 and Ta1 is incorrect and erroneously invalidated can be greatly reduced.
In addition, since the number of accesses to the pixel array increases in order, the memory access efficiency can be improved, and the algorithm can be simplified to increase the speed.
また、上記実施形態にあっては、相違度評価値として差分絶対値和(SAD)を用いたが、これに限られるものではなく、例えば、差分二乗和(SSD)や最大差分絶対値(MAD)を用いても良い。差分二乗和(SSD)を用いる場合には、図7のS407にて差分の絶対値をとる代わりに、差分の二乗を算出するようにすれば良い。 Moreover, in the said embodiment, although the difference absolute value sum (SAD) was used as a dissimilarity evaluation value, it is not restricted to this, For example, a difference square sum (SSD) and the largest difference absolute value (MAD) ) May be used. When using the sum of squared differences (SSD), instead of taking the absolute value of the difference in S407 of FIG. 7, the square of the difference may be calculated.
<変形例2>
ここで、追跡処理にて関数sadに変えて図10に示した関数madを用いて相違度を評価する撮像装置を変形例2として説明する。関数madも3個の仮引数x、y、pをとり、それらの意味は関数sadと同様である。
図10に示すように、CPU71は、先ず、関数mを「0」によって初期化した後(ステップS601)、戻り値となる関数mをx成分及びy成分についての二重ループにより算出する(ステップS602〜S611)。
ここで、基準画像と対象画像における画素の差分値絶対値sを算出するまでの処理(ステップS602〜S607)は、図7におけるステップS402〜S407の処理と同様である。そして、CPU71は、関数mと算出された差分絶対値sのうち、最大値をとる方を関数mの値とする(ステップS608)。
そして、ラインインデックスtxに関してループによる処理を変数ps〜7の範囲内で増分を2として繰り返し実行するとともに、ラインインデックスtyに関してループによる処理を0〜7の範囲内で増分を1として繰り返し実行して、ラインインデックスtx及びラインインデックスtyに関してループによる処理が終了すると(ステップS609及びS610)、ステップS608にて算出された関数mの値を戻り値として設定する(ステップS611)。これにより、評価値算出処理を終了する。
また、変形例2の撮像装置は、図5のステップS46にてサブテンプレートT0、T1の評価値t0、t1を合算してテンプレートTの評価値tを算出する代わりに、「t←max(t0、t1)」に置き換えて、サブテンプレートT0、T1の評価値t0、t1のうち、最大値をとるほうをテンプレートTの評価値tとして設定する。
<
An imaging apparatus that evaluates the degree of difference using the function mad shown in FIG. 10 instead of the function sad in the tracking process will be described as a second modification. The function mad also takes three dummy arguments x, y, and p, and their meaning is the same as that of the function sad.
As shown in FIG. 10, the
Here, the processing (steps S602 to S607) until the pixel difference value absolute value s between the reference image and the target image is calculated is the same as the processing of steps S402 to S407 in FIG. Then, the
Then, the loop processing for the line index tx is repeatedly executed with an increment of 2 within the range of the variables ps to 7, and the processing by the loop is repeatedly executed for the line index ty with an increment of 1 within the range of 0 to 7. When the processing by the loop is finished for the line index tx and the line index ty (steps S609 and S610), the value of the function m calculated in step S608 is set as a return value (step S611). Thereby, the evaluation value calculation process is terminated.
In addition, in the imaging device of
さらに、上記実施形態では、画像位置合わせ処理、追跡処理、評価値算出処理にてループによる処理を行うようにしたが、これに限られるものではなく、例えば、専用ハードウェア回路等を実装して並列に処理するようにしても良い。
具体的には、図5の追跡処理にて関数sadを2回呼び出して算出したサブテンプレートT0、T1の評価値t0、t1を複数の加算器からなるハードウェア回路によって並列に計算するようにしても良い。
Furthermore, in the above-described embodiment, the loop processing is performed in the image alignment processing, tracking processing, and evaluation value calculation processing. However, the present invention is not limited to this. For example, a dedicated hardware circuit or the like is mounted. You may make it process in parallel.
Specifically, the evaluation values t0 and t1 of the subtemplates T0 and T1 calculated by calling the function sad twice in the tracking process of FIG. 5 are calculated in parallel by a hardware circuit composed of a plurality of adders. Also good.
また、上記実施形態では、テンプレートTを直和分割したものをサブテンプレートT0、T1としたが、これに限られるものではなく、テンプレートTの一部分の領域からなるものであれば如何なるものであっても良い。例えば、3つ以上のサブテンプレートを設定しても良く、この場合にあっては、例えば、各サブテンプレートの動きベクトルが一つでもテンプレートTの動きベクトルと近くないと判定された場合には(ステップS55;図6参照)、特徴点対応を無効と判断すればよい。あるいは、半数以上のサブテンプレートの動きベクトルがテンプレートTの動きベクトルと近くないと判定された場合に特徴点対応を無効と判断する等としてもかまわない。
また、サブテンプレートとして2つ設定するようにしたが、これに限られるものではなく、一のサブテンプレートのみを設定するようにしても良い。
In the above embodiment, the template T is obtained by dividing the template T into the sub-templates T0 and T1. However, the present invention is not limited to this, and any template may be used as long as it is composed of a partial area of the template T. Also good. For example, three or more sub-templates may be set. In this case, for example, if it is determined that at least one motion vector of each sub-template is not close to the motion vector of the template T ( Step S55; see FIG. 6), it may be determined that the feature point correspondence is invalid. Alternatively, when it is determined that the motion vectors of more than half of the sub-templates are not close to the motion vector of the template T, it may be determined that the feature point correspondence is invalid.
Although two sub-templates are set, the present invention is not limited to this, and only one sub-template may be set.
さらに、上記実施形態では、テンプレートTを8×8画素の正方形状としたが、テンプレートTの形状はこれに限られるものではなく、例えば、矩形以外の任意の形状としても良い。例えば、評価値算出処理(図7等参照)におけるラインインデックスtx、tyに関する二重ループをテンプレート(サブテンプレート)の形状を反映して、適宜定義したサブテンプレートの画素をたどるような画素毎のループとすれば良い。 Furthermore, in the said embodiment, although the template T was made into the square shape of 8x8 pixel, the shape of the template T is not restricted to this, For example, it is good also as arbitrary shapes other than a rectangle. For example, a loop for each pixel such that a double loop relating to the line indexes tx and ty in the evaluation value calculation process (see FIG. 7 and the like) reflects the shape of the template (subtemplate) and traces the pixels of the subtemplate defined as appropriate. What should I do?
また、上記実施形態では、テンプレートマッチングの探索方法を所定範囲内の全数探索としたが(図5及び図6参照)、これに限られるものではなく、例えば、探索ループ構造を変更することでN−ステップ法などの高速探索を適用しても良い。 In the above embodiment, the search method for template matching is an exhaustive search within a predetermined range (see FIGS. 5 and 6). However, the search method is not limited to this, and for example, N by changing the search loop structure. -A fast search such as a step method may be applied.
さらに、上記実施形態では、追跡処理(図5及び図6参照)にて、関数sadをサブテンプレートT0、T1毎に所定の画素をたどるループとして2回に分けて呼び出すようにしたが、これに限られるものではなく、例えば、関数sadを一度だけ呼び出して、単一のループの中で画素位置毎に分岐して、各サブテンプレートT0、T1に対応する差分絶対値和sum0、sum1を算出するようにしても良い。 Furthermore, in the above embodiment, in the tracking process (see FIG. 5 and FIG. 6), the function sad is called as a loop that traces a predetermined pixel for each of the subtemplates T0 and T1, and is called twice. For example, the function sad is called only once and branched for each pixel position in a single loop, and the absolute difference sums sum0 and sum1 corresponding to the sub-templates T0 and T1 are calculated. You may do it.
また、上記実施形態にあっては、テンプレートT及びサブテンプレートT0、T1の探索方法として、当該テンプレートT及びサブテンプレートT0、T1の複数の画像間における動きベクトルを算出するようにしたが、これに限られるものではなく、テンプレートT及びサブテンプレートT0、T1の探索を行うことができる方法であれば如何なる方法であっても良い。 In the above embodiment, as a search method for the template T and the sub-templates T0 and T1, motion vectors between a plurality of images of the template T and the sub-templates T0 and T1 are calculated. The method is not limited, and any method may be used as long as it can search for the template T and the sub-templates T0 and T1.
さらに、撮像装置100の構成は、上記実施形態に例示したものは一例であり、これに限られるものではない。
また、画像処理装置(有効性判定装置)として撮像装置100を例示したが、これに限られるものではなく、撮像部1により取得した複数の画像をUSB端子6を介して接続された外部機器に出力して、当該外部機器にて画像位置合わせ処理に係る追跡処理、評価値算出処理等を行うようにしても良い。例えば、運動や変形の解析等の目的でオプティカルフローを可視化する装置等に適用するようにしても良い。
Furthermore, the configuration of the
Further, although the
加えて、上記実施形態では、テンプレート探索手段、サブテンプレート探索手段、テンプレート動きベクトル算出手段、サブテンプレート設定、サブテンプレート動きベクトル算出手段、動きベクトル判定手段、有効性判定手段、サブ評価値算出手段、テンプレート評価値算出手段、位置合わせ手段としての機能を、CPU71によって所定のプログラム等が実行されることにより実現される構成としたが、これに限られるものではなく、例えば、各種機能を実現するためのロジック回路等から構成しても良い。
In addition, in the above embodiment, template search means, sub template search means, template motion vector calculation means, sub template setting, sub template motion vector calculation means, motion vector determination means, effectiveness determination means, sub evaluation value calculation means, The functions of the template evaluation value calculation unit and the alignment unit are realized by executing a predetermined program or the like by the
100 撮像装置(有効性判定装置、画像処理装置)
71 CPU(テンプレート探索手段、サブテンプレート探索手段、テンプレート動きベクトル算出手段、サブテンプレート設定、サブテンプレート動きベクトル算出手段、動きベクトル判定手段、有効性判定手段、サブ評価値算出手段、テンプレート評価値算出手段、位置合わせ手段)
T テンプレート
T0、T1 サブテンプレート
100 Imaging device (effectiveness determination device, image processing device)
71 CPU (template search means, sub template search means, template motion vector calculation means, sub template setting, sub template motion vector calculation means, motion vector determination means, effectiveness determination means, sub evaluation value calculation means, template evaluation value calculation means , Alignment means)
T Template T0, T1 Sub template
Claims (10)
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段と、
前記サブテンプレート設定手段により設定された前記サブテンプレートの位置を前記対象画像内で探索するサブテンプレート探索手段と、
前記テンプレート探索手段により探索されたテンプレートの位置と前記サブテンプレート探索手段により探索されたサブテンプレートの位置との間の距離に基づいて、前記テンプレートの探索結果の有効性を判定する有効性判定手段と、
を備えることを特徴とする有効性判定装置。 A template searching means for searching the target image for the position of the template in a predetermined region extracted from any one of the plurality of images in the reference image;
Sub-template setting means for setting a partial region of the template as a sub-template,
Sub template search means for searching the target image for the position of the sub template set by the sub template setting means;
Based on the distance between the position of the template by Ri and the position of the search template on the search means and the sub-template search unit by Ri searched sub templates, effective to determine the effectiveness of a search result of the template Sex determination means;
An effectiveness determining apparatus comprising:
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段と、Sub-template setting means for setting a partial region of the template as a sub-template,
前記サブテンプレート設定手段により設定されたサブテンプレートを前記対象画像内で追跡して、当該サブテンプレートの前記複数の画像間における動きベクトルを算出するサブテンプレート動きベクトル算出手段と、Sub template motion vector calculating means for tracking a sub template set by the sub template setting means in the target image and calculating a motion vector between the plurality of images of the sub template;
前記テンプレート動きベクトル算出手段により算出された動きベクトルと前記サブテンプレート動きベクトル算出手段により算出された動きベクトルの一致度を判定する動きベクトル判定手段と、 Motion vector determination means for determining the degree of coincidence between the motion vector calculated by the template motion vector calculation means and the motion vector calculated by the sub-template motion vector calculation means;
前記動きベクトル判定手段により判定された動きベクトルの一致度に基づいて、前記テンプレートの追跡結果の有効性を判定する有効性判定手段と、 Validity determination means for determining the validity of the tracking result of the template based on the degree of match of the motion vectors determined by the motion vector determination means;
を備えることを特徴とする有効性判定装置。An effectiveness determining apparatus comprising:
前記複数の画像間における所定領域のテンプレートの動きベクトルを当該テンプレートの位置として算出するテンプレート動きベクトル算出手段を含み、
前記サブテンプレート探索手段は、
前記複数の画像間におけるサブテンプレートの動きベクトルを当該サブテンプレートの位置として算出するサブテンプレート動きベクトル算出手段を含み、
前記有効性判定手段は、
前記テンプレート動きベクトル算出手段により算出されたテンプレートの動きベクトルと前記サブテンプレート動きベクトル算出手段により算出されたサブテンプレートの動きベクトルとの一致度を、前記テンプレートの位置と前記サブテンプレートの位置との間の距離の近さとして判定し、当該判定結果に基づいて、前記テンプレートの追跡結果の有効性を判定することを特徴とする請求項1記載の有効性判定装置。 The template search means includes:
The motion vector of the template of a predetermined area between the plurality of images includes a template motion vector calculating means for calculating a position of the template,
The sub-template search means includes
The motion vector of the sub-template among the plurality of images includes sub-template motion vector calculation means for calculating a position of the sub-template,
The effectiveness determining means includes
The degree of coincidence between the motion vector of the sub-templates calculated by the motion vector of the template, which is calculated by said template motion vector calculation unit sub-template motion vector calculation means, between the position of the the position of the template sub-template It was determined as the closeness of the distance, the determination based on the result of the validity determining apparatus according to claim 1, wherein the determining the validity of the tracking result of the template.
前記対象画像内における前記サブテンプレートの探索にて、前記サブテンプレート設定手段により設定された複数のサブテンプレートの各々に係る相違度評価値を算出するサブ評価値算出手段を備え、
前記テンプレート探索手段は、
前記サブ評価値算出手段により算出された複数のサブテンプレートの相違度評価値に基づいて、前記テンプレートの相違度評価値を算出するテンプレート評価値算出手段を含み、
前記テンプレート動きベクトル算出手段は、
前記テンプレート評価値算出手段により算出された相違度評価値に基づいて、前記テンプレートの動きベクトルを算出することを特徴とする請求項3に記載の有効性判定装置。 The sub-template setting means sets a plurality of sub-templates so as to be a direct sum division of the template,
A sub-evaluation value calculating unit that calculates a dissimilarity evaluation value related to each of the plurality of sub-templates set by the sub-template setting unit in the search for the sub-template in the target image;
The template search means includes:
On the basis of the difference evaluation value of multiple sub-templates calculated by the sub-evaluation value calculation means includes a template evaluation value calculating means for calculating the difference evaluation value of the template,
The template motion vector calculation means includes
4. The validity determination device according to claim 3 , wherein a motion vector of the template is calculated based on the dissimilarity evaluation value calculated by the template evaluation value calculation means .
前記有効性判定手段により有効であると判定された前記テンプレートの追跡結果を用いて、前記基準画像と前記対象画像の位置合わせを行う位置合わせ手段と、
を備えることを特徴とする画像処理装置。 The validity determination device according to any one of claims 1 to 6,
Alignment means for aligning the reference image and the target image using the tracking result of the template determined to be effective by the effectiveness determination means;
An image processing apparatus comprising:
請求項1〜6の何れか一項の有効性判定装置と、を備え、
前記有効性判定装置における複数の画像は、前記撮像手段により撮像された画像であることを特徴とする撮像装置。 An imaging means for capturing an image;
The effectiveness determination device according to any one of claims 1 to 6,
The imaging apparatus according to claim 1, wherein the plurality of images in the effectiveness determination apparatus are images captured by the imaging unit.
複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートの位置を対象画像内で探索するテンプレート探索手段、
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段、
前記サブテンプレート設定手段により設定された前記サブテンプレートの位置を前記対象画像内で探索するサブテンプレート探索手段、
前記テンプレート探索手段により探索された位置と前記サブテンプレート探索手段により探索された位置との間の距離に基づいて、前記テンプレートの探索結果の有効性を判定する有効性判定手段、
として機能させることを特徴とするプログラム。 Computer
A template searching means for searching for a position of a template in a predetermined region extracted from any one of the plurality of images in the target image;
Sub-template setting means for setting a partial region of the template as a sub-template,
Sub template search means for searching the target image for the position of the sub template set by the sub template setting means;
Said template said by Ri and the search position to the search means based on the distance between the I Ri searched position in the sub-template search means, the validity judging means for judging the validity of the search result of the template,
A program characterized by functioning as
複数の画像のうち、何れか一の基準画像内から抽出した所定領域のテンプレートを対象画像内で追跡して、当該テンプレートの前記複数の画像間における動きベクトルを算出するテンプレート動きベクトル算出手段、A template motion vector calculating means for tracking a template of a predetermined region extracted from any one of the plurality of images in the target image and calculating a motion vector between the plurality of images of the template;
前記テンプレートの一部分の領域をサブテンプレートとして設定するサブテンプレート設定手段、Sub-template setting means for setting a partial region of the template as a sub-template,
前記サブテンプレート設定手段により設定されたサブテンプレートを前記対象画像内で追跡して、当該サブテンプレートの前記複数の画像間における動きベクトルを算出するサブテンプレート動きベクトル算出手段、Sub template motion vector calculation means for tracking a sub template set by the sub template setting means in the target image and calculating a motion vector between the plurality of images of the sub template.
前記テンプレート動きベクトル算出手段により算出された動きベクトルと前記サブテンプレート動きベクトル算出手段により算出された動きベクトルの一致度を判定する動きベクトル判定手段、 Motion vector determination means for determining the degree of coincidence between the motion vector calculated by the template motion vector calculation means and the motion vector calculated by the sub-template motion vector calculation means;
前記動きベクトル判定手段により判定された動きベクトルの一致度に基づいて、前記テンプレートの追跡結果の有効性を判定する有効性判定手段、 Validity determination means for determining the validity of the tracking result of the template based on the degree of matching of the motion vectors determined by the motion vector determination means;
として機能させることを特徴とするプログラム。A program characterized by functioning as
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007175187A JP4935541B2 (en) | 2007-07-03 | 2007-07-03 | Effectiveness determination device, image processing device, imaging device, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007175187A JP4935541B2 (en) | 2007-07-03 | 2007-07-03 | Effectiveness determination device, image processing device, imaging device, and program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009017113A JP2009017113A (en) | 2009-01-22 |
JP2009017113A5 JP2009017113A5 (en) | 2010-08-12 |
JP4935541B2 true JP4935541B2 (en) | 2012-05-23 |
Family
ID=40357480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007175187A Active JP4935541B2 (en) | 2007-07-03 | 2007-07-03 | Effectiveness determination device, image processing device, imaging device, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4935541B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0670308A (en) * | 1992-08-19 | 1994-03-11 | Matsushita Electric Ind Co Ltd | Coder for motion compensation inter-frame prediction |
JPH1051793A (en) * | 1996-08-05 | 1998-02-20 | Nippon Telegr & Teleph Corp <Ntt> | Block matching device |
JP2006325274A (en) * | 2006-09-11 | 2006-11-30 | Olympus Corp | Imaging device |
-
2007
- 2007-07-03 JP JP2007175187A patent/JP4935541B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009017113A (en) | 2009-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100929085B1 (en) | Image processing apparatus, image processing method and computer program recording medium | |
JP5075757B2 (en) | Image processing apparatus, image processing program, image processing method, and electronic apparatus | |
JP5048542B2 (en) | Image processing apparatus and image processing program | |
US10572762B2 (en) | Image processing method for performing pattern matching for detecting a position of a detection target | |
JP2013539273A (en) | Autofocus for stereoscopic cameras | |
US10013632B2 (en) | Object tracking apparatus, control method therefor and storage medium | |
JP4055998B2 (en) | Distance detection device, distance detection method, and distance detection program | |
US9811909B2 (en) | Image processing apparatus, distance measuring apparatus, imaging apparatus, and image processing method | |
JP2015148532A (en) | Distance measuring device, imaging apparatus, distance measuring method, and program | |
JP5740844B2 (en) | Imaging apparatus, image processing method, and computer program | |
JP2013005258A (en) | Blur correction apparatus, blur correction method, and business form | |
Kruger et al. | In-factory calibration of multiocular camera systems | |
JP7379299B2 (en) | Position and orientation estimation device, position and orientation estimation method, and program | |
JP3988574B2 (en) | Image processing device | |
JP7312026B2 (en) | Image processing device, image processing method and program | |
JP6564284B2 (en) | Image processing apparatus and image processing method | |
US10332259B2 (en) | Image processing apparatus, image processing method, and program | |
JP4935541B2 (en) | Effectiveness determination device, image processing device, imaging device, and program | |
JP6602286B2 (en) | Image processing apparatus, image processing method, and program | |
CN112313938B (en) | Image pickup apparatus, image correction method, and computer-readable recording medium | |
WO2015159791A1 (en) | Distance measuring device and distance measuring method | |
JP6555940B2 (en) | Subject tracking device, imaging device, and method for controlling subject tracking device | |
JP6218520B2 (en) | Image processing apparatus, image processing method, and program | |
JP5887974B2 (en) | Similar image region search device, similar image region search method, and similar image region search program | |
JP4993686B2 (en) | Corresponding point search method and three-dimensional position measurement method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100630 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100630 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111118 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111118 |
|
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: 20120124 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4935541 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |