(57)【特許請求の範囲】
【請求項１】
複数の画像データから所定の画像データを出力する画像出力方法であって、
前記画像データの生成時刻と、前記画像データの色情報に基づいて、互いに類似する複数の画像データからなる群を取得し、
同一の前記群に属する各画像データが示す画像に含まれる顔の内、最も小さい顔をそれぞれ比較画像として検出し、
同一の前記群に属する各画像データが示す画像に含まれる顔の画像平面に対する顔向き角度と、顔の画像平面における回転角度を示す顔回転角度を検出し、
前記比較画像の大きさが所定の大きさ以下となる同一の前記群に属する画像データを出力対象から除外し、
前記出力対象から除外されなかった同一の前記群に属する画像データの前記顔向き角度と前記顔回転角度を順次比較し、前記顔向き角度と前記顔回転角度が他の画像データよりも小さい画像データを出力することを特徴とする画像出力方法。
【請求項２】
同一の前記群に属する各画像データが示す画像に含まれる顔の両目および口を検出し、これらの位置関係に基づいて前記顔向き角度と前記顔回転角度を検出することを特徴とする請求項１に記載の画像出力方法。
【請求項３】
各画像データに添付されたサムネイル画像に基づいて前記顔向き角度と前記顔回転角度を検出することを特徴とする請求項１又は請求項２のいずれかに記載の画像出力方法。
【請求項４】
複数の画像データから所定の画像データを出力する画像出力装置であって、
前記画像データの生成時刻と、前記画像データの色情報に基づいて、互いに類似する複数の画像データからなる群を取得する群取得手段と、
同一の前記群に属する各画像データが示す画像に含まれる顔の内、最も小さい顔をそれぞれ比較画像として検出する第１の検出手段と、
同一の前記群に属する各画像データが示す画像に含まれる顔の画像平面に対する顔向き角度と、顔の画像平面における回転角度を示す顔回転角度を検出する第２の検出手段と、
前記比較画像の大きさが所定の大きさ以下となる同一の前記群に属する画像データを出力対象から除外し、前記出力対象から除外されなかった同一の前記群に属する画像データの前記顔向き角度と前記顔回転角度を順次比較し、前記顔向き角度と前記顔回転角度が他の画像データよりも小さい画像データを出力する選択手段とを具備することを特徴とする画像出力装置。
【請求項５】
複数の画像データから所定の画像データを出力する機能をコンピュータに実行させるためのコンピュータ読み取り可能な画像出力プログラムであって、
前記画像データの生成時刻と、前記画像データの色情報に基づいて、互いに類似する複数の画像データからなる群を取得する群取得機能と、
同一の前記群に属する各画像データが示す画像に含まれる顔の内、最も小さい顔をそれぞれ比較画像として検出する第１の検出機能と、
同一の前記群に属する各画像データが示す画像に含まれる顔の画像平面に対する顔向き角度と、顔の画像平面における回転角度を示す顔回転角度を検出する第２の検出機能と、
前記比較画像の大きさが所定の大きさ以下となる同一の前記群に属する画像データを出力対象から除外し、前記出力対象から除外されなかった同一の前記群に属する画像データの前記顔向き角度と前記顔回転角度を順次比較し、前記顔向き角度と前記顔回転角度が他の画像データよりも小さい画像データを出力する選択機能とをコンピュータに実行させることを特徴とするコンピュータ読み取り可能な画像出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像出力方法、画像出力装置および画像出力プログラムに関し、特に人物画像を含む画像データを出力する画像出力方法、画像出力装置および画像出力プログラムに関する。
【背景技術】
【０００２】
デジタルスチルカメラの急速な普及にともなって、ユーザーが多数の画像データを所有することとなっている。そのため、多数の画像データをいかに管理するかが大きな課題となっている。さらに、デジタルスチルカメラに連写機能が備えられるようになり、異なる画像データであっても非常に類似した画像を示すものがストレージに多数記憶されることとなっている。このように類似した画像を示す画像データが多数存在する場合でも、ほとんどの場合はいずれか一つを印刷すれば十分であり、ユーザーが複数のなかからいずれか１つを選択することとなる。このような状況において、正面に対する顔向き角度に基づいて最適な画像データを選択するものが提案されている（特許文献１、参照。）。かかる文献では、正面に対する顔向き角度が小さい画像データを選択することにより、撮影者の希望に合った画像データの撮影を可能としている。
【特許文献１】特開２００４−３６１９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、デジタルスチルカメラが水平に構えられていない場合等には、顔自体は正面を向いているものの、画像の枠に対して顔が回転することとなる。このような場合、上述した文献に開示された手法を適用しても、画像に対して回転した顔を含む画像データも撮影者の希望に合った画像データであるとして選択されることとなってしまう。すなわち、顔の中央軸が画像の枠に対して平行または垂直であることが望ましく、このような希望に添うような選択を行うことができないという問題があった。
本発明は、前記課題にかんがみてなされたもので、顔の角度も良好な顔画像を有する画像データを選択する画像出力方法、画像出力装置および画像出力プログラムを提供する。
【課題を解決するための手段】
【０００４】
前記課題を解決するために、複数の画像データから所定の画像データを出力するにあたり、まず複数の画像データから互いに類似するものからなる群を取得する。次に、同一の前記群に属する各画像データが示す画像に含まれる顔の画像平面に対する顔向き角度を検出するとともに、顔の画像平面における回転角度を示す顔回転角度も検出する。そして、同一の前記群に属する画像データのうち前記顔向き角度と前記顔回転角度が画像データよりも小さいものを出力する。このようにすることにより、顔が正面を向いているだけでなく、画像平面内における顔回転角度が小さいものを出力することができる。
【０００５】
また、顔が正面を向いており回転していない場合であっても、あまりにも小さい場合には人物画としては不適切である。そのため、同一の前記群に属する画像データのうち前記顔向き角度と前記顔回転角度が他の画像データよりも小さく、かつ、当該顔が他の画像データよりも大きいものを出力するようにしてもよい。このようにすることにより、より適切な画像データを出力することができる。
【０００６】
さらに、前記顔向き角度と前記顔回転角度を検出する手法の一例として、まず同一の前記群に属する各画像データが示す画像に含まれる顔の両目および口を検出し、当該両目および口の位置関係に基づいて前記顔向き角度と前記顔回転角度を検出するようにしてもよい。さらに、大量の画像データ群から所定の画像データを出力する場合、効率的かつ負荷の少ない処理が要求されることとなる。そのため、各画像データが示す画像に含まれる顔の前記顔向き角度と前記顔回転角度を検出するのに、各画像データに添付されたサムネイル画像を使用するようにしてもよい。前記サムネイルは、画像サイズが小さいため、効率的かつ負荷の少ない処理で済ませることができる。
【０００７】
さらに、本発明の技術的思想は、具体的な画像出力方法にて具現化されるのみならず、当該方法を画像出力装置において具現化することもできる。すなわち、上述した画像出力方法が行う各工程に対応する手段を有する画像出力装置としても本発明を特定することができる。むろん、上述した画像出力装置がプログラムを読み込んで上述した各手段を実現する場合には、当該各手段に対応する機能を実行させるプログラムや当該プログラムを記録した各種記録媒体においても本発明の技術的思想が具現化できることは言うまでもない。なお、本発明の画像出力装置は、単一の装置のみならず、複数の装置によって分散して存在可能であることはいうまでもない。例えば、画像出力装置が有する各手段が、パーソナルコンピュータ上で実行されるプリンタドライバと、プリンタの双方において分散することも可能である。また、プリンタ等の印刷装置に本発明の画像出力装置の各手段を包含させることも可能である。
【発明を実施するための最良の形態】
【０００８】
以下、下記の順序に従って本発明の実施形態を説明する。
１．画像選択装置の構成：
２．画像選択処理の流れ：
３．変形例：
【０００９】
１．画像選択装置の構成
図１は、本発明の一実施形態にかかる画像出力装置としての画像選択装置を具体的に実現するコンピュータの構成を示している。同図において、コンピュータ１０はＣＰＵ１１とＲＡＭ１２とＲＯＭ１３とハードディスクドライブ（ＨＤＤ）１４と汎用インターフェイス（ＧＩＦ）１５とビデオインターフェイス（ＶＩＦ）１６と入力インターフェイス（ＩＩＦ）１７とバス１８とから構成されている。バス１８は、コンピュータ１０を構成する各要素１１〜１７の間でのデータ通信を実現するものであり、図示しないチップセット等によって通信が制御されている。ＨＤＤ１４には、オペレーティングシステム（ＯＳ）を含む各種プログラムを実行するためのプログラムデータ１４ａが記憶されており、当該プログラムデータ１４ａをＲＡＭ１２に展開しながらＣＰＵ１１が当該プログラムデータ１４ａに準じた演算を実行する。
【００１０】
また、ＨＤＤ１４には、デジタルスチルカメラやスキャナによって画像入力された画像データＩＤと、後述するパターンマッチングにおいて使用する多数の顔輪郭テンプレート１４ｂと目テンプレート１４ｃと口テンプレート１４ｄが記憶されている。さらに、ＨＤＤ１４には、後述する画像選択処理によって生成される画像データベース１４ｅが記憶されている。ＧＩＦ１５は、例えばＵＳＢ規格に準じたインターフェイスを提供するものであり、外部のプリンタ２０やデジタルスチルカメラ３０をコンピュータ１０に接続させている。なお、デジタルスチルカメラ３０の図示しないフラッシュメモリにも複数の画像データＩＤが記憶されている。ＶＩＦ１６はコンピュータ１０を外部のディスプレイ４０に接続し、ディスプレイ４０に画像を表示するためのインターフェイスを提供する。ＩＩＦ１７はコンピュータ１０を外部のキーボード５０ａとマウス５０ｂに接続し、キーボード５０ａとマウス５０ｂからの入力信号をコンピュータ１０が取得するためのインターフェイスを提供する。
【００１１】
図２は、コンピュータ１０において実行されるプログラムのソフトウェア構成を示している。同図において、オペレーティングシステム（ＯＳ）Ｐ１と画像選択アプリケーションＰ２とプリンタドライバＰ３が実行されている。ＯＳ Ｐ１は各プログラム間のインターフェイスを提供し、プリンタドライバＰ３はプリンタ２０を制御するための処理を実行する。画像選択アプリケーションＰ２は、グループ取得部Ｐ２ａと顔器官検出部Ｐ２ｂと仮選択部Ｐ２ｃと角度検出部Ｐ２ｄと評価値算出部Ｐ２ｅと画像選択部Ｐ２ｆと印刷出力部Ｐ２ｇとから構成されている。また、角度検出部Ｐ２ｄは、顔向き角算出部Ｐ２ｄ１と顔回転角算出部Ｐ２ｄ２とから構成されている。画像選択アプリケーションＰ２を構成する各モジュールＰ２ａ〜Ｐ２ｇが実行する処理の詳細については後述する画像選択処理の流れとともに説明する。
【００１２】
２．画像選択処理の流れ
図３は、画像選択処理の流れを示している。ステップＳ１００においては、グループ取得部Ｐ２ａが所定のＵＩ画面をディスプレイ４０に表示させ、画像選択の対象範囲を指定するための操作をキーボード５０ａとマウス５０ｂを介して受け付ける。例えば、ＨＤＤ１４やデジタルスチルカメラ３０のディレクトリ構造を表示させ、画像選択の対象とする複数の画像データＩＤからなる画像データ群を選択させるようにしてもよいし、撮影日時や更新日時等の画像データＩＤの付属情報に基づいて画像選択の対象とする画像データＩＤを検索するようにしてもよい。
【００１３】
ステップＳ１１０においては、ステップＳ１００にて選択された複数の画像データＩＤをグループ取得部Ｐ２ａが取得し、各画像データＩＤの類否判定を行うことにより、類似している画像データＩＤ同士で構成されるグループ（本発明の群に相当。）を取得する。ここでは、グループ取得部Ｐ２ａが画像データＩＤの撮影時刻と画像データＩＤが示す画像の色情報に基づいて画像データＩＤの類否判定を行う。なお、本実施形態の画像データＩＤは、Ｅｘｉｆフォーマットであり、予め画像データＩＤが示す画像を縮小したサムネイル画像が埋め込まれている。また、画像データＩＤの撮影時刻等の付属情報も画像データＩＤのタグ情報として添付されている。なお、画像データＩＤやサムネイル画像は、例えばＪＰＥＧ方式によって圧縮されていてもよく、使用する際に適宜図示しないデコーダがビットマップデータに展開するものとする。
【００１４】
図４は、類否判定の様子を模式的に示している。同図上段において、各画像データＩＤの組における撮影時刻の差（横軸）に基づいて画像データＩＤの類似判定が行われている様子を示している。連写機能で撮影した場合や、同じ構図で複数枚撮り直し場合、画像データＩＤが示す画像が類似するとともに、その撮影時刻も近いものとなる。従って、本実施形態では、撮影時刻の差が閾値（２分）以内か否かで類似性を判断し、閾値以内の差で撮影された一連の画像データＩＤについてはグループの候補としている。例えば、多数のサンプルの画像データＩＤの類似性を人間が実際に判断し、そのうち類似するもの同士の撮影時刻の差を統計することにより、閾値を設定することができる。ただし、撮影時刻が近くても類似しない可能性もあるため、次に色情報に基づく画像データＩＤの類否判定を行う。
【００１５】
図４下段においては、画像データＩＤが示す画像の色情報に基づいて画像データＩＤの類否判定を行う際に使用されるヒストグラムを示している。当該ヒストグラムにおいては、撮影時刻に基づいて同一グループに属する候補であると判定された２枚の画像データＩＤのサムネイル画像の色情報（例えばＹＣｂＣｒ表色系のＹ階調）ごとの度数をそれぞれ示している。互いに画像データＩＤが示す画像が類似していれば、このヒストグラムの形状も類似していると推定することができる。そこで、２枚の画像データＩＤのサムネイル画像の度数の差の累積値（ハッチングの面積相当値）を算出し、この累積値が所定の閾値を超えていない場合には当該２枚の画像データＩＤが類似していると判定する。一方、前記累積値が所定の閾値を超えている場合には当該２枚の画像データＩＤが類似していないと判定する。すなわち、撮影時刻に基づいて形成されたグループが、色情報に基づく類否判定によって細分化されることとなる。以上のように類似する画像データＩＤのグループ化が完了すると、ステップＳ１２０にてグループ化の結果を画像データベース１４ｅに記憶させる。
【００１６】
図５は、画像データベース１４ｅを示している。同図において、各画像データＩＤについて属するグループが記憶されている。ステップＳ１３０においては、ＵＩ画面をディスプレイ４０に表示させ、どのグループについて好ましい画像データＩＤの選択処理を実行させるかの指定を受け付ける。なお、グループＧ１に属するすべての画像データＩＤが家の前で複数の人物を撮影したものであり、互いに類似していると判定されている。このような写真は、時間をあけずに撮影されるのが通常であり、また構図も大きく変わらないため、色情報も似たようなものとなる。ステップＳ１１０では複数のグループのうち１つが選択できるようなＵＩ画面を生成し、ディスプレイ４０に表示させる。このとき、各グループの任意の画像データＩＤのサムネイルを表示させることにより、どのような画像データＩＤが各グループに含まれるかを確認できるようにするのが望ましい。
【００１７】
ここでは、上述したグループＧ１が選択されたものとして以下説明する。ステップＳ１４０においては、選択されたグループＧ１に属する複数の画像データＩＤのなかから２つの画像データＩＤを仮選択部Ｐ２ｃが仮選択する。ここでは、ランダムに仮選択してもよいし、撮影時刻の順で仮選択してもよい。ステップＳ１５０においては、顔器官検出部Ｐ２ｂが当該仮選択した２つの画像データＩＤに添付されているサムネイル画像から顔器官を検出する。本実施形態では、顔輪郭テンプレート１４ｂと目テンプレート１４ｃと口テンプレート１４ｄを使用して、顔輪郭と両目と口を検出する。ここでは、多数の顔輪郭テンプレート１４ｂと目テンプレート１４ｃと口テンプレート１４ｄを使用して、公知のパターンマッチング法を行うことによって画像データＩＤから顔を検出する。
【００１８】
具体的には、多数の顔輪郭テンプレート１４ｂと目テンプレート１４ｃと口テンプレート１４ｄを画像データＩＤに対応するサムネイル画像に形成された矩形状の比較領域の画像と比較し、顔テンプレート１４ｂとの類似性が高くなる比較領域に各顔器官があると判定する。この比較領域の位置や大きさや角度をシフトさせることにより、画像データＩＤの各部に含まれる顔を順次検出することができる。また、顔輪郭テンプレート１４ｂと目テンプレート１４ｃと口テンプレート１４ｄとの類似性が高くなる比較領域の大きさから各顔器官の大きさも検出することができる。顔輪郭テンプレート１４ｂと目テンプレート１４ｃと口テンプレート１４ｄは矩形状の画像データであり、各顔器官を含む矩形の位置と大きさと角度がそれぞれ検出される。
【００１９】
図６は、顔器官検出の結果の一例を示している。同図において、画像データＩＤに対応するサムネイル画像に存在する複数の顔に対応して顔輪郭を含む矩形領域Ａ１が特定されている。この矩形領域Ａ１の大きさによって顔の大きさと位置を判断することができる。さらに、左右の目を含む矩形領域Ａ２と、口を含む矩形領域Ａ３がそれぞれ検出されている。ステップＳ１６０においては、仮選択した２つの画像データＩＤに対応するサムネイル画像の双方から顔が検出されたか否かを判定する。顔が検出されたか否かは、顔輪郭を含む矩形領域Ａ１が少なくとも１つ検出されたかどうかによって判断することができる。また、顔輪郭の矩形領域Ａ１だけでなく、１つの矩形領域Ａ１の付近において目の矩形領域Ａ２が２つと口の矩形領域Ａ３の１つが顔器官として適切な配置で検出されたことをもって１つの顔が検出されたと判断してもよい。
【００２０】
ここで、一方の画像データＩＤのみから顔が検出された場合には、ステップＳ１７０において、顔が検出されなかった方の画像データＩＤの仮選択を仮選択部Ｐ２ｃが解除する。また、画像データＩＤの双方ともから顔が検出されなかった場合には、ステップＳ１７０において、無作為に一方の画像データＩＤの仮選択を仮選択部Ｐ２ｃが解除する。なお、すべての各画像データＩＤが家の前で複数の人物を撮影したグループＧ１が選択されているため、ここでは双方の画像データＩＤに対応するサムネイル画像から複数の顔が検出されたと判定されることとなる。双方の画像データＩＤに対応するサムネイル画像から顔が検出された場合、ステップＳ１８０において仮選択部Ｐ２ｃが２つの画像データＩＤに対応するサムネイル画像から検出された顔のうちそれぞれの画像データＩＤにおいて最も小さい顔を前記顔器官検出の結果から特定する。
【００２１】
サムネイル画像から検出された矩形領域Ａ１のうち最も小さいものに基づいて、画像データＩＤに対応するサムネイル画像において最も小さい顔の大きさを特定することができる。そして、それぞれのサムネイル画像において最小の顔の大きさ（最小の矩形領域Ａ１の大きさ）の差を算出し、この大きさの差が所定の閾値を超えているか否かを判定する。例えば、２つの画像データＩＤから検出された顔輪郭の矩形領域Ａ１の幅の差が、画像データＩＤの全幅の１０％程度を越えているようであれば、顔の大きさの差が所定の閾値を超えていると判定してもよい。
【００２２】
ここで、顔の大きさの差が所定の閾値を超えていると判定された場合には、ステップＳ１９０にて最小の顔が小さい方を好ましくない画像データＩＤとして仮選択部Ｐ２ｃが仮選択を解除する。このようにすることにより、もう一方の画像データＩＤよりも、最小の顔があからさまに小さい画像データＩＤを選択の対象から除外することができる。一方、最小の顔の大きさの差が所定の閾値を超えていないと判定された場合には、ステップＳ２００にて、角度検出部Ｐ２ｄが２つの画像データＩＤに対応するサムネイル画像に含まれる各顔について顔向き角と顔回転角を算出し、さらに評価値算出部Ｐ２ｅが顔向き角と顔回転角に基づいて顔評価値を算出する。
【００２３】
図７は、角度検出部Ｐ２ｄが顔の顔向き角と顔回転角を算出する様子を示している。１つの顔輪郭の矩形領域Ａ１の付近に存在する２つの目の矩形領域Ａ２と１つの口の矩形領域Ａ３の重心同士を結んだ三角形Ｔの形状を解析することによって、顔向き角と顔回転角を算出する。顔回転角算出部Ｐ２ｄ２は、２つの目の矩形領域Ａ２の重心を結んだ線分Ｍに直交し、かつ、口の矩形領域Ａ３の重心を通過する直線を顔の中央軸Ｌとする。そして、この中央軸Ｌ１の画像データＩＤに対応するサムネイル画像の左右辺の方向（基準方向）に対する傾斜角度を顔回転角αとして算出する。これにより、顔の中央軸Ｌが画像平面内において基準方向に対してどの程度傾斜しているかを顔回転角αとして算出することができる。なお、４５度よりも大きい顔回転角αが算出された場合には、（９０−α）を顔回転角αとする。これにより画像データＩＤの撮影方向がポートレートであっても、ランドスケープであっても適切に顔回転角αを評価することができる。
【００２４】
一方、顔向き角算出部Ｐ２ｄ１は、上述した中央軸Ｌによって目の矩形領域Ａ２の重心を結んだ線分Ｍを分断した線分ｍ１，ｍ２の長さｌ１，ｌ２を算出する。そして、長さｌ１，ｌ２の差Δｌを線分Ｍの全長さｌで除算することにより、長さ比Ｒを算出する。ここで、差Δｌが０（Ｒ＝０）であるとき、顔が画像平面に対して垂直な方向に向いていると考えることができ、画像平面の垂線に対して０度の顔向き角βを有している（傾いていない）と考えることができる。一方、差Δｌが線分Ｍの全長さｌと等しい（Ｒ＝１）とき、画像平面の垂線に対して約±４５度の顔向き角βを有していると考えることができる。長さ比Ｒ＝０〜１に対応する顔向き角βを線形的に推定すると、任意の長さ比Ｒに対応する顔向き角βは（Ｒ×４５）度で算出することができる。
【００２５】
以上のようにして、顔回転角αと顔向き角βが算出できると、評価値算出部Ｐ２ｅが下記の（１）式によって、顔角度評価値Ｅを算出する。
Ｅ＝ｗ１×α＋ｗ２×β      ・・・（１）
上記の（１）式において、ｗ１，ｗ２は顔回転角αと顔向き角βのどちらを重視するかを設定する重み係数であり、例えば顔回転角αを重視する場合には係数ｗ１を係数ｗ２よりも大きくする。本実施形態では、ｗ１＝ｗ２＝０．５とされており、顔回転角αと顔向き角βを同程度重視するものとする。顔角度評価値Ｅが大きければ顔回転角αと顔向き角βが総合的に大きいと判断することができ、顔角度評価値Ｅが小さければ顔回転角αと顔向き角βが総合的に大きいと判断することができる。ステップＳ２００においては、２つの画像データＩＤに対応するサムネイル画像から検出されたすべての顔について顔角度評価値Ｅを算出する。
【００２６】
ステップＳ２１０においては、算出した顔角度評価値Ｅのうち最大となるものを２つの画像データＩＤのそれぞれについて検出する。すなわち、２つの画像データＩＤのそれぞれにおいて顔回転角αと顔向き角βが総合的に最も大きい顔についての顔角度評価値Ｅを検出する。ステップＳ２２０においては、ステップＳ２１０にて検出した２つの画像データＩＤについての最大の顔角度評価値Ｅを比較する。そして、仮選択部Ｐ２ｃは、顔角度評価値Ｅが大きい方の画像データＩＤの仮選択を解除する。
【００２７】
以上の処理によって、２つの画像データＩＤから好ましい方の仮選択を維持し、好ましくない方の仮選択を解除することができる。従って、ステップＳ２２０の段階では、１つの画像データＩＤが仮選択されていることとなる。ステップＳ２３０においては、グループＧ１に属するすべての画像データＩＤをステップＳ１４０，Ｓ２４０にて一旦は仮選択したかどうかを判定する。ここで、すべての画像データＩＤをステップＳ１４０，Ｓ２４０にて仮選択していなかった場合には、ステップＳ２４０において、まだ仮選択していないグループＧ１の画像データＩＤの１つを仮選択し、ステップＳ１５０以降の処理を繰り返して実行する。
【００２８】
繰り返して実行されるステップＳ１５０以降の処理においては、前回の処理によって仮選択が維持された画像データＩＤと、ステップＳ２４０にて新たに仮選択した画像データＩＤとの比較が行われ、良好な方の仮選択が維持されることとなる。このようなループ処理を行うことにより、最終的にはグループＧ１において顔角度評価値Ｅが小さい画像データＩＤの仮選択を維持することができる。そして、ステップＳ２３０において、グループＧ１に属するすべての画像データＩＤをステップＳ１４０，Ｓ２４０に仮選択したと判定した場合には、ステップＳ２５０にて画像選択部Ｐ２ｆが現在において仮選択が維持されている画像データＩＤを最も好ましい画像データＩＤであるとして選択する。
【００２９】
このようにすることにより、グループＧ１において最も顔回転角αと顔向き角βが小さい画像データＩＤを最終的に選択することができ、例えば選択された画像データＩＤを印刷出力部Ｐ２ｇによってプリンタドライバＰ３に出力し、プリンタ２０にて印刷させることができる。なお、同一の画像データＩＤについてステップＳ１５０以降の処理が複数回行われることとなるため、前回算出した当該画像データＩＤについての最小の顔の大きさや最大の顔角度評価値ＥをＲＡＭ１２やＨＤＤ１４に記憶しておき、再度必要となったときに読み出して使用するのが望ましい。
【００３０】
図８は、グループＧ１に属する画像データＩＤの例を示している。同図において、３つの画像データＩＤ１，ＩＤ２，ＩＤ３が示されている。画像データＩＤ１，ＩＤ２，ＩＤ３は、すべて家の前で複数の人物を撮影して得られたものであるが、各人物が移動することによって、複数の顔の位置や大きさや角度が異なったものとなっている。本実施形態においては、これらの複数の顔のうち最も大きさが小さいものに注目し、最も小さいものが比較対象のものよりも所定の閾値以上小さい場合には、仮選択から解除するようにしている（ステップＳ１９０）。ここで、画像データＩＤ１，ＩＤ２が仮選択されている場合を考える。なお、画像データＩＤ１における最小の顔に対応する矩形領域Ａ１よりも、画像データＩＤ２における最小の顔に対応する矩形領域Ａ１の方が小さく、その差が所定の閾値（サムネイル画像の全幅の１０％）よりも大きいものとする。この場合には、ステップＳ１９０にて、画像データＩＤ２の仮選択が解除されることとなる。画像データＩＤ２のように極端に小さい顔を含む画像は集合写真として不適切であり、このような画像データＩＤ２が選択されることを回避することができる。
【００３１】
次に画像データＩＤ１，ＩＤ３が仮選択されている場合を考える。画像データＩＤ１，ＩＤ３が示す画像（サムネイル画像）に含まれる複数の顔の大きさは、同程度となっている。この場合、ステップＳ１９０にて画像データＩＤ１，ＩＤ３の一方の仮選択が解除されることなく、ステップＳ２２０にてそれぞれの最大の顔角度評価値Ｅを比較することとなる。すなわち、画像データＩＤ１，ＩＤ３が示す画像（サムネイル画像）に含まれる複数の顔のうちそれぞれにおいて最も顔回転角αと顔向き角βが総合的に大きいもの同士を比較し、顔回転角αと顔向き角βの程度が大きい方の画像データＩＤ１，ＩＤ３の仮選択が解除されることとなる。画像データＩＤ１，ＩＤ３においては、顔角度評価値Ｅが最大となる顔の顔向き角βは同等であるが、画像データＩＤ３において顔角度評価値Ｅが最大となる顔の顔回転角αが大きくなっており、画像データＩＤ３の仮選択が解除されることとなる。このように、顔向き角βだけでなく顔回転角αも合わせて総合的に判断することにより、被写体の顔に対してデジタルスチルカメラが適切な角度で構えられていたか否かも判断することができる。
【００３２】
３．変形例
上述した実施形態においては、係数ｗ１＝ｗ２＝０．５としたが、画像選択の対象とするグループの構図やユーザーの好みに応じて係数ｗ１，ｗ２を調整するようにしてもよい。例えば、検出された顔の個数に応じて係数ｗ１，ｗ２を調整するようにしてもよいし、どちらをどの程度重視するかをユーザーが指定できるようにしてもよい。また、同一のグループＧ１に属する２個の画像データＩＤを順次比較するようにしたが、すべての画像データＩＤについて顔角度評価値Ｅを一括して算出し、顔角度評価値Ｅが最も良好（小さい）なものを検索するようにしてもよい。さらに、画像データＩＤが示す画像の顔のうち顔角度評価値Ｅが最も大きいものに基づいて判定を行うようにしたが、複数の顔についての顔角度評価値Ｅの平均値に基づいて判定を行うようにしてもよい。
【図面の簡単な説明】
【００３３】
【図１】画像出力装置のハードウェア構成を示すブロック図である。
【図２】画像出力装置のソフトウェア構成を示すブロック図である。
【図３】画像選択処理の流れを示すフローチャートである。
【図４】類否判定の様子を示す模式図である。
【図５】画像データベースを示す図である。
【図６】顔器官検出の結果の一例を示す図である。
【図７】顔向き角と顔回転角を算出する様子を示す図である。
【図８】画像データの例を示す図である。
【符号の説明】
【００３４】
１０…コンピュータ、１１…ＣＰＵ、１２…ＲＡＭ、１３…ＲＯＭ、１４…ＨＤＤ、１４ａ…プログラムデータ、１４ｂ…顔輪郭テンプレート、１４ｃ…目テンプレート、１４ｄ…口テンプレート、１４ｅ…画像データベース、１５…ＧＩＦ、１６…ＶＩＦ、１７…ＩＩＦ、１８…バス、２０…プリンタ、４０…ディスプレイ、５０ａ…キーボード、５０ｂ…マウス、Ｐ１…ＯＳ、Ｐ２…画像選択アプリケーション、Ｐ２ａ…グループ取得部、Ｐ２ｂ…顔器官検出部、Ｐ２ｄ…角度検出部、Ｐ２ｄ１…顔向き角算出部、Ｐ２ｄ２…顔回転角算出部、Ｐ２ｅ…評価値算出部、Ｐ２ｆ…画像選択部、Ｐ２ｇ…印刷出力部、Ｐ３…プリンタドライバ、ＩＤ…画像データ。
【図１】
0005239396.tif 000002
【図２】
0005239396.tif 000003
【図３】
0005239396.tif 000004
【図４】
0005239396.tif 000005
【図５】
0005239396.tif 000006
【図６】
0005239396.tif 000007
【図７】
0005239396.tif 000008
【図８】
0005239396.tif 000009