(57)【要約】  類似する特徴領域の誤判定が発生しにくい特徴量を算出する。  演算部（１ｂ）は、特徴領域（１１ａ）内の複数の画素ペアのそれぞれに含まれる画素間の輝度差を算出し、輝度差に基づいて、複数の画素ペアにそれぞれ対応するビットを有する、特徴領域（１１ａ）についての局所特徴量（１２ａ）を算出する。この局所特徴量（１２ａ）の算出は、局所特徴量（１２ａ）に含まれる一のビットに対応する画素ペアを基に算出された一の輝度差と、０を挟んで設定された設定範囲（３０）とを比較し、当該一の輝度差が設定範囲（３０）の上限より大きい場合には、当該一のビットの値を１に決定し、当該一の輝度差が設定範囲（３０）の下限より小さい場合には、当該一のビットの値を０に決定し、当該一の輝度差が設定範囲（３０）に含まれる場合には、当該一のビットの値を１と０のうちあらかじめ決められた一方の値に決定する処理を含む。
2017056312.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
画像内の特徴領域に設定された複数の画素ペアのそれぞれに含まれる画素間の輝度差を算出し、
前記輝度差に基づいて、前記複数の画素ペアにそれぞれ対応するビットを有する、前記特徴領域についての局所特徴量を算出する、
処理を実行させ、
前記局所特徴量の算出は、前記輝度差のうち、前記局所特徴量に含まれる一のビットに対応する前記画素ペアを基に算出された一の輝度差と、０を挟んで設定された設定範囲とを比較し、前記一の輝度差が前記設定範囲の上限より大きい場合には、前記一のビットの値を第１の値に決定し、前記一の輝度差が前記設定範囲の下限より小さい場合には、前記一のビットの値を第２の値に決定し、前記一の輝度差が前記設定範囲に含まれる場合には、前記一のビットの値を前記第１の値と前記第２の値のうちあらかじめ決められた一方の値に決定する処理を含む、
画像処理プログラム。
【請求項２】
前記コンピュータに、
前記複数の画素ペアと同じ位置関係を有する複数の他の画素ペアが設定された１以上のサンプル画像を用い、前記複数の他の画素ペアのそれぞれに含まれる画素間の輝度差の分布に基づいて前記設定範囲を設定する、
処理をさらに実行させる請求項１記載の画像処理プログラム。
【請求項３】
前記設定範囲の設定では、前記複数の他の画素ペアのそれぞれに含まれる画素間の輝度差のヒストグラムにおいて、輝度差０を中心とした範囲に含まれる前記画素ペアの数が、前記サンプル画像に含まれる前記画素ペアの総数の所定割合となるような前記範囲を、前記設定範囲に設定する、
請求項２記載の画像処理プログラム。
【請求項４】
前記設定範囲は、前記画素ペアごとに個別に設定され、
前記一の輝度差と前記設定範囲との比較では、前記一のビットに対応する前記画素ペアに対して設定された前記設定範囲が使用される、
請求項１記載の画像処理プログラム。
【請求項５】
前記コンピュータに、
前記局所特徴量と、他の画像に複数設定された他の特徴領域にそれぞれ対応する他の局所特徴量との比較結果に基づいて、前記他の特徴領域の中から前記特徴領域に類似する類似領域を特定する、
処理をさらに実行させる請求項１乃至４のいずれか１項に記載の画像処理プログラム。
【請求項６】
複数の画素ペアが設定された特徴領域を有する画像を記憶する記憶部と、
前記複数の画素ペアのそれぞれに含まれる画素間の輝度差を算出し、前記輝度差に基づいて、前記複数の画素ペアにそれぞれ対応するビットを有する、前記特徴領域についての局所特徴量を算出する演算部と、
を有し、
前記局所特徴量の算出は、前記輝度差のうち、前記局所特徴量に含まれる一のビットに対応する前記画素ペアを基に算出された一の輝度差と、０を挟んで設定された設定範囲とを比較し、前記一の輝度差が前記設定範囲の上限より大きい場合には、前記一のビットの値を第１の値に決定し、前記一の輝度差が前記設定範囲の下限より小さい場合には、前記一のビットの値を第２の値に決定し、前記一の輝度差が前記設定範囲に含まれる場合には、前記一のビットの値を前記第１の値と前記第２の値のうちあらかじめ決められた一方の値に決定する処理を含む、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
近年、様々な分野で画像のマッチング技術が広く利用されている。画像同士のマッチング方法の例として、第１画像の特徴点における局所特徴量と、第２画像の特徴点における局所特徴量とを比較して、第１画像の特徴点に対応する第２画像の特徴点（以下、「対応点」と呼ぶ）を探索する手法が利用される。探索により発見された対応点の集合を統計処理することで、第２画像における第１画像の存在や第１画像の位置を認識できる。【０００３】
また、上記のような対応点の探索に利用される局所特徴量をバイナリコードで表す方法がある。その代表例として、ＢＲＩＥＦ（Binary Robust Independent Elementary Features）がある。ＢＲＩＥＦは、特徴点の周囲に設定された複数の画素ペアのそれぞれについて計算された画素間の輝度差に基づく局所特徴量で表現される。具体的には、輝度差の符号（正負）に対応するビット値の集合が局所特徴量として利用される。このように局所特徴量をバイナリコードで表す方法では、ハミング距離による高速な計算によって特徴点同士の類似度を算出できるというメリットがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−３６９０６号公報
【非特許文献】
【０００５】
【非特許文献１】M. Calonder, V. Lepetit, C. Strecha, and P. Fua., "BRIEF: Binary Robust Independent Elementary Features", In Proceedings of the European Conference on Computer Vision (ECCV), 2010
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、特徴量を示すバイナリコードの各ビットを画素ペアの輝度差の符号に基づいて算出する方法では、次のような問題がある。例えば画像内の背景領域や単色の壁など、画像内の平坦な領域に画素ペアが存在する場合、画素間の輝度値は互いに近い値になり、輝度差は０に近くなる。このような平坦な領域の画素ペアについての輝度差の符号は、その領域が同じ物体の同じ位置を写した領域であるとしても、撮影時の光源の状態や、ノイズ、写された位置の微妙なズレなどによって反転しやすい。そのため、このような領域から算出された局所特徴量を用いて第１画像の特徴点に対応する第２画像の対応点を探索すると、正しい対応点の探索に失敗する可能性が高くなる。このような探索の失敗は、画像認識精度を低下させる原因となる。【０００７】
１つの側面では、本発明は、類似する特徴領域の誤判定が発生しにくい特徴量を算出可能な画像処理プログラムおよび画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、コンピュータに次のような処理を実行させる画像処理プログラムが提供される。この処理は、画像内の特徴領域に設定された複数の画素ペアのそれぞれに含まれる画素間の輝度差を算出し、輝度差に基づいて、複数の画素ペアにそれぞれ対応するビットを有する、特徴領域についての局所特徴量を算出する、処理を含む。また、局所特徴量の算出は、輝度差のうち、局所特徴量に含まれる一のビットに対応する画素ペアを基に算出された一の輝度差と、０を挟んで設定された設定範囲とを比較し、一の輝度差が設定範囲の上限より大きい場合には、一のビットの値を第１の値に決定し、一の輝度差が設定範囲の下限より小さい場合には、一のビットの値を第２の値に決定し、一の輝度差が設定範囲に含まれる場合には、一のビットの値を第１の値と第２の値のうちあらかじめ決められた一方の値に決定する処理を含む。【０００９】
また、１つの案では、上記の画像処理プログラムに基づく処理と同様の処理を実行する画像処理装置が提供される。
【発明の効果】
【００１０】
１つの側面では、類似する特徴領域の誤判定が発生しにくい特徴量を算出できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る画像処理装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係る画像処理装置のハードウェア構成例を示す図である。
【図３】画像処理装置が備える処理機能の構成例を示すブロック図である。
【図４】画素ペア管理テーブルの構成例を示す図である。
【図５】局所特徴量を算出する処理の例を示す図である。
【図６】特徴量管理テーブルの構成例を示す図である。
【図７】投票処理を説明するための図である。
【図８】投票結果に基づく類似画像の判定処理について説明するための図である。
【図９】対応点の探索例を示す図である。
【図１０】特徴領域での画素ペアの例を示す図である。
【図１１】画素ペアの輝度差のヒストグラムの例を示す図である。
【図１２】ビット値決定のための閾値の設定例を示す図である。
【図１３】閾値を動的に設定する例を示す図である。
【図１４】特徴量算出処理の例を示すフローチャート（その１）である。
【図１５】特徴量算出処理の例を示すフローチャート（その２）である。
【図１６】画像認識処理の例を示すフローチャートである。
【図１７】画素ペア管理テーブルの構成例を示す図である。
【図１８】画像処理装置による特徴量算出の処理例を示すフローチャート（その１）である。
【図１９】画像処理装置による特徴量算出の処理例を示すフローチャート（その２）である。
【図２０】第３の実施の形態に係る画像処理システムの構成例を示す図である。
【図２１】端末装置のハードウェア構成例を示す図である。
【図２２】端末装置およびサーバ装置の処理機能の構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係る画像処理装置の構成例および処理例を示す図である。図１に示す画像処理装置１は、記憶部１ａおよび演算部１ｂを有する。記憶部１ａは、例えば、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）などの記憶装置として実現される。演算部１ｂは、例えば、プロセッサとして実現される。
【００１３】
記憶部１ａは、特徴領域を有する画像を記憶する。通常、画像は複数の特徴領域を有する。図１では例として、記憶部１ａは、画像１０，２０を記憶している。特徴領域には、複数の画素ペアが設定されている。例えば、画像１０内の特徴領域１１ａには、画素ペア２１ａ，２２ａが設定されており、画像１０内の特徴領域１１ｂには、画素ペア２１ｂ，２２ｂが設定されている。
【００１４】
なお、複数の画素ペアの位置や数は、各特徴領域で共通とされる。例えば、特徴領域１１ａにおける画素ペア２１ａの各画素の位置と、特徴領域１１ｂにおける画素ペア２１ｂの各画素の位置は、同じである。また、特徴領域１１ａにおける画素ペア２２ａの各画素の位置と、特徴領域１１ｂにおける画素ペア２２ｂの各画素の位置も、同じである。
【００１５】
演算部１ｂは、記憶部１ａに記憶された画像の特徴を示す特徴情報を算出する。特徴情報は、画像内の特徴領域ごとに算出された局所特徴量の集合である。特徴情報は、例えば、特徴領域ごとの局所特徴量を保持するテーブル情報として実現される。図１の例では、演算部１ｂは、画像１０についての特徴情報１０ａと、画像２０についての特徴情報２０ａとを算出する。特徴情報１０ａには、少なくとも、特徴領域１１ａについての局所特徴量１２ａと、特徴領域１１ｂについての局所特徴量１２ｂとが含まれる。
【００１６】
特徴情報の算出処理は、輝度差算出処理（ステップＳ１）と、局所特徴量算出処理（ステップＳ２）とを含む。輝度差算出処理では、画像内の特徴領域に含まれる各画素ペアについて、画素間の輝度差が算出される。局所特徴量算出処理では、特徴領域ごとの局所特徴量が算出される。局所特徴量は、特徴領域内の複数の画素ペアにそれぞれ対応するビットを有するビット列として表される。なお、このようなビット列として表すことが可能な特徴量としては、例えば、ＢＲＩＥＦ、ＯＲＢ（Oriented fast and Rotated BRIEF）、ＢＲＩＳＫ（Binary Robust Invariant Scalable Keypoints）などがある。
【００１７】
演算部１ｂは、局所特徴量の各ビット値を、対応する画素ペアの輝度差と、設定範囲３０との比較に基づいて決定する。設定範囲３０は、輝度値の範囲であり、輝度値“０”を挟んで設定される。例えば、図１の例のように、設定範囲３０は閾値ｔｈによって規定され、−ｔｈを下限とし、ｔｈを上限とする。
【００１８】
演算部１ｂは、次のような条件にしたがってビット値を０または１に決定する。演算部１ｂは、画素ペアの輝度差が設定範囲３０の上限より大きい場合には、この画素ペアに対応するビット値を第１の値（図１の例では１）に決定する。演算部１ｂは、画素ペアの輝度差が設定範囲３０の下限より小さい場合には、この画素ペアに対応するビット値を第２の値（図１の例では０）に決定する。演算部１ｂは、画素ペアの輝度差が設定範囲３０に含まれる場合には、この画素ペアに対応するビット値を第１の値と第２の値のうちあらかじめ決められた一方の値（図１の例では０）に決定する。
【００１９】
このようにして、画像１０内の各特徴領域に対応する局所特徴量が算出され、それらの局所特徴量を含む特徴情報１０ａが生成される。また、画像２０内の各特徴領域に対応する局所特徴量が算出され、それらの局所特徴量を含む特徴情報２０ａが生成される。
【００２０】
この後、演算部１ｂは、特徴情報１０ａ，２０ａを用いて、画像認識処理を実行する（ステップＳ３）。画像認識処理は、少なくとも、画像２０内の特徴領域の中から、画像１０内の各特徴領域に類似する類似領域を特定する処理を含む。この特定処理では、各特徴領域についての局所特徴量同士が比較されることで、各特徴領域の類似度が算出される。各特徴領域の類似度は、例えば、対応する局所特徴量同士のハミング距離の計算によって行われる。演算部１ｂは、画像１０内の各特徴領域と画像２０内の各特徴領域との類似度の算出結果に基づいて、例えば、画像２０の中に画像１０と類似する領域が含まれているか否かを判定することができる。なお、以上の画像認識処理は、画像処理装置１とは別の装置において実行されてもよい。
【００２１】
ここで、局所特徴量のビット値を決定する方法としては、対応する画素ペアの輝度差の符号（正負）に基づいて決定する方法が考えられる。例えば、輝度差が０より大きい場合、ビット値は１とされ、輝度差が０以下の場合、ビット値は０とされる。しかし、この方法では、画素ペアが平坦な画像領域に配置されている場合に、光源やノイズの状態のわずかな変化によってビット値が変化しやすくなり、そのことが特徴領域間の類似性の判定精度を悪化させる原因になるという問題がある。
【００２２】
例えば、図１の例では、特徴領域１１ａは平坦な画像領域であるのに対して、特徴領域１１ｂは平坦でない、コントラストの高い画像領域である。この場合、特徴領域１１ａに含まれる画素ペアの輝度値は０に近くなる。このため、光源やノイズのわずかな変化によって、輝度差の符号が正から負、あるいは負から正に容易に変化してしまう。このようにして算出された局所特徴量同士を比較して類似度を判定した場合、対応する特徴領域同士が本来は類似するものであるとしても、算出された類似度が低くなる可能性があり、類似領域の判定を誤ってしまうことがある。
【００２３】
これに対して、本実施の形態では、演算部１ｂは、画素ペアの輝度差が設定範囲３０に含まれる場合には、この画素ペアに対応するビット値を０または１のうちあらかじめ決められた一方の値に決定する。これにより、輝度差が０に近い画素ペアについてのビット値はどの画素ペアについても０または１のどちらかに固定され、光源やノイズの変化によって変動しなくなる。したがって、類似領域の誤判定が発生しにくい局所特徴量を算出することができる。
【００２４】
図１では、例えば、特徴領域１１ｂ内の画素ペア２２ｂの輝度差は、設定範囲３０に含まれておらず、輝度値“０”から遠いと推定される。この場合、画素ペア２２ｂに対応するビット値は、輝度差の符号に応じて決定されても特に問題にならない。図１の例では、輝度差が設定範囲３０の上限より大きいため、対応するビット値は１に決定される。
【００２５】
一方、例えば、特徴領域１１ａ内の画素ペア２２ａの輝度差は、設定範囲３０に含まれており、輝度値“０”に近いと推定される。この場合、画素ペア２２ａに対応するビット値は、一方の値（図１では０）に固定される。したがって、類似領域の誤判定が発生しにくい局所特徴量１２ａを算出することができる。
【００２６】
［第２の実施の形態］
次に、第２の実施の形態として、複数の撮像画像の中からキー画像が選択され、キー画像以外の撮像画像からキー画像と類似するシーンの撮像画像を検索する画像処理装置について説明する。なお、第２の実施の形態では、画像の特徴量としてＢＲＩＥＦをベースとした特徴量を用いるが、例えば、ＯＲＢ、ＢＲＩＳＫなど、特徴点付近に設定した画素ペア間の輝度差を２値化することで得られる他の種類のバイナリ特徴量をベースとすることもできる。
【００２７】
図２は、第２の実施の形態に係る画像処理装置のハードウェア構成例を示す図である。第２の実施の形態に係る画像処理装置１００は、例えば、図２に示すようなコンピュータとして実現される。
【００２８】
画像処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
プロセッサ１０１には、バス１０８を介して、ＲＡＭ１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、画像処理装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３０】
バス１０８に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６および通信インタフェース１０７がある。
【００３１】
ＨＤＤ１０３は、画像処理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００３２】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａに表示させる。表示装置としては、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどがある。
【００３３】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３４】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３５】
通信インタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、画像処理装置１００の処理機能を実現することができる。
【００３６】
上記の画像処理装置１００の記憶装置（例えば、ＨＤＤ１０３）には、複数の撮像画像のデータが記憶される。これらの撮像画像は、撮像装置によって撮像された画像である。これらの撮像画像のデータは、例えば、可搬型記録媒体１０６ａを用いて画像処理装置１００の記憶装置に格納されてもよいし、あるいは、ネットワーク１０７ａを介して画像処理装置１００の記憶装置に格納されてもよい。
【００３７】
画像処理装置１００では、例えば、写真管理ソフトウェアが実行されることで次のような処理が行われる。ユーザの入力操作により、記憶装置内の複数の撮像画像からキー画像が選択される。すると、画像処理装置１００は、記憶装置内の複数の撮像画像のうちキー画像を除く撮像画像（以下、「対象画像」と呼ぶ）から、キー画像と類似するシーンの撮像画像を抽出する。例えば、キー画像に含まれる対象物と同じ対象物が写っていると推定される対象画像が、キー画像と類似するシーンの撮像画像として抽出される。これにより、ユーザは、例えば、素材として必要な画像を画像処理装置１００内から検索したり、同じイベントの開催時の写真を集めて自動的に整理することができる。したがって、ユーザに利便性や娯楽性を提供することができる。
【００３８】
このような画像処理装置１００は、例えば、パーソナルコンピュータ、スマートフォンなどのユーザによって操作される端末装置として実現される。また、画像処理装置１００は、ネットワーク上のサーバ装置として実現されてもよい。この場合、撮像画像のデータは、例えば、ユーザの端末装置からネットワークを介して画像処理装置１００にアップロードされる。
【００３９】
なお、画像処理装置１００の画像検索機能は、上記のような撮像画像の管理の他、例えば、プレゼンテーション資料などの文書コンテンツの管理に利用することもできる。例えば、画像処理装置１００の記憶装置に複数の文書のデータが記憶され、これらの中からキー文書が選択される。画像処理装置１００は、例えば、文書表示時の見た目がキー文書と似ている文を含む文書をその他の文書の中から抽出することもできるし、あるいは、キー文書と同じ画像や表、グラフなどを含む文書をその他の文書の中から抽出することもできる。これにより、文書を探すための作業時間を低減できる。また、過去の文書資産の再利用が推進され、業務の効率化を図ることもできる。
【００４０】
また、画像処理装置１００の画像検索機能は、医療画像管理システムの付加機能として利用することもできる。例えば、複数の時期に撮影されたＣＴ（Computed Tomography）画像やＭＲＩ（Magnetic Resonance Imaging）画像上の患部を自動的に位置合わせして、患部の画像の経時変化を判断するために利用できる。
【００４１】
図３は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置１００は、記憶部１１０、画像取得部１２１、特徴量算出部１２２および画像認識部１２３を有する。
【００４２】
記憶部１１０は、画像処理装置１００が備える記憶装置（例えば、ＲＡＭ１０２またはＨＤＤ１０３）の記憶領域として実装される。記憶部１１０には、画像データ１１１、画素ペア管理テーブル１１２および特徴量管理テーブル１１３が記憶される。
【００４３】
画像データ１１１は、撮像画像によって撮像された撮像画像のデータを示す。記憶部１１０には、画像データ１１１が複数記憶される。画素ペア管理テーブル１１２には、局所特徴量を算出するために利用される画素ペアの座標が登録される。特徴量管理テーブル１１３は、撮像画像ごとに用意される。特徴量管理テーブル１１３には、撮像画像内の特徴点ごとの特徴量（局所特徴量）が登録される。
【００４４】
画像取得部１２１、特徴量算出部１２２および画像認識部１２３の処理は、例えば、所定のプログラムがプロセッサ１０１に実行されることによって実現される。
画像取得部１２１は、撮像画像の画像データ１１１を取得して記憶部１１０に格納する。例えば、画像取得部１２１は、撮像画像の画像データ１１１を可搬型記録媒体１０６ａを介して、あるいはネットワーク１０７ａを介して取得する。
【００４５】
特徴量算出部１２２は、画像データ１１１および画素ペア管理テーブル１１２を参照しながら、撮像画像内の各特徴点についての局所特徴量を算出し、算出した局所特徴量を特徴量管理テーブル１１３に登録する。
【００４６】
画像認識部１２３は、特徴量管理テーブル１１３を参照しながら、キー画像の選択操作を受け付け、選択されたキー画像以外の撮像画像の中からキー画像と類似する類似画像を検索する。
【００４７】
＜特徴量算出処理＞
次に、特徴量算出部１２２による特徴量算出処理について詳しく説明する。
特徴量算出部１２２は、撮像画像上に特徴点を設定する。特徴点は、各撮像画像で共通に設定される。本実施の形態では例として、撮像画像上に等間隔（例えば、２４画素間隔）で特徴点を設定するＤｅｎｓｅ  Ｓａｍｐｌｉｎｇを用いる。そして、特徴量算出部１２２は、各撮像画像の各特徴点についての局所特徴量を算出する。
【００４８】
ＢＲＩＥＦは、各特徴点を中心とする一定領域（以下、「特徴領域」と呼ぶ）ごとの局所特徴量として算出される。特徴領域は、例えば、特徴点を中心とする４８画素四方の矩形領域とされる。また、特徴領域の内部には、複数の画素ペアがあらかじめ設定される。ある特徴点の局所特徴量は、対応する特徴領域内の各画素ペアの輝度差に基づく符号を組み合わせて構成されたビット列として算出される。
【００４９】
図４は、画素ペア管理テーブルの構成例を示す図である。画素ペアを構成する各画素の座標は、画素ペア管理テーブル１１２にあらかじめ登録されている。図４に示すように、画素ペア管理テーブル１１２には、画素ペアを識別するためのＩＤと、画素ペアを構成する第１画素および第２画素の各座標とが登録される。画素ペアは、例えば、ランダムに設定される。画素ペア管理テーブル１１２に登録された画素ペアの情報は、すべての特徴領域に対して共通に適用される。
【００５０】
図５は、局所特徴量を算出する処理の例を示す図である。図５では、撮像画像２００における各特徴点の局所特徴量を、この撮像画像２００に対応する特徴量管理テーブル１１３に登録する処理の例を示す。
【００５１】
例えば、撮像画像２００に設定された特徴点２０１の局所特徴量は、次のようにして算出される。特徴量算出部１２２は、特徴点２０１に対応する特徴領域２０２について、各画素ペアの輝度差を計算する（ステップＳ１１）。画素ペアの輝度差は、例えば、画素ペア管理テーブル１１２における第１画素の輝度値から第２画素の輝度値を減算することで得られる。
【００５２】
特徴量算出部１２２は、算出された輝度差の符号に応じたビット値を組み合わせることでビット列２０３を生成する（ステップＳ１２）。特徴量算出部１２２は、画素ペア順にビット値を決定してビット列に付加する。例えば、Ｍ組の画素ペアが設定されている場合、Ｍビットのビット列が生成される。特徴量算出部１２２は、生成されたビット列２０３を、特徴点２０１の局所特徴量として特徴量管理テーブル１１３に登録する（ステップＳ１３）。
【００５３】
ここで、ステップＳ１２でのビット列２０３におけるビット値の決定方法としては、例えば、輝度差が正値の場合にはビット値を“１”（または“０”）とし、輝度差が０以下の場合にはビット値を“０”（または“１”）とする方法が考えられる。しかし、この方法では、画像内の平坦な領域では、輝度差が０に近いため、撮像条件の微妙な違いによってビット値が容易に変化し、そのことが画像認識精度の劣化につながるという問題がある。そこで、本実施の形態では、ビット値を“０”にするか“１”にするかを決定するための輝度差の境界を０からずらすことで、画像認識精度が向上するような局所特徴量を算出可能にする。なお、このビット値の決定方法については後に詳しく述べる。
【００５４】
図６は、特徴量管理テーブルの構成例を示す図である。前述のように、図６に示す特徴量管理テーブル１１３は、撮像画像ごとに用意される。
特徴量管理テーブル１１３には、撮像画像内の特徴点ごとにレコードが登録される。各レコードには、ＩＤ、特徴点座標および局所特徴量が登録される。ＩＤは、撮像画像内の特徴点を識別するための識別番号を示す。特徴点座標は、特徴点の座標を示す。局所特徴量の項目には、特徴点の局所特徴量を示すビット列が登録される。
【００５５】
＜画像認識処理＞
次に、画像認識部１２３による画像認識処理について詳しく説明する。
画像認識部１２３は、ユーザの操作入力に応じて撮像画像からキー画像を選択する。そして、画像認識部１２３は、選択したキー画像と他の撮像画像（対象画像）とを比較し、対象画像の中からキー画像と類似する画像を探索する。
【００５６】
キー画像と対象画像との比較では、画像間で類似する特徴点が探索される。この処理では、画像認識部１２３は、キー画像から選択した特徴点の局所特徴量と、対象画像の各特徴点の局所特徴量とのハミング距離を計算し、対象画像の特徴点のうちハミング距離が最小の特徴点を、類似度が最も高い対応点として抽出する。
【００５７】
次に、画像認識部１２３は、キー画像上の特徴点ごとに次のような処理を実行する。画像認識部１２３は、キー画像上の特徴点と対象画像上の対応点とが一致するように対象画像にキー画像を重ねた場合の、対象画像におけるキー画像の中心位置を推定する。画像認識部１２３は、対象画像の各画素のうち、推定された中心位置の画素に対して投票する。画像認識部１２３は、対象画像の画素のうち、投票数が最大の画素を判別し、判別した画素の投票数が所定の閾値を超えている場合に、対象画像をキー画像に類似する画像と判定する。
【００５８】
ここで、図７は、投票処理を説明するための図である。図７では、キー画像２１０の特徴点２１１と類似する対象画像２２０の対応点を探索する処理の例を示す。画像認識部１２３は、例えば、キー画像２１０の特徴点２１１の局所特徴量と、対象画像２２０の各特徴点の局所特徴量とのハミング距離を計算することで、対応点を探索する（ステップＳ２１）。
【００５９】
キー画像２１０の特徴点２１１に対する対応点として、対象画像２２０の特徴点２２１が抽出されたものとする。このとき、画像認識部１２３は、特徴点２１１と特徴点２２１（対応点）とが一致するように対象画像２２０にキー画像２１０を重ねた場合の、対象画像２２０におけるキー画像２１０の中心位置２１２を推定する（ステップＳ２２）。
【００６０】
ここで、対象画像の横幅および高さの画素数をそれぞれｗｉ，ｈｉとし、キー画像の横幅および高さの画素数をそれぞれｗｒ，ｈｒとする。キー画像の特徴点（ｘｒ，ｙｒ）に対応する対象画像の対応点として対象画像の特徴点（ｘｉ，ｙｉ）が探索されたとすると、対象画像におけるキー画像の中心点の位置（ｘｖ，ｙｖ）は、次の式（１−１），（１−２）を用いて算出される。
ｘｖ＝ｘｉ・ｘｒ＋（ｗｒ／２）      ・・・（１−１）
ｙｖ＝ｙｉ・ｙｒ＋（ｈｒ／２）      ・・・（１−２）
図７の特徴点２１１と特徴点２２１との対応関係に基づいて対象画像２２０におけるキー画像２１０の中心位置として画素２２２が推定されたとすると、画像認識部１２３は、対象画像２２０の画素のうち、画素２２２に対して投票する。この投票処理には、例えば、対象画像２２０の各画素に対応するエントリを有する投票マップ１１４が用いられる。投票マップ１１４の各エントリの初期値は０とされる。図７の処理では、投票マップ１１４における画素２２２に対応するエントリに１が加算される（ステップＳ２３）。
【００６１】
なお、実際には、画像認識部１２３は、例えば、画素２２２を中心とした所定領域（例えば、１０画素四方の矩形領域）に含まれる各画素に投票してもよい。これにより、キー画像２１０と対象画像２２０との違いに対してある程度ロバストな認識処理を行うことが可能になる。
【００６２】
図８は、投票結果に基づく類似画像の判定処理について説明するための図である。図８に示す投票マップ１１４ａは、図７に示すような処理がキー画像２１０の各特徴点について実行された後の投票マップ１１４の状態を示す。画像認識部１２３は、投票マップ１１４ａにおける各画素についての投票数のうちの最大値を抽出し、この最大値が所定の閾値を超えているかを判定する。
【００６３】
ここで、キー画像２１０と対象画像２２０とに同じ対象物が写っている場合、キー画像２１０の特徴点と対象画像２２０の対応点との位置関係が、キー画像の特徴点間で同じ場合が多い。この場合、投票マップ１１４ａにおける同じ画素に対応するエントリに投票数が集中する。一方、キー画像２１０と対象画像２２０との関連性が低い場合、キー画像２１０の特徴点と対象画像２２０の対応点との位置関係が、キー画像２１０の特徴点間で異なる場合が多い。この場合、投票マップ１１４ａにおいて投票数が分散する。
【００６４】
したがって、投票マップ１１４ａにおける投票数の最大値が閾値を超えた場合には、投票数が同じ画素に集中していると推定されるため、キー画像２１０と対象画像２２０とに同じ対象物が写っている可能性が高いと判断できる。このことから、画像認識部１２３は、投票数の最大値が閾値を超えた場合、対象画像２２０をキー画像２１０に類似する画像であると判定する。
【００６５】
なお、実際には、対象画像２２０における特徴点の数によって投票数の最大値が影響を受けることから、例えば、対象画像２２０における特徴点の数で投票数を除算するなどの正規化処理が行われた上で、閾値との比較が行われることが望ましい。
【００６６】
＜バイナリ特徴量算出の詳細＞
上記のように、局所特徴量を示すビット列におけるビット値の決定方法としては、輝度差が正値の場合にはビット値を“１”とし、輝度差が０以下の場合にはビット値を“０”とする方法が考えられる。しかし、この方法で算出されたバイナリ特徴量を用いてキー画像の特徴点に類似する対象画像の対応点を探索すると、対応点を誤認識する場合があるという問題がある。この問題点について、図９を用いて説明する。
【００６７】
図９は、対応点の探索例を示す図である。図９に示す画像２３０，２４０には、同じ建物２５０が写っているが、建物２５０の位置や方向などの写り方が異なっている。また、画像２３０の特徴領域２３１と画像２４０の特徴領域２４１には、建物２５０の外面のうち窓が存在する部分が写っている。一方、画像２３０の特徴領域２３２と画像２４０の特徴領域２４２には、建物２５０における平坦な壁面と背景である空との境界部分が写っている。このため、特徴領域２３２，２４２は、特徴領域２３１，２４１と比較して、平坦な部分が占める面積が広い平坦な画像領域となっている。
【００６８】
ここで、特徴領域２３１と特徴領域２４１とは類似度が高く、特徴領域２４１は特徴領域２３１に対する正しい対応領域であるとする。また、特徴領域２３２と特徴領域２４２とは類似度が高く、特徴領域２４２は特徴領域２３２に対する正しい対応領域であるとする。
【００６９】
特徴領域２３１，２４１には、輝度差が大きい画素ペアが多く含まれる。この場合、光源の状態やノイズの影響によって画素ペアの輝度差の符号が変化する可能性は低い。このため、画素ペアの輝度差の符号に応じて局所特徴量のビット値を決定した場合、撮影条件が変化したとしても画素ペアに対応するビット値は安定的に０または１のどちらかに決定される可能性が高い。その結果、特徴領域２３１に類似する対応領域として特徴領域２４１が正しく認識される可能性が高い。
【００７０】
一方、特徴領域２３２，２４２は平坦なので、これらの領域には、各画素の輝度差が０に近い画素ペアが多く含まれる。この場合、光源の状態やノイズのわずかな違いによって、画素ペアの輝度差の符号が変化しやすくなる。このため、画素ペアの輝度差の符号に応じて局所特徴量のビット値を決定する方法では、撮影条件のわずかな違いによって画素ペアに対応するビット値が変化しやすく、局所特徴量の算出値が不安定になる。その結果、特徴領域２３２に類似する対応領域として特徴領域２４２が正しく認識されない可能性が高くなり、画像認識精度が低下する。
【００７１】
図１０は、特徴領域での画素ペアの例を示す図である。この図１０では、図９に示した画像２３０の特徴領域２３２および画像２４０の特徴領域２４２における画素ペアの設定パターンの例を示す。なお、図１０における特徴領域２３２，２４２において、網掛け部分は図９の建物２５０の壁面を示し、それ以外の部分は背景（空）を示す。建物２３０の壁面の輝度より背景の輝度の方が高く、これらの間にはある程度大きな差があるものとする。
【００７２】
設定パターン１では、画素Ｐ１が背景に設定され、画素Ｐ２が壁面に設定されている。この場合、例えば、撮影状況の違いによって光源やノイズの状態が変化したとしても、画素Ｐ１の輝度値ｐ１と画素Ｐ２の輝度値ｐ２との差は常に正になる。このため、例えば、輝度差の符号が正の場合にビット値を“１”に決定した場合、ビット値は“１”のまま変動しない可能性が高い。したがって、バイナリ特徴量として安定的な数値が算出される。
【００７３】
一方、設定パターン２では、画素Ｐ１，Ｐ２ともに背景に設定されている。この場合、画素Ｐ１の輝度値ｐ１と画素Ｐ２の輝度値ｐ２との差は０に近い。このため、撮影状況の違いによって光源やノイズの状態が変化した場合に、輝度差（ｐ１−ｐ２）の符号が変化しやすい。したがって、輝度差の符号が正の場合にビット値を“１”に決定する方法では、画素Ｐ１，Ｐ２のビット値は０にも１にもなる可能性があり、その結果、バイナリ特徴量の算出値が不安定になる。
【００７４】
設定パターン３では、画素Ｐ１，Ｐ２ともに壁面に設定されている。この場合も、画素Ｐ１の輝度値ｐ１と画素Ｐ２の輝度値ｐ２との差は０に近い。したがって、設定パターン２と同様に、バイナリ特徴量の算出値が不安定になる。
【００７５】
平坦な領域がその多くを占めている特徴領域では、設定パターン１のように輝度差が安定的に正または負になるような画素ペアより、設定パターン２，３のように輝度差の符号が変化しやすい画素ペアが多くなる。そのため、このような特徴領域から算出されたバイナリ特徴量は、撮影状況の違いに対して変化しやすく、不安定であり、このことが画像認識部１２３による画像認識精度を劣化させる原因になる。
【００７６】
図１１は、画素ペアの輝度差のヒストグラムの例を示す図である。この図１１は、多数の撮像画像から算出された画素ペアの輝度差の分布を示している。この図１１の例のように、一般的な写真やビジネス文書画像、ＣＴ画像から画素ペアの輝度差を算出すると、輝度差の分布は０付近に集中する傾向がある。換言すると、一般的に、画像からバイナリ特徴量を算出すると、輝度差が０に近い画素ペアが多数出現する傾向にある。このため、画像認識処理の精度劣化に与える影響は大きい。
【００７７】
これに対して、本実施の形態では、特徴量算出部１２２は、ビット値を“０”にするか“１”にするかを決定するための輝度差の境界（閾値）を０からずらす。これにより、撮影状況の変化に対して、輝度差が０に近い画素ペアについてのビット値を“０”または“１”のどちらかから変化しにくくする。
【００７８】
図１２は、ビット値決定のための閾値の設定例を示す図である。
図１２において、ビット値決定法１は比較例であり、輝度差が０より大きい場合にビット値を“１”にし、輝度差が０以下の場合にビット値を“０”にする方法である。
【００７９】
これに対して、ビット値決定法２は、本実施の形態で採用される方法である。このビット値決定法２では、０より大きく輝度値の最大値（図１２では２５５）より小さい閾値ｄが設定される。特徴量算出部１２２は、例えば、輝度差が閾値ｄより大きい場合にはビット値を“１”にし、輝度差が閾値ｄ以下の場合にはビット値を“０”にする。この方法によれば、輝度差が０に近く、画像内の平坦な領域に設定された可能性の高い画素ペアについてのビット値が、“０”に固定される。これにより、撮影状況が変化したとしても、平坦な領域の画素ペアについてのビット値は安定的に同じ値をとるようになる。その結果、類似する特徴点同士の探索精度が向上し、それに伴って画像認識精度が向上する。
【００８０】
なお、特徴量算出部１２２は、図１２の例の他、例えば、輝度差が−ｄ以上の場合にビット値を“１”にし、輝度差が−ｄより小さい場合にビット値を“０”にしてもよい。また、特徴量算出部１２２は、輝度差が−ｄ以上ｄ以下の範囲Ｒに含まれる場合には、ビット値を“０”でなく“１”にしてもよい。
【００８１】
換言すると、特徴量算出部１２２は、輝度差が−ｄ以上ｄ以下の範囲Ｒに含まれる場合には、ビット値を“１”または“０”に固定し、輝度差が範囲Ｒに含まれない場合には、ビット値決定法１を用いてビット値を決定する。
【００８２】
また、閾値ｄとしては、あらかじめ固定的な値が設定されていてもよい。あるいは、次の図１３に示す例のように、閾値ｄは、撮像画像から得られた各画素ペアの輝度差に関する統計情報に基づいて動的に設定されてもよい。
【００８３】
図１３は、閾値を動的に設定する例を示す図である。この図１３では、図１１に示した輝度差のヒストグラムに基づいて閾値ｄを設定する例を示す。
特徴量算出部１２２は、例えば、輝度差のヒストグラムから、一定割合（例えば５０％）の画素ペアが含まれる、輝度差０を中心とした範囲を抽出する。特徴量算出部１２２は、閾値ｄとして、抽出した範囲の正側の境界の輝度値を設定する。すなわち、閾値ｄは、抽出された範囲の幅が２ｄとなるように設定される。
【００８４】
このような方法により、画像認識の対象とする撮像画像の状況に応じて、閾値ｄを適切に設定することができる。
また、他の方法の例として、特徴量算出部１２２は、図１３のヒストグラムに所定の度数閾値を設定し、度数（画素ペア数）が度数閾値以上となる、輝度差０を中心とした範囲を抽出し、抽出した範囲に基づいて上記と同様に閾値ｄを設定してもよい。
【００８５】
なお、ヒストグラムに登録する輝度差の算出対象となる撮像画像（サンプル画像）は、記憶部１１０に記憶されたすべての画像データ１１１であってもよいし、それらの中の一部であってもよい。また、サンプル画像は、記憶部１１０に記憶された画像データ１１１とは別に専用に用意された画像であってもよい。
【００８６】
また、上記のような輝度差に関する統計情報に基づいて閾値ｄを設定する方法は、閾値ｄの初期設定のために用いられてもよい。この場合、閾値ｄが一旦設定された後は、例えば撮像画像が追加された場合でも、最初に設定された閾値ｄを用いてその撮像画像から特徴量が算出される。また、画像認識の対象とする撮像画像が更新されるのに伴って、一定期間ごとに、更新された撮像画像を用いて閾値ｄが再計算されてもよい。
【００８７】
＜フローチャート＞
次に、画像処理装置１００の処理についてフローチャートを用いて説明する。
図１４，図１５は、特徴量算出処理の例を示すフローチャートである。
【００８８】
［ステップＳ５１］特徴量算出部１２２は、各撮像画像上に複数の特徴点を設定する。例えば、撮像画像上に等間隔（例えば、２４画素間隔）で特徴点を設定するＤｅｎｓｅ  Ｓａｍｐｌｉｎｇが用いられる。特徴量算出部１２２は、各撮像画像に対応する特徴量管理テーブル１１３に、設定した各特徴点についてのレコードを作成し、作成した各レコードにＩＤおよび特徴点座標を登録する。
【００８９】
［ステップＳ５２］特徴量算出部１２２は、撮像画像を１つ選択する。
［ステップＳ５３］特徴量算出部１２２は、ステップＳ５２で選択した撮像画像から特徴点を１つ選択する。
【００９０】
［ステップＳ５４］特徴量算出部１２２は、画素ペア管理テーブル１１２から画素ペアを１つ選択する。
［ステップＳ５５］特徴量算出部１２２は、ステップＳ５３で選択した特徴点を中心とした一定範囲の特徴領域から、ステップＳ５４で選択した画素ペアに対応する２つの画素を選択し、選択した各画素間の輝度差を計算する。輝度差は、画素ペアを構成する画素のうち、第１画素の輝度値から第２画素の輝度値を減算することで算出される。
【００９１】
［ステップＳ５６］特徴量算出部１２２は、画素ペア管理テーブル１１２に登録されたすべての画素ペアについて処理済みかを判定する。処理済みでない画素ペアがある場合、ステップＳ５４に戻り、他の画素ペアが選択される。一方、すべての画素ペアについて処理済みの場合、ステップＳ５７の処理が実行される。
【００９２】
［ステップＳ５７］特徴量算出部１２２は、ステップＳ５２で選択した撮像画像に含まれるすべての特徴点について処理済みかを判定する。処理済みでない特徴点がある場合、ステップＳ５３に戻り、他の特徴点が選択される。一方、すべての特徴点について処理済みの場合、ステップＳ５８の処理が実行される。
【００９３】
［ステップＳ５８］特徴量算出部１２２は、すべての撮像画像について処理済みかを判定する。処理済みでない撮像画像がある場合、ステップＳ５２に戻り、他の撮像画像が選択される。一方、すべての撮像画像について処理済みの場合、ステップＳ５９の処理が実行される。
【００９４】
［ステップＳ５９］特徴量算出部１２２は、ステップＳ５５で算出されたすべての輝度差を用いて、輝度差の度数を示すヒストグラムを作成する。特徴量算出部１２２は、作成したヒストグラムに基づいて閾値ｄを決定する。例えば、特徴量算出部１２２は、ヒストグラムから、一定割合（例えば５０％）の画素ペアが含まれる、輝度差０を中心とした範囲を抽出し、抽出した範囲の正側の境界の輝度値を閾値ｄとする。
【００９５】
なお、このステップＳ５９では、すべての撮像画像から算出された輝度差ではなく、一部の撮像画像から算出された輝度差だけを用いてヒストグラムが作成されてもよい。また、すべての撮像画像、一部の撮像画像のどちらが用いられる場合でも、画像内の一部の領域から算出された輝度差だけを用いてヒストグラムが作成されてもよい。あるいは、画像内の一部の特徴領域から算出された輝度差だけを用いてヒストグラムが作成されてもよい。
【００９６】
［ステップＳ６１］特徴量算出部１２２は、撮像画像を１つ選択する。
［ステップＳ６２］特徴量算出部１２２は、ステップＳ６１で選択した撮像画像から特徴点を１つ選択する。
【００９７】
［ステップＳ６３］特徴量算出部１２２は、画素ペア管理テーブル１１２から画素ペアを１つ選択する。
［ステップＳ６４］特徴量算出部１２２は、ステップＳ６３で選択した画素ペアについて算出された輝度差と、閾値ｄとの比較に基づいて、この画素ペアに対応するビット値を決定する。例えば、特徴量算出部１２２は、輝度差が閾値ｄより大きい場合には、ビット値を“１”とし、輝度差が閾値ｄ以下である場合には、ビット値を“０”とする。
【００９８】
［ステップＳ６５］特徴量算出部１２２は、ステップＳ６２で選択された特徴点についての局所特徴量を示すビット列の下位に、ステップＳ６４で算出したビット値を付加する。
【００９９】
［ステップＳ６６］特徴量算出部１２２は、画素ペア管理テーブル１１２に登録されたすべての画素ペアについて処理済みかを判定する。処理済みでない画素ペアがある場合、ステップＳ６３に戻り、他の画素ペアが選択される。一方、すべての画素ペアについて処理済みの場合、ステップＳ６７の処理が実行される。
【０１００】
［ステップＳ６７］特徴量算出部１２２は、ステップＳ６５で作成されたビット列を、ステップＳ６２で選択した特徴点についての局所特徴量として、特徴量管理テーブル１１３における対応するレコードに登録する。
【０１０１】
［ステップＳ６８］特徴量算出部１２２は、ステップＳ６１で選択した撮像画像に含まれるすべての特徴点について処理済みかを判定する。処理済みでない特徴点がある場合、ステップＳ６２に戻り、他の特徴点が選択される。一方、すべての特徴点について処理済みの場合、ステップＳ６９の処理が実行される。
【０１０２】
［ステップＳ６９］特徴量算出部１２２は、すべての撮像画像について処理済みかを判定する。処理済みでない撮像画像がある場合、ステップＳ６１に戻り、他の撮像画像が選択される。一方、すべての撮像画像について処理済みの場合、特徴量算出処理は終了する。
【０１０３】
以上の図１４，図１５の処理により、各撮像画像に対応する特徴量管理テーブル１１３に、各特徴点についての局所特徴量が登録される。
なお、上記の図１４，図１５では、輝度差の統計情報に基づいて閾値ｄを動的に設定する例について説明したが、閾値ｄはあらかじめ決められた値であってもよい。この場合、特徴量算出部１２２は、例えば、図１４のステップＳ５５を実行した時点で、該当するビット値を決定し、ステップＳ５６で“Ｙｅｓ”と判定した時点で、該当する特徴点の局所特徴量を特徴量管理テーブル１１３に登録してもよい。そうすることで、ステップＳ５９以降の処理は不要になる。
【０１０４】
図１６は、画像認識処理の例を示すフローチャートである。
［ステップＳ８１］画像認識部１２３は、ユーザの操作入力に応じて撮像画像からキー画像を選択する。
【０１０５】
［ステップＳ８２］画像認識部１２３は、キー画像以外の撮像画像（対象画像）の中から１つを選択する。
［ステップＳ８３］画像認識部１２３は、キー画像の特徴点を１つ選択する。
【０１０６】
［ステップＳ８４］画像認識部１２３は、ステップＳ８２で選択した対象画像から、ステップＳ８３でキー画像から選択した特徴点に類似する特徴点（対応点）を探索する。この処理では、画像認識部１２３は、キー画像から選択した特徴点の局所特徴量と、対象画像の各特徴点の局所特徴量とのハミング距離を計算し、対象画像の特徴点のうちハミング距離が最小の特徴点を、類似度が最も高い対応点として抽出する。
【０１０７】
［ステップＳ８５］画像認識部１２３は、ステップＳ８３で選択した特徴点とステップＳ８４で探索された対応点とが一致するように対象画像にキー画像を重ねた場合の、対象画像におけるキー画像の中心位置を推定する。画像認識部１２３は、対象画像の各画素のうち、推定された中心位置の画素に対して投票する。なお、実際には、画像認識部１２３は、例えば、推定された中心位置を中心とした所定領域（例えば、１０画素四方の矩形領域）に含まれる各画素に投票してもよい。
【０１０８】
［ステップＳ８６］画像認識部１２３は、キー画像の全特徴点について処理済みかを判定する。処理済みでない特徴点がある場合、ステップＳ８３に戻り、他の特徴点が選択される。一方、すべての特徴点について処理済みの場合、ステップＳ８７の処理が実行される。
【０１０９】
［ステップＳ８７］画像認識部１２３は、ステップＳ８２で選択した対象画像の各画素についての投票数の最大値が所定の閾値を超えている場合、この対象画像をキー画像に類似する画像と判定する。この場合、画像認識部１２３は、例えば、キー画像に類似すると判定された対象画像の識別情報を出力する。一方、画像認識部１２３は、投票数の最大値が閾値以下の場合、この対象画像をキー画像に類似しない画像と判定する。
【０１１０】
なお、ステップＳ８７では、画像認識部１２３は、例えば、投票数の最大値が所定の閾値を超えているすべての対象画像の識別情報を、投票数の大きさ順に出力してもよい。
［ステップＳ８８］画像認識部１２３は、すべての対象画像について処理済みかを判定する。処理済みでない対象画像がある場合、ステップＳ８２に戻り、他の対象画像が選択される。一方、すべての対象画像について処理済みの場合、画像認識部１２３は、ステップＳ８７でキー画像に類似すると判定された対象画像の識別情報を出力して、画像認識処理を終了する。
【０１１１】
以上の図１６の処理では、図１４，図１５の処理によって算出された特徴量が用いられることで、ステップＳ８４での対応点の探索精度が向上する。その結果、ステップＳ８７での判定精度が向上する。図１１で説明したように、一般の画像は平坦な領域が占める割合が多く、このような画像に設定された局所特徴量算出用の画素ペアの中には、輝度差が０に近いものが多く含まれる。図１４，図１５の処理により、輝度差が小さい画素ペアについては局所特徴量のビット値が安定的に０と決定される。このため、平坦な領域を広く占める一般の画像を用いた画像認識においては、その認識精度を向上させる効果は大きい。
【０１１２】
＜第２の実施の形態の変形例＞
次に、第２の実施の形態の画像処理装置１００を変形した変形例について説明する。この変形例は、次の点で第２の実施の形態の画像処理装置１００と相違する。変形例では、特徴領域に設定される画素ペアごとに、個別の閾値ｄが設定される。そして、局所特徴量のビット値を決定する際、ビット値に対応する画素ペアに対して設定された閾値ｄが利用される。
【０１１３】
この変形例は、図２と同様のハードウェア構成を有する画像処理装置によって実現され、基本的な処理機能の構成も図３と同様である。そこで、変形例について、図２，図３と同じ符号を用いて説明する。ただし、記憶部１１０には、図３，図４に示した画素ペア管理テーブル１１２の代わりに、次の図１７に示す画素ペア管理テーブルが記憶される。
【０１１４】
図１７は、画素ペア管理テーブルの構成例を示す図である。図１７に示す画素ペア管理テーブル１１２ａには、図４に示した画素ペア管理テーブル１１２に対して、閾値ｄの項目がさらに付加されている。これにより、画素ペア管理テーブル１１２は、画素ペアごとに個別の閾値ｄを保持することができる。
【０１１５】
図１８，図１９は、画像処理装置による特徴量算出の処理例を示すフローチャートである。
［ステップＳ１０１］特徴量算出部１２２は、図１４のステップＳ５１と同様の手順で、各撮像画像上に複数の特徴点を設定する。特徴量算出部１２２は、各撮像画像に対応する特徴量管理テーブル１１３に、設定した各特徴点についてのレコードを作成し、作成した各レコードにＩＤおよび特徴点座標を登録する。
【０１１６】
［ステップＳ１０２］特徴量算出部１２２は、画素ペア管理テーブル１１２から画素ペアを１つ選択する。
［ステップＳ１０３］特徴量算出部１２２は、撮像画像を１つ選択する。
【０１１７】
［ステップＳ１０４］特徴量算出部１２２は、ステップＳ１０３で選択した撮像画像から特徴点を１つ選択する。
［ステップＳ１０５］特徴量算出部１２２は、ステップＳ１０４で選択した特徴点を中心とした一定範囲の特徴領域から、ステップＳ１０２で選択した画素ペアに対応する２つの画素を選択し、選択した各画素間の輝度差を計算する。輝度差は、画素ペアを構成する画素のうち、第１画素の輝度値から第２画素の輝度値を減算することで算出される。
【０１１８】
［ステップＳ１０６］特徴量算出部１２２は、ステップＳ１０３で選択した撮像画像に含まれるすべての特徴点について処理済みかを判定する。処理済みでない特徴点がある場合、ステップＳ１０４に戻り、他の特徴点が選択される。一方、すべての特徴点について処理済みの場合、ステップＳ１０７の処理が実行される。
【０１１９】
［ステップＳ１０７］特徴量算出部１２２は、すべての撮像画像について処理済みかを判定する。処理済みでない撮像画像がある場合、ステップＳ１０３に戻り、他の撮像画像が選択される。一方、すべての撮像画像について処理済みの場合、ステップＳ１０８の処理が実行される。
【０１２０】
［ステップＳ１０８］特徴量算出部１２２は、ステップＳ１０２で選択した画素ペアに関してステップＳ１０５で算出された各輝度差を用いて、輝度差の度数を示すヒストグラムを作成する。特徴量算出部１２２は、作成したヒストグラムに基づいて、選択した画素ペアに対応する閾値ｄを決定する。例えば、特徴量算出部１２２は、ヒストグラムから、一定割合（例えば５０％）の画素ペアが含まれる、輝度差０を中心とした範囲を抽出し、抽出した範囲の正側の境界の輝度値を閾値ｄとする。
【０１２１】
［ステップＳ１０９］特徴量算出部１２２は、ステップＳ１０８で決定された閾値ｄが、所定の判定閾値ｄｔより大きいかを判定する。判定閾値ｄｔは、０より大きく、輝度値の最大値（例えば２５５）より小さい値に設定される。閾値ｄが判定閾値ｄｔより大きい場合、ステップＳ１１０の処理が実行される。一方、閾値ｄが判定閾値ｄｔ以下の場合、特徴量算出部１２２は、ステップＳ１０８で決定された閾値ｄを、画素ペア管理テーブル１１２における該当画素ペアのレコードの閾値ｄの項目に登録する。その後、ステップＳ１１１の処理が実行される。
【０１２２】
［ステップＳ１１０］特徴量算出部１２２は、ステップＳ１０８で決定された閾値ｄを０に変更する。特徴量算出部１２２は、変更後の閾値ｄを、画素ペア管理テーブル１１２ａにおける該当画素ペアのレコードの閾値ｄの項目に登録する。
【０１２３】
ここで、閾値ｄが判定閾値ｄｔより大きい場合（ステップＳ１０９で“Ｙｅｓ”と判定される場合）とは、ヒストグラムの輝度値０付近に画素ペアが集中していない場合である。この場合、該当画素ペアの輝度値が０付近になる可能性が低いと推定される。そこで、閾値ｄを０にすることで、該当画素ペアのビット値については、図１２のビット値決定法１のように輝度値の符号を決定されるようになる。これにより、該当画素ペアのビット値を決定する際の計算負荷を低減できる。
【０１２４】
［ステップＳ１１１］特徴量算出部１２２は、画素ペア管理テーブル１１２に登録されたすべての画素ペアについて処理済みかを判定する。処理済みでない画素ペアがある場合、ステップＳ１０２に戻り、他の画素ペアが選択される。一方、すべての画素ペアについて処理済みの場合、図１９の処理が実行される。
【０１２５】
図１９に示す処理は、図１５の処理のうち、ステップＳ６４，Ｓ６５の処理をステップＳ６４ａ，Ｓ６４ｂ，Ｓ６５ａの処理に置き換えたものである。以下、ステップＳ６４ａ，Ｓ６４ｂ，Ｓ６５ａの処理についてのみ説明し、図１５と同じその他のステップの処理についての説明を省略する。
【０１２６】
［ステップＳ６４ａ］特徴量算出部１２２は、画素ペア管理テーブル１１２ａから、ステップＳ６３で選択した画素ペアに対応する閾値ｄを読み込む。
［ステップＳ６４ｂ］特徴量算出部１２２は、ステップＳ６３で選択した画素ペアについて算出された輝度差と、ステップＳ６４ａで読み込んだ閾値ｄとの比較に基づいて、この画素ペアに対応するビット値を決定する。例えば、特徴量算出部１２２は、輝度差が閾値ｄより大きい場合には、ビット値を“１”とし、輝度差が閾値ｄ以下である場合には、ビット値を“０”とする。
【０１２７】
［ステップＳ６５ａ］特徴量算出部１２２は、ステップＳ６２で選択された特徴点についての局所特徴量を示すビット列の下位に、ステップＳ６４ｂで算出したビット値を付加する。
【０１２８】
以上説明した変形例によれば、次のような効果が得られる。画素ペアに含まれる第１の画素と第２の画素の各位置および画素間の位置関係は、画素ペアごとに異なる。このため、ビット値を決定するための最適な閾値ｄは、画素ペアごとに異なる可能性がある。上記の変形例によれば、複数の特徴領域のそれぞれにおける同じ画素ペアごとに輝度差が集計され、それらの輝度差の統計情報に基づいて閾値ｄが画素ペアごとに算出される。これにより、閾値ｄが最適化され、平坦な画像領域における局所特徴量が撮影状況のわずかな違いによって変動する現象が発生しにくくなる。その結果、特徴点同士の類似判定の精度が向上し、最終的な画像認識精度も向上する。
【０１２９】
〔第３の実施の形態〕
図２０は、第３の実施の形態に係る画像処理システムの構成例を示す図である。図２０に示す画像処理システムは、端末装置３００とサーバ装置４００とを含む。
【０１３０】
端末装置３００は、例えば、携帯電話、スマートフォン、デジタルカメラ、パーソナルコンピュータなどである。端末装置３００は、ネットワークを介してサーバ装置４００にアクセスすることができる。端末装置３００は、画像の撮像機能を有するとともに、撮像画像の特徴量を算出することができる。そして、端末装置３００は、撮像画像に特徴量を付加してサーバ装置４００に送信する。
【０１３１】
サーバ装置４００は、端末装置３００から送信された撮像画像を蓄積する。また、サーバ装置４００は、撮像画像とともに受信した特徴量を用いて画像認識を行い、蓄積している撮像画像の間で類似する撮像画像のペアを判別する機能を有する。
【０１３２】
上記の画像処理システムは、例えば、ユーザが端末装置３００を利用して撮像した撮像画像をサーバ装置４００が管理する写真管理サービスなどに適用できる。この場合、サーバ装置４００は、撮像画像を単に蓄積するだけでなく、類似する撮像画像を検索することで、同じ対象物が写っている撮像画像にタグ付けするなどの付加サービスを提供することもできる。
【０１３３】
図２１は、端末装置のハードウェア構成例を示す図である。端末装置３００は、プロセッサ３０１によって装置全体が制御されている。プロセッサ３０１は、マルチプロセッサであってもよい。プロセッサ３０１は、例えばＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣまたはＰＬＤである。また、プロセッサ３０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【０１３４】
プロセッサ３０１には、バス３０９を介して、ＲＡＭ３０２と複数の周辺機器が接続されている。
ＲＡＭ３０２は、端末装置３００の主記憶装置として使用される。ＲＡＭ３０２には、プロセッサ３０１に実行させるＯＳプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ３０２には、プロセッサ３０１による処理に必要な各種データが格納される。
【０１３５】
バス３０９に接続されている周辺機器としては、フラッシュメモリ３０３、カメラ３０４、表示装置３０５、入力装置３０６、読み取り装置３０７および通信インタフェース３０８がある。
【０１３６】
フラッシュメモリ３０３は、端末装置３００の補助記憶装置として使用される。フラッシュメモリ３０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置を使用することもできる。
【０１３７】
表示装置３０５は、プロセッサ３０１からの命令にしたがって画像を表示する。表示装置３０５としては、液晶ディスプレイや有機ＥＬディスプレイなどがある。
入力装置３０６は、ユーザによる入力操作に応じた信号をプロセッサ３０１に送信する。入力装置３０６としては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【０１３８】
読み取り装置３０７には、可搬型記録媒体３０７ａが脱着される。読み取り装置３０７は、可搬型記録媒体３０７ａに記録されたデータを読み取ってプロセッサ３０１に送信する。可搬型記録媒体３０７ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【０１３９】
通信インタフェース３０８は、ネットワークを介して他の装置（例えば、サーバ装置４００）との間でデータの送受信を行う。
以上のようなハードウェア構成によって、端末装置３００の処理機能を実現することができる。なお、図示を省略するが、サーバ装置４００は、例えば、図２に示した画像処理装置１００と同様のハードウェア構成を有するコンピュータとして実現される。
【０１４０】
図２２は、端末装置およびサーバ装置の処理機能の構成例を示すブロック図である。なお、図２２では、図３と同様の構成要素については同じ符号を付して示し、その説明を省略する。
【０１４１】
端末装置３００は、記憶部３１０、画像撮像部３２１、特徴量算出部３２２および送信部３２３を有する。
記憶部３１０は、端末装置３００が備える記憶装置（例えば、ＲＡＭ３０２またはフラッシュメモリ３０３）の記憶領域として実装される。記憶部３１０には、図３と同様の画像データ１１１、画素ペア管理テーブル１１２および特徴量管理テーブル１１３が記憶される。なお、画像データ１１１は、画像撮像部３２１によって撮像された撮像画像のデータである。
【０１４２】
画像撮像部３２１、特徴量算出部３２２および送信部３２３の処理は、例えば、所定のプログラムがプロセッサ３０１に実行されることによって実現される。
画像撮像部３２１は、カメラ３０４を制御することで画像を撮像する。画像撮像部３２１は、撮像された撮像画像についての画像データ１１１を記憶部３１０に格納する。
【０１４３】
特徴量算出部３２２は、図３の特徴量算出部１２２と同様の処理を実行する。すなわち、特徴量算出部３２２は、画像データ１１１および画素ペア管理テーブル１１２を参照しながら、撮像画像内の各特徴点についての局所特徴量を算出し、算出した局所特徴量を特徴量管理テーブル１１３に登録する。なお、特徴量算出部３２２は、図１８，図１９で説明した変形例による処理手順によって局所特徴量を算出してもよい。
【０１４４】
送信部３２３は、記憶部３１０に記憶された各画像データ１１１を、特徴量管理テーブル１１３に記録された対応する特徴量情報とともにサーバ装置４００に送信する。
一方、サーバ装置４００は、記憶部４１０、受信部４２１および画像認識部４２２を有する。
【０１４５】
記憶部４１０は、サーバ装置４００が備える記憶装置の記憶領域として実装される。記憶部４１０には、端末装置３００から受信した画像データ１１１およびこれらに対応する特徴量情報が記憶される。なお、受信した特徴量情報の記憶の仕方は特に限定されないが、図２２では例として、受信した特徴量情報は、端末装置３００の特徴量管理テーブル１１３と同様の形式で管理されている。
【０１４６】
受信部４２１および画像認識部４２２の処理は、例えば、所定のプログラムがサーバ装置４００のプロセッサに実行されることによって実現される。
受信部４２１は、端末装置３００から特徴量情報とともに送信された画像データ１１１を受信する。受信部４２１は、受信した画像データ１１１を記憶部４１０に格納するとともに、受信した特徴量情報を記憶部４１０の特徴量管理テーブル１１３に登録する。
【０１４７】
画像認識部４２２は、図３の画像認識部１２３と同様の処理を実行する。すなわち、画像認識部４２２は、特徴量管理テーブル１１３を参照しながら、選択されたキー画像以外の撮像画像の中からキー画像と類似する類似画像を検索する。なお、キー画像は、ユーザの操作によって選択されてもよいし、画像認識部４２２が記憶部４１０に記憶された撮像画像から自動的に順番にキー画像を選択していってもよい。
【０１４８】
以上の第３の実施の形態では、端末装置３００において撮像画像の局所特徴量が算出される際に、輝度差が小さい画素ペアについては局所特徴量のビット値が安定的に０と決定される。したがって、サーバ装置４００においてこのように算出された局所特徴量を用いた画像認識処理が実行されることで、その認識精度が向上する。
【０１４９】
なお、上記の各実施の形態に示した装置（画像処理装置１，１００、端末装置３００およびサーバ装置４００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１５０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５２】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１５３】
１  画像処理装置
１ａ  記憶部
１ｂ  演算部
１０，２０  画像
１０ａ，２０ａ  特徴情報
１１ａ，１１ｂ  特徴領域
１２ａ，１２ｂ  局所特徴量
２１ａ，２１ｂ，２２ａ，２２ｂ  画素ペア
３０  設定範囲
【図１】
2017056312.tif 000003
【図２】
2017056312.tif 000004
【図３】
2017056312.tif 000005
【図４】
2017056312.tif 000006
【図５】
2017056312.tif 000007
【図６】
2017056312.tif 000008
【図７】
2017056312.tif 000009
【図８】
2017056312.tif 000010
【図９】
2017056312.tif 000011
【図１０】
2017056312.tif 000012
【図１１】
2017056312.tif 000013
【図１２】
2017056312.tif 000014
【図１３】
2017056312.tif 000015
【図１４】
2017056312.tif 000016
【図１５】
2017056312.tif 000017
【図１６】
2017056312.tif 000018
【図１７】
2017056312.tif 000019
【図１８】
2017056312.tif 000020
【図１９】
2017056312.tif 000021
【図２０】
2017056312.tif 000022
【図２１】
2017056312.tif 000023
【図２２】
2017056312.tif 000024
【国際調査報告】
2017056312.tif 000025
2017056312.tif 000026
2017056312.tif 000027
2017056312.tif 000028