(57)【特許請求の範囲】
【請求項１】
画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点を抽出する抽出手段と、
前記特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、前記特徴点の画素位置を該正規化変換によって変換した変換済み画素位置の周辺画素位置に該正規化変換によって変換される前記入力画像上の画素位置を特定し、該特定した画素位置における画素若しくはその周辺の画素の画素値、に基づいて、特徴量算出用の画像を生成する生成手段と、
前記生成手段によって生成された画像から特徴量を算出する算出手段と
を備え、
前記生成手段は、前記特徴点の周囲の画素の奥行き値の差異に基づいて、前記特徴量算出用の画像を生成するか否かを決定することを特徴とする画像処理装置。
【請求項２】
前記生成手段は、
前記特徴点の周囲の画素の座標と該画素の奥行き値とによって表される該画素の３次元座標を含む平面の法線ベクトルを、前記入力画像の奥行き方向と平行にする変換を前記正規化変換として決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、
前記特徴点の周囲の画素の奥行き値のうち最大の奥行き値と最小の奥行き値との差が所定値以上であれば前記特徴量算出用の画像を生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記差が所定値未満である場合、
前記生成手段は、前記特徴量算出用の画像を生成せず、前記算出手段は、前記特徴点の周囲の領域から特徴量を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点を抽出する抽出手段と、
前記特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、該正規化変換によって前記特徴点の画素位置が変換される画素位置を特定し、該特定した画素位置を囲む領域に該正規化変換によって変換される前記入力画像上の領域を特徴量算出領域として特定する特定手段と、
前記特徴量算出領域から特徴量を算出する算出手段と
を備え、
前記特定手段は、前記特徴点の周囲の画素の奥行き値の差異に基づいて、前記特徴量算出領域の特定を行うか否かを決定することを特徴とする画像処理装置。
【請求項６】
更に、
前記算出手段により算出された特徴量と、該特徴量の取得元である画像に固有の情報と、を関連づけてメモリに登録する登録手段を備えることを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
更に、
比較元画像について前記算出手段が算出したそれぞれの特徴量について、該特徴量と同じ若しくは類似している特徴量と関連づけて前記メモリに登録されている情報を検索する検索手段と、
前記検索手段が検索した情報に基づいて、前記比較元画像と特徴量が類似する画像に固有の情報を表示する表示手段と
を備えることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記抽出手段は、原画像を再帰的に縮小することで生成した複数の縮小画像と、該原画像と、のそれぞれを前記入力画像とし、該入力画像から特徴量を抽出することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の抽出手段が、画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点を抽出する抽出工程と、
前記画像処理装置の生成手段が、前記特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、前記特徴点の画素位置を該正規化変換によって変換した変換済み画素位置の周辺画素位置に該正規化変換によって変換される前記入力画像上の画素位置を特定し、該特定した画素位置における画素若しくはその周辺の画素の画素値、に基づいて、特徴量算出用の画像を生成する生成工程と、
前記画像処理装置の算出手段が、前記生成工程で生成された画像から特徴量を算出する算出工程と
を備え、
前記生成工程では、前記特徴点の周囲の画素の奥行き値の差異に基づいて、前記特徴量算出用の画像を生成するか否かを決定することを特徴とする画像処理方法。
【請求項１０】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の抽出手段が、画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点を抽出する抽出工程と、
前記画像処理装置の特定手段が、前記特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、該正規化変換によって前記特徴点の画素位置が変換される画素位置を特定し、該特定した画素位置を囲む領域に該正規化変換によって変換される前記入力画像上の領域を特徴量算出領域として特定する特定工程と、
前記画像処理装置の算出手段が、前記特徴量算出領域から特徴量を算出する算出工程と
を備え、
前記特定工程では、前記特徴点の周囲の画素の奥行き値の差異に基づいて、前記特徴量算出領域の特定を行うか否かを決定することを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至８の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から特徴量を算出するための技術に関するものである。
【背景技術】
【０００２】
画像の局所的な特徴量（局所特徴量）を用いて、類似画像を検索する方法が提案されている。この方法では、まず、画像から特徴的な点（局所特徴点）を抽出する（例えば、非特許文献１参照）。次に、該局所特徴点とその周辺の画像情報とに基づいて、該局所特徴点に対応する特徴量（局所特徴量）を計算する（例えば、非特許文献２参照）。
【０００３】
局所特徴量を利用する手法においては、局所特徴量を、平面内回転不変、拡大・縮小不変となる複数の要素で構成される情報として定義する。これにより、画像を平面内で回転させたり、拡大又は縮小させたりした場合であっても、検索を可能にする。局所特徴量は一般的にベクトルとして表現される。
【０００４】
平面内回転不変の局所特徴量抽出のために、例えば非特許文献２では、局所特徴点周辺の局所領域の画素パターンから主方向を算出し、局所特徴量算出時に該主方向を基準に局所領域を平面内で回転させて方向の正規化を行う。また、拡大・縮小不変の局所特徴量を算出するために、異なるスケールの画像を内部で生成し、各スケールの画像からそれぞれ局所特徴点の抽出と局所特徴量の算出を行う。ここで、内部で生成した一連の異なるスケールの画像集合は、一般的にスケールスペースと呼ばれる。更に、平面内ではない３次元空間内で物体を回転（面外回転）させた画像の検索を可能にするための改良研究も行われている（例えば、非特許文献３参照）。
【０００５】
上述の方式により、１枚の画像から複数の局所特徴点が抽出される。局所特徴量を用いた画像検索では、それぞれの局所特徴点から算出した局所特徴量同士の比較を行うことによりマッチングを行う。多く利用されている投票方式（例えば、特許文献１参照）は、比較元画像から抽出された、各特徴点の局所特徴量に類似する特徴量を持つ特徴点が登録画像（以下、比較先画像とも言う）に存在すれば、その比較先の登録画像に対して１票を投票する。その投票数の多い登録画像ほど比較元画像と類似するとするものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2000-57377号公報
【非特許文献】
【０００７】
【非特許文献１】C.Harris and M.J. Stephens,“A combined corner and edge detector," In Alvey Vision Conference,pages 147-152, 1988.
【非特許文献２】David G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints," International Journal of Computer Vision, 60, 2 (2004), pp.91-110.
【非特許文献３】Jean-Michel Morel and Guoshen Yu, "ASIFT: A New Framework for Fully Affine Invariant Image Comparison", SIAM J. Imaging Sciences, Vol. 2, No. 2, pp. 438?469, 2009.
【非特許文献４】J.J.Koenderink and A.J.van Doorn, "Representation of local geometry in the visual system," Riological Cybernetics, vol.55, pp.367-375, 1987.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献２に記載の局所特徴量を用いて面外回転した画像の検索を行うと、３０度程度までの面外回転した画像の検索は可能であるが、それ以上に面外回転している画像の検索精度は低くなるという課題があった。
【０００９】
また、非特許文献３に記載の方法では、面外回転を想定した多数の画像変換を行い、それぞれの画像から局所特徴量を抽出することで、非特許文献２の許容範囲よりも大きな面外回転をしている画像の検索も可能にしている。しかしながら、多数の画像変換を行うため、処理速度が遅くなるという課題があった。また、多数の画像変換を行った画像のそれぞれから局所特徴量を抽出するため、局所特徴量数が多くなり、データ登録サイズが大きくなるという課題があった。また、結果的にノイズとなる局所特徴量も多くなり、誤検出により検索精度を下げる可能性があった。
【００１０】
図１は、局所特徴量を算出する際に使用する画素範囲の一例を説明する図である。図１を用いて、面外回転している画像の検索精度が低くなる原因の説明を行う。図１（ａ）は、物体を正面から撮影した画像の模式図であり、図１（ｂ）は、図１（ａ）の状態から物体を反時計回りに６０度回転させ、同じ場所から撮影した画像の模式図である。ここで、１０１は図１（ａ）の画像から抽出された局所特徴点の１つを中心とし、その局所特徴点から局所特徴量を算出する際に使用する画素範囲の一例を示したものである。１０２は同様に図１（ｂ）の画像から抽出された局所特徴点の１つを中心とし、その局所特徴点から局所特徴量を算出する際に使用する画素範囲の一例を示したものである。また、図１（ｃ）は、図１（ａ）の画素範囲１０１の周辺を拡大した図であり、図１（ｄ）は、図１（ｂ）の画素範囲１０２の周辺を拡大した図である。
【００１１】
ここで、１０３と１０４は、「Ｂ」という文字の左下の角から抽出された局所特徴点を中心とする局所特徴量算出範囲である。局所特徴量算出範囲１０３の左端は「Ａ」の文字に少しかかっており、右端は「Ｂ」の文字のほぼ中間である。一方、局所特徴量算出範囲１０４の左端は「Ａ」の文字の半分以上にかかっており、右端は「Ｂ」の右端と同程度である。局所特徴量算出範囲１０３と局所特徴量算出範囲１０４とでは、ほぼ同じ個所から局所特徴点が抽出されているにもかかわらず、局所特徴量算出に利用される画素が大きく異なっていることがわかる。これにより、局所特徴量が変質し、画像検索の精度を低下させている。このように、従来の平面内回転不変の局所特徴量では、面外回転させた画像を高精度に検索することは難しかった。
【００１２】
本発明はこのような問題に鑑みてなされたものであり、面外回転の影響を受けにくい局所特徴量を算出するための技術を提供する。本発明は更に、面外回転している画像間の照合、検索が可能な技術を提供する。
【課題を解決するための手段】
【００１３】
本発明の一様態は、画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点を抽出する抽出手段と、
前記特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、前記特徴点の画素位置を該正規化変換によって変換した変換済み画素位置の周辺画素位置に該正規化変換によって変換される前記入力画像上の画素位置を特定し、該特定した画素位置における画素若しくはその周辺の画素の画素値、に基づいて、特徴量算出用の画像を生成する生成手段と、
前記生成手段によって生成された画像から特徴量を算出する算出手段と
を備え、
前記生成手段は、前記特徴点の周囲の画素の奥行き値の差異に基づいて、前記特徴量算出用の画像を生成するか否かを決定することを特徴とする。
【発明の効果】
【００１４】
本発明の構成によれば、面外回転の影響を受けにくい局所特徴量を算出することが可能となる。また、本発明の構成によれば、面外回転している画像間の照合、検索が可能となる。
【図面の簡単な説明】
【００１５】
【図１】局所特徴量を算出する際に使用する画素範囲の一例を説明する図。
【図２】コンピュータ装置のハードウェア構成例を示すブロック図。
【図３】画像処理装置の機能構成例を示すブロック図。
【図４】画像から特徴量を算出するために行う処理のフローチャート。
【図５】ステップＳ４０２における処理の詳細を示すフローチャート。
【図６】ステップＳ５０２における処理の具体例を示す図。
【図７】ステップＳ４０８における処理の詳細を示すフローチャート。
【図８】ステップＳ７０２の処理を説明する図。
【図９】ステップＳ４１１の処理による画像の変換例の模式図。
【図１０】画像処理装置の機能構成例を示すブロック図。
【図１１】画像から特徴量を算出するために行う処理のフローチャート。
【図１２】ステップＳ１１１１の処理による特徴量算出領域の設定例の模式図。
【図１３】画像から特徴量を算出するために行う処理のフローチャート。
【図１４】画像処理装置の機能構成例を示すブロック図。
【図１５】画像に固有の情報及び該画像から算出した局所特徴量の登録処理のフローチャート。
【図１６】ステップＳ１５０４における量子化について説明する図。
【図１７】記憶部１４０９における特徴量ＩＤ及び画像ＩＤの管理例を示す図。
【図１８】画像検索処理のフローチャート。
【図１９】ステップＳ１８０５における処理の詳細を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１７】
［第１の実施形態］
本実施形態では、画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点（局所特徴点）を抽出し、特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、特徴点の画素位置を該正規化変換によって変換した変換済み画素位置の周辺画素位置に該正規化変換によって変換される入力画像上の画素位置を特定し、該特定した画素位置における画素若しくはその周辺の画素の画素値、に基づいて、特徴量算出用の画像を生成し、該生成された画像から特徴量を算出する画像処理装置の一例について説明する。このような画像処理装置は、例えば、物体の平面から抽出された局所特徴点における局所特徴量を算出する場合に有効である。
【００１８】
なお、この「画素の奥行き値が連続的に変化している画像領域」とは、入力画像の一部であっても良いし、全部であっても良い。例えば、ある画像にこのような画像領域が含まれていた場合に、該画像領域から抽出した部分画像を上記の入力画像としても良い。
【００１９】
先ず、本実施形態に係る画像処理装置の機能構成例について、図３のブロック図を用いて説明する。
【００２０】
画像入力部３０１は、原画像を入力する。なお、原画像には、該原画像を構成する各画素の奥行き値を表す情報が含まれているものとして説明する。
【００２１】
特徴点抽出部３０２は、画像入力部３０１が入力した原画像の輝度成分を表す輝度成分画像を生成すると共に、該輝度成分画像を再帰的に複数回縮小することで複数枚の縮小画像を生成し、該輝度成分画像及び該複数枚の縮小画像のそれぞれから局所特徴点を抽出する。
【００２２】
画像生成部３０３は、特徴点抽出部３０２が抽出したそれぞれの局所特徴点について、該局所特徴点を含む画像領域に対応する「奥行き値が正規化された画素群による画像」を生成する。
【００２３】
算出部３０４は、画像生成部３０３によって生成された画像から特徴量を算出し、該算出した特徴量を出力する。特徴量の出力先については特定の出力先に限るものではなく、記憶部３０５に対して出力しても構わないし、外部のメモリに対して出力しても構わないし、該特徴量を用いて処理を行う外部の機器に対して出力しても構わない。
【００２４】
記憶部３０５は、画像入力部３０１、特徴点抽出部３０２、画像生成部３０３、算出部３０４のそれぞれが動作のために使用するメモリであって、例えば、算出部３０４は、算出した特徴量を記憶部３０５に格納する。
【００２５】
次に、本実施形態に係る画像処理装置が、画像から特徴量を算出するために行う処理について、同処理のフローチャートを示す図４を用いて説明する。
【００２６】
＜ステップＳ４０１＞
画像入力部３０１は、外部から入力された原画像を記憶部３０５に格納する。なお、原画像の取得元については外部に限るものではなく、例えば、画像処理装置が有する不図示の内部メモリから原画像を取得するようにしても構わない。
【００２７】
＜ステップＳ４０２＞
特徴点抽出部３０２は、ステップＳ４０１において記憶部３０５に格納された原画像を読み出し、該読み出した原画像に基づいて局所特徴点を抽出する。ステップＳ４０２における処理の詳細について、同処理のフローチャートを示す図５を用いて説明する。
【００２８】
＜ステップＳ５０１＞
特徴点抽出部３０２は、記憶部３０５に格納された原画像を読み出し、該原画像を構成する各画素の輝度成分を表す輝度成分画像を生成する。すなわち、輝度成分画像上の画素位置（ｘ、ｙ）における輝度成分（画素値）は、原画像上の画素位置（ｘ、ｙ）における画素の輝度成分（輝度値）である。
【００２９】
＜ステップＳ５０２＞
特徴点抽出部３０２は、ステップＳ５０１で生成した輝度成分画像を予め設定された縮小率ｐ（０＜ｐ＜１）に従って再帰的に規定回数だけ繰り返して縮小することで、輝度成分画像に対する複数枚の縮小画像を生成する。ここまでの処理により、オリジナルのサイズの画像（輝度成分画像）から段階的に縮小した、オリジナルの画像を含めてｎ（ｎは２以上の整数）枚の画像を生成する。
【００３０】
ステップＳ５０２における処理の具体例を図６に示す。図６では、倍率ｐが「２の−（１／４）乗」、画像の枚数ｎが「９」である。もちろん、倍率ｐは必ずしも「２の−（１／４）乗」で無くとも良い。図６において、６０１はステップＳ５０１で生成された輝度成分画像である。６０２は輝度成分画像６０１から倍率ｐに従って再帰的に４回の縮小処理を行って得られた縮小画像である。６０３は輝度成分画像６０１から倍率ｐに従って８回縮小された縮小画像である。
【００３１】
この例では、縮小画像６０２は輝度成分画像６０１の縦横サイズを１／２に縮小した画像となり、縮小画像６０３は輝度成分画像６０１の縦横サイズを１／４に縮小した画像となる。なお、画像を縮小する方法については、本実施形態では、線形補間による縮小方法により縮小画像を生成するものとする。しかし、縮小画像の生成方法については特定の方法に限るものではなく、如何なる方法を採用しても構わない。
【００３２】
＜ステップＳ５０３＞
特徴点抽出部３０２は、輝度成分画像及び複数枚の縮小画像のそれぞれを入力画像とし、該入力画像から、画像の回転があってもロバスト（robust）に抽出されるような局所的な特徴点（局所特徴点）を抽出する。この局所特徴点の抽出方法として、本実施形態ではHarris作用素を用いる（非特許文献１参照）。
【００３３】
具体的には、Harris作用素を作用させて得られた出力画像Ｈ上の画素について、該画素及び該画素の８近傍にある画素（合計９画素）の画素値を調べる。そして、該画素が局所極大になる（該９画素の中で該画素の画素値が最大になる）点を局所特徴点として抽出する。ここで、該画素が局所極大になったときでも、該画素の値がしきい値以下の場合には局所特徴点として抽出しないようにする。
【００３４】
なお、局所特徴点を抽出可能な方法であれば、上述のHarris作用素による特徴点抽出方法に限らず、どのような特徴点抽出方法でも適用可能である。
【００３５】
＜ステップＳ４０３＞
ステップＳ４０２の処理が完了した時点で、輝度成分画像及び複数枚の縮小画像から抽出した局所特徴点群が得られているので、画像生成部３０３は、この局所特徴点群のうち未選択のうちの１つを処理対象特徴点として選択する。また、以下では、処理対象特徴点が抽出された抽出元の画像を対象画像と呼称する。例えば、処理対象特徴点が輝度成分画像から抽出されたものである場合には、対象画像は輝度成分画像であるし、処理対象特徴点が複数枚の縮小画像のうちの１つから抽出されたものである場合には、対象画像は該１つの縮小画像である。
【００３６】
＜ステップＳ４０４＞
画像生成部３０３は、処理対象特徴点の周囲において直線上に並んでいない３点を決定し、該決定した３点のそれぞれの画像座標を取得する。画像座標とは、例えば、対象画像の左上隅の位置を原点とし、水平方向にｘ座標、垂直方向にｙ座標を設定することで定義される座標系における座標のことであり、各画素の対象画像上における座標はこの画像座標によって表される。
【００３７】
ここで、「処理対象特徴点の周囲」とは、処理対象特徴点を中心とする領域であって、そのサイズが、後述する特徴量算出領域のサイズに基づいて予め設定されたサイズ、若しくは予め定められた固定サイズ、であるような領域である。
【００３８】
また、ここで決定する３点とは、局所特徴点を含んでいても良いが、「処理対象特徴点の周囲において直線上に並んでいない３点」であれば、如何なる点であっても構わない。すなわち、「処理対象特徴点の周囲において直線上に並んでいない３点」とは、換言すれば、三角形の頂点となりうる３点である。ステップＳ４０４で決定する３点を結んでできる図形が直線にならずに三角形を成していれば、数学的に後の処理は可能であるが、誤差等の影響を軽くするため、お互いにある程度離れている３点を選ぶことが好ましい。また、一旦、３点よりも多い数の点を抽出し、何らかの基準に従ってそれらの点の中から３点を選ぶようにしてもよい。例えば、奥行き値が互いにある程度離れている３点を選ぶようにするなどの方法がある。また、３点の中に、処理対象特徴点自身が含まれているようにしてもよい。
【００３９】
以下では、ステップＳ４０４で決定した３点の画像座標をそれぞれ、（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）と表記する。なお、３点をまとめて、その画像座標を（ｘｎ、ｙｎ）（ｎ＝１，２，３）のように表記する場合もある。
【００４０】
＜ステップＳ４０５＞
画像生成部３０３は、ステップＳ４０４で決定した３点の画素における奥行き値を取得する。以下では、画像座標（ｘ１，ｙ１）における画素の奥行き値をｚ１、画像座標（ｘ２，ｙ２）における画素の奥行き値をｚ２、画像座標（ｘ３，ｙ３）における画素の奥行き値をｚ３と表記する。
【００４１】
＜ステップＳ４０６＞
画像生成部３０３は、ｚ１〜ｚ３のうち最大の奥行き値ｚｍａｘ、最小の奥行き値ｚｍｉｎを特定し、Δｚ＝ｚｍａｘ−ｚｍｉｎを計算する。そして画像生成部３０３は、Δｚが所定値以上であるか否かを判断する。この判断の結果、Δｚが所定値以上であれば、処理はステップＳ４０８に進み、Δｚが所定値未満であれば、処理はステップＳ４０７に進む。
【００４２】
なお、ステップＳ４０６における判断基準は、Δｚと所定値との大小関係に限るものではなく、３点の奥行き値の分散や標準偏差のような統計情報を利用して判断するようにしてもよい。その際、３点の奥行き値を用いるのではなく、３点より多くの点の奥行き値を用いて判断し、その後に３点を選別するようにしてもよい。
【００４３】
＜ステップＳ４０７＞
処理がステップＳ４０７に進んだということは、ステップＳ４０４で決定した３点における画素の奥行き値の差異が小さいということになり、そのような場合には、処理対象特徴点周辺の領域（後述する特徴量算出領域）は、面外回転の影響を受けにくい局所特徴量を算出することができる領域となる。このような場合、以下に説明するような、「奥行き値が正規化された画素群による画像」を生成する必要はない。そこで、画像生成部３０３は、対象画像を特徴量算出画像に設定する。
【００４４】
＜ステップＳ４０８＞
画像生成部３０３は、ｚ１〜ｚ３を同じ値にする（正規化）ための変換行列Ｔを求める。ステップＳ４０８における処理の詳細について、図７のフローチャートを用いて説明する。
【００４５】
＜ステップＳ７０１＞
画像生成部３０３は、透視投影逆変換により、対象画像上における上記の３点に対応する現実空間上の３点の座標に変換する（対象画像上の２次元座標を３次元座標に変換する）。対象画像は、３次元空間上の物体をある投影面に対して投影してできたものである。視点（例えば、画像を撮像した撮像画像の視点位置）から投影面までの距離をｄとすると、対象画像上における上記の３点に対応する現実空間上の３点の座標（ｘｒｎ、ｙｒｎ、ｚｒｎ）（ｎ＝１，２，３）は以下の式（１）〜（３）に従って求めることが出来る。
【００４６】
【数１】
0006543062.tif 000002
【００４７】
＜ステップＳ７０２＞
画像生成部３０３は、対象画像上における上記の３点に対応する現実空間上の３点を含む平面の法線ベクトルＶを求める。図８は、対象画像上における上記の３点に対応する現実空間上の３点（８０１，８０２，８０３）、３点（８０１，８０２，８０３）を含む平面８０４、該平面８０４の法線ベクトルＶ８０５、の一例を示す図である。
【００４８】
法線ベクトルＶ＝（ｖｘ、ｖｙ、ｖｚ）とすると、ｖｘ、ｖｙ、ｖｚのそれぞれは、３点（８０１，８０２，８０３）の３次元座標（ｘｒ１、ｙｒ１、ｚｒ１）、（ｘｒ２、ｙｒ２、ｚｒ２）、（ｘｒ３、ｙｒ３、ｚｒ３）を用いて以下の式（４）〜（６）に従って求めることが出来る。
【００４９】
【数２】
0006543062.tif 000003
【００５０】
＜ステップＳ７０３＞
画像生成部３０３は、法線ベクトルＶをＺ軸（投影面から奥行き方向に規定されている軸であり、奥行き値はＺ軸上の値）に重ねるようにする変換行列Ｔを求める。ベクトルＶをＺ軸と重なるように変換した場合、対象画像上における上記の３点に対応する現実空間上の３点を含む平面は、投影面（対象画像）と平行な状態に変換されることになり、その結果、変換後の平面上の上記の３点のｚ座標値は全て同じ値（投影面から変換後の平面までの距離）となる。図８の場合、ベクトルＶをＺ軸と重なるように変換した場合、平面８０４は、ＸＹ平面（投影面）と平行な状態に変換されることになる。ステップＳ７０３では、このような変換、すなわち、上記の３点の奥行き値を正規化する変換を実現する変換行列Ｔを求める。以下では、変換行列Ｔを求めるための具体的な処理について説明する。
【００５１】
ここでは、法線ベクトルＶとＺ軸方向のベクトルとの法線ベクトルＰを回転軸としてθ回転させることにより、法線ベクトルＶとＺ軸とを重ねる。ここでθを、座標変換するときの変換量という。
【００５２】
まず、以下の式（７）〜（９）により、法線ベクトルＶの単位ベクトルＶ１(ｖ１ｘ、ｖ１ｙ、ｖ１ｚ)を求める。
【００５３】
【数３】
0006543062.tif 000004
【００５４】
次に、単位ベクトルＶ１とＺ軸方向の単位ベクトルＺ１(0,0,1)との法線ベクトルＰ(ｐｘ、ｐｙ、ｐｚ)を求める。ベクトル間の法線ベクトルはベクトルの外積で表わされるので、以下の式（１０）〜（１２）で求められる。
【００５５】
【数４】
0006543062.tif 000005
【００５６】
更に、以下の式（１３）〜（１５）により、ベクトルＰの単位ベクトルＰ１(ｐ１ｘ、ｐ１ｙ、ｐ１ｚ)を求める。
【００５７】
【数５】
0006543062.tif 000006
【００５８】
次に、以下の式（１６）〜（１８）により、単位ベクトルＰ１とＺ軸方向の単位ベクトルＺ１との法線ベクトルＱ(ｑｘ、ｑｙ、ｑｚ)を求める。
【００５９】
【数６】
0006543062.tif 000007
【００６０】
更に、以下の式（１９）〜（２１）により、ベクトルＱの単位ベクトルＱ１(ｑ１ｘ、ｑ１ｙ、ｑ１ｚ)を求める。
【００６１】
【数７】
0006543062.tif 000008
【００６２】
ここで、単位ベクトルＱ１、Ｐ１、Ｚ１を基底ベクトルとした正規直交座標が定められる。この座標空間上で、単位ベクトルＰ１を回転軸としてθ回転させることにより、法線ベクトルＶをＺ軸と一致させる。その際の変換行列Ｒは、以下の式（２２）で表される。
【００６３】
【数８】
0006543062.tif 000009
【００６４】
また、単位ベクトルＱ１、Ｐ１、Ｚ１を基底ベクトルとした正規直交座標の座標系をＸＹＺ座標系に変換する行列をＳとし、その逆行列をＳ−１とすると、それらの行列は、以下の式（２３）、（２４）で表される。
【００６５】
【数９】
0006543062.tif 000010
【００６６】
然るに変換行列Ｔは、このような行列Ｓ，Ｓ−１，Ｒを用いて以下の式（２５）のように表すことが出来る。また、このような変換行列Ｔを用いれば、式（２６）に示す如く、座標（ｘｒｎ、ｙｒｎ、ｚｒｎ）を座標（ｘｔｎ、ｙｔｎ、ｚｔｎ）に変換することができる。座標（ｘｔｎ、ｙｔｎ、ｚｔｎ）は、変換後の平面上の上記の３点の座標である。
【００６７】
【数１０】
0006543062.tif 000011
【００６８】
＜ステップＳ４０９＞
画像生成部３０３は、変換量θが所定量θＴＨ以上であるか否かを判断する。この判断の結果、変換量θが所定量θＴＨ以上であれば、処理はステップＳ４１０に進み、変換量θが所定量θＴＨ未満であれば、処理はステップＳ４１１に進む。
【００６９】
＜ステップＳ４１０＞
画像生成部３０３は、上記の変換行列Ｔを再度計算するのであるが、その際、上記のθを所定量θＴＨとして変換行列Ｔを再計算する。変換量θは、奥行き方向に勾配のある部分が正面を向くように回転させる量であり、回転量が大きい場合は、画素補間量が多くなり、画質が低下する。したがって、ステップＳ４０９及びＳ４１０により、画素補間量が多くなりすぎないように制限を設ける。しかし、ステップＳ４１０の処理は省略しても構わず、その場合、ステップＳ４０９の処理を省き、ステップＳ４０８の処理の後はステップＳ４１１に処理が進むようにすればよい。
【００７０】
＜ステップＳ４１１＞
画像生成部３０３は、処理対象特徴点を中心とする領域内の画像を変換行列Ｔによって変換した画像を変換画像として生成する。この処理では先ず、処理対象特徴点の画像座標（ｘ、ｙ）と処理対象特徴点の奥行き値ｚとを用いて上記の式（１）〜（３）を用いた透視投影逆変換を行うことで（ｘｎ、ｙｎ、ｚｎをそれぞれｘ、ｙ、ｚと読み替える）３次元座標（ｘｒ、ｙｒ、ｚｒ）を求め、該３次元座標（ｘｒ、ｙｒ、ｚｒ）を変換行列Ｔを用いて変換した３次元座標（ｘｔ、ｙｔ、ｚｔ）求め、該３次元座標（ｘｔ、ｙｔ、ｚｔ）を用いて、投影面への透視投影変換を行うことで、該３次元座標（ｘｔ、ｙｔ、ｚｔ）に対応する対象画像上の２次元座標（ｘ’、ｙ’）に変換する。この透視投影変換は、以下の式（２７）、（２８）に従って行われる。
【００７１】
【数１１】
0006543062.tif 000012
【００７２】
そして、変換画像の中心画素位置を（ｘ’、ｙ’）とした場合に、該中心画素位置における画素値に、対象画像において処理対象特徴点における画素値をセットする。
【００７３】
そして、変換画像において（ｘ’、ｙ’）以外の各画素位置ｐｔについて、対象画像上の対応する画素位置ｐｑを、画素位置ｐｔに対して（ｘ’、ｙ’）を求めるための上記の変換の逆変換を行うことで求め、画素位置ｐｔにおける画素値として、対象画像における画素位置ｐｑの画素値をセットする。なお、画素位置ｐｑが非整数である場合には、その周辺の画素の画素値から平均和等の補間により求めた画素値をセットする。
【００７４】
図９は、ステップＳ４１１の処理による画像の変換例の模式図である。図９（ａ）に示した画像は、対象物を正面から撮像したものであって、３点における奥行き値に差がないものである。然るにこのような場合には、図９（ａ）の画像そのものを特徴量算出画像とする。図９（ｃ）に示した画像９０３は、処理対象特徴点の周囲９０１、すなわち、特徴量算出領域内の画像である。図９（ｂ）に示した画像は、対象物が撮像装置に対して反時計回りに６０度回転した状態で撮像されたものである。このような場合、処理対象特徴点の周囲９０２における３点の奥行き値には差があるため、本実施形態では、これらの差を軽減するように周囲９０２内の画像を変換する。この変換したものが図９（ｄ）に示した画像９０４である。３点における奥行き値を軽減するために変換した画像を生成した場合には、この生成した画像そのものが特徴量算出領域となる。
【００７５】
このように、処理対象特徴点の周囲における３点の奥行き値に差があろうとなかろうと、図９（ｃ）、（ｄ）に示す如く、特徴量を抽出する対象となる画像は類似したものとなる。
【００７６】
＜ステップＳ４１２＞
算出部３０４は、ステップＳ４１１において生成した変換画像を特徴量算出画像に設定する。
【００７７】
＜ステップＳ４１３＞
算出部３０４は、特徴量算出画像全体に特徴量算出領域を設定する。もちろん、特徴量算出画像の一部に特徴量算出領域を設定しても構わない。この特徴量算出領域の範囲は、従来の特徴量算出領域と同じ範囲である。
【００７８】
＜ステップＳ４１４＞
算出部３０４は、特徴量算出領域内の画像から、平面内の画像の回転があっても不変となるように定義された特徴量（局所特徴量）を算出する。この局所特徴量の算出方法として、本実施形態ではLocal Jet及びそれらの導関数の組み合わせを用いる（非特許文献４参照）。
【００７９】
具体的には、以下の式（２９）により局所特徴量Ｖを算出する。
【００８０】
【数１２】
0006543062.tif 000013
【００８１】
ただし、式（２９）の右辺で用いている変数は、以下に示す式（３０）〜式（３５）で定義される。ここで、式（３０）右辺のＧ（ｘ，ｙ）はガウス関数、Ｉ（ｘ，ｙ）は画像座標（ｘ，ｙ）における画素値であり、“＊”は畳み込み演算を表す記号である。また、式（３１）は式（３０）で定義された変数Ｌのｘに関する偏導関数、式（３２）は変数Ｌのｙに関する偏導関数である。式（３３）は式（３１）で定義された変数Ｌｘのｙに関する偏導関数、式（３４）は式（３１）で定義された変数Ｌｘのｘに関する偏導関数、式（３５）は式（３２）で定義されたＬｙのｙに関する偏導関数である。
【００８２】
【数１３】
0006543062.tif 000014
【００８３】
なお、局所特徴量を算出可能な方法であれば、上述したような特徴量算出方法に限らず、どのような特徴量算出方法でも適用可能である。例えば、ＳＩＦＴ特徴量、ＳＵＲＦ特徴量などである。ＳＩＦＴ特徴量は、局所特徴点周辺の所定範囲を４×４の１６ブロックに分割し、それぞれのブロックについて、それぞれ４５度ずつ異なる８方向の勾配方向ヒストグラムを作成し、その１２８次元の特徴ベクトルを局所特徴量としている。
【００８４】
そして算出部３０４は、求めた局所特徴量を記憶部３０５等の適当な出力先に対して出力する。
【００８５】
＜ステップＳ４１５＞
画像生成部３０３は、輝度成分画像及び複数枚の縮小画像から抽出した局所特徴点群の全てを選択したか否かを判断する。この判断の結果、全てを選択した場合には、図４のフローチャートに従った処理は終了し、未選択の局所特徴点が未だ残っている場合には、処理はステップＳ４１６に進む。
【００８６】
＜ステップＳ４１６＞
画像生成部３０３は、輝度成分画像及び複数枚の縮小画像から抽出した局所特徴点群のうち未選択のうちの１つを処理対象特徴点として選択する。そして処理はステップＳ４０４に移行する。
【００８７】
このように、本実施形態によれば、面外回転の影響を受けにくい局所特徴量を算出することが可能となる。
【００８８】
［第２の実施形態］
本実施形態では、画素の奥行き値が連続的に変化している画像領域を含む入力画像から特徴点（局所特徴点）を抽出し、特徴点の周囲の画素の奥行き値を正規化するような変換を正規化変換とし、該正規化変換によって特徴点の画素位置が変換される画素位置を特定し、該特定した画素位置を囲む領域に該正規化変換によって変換される入力画像上の領域を特徴量算出領域として特定し、該特徴量算出領域から特徴量を算出する画像処理装置の一例について説明する。すなわち、第１の実施形態では、処理対象特徴点の周囲の３点における奥行き値を正規化するように画像の変換を行って変形画像を生成したが、本実施形態では、このような画像の変形は行わずに、処理対象特徴点に対して設定された特徴量算出領域の形状を、処理対象特徴点の周囲の３点における奥行き値を正規化するように変形する。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。
【００８９】
先ず、本実施形態に係る画像処理装置の機能構成例について、図１０のブロック図を用いて説明する。
【００９０】
画像入力部１００１は、原画像を入力する。なお、原画像には、該原画像を構成する各画素の奥行き値を表す情報が含まれているものとして説明する。
【００９１】
特徴点抽出部１００２は、画像入力部１００１が入力した原画像の輝度成分を表す輝度成分画像を生成すると共に、該輝度成分画像を再帰的に複数回縮小することで複数枚の縮小画像を生成し、該輝度成分画像及び該複数枚の縮小画像のそれぞれから局所特徴点を抽出する。
【００９２】
領域設定部１００３は、特徴点抽出部１００２が抽出したそれぞれの局所特徴点について特徴量算出領域を設定する。
【００９３】
算出部１００４は、特徴点抽出部１００２が抽出したそれぞれの局所特徴点について領域設定部１００３が設定した特徴量算出領域から特徴量を算出し、該算出した特徴量を出力する。特徴量の出力先については特定の出力先に限るものではなく、記憶部１００５に対して出力しても構わないし、外部のメモリに対して出力しても構わないし、該特徴量を用いて処理を行う外部の機器に対して出力しても構わない。
【００９４】
記憶部１００５は、画像入力部１００１、特徴点抽出部１００２、領域設定部１００３、算出部１００４のそれぞれが動作のために使用するメモリであって、例えば、算出部１００４は、算出した特徴量を記憶部１００５に格納する。
【００９５】
次に、本実施形態に係る画像処理装置が、画像から特徴量を算出するために行う処理について、同処理のフローチャートを示す図１１を用いて説明する。なお、ステップＳ１１０１〜Ｓ１１０６、Ｓ１１０８〜Ｓ１１１０、Ｓ１１１３〜Ｓ１１１５の各ステップにおける処理はそれぞれ、処理の主体は異なるものの、その処理の内容は、図４のステップＳ４０１〜Ｓ４０６、Ｓ４０８〜Ｓ４１０、Ｓ４１４〜Ｓ４１６と同じであるため、これらのステップに係る説明は省略する。
【００９６】
＜ステップＳ１１０７＞
領域設定部１００３は、処理対象特徴点の周囲に特徴量算出領域を設定する。この場合における特徴量算出領域の設定方法については従来から行われている方法を採用する。
【００９７】
＜ステップＳ１１１１＞
領域設定部１００３は先ず、処理対象特徴点の画像座標（ｘ、ｙ）と処理対象特徴点の奥行き値ｚとを用いて上記の式（１）〜（３）を用いた透視投影逆変換を行うことで（ｘｎ、ｙｎ、ｚｎをそれぞれｘ、ｙ、ｚと読み替える）３次元座標（ｘｒ、ｙｒ、ｚｒ）を求め、該３次元座標（ｘｒ、ｙｒ、ｚｒ）を変換行列Ｔを用いて変換した３次元座標（ｘｔ、ｙｔ、ｚｔ）求め、該３次元座標（ｘｔ、ｙｔ、ｚｔ）を用いて、式（２７）、（２８）に従った透視投影変換を行うことで、２次元座標（ｘ’、ｙ’）に変換する。
【００９８】
次に、領域設定部１００３は、２次元座標（ｘ’、ｙ’）を囲む領域（例えば、２次元座標（ｘ’、ｙ’）を中心とする領域）を設定する。以下では説明を簡単にするために、この設定する領域は矩形であるものとして説明するが、領域の形状を規定する情報が用意されているのであれば、その形状は如何なる形状であっても構わない。
【００９９】
次に、領域設定部１００３は、この設定した領域の四隅の２次元座標に対して、２次元座標（ｘ’、ｙ’）を求めるための上記の変換の逆変換を行う。
【０１００】
＜ステップＳ１１１２＞
領域設定部１００３は、ステップＳ１１１１で求めた「設定した領域の四隅の２次元座標に対して２次元座標（ｘ’、ｙ’）を求めるための上記の変換の逆変換を行うことで得られた四隅の２次元座標で規定される形状の領域」を特徴量算出領域として設定する。
【０１０１】
図１２は、ステップＳ１１１１の処理による特徴量算出領域の設定例の模式図である。図１２（ａ）に示した画像は、対象物を正面から撮像したものであって、３点における奥行き値に差がないものである。然るにこのような場合には、図１２（ａ）の領域１２０１内に処理対象特徴点がある場合には、図１２（ｃ）に示す如く、領域１２０３を特徴量算出領域として設定する。図１２（ｂ）に示した画像は、対象物が撮像装置に対して反時計回りに６０度回転した状態で撮像されたものである。このような場合、処理対象特徴点の周囲１２０２における３点の奥行き値には差があるため、本実施形態では、これらの差を軽減するように図１２（ｄ）の特徴量算出領域１２０４を求める。
【０１０２】
このように、処理対象特徴点の周囲における３点の奥行き値に差があろうとなかろうと、図１２（ｃ）、（ｄ）に示す如く、特徴量算出領域内の画像は類似したものとなる。
【０１０３】
このように、本実施形態によれば、面外回転の影響を受けにくい局所特徴量を算出することが可能となる。
【０１０４】
［第３の実施形態］
第１の実施形態では、１つの局所特徴点について１つの変換画像を生成していたが、本実施形態では、局所特徴点を囲む領域を複数の領域に分割し、該分割したそれぞれの領域について変換画像を生成する。すなわち、局所特徴点ごとに、該局所特徴点に対応するそれぞれの分割領域についての変換画像を生成する。すなわち、第１の実施形態では、１つの平面を特定して奥行き値を正規化するよう画像の変換を行ったが、本実施形態では、複数の平面を特定して奥行き値を正規化するよう画像の変換を行う。本実施形態は、局所特徴量算出範囲に複数の奥行き勾配がある場合に有効である。
【０１０５】
以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。また、本実施形態では、第１の実施形態と同様の構成（図３）を有する画像処理装置を適用する。
【０１０６】
次に、本実施形態に係る画像処理装置が、画像から特徴量を算出するために行う処理について、同処理のフローチャートを示す図１３を用いて説明する。なお、ステップＳ１３０１〜Ｓ１３０３、Ｓ１３０８〜Ｓ１３１０、Ｓ１３１５〜Ｓ１３１８の各ステップにおける処理はそれぞれ、処理の主体は異なるものの、その処理の内容は、図４のステップＳ４０１〜Ｓ４０３、Ｓ４０８〜Ｓ４１０、Ｓ４１３〜Ｓ４１６と同じであるため、これらのステップに係る説明は省略する。
【０１０７】
＜ステップＳ１３０４＞
画像生成部３０３は、処理対象特徴点を囲む領域を複数の領域に分割する。例えば、特徴点を囲む領域として従来技術でも設定していた特徴量算出領域の２倍のサイズの領域を処理対象特徴点を囲む領域として設定し、該設定した領域を４×４のブロックに分割する。もちろん、分割元の領域サイズや領域の分割数についてはこれらの例に限るものではない。また、領域分割方法は、矩形のメッシュブロック分割に限定するものではなく、三角形や六角形などの多角形による分割や、セグメンテーションを行って分割する方法なども考えられる。
【０１０８】
＜ステップＳ１３０５＞
画像生成部３０３は、ステップＳ１３０４において分割したそれぞれの分割領域のうち未選択の分割領域を処理対象領域として選択する。
【０１０９】
＜ステップＳ１３０６＞
画像生成部３０３は、処理対象領域から直線上に並んでいない３点を決定し、該決定した３点のそれぞれの画像座標を取得する。
【０１１０】
＜ステップＳ１３０７＞
画像生成部３０３は、ステップＳ１３０６で決定した３点の画素における奥行き値を取得する。
【０１１１】
＜ステップＳ１３１１＞
画像生成部３０３は、処理対象領域内（分割領域内）の画像を変換行列Ｔによって変換した画像を変換画像として生成する。以下では説明を簡単にするために、処理対象領域は矩形であるものとして説明するが、処理対象領域の形状を規定する情報が用意されているのであれば、その形状は如何なる形状であっても構わない。
【０１１２】
画像生成部３０３は先ず、処理対象領域の四隅の画像座標（ｘ、ｙ）と該四隅の奥行き値ｚとを用いて上記の式（１）〜（３）を用いた透視投影逆変換を行うことで（ｘｎ、ｙｎ、ｚｎをそれぞれｘ、ｙ、ｚと読み替える）３次元座標（ｘｒ、ｙｒ、ｚｒ）を求め、該３次元座標（ｘｒ、ｙｒ、ｚｒ）を変換行列Ｔを用いて変換した３次元座標（ｘｔ、ｙｔ、ｚｔ）求め、該３次元座標（ｘｔ、ｙｔ、ｚｔ）を用いて、式（２７）、（２８）に従った透視投影変換を行うことで、２次元座標（ｘ’、ｙ’）に変換する。そして、画像生成部３０３は、四隅の変換後の２次元座標で囲まれている領域内の各画素ｐｔについて、対象画像上の対応する画素位置ｐｑを、画素位置ｐｔに対して（ｘ’、ｙ’）を求めるための上記の変換の逆変換を行うことで求め、画素位置ｐｔにおける画素値として、対象画像における画素位置ｐｑの画素値をセットする。なお、画素位置ｐｑが非整数である場合には、その周辺の画素の画素値から平均和等の補間により求めた画素値をセットする。
【０１１３】
＜ステップＳ１３１２＞
画像生成部３０３は、ステップＳ１３０４において分割した分割領域の全てがステップＳ１３０５において選択されたか否かを判断する。この判断の結果、全ての分割領域がステップＳ１３０５において選択されている場合には、処理はステップＳ１３１４に進み、未だ未選択の分割領域が残っている場合には、処理はステップＳ１３１３に進む。
【０１１４】
＜ステップＳ１３１３＞
画像生成部３０３は、ステップＳ１３０４において分割したそれぞれの分割領域のうち未選択の分割領域を処理対象領域として選択する。そして処理はステップＳ１３０６に移行する。
【０１１５】
＜ステップＳ１３１４＞
画像生成部３０３は、それぞれの分割領域について生成した変換画像の補正を行う。領域を分割して処理を行うことにより、領域と領域との間に隙間があったり、重なっていたりする場合があるため、それらを補正する。それらの領域が存在する場合は、処理対象特徴点に近い方の領域の変換行列を使用する、などのルールを定め、適用する。
【０１１６】
このように、本実施形態によれば、単純な平面ではない物体の撮影画像から面外回転の影響を受けにくい局所特徴量を算出することが可能となる。
【０１１７】
［第４の実施形態］
本実施形態では、第１〜３の実施形態の何れかの実施形態に係る特徴量算出技術を用いて算出した特徴量を用いて画像検索を行い、その検索結果を類似順に並べて表示する。先ず、本実施形態に係る画像処理装置の機能構成例について、図１４のブロック図を用いて説明する。
【０１１８】
画像入力部１４０１、特徴点抽出部１４０２、画像生成部１４０３、算出部１４０４はそれぞれ、図３に示した画像入力部３０１、特徴点抽出部３０２、画像生成部３０３、算出部３０４と同じであるため、これらの機能部に係る説明は省略する。記憶部１４０９については、基本的な機能については記憶部３０５と同じであるが、記憶部１４０９には更に、比較先画像について予め第１〜３の実施形態の何れかの実施形態に係る特徴量算出技術を用いて算出した特徴量と、該特徴量の取得元である画像に固有の情報と、が関連づけて登録される。
【０１１９】
量子化部１４０５は、算出部１４０４によって算出されたそれぞれの局所特徴量を量子化する。
【０１２０】
登録部１４０６は、量子化部１４０５によって量子化された局所特徴量と、該局所特徴量の算出元である画像に固有の情報と、を関連づけて記憶部１４０９に登録する。
【０１２１】
検索部１４０７は、クエリ画像として入力された比較元画像と類似する比較先画像に固有の情報を記憶部１４０９から検索する。
【０１２２】
表示部１４０８は、検索部１４０７による検索結果をＣＲＴや液晶画面などの表示装置に表示させる。
【０１２３】
次に、記憶部１４０９に、様々な画像（比較先画像）に固有の情報と、該画像から算出したそれぞれの局所特徴量と、を関連づけて登録するために画像処理装置が行う処理について、同処理のフローチャートを示す図１５を用いて説明する。
【０１２４】
なお、ステップＳ１５０１，Ｓ１５０２の各ステップにおける処理は、それぞれステップＳ４０１，Ｓ４０２と同様であるため、これらのステップに係る説明は省略する。また、ステップＳ１５０３では、第１の実施形態に係る特徴量算出処理（ステップＳ４０３〜Ｓ４１６の処理）、第２の実施形態に係る特徴量算出処理（ステップＳ１１０３〜Ｓ１１１５）、第３の実施形態に係る特徴量算出処理（ステップＳ１３０３〜Ｓ１３１８）の何れかを実行することで、比較先画像から抽出したそれぞれの局所特徴点に対する局所特徴量（ベクトル）を算出する。
【０１２５】
＜ステップＳ１５０４＞
量子化部１４０５は、ステップＳ１５０３で算出されたそれぞれの局所特徴量を量子化する。ここで求めている局所特徴量、すなわち、Local Jetおよびそれらの導関数の組み合わせにより各局所特徴点から算出される局所特徴量は、Ｎ次元のベクトルである。ここでは、Ｎ次元のうちのｎ（１≦ｎ≦Ｎ）番目の次元の特徴量について、Ｋｎ階調に量子化を行う。ここで、ＮおよびＫｎはあらかじめ決められているものとする。
【０１２６】
具体的には以下の式（３６）により、量子化を行う。
【０１２７】
【数１４】
0006543062.tif 000015
【０１２８】
Ｑｎは、Ｎ次元のうちのｎ番目の次元の特徴量Ｖｎを量子化した値である。Ｖｎ＿ｍａｘとＶｎ＿ｍｉｎはそれぞれｎ番目の次元の特徴量の取りうる値の最大値、最小値である。
【０１２９】
各次元の量子化値をひとまとめにすることで量子化局所特徴量を得ることができ、対象画像のすべての量子化局所特徴量をひとまとめにすることで量子化局所特徴量群を得ることができる。
【０１３０】
尚、上記の量子化では、次元ごとに量子化階調数を定めているが、全次元、もしくは、いくつかの次元で共通の階調数にしてもよい。この量子化方法は、図１６（ａ）に示すように、特徴量空間を格子状に分割する方法であるが、図１６（ｂ）のような格子形状に分割するような方法を採用してもよい。図１６（ａ）の格子１６０１は特徴量空間における量子化領域、点１６０２は各特徴を表している。量子化領域に特徴が対応付けられている。図１６（ａ）、（ｂ）ともに、便宜的に二次元の特徴量空間を量子化分割している例である。局所特徴量は例えば１２８次元のような多次元のため、実際は多次元の特徴量空間で分割を行う。
【０１３１】
また、特徴量空間を分割可能な方法であれば、上述したような規則に基づいて量子化する方法に限らずに、どのような分割方法でも適用可能である。例えば、複数の画像を機械学習させることによりクラスタリングのルールを作成し、そのルールに則って特徴量空間を分割し、量子化するようにしてもよい。
【０１３２】
また、各次元についての量子化を行った後、以下の式（３７）により、量子化値群のラベル化を行うことで、実質的に一次元の特徴量と同等に扱うことも可能である。
【０１３３】
【数１５】
0006543062.tif 000016
【０１３４】
また、全次元の階調数が共通の場合は、以下の式（３８）により、量子化値群のラベル化が可能である。ここで、Ｋは階調数である。
【０１３５】
【数１６】
0006543062.tif 000017
【０１３６】
尚、ラベル化可能な算出方法であれば、上述したような算出方法に限らずに、どのようなラベル化方法でも適用可能である。
【０１３７】
＜ステップＳ１５０５＞
登録部１４０６は、ステップＳ１５０４で求めたそれぞれの局所特徴量を特徴量ＩＤとして記憶部１４０９に登録すると共に、該局所特徴量の算出元の画像に対して固有に発行された画像ＩＤを、該特徴量ＩＤと関連づけて登録する。すなわち、記憶部１４０９には、それぞれの局所特徴量について、対応する特徴量ＩＤと、該局所特徴量の算出元の画像の画像ＩＤと、が関連づけて登録されることになる。
【０１３８】
記憶部１４０９における特徴量ＩＤ及び画像ＩＤの管理例を図１７に示す。なお、同じ画像について特徴量ＩＤを登録する場合や、類似する画像について特徴量ＩＤを登録する場合など、１つの特徴量ＩＤに複数の画像ＩＤが関連付けられることもある。また、使用されない特徴量ＩＤが存在することもある。
【０１３９】
次に、クエリ画像として入力された比較元画像と類似する比較先画像の画像ＩＤを検索して一覧表示するために画像処理装置が行う処理について、同処理のフローチャートを示す図１８を用いて説明する。
【０１４０】
ステップＳ１８０１，Ｓ１８０２、Ｓ１８０３、Ｓ１８０４の各ステップにおける処理はそれぞれ、ステップＳ４０１，Ｓ４０２、Ｓ１５０３、Ｓ１５０４と同様であるため、これらのステップに係る説明は省略する。なお、ステップＳ１８０３では、ステップＳ１５０３において採用した特徴量算出技術と同じ特徴量算出技術を用いるものとする。
【０１４１】
＜ステップＳ１８０５＞
検索部１４０７は、比較元画像から算出された、量子化された局所特徴量に基づいて、類似する画像の画像ＩＤを記憶部１４０９から検索する。ステップＳ１８０５における処理の詳細について、図１９のフローチャートを用いて説明する。
【０１４２】
＜ステップＳ１９０１＞
検索部１４０７は、記憶部１４０９に、それぞれの画像ＩＤに対応するメモリ領域（投票箱として使用するメモリ領域）を確保する。例えば、画像ＩＤ＝１に対応する投票箱１、画像ＩＤ＝２に対応する投票箱２、…、画像ＩＤ＝Ｎに対応する投票箱Ｎ、を記憶部１４０９に確保する。
【０１４３】
＜ステップＳ１９０２＞
検索部１４０７は、それぞれの投票箱に対して設けられている、該投票箱への投票数を示す変数ｃを０に初期化する。
【０１４４】
＜ステップＳ１９０３＞
検索部１４０７は、変数ｋの値に１をセットする。
【０１４５】
＜ステップＳ１９０４＞
検索部１４０７は、比較元画像から算出した量子化済み局所特徴量を表す特徴量ＩＤのうちｋ番目の特徴量ＩＤを取得する。
【０１４６】
＜ステップＳ１９０５＞
検索部１４０７は、記憶部１４０９に登録されている特徴量ＩＤのうちステップＳ１９０４で取得した特徴量ＩＤと同じもの若しくは類似しているものを特定し、該特定した特徴量ＩＤと関連づけて登録されている画像ＩＤを特定する。なお、ステップＳ１９０４で取得した特徴量ＩＤと同じもの若しくは類似しているものと関連づけて登録されている画像ＩＤが複数の場合には、該複数の画像ＩＤを特定することになる。本ステップで特定する１以上の画像ＩＤを基準画像ＩＤリストと呼称する場合がある。
【０１４７】
＜ステップＳ１９０６＞
検索部１４０７は、ステップＳ１９０５で特定した画像ＩＤに対応する投票箱に対応する変数ｃの値を１つインクリメントする。なお、インクリメントする数は１に限るものではない。例えば、特徴量ＩＤの類似度に応じた数（特徴量ＩＤの類似度が高いほど大きい数）だけインクリメントするようにしても構わないし、局所特徴点の座標に基づく数だけインクリメントするようにしても構わない。
【０１４８】
＜ステップＳ１９０７＞
検索部１４０７は、変数ｋの値を１つインクリメントする。
【０１４９】
＜ステップＳ１９０８＞
検索部１４０７は、変数ｋの値が、比較元画像から抽出した局所特徴点の数以下であるか否かを判断する。この判断の結果、変数ｋの値が、比較元画像から抽出した局所特徴点の数以下であれば、処理はステップＳ１９０４に戻り、変数ｋの値が、比較元画像から抽出した局所特徴点の数を超えた場合には、処理はステップＳ１９０９に進む。
【０１５０】
＜ステップＳ１９０９＞
検索部１４０７は、投票数（変数ｃの値）が大きい順に画像ＩＤをソートする。
【０１５１】
なお、局所特徴量を量子化した際に、局所特徴量は類似していても、量子化値が異なる場合があり、その場合は、特徴量ＩＤが異なってしまう。その対策として、ステップＳ１９０５では、ステップＳ１９０４で取得した特徴量ＩＤと同じものだけでなく、ステップＳ１９０４で取得した特徴量ＩＤと類似する特徴量ＩＤをも特定し、ステップＳ１９０４で取得した特徴量ＩＤと同じ特徴量ＩＤ、ステップＳ１９０４で取得した特徴量ＩＤと類似する特徴量ＩＤ、のそれぞれに対応する画像ＩＤを特定する。
【０１５２】
＜ステップＳ１８０６＞
表示部１４０８は、ステップＳ１９０９でソートした画像ＩＤをＣＲＴや液晶画面などにより構成されている表示装置に表示する。なお、表示対象は画像ＩＤに限るものではなく、該画像ＩＤに対応する画像や該画像の属性情報（ファイル名や作成日時、ファイルサイズなど）を合わせて表示しても構わない。
【０１５３】
このように、本実施形態によれば、面外回転されている物体が写っている場合でも画像検索を可能にする。なお、本実施形態では、投票方式に従った画像検索処理を採用したが、他の方式による画像検索処理を行うようにしても構わない。
【０１５４】
［第５の実施形態］
第１〜４の実施形態では、局所特徴点周辺の奥行き値を利用して、１つ若しくは複数の平面を特定し、奥行き値を正規化するような変換方法を定めている。しかしながら、平面を特定するのではなく、ハフ変換等により曲面を推定するようにしてもよい。その場合は、その曲面を展開画像に変換することにより奥行き値を正規化する方法が考えられる。展開画像への変換は周知技術であり、例えば、特許文献１記載の既存の手法を用いることにより実現できる。
【０１５５】
［第６の実施形態］
図３，１０，１４に示した各機能部は全てハードウェアで構成しても構わないが、一部をソフトウェアで構成しても構わない。後者の場合、例えば、記憶部３０５，１００５，１４０９として機能するメモリ装置（ハードディスクやＲＡＭ，ＲＯＭなど）を有し、且つ記憶部３０５，１００５，１４０９以外の各機能部の機能を実現可能なコンピュータプログラムを実行可能なプロセッサを有するコンピュータ装置であれば、上記の各実施形態に係る画像処理装置に適用することができる。このようなコンピュータ装置のハードウェア構成例について、図２のブロック図を用いて説明する。
【０１５６】
ＣＰＵ２０１はＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、コンピュータ装置２００全体の動作制御を行うと共に、コンピュータ装置２００を適用する画像処理装置が行うものとして上述した各処理を実行する。
【０１５７】
ＲＯＭ２０２には、コンピュータ装置２００の設定データやブートプログラムなどが格納されている。ＲＯＭ２０２は、記憶部３０５，１００５，１４０９の機能の一部を兼ねる。
【０１５８】
ＲＡＭ２０３は、外部記憶装置２０４からロードされたコンピュータプログラムやデータ、通信インターフェース２０７を介して外部から受信したデータ、などを格納するためのエリアを有する。また、ＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。このように、ＲＡＭ２０３は、各種のエリアを適宜提供することが出来る。また、ＲＡＭ２０３は、記憶部３０５，１００５，１４０９の機能の一部を兼ねる。
【０１５９】
外部記憶装置２０４は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置２０４には、ＯＳ（オペレーティングシステム）や、画像処理装置が行うものとして上述した各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、図３，１０，１４において記憶部３０５，１００５，１４０９以外の各機能部が行うものとして上述した各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムが含まれている。また、このデータには、上述の処理において既知の情報として説明したものや、記憶部３０５，１００５，１４０９が保持しているものとして上述したデータ、が含まれている。外部記憶装置２０４に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【０１６０】
なお、外部記憶装置２０４には、コンピュータ装置２００から着脱可能なフレキシブルディスク（ＦＤ）やＣｏｍｐａｃｔ  Ｄｉｓｋ（ＣＤ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカードなどを適用しても構わない。
【０１６１】
また、外部記憶装置２０４は、記憶部３０５，１００５，１４０９の機能の一部を兼ねる。
【０１６２】
入力デバイス２０９は、キーボードやマウスなどのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をＣＰＵ２０１に対して入力することが出来る。入力デバイス２０９は、入力デバイスインターフェース２０５に接続される。
【０１６３】
モニタ２１０は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することが出来る。モニタ２１０は、出力デバイスインターフェース２０６に接続される。
【０１６４】
ネットワーク回線２１１は、ＬＡＮやインターネット等を含むものであり、有線回線であっても無線回線であっても、またそれらの組み合わせであっても構わない。
【０１６５】
通信インターフェース２０７は、このようなネットワーク回線２１１を介してデータの送受信を行うものである。また、通信インターフェース２０７には、デジタルカメラ２１２、デジタルビデオカメラ２１３、スマートフォン２１４、などの機器を接続することができ、これらの機器とのデータ通信をも行う。例えば、デジタルカメラ２１２、デジタルビデオカメラ２１３、スマートフォン２１４などによって撮像された画像（静止画像や動画像の各フレーム）を通信インターフェース２０７を介して外部記憶装置２０４やＲＡＭ２０３に転送し、特徴量の算出対象として用いても構わない。
【０１６６】
ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置２０４、入力デバイスインターフェース２０５、出力デバイスインターフェース２０６、通信インターフェース２０７は何れも、システムバス２０８に接続されている。
【０１６７】
なお、第１〜５の実施形態に係る画像処理装置を実現するために、図２の構成を有する１台のコンピュータ装置２００を用いても構わないが、同様の構成を有する複数台のコンピュータ装置を用いて実現させても構わない。第１〜５の実施形態に係る画像処理装置を複数台のコンピュータ装置で構成する場合は、互いに通信可能なようにＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）などで接続される。コンピュータ装置は、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）等の情報処理装置によって実現することができる。
【０１６８】
また、ＣＰＵ２０１によって、記憶部３０５，１００５，１４０９以外の各機能部の機能を実現させるようにしても構わないが、ＣＰＵ２０１と協調して動作するＡＳＩＣなどの制御回路が記憶部３０５，１００５，１４０９以外の各機能部の機能を実現させるようにしても構わない。また、ＣＰＵと画像処理装置の動作を制御する制御回路との協調によって、記憶部３０５，１００５，１４０９以外の各機能部の機能を実現させるようにしても構わない。また、ＣＰＵは単一のものである必要はなく、複数であってもよい。この場合、複数のＣＰＵは分散して処理を実行することが可能である。また、複数のＣＰＵは単一のコンピュータ装置に配置されていてもよいし、物理的に異なる複数台のコンピュータ装置に配置されていてもよい。
【０１６９】
また、第１〜５の実施形態に係る画像処理装置は、ディジタルカメラなどの撮像装置への組み込み機器として実装しても構わない。このとき、該撮像装置は、自身で撮像した画像の局所特徴量を第１〜５の実施形態で説明した方法でもって算出することができ、またこのような局所特徴量を用いて、第４の実施形態に係る画像検索を行うことが出来る。
【０１７０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１７１】
３０２：特徴点抽出部  ３０３：画像生成部  ３０４：算出部
【図１】
0006543062.tif 000018
【図２】
0006543062.tif 000019
【図３】
0006543062.tif 000020
【図４】
0006543062.tif 000021
【図５】
0006543062.tif 000022
【図６】
0006543062.tif 000023
【図７】
0006543062.tif 000024
【図８】
0006543062.tif 000025
【図９】
0006543062.tif 000026
【図１０】
0006543062.tif 000027
【図１１】
0006543062.tif 000028
【図１２】
0006543062.tif 000029
【図１３】
0006543062.tif 000030
【図１４】
0006543062.tif 000031
【図１５】
0006543062.tif 000032
【図１６】
0006543062.tif 000033
【図１７】
0006543062.tif 000034
【図１８】
0006543062.tif 000035
【図１９】
0006543062.tif 000036