(57)【要約】【課題】向き情報を含まない画像についても正しい天地方向で表示可能とする。【解決手段】画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出する抽出部と、抽出部で抽出された特徴点のグループの中から、少なくとも２つの第１画像において、天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する検出部と、向き情報を持たない第２画像において、検出部で検出された特徴点のグループを探索する探索部と、探索部によって見つけられた特徴点のグループの位置関係と、当該特徴点のグループに対応する固有の位置関係との比較に基づいて、第２画像の向きを判定する判定部とを備える。【選択図】      図１
2014134963.tif 000002
【特許請求の範囲】
【請求項１】
画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つの第１画像に共通して含まれる特徴点のグループを抽出する抽出部と、
前記抽出部で抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する検出部と、
前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索する探索部と、
前記探索部によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する判定部と
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記検出部は、
前記抽出部で抽出された特徴点のグループのそれぞれについて、当該特徴点のグループを含む前記少なくとも２つの第１画像のそれぞれにおける位置関係を特定する特定部と、
前記特定部によって特定された位置関係を、それぞれ所定の閾値以上に類似する位置関係を含む複数の集合に分類する分類部と、
前記複数の集合のいずれかに位置関係が偏って分布している度合いが所定の閾値以上である場合に、前記特徴点のグループを、前記天地方向を基準として固有の位置関係で分布している特徴点のグループとして選択する選択部と、
前記選択部により、固有の位置関係で分布している特徴点のグループが選択された場合に、当該特徴点のグループについて前記特定部によって特定された位置関係について分類部で得られた複数の集合の中から最も多くの位置関係が属する前記集合を見つけ、当該集合に含まれる位置関係に基づいて、前記特徴点のグループに固有の位置関係を決定する決定部とを有する
ことを特徴とする画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記判定部は、
前記探索部によって前記第２画像から見つけられた前記特徴点のグループの位置関係を、当該特徴点のグループに対応する前記固有の位置関係と、当該固有の位置関係を所定の角度で回転させた位置関係とのそれぞれと照合する照合部を有し、
前記照合部により、前記固有の位置関係と前記第２画像から見つけられた前記特徴点のグループの位置関係とが一致するとされた場合に、前記第２画像の天地方向として、当該第２画像における画素の並び方向に対して所定の向きを持つ第１方向を判定し、
前記照合部により、前記固有の位置関係を回転させた位置関係と前記第２画像から見つけられた前記特徴点のグループの位置関係とが一致するとされた場合に、前記第２画像の天地方向として、前記第１方向に対して前記所定の角度をなす第２方向であると判定する
ことを特徴とする画像処理装置。
【請求項４】
請求項２に記載の画像処理装置において、
前記特定部は、前記特徴点のグループに属する特徴点を所定の順序で結ぶ線分のそれぞれと前記向き情報で示される前記第１画像の向きの基準軸とがなす角の角度を、前記特徴点のグループの位置関係を示すパラメータとして求め、
前記分類部は、前記各パラメータの値として想定される範囲を所定値ごとに区切ることで得られる複数の領域のいずれかに、前記特定部で得られたパラメータで示される位置関係を振り分けることにより、前記複数の集合を形成する
ことを特徴とする画像処理装置。
【請求項５】
画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出し、
前記抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、
前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索し、
前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する
ことを特徴とする画像処理方法。
【請求項６】
画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出し、
前記抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、
前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索し、
前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示は、写真などの画像データを管理する画像処理装置および画像処理方法並びに画像処理プログラムに関する。
【背景技術】
【０００２】
デジタルカメラなどの撮影装置よって得られた画像データをパーソナルコンピュータに読み込んで管理する際やデジタルフォトフレームなどで表示させる際には、撮影された画像が正しい天地方向に従って表示されることが望ましい。
【０００３】
画像データに基づいて、撮影画像を正しい天地方向で表示させるために、例えば、デジタルカメラによって撮影時の天地方向を示す向き情報を画像データに付加する技法が提案されている(特許文献１参照)。
【０００４】
また、上述したような向き情報を含まない画像データに基づいて、撮影画像を正しい天地方向で表示させるための技術として、例えば、撮影画像内の人物の顔に含まれる特徴部位の位置関係に基づいて画像の向きを判定する技法が提案されている(特許文献２参照)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１７３９８４号公報
【特許文献２】特開２００９−２１９０２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、デジタルカメラなどの利用者が、パーソナルコンピュータなどに画像データとして蓄積している撮影画像の中には、上述した向き情報を含んでいない形式の撮影画像も含まれている。また、人物の顔の特徴を用いた従来手法は、撮影画像に人物の顔が含まれていない場合には、撮影画像の向きを判定することは困難である。
【０００７】
このため、利用者が、パーソナルコンピュータなどを用いて蓄積した撮影画像を閲覧する場合などに、一部の画像の天地方向が逆向きに表示されてしまう場合や正しい天地方向から傾いた向きで表示されてしまう場合がある。
【０００８】
本件開示は、向き情報を含まない画像についても正しい天地方向で表示可能とする画像処理装置および画像処理方法並びに画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの観点による画像処理装置は、画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出する抽出部と、前記抽出部で抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する検出部と、前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索する探索部と、前記探索部によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する判定部とを備える。
【００１０】
また、別の観点による画像処理方法は、画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出し、前記抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索し、前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する。
【００１１】
また、別の観点による画像処理プログラムは、画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出し、前記抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索し、前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する処理をコンピュータに実行させる。
【発明の効果】
【００１２】
本件開示の画像処理装置および画像処理方法並びに画像処理プログラムによれば、向き情報を含まない画像についても正しい天地方向で表示可能にすることができる。
【図面の簡単な説明】
【００１３】
【図１】画像処理装置の一実施形態を示す図である。
【図２】ビジュアルワードの抽出例を示す図である。
【図３】向きの基準となる被写体の例を示す図である。
【図４】画像の向きの判定例を示す図である。
【図５】画像の向きを管理する処理のフローチャートの例を示す図である。
【図６】画像処理装置の別実施形態を示す図である。
【図７】特徴点管理テーブルの例を示す図である。
【図８】ワード管理テーブルの例を示す図である。
【図９】位置関係の特定例を示す図である。
【図１０】位置関係を分類する手法の例を示す図である。
【図１１】判定モデルの例を示す図である。
【図１２】固有の位置関係と第２画像における位置関係との照合例を示す図である。
【図１３】画像処理装置のハードウェア構成例を示す図である。
【図１４】画像の向き情報を管理する処理のフローチャートの別例を示す図(その１)である。
【図１５】画像の向き情報を管理する処理のフローチャートの別例を示す図(その２)である。
【図１６】候補セットを生成する処理のフローチャートの例を示す図である。
【図１７】候補管理テーブルの例を示す図である。
【図１８】固有の位置関係を検出する処理のフローチャートの例を示す図である。
【図１９】画像の向きを判定する処理のフローチャートの例を示す図である。
【図２０】向き情報の設定を促すメッセージの例を示す図である。
【図２１】画像処理装置のハードウェア構成の別例を示す図である。
【図２２】アルバム管理処理のフローチャートの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて、本件開示の画像処理装置および画像処理方法並びに画像処理プログラムの実施形態について詳細に説明する。
【００１５】
図１は、画像処理装置の一実施形態を示す。図１に示した画像蓄積装置１は、画像における天地方向を示す向き情報を含む複数の第１画像Ｇ１と共に、向き情報を含まない第２画像を含んでいる。
【００１６】
上述した画像蓄積装置１は、例えば、図示しないデジタルカメラの利用者が所有するパーソナルコンピュータ(図示せず)のハードディスク装置でもよいし、インターネットなどのネットワーク上に設けられたサーバ装置(図示せず)内のハードディスク装置でもよい。また、第１画像Ｇ１が含む向き情報は、例えば、デジタル画像の記録方法に関する規格の一つであるＥｘｉｆ(Exchangeable image file)規格に基づく形式で記述されたオリエンテーション(orientation)情報でもよいし、他の形式で天地方向を記述した情報でもよい。
【００１７】
図１に示した画像処理装置１０は、画像蓄積装置１から上述した複数の第１画像Ｇ１を受け取り、受け取った第１画像Ｇ１に含まれる情報に基づいて、第２画像について、正しい天地方向を示す向きを判定する。
【００１８】
図１に示した画像処理装置１０は、抽出部１１と、検出部１２と、探索部１３と、判定部１４とを含んでいる。
【００１９】
抽出部１１は、画像蓄積装置１に保持された複数の第１画像Ｇ１から、これらの第１画像Ｇ１のうち少なくとも２つ第１画像Ｇ１に共通して含まれる特徴点のグループを抽出する。例えば、抽出部１１は、複数の第１画像Ｇ１を解析することにより、互いに異なる特徴量で示される局所的な特徴である局所特徴のそれぞれと、これらの局所特徴のいずれかをそれぞれ有する複数の特徴点を抽出する。
【００２０】
抽出部１１は、後に図６を用いて説明するようにして、複数の第１画像Ｇ１から、テキストにおける単語に相当する基本的な要素画像を局所特徴として抽出してもよい。以下では、このような局所特徴をビジュアルワードと称し、また、抽出部１１により、図２に示すようなビジュアルワードを抽出する場合について説明する。
【００２１】
図２は、ビジュアルワードの抽出例を示している。図２(Ａ)に示した符号Ｇ１＿１および図２(Ｂ)に示した符号Ｇ１＿２は、それぞれ第１画像Ｇ１の例を示している。また、図２(Ｃ)に示した符号Ｑは、第１画像Ｇ１＿１，Ｇ１＿２から抽出されたビジュアルワードを含む集合の例を示している。なお、図２(Ａ)，（Ｂ）に示した第１画像Ｇ１＿１，Ｇ１＿２は、いずれも同一の車両を被写体として撮影した画像である。
【００２２】
図２(Ａ)において、符号Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６は、それぞれ第１画像Ｇ１＿１から抽出された特徴点の例を示している。同様に、図２(Ｂ)において、符号Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６は、それぞれ第１画像Ｇ１＿２から抽出された特徴点の例を示している。また、図２(Ｃ)において、符号ＶＷ１，ＶＷ２，ＶＷ３，ＶＷ４，ＶＷ５，ＶＷ６，ＶＷ７は、それぞれ上述した集合Ｑに含まれるビジュアルワードの例を示している。なお、図２においては、特徴点のそれぞれ及びビジュアルワードのそれぞれを模式的に示している。また、第１画像Ｇ１＿１，Ｇ１＿２のそれぞれから抽出される他の特徴点及びこれらの特徴点に対応するビジュアルワードについては、図示を省略している。
【００２３】
図２において、第１画像Ｇ１＿１から抽出された特徴点Ｂ３，Ｂ６とビジュアルワードＶＷ３とを結ぶ矢印は、上述した特徴点Ｂ３，Ｂ６における局所特徴がビジュアルワードＶＷ３に相当することを示している。同様に、第１画像Ｇ１＿１から抽出された特徴点Ｂ４とビジュアルワードＶＷ５とを結ぶ矢印は、上述した特徴点Ｂ４における局所特徴がビジュアルワードＶＷ５に相当することを示している。また、第１画像Ｇ１＿１から抽出された特徴点Ｂ５とビジュアルワードＶＷ４とを結ぶ矢印は、上述した特徴点Ｂ５における局所特徴がビジュアルワードＶＷ４に相当することを示している。また、同様に、第１画像Ｇ１＿１から抽出された特徴点Ｂ１，Ｂ２のそれぞれにおける局所特徴は、ビジュアルワードＶＷ１，ＶＷ２のそれぞれに相当している。なお、図２においては、上述した特徴点Ｂ１，Ｂ２のそれぞれとビジュアルワードＶＷ１，ＶＷ２のそれぞれとの対応関係を示す矢印は省略している。
【００２４】
また、図２において、第１画像Ｇ１＿２から抽出された特徴点Ｂ３とビジュアルワードＶＷ３とを結ぶ矢印は、上述した特徴点Ｂ３における局所特徴がビジュアルワードＶＷ３に相当することを示している。同様に、第１画像Ｇ１＿２から抽出された特徴点Ｂ４とビジュアルワードＶＷ４とを結ぶ矢印は、上述した特徴点Ｂ４における局所特徴がビジュアルワードＶＷ４に相当することを示している。また、第１画像Ｇ１＿２から抽出された特徴点Ｂ５とビジュアルワードＶＷ５とを結ぶ矢印は、上述した特徴点Ｂ５における局所特徴がビジュアルワードＶＷ５に相当することを示している。同様に、第１画像Ｇ１＿２から抽出された特徴点Ｂ１，Ｂ２のそれぞれにおける局所特徴は、ビジュアルワードＶＷ６，ＶＷ７のそれぞれに相当している。また、第１画像Ｇ１＿２から抽出された特徴点Ｂ６における局所特徴は、上述した特徴点Ｂ３と同じビジュアルワードＶＷ３に相当している。なお、図２においては、上述した特徴点Ｂ１，Ｂ２，Ｂ６のそれぞれとビジュアルワードＶＷ６，ＶＷ７，ＶＷ３のそれぞれとの対応関係を示す矢印は省略している。
【００２５】
また、図１に示した抽出部１１は、第１画像Ｇ１のそれぞれから特徴点を抽出する過程で、各第１画像Ｇ１が、どの特徴点をどこに含んでいるかを示す特徴点情報を生成する。生成した特徴点情報に基づいて、少なくとも２つ第１画像Ｇ１に共通して含まれる特徴点のグループを抽出する。抽出部１１は、例えば、上述した各ビジュアルワードと第１画像Ｇ１のそれぞれから抽出された特徴点のそれぞれと対応付けることにより、第１画像Ｇ１が含むビジュアルワードおよび各ビジュアルワードの位置を示す特徴点情報を生成してもよい。なお、特徴点情報の好適な例については、図６，図７を用いて後述する。
【００２６】
また、抽出部１１は、例えば、生成した特徴点情報に基づいて、互いに異なるビジュアルワードが対応付けられた所定数の特徴点のグループを含む第１画像を判別してもよい。また、抽出部１１は、得られた判別結果に基づいて、少なくとも２つの第１画像Ｇ１に共通して含まれている特徴点のグループを抽出してもよい。ここで、特徴点のグループのそれぞれは、互いに異なるビジュアルワードに対応する３以上の特徴点を含んでいることが望ましい。以下では、特徴点のグループのそれぞれが、互いに異なるビジュアルワードに対応する３つの特徴点を含む場合について説明する。
【００２７】
例えば、図２に示したビジュアルワードＶＷ３，ＶＷ４，ＶＷ５のそれぞれに対応する特徴点は、２枚の第１画像Ｇ１＿１，Ｇ１＿２の双方に含まれている。つまり、ビジュアルワードＶＷ３，ＶＷ４，ＶＷ５のそれぞれに対応する特徴点を含む特徴点のグループは、２枚の第１画像Ｇ１＿１，Ｇ１＿２に共通して含まれる特徴点のグループの例である。
【００２８】
図１に示した検出部１２は、上述した抽出部１１で抽出された特徴点のグループの中から、少なくとも２つの第１画像Ｇ１において、天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する。
【００２９】
ここで、例えば、図１に示した画像蓄積装置１に保持された複数の第１画像Ｇ１が、同一人物によって撮影された画像である場合に、これらの第１画像Ｇ１のいくつかは、同種の物体を撮影した画像である可能性が高い。また、第１画像Ｇ１に撮影された被写体の中には、例えば、図３に示す２枚の第１画像Ｇ１＿１，Ｇ１＿２に含まれる車両のように、天地方向に対して固有の向きで撮影される物体も含まれている。以下の説明では、天地方向に対して固有の向きで撮影される物体あるいは天地方向に対して固有の向きで撮影される被写体を、向きの基準となる物体あるいは向きの基準となる被写体と称する。
【００３０】
図３は、向きの基準となる被写体の例を示している。なお、図３に示した要素のうち、図２に示した要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００３１】
図３に示した第１画像Ｇ１＿１において、矢印Ｕ１は、第１画像Ｇ１＿１に含まれる向き情報で示された天地方向を示している。同様に、図３に示した第１画像Ｇ１＿２において、矢印Ｕ２は、第１画像Ｇ１＿２に含まれる向き情報で示された天地方向を示している。
【００３２】
図３に示した２枚の第１画像Ｇ１＿１，Ｇ１＿２は、同一の車両を正面側から撮影して得られる画像の例であり、これらの第１画像Ｇ１＿１，Ｇ１＿２は、いずれも３つのビジュアルワードＶＷ３，ＶＷ４，ＶＷ５を含んでいる。なお、図３に示した第１画像Ｇ１＿１，Ｇ１＿２において、符号ＶＷ３，ＶＷ４，ＶＷ５は、ビジュアルワードＶＷ３，ＶＷ４，ＶＷ５をそれぞれ有する特徴点を示している。
【００３３】
図３の例では、特徴点ＶＷ３，ＶＷ４，ＶＷ５のそれぞれは、上述した車両の正面から見て左側のヘッドライトの一部、同じく正面から見て左側のフェンダーの一部及び正面から見たナンバープレートの左下の角に対応している。これらの特徴部位が特定の車両において占める位置は不変である。
【００３４】
したがって、第１画像Ｇ１＿１，Ｇ１＿２のように、撮影方向が概ね一致している画像において、ビジュアルワードＶＷ３，ＶＷ４，ＶＷ５のそれぞれを有する特徴点ＶＷ３，ＶＷ４，ＶＷ５は、ほぼ同一の位置関係を持って分布する。例えば、第１画像Ｇ１＿１，Ｇ１＿２のいずれにおいても、特徴点ＶＷ４，ＶＷ５は、ほぼ水平方向に並んでおり、かつ、特徴点ＶＷ３は、上述した２つの特徴点ＶＷ４，ＶＷ５を結ぶ線よりも上側における特徴点ＶＷ５寄りの位置にある。
【００３５】
このように、車両など、天地方向に対して固有の向きで撮影される被写体を類似したアングルで撮影した複数の画像においては、当該被写体の特徴部位に対応するビジュアルワードを有する特徴点の相対的な位置関係は互いに類似する。なお、向きの基準となる被写体は、複数の画像に共通に撮影された同一の物体に限られない。例えば、類似した車種の車両などのように、特徴部位の相対的に位置関係が互いに類似する物体であれば、これらの物体の集合を向きの基準となる被写体として扱ってもよい。
【００３６】
上述したように、ある特徴点のグループが向きの基準となる被写体の特徴部位に対応する場合に、当該被写体を含んでいる複数の第１画像Ｇ１のそれぞれにおいて、当該特徴点のグループに含まれる３つの特徴点は互いに類似した位置関係で分布する。一方、向きの基準となる被写体を含まない第１画像Ｇ１においては、上述した局所特徴の組が含まれていたとしても、これらの局所特徴は画像の全体にランダムに分布するため、互いの位置関係は類似しない。
【００３７】
つまり、ある特徴点のグループが、当該特徴点のグループを共通して含む２つ以上の第１画像において、類似した位置関係で分布していれば、当該特徴点のグループに属する各特徴点は、向きの基準となる被写体の特徴部位のそれぞれに対応している可能性が高い。
【００３８】
したがって、図１に示した検出部１２は、特徴点のグループに属する各特徴点が複数の第１画像Ｇ１において分布する際の位置関係が互いに類似しているか否かに基づいて、固有の位置関係を持っている特徴点のグループを検出することができる。
【００３９】
検出部１２は、特徴点のグループに属する各特徴点が複数の第１画像Ｇ１において分布する際の位置関係が互いに類似している度合いを評価し、得られた評価結果に基づいて、当該特徴点のグループを検出するか否かを判断してもよい。
【００４０】
また、検出部１２は、検出した特徴点のグループに属する各特徴点が、当該特徴点のグループを含む複数の第１画像Ｇ１のそれぞれにおいて分布する位置関係に基づいて、当該特徴点のグループに固有な位置関係を特定してもよい。
【００４１】
なお、検出部１２において、複数の第１画像Ｇ１においてある特徴点のグループに属する各特徴点が分布する位置関係が互いに類似している度合いを示す評価値を求める手法および固有の位置関係を特定する手法の例については、図６及び図９を用いて後述する。
【００４２】
以上に説明した抽出部１１と検出部１２とによれば、複数の第１画像Ｇ１から、天地方向に対して固有の位置関係を持つ特徴点のグループを見つけ出すことができる。以下の説明では、このようにして複数の第１画像Ｇ１から見つけ出した特徴点のグループを判定モデルと称する。
【００４３】
例えば、図３に示した第１画像Ｇ１＿１，Ｇ１＿２に共通する特徴点ＶＷ３，ＶＷ４，ＶＷ５を含む特徴点のグループは、判定モデルの一例である。また、当該特徴点のグループに対応する固有の位置関係は、例えば、図３に示した第１画像Ｇ１＿１，Ｇ１＿２のそれぞれにおいて、上述した特徴点ＶＷ３，ＶＷ４，ＶＷ５が分布する位置関係のいずれかに特定しておくことができる。
【００４４】
次に、上述したようにして見つけ出した判定モデルを用いて、図１に示した探索部１３と判定部１４とにより、向き情報を持たない第２画像Ｇ２の向きを判定する方法について説明する。
【００４５】
探索部１３は、上述した画像蓄積装置１に蓄積された第２画像Ｇ２のそれぞれにおいて、検出部１２により、判定モデルとして検出された特徴点のグループを探索する。探索部１３は、例えば、上述した抽出部１１と同様にして、第２画像Ｇ２に含まれる特徴点を検出し、検出した特徴点のそれぞれに、第１画像Ｇ１から抽出されたビジュアルワードの中から、類似した特徴量に対応するビジュアルワードを割り当てる。また、探索部１３は、第２画像Ｇ２に含まれる特徴点の中から、検出部１２で検出された特徴点のグループに属する特徴点と同じ組み合わせのビジュアルワードが割り当てられた特徴点のグループを見つければよい。
【００４６】
ここで、画像蓄積装置１に保持されている第２画像Ｇ２と第１画像Ｇ１とがいずれも同一の利用者によって撮影された画像である場合には、第２画像Ｇ２に含まれる被写体の中には、第１画像Ｇ１のいずれかと共通の被写体が含まれている可能性が高い。そして、このような共通する被写体の中には、向きの基準となる被写体も含まれている。例えば、第２画像Ｇ２のいくつかは、図４に示すように、図３に示した第１画像Ｇ１＿１，Ｇ１＿２に被写体として含まれている車両と同一、あるいは、類似した車両を含んでいる。
【００４７】
図４は、第２画像の例を示している。なお、図４に示した要素のうち、図２または図３に示した要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００４８】
図４(Ａ)，(Ｂ)は、それぞれ図１に示した画像蓄積装置１に保持された第２画像Ｇ２の例を示している。図４(Ａ)に示した第２画像Ｇ２＿１は、図２及び図３に示した２枚の第１画像Ｇ１＿１，Ｇ１＿２の被写体となっている車両を、画面の長手方向を水平方向に概ね一致させた、いわゆる横位置で撮影した画像である。一方、図４(Ｂ)に示した第２画像Ｇ２＿２は、上述した車両を、画面の長手方向を鉛直方向に概ね一致させた、いわゆる縦位置で撮影した画像である。
【００４９】
図４に示した２枚の第２画像Ｇ２＿１，Ｇ２＿２は、いずれも、図３に示した第１画像Ｇ１＿１，Ｇ１＿２から判定モデルとして見つけ出された特徴点ＶＷ３，ＶＷ４，ＶＷ５を含んでいる。
【００５０】
したがって、図４に示した第２画像Ｇ２＿１について、図１に示した探索部１３が探索を行うことにより、探索部１３は、特徴点ＶＷ３，ＶＷ４，ＶＷ５を含む特徴点のグループを見つけ出すことができる。同様に、図４に示した第２画像Ｇ２＿１について、図１に示した探索部１３が探索を行うことにより、探索部１３は、特徴点ＶＷ３，ＶＷ４，ＶＷ５を含む特徴点のグループを見つけ出すことができる。
【００５１】
判定部１４は、探索部１３によって見つけられた特徴点のグループの位置関係と、当該特徴点のグループに対応する固有の位置関係との比較に基づいて、探索部１３による探索の対象となった第２画像Ｇ２の向きを判定する。
【００５２】
例えば、判定部１４は、図４(Ａ)に示した第２画像Ｇ２＿１における特徴点ＶＷ３，ＶＷ４，ＶＷ５の位置関係が、上述した固有の位置関係と類似する向きを見つけることで、第２画像Ｇ２＿１の天地方向を判定できる。
【００５３】
図４(Ａ)の例では、第２画像Ｇ２＿１における特徴点ＶＷ３，ＶＷ４，ＶＷ５の位置関係は、判定モデルとして検出された特徴点ＶＷ３，ＶＷ４，ＶＷ５を含む特徴点のグループに固有の位置関係と概ね一致している。
【００５４】
このように、判定対象の第２画像Ｇ２の長手方向を水平方向に一致させた状態で、当該第２画像Ｇ２における特徴点のグループの位置関係が固有の位置関係に一致する場合に、図１に示した判定部１４は、画面の長手方向に垂直な方向を天地方向と判定する。なお、図４(Ａ)において、符号Ｕｐ１は、判定部１４によって判定された天地方向を示している。
【００５５】
同様に、図１に示した判定部１４は、図４(Ａ)に示した第２画像Ｇ２＿２における特徴点ＶＷ３，ＶＷ４，ＶＷ５の位置関係が、上述した固有の位置関係と位置関係と類似する向きを見つけることで、第２画像Ｇ２＿２の天地方向を判定できる。
【００５６】
図４(Ｂ)に示した第２画像Ｇ２＿２に含まれる特徴点ＶＷ３，ＶＷ４，ＶＷ５の位置関係は、上述した固有の位置関係と一致しない。しかし、図４(Ｃ)に示すように、第２画像Ｇ２＿２を画面の長手方向を鉛直方向に一致するように回転させれば、第２画像Ｇ２＿２に含まれる特徴点ＶＷ３，ＶＷ４，ＶＷ５の位置関係と上述した固有の位置関係とは概ね一致する。なお、図４(Ｃ)において、符号Ｇ２＿２’は、回転後の第２画像Ｇ２＿２を示している。
【００５７】
このように、判定対象の第２画像Ｇ２の長手方向を鉛直方向に一致するように回転させた状態で、当該第２画像Ｇ２における特徴点のグループの位置関係が固有の位置関係に一致する場合に、図１に示した判定部１４は、画面の長手方向を天地方向と判定する。なお、図４(Ｃ)において、符号Ｕｐ２は、判定部１４によって判定された天地方向を示している。
【００５８】
以上に説明したようにして、図１に示した探索部１３および判定部１４によれば、上述した抽出部１１、検出部１２によって見つけ出された判定モデルを用いて、向き情報を持たない第２画像の向きを判定することができる。
【００５９】
つまり、図１に示した本件開示の画像処理装置１０によれば、向き情報を持つ第１画像に含まれる向きの基準となる被写体の特徴部位に対応する局所特徴の組の位置関係を示す判定モデルに基づいて、向き情報のない第２画像の向きを判定することができる。
【００６０】
また、本件開示の画像処理装置１０による判定結果に基づいて、画像蓄積装置１に保持された第２画像に向き情報を設定することも可能である。このようにして、第２画像に向き情報を設定すれば、その後、図示しない表示装置によって、画像蓄積装置１内の画像を表示させる際に、向き情報のない第２画像についても、向き情報を持つ第１画像と同様に、正しい天地方向で表示可能となる。
【００６１】
例えば、本件開示の画像処理装置１０は、大量の画像を蓄積したアルバムを管理するための装置であるアルバム管理装置(図示せず)の一部として利用することもできる。そして、本件開示の画像処理装置１０を含むアルバム管理装置によれば、大量の画像の中から向き情報を持たない画像を検出し、更に、正しい向き情報を設定するといった煩雑な作業から、利用者を解放することができる。
【００６２】
これにより、画像処理装置１０を含むアルバム管理装置の利用者は、画像蓄積装置１に保持された画像が向き情報を持つか否かにかかわらず、正しい天地方向で表示された画像を楽しむことができる。
【００６３】
なお、上述した画像の向きを管理する処理は、図１に示した画像処理装置１０が、図５に示すフローチャートで示される画像処理方法に従って処理を行うことによっても実現することができる。
【００６４】
図５は、画像の向きを管理する処理のフローチャートの例を示している。図５に示したステップ３００〜ステップ３０６の各処理は、画像の向きを管理するための画像処理方法に含まれる処理の例である。また、ステップ３００〜ステップ３０６の各処理は、画像処理装置１０によって実行される。
【００６５】
まず、画像処理装置１０は、図１に示した画像蓄積装置１に蓄積された画像を参照し、各画像が上述した向き情報を含むか否かに基づいて、第１画像Ｇ１と第２画像Ｇ２とに分類する(ステップ３００)。
【００６６】
次に、画像処理装置１０の抽出部１１は、第１画像Ｇ１の集合から、少なくとも２つの第１画像Ｇ１に共通して含まれる特徴点のグループを抽出する(ステップ３０１)。
【００６７】
次いで、画像処理装置１０は、抽出された特徴点のグループの中から、少なくとも２つの第１画像Ｇ１において、天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する(ステップ３０２)。
【００６８】
その後、画像処理装置１０は、第２画像Ｇ２の集合から処理対象の第２画像を選択し(ステップ３０３)、選択した第２画像について、ステップ３０４およびステップ３０５の処理を行うことにより、当該第２画像Ｇ２の向きを判定する。
【００６９】
ステップ３０４において、画像処理装置１０は、処理対象の第２画像Ｇ２にいて、検出部１２により、判定モデルとして検出された特徴点のグループを探索する。
【００７０】
次いで、画像処理装置１０は、ステップ３０４の処理で見つけられた特徴点のグループが処理対象の第２画像Ｇ２において持つ位置関係と、当該特徴点のグループに対応する固有の位置関係との比較に基づいて、当該第２画像Ｇ２の向きを判定する(ステップ３０５)。
【００７１】
その後、画像処理装置１０は、ステップ３０６において、未判定の第２画像Ｇ２があるか否かを判定し、未判定の第２画像がある場合に(ステップ３０６の肯定判定)、ステップ３０３の処理に戻って、新たな第２画像Ｇ２の向きを判定する。
【００７２】
このようにして、全ての第２画像Ｇ２の向きを判定する処理が完了した場合に（ステップ３０６の否定判定）、画像処理装置１０は、向き情報を管理する処理を終了する。
【００７３】
以上に説明した画像処理方法に含まれる各処理を実行することにより、画像処理装置１０は、画像蓄積装置１に蓄積された第１画像Ｇ１に基づいて、向き判定のための判定モデルを生成し、生成した判定モデルを用いて、第１画像の向きを判定することができる。
【００７４】
次に、本件開示の画像処理装置１０に含まれる抽出部１１、検出部１２及び判定部１４の好適な実施形態について説明する。
【００７５】
図６は、画像処理装置１０の別実施形態を示している。なお、図６に示した構成要素のうち、図１に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００７６】
図６に示した抽出部１１は、特徴点検出部１１１と、クラスタ化処理部１１２と、割り当て部１１３と、特徴点管理テーブル１１４と、ワード管理テーブル１１５と、判別部１１６と、絞込み部１１７とを含んでいる。
【００７７】
特徴点検出部１１１は、画像蓄積装置１に保持された第１画像Ｇ１のそれぞれから、エッジやコーナーなど、色と明るさとの少なくとも一方を示す階調値が所定の閾値よりも大きく変動している箇所を特徴点として検出する。また、特徴点検出部１１１は、検出した個々の特徴点における階調値の変動の特徴を示す特徴量を、当該特徴点に対応する局所特徴量として抽出する。なお、特徴点検出部１１１は、第１画像Ｇ１のそれぞれにおいて、等間隔あるいはランダムに設定した複数の点のそれぞれを特徴点とし、これらの特徴点の近傍における画像の特徴を局所特徴量として抽出してもよい。
【００７８】
また、特徴点検出部１１１は、画像蓄積装置１に保持された第１画像Ｇ１のそれぞれに対して、画像の特徴を抽出するための変換処理を適用することで、特徴点と各特徴点に対応する局所特徴量を抽出してもよい。特徴点検出部１１１は、画像の特徴を抽出するための変換処理として、ＳＩＦＴ(Scale Invariant Feature Transform)やＳＩＦＴを高速化したＳＵＲＦ(Speed Up Robust Features)などの変換処理を適用することが望ましい。なぜなら、ＳＩＦＴやＳＵＲＦは、回転に対して不変の特徴量を有する特徴点を抽出する変換処理であるため、撮影方向が横位置か縦位置かにかかわらず、被写体の同じ特徴部位に対応する箇所を同じ局所特徴量を有する特徴点として検出できるからである。
【００７９】
また、クラスタ化処理部１１２は、特徴点検出部１１１によって検出された各特徴点を局所特徴量に基づいて分類することにより、類似した局所特徴量を持つ複数の特徴点をまとめた複数のクラスタを生成する。クラスタ化処理部１１２は、局所特徴量に基づく分類によって複数のクラスタを生成する際に、例えば、Ｋ平均法などの手法を用いてもよい。また、クラスタ化処理部１１２は、生成した各クラスタに含まれる特徴点が持つ局所特徴量から、各クラスタを代表する局所特徴量を求め、得られた局所特徴量で示される局所特徴に一意のワード番号を与えることで、ビジュアルワードを生成してもよい。
【００８０】
また、割り当て部１１３は、特徴点検出部１１１から、第１画像Ｇ１のそれぞれについて、当該第１画像から検出された特徴点のそれぞれの位置を示す座標を受け取る。また、割り当て部１１３は、クラスタ化処理部１１２から、第１画像Ｇ１のそれぞれについて、当該第１画像から検出された特徴点のそれぞれが属するクラスタを示す情報を受け取る。
【００８１】
割り当て部１１３は、特徴点検出部１１１とクラスタ化処理部１１２とから受け取った情報に基づいて、図７に示す特徴点管理テーブル１１４及び図８に示すワード管理テーブル１１５を生成する。
【００８２】
図７は、特徴点管理テーブル１１４の例を示している。また、図８は、ワード管理テーブル１１５の例を示している。なお、図７，図８に示した要素のうち、図２に示した要素と同等のものについては、同一の符号を付して示す。
【００８３】
図７に示した符号Ｔ１，Ｔ２，…，Ｔｍのそれぞれは、図１に示した画像蓄積装置１に蓄積されているｍ枚の第１画像Ｇ１のそれぞれに対応する特徴点管理テーブル１１４の一つを示している。
【００８４】
図７の例において符号Ｔ１で示した特徴点管理テーブル１１４は、図２に示した第１画像Ｇ１＿１から抽出された各特徴点を示す特徴点番号に対応して、各特徴点の位置を示す座標と、当該特徴点に対応するビジュアルワードを示すワード番号とを保持している。
【００８５】
また、テーブルＴ１に示した各座標(Ｘ１，Ｙ１)，(Ｘ２，Ｙ２)，(Ｘ３，Ｙ３)，(Ｘ４，Ｙ４)，(Ｘ５，Ｙ５)，(Ｘ６，Ｙ６)，(Ｘ７，Ｙ７)は、特徴点番号Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６，Ｂ７で示される特徴点の位置を示している。
【００８６】
なお、図７においては、図２に示した第１画像Ｇ１＿２から抽出された各特徴点を示す特徴点番号と座標およびワード番号の図示および、他の第１画像Ｇ１に対応するテーブルに含まれる情報の図示は省略している。
【００８７】
図６に示した割り当て部１１３は、第１画像Ｇ１のそれぞれに対応する特徴点管理テーブル１１４に、各特徴点を示す特徴点番号に対応して、当該特徴点の位置を示す座標と当該特徴点が属するクラスタに対応するワード番号を保持させる。このようにして、割り当て部１１３は、図７に示したような特徴点管理テーブル１１４を生成してもよい。
【００８８】
また、図８に示したワード管理テーブル１１５は、第１画像Ｇ１の集合から抽出された各ビジュアルワードを示すワード番号に対応して、各クラスタを代表する局所特徴量と、第１画像Ｇ１のそれぞれに含まれる各ビジュアルワードの数を保持している。
【００８９】
図８の例では、ワード管理テーブル１１５は、ワード番号ＶＷ１，ＶＷ２，ＶＷ３，ＶＷ４，ＶＷ５，ＶＷ６，ＶＷ７のそれぞれに対応して、局所特徴量Ｆｖ１，Ｆｖ２，Ｆｖ３，Ｆｖ４，Ｆｖ５，Ｆｖ６，Ｆｖ７を保持している。
【００９０】
例えば、図８に示したワード管理テーブル１１５は、図２に示した第１画像Ｇ１＿１を示す画像番号Ｇ１＿１に対応する列により、第１画像Ｇ１＿１が、それぞれ１個のビジュアルワードＶＷ１，ＶＷ２を含み、２個のビジュアルワードＶＷ３を含むことを示している。同様に、図８に示したワード管理テーブル１１５の画像番号Ｇ１＿１に対応する列は、第１画像Ｇ１＿１が、更に、それぞれ１個のビジュアルワードＶＷ４，ＶＷ５を含むことを示している。また、図８に示したワード管理テーブル１１５の画像番号Ｇ１＿１に対応する列は、第１画像Ｇ１＿１は、ビジュアルワードＶＷ６，ＶＷ７を含まないことを示している。
【００９１】
また一方、図８に示したワード管理テーブル１１５の画像番号Ｇ１＿２に対応する列は、第１画像Ｇ１＿２が、ビジュアルワードＶＷ１，ＶＷ２を含まないことを示している。また、図８に示したワード管理テーブル１１５の画像番号Ｇ１＿２に対応する列は、第１画像Ｇ１＿２が、ビジュアルワードＶＷ３を含むことを示している。また、図８に示したワード管理テーブル１１５の画像番号Ｇ１＿２に対応する列は、第１画像Ｇ１＿２が、更に、それぞれ１個のビジュアルワードＶＷ４，ＶＷ５，ＶＷ６，ＶＷ７を含むことを示している。
【００９２】
なお、図８の例では、他のワード番号で示されるビジュアルワードに対応する情報の図示は省略している。
【００９３】
図６に示した割り当て部１１３は、例えば、第１画像Ｇ１のそれぞれに対応する特徴点管理テーブル１１４において、各ワード番号が出現する度数をそれぞれ計数することで、ワード管理テーブル１１５の対応する列に保持する情報を生成してもよい。
【００９４】
このようにして生成されたワード管理テーブル１１５に基づいて、図６に示した判別部１１６は、互いに異なる種類の特徴点をそれぞれ異なる組み合わせで含む複数の特徴点のグループのそれぞれにつき、当該特徴点のグループを含んでいる第１画像Ｇ１を判別する。
【００９５】
判別部１１６は、例えば、ワード管理テーブル１１５において、様々なワード番号の組み合わせに対応して、１以上の値が設定された画像番号を探索することで、ワード番号の組み合わせのそれぞれで示される特徴点のグループを含む第１画像Ｇ１を判別してもよい。
【００９６】
判別部１１６は、複数のビジュアルワードから所定数のビジュアルワードを選択する組み合わせのそれぞれに対応する特徴点のグループを含む第１画像を判別する処理を行うことが望ましい。なお、上述したクラスタ化処理部１１２によってＬ個のビジュアルワードが得られた場合に、これらのビジュアルワードから３個のビジュアルワードを選択する組み合わせの数Ｎは、式(１)で表すことができる。
Ｎ＝Ｌ＊（Ｌ−１）＊（Ｌ−２）／４          ・・・（１）
つまり、判別部１１６は、上述した組み合わせの数であるＮ通りのワード番号の組み合わせで示される特徴点のグループそれぞれについて、当該特徴点のグループを含む第１画像Ｇ１を判別すればよい。
【００９７】
図６に示した絞り込み部１１７は、上述した判別部１１６によって判別された第１画像Ｇ１の数が所定数以上である特徴点のグループを検出し、検出した特徴点のグループを抽出結果として出力する。
【００９８】
絞り込み部１７は、Ｎ通りのワード番号の組み合わせで示される特徴点のグループそれぞれについて判別された第１画像の数を計数し、得られた計数値が、例えば数十程度の所定値以上である特徴点のグループを検出することが望ましい。また、絞り込み部１７は、画像蓄積装置１に蓄積された第１画像Ｇ１の数に、１より小さい所定の係数を乗じた数を、上述した所定数としてもよい。
【００９９】
このような絞り込み部１７を設けることにより、上述したＮ通りの特徴点のグループから、所定数以上の第１画像Ｇ１に共通して含まれている特徴点のグループを選び出し、選び出した特徴点のグループを検出部１２に渡すことができる。このような絞込みを行うことにより、検出部１２により、高い精度で固有の位置関係を持つ特徴点のグループを検出することが可能となる。なぜなら、数十程度の第１画像Ｇ１のそれぞれにおける特徴点のグループの分布について、以降の処理を行うことにより、ノイズなどの影響で現れた特徴点のグループの影響を抑制することができるからである。
【０１００】
図６に示した検出部１２は、特定部１２１と、分類部１２２と、選択部１２３と、決定部１２４とを含んでいる。
【０１０１】
特定部１２１は、上述した絞り込み部１１７によって選び出された特徴点のグループごとに、当該特徴点のグループを示すワード番号のセットと、当該特徴点のグループを含むとされた第１画像Ｇ１のそれぞれを示す画像番号のセットを受け取る。
【０１０２】
例えば、図３に示した特徴点ＶＷ３，ＶＷ４，ＶＷ５を含む特徴点のグループが検出された場合に、特定部１２１は、当該特徴点のグループを示すワード番号のセットとして、ワード番号ＶＷ３，ＶＷ４，ＶＷ５のセットを受け取る。また、特定部１２１は、特徴点ＶＷ３，ＶＷ４，ＶＷ５を含む特徴点のグループを含む第１画像Ｇ１を示す画像番号のセットとして、図３に示した第１画像Ｇ１＿１，Ｇ１＿２のそれぞれを示す画像番号Ｇ１＿１，Ｇ１＿２を含む画像番号のセットを受け取る。
【０１０３】
また、特定部１２１は、画像番号のセットで示された第１画像Ｇ１のそれぞれに対応する特徴点管理テーブル１１４から、ワード番号のセットで示された特徴点のそれぞれの位置を示す情報である位置情報を取得する。
【０１０４】
例えば、ワード番号のセットに含まれる画像番号Ｇ１＿１で示される特徴点管理テーブル１１４から、特定部１２１は、ワード番号のセットに含まれるワード番号ＶＷ３，ＶＷ４，ＶＷ５に対応して保持された特徴点Ｂ３，Ｂ４，Ｂ５の座標を取得する。
【０１０５】
このようにして取得した特徴点のそれぞれの位置情報に基づいて、特定部１２１は、特徴点のグループに属する特徴点の第１画像Ｇ１における位置関係を特定する。例えば、特定部１２１は、上述した３つの特徴点の位置関係を特定する情報として、３つの特徴点相互間の距離や、３つの特徴点のうち２つを結ぶ直線と他の特徴点との相対位置を記述する情報を生成してもよい。
【０１０６】
ここで、例えば、図２(Ａ)に示した第１画像Ｇ１＿１のように、同一のビジュアルワードＶＷ３に対応して複数の特徴点(例えば、特徴点Ｂ３，Ｂ６)を含んでいる場合がある。このような場合に、特定部１２１は、上述した複数の特徴点のそれぞれが特徴点のグループに含まれる場合について、それぞれ位置関係を特定することが望ましい。
【０１０７】
また、特定部１２１は、取得した位置情報に基づいて、次に述べるようにして、上述した各ワード番号で示された特徴点の第１画像Ｇ１における位置関係を特定してもよい。
【０１０８】
特定部１２１は、取得した座標に基づいて、特徴点のグループに属する各特徴点を例えばワード番号の昇順で結ぶ線分をそれぞれ特定し、これらの線分それぞれと第１画像Ｇ１における座標の基準軸とがなす角の角度により、特徴点の位置関係を特定してもよい。なお、特定部１２１は、位置関係を特定する際に、各特徴点をワード番号の降順で結ぶ線分を特定してもよい。
【０１０９】
例えば、図２に示した第１画像Ｇ１＿１において、特定部１２１は、ビジュアルワードＶＷ３，ＶＷ４，ＶＷ５を含む局所特徴の組について、図９に示すようにして、位置関係を特定する。
【０１１０】
図９は、位置関係の特定例を示している。なお、図９に示した要素のうち、図２に示した要素と同等のものについては、同一の符号を付して示した。また、図９に示した座標軸Ｘ，Ｙは、画像における位置の基準軸の例を示している。
【０１１１】
図９に示した特徴点Ｂ３，Ｂ５，Ｂ４のそれぞれは、図２に示した第１画像Ｇ１＿１に含まれる特徴点であり、図２に示したビジュアルワードＶＷ３，ＶＷ４，ＶＷ５のそれぞれに対応している。
【０１１２】
図６に示した特定部１２１は、図９に示した３つの特徴点Ｂ３，Ｂ５，Ｂ４を、それぞれが対応するビジュアルワードを示すワード番号が小さい順に結ぶことで、３つの線分を特定する。すなわち、特定部１２１は、まず、最も若いワード番号ＶＷ３で示されるビジュアルワードＶＷ３に対応する特徴点Ｂ３と、２番目に若いワード番頭ＶＷ４で示されるビジュアルワードＶＷ４に対応する特徴点Ｂ５を結ぶ線分Ｓ１を特定する。次いで、特定部１２１は、２番目に若いワード番頭ＶＷ４で示されるビジュアルワードＶＷ４に対応する特徴点Ｂ５と、３つのうち最も大きいワード番号ＶＷ５で示されるビジュアルワードＶＷ５に対応する特徴点Ｂ４を結ぶ線分Ｓ２を特定する。そして、特定部１２１は、最も大きいワード番号ＶＷ５で示されるビジュアルワードＶＷ５に対応する特徴点Ｂ４と、最も若いワード番号ＶＷ３で示されるビジュアルワードＶＷ３に対応する特徴点Ｂ３を結ぶ線分Ｓ３を特定する。
【０１１３】
また、特定部１２１は、上述したようにして特定した３つの線分Ｓ１，Ｓ２，Ｓ３のそれぞれと、第１画像Ｇ１＿１における座標の基準軸であるＸ軸とのなす角をそれぞれ特定する。特定部１２１は、例えば、図９に示すように、各線分Ｓ１，Ｓ２，Ｓ３とＸ軸とがなす角を、Ｘ軸から反時計回りに測った角度α、β，γによって示し、これらの角度α、β，γを３つの特徴点Ｂ３，Ｂ５，Ｂ４の位置関係を示すパラメータとして取得してもよい。
【０１１４】
同様にして、特定部１２１は、絞り込み部１７から受け取った画像番号のセットで示される第１画像Ｇ１において、対応して受け取ったワード番号のセットで示される特徴点のグループが占める位置関係を、上述した角度のセットをパラメータとして特定できる。
【０１１５】
図６に示した分類部１２２は、上述した特定部１２１が、注目する特徴点のグループを含む第１画像Ｇ１のそれぞれについて特定した位置関係を、それぞれ所定の閾値以上に類似する位置関係を含む複数の集合に分類する。
【０１１６】
また、選択部１２３は、分類部１２２で得られた複数の集合のいずれかに位置関係が偏って分布している度合いを求め、得られた度合いが所定の閾値以上であるか否かを判定する。また、選択部１２３は、上述した度合いが閾値以上である場合に、特定部１２１によって第１画像Ｇ１のそれぞれにおける位置関係が特定された特徴点のグループを、天地方向を基準として固有の位置関係で分布している特徴点のグループとして選択する。
【０１１７】
また、決定部１２４は、選択部１２３により、固有の位置関係で分布している特徴点のグループが選択された場合に、当該特徴点のグループについて特定部１２１によって特定された位置関係について分類部１２２で得られた複数の集合を受け取る。また、決定部１２４は、受け取った集合の中から最も多くの位置関係が属する集合を見つけ、当該集合に含まれる位置関係に基づいて、選択部１２３によって選択された特徴点のグループに固有の位置関係を決定する。決定部１２４は、例えば、最も多くの位置関係が属する集合に属する位置関係に基づいて、当該集合を代表する位置関係を求めることで、選択部１２３によって選択された特徴点のグループに固有の位置関係を決定してもよい。
【０１１８】
このようにして、検出部１２は、向きの基準となる被写体の特徴部位に対応している可能性が高い特徴点のグループと、当該特徴点のグループに固有の位置関係とを検出することができる。
【０１１９】
なお、上述した選択部１２３は、例えば、分類部１２２で得られた複数の集合のそれぞれに要素として含まれる位置関係の数と、複数の集合のそれぞれの要素数の平均とを比べることで、上述した度合いを求めてもよい。また、選択部１２３において、上述した度合いと比較する所定の閾値は、例えば、次のような閾値を求めるための実験の結果に基づいて、予め決定しておいてもよい。例えば、閾値を求めるための実験として、向きの基準となる被写体の特徴部位に対応することが分かっている特徴点のグループについて、分類部１２２で得られた複数の集合のいずれかに位置関係が偏って分布している度合いを求める実験を行ってもよい。また、上述した所定の閾値の値は、上述した閾値を求めるための実験で得られた評価値の最小値と同じ程度の値に設定されてもよい。
【０１２０】
次に、特定部１２１により、個々の第１画像Ｇ１における特徴点のグループの位置関係が上述した角度α、β，γをパラメータとして特定されている場合に、分類部１２２がこれらの位置関係を分類する際に好適な手法について説明する。
【０１２１】
図１０は、位置関係を分類する手法の例を示している。図１０に示した座標軸α，β，γのそれぞれは、図６に示した特定部１２１によって位置関係を特定するパラメータとして求められた３つの角度の大きさを示している。
【０１２２】
また、図１０において、符号Ｃ１は、上述した座標軸α，β，γで示されるベクトル空間を所定値ごとに区切ることで得られる複数の領域であるビンの一つを示している。なお、図１０においては、上述したビンＣ１以外のビンの図示は省略している。
【０１２３】
また、図１０において、符号Ｒ１，Ｒ２のそれぞれは、注目する特徴点のグループについて、図９で説明したようにして特定された３つの角度のセットをパラメータとして示される位置関係の例を示している。図１０の例は、位置関係Ｒ１，Ｒ２は、いずれもビンＣ１に含まれている場合を示している。
【０１２４】
図６に示した分類部１２２は、注目する特徴点のグループについて得られた位置関係のそれぞれを示すパラメータに基づいて、当該位置関係を図１０に示したベクトル空間に設けられたビンのいずれかに振り分けることで、これらの位置関係を分類してもよい。このようにして、分類部１２２は、特徴点のグループに対応して特定部１２１から受け取った位置関係を、上述したベクトル空間に設けられた複数のビンに対応する複数のグループに分類することができる。
【０１２５】
なお、上述したベクトル空間に含まれる各ビンの大きさは、例えば、特徴点のグループが向きの基準となる被写体の特徴部位に対応している場合に、当該特徴点のグループを含む第１画像Ｇ１について得られる位置関係が分布する範囲と同じ程度に設定してもよい。
【０１２６】
また、分類部１２２は、次に述べるような投票処理によって、分類処理を行ってもよい。分類部１２２は、例えば、特定部１２１から受け取ったパラメータで示されるビンに属する位置関係の数に１を加算する投票を行うとともに、当該ビンに隣接するビンに属する位置関係の数に１より小さい値を加算する投票を行ってもよい。
【０１２７】
このように、特定部１２１により、個々の第１画像Ｇ１における特徴点の位置関係を上述した角度のセットをパラメータとして特定する場合は、図６に示した分類部１２２の処理を、ベクトル空間の各ビンへのマッピングとして実現することができる。
【０１２８】
なお、図６に示した特定部１２１が個々の位置関係を特定する手法は、上述した角度をパラメータとして位置関係を特定する手法に限らず、図３を用いて説明したような手法によって位置関係を特定してもよい。
【０１２９】
また、特定部１２１が、図３を用いて説明したような手法によって位置関係を特定する場合に、図６に示した分類部１２２は、個々の位置関係を表す情報を互いに比較することにより、互いに類似する位置関係を含む複数のグループに分けることができる。
【０１３０】
この場合にも、選択部１２３は、複数のグループのそれぞれに属する要素数に基づいて、簡易な計算を行うことで、注目する特徴点のグループに対応する位置関係がいずれかの集合に偏って分布する度合いを求めることができる。
【０１３１】
次に、画像処理装置１０に含まれる判定部１４の好適な例について説明する。図６に示した判定部１４は、判定モデル保持部１４１と、照合部１４２と、向き情報生成部１４３とを含んでいる。
【０１３２】
図６に示した判定モデル保持部１４１は、図１１に示すように、特徴点のグループを示すワード番号のセットと、当該特徴点のグループに対応して、上述した決定部１２４によって得られた固有の位置関係を保持する。このような判定モデル保持部１４１によれば、判定モデルとして検出された特徴点のグループそれぞれに対応して、それぞれの固有の位置関係を示すことができる。
【０１３３】
図１１は、図６に示した判定モデル保持部１４１に保持された判定モデルの例を示している。なお、図１１に示した要素のうち、図８に示した要素と同等のものについては、同一の符号を付している。
【０１３４】
図１１に示した判定モデル保持部１４１は、判定モデルとして検出された特徴点のグループを示すワード番号のセットと、判定モデルのそれぞれに固有の位置関係を示す情報とを含んでいる。
【０１３５】
ここで、図１１において、符号「ワード１」で示される列は、判定モデルとして検出された特徴点のグループを示すワード番号のセットのうち、最も若いワード番号を含んでいる。また、符号「ワード２」で示される列は、判定モデルとして検出された特徴点のグループを示すワード番号のセットのうち、２番目に若いワード番号を含んでいる。そして、符号「ワード３」で示される列は、判定モデルとして検出された特徴点のグループを示すワード番号のセットのうち、最も大きいワード番号を含んでいる。
【０１３６】
また、図１１に示した判定モデル保持部１４１は、判定モデルに固有の位置関係を示す情報として、図９を用いて説明した線分のそれぞれと座標軸とのなす角の組を含んでいる。図１１に示した符号「角α」で示した列は、上述したワード１、ワード２の列で示される２つの特徴点を結ぶ線分と図９に示したＸ軸とがなす角の角度を示している。同様に、符号「角β」で示した列は、上述したワード２、ワード３の列で示される２つの特徴点を結ぶ線分と図９に示したＸ軸とがなす角の角度を示している。また、符号「角γ」で示した列は、上述したワード３、ワード１の列で示される２つの特徴点を結ぶ線分と図９に示したＸ軸とがなす角の角度を示している。
【０１３７】
また、図１１に示した判定モデル保持部１４１において、モデル番号は、判定モデルとして検出された特徴点のグループと、固有の位置関係とのペアのそれぞれを一意に示す番号である。例えば、一つの特徴点のグループに対して、複数の固有の位置関係が見つかった場合に、当該特徴点のグループと、複数の固有の位置関係のそれぞれとのペアにそれぞれモデル番号を与えることで、特徴点のグループを共有する複数の判定モデルを定義してもよい。
【０１３８】
図１１に示した判定モデル保持部１４１は、モデル番号１に対応する判定モデルとして、ワード番号ＶＷ３，ＶＷ４，ＶＷ５で示される特徴点のグループと、上述した角α，角β，角γがそれぞれ角度α１，β１，γ１である位置関係との組み合わせを含んでいる。例えば、ワード番号ＶＷ３，ＶＷ４，ＶＷ５で示される特徴点のグループにつき、図１１に示した位置関係の他に固有の位置関係が得られた場合に、得られた位置関係と上述した特徴点のグループとのペアに、別のモデル番号を与えてもよい。なお、図１１においては、他の判定モデルの図示は省略している。
【０１３９】
また、判定モデル保持部１４１に、複数の判定モデルが登録されている場合に、図６に示した探索部１３は、判定モデル保持部１４１に含まれる判定モデルのそれぞれで示される特徴点のグループを、判定対象の第２画像Ｇ２において探索する。また、探索部１３は、判定対象の第２画像Ｇ２において、注目する特徴点のグループを見つけた場合に、当該特徴点のグループに属する各特徴点の第２画像Ｇ２における位置を示す情報を取得し、取得した情報を照合部１４２に渡してもよい。
【０１４０】
図６に示した照合部１４２は、探索部１３から受け取った情報に基づいて、第２画像Ｇ２から見つけられた特徴点のグループの位置関係を特定し、特定した位置関係について、次に述べるような照合処理を行う。
【０１４１】
照合部１４２は、判定モデル保持部１４１から、上述した特徴点のグループに対応付けられた固有の位置関係を取得し、取得した固有の位置関係に基づいて、当該固有の位置関係を所定の角度で回転させた位置関係を生成する。また、照合部１４２は、取得した固有の位置関係と、上述したようにして回転させた位置関係とのそれぞれと、探索部１３から受け取った第２画像Ｇ２における位置関係とを照合する。照合部１４２は、例えば、判定モデル保持部１４１に保持された固有の位置関係に基づいて、図１２に示すように、当該固有の位置関係を回転させた位置関係を用意し、これらの位置関係と第２画像Ｇ２についての探索で得られた位置関係とを照合してもよい。
【０１４２】
図１２は、判定モデルで示された固有の位置関係と探索部１３で得られた第２画像Ｇ２における位置関係との照合例を示している。
【０１４３】
図１２(Ａ)は、判定モデルで示された固有の位置関係の例と、当該固有の位置関係を所定の角度で回転させた位置関係の例とを示している。図１２(Ａ)において、符号Ｓ０は、回転させていない固有の位置関係の例を示し、符号Ｓ１は、上述した固有の位置関係Ｓ０を反時計回りに９０度回転させた位置関係を示している。同様に、図１２(Ａ)において、符号Ｓ２は、上述した固有の位置関係Ｓ０を反時計回りに１８０度回転させた位置関係を示し、符号Ｓ３は、上述した固有の位置関係Ｓ０を反時計回りに２７０度回転させた位置関係を示している。また、これらの位置関係Ｓ０，Ｓ１，Ｓ２，Ｓ３のそれぞれに含まれる符号Ｐ１，Ｐ２，Ｐ３は、それぞれ同一のビジュアルワードを有する特徴点の位置を示している。なお、以下の説明では、固有の位置関係Ｓ０を示す図形を基準図形と称し、当該基準図形をそれぞれ所定の角度で回転させた位置関係Ｓ１，Ｓ２，Ｓ３を示す図形を回転図形と称する。
【０１４４】
また、図１２(Ｂ)，(Ｃ)は、判定対象の第２画像Ｇ２について上述した探索部１３で得られた位置関係と、図１２(Ａ)に示した固有の位置関係および回転させた位置関係との照合例を示している。
【０１４５】
図１２(Ｂ)において、符号Ｇ２＿ａは、第２画像Ｇ２の一例を示している。また、図１２(Ｂ)に示した第２画像Ｇ２＿ａにおいて、実線で示した三角形の頂点Ｐ１，Ｐ２，Ｐ３は、それぞれ図１２(Ａ)に示した特徴点Ｐ１，Ｐ２，Ｐ３と同一のビジュアルワードを有する特徴点を示している。なお、図１２(Ｂ)に示した座標軸Ｘ，Ｙは、第２画像Ｇ２＿ａにおける位置の基準となる座標系を示している。例えば、座標軸Ｘは、第２画像Ｇ２＿ａにおける画素の並び方向を示している。
【０１４６】
図１２(Ｂ)の例は、第２画像Ｇ２＿ａについての探索で得られた特徴点Ｐ１に、図１２(Ａ)において回転された位置関係Ｓ１を示す破線で示した三角形の頂点Ｐ１を重ね合わせた様子を示している。
【０１４７】
また、図１２(Ｃ)において、符号Ｇ２＿ｂは、第２画像Ｇ２の別例を示している。また、図１２(Ｃ)に示した第２画像Ｇ２＿ａにおいて、実線で示した三角形の頂点Ｐ１，Ｐ２，Ｐ３は、それぞれ図１２(Ａ)に示した特徴点Ｐ１，Ｐ２，Ｐ３と同一の局所特徴を有する特徴点を示している。なお、図１２(Ｃ)に示した座標軸Ｘ，Ｙは、第２画像Ｇ２＿ｂにおける位置の基準となる座標系を示している。例えば、座標軸Ｘは、第２画像Ｇ２＿ｂにおける画素の並び方向を示している。
【０１４８】
図１２(Ｃ)の例は、同様に、第２画像Ｇ２＿ｂについての探索で得られた特徴点Ｐ１に、図１２(Ａ)において固有の位置関係Ｓ０を示す破線で示した三角形の頂点Ｐ１を重ね合わせた様子を示している。
【０１４９】
図６に示した照合部１４２は、このように、探索部１３で得られた特徴点のいずれかに、固有の位置関係と回転させた位置関係とのそれぞれの対応する特徴点を重ね合わせ、重ね合わせた２つの位置関係が一致している度合いをそれぞれ求めてもよい。なお、照合部１４２は、第２画像Ｇ２における特徴点の位置関係を示す図形の大きさに合わせて、判定モデルで示される固有の位置関係を示す基準図形と当該基準図形をそれぞれ所定の角度で回転した回転図形を生成してもよい。
【０１５０】
例えば、照合部１４２は、第２画像Ｇ２における位置関係を示す図形の各頂点と、上述した基準図形の対応する頂点との距離を求め、得られた距離の総和を、第２画像Ｇ２における位置関係と固有の位置関係とが一致している度合いを示す指標値としてもよい。同様にして、照合部１４２は、第２画像Ｇ２における位置関係を示す図形と、図１２(Ａ)に示したようにそれぞれ所定の角度で基準図形を回転させた回転図形のそれぞれとが一致している度合いを示す指標値を求めることができる。
【０１５１】
また、照合部１４２は、固有の位置関係を示す角度のセットに基づいて、当該角度のセットに含まれる角度のそれぞれに９０度，１８０度，２７０度を加算することで、回転された位置関係を示す角度のセットを求めてもよい。また、照合部１４２は、これらの角度のセットを第２画像における位置関係との照合に用いてもよい。
【０１５２】
例えば、照合部１４２は、第２画像Ｇ２についての探索で得られた特徴点を結ぶ線分のそれぞれと第２画像Ｇ２におけるＸ軸とがなす角を求め、得られた角度のセットを第２画像Ｇ２における位置関係を示す情報として取得してもよい。また、照合部１４２は、上述した角度のセットに含まれる角度のそれぞれと、固有の位置関係を示す角度のセットに含まれる対応する角度との差の絶対値の総和を求め、得られた値を照合対象である２つの位置関係が一致しり度合いを示す指標値としてもよい。同様にして、照合部１４２は、第２画像Ｇ２における位置関係を示す角度のセットと、所定の角度で回転させた角度のセットとの比較に基づいて、第２画像Ｇ２における位置関係と回転させた位置関係のそれぞれとが一致している度合いを示す指標値を求めてもよい。
【０１５３】
上述した指標値は、図１２に示した基準図形および回転図形を用いる場合も、固有の位置関係を示す角度のセットと回転された角度のセットとを用いる場合も、照合される２つの位置関係が一致している度合いが高いほど小さい値を示す。したがって、照合部１４２は、固有の位置関係および所定の角度で回転させた位置関係について求めた指標値の最小値が、所定の閾値よりも小さい場合に、第２画像Ｇ２における位置関係は、指標値の最小値を与える位置関係と一致していると判断してもよい。
【０１５４】
図６に示した向き情報設定部１４３は、照合部１４２による照合結果に基づいて、次のようにして、判定対象の第２画像Ｇ２の天地方向を判定し、判定結果を示す向き情報を生成する。
【０１５５】
判定モデルで示された固有の位置関係と判定対象の第２画像Ｇ２における特徴点のグループの位置関係とが一致するとされた場合に、向き情報設定部１４３は、当該第２画像Ｇ２における画素の並び方向に対して所定の向きを持つ第１方向を天地方向と判定する。
【０１５６】
一方、固有の位置関係を所定の角度で回転させた位置関係と判定対象の第２画像Ｇ２における特徴点のグループの位置関係とが一致するとされた場合に、向き情報設定部１４３は、第１方向に対して所定の角度をなす第２方向を、当該第２画像の天地方向と判定する。
【０１５７】
また、向き情報設定部１４３は、上述したようにして判定した天地方向を示す向き情報を生成し、生成した向き情報を、図６に示した画像蓄積装置１に蓄積された判定対象の第２画像Ｇ２を表す画像データに付加してもよい。
【０１５８】
以上に説明した探索部１３と、照合部１４２を有する判定部１４によれば、第２画像Ｇ２に含まれる特徴点のグループの位置関係が、判定モデルで示された固有の位置関係に一致するようになる向きを、簡易な処理によって特定することができる。
【０１５９】
つまり、図６に示した画像処理装置１０に含まれる抽出部１１、検出部１２、探索部１３、判定部１４は、いずれも簡易な演算処理で実現可能である。
【０１６０】
したがって、以上に説明した本件開示の画像処理装置１０は、例えば、パーソナルコンピュータなどのコンピュータ装置を用いて実現することができる。
【０１６１】
図１３は、画像処理装置１０のハードウェア構成の一例を示している。なお、図１３に示した構成要素のうち、図６に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【０１６２】
図１３に示したコンピュータ装置２０は、プロセッサ２１と、メモリ２２と、ハードディスク装置２３と、汎用インタフェース２４と、表示装置２５と、入力装置２６と、光学ドライブ装置２７とを含んでいる。図１３に例示したプロセッサ２１と、メモリ２２と、ハードディスク装置２３と、汎用インタフェース２４と、表示装置２５と、入力装置２６と、光学ドライブ装置２７とは、バスを介して互いに接続されている。
【０１６３】
図１３に示したコンピュータ装置２０に含まれるプロセッサ２１と、メモリ２２と、ハードディスク装置２３と、汎用インタフェース２４とは、画像処理装置１０に含まれている。また、コンピュータ装置２０は、汎用インタフェース２４を介して、デジタルカメラ２などの撮像装置との間で画像データを含む情報の授受を行ってもよい。
【０１６４】
また、上述した光学ドライブ装置２７は、光ディスクなどのリムーバブルディスク２８を装着可能であり、装着したリムーバブルディスク２８に記録された情報の読出および記録を行う。また、コンピュータ装置２０は、ネットワークインタフェース(図示せず)を介して、インターネットなどのネットワークに接続されていてもよい。
【０１６５】
図１３に示した表示装置２５は、例えば、液晶ディスプレイ装置などであり、また、入力装置２６は、例えば、キーボードやマウスなどである。画像処理装置１０の操作者は、入力装置２６を操作することにより、画像処理装置１０に対して、例えば、ハードディスク装置２３に設けられた画像蓄積部２３１内の画像について、上述した向き情報を管理する処理を実行させてもよい。また、入力装置２６を操作することにより、画像処理装置１０に対して、デジタルカメラ２に搭載されたメモリーカード(図示せず)内の画像について、上述した向き情報を管理する処理を実行させてもよい。なお、画像処理装置１０が、画像蓄積部２３１内の画像について、上述した向き情報を管理する処理を実行する場合に、画像蓄積部２３１は、図１および図６に示した画像蓄積装置１に相当する。また、画像処理装置１０が、デジタルカメラ２に搭載されたメモリーカード内の画像について、上述した向き情報を管理する処理を実行する場合に、上述したメモリーカードは、図１および図６に示した画像蓄積装置１に相当する。
【０１６６】
また、画像処理装置１０の操作者は、表示装置２５を介して、画像処理装置１０によって得られた処理結果を示す情報を確認してもよい。
【０１６７】
図１３に例示したメモリ２２は、コンピュータ装置２０のオペレーティングシステムとともに、プロセッサ２１が上述した画像の向き情報を管理する処理を実行するためのアプリケーションプログラムを格納している。なお、画像の向き情報を管理する処理を実行するためのアプリケーションプログラムは、例えば、光ディスクなどのリムーバブルディスク２８に記録して頒布することができる。そして、このリムーバブルディスク２８を光学ドライブ装置２７に装着して読み込み処理を行うことにより、画像の向き情報を管理する処理を実行するためのアプリケーションプログラムを、メモリ２２およびハードディスク装置２３に格納させてもよい。また、図示しないネットワークインタフェースを介して、インターネットなどのネットワークから、画像の向き情報を管理する処理を実行するためのアプリケーションプログラムをダウンロードし、メモリ２２およびハードディスク装置２３に読み込ませてもよい。
【０１６８】
図１４および図１６は、画像の向き情報を管理する処理のフローチャートの別例を示している。なお、図１４、図１６に示したステップのうち、図５に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
【０１６９】
図１４に示したフローチャートと図１６に示したフローチャートとは、同一の数字「１」を付した結合子によって結合されている。
【０１７０】
また、図１４、図１６に示したステップ３００〜ステップ３０６およびステップ３１１〜ステップ３２３の各処理は、画像の向き情報を管理する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップ３００〜ステップ３０６およびステップ３１１〜ステップ３２３の各処理は、図１３に示したプロセッサ２１によって実行される。
【０１７１】
プロセッサ２１は、ハードディスク装置２３に設けられた画像蓄積部２３１内の各画像を表す画像データを参照し、各画像データが向き情報を含んでいるか否かにより、各画像が第１画像か第２画像かを判別する(ステップ３００)。
【０１７２】
次いで、プロセッサ２１は、ＳＩＦＴアルゴリズムなどの画像解析アルゴリズムに従って、ステップ３００で判別された第１画像Ｇ１の集合から、ビジュアルワードの集合を抽出する(ステップ３１１)。なお、プロセッサ２１は、ステップ３１１の処理の過程で、ハードディスク装置２３内に所定の記憶容量を確保し、確保した記憶容量を用いて、図６に示した特徴点管理テーブル１１４およびワード管理テーブル１１５を形成してもよい。
【０１７３】
次に、プロセッサ２１は、ワード管理テーブル１１５に基づいて、図１６に示すフローチャートの処理を実行することにより、高い精度で固有の位置関係を特定することが可能な特徴点のグループである候補セットを生成する(ステップ３１１)。
【０１７４】
図１６は、候補セットを生成する処理のフローチャートの例を示している。図１６に示したステップＳ１〜ステップＳ１０の各処理は、図１４に示したステップ３１１の処理の一例である。また、これらのステップＳ１〜ステップＳ１０の各処理は、図１３に示したプロセッサ２１によって実行される。
【０１７５】
まず、プロセッサ２１は、上述したステップ３０１で得られたビジュアルワードの集合に含まれる全てのビジュアルワードから３つのビジュアルワードのセットを選択する組み合わせの全てを生成する(ステップＳ１)。
【０１７６】
次いで、プロセッサ２１は、ステップＳ１で生成した組み合わせの一つを以下のステップＳ３〜ステップＳ１０の処理対象のビジュアルワードのセットとして選択する(ステップＳ２)。
【０１７７】
次に、プロセッサ２１は、上述したステップ３００の処理で判別した第１画像のそれぞれに順次に注目し、注目する第１画像に対応してワード管理テーブル１１４に保持された包含情報において、選択したビジュアルワードのセットを探索する(ステップＳ３)。プロセッサ２１は、注目する第１画像を示す画像番号に対応するワード管理テーブル１１４の列において、選択したビジュアルワードのセットに含まれる各ビジュアルワードに対応して保持された情報を参照することで、上述した探索を行ってもよい。
【０１７８】
注目する第１画像に処理対象のビジュアルワードのセットに含まれる全てのビジュアルワードが含まれる場合に(ステップＳ４の肯定判定)、プロセッサ２１は、ステップＳ５の処理を実行する。
【０１７９】
ステップＳ５において、プロセッサ２１は、注目する第１画像が、処理対象のビジュアルワードのセットを含んでいる旨を示す判定値Ｔを、図１７に示す候補管理テーブルに登録する。なお、プロセッサ２１は、図１４に示したステップ３１１の処理の実行に先立って、例えば、図１３に示したハードディスク装置２３の記憶容量の一部を候補管理テーブルに割り当てておくことが望ましい。
【０１８０】
図１７は、候補管理テーブルの例を示している。なお、図１７に示した要素のうち、図８に示した要素と同等のものについては、同じ符号を付して示している。
【０１８１】
図１７に示した候補管理テーブルの各行は、上述したステップＳ１で生成されたビジュアルワードのセットのそれぞれに対応している。また、この候補管理テーブルの各列は、上述したステップ３００で判別された第１画像のそれぞれを示す画像番号に対応している。
【０１８２】
プロセッサ２１は、図１６のステップＳ５において、上述した候補管理テーブルに含まれる処理対象のビジュアルワードのセットに対応する行において、注目する第１画像を示す画像番号に対応する列に、判定値Ｔを登録すればよい。
【０１８３】
なお、図１７の候補管理テーブルの例では、ワード番号ＶＷ１，ＶＷ２，ＶＷ３で示されるビジュアルワードのセットに対応する行の、画像番号Ｇ１＿１に対応する列に判定値Ｔが登録されている。これにより、図２に示した第１画像Ｇ１＿１が、上述したビジュアルワードのセットを含んでいることが示されている。
【０１８４】
同様に、図１７の候補管理テーブルの例では、ワード番号ＶＷ１，ＶＷ２，ＶＷ３で示されるビジュアルワードのセットに対応する行の、画像番号Ｇ１＿２に対応する列に判定値Ｆを登録されている。これにより、図２に示した第１画像Ｇ１＿２が、上述したビジュアルワードのセットを含んでいないことが示されている。
【０１８５】
また、図１７の候補管理テーブルの例では、ワード番号ＶＷ３，ＶＷ４，ＶＷ５で示されるビジュアルワードのセットに対応する行の、画像番号Ｇ１＿１、Ｇ１＿２に対応する列の双方に判定値Ｔが登録されている。これにより、図２に示した第１画像Ｇ１＿１，Ｇ１＿２の双方が、上述したビジュアルワードのセットを含んでいることが示されている。
【０１８６】
なお、図１７においては、上述した２つのビジュアルワードのセット以外の各セットを第１画像のそれぞれが含むか否かを示す判定値の図示を省略している。また、上述した２つのビジュアルワードのセットを、画像番号Ｇ１＿１，Ｇ１＿２以外の第１画像のそれぞれが含むか否かを示す判定値の図示を省略している。
【０１８７】
ここで、プロセッサ２１は、ハードディスク装置２３内などに候補管理テーブルを生成した際などに、ビジュアルワードのセットそれぞれに対応して設ける行の各列に対応して、当該ビジュアルワードのセットを含まない旨の暗黙値Ｆを設定しておくことが望ましい。この場合は、図１６に示したように、ステップＳ４の否定判定の場合に、ステップＳ５の処理をスキップすることで、処理対象のビジュアルワードのセットを注目する第１画像が含まないことを示すことができる。つまり、処理対象のビジュアルワードのセットと注目する第１画像とに対応して候補管理テーブルに保持された暗黙値Ｆを維持させることで、判定値Ｆを登録した場合と同等の効果を得ることができる。
【０１８８】
上述したステップＳ４の否定判定の場合およびステップＳ４の肯定判定に応じてステップＳ５の処理が終了した場合に、プロセッサ２１は、全ての第１画像について、上述したステップＳ３からステップＳ５の処理を実行したか否かを判定する(ステップＳ６)。
【０１８９】
未処理の第１画像がある場合に(ステップＳ６の否定判定)、プロセッサ２１は、ステップＳ３の処理に戻り、新たな第１画像に注目し、注目する第１画像についてステップＳ３〜ステップＳ５の処理を繰り返して実行する。
【０１９０】
上述したステップＳ３〜ステップＳ５の処理を繰り返し実行することにより、全ての第１画像についての処理が完了した場合に(ステップＳ６の肯定判定)、プロセッサ２１は、ステップＳ７の処理に進む。
【０１９１】
ステップＳ７において、プロセッサ２１は、上述した候補管理テーブルに基づいて、処理対象のビジュアルワードの組を含んでいることが示された第１画像の数を計数する。プロセッサ２１は、例えば、図１７に示した候補管理テーブルにおいて、処理対象のビジュアルワードのセットに対応する行において、判定値Ｔが登録された列の数を計数することで、上述した計数処理を実行してもよい。
【０１９２】
次いで、プロセッサ２１は、ステップＳ７で得られた計数値が所定数以上であるか否かを判定する(ステップＳ８)。
【０１９３】
プロセッサ２１は、ステップＳ８の肯定判定の場合に、候補管理テーブルにおいて、処理対象のビジュアルワードのセットに対応する候補フラグに所定の値をセットすることで、当該ビジュアルワードのセットが候補セットの一つであることを示す(ステップＳ９)。例えば、プロセッサ２１は、ステップＳ９において、処理対象のビジュアルワードのセットに対応して、当該ビジュアルワードのセットが、所定数以上の第１画像において共有されている旨を示す値(例えば、論理「１」)を候補フラグに設定してもよい。
【０１９４】
一方、ステップＳ８の否定判定の場合に、プロセッサ２１は、ステップＳ９の処理を省略し、そのままステップＳ１０の処理に進む。
【０１９５】
ステップＳ１０において、プロセッサ２１は、ステップＳ１で生成された全てのビジュアルワードのセットについて、上述した処理を実行したか否かを判定する。
【０１９６】
未処理のビジュアルワードのセットがある場合に(ステップＳ１０の否定判定)、プロセッサ２１は、ステップＳ２の処理に戻り、新たなビジュアルワードのセットを処理対象として選択し、ステップＳ３以降の処理を実行する。
【０１９７】
図１６に示したフローチャートでは、プロセッサ２１がステップＳ２〜ステップＳ６の処理を実行し、ビジュアルワードのセットそれぞれを含む第１画像を判別することで、図６に示した判別部１１６の機能を実現している。
【０１９８】
また、プロセッサ２１が、ステップＳ７〜ステップＳ９の処理を実行し、ビジュアルワードのセットそれぞれが所定数以上の第１画像で共有されているか否かに応じて候補フラグをセットすることで、図６に示した絞り込み部１１７の機能を実現することができる。
【０１９９】
このように、プロセッサ２１は、ビジュアルワードのセットそれぞれについて、判別部１１６の処理と絞り込み部１１７の処理とを実行することにより、所定数以上の第１画像において共有されているビジュアルワードのセットである候補セットを生成してもよい。
【０２００】
上述したようにして候補セットを生成する処理が完了した後に、プロセッサ２１は、図１４に示したステップ３１３の処理に進み、生成された候補セットの一つを、ステップ３１４〜ステップ３１７の処理の対象として選択する。
【０２０１】
次に、プロセッサ２１は、処理対象の候補セットについて、図１８に示すフローチャートに含まれるステップＳ１１〜ステップＳ２１の処理を実行することにより、当該候補セットに固有の位置関係を検出する(ステップ３１４)。
【０２０２】
図１８は、固有の位置関係を検出する処理のフローチャートの例を示している。図１８に示したステップＳ１１〜ステップＳ２１の各処理は、図１４に示したステップ３１３の処理の一例である。また、これらのステップＳ１１〜ステップＳ２１の各処理は、図１３に示したプロセッサ２１によって実行される。
【０２０３】
まず、プロセッサ２１は、上述した候補管理テーブルに基づいて、処理対象の候補セットを含んでいる第１画像を示す画像番号を取得する(ステップＳ１１)。プロセッサ２１は、例えば、候補管理テーブルの処理対象の候補セットに対応する行において、判定値Ｔが登録された列に対応する画像番号のそれぞれを取得してもよい。
【０２０４】
次に、プロセッサ２１は、ステップＳ１１で取得した画像番号の中の一つを処理対象の第１画像を示す画像番号として選択する(ステップＳ１２)。
【０２０５】
次いで、プロセッサ２１は、処理対象として選択した第１画像に対応する特徴点管理テーブル１１４に基づいて、処理対象の候補セットに対応する特徴点のグループを特定する(ステップＳ１３)。ここで、図２に示した第１画像Ｇ１＿１，Ｇ１＿２のように、同じビジュアルワードを有する複数の特徴点を第１画像が含んでいる場合もある。したがって、プロセッサ２１は、ステップＳ１３の処理の過程で、特徴点管理テーブル１１５から、候補セットに含まれるビジュアルワードを示すワード番号が対応付けられた特徴点を全て見つけ出すことが望ましい。また、プロセッサ２１は、これらの特徴点を網羅的に組み合わせた場合のそれぞれについて、特徴点のグループを特定することが望ましい。
【０２０６】
次に、プロセッサ２１は、ステップＳ１３の処理で特定された特徴点のグループのそれぞれについて、図９を用いて説明したようにして、特徴点を結ぶ線分のそれぞれが基準軸となす角の角度を求める(ステップＳ１４)。
【０２０７】
また、プロセッサ２１は、ステップＳ１４の処理において、特徴点のグループのそれぞれについて得られた角度のセットを、図１０を用いて説明したようにして、ベクトル空間に設けた該当するビンに投票する(ステップＳ１５)。
【０２０８】
その後、プロセッサ２１は、ステップＳ１１で取得した全ての画像番号で示される第１画像についての処理が完了したか否かを判定する(ステップＳ１６)。
【０２０９】
未処理の第１画像がある場合に(ステップＳ１６の否定判定)、プロセッサ２１は、ステップＳ１２の処理に戻り、未処理の第１画像の一つを処理対象の第１画像として選択し、ステップＳ１３以降の処理を実行する。
【０２１０】
このようにして、ステップＳ１２〜ステップＳ１６の処理を繰り返し実行することにより、ステップＳ１１で取得した全ての画像番号で示される第１画像についての処理が完了した場合に(ステップＳ１６の肯定判定)、プロセッサ２１はステップＳ１７の処理に進む。
【０２１１】
上述したように、プロセッサ２１が、ステップＳ１２〜ステップＳ１６の処理を繰り返し実行する過程で、ステップＳ１３およびステップＳ１４の処理を実行することにより、図６に示した特定部１２１の機能を実現することもできる。
【０２１２】
同様に、プロセッサ２１が、ステップＳ１２〜ステップＳ１６の処理を繰り返し実行する過程で、ステップＳ１５の処理を実行することにより、図６に示した分類部１２２の機能を実現することもできる。
【０２１３】
ステップＳ１７において、プロセッサ２１は、上述した処理の過程で得られた各ビンの得票数に基づいて、例えば、１票以上の得票があったビンについての平均の得票数を求め、得られた平均の得票数と各ビンの得票数との間の偏差を算出する。
【０２１４】
次いで、プロセッサ２１は、上述したステップＳ１７の処理で、閾値以上の値を持つ偏差が得られたビンがあるか否かを判定する(ステップＳ１８)。
【０２１５】
ステップＳ１８の肯定判定の場合に、プロセッサ２１は、処理対象の候補セットで示される特徴点のグループは、固有の位置関係を持つと判断し、ステップＳ１９およびステップＳ２０の処理を実行する。
【０２１６】
ステップＳ１９において、プロセッサ２１は、ステップＳ１８の処理で閾値以上の値の偏差を持つとされたビンについて、当該ビンを代表する角度のセットを算出する。例えば、プロセッサ２１は、当該ビンに投票された角度のセットに含まれる角α、角β及び角γの値の平均値を、当該ビンを代表する角度のセットとして求めてもよい。このように、プロセッサ２１が、ステップＳ１９の処理を実行することにより、図６に示した決定部１２４の機能を実現してもよい。なお、ステップＳ１８の処理で、複数のビンが閾値以上の偏差を持つとされた場合に、プロセッサ２１は、上述した複数のビンのそれぞれについて角度のセットを求めることが望ましい。
【０２１７】
次いで、プロセッサ２１は、ステップＳ１９で求めた角度のセットを、処理対象の候補セットについて検出した固有の位置関係を示す情報として出力し(ステップＳ２０)、図１４に示したステップ３１５の処理に進む。
【０２１８】
一方、上述したステップＳ１７の処理で各ビンについて得られた偏差の全てが閾値未満である場合に(ステップＳ１８の否定判定)、プロセッサ２１は、処理対象の候補セットについては固有の位置関係がない旨の検出結果を出力する(ステップＳ２１)。その後、プロセッサ２１は、図１４に示したステップ３１５の処理に進む。
【０２１９】
ステップ３１５において、プロセッサ２１は、上述したステップ３１４の処理で、処理対象の候補セットについて固有の位置関係が検出できたか否かを判定する。
【０２２０】
ステップ３１４の処理結果として、固有の位置関係を示す角度のセットが得られた場合に(ステップ３１５の肯定判定)、プロセッサ２１は、処理対象の候補セットに対応する判定モデルを登録する(ステップ３１６)。プロセッサ２１は、ハードディスク装置２３などに設けた候補モデル保持部１４１に、上述したステップＳ１９で得られた角度のセットを、処理対象の候補セットを示すワード番号の組に対応して保持させればよい。その後、プロセッサ２１は、ステップ３１７の処理に進む。
【０２２１】
一方、ステップ３１５の否定判定の場合に、プロセッサ２１は、上述したステップ３１６の処理を行わずに、ステップ３１７の処理に進む。
【０２２２】
ステップ３１７において、プロセッサ２１は、ステップ３１１で生成された候補セットの中に、まだ処理対象として選択されていない候補セットがあるか否かを判定する。
【０２２３】
未選択の候補セットがある場合に(ステップ３１７の肯定判定)、プロセッサ２１は、ステップ３１３の処理に戻り、未選択の候補セットの中から一つを新たな処理対象の候補セットとして選択し、選択した候補セットについてステップ３１４以降の処理を実行する。
【０２２４】
このようにして、各候補セットについてステップ３１３〜ステップ３１７の処理を実行していき、全ての候補セットについての処理が完了した場合に（ステップ３１７の否定判定）、プロセッサ２１は、図１６に示したステップ３０３の処理に進む。
【０２２５】
ステップ３０３において、プロセッサ２１は、上述したステップ３００の処理で判別された第２画像の集合の中から、処理対象の第２画像を選択する。
【０２２６】
次いで、プロセッサ２１は、判定モデル保持部１４１に保持された判定モデルの中から、注目する判定モデルを選択する(ステップ３１８)。
【０２２７】
次に、プロセッサ２１は、ステップ３０３で選択した第２画像において、ステップ３１８で選択した判定モデルで示されるワード番号のビジュアルワードを有する特徴点を探索する(ステップ３０４)。
【０２２８】
次いで、プロセッサ２１は、図１９に示すようにして、処理対象の第２画像の向きを判定する。
【０２２９】
図１９は、画像の向きを判定する処理のフローチャートの例を示している。図１９に示したステップＳ３１〜ステップＳ３７の各処理は、図１５に示したステップ３０５の処理の一例である。また、これらのステップＳ３１〜ステップＳ３７の各処理は、図１３に示したプロセッサ２１によって実行される。
【０２３０】
まず、プロセッサ２１は、注目する判定モデルで示される特徴点のグループとして考えられる全ての組み合わせに対応する特徴点のグループを見つけて列挙する(ステップＳ３１)。プロセッサ２１は、第２画像に含まれている特徴点であって、注目する判定モデルで示されるワード番号のセットで示される各ビジュアルワードが割り当てられた特徴点の集合から、一つの特徴点を選択して組み合わせて得られる特徴点のグループを列挙すればよい。例えば、判定モデルが３つのビジュアルワードのセットで示され、これらのビジュアルワードのそれぞれが割り当てられた特徴点が、処理対象の第２画像からそれぞれｎａ個、ｎｂ個、ｎｃ個見つかった場合の組み合わせの数Ｍは、式(２)で表すことができる。
Ｍ＝ｎａ×ｎｂ×ｎｃ        ・・・(２)
次に、プロセッサ２１は、上述したようにして列挙した特徴点のグループの一つを処理対象として選択し(ステップＳ３２)、図９で説明したようにして、選択した特徴点のグループに含まれる特徴点相互の位置関係を示す角度のセットを特定する(ステップＳ３３)。
【０２３１】
次いで、プロセッサ２１は、注目する判定モデルに対応する固有の位置関係を示す角度のセットと当該固有の位置関係を所定の角度で回転させた位置関係を示す角度のセットと、ステップＳ３３で求めた角度のセットとを照合する(ステップＳ３４)。プロセッサ２１は、ステップＳ３４において、例えば、次のようにして、固有の位置関係を示す角度のセットと当該固有の位置関係を所定の角度で回転させた位置関係を示す角度のセットと、ステップＳ３５で求めた角度のセットとを照合してもよい。まず、プロセッサ２１は、固有の位置関係を示す角度のセットに含まれる角度のそれぞれに、９０度，１８０度，２７０度を加算することで回転された位置関係を示す角度のセットを求める。また、プロセッサ２１は、ステップＳ３３で求めた角度のそれぞれと、固有の位置関係を示す角度のセットの対応する角度との差を求め、得られた差の絶対値の総和を、選択した特徴点のグループの位置関係と固有の位置関係との一致の度合いを示す評価値として算出する。同様にして、プロセッサ２１は、ステップＳ３５で求めた角度のセットで示される位置関係と、固有の位置関係を回転させた位置関係のそれぞれとが一致する度合いを示す評価値を算出する。
【０２３２】
ここで、上述したようにして求めた評価値は、照合される２つの位置関係が一致している度合いが高いほど、小さい値となる。
【０２３３】
また、プロセッサ２１は、上述したようにして得られた評価値を、ステップＳ３２で選択した特徴点のグループの位置関係と、固有の位置関係および当該固有の位置関係を回転させた位置関係との照合結果として出力する。
【０２３４】
次に、プロセッサ２１は、ステップＳ３４の処理で得られた評価値のいずれかが所定の閾値以下であるか否かに基づいて、第２画像における位置関係が固有の位置関係または回転させた位置関係に一致するか否かを判定する(ステップＳ３５)。なお、ステップＳ３５の処理で用いる閾値の値は、例えば、向きの基準となる被写体の特徴部位に対応することが分かっている特徴点のグループについて、上述した評価値を求め、得られ評価値の最大値と同じ程度の値に設定してもよい。
【０２３５】
ステップＳ３４の処理で得られた全ての評価値が閾値より大きい場合、即ち、第２画像における位置関係が、固有の位置関係および回転させた位置関係のいずれにも一致しない場合に(ステップＳ３５の否定判定)、プロセッサ２１は、ステップＳ３７の処理に進む。ここで、ステップＳ３５の否定判定の場合は、ステップＳ３２で選択した特徴点のグループは、向きの基準となる被写体の特徴部位の組に対応していない場合に相当する。
【０２３６】
プロセッサ２１は、ステップＳ３７において、上述したステップＳ３２の処理でまだ選択していない特徴点のグループがあるか否かを判定する。
【０２３７】
未選択の特徴点のグループがある場合に(ステップＳ３７の肯定判定)、プロセッサ２１は、ステップＳ３２の処理に戻り、未選択の特徴点のグループを処理対象として選択し、ステップＳ３３以降の処理を実行する。
【０２３８】
また、プロセッサ２１は、ステップ３７の処理で、未選択の特徴点のグループがないと判定した場合に(ステップＳ３７の否定判定)、向きを判定する処理を終了し、図１５のステップ３１９の処理に進む。
【０２３９】
一方、ステップ３５の肯定判定の場合に、プロセッサ２１は、固有の位置関係と回転させた位置関係とのうち、第２画像における位置関係と一致するとされた位置関係を判定結果として出力する(ステップＳ３６)。その後、プロセッサ２１は、図１５に示したステップ３１９の処理に進む。
【０２４０】
ステップ３１９において、プロセッサ２１は、ステップ３０５の処理で、処理対象の第２画像の向きを判定できたか否かを判定する。
【０２４１】
ステップ３０５の処理で、向きを判定できない旨の判定結果が得られた場合に(ステップ３１９の否定判定)、プロセッサ２１は、ステップ３２０の処理に進み、未選択の判定モデルがあるか否かを判定する。未選択の判定モデルがある場合に(ステップ３２０の肯定判定)、プロセッサ２１は、ステップ３１８の処理に戻り、新たな判定モデルを処理対象として選択し、ステップ３０４以下の処理を繰り返す。
【０２４２】
一方、ステップ３０５の処理で、第２画像における位置関係と一致するとされた位置関係を示す判定結果が得られた場合に、プロセッサ２１は、受け取った判定結果に基づいて、処理対象の第２画像に設定する向き情報を生成する(ステップ３２１)。
【０２４３】
例えば、プロセッサ２１は、判定モデルで示された固有の位置関係とステップＳ３２で選択した特徴点のグループの位置関係とが一致するとされた場合に、判定対象の第２画像における画素の並び方向に対して所定の向きを持つ第１方向を天地方向と判定する。例えば、プロセッサ２１は、上述した判定結果に基づいて、当該第２画像の向きが、第２画像における画素の並び方向を示すＸ軸に対して、反時計回りに９０度回転した第１方向である旨の向き情報を生成する。
【０２４４】
一方、固有の位置関係を所定の角度で回転させた位置関係とステップＳ３２で選択した特徴点のグループの位置関係とが一致するとされた場合に、プロセッサ２１は、第１方向に対して所定の角度をなす第２方向を、当該第２画像の天地方向と判定する。例えば、固有の位置関係を反時計回りに９０度回転させた位置関係とステップＳ３２で選択した特徴点のグループの位置関係とが一致する場合に、プロセッサ２１は、第１方向から反時計回りに９０度回転した方向が天地方向である旨の向き情報を生成する。また、固有の位置関係を反時計回りに１８０度回転させた位置関係とステップＳ３２で選択した特徴点のグループの位置関係とが一致する場合に、プロセッサ２１は、第１方向から反時計回りに１８０度回転した方向が天地方向である旨の向き情報を生成する。また、固有の位置関係を反時計回りに２７０度回転させた位置関係とステップＳ３２で選択した特徴点のグループの位置関係とが一致する場合に、プロセッサ２１は、第１方向から反時計回りに２７０度回転した方向が天地方向である旨の向き情報を生成する。
【０２４５】
次いで、プロセッサ２１は、判定対象の第２画像とともに、ステップ３２１で生成した向き情報の設定を促すメッセージを表示するための情報を生成し、図１３に示した表示装置２５を介して利用者に提示する(ステップ３２２)。例えば、プロセッサ２１は、図２０に示すようにして、ステップ３２２で得られた向き情報および向き情報の設定を促すメッセージを提示してもよい。
【０２４６】
図２０は、向き情報の設定を促すメッセージの例を示している。図２０において、符号Ｇ２＿１，Ｇ２＿２，Ｇ２＿３，Ｇ２＿４は、それぞれ第２画像の例を示している。また、第２画像Ｇ２＿１，Ｇ２＿２，Ｇ２＿３，Ｇ２＿４において、座標軸Ｘは、各画像における画素の並び方向を示している。
【０２４７】
図２０(Ａ)は、図１９に示したステップＳ３５の処理で選択された特徴点のグループの位置関係が、図１２(Ａ)に符号Ｓ０で示した固有の位置関係と一致すると判定された場合に、プロセッサ２１が表示させるメッセージＭ１の例を示している。また、図２０(Ａ)において、符号ａ１で示した矢印は、図１９に示したステップ３２１の処理で、プロセッサ２１が第２画像Ｇ２＿１について判定した天地方向を示している。このような矢印ａ１とともに、メッセージＭ１としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置１０で得られた判定結果に基づく向き情報の設定を促すことができる。
【０２４８】
また、図２０(Ｂ)は、図１９に示したステップＳ３５の処理で選択された特徴点のグループの位置関係が、固有の位置関係を反時計回りに９０度回転させた位置関係と一致すると判定された場合に、プロセッサ２１が表示させるメッセージＭ２の例を示している。なお、固有の位置関係を反時計回りに９０度回転させた位置関係は、図１２(Ａ)に符号Ｓ１で示した位置関係に相当する。また、図２０(Ｂ)において、符号ａ２で示した矢印は、図１９に示したステップ３２１の処理で、プロセッサ２１が第２画像Ｇ２＿２について判定した天地方向を示している。このような矢印ａ２とともに、メッセージＭ２としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置１０で得られた判定結果に基づく向き情報の設定を促すことができる。
【０２４９】
同様に、図２０(Ｃ)は、図１９に示したステップＳ３５の処理で選択された特徴点のグループの位置関係が、固有の位置関係を反時計回りに１８０度回転させた位置関係と一致すると判定された場合に、プロセッサ２１が表示させるメッセージＭ３の例を示している。なお、固有の位置関係を反時計回りに１８０度回転させた位置関係は、図１２(Ａ)に符号Ｓ２で示した位置関係に相当する。また、図２０(Ｃ)において、符号ａ３で示した矢印は、図１９に示したステップ３２１の処理で、プロセッサ２１が第２画像Ｇ２＿３について判定した天地方向を示している。このような矢印ａ３とともに、メッセージＭ３としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置１０で得られた判定結果に基づく向き情報の設定を促すことができる。
【０２５０】
また、図２０(Ｄ)は、図１９に示したステップＳ３５の処理で選択された特徴点のグループの位置関係が、固有の位置関係を反時計回りに２７０度回転させた位置関係と一致すると判定された場合に、プロセッサ２１が表示させるメッセージＭ４の例を示している。なお、固有の位置関係を反時計回りに２７０度回転させた位置関係は、図１２(Ａ)に符号Ｓ３で示した位置関係に相当する。また、図２０(Ｄ)において、符号ａ４で示した矢印は、図１９に示したステップ３２１の処理で、プロセッサ２１が第２画像Ｇ２＿３について判定した天地方向を示している。このような矢印ａ４とともに、メッセージＭ４としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置１０で得られた判定結果に基づく向き情報の設定を促すことができる。
【０２５１】
一方、判定モデル保持部１４１に保持された全ての判定モデルについて、ステップ３１８、ステップ３０４、ステップ３０５の処理を繰り返しても、向きの基準となる被写体の特徴部位の組に対応する特徴点のグループを見出せない場合も考えられる。プロセッサ２１は、ステップ３２０において、未選択の判定モデルがないと判定した場合に(ステップ３２０の否定判定)、ステップ３２３の処理に進み、処理対象の第２画像について向きを判定できない旨のメッセージを表示させてもよい。
【０２５２】
上述したステップ３２２またはステップ３２３の処理の終了後に、プロセッサ２１は、図１４に示したステップ３００で判別された全ての第２画像についての処理が終了したか否かを判定する(ステップ３０６)。
【０２５３】
まだ処理対象として選択されていない第２画像がある場合に(ステップ３０６の肯定判定)、プロセッサ２１は、ステップ３０３の処理に戻り、未選択の第２画像の一つを処理対象として選択し、選択した第２画像について上述した向きを判定する処理を実行する。
【０２５４】
このようにして全ての第２画像についての処理が終了した場合に（ステップ３０６の否定判定）、プロセッサ２１は、画像の向きを判定する処理を終了する。
【０２５５】
以上に説明したようにして、図１３に示した画像処理装置１０によれば、向き情報を持たない第２画像のうち、判定モデルで示される向きの基準となる被写体を含む第２画像について、天地方向を示す向き情報を生成し、利用者に提示することができる。
【０２５６】
上述したように、利用者が蓄積している画像に含まれる第２画像は、判定モデルを生成する際に用いた第１画像に含まれる被写体を含んでいる可能性が高く、また、第１画像と共通する被写体の中には向きの基準となる被写体も含まれている。
【０２５７】
したがって、本件開示の画像処理装置１０を適用することにより、向き情報を持たない第２画像についても、天地方向を正しく示す向き情報を設定できる可能性を高めることができる。これにより、向き情報を持たない第２画像についても、正しい天地方向で表示可能とすることができる。
【０２５８】
また、図２０に示したように、向き情報の設定を促すメッセージを利用者に提示すれば、利用者は、提示されたメッセージに基づいて、向き情報の設定対象の画像および適切な天地方向を容易に判断することができる。これにより、膨大な画像の中から、転地方向が誤っている可能性のある画像を判別する作業や、適切な向きを判別する作業から、利用者を解放することができる。
【０２５９】
なお、第２画像についての向きを判定する際に、プロセッサ２１は、判定モデルにいずれかについての処理で、向きの基準となる被写体の特徴部位に対応する特徴点のグループを見出した後に、他の判定モデルについての処理を続行してもよい。このようにして、全ての判定モデルについての処理を実行することにより、第２画像に向きの基準となる被写体が複数個含まれている場合に、それぞれに対応する特徴点のグループの位置関係に基づいて、当該第２画像の向きを判定することができる。例えば、プロセッサ２１は、複数の判定モデルに対応して得られた向き情報についての多数決によって、処理対象の第２画像に設定する向き情報を生成してもよい。
【０２６０】
また、本件開示の画像処理装置１０は、ネットワーク上に配置したサーバ装置により、スマートフォンや携帯電話などの携帯端末およびパーソナルコンピュータを含む様々な装置を対象として提供するサービスの一つとして実現することも可能である。
【０２６１】
図２１は、画像処理装置１０のハードウェア構成の別例を示している。なお、図２１に示した構成要素のうち、図１３に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【０２６２】
図２１に示したサーバ装置３０は、ネットワークＮＷを介して携帯端末４、パーソナルコンピュータ５およびデジタルフォトフレーム６に接続されている。また、サーバ装置３０は、携帯端末４やパーソナルコンピュータ５などのクライアント装置からのサービス要求に応じて、クライアント装置から受け取った画像の集合であるアルバムを管理するサービスを提供する。以下の説明では、クライアント装置から受け取った画像を含むアルバムを管理するサービスをアルバム管理サービスと称する。なお、アルバム管理サービスを受けるクライアント装置は、ネットワークＮＷに接続する機能を有するデジタルカメラ２や、デジタルフォトフレーム６などでもよい。例えば、サーバ装置３０は、デジタルカメラ２で撮影された画像を受け取り、受け取った画像に対して、上述した向き情報を管理する処理を含む画像処理を行い、得られた処理結果をデジタルフォトフレーム６に渡すことで、利用者に画像を提示することもできる。
【０２６３】
サーバ装置３０は、プロセッサ３１と、メモリ３２と、ハードディスク装置３３と、ネットワークインタフェース３４と、光学ドライブ装置３６とを含んでいる。上述したプロセッサ３１、メモリ３２及びハードディスク装置３３は、画像処理装置１０に含まれる。
【０２６４】
また、プロセッサ３１は、メモリ３２と、ハードディスク装置３３と、ネットワークインタフェース３４と、光学ドライブ装置３６とバスを介して接続されている。また、ハードディスク装置３３の一部の容量は、画像蓄積部３３１に割り当てられている。画像蓄積部３３１は、例えば、サービスの利用者ごとに、当該利用者のアルバムに含まれる画像を蓄積してもよい。
【０２６５】
また、メモリ３２及びハードディスク装置３３には、サーバ装置３０のオペレーティングシステムとともに、プロセッサ３１が上述したアルバム管理サービスのための処理を実行するためのアプリケーションプログラムを格納している。アルバム管理サービスのための処理を実行するためのアプリケーションプログラムは、上述した画像の向き情報を管理する処理のためのアプリケーションプログラムを含んでもよい。なお、以下の説明では、アルバム管理サービスのための処理をアルバム管理処理と称する。
【０２６６】
アルバム管理処理のためのアプリケーションプログラムは、例えば、光学ディスクなどのリムーバブルディスク３７に記録し、頒布することができる。また、このリムーバブルディスク３７を光学ドライブ装置３６に装着し、読み込み処理を行うことにより、メモリ３２およびハードディスク装置３３にアルバム管理処理のためのアプリケーションプログラムを格納させてもよい。また、ネットワークインタフェース３４を介して、ネットワークＮＷから、アルバム管理処理のためのアプリケーションプログラムをダウンロードし、メモリ３２およびハードディスク装置３３に読み込ませてもよい。
【０２６７】
また、図２１に示したハードディスク装置３３は、図６に示した特徴点管理テーブル１１４、ワード管理テーブル及び判定モデル保持部１４１を含んでいる。判定モデル保持部１４１は、画像蓄積部３３１に蓄積されている画像に基づいて、上述したようにして生成された判定モデルを保持している。
【０２６８】
図２２は、アルバム管理処理のフローチャートの例を示している。図２２に示したステップ３２１〜ステップ３２９の各処理は、アルバム管理処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップ３２１〜ステップ３２９の各処理は、例えば、図２１に示したパーソナルコンピュータ５などのクライアント装置から新たな画像を追加するためのサービス要求を受け取った際に、サーバ装置３０のプロセッサ３１によって実行される。
【０２６９】
まず、プロセッサ３１は、図２１に示したネットワークインタフェース３４を介して、アルバムに追加する画像をクライアント装置から受け取る(ステップ３３１)。また、プロセッサ３１は、受け取った画像を、図２１に示した画像蓄積部３３１において、要求元の利用者に対応して設けた記憶領域に蓄積してもよい。
【０２７０】
次に、プロセッサ３１は、ステップ３３１で受け取った画像のそれぞれが向き情報を持つか否かに基づき、向き情報を持つ第１画像と向き情報を持たない第２画像とに分別する(ステップ３３２)。
【０２７１】
次いで、プロセッサ３１は、追加された画像の中に、ステップ３３２の処理で第１画像とされた画像があるか否かを判定する(ステップ３３３)。
【０２７２】
追加された画像の中に、第１画像が含まれていた場合に(ステップ３３３の肯定判定)、プロセッサ３１は、例えば、図１４に示したステップ３１１〜ステップ３１７の処理を実行することで、追加された第１画像に基づいて判定モデルを生成する(ステップ３３４)。
【０２７３】
次いで、プロセッサ３１は、ステップ３３４で生成された新たな判定モデルを示す情報を、図２１に示した判定モデル保持部１４１に保持させることで、新たな判定モデルを追加する(ステップ３３５)。
【０２７４】
このように、プロセッサ３１は、アルバムに新たな画像を追加する際に、追加する画像に含まれる第１画像に基づいて、新たな判定モデルを生成し、生成した判定モデルを既存の判定モデルの集合に追加してもよい。
【０２７５】
このようにして新たな判定モデルが追加された判定モデルの集合には、既にアルバムに蓄積されている画像とは異なる向きの基準となる被写体の特徴部位の位置関係も反映されている。したがって、新たな判定モデルを含む判定モデルの集合を用いることにより、ステップ３２１で受け取った画像に含まれる第２画像および以降に追加される第２画像の向きについて正しい判定結果を得る可能性を高めることができる。
【０２７６】
一方、上述したステップ３３２の処理で、追加された画像の全てが第２画像であるとされた場合に(ステップ３３３の否定判定)、プロセッサ３１は、ステップ３３４およびステップ３３５の処理を省略し、ステップ３３６の処理に進む。
【０２７７】
ステップ３３６において、プロセッサ３１は、追加された画像の中に、ステップ３３２の処理で第２画像とされた画像があるか否かを判定する。
【０２７８】
追加された画像の中に第２画像が含まれていた場合に(ステップ３３６の肯定判定)、プロセッサ３１は、ステップ３３７の処理に進む。ステップ３３７において、プロセッサ３１は、例えば、図１５のフローチャートに示した各処理を実行することで、追加された第２画像のそれぞれについて向きを判定する。
【０２７９】
次いで、プロセッサ３１は、ステップ３３７の処理で各第２画像について得られた判定結果に基づいて、対応する第２画像に向き情報を自動的に設定してもよい（ステップ３２８）。なお、ステップ３２８の処理の過程で、プロセッサ３１は、図１９に示したステップ３２１およびステップ３２２の処理のようにして、追加された第２画像のそれぞれについて得られた向き情報の設定を促すメッセージを利用者に提示してもよい。例えば、プロセッサ３１は、追加された第２画像のそれぞれについて生成したメッセージを、図２１に示したネットワークインタフェース３４を介してクライアント装置に渡し、クライアント装置の表示部を介して利用者に提示してもよい。
【０２８０】
一方、上述したステップ３３２の処理で、追加された画像の全てが第１画像であるとされた場合に(ステップ３３６の否定判定)、プロセッサ３１は、ステップ３３７およびステップ３３８の処理を省略し、処理を終了する。
【０２８１】
以上に説明したように、本件開示の画像処理装置１０は、サーバ装置３０が、アルバム管理処理を実行する過程で、画像の向き情報を管理する処理に含まれる判定モデルを生成する処理と向きを判定する処理とを分散して実行してもよい。
【０２８２】
このように、本件開示の画像処理装置１０をサーバ装置３０に含まれるハードウェアを用いて実現する場合には、クライアント装置となるパーソナルコンピュータ５や携帯端末４の処理能力にかかわらず、上述したアルバム管理サービスを提供することができる。
【０２８３】
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で、前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更を容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【０２８４】
以上の説明に関して、更に、以下の各項を開示する。
(付記１)
画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つの第１画像に共通して含まれる特徴点のグループを抽出する抽出部と、
前記抽出部で抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する検出部と、
前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索する探索部と、
前記探索部によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する判定部と
を備えたことを特徴とする画像処理装置。
(付記２)
付記１に記載の画像処理装置において、
前記検出部は、
前記抽出部で抽出された特徴点のグループのそれぞれについて、当該特徴点のグループを含む前記少なくとも２つの第１画像のそれぞれにおける位置関係を特定する特定部と、
前記特定部によって特定された位置関係を、それぞれ所定の閾値以上に類似する位置関係を含む複数の集合に分類する分類部と、
前記複数の集合のいずれかに位置関係が偏って分布している度合いが所定の閾値以上である場合に、前記特徴点のグループを、前記天地方向を基準として固有の位置関係で分布している特徴点のグループとして選択する選択部と、
前記選択部により、固有の位置関係で分布している特徴点のグループが選択された場合に、当該特徴点のグループについて前記特定部によって特定された位置関係について分類部で得られた複数の集合の中から最も多くの位置関係が属する前記集合を見つけ、当該集合に含まれる位置関係に基づいて、前記特徴点のグループに固有の位置関係を決定する決定部とを有する
ことを特徴とする画像処理装置。
(付記３)
付記１または付記２に記載の画像処理装置において、
前記判定部は、
前記探索部によって前記第２画像から見つけられた前記特徴点のグループの位置関係を、当該特徴点のグループに対応する前記固有の位置関係と、当該固有の位置関係を所定の角度で回転させた位置関係とのそれぞれと照合する照合部を有し、
前記照合部により、前記固有の位置関係と前記第２画像から見つけられた前記特徴点のグループの位置関係とが一致するとされた場合に、前記第２画像の天地方向として、当該第２画像における画素の並び方向に対して所定の向きを持つ第１方向を判定し、
前記照合部により、前記固有の位置関係を回転させた位置関係と前記第２画像から見つけられた前記特徴点のグループの位置関係とが一致するとされた場合に、前記第２画像の天地方向として、前記第１方向に対して前記所定の角度をなす第２方向であると判定する
ことを特徴とする画像処理装置。
(付記４)
付記２に記載の画像処理装置において、
前記特定部は、前記特徴点のグループに属する特徴点を所定の順序で結ぶ線分のそれぞれと前記向き情報で示される前記第１画像の向きの基準軸とがなす角の角度を、前記特徴点のグループの位置関係を示すパラメータとして求め、
前記分類部は、前記各パラメータの値として想定される範囲を所定値ごとに区切ることで得られる複数の領域のいずれかに、前記特定部で得られたパラメータで示される位置関係を振り分けることにより、前記複数の集合を形成する
ことを特徴とする画像処理装置。
(付記５)
付記１乃至付記４のいずれか一つに記載の画像処理装置において、
前記抽出部は、
互いに異なる種類の局所的な特徴を持つ特徴点のグループのそれぞれについて、当該特徴点のグループを含んでいる前記第１画像を判別する判別部と、
前記判別部によって判別された前記第１画像の数が所定数以上である前記特徴点のグループを検出し、検出した前記特徴点のグループを抽出結果として出力する絞り込み部を有する
ことを特徴とする画像処理装置。
(付記６)
画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出し、
前記抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、
前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索し、
前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する
ことを特徴とする画像処理方法。
(付記７)
画像の天地方向を示す向き情報をそれぞれ含む複数の第１画像から、前記複数の第１画像のうち少なくとも２つ第１画像に共通して含まれる特徴点のグループを抽出し、
前記抽出された特徴点のグループの中から、前記少なくとも２つの第１画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、
前記向き情報を持たない第２画像において、前記検出部で検出された前記特徴点のグループを探索し、
前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第２画像の向きを判定する
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
【符号の説明】
【０２８５】
１…画像蓄積装置；２…デジタルカメラ；４…携帯端末；５…パーソナルコンピュータ；６…デジタルフォトフレーム；１１…抽出部；１１１…特徴点検出部；１１２…クラスタ化処理部；１１３…割り当て部；１１４…特徴点管理テーブル；１１５…ワード管理テーブル；１１６…判別部；１１７…絞り込み部；１２…検出部；１２１…特定部；１２２…分類部；１２３…選択部；１２４…決定部；１３…探索部；１４…判定部；１４１…判定モデル保持部；１４２…照合部；１４３…向き情報生成部；２０…コンピュータ装置；２１，３１…プロセッサ；２２，３２…メモリ；２３，３３…ハードディスク装置；２３１，３３１…画像蓄積部；２４…汎用インタフェース；２５…表示装置；２６…入力装置；２７，３６…光学ドライブ装置；２８，３７…リムーバブルディスク；３０…サーバ装置；３４…ネットワークインタフェース；Ｇ１…第１画像；Ｇ２…第２画像；ＮＷ…ネットワーク
【図１】
2014134963.tif 000003
【図２】
2014134963.tif 000004
【図３】
2014134963.tif 000005
【図５】
2014134963.tif 000006
【図６】
2014134963.tif 000007
【図７】
2014134963.tif 000008
【図８】
2014134963.tif 000009
【図９】
2014134963.tif 000010
【図１０】
2014134963.tif 000011
【図１１】
2014134963.tif 000012
【図１２】
2014134963.tif 000013
【図１３】
2014134963.tif 000014
【図１４】
2014134963.tif 000015
【図１５】
2014134963.tif 000016
【図１６】
2014134963.tif 000017
【図１７】
2014134963.tif 000018
【図１８】
2014134963.tif 000019
【図１９】
2014134963.tif 000020
【図２１】
2014134963.tif 000021
【図２２】
2014134963.tif 000022
【図４】
2014134963.tif 000023
【図２０】
2014134963.tif 000024