(57)【特許請求の範囲】
【請求項１】
少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する画像処理装置であって、
前記第１の画像と前記第２の画像とを周波数変換し、それぞれの振幅成分を導出するための導出部と、
前記第１の画像と前記第２の画像とのうちの長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうための調整部と、
前記調整部によって調整された、前記第１の画像の振幅成分と前記第２の画像の振幅成分とを極座標変換するための変換部と、
前記第１の画像の振幅成分の極座標変換画像と前記第２の画像の振幅成分の極座標変換画像との位置のずれ量を算出することで、前記第１の画像と前記第２の画像との間の回転量を出力するためのマッチング部とを備える、画像処理装置。
【請求項２】
前記調整部は、前記長方形の画像が前記導出部によって周波数変換された後に、周波数空間上で、短辺を長辺と一致するように補間することによって伸長する、請求項１に記載の画像処理装置。
【請求項３】
前記調整部は、前記長方形の画像が前記導出部によって周波数変換される前に、実空間上で、１画素当たりの周期を変更することなく、短辺のサイズが長辺のサイズに一致するように、画像情報を追加する、請求項１に記載の画像処理装置。
【請求項４】
前記第１の画像の振幅成分と前記第２の画像の振幅成分とを圧縮するための圧縮部をさらに備える、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記圧縮部は、前記調整部によって調整された後に、前記第１の画像の振幅成分と前記第２の画像の振幅成分とを圧縮する、請求項４に記載の画像処理装置。
【請求項６】
前記第１の画像の振幅成分と前記第２の画像の振幅成分とを圧縮するための圧縮部をさらに備え、
前記調整部は、前記長方形の画像が圧縮された後に、周波数空間上で前記調整を行なう、請求項２に記載の画像処理装置。
【請求項７】
少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する方法であって、
前記第１の画像と前記第２の画像とを周波数変換し、それぞれの振幅成分を導出するステップと、
前記第１の画像と前記第２の画像とのうちの長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうステップと、
前記調整後に、前記第１の画像の振幅成分と前記第２の画像の振幅成分とを極座標変換するステップと、
前記第１の画像の振幅成分の極座標変換画像と前記第２の画像の振幅成分の極座標変換画像との位置のずれ量を算出することで、前記第１の画像と前記第２の画像との間の回転量を出力するステップとを備える、画像処理方法。
【請求項８】
少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する処理をコンピューターに実行させるプログラムであって、
前記第１の画像と前記第２の画像とを周波数変換し、それぞれの振幅成分を導出するステップと、
前記第１の画像と前記第２の画像とのうちの長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうステップと、
前記調整後に、前記第１の画像の振幅成分と前記第２の画像の振幅成分とを極座標変換するステップと、
前記第１の画像の振幅成分の極座標変換画像と前記第２の画像の振幅成分の極座標変換画像との位置のずれ量を算出することで、前記第１の画像と前記第２の画像との間の回転量を出力するステップとを前記コンピューターに実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像の回転量推定を行なう画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
基準となる画像（テンプレート）に対して比較対象となる他の画像がどの程度回転しているかを検出するための回転量推定処理として、従来、ＳＡＤ（Sum  of  Absolute  Differences）やＳＳＤ（Sum  of  Squared  Differences）に代表されるテンプレートマッチング手法を用いテンプレートを回転させる手法が採られることが多い。【０００３】
しかしながら、上記の方法では処理時間が長くなるなどの問題がある。
上記問題を解決する方法の一例として、特開平１０−１２４６６７号公報（以下、特許文献１）に開示されているような、ＲＩＰＯＣ（Rotation  Invariant  Phase  Only  Correlation：回転不変位相限定相関）などと呼ばれる、画像を周波数変換し、その振幅成分を極座標変換して回転量を推定する手法が提案されている。【０００４】
画像が回転すると画像の周波数成分も変化する。周波数成分のうちの位相成分の変化は非常に複雑であるが、振幅成分については画像の回転に応じた回転であり、さらにその変化は回転中心の位置に依存しない。ＲＩＰＯＣはこの振幅成分の特性に着目した手法である。すなわち、ＲＩＰＯＣでは、画像を周波数変換し、その振幅成分が極座標変換されて、Ｘ方向が角度θ、Ｙ方向が半径ｒとなるような極座標画像が作成される。そして、極座標画像間でマッチングが行なわれる。【０００５】
極座標画像間でのマッチングでは、Ｘ方向のずれが実際の画像での角度ずれに相当する。そのため、マッチング結果から回転量を推定することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１２４６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のＲＩＰＯＣでは、基準となる画像（テンプレート）および比較対象となる他の画像の形状が共に正方形に限定されていた。すなわち、従来のＲＩＰＯＣでは、Ｘ方向およびＹ方向のサイズ（画素数）が同じである正方形の画像を対象とし、画像が回転した場合に、その周波数変換した際の振幅成分も同量回転することが前提であった。【０００８】
このように、従来のＲＩＰＯＣでは、画像の形状が正方形でない場合について考慮されておらず、たとえばテンプレートの形状が正方形に制限されてしまう、という問題があった。すなわち、縦と横とのサイズが異なる画像について回転量の推定処理を行なうことができない、という問題があった。【０００９】
本発明はこのような問題に鑑みてなされたものであって、画像の縦と横とのサイズが異なる場合であっても回転量推定が可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のある局面に従うと、画像処理装置は少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する画像処理装置であって、第１の画像と第２の画像とを周波数変換し、それぞれの振幅成分を導出するための導出部と、第１の画像と第２の画像とのうちの長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうための調整部と、調整部によって調整された、第１の画像の振幅成分と第２の画像の振幅成分とを極座標変換するための変換部と、第１の画像の振幅成分の極座標変換画像と第２の画像の振幅成分の極座標変換画像との位置のずれ量を算出することで、第１の画像と第２の画像との間の回転量を出力するためのマッチング部とを備える。【００１１】
本発明の他の局面に従うと、画像処理方法は少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する方法であって、第１の画像と第２の画像とを周波数変換し、それぞれの振幅成分を導出するステップと、第１の画像と第２の画像とのうちの長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうステップと、調整後に、第１の画像の振幅成分と第２の画像の振幅成分とを極座標変換するステップと、第１の画像の振幅成分の極座標変換画像と第２の画像の振幅成分の極座標変換画像との位置のずれ量を算出することで、第１の画像と第２の画像との間の回転量を出力するステップとを備える。【００１２】
本発明のさらに他の局面に従うと、画像処理プログラムは少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する処理をコンピューターに実行させるプログラムであって、第１の画像と第２の画像とを周波数変換し、それぞれの振幅成分を導出するステップと、第１の画像と第２の画像とのうちの長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうステップと、調整後に、第１の画像の振幅成分と第２の画像の振幅成分とを極座標変換するステップと、第１の画像の振幅成分の極座標変換画像と第２の画像の振幅成分の極座標変換画像との位置のずれ量を算出することで、第１の画像と第２の画像との間の回転量を出力するステップとをコンピューターに実行させる。
【発明の効果】
【００１３】
この発明によると、画像の縦と横とのサイズが異なる場合であっても、第１の画像と第２の画像との間の回転量を推定することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態にかかる画像処理装置の構成の具体例を示すブロック図である。
【図２】第１の実施の形態に従う回転量推定処理のアルゴリズムを示す模式図である。
【図３】第１の実施の形態に従う調整前後の振幅成分画像の具体例を表わした図である。
【図４】第１の実施の形態に従う調整前後の振幅成分画像の具体例を表わした図である。
【図５】探索画像が長方形の場合のマッチングにおける回転の影響を説明するための図である。
【図６】探索画像が正方形の場合のマッチングにおける回転の影響を説明するための図である。
【図７】極座標変換を説明するための図であって、図７（Ａ）が変換前の画像を表わした図、図７（Ｂ)が変換後の画像を表わした図である。
【図８】第１の実施の形態にかかる画像処理装置の機能構成の具体例を示すブロック図である。
【図９】第１の実施の形態にかかる画像処理装置での対応点探索動作の流れを表わすフローチャートである。
【図１０】第２の実施の形態に従う回転量推定処理のアルゴリズムを示す模式図である。
【図１１】第２の実施の形態に従う調整前後の実空間画像の具体例を表わした図である。
【図１２】他の方法での調整前後の実空間画像の具体例を表わした図である。
【図１３】他の方法での調整前後の実空間画像の具体例を表わした図である。
【図１４】第２の実施の形態にかかる画像処理装置での対応点探索動作の流れを表わすフローチャートである。
【図１５】画像が長方形である場合の回転を説明するための図である。
【発明を実施するための形態】
【００１５】
＜回転の説明＞
まず、本発明の実施の形態の説明の前に、画像が長方形である場合の回転について説明する。
【００１６】
図１５は、画像が長方形である場合の回転を説明するための図である。図１５（Ａ）に示されたように、２５６画素（Ｘ方向）×１２８画素（Ｙ方向）の長方形の領域に、Ｘ方向に実空間での１／６４（周期／画素）の縞模様が描かれた画像を想定する。この画像のＸ方向の周波数は２５６画素／６４画素＝４（周期／２５６画素）となる。この縞模様の画像が９０°回転すると、図１５（Ｂ）に示されたように、縞模様は１／６４（周期／画素）のままであるが、Ｙ方向の周波数は１２８画素／６４画素＝２（周期／１２８画素）となる。すなわち、Ｘ方向とＹ方向とでサイズ（画素数）が異なるため、空間周波数を算出する際のベースとなるサイズも異なることになる。ここでは実空間での空間周波数について説明したが、画像を周波数変換した際にも同様の課題がある。
【００１７】
このように画像が長方形の場合、回転しても１画素当たりの周期は維持されるが、空間周波数の分解能、すなわち空間周波数を算出する際のベースとなるサイズがＸ方向とＹ方向とで異なるため、同じ被写体でも回転量によってその周波数分布形状が歪んでしまうこととなる。
【００１８】
先述のようにＲＩＰＯＣでは周波数成分の変化を角度変化として捉えるため、同じ周波数成分がどう変化しているかを見る必要がある。回転により周波数が変わってしまうと、同じ周波数成分どうしの比較が不可能になり、結果的に角度推定は不可能になってしまう。
【００１９】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【００２０】
＜装置構成＞
図１は、実施の形態にかかる画像処理装置１００の構成の具体例を示すブロック図である。図１の例では、本実施の形態にかかる画像処理装置１００を一般的なパーソナルコンピューターにより実現した場合の例が示されている。
【００２１】
すなわち、図１を参照して、画像処理装置１００は、主として、汎用的なアーキテクチャーを有するコンピューター上に実装される。図１を参照して、画像処理装置１００は、主たるコンポーネントとして、ＣＰＵ（Central  Processing  Unit）１０２と、ＲＡＭ（Random  Access  Memory）１０４と、ＲＯＭ（Read  Only  Memory）１０６と、ネットワークインターフェイス（Ｉ／Ｆ）１０８と、補助記憶装置１１０と、表示部１２０と、入力部１２２と、メモリーカードインターフェイス（Ｉ／Ｆ）１２４とを含む。各コンポーネントは、バス１３０を介して、互いに通信可能に接続されている。
【００２２】
ＣＰＵ１０２は、ＲＯＭ１０６や補助記憶装置１１０などに格納された、オペレーティングシステム（ＯＳ：Operating  System）や画像処理プログラムなどの各種プログラムを実行することで、画像処理装置１００の全体を制御する。
【００２３】
ＲＡＭ１０４は、ＣＰＵ１０２でプログラムを実行するためのワーキングメモリとして機能し、プログラムの実行に必要な各種データを一次的に格納する。
【００２４】
ＲＯＭ１０６は、画像処理装置１００において起動時に実行される初期プログラム（ブートプログラム）などを格納する。
【００２５】
ネットワークＩ／Ｆ１０８は、各種の通信媒体を介して、他の装置（サーバー装置など）とデータをやり取りする。より具体的には、ネットワークＩ／Ｆ１０８は、イーサネット（登録商標）などの有線回線（ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）など）、および／または、無線ＬＡＮなどの無線回線を介してデータ通信を行なう。
【００２６】
補助記憶装置１１０は、典型的には、ハードディスクなどの大容量磁気記憶媒体などからなり、本実施の形態に従う各種を実現するための画像処理プログラム１１２および処理対象の探索画像１１４ならびにテンプレート画像３００などを格納する。さらに、補助記憶装置１１０には、オペレーティングシステムなどのプログラムが格納されてもよい。
【００２７】
探索画像１１４およびテンプレート画像３００は、例えば、予め登録されたテンプレート画像３００（第１の画像）に対応する探索画像１１４（第２の画像）上の位置を探索するために記憶される。画像処理装置１００本体は被写体を撮像する機能を有していなくてもよく、後述するようなデジタルカメラに類似した機構を用いてこれら画像を取得し、これら画像を任意の方法で画像処理装置１００へ入力するようにしてもよい。より具体的には、上述のネットワークＩ／Ｆ１０８やメモリーカードＩ／Ｆ１２４を介して、これら画像が画像処理装置１００へ入力される。
【００２８】
表示部１２０は、オペレーティングシステムが提供するＧＵＩ（Graphical  User  Interface）画面や画像処理プログラム１１２の実行によって生成される画像などを表示する。
【００２９】
入力部１２２は、典型的には、キーボード、マウス、タッチパネルなどからなり、ユーザーから受付けた指示の内容をＣＰＵ１０２などへ出力する。
【００３０】
メモリーカードＩ／Ｆ１２４は、ＳＤ（Secure  Digital）カードやＣＦ（Compact  Flash（登録商標））カードなどの各種メモリーカード（不揮発性記憶媒体）１２６との間で、データの読み書きを行なう。典型的には、メモリーカードＩ／Ｆ１２４には、何らかの装置で取得した入力画像を格納したメモリーカード１２６が装着され、そのメモリーカード１２６から読み出された入力画像が補助記憶装置１１０へ格納（コピー）される。
【００３１】
補助記憶装置１１０に格納される画像処理プログラム１１２は、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）などの記憶媒体に格納されて流通し、あるいは、ネットワークを介してサーバー装置などから配信される。画像処理プログラム１１２は、画像処理装置１００（パーソナルコンピューター）で実行されるオペレーティングシステムの一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するようにしてもよい。この場合、画像処理プログラム１１２自体には、オペレーティングシステムによって提供されるモジュールは含まれず、オペレーティングシステムと協働して画像処理が実現される。また、画像処理プログラム１１２は、単体のプログラムではなく、何らかのプログラムの一部に組込まれて提供されてもよい。このような場合にも、画像処理プログラム１１２自体には、当該何らかのプログラムにおいて共通に利用されるようなモジュールは含まれず、当該何らかのプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない画像処理プログラム１１２であっても、本実施の形態に従う画像処理装置１００の趣旨を逸脱するものではない。
【００３２】
さらに、画像処理プログラム１１２によって提供される機能の一部または全部を専用のハードウェアによって実現してもよい。
【００３３】
なお、本実施の形態にかかる画像処理装置１００は図１に例示されたように一般的なパーソナルコンピューターにより実現されるものに限定されず、その他、デジタルカメラ類似の構成や、携帯電話などの端末装置などによって実現されてもよい。さらに、少なくとも１つのサーバー装置が本実施の形態に従う処理を実現する、いわゆるクラウドサービスのような形態であってもよい。この場合、ユーザーは、自身の端末（パーソナルコンピューターやスマートフォンなど）を用いて探索画像１１４およびテンプレート画像３００をサーバー装置（クラウド側）へ送信し、当該送信された探索画像１１４およびテンプレート画像３００に対して、サーバー装置側が本実施の形態に従う画像処理を行なうような構成が想定される。さらに、サーバー装置側がすべての機能（処理）を行なう必要はなく、ユーザー側の端末とサーバー装置とが協働して、本実施の形態に従う画像処理を実現するようにしてもよい。
【００３４】
＜動作概要＞
本実施の形態にかかる画像処理装置１００では、回転量推定を伴う対応点探索動作を行なう。すなわち、画像処理装置１００では、対応点探索動作において、基準となる画像（以下、テンプレート画像）に対し、比較対象となる他の画像（以下、探索画像）がどの程度回転しているかを検出する、回転量推定処理を実行する。
【００３５】
回転量推定処理においては、一般的にＳＡＤ（Sum  of  Absolute  Differences）やＳＳＤ（Sum  of  Squared  Differences）のテンプレートマッチング手法を用いた場合には、テンプレート画像を回転させてマッチングを行なうことで角度を推定する。しかしながら、この手法では、たとえば１°の精度で角度を推定するとすると、０°〜３５９°のそれぞれ３６０回テンプレートを回転させ、マッチングを行なわないといけないため処理時間が長くなる。このため、本実施の形態の画像処理装置１００では、ＲＩＰＯＣ（Rotation  Invariant  Phase  Only  Correlation：回転不変位相限定相関）法での角度推定方法を採用して回転量を推定し、対応点探索動作を行なう。ＲＩＰＯＣ法では、画像を周波数変換し、その振幅成分を極座標変換して照合することにより、複数の画像間の回転量を推定する。
【００３６】
［第１の実施の形態］
図２は、第１の実施の形態に従う回転量推定処理のアルゴリズムを示す模式図である。図２を参照して、第１の実施の形態に従う回転量推定処理のアルゴリズムは、振幅成分導出処理２０２，２１２と、調整処理２０３，２１３と、圧縮処理２０４，２１４と、極座標変換処理２０６，２１６と、マッチング処理２０８とを含む。
【００３７】
振幅成分導出処理２０２，２１２は、それぞれ探索画像およびテンプレート画像を周波数成分（振幅成分および位相成分）に変換することで振幅成分を得る。この変換にはフーリエ変換を用いるが、ラプラス変換などを用いてもよい。なお、ＲＩＰＯＣ法においては、位相成分は必ずしも必要ではないので、算出しなくてもよい。探索画像およびテンプレート画像は、矩形であって、少なくとも一方は縦横のサイズが異なる長方形である。
【００３８】
第１の実施の形態に従う回転量推定処理において、調整処理２０３，２１３は、周波数空間上で周波数成分が少ない方（以下、短辺）を周波数成分が多い方（以下、長辺）に揃える処理を行なう。すなわち、周波数空間上で、縦横のサイズを一致する処理がなされる。この処理は、実空間上においては、１画素当たりの周期は変えずに、単位周波数、すなわち周波数が１となるサイズ（画素数）を同一の画像の縦横で合わせることに等しい。１画素当たりの周期は変えないため、周波数成分（振幅成分）の情報は調整処理の前後において維持される。
【００３９】
図３および図４は、第１の実施の形態に従う調整前後の振幅成分画像の具体例を表わした図である。図３および図４において、縦軸および横軸は、Ｘ−Ｙ方向の周波数成分（振幅成分）を示している。図３および図４に表わされたように、周波数成分が少ない方（短辺）を多い方（長辺）と同サイズに伸長することでこれらを合わせる。伸長の際の情報が無い部分の補間の方法は、周辺の座標値の平均値を用いて行なっているが、他の方法であっても構わない。この調整により、回転した場合であっても周波数成分が維持され、角度推定が可能となる。
【００４０】
なお、回転量推定処理のアルゴリズムでは、調整処理２０３，２１３は、テンプレート画像と探索画像とのうちの少なくとも一方の画像について実行されればよい。すなわち、テンプレート画像が縦横のサイズが異なる長方形であって、探索画像が正方形の場合であれば、テンプレート画像についてのみ調整処理を行なえばよい。
【００４１】
図５および図６は、探索画像が長方形の場合と正方形の場合とのマッチングにおける回転の影響を説明するための図である。後述するように、画像処理装置１００は、回転量推定処理において回転量が推定されると、テンプレート画像を回転させた上で探索画像とマッチング処理を行なうことで、探索画像上のテンプレート画像の位置を推定する。
【００４２】
図５の右図に示されているように、テンプレート画像として、人物の両目を含む長方形の画像（図中、枠で示す領域）を設定した場合について説明する。探索画像が同じ大きさの長方形である場合、画像が回転していない場合には、図５の右図におけるテンプレート画像と同じ領域を設定することが可能であり、テンプレート画像とのマッチングを行なうことができる。一方、画像が回転している場合には、図５の左図のように、探索画像として両目を含む領域を設定することができず、被写体（両目）が見切れてしまうことになり、テンプレート画像とのマッチングがうまくいかないことになる。
【００４３】
それに対して、図６に表わされたように、探索画像が正方形である場合、図５のように被写体が見切れる可能性を抑えることができる。すなわち、画像が回転していない場合（図６の右図）だけでなく、画像が回転している場合（図６の右図）であっても探索画像として両目を含む領域を設定することができる。つまり、この場合、テンプレート画像は長方形で、探索画像は正方形である。このようにテンプレート画像と探索画像とで形状が異なっていても、調整処理２０３，２１３でテンプレート画像を調整することで、回転量推定を行なうことができる。そのため、たとえば長方形のテンプレート画像に対して、正方形の探索画像を用いることで、テンプレート画像に無用な物体が含まれてしまうことを抑えつつ、回転量が大きいときに被写体が見切れてしまい探索ができなくなるような事態を避けることができる。
【００４４】
圧縮処理２０４，２１４は、それぞれ、探索画像およびテンプレート画像の振幅成分を圧縮する。圧縮の方法としては、対数化する方法や平方根を算出する方法や、１未満の所定の値ＮでＮ乗する、などの方法が挙げられる。振幅成分を圧縮することで多少のノイズや明暗変化による影響を低減することができる。
【００４５】
極座標変換処理２０６，２１６は、それぞれ、圧縮された、探索画像およびテンプレート画像の振幅成分を極座標成分に変換する。この変換によって、回転角度が２次元座標上の座標点として表現される。
【００４６】
図７は、極座標変換を説明するための図であって、図７（Ａ）が変換前の画像を表わした図、図７（Ｂ)が変換後の画像を表わした図である。図７（Ａ），７（Ｂ）に表わされたように、極座標変換処理２０６，２１６によって、画像の振幅成分はＸ方向が角度ｔｈｅｔａ、Ｙ方向が半径ｒで表わされる極座標成分に変換される。なお、図７では分かりやすさのために実空間での画像の極座標変換を示している。
【００４７】
マッチング処理２０８は、極座標変換処理２０６，２１６からそれぞれ出力される極座標変換された結果の対応付けを行ない、位置のずれ量を求める。極座標成分は一軸が角度ｔｈｅｔａ、他方軸が半径ｒを表わすので、ｔｈｅｔａ側のずれ量が回転量を表わすことになる。
【００４８】
上記対応付け方法としては、位相限定相関法（Phase  Only  Correlation：ＰＯＣ）が挙げられるが、その他、ＳＡＤやＳＳＤといったマッチング手法が採用されてもよい。ＰＯＣ法が採用される場合、マッチング処理２０８は１回の処理で画像サイズと同サイズのＰＯＣ値（類似度）分布を算出してその分布のピーク位置を特定することで、ずれ量を検出する。すなわち、マッチング処理２０８は、極座標変換された結果同士で類似度が最も高くなる位置を特定し、それに対応する回転角度が推定された回転量として出力される。
【００４９】
なお、図２の例では、調整処理２０３，２１３が圧縮処理２０４，２１４の前に行なわれる例が示されている。圧縮処理２０４，２１４よりも以前に調整処理２０３，２１３が行なわれることで、より粒度の細かい振幅成分を基に調整を行なうことができ、精度を向上させることができる。しかしながら、これら処理順は図２に例示された順に限定されない。すなわち、調整処理２０３，２１３は圧縮処理２０４，２１４の後に行なわれてもよいし、極座標変換処理２０６，２１６の後に行なわれてもよい。圧縮処理２０４，２１４の前のデータは照明変化やシェーディングの影響を受けやすいところ、圧縮処理２０４，２１４の後に調整処理２０３，２１３が行なわれることで、そうしたノイズによる変動を抑えることができる。従って、好ましくは、これら処理順は被写体や環境に応じて切り替えられる。
【００５０】
＜機能構成＞
図８は、上記回転量推定を伴う対応点探索動作を行なうための、第１の実施の形態にかかる画像処理装置１００の機能構成の具体例を示すブロック図である。図８の各機能は、画像処理装置１００のＣＰＵ１０２がＲＯＭ１０６や補助記憶装置１１０などに記憶されているプログラムをＲＡＭ１０４に読み出して実行することで、主に、ＣＰＵ１０２上に形成される機能であるが、少なくとも一部が、図１に示されたハードウェア構成によって実現されてもよい。
【００５１】
図８を参照して、補助記憶装置１１０には、探索画像１１４およびテンプレート画像３００を記憶するための記憶領域である画像記憶部１１１が設けられる。
【００５２】
さらに図８を参照して、画像処理装置１００は、その主たる機能構成として、角度推定部１０と、画像読出部１１と、位置推定部１７と、出力部１８とを含む。
【００５３】
画像読出部１１は画像記憶部１１１から探索画像１１４およびテンプレート画像３００を読み出して角度推定部１０に入力する。
【００５４】
角度推定部１０は、振幅成分導出処理２０２，２１２を行なうための振幅成分導出部１２と、調整処理２０３，２１３を行なうための調整部１３と、圧縮処理２０４，２１４を行なうための圧縮部１４と、極座標変換処理２０６，２１６を行なうための変換部１５と、マッチング処理２０８を行なうためのマッチング部１６とを含む。
【００５５】
位置推定部１７は、マッチング部１６でのマッチング処理の結果より探索画像１１４とテンプレート画像３００との間の回転角度を特定し、テンプレート画像３００をその角度回転させるように角度を補正した上で探索画像１１４とテンプレート画像３００とをマッチングすることで、テンプレート画像３００上の探索画像の位置を推定し、位置情報を出力部１８に入力する。
【００５６】
出力部１８は、その位置情報をたとえば表示部１２０に表示させることで出力してもよいし、ネットワークＩ／Ｆ１０８から各種の通信媒体を介して、他の装置に対して出力してもよい。
【００５７】
＜動作フロー＞
図９は、第１の実施の形態にかかる画像処理装置１００での対応点探索動作の流れを表わすフローチャートである。図９のフローチャートに表わされた動作は、画像処理装置１００のＣＰＵ１０２がＲＯＭ１０６や補助記憶装置１１０などに記憶されているプログラムをＲＡＭ１０４に読み出して実行し、図８の各機能を発揮させることによって実現される。
【００５８】
図９を参照して、はじめに、テンプレート画像と探索画像とが取得される（ステップＳ１０１，Ｓ１０３）。テンプレート画像および探索画像の少なくとも一方は、長方形の画像である。次に、それぞれの画像を周波数変換してその振幅成分が導出され（ステップＳ１０５）、少なくとも一方の画像（長方形の画像）について周波数空間上で縦横のサイズを合わせる、上述の調整が行なわれる（ステップＳ１０７）。
【００５９】
その後、探索画像およびテンプレート画像の振幅成分が圧縮され（ステップＳ１０９）、圧縮された探索画像およびテンプレート画像の振幅成分が極座標成分に変換される（ステップＳ１１１）。これら極座標画像がマッチングされることでこれら画像の位置のずれ量が算出される（ステップＳ１１３）。
【００６０】
ｔｈｅｔａ側のずれ量は回転量を表わすものであるため、上記ステップＳ１１３で得られたずれ量からテンプレート画像と探索画像との間の回転量（回転角度）が特定される（ステップＳ１１５）。
【００６１】
回転量が推定されると、一方の画像（たとえば、テンプレート画像）が上記回転角度分、回転補正され（ステップＳ１１７）、探索画像とマッチング処理される（ステップＳ１１９）。マッチング処理によって推定された探索画像上のテンプレート画像の位置を表わす位置情報が、対応点を表わす情報として出力される（ステップＳ１２１）。
【００６２】
［第２の実施の形態］
図１０は、第２の実施の形態に従う回転量推定処理のアルゴリズムを示す模式図である。図１０を参照して、第２の実施の形態に従う回転量推定処理のアルゴリズムは、調整処理２０１，２１１と、振幅成分導出処理２０２，２１２と、圧縮処理２０４，２１４と、極座標変換処理２０６，２１６と、マッチング処理２０８とを含む。
【００６３】
第２の実施の形態に従う回転量推定処理において、調整処理２０１，２１１は、実空間上で画像の縦横のサイズが異なる場合、１画素当たりの周期を変更することなく、単位周波数、すなわち周波数が１となるサイズ（画素数）を縦横で合わせる。すなわち、実空間上で、１画素当たりの周期を変更することなく、短辺のサイズが長辺のサイズに一致するように、画像情報を追加する処理を行なう。そして、振幅成分導出処理２０２，２１２は、調整後の画像を周波数変換し、その振幅成分を導出する。
【００６４】
図１１は、第２の実施の形態に従う調整前後の実空間画像の具体例を表わした図である。図１１に表わされたように、調整処理の方法の一例として、画像の画素数が少ない側（以下、短辺）を多い方（以下、長辺）と同サイズにすることでこれらを合わせる方法が挙げられる。その際、画像を拡大処理すると１画素当たりの周期が変動してしまう。そのため、画像を画像端が反対端に繋がっている周期画像と捉え、画像端に反対端の画像を追記することでサイズを拡大する。この調整により、周波数変換した後の振幅成分は、図４と同様に、周波数空間上で、短辺のサイズが長辺のサイズと一致するように伸長され、縦横のサイズが一致することになる。
【００６５】
なお、調整処理での伸長の方法は、図１１に例示された方法に限定されず、他の方法であってもよい。図１２および図１３は、他の方法での調整前後の実空間画像の具体例を表わした図である。調整処理での伸長の他の例として、図１２に表わされたように、画像を折り返す（反転させた画像を追記する）ことでサイズを拡大する方法も挙げられる。さらに他の例として、図１３に表わされたように、所定の値（たとえば０）で埋める（所定の値（たとえば０）を追記する）ことでサイズを拡大する方法も挙げられる。
【００６６】
振幅成分導出処理２０２，２１２での変換方法の１つであるフーリエ変換では、信号成分は周期関数であるものとして計算される。たとえば図１３（Ｂ）に表わされたような画像端部が所定の値（たとえば０）である画像は信号が急速に変化するため、周波数変換時に本来は存在しない周波数成分が観測されるなど問題がおこることもある。しかし、フーリエ変換前にハニング窓などの窓関数をかけることによりその影響を低減することができるため、調整処理での拡大方法として、図１３に表わされたように所定の値を追記する拡大方法を採用することができる。
【００６７】
＜機能構成＞
第２の実施の形態にかかる画像処理装置１００の機能構成は、図８に示された第１の実施の形態にかかる画像処理装置１００の機能構成と概ね同じものである。第２の実施の形態にかかる画像処理装置１００では、角度推定部１０において、調整部１３は調整処理２０１，２１１を行ない、その結果を振幅成分導出部１２に入力する。振幅成分導出部１２で算出された振幅成分は、圧縮部１４に入力される。
【００６８】
＜動作フロー＞
図１４は、第２の実施の形態にかかる画像処理装置１００での対応点探索動作の流れを表わすフローチャートである。図１４のフローチャートに表わされた動作もまた、画像処理装置１００のＣＰＵ１０２がＲＯＭ１０６や補助記憶装置１１０などに記憶されているプログラムをＲＡＭ１０４に読み出して実行し、図８の各機能を発揮させることによって実現される。
【００６９】
図１４を参照して、第２の実施の形態にかかる画像処理装置１００では、上記ステップＳ１０１〜Ｓ１０３の処理がなされてテンプレート画像と探索画像とが取得されると、少なくとも一方の画像（長方形の画像）について実空間上で上述の調整が行なわれる（ステップＳ１０４）。調整後の画像を周波数変換し、その振幅成分が導出される（ステップＳ１０５）。以降、上記Ｓ１０９以下の第１の実施の形態にかかる画像処理装置１００と同様の処理が行なわれることで、位置情報が出力される。
【００７０】
＜実施の形態の効果＞
本実施の形態にかかる画像処理装置１００では、対応点探索動作の際の回転量推定において、探索画像およびテンプレート画像のうちの少なくとも一方の画像として縦横のサイズが異なる長方形の画像を用い、その画像について、空間周波数の解像度、すなわち空間周波数を算出する際のベースとなるサイズを縦辺と横辺とで同じ値となるよう調整する。これにより、画像を周波数変換した際の振幅成分を用いた回転量推定においてテンプレート画像または探索画像の形状に関わらずにこれら画像間での角度推定が可能となる。
【００７１】
なお、この調整は、周波数空間上で行なわれてもよいし、実空間上で行なわれてもよい。前者の場合、実空間上で行なう場合よりも計算量を少なくすることができる。また、後者の場合、周波数空間上での調整の際の補間よりも高精度の補間を行なうことができるため、精度を向上させることができる。
【００７２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７３】
１０  角度推定部、１１  画像読出部、１２  振幅成分導出部、１３  調整部、１４  圧縮部、１５  変換部、１６  マッチング部、１７  位置推定部、１８  出力部、１００  画像処理装置、１０２  ＣＰＵ、１０４  ＲＡＭ、１０６  ＲＯＭ、１０８  ネットワークＩ／Ｆ、１１０  補助記憶装置、１１１  画像記憶部、１１２  画像処理プログラム、１１４  探索画像、１２０  表示部、１２２  入力部、１２６  メモリーカードＩ／Ｆ、１３０  バス、２０１，２１１，２０３，２１３  調整処理、２０２，２１２  振幅成分導出処理、２０４，２１４  圧縮処理、２０６，２１６  極座標変換処理、２０８  マッチング処理、３００  テンプレート画像。
【要約】
画像処理装置は少なくとも一方が長方形である第１の画像と第２の画像との間の回転量を推定する画像処理装置であって、ＣＰＵ（１０２）に角度推定部（１０）を有し、角度推定部（１０）は、第１の画像と第２の画像とを周波数変換し、それぞれの振幅成分を導出するための振幅成分導出部（１２）と、長方形の画像について、周波数空間上における短辺のサイズが長辺のサイズと一致するように伸長するための調整を行なうための調整部（１３）と、調整された、第１の画像の振幅成分と第２の画像の振幅成分とを極座標変換するための変換部（１５）と、両極座標変換画像の位置のずれ量を算出することで、第１の画像と第２の画像との間の回転量を出力するためのマッチング部（１６）とを含む。【図１】
0005500328.tif 000002
【図２】
0005500328.tif 000003
【図８】
0005500328.tif 000004
【図９】
0005500328.tif 000005
【図１０】
0005500328.tif 000006
【図１４】
0005500328.tif 000007
【図１５】
0005500328.tif 000008
【図３】
0005500328.tif 000009
【図４】
0005500328.tif 000010
【図５】
0005500328.tif 000011
【図６】
0005500328.tif 000012
【図７】
0005500328.tif 000013
【図１１】
0005500328.tif 000014
【図１２】
0005500328.tif 000015
【図１３】
0005500328.tif 000016