(57)【特許請求の範囲】
【請求項１】
一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、前記画像領域が重複する重複領域において前記各画像領域に配置された前記各画素ペアの位置が一致するように設定した前記配置規則を表す配置情報を記憶する記憶部と、
前記画像領域に前記配置規則で配置された前記各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された前記各画像領域の特徴量と第２の画像に設定された前記各画像領域の特徴量との距離に基づいて前記第１の画像と前記第２の画像との類否を判定する計算部と
を有し、
前記計算部は、前記重複領域に位置する前記画素ペアの特徴量に関する計算結果を前記記憶部に格納し、当該画素ペアと同じ位置にある、他の前記画像領域における前記画素ペアの特徴量に関する計算の際に前記記憶部に格納した前記計算結果を利用する
情報処理装置。
【請求項２】
前記記憶部は、前記第１の画像に設定された前記各画像領域の特徴量を記憶し、
前記計算部は、前記第２の画像に設定された前記各画像領域に前記配置規則で配置される前記各画素ペアの特徴量を計算する際、前記重複領域に位置する前記画素ペアの特徴量を前記記憶部に格納し、当該画素ペアと同じ位置にある他の前記画素ペアの特徴量の計算を回避して前記記憶部に格納されている前記画素ペアの特徴量を利用する
請求項１に記載の情報処理装置。
【請求項３】
前記記憶部は、両方の画素が前記重複領域に含まれる前記画素ペアの集合と、一方の画素が前記重複領域に含まれる前記画素ペアの集合と、両方の画素が前記重複領域に含まれない前記画素ペアの集合とを特定するための集合情報をさらに記憶し、
前記計算部は、前記集合情報に基づいて、両方の画素が前記重複領域に含まれる前記画素ペアを、前記重複領域に位置する前記画素ペアとして利用する
請求項１又は２に記載の情報処理装置。
【請求項４】
コンピュータが、
一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、前記画像領域が重複する重複領域において前記各画像領域に配置された前記各画素ペアの位置が一致するように設定した前記配置規則を表す配置情報を取得し、
前記画像領域に前記配置規則で配置された前記各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された前記各画像領域の特徴量と第２の画像に設定された前記各画像領域の特徴量との距離に基づいて前記第１の画像と前記第２の画像との類否を判定する処理を実行し、
前記距離を計算する処理において、前記重複領域に位置する前記画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の前記画像領域における前記画素ペアの特徴量に関する計算の際に前記記憶部に格納した前記計算結果を利用する
画像判定方法。
【請求項５】
コンピュータに、
一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、前記画像領域が重複する重複領域において前記各画像領域に配置された前記各画素ペアの位置が一致するように設定した前記配置規則を表す配置情報を取得し、
前記画像領域に前記配置規則で配置された前記各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された前記各画像領域の特徴量と第２の画像に設定された前記各画像領域の特徴量との距離に基づいて前記第１の画像と前記第２の画像との類否を判定する処理を実行させ、
前記距離を計算する処理において、前記重複領域に位置する前記画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の前記画像領域における前記画素ペアの特徴量に関する計算の際に前記記憶部に格納した前記計算結果を利用する
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像判定方法、及びプログラムに関する。
【背景技術】
【０００２】
様々な分野で画像のマッチング技術が広く利用されるようになってきた。例えば、顔認証や生体認証の分野では、可視光カメラや赤外線カメラで撮像した画像とテンプレート画像とをマッチングする技術が利用されている。より一般的な用途では、カメラ付き携帯端末やデジタルカメラで撮像した画像とランドマークの画像とをマッチングする技術が利用されている。
【０００３】
画像同士のマッチングには、例えば、入力画像の特徴点における特徴量（以下、局所特徴量）と、参照画像の特徴点における局所特徴量とを比較して、入力画像の特徴点に対応する参照画像の特徴点（以下、対応点）を探索する手法が利用される。探索により発見された対応点の集合を統計処理することで入力画像中における参照画像の存在や参照画像の位置を認識できる。統計処理の一例として、参照画像内に設定した基準点と各特徴点との相対位置を保持しておき、対応点の候補として抽出された各特徴点からの基準点の位置に投票し、その投票数の集計値を閾値判定する処理方法が提案されている。
【０００４】
対応点の探索には、例えば、ＳＩＦＴ（Scale-Invariant Feature Transform）、ＳＵＲＦ（Speeded Up Robust Features）、ＢＲＩＥＦ（Binary Robust Independent Elementary Features）などの特徴が利用される。ＳＩＦＴやＳＵＲＦを利用すると高精度に対応点を検出することができる。但し、ＳＩＦＴやＳＵＲＦの局所特徴量はデ−タサイズが大きく、ＳＩＦＴやＳＵＲＦを利用すると探索時の計算負荷が高くなる。
【０００５】
ＢＲＩＥＦは、各特徴点周囲の特徴領域に設定された複数の画素ペアのそれぞれについて計算された画素間の輝度差に基づく局所特徴量で表現される。例えば、輝度差の符号（正負）に対応するビット値の集合が局所特徴量となる。そのため、ＢＲＩＥＦはＳＩＦＴやＳＵＲＦに比べて少ない計算量で高速に抽出することができる。つまり、ＢＲＩＥＦを利用すれば、サーバ装置などに比べて計算能力の低い携帯端末でも入力画像から高速に局所特徴量を抽出することが可能になる。
【０００６】
ＢＲＩＥＦと同様に画素間の輝度差に基づく局所特徴量を用いて画像の特徴を表現する他の特徴としては、例えば、ＯＲＢ（Oriented Fast and Rotated BRIEF）やＦＲＥＡＫ（Fast Retina Keypoint）がある。ＯＲＢは、画素ペアの配置を決める際に多数の画像に基づく学習を利用する。ＦＲＥＡＫは、画素ペアの配置を決める際に人間の網膜パターンに関する情報を利用する。ＯＲＢやＦＲＥＡＫを利用した場合も入力画像から高速に局所特徴量を抽出することができる。
【０００７】
画素ペアに基づく局所特徴量を利用する方式ではないが、画像内の小領域に含まれる画素の特徴量から、各小領域が特徴領域であるかを判定する特徴領域識別方式が提案されている。この方式は、小領域同士が互いに重複するように画像内に小領域を設定し、画素毎の判定回数及び特徴量計算の途中結果を記憶しておいて、重複部分の特徴量計算を省く仕組みを採用している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−２１００５４号公報
【特許文献２】特開昭６１−２１７８８４号公報
【非特許文献】
【０００９】
【非特許文献１】David G.Lowe, "Distinctive image features from scale-invariant keypoints", International Journal of Computer Vision, 60, 2 (2004), pp.91-110.
【非特許文献２】H.Bay,T.Tuytelaars, and L.V.Gool, "SURF:Speed Up Robust Features", Proc. of Int. Conf. of ECCV, 2006.
【非特許文献３】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.
【非特許文献４】Alexandre Alahi, Raphael Ortiz, Pierre Vandergheynst, "FREAK: Fast Retina Keypoint", In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2012.
【非特許文献５】E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, "ORB: An efficient alternative to SIFT or SURF", In Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2011.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記のように、画素ペアに基づく局所特徴量は抽出にかかる処理負荷が低く、マッチング処理の負荷低減に寄与する。一方で、入力画像の各特徴点と参照画像の各特徴点との組み合わせの数が大きいため、対応点の探索にかかる処理負荷は高い。この組み合わせ数は、特徴点を多く配置すればするほど増加する。一方、特徴点を多く配置することで、より精密な対応点の探索が可能になるほか、統計処理による判定精度が向上する可能性もある。
【００１１】
そこで、１つの側面によれば、本発明の目的は、対応する特徴点の探索にかかる処理負荷を低減することが可能な情報処理装置、画像判定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本開示の１つの側面によれば、一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、画像領域が重複する重複領域において各画像領域に配置された各画素ペアの位置が一致するように設定した配置規則を表す配置情報を記憶する記憶部と、画像領域に配置規則で配置された各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された各画像領域の特徴量と第２の画像に設定された各画像領域の特徴量との距離に基づいて第１の画像と第２の画像との類否を判定する計算部とを有し、計算部は、重複領域に位置する画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の画像領域における画素ペアの特徴量に関する計算の際に記憶部に格納した計算結果を利用する情報処理装置が提供される。
【００１３】
また、本開示の他の１つの側面によれば、コンピュータが、一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、画像領域が重複する重複領域において各画像領域に配置された各画素ペアの位置が一致するように設定した配置規則を表す配置情報を取得し、画像領域に配置規則で配置された各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された各画像領域の特徴量と第２の画像に設定された各画像領域の特徴量との距離に基づいて第１の画像と第２の画像との類否を判定する処理を実行し、距離を計算する処理において、重複領域に位置する画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の画像領域における画素ペアの特徴量に関する計算の際に記憶部に格納した計算結果を利用する画像判定方法が提供される。
【００１４】
また、本開示の他の１つの側面によれば、コンピュータに、一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、画像領域が重複する重複領域において各画像領域に配置された各画素ペアの位置が一致するように設定した配置規則を表す配置情報を取得し、画像領域に配置規則で配置された各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された各画像領域の特徴量と第２の画像に設定された各画像領域の特徴量との距離に基づいて第１の画像と第２の画像との類否を判定する処理を実行させ、距離を計算する処理において、重複領域に位置する画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の画像領域における画素ペアの特徴量に関する計算の際に記憶部に格納した計算結果を利用する処理を実行させるためのプログラムが提供される。
【発明の効果】
【００１５】
本発明によれば、対応する特徴点の探索にかかる処理負荷を低減することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】第２実施形態に係るシステムの一例を示した図である。
【図３】第２実施形態に係る端末装置が有する機能を実現可能なハードウェアの一例を示した図である。
【図４】第２実施形態に係る端末装置が有する機能の一例を示したブロック図である。
【図５】第２実施形態に係る画素ペア情報の一例を示した図である。
【図６】第２実施形態に係る入力画像の特徴点と特徴領域について説明するための図である。
【図７】第２実施形態に係る特徴量の計算について説明するための図である。
【図８】第２実施形態に係る特徴点計算の効率化について説明するための第１の図である。
【図９】第２実施形態に係る特徴点計算の効率化について説明するための第２の図である。
【図１０】第２実施形態に係る特徴点計算の効率化について説明するための第３の図である。
【図１１】第２実施形態に係る特徴点計算の効率化について説明するための第４の図である。
【図１２】第２実施形態に係るサーバ装置が有する機能の一例を示したブロック図である。
【図１３】第２実施形態に係る参照画像情報（参照画像管理テーブル）の一例を示した図である。
【図１４】第２実施形態に係る参照画像情報（特徴量管理テーブル）の一例を示した図である。
【図１５】第２実施形態に係る距離情報（距離記録テーブル）の一例を示した図である。
【図１６】第２実施形態に係る参照画像の特徴点と特徴領域について説明するための図である。
【図１７】第２実施形態に係る投票処理について説明するための図である。
【図１８】第２実施形態に係る判定について説明するための図である。
【図１９】第２実施形態に係る対応点探索（距離計算）の効率化について説明するための第１の図である。
【図２０】第２実施形態に係る対応点探索（距離計算）の効率化について説明するための第２の図である。
【図２１】第２実施形態に係る端末装置の動作について説明するためのフロー図である。
【図２２】第２実施形態に係る端末装置の動作のうち、特徴量の計算に関する動作について説明するためのフロー図である。
【図２３】第２実施形態に係るサーバ装置の動作について説明するためのフロー図である。
【図２４】第２実施形態に係るサーバ装置の動作のうち、参照画像の探索に関する動作について説明するためのフロー図である。
【図２５】第２実施形態に係るサーバ装置の動作のうち、距離計算に関する動作について説明するためのフロー図である。
【図２６】第２実施形態の一変形例（変形例＃１）に係る特徴点の配置について説明するための図である。
【図２７】第２実施形態の一変形例（変形例＃１）に係る画素ペアの配置及び局所特徴量の構造について説明するための図である。
【図２８】第２実施形態の一変形例（変形例＃２）に係る特徴点の配置について説明するための図である。
【図２９】第２実施形態の一変形例（変形例＃２）に係る画素ペアの配置及び局所特徴量の構造について説明するための図である。
【図３０】第２実施形態の一変形例（変形例＃２）に係る距離情報の一例を示した図である。
【図３１】第２実施形態の一変形例（変形例＃２）に係るサーバ装置の動作のうち、距離計算に関する動作について説明するための第１のフロー図である。
【図３２】第２実施形態の一変形例（変形例＃２）に係るサーバ装置の動作のうち、距離計算に関する動作について説明するための第２のフロー図である。
【図３３】第２実施形態の一変形例（変形例＃２）に係るサーバ装置の動作のうち、距離計算に関する動作について説明するための第３のフロー図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１８】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。図１は、第１実施形態に係る情報処理装置の一例を示した図である。図１に例示した情報処理装置１０は、第１実施形態に係る情報処理装置の一例である。
【００１９】
図１に示すように、情報処理装置１０は、記憶部１１及び計算部１２を有する。
記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。計算部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、計算部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。計算部１２は、例えば、記憶部１１又は他のメモリに記憶されたプログラムを実行する。
【００２０】
記憶部１１は、一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、画像領域が重複する重複領域において各画像領域に配置された各画素ペアの位置が一致するように設定した配置規則を表す配置情報を記憶する。
【００２１】
例えば、画像領域Ａｉｎ１の右半分の領域（右領域Ｒ２）と、画像領域Ａｉｎ２の左半分の領域（左領域Ｒ１）とが重複するように設定されている場合、画像領域Ａｉｎ１の右領域Ｒ２及び画像領域Ａｉｎ２の左領域Ｒ１が上記の重複領域（図１でハッチングを付した領域）に該当する。また、画像領域Ａｒ１の右領域Ｒ２と、画像領域Ａｒ２の左領域Ｒ１とが重複するように設定されている場合、画像領域Ａｒ１の右領域Ｒ２及び画像領域Ａｒ２の左領域Ｒ１が上記の重複領域に該当する。
【００２２】
図１の例において、記憶部１１は、右領域Ｒ２に各画素が配置される画素ペアの情報と、左領域Ｒ１に各画素が配置される画素ペアの情報と、領域Ｒ１、Ｒ２にそれぞれ１つずつ画素が配置される画素ペアの情報とを配置情報として記憶している。以下、領域Ｒ１、Ｒ２にそれぞれ１つずつ画素が配置される画素ペアの集合をＡ群、左領域Ｒ１に各画素が配置される画素ペアの集合をＢ群、右領域Ｒ２に各画素が配置される画素ペアの集合をＣ群と表現する。
【００２３】
配置情報が示す配置規則は、Ｂ群の画素ペアとＣ群の画素ペアとが同じ配置となるように設定される。例えば、この配置規則に従って画像領域Ａｉｎ１、Ａｉｎ２に画素ペアを配置した場合、画像領域Ａｉｎ１の右領域Ｒ２に配置される画素ペアの位置と、画像領域Ａｉｎ２の左領域Ｒ１に配置される画素ペアの位置とが一致する。画像領域Ａｒ１、Ａｒ２に画素ペアを配置した場合も同様である。
【００２４】
計算部１２は、画像領域に配置規則で配置された各画素ペアの特徴量の組を当該画像領域の特徴量として利用する。また、計算部１２は、第１の画像に設定された各画像領域の特徴量と第２の画像に設定された各画像領域の特徴量との距離に基づいて第１の画像と第２の画像との類否を判定する。
【００２５】
特徴量としては、例えば、ＢＲＩＥＦ、ＳＩＦＴ、ＳＵＲＦ、ＣＡＲＤ（Compact And Realtime Descriptors）、ＦＲＥＡＫ、ＢＲＩＳＫ（Binary Robust Invariant Scalable Keypoints）などが利用可能である。例えば、ＢＲＩＥＦを利用する場合、画素ペアの２つの画素における輝度差の符号（正負）に基づくビット値が、画素ペアの特徴量となる。輝度差の符号（正負）と、特徴量となるビット値とは予め対応付けられている。また、各画素ペアの特徴を表すビット値を並べたビット列（特徴量の組）は、各画素ペアが配置された画像領域の特徴を表す特徴量となる。
【００２６】
図１の例において、画像領域Ａｉｎ１の特徴量Ｑｉｎ１は、Ａ群の画素ペアの特徴量を並べたビット列と、Ｂ群の画素ペアの特徴量を並べたビット列と、Ｃ群の画素ペアの特徴量を並べたビット列とを結合したビット列で表現されている。また、画像領域Ａｉｎ２の特徴量Ｑｉｎ２は、Ａ群の画素ペアの特徴量を並べたビット列と、Ｂ群の画素ペアの特徴量を並べたビット列と、Ｃ群の画素ペアの特徴量を並べたビット列とを結合したビット列で表現されている。
【００２７】
画像領域Ａｉｎ１が第１の画像に設定された画像領域であり、画像領域Ａｒ１が第２の画像に設定された画像領域であるとすると、計算部１２は、特徴量Ｑｉｎ１、Ｑｒ１の距離を計算する。このとき、計算部１２は、Ａ群のビット列同士の距離ｄＡ１１、Ｂ群のビット列同士の距離ｄＢ１１、Ｃ群のビット列同士の距離ｄＣ１１を計算し、距離ｄＡ１１、ｄＢ１１、ｄＣ１１の和を特徴量Ｑｉｎ１、Ｑｒ１の距離とする。
【００２８】
同様に、計算部１２は、他の画像領域（例えば、画像領域Ａｉｎ２、Ａｒ２）の組についても距離を計算する。例えば、計算部１２は、特徴量Ｑｉｎ２、Ｑｒ２の距離を計算する。このとき、計算部１２は、Ａ群のビット列同士の距離ｄＡ２２、Ｂ群のビット列同士の距離ｄＢ２２、Ｃ群のビット列同士の距離ｄＣ２２を計算し、距離ｄＡ２２、ｄＢ２２、ｄＣ２２の和を特徴量Ｑｉｎ２、Ｑｒ２の距離とする。そして、計算部１２は、計算した距離に基づいて第１の画像と第２の画像との類否を判定する。
【００２９】
但し、計算部１２は、重複領域に位置する画素ペアの特徴量に関する計算結果を記憶部１１に格納し、当該画素ペアと同じ位置にある、他の画像領域における画素ペアの特徴量に関する計算の際に記憶部１１に格納した計算結果を利用する。
【００３０】
例えば、画像領域Ａｉｎ１、Ａｒ１の距離を計算する場合（比較＃１）、計算部１２は、Ｃ群の画素ペアに関する距離ｄＣ１１を計算する。その後、画像領域Ａｉｎ２、Ａｒ２の距離を計算する場合（比較＃２）、計算部１２は、Ｂ群の画素ペアに関する距離ｄＢ２２を求めることになる。
【００３１】
画像領域Ａｉｎ１に配置されたＣ群の画素ペアと、画像領域Ａｉｎ２に配置されたＢ群の画素ペアとは同じ位置に設定される。そのため、画像領域Ａｉｎ１に配置されたＣ群の画素ペアの特徴を表すビット列と、画像領域Ａｉｎ２に配置されたＢ群の画素ペアの特徴を表すビット列とは同じビット列となる。同様に、画像領域Ａｒ１に配置されたＣ群の画素ペアの特徴を表すビット列と、画像領域Ａｒ２に配置されたＢ群の画素ペアの特徴を表すビット列とは同じビット列となる。
【００３２】
従って、距離ｄＣ１１と距離ｄＢ２２とは同じ値になる。そこで、計算部１２は、距離ｄＣ１１を計算した際に、その計算結果を記憶部１１に格納する。そして、距離ｄＢ２２を計算する際に、その計算を省略して記憶部１１に格納しておいた距離ｄＣ１１を利用する。つまり、計算部１２は、画像領域Ａｉｎ２、Ａｒ２の距離を計算する際、距離ｄＡ２２、ｄＣ２２を計算し、ｄＡ２２、ｄＣ２２、ｄＣ１１の和を特徴量Ｑｉｎ２、Ｑｒ２の距離とする。このように、重複領域に関する一部の計算結果を記憶部１１に格納しておき、以後の計算に利用することで、距離計算の計算量を低減することが可能になる。
【００３３】
第１及び第２の画像に設定された画像領域同士の距離計算にかかる負荷が低減されることで、少ない計算量で高速に最小距離の画像領域の組を抽出することができ、対応する特徴点の探索にかかる処理負荷を低減することが可能になる。
【００３４】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。
【００３５】
［２−１．システム］
図２を参照しながら、第２実施形態に係るシステムについて説明する。図２は、第２実施形態に係るシステムの一例を示した図である。
【００３６】
図２に示すように、第２実施形態に係るシステムは、端末装置１００及びサーバ装置２００を含む。携帯電話、スマートフォン、デジタルカメラ、パーソナルコンピュータなどのデバイスは、端末装置１００の一例である。アプリケーションサーバやコンテンツマネジメントシステムなどは、サーバ装置２００の一例である。
【００３７】
端末装置１００は、無線基地局ＢＳ及びネットワークＮＷを介してサーバ装置２００にアクセスできる。無線基地局ＢＳは、例えば、移動体通信用の基地局や無線ＬＡＮ（Local Area Network）用の基地局などである。ネットワークＮＷは、移動体通信の基幹回線網やＷＡＮ（Wide Area Network）などである。
【００３８】
図２のシステムは、例えば、端末装置１００で撮像した撮像画像を、サーバ装置２００で管理できるようにする写真管理サービスなどに適用できる。また、このシステムは、写真管理機能を有するＳＮＳ（Social Networking Service）などのソーシャルメディアサービスにも適用できる。以下では、写真管理サービスの例について説明するが、第２実施形態に係るシステムの適用範囲はこれに限定されない。
【００３９】
多くの場合、画像の管理には、時間情報や位置情報が用いられる。例えば、撮影日時を利用して画像をグループ化して管理する方法や、ＧＰＳ（Global Positioning System）で取得した撮影場所の情報を利用して画像をグループ化して管理する方法などがある。画像をグループ化しておけば、撮影時間や撮影場所の情報をヒントに画像を検索することが容易になる。その他にも、「家族旅行」や「結婚式」などのタグを画像に付し、タグを利用して画像を管理する方法などがある。
【００４０】
第２実施形態は、画像から特定の物体（以下、ランドマーク）を自動認識し、その認識結果を画像にタグ付けする仕組みに関する。例えば、図２のシステムは、端末装置１００により旅行先で撮影した画像の情報をサーバ装置２００へと送信すると、サーバ装置２００がランドマークを自動認識してタグを付与する仕組みを提供できる。この仕組みがあれば、ランドマークを指定した画像検索や画像の自動整理の実現が容易になる。
【００４１】
ランドマークの認識は、ランドマークの画像（以下、参照画像）と類似する部分が入力画像に含まれるかを判定する処理により実現される。参照画像は複数利用される。また、参照画像は、ランドマークを正面から撮影した画像、他の方向から撮影した画像、同じ方向から異なる画角や明るさで撮影した画像などである。同じランドマークに対して複数の参照画像を利用することで、認識の失敗や誤認識の発生が少なくなる。
【００４２】
ランドマークの認識は、例えば、次のような手順で行われる。
まず、端末装置１００が、ランドマークの認識対象とする入力画像に対して複数の特徴点を設定する。但し、特徴点の位置は予め設定されている。特徴点の配置は、例えば、予め決められた間隔で等間隔に配置する方法や、ランダムに決められた不規則な配置パターンで配置する方法などにより決定される。但し、参照画像における特徴点の配置と、入力画像に設定される特徴点の配置とは同じである。
【００４３】
特徴点を設定した端末装置１００は、入力画像に設定した特徴点の周辺領域（以下、特徴領域）から特徴量を抽出する。特徴領域は、例えば、特徴点を中心とする矩形領域（例えば、一辺が４８画素の矩形領域）である。特徴量は、例えば、ＢＲＩＥＦ、ＳＩＦＴ、ＳＵＲＦ、ＣＡＲＤ、ＦＲＥＡＫ、ＢＲＩＳＫなどである。以下では、ＢＲＩＥＦを利用する例について説明する。
【００４４】
端末装置１００により抽出された特徴量はサーバ装置２００に送信される。サーバ装置２００は、参照画像の各特徴領域から抽出した特徴量を利用して、端末装置１００から受信した特徴量に対応する特徴領域を特定する。例えば、サーバ装置２００は、入力画像の各特徴領域と参照画像の各特徴領域との組について特徴量同士の距離を計算し、距離が最小となる特徴領域の組を特定する。つまり、サーバ装置２００は、特徴点のペアを抽出する。
【００４５】
次に、サーバ装置２００は、抽出した特徴点のペアについて統計処理を実行し、入力画像中に参照画像が含まれているか否かを判定する。サーバ装置２００は、全ての参照画像について上記の判定処理を実行し、入力画像に含まれる参照画像を特定する。そして、サーバ装置２００は、特定した参照画像に対応するランドマークの情報を端末装置１００に送信する。端末装置１００は、サーバ装置２００から受信したランドマークの情報を画面に表示する処理や画像に付与する処理を実行する。
【００４６】
上記のように、図２のシステムは、端末装置１００からサーバ装置２００へと入力画像を送らず、特徴量だけを送る仕組みとしている。そのため、個人情報である入力画像がネットワークＮＷなどを介して端末装置１００の外部へ漏れる心配が少なくなる。また、図２のシステムは、ＢＲＩＥＦなどの画素ペアに基づく特徴量を利用しており、端末装置１００に過度な負荷をかけずにサービスを提供することができる。
【００４７】
以上、第２実施形態に係るシステムについて説明した。以下、このシステムに含まれる端末装置１００及びサーバ装置２００について、さらに説明する。
［２−２．ハードウェア］
図３を参照しながら、端末装置１００が有する機能を実現することが可能なハードウェアについて説明する。図３は、第２実施形態に係る端末装置が有する機能を実現可能なハードウェアの一例を示した図である。
【００４８】
端末装置１００が有する機能は、例えば、図３に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、端末装置１００が有する機能は、コンピュータプログラムを用いて図３に示すハードウェアを制御することにより実現される。
【００４９】
図３に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００５０】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００５１】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００５２】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００５３】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００５４】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００５５】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタやカメラなどが用いられる。
【００５６】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００５７】
以上、端末装置１００のハードウェアについて説明した。なお、上記のハードウェアは、サーバ装置２００が有する機能を実現することも可能である。従って、サーバ装置２００のハードウェアについては説明を省略する。
【００５８】
［２−３．端末装置の機能］
次に、図４〜図１１を参照しながら、端末装置１００の機能について説明する。
図４は、第２実施形態に係る端末装置が有する機能の一例を示したブロック図である。図５は、第２実施形態に係る画素ペア情報の一例を示した図である。図６は、第２実施形態に係る入力画像の特徴点と特徴領域について説明するための図である。図７は、第２実施形態に係る特徴量の計算について説明するための図である。
【００５９】
図８は、第２実施形態に係る特徴点計算の効率化について説明するための第１の図である。図９は、第２実施形態に係る特徴点計算の効率化について説明するための第２の図である。図１０は、第２実施形態に係る特徴点計算の効率化について説明するための第３の図である。図１１は、第２実施形態に係る特徴点計算の効率化について説明するための第４の図である。
【００６０】
図４に示すように、端末装置１００は、記憶部１０１、画像取得部１０２、特徴点設定部１０３、特徴量計算部１０４、及び送信部１０５を有する。
なお、記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。画像取得部１０２、特徴点設定部１０３、及び特徴量計算部１０４の機能は、上述したＣＰＵ９０２などを用いて実現できる。送信部１０５の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。
【００６１】
（画素ペア情報１０１ａについて）
記憶部１０１には、画素ペア情報１０１ａが格納される。画素ペア情報１０１ａは、画像の特徴点毎に設定される特徴領域の特徴量を計算する際に用いる画素のペア（以下、画素ペア）を表す情報である。例えば、画素ペア情報１０１ａには、画素ペアを成す２つの画素の位置を示す位置情報が含まれる。なお、特徴領域は、例えば、特徴点を中心とする矩形領域であり、３２画素×３２画素や４８画素×４８画素などのサイズに設定される。
【００６２】
画素ペア情報１０１ａの一例を図５に示す。図５に示すように、画素ペア情報１０１ａには、画素ペアＬｋ（ｋ＝１、２、…）を成す２つの画素の座標（Ｘ１，Ｙ１）及び（Ｘ２，Ｙ２）が含まれる。画素の座標は、特徴領域の左上を原点（０，０）とした座標値で表現される。また、画素ペアの数は、例えば、１２８個、２５６個、５１２個などに設定される。例えば、画素ペアの数を２５６個に設定した場合、特徴領域毎に２５６個の画素ペアが設定される。
【００６３】
（特徴点の設定について）
再び図４を参照する。画像取得部１０２は、ランドマークの認識対象となる画像（以下、入力画像Ｐｉｎ）を取得する。例えば、画像取得部１０２は、外部の記憶装置（非図示）又は端末装置１００に接続されたカメラ（非図示）から入力画像Ｐｉｎを取得する。また、画像取得部１０２は、端末装置１００が有するカメラ機能を利用して入力画像Ｐｉｎを取得してもよい。このようにして画像取得部１０２により取得された入力画像Ｐｉｎは、記憶部１０１に格納される。
【００６４】
特徴点設定部１０３は、記憶部１０１に格納された入力画像Ｐｉｎを読み出し、読み出した入力画像Ｐｉｎに複数の特徴点を設定する。例えば、特徴点設定部１０３は、図６に示すように、等間隔に配置された複数の特徴点を抽出する方法（Ｄｅｎｓｅ  Ｓａｍｐｌｉｎｇ）を用いて入力画像Ｐｉｎに特徴点を設定する。但し、特徴点の設定にはＦＡＳＴ（Features from Accelerated Segment Test）などの方法も適用できる。
【００６５】
図６に示すように、特徴点Ｗｉｎを基準に特徴領域Ａｉｎが設定される。なお、入力画像Ｐｉｎに設定される特徴点をＷｉｎと表記する。また、ｍ番目の特徴点をＷｉｎ（ｍ）、ｍ＋１番目の特徴点をＷｉｎ（ｍ＋１）と表記する。さらに、ｍ番目の特徴点Ｗｉｎ（ｍ）を基準に設定される特徴領域をＡｉｎ（ｍ）と表記する。特徴点設定部１０３により設定された特徴点Ｗｉｎ及び特徴領域Ａｉｎの情報は、記憶部１０１に格納されると共に、特徴量計算部１０４に入力される。
【００６６】
（特徴量の計算及び送信について）
再び図４を参照する。特徴量計算部１０４は、画素ペア情報１０１ａを参照し、特徴点設定部１０３により設定された各特徴領域Ａｉｎの特徴量を計算する。
【００６７】
例えば、特徴量計算部１０４は、図７に示すように、入力画像Ｐｉｎの特徴領域Ａｉｎに設定された画素ペアに含まれる各画素の輝度を抽出する（Ｃ１）。次いで、特徴量計算部１０４は、抽出した２つの輝度の差分を求めて、各画素ペアの輝度差を計算する（Ｃ２）。但し、特徴量計算部１０４は、後述する効率化手法により一部の画素ペアについて輝度差の計算を省略してもよい。次いで、特徴量計算部１０４は、計算した輝度差の符号（正負）を表すビット値を並べたビット列（以下、局所特徴量）を生成する（Ｃ３）。
【００６８】
輝度差の符号とビット値とは予め対応付けられている。例えば、正の符号がビット値「１」に対応付けられ、負の符号がビット値「０」に対応付けられている。また、輝度差を計算する際、画素ペアを成す２つの画素のうち、どちらの画素の輝度から、他方の画素の輝度を減算するかも予め設定されている。例えば、座標（Ｘ１，Ｙ１）に位置する画素の輝度から座標（Ｘ２，Ｙ２）に位置する画素の輝度を減算した輝度差の符号を局所特徴量の生成に利用することが予め設定されている。また、上記Ｃ３の工程でビット値を並べる順番も予め設定されている。
【００６９】
２５６個の画素ペアが設定された場合、２５６ビットのビット列で表現された局所特徴量が得られる。局所特徴量は、入力画像Ｐｉｎに含まれる全ての特徴領域Ａｉｎについて計算される。入力画像Ｐｉｎについて特徴量計算部１０４により計算された局所特徴量の組は、送信部１０５に入力される。送信部１０５は、特徴量計算部１０４から入力された局所特徴量をサーバ装置２００へ送信する。このように、入力画像Ｐｉｎそのものは送信されないため、ユーザの個人情報が外部へ漏洩するリスクを低減できる。
【００７０】
（特徴量計算の効率化手法について）
ここで、図６、図８〜図１１を参照しながら、上述した特徴量計算の効率化手法について説明する。
【００７１】
既に説明したように、特徴点Ｗｉｎの配置及び特徴領域Ａｉｎのサイズは予め設定される。設定の例としては、図６に示すように、隣り合う特徴領域Ａｉｎ同士が一部で重なるように各特徴領域Ａｉｎを配置する設定や、隣り合う特徴領域Ａｉｎ同士が接するように各特徴領域Ａｉｎを配置する設定などがある。
【００７２】
図６の例は、左右の方向（Ｘ方向）に並んで配置された特徴領域Ａｉｎ同士について、特徴領域Ａｉｎの１／２の部分だけ重なるように設定した場合を示している。この例において、ｍ番目の特徴点Ｗｉｎ（ｍ）を基準に設定された特徴領域Ａｉｎ（ｍ）の右１／２の部分は、ｍ＋１番目の特徴点Ｗｉｎ（ｍ＋１）を基準に設定された特徴領域Ａｉｎ（ｍ＋１）の左１／２の部分と重複している。また、この例において、上下に隣り合う特徴領域Ａｉｎ同士は接するように設定されている。
【００７３】
特徴領域Ａｉｎ（ｍ）、Ａｉｎ（ｍ＋１）の局所特徴量を計算する場合、特徴量計算部１０４は、特徴領域Ａｉｎ（ｍ）、Ａｉｎ（ｍ＋１）にそれぞれ画素ペアＬｋ（ｋ＝１，２，…）を配置し、各画素ペアＬｋの輝度差に基づくビット値を計算する。
【００７４】
特徴領域Ａｉｎ（ｍ）、Ａｉｎ（ｍ＋１）について各々独立にビット値の計算を実行してもよいが、特徴領域Ａｉｎ（ｍ）、Ａｉｎ（ｍ＋１）の重複部分に関するビット値の計算は冗長である。特徴領域Ａｉｎ（ｍ＋１）の左半分についてビット値を計算する際に、特徴領域Ａｉｎ（ｍ）の右半分について計算したビット値を流用できれば、局所特徴量の計算量を低減することができる。
【００７５】
ビット値を流用するためには、特徴領域Ａｉｎ（ｍ）の右半分の領域（右領域）における画素ペアの配置と、特徴領域Ａｉｎ（ｍ＋１）の左半分の領域（左領域）における画素ペアの配置とが同じであることが前提となる。但し、特徴領域Ａｉｎ（ｍ）の右領域にある画素ペアの一部だけが、特徴領域Ａｉｎ（ｍ＋１）の左領域にある画素ペアと同じ配置であっても、ビット値の流用による計算量の低減効果は得られる。
【００７６】
そこで、各特徴領域Ａｉｎにおいて、右領域と左領域とで同じ配置となる画素ペア（流用可能な画素ペア）が含まれるように画素ペア情報１０１ａが設定される。この場合、特徴量計算部１０４は、図８に示すように、特徴領域Ａｉｎ（ｍ）の局所特徴量を計算した後、流用可能な画素ペアに対応するビット値を保持する。
【００７７】
次いで、特徴量計算部１０４は、特徴領域Ａｉｎ（ｍ＋１）の局所特徴量を計算する際、特徴領域Ａｉｎ（ｍ＋１）の左領域にある流用可能な画素ペアに対応するビット値の計算を省略し、保持していたビット値を利用して局所特徴量を求める。また、特徴量計算部１０４は、特徴領域Ａｉｎ（ｍ＋１）の局所特徴量を計算した後、特徴領域Ａｉｎ（ｍ＋２）の計算に流用可能な画素ペアに対応するビット値を保持する。
【００７８】
上記のように、重複領域に設定される画素ペアの一部について局所特徴量の計算時に、既に計算済みのビット値を流用することで、局所特徴量の計算量を低減できる。
ここで、上記の計算方法を適用可能にする画素ペアの配置について、さらに説明する。
【００７９】
図９に示すように、画素ペアは、特徴領域Ａｉｎの右領域と左領域との境界を跨ぐように２つの画素が配置されるもの（Ａ群）と、左領域に各画素が配置されるもの（Ｂ群）と、右領域に各画素が配置されるもの（Ｃ群）とに分類できる。Ｂ群に属する画素ペアの左領域における配置と、Ｃ群に属する画素ペアの右領域における配置とは同じである。つまり、左領域と右領域とを重ねた場合、左領域に設定された各画素ペアの位置と右領域に設定された各画素ペアの位置とが一致する。
【００８０】
上記のようにＡ群、Ｂ群、Ｃ群に属する画素ペアの配置を決定し、全ての画素ペアの配置を統合した全体が、画素ペア情報１０１ａに記録されて局所特徴量の計算に利用される。画素ペア情報１０１ａは、画素ペア毎にＡ群、Ｂ群、Ｃ群を特定する属性情報を含んでいてもよい。例えば、図１０に示すように、特徴領域Ａｉｎ（ｍ）、Ａｉｎ（ｍ＋１）に画素ペアＬ１、Ｌ２、…、Ｌ６を配置すると、重複領域において画素ペアＬ５、Ｌ６の位置が一致する。よって、図８に示した局所特徴量の効率的な計算が実現可能になる。
【００８１】
Ａ群、Ｂ群、Ｃ群に属する各画素ペアの特徴を表すビット値を流用しやすくするため、図１１に示すように、Ａ群のビット列、Ｂ群のビット列、Ｃ群のビット列を区分けした局所特徴量の構造を採用することが好ましい。この構造を採用した場合、例えば、図１１に示すように、特徴領域Ａｉｎ（ｍ）の局所特徴量からＣ群のビット列を抽出し、特徴領域Ａｉｎ（ｍ＋１）の局所特徴量のうちＢ群のビット列の部分に挿入することで、計算結果の流用が実現できる。
【００８２】
上記のように、図８に示した計算結果の流用、図９に示した画素ペアの配置、及び図１１に示した局所特徴量の構造を組み合わせることで、局所特徴量の計算を効率化することが可能になる。また、後述するように、図９に示した画素ペアの配置、及び図１１に示した局所特徴量の構造を採用することで、サーバ装置２００の処理も効率化される。
【００８３】
以上、端末装置の機能について説明した。
［２−４．サーバ装置の機能］
次に、図１２〜図２０を参照しながら、サーバ装置２００の機能について説明する。
【００８４】
図１２は、第２実施形態に係るサーバ装置が有する機能の一例を示したブロック図である。図１３は、第２実施形態に係る参照画像情報（参照画像管理テーブル）の一例を示した図である。図１４は、第２実施形態に係る参照画像情報（特徴量管理テーブル）の一例を示した図である。図１５は、第２実施形態に係る距離情報（距離記録テーブル）の一例を示した図である。
【００８５】
図１６は、第２実施形態に係る参照画像の特徴点と特徴領域について説明するための図である。図１７は、第２実施形態に係る投票処理について説明するための図である。図１８は、第２実施形態に係る判定について説明するための図である。図１９は、第２実施形態に係る対応点探索（距離計算）の効率化について説明するための第１の図である。図２０は、第２実施形態に係る対応点探索（距離計算）の効率化について説明するための第２の図である。
【００８６】
図１２に示すように、サーバ装置２００は、記憶部２０１、受信部２０２、距離計算部２０３、投票処理部２０４、及び判定部２０５を有する。
記憶部２０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。受信部２０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。距離計算部２０３、投票処理部２０４、及び判定部２０５の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００８７】
（画素ペア情報２０１ａ、参照画像情報２０１ｂ、距離情報２０１ｃについて）
記憶部２０１には、参照画像Ｐｒが格納されている。また、記憶部２０１には、画素ペア情報２０１ａ、参照画像情報２０１ｂ、及び距離情報２０１ｃが格納される。
【００８８】
画素ペア情報２０１ａは、端末装置１００の記憶部１０１に格納されている画素ペア情報１０１ａと同じ画素ペアに関する情報である。参照画像情報２０１ｂは、参照画像Ｐｒに関連する情報である。距離情報２０１ｃは、局所特徴点同士の距離を計算する際に一部の計算結果が格納される距離記録テーブルを含む情報である。
【００８９】
参照画像情報２０１ｂは、参照画像管理テーブル、及び特徴量管理テーブルを含む。記憶部２０１には、様々なランドマークに対応する参照画像Ｐｒが格納されている。また、１つのランドマークについて複数のサイズ、複数の撮影方向に対応する複数の参照画像Ｐｒが記憶部２０１に格納されている。これらの参照画像Ｐｒのデータとランドマークとを対応付ける情報が参照画像管理テーブルである。
【００９０】
参照画像管理テーブルは、図１３に示すように、ランドマーク名と参照画像Ｐｒの画像データ（又は画像データへのリンク）とを対応付けるデータベースである。参照画像管理テーブルの各レコードは識別番号ＩＤ＃１により特定される。
【００９１】
特徴量管理テーブルは、図１４に示すように、参照画像Ｐｒに含まれる各特徴点と、特徴点毎に計算された局所特徴量とを対応付けるデータベースである。特徴量管理テーブルは、識別番号ＩＤ＃１で特定される各参照画像Ｐｒについて生成される。特徴量管理テーブルの各レコードは識別番号ＩＤ＃２により特定される。
【００９２】
距離記録テーブルは、図１５に示すように、入力画像Ｐｉｎの特徴領域Ａｉｎ（ｍ）（ｍ＝１，２，…，Ｍ）と、参照画像Ｐｒの特徴領域Ａｒ（ｎ）（ｎ＝１，２，…，Ｎ）との距離Ｄを計算する際に、計算結果の一部（距離ｄ）が記録されるデータベースである。距離ｄについては、後述する特徴量計算の効率化手法に関する説明の中で詳述する。
【００９３】
（特徴点の設定について）
参照画像Ｐｒの特徴点は、入力画像Ｐｉｎに特徴点を設定する場合と同様に、Ｄｅｎｓｅ  ＳａｍｐｌｉｎｇやＦＡＳＴなどの方法により設定される。
【００９４】
図１６に示すように、特徴点Ｗｒを基準に特徴領域Ａｒが設定される。参照画像Ｐｒに設定される特徴点をＷｒと表記する。また、ｎ番目の特徴点をＷｒ（ｎ）、ｎ＋１番目の特徴点をＷｒ（ｎ＋１）と表記する。さらに、ｎ番目の特徴点Ｗｒ（ｎ）を基準に設定される特徴領域をＡｒ（ｎ）と表記する。特徴領域Ａｒ（ｎ）（ｎ＝１，２，…，Ｎ）の局所特徴量は、予め計算されて特徴量管理テーブルに格納されている。局所特徴量の計算は、特徴領域Ａｉｎの局所特徴量を計算する方法と同じである。
【００９５】
（距離計算について）
再び図１２を参照する。受信部２０２は、端末装置１００から入力画像Ｐｉｎの局所特徴量を受信する。受信部２０２により受信された入力画像Ｐｉｎの局所特徴量は、距離計算部２０３に入力される。距離計算部２０３は、局所特徴量に基づき、入力画像Ｐｉｎの各特徴領域Ａｉｎと、参照画像Ｐｒの各特徴領域Ａｒとの距離Ｄを計算する。距離Ｄは、特徴領域Ａｉｎ、Ａｒ間における特徴の違いを表す。
【００９６】
ここで、特徴領域Ａｉｎ、Ａｒの距離Ｄを計算する方法について、さらに説明する。
以下では、特徴領域Ａｉｎの局所特徴量をＬＦｉｎと表記し、特徴領域Ａｒの局所特徴量をＬＦｒと表記する。距離計算部２０３は、下記の式（１）により、局所特徴量ＬＦｉｎ、ＬＦｒからビット列ＨＶを計算する。次いで、距離計算部２０３は、ビット列ＨＶの長さ（ＨＶに含まれるビット値１の数）を計算する。ビット列ＨＶの長さは、距離Ｄであり、特徴領域Ａｉｎ、Ａｒ間における特徴の違いを表す。
【００９７】
ＨＶ＝｛ＬＦｉｎ  ＸＯＲ  ＬＦｒ｝
…（１）
上記の式（１）に含まれるＸＯＲは排他的論理和演算を表す。この演算は、局所特徴量ＬＦｉｎ、ＬＦｒの各ビット値について、一致する場合に１、不一致の場合に０とする演算である。そのため、この演算により１となったビット値の数を合計することで、局所特徴量に基づく特徴領域Ａｉｎ、Ａｒ間の距離Ｄ（特徴の違い）が得られる。
【００９８】
距離計算部２０３は、全ての参照画像Ｐｒについて、上記の方法により入力画像Ｐｉｎの各特徴領域Ａｉｎと、参照画像Ｐｒの各特徴領域Ａｒとの間の距離Ｄを計算する。但し、距離計算部２０３は、後述する効率化手法により一部の計算を省略し、効率的に上記の距離Ｄを計算する。距離計算部２０３により計算された距離Ｄの情報は、投票処理部２０４に入力される。
【００９９】
（投票処理について）
投票処理部２０４は、特徴領域Ａｒ、Ａｉｎの各組について計算された距離Ｄに基づき、類似度が最も高い（距離Ｄが最も小さくなる）特徴領域Ａｒ、Ａｉｎの組を抽出する。例えば、投票処理部２０４は、図１７に示すように、特徴領域Ａｒ（ｎ）について、特徴領域Ａｉｎ（１）、…、Ａｉｎ（Ｍ）の中から距離Ｄが最小となる特徴領域Ａｉｎ（ｍ）を抽出する（対応点探索）。
【０１００】
また、投票処理部２０４は、特徴領域Ａｒの特徴点Ｗｒと参照画像Ｐｒの中心との位置関係（例えば、ベクトル）を利用し、抽出した特徴領域Ａｉｎの特徴点Ｗｉｎを基準に、参照画像Ｐｒの中心に対応する点（以下、特定点）を特定する（中心推定）。例えば、投票処理部２０４は、既知である特徴領域Ａｒの特徴点から参照画像Ｐｒの中心への向き及び距離（ベクトル）に基づき、対応する入力画像Ｐｉｎの特徴点から同じ向き及び距離へ移動した点を特定点とする。
【０１０１】
図１７の場合、投票処理部２０４は、特徴領域Ａｒ（ｎ）の特徴点Ｗｒ（ｎ）と参照画像Ｐｒの中心との位置関係を利用し、特徴領域Ａｉｎ（ｍ）の特徴点Ｗｉｎ（ｍ）を基準に特定点（白矩形の点）を特定する。この特定処理は、入力画像Ｐｉｎの特徴点と、対応する参照画像Ｐｒの特徴点とが一致するように参照画像Ｐｒを入力画像Ｐｉｎに重ねた場合に、入力画像Ｐｉｎにおける参照画像Ｐｒの中心を特定する処理に相当する。
【０１０２】
入力画像Ｐｉｎの横幅をｗｉ、高さをｈｉ、参照画像Ｐｒの横幅をｗｒ、高さをｈｒとすると、特定点の座標（Ｘｖ，Ｙｖ）は、下記の式（２）及び式（３）により計算できる。下記の式（２）及び式（３）において、特徴点Ｗｒの座標を（Ｘｒ，Ｙｒ）と表記し、特徴点Ｗｒに対応する特徴点Ｗｉｎの座標を（Ｘｉ，Ｙｉ）と表記している。
【０１０３】
Ｘｖ  ＝  Ｘｉ−Ｘｒ＋ｗｒ／２
…（２）
Ｙｖ  ＝  Ｙｉ−Ｙｒ＋ｈｒ／２
…（３）
特定点の座標を計算した投票処理部２０４は、統計的手法（例えば、投票）により入力画像Ｐｉｎに参照画像Ｐｒが含まれるか否かを判定する。投票は、図１７に示すように、入力画像Ｐｉｎと同じサイズの領域に枡目を設けた投票マップを利用して行われる。投票マップの各枡目にはカウンタが対応付けられている。投票処理部２０４は、特定点の座標を含む枡目を特定し、特定した枡目に対応するカウンタのカウント値（投票数）をカウントアップする。このカウントアップに係る処理が投票である。
【０１０４】
投票処理部２０４は、参照画像Ｐｒの各特徴点について投票を行う。投票が終了した後の投票マップから、図１８に示すように投票数の分布が得られる。投票が終了すると、判定部２０５は、投票数の最大値を抽出する。判定部２０５は、抽出した最大数と予め設定した閾値Ｔｈとを比較する。一変形例として、判定部２０５は、最大数を投票マップ内の全投票数で割った正規化値と閾値とを比較してもよい。なお、閾値は、様々な画像を用いて実験し、正解確率などの評価値が許容範囲内になるように設定される。
【０１０５】
最大数が閾値Ｔｈより大きい場合、判定部２０５は、入力画像Ｐｉｎの中に参照画像Ｐｒが存在すると判定する。この場合、判定部２０５は、最大数に対応する枡目の位置を参照画像Ｐｒの中心位置と判断する。一方、最大数が閾値Ｔｈより小さい場合、判定部２０５は、入力画像Ｐｉｎの中に参照画像Ｐｒが存在しないと判定する。投票マップを利用して判定を行うことで、入力画像Ｐｉｎと参照画像Ｐｒとの間に存在する軽微な誤差を吸収し、ロバストな判定を行うことができる。
【０１０６】
入力画像Ｐｉｎの中に参照画像Ｐｒが存在すると判定した場合、判定部２０５は、その参照画像Ｐｒに対応する参照画像管理テーブルを記憶部２０１から読み出し、参照画像Ｐｒに対応するランドマークの情報を端末装置１００に送信する。ランドマークの情報は、例えば、ランドマークの名称や位置、参照画像管理テーブルのＩＤなどである。
【０１０７】
ランドマーク毎にタグ情報を用意しておき、判定結果に応じてランドマークに対応するタグ情報が端末装置１００に送信されるようにしてもよい。この場合、端末装置１００でタグ情報が入力画像Ｐｉｎに自動付与される仕組みとしてもよい。
【０１０８】
複数のランドマークが存在すると判定された場合、判定部２０５は、それら全てのランドマークの情報を端末装置１００に送信してもよいし、投票数の合計値や最大数が最も大きいランドマークの情報を端末装置１００に送信してもよい。
【０１０９】
参照画像管理テーブルに含まれる全ての参照画像Ｐｒについて、入力画像Ｐｉｎの中に参照画像Ｐｒが存在しないと判定した場合、判定部２０５は、ランドマークが存在しない旨を示すエラー情報を端末装置１００に送信する。
【０１１０】
（対応点探索の効率化手法について）
ここで、図９、図１７、図１９及び図２０を参照しながら、対応点探索の効率化手法について説明する。
【０１１１】
既に説明したように、距離計算部２０３は、対応点探索のために、参照画像Ｐｒの各特徴点Ｗｒと、入力画像Ｐｉｎの各特徴点Ｗｉｎとの間で局所特徴量の距離Ｄを計算する。例えば、図１７に示すように、距離計算部２０３は、特徴点Ｗｒ（ｎ）（ｎ＝１，２，…，Ｎ）を基準に設定された特徴領域Ａｒ（ｎ）と、特徴点Ｗｉｎ（ｍ）（ｍ＝１，２，…，Ｍ）を基準に設定された特徴領域Ａｉｎ（ｍ）とについて距離Ｄを計算する。特徴点Ｗｒ、Ｗｉｎの数が多くなればなるほど、距離Ｄの計算にかかる負荷は高くなる。そのため、距離Ｄの計算にかかる負荷を低減できれば、対応点探索の処理を効率化できる。
【０１１２】
例えば、特徴点Ｗｉｎ（ｍ）、Ｗｉｎ（ｍ＋１）と、特徴点Ｗｒ（ｎ）、Ｗｒ（ｎ＋１）との距離Ｄを計算する場合、図１９に示すように、距離計算部２０３は、４通りの計算Ｓ１、…、Ｓ４を実行する。
【０１１３】
距離計算部２０３は、（Ｓ１）特徴領域Ａｉｎ（ｍ）の局所特徴量及び特徴領域Ａｒ（ｎ）の局所特徴量に基づく距離Ｄの計算、（Ｓ２）特徴領域Ａｉｎ（ｍ）の局所特徴量及び特徴領域Ａｒ（ｎ＋１）の局所特徴量に基づく距離Ｄの計算を実行する。また、距離計算部２０３は、（Ｓ３）特徴領域Ａｉｎ（ｍ＋１）の局所特徴量及び特徴領域Ａｒ（ｎ）の局所特徴量に基づく距離Ｄの計算、（Ｓ４）特徴領域Ａｉｎ（ｍ＋１）の局所特徴量及び特徴領域Ａｒ（ｎ＋１）の局所特徴量に基づく距離Ｄの計算を実行する。
【０１１４】
特徴領域Ａｉｎ（ｍ）の右領域と特徴領域Ａｉｎ（ｍ＋１）の左領域とは重複領域である。また、特徴領域Ａｒ（ｎ）の右領域と特徴領域Ａｉｎ（ｎ＋１）の左領域とは重複領域である。また、図９に示すように、左領域に配置されるＢ群の画素ペアと、右領域に配置されるＣ群の画素ペアとは同じ配置である。
【０１１５】
つまり、特徴領域Ａｉｎ（ｍ）の局所特徴量のうちＣ群のビット列は、特徴領域Ａｉｎ（ｍ＋１）の局所特徴量のうちＢ群のビット列と同じである。さらに、特徴領域Ａｒ（ｎ）の局所特徴量のうちＣ群のビット列は、特徴領域Ａｒ（ｎ＋１）の局所特徴量のうちＢ群のビット列と同じである。従って、Ｓ１で計算される距離ＤのうちＣ群のビット列に関する計算結果（距離ｄ）は、Ｓ４で計算される距離ＤのうちＢ群のビット列に関する計算結果と一致する。そのため、Ｓ１で計算した計算結果の一部（距離ｄ）をＳ４の計算に流用すれば、Ｄ４の計算の一部を省略して距離Ｄの計算にかかる負荷を低減できる。
【０１１６】
距離計算部２０３は、図２０に示すように、Ａ群のビット列同士、Ｂ群のビット列同士、Ｃ群のビット列同士で排他的論理和演算を実行し、それぞれＡ群の距離ＤＡ、Ｂ群の距離ＤＢ、Ｃ群の距離ＤＣを計算する。そして、距離計算部２０３は、Ａ群の距離ＤＡ、Ｂ群の距離ＤＢ、Ｃ群の距離ＤＣを合計して距離Ｄを求める。例えば、特徴領域Ａｉｎ（ｍ）、Ａｒ（ｎ）の距離Ｄ（ｍ，ｎ）は、Ａ群の距離ＤＡ（ｍ，ｎ）、Ｂ群の距離ＤＢ（ｍ，ｎ）、Ｃ群の距離ＤＣ（ｍ，ｎ）の和で与えられる。
【０１１７】
距離Ｄ（ｍ，ｎ）を計算した距離計算部２０３は、特徴領域Ａｉｎ（ｍ＋１）、Ａｒ（ｎ＋１）の距離Ｄ（ｍ＋１，ｎ＋１）を計算する際に流用するため、Ｃ群の距離ＤＣ（ｍ，ｎ）を保持する。このとき、距離計算部２０３は、距離ＤＣ（ｍ，ｎ）を距離記録テーブル（図１５を参照）のｄ（ｍ，ｎ）の欄に格納する。
【０１１８】
距離計算部２０３は、特徴領域Ａｉｎ（ｍ＋１）、Ａｒ（ｎ＋１）の距離Ｄ（ｍ＋１，ｎ＋１）を計算する際、Ｂ群の距離ＤＢ（ｍ＋１，ｎ＋１）の計算を省略し、距離記録テーブルのｄ（ｍ，ｎ）の欄に格納した値をＢ群の距離ＤＢ（ｍ＋１，ｎ＋１）として利用する。つまり、距離計算部２０３は、Ａ群の距離ＤＡ（ｍ＋１，ｎ＋１）、ｄ（ｍ，ｎ）欄の値（距離ＤＣ（ｍ，ｎ））、Ｃ群の距離ＤＣ（ｍ＋１，ｎ＋１）の和を距離Ｄ（ｍ＋１，ｎ＋１）とする。
【０１１９】
上記の例は、画像内に配置された複数の特徴点のうち、左上に配置された特徴点を始点として、右側へと順番に処理対象を移動させ、右端の特徴点の次に、下段の左端の特徴点を処理対象とし、右下の特徴点まで順次処理を行う場合を示した。この場合、左端に位置する特徴点については流用可能な距離ｄはないため、距離計算部２０３は、右端に位置する特徴点について距離を計算する際にＣ群の距離ＤＣを保持しない。このように、端部に位置する特徴点に関する処理を実行する際、距離計算部２０３は、流用可能な距離ｄの有無に応じて図２０に示した処理を実行するか否かを判断する。
【０１２０】
上記の方法を適用すると、図１９の例では計算量が３／４に削減される。このように、距離Ｄの計算負荷を低減することで、対応点探索にかかる処理が効率化され、画像同士のマッチングにかかる処理が高速化される。
【０１２１】
以上、サーバ装置の機能について説明した。
［２−５．処理の流れ］
次に、図２１〜図３３を参照しながら、端末装置１００及びサーバ装置２００が実行する処理の流れについて説明する。
【０１２２】
（２−５−１．端末装置の動作）
まず、図２１及び図２２を参照しながら、端末装置１００の動作に係る処理の流れについて説明する。
【０１２３】
図２１は、第２実施形態に係る端末装置の動作について説明するためのフロー図である。図２２は、第２実施形態に係る端末装置の動作のうち、特徴量の計算に関する動作について説明するためのフロー図である。
【０１２４】
（端末装置の動作）
（Ｓ１０１）画像取得部１０２は、ランドマークの認識対象となる画像（入力画像Ｐｉｎ）を取得する。
【０１２５】
例えば、画像取得部１０２は、外部の記憶装置又は端末装置１００に接続されたカメラから入力画像Ｐｉｎを取得する。また、画像取得部１０２は、端末装置１００が有するカメラ機能を利用して入力画像Ｐｉｎを取得してもよい。画像取得部１０２により取得された入力画像Ｐｉｎは、記憶部１０１に格納される。
【０１２６】
（Ｓ１０２）特徴点設定部１０３は、記憶部１０１に格納された入力画像Ｐｉｎを読み出し、読み出した入力画像Ｐｉｎに複数の特徴点Ｗｉｎを設定する。
例えば、特徴点設定部１０３は、等間隔に配置された複数の特徴点Ｗｉｎを抽出する方法（Ｄｅｎｓｅ  Ｓａｍｐｌｉｎｇ）を用いて入力画像Ｐｉｎに特徴点Ｗｉｎを設定する。但し、特徴点Ｗｉｎの設定にはＦＡＳＴなどの方法も適用できる。特徴点設定部１０３により設定された特徴点Ｗｉｎ及び特徴領域Ａｉｎの情報は、記憶部１０１に格納される。また、特徴点Ｗｉｎ及び特徴領域Ａｉｎの情報は、特徴量計算部１０４に入力される。
【０１２７】
（Ｓ１０３）特徴量計算部１０４は、Ｓ１０２で設定された特徴点Ｗｉｎの１つを選択する。
（Ｓ１０４）特徴量計算部１０４は、画素ペア情報１０１ａを参照し、Ｓ１０３で選択した特徴点Ｗｉｎに対応する特徴領域Ａｉｎの局所特徴量を計算する。
【０１２８】
例えば、特徴量計算部１０４は、入力画像Ｐｉｎの特徴領域Ａｉｎから画素ペア毎に各画素の輝度を抽出する（Ｃ１）。次いで、特徴量計算部１０４は、画素ペア毎に抽出した２つの輝度の差分を求めることで、各画素ペアの輝度差を計算する（Ｃ２）。次いで、特徴量計算部１０４は、計算した輝度差の符号（正負）を表すビット値を並べたビット列（局所特徴量）を生成する（Ｃ３）。
【０１２９】
（Ｓ１０５）特徴量計算部１０４は、入力画像Ｐｉｎに含まれる全ての特徴点Ｗｉｎについて特徴量の計算を終えたか否かを判定する。入力画像Ｐｉｎに含まれる全ての特徴点Ｗｉｎについて特徴量の計算を終えた場合、処理はＳ１０６へと進む。一方、入力画像Ｐｉｎに含まれる全ての特徴点Ｗｉｎについて特徴量の計算を終えていない場合、処理はＳ１０３へと進む。
【０１３０】
（Ｓ１０６）特徴量計算部１０４は、入力画像Ｐｉｎについて計算した局所特徴量の組を送信部１０５に入力する。そして、送信部１０５は、特徴量計算部１０４から入力された局所特徴量をサーバ装置２００へ送信する。Ｓ１０６の処理が完了すると、図２１に示した一連の処理は終了する。
【０１３１】
ここで、Ｓ１０４の処理について、さらに説明する。
（Ｓ１１１）特徴量計算部１０４は、画素ペア情報１０１ａを参照し、特徴点Ｗｉｎの周辺に設定された特徴領域Ａｉｎに複数の画素ペアを設定する。
【０１３２】
Ｓ１１１の処理後、Ｓ１１２〜Ｓ１１６の処理は、Ａ群、Ｂ群、Ｃ群の順に、各群に属する画素ペアの集合について順次実行される。Ａ群は、特徴領域Ａｉｎの左側１／２の範囲に一方の画素が含まれ、右側１／２の範囲に他方の画素が含まれる画素ペアの集合である。Ｂ群は、特徴領域Ａｉｎの左側１／２の範囲に両方の画素が含まれる画素ペアの集合である。Ｃ群は、特徴領域Ａｉｎの右側１／２の範囲に両方の画素が含まれる画素ペアの集合である。
【０１３３】
（Ｓ１１２）特徴量計算部１０４は、流用可能なビット列があるか否かを判定する。Ｂ群の画素ペアとＣ群の画素ペアとは同じ配置である。そのため、例えば、特徴領域Ａｉｎ（ｍ）の左隣に位置する特徴領域Ａｉｎ（ｍ−１）の局所特徴量が計算済みの場合、特徴領域Ａ（ｍ−１）のＣ群のビット列を特徴領域Ａ（ｍ）のＢ群のビット列に流用できる。
【０１３４】
処理対象がＡ群又はＣ群である場合、流用可能なビット列はないため、処理はＳ１１３へと進む。処理対象がＢ群であり、流用可能なビット列がある場合、特徴量計算部１０４は、流用元となるＣ群のビット列を流用先となるＢ群のビット列とする。そして、Ｓ１１３〜Ｓ１１６の処理は省略され、処理対象がＣ群に切り替わる。処理対象がＢ群であり、流用可能なビット列がない場合、処理はＳ１１３へと進む。
【０１３５】
（Ｓ１１３）特徴量計算部１０４は、処理対象の群に属する画素ペアを１つ選択する。
（Ｓ１１４）特徴量計算部１０４は、Ｓ１１３で選択した画素ペアの輝度差を計算する。例えば、特徴量計算部１０４は、入力画像Ｐｉｎの特徴領域Ａｉｎから画素ペアの各画素の輝度を抽出する。そして、特徴量計算部１０４は、抽出した２つの輝度の差分を求めることで、画素ペアの輝度差を計算する。
【０１３６】
（Ｓ１１５）特徴量計算部１０４は、Ｓ１１４で計算した輝度差の符号（正負）に対応するビット値を選択し、選択したビット値を局所特徴量のビット値に設定する。
輝度差の符号とビット値とは予め対応付けられている。例えば、正の符号がビット値「１」に対応付けられ、負の符号がビット値「０」に対応付けられている。また、輝度差を計算する際、画素ペアを成す２つの画素のうち、どちらの画素の輝度から、他方の画素の輝度を減算するかも予め設定されている。例えば、座標（Ｘ１，Ｙ１）に位置する画素の輝度から座標（Ｘ２，Ｙ２）に位置する画素の輝度を減算した輝度差の符号を局所特徴量の生成に利用することが予め設定されている。
【０１３７】
（Ｓ１１６）特徴量計算部１０４は、処理対象の群に属する全ての画素ペアを選択し終えたか否かを判定する。全ての画素ペアを選択し終えていない場合、処理はＳ１１３へと進む。一方、全ての画素ペアを選択し終えた場合、処理はＳ１１７へと進む。
【０１３８】
（Ｓ１１７）特徴量計算部１０４は、各群のビット列を結合して局所特徴量とする。また、特徴量計算部１０４は、Ｃ群のビット列を記憶部１０１に格納して保存する。Ｓ１１７の処理が完了すると、図２２に示した一連の処理は終了する。
【０１３９】
以上、端末装置１００の動作に係る処理の流れについて説明した。
（２−５−２．サーバ装置の動作）
次に、図２３〜図２５を参照しながら、サーバ装置２００の動作に係る処理の流れについて説明する。
【０１４０】
図２３は、第２実施形態に係るサーバ装置の動作について説明するためのフロー図である。図２４は、第２実施形態に係るサーバ装置の動作のうち、参照画像の探索に関する動作について説明するためのフロー図である。図２５は、第２実施形態に係るサーバ装置の動作のうち、距離計算に関する動作について説明するためのフロー図である。
【０１４１】
（Ｓ２０１）受信部２０２は、端末装置１００から入力画像Ｐｉｎの局所特徴量を受信する。受信部２０２により受信された入力画像Ｐｉｎの局所特徴量は、距離計算部２０３に入力される。
【０１４２】
（Ｓ２０２）距離計算部２０３は、参照画像管理テーブルに含まれる参照画像Ｐｒを１つ選択する。
（Ｓ２０３）距離計算部２０３、投票処理部２０４、及び判定部２０５は、Ｓ２０２で選択した参照画像Ｐｒの探索処理を実行する。
【０１４３】
例えば、距離計算部２０３は、参照画像Ｐｒの特徴領域Ａｒと入力画像Ｐｉｎの特徴領域Ａｉｎとの相違度を表す距離Ｄを計算する。投票処理部２０４は、距離計算部２０３が計算した距離Ｄに基づいて投票マップＭＰを生成する。判定部２０５は、投票処理部２０４が生成した投票マップＭＰを利用し、最大の投票数と閾値Ｔｈとの比較結果に基づいて参照画像Ｐｒが入力画像Ｐｉｎに存在するか否かを判断する。
【０１４４】
（Ｓ２０４）判定部２０５は、参照画像管理テーブルに含まれる全ての参照画像Ｐｒを選択し終えたか否かを判定する。参照画像管理テーブルに含まれる全ての参照画像Ｐｒを選択し終えていない場合、処理はＳ２０２へと進む。一方、参照画像管理テーブルに含まれる全ての参照画像Ｐｒを選択し終えた場合、処理はＳ２０５へと進む。
【０１４５】
（Ｓ２０５）判定部２０５は、Ｓ２０３の結果に基づき、少なくとも１つの参照画像Ｐｒが入力画像Ｐｉｎに存在したか否かを判定する。少なくとも１つの参照画像Ｐｒが入力画像Ｐｉｎに存在した場合、処理はＳ２０６へと進む。一方、Ｓ２０３の結果から、少なくとも１つの参照画像Ｐｒが入力画像Ｐｉｎに存在すると判定されなかった場合、処理はＳ２０７へと進む。
【０１４６】
（Ｓ２０６）判定部２０５は、対応する参照画像Ｐｒの参照画像管理テーブルを記憶部２０１から読み出し、参照画像Ｐｒに含まれるランドマークの情報を端末装置１００に送信する。Ｓ２０６の処理が完了すると、図２３に示した一連の処理は終了する。
【０１４７】
（Ｓ２０７）判定部２０５は、ランドマークの検出に失敗した旨を示すエラー情報を端末装置１００に送信する。Ｓ２０７の処理が完了すると、図２３に示した一連の処理は終了する。
【０１４８】
ここで、Ｓ２０３の処理について、さらに説明する。
（Ｓ２２１）距離計算部２０３は、参照画像Ｐｒの特徴点Ｗｒを１つ選択する。
（Ｓ２２２）距離計算部２０３は、受信部２０２により受信された入力画像Ｐｉｎの局所特徴量に基づき、入力画像Ｐｉｎの各特徴領域Ａｉｎと参照画像Ｐｒの各特徴領域Ａｒとの距離Ｄ（特徴の相違度）を計算する。例えば、距離計算部２０３は、上記の式（１）に従って、局所特徴量ＬＦｉｎ、ＬＦｒからビット列ＨＶを計算する。但し、ＬＦｉｎは特徴領域Ａｉｎの局所特徴量であり、ＬＦｒは特徴領域Ａｒの局所特徴量である。
【０１４９】
距離計算部２０３は、ビット列ＨＶの長さ（ＨＶに含まれるビット値１の数）を計算する。ビット列ＨＶの長さは、特徴領域Ａｉｎ、Ａｒ間における特徴の相違度を表す距離Ｄとなる。つまり、距離Ｄが大きいほど特徴領域Ａｉｎ、Ａｒの特徴が大きく相違し、距離Ｄが小さいほど特徴領域Ａｉｎ、Ａｒの特徴が類似していることを表す。距離計算部２０３により計算された距離Ｄは、投票処理部２０４に入力される。
【０１５０】
（Ｓ２２３）投票処理部２０４は、参照画像Ｐｒの特徴領域Ａｒと、入力画像Ｐｉｎの各特徴領域Ａｉｎとの組について計算された距離Ｄに基づき、類似度が最も高い（距離Ｄが最も小さくなる）特徴領域Ａｒ、Ａｉｎの組を抽出する。また、投票処理部２０４は、抽出した組に対応する特徴点Ｗｉｎ、Ｗｒの組を特定する。投票処理部２０４は、特徴領域Ａｒの特徴点Ｗｒと参照画像Ｐｒの中心との位置関係に基づき、参照画像Ｐｒの中心が位置する入力画像Ｐｉｎ内の位置（特定点）を検出（特定）する。
【０１５１】
（Ｓ２２４）投票処理部２０４は、Ｓ２２３で特定した特定点に対応する投票マップＭＰの位置（枡目）に投票する。つまり、投票処理部２０４は、特定点の座標を含む投票マップＭＰの枡目を抽出し、抽出した枡目に対応するカウンタのカウント値（投票数）をカウントアップする。
【０１５２】
（Ｓ２２５）投票処理部２０４は、参照画像Ｐｒに含まれる全ての特徴点を選択し終えたか否かを判定する。参照画像Ｐｒに含まれる全ての特徴点を選択し終えていない場合、処理はＳ２２１へと進む。一方、参照画像Ｐｒに含まれる全ての特徴点を選択し終えた場合、処理はＳ２２６へと進む。
【０１５３】
（Ｓ２２６）判定部２０５は、投票マップＭＰから投票数の最大値を抽出する。
（Ｓ２２７）判定部２０５は、Ｓ２２６で抽出した投票数の最大値が閾値Ｔｈより大きいか否かを判定する。投票数の最大値が閾値Ｔｈより大きい場合、処理はＳ２２９へと進む。一方、投票数の最大値が閾値Ｔｈより大きくない場合、処理はＳ２２８へと進む。
【０１５４】
（Ｓ２２８）判定部２０５は、Ｓ２０３の処理結果として、入力画像Ｐｉｎ中に参照画像Ｐｒが存在しないと判定する。Ｓ２２８の処理が完了すると、図２４に示した一連の処理は終了する。
【０１５５】
（Ｓ２２９）判定部２０５は、Ｓ２０３の処理結果として、入力画像Ｐｉｎ中に参照画像Ｐｒが存在すると判定する。Ｓ２２９の処理が完了すると、図２４に示した一連の処理は終了する。
【０１５６】
ここで、Ｓ２２２の処理について、さらに説明する。
（Ｓ２３１）距離計算部２０３は、入力画像Ｐｉｎに配置された複数の特徴点Ｗｉｎ（ｍ）（ｍ＝１，２，…、Ｍ）について、左上を始点として、右下を終点とする特徴点Ｗｉｎの位置を示すインデックスｊを１に初期化する。つまり、Ｗｉｎ（１）を左上の特徴点とし、ｊが大きくなるにつれて、特徴点の位置が右側へと移動し、右端に位置する特徴点の次は下段左端の特徴点に位置が移動し、Ｗｉｎ（Ｍ）が右下の特徴点となるようにｊに応じて特徴点Ｗｉｎ（ｊ）の位置が特定される。
【０１５７】
（Ｓ２３２）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎ）の局所特徴量のうちＡ群のビット列と、特徴領域Ａｉｎ（ｊ）の局所特徴量のうちＡ群のビット列との距離ＤＡを計算する。つまり、距離計算部２０３は、距離ＤＡとして、Ａ群のビット列同士の排他的論理和を計算する。
【０１５８】
（Ｓ２３３）距離計算部２０３は、Ｂ群について流用可能な計算結果があるか否かを判定する。
（判定＃１）距離計算部２０３は、特徴領域Ａｉｎ（ｊ）、Ａｉｎ（ｊ−１）の重複領域があるか否かを判定する。例えば、ｊが１の場合、Ａｉｎ（ｊ−１）がないため、距離計算部２０３は、重複領域がないと判定する。また、特徴領域Ａｉｎ（ｊ）が左端に位置する場合、特徴領域Ａｉｎ（ｊ）、Ａｉｎ（ｊ−１）は重複しないため、距離計算部２０３は、重複領域がないと判定する。
【０１５９】
（判定＃２）判定＃１で重複領域があると判定した場合、距離計算部２０３は、特徴領域Ａｒ（ｎ）、Ａｒ（ｎ−１）の重複領域があるか否かを判定する。例えば、Ａｒ（ｎ）が左上に位置する場合、Ａｒ（ｎ−１）がないため、距離計算部２０３は、重複領域がないと判定する。また、特徴領域Ａｒ（ｎ）が左端に位置する場合、特徴領域Ａｒ（ｎ）、Ａｒ（ｎ−１）は重複しないため、距離計算部２０３は、重複領域がないと判定する。
【０１６０】
上記の判定＃１で特徴領域Ａｉｎ（ｊ）、Ａｉｎ（ｊ−１）の重複領域がないと判定した場合、距離計算部２０３は、流用可能な計算結果がないと判定する。また、上記の判定＃２で特徴領域Ａｒ（ｎ）、Ａｒ（ｎ−１）の重複領域がないと判定した場合も、距離計算部２０３は、流用可能な計算結果がないと判定する。一方、上記の判定＃２で特徴領域Ａｒ（ｎ）、Ａｒ（ｎ−１）の重複領域があると判定した場合、距離計算部２０３は、流用可能な計算結果があると判定する。
【０１６１】
流用可能な計算結果があると判定された場合、処理はＳ２３５へと進む。一方、流用可能な計算結果がないと判定された場合、処理はＳ２３４へと進む。
（Ｓ２３４）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎ）の局所特徴量のうちＢ群のビット列と、特徴領域Ａｉｎ（ｊ）の局所特徴量のうちＢ群のビット列との距離ＤＢ（ｊ，ｎ）を計算する。つまり、距離計算部２０３は、距離ＤＢ（ｊ，ｎ）として、Ｂ群のビット列同士の排他的論理和を計算する。
【０１６２】
（Ｓ２３５）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎ）の局所特徴量のうちＢ群のビット列と、特徴領域Ａｉｎ（ｊ）の局所特徴量のうちＢ群のビット列との距離ＤＢ（ｊ，ｎ）として、過去に計算した流用可能な計算結果を利用する。つまり、距離計算部２０３は、特徴領域Ａｒ（ｎ−１）の局所特徴量のＣ群のビット列と、特徴領域Ａｉｎ（ｊ−１）の局所特徴量のうちＣ群のビット列との距離ＤＣ（ｊ−１，ｎ−１）を距離ＤＢ（ｊ，ｎ）とする。距離ＤＣ（ｊ−１，ｎ−１）は、距離記録テーブルに格納されている。
【０１６３】
（Ｓ２３６）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎ）の局所特徴量のうちＣ群のビット列と、特徴領域Ａｉｎ（ｊ）の局所特徴量のうちＣ群のビット列との距離ＤＣ（ｊ，ｎ）を計算する。つまり、距離計算部２０３は、距離ＤＣ（ｊ，ｎ）として、Ｃ群のビット列同士の排他的論理和を計算する。
【０１６４】
（Ｓ２３７）距離計算部２０３は、Ｓ２３６で計算した距離ＤＣ（ｊ，ｎ）を距離記録テーブルに格納する。このとき、距離計算部２０３は、距離ＤＣ（ｊ，ｎ）を距離記録テーブルのｄ（ｊ，ｎ）欄に格納する。
【０１６５】
（Ｓ２３８）距離計算部２０３は、距離ＤＡ（ｊ，ｎ）、距離ＤＢ（ｊ，ｎ）、及び距離ＤＣ（ｊ，ｎ）を加算して、特徴領域Ａｉｎ（ｊ）、Ａｒ（ｎ）の距離Ｄ（ｊ，ｎ）を求める。
【０１６６】
（Ｓ２３９）距離計算部２０３は、インデックスｊをインクリメント（ｊ＝ｊ＋１）する。つまり、距離計算部２０３は、処理対象とする特徴領域Ａｉｎを移動させる。
（Ｓ２４０）距離計算部２０３は、ｊがＮより大きい（ｊ＞Ｎ）か否かを判定する。ｊ＞Ｎである場合、図２５に示した一連の処理は終了する。一方、ｊ＞Ｎでない場合、処理はＳ２３２へと進む。
【０１６７】
上記のように、重複領域について流用可能な計算結果がある場合に、その計算結果を流用（Ｓ２３５）して一部の計算（Ｓ２３４）を省略することで、距離計算の負荷が低減される。その結果、対応点探索にかかる処理負担の軽減及び処理の高速化が実現される。
【０１６８】
以上、サーバ装置２００の動作に係る処理の流れについて説明した。
［２−６．変形例＃１（重複領域を大きくする例）］
ここで、第２実施形態に係る一変形例（変形例＃１）について説明する。変形例＃１は、重複領域が特徴領域に占める割合を大きくする方法に関する。例えば、変形例＃１の技術は、図６に例示した特徴点の配置よりも密に特徴点を配置する場合や、特徴点の密度を変えずに、特徴領域のサイズを大きくする場合に適用できる。ここでは、図２６及び図２７を参照しながら、密に特徴点を配置する場合を例に説明する。
【０１６９】
図２６は、第２実施形態の一変形例（変形例＃１）に係る特徴点の配置について説明するための図である。図２７は、第２実施形態の一変形例（変形例＃１）に係る画素ペアの配置及び局所特徴量の構造について説明するための図である。
【０１７０】
既に説明した図６の例において、隣り合う特徴領域Ａｉｎ同士の重複領域は、特徴領域Ａｉｎの１／２の範囲に設定されていた。一方、図２６の例は、隣り合う特徴領域Ａｉｎ同士の重複領域が、特徴領域Ａｉｎの３／４の範囲に設定されている。この場合、特徴領域Ａｉｎ（１）には、特徴領域Ａｉｎ（２）、Ａｉｎ（３）、Ａｉｎ（４）の一部が重なる。そのため、画素ペアの配置は、図２７に示すように、特徴領域Ａｉｎを４つに分割した小領域のいずれに各画素が位置するかを考慮して設定される。
【０１７１】
既に説明した図９の例は、一方の画素が右領域、他方の画素が左領域に位置する画素ペアをＡ群、両画素が左領域に位置する画素ペアをＢ群、両画素が右領域に位置する画素ペアをＣ群とする画素ペアの分類を示していた。一方、図２７の例は、画素ペアを結ぶ線が小領域の境界を跨ぐ数で、Ａ群、Ｂ群、Ｃ群、Ｄ群を分類し、さらに、画素の位置に応じてＢ群を２つの群に分け、Ｃ群を３つの群に分け、Ｄ群を４つの群に分けた分類を示している。以下、小領域を左から順に、小領域＃１、小領域＃２、小領域＃３、小領域＃４と呼ぶことにする。
【０１７２】
（Ａ群について）
Ａ群に属する画素ペアは、一方の画素が小領域＃１に位置し、他方の画素が小領域＃４に位置する。そのため、Ａ群に属する画素ペアを結ぶ線は３つの境界を跨ぐことになる。
【０１７３】
（Ｂ群について）
Ｂ群は、Ｂ１群とＢ２群とに分けられる。Ｂ１群に属する画素ペアは、一方の画素が小領域＃１に位置し、他方の画素が小領域＃３に位置する。Ｂ２群に属する画素ペアは、一方の画素が小領域＃２に位置し、他方の画素が小領域＃４に位置する。そのため、Ｂ１、Ｂ２群に属する画素ペアを結ぶ線は２つの境界を跨ぐ。
【０１７４】
Ｂ１群の画素ペアとＢ２群の画素ペアとは同じ配置となるように設定される。そのため、Ｂ２群は、Ｂ１群に関する局所特徴量又は距離Ｄの計算時に流用可能なビット列又は距離Ｄの一部（距離ｄ）を与える。
【０１７５】
例えば、特徴領域Ａｉｎ（１）のＢ２群のビット列は、特徴領域Ａｉｎ（２）のＢ１群のビット列と一致する。特徴領域Ａｉｎ（２）の局所特徴量を計算する際に、特徴領域Ａｉｎ（１）のＢ２群のビット列を流用できる。また、特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＢ２群の距離ＤＢ２（１，１）は、特徴領域Ａｒ（２）、Ａｉｎ（２）の距離Ｄ（２，２）のうちＢ１群の距離ＤＢ１（２，２）と一致する。そのため、距離Ｄ（２，２）を計算する際に距離ＤＢ２（１，１）を流用することができる。
【０１７６】
（Ｃ群について）
Ｃ群は、Ｃ１群、Ｃ２群、Ｃ３群に分けられる。Ｃ１群に属する画素ペアは、一方の画素が小領域＃１に位置し、他方の画素が小領域＃２に位置する。Ｃ２群に属する画素ペアは、一方の画素が小領域＃２に位置し、他方の画素が小領域＃３に位置する。Ｃ３群に属する画素ペアは、一方の画素が小領域＃３に位置し、他方の画素が小領域＃４に位置する。そのため、Ｃ１、Ｃ２、Ｃ３群に属する画素ペアを結ぶ線は１つの境界を跨ぐ。
【０１７７】
Ｃ１群の画素ペア、Ｃ２群の画素ペア、Ｃ３群の画素ペアは同じ配置となるように設定される。そのため、Ｃ２群は、Ｃ１群に関する局所特徴量又は距離Ｄの計算時に流用可能なビット列又は距離Ｄの一部（距離ｄ）を与える。Ｃ３群は、Ｃ１群又はＣ２群に関する局所特徴量又は距離Ｄの計算時に流用可能なビット列又は距離Ｄの一部（距離ｄ）を与える。
【０１７８】
例えば、特徴領域Ａｉｎ（１）のＣ２群のビット列は、特徴領域Ａｉｎ（２）のＣ１群のビット列と一致する。特徴領域Ａｉｎ（１）のＣ３群のビット列は、特徴領域Ａｉｎ（２）のＣ２群のビット列、特徴領域Ａｉｎ（３）のＣ１群のビット列と一致する。そのため、特徴領域Ａｉｎ（２）の局所特徴量を計算する際に、特徴領域Ａｉｎ（１）のＣ２群及びＣ３群のビット列を流用できる。また、特徴領域Ａｉｎ（３）の局所特徴量を計算する際に、特徴領域Ａｉｎ（１）のＣ３群のビット列を流用できる。
【０１７９】
また、特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＣ２群の距離ＤＣ２（１，１）は、特徴領域Ａｒ（２）、Ａｉｎ（２）の距離Ｄ（２，２）のうちＣ１群の距離ＤＣ１（２，２）と一致する。特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＣ３群の距離ＤＣ３（１，１）は、特徴領域Ａｒ（２）、Ａｉｎ（２）の距離Ｄ（２，２）のうちＣ２群の距離ＤＣ２（２，２）と一致する。そのため、距離Ｄ（２，２）を計算する際に距離ＤＣ２（１，１）、ＤＣ３（１，１）を流用することができる。
【０１８０】
また、特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＣ３群の距離ＤＣ３（１，１）は、特徴領域Ａｒ（３）、Ａｉｎ（３）の距離Ｄ（３，３）のうちＣ１群の距離ＤＣ１（３，３）と一致する。そのため、距離Ｄ（３，３）を計算する際に距離ＤＣ３（１，１）を流用することができる。
【０１８１】
（Ｄ群について）
Ｄ群は、Ｄ１群、Ｄ２群、Ｄ３群、Ｄ４群に分けられる。Ｄ１群に属する画素ペアは、両画素が小領域＃１に位置する。Ｄ２群に属する画素ペアは、両画素が小領域＃２に位置する。Ｄ３群に属する画素ペアは、両画素が小領域＃３に位置する。Ｄ４群に属する画素ペアは、両画素が小領域＃４に位置する。つまり、Ｄ１、Ｄ２、Ｄ３、Ｄ４群に属する画素ペアを結ぶ線は境界を跨がない。
【０１８２】
Ｄ１群の画素ペア、Ｄ２群の画素ペア、Ｄ３群の画素ペア、Ｄ４群の画素ペアは同じ配置となるように設定される。そのため、Ｄ２群は、Ｄ１群に関する局所特徴量又は距離Ｄの計算時に流用可能なビット列又は距離Ｄの一部（距離ｄ）を与える。Ｄ３群は、Ｄ１群又はＤ２群に関する局所特徴量又は距離Ｄの計算時に流用可能なビット列又は距離Ｄの一部（距離ｄ）を与える。Ｄ４群は、Ｄ１群、Ｄ２群、Ｄ３群に関する局所特徴量又は距離Ｄの計算時に流用可能なビット列又は距離Ｄの一部（距離ｄ）を与える。
【０１８３】
例えば、特徴領域Ａｉｎ（１）のＤ２群のビット列は、特徴領域Ａｉｎ（２）のＤ１群のビット列と一致する。また、特徴領域Ａｉｎ（１）のＤ３群のビット列は、特徴領域Ａｉｎ（２）のＤ２群のビット列、特徴領域Ａｉｎ（３）のＤ１群のビット列と一致する。特徴領域Ａｉｎ（１）のＤ４群のビット列は、特徴領域Ａｉｎ（２）のＤ３群のビット列、特徴領域Ａｉｎ（３）のＤ２群のビット列、特徴領域Ａｉｎ（４）のＤ１群のビット列と一致する。
【０１８４】
そのため、特徴領域Ａｉｎ（２）の局所特徴量を計算する際に、特徴領域Ａｉｎ（１）のＤ２群、Ｄ３群、Ｄ４群のビット列を流用できる。また、特徴領域Ａｉｎ（３）の局所特徴量を計算する際に、特徴領域Ａｉｎ（１）のＤ３群、Ｄ４群のビット列を流用できる。また、特徴領域Ａｉｎ（４）の局所特徴量を計算する際に、特徴領域Ａｉｎ（１）のＤ４群のビット列を流用できる。
【０１８５】
また、特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＤ２群の距離ＤＤ２（１，１）は、特徴領域Ａｒ（２）、Ａｉｎ（２）の距離Ｄ（２，２）のうちＤ１群の距離ＤＤ１（２，２）と一致する。また、特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＤ３群の距離ＤＤ３（１，１）は、特徴領域Ａｒ（２）、Ａｉｎ（２）の距離Ｄ（２，２）のうちＤ２群の距離ＤＤ２（２，２）と一致する。さらに、距離ＤＤ３（１，１）は、特徴領域Ａｒ（３）、Ａｉｎ（３）の距離Ｄ（３，３）のうちＤ１群の距離ＤＤ１（３，３）と一致する。
【０１８６】
また、特徴領域Ａｒ（１）、Ａｉｎ（１）の距離Ｄ（１，１）のうちＤ４群の距離ＤＤ４（１，１）は、特徴領域Ａｒ（２）、Ａｉｎ（２）の距離Ｄ（２，２）のうちＤ３群の距離ＤＤ３（２，２）と一致する。さらに、距離ＤＤ４（１，１）は、特徴領域Ａｒ（３）、Ａｉｎ（３）の距離Ｄ（３，３）のうちＤ２群の距離ＤＤ２（３，３）と一致する。そして、距離ＤＤ４（１，１）は、特徴領域Ａｒ（４）、Ａｉｎ（４）の距離Ｄ（４，４）のうちＤ１群の距離ＤＤ１（４，４）と一致する。
【０１８７】
そのため、距離Ｄ（２，２）を計算する際に距離ＤＤ２（１，１）、ＤＤ３（１，１）、ＤＤ４（１，１）を流用することができる。また、距離Ｄ（３，３）を計算する際に距離ＤＤ３（１，１）、ＤＤ４（１，１）を流用することができる。さらに、距離Ｄ（４，４）を計算する際に距離ＤＤ４（１，１）を流用することができる。
【０１８８】
上記の流用を容易にするため、図２７に示すように、局所特徴量は、Ａ群、Ｂ１群、Ｂ２群、Ｃ１群、…、Ｃ３群、Ｄ１群、…、Ｄ４群のビット列をそれぞれ結合したビット列で表現される。また、距離Ｄは、同じ群のビット列同士の距離を加算した値で表現される。変形例＃１の場合、上記のように流用可能なビット列及び距離ｄの種類が変更されるが、図２２や図２５などに記載した処理フローの基本的な流れは同じである。
【０１８９】
以上、変形例＃１について説明した。
［２−７．変形例＃２（２次元的に特徴領域の一部が重複する配置）］
次に、第２実施形態に係る一変形例（変形例＃２）について説明する。変形例＃２は、上下左右に隣接する特徴領域が一部で重なるように配置する方法に関する。
【０１９０】
（２−７−１．特徴点、画素ペア、距離記録テーブル）
図２８〜図３０を参照しながら、変形例＃２に係る特徴点の配置、画素ペアの配置、距離記録テーブルの設定などについて説明する。
【０１９１】
図２８は、第２実施形態の一変形例（変形例＃２）に係る特徴点の配置について説明するための図である。図２９は、第２実施形態の一変形例（変形例＃２）に係る画素ペアの配置及び局所特徴量の構造について説明するための図である。図３０は、第２実施形態の一変形例（変形例＃２）に係る距離情報の一例を示した図である。
【０１９２】
図２８の例は、上下左右に隣接する特徴領域Ａｉｎが、特徴領域Ａｉｎの１／２の範囲で重なるように特徴点Ｗｉｎの配置及び特徴領域Ａｉｎのサイズを設定する場合を示している。この例では２次元的な座標表示を利用して特徴点Ｗｉｎの位置が表現されている。特徴領域Ａｉｎの位置についても同様である。
【０１９３】
例えば、左上端の特徴点がＷｉｎ（１，１）、Ｗｉｎ（１，１）の右隣の特徴点がＷｉｎ（１，２）、Ｗｉｎ（１，１）の下段の特徴点がＷｉｎ（２，１）である。また、特徴領域Ａｉｎ（１，１）の右領域と特徴領域Ａｉｎ（１，２）の左領域とが重なり、特徴領域Ａｉｎ（１，１）の下側１／２の領域（下領域）と特徴領域Ａｉｎ（２，１）の上側１／２の領域（上領域）とが重なる。さらに、特徴領域Ａｉｎ（１，２）の左下１／４の領域（左下領域）と、特徴領域Ａｉｎ（２，１）の右上１／４の領域（右上領域）とが重なる。このように、変形例＃２では様々な形状及びサイズの重複領域が考慮される。
【０１９４】
変形例＃２の場合、図２９に示すように、特徴領域Ａｉｎを上下左右に４分割した４つの小領域を利用して画素ペアが分類される。ここでは、右上の小領域（第１象限）を小領域＃１、左上の小領域（第２象限）を小領域＃２、左下の小領域（第３象限）を＃３、右下の小領域（第４象限）を＃４と表記する。
【０１９５】
（Ａ群について）
Ａ群は、対角線上に配置される２つの小領域にそれぞれ画素がある画素ペアの集合である。つまり、Ａ群は、一方の画素が小領域＃１にあり、他方の画素が小領域＃３にある画素ペア、及び一方の画素が小領域＃２にあり、他方の画素が小領域＃４にある画素ペアを含む。
【０１９６】
（Ｂ群について）
Ｂ群は、上下に配置される２つの小領域にそれぞれ画素が位置する画素ペアの集合である。Ｂ群は、Ｂ１群とＢ２群とに分けられる。Ｂ１群は、左領域を上下に分ける小領域＃２、＃３にそれぞれ画素が位置する画素ペアの集合である。Ｂ２群は、右領域を上下に分ける小領域＃１、＃４にそれぞれ画素が位置する画素ペアの集合である。Ｂ１群の画素ペアと、Ｂ２群の画素ペアとは同じ配置となるように設定される。
【０１９７】
（Ｃ群について）
Ｃ群は、左右に配置される２つの小領域にそれぞれ画素が位置する画素ペアの集合である。Ｃ群は、Ｃ１群とＣ２群とに分けられる。Ｃ１群は、上領域を左右に分ける小領域＃１、＃２にそれぞれ画素が位置する画素ペアの集合である。Ｃ２群は、下領域を左右に分ける小領域＃３、＃４にそれぞれ画素が位置する画素ペアの集合である。Ｃ１群の画素ペアと、Ｃ２群の画素ペアとは同じ配置となるように設定される。
【０１９８】
（Ｄ群について）
Ｄ群は、各小領域に２つの画素が位置する画素ペアの集合である。Ｄ群は、Ｄ１群、Ｄ２群、Ｄ３群、Ｄ４群に分けられる。Ｄ１群は、小領域＃１に各画素が位置する画素ペアである。Ｄ２群は、小領域＃２に各画素が位置する画素ペアである。Ｄ３群は、小領域＃３に各画素が位置する画素ペアである。Ｄ４群は、小領域＃４に各画素が位置する画素ペアである。Ｄ１群、Ｄ２群、Ｄ３群、Ｄ４群の画素ペアは同じ配置となるように設定される。
【０１９９】
変形例＃２の場合も、局所特徴量は、Ａ群、Ｂ１群、Ｂ２群、Ｃ１群、Ｃ２群、Ｄ１群、…、Ｄ４群のビット列を結合したビット列で表現される。また、距離Ｄは、同じ群のビット列同士の距離を加算した値で表現される。また、流用可能な距離ｄを格納するための距離記録テーブルは、図３０に示すように、Ｂ２群用テーブル、Ｃ２群用テーブル、Ｄ３群用テーブル、Ｄ４群用テーブルの４通り用意される。
【０２００】
（２−７−２．サーバ装置の動作）
ここで、図３１〜図３３を参照しながら、変形例＃２に係るサーバ装置２００の動作について説明する。但し、変形例＃２において主に変形される部分は、上述したＳ２２２に係る処理の流れにある。そのため、この部分について説明する。
【０２０１】
図３１は、第２実施形態の一変形例（変形例＃２）に係るサーバ装置の動作のうち、距離計算に関する動作について説明するための第１のフロー図である。図３２は、第２実施形態の一変形例（変形例＃２）に係るサーバ装置の動作のうち、距離計算に関する動作について説明するための第２のフロー図である。図３３は、第２実施形態の一変形例（変形例＃２）に係るサーバ装置の動作のうち、距離計算に関する動作について説明するための第３のフロー図である。
【０２０２】
（Ｓ３０１）距離計算部２０３は、入力画像Ｐｉｎに配置された複数の特徴点Ｗｉｎ（ｍ）（ｍ＝１，２，…、Ｍ）について、左上を始点として、右下を終点とする特徴点Ｗｉｎの位置を示すインデックスｊｘ、ｊｙを１に初期化する。インデックスｊｘ、Ｊｙで表現される座標（ｊｘ，ｊｙ）は、特徴点Ｗｉｎの２次元的な位置（図２８を参照）を表す。但し、座標（１，１）を左上端にある特徴点の位置とする。また、参照画像Ｐｒに配置された特徴点Ｗｒも同様に、２次元的な座標（ｎｘ，ｎｙ）を用いて位置を表現する。
【０２０３】
（Ｓ３０２）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＡ群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＡ群のビット列との距離ＤＡを計算する。つまり、距離計算部２０３は、距離ＤＡとして、Ａ群のビット列同士の排他的論理和を計算する。
【０２０４】
（Ｓ３０３）距離計算部２０３は、Ｂ１群について流用可能な計算結果があるか否かを判定する。
距離計算部２０３は、特徴領域Ａｉｎ（ｊｘ−１，ｊｙ）、Ａｒ（ｎｘ−１，ｎｙ）があるか否かを判定する。例えば、特徴領域Ａｉｎ（ｊｘ，ｊｙ）が左端に位置する場合（ｊｘ＝１の場合）、Ａｉｎ（ｊｘ−１，ｊｙ）はない。同様に、Ａｒ（ｎｘ，ｎｙ）が左端に位置する場合（ｎｘ＝１の場合）、Ａｒ（ｎｘ−１，ｎｙ）はない。
【０２０５】
特徴領域Ａｉｎ（ｊｘ−１，ｊｙ）、Ａｒ（ｎｘ−１，ｎｙ）がある場合、距離計算部２０３は、Ｂ１群について流用可能な計算結果があると判定する。少なくともＡｉｎ（ｊｘ−１，ｊｙ）又はＡｒ（ｎｘ−１，ｎｙ）がない場合、距離計算部２０３は、Ｂ１群について流用可能な計算結果がないと判定する。
【０２０６】
流用可能な計算結果があると判定された場合、処理はＳ３０５へと進む。一方、流用可能な計算結果がないと判定された場合、処理はＳ３０４へと進む。
（Ｓ３０４）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＢ１群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＢ１群のビット列との距離ＤＢ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＢ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｂ１群のビット列同士の排他的論理和を計算する。
【０２０７】
（Ｓ３０５）距離計算部２０３は、距離ＤＢ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、過去に計算した流用可能な計算結果を利用する。つまり、距離計算部２０３は、特徴領域Ａｒ（ｎｘ−１，ｎｙ）の局所特徴量のＢ２群のビット列と、特徴領域Ａｉｎ（ｊｘ−１，ｊｙ）の局所特徴量のうちＢ２群のビット列との距離ＤＢ２（ｊｘ−１，ｊｙ，ｎｘ−１，ｎｙ）を距離ＤＢ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）とする。距離ＤＢ２（ｊｘ−１，ｊｙ，ｎｘ−１，ｎｙ）は、Ｂ２群用テーブルのｄ（ｊｘ−１，ｊｙ，ｎｘ−１，ｎｙ）欄に格納されている。
【０２０８】
（Ｓ３０６）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＢ２群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＢ２群のビット列との距離ＤＢ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＢ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｂ２群のビット列同士の排他的論理和を計算する。
【０２０９】
（Ｓ３０７）距離計算部２０３は、Ｓ３０６で計算した距離ＤＢ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）をＢ２群用テーブルに格納する。このとき、距離計算部２０３は、距離ＤＢ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）をＢ２群用テーブルのｄ（ｊｘ，ｊｙ，ｎｘ，ｎｙ）欄に格納する。
【０２１０】
（Ｓ３０８）距離計算部２０３は、Ｃ１群について流用可能な計算結果があるか否かを判定する。
距離計算部２０３は、特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）、Ａｒ（ｎｘ，ｎｙ−１）があるか否かを判定する。例えば、特徴領域Ａｉｎ（ｊｘ，ｊｙ）が上端に位置する場合（ｊｙ＝１の場合）、Ａｉｎ（ｊｘ，ｊｙ−１）はない。同様に、Ａｒ（ｎｘ，ｎｙ）が上端に位置する場合（ｎｙ＝１の場合）、Ａｒ（ｎｘ，ｎｙ−１）はない。
【０２１１】
特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）、Ａｒ（ｎｘ，ｎｙ−１）がある場合、距離計算部２０３は、Ｃ１群について流用可能な計算結果があると判定する。少なくともＡｉｎ（ｊｘ，ｊｙ−１）又はＡｒ（ｎｘ，ｎｙ−１）がない場合、距離計算部２０３は、Ｃ１群について流用可能な計算結果がないと判定する。
【０２１２】
流用可能な計算結果があると判定された場合、処理はＳ３１０へと進む。一方、流用可能な計算結果がないと判定された場合、処理はＳ３０９へと進む。
（Ｓ３０９）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＣ１群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＣ１群のビット列との距離ＤＣ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＣ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｃ１群のビット列同士の排他的論理和を計算する。Ｓ３０９の処理が完了すると、処理は図３２のＳ３１１へ進む。
【０２１３】
（Ｓ３１０）距離計算部２０３は、距離ＤＣ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、過去に計算した流用可能な計算結果を利用する。つまり、距離計算部２０３は、特徴領域Ａｒ（ｎｘ，ｎｙ−１）の局所特徴量のＣ２群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）の局所特徴量のうちＣ２群のビット列との距離ＤＣ２（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）を距離ＤＣ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）とする。距離ＤＣ２（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）は、Ｃ２群用テーブルのｄ（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）欄に格納されている。Ｓ３１０の処理が完了すると、処理は図３２のＳ３１１へ進む。
【０２１４】
（Ｓ３１１）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＣ２群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＣ２群のビット列との距離ＤＣ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＣ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｃ２群のビット列同士の排他的論理和を計算する。
【０２１５】
（Ｓ３１２）距離計算部２０３は、Ｓ３１１で計算した距離ＤＣ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）をＣ２群用テーブルに格納する。このとき、距離計算部２０３は、距離ＤＣ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）をＣ２群用テーブルのｄ（ｊｘ，ｊｙ，ｎｘ，ｎｙ）欄に格納する。
【０２１６】
（Ｓ３１３）距離計算部２０３は、Ｄ１群について流用可能な計算結果があるか否かを判定する。
距離計算部２０３は、特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）、Ａｒ（ｎｘ，ｎｙ−１）があるか否かを判定する。例えば、特徴領域Ａｉｎ（ｊｘ，ｊｙ）が上端に位置する場合（ｊｙ＝１の場合）、Ａｉｎ（ｊｘ，ｊｙ−１）はない。同様に、Ａｒ（ｎｘ，ｎｙ）が上端に位置する場合（ｎｙ＝１の場合）、Ａｒ（ｎｘ，ｎｙ−１）はない。
【０２１７】
特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）、Ａｒ（ｎｘ，ｎｙ−１）がある場合、距離計算部２０３は、Ｄ１群について流用可能な計算結果があると判定する。少なくともＡｉｎ（ｊｘ，ｊｙ−１）又はＡｒ（ｎｘ，ｎｙ−１）がない場合、距離計算部２０３は、Ｄ１群について流用可能な計算結果がないと判定する。
【０２１８】
流用可能な計算結果があると判定された場合、処理はＳ３１５へと進む。一方、流用可能な計算結果がないと判定された場合、処理はＳ３１４へと進む。
（Ｓ３１４）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＤ１群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＤ１群のビット列との距離ＤＤ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＤ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｄ１群のビット列同士の排他的論理和を計算する。
【０２１９】
（Ｓ３１５）距離計算部２０３は、距離ＤＤ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、過去に計算した流用可能な計算結果を利用する。つまり、距離計算部２０３は、特徴領域Ａｒ（ｎｘ，ｎｙ−１）の局所特徴量のＤ４群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）の局所特徴量のうちＤ４群のビット列との距離ＤＤ４（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）を距離ＤＤ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）とする。距離ＤＤ４（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）は、Ｄ４群用テーブルのｄ（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）欄に格納されている。
【０２２０】
（Ｓ３１６）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＤ４群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＤ４群のビット列との距離ＤＤ４（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＤ４（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｄ４群のビット列同士の排他的論理和を計算する。
【０２２１】
（Ｓ３１７）距離計算部２０３は、Ｓ３１６で計算した距離ＤＤ４（ｊｘ，ｊｙ，ｎｘ，ｎｙ）をＤ４群用テーブルに格納する。このとき、距離計算部２０３は、距離ＤＤ４（ｊｘ，ｊｙ，ｎｘ，ｎｙ）をＤ４群用テーブルのｄ（ｊｘ，ｊｙ，ｎｘ，ｎｙ）欄に格納する。
【０２２２】
（Ｓ３１８）距離計算部２０３は、Ｄ２群について流用可能な計算結果があるか否かを判定する。
距離計算部２０３は、特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）、Ａｒ（ｎｘ，ｎｙ−１）があるか否かを判定する。例えば、特徴領域Ａｉｎ（ｊｘ，ｊｙ）が上端に位置する場合（ｊｙ＝１の場合）、Ａｉｎ（ｊｘ，ｊｙ−１）はない。同様に、Ａｒ（ｎｘ，ｎｙ）が上端に位置する場合（ｎｙ＝１の場合）、Ａｒ（ｎｘ，ｎｙ−１）はない。
【０２２３】
特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）、Ａｒ（ｎｘ，ｎｙ−１）がある場合、距離計算部２０３は、Ｄ２群について流用可能な計算結果があると判定する。少なくともＡｉｎ（ｊｘ，ｊｙ−１）又はＡｒ（ｎｘ，ｎｙ−１）がない場合、距離計算部２０３は、Ｄ２群について流用可能な計算結果がないと判定する。
【０２２４】
流用可能な計算結果があると判定された場合、処理はＳ３２０へと進む。一方、流用可能な計算結果がないと判定された場合、処理はＳ３１９へと進む。
（Ｓ３１９）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＤ２群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＤ２群のビット列との距離ＤＤ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＤ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｄ２群のビット列同士の排他的論理和を計算する。Ｓ３１９の処理が完了すると、処理は図３３のＳ３２１へ進む。
【０２２５】
（Ｓ３２０）距離計算部２０３は、距離ＤＤ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、過去に計算した流用可能な計算結果を利用する。つまり、距離計算部２０３は、特徴領域Ａｒ（ｎｘ，ｎｙ−１）の局所特徴量のＤ３群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ−１）の局所特徴量のうちＤ３群のビット列との距離ＤＤ３（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）を距離ＤＤ２（ｊｘ，ｊｙ，ｎｘ，ｎｙ）とする。距離ＤＤ３（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）は、Ｄ３群用テーブルのｄ（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）欄に格納されている。Ｓ３２０の処理が完了すると、処理は図３３のＳ３２１へ進む。
【０２２６】
（Ｓ３２１）距離計算部２０３は、Ｄ４群について流用可能な計算結果があるか否かを判定する。
距離計算部２０３は、特徴領域Ａｉｎ（ｊｘ−１，ｊｙ）、Ａｒ（ｎｘ−１，ｎｙ）があるか否かを判定する。例えば、特徴領域Ａｉｎ（ｊｘ，ｊｙ）が左端に位置する場合（ｊｘ＝１の場合）、Ａｉｎ（ｊｘ−１，ｊｙ）はない。同様に、Ａｒ（ｎｘ，ｎｙ）が左端に位置する場合（ｎｘ＝１の場合）、Ａｒ（ｎｘ−１，ｎｙ）はない。
【０２２７】
特徴領域Ａｉｎ（ｊｘ−１，ｊｙ）、Ａｒ（ｎｘ−１，ｎｙ）がある場合、距離計算部２０３は、Ｄ４群について流用可能な計算結果があると判定する。少なくともＡｉｎ（ｊｘ−１，ｊｙ）又はＡｒ（ｎｘ−１，ｎｙ）がない場合、距離計算部２０３は、Ｄ４群について流用可能な計算結果がないと判定する。
【０２２８】
流用可能な計算結果があると判定された場合、処理はＳ３２３へと進む。一方、流用可能な計算結果がないと判定された場合、処理はＳ３２２へと進む。
（Ｓ３２２）距離計算部２０３は、処理対象の特徴領域Ａｒ（ｎｘ，ｎｙ）の局所特徴量のうちＤ３群のビット列と、特徴領域Ａｉｎ（ｊｘ，ｊｙ）の局所特徴量のうちＤ３群のビット列との距離ＤＤ３（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を計算する。つまり、距離計算部２０３は、距離ＤＤ３（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、Ｄ３群のビット列同士の排他的論理和を計算する。Ｓ３２２の処理が完了すると、処理はＳ３２４へ進む。
【０２２９】
（Ｓ３２３）距離計算部２０３は、距離ＤＤ３（ｊｘ，ｊｙ，ｎｘ，ｎｙ）として、過去に計算した流用可能な計算結果を利用する。つまり、距離計算部２０３は、特徴領域Ａｒ（ｎｘ−１，ｎｙ）の局所特徴量のＤ４群のビット列と、特徴領域Ａｉｎ（ｊｘ−１，ｊｙ）の局所特徴量のうちＤ４群のビット列との距離ＤＤ４（ｊｘ−１，ｊｙ，ｎｘ−１，ｎｙ）を距離ＤＤ３（ｊｘ，ｊｙ，ｎｘ，ｎｙ）とする。距離ＤＤ４（ｊｘ−１，ｊｙ，ｎｘ−１，ｎｙ）は、Ｄ４群用テーブルのｄ（ｊｘ，ｊｙ−１，ｎｘ，ｎｙ−１）欄に格納されている。
【０２３０】
（Ｓ３２４）距離計算部２０３は、距離ＤＡ（ｊｘ，ｊｙ，ｎｘ，ｎｙ）、距離ＤＢ１（ｊｘ，ｊｙ，ｎｘ，ｎｙ）、…、距離ＤＤ４（ｊｘ，ｊｙ，ｎｘ，ｎｙ）を加算する。そして、距離計算部２０３は、加算値を特徴領域Ａｉｎ（ｊｘ，ｊｙ）、Ａｒ（ｎｘ，ｎｙ）の距離Ｄ（ｊｘ，ｊｙ，ｎｘ，ｎｙ）とする。
【０２３１】
（Ｓ３２５）距離計算部２０３は、特徴点の座標（ｊｘ，ｊｙ）を表すインデックスｊｘ、ｊｙを更新する。例えば、ｊｘ＜Ｍｘである場合、距離計算部２０３は、ｊｘをインクリメント（ｊｘ＝ｊｘ＋１）する。ｊｘ＝Ｍｘである場合、距離計算部２０３は、ｊｘを１に更新し、ｊｙをインクリメント（ｊｙ＝ｊｙ＋１）する。つまり、距離計算部２０３は、処理対象とする特徴領域Ａｉｎを移動させる。但し、ｊｘの最大数がＭｘである。
【０２３２】
（Ｓ３２６）距離計算部２０３は、全ての特徴点Ｗｉｎについて処理を終えたか否かを判定する。全ての特徴点Ｗｉｎについて処理を終えている場合、図３１〜図３３に示した一連の処理は終了する。一方、処理を終えていない特徴点Ｗｉｎがある場合、処理は図３１のＳ３０２へと進む。
【０２３３】
上記のように、重複領域について流用可能な計算結果がある場合に、その計算結果を流用（Ｓ３０５、Ｓ３１０、Ｓ３１５、Ｓ３２０、Ｓ３２３）して一部の計算（Ｓ３０４、Ｓ３０９、Ｓ３１４、Ｓ３１９、Ｓ３２２）を省略することで、距離計算の負荷が低減される。その結果、対応点探索にかかる処理負担の軽減及び処理の高速化が実現される。
【０２３４】
以上、変形例＃２について説明した。
以上説明したように、第２実施形態に係る技術を適用することにより、対応点探索にかかる処理負荷を低減でき、対象物の有無を高速に判断することが可能になる。
【０２３５】
以上、第２実施形態について説明した。
上記説明においてはランドマークの認識機能を例に説明を進めてきたが、例えば、画像の類否判定を伴う任意のアプリケーションプログラムなどに応用することもできる。また、サーバ装置２００で顔認識を行うアプリケーションプログラムやＡＲ（Augmented Reality）を利用したアプリケーションプログラムなどにも応用できる。こうした応用例についても当然に第２実施形態の技術的範囲に属する。
【０２３６】
＜３．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）  一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、前記画像領域が重複する重複領域において前記各画像領域に配置された前記各画素ペアの位置が一致するように設定した前記配置規則を表す配置情報を記憶する記憶部と、
前記画像領域に前記配置規則で配置された前記各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された前記各画像領域の特徴量と第２の画像に設定された前記各画像領域の特徴量との距離に基づいて前記第１の画像と前記第２の画像との類否を判定する計算部と
を有し、
前記計算部は、前記重複領域に位置する前記画素ペアの特徴量に関する計算結果を前記記憶部に格納し、当該画素ペアと同じ位置にある、他の前記画像領域における前記画素ペアの特徴量に関する計算の際に前記記憶部に格納した前記計算結果を利用する
情報処理装置。
【０２３７】
（付記２）  前記記憶部は、前記第１の画像に設定された前記各画像領域の特徴量を記憶し、
前記計算部は、前記第２の画像に設定された前記各画像領域に前記配置規則で配置される前記各画素ペアの特徴量を計算する際、前記重複領域に位置する前記画素ペアの特徴量を前記記憶部に格納し、当該画素ペアと同じ位置にある他の前記画素ペアの特徴量の計算を回避して前記記憶部に格納されている前記画素ペアの特徴量を利用する
付記１に記載の情報処理装置。
【０２３８】
（付記３）  前記記憶部は、両方の画素が前記重複領域に含まれる前記画素ペアの集合と、一方の画素が前記重複領域に含まれる前記画素ペアの集合と、両方の画素が前記重複領域に含まれない前記画素ペアの集合とを特定するための集合情報をさらに記憶し、
前記計算部は、前記集合情報に基づいて、両方の画素が前記重複領域に含まれる前記画素ペアを、前記重複領域に位置する前記画素ペアとして利用する
付記１又は２に記載の情報処理装置。
【０２３９】
（付記４）  コンピュータが、
一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、前記画像領域が重複する重複領域において前記各画像領域に配置された前記各画素ペアの位置が一致するように設定した前記配置規則を表す配置情報を取得し、
前記画像領域に前記配置規則で配置された前記各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された前記各画像領域の特徴量と第２の画像に設定された前記各画像領域の特徴量との距離に基づいて前記第１の画像と前記第２の画像との類否を判定する処理を実行し、
前記距離を計算する処理において、前記重複領域に位置する前記画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の前記画像領域における前記画素ペアの特徴量に関する計算の際に前記記憶部に格納した前記計算結果を利用する
画像判定方法。
【０２４０】
（付記５）  コンピュータに、
一部が重複する複数の画像領域の各々に共通の配置規則で配置される複数の画素ペアのうち、前記画像領域が重複する重複領域において前記各画像領域に配置された前記各画素ペアの位置が一致するように設定した前記配置規則を表す配置情報を取得し、
前記画像領域に前記配置規則で配置された前記各画素ペアの特徴量の組を当該画像領域の特徴量として利用し、第１の画像に設定された前記各画像領域の特徴量と第２の画像に設定された前記各画像領域の特徴量との距離に基づいて前記第１の画像と前記第２の画像との類否を判定する処理を実行させ、
前記距離を計算する処理において、前記重複領域に位置する前記画素ペアの特徴量に関する計算結果を記憶部に格納し、当該画素ペアと同じ位置にある、他の前記画像領域における前記画素ペアの特徴量に関する計算の際に前記記憶部に格納した前記計算結果を利用する
処理を実行させるためのプログラム。
【０２４１】
（付記６）  付記５に記載のプログラムが格納された、コンピュータにより読み取り可能な記録媒体。
【符号の説明】
【０２４２】
１０  情報処理装置
１１  記憶部
１２  計算部
Ａｉｎ１、Ａｉｎ２、Ａｒ１、Ａｒ２  画像領域
ｄＡ１１、ｄＢ１１、ｄＣ１１、ｄＡ２２、ｄＢ２２、ｄＣ２２  距離
Ｑｉｎ１、Ｑｒ１、Ｑｉｎ２、Ｑｒ２  特徴量
Ｒ１  左領域
Ｒ２  右領域
【図１】
0006365117.tif 000002
【図２】
0006365117.tif 000003
【図３】
0006365117.tif 000004
【図４】
0006365117.tif 000005
【図５】
0006365117.tif 000006
【図６】
0006365117.tif 000007
【図７】
0006365117.tif 000008
【図８】
0006365117.tif 000009
【図９】
0006365117.tif 000010
【図１０】
0006365117.tif 000011
【図１１】
0006365117.tif 000012
【図１２】
0006365117.tif 000013
【図１３】
0006365117.tif 000014
【図１４】
0006365117.tif 000015
【図１５】
0006365117.tif 000016
【図１６】
0006365117.tif 000017
【図１７】
0006365117.tif 000018
【図１８】
0006365117.tif 000019
【図１９】
0006365117.tif 000020
【図２０】
0006365117.tif 000021
【図２１】
0006365117.tif 000022
【図２２】
0006365117.tif 000023
【図２３】
0006365117.tif 000024
【図２４】
0006365117.tif 000025
【図２５】
0006365117.tif 000026
【図２６】
0006365117.tif 000027
【図２７】
0006365117.tif 000028
【図２８】
0006365117.tif 000029
【図２９】
0006365117.tif 000030
【図３０】
0006365117.tif 000031
【図３１】
0006365117.tif 000032
【図３２】
0006365117.tif 000033
【図３３】
0006365117.tif 000034