SIFTは、局所特徴量の実行速度が遅いという問題がある。また、SURFはSIFTの計算速度を改善した手法であるが、それでも携帯端末のような低スペックのハードウェアで動作させられるほどのパフォーマンスは得られない。このように実行速度が遅いのには、次の2つの要因があると考えられる。
1つ目の要因は、SIFTやSURFによる局所特徴量算出処理では、主軸方向vを求めるために近傍領域NRの各ピクセルについて微分計算を行い、求めた主軸方向vに基づいてテクスチャパターンを回転補正して、回転補正された後の新たな近傍領域NR’の各ピクセルついて、局所特徴量を算出するために、再び微分計算を行っていることである。即ち、主軸を求めるための微分計算と局所特徴量を求めるための微分計算とは、類似した処理であるにもかかわらず、それぞれが独立に行われている。
2つの目の要因は、テクスチャパターンを回転補正するための計算が膨大な量になっていることである。テクスチャパターンの回転補正の計算にはサブピクセル単位での線形補間処理が必要であり、膨大な浮動小数点計算を伴うので、計算量は多くなる。
そこで、本発明は、局所特徴量を高速に算出できる局所特徴量算出装置及び方法、並びにそれらを利用した対応点探索装置及び方法を提供することを目的とする。
本発明の局所特徴量算出装置は、画像の局所特徴量を算出する局所特徴量算出装置であって、前記画像から特徴点及び前記特徴点の近傍に設定される近傍領域を抽出する特徴点近傍領域抽出部と、前記近傍領域内の各ピクセルの方向及びその方向の強度をそれぞれ算出する方向強度計算部と、前記近傍領域の主軸方向を検出する主軸方向検出部と、前記各ピクセルについて、基準投票セルパターンを前記主軸方向に応じた角度で回転させて得られる回転済投票セルパターンの投票セルのうちの当該ピクセルが属する投票セルに対して、前記方向強度計算部にて算出された当該ピクセルの方向を前記主軸方向に応じて補正して得られる補正済方向に従って、前記方向強度計算部にて算出された当該ピクセルの方向の強度を投票することで、前記特徴点の局所特徴量を求める局所特徴量算出部とを備えた構成を有している。
この構成により、回転不変性を実現するために、特徴点の近傍領域のテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、投票セルパターンを回転させて、その回転した投票セルパターン(回転済投票セルパターン)の投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、局所特徴量の算出を高速化できる。なお、特徴点近傍領域抽出部は、画像を構成するピクセルのうちの所定の条件を満たすピクセルのみを特徴点として抽出してもよいし、画像のすべてのピクセルを特徴点としてもよい。また、主軸方向検出部は、画像を生成する際の撮像装置に備えられたジャイロセンサ、地磁気センサ、重力センサ等の検出値に基づいて検出してよい。
また、上記の局所特徴量算出装置において、前記主軸方向検出部は、前記方向強度計算部にて算出された前記近傍領域中の複数のピクセルの方向及びその方向の強度に基づいて、前記近傍領域の主軸方向を検出する。
上述のように、本発明の局所特徴量算出装置は、回転不変性を実現するために、テクスチャパターンを回転させるのではなく、投票セルパターンを回転させて、各ピクセルの方向を補正した上で投票を行なうので、回転後のテクスチャパターンについて再度各ピクセルの方向及びその方向の強度を計算することが不要になり、方向強度計算部で算出された各ピクセルの方向及びその方向の強度は、主軸方向の検出にも利用でき、かつ局所特徴量の算出にも利用できる。これにより、各ピクセルの方向及びその方向の強度を算出するための微分計算は一度で済み、局所特徴量の算出を高速化できる。
また、上記の局所特徴量算出装置は、さらに、前記ピクセルの方向を量子化する方向量子化部を備え、前記主軸方向検出部は、前記方向量子化部にて量子化されたピクセルの方向に従って当該ピクセルの方向の強度を投票することで、方向ヒストグラムを生成し、前記方向ヒストグラムのピーク近傍を曲線近似して、当該曲線の極大に対応する方向を前記主軸方向として検出する。
この構成により、量子化された方向ごとに強度を累積して、強度の累積値が最も大きい方向を主軸方向として検出できる。また、ヒストグラムのピークを曲線近似してその極大を主軸方向とするので、実数の主軸方向を得ることができる。なお、主軸方向は、ピクセルの方向を量子化した際の量子化数(整数)で表現されてもよいし、ラジアンで表現されてもよい。
また、上記の局所特徴量算出装置は、さらに、前記基準投票セルパターンを、前記主軸方向に応じた角度だけ回転させることで、前記回転済投票セルパターンを生成する投票セルパターン生成部を備える。
この構成によれば、主軸方向に対応して回転された回転済投票セルパターンを生成できる。
また、上記の局所特徴量算出装置は、さらに、前記方向強度計算部にて算出されたピクセルの方向を、前記主軸方向に応じて補正するための方向補正パターンを生成する方向補正パターン生成部を備え、前記局所特徴量算出部は、前記方向補正パターンを用いて、各ピクセルの方向を補正することで、前記補正済方向を得る。
この構成により、主軸方向に対応してピクセルの方向を補正するので、回転済投票セルパターンに投票するための適切な方向を取得できる。
また、上記の局所特徴量算出装置は、さらに、前記ピクセルの方向を量子化する方向量子化部を備え、前記主軸方向検出部は、前記方向量子化部にて量子化されたピクセルの方向に従って当該ピクセルの方向の強度を投票することで、方向ヒストグラムを生成し、前記方向ヒストグラムにて極大値を有する方向を前記主軸方向として検出する。
この構成によれば、量子化された方向ごとにその方向の強度を累積して、強度の累積値が最も大きい方向を主軸方向として検出できる。また、ヒストグラムにて極大値を有する方向を主軸方向とするので、離散化された主軸方向を得ることができる。なお、主軸方向は、ピクセルの方向を量子化した際の量子化数(整数)で表現されてもよいし、ラジアンで表現されてもよい。
また、上記の局所特徴量算出装置は、さらに、前記主軸方向検出部にて検出され得る複数の主軸方向にそれぞれ対応する複数の角度で前記基準投票セルパターンを回転させて得られた複数の投票セルパターンを記憶した投票セルパターンテーブルを備え、前記局所特徴量算出部は、前記投票セルパターンテーブルに記憶された投票セルパターンのうちの前記主軸方向に対応する投票セルパターンを前記回転済投票セルパターンとして使用して、前記局所特徴量を算出する。
上記のように、主軸方向が離散化された値として得られる場合には、各主軸方向に対応する回転済投票セルパターンを予め用意しておいてテーブル化することができる。上記の構成により、そのようなテーブルを用いて、主軸方向が得られたときに、その主軸方向に対応する回転済投票セルパターンをテーブルから選択することで、投票セルパターンをその都度計算で求める必要がなくなるので、処理を高速化できる。また、投票セルパターンに記憶させておく回転済投票セルパターンを近傍領域と同じ大きさとすれば、各ピクセルが投票すべき投票セルを、それぞれ1度のメモリアクセス(テーブルのルックアップ)だけで得ることができる。
また、上記の局所特徴量算出装置は、さらに、前記主軸方向検出部にて検出され得る複数の主軸方向にそれぞれ対応する複数の角度で前記基準投票セルパターンを回転させて得られた複数の投票セルパターンのうちの、パターンの形状が互いに重複しない複数の代表投票セルパターンを記憶した代表投票セルパターンテーブルと、前記主軸方向に従って前記代表投票セルパターンのセル番号を変換するためのセル番号変換テーブルとを備え、前記局所特徴量算出部は、前記投票セルパターンテーブルに記憶された前記代表投票セルパターンのうちの前記主軸方向に対応する代表投票セルパターンのセル番号を、前記セル番号変換テーブルを参照して、前記主軸方向に従って変換することで、前記方向の強度を投票する投票セルを決定する。
基準投票セルパターンが点対称の形状を有する場合には、それを回転させると、パターン形状が同じである回転済投票セルパターンが周期的に出現する。上記の構成は、この周期性を利用して、投票セルパターンテーブルの圧縮を図ったものである。即ち、パターン形状が重複する複数の回転済投票セルパターンについては、その1つのみを代表投票セルパターンとして投票セルパターンテーブルに記憶しておき、代表投票セルパターンとパターン形状が同じであるがセルの番号が異なる主軸方向については、代表投票セルパターンの投票セル番号を変換することで、当該主軸方向の回転済セルパターンを得ることができる。
また、上記の局所特徴量算出装置は、さらに、前記主軸方向検出部にて検出され得る複数の主軸方向の各々について、前記方向量子化部にて量子化された方向に対する前記補正済方向が規定された方向補正テーブルを備え、前記局所特徴量算出部は、前記方向補正テーブルを参照することで、前記主軸方向に従って、前記方向量子化部にて量子化された方向に対応する前記補正済方向を取得する。
ピクセルの方向についても、主軸方向が離散的に得られる場合には、テーブルを用意しておくことができる。上記の構成により、そのようなテーブルを用いて各ピクセルの方向を補正するので、各ピクセルについて、それぞれ1度のメモリアクセス(テーブルのルックアップ)だけで補正済方向を得ることができ、処理を高速化できる。
また、上記の局所特徴量算出装置は、さらに、前記主軸方向検出部にて検出され得る複数の主軸方向のうちの、前記方向量子化部にて量子化された方向に対する前記補正済方向が同一の周期を有する主軸方向を1グループとして、各グループについて、前記方向量子化部にて量子化された方向に対する代表補正済方向が規定された代表方向補正テーブルと、前記主軸方向に従って前記代表方向補正テーブルの前記代表補正済方向を変換するための方向変換テーブルと、前記局所特徴量算出部は、前記代表方向補正テーブルに規定された前記代表補正済方向のうちの、前記主軸方向及び前記方向量子化部にて量子化された方向に対応する代表補正済方向を、前記方向変換テーブルを参照して、前記主軸方向に従って変換することで、前記補正済方向を取得する。
方向補正テーブルにおいても、補正済方向が周期性を有する場合には、テーブルを圧縮できる。上記の構成により、補正済方向が同一の周期を有する主軸方向を1グループとして、各グループにつき代表の補正済方向のみを記憶しておき、実際に方向を補正する場合には、代表補正方向テーブルを参照して、主軸方向に従って代表補正方向を求めるとともに、主軸方向に従って、得られた代表補正方向を変換することで、補正済方向を得ることができる。
また、上記の局所特徴量算出装置において、前記局所特徴量算出部は、前記各ピクセルについて、当該ピクセルが複数の前記投票セルに属する場合に、当該ピクセルにおいて各投票セルが占める割合に応じて、当該複数の前記投票セルに当該ピクセルの方向の強度を投票する。
投票セルパターンにおいては、各ピクセルがいずれか1つの投票セルのみに属するように投票セルを設定することができるが、そうすると、回転済投票セルパターンの回転角の違いによって、投票セルの境界付近では誤差が生じることになる。上記の構成により、1つのピクセルを複数の投票セルに属するようにすることで、回転済投票セルパターンの回転角によらずに正確な投票値を得ることができる。
また、上記の局所特徴量算出装置において、前記方向は、ピクセルのエッジ勾配方向であり、前記方向の強度は、ピクセルのエッジ強度である。
この構成により、方向及びその強度は、ピクセルを微分することで得ることができる。
また、上記の局所特徴量算出装置において、前記局所特徴量算出部は、前記方向の強度を投票する投票セルの大きさに応じて前記方向の強度に重み付けをして投票する。
上述のように、投票セルパターンにおいては、各ピクセルがいずれか1つの投票セルのみに属するように投票セルを設定することができるが、そうすると、同じ投票セルの面積が回転済投票セルパターンの回転角の違いによって異なることが生じる。上記の構成により、投票セルの大きさに応じて投票する強度に重み付けをするので、上記のように回転済投票セルパターンの回転角の違いによる同一の投票セルへの投票の累積値の誤差を緩和できる。
また、上記の局所特徴量算出装置において、前記方向強度計算部は、前記特徴点に近いピクセルほど重みを重くした重み付けをして前記方向の強度を算出する。
この構成により、近傍領域において、特徴点に近いピクセルほど重要なピクセルであるとみなされる。
本発明の別の態様は、複数の画像の間の対応点を探索する対応点探索装置であって、上記のいずれかに記載の局所特徴量算出装置と、前記局所特徴量算出装置を用いて算出した前記複数の画像のそれぞれの局所特徴量を互いに比較することで前記複数の画像の間の対応点を探索する対応点探索部とを備えた構成を有している。
この構成により、複数の画像の間の対応点を探索するために、高速に局所特徴量を算出できる。
本発明のさらに別の態様は、画像の局所特徴量を算出する局所特徴量算出方法であって、前記画像から特徴点を抽出する特徴点抽出ステップと、前記特徴点の近傍に近傍領域を設定する近傍領域設定ステップと、前記近傍領域内の各ピクセルの方向を算出する方向算出ステップと、前記近傍領域内の各ピクセルの方向の強度を算出する強度算出ステップと、前記近傍領域内の複数のピクセルの前記方向及び前記方向の強度に基づいて、当該近傍領域の主軸方向を検出する主軸方向検出ステップと、基準投票セルパターンを前記主軸方向に応じた角度で回転させて回転済投票セルパターンを取得する投票セルパターン回転ステップと、各ピクセルの前記方向を前記主軸方向に応じて補正して補正済方向を取得する方向補正ステップと、前記近傍領域内の各ピクセルについて、前記回転済投票セルパターンの投票セルのうちの当該ピクセルが属する投票セルに対して、前記補正済方向に従って、当該ピクセルの前記方向の強度を投票することで、前記特徴点の局所特徴量を求める局所特徴量算出ステップとを含む構成を有している。
この構成によっても、回転不変性を実現するために、特徴点の近傍領域のテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、投票セルパターンを回転させて、その回転した投票セルパターン(回転済投票セルパターン)の投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、局所特徴量の算出を高速化できる。なお、上記の各ステップは、必ずしも記載の順に実行されなくてもよい。上記のステップの一部が並行して実行され、又は、上記のステップの一部が記載の順とは異なる順に実行されてもよい。
本発明のさらに別の態様は、画像の局所特徴量を算出する局所特徴量算出方法であって、前記画像から特徴点を抽出する特徴点抽出ステップと、前記特徴点の近傍に近傍領域を設定する近傍領域設定ステップと、前記近傍領域内の各ピクセルの方向を算出する方向算出ステップと、前記近傍領域内の各ピクセルの前記方向を量子化する方向量子化ステップと、前記近傍領域内の各ピクセルの方向の強度を算出する強度算出ステップと、前記方向量子化ステップにて量子化されたピクセルの方向に従って当該ピクセルの方向の強度を投票することで、方向ヒストグラムを生成し、前記方向ヒストグラムにて極大値を有する方向を前記近傍領域の主軸方向として検出する主軸方向検出ステップと、前記近傍領域内の各ピクセルについて、前記主軸方向検出ステップにて検出され得る複数の主軸方向にそれぞれ対応する複数の角度で基準投票セルパターンを回転させて得られた複数の投票セルパターンを記憶した投票セルパターンテーブルを参照して、前記主軸方向に対応する投票セルパターンにおける、当該ピクセルが属する投票セルを決定する投票セル決定ステップと、前記近傍領域内の各ピクセルについて、前記主軸方向検出ステップにて検出され得る複数の主軸方向の各々について、前記方向量子化ステップにて量子化された方向に対する補正済方向が規定された方向補正テーブルを参照して、前記主軸方向及び前記方向量子化ステップにて量子化された方向に対応する補正済方向を取得する方向補正ステップと、前記近傍領域内の各ピクセルについて、前記投票セル決定ステップにて決定された投票セルに対して、前記補正済方向に従って、当該ピクセルの前記方向の強度を投票することで、前記特徴点の局所特徴量を求める局所特徴量算出ステップとを含む構成を有している。
この構成によっても、回転不変性を実現するために、特徴点の近傍領域のテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、投票セルパターンを回転させて、その回転した投票セルパターン(回転済投票セルパターン)の投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、局所特徴量の算出を高速化できる。また、主軸方向が離散的な値としてえられるので、回転済投票セルパターンはテーブルを利用することにより取得でき、また、各ピクセルの方向もテーブルを用いて補正できるので、局所特徴量の算出をより高速化できる。なお、投票セルパターンテーブル及び方向補正テーブルは、圧縮されたテーブルと変換テーブルとの組合せであってもよい。また、上記の各ステップは、必ずしも記載の順に実行されなくてもよい。上記のステップの一部が並行して実行され、又は、上記のステップの一部が記載の順とは異なる順に実行されてもよい。
本発明のさらに別の態様は、複数の画像の間の対応点を探索する対応点探索方法であって、上記の局所特徴量算出方法で前記複数の画像のそれぞれの局所特徴量を算出する局所特徴量算出ステップと、前記局所特徴量算出ステップで算出された前記複数の画像のそれぞれの局所特徴量を互いに比較することで前記複数の画像の間の対応点を探索する対応点探索ステップとを含む構成を有している。
この構成によっても、複数の画像の間の対応点を探索するために、高速に局所特徴量を算出できる。なお、上記の各ステップは、必ずしも記載の順に実行されなくてもよい。上記のステップの一部が並行して実行され、又は、上記のステップの一部が記載の順とは異なる順に実行されてもよい。
本発明のさらに別の態様は、上記のいずれかの方法を演算処理装置に実行させるためのプログラムである。
本発明によれば、回転不変性を実現するために、特徴点の近傍領域のテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、投票セルパターンを回転させて、その回転した投票セルパターンの投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、局所特徴量の算出を高速化できる。
以下、本発明の実施の形態について図面を参照しながら説明する。以下に説明する実施の形態は、単なる例示であって、発明を限定するものではない。
(第1の実施の形態)
図1は、本発明の第1の実施の形態の局所特徴量算出装置1の構成を示すブロック図である。局所特徴量算出装置1は、特徴点近傍領域抽出部11と、方向強度計算部12と、主軸方向検出部13と、投票セルパターン生成部14と、方向補正パターン生成部15と、局所特徴量算出部16とを備えている。局所特徴量算出装置1は、ハードウェアとして図1に示す構成が実現されてもよいし、演算処理装置にソフトウェア(コンピュータプログラム)が実装されることで図1に示す構成が実現されてもよい。局所特徴量算出装置1は、画像を入力して、その画像中の局所特徴量を出力する。
特徴点近傍領域抽出部11には、画像TPが入力される。特徴点近傍領域抽出部11は、対象画像を構成するピクセルの中から所定の条件を満たすピクセルを特徴点pとして抽出する。特徴点を抽出するための条件は、再現性の高い抽出が行えるように決定される。例えば、コーナー点(角)を抽出するアルゴリズム(コーナディテクタ)を用いて、特徴点を抽出できる。
このように、入力画像を構成する複数のピクセルのうちの一部のピクセルのみを特徴点として抽出することで、入力画像のうちの一部のピクセルのみについて局所特徴量が求められるので、局所特徴量を用いた対応点探索では、高速に対応点を探索できる。一方、入力画像のすべてのピクセルを特徴点として抽出してもよい。この場合には、画像間の密な対応を得られることが期待できる。
特徴点近傍領域抽出部11は、抽出された特徴点pの近傍の所定の領域を近傍領域NRとして設定してこれを抽出する。本実施の形態では、特徴点を中心とするW×Wピクセルの正方形の領域を近傍領域NRとする。図2は、特徴点近傍領域抽出部11によって、抽出された特徴点p1〜p6及び特徴点p1の近傍領域をNR1を示す図である。なお、近傍領域の形状は、正方形に限らず、円、長方形等の他の形状であってもよい。
特徴点近傍領域抽出部11は、図3に示すように、画像TPを多段階に縮小したピラミッド画像を求め、各縮尺の画像に対して同一の条件で、それぞれ独立に特徴点を抽出して近傍領域を定義してもよい。図3は、縮尺をs分の1として多段階に縮小したピラミッド画像を示している。こうすることで、スケール不変性を有し、スケールの相違に影響を受けない局所特徴量を求めることができる。また、特徴点近傍領域抽出部11は、DoGフィルタにより、特徴点とともにスケール情報を取得して、このスケール情報に応じて近傍領域を切り出してもよい。これによってもスケール不変性を有する局所特徴量を求めることができる。
上記のようにして、特徴点近傍領域抽出部11は、1つの入力画像から、一般的には複数の特徴点p1〜pNを抽出し、各特徴点について近傍領域NRを設定する。そして、局所特徴量算出装置1は、各特徴点について、それぞれ局所特徴量を算出する。以下、方向強度計算部12、主軸方向検出部13、投票セルパターン生成部14、方向補正パターン生成部15、及び局所特徴量算出部16について説明するが、特徴点近傍領域抽出部11にて複数の特徴点p1〜pNが抽出された場合には、複数の特徴点p1〜pNの各々に対して、上記各部12〜16が以下に説明する処理を行う。以下の説明では、1つの特徴点について、その局所特徴量を求めるための処理を説明する。
方向強度計算部12は、近傍領域NR内の各ピクセルの方向及びその方向の強度を算出する。ここで、本発明において、ピクセルの「方向」は、当該ピクセルの周辺を含めた小領域における画素値の分布の偏りを表す。また、「方向の強度」は、その偏りの度合い、即ち「方向」の信頼度を表す。「方向」及び「方向の強度」は、典型的には、ピクセルの画素値を微分することでそのピクセルのエッジ情報を求め、そのエッジ情報に基づいて求めることができる。即ち、ピクセルをx方向及びy方向に微分することで、エッジ情報としてエッジ勾配方向及びエッジ強度を求めることができ、このエッジ勾配方向を当該ピクセルの「方向」とし、このエッジ強度を当該ピクセルの「方向の強度」とすることができる。本実施の形態では、ピクセルの「方向」及び「方向の強度」として、それぞれエッジ勾配方向及びエッジ強度を採用する。具体的には、以下の通りである。以下、(x,y)Tは、画像上の座標を表す。
まず、座標(x,y)のピクセルのx方向微分fx(x,y)及びy方向微分fy(x,y)を、それぞれ式(1)及び式(2)によって求める。
そして、これらのx方向微分fx(x,y)及びy方向微分fy(x,y)を用いて、エッジ勾配方向θ(x,y)及びエッジ強度m(x,y)を、それぞれ式(3)及び式(4)によって求める。
但し、式(3)によれば、エッジ勾配方向は、第一象限と第三象限、及び第二象限と第四象限とを区別できないことになる。従って、x方向微分fx(x,y)及びy方向微分fy(x,y)の符号を参照して、適切に補正をすることで、エッジ勾配方向として0〜2πの方向を求める。以下、記載を簡略化するために、アークタンジェントはすべて0〜2πの値を出力するものとする。
方向強度計算部12は、式(4)で求めたエッジ強度を用いて、式(5)により重み付きエッジ強度mhat(x,y)を求める。なお、p=(px,py)Tは特徴点の位置である。また、「hat」は、式中の「^」を表している。
ここで、関数w(x,y)は重みであり、例えば、平均を(0,0)T、共分散行列を
とする二次元ガウス分布を用いることができる。これにより、中心のピクセルほど重要であるとみなされることになる。
なお、方向強度計算部12で求めた重み付きエッジ強度mhat(x,y)は、後段の主軸方向検出部13及び局所特徴量算出部16にてそれぞれ用いられるが、主軸方向検出用と局所特徴量算出用とで、それぞれ異なる重みw(x,y)を用いて、主軸方向検出用の重み付きエッジ強度と局所特徴量算出用の重み付きエッジ強度とをそれぞれ別々に求めてもよい。また、重み付けをしていないエッジ強度m(x,y)をそのまま用いて主軸方向を検出し、局所特徴量を算出することももちろん可能である。
方向強度計算部12は、近傍領域NRの各ピクセルについて、上記のようにしてエッジ勾配方向θ(x,y)及び重み付けエッジ強度mhat(x,y)を算出し、それらを主軸方向検出部13及び局所特徴量算出部16に出力する。
主軸方向検出部13は、主軸方向を検出する。このために、主軸方向検出部13は、まず、エッジ勾配方向θ(x,y)を式(6)によって量子化する。
ここで、式(6)の右辺は、エッジ勾配方向θ(x,y)を0からN−1にスカラー量子化する関数であり、例えば、式(7)を採用することができる。
この式(7)を例えばN=4の場合についてグラフに表すと、図4のようになる。なお、実験の結果、N=40程度が好適であることがわかっている。
主軸方向検出部13は、近傍領域NR内の各ピクセルのエッジ勾配方向θ(x,y)を量子化すると、その量子化されたエッジ勾配方向θhat(x,y)と、方向強度計算部12から得た重み付けエッジ強度mhat(x,y)とを用いて、式(8)に従って、エッジ勾配方向のヒストグラムh(k)を求める。
なお、式(8)において、Skは、式(9)で与えられる。
式(8)に示すように、エッジ勾配方向ヒストグラムの投票値には、重み付けエッジ強度hat(x,y)が用いられる。図5は、式(8)によって得られたエッジ勾配方向ヒストグラムの例を示すグラフである。
主軸方向検出部13は、このエッジ勾配方向ヒストグラムh(k)から主軸を求める。本実施の形態では、主軸方向検出部13は、ヒストグラムh(k)のピーク近傍を放物線近似し、その放物線のピークをラジアンで表したものを主軸vとする。主軸vは実数であり、従ってこれをvrealと表記する。なお、後述するように、別の実施の形態では、ヒストグラムのピークをそのまま主軸vとする。この場合、主軸vは、離散的な値、即ち0〜N−1の整数値又はそれをラジアンに変換した値であるので、これをvintegerと表記して、vrealと区別する。
主軸方向検出部13は、エッジ勾配方向ヒストグラムh(k)にピークが複数存在する場合には、複数の主軸方向を検出してもよい。この場合には、主軸方向の数だけ局所特徴量が与えられることになり、局所特徴量を用いた対応点探索において探索性能が向上する。主軸方向検出部13は、検出した主軸方向vrealを投票セルパターン生成部14及び方向補正パターン生成部15出力する。
投票セルパターン生成部14は、基準セルパターンCPを主軸方向vrealに応じた角度で回転させる。換言すると、投票セルパターン生成部14は、基準投票セルパターンCPの基準方向EDが主軸方向vrealの方向と一致するように投票セルパターンCPを回転させる。回転後の投票セルパターンを回転済投票セルパターンという。投票セルパターンとしては、上記の背景技術で説明したSIFTの場合と同様に、4×4のグリッド上に区分けされた投票セルからなるものを採用することもできるが、本実施の形態では、図6A及び図6Bに示すように、円を円周に沿って3つの領域に区分けして、更にそうしてできた2つのドーナツ状の領域を半径方向に8等分して区分して投票セルを形成した投票セルパターンを採用する。投票セルパターンCPの各投票セルVCには順に投票セル番号が与えられている。
基準投票セルパターンは、その中心が特徴点の位置になるように設定され、回転済投票セルパターンは、基準投票セルパターンをその中心を視点として回転することで得られる。中心のセルには投票セル番号「0」が与えられ、その外側のドーナツ状領域では、基準投票セルパターンの右側の投票セルから反時計回りに順に「1」〜「8」の投票セル番号が与えられ、最外側のドーナツ状領域では、基準投票セルパターンの右側の投票セルから反時計回りに順に「9」〜「16」の投票セル番号が与えられる。換言すれば、外側のドーナツ状領域において投票セル番号が右側の投票セルから反時計回りに順に「1」〜「8」となり、最外側のドーナツ状領域において投票セル番号が基準投票セルパターンの右側の投票セルから反時計回りに順に「9」〜「16」となる投票セルパターンが本実施の形態の基準投票セルパターンであり、これを回転させたものが回転済投票セルパターンである。基準投票セルパターンの基準方向RDは、投票セル0、投票セル1、及び投票セル9の中心を通る方向とされる。
図6Aは、主軸方向vrealが水平右方向である場合に、基準方向RDが主軸vrealに重なるようにされた回転済投票セルパターンCP’(即ち、基準投票セルパターンから回転されていない)であり、図6Bは、主軸方向vrealが22.5度であるときに、その主軸方向vrealに基準方向RDが一致するよう回転させられた回転済投票セルパターンCP’である。
図7は、回転済投票セルパターンCP’を画像TP上に重ねた様子を示す図である。図7の例では、主軸方向vrealは20度であり、回転済投票セルパターンCP’は、その基準方向RDが主軸vrealの方向に一致するように回転されている。各ピクセルについて投票を行う場合には、当該ピクセルが属する投票セルに投票をすることになる。
主軸方向vrealがラジアン表現されている場合には、基準投票セルパターンCPの基準方向RDが主軸方向vrealの方向に一致するよう回転された回転済投票セルパターンCP’は、式(10)で表される。即ち、投票セルパターン生成部14は、式(10)に主軸vrealを代入することで、主軸vrealに従って回転された投票セルパターンCP’を生成する。なお、(px,py)Tは、特徴点pの位置である。
この式(10)にピクセルの座標(x,y)を代入することで、当該ピクセルが投票すべき投票セルが決定される。なお、式(10)において、r1、r2、r3は、それぞれ、図6A及び図6Bに示した投票セルパターンにおける投票セル0の半径、投票セル1〜8の外周の半径(投票セル9〜16の内周の半径)、投票セル9〜16の外周の半径である。例えば、近傍領域NRのサイズが25×25のサイズであるときは、r1=3、r2=8、r3=12などを選べばよい。投票セルパターン生成部14は、生成した回転済投票セルパターンCP’を局所特徴量算出部16に出力する。
方向補正パターン生成部15は、主軸方向vrealに応じて、エッジ勾配方向θ(x,y)を補正するための方向補正パターンを生成する。方向補正パターンは、式(11)で表される。
式(11)から明らかなように、方向補正パターンは、主軸方向vrealの基準方向RDからの傾きを打ち消すように、エッジ勾配方向θ(x,y)を補正するための補正パターンである。方向補正パターン生成部15は、生成した方向補正パターンを局所特徴量算出部16に出力する。
局所特徴量算出部16は、方向強度計算部12で算出された近傍領域内の各ピクセルのエッジ勾配方向θ(x,y)と重み付きエッジ強度mhat(x,y)、投票セルパターン生成部14で生成された回転済投票セルパターンCP’、及び方向補正パターン生成部15で生成された方向補正パターンを入力して、これらを用いて局所特徴量dを求める。具体的には、局所特徴量算出部16は、近傍領域NR内の各ピクセルのエッジ勾配方向θ(x,y)を方向補正パターンで補正して補正済エッジ勾配方向を得る。そして、補正済エッジ勾配方向に従って、回転済投票セルパターンCP’に重み付きエッジ強度mhat(x,y)を投票することで局所特徴量dを求める。
局所特徴量算出部60は、投票に際して、まず、各ピクセルのエッジ勾配方向θ(x,y)を方向補正パターンで補正して補正済エッジ勾配方向を得て、それを8通りに量子化する。図6A及び図6Bに示すように、本実施の形態の回転済投票セルパターンCP’は、合計17個の投票セルを有する。よって、各投票セルにおいて8方向のヒストグラムを生成し、それらを連結して局所特徴量dとすると、局所特徴量は、17×8=136次元となる。なお、ヒストグラムの生成において投票するのは、各ピクセルの重み付きエッジ強度mhat(x,y)である。
局所特徴量をd=(d0,d1,・・・,d135)Tというベクトル表記で記載すると、diは式(12)で求められる。
このSiは、式(13)で与えられる。
また、式(13)のindex(x,y)は、式(14)で求められる。
なお、式(14)のvoting_cell_patternvreal(x,y)は、式(10)で示したものである。また、式(14)のdirection_offsetvreal(θ(x,y))は、式(11)で示したものであり、関数quantize(θ,8)には、式(7)を採用する。
式(14)によれば、局所特徴量d=(d0,d1,・・・,d135)において、d0,d1,・・・,d7は、投票セル0に投票された8つの方向のそれぞれの投票累積値であり、d8,d9,・・・,d15は、投票セル1に投票された8つの方向のそれぞれの投票累積値であり、d16,d17,・・・,d23は、投票セル2に投票された8つの方向のそれぞれの投票累積値であり、以下同様である。これを図で説明すると、図8の通りである。
次に、局所特徴量算出装置1にて実行される局所特徴量算出方法を説明する。局所特徴量算出方法は、ハードウェアで構成された局所特徴量算出装置1が実行するものであってもよいし、演算処理装置に実装されて局所特徴量算出装置1を構成するソフトウェア(コンピュータプログラム)が実行するものであってもよい。図9は、本実施の形態の局所特徴量算出方法のフロー図である。本実施の形態の局所特徴量算出方法は、入力された画像から局所特徴量を算出する。
まず、特徴点近傍領域抽出部11は、画像TPから特徴点pを抽出する(ステップS11)。次に、特徴点近傍領域抽出部11は、特徴点pの近傍に近傍領域NRを設定する(ステップS12)。そして、特徴点近傍領域抽出部11は、特徴点p及び近傍領域NRを方向強度計算部12に出力する。方向強度計算部12は、近傍領域NR内の各ピクセルをx方向及びy方向にそれぞれ微分することで、近傍領域NR内の各ピクセルについて、エッジ勾配方向θ(x,y)を算出し(ステップS13)、重み付きエッジ強度mhat(x,y)を算出する(ステップS14)。なお、ステップS13とステップS14は、いずれが先に行なわれてもよく、並行して行なわれてもよい。
次に、主軸方向検出部13は、エッジ勾配方向θ(x,y)を量子化する(ステップS15)。そして、主軸方向検出部13は、近傍領域NR内のピクセルの量子化されたエッジ勾配方向θhat(x,y)に重み付きエッジ強度mhat(x,y)を投票することで、エッジ勾配方向ヒストグラムを生成する(ステップS16)。主軸方向検出部13は、その勾配方向ヒストグラムのピーク付近において曲線フィッティングを行い、その曲線の極大に対応する方向(実数)を近傍領域NRの主軸方向vrealとして検出する(ステップS17)。
投票セルパターン生成部14は、主軸方向検出部13から主軸方向vrealを取得して、基準投票セルパターンPCを主軸方向vrealに応じた角度で回転させて、回転済投票セルパターンPCを生成する(ステップS18)。また、方向補正パターン生成部15は、主軸方向vrealに応じた方向補正パターンを生成する(ステップS19)。なお、ステップS18とステップS19は、いずれが先に行なわれてもよく、並行して行なわれてもよい。
局所特徴量算出部16には、方向強度計算部12からエッジ勾配方向θhat(x,y)及び重み付きエッジ強度mhat(x,y)が入力され、投票セルパターン生成部14から回転済投票セルパターンPC’が入力され、方向補正パターン生成部15から方向補正パターンが入力される。局所特徴量算出部16は、近傍領域NR内の各ピクセルについて、エッジ勾配方向θhat(x,y)を方向補正パターンに従って補正して、補正済エッジ勾配方向を取得する(ステップS20)。局所特徴量算出部16は、近傍領域NR内の各ピクセルについて、回転済投票セルパターンPC’の投票セルのうちの、当該ピクセルが属する投票セルに対して、補正済エッジ勾配方向に従って、当該ピクセルの重み付きエッジ強度mhat(x,y)を投票する(ステップS21)。これにより、特徴点pの局所特徴量dが求まる。
以上説明したように、本実施の形態では、回転不変性を実現するために、従来技術のように、特徴点pの近傍領域NRのテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、基準投票セルパターンCPを回転させて、その回転した投票セルパターン(回転済投票セルパターンCP’)の投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、局所特徴量の算出を高速化できる。
また、上述のように、回転不変性を実現するために、テクスチャパターンを回転させるのではなく、基準投票セルパターンを回転させて、かつ、各ピクセルの方向を補正した上で投票を行なうので、従来技術のように回転後のテクスチャパターンについて再度各ピクセルの方向及びその方向の強度を計算することが不要になり、方向強度計算部12で算出された各ピクセルのエッジ勾配方向及びエッジ強度は、主軸方向vrealの検出にも、局所特徴量の算出にも利用できる。これにより、各ピクセルの方エッジ勾配方向及びエッジ強度を算出するための微分計算は一度で済み、局所特徴量の算出を高速化できる。
(第2の実施の形態)
図10は、本発明の第2の実施の形態の局所特徴量算出装置の構成を示すブロック図である。本実施の形態の局所特徴量算出装置2は、特徴点近傍領域抽出部21と、方向強度計算部22と、主軸方向検出部23と、局所特徴量算出部26とを備えている。局所特徴量算出装置2は、ハードウェアとして図10に示す構成が実現されてもよいし、演算処理装置にソフトウェアが実装されることで図10に示す構成が実現されてもよい。
特徴点近傍領域抽出部21は第1の実施の形態の特徴点近傍領域抽出部11と同様にして、入力された画像TPから特徴点pを抽出して、各特徴点pに対して近傍領域NRを設定する。方向強度計算部22も第1の実施の形態の方向強度計算部12と同様に、近傍領域NR内の各ピクセルについて、x方向及びy方向に微分をすることで、「方向」及び「方向の強度」として、エッジ勾配方向θ(x,y)及びエッジ強度m(x,y)を算出する。
第1の実施の形態では、主軸方向検出部13が、方向強度計算部22にて求められた、近傍領域NR内のピクセルのエッジ勾配方向θ(x,y)を式(6)により量子化したが、本実施の形態では、方向強度計算部22がこの量子化を行い、方向強度計算部22は、量子化されたエッジ勾配方向θhat(x,y)を主軸方向検出部23及び局所特徴量算出部26に出力する。方向強度計算部22は、エッジ強度については、第1の実施の形態の方向強度計算部12と同様に、重み付けエッジ強度mhat(x,y)を求めて、主軸方向検出部23及び局所特徴量算出部26に出力する。
主軸方向検出部23は、方向強度計算部22から量子化されたエッジ勾配方向θhat(x,y)及び重み付けエッジ強度mhat(x,y)を取得して、式(8)、(9)によりエッジ勾配方向のヒストグラムh(k)を求める。そして、ヒストグラムh(k)のピークを主軸方向vintegerとする(図5参照)。この主軸方向vintegerは、0〜N−1のいずれかの整数値、即ち離散的な値である。なお、主軸方向検出部30は、この整数値をラジアンに変換してもよい。この場合にも、主軸vintegerとしてのラジアンは離散的な値をとる。主軸方向検出部23は、離散的な値である主軸vintegerを局所特徴量算出部26に出力する。
本実施の形態の局所特徴量算出装置2は、第1の実施の形態の局所特徴量算出装置1と比較すると、第1の実施の形態の投票セルパターン生成部14及び方向補正パターン生成部15を備えていない。これは、本実施の形態では、主軸方向検出部23にて、主軸方向が離散的な値として検出されるので、回転された投票セルパターンや方向補正パターンはテーブル化することができ、第1の実施の形態のように、検出された主軸方向に基づいてその都度回転済投票セルパターンや方向補正パターンを生成(計算)する必要がないからである。本実施の形態の局所特徴量算出部26は、その中に投票セル決定部24及び方向補正部25を備えている。
まず、投票セル決定部24について説明する。投票セル決定部24は、主軸方向検出部23から得た主軸vintegerに従って投票セルパターンを決定し、決定した投票セルパターンを参照して、注目ピクセルの位置に対応する投票セル番号を取得する。
図11は、基準投票セルパターンPCと、各主軸方向vintegerに対応する回転済投票セルパターンPC’を示している。投票セルパターンは、図6A及び図6Bに示した投票セルパターンと同じ形状であり、投票セルは0〜16までの17個である。セル番号の付与の仕方も図6A及び図6Bと同じである。
上述のように、主軸方向vintegerは0〜N−1に離散化されており、その種類は有限(0〜N−1)であるので、それに対応する回転済投票セルパターンの種類も有限(0〜N−1)である。よって、これらの有限の回転済投票セルパターンをテーブル化しておけば、主軸方向vintegerが与えられたときに、テーブルから投票セルパターンを読み出すことで、当該主軸方向vintegerに対応する角度で回転された回転済投票セルパターンを取得できる。
図12は、投票セルパターンテーブルの例を示す図である。図12は、N=40、W=25である場合を示している。各回転済投票セルパターンPC’は、近傍領域NRの大きさW×W(=25×25)と同じ大きさを有する。即ち、W×W内の各ピクセルに、当該ピクセルが所属する投票セルの番号が与えられている。なお、円の外側には、セル番号「−1」が与えられ、投票はされない。図12の例では、1つのピクセルに対して1つの投票セルが割り当てられている。
投票セル決定部24に、図12に示す投票セルパターンテーブルを保存しておくことで、主軸方向検出部23から主軸方向vintegerが与えられると、投票セル決定部24は、その主軸方向vintegerに対応する回転済投票セルパターンを選択して、各ピクセルの座標に従って、投票セルを決定する。
基準投票セルパターンが点対称の形状を有する場合は、それを所定のステップ幅で回転させると、パターン形状が同じである回転済投票セルパターンが周期的に出現する。従って、この場合には、セル番号変換テーブルを用いることで、投票セルパターンテーブルを圧縮できる。
本実施の形態では、投票セルパターンは点対象であり、ステップ数はN=40であるので、パターン形状が同じである回転済投票セルパターンが、45度ごと(5ステップごと)に周期的に出現する。よって、投票セルパターンテーブルを圧縮できる。即ち、主軸vinteger=5〜39の投票セルパターンは、主軸vinteger=0〜4の投票セルパターンを用いて表現でき、これにより、投票セルパターンのテーブルを8分の1圧縮できる。例えば、主軸vinteger=5〜9の投票セルパターンは、主軸vinteger=0〜4の投票セルパターンを用いて、式(15)で表現できる。
そこで、本実施の形態では、投票セル決定部24には、実際には、図10に示すように、代表投票セルパターンテーブル241が設けられ、図13に示すように、図11の主軸vinteger=0〜4の投票セルパターンのみが代表投票セルパターンとして記憶されている。換言すれば、代表セルパターンテーブル241には、パターンの形状が互いに重複しない複数の代表投票セルパターンのみが記憶されている。本実施の形態では、主軸方向Vinteger=0、1、2、3、4に対応する5種類の回転済投票セルパターンが代表投票セルパターンとなる。そして、投票セル決定部24には、さらに図14に示すセル番号変換テーブル(compressA)242が保存されている。
投票セル決定部24は、主軸方向vintegerが与えられると、まず、図13の代表投票セルパターンテーブル241を参照して、5種類の代表投票セルパターンのうちの当該主軸方向vintegerに該当する代表投票セルパターンを選択する。そして、その代表投票セルパターンにおいて、注目ピクセルの座標が属する投票セルのセル番号を得る。次に、図13の圧縮用変換テーブル242を参照して、得られた投票セルのセル番号を変換する。
例えば、主軸方向vinteger=18である近傍領域において、特徴点を中心とする座標が(−4,2)である注目ピクセルについては、主軸方向vintegerが「18」であるので、図13の左から4番目の代表投票セルパターンが選択され、注目ピクセルの座標が(−4,2)であるので、セル番号「4」が得られる。このセル番号「4」を、図14に示すセル番号変換テーブル242の第4行第5列を参照することで、「1」に変換する。これにより、この注目ピクセルの投票セルは、投票セル1であると決定される。
なお、さらに、投票セルパターンの第1象限、第2象限、第3象限及び第4象限が相似形である場合は、これに着目して、図12に示す投票セルパターンテーブルをさらに4分の1に圧縮できる。
次に、方向補正部25について説明する。方向補正部25は、方向強度計算部22から得た、近傍領域内の各ピクセルについての、量子化されたエッジ勾配方向θhat(x,y)と、主軸方向検出部23から得た主軸方向vintegerを用いて、そのエッジ勾配方向を補正する。
上述のように、本実施の形態では、主軸方向vintegerは0〜N−1に離散化されており、その種類は有限(0〜N−1)であり、また、エッジ勾配方向θhat(x,y)も離散的な値であるので、主軸方向vintegerとエッジ勾配方向θhat(x,y)の組合せに対応する補正済エッジ勾配方向をテーブル化することができる。このようなテーブルを用意しておくことで、主軸方向vintegerが与えられたときに、テーブルからエッジ勾配方向を読み出すことで、当該主軸方向vintegerに応じて補正された補正済エッジ勾配方向を取得できる。
図15は、方向補正テーブルの例を示す図である。図15は、N=40の場合を示している。方向補正部25に、図15に示す方向補正テーブルを保存しておくことで、方向補正部25は、主軸方向vintegerと量子化されたエッジ勾配方向θhat(x,y)が与えられると、図15の方向補正テーブルを参照することで、0〜7の8方向のいずれかを補正済エッジ勾配方向として求めることができる。
図15から分かるように、方向補正テーブルにおいて、エッジ勾配方向θhat(x,y)に対する補正済エッジ勾配方向の変化は、周期性を有する。従って、この周期性を利用して、テーブルを圧縮することができる。本実施の形態では、N=40であるので、圧縮用変換テーブルを用いることで、図15の方向補正テーブルを8分の1に圧縮できる。即ち、主軸vinteger=5〜40の場合のエッジ勾配方向(0〜7)は、主軸vinteger=0〜4の部分のテーブルから求めることができる。例えば、主軸vinteger=5〜9の場合は、主軸vinteger=0〜4の部分の方向補正テーブルを用いて、式(16)で表現できる。
そこで、本実施の形態では、方向補正部25には、実際には、図10に示すように、代表方向補正テーブル251が設けられ、この代表方向補正テーブル251では、図16に示すように、図15のテーブルのうちのvinteger=0〜4の部分のみが、代表補正済エッジ勾配方向として規定されている。換言すれば、代表方向補正テーブル251では、エッジ勾配方向θhat(x,y)に対する補正済エッジ勾配方向が同一の周期を有する主軸方向(例えば、主軸方向vinteger=0、5、10、15、20、25、30、35)で1グループとされ、各グループについて、1行の代表補正済エッジ勾配方向のみが規定されている。本実施の形態では、主軸方向vinteger=0、1、2、3、4に対応する補正済エッジ勾配方向(図15の第1行〜第5行)が代表補正済エッジ勾配方向として代表方向補正テーブル251に規定されている。そして、方向補正部25には、さらに図17に示す方向変換テーブル(compressB)252が保存されている。
方向補正部25は、主軸vintegerと量子化されたエッジ勾配方向θhat(x,y)が与えられると、図16に示す代表方向補正テーブル251を参照することで0〜8のいずれかの方向を取得し、次に、図17に示す方向変換テーブル252でそれを変換することで、補正済エッジ勾配方向を取得する。例えば、主軸vinteger=18、エッジ勾配方向θhat(x,y)=10である注目ピクセルについては、図16の代表方向補正テーブル251の第4行第11列から「1」が得られ、次に図16の方向変換テーブル252の第4行第2列から、補正済エッジ方向勾配として「6」を得る。方向補正部25は、上記のようにして、近傍領域NRの各ピクセルに対して、補正済エッジ勾配方向として0〜7のいずれかの方向を取得する。
局所特徴量算出部26は、投票セル決定部24にて投票セルが決定され、方向補正部25にて補正済エッジ勾配方向が得られると、そのピクセルのエッジ強度を投票する。局所特徴量算出部26は、このような投票処理を近傍領域NRのすべてのピクセルについて行うことで、局所特徴量d=(d0,d1,・・・,d135)Tを得る。局所特徴量diは、式で表すと式(17)の通りである。
ここで、式(17)のSiは、式(18)で与えられる。
また、式(18)のindex(x,y)は、式(19)で与えられる。
次に、本実施の形態の局所特徴量算出方法を説明する。本実施の形態の局所特徴量算出方法は、入力された画像から局所特徴量を算出する。局所特徴量算出方法は、ハードウェアで構成された局所特徴量算出装置2が実行するものであってもよいし、演算処理装置に実装されて局所特徴量算出装置2を構成するソフトウェア(コンピュータプログラム)が実行するものであってもよい。図18は、本実施の形態の局所特徴量算出方法のフロー図である。
特徴点近傍領域抽出部21は、画像TPから特徴点pを抽出する(ステップS31)。次に、特徴点近傍領域抽出部21は、特徴点pの近傍に近傍領域NRを設定する(ステップS32)。そして、特徴点近傍領域抽出部21は、特徴点p及び近傍領域NRを方向強度計算部22に出力する。方向強度計算部22は、近傍領域NR内の各ピクセルをx方向及びy方向にそれぞれ微分することで、近傍領域NR内の各ピクセルについて、エッジ勾配方向θ(x,y)を算出し(ステップS33)、それを量子化して、量子化されたエッジ勾配方向θhat(x,y)を求める(ステップS34)。方向強度計算部22は、また、近傍領域NR内の各ピクセルについて、重み付きエッジ強度mhat(x,y)を算出する(ステップS35)。 なお、ステップS33及びそれに続くステップS34と、ステップS35とは、いずれが先に行なわれてもよく、並行して行なわれてもよい。
次に、主軸方向検出部23は、近傍領域NR内のピクセルの量子化されたエッジ勾配方向θhat(x,y)に重み付きエッジ強度mhat(x,y)を投票することで、エッジ勾配方向ヒストグラムを生成する(ステップS36)。主軸方向検出部23は、その勾配方向ヒストグラムにて極大値を有するエッジ勾配方向(離散化された値)を近傍領域NRの主軸方向vintegerとして検出し、局所特徴量算出部26に出力する(ステップS37)。
局所特徴量算出部26には、方向強度計算部22から量子化されたエッジ勾配方向θhat(x,y)及び重み付きエッジ強度mhat(x,y)が入力され、主軸方向検出部23から主軸方向vintegerが入力される。局所特徴量算出部26は、近傍領域NR内の各ピクセルについて、投票セルパターンテーブルを参照して、主軸方向vintegerに対応する投票セルパターンにおける、注目ピクセルが属する投票セルを決定する(ステップS38)。
なお、局所特徴量算出部26において、投票セル決定部24に図12に示す投票セルパターンテーブルが記憶されている場合には、ステップS38では、その投票セルパターンテーブルを参照して投票セルを決定する。一方、投票セル決定部24に、図13に示す代表投票セルパターンテーブル241及び図14に示すセル番号変換テーブル242が記憶されている場合(図10の場合)には、ステップS38では、投票セルパターンテーブルとして、代表セルパターンテーブル241とセル番号変換テーブル242を参照して、投票セルを決定する。
局所特徴量算出部26は、近傍領域NR内の各ピクセルについて、方向補正テーブルを参照して、主軸方向vinteger及び量子化されたエッジ勾配方向θhat(x,)に対応する補正済エッジ勾配方向を取得する(ステップS39)。
なお、局所特徴量算出部26において、方向補正部25に図15に示す方向補正テーブルが記憶される場合には、ステップS39では、その方向補正テーブルを参照して、補正済エッジ勾配方向を取得する。一方、方向補正部25に図16に示す代表方向補正テーブル251及び図17に示す方向変換テーブル252が記憶される場合(図10の場合)には、ステップS39では、代表方向補正テーブル251及び方向変換テーブル252を参照して、補正済エッジ勾配方向を取得する。なお、ステップS38とステップS39とは、いずれが先に行なわれてもよく、並行して行なわれてもよい。
次に、局所特徴量算出部26は、近傍領域NR内の各ピクセルについて、ステップS38にて決定された投票セルに対して、ステップS39で得られた補正済エッジ勾配方向に従って、注目ピクセルの重み付きエッジ強度mhat(x,y)を投票する(ステップS40)これにより、特徴点pの局所特徴量dが求まる。
以上説明したように、本実施の形態においても、回転不変性を実現するために、従来技術のように、特徴点pの近傍領域NRのテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、主軸方向に応じて回転された回転済投票セルパターンCP’の投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、局所特徴量の算出を高速化できる。
また、上述のように、回転不変性を実現するために、テクスチャパターンを回転させるのではなく、回転済基準投票セルパターンに対して、各ピクセルの方向を補正した上で投票を行なうので、従来技術のように回転後のテクスチャパターンについて再度各ピクセルの方向及びその方向の強度を計算することが不要になり、方向強度計算部22で算出された各ピクセルのエッジ勾配方向及びエッジ強度は、主軸方向vintegerの検出にも、局所特徴量の算出にも利用できる。これにより、各ピクセルの方エッジ勾配方向及びエッジ強度を算出するための微分計算は一度で済み、局所特徴量の算出を高速化できる。
また、本実施の形態では、主軸方向vintegerが離散化された値として得られるので、各主軸方向に対応する回転済投票セルパターンを予め用意しておいてテーブル化することができ、そのようなテーブルを用いて、主軸方向vintegerが得られたときに、その主軸方向vintegerに対応する回転済投票セルパターンをテーブルから選択することで、投票セルパターンをその都度計算で求める必要がなくなるので、処理を高速化できる。
さらに、本実施の形態では、基準投票セルパターンが点対称の形状を有するので、この周期性を利用して、投票セルパターンテーブルの圧縮でき、必要なメモリ容量を小さくできる。本実施の形態で示した程度のテーブルであれば、CPUのキャッシュに入れることができ、処理を一段と高速化できる。
また、本実施の形態では、ピクセルのエッジ勾配方向についても、テーブルを用意しておくことができ、そのようなテーブルを用いて各ピクセルのエッジ勾配方向を補正するので、処理を高速化できる。
さらに、本実施の形態では、補正済エッジ勾配方向が周期性を有するので、方向補正テーブルも圧縮でき、必要なメモリ容量を小さくできる。本実施の形態で示した程度のテーブルであれば、CPUのキャッシュに入れることができ、処理を一段と高速化できる。
なお、上記の第2の実施の形態の投票セルパターンでは、各ピクセルがいずれか1つの投票セルのみに属するように投票セルが設定されているので、回転済投票セルパターンの回転角の違いによって同じ投票セルの面積が異なることが生じる。例えば、図12を参照すると、主軸方向vinteger=0のときの投票セル1の面積は21ピクセルであるが、主軸方向vinteger=0のときの投票セル1の面積は20ピクセルであり、同じ投票セルであるにもかかわらず、回転済投票セルパターンの回転角の違いによって、両面積は僅かに異なっている。そうすると、同じ画像であっても、主軸方向が異なることで、同一のセルにエッジ強度を投票するピクセルの数が、一方は多くなり、他方は少なくなるので、その投票セルの累積値にも誤差が生じる。
この点を考慮して、局所特徴量算出部26は、投票セルの大きさに応じて重み付きエッジ強度にさらに重み付けをして投票してもよい。例えば、面積の逆数をこの重みとすることができる。これにより、回転角の違いによる投票セルの面積の相違の影響を受けることのない局所特徴量を求めることができる。
また、上記の第2の実施の形態の投票セルパターンは、各ピクセルがいずれか1つの投票セルのみに属するように投票セルが設定されていたので、回転済投票セルパターンの回転角の違いによって、投票セルの境界付近では誤差が生じることになる。
この点を考慮して、局所特徴量算出部26は、投票セルの境界に位置するピクセルについては、図19(c)に示すように、投票セルパターンを実線で引いて、その実線に掛かるピクセルについては、実践によって分けられた面積に応じて、複数の投票セルに投票をしてもよい。図19(a)は、図12に示す主軸方向vinteger=0の回転済投票セルパターンであり、図19(b)及び(c)は、その一部(投票セル15と投票セル16との境界部分)を拡大した図である。図19(b)は、誤差を考慮しない例であり、図19(c)は誤差を緩和する例である。
図19(c)において、例えば左上のピクセルについては、その60%が投票セル15に属しており、その40%が投票セル16に属している。よって、このセルについては、その重み付きエッジ強度mhat(x,y)の60%を投票セル15に投票し、40%を投票セル16に投票する。このように、1つのピクセルを複数の投票セルに属するようにすることで、回転済投票セルパターンの回転角によらずに正確な投票値を得ることができる。
(第3の実施の形態)
次に、上記の第1又は第2の実施の形態の局所特徴量算出装置を採用した対応点探索装置を第3の実施の形態として説明する。図20は、第3の実施の形態の対応点探索装置3の構成を示すブロック図である。図20に示すように、対応点探索装置3は、局所特徴量算出装置100と対応点探索部31とを備えている。対応点探索装置3は、ハードウェアとして図20に示す構成が実現されてもよいし、演算処理装置にソフトウェアが実装されることで図20に示す構成が実現されてもよい。
局所特徴量算出装置100として、第1の実施の形態の局所特徴量算出装置1又は第2の実施の形態の局所特徴量算出装置2のいずれかを採用する。局所特徴量算出装置100には、第1の画像及び第2の画像が入力され、それぞれについて局所特徴量を算出して、対応点探索部31に出力する。対応点探索部31は、第1の画像の局所特徴量と第2の画像の局所特徴量とを比較して、特徴点を探索する。
なお、対応点探索装置3は、画像を検索するシステムにおいて、入力画像と画像データベースに保存された画像との対応点を探索する装置として応用でき、また、異なる視点で撮影された第1画像と第2の画像から三次元形状を復元するシステムにおいて、第1画像と第2の画像の対応点を探索する装置としても応用でき、さらに別のシステムにも応用可能である。
図21は、本実施の形態の対応点探索方法のフロー図である。対応点探索方法は、ハードウェアで構成された対応点探索装置3が実行するものであってもよいし、演算処理装置に実装されて対応点探索装置3を構成するソフトウェア(コンピュータプログラム)が実行するものであってもよい。
対応点の探索では、まず、局所特徴量算出装置100が、第1の画像の局所特徴量を算出し(ステップS51)、次に、第2の画像の局所特徴量を算出する(ステップS52)。ステップS51及びステップS52には、第1の実施の形態の局所特徴量算出方法又は第2の実施の形態の局所特徴量算出方法のいずれかを採用することができる。次に、対応点探索部31は、第1の画像の局所特徴量と第2の画像の局所特徴量とを比較して、対応点を探索する(ステップS53)。
以上のように、第1ないし第3の実施の形態によれば、局所特徴量の算出において、回転不変性を実現するために、特徴点の近傍領域のテクスチャパターンを回転させた上で新たに設定した投票セルパターンのセルに投票をするのではなく、投票セルパターンを回転させて、その回転した投票セルパターン(回転済投票セルパターン)の投票セルに投票を行なうので、テクスチャパターンを回転させるための膨大な浮動小数点計算を伴うサブピクセル単位の線形補間処理が不要となり、処理を高速化でき、その結果、対応点検索の処理も高速化できる。
また、第1ないし第3の実施の形態によれば、従来の局所特徴量算出アルゴリズムであるSIFTやSURFよりもアルゴリズムが簡素になるので、局所特徴量算出装置をハードウェア化するときに、回路規模を小さくでき、コストを削減できる。また、ソフトウェアとして実装する場合にも、実行バイナリ大きさを小さくできるので、様々なアプリケーションに組み込み易いという利点がある。よって、上記の実施の形態の局所特徴量算出装置をハードウェア化する場合もソフトウェア実装する場合も、モバイル機器やローエンドの機器に好適に実装できる。
なお、上記の実施の形態において、ピクセルの「方向」及び「方向の強度」は、エッジ情報に基づくものには限られない。「方向」及び「方向の強度」は、ウェーブレット変換やガボール変換によって求めることもできる。また、大量の画像について、エッジ勾配方向やエッジ強度をデータベースス化して学習させることで、新たな画像が入力された場合に、このデータベースを用いてエッジ勾配方向やエッジ強度を求めてもよい。
また、上記の実施の形態において、重み付きエッジ強度mhat(x,y)を求める際の重みは、w(x,y)=1として複数の画像について局所特徴量を求めておき、そこから得られた統計量に応じて、重みw(x,y)を決め直してもよい。例えば、特定の投票セルに強い値が集中する傾向がある場合には、その部分の重みを小さくすることで、各投票セルの寄与率を調整できる。
また、上記の実施の形態において、主軸方向は、画像情報(エッジ勾配方向及びエッジ強度画像)に基づいて検出されたが、主軸方向は、これに限られず、生成する際の撮像装置に備えられたジャイロセンサ、地磁気センサ、又は重力センサの検出値に基づいて検出されてもよく、また、大量の画像について、主軸方向をデータベースス化して学習させることで、新たな画像が入力された場合に、このデータベースを用いて主軸方向が検出されてもよい。