以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の画像処理装置は、第1に、それぞれの画像に含まれる顔の画像である顔画像の数を検出する検出手段(例えば、図2の顔検出エンジン32)と、それぞれの画像と検出された顔画像の数とを関係付ける関係付け手段(例えば、図2の顔情報データベース33)とを備える。
本発明の一側面の画像処理装置は、第2に、それぞれの画像の顔画像の数および予め記憶している基準値を基に、それぞれの画像の分類を示すラベルを生成する生成手段(例えば、図2のラベリング部34)をさらに備え、関係付け手段は、それぞれの画像とラベルとを関係付ける。
本発明の一側面の画像処理装置は、第3に、それぞれの画像に関係付けられているラベルを基に、画像を検索する検索手段(例えば、図9の検索エンジン82)と、検索された画像の表示を制御する表示制御手段(例えば、図9の表示制御部83)とをさらに備える。
本発明の一側面の画像処理装置は、第4に、予め記憶している複数の基準値のうち、使用者により選択されたアイコンで特定される基準値に対応する数の顔画像を含む画像を検索する検索手段(例えば、図9の検索エンジン82)と、検索された画像の表示を制御する表示制御手段(例えば、図9の表示制御部83)とをさらに備える。
本発明の一側面の画像処理方法またはプログラムは、それぞれの画像に含まれる顔の画像である顔画像の数を検出する検出ステップ(例えば、図3のステップS11)と、それぞれの画像と検出された顔画像の数とを関係付ける関係付けステップ(例えば、図3のステップS13)とを含む。
本発明は、例えば、パーソナルコンピュータ、デジタルスチルカメラ、携帯端末装置、または携帯電話機など画像を取り扱う機器に適用できる。
図1は、パーソナルコンピュータである、本発明の一実施の形態の画像処理装置の構成の例を示すブロック図である。CPU(Central Processing Unit)11は、ROM(Read Only Memory)12、または記憶部18に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)13には、CPU11が実行するプログラムやデータなどが適宜記憶される。これらのCPU11、ROM12、およびRAM13は、バス14により相互に接続されている。
なお、CPU11として、”Cell誕生”、日経エレクトロニクス、日経BP社、2005年2月28日、89頁乃至117頁に記載されているCellを採用することができる。
CPU11にはまた、バス14を介して入出力インターフェース15が接続されている。入出力インターフェース15には、キーボード、マウス、マイクロホン、デジタルスチルカメラなどよりなる入力部16、ディスプレイ、スピーカなどよりなる出力部17が接続されている。CPU11は、入力部16から入力される指令に対応して各種の処理を実行する。そして、CPU11は、処理の結果を出力部17に出力する。
入出力インターフェース15に接続されている記憶部18は、例えばハードディスクからなり、CPU11が実行するプログラムや各種のデータを記憶する。通信部19は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
また、通信部19を介してプログラムを取得し、記憶部18に記憶してもよい。
入出力インターフェース15に接続されているドライブ20は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア21が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部18に転送され、記憶される。
図2は、プログラムを実行するパーソナルコンピュータである画像処理装置において実現される、顔を検出し、ラベルを付加する機能の構成を示すブロック図である。図2に示される画像処理装置は、ファイルシステム31、顔検索エンジン32、顔情報データベース33、ラベリング部34、およびテンプレートデータベース35を含むように構成される。
ファイルシステム31は、デジタルスチルカメラである入力部16によって撮影された静止画像である画像(データ)を格納しているか、または外部の装置によって撮影された静止画像である画像(データ)を格納している画像ファイル41を記憶する。ファイルシステム31は、記憶している画像ファイル41を顔検出エンジン32に供給する。
例えば、ファイルシステム31は、ハードディスクである記憶部18への、データのファイルとしての記憶を管理し、データをファイルとして、記憶部18に記憶させたり、記憶部18に記憶されているファイルを読み出す。
ここで、画像ファイル41は、ビットマップ方式、JPEG(Joint Photographic Experts Group)方式、JPEG2000方式、GIF(Graphics Interchange Format)、またはTIFF(Tagged Image File Format)など、所定の方式の画像データを格納する。
顔検出エンジン32は、それぞれの画像に含まれる顔の画像である顔画像の数を検出する。例えば、顔検出エンジン32は、外部の装置から供給された画像ファイル41またはファイルシステム31から供給された画像ファイル41に格納されている画像に含まれる顔画像の数を検出する。顔検出エンジン32は、検出した顔画像の数を含む顔検出情報を顔情報データベース33に供給する。
顔情報データベース33は、それぞれの画像と検出された顔画像の数とを関係付ける。例えば、顔情報データベース33は、それぞれの画像と検出された顔画像の数を示す顔検出情報とを関係付けて、記憶する。
なお、顔情報データベース33は、顔検出情報が記憶部18に記憶されるように構成される。
ラベリング部34は、それぞれの画像の顔画像の数および予め記憶している基準値を基に、それぞれの画像の分類を示すラベルを生成する。例えば、ラベリング部34は、顔情報データベース33に記憶されている顔検出情報、およびテンプレートデータベース35に記憶されているテンプレートを基に、ポートレート、ツーショット、集合写真、または風景写真などの画像の分類(属性)を示すラベルを生成する。ラベルは、その画像の主体が人物であることを示しているとも言える。
テンプレートデータベース35は、画像の分類の基準となるテンプレートを予め記憶している。なお、実際には、テンプレートデータベース35は、テンプレートが記憶部18に記憶されるように構成される。
ラベリング部34によって生成された、それぞれの画像の分類を示すラベルは、それぞれの画像と関係付けられて顔情報データベース33に記憶される。
図3は、ラベリングの処理を説明するフローチャートである。ステップS11において、顔検出エンジン32は、画像ファイル41を開いて、画像を入力し、入力された画像から顔領域(顔画像)を検出する。
ここで、図4のフローチャートを参照して、顔領域の検出の処理を説明する。
ステップS31において、顔検出エンジン32は、検出の対象となる領域の大きさの初期値を設定する。ステップS32において、顔検出エンジン32は、入力された画像における領域の最初の位置を決める。
ステップS33において、顔検出エンジン32は、領域に属する画素の画素値を取得する。ステップS34において、顔検出エンジン32は、画素値を取得した領域が、顔の領域であるか否かを判定する。
すなわち、ステップS34において、顔検出エンジン32は、画素値を取得した領域について顔の画像を検出する。
例えば、図5で示されるように、JPEG方式の画像データを格納する画像ファイル41を入力した顔検出エンジン32は、ステップS34において、取得した画素値が、人の肌の色に対応する所定の色の範囲に属する色を示すかを基に、画素値を取得した領域が、顔の領域であるか否かを判定する。
ステップS34において、画素値を取得した領域が、顔の領域であると判定された場合、ステップS35に進み、顔検出エンジン32は、画素値を取得した領域である、顔の領域の位置、顔の大きさ、および顔の向きを示すメタデータを出力し、手続きは、ステップS36に進む。
例えば、ステップS35において、顔検出エンジン32は、画像全体の縦のサイズおよび横のサイズをそれぞれ1とした場合、画像における顔の位置として、相対的な座標で示される、顔の領域の中心の縦および横の位置を検出して、検出した位置を示すメタデータを出力する。
また、例えば、ステップS35において、顔検出エンジン32は、画像全体の縦のサイズおよび横のサイズをそれぞれ1とした場合、画像における顔の大きさとして、相対的な座標で示される、顔の領域の高さおよび幅である顔の大きさを検出して、検出した顔の大きさを示すメタデータを出力する。
さらに、例えば、ステップS35において、顔検出エンジン32は、予め定義されている、想定される顔の方向ごとの複数のパターンと、顔の領域の画像とが一致するか否かを判定し、顔の向きを、顔の領域の画像と一致するパターンに対応する向きとし、その顔の向きを示すメタデータを出力する。例えば、顔の向きは、顔の領域の画像と一致するパターンのインデックスで示される。
例えば、ステップS35において、顔検出エンジン32は、顔の領域の位置、顔の大きさ、および顔の向きを示すメタデータを、自分が管理するRAM13上の記憶領域に出力する。このようにした場合、顔の領域の位置、顔の大きさ、および顔の向きを示すメタデータが記憶されることになる。
ステップS34において、画素値を取得した領域が、顔の領域でないと判定された場合、ステップS35はスキップされて、手続きは、ステップS36に進む。
ステップS36において、顔検出エンジン32は、設定されている大きさの領域で、画像の全体を調べたか否かを判定する。ステップS36において、画像の全体を調べていないと判定された場合、ステップS37に進み、顔検出エンジン32は、画像内で領域を移動させて、ステップS33に戻り、上述した処理を繰り返す。
例えば、ステップS37において、顔検出エンジン32は、画像内で、領域をラスタスキャン順に、予め定めた画素数だけ移動させる。この場合、顔検出エンジン32は、領域の大きさに応じて決められた画素数(例えば、領域の領域の高さおよび幅の10%に相当する画素数)だけ領域を移動させるようにしてもよい。
このように、画像内で領域を順に移動させながら、その領域が顔の領域であるか否かが判定される。言い換えれば、画像内で領域を順に移動させながら、その領域について顔の画像が検出される。
ステップS36において、画像の全体を調べたと判定された場合、ステップS38に進み、顔検出エンジン32は、予め定めた全ての大きさの領域について調べたか否かを判定する。
ステップS38において、予め定めた全ての大きさの領域について調べていないと判定された場合、ステップS39に進み、顔検出エンジン32は、領域の次の大きさを設定して、ステップS32に戻り、上述した処理を繰り返す。
この場合、次のステップS32乃至ステップS37において、前回の処理における領域の大きさと異なる大きさの領域が顔の領域であるか否かが判定されることになる。
ステップS38において、予め定めた全ての大きさの領域について調べたと判定された場合、ステップS40に進み、顔検出エンジン32は、ステップS35で出力されたメタデータを基に、例えば、図5で示されるように、画像ファイル41に格納されている画像の全体に含まれる顔の画像の数、並びに顔の画像のそれぞれの位置、大きさ、および向きの属性を示す顔検出情報51を出力して、処理は終了する。
このように、画像における領域の位置と領域の大きさを変えながら、それぞれの領域が顔の領域であるか否が判定されるので、顔検出エンジン32は、画像ファイル41に格納されている画像の全体について、顔の画像の数を検出して、顔の画像のそれぞれの位置、大きさ、向きを検出することになる。
図3に戻り、ステップS12において、顔情報データベース33は、顔検出エンジン32から出力された顔検出情報51を取得する。ステップS13において、顔情報データベース33は、画像と顔検出情報51とを関係付けて、記憶する。
この場合、例えば、図5で示されるように、顔情報データベース33は、顔検出情報51を含むメタデータファイル52を作成して、画像ファイル41とは別に、記憶する。
図6で示されるように、メタデータファイル52は、顔の画像の数、並びに顔の画像のそれぞれの位置、大きさ、および向きの属性を示す顔検出メタ情報(顔検出情報51)およびその他のメタ情報を格納する。メタデータファイル52は、画像Exif情報と共に画像データを格納している画像ファイル41に、顔情報データベース33によって紐付けされるか、または画像ファイル41と関連したファイル名(例えば、ピリオドの前側が一致し、拡張子が異なるファイル名)とされて、紐付けされる(関連付けられる)。
なお、図5および図7で示されるように、顔の画像の数、並びに顔の画像のそれぞれの位置、大きさ、および向きの属性を示す顔検出メタ情報(顔検出情報51)を、画像Exif情報として、画像ファイル41に格納するようにしてもよい。
図3に戻り、ステップS14において、ラベリング部34は、テンプレートデータベース35からテンプレートを読み込んで、テンプレートと顔検出情報51とを比較する。
図8は、テンプレートデータベース35に記憶されているテンプレートの例を示す図である。
1人の人物を主題として撮られた画像は、一般に、ポートレートと称される。ポートレートにおいては、通常、1つの顔が、画面全体のサイズに対してある程度大きめに写されている。顔の位置が画像の中央にあれば、バストショットなど明らかに人物を主題に撮られた画像であることが推定される。
そこで、図8の例で示されるように、ポートレートであるテンプレート名に対応して、1である顔の画像の数、画像の中央である顔の位置、大である顔の大きさ、および正面である顔の向きを示すテンプレートがテンプレートデータベース35に格納されている。
なお、1つの顔が写っているとしても、画像に対して左右にオフセットした位置に顔が写っていれば、その画像は、中央の物体共に記念撮影された画像であることが推定される。
縦長の写真構図に対して画面の中央の上側の位置に、小さめに検出された1つの顔がある場合、その画像は、写っている人物の全身像を撮影した画像であることが推定される。
また、2人の人物を主題として撮られた画像は、俗にツーショット(2ショット)と称される。
そこで、図8の例で示されるように、ツーショットであるテンプレート名に対応して、2乃至3である顔の画像の数、画像の中央付近である顔の位置、大乃至中である顔の大きさ、および正面、またはお互いに向き合う方向である顔の向きを示すテンプレートがテンプレートデータベース35に格納されている。
画面内に対してほぼ同じサイズの顔の領域が、比較的接近して複数検出された場合、その画像は、3人または少人数での記念撮影されたグループ写真であることが推定される。図示は省略するが、例えば、グループ写真のテンプレートに、3乃至7である顔の画像の数、近接している顔の位置、中乃至小である顔の大きさ、および正面である顔の向きが格納される。
団体を主題として撮られた画像は、一般に、集合写真と称される。画面の広範囲にわたって、ほぼ同じサイズの顔が、ある一定の間隔で横方向または縦方向に並んでいる場合、この画像は、団体旅行などの集合写真であることが推定される。
イベントにおける集合写真は、そのイベントにおける思い出を強く想起させる。例えば、撮影時間の分散から、1つのイベントにおける集合写真を特定することで、画像を分類する上で、集合写真のプライオリティを上げることは有用である。
図8の例で示されるように、集合写真であるテンプレート名に対応して、8乃至13である顔の画像の数、画像の中央から上半分の領域であって、横方向に帯状の分布である顔の位置、小である顔の大きさ、および正面である顔の向きを示すテンプレートがテンプレートデータベース35に格納されている。
また、人物以外の物や風景を撮影の対象としている画像は、一般に、風景画像と称される。顔が1つも検出されないか、顔の画像が分散していたり、画像の端に顔の画像が位置している場合には、その画像の主題は、人物におかれていないことが推定される。
そこで、図8の例で示されるように、風景画像であるテンプレート名に対応して、0である顔の画像の数を示すテンプレートがテンプレートデータベース35に格納されている。このテンプレートにおいて、顔があっても大きさ、向きによってはカウントしないことが、風景画像に対して記述されている。
また、風景画像のテンプレートにおいて、顔の位置が限定されないこと、小さい顔が写っていても顔の数としてカウントしないこと、および横向きの顔は、顔の数としてカウントしないことが記述されている。
このように、例えば、ステップS14において、ラベリング部34は、テンプレートデータベース35から図8で示されるテンプレートを読み込んで、テンプレートと顔検出情報51とを比較する。
なお、ステップS14において、ラベリング部34は、テンプレートの一部と、顔検出情報51の一部とを比較してもよく、テンプレートの全部と、顔検出情報51の全部とを比較してもよい。例えば、ラベリング部34は、テンプレートで示される顔の数と、顔検出情報51の顔の数とを比較してもよい。また例えば、ラベリング部34は、テンプレートの顔の数、顔の位置、顔の大きさ、および顔の向きと、顔検出情報51に含まれる顔の数、顔の位置、顔の大きさ、および顔の向きとを比較してもよい。
その他、写真の技法のセオリーの組み合わせを示すテンプレートを用意するようにしてもよい。
ステップS15において、ラベリング部34は、テンプレートにマッチしたラベルを顔情報データベース33に登録して、処理は終了する。
例えば、顔検出情報51に含まれる顔の数が1である場合、ポートレートに対応するテンプレートの顔の数が1なので、その顔検出情報51に関係付けられている画像には、ポートレートであるラベルが関係付けられて、顔情報データベース33に登録される(記憶される)。
例えば、顔検出情報51に含まれる顔の数が2であり、顔の位置が画像の中央付近であり、顔の大きさが中であり、かつ顔の向きが正面である場合、ツーショットに対応するテンプレートにおいて、顔の数が2乃至3であり、顔の位置が画像の中央付近であり、顔の大きさが大乃至中であり、顔の向きが正面またはお互いに向かい合う方向なので、その顔検出情報51に関係付けられている画像には、ツーショットであるラベルが関係付けられて、顔情報データベース33に登録される。
このように、それぞれの画像の分類を示すラベル、例えば、ポートレート、ツーショット、グループ写真、集合写真、または風景画像のいずれかのラベルが、画像のそれぞれに関係付けられて、顔情報データベース33に登録される。
なお、ラベルは、メタデータファイル52に格納されるか、または画像Exif情報として、画像ファイル41に格納される。
なお、テンプレートは、いわゆるデフォルトとして設定するようにしても、使用者により変更されるようにしてもよい。この場合、テンプレートが変更されたとき、ステップS14およびステップS15の処理を実行させるようにすれば、変更されたテンプレートに応じて画像のそれぞれに関係付けられたラベルを変更することができる。すなわち、画像に関係付けられたラベルが動的に変更される。
図9は、プログラムを実行するパーソナルコンピュータである画像処理装置において実現される、画像を検索する機能の構成を示すブロック図である。図9に示される画像処理装置は、ファイルシステム31、顔検索エンジン32、顔情報データベース33、テンプレートデータベース35、検索条件取得部81、検索エンジン82、および表示制御部83を含むように構成される。
なお、画像処理装置は、ラベリング部34を設けて、図2に示される構成と図9に示される構成とを統合した構成としてもよいことは勿論である。
顔情報データベース33は、それぞれの画像に関係付けられている、その画像の全体に含まれる顔の画像の数、並びに顔の画像のそれぞれの位置、大きさ、および向きの属性を示すメタデータファイル52を記憶すると共に、それぞれの画像の分類を示すラベルを記憶する。
検索条件取得部81は、使用者に操作されるキーボードまたはマウスなどからなる入力部16からの信号を基に、画像を検索するための検索条件を取得する。
検索条件取得部81は、マージン付加部91を含む。マージン付加部91は、取得した検索条件にマージンを付加する。すなわち、マージン付加部91は、取得した検索条件を基準値として、その基準値にマージンを付加して、所定の範囲の(幅を持つ)検索条件を生成する。マージンを付加することで、検索条件に所定の幅を持たせることができるようになる。
検索条件取得部81は、取得した検索条件を検索エンジン82に供給する。
検索エンジン82は、検索条件取得部81から供給された検索条件を基に、ファイルシステム31によって記憶されている画像ファイル41を検索する。検索エンジン82は、検索された画像ファイル41を表示制御部83に供給する。
表示制御部83は、検索エンジン82から供給された画像ファイル41に格納されている画像データを基に、ディスプレイである出力部17に画像を表示させる。
図10は、検索の処理を説明するフローチャートである。ステップS51において、検索条件取得部81は、使用者に操作されるキーボードまたはマウスなどからなる入力部16からの信号を基に、ディスプレイである出力部17に表示されているラベルアイコンを選択する。
図11は、GUI(Graphical User Interface)としての、ディスプレイである出力部17に表示されている検索のための画像の例を示す図である。ディスプレイである出力部17の画面の右側には、サムネイル画像表示領域121が設けられている。サムネイル画像表示領域121には、検索の対象となる画像ファイル41に格納されている画像データに対するサムネイル画像が表示されるか、または検索された画像ファイル41に格納されている画像データに対するサムネイル画像が表示される。図11に示す例のサムネイル画像表示領域121において、サムネイル画像は、横に5列に配置されている。サムネイル画像表示領域121の右端に配置されているスクロールバーを操作することで、サムネイル画像が縦にスクロールされる。
ディスプレイである出力部17の画面の左側には、検索ツール表示領域122が設けられている。検索ツール表示領域122には、画像の検索のためのツールが配置されている。図11に示す例の検索ツール表示領域122の上側には、選択されている画像が、サムネイル画像に比較して大きく表示されている。検索ツール表示領域122の上側に表示されている画像には、検出された顔の領域を示す四角が表示されている。
図11に示す例の検索ツール表示領域122の下側には、ラベルアイコンが配置されている。ラベルアイコンは、使用者に検索条件としてのラベルを選択させるためのアイコンである。
図12は、ラベルアイコンの例を示す図である。ラベルアイコン141−1は、使用者に検索条件としての、ポートレートであるラベルを選択させるためのアイコンである。ラベルアイコン141−2は、使用者に検索条件としての、ツーショットであるラベルを選択させるためのアイコンである。ラベルアイコン141−3は、使用者に検索条件としての、グループ写真であるラベルを選択させるためのアイコンである。ラベルアイコン141−4は、使用者に検索条件としての、集合写真であるラベルを選択させるためのアイコンである。
以下、ラベルアイコン141−1乃至ラベルアイコン141−4を個々に区別する必要がないとき、単にラベルアイコン141と称する。
ステップS51において、キーボードまたはマウスなどからなる入力部16への使用者により操作によって、いずれかのラベルアイコン141が選択されると、選択されたラベルアイコン141に対応するラベルを示す検索条件が検索エンジン82に供給される。例えば、ラベルアイコン141−1が使用者に選択された場合、検索条件取得部81は、ポートレートであるラベルを示す検索条件を検索エンジン82に供給する。例えば、ラベルアイコン141−3が使用者に選択された場合、検索条件取得部81は、グループ写真であるラベルを示す検索条件を検索エンジン82に供給する。
ステップS52において、検索エンジン82は、検索条件取得部81から供給された、検索条件であるラベルをキーとして、それぞれの画像に関係付けられているラベルを基に、画像を検索する。
すなわち、例えば、検索エンジン82は、顔情報データベース33に記憶されているラベルのうち、キーであるラベルと一致するラベルを検索する。検索エンジン82は、キーであるラベルと一致した、検索されたラベルに関係付けられている画像ファイル41をファイルシステム31から、検索する。検索エンジン82は、検索された画像ファイル41をファイルシステム31から読み出して、表示制御部83に供給する。
なお、ステップS52において、検索エンジン82は、検索条件であるラベルをキーとして、それぞれの画像に関係付けられているラベルを基に、所定の範囲の画像、例えば、予め定めたフォルダ若しくはディレクトリまたは使用者が選択したフォルダ若しくはディレクトリに格納されている画像から所望の画像を検索するようにしてもよい。
ステップS53において、表示制御部83は、検索エンジン82から供給された画像ファイル41に格納されている画像データを基に、ディスプレイである出力部17に、画像の一覧を表示させ、処理は終了する。
この場合、表示制御部83は、画像Exif情報に記述されている日付などを基に、画像をソートして、ディスプレイである出力部17に、ソートされた画像の一覧を表示させるようにしてもよい。
図13は、サムネイル画像表示領域121に表示される、検索された画像の一覧の例を示す図である。ステップS51において、ラベルアイコン141−3が使用者に選択された場合、グループ写真であるラベルを示す検索条件が検索エンジン82に供給される。すると、ステップS52において、グループ写真であるラベルに関係付けられている画像ファイル41が、ファイルシステム31から、検索される。
その結果、ステップS53において、ディスプレイである出力部17に、画像の一覧が表示される。図13で示されるように、グループ写真であるラベルに関係付けられている画像、すなわち、例えば、顔の数が3乃至7であり、顔の位置が近接し、顔の大きさが中乃至小であり、顔の向きが正面である画像が検索され、検索された画像のサムネイル画像がサムネイル画像表示領域121に表示される。図13で示される例において、グループ写真であるラベルに関係付けられている、3つの画像ファイル41が検索されたので、サムネイル画像表示領域121には、3つの画像ファイル41のそれぞれに対応する3つのサムネイル画像が表示される。
このように、手間をかけることなく、所望の画像を簡単に検索することができる。
図14は、検索の他の処理を説明するフローチャートである。ステップS71において、検索条件取得部81は、使用者に操作されるキーボードまたはマウスなどからなる入力部16からの信号を基に、画像を選択する。例えば、ステップS71において、検索条件取得部81は、入力部16からの信号を基に、サムネイル画像表示領域121に表示されているサムネイル画像のうち、ダブルクリックされたサムネイル画像に対応する画像を選択する。
ステップS72において、検索条件取得部81は、顔情報データベース33から、選択された画像につけられたラベルを取得する。すなわち、ステップS72において、検索条件取得部81は、顔情報データベース33に記憶されているラベルのうち、選択された画像に関係付けられているラベルを取得する。
ステップS73およびステップS74の処理は、それぞれ、図10のステップS52およびステップS53の処理と同様なので、その説明は省略する。
このように、画像を選択するだけで、その画像のラベルと同様のラベルが関係付けられている画像を簡単に検索することができる。
図15は、検索のさらに他の処理を説明するフローチャートである。ステップS91において、検索条件取得部81は、使用者に操作されるキーボードまたはマウスなどからなる入力部16からの信号を基に、ディスプレイである出力部17に表示されているテンプレートアイコンを選択する。テンプレートアイコンは、使用者に検索条件としてのテンプレートを選択させるためのアイコンである。
ステップS92において、検索条件取得部81は、テンプレートデータベース35から、選択されたテンプレートアイコンに対応するテンプレートに記述されている条件である、顔の数、顔の位置、顔の大きさ、および顔の方向を取得する。例えば、図8で示されるテンプレートがテンプレートデータベース35に記憶されている場合、ステップS91において、テンプレート名がポートレートであるテンプレートを選択させるためのテンプレートアイコンが選択されたとき、ステップS92において、検索条件取得部81は、ポートレートであるテンプレート名に対応する、1である顔(の画像)の数、画像の中央である顔の位置、大である顔の大きさ、および正面である顔の向きを取得する。
また、例えば、図8で示されるテンプレートがテンプレートデータベース35に記憶されている場合、ステップS91において、テンプレート名が集合写真であるテンプレートを選択させるためのテンプレートアイコンが選択されたとき、ステップS92において、検索条件取得部81は、集合写真であるテンプレート名に対応する、8乃至13である顔(の画像)の数、画像の中央から上半分の領域であって、横方向に帯状の分布である顔の位置、小である顔の大きさ、および正面である顔の向きを取得する。
ステップS93において、マージン付加部91は、取得した情報にマージンをつけて、検索の範囲を示す顔情報キーを決定する。例えば、ステップS92において、ツーショット(2ショット)であるテンプレート名に対応する、2乃至3である顔(の画像)の数、画像の中央付近である顔の位置、大乃至中である顔の大きさ、および正面、またはお互いに向き合う方向である顔の向きが取得された場合、マージン付加部91は、顔の数に1であるマージンを付加して、2乃至4である顔(の画像)の数、画像の中央付近である顔の位置、大乃至中である顔の大きさ、および正面、またはお互いに向き合う方向である顔の向きである顔情報キーを決定する。
また、たとえば、マージン付加部91は、顔の数に−1であるマージンを付加して、1乃至3である顔(の画像)の数、画像の中央付近である顔の位置、大乃至中である顔の大きさ、および正面、またはお互いに向き合う方向である顔の向きである顔情報キーを決定するようにしてもよい。
なお、マージンは、顔(の画像)の数だけでなく、顔の位置、顔の大きさ、顔の向きのいずれか、または全部につけるようにしてもよい。
ステップS94において、検索エンジン82は、決定した顔情報キーを基に、画像を検索する。例えば、検索エンジン82は、顔情報キーと一致する、顔検出メタ情報を格納しているメタデータファイル52を顔情報データベース33から検索する。そして、検索エンジン82は、検索されたメタデータファイル52に関係付けられている画像ファイル41をファイルシステム31から、検索する。検索エンジン82は、検索された画像ファイル41をファイルシステム31から読み出して、表示制御部83に供給する。
例えば、検索エンジン82が、2乃至4である顔(の画像)の数、画像の中央付近である顔の位置、大乃至中である顔の大きさ、および正面、またはお互いに向き合う方向である顔の向きである顔情報キーを基に、画像を検索すると、顔(の画像)の数が2乃至4のいずれかであり、顔の位置が画像の中央付近にあり、顔の大きさが大または中であり、顔の向きが正面、またはお互いに向き合う方向である画像がファイルシステム31から検索されて、表示制御部83に供給されることになる。
ステップS95において、表示制御部83は、検索エンジン82から供給された画像ファイル41に格納されている画像データを基に、ディスプレイである出力部17に、画像の一覧を表示させ、処理は終了する。
このように、画像にラベルが関係付けられていない場合であっても、テンプレートを基に、手間をかけることなく、所望の画像を簡単に検索することができる。
図16は、検索のさらに他の処理を説明するフローチャートである。ステップS121において、検索条件取得部81は、使用者に操作されるキーボードまたはマウスなどからなる入力部16からの信号を基に、画像を選択する。例えば、ステップS121において、検索条件取得部81は、入力部16からの信号を基に、サムネイル画像表示領域121に表示されているサムネイル画像のうち、ダブルクリックされたサムネイル画像に対応する画像を選択する。
ステップS122において、検索条件取得部81は、選択された画像の、顔の数、顔の位置、顔の大きさ、および顔の方向を取得する。例えば、ステップS122において、検索条件取得部81は、顔情報データベース33から、選択された画像に関係付けられているメタデータファイル52を読み出す。そして、検索条件取得部81は、読み出したメタデータファイル52に含まれる顔検出情報で示される顔の数、顔の位置、顔の大きさ、および顔の方向を取得する。
なお、顔検索エンジン32が、選択された画像の、顔の数、顔の位置、顔の大きさ、および顔の方向を検出することで、顔の数、顔の位置、顔の大きさ、および顔の方向を取得するようにしてもよい。
ステップS123乃至ステップS125の処理は、それぞれ、図15のステップS93乃至ステップS95の処理と同様なので、その説明は省略する。
このように、画像にラベルが関係付けられていない場合であっても、表示されている画像を基に、手間をかけることなく、所望の画像を簡単に検索することができる。
以上のように、アイコンを選択するだけで、画像処理装置の内部処理で必要な画像のみがフィルタリングされ、閲覧したい画像を検索することができる。さらに、現在閲覧している画像を選択するだけで、さらに、選択された画像の属性をキーとして、画像を検索することができる。検索された画像は、さらにフィルタリングされて、画面上に並べられる。
顔の画像の検出の結果得られたメタ情報を用いて、画像の主題や意図を推定し、推定された主題や意図に応じて画像がラベリングされる。ラベリングを基に、画像を簡単に検索することができる。
さらに、ラベリングを基に、より高度なアプリケーションを提案することもできる。例えば、ラベリングと、撮影の時系列やGPS(Global Positioning System)により位置情報などのメタ情報とを組み合わせて、長年にわたって蓄積した画像(写真)を人物ベースで自動的に分類し、整理したり、ツーショットなどの特定の画像(写真)を対象にして、その画像(写真)を共有したりすることができる。さらに、旅行などでの重要なスポット写真(記念写真等)をつづるダイジェストスライドショーなどのようにこれまでになかった、自分の持っている写真、画像コンテンツを有効に活用できる高度なアプリケーションを提供できる。
このように、画像から検出された情報と画像とを関係付けるようにした場合には、画像に情報を関係付けることができる。また、それぞれの画像に含まれる顔の画像である顔画像の数を検出し、それぞれの画像と検出された顔画像の数とを関係付けるようにした場合には、手間をかけることなく、検索において、所望の画像を簡単に検索することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図1に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)を含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア21、または、プログラムが一時的もしくは永続的に格納されるROM12や、記憶部18を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部19を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 CPU, 12 ROM, 13 RAM, 18 記憶部, 21 リムーバブルメディア, 31 ファイルシステム, 32 顔検出エンジン, 33 顔情報データベース, 34 ラベリング部, 35 テンプレートデータベース, 81 検索条件取得部, 82 検索エンジン, 83 表示制御部, 91 マージン付加部