以下、図面に基づいて、本件開示の画像処理装置および画像処理方法並びに画像処理プログラムの実施形態について詳細に説明する。
図1は、画像処理装置の一実施形態を示す。図1に示した画像蓄積装置1は、画像における天地方向を示す向き情報を含む複数の第1画像G1と共に、向き情報を含まない第2画像を含んでいる。
上述した画像蓄積装置1は、例えば、図示しないデジタルカメラの利用者が所有するパーソナルコンピュータ(図示せず)のハードディスク装置でもよいし、インターネットなどのネットワーク上に設けられたサーバ装置(図示せず)内のハードディスク装置でもよい。また、第1画像G1が含む向き情報は、例えば、デジタル画像の記録方法に関する規格の一つであるExif(Exchangeable image file)規格に基づく形式で記述されたオリエンテーション(orientation)情報でもよいし、他の形式で天地方向を記述した情報でもよい。
図1に示した画像処理装置10は、画像蓄積装置1から上述した複数の第1画像G1を受け取り、受け取った第1画像G1に含まれる情報に基づいて、第2画像について、正しい天地方向を示す向きを判定する。
図1に示した画像処理装置10は、抽出部11と、検出部12と、探索部13と、判定部14とを含んでいる。
抽出部11は、画像蓄積装置1に保持された複数の第1画像G1から、これらの第1画像G1のうち少なくとも2つ第1画像G1に共通して含まれる特徴点のグループを抽出する。例えば、抽出部11は、複数の第1画像G1を解析することにより、互いに異なる特徴量で示される局所的な特徴である局所特徴のそれぞれと、これらの局所特徴のいずれかをそれぞれ有する複数の特徴点を抽出する。
抽出部11は、後に図6を用いて説明するようにして、複数の第1画像G1から、テキストにおける単語に相当する基本的な要素画像を局所特徴として抽出してもよい。以下では、このような局所特徴をビジュアルワードと称し、また、抽出部11により、図2に示すようなビジュアルワードを抽出する場合について説明する。
図2は、ビジュアルワードの抽出例を示している。図2(A)に示した符号G1_1および図2(B)に示した符号G1_2は、それぞれ第1画像G1の例を示している。また、図2(C)に示した符号Qは、第1画像G1_1,G1_2から抽出されたビジュアルワードを含む集合の例を示している。なお、図2(A),(B)に示した第1画像G1_1,G1_2は、いずれも同一の車両を被写体として撮影した画像である。
図2(A)において、符号B1,B2,B3,B4,B5,B6は、それぞれ第1画像G1_1から抽出された特徴点の例を示している。同様に、図2(B)において、符号B1,B2,B3,B4,B5,B6は、それぞれ第1画像G1_2から抽出された特徴点の例を示している。また、図2(C)において、符号VW1,VW2,VW3,VW4,VW5,VW6,VW7は、それぞれ上述した集合Qに含まれるビジュアルワードの例を示している。なお、図2においては、特徴点のそれぞれ及びビジュアルワードのそれぞれを模式的に示している。また、第1画像G1_1,G1_2のそれぞれから抽出される他の特徴点及びこれらの特徴点に対応するビジュアルワードについては、図示を省略している。
図2において、第1画像G1_1から抽出された特徴点B3,B6とビジュアルワードVW3とを結ぶ矢印は、上述した特徴点B3,B6における局所特徴がビジュアルワードVW3に相当することを示している。同様に、第1画像G1_1から抽出された特徴点B4とビジュアルワードVW5とを結ぶ矢印は、上述した特徴点B4における局所特徴がビジュアルワードVW5に相当することを示している。また、第1画像G1_1から抽出された特徴点B5とビジュアルワードVW4とを結ぶ矢印は、上述した特徴点B5における局所特徴がビジュアルワードVW4に相当することを示している。また、同様に、第1画像G1_1から抽出された特徴点B1,B2のそれぞれにおける局所特徴は、ビジュアルワードVW1,VW2のそれぞれに相当している。なお、図2においては、上述した特徴点B1,B2のそれぞれとビジュアルワードVW1,VW2のそれぞれとの対応関係を示す矢印は省略している。
また、図2において、第1画像G1_2から抽出された特徴点B3とビジュアルワードVW3とを結ぶ矢印は、上述した特徴点B3における局所特徴がビジュアルワードVW3に相当することを示している。同様に、第1画像G1_2から抽出された特徴点B4とビジュアルワードVW4とを結ぶ矢印は、上述した特徴点B4における局所特徴がビジュアルワードVW4に相当することを示している。また、第1画像G1_2から抽出された特徴点B5とビジュアルワードVW5とを結ぶ矢印は、上述した特徴点B5における局所特徴がビジュアルワードVW5に相当することを示している。同様に、第1画像G1_2から抽出された特徴点B1,B2のそれぞれにおける局所特徴は、ビジュアルワードVW6,VW7のそれぞれに相当している。また、第1画像G1_2から抽出された特徴点B6における局所特徴は、上述した特徴点B3と同じビジュアルワードVW3に相当している。なお、図2においては、上述した特徴点B1,B2,B6のそれぞれとビジュアルワードVW6,VW7,VW3のそれぞれとの対応関係を示す矢印は省略している。
また、図1に示した抽出部11は、第1画像G1のそれぞれから特徴点を抽出する過程で、各第1画像G1が、どの特徴点をどこに含んでいるかを示す特徴点情報を生成する。生成した特徴点情報に基づいて、少なくとも2つ第1画像G1に共通して含まれる特徴点のグループを抽出する。抽出部11は、例えば、上述した各ビジュアルワードと第1画像G1のそれぞれから抽出された特徴点のそれぞれと対応付けることにより、第1画像G1が含むビジュアルワードおよび各ビジュアルワードの位置を示す特徴点情報を生成してもよい。なお、特徴点情報の好適な例については、図6,図7を用いて後述する。
また、抽出部11は、例えば、生成した特徴点情報に基づいて、互いに異なるビジュアルワードが対応付けられた所定数の特徴点のグループを含む第1画像を判別してもよい。また、抽出部11は、得られた判別結果に基づいて、少なくとも2つの第1画像G1に共通して含まれている特徴点のグループを抽出してもよい。ここで、特徴点のグループのそれぞれは、互いに異なるビジュアルワードに対応する3以上の特徴点を含んでいることが望ましい。以下では、特徴点のグループのそれぞれが、互いに異なるビジュアルワードに対応する3つの特徴点を含む場合について説明する。
例えば、図2に示したビジュアルワードVW3,VW4,VW5のそれぞれに対応する特徴点は、2枚の第1画像G1_1,G1_2の双方に含まれている。つまり、ビジュアルワードVW3,VW4,VW5のそれぞれに対応する特徴点を含む特徴点のグループは、2枚の第1画像G1_1,G1_2に共通して含まれる特徴点のグループの例である。
図1に示した検出部12は、上述した抽出部11で抽出された特徴点のグループの中から、少なくとも2つの第1画像G1において、天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する。
ここで、例えば、図1に示した画像蓄積装置1に保持された複数の第1画像G1が、同一人物によって撮影された画像である場合に、これらの第1画像G1のいくつかは、同種の物体を撮影した画像である可能性が高い。また、第1画像G1に撮影された被写体の中には、例えば、図3に示す2枚の第1画像G1_1,G1_2に含まれる車両のように、天地方向に対して固有の向きで撮影される物体も含まれている。以下の説明では、天地方向に対して固有の向きで撮影される物体あるいは天地方向に対して固有の向きで撮影される被写体を、向きの基準となる物体あるいは向きの基準となる被写体と称する。
図3は、向きの基準となる被写体の例を示している。なお、図3に示した要素のうち、図2に示した要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図3に示した第1画像G1_1において、矢印U1は、第1画像G1_1に含まれる向き情報で示された天地方向を示している。同様に、図3に示した第1画像G1_2において、矢印U2は、第1画像G1_2に含まれる向き情報で示された天地方向を示している。
図3に示した2枚の第1画像G1_1,G1_2は、同一の車両を正面側から撮影して得られる画像の例であり、これらの第1画像G1_1,G1_2は、いずれも3つのビジュアルワードVW3,VW4,VW5を含んでいる。なお、図3に示した第1画像G1_1,G1_2において、符号VW3,VW4,VW5は、ビジュアルワードVW3,VW4,VW5をそれぞれ有する特徴点を示している。
図3の例では、特徴点VW3,VW4,VW5のそれぞれは、上述した車両の正面から見て左側のヘッドライトの一部、同じく正面から見て左側のフェンダーの一部及び正面から見たナンバープレートの左下の角に対応している。これらの特徴部位が特定の車両において占める位置は不変である。
したがって、第1画像G1_1,G1_2のように、撮影方向が概ね一致している画像において、ビジュアルワードVW3,VW4,VW5のそれぞれを有する特徴点VW3,VW4,VW5は、ほぼ同一の位置関係を持って分布する。例えば、第1画像G1_1,G1_2のいずれにおいても、特徴点VW4,VW5は、ほぼ水平方向に並んでおり、かつ、特徴点VW3は、上述した2つの特徴点VW4,VW5を結ぶ線よりも上側における特徴点VW5寄りの位置にある。
このように、車両など、天地方向に対して固有の向きで撮影される被写体を類似したアングルで撮影した複数の画像においては、当該被写体の特徴部位に対応するビジュアルワードを有する特徴点の相対的な位置関係は互いに類似する。なお、向きの基準となる被写体は、複数の画像に共通に撮影された同一の物体に限られない。例えば、類似した車種の車両などのように、特徴部位の相対的に位置関係が互いに類似する物体であれば、これらの物体の集合を向きの基準となる被写体として扱ってもよい。
上述したように、ある特徴点のグループが向きの基準となる被写体の特徴部位に対応する場合に、当該被写体を含んでいる複数の第1画像G1のそれぞれにおいて、当該特徴点のグループに含まれる3つの特徴点は互いに類似した位置関係で分布する。一方、向きの基準となる被写体を含まない第1画像G1においては、上述した局所特徴の組が含まれていたとしても、これらの局所特徴は画像の全体にランダムに分布するため、互いの位置関係は類似しない。
つまり、ある特徴点のグループが、当該特徴点のグループを共通して含む2つ以上の第1画像において、類似した位置関係で分布していれば、当該特徴点のグループに属する各特徴点は、向きの基準となる被写体の特徴部位のそれぞれに対応している可能性が高い。
したがって、図1に示した検出部12は、特徴点のグループに属する各特徴点が複数の第1画像G1において分布する際の位置関係が互いに類似しているか否かに基づいて、固有の位置関係を持っている特徴点のグループを検出することができる。
検出部12は、特徴点のグループに属する各特徴点が複数の第1画像G1において分布する際の位置関係が互いに類似している度合いを評価し、得られた評価結果に基づいて、当該特徴点のグループを検出するか否かを判断してもよい。
また、検出部12は、検出した特徴点のグループに属する各特徴点が、当該特徴点のグループを含む複数の第1画像G1のそれぞれにおいて分布する位置関係に基づいて、当該特徴点のグループに固有な位置関係を特定してもよい。
なお、検出部12において、複数の第1画像G1においてある特徴点のグループに属する各特徴点が分布する位置関係が互いに類似している度合いを示す評価値を求める手法および固有の位置関係を特定する手法の例については、図6及び図9を用いて後述する。
以上に説明した抽出部11と検出部12とによれば、複数の第1画像G1から、天地方向に対して固有の位置関係を持つ特徴点のグループを見つけ出すことができる。以下の説明では、このようにして複数の第1画像G1から見つけ出した特徴点のグループを判定モデルと称する。
例えば、図3に示した第1画像G1_1,G1_2に共通する特徴点VW3,VW4,VW5を含む特徴点のグループは、判定モデルの一例である。また、当該特徴点のグループに対応する固有の位置関係は、例えば、図3に示した第1画像G1_1,G1_2のそれぞれにおいて、上述した特徴点VW3,VW4,VW5が分布する位置関係のいずれかに特定しておくことができる。
次に、上述したようにして見つけ出した判定モデルを用いて、図1に示した探索部13と判定部14とにより、向き情報を持たない第2画像G2の向きを判定する方法について説明する。
探索部13は、上述した画像蓄積装置1に蓄積された第2画像G2のそれぞれにおいて、検出部12により、判定モデルとして検出された特徴点のグループを探索する。探索部13は、例えば、上述した抽出部11と同様にして、第2画像G2に含まれる特徴点を検出し、検出した特徴点のそれぞれに、第1画像G1から抽出されたビジュアルワードの中から、類似した特徴量に対応するビジュアルワードを割り当てる。また、探索部13は、第2画像G2に含まれる特徴点の中から、検出部12で検出された特徴点のグループに属する特徴点と同じ組み合わせのビジュアルワードが割り当てられた特徴点のグループを見つければよい。
ここで、画像蓄積装置1に保持されている第2画像G2と第1画像G1とがいずれも同一の利用者によって撮影された画像である場合には、第2画像G2に含まれる被写体の中には、第1画像G1のいずれかと共通の被写体が含まれている可能性が高い。そして、このような共通する被写体の中には、向きの基準となる被写体も含まれている。例えば、第2画像G2のいくつかは、図4に示すように、図3に示した第1画像G1_1,G1_2に被写体として含まれている車両と同一、あるいは、類似した車両を含んでいる。
図4は、第2画像の例を示している。なお、図4に示した要素のうち、図2または図3に示した要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図4(A),(B)は、それぞれ図1に示した画像蓄積装置1に保持された第2画像G2の例を示している。図4(A)に示した第2画像G2_1は、図2及び図3に示した2枚の第1画像G1_1,G1_2の被写体となっている車両を、画面の長手方向を水平方向に概ね一致させた、いわゆる横位置で撮影した画像である。一方、図4(B)に示した第2画像G2_2は、上述した車両を、画面の長手方向を鉛直方向に概ね一致させた、いわゆる縦位置で撮影した画像である。
図4に示した2枚の第2画像G2_1,G2_2は、いずれも、図3に示した第1画像G1_1,G1_2から判定モデルとして見つけ出された特徴点VW3,VW4,VW5を含んでいる。
したがって、図4に示した第2画像G2_1について、図1に示した探索部13が探索を行うことにより、探索部13は、特徴点VW3,VW4,VW5を含む特徴点のグループを見つけ出すことができる。同様に、図4に示した第2画像G2_1について、図1に示した探索部13が探索を行うことにより、探索部13は、特徴点VW3,VW4,VW5を含む特徴点のグループを見つけ出すことができる。
判定部14は、探索部13によって見つけられた特徴点のグループの位置関係と、当該特徴点のグループに対応する固有の位置関係との比較に基づいて、探索部13による探索の対象となった第2画像G2の向きを判定する。
例えば、判定部14は、図4(A)に示した第2画像G2_1における特徴点VW3,VW4,VW5の位置関係が、上述した固有の位置関係と類似する向きを見つけることで、第2画像G2_1の天地方向を判定できる。
図4(A)の例では、第2画像G2_1における特徴点VW3,VW4,VW5の位置関係は、判定モデルとして検出された特徴点VW3,VW4,VW5を含む特徴点のグループに固有の位置関係と概ね一致している。
このように、判定対象の第2画像G2の長手方向を水平方向に一致させた状態で、当該第2画像G2における特徴点のグループの位置関係が固有の位置関係に一致する場合に、図1に示した判定部14は、画面の長手方向に垂直な方向を天地方向と判定する。なお、図4(A)において、符号Up1は、判定部14によって判定された天地方向を示している。
同様に、図1に示した判定部14は、図4(A)に示した第2画像G2_2における特徴点VW3,VW4,VW5の位置関係が、上述した固有の位置関係と位置関係と類似する向きを見つけることで、第2画像G2_2の天地方向を判定できる。
図4(B)に示した第2画像G2_2に含まれる特徴点VW3,VW4,VW5の位置関係は、上述した固有の位置関係と一致しない。しかし、図4(C)に示すように、第2画像G2_2を画面の長手方向を鉛直方向に一致するように回転させれば、第2画像G2_2に含まれる特徴点VW3,VW4,VW5の位置関係と上述した固有の位置関係とは概ね一致する。なお、図4(C)において、符号G2_2’は、回転後の第2画像G2_2を示している。
このように、判定対象の第2画像G2の長手方向を鉛直方向に一致するように回転させた状態で、当該第2画像G2における特徴点のグループの位置関係が固有の位置関係に一致する場合に、図1に示した判定部14は、画面の長手方向を天地方向と判定する。なお、図4(C)において、符号Up2は、判定部14によって判定された天地方向を示している。
以上に説明したようにして、図1に示した探索部13および判定部14によれば、上述した抽出部11、検出部12によって見つけ出された判定モデルを用いて、向き情報を持たない第2画像の向きを判定することができる。
つまり、図1に示した本件開示の画像処理装置10によれば、向き情報を持つ第1画像に含まれる向きの基準となる被写体の特徴部位に対応する局所特徴の組の位置関係を示す判定モデルに基づいて、向き情報のない第2画像の向きを判定することができる。
また、本件開示の画像処理装置10による判定結果に基づいて、画像蓄積装置1に保持された第2画像に向き情報を設定することも可能である。このようにして、第2画像に向き情報を設定すれば、その後、図示しない表示装置によって、画像蓄積装置1内の画像を表示させる際に、向き情報のない第2画像についても、向き情報を持つ第1画像と同様に、正しい天地方向で表示可能となる。
例えば、本件開示の画像処理装置10は、大量の画像を蓄積したアルバムを管理するための装置であるアルバム管理装置(図示せず)の一部として利用することもできる。そして、本件開示の画像処理装置10を含むアルバム管理装置によれば、大量の画像の中から向き情報を持たない画像を検出し、更に、正しい向き情報を設定するといった煩雑な作業から、利用者を解放することができる。
これにより、画像処理装置10を含むアルバム管理装置の利用者は、画像蓄積装置1に保持された画像が向き情報を持つか否かにかかわらず、正しい天地方向で表示された画像を楽しむことができる。
なお、上述した画像の向きを管理する処理は、図1に示した画像処理装置10が、図5に示すフローチャートで示される画像処理方法に従って処理を行うことによっても実現することができる。
図5は、画像の向きを管理する処理のフローチャートの例を示している。図5に示したステップ300〜ステップ306の各処理は、画像の向きを管理するための画像処理方法に含まれる処理の例である。また、ステップ300〜ステップ306の各処理は、画像処理装置10によって実行される。
まず、画像処理装置10は、図1に示した画像蓄積装置1に蓄積された画像を参照し、各画像が上述した向き情報を含むか否かに基づいて、第1画像G1と第2画像G2とに分類する(ステップ300)。
次に、画像処理装置10の抽出部11は、第1画像G1の集合から、少なくとも2つの第1画像G1に共通して含まれる特徴点のグループを抽出する(ステップ301)。
次いで、画像処理装置10は、抽出された特徴点のグループの中から、少なくとも2つの第1画像G1において、天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する(ステップ302)。
その後、画像処理装置10は、第2画像G2の集合から処理対象の第2画像を選択し(ステップ303)、選択した第2画像について、ステップ304およびステップ305の処理を行うことにより、当該第2画像G2の向きを判定する。
ステップ304において、画像処理装置10は、処理対象の第2画像G2にいて、検出部12により、判定モデルとして検出された特徴点のグループを探索する。
次いで、画像処理装置10は、ステップ304の処理で見つけられた特徴点のグループが処理対象の第2画像G2において持つ位置関係と、当該特徴点のグループに対応する固有の位置関係との比較に基づいて、当該第2画像G2の向きを判定する(ステップ305)。
その後、画像処理装置10は、ステップ306において、未判定の第2画像G2があるか否かを判定し、未判定の第2画像がある場合に(ステップ306の肯定判定)、ステップ303の処理に戻って、新たな第2画像G2の向きを判定する。
このようにして、全ての第2画像G2の向きを判定する処理が完了した場合に(ステップ306の否定判定)、画像処理装置10は、向き情報を管理する処理を終了する。
以上に説明した画像処理方法に含まれる各処理を実行することにより、画像処理装置10は、画像蓄積装置1に蓄積された第1画像G1に基づいて、向き判定のための判定モデルを生成し、生成した判定モデルを用いて、第1画像の向きを判定することができる。
次に、本件開示の画像処理装置10に含まれる抽出部11、検出部12及び判定部14の好適な実施形態について説明する。
図6は、画像処理装置10の別実施形態を示している。なお、図6に示した構成要素のうち、図1に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図6に示した抽出部11は、特徴点検出部111と、クラスタ化処理部112と、割り当て部113と、特徴点管理テーブル114と、ワード管理テーブル115と、判別部116と、絞込み部117とを含んでいる。
特徴点検出部111は、画像蓄積装置1に保持された第1画像G1のそれぞれから、エッジやコーナーなど、色と明るさとの少なくとも一方を示す階調値が所定の閾値よりも大きく変動している箇所を特徴点として検出する。また、特徴点検出部111は、検出した個々の特徴点における階調値の変動の特徴を示す特徴量を、当該特徴点に対応する局所特徴量として抽出する。なお、特徴点検出部111は、第1画像G1のそれぞれにおいて、等間隔あるいはランダムに設定した複数の点のそれぞれを特徴点とし、これらの特徴点の近傍における画像の特徴を局所特徴量として抽出してもよい。
また、特徴点検出部111は、画像蓄積装置1に保持された第1画像G1のそれぞれに対して、画像の特徴を抽出するための変換処理を適用することで、特徴点と各特徴点に対応する局所特徴量を抽出してもよい。特徴点検出部111は、画像の特徴を抽出するための変換処理として、SIFT(Scale Invariant Feature Transform)やSIFTを高速化したSURF(Speed Up Robust Features)などの変換処理を適用することが望ましい。なぜなら、SIFTやSURFは、回転に対して不変の特徴量を有する特徴点を抽出する変換処理であるため、撮影方向が横位置か縦位置かにかかわらず、被写体の同じ特徴部位に対応する箇所を同じ局所特徴量を有する特徴点として検出できるからである。
また、クラスタ化処理部112は、特徴点検出部111によって検出された各特徴点を局所特徴量に基づいて分類することにより、類似した局所特徴量を持つ複数の特徴点をまとめた複数のクラスタを生成する。クラスタ化処理部112は、局所特徴量に基づく分類によって複数のクラスタを生成する際に、例えば、K平均法などの手法を用いてもよい。また、クラスタ化処理部112は、生成した各クラスタに含まれる特徴点が持つ局所特徴量から、各クラスタを代表する局所特徴量を求め、得られた局所特徴量で示される局所特徴に一意のワード番号を与えることで、ビジュアルワードを生成してもよい。
また、割り当て部113は、特徴点検出部111から、第1画像G1のそれぞれについて、当該第1画像から検出された特徴点のそれぞれの位置を示す座標を受け取る。また、割り当て部113は、クラスタ化処理部112から、第1画像G1のそれぞれについて、当該第1画像から検出された特徴点のそれぞれが属するクラスタを示す情報を受け取る。
割り当て部113は、特徴点検出部111とクラスタ化処理部112とから受け取った情報に基づいて、図7に示す特徴点管理テーブル114及び図8に示すワード管理テーブル115を生成する。
図7は、特徴点管理テーブル114の例を示している。また、図8は、ワード管理テーブル115の例を示している。なお、図7,図8に示した要素のうち、図2に示した要素と同等のものについては、同一の符号を付して示す。
図7に示した符号T1,T2,…,Tmのそれぞれは、図1に示した画像蓄積装置1に蓄積されているm枚の第1画像G1のそれぞれに対応する特徴点管理テーブル114の一つを示している。
図7の例において符号T1で示した特徴点管理テーブル114は、図2に示した第1画像G1_1から抽出された各特徴点を示す特徴点番号に対応して、各特徴点の位置を示す座標と、当該特徴点に対応するビジュアルワードを示すワード番号とを保持している。
また、テーブルT1に示した各座標(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4),(X5,Y5),(X6,Y6),(X7,Y7)は、特徴点番号B1,B2,B3,B4,B5,B6,B7で示される特徴点の位置を示している。
なお、図7においては、図2に示した第1画像G1_2から抽出された各特徴点を示す特徴点番号と座標およびワード番号の図示および、他の第1画像G1に対応するテーブルに含まれる情報の図示は省略している。
図6に示した割り当て部113は、第1画像G1のそれぞれに対応する特徴点管理テーブル114に、各特徴点を示す特徴点番号に対応して、当該特徴点の位置を示す座標と当該特徴点が属するクラスタに対応するワード番号を保持させる。このようにして、割り当て部113は、図7に示したような特徴点管理テーブル114を生成してもよい。
また、図8に示したワード管理テーブル115は、第1画像G1の集合から抽出された各ビジュアルワードを示すワード番号に対応して、各クラスタを代表する局所特徴量と、第1画像G1のそれぞれに含まれる各ビジュアルワードの数を保持している。
図8の例では、ワード管理テーブル115は、ワード番号VW1,VW2,VW3,VW4,VW5,VW6,VW7のそれぞれに対応して、局所特徴量Fv1,Fv2,Fv3,Fv4,Fv5,Fv6,Fv7を保持している。
例えば、図8に示したワード管理テーブル115は、図2に示した第1画像G1_1を示す画像番号G1_1に対応する列により、第1画像G1_1が、それぞれ1個のビジュアルワードVW1,VW2を含み、2個のビジュアルワードVW3を含むことを示している。同様に、図8に示したワード管理テーブル115の画像番号G1_1に対応する列は、第1画像G1_1が、更に、それぞれ1個のビジュアルワードVW4,VW5を含むことを示している。また、図8に示したワード管理テーブル115の画像番号G1_1に対応する列は、第1画像G1_1は、ビジュアルワードVW6,VW7を含まないことを示している。
また一方、図8に示したワード管理テーブル115の画像番号G1_2に対応する列は、第1画像G1_2が、ビジュアルワードVW1,VW2を含まないことを示している。また、図8に示したワード管理テーブル115の画像番号G1_2に対応する列は、第1画像G1_2が、ビジュアルワードVW3を含むことを示している。また、図8に示したワード管理テーブル115の画像番号G1_2に対応する列は、第1画像G1_2が、更に、それぞれ1個のビジュアルワードVW4,VW5,VW6,VW7を含むことを示している。
なお、図8の例では、他のワード番号で示されるビジュアルワードに対応する情報の図示は省略している。
図6に示した割り当て部113は、例えば、第1画像G1のそれぞれに対応する特徴点管理テーブル114において、各ワード番号が出現する度数をそれぞれ計数することで、ワード管理テーブル115の対応する列に保持する情報を生成してもよい。
このようにして生成されたワード管理テーブル115に基づいて、図6に示した判別部116は、互いに異なる種類の特徴点をそれぞれ異なる組み合わせで含む複数の特徴点のグループのそれぞれにつき、当該特徴点のグループを含んでいる第1画像G1を判別する。
判別部116は、例えば、ワード管理テーブル115において、様々なワード番号の組み合わせに対応して、1以上の値が設定された画像番号を探索することで、ワード番号の組み合わせのそれぞれで示される特徴点のグループを含む第1画像G1を判別してもよい。
判別部116は、複数のビジュアルワードから所定数のビジュアルワードを選択する組み合わせのそれぞれに対応する特徴点のグループを含む第1画像を判別する処理を行うことが望ましい。なお、上述したクラスタ化処理部112によってL個のビジュアルワードが得られた場合に、これらのビジュアルワードから3個のビジュアルワードを選択する組み合わせの数Nは、式(1)で表すことができる。
N=L*(L−1)*(L−2)/4 ・・・(1)
つまり、判別部116は、上述した組み合わせの数であるN通りのワード番号の組み合わせで示される特徴点のグループそれぞれについて、当該特徴点のグループを含む第1画像G1を判別すればよい。
図6に示した絞り込み部117は、上述した判別部116によって判別された第1画像G1の数が所定数以上である特徴点のグループを検出し、検出した特徴点のグループを抽出結果として出力する。
絞り込み部17は、N通りのワード番号の組み合わせで示される特徴点のグループそれぞれについて判別された第1画像の数を計数し、得られた計数値が、例えば数十程度の所定値以上である特徴点のグループを検出することが望ましい。また、絞り込み部17は、画像蓄積装置1に蓄積された第1画像G1の数に、1より小さい所定の係数を乗じた数を、上述した所定数としてもよい。
このような絞り込み部17を設けることにより、上述したN通りの特徴点のグループから、所定数以上の第1画像G1に共通して含まれている特徴点のグループを選び出し、選び出した特徴点のグループを検出部12に渡すことができる。このような絞込みを行うことにより、検出部12により、高い精度で固有の位置関係を持つ特徴点のグループを検出することが可能となる。なぜなら、数十程度の第1画像G1のそれぞれにおける特徴点のグループの分布について、以降の処理を行うことにより、ノイズなどの影響で現れた特徴点のグループの影響を抑制することができるからである。
図6に示した検出部12は、特定部121と、分類部122と、選択部123と、決定部124とを含んでいる。
特定部121は、上述した絞り込み部117によって選び出された特徴点のグループごとに、当該特徴点のグループを示すワード番号のセットと、当該特徴点のグループを含むとされた第1画像G1のそれぞれを示す画像番号のセットを受け取る。
例えば、図3に示した特徴点VW3,VW4,VW5を含む特徴点のグループが検出された場合に、特定部121は、当該特徴点のグループを示すワード番号のセットとして、ワード番号VW3,VW4,VW5のセットを受け取る。また、特定部121は、特徴点VW3,VW4,VW5を含む特徴点のグループを含む第1画像G1を示す画像番号のセットとして、図3に示した第1画像G1_1,G1_2のそれぞれを示す画像番号G1_1,G1_2を含む画像番号のセットを受け取る。
また、特定部121は、画像番号のセットで示された第1画像G1のそれぞれに対応する特徴点管理テーブル114から、ワード番号のセットで示された特徴点のそれぞれの位置を示す情報である位置情報を取得する。
例えば、ワード番号のセットに含まれる画像番号G1_1で示される特徴点管理テーブル114から、特定部121は、ワード番号のセットに含まれるワード番号VW3,VW4,VW5に対応して保持された特徴点B3,B4,B5の座標を取得する。
このようにして取得した特徴点のそれぞれの位置情報に基づいて、特定部121は、特徴点のグループに属する特徴点の第1画像G1における位置関係を特定する。例えば、特定部121は、上述した3つの特徴点の位置関係を特定する情報として、3つの特徴点相互間の距離や、3つの特徴点のうち2つを結ぶ直線と他の特徴点との相対位置を記述する情報を生成してもよい。
ここで、例えば、図2(A)に示した第1画像G1_1のように、同一のビジュアルワードVW3に対応して複数の特徴点(例えば、特徴点B3,B6)を含んでいる場合がある。このような場合に、特定部121は、上述した複数の特徴点のそれぞれが特徴点のグループに含まれる場合について、それぞれ位置関係を特定することが望ましい。
また、特定部121は、取得した位置情報に基づいて、次に述べるようにして、上述した各ワード番号で示された特徴点の第1画像G1における位置関係を特定してもよい。
特定部121は、取得した座標に基づいて、特徴点のグループに属する各特徴点を例えばワード番号の昇順で結ぶ線分をそれぞれ特定し、これらの線分それぞれと第1画像G1における座標の基準軸とがなす角の角度により、特徴点の位置関係を特定してもよい。なお、特定部121は、位置関係を特定する際に、各特徴点をワード番号の降順で結ぶ線分を特定してもよい。
例えば、図2に示した第1画像G1_1において、特定部121は、ビジュアルワードVW3,VW4,VW5を含む局所特徴の組について、図9に示すようにして、位置関係を特定する。
図9は、位置関係の特定例を示している。なお、図9に示した要素のうち、図2に示した要素と同等のものについては、同一の符号を付して示した。また、図9に示した座標軸X,Yは、画像における位置の基準軸の例を示している。
図9に示した特徴点B3,B5,B4のそれぞれは、図2に示した第1画像G1_1に含まれる特徴点であり、図2に示したビジュアルワードVW3,VW4,VW5のそれぞれに対応している。
図6に示した特定部121は、図9に示した3つの特徴点B3,B5,B4を、それぞれが対応するビジュアルワードを示すワード番号が小さい順に結ぶことで、3つの線分を特定する。すなわち、特定部121は、まず、最も若いワード番号VW3で示されるビジュアルワードVW3に対応する特徴点B3と、2番目に若いワード番頭VW4で示されるビジュアルワードVW4に対応する特徴点B5を結ぶ線分S1を特定する。次いで、特定部121は、2番目に若いワード番頭VW4で示されるビジュアルワードVW4に対応する特徴点B5と、3つのうち最も大きいワード番号VW5で示されるビジュアルワードVW5に対応する特徴点B4を結ぶ線分S2を特定する。そして、特定部121は、最も大きいワード番号VW5で示されるビジュアルワードVW5に対応する特徴点B4と、最も若いワード番号VW3で示されるビジュアルワードVW3に対応する特徴点B3を結ぶ線分S3を特定する。
また、特定部121は、上述したようにして特定した3つの線分S1,S2,S3のそれぞれと、第1画像G1_1における座標の基準軸であるX軸とのなす角をそれぞれ特定する。特定部121は、例えば、図9に示すように、各線分S1,S2,S3とX軸とがなす角を、X軸から反時計回りに測った角度α、β,γによって示し、これらの角度α、β,γを3つの特徴点B3,B5,B4の位置関係を示すパラメータとして取得してもよい。
同様にして、特定部121は、絞り込み部17から受け取った画像番号のセットで示される第1画像G1において、対応して受け取ったワード番号のセットで示される特徴点のグループが占める位置関係を、上述した角度のセットをパラメータとして特定できる。
図6に示した分類部122は、上述した特定部121が、注目する特徴点のグループを含む第1画像G1のそれぞれについて特定した位置関係を、それぞれ所定の閾値以上に類似する位置関係を含む複数の集合に分類する。
また、選択部123は、分類部122で得られた複数の集合のいずれかに位置関係が偏って分布している度合いを求め、得られた度合いが所定の閾値以上であるか否かを判定する。また、選択部123は、上述した度合いが閾値以上である場合に、特定部121によって第1画像G1のそれぞれにおける位置関係が特定された特徴点のグループを、天地方向を基準として固有の位置関係で分布している特徴点のグループとして選択する。
また、決定部124は、選択部123により、固有の位置関係で分布している特徴点のグループが選択された場合に、当該特徴点のグループについて特定部121によって特定された位置関係について分類部122で得られた複数の集合を受け取る。また、決定部124は、受け取った集合の中から最も多くの位置関係が属する集合を見つけ、当該集合に含まれる位置関係に基づいて、選択部123によって選択された特徴点のグループに固有の位置関係を決定する。決定部124は、例えば、最も多くの位置関係が属する集合に属する位置関係に基づいて、当該集合を代表する位置関係を求めることで、選択部123によって選択された特徴点のグループに固有の位置関係を決定してもよい。
このようにして、検出部12は、向きの基準となる被写体の特徴部位に対応している可能性が高い特徴点のグループと、当該特徴点のグループに固有の位置関係とを検出することができる。
なお、上述した選択部123は、例えば、分類部122で得られた複数の集合のそれぞれに要素として含まれる位置関係の数と、複数の集合のそれぞれの要素数の平均とを比べることで、上述した度合いを求めてもよい。また、選択部123において、上述した度合いと比較する所定の閾値は、例えば、次のような閾値を求めるための実験の結果に基づいて、予め決定しておいてもよい。例えば、閾値を求めるための実験として、向きの基準となる被写体の特徴部位に対応することが分かっている特徴点のグループについて、分類部122で得られた複数の集合のいずれかに位置関係が偏って分布している度合いを求める実験を行ってもよい。また、上述した所定の閾値の値は、上述した閾値を求めるための実験で得られた評価値の最小値と同じ程度の値に設定されてもよい。
次に、特定部121により、個々の第1画像G1における特徴点のグループの位置関係が上述した角度α、β,γをパラメータとして特定されている場合に、分類部122がこれらの位置関係を分類する際に好適な手法について説明する。
図10は、位置関係を分類する手法の例を示している。図10に示した座標軸α,β,γのそれぞれは、図6に示した特定部121によって位置関係を特定するパラメータとして求められた3つの角度の大きさを示している。
また、図10において、符号C1は、上述した座標軸α,β,γで示されるベクトル空間を所定値ごとに区切ることで得られる複数の領域であるビンの一つを示している。なお、図10においては、上述したビンC1以外のビンの図示は省略している。
また、図10において、符号R1,R2のそれぞれは、注目する特徴点のグループについて、図9で説明したようにして特定された3つの角度のセットをパラメータとして示される位置関係の例を示している。図10の例は、位置関係R1,R2は、いずれもビンC1に含まれている場合を示している。
図6に示した分類部122は、注目する特徴点のグループについて得られた位置関係のそれぞれを示すパラメータに基づいて、当該位置関係を図10に示したベクトル空間に設けられたビンのいずれかに振り分けることで、これらの位置関係を分類してもよい。このようにして、分類部122は、特徴点のグループに対応して特定部121から受け取った位置関係を、上述したベクトル空間に設けられた複数のビンに対応する複数のグループに分類することができる。
なお、上述したベクトル空間に含まれる各ビンの大きさは、例えば、特徴点のグループが向きの基準となる被写体の特徴部位に対応している場合に、当該特徴点のグループを含む第1画像G1について得られる位置関係が分布する範囲と同じ程度に設定してもよい。
また、分類部122は、次に述べるような投票処理によって、分類処理を行ってもよい。分類部122は、例えば、特定部121から受け取ったパラメータで示されるビンに属する位置関係の数に1を加算する投票を行うとともに、当該ビンに隣接するビンに属する位置関係の数に1より小さい値を加算する投票を行ってもよい。
このように、特定部121により、個々の第1画像G1における特徴点の位置関係を上述した角度のセットをパラメータとして特定する場合は、図6に示した分類部122の処理を、ベクトル空間の各ビンへのマッピングとして実現することができる。
なお、図6に示した特定部121が個々の位置関係を特定する手法は、上述した角度をパラメータとして位置関係を特定する手法に限らず、図3を用いて説明したような手法によって位置関係を特定してもよい。
また、特定部121が、図3を用いて説明したような手法によって位置関係を特定する場合に、図6に示した分類部122は、個々の位置関係を表す情報を互いに比較することにより、互いに類似する位置関係を含む複数のグループに分けることができる。
この場合にも、選択部123は、複数のグループのそれぞれに属する要素数に基づいて、簡易な計算を行うことで、注目する特徴点のグループに対応する位置関係がいずれかの集合に偏って分布する度合いを求めることができる。
次に、画像処理装置10に含まれる判定部14の好適な例について説明する。図6に示した判定部14は、判定モデル保持部141と、照合部142と、向き情報生成部143とを含んでいる。
図6に示した判定モデル保持部141は、図11に示すように、特徴点のグループを示すワード番号のセットと、当該特徴点のグループに対応して、上述した決定部124によって得られた固有の位置関係を保持する。このような判定モデル保持部141によれば、判定モデルとして検出された特徴点のグループそれぞれに対応して、それぞれの固有の位置関係を示すことができる。
図11は、図6に示した判定モデル保持部141に保持された判定モデルの例を示している。なお、図11に示した要素のうち、図8に示した要素と同等のものについては、同一の符号を付している。
図11に示した判定モデル保持部141は、判定モデルとして検出された特徴点のグループを示すワード番号のセットと、判定モデルのそれぞれに固有の位置関係を示す情報とを含んでいる。
ここで、図11において、符号「ワード1」で示される列は、判定モデルとして検出された特徴点のグループを示すワード番号のセットのうち、最も若いワード番号を含んでいる。また、符号「ワード2」で示される列は、判定モデルとして検出された特徴点のグループを示すワード番号のセットのうち、2番目に若いワード番号を含んでいる。そして、符号「ワード3」で示される列は、判定モデルとして検出された特徴点のグループを示すワード番号のセットのうち、最も大きいワード番号を含んでいる。
また、図11に示した判定モデル保持部141は、判定モデルに固有の位置関係を示す情報として、図9を用いて説明した線分のそれぞれと座標軸とのなす角の組を含んでいる。図11に示した符号「角α」で示した列は、上述したワード1、ワード2の列で示される2つの特徴点を結ぶ線分と図9に示したX軸とがなす角の角度を示している。同様に、符号「角β」で示した列は、上述したワード2、ワード3の列で示される2つの特徴点を結ぶ線分と図9に示したX軸とがなす角の角度を示している。また、符号「角γ」で示した列は、上述したワード3、ワード1の列で示される2つの特徴点を結ぶ線分と図9に示したX軸とがなす角の角度を示している。
また、図11に示した判定モデル保持部141において、モデル番号は、判定モデルとして検出された特徴点のグループと、固有の位置関係とのペアのそれぞれを一意に示す番号である。例えば、一つの特徴点のグループに対して、複数の固有の位置関係が見つかった場合に、当該特徴点のグループと、複数の固有の位置関係のそれぞれとのペアにそれぞれモデル番号を与えることで、特徴点のグループを共有する複数の判定モデルを定義してもよい。
図11に示した判定モデル保持部141は、モデル番号1に対応する判定モデルとして、ワード番号VW3,VW4,VW5で示される特徴点のグループと、上述した角α,角β,角γがそれぞれ角度α1,β1,γ1である位置関係との組み合わせを含んでいる。例えば、ワード番号VW3,VW4,VW5で示される特徴点のグループにつき、図11に示した位置関係の他に固有の位置関係が得られた場合に、得られた位置関係と上述した特徴点のグループとのペアに、別のモデル番号を与えてもよい。なお、図11においては、他の判定モデルの図示は省略している。
また、判定モデル保持部141に、複数の判定モデルが登録されている場合に、図6に示した探索部13は、判定モデル保持部141に含まれる判定モデルのそれぞれで示される特徴点のグループを、判定対象の第2画像G2において探索する。また、探索部13は、判定対象の第2画像G2において、注目する特徴点のグループを見つけた場合に、当該特徴点のグループに属する各特徴点の第2画像G2における位置を示す情報を取得し、取得した情報を照合部142に渡してもよい。
図6に示した照合部142は、探索部13から受け取った情報に基づいて、第2画像G2から見つけられた特徴点のグループの位置関係を特定し、特定した位置関係について、次に述べるような照合処理を行う。
照合部142は、判定モデル保持部141から、上述した特徴点のグループに対応付けられた固有の位置関係を取得し、取得した固有の位置関係に基づいて、当該固有の位置関係を所定の角度で回転させた位置関係を生成する。また、照合部142は、取得した固有の位置関係と、上述したようにして回転させた位置関係とのそれぞれと、探索部13から受け取った第2画像G2における位置関係とを照合する。照合部142は、例えば、判定モデル保持部141に保持された固有の位置関係に基づいて、図12に示すように、当該固有の位置関係を回転させた位置関係を用意し、これらの位置関係と第2画像G2についての探索で得られた位置関係とを照合してもよい。
図12は、判定モデルで示された固有の位置関係と探索部13で得られた第2画像G2における位置関係との照合例を示している。
図12(A)は、判定モデルで示された固有の位置関係の例と、当該固有の位置関係を所定の角度で回転させた位置関係の例とを示している。図12(A)において、符号S0は、回転させていない固有の位置関係の例を示し、符号S1は、上述した固有の位置関係S0を反時計回りに90度回転させた位置関係を示している。同様に、図12(A)において、符号S2は、上述した固有の位置関係S0を反時計回りに180度回転させた位置関係を示し、符号S3は、上述した固有の位置関係S0を反時計回りに270度回転させた位置関係を示している。また、これらの位置関係S0,S1,S2,S3のそれぞれに含まれる符号P1,P2,P3は、それぞれ同一のビジュアルワードを有する特徴点の位置を示している。なお、以下の説明では、固有の位置関係S0を示す図形を基準図形と称し、当該基準図形をそれぞれ所定の角度で回転させた位置関係S1,S2,S3を示す図形を回転図形と称する。
また、図12(B),(C)は、判定対象の第2画像G2について上述した探索部13で得られた位置関係と、図12(A)に示した固有の位置関係および回転させた位置関係との照合例を示している。
図12(B)において、符号G2_aは、第2画像G2の一例を示している。また、図12(B)に示した第2画像G2_aにおいて、実線で示した三角形の頂点P1,P2,P3は、それぞれ図12(A)に示した特徴点P1,P2,P3と同一のビジュアルワードを有する特徴点を示している。なお、図12(B)に示した座標軸X,Yは、第2画像G2_aにおける位置の基準となる座標系を示している。例えば、座標軸Xは、第2画像G2_aにおける画素の並び方向を示している。
図12(B)の例は、第2画像G2_aについての探索で得られた特徴点P1に、図12(A)において回転された位置関係S1を示す破線で示した三角形の頂点P1を重ね合わせた様子を示している。
また、図12(C)において、符号G2_bは、第2画像G2の別例を示している。また、図12(C)に示した第2画像G2_aにおいて、実線で示した三角形の頂点P1,P2,P3は、それぞれ図12(A)に示した特徴点P1,P2,P3と同一の局所特徴を有する特徴点を示している。なお、図12(C)に示した座標軸X,Yは、第2画像G2_bにおける位置の基準となる座標系を示している。例えば、座標軸Xは、第2画像G2_bにおける画素の並び方向を示している。
図12(C)の例は、同様に、第2画像G2_bについての探索で得られた特徴点P1に、図12(A)において固有の位置関係S0を示す破線で示した三角形の頂点P1を重ね合わせた様子を示している。
図6に示した照合部142は、このように、探索部13で得られた特徴点のいずれかに、固有の位置関係と回転させた位置関係とのそれぞれの対応する特徴点を重ね合わせ、重ね合わせた2つの位置関係が一致している度合いをそれぞれ求めてもよい。なお、照合部142は、第2画像G2における特徴点の位置関係を示す図形の大きさに合わせて、判定モデルで示される固有の位置関係を示す基準図形と当該基準図形をそれぞれ所定の角度で回転した回転図形を生成してもよい。
例えば、照合部142は、第2画像G2における位置関係を示す図形の各頂点と、上述した基準図形の対応する頂点との距離を求め、得られた距離の総和を、第2画像G2における位置関係と固有の位置関係とが一致している度合いを示す指標値としてもよい。同様にして、照合部142は、第2画像G2における位置関係を示す図形と、図12(A)に示したようにそれぞれ所定の角度で基準図形を回転させた回転図形のそれぞれとが一致している度合いを示す指標値を求めることができる。
また、照合部142は、固有の位置関係を示す角度のセットに基づいて、当該角度のセットに含まれる角度のそれぞれに90度,180度,270度を加算することで、回転された位置関係を示す角度のセットを求めてもよい。また、照合部142は、これらの角度のセットを第2画像における位置関係との照合に用いてもよい。
例えば、照合部142は、第2画像G2についての探索で得られた特徴点を結ぶ線分のそれぞれと第2画像G2におけるX軸とがなす角を求め、得られた角度のセットを第2画像G2における位置関係を示す情報として取得してもよい。また、照合部142は、上述した角度のセットに含まれる角度のそれぞれと、固有の位置関係を示す角度のセットに含まれる対応する角度との差の絶対値の総和を求め、得られた値を照合対象である2つの位置関係が一致しり度合いを示す指標値としてもよい。同様にして、照合部142は、第2画像G2における位置関係を示す角度のセットと、所定の角度で回転させた角度のセットとの比較に基づいて、第2画像G2における位置関係と回転させた位置関係のそれぞれとが一致している度合いを示す指標値を求めてもよい。
上述した指標値は、図12に示した基準図形および回転図形を用いる場合も、固有の位置関係を示す角度のセットと回転された角度のセットとを用いる場合も、照合される2つの位置関係が一致している度合いが高いほど小さい値を示す。したがって、照合部142は、固有の位置関係および所定の角度で回転させた位置関係について求めた指標値の最小値が、所定の閾値よりも小さい場合に、第2画像G2における位置関係は、指標値の最小値を与える位置関係と一致していると判断してもよい。
図6に示した向き情報設定部143は、照合部142による照合結果に基づいて、次のようにして、判定対象の第2画像G2の天地方向を判定し、判定結果を示す向き情報を生成する。
判定モデルで示された固有の位置関係と判定対象の第2画像G2における特徴点のグループの位置関係とが一致するとされた場合に、向き情報設定部143は、当該第2画像G2における画素の並び方向に対して所定の向きを持つ第1方向を天地方向と判定する。
一方、固有の位置関係を所定の角度で回転させた位置関係と判定対象の第2画像G2における特徴点のグループの位置関係とが一致するとされた場合に、向き情報設定部143は、第1方向に対して所定の角度をなす第2方向を、当該第2画像の天地方向と判定する。
また、向き情報設定部143は、上述したようにして判定した天地方向を示す向き情報を生成し、生成した向き情報を、図6に示した画像蓄積装置1に蓄積された判定対象の第2画像G2を表す画像データに付加してもよい。
以上に説明した探索部13と、照合部142を有する判定部14によれば、第2画像G2に含まれる特徴点のグループの位置関係が、判定モデルで示された固有の位置関係に一致するようになる向きを、簡易な処理によって特定することができる。
つまり、図6に示した画像処理装置10に含まれる抽出部11、検出部12、探索部13、判定部14は、いずれも簡易な演算処理で実現可能である。
したがって、以上に説明した本件開示の画像処理装置10は、例えば、パーソナルコンピュータなどのコンピュータ装置を用いて実現することができる。
図13は、画像処理装置10のハードウェア構成の一例を示している。なお、図13に示した構成要素のうち、図6に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図13に示したコンピュータ装置20は、プロセッサ21と、メモリ22と、ハードディスク装置23と、汎用インタフェース24と、表示装置25と、入力装置26と、光学ドライブ装置27とを含んでいる。図13に例示したプロセッサ21と、メモリ22と、ハードディスク装置23と、汎用インタフェース24と、表示装置25と、入力装置26と、光学ドライブ装置27とは、バスを介して互いに接続されている。
図13に示したコンピュータ装置20に含まれるプロセッサ21と、メモリ22と、ハードディスク装置23と、汎用インタフェース24とは、画像処理装置10に含まれている。また、コンピュータ装置20は、汎用インタフェース24を介して、デジタルカメラ2などの撮像装置との間で画像データを含む情報の授受を行ってもよい。
また、上述した光学ドライブ装置27は、光ディスクなどのリムーバブルディスク28を装着可能であり、装着したリムーバブルディスク28に記録された情報の読出および記録を行う。また、コンピュータ装置20は、ネットワークインタフェース(図示せず)を介して、インターネットなどのネットワークに接続されていてもよい。
図13に示した表示装置25は、例えば、液晶ディスプレイ装置などであり、また、入力装置26は、例えば、キーボードやマウスなどである。画像処理装置10の操作者は、入力装置26を操作することにより、画像処理装置10に対して、例えば、ハードディスク装置23に設けられた画像蓄積部231内の画像について、上述した向き情報を管理する処理を実行させてもよい。また、入力装置26を操作することにより、画像処理装置10に対して、デジタルカメラ2に搭載されたメモリーカード(図示せず)内の画像について、上述した向き情報を管理する処理を実行させてもよい。なお、画像処理装置10が、画像蓄積部231内の画像について、上述した向き情報を管理する処理を実行する場合に、画像蓄積部231は、図1および図6に示した画像蓄積装置1に相当する。また、画像処理装置10が、デジタルカメラ2に搭載されたメモリーカード内の画像について、上述した向き情報を管理する処理を実行する場合に、上述したメモリーカードは、図1および図6に示した画像蓄積装置1に相当する。
また、画像処理装置10の操作者は、表示装置25を介して、画像処理装置10によって得られた処理結果を示す情報を確認してもよい。
図13に例示したメモリ22は、コンピュータ装置20のオペレーティングシステムとともに、プロセッサ21が上述した画像の向き情報を管理する処理を実行するためのアプリケーションプログラムを格納している。なお、画像の向き情報を管理する処理を実行するためのアプリケーションプログラムは、例えば、光ディスクなどのリムーバブルディスク28に記録して頒布することができる。そして、このリムーバブルディスク28を光学ドライブ装置27に装着して読み込み処理を行うことにより、画像の向き情報を管理する処理を実行するためのアプリケーションプログラムを、メモリ22およびハードディスク装置23に格納させてもよい。また、図示しないネットワークインタフェースを介して、インターネットなどのネットワークから、画像の向き情報を管理する処理を実行するためのアプリケーションプログラムをダウンロードし、メモリ22およびハードディスク装置23に読み込ませてもよい。
図14および図16は、画像の向き情報を管理する処理のフローチャートの別例を示している。なお、図14、図16に示したステップのうち、図5に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
図14に示したフローチャートと図16に示したフローチャートとは、同一の数字「1」を付した結合子によって結合されている。
また、図14、図16に示したステップ300〜ステップ306およびステップ311〜ステップ323の各処理は、画像の向き情報を管理する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップ300〜ステップ306およびステップ311〜ステップ323の各処理は、図13に示したプロセッサ21によって実行される。
プロセッサ21は、ハードディスク装置23に設けられた画像蓄積部231内の各画像を表す画像データを参照し、各画像データが向き情報を含んでいるか否かにより、各画像が第1画像か第2画像かを判別する(ステップ300)。
次いで、プロセッサ21は、SIFTアルゴリズムなどの画像解析アルゴリズムに従って、ステップ300で判別された第1画像G1の集合から、ビジュアルワードの集合を抽出する(ステップ311)。なお、プロセッサ21は、ステップ311の処理の過程で、ハードディスク装置23内に所定の記憶容量を確保し、確保した記憶容量を用いて、図6に示した特徴点管理テーブル114およびワード管理テーブル115を形成してもよい。
次に、プロセッサ21は、ワード管理テーブル115に基づいて、図16に示すフローチャートの処理を実行することにより、高い精度で固有の位置関係を特定することが可能な特徴点のグループである候補セットを生成する(ステップ311)。
図16は、候補セットを生成する処理のフローチャートの例を示している。図16に示したステップS1〜ステップS10の各処理は、図14に示したステップ311の処理の一例である。また、これらのステップS1〜ステップS10の各処理は、図13に示したプロセッサ21によって実行される。
まず、プロセッサ21は、上述したステップ301で得られたビジュアルワードの集合に含まれる全てのビジュアルワードから3つのビジュアルワードのセットを選択する組み合わせの全てを生成する(ステップS1)。
次いで、プロセッサ21は、ステップS1で生成した組み合わせの一つを以下のステップS3〜ステップS10の処理対象のビジュアルワードのセットとして選択する(ステップS2)。
次に、プロセッサ21は、上述したステップ300の処理で判別した第1画像のそれぞれに順次に注目し、注目する第1画像に対応してワード管理テーブル114に保持された包含情報において、選択したビジュアルワードのセットを探索する(ステップS3)。プロセッサ21は、注目する第1画像を示す画像番号に対応するワード管理テーブル114の列において、選択したビジュアルワードのセットに含まれる各ビジュアルワードに対応して保持された情報を参照することで、上述した探索を行ってもよい。
注目する第1画像に処理対象のビジュアルワードのセットに含まれる全てのビジュアルワードが含まれる場合に(ステップS4の肯定判定)、プロセッサ21は、ステップS5の処理を実行する。
ステップS5において、プロセッサ21は、注目する第1画像が、処理対象のビジュアルワードのセットを含んでいる旨を示す判定値Tを、図17に示す候補管理テーブルに登録する。なお、プロセッサ21は、図14に示したステップ311の処理の実行に先立って、例えば、図13に示したハードディスク装置23の記憶容量の一部を候補管理テーブルに割り当てておくことが望ましい。
図17は、候補管理テーブルの例を示している。なお、図17に示した要素のうち、図8に示した要素と同等のものについては、同じ符号を付して示している。
図17に示した候補管理テーブルの各行は、上述したステップS1で生成されたビジュアルワードのセットのそれぞれに対応している。また、この候補管理テーブルの各列は、上述したステップ300で判別された第1画像のそれぞれを示す画像番号に対応している。
プロセッサ21は、図16のステップS5において、上述した候補管理テーブルに含まれる処理対象のビジュアルワードのセットに対応する行において、注目する第1画像を示す画像番号に対応する列に、判定値Tを登録すればよい。
なお、図17の候補管理テーブルの例では、ワード番号VW1,VW2,VW3で示されるビジュアルワードのセットに対応する行の、画像番号G1_1に対応する列に判定値Tが登録されている。これにより、図2に示した第1画像G1_1が、上述したビジュアルワードのセットを含んでいることが示されている。
同様に、図17の候補管理テーブルの例では、ワード番号VW1,VW2,VW3で示されるビジュアルワードのセットに対応する行の、画像番号G1_2に対応する列に判定値Fを登録されている。これにより、図2に示した第1画像G1_2が、上述したビジュアルワードのセットを含んでいないことが示されている。
また、図17の候補管理テーブルの例では、ワード番号VW3,VW4,VW5で示されるビジュアルワードのセットに対応する行の、画像番号G1_1、G1_2に対応する列の双方に判定値Tが登録されている。これにより、図2に示した第1画像G1_1,G1_2の双方が、上述したビジュアルワードのセットを含んでいることが示されている。
なお、図17においては、上述した2つのビジュアルワードのセット以外の各セットを第1画像のそれぞれが含むか否かを示す判定値の図示を省略している。また、上述した2つのビジュアルワードのセットを、画像番号G1_1,G1_2以外の第1画像のそれぞれが含むか否かを示す判定値の図示を省略している。
ここで、プロセッサ21は、ハードディスク装置23内などに候補管理テーブルを生成した際などに、ビジュアルワードのセットそれぞれに対応して設ける行の各列に対応して、当該ビジュアルワードのセットを含まない旨の暗黙値Fを設定しておくことが望ましい。この場合は、図16に示したように、ステップS4の否定判定の場合に、ステップS5の処理をスキップすることで、処理対象のビジュアルワードのセットを注目する第1画像が含まないことを示すことができる。つまり、処理対象のビジュアルワードのセットと注目する第1画像とに対応して候補管理テーブルに保持された暗黙値Fを維持させることで、判定値Fを登録した場合と同等の効果を得ることができる。
上述したステップS4の否定判定の場合およびステップS4の肯定判定に応じてステップS5の処理が終了した場合に、プロセッサ21は、全ての第1画像について、上述したステップS3からステップS5の処理を実行したか否かを判定する(ステップS6)。
未処理の第1画像がある場合に(ステップS6の否定判定)、プロセッサ21は、ステップS3の処理に戻り、新たな第1画像に注目し、注目する第1画像についてステップS3〜ステップS5の処理を繰り返して実行する。
上述したステップS3〜ステップS5の処理を繰り返し実行することにより、全ての第1画像についての処理が完了した場合に(ステップS6の肯定判定)、プロセッサ21は、ステップS7の処理に進む。
ステップS7において、プロセッサ21は、上述した候補管理テーブルに基づいて、処理対象のビジュアルワードの組を含んでいることが示された第1画像の数を計数する。プロセッサ21は、例えば、図17に示した候補管理テーブルにおいて、処理対象のビジュアルワードのセットに対応する行において、判定値Tが登録された列の数を計数することで、上述した計数処理を実行してもよい。
次いで、プロセッサ21は、ステップS7で得られた計数値が所定数以上であるか否かを判定する(ステップS8)。
プロセッサ21は、ステップS8の肯定判定の場合に、候補管理テーブルにおいて、処理対象のビジュアルワードのセットに対応する候補フラグに所定の値をセットすることで、当該ビジュアルワードのセットが候補セットの一つであることを示す(ステップS9)。例えば、プロセッサ21は、ステップS9において、処理対象のビジュアルワードのセットに対応して、当該ビジュアルワードのセットが、所定数以上の第1画像において共有されている旨を示す値(例えば、論理「1」)を候補フラグに設定してもよい。
一方、ステップS8の否定判定の場合に、プロセッサ21は、ステップS9の処理を省略し、そのままステップS10の処理に進む。
ステップS10において、プロセッサ21は、ステップS1で生成された全てのビジュアルワードのセットについて、上述した処理を実行したか否かを判定する。
未処理のビジュアルワードのセットがある場合に(ステップS10の否定判定)、プロセッサ21は、ステップS2の処理に戻り、新たなビジュアルワードのセットを処理対象として選択し、ステップS3以降の処理を実行する。
図16に示したフローチャートでは、プロセッサ21がステップS2〜ステップS6の処理を実行し、ビジュアルワードのセットそれぞれを含む第1画像を判別することで、図6に示した判別部116の機能を実現している。
また、プロセッサ21が、ステップS7〜ステップS9の処理を実行し、ビジュアルワードのセットそれぞれが所定数以上の第1画像で共有されているか否かに応じて候補フラグをセットすることで、図6に示した絞り込み部117の機能を実現することができる。
このように、プロセッサ21は、ビジュアルワードのセットそれぞれについて、判別部116の処理と絞り込み部117の処理とを実行することにより、所定数以上の第1画像において共有されているビジュアルワードのセットである候補セットを生成してもよい。
上述したようにして候補セットを生成する処理が完了した後に、プロセッサ21は、図14に示したステップ313の処理に進み、生成された候補セットの一つを、ステップ314〜ステップ317の処理の対象として選択する。
次に、プロセッサ21は、処理対象の候補セットについて、図18に示すフローチャートに含まれるステップS11〜ステップS21の処理を実行することにより、当該候補セットに固有の位置関係を検出する(ステップ314)。
図18は、固有の位置関係を検出する処理のフローチャートの例を示している。図18に示したステップS11〜ステップS21の各処理は、図14に示したステップ313の処理の一例である。また、これらのステップS11〜ステップS21の各処理は、図13に示したプロセッサ21によって実行される。
まず、プロセッサ21は、上述した候補管理テーブルに基づいて、処理対象の候補セットを含んでいる第1画像を示す画像番号を取得する(ステップS11)。プロセッサ21は、例えば、候補管理テーブルの処理対象の候補セットに対応する行において、判定値Tが登録された列に対応する画像番号のそれぞれを取得してもよい。
次に、プロセッサ21は、ステップS11で取得した画像番号の中の一つを処理対象の第1画像を示す画像番号として選択する(ステップS12)。
次いで、プロセッサ21は、処理対象として選択した第1画像に対応する特徴点管理テーブル114に基づいて、処理対象の候補セットに対応する特徴点のグループを特定する(ステップS13)。ここで、図2に示した第1画像G1_1,G1_2のように、同じビジュアルワードを有する複数の特徴点を第1画像が含んでいる場合もある。したがって、プロセッサ21は、ステップS13の処理の過程で、特徴点管理テーブル115から、候補セットに含まれるビジュアルワードを示すワード番号が対応付けられた特徴点を全て見つけ出すことが望ましい。また、プロセッサ21は、これらの特徴点を網羅的に組み合わせた場合のそれぞれについて、特徴点のグループを特定することが望ましい。
次に、プロセッサ21は、ステップS13の処理で特定された特徴点のグループのそれぞれについて、図9を用いて説明したようにして、特徴点を結ぶ線分のそれぞれが基準軸となす角の角度を求める(ステップS14)。
また、プロセッサ21は、ステップS14の処理において、特徴点のグループのそれぞれについて得られた角度のセットを、図10を用いて説明したようにして、ベクトル空間に設けた該当するビンに投票する(ステップS15)。
その後、プロセッサ21は、ステップS11で取得した全ての画像番号で示される第1画像についての処理が完了したか否かを判定する(ステップS16)。
未処理の第1画像がある場合に(ステップS16の否定判定)、プロセッサ21は、ステップS12の処理に戻り、未処理の第1画像の一つを処理対象の第1画像として選択し、ステップS13以降の処理を実行する。
このようにして、ステップS12〜ステップS16の処理を繰り返し実行することにより、ステップS11で取得した全ての画像番号で示される第1画像についての処理が完了した場合に(ステップS16の肯定判定)、プロセッサ21はステップS17の処理に進む。
上述したように、プロセッサ21が、ステップS12〜ステップS16の処理を繰り返し実行する過程で、ステップS13およびステップS14の処理を実行することにより、図6に示した特定部121の機能を実現することもできる。
同様に、プロセッサ21が、ステップS12〜ステップS16の処理を繰り返し実行する過程で、ステップS15の処理を実行することにより、図6に示した分類部122の機能を実現することもできる。
ステップS17において、プロセッサ21は、上述した処理の過程で得られた各ビンの得票数に基づいて、例えば、1票以上の得票があったビンについての平均の得票数を求め、得られた平均の得票数と各ビンの得票数との間の偏差を算出する。
次いで、プロセッサ21は、上述したステップS17の処理で、閾値以上の値を持つ偏差が得られたビンがあるか否かを判定する(ステップS18)。
ステップS18の肯定判定の場合に、プロセッサ21は、処理対象の候補セットで示される特徴点のグループは、固有の位置関係を持つと判断し、ステップS19およびステップS20の処理を実行する。
ステップS19において、プロセッサ21は、ステップS18の処理で閾値以上の値の偏差を持つとされたビンについて、当該ビンを代表する角度のセットを算出する。例えば、プロセッサ21は、当該ビンに投票された角度のセットに含まれる角α、角β及び角γの値の平均値を、当該ビンを代表する角度のセットとして求めてもよい。このように、プロセッサ21が、ステップS19の処理を実行することにより、図6に示した決定部124の機能を実現してもよい。なお、ステップS18の処理で、複数のビンが閾値以上の偏差を持つとされた場合に、プロセッサ21は、上述した複数のビンのそれぞれについて角度のセットを求めることが望ましい。
次いで、プロセッサ21は、ステップS19で求めた角度のセットを、処理対象の候補セットについて検出した固有の位置関係を示す情報として出力し(ステップS20)、図14に示したステップ315の処理に進む。
一方、上述したステップS17の処理で各ビンについて得られた偏差の全てが閾値未満である場合に(ステップS18の否定判定)、プロセッサ21は、処理対象の候補セットについては固有の位置関係がない旨の検出結果を出力する(ステップS21)。その後、プロセッサ21は、図14に示したステップ315の処理に進む。
ステップ315において、プロセッサ21は、上述したステップ314の処理で、処理対象の候補セットについて固有の位置関係が検出できたか否かを判定する。
ステップ314の処理結果として、固有の位置関係を示す角度のセットが得られた場合に(ステップ315の肯定判定)、プロセッサ21は、処理対象の候補セットに対応する判定モデルを登録する(ステップ316)。プロセッサ21は、ハードディスク装置23などに設けた候補モデル保持部141に、上述したステップS19で得られた角度のセットを、処理対象の候補セットを示すワード番号の組に対応して保持させればよい。その後、プロセッサ21は、ステップ317の処理に進む。
一方、ステップ315の否定判定の場合に、プロセッサ21は、上述したステップ316の処理を行わずに、ステップ317の処理に進む。
ステップ317において、プロセッサ21は、ステップ311で生成された候補セットの中に、まだ処理対象として選択されていない候補セットがあるか否かを判定する。
未選択の候補セットがある場合に(ステップ317の肯定判定)、プロセッサ21は、ステップ313の処理に戻り、未選択の候補セットの中から一つを新たな処理対象の候補セットとして選択し、選択した候補セットについてステップ314以降の処理を実行する。
このようにして、各候補セットについてステップ313〜ステップ317の処理を実行していき、全ての候補セットについての処理が完了した場合に(ステップ317の否定判定)、プロセッサ21は、図16に示したステップ303の処理に進む。
ステップ303において、プロセッサ21は、上述したステップ300の処理で判別された第2画像の集合の中から、処理対象の第2画像を選択する。
次いで、プロセッサ21は、判定モデル保持部141に保持された判定モデルの中から、注目する判定モデルを選択する(ステップ318)。
次に、プロセッサ21は、ステップ303で選択した第2画像において、ステップ318で選択した判定モデルで示されるワード番号のビジュアルワードを有する特徴点を探索する(ステップ304)。
次いで、プロセッサ21は、図19に示すようにして、処理対象の第2画像の向きを判定する。
図19は、画像の向きを判定する処理のフローチャートの例を示している。図19に示したステップS31〜ステップS37の各処理は、図15に示したステップ305の処理の一例である。また、これらのステップS31〜ステップS37の各処理は、図13に示したプロセッサ21によって実行される。
まず、プロセッサ21は、注目する判定モデルで示される特徴点のグループとして考えられる全ての組み合わせに対応する特徴点のグループを見つけて列挙する(ステップS31)。プロセッサ21は、第2画像に含まれている特徴点であって、注目する判定モデルで示されるワード番号のセットで示される各ビジュアルワードが割り当てられた特徴点の集合から、一つの特徴点を選択して組み合わせて得られる特徴点のグループを列挙すればよい。例えば、判定モデルが3つのビジュアルワードのセットで示され、これらのビジュアルワードのそれぞれが割り当てられた特徴点が、処理対象の第2画像からそれぞれna個、nb個、nc個見つかった場合の組み合わせの数Mは、式(2)で表すことができる。
M=na×nb×nc ・・・(2)
次に、プロセッサ21は、上述したようにして列挙した特徴点のグループの一つを処理対象として選択し(ステップS32)、図9で説明したようにして、選択した特徴点のグループに含まれる特徴点相互の位置関係を示す角度のセットを特定する(ステップS33)。
次いで、プロセッサ21は、注目する判定モデルに対応する固有の位置関係を示す角度のセットと当該固有の位置関係を所定の角度で回転させた位置関係を示す角度のセットと、ステップS33で求めた角度のセットとを照合する(ステップS34)。プロセッサ21は、ステップS34において、例えば、次のようにして、固有の位置関係を示す角度のセットと当該固有の位置関係を所定の角度で回転させた位置関係を示す角度のセットと、ステップS35で求めた角度のセットとを照合してもよい。まず、プロセッサ21は、固有の位置関係を示す角度のセットに含まれる角度のそれぞれに、90度,180度,270度を加算することで回転された位置関係を示す角度のセットを求める。また、プロセッサ21は、ステップS33で求めた角度のそれぞれと、固有の位置関係を示す角度のセットの対応する角度との差を求め、得られた差の絶対値の総和を、選択した特徴点のグループの位置関係と固有の位置関係との一致の度合いを示す評価値として算出する。同様にして、プロセッサ21は、ステップS35で求めた角度のセットで示される位置関係と、固有の位置関係を回転させた位置関係のそれぞれとが一致する度合いを示す評価値を算出する。
ここで、上述したようにして求めた評価値は、照合される2つの位置関係が一致している度合いが高いほど、小さい値となる。
また、プロセッサ21は、上述したようにして得られた評価値を、ステップS32で選択した特徴点のグループの位置関係と、固有の位置関係および当該固有の位置関係を回転させた位置関係との照合結果として出力する。
次に、プロセッサ21は、ステップS34の処理で得られた評価値のいずれかが所定の閾値以下であるか否かに基づいて、第2画像における位置関係が固有の位置関係または回転させた位置関係に一致するか否かを判定する(ステップS35)。なお、ステップS35の処理で用いる閾値の値は、例えば、向きの基準となる被写体の特徴部位に対応することが分かっている特徴点のグループについて、上述した評価値を求め、得られ評価値の最大値と同じ程度の値に設定してもよい。
ステップS34の処理で得られた全ての評価値が閾値より大きい場合、即ち、第2画像における位置関係が、固有の位置関係および回転させた位置関係のいずれにも一致しない場合に(ステップS35の否定判定)、プロセッサ21は、ステップS37の処理に進む。ここで、ステップS35の否定判定の場合は、ステップS32で選択した特徴点のグループは、向きの基準となる被写体の特徴部位の組に対応していない場合に相当する。
プロセッサ21は、ステップS37において、上述したステップS32の処理でまだ選択していない特徴点のグループがあるか否かを判定する。
未選択の特徴点のグループがある場合に(ステップS37の肯定判定)、プロセッサ21は、ステップS32の処理に戻り、未選択の特徴点のグループを処理対象として選択し、ステップS33以降の処理を実行する。
また、プロセッサ21は、ステップ37の処理で、未選択の特徴点のグループがないと判定した場合に(ステップS37の否定判定)、向きを判定する処理を終了し、図15のステップ319の処理に進む。
一方、ステップ35の肯定判定の場合に、プロセッサ21は、固有の位置関係と回転させた位置関係とのうち、第2画像における位置関係と一致するとされた位置関係を判定結果として出力する(ステップS36)。その後、プロセッサ21は、図15に示したステップ319の処理に進む。
ステップ319において、プロセッサ21は、ステップ305の処理で、処理対象の第2画像の向きを判定できたか否かを判定する。
ステップ305の処理で、向きを判定できない旨の判定結果が得られた場合に(ステップ319の否定判定)、プロセッサ21は、ステップ320の処理に進み、未選択の判定モデルがあるか否かを判定する。未選択の判定モデルがある場合に(ステップ320の肯定判定)、プロセッサ21は、ステップ318の処理に戻り、新たな判定モデルを処理対象として選択し、ステップ304以下の処理を繰り返す。
一方、ステップ305の処理で、第2画像における位置関係と一致するとされた位置関係を示す判定結果が得られた場合に、プロセッサ21は、受け取った判定結果に基づいて、処理対象の第2画像に設定する向き情報を生成する(ステップ321)。
例えば、プロセッサ21は、判定モデルで示された固有の位置関係とステップS32で選択した特徴点のグループの位置関係とが一致するとされた場合に、判定対象の第2画像における画素の並び方向に対して所定の向きを持つ第1方向を天地方向と判定する。例えば、プロセッサ21は、上述した判定結果に基づいて、当該第2画像の向きが、第2画像における画素の並び方向を示すX軸に対して、反時計回りに90度回転した第1方向である旨の向き情報を生成する。
一方、固有の位置関係を所定の角度で回転させた位置関係とステップS32で選択した特徴点のグループの位置関係とが一致するとされた場合に、プロセッサ21は、第1方向に対して所定の角度をなす第2方向を、当該第2画像の天地方向と判定する。例えば、固有の位置関係を反時計回りに90度回転させた位置関係とステップS32で選択した特徴点のグループの位置関係とが一致する場合に、プロセッサ21は、第1方向から反時計回りに90度回転した方向が天地方向である旨の向き情報を生成する。また、固有の位置関係を反時計回りに180度回転させた位置関係とステップS32で選択した特徴点のグループの位置関係とが一致する場合に、プロセッサ21は、第1方向から反時計回りに180度回転した方向が天地方向である旨の向き情報を生成する。また、固有の位置関係を反時計回りに270度回転させた位置関係とステップS32で選択した特徴点のグループの位置関係とが一致する場合に、プロセッサ21は、第1方向から反時計回りに270度回転した方向が天地方向である旨の向き情報を生成する。
次いで、プロセッサ21は、判定対象の第2画像とともに、ステップ321で生成した向き情報の設定を促すメッセージを表示するための情報を生成し、図13に示した表示装置25を介して利用者に提示する(ステップ322)。例えば、プロセッサ21は、図20に示すようにして、ステップ322で得られた向き情報および向き情報の設定を促すメッセージを提示してもよい。
図20は、向き情報の設定を促すメッセージの例を示している。図20において、符号G2_1,G2_2,G2_3,G2_4は、それぞれ第2画像の例を示している。また、第2画像G2_1,G2_2,G2_3,G2_4において、座標軸Xは、各画像における画素の並び方向を示している。
図20(A)は、図19に示したステップS35の処理で選択された特徴点のグループの位置関係が、図12(A)に符号S0で示した固有の位置関係と一致すると判定された場合に、プロセッサ21が表示させるメッセージM1の例を示している。また、図20(A)において、符号a1で示した矢印は、図19に示したステップ321の処理で、プロセッサ21が第2画像G2_1について判定した天地方向を示している。このような矢印a1とともに、メッセージM1としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置10で得られた判定結果に基づく向き情報の設定を促すことができる。
また、図20(B)は、図19に示したステップS35の処理で選択された特徴点のグループの位置関係が、固有の位置関係を反時計回りに90度回転させた位置関係と一致すると判定された場合に、プロセッサ21が表示させるメッセージM2の例を示している。なお、固有の位置関係を反時計回りに90度回転させた位置関係は、図12(A)に符号S1で示した位置関係に相当する。また、図20(B)において、符号a2で示した矢印は、図19に示したステップ321の処理で、プロセッサ21が第2画像G2_2について判定した天地方向を示している。このような矢印a2とともに、メッセージM2としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置10で得られた判定結果に基づく向き情報の設定を促すことができる。
同様に、図20(C)は、図19に示したステップS35の処理で選択された特徴点のグループの位置関係が、固有の位置関係を反時計回りに180度回転させた位置関係と一致すると判定された場合に、プロセッサ21が表示させるメッセージM3の例を示している。なお、固有の位置関係を反時計回りに180度回転させた位置関係は、図12(A)に符号S2で示した位置関係に相当する。また、図20(C)において、符号a3で示した矢印は、図19に示したステップ321の処理で、プロセッサ21が第2画像G2_3について判定した天地方向を示している。このような矢印a3とともに、メッセージM3としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置10で得られた判定結果に基づく向き情報の設定を促すことができる。
また、図20(D)は、図19に示したステップS35の処理で選択された特徴点のグループの位置関係が、固有の位置関係を反時計回りに270度回転させた位置関係と一致すると判定された場合に、プロセッサ21が表示させるメッセージM4の例を示している。なお、固有の位置関係を反時計回りに270度回転させた位置関係は、図12(A)に符号S3で示した位置関係に相当する。また、図20(D)において、符号a4で示した矢印は、図19に示したステップ321の処理で、プロセッサ21が第2画像G2_3について判定した天地方向を示している。このような矢印a4とともに、メッセージM4としてテキスト「矢印の向きで向き情報を設定しますか」を表示することにより、利用者に、本件開示の画像処理装置10で得られた判定結果に基づく向き情報の設定を促すことができる。
一方、判定モデル保持部141に保持された全ての判定モデルについて、ステップ318、ステップ304、ステップ305の処理を繰り返しても、向きの基準となる被写体の特徴部位の組に対応する特徴点のグループを見出せない場合も考えられる。プロセッサ21は、ステップ320において、未選択の判定モデルがないと判定した場合に(ステップ320の否定判定)、ステップ323の処理に進み、処理対象の第2画像について向きを判定できない旨のメッセージを表示させてもよい。
上述したステップ322またはステップ323の処理の終了後に、プロセッサ21は、図14に示したステップ300で判別された全ての第2画像についての処理が終了したか否かを判定する(ステップ306)。
まだ処理対象として選択されていない第2画像がある場合に(ステップ306の肯定判定)、プロセッサ21は、ステップ303の処理に戻り、未選択の第2画像の一つを処理対象として選択し、選択した第2画像について上述した向きを判定する処理を実行する。
このようにして全ての第2画像についての処理が終了した場合に(ステップ306の否定判定)、プロセッサ21は、画像の向きを判定する処理を終了する。
以上に説明したようにして、図13に示した画像処理装置10によれば、向き情報を持たない第2画像のうち、判定モデルで示される向きの基準となる被写体を含む第2画像について、天地方向を示す向き情報を生成し、利用者に提示することができる。
上述したように、利用者が蓄積している画像に含まれる第2画像は、判定モデルを生成する際に用いた第1画像に含まれる被写体を含んでいる可能性が高く、また、第1画像と共通する被写体の中には向きの基準となる被写体も含まれている。
したがって、本件開示の画像処理装置10を適用することにより、向き情報を持たない第2画像についても、天地方向を正しく示す向き情報を設定できる可能性を高めることができる。これにより、向き情報を持たない第2画像についても、正しい天地方向で表示可能とすることができる。
また、図20に示したように、向き情報の設定を促すメッセージを利用者に提示すれば、利用者は、提示されたメッセージに基づいて、向き情報の設定対象の画像および適切な天地方向を容易に判断することができる。これにより、膨大な画像の中から、転地方向が誤っている可能性のある画像を判別する作業や、適切な向きを判別する作業から、利用者を解放することができる。
なお、第2画像についての向きを判定する際に、プロセッサ21は、判定モデルにいずれかについての処理で、向きの基準となる被写体の特徴部位に対応する特徴点のグループを見出した後に、他の判定モデルについての処理を続行してもよい。このようにして、全ての判定モデルについての処理を実行することにより、第2画像に向きの基準となる被写体が複数個含まれている場合に、それぞれに対応する特徴点のグループの位置関係に基づいて、当該第2画像の向きを判定することができる。例えば、プロセッサ21は、複数の判定モデルに対応して得られた向き情報についての多数決によって、処理対象の第2画像に設定する向き情報を生成してもよい。
また、本件開示の画像処理装置10は、ネットワーク上に配置したサーバ装置により、スマートフォンや携帯電話などの携帯端末およびパーソナルコンピュータを含む様々な装置を対象として提供するサービスの一つとして実現することも可能である。
図21は、画像処理装置10のハードウェア構成の別例を示している。なお、図21に示した構成要素のうち、図13に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
図21に示したサーバ装置30は、ネットワークNWを介して携帯端末4、パーソナルコンピュータ5およびデジタルフォトフレーム6に接続されている。また、サーバ装置30は、携帯端末4やパーソナルコンピュータ5などのクライアント装置からのサービス要求に応じて、クライアント装置から受け取った画像の集合であるアルバムを管理するサービスを提供する。以下の説明では、クライアント装置から受け取った画像を含むアルバムを管理するサービスをアルバム管理サービスと称する。なお、アルバム管理サービスを受けるクライアント装置は、ネットワークNWに接続する機能を有するデジタルカメラ2や、デジタルフォトフレーム6などでもよい。例えば、サーバ装置30は、デジタルカメラ2で撮影された画像を受け取り、受け取った画像に対して、上述した向き情報を管理する処理を含む画像処理を行い、得られた処理結果をデジタルフォトフレーム6に渡すことで、利用者に画像を提示することもできる。
サーバ装置30は、プロセッサ31と、メモリ32と、ハードディスク装置33と、ネットワークインタフェース34と、光学ドライブ装置36とを含んでいる。上述したプロセッサ31、メモリ32及びハードディスク装置33は、画像処理装置10に含まれる。
また、プロセッサ31は、メモリ32と、ハードディスク装置33と、ネットワークインタフェース34と、光学ドライブ装置36とバスを介して接続されている。また、ハードディスク装置33の一部の容量は、画像蓄積部331に割り当てられている。画像蓄積部331は、例えば、サービスの利用者ごとに、当該利用者のアルバムに含まれる画像を蓄積してもよい。
また、メモリ32及びハードディスク装置33には、サーバ装置30のオペレーティングシステムとともに、プロセッサ31が上述したアルバム管理サービスのための処理を実行するためのアプリケーションプログラムを格納している。アルバム管理サービスのための処理を実行するためのアプリケーションプログラムは、上述した画像の向き情報を管理する処理のためのアプリケーションプログラムを含んでもよい。なお、以下の説明では、アルバム管理サービスのための処理をアルバム管理処理と称する。
アルバム管理処理のためのアプリケーションプログラムは、例えば、光学ディスクなどのリムーバブルディスク37に記録し、頒布することができる。また、このリムーバブルディスク37を光学ドライブ装置36に装着し、読み込み処理を行うことにより、メモリ32およびハードディスク装置33にアルバム管理処理のためのアプリケーションプログラムを格納させてもよい。また、ネットワークインタフェース34を介して、ネットワークNWから、アルバム管理処理のためのアプリケーションプログラムをダウンロードし、メモリ32およびハードディスク装置33に読み込ませてもよい。
また、図21に示したハードディスク装置33は、図6に示した特徴点管理テーブル114、ワード管理テーブル及び判定モデル保持部141を含んでいる。判定モデル保持部141は、画像蓄積部331に蓄積されている画像に基づいて、上述したようにして生成された判定モデルを保持している。
図22は、アルバム管理処理のフローチャートの例を示している。図22に示したステップ321〜ステップ329の各処理は、アルバム管理処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップ321〜ステップ329の各処理は、例えば、図21に示したパーソナルコンピュータ5などのクライアント装置から新たな画像を追加するためのサービス要求を受け取った際に、サーバ装置30のプロセッサ31によって実行される。
まず、プロセッサ31は、図21に示したネットワークインタフェース34を介して、アルバムに追加する画像をクライアント装置から受け取る(ステップ331)。また、プロセッサ31は、受け取った画像を、図21に示した画像蓄積部331において、要求元の利用者に対応して設けた記憶領域に蓄積してもよい。
次に、プロセッサ31は、ステップ331で受け取った画像のそれぞれが向き情報を持つか否かに基づき、向き情報を持つ第1画像と向き情報を持たない第2画像とに分別する(ステップ332)。
次いで、プロセッサ31は、追加された画像の中に、ステップ332の処理で第1画像とされた画像があるか否かを判定する(ステップ333)。
追加された画像の中に、第1画像が含まれていた場合に(ステップ333の肯定判定)、プロセッサ31は、例えば、図14に示したステップ311〜ステップ317の処理を実行することで、追加された第1画像に基づいて判定モデルを生成する(ステップ334)。
次いで、プロセッサ31は、ステップ334で生成された新たな判定モデルを示す情報を、図21に示した判定モデル保持部141に保持させることで、新たな判定モデルを追加する(ステップ335)。
このように、プロセッサ31は、アルバムに新たな画像を追加する際に、追加する画像に含まれる第1画像に基づいて、新たな判定モデルを生成し、生成した判定モデルを既存の判定モデルの集合に追加してもよい。
このようにして新たな判定モデルが追加された判定モデルの集合には、既にアルバムに蓄積されている画像とは異なる向きの基準となる被写体の特徴部位の位置関係も反映されている。したがって、新たな判定モデルを含む判定モデルの集合を用いることにより、ステップ321で受け取った画像に含まれる第2画像および以降に追加される第2画像の向きについて正しい判定結果を得る可能性を高めることができる。
一方、上述したステップ332の処理で、追加された画像の全てが第2画像であるとされた場合に(ステップ333の否定判定)、プロセッサ31は、ステップ334およびステップ335の処理を省略し、ステップ336の処理に進む。
ステップ336において、プロセッサ31は、追加された画像の中に、ステップ332の処理で第2画像とされた画像があるか否かを判定する。
追加された画像の中に第2画像が含まれていた場合に(ステップ336の肯定判定)、プロセッサ31は、ステップ337の処理に進む。ステップ337において、プロセッサ31は、例えば、図15のフローチャートに示した各処理を実行することで、追加された第2画像のそれぞれについて向きを判定する。
次いで、プロセッサ31は、ステップ337の処理で各第2画像について得られた判定結果に基づいて、対応する第2画像に向き情報を自動的に設定してもよい(ステップ328)。なお、ステップ328の処理の過程で、プロセッサ31は、図19に示したステップ321およびステップ322の処理のようにして、追加された第2画像のそれぞれについて得られた向き情報の設定を促すメッセージを利用者に提示してもよい。例えば、プロセッサ31は、追加された第2画像のそれぞれについて生成したメッセージを、図21に示したネットワークインタフェース34を介してクライアント装置に渡し、クライアント装置の表示部を介して利用者に提示してもよい。
一方、上述したステップ332の処理で、追加された画像の全てが第1画像であるとされた場合に(ステップ336の否定判定)、プロセッサ31は、ステップ337およびステップ338の処理を省略し、処理を終了する。
以上に説明したように、本件開示の画像処理装置10は、サーバ装置30が、アルバム管理処理を実行する過程で、画像の向き情報を管理する処理に含まれる判定モデルを生成する処理と向きを判定する処理とを分散して実行してもよい。
このように、本件開示の画像処理装置10をサーバ装置30に含まれるハードウェアを用いて実現する場合には、クライアント装置となるパーソナルコンピュータ5や携帯端末4の処理能力にかかわらず、上述したアルバム管理サービスを提供することができる。
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で、前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更を容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
以上の説明に関して、更に、以下の各項を開示する。
(付記1)
画像の天地方向を示す向き情報をそれぞれ含む複数の第1画像から、前記複数の第1画像のうち少なくとも2つの第1画像に共通して含まれる特徴点のグループを抽出する抽出部と、
前記抽出部で抽出された特徴点のグループの中から、前記少なくとも2つの第1画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出する検出部と、
前記向き情報を持たない第2画像において、前記検出部で検出された前記特徴点のグループを探索する探索部と、
前記探索部によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第2画像の向きを判定する判定部と
を備えたことを特徴とする画像処理装置。
(付記2)
付記1に記載の画像処理装置において、
前記検出部は、
前記抽出部で抽出された特徴点のグループのそれぞれについて、当該特徴点のグループを含む前記少なくとも2つの第1画像のそれぞれにおける位置関係を特定する特定部と、
前記特定部によって特定された位置関係を、それぞれ所定の閾値以上に類似する位置関係を含む複数の集合に分類する分類部と、
前記複数の集合のいずれかに位置関係が偏って分布している度合いが所定の閾値以上である場合に、前記特徴点のグループを、前記天地方向を基準として固有の位置関係で分布している特徴点のグループとして選択する選択部と、
前記選択部により、固有の位置関係で分布している特徴点のグループが選択された場合に、当該特徴点のグループについて前記特定部によって特定された位置関係について分類部で得られた複数の集合の中から最も多くの位置関係が属する前記集合を見つけ、当該集合に含まれる位置関係に基づいて、前記特徴点のグループに固有の位置関係を決定する決定部とを有する
ことを特徴とする画像処理装置。
(付記3)
付記1または付記2に記載の画像処理装置において、
前記判定部は、
前記探索部によって前記第2画像から見つけられた前記特徴点のグループの位置関係を、当該特徴点のグループに対応する前記固有の位置関係と、当該固有の位置関係を所定の角度で回転させた位置関係とのそれぞれと照合する照合部を有し、
前記照合部により、前記固有の位置関係と前記第2画像から見つけられた前記特徴点のグループの位置関係とが一致するとされた場合に、前記第2画像の天地方向として、当該第2画像における画素の並び方向に対して所定の向きを持つ第1方向を判定し、
前記照合部により、前記固有の位置関係を回転させた位置関係と前記第2画像から見つけられた前記特徴点のグループの位置関係とが一致するとされた場合に、前記第2画像の天地方向として、前記第1方向に対して前記所定の角度をなす第2方向であると判定する
ことを特徴とする画像処理装置。
(付記4)
付記2に記載の画像処理装置において、
前記特定部は、前記特徴点のグループに属する特徴点を所定の順序で結ぶ線分のそれぞれと前記向き情報で示される前記第1画像の向きの基準軸とがなす角の角度を、前記特徴点のグループの位置関係を示すパラメータとして求め、
前記分類部は、前記各パラメータの値として想定される範囲を所定値ごとに区切ることで得られる複数の領域のいずれかに、前記特定部で得られたパラメータで示される位置関係を振り分けることにより、前記複数の集合を形成する
ことを特徴とする画像処理装置。
(付記5)
付記1乃至付記4のいずれか一つに記載の画像処理装置において、
前記抽出部は、
互いに異なる種類の局所的な特徴を持つ特徴点のグループのそれぞれについて、当該特徴点のグループを含んでいる前記第1画像を判別する判別部と、
前記判別部によって判別された前記第1画像の数が所定数以上である前記特徴点のグループを検出し、検出した前記特徴点のグループを抽出結果として出力する絞り込み部を有する
ことを特徴とする画像処理装置。
(付記6)
画像の天地方向を示す向き情報をそれぞれ含む複数の第1画像から、前記複数の第1画像のうち少なくとも2つ第1画像に共通して含まれる特徴点のグループを抽出し、
前記抽出された特徴点のグループの中から、前記少なくとも2つの第1画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、
前記向き情報を持たない第2画像において、前記検出部で検出された前記特徴点のグループを探索し、
前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第2画像の向きを判定する
ことを特徴とする画像処理方法。
(付記7)
画像の天地方向を示す向き情報をそれぞれ含む複数の第1画像から、前記複数の第1画像のうち少なくとも2つ第1画像に共通して含まれる特徴点のグループを抽出し、
前記抽出された特徴点のグループの中から、前記少なくとも2つの第1画像において、前記天地方向を基準として固有の位置関係で分布している特徴点のグループを検出し、
前記向き情報を持たない第2画像において、前記検出部で検出された前記特徴点のグループを探索し、
前記探索によって見つけられた前記特徴点のグループの位置関係と、当該特徴点のグループに対応する前記固有の位置関係との比較に基づいて、前記第2画像の向きを判定する
処理をコンピュータに実行させることを特徴とする画像処理プログラム。