(57)【要約】【課題】効率よく画像内のオブジェクトを検出する。【解決手段】作業画像データＷＤが示す画像からオブジェクトを検出するにあたり、前記作業画像データＷＤにおいて前記オブジェクトの存在頻度が他の位置よりも高い重点位置に近い位置から遠くなる位置に検出窓ＷＤを順次移動させていく。そして、前記検出窓ＷＤが各位置に移動するごとに当該検出窓ＷＤ内の窓画像データＸＤについて前記オブジェクトの存在の有無を判定する。重点位置は、作業画像データＷＤの中央とされる。【選択図】図１０
2009237634.tif 000002
【特許請求の範囲】
【請求項１】
画像データが示す画像からオブジェクトを検出するオブジェクト検出方法であって、
前記画像データにおいて前記オブジェクトの存在頻度が他の位置よりも高い重点位置に近い位置から遠くなる位置に検出窓を順次移動させ、
前記検出窓が各位置に移動するごとに当該検出窓内の画像について前記オブジェクトの存在の有無を判定することを特徴とするオブジェクト検出方法。
【請求項２】
前記検出窓の移動間隔は、前記重点位置に遠い領域よりも近い領域の方が狭いことを特徴とする請求項１に記載のオブジェクト検出方法。
【請求項３】
前記重点位置は、前記画像データが示す画像の中央であることを特徴とする請求項１または請求項２のいずれかに記載のオブジェクト検出方法。
【請求項４】
前記検出窓が移動させられる各位置は、前記画像データにおいて前記重心位置を中心とした同心円状となることを特徴とする請求項１から請求項３のいずれか一項に記載のオブジェクト検出方法。
【請求項５】
前記重点位置は、前記画像データを撮影したカメラのフォーカス情報に基づいて特定されることを特徴とする請求項１から請求項４のいずれか一項に記載のオブジェクト検出方法。
【請求項６】
画像データが示す画像からオブジェクトを検出するオブジェクト検出装置であって、
前記画像データにおいて前記オブジェクトの存在頻度が他の位置よりも高い重点位置に近い位置から遠くなる位置に検出窓を順次移動させる検出窓設定手段と、
前記検出窓が各位置に移動するごとに当該検出窓内の画像について前記オブジェクトの存在の有無を判定する判定手段とを具備することを特徴とするオブジェクト検出装置。
【請求項７】
画像データが示す画像からオブジェクトを検出する機能をコンピュータに実行させるためのコンピュータ読み取り可能なオブジェクト検出プログラムであって、
前記画像データにおいて前記オブジェクトの存在頻度が他の位置よりも高い重点位置に近い位置から遠くなる位置に検出窓を順次移動させる検出窓設定機能と、
前記検出窓が各位置に移動するごとに当該検出窓内の画像について前記オブジェクトの存在の有無を判定する判定機能とをコンピュータに実行させることを特徴とするコンピュータ読み取り可能なオブジェクト検出プログラム。
【請求項８】
画像データが示す画像を印刷する印刷装置であって、
前記画像データにおいて前記オブジェクトの存在頻度が他の位置よりも高い重点位置に近い位置から遠くなる位置に検出窓を順次移動させる検出窓設定手段と、
前記検出窓が各位置に移動するごとに当該検出窓内の画像について前記オブジェクトの存在の有無を判定する判定手段と、
前記判定に応じた画像処理を実行した前記画像データを印刷する印刷手段とを具備することを特徴とする印刷装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置に関し、特に画像に含まれるオブジェクトを検出するオブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置に関する。
【背景技術】
【０００２】
画像データに含まれる顔画像を検出し、その検出結果を利用して、印刷処理や補正処理や画像入力機器の動作制御が行われている。検出窓を画像データのあらゆる位置に移動させながら、検出窓において顔画像が存在するか否かを判定していくことにより、画像データにおける不特定の位置に存在する顔画像を検出することができる（特許文献１、参照。）かかる文献においては、画像データの隅から順に検出窓を移動させている（図６、参照。）。
【特許文献１】特開２００７−４８１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
検出窓において顔画像が存在するか否かを判定するための処理負担は小さいものでないため、検出窓を画像データのあらゆる位置に移動させることにより、全体の検出処理の処理負担は大きくなるという問題があった。特に、画像データの隅から順に検出窓を移動させると、顔が存在する位置に検出窓が到達するのに時間がかかるという問題があった。
【０００４】
本発明は、前記課題にかんがみてなされたもので、効率よくオブジェクトを検出するオブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置の提供を目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、画像データが示す画像からオブジェクトを検出するにあたり、まず前記画像データにおいて前記オブジェクトの存在頻度が他の位置よりも高い重点位置に近い位置から遠くなる位置に検出窓を順次移動させる。そして、前記検出窓が各位置に移動するごとに当該検出窓内の画像について前記オブジェクトの存在の有無を判定する。すなわち、前記画像データにおいて前記オブジェクトの存在頻度が他の位置よりも高い領域と考えられる領域から順に顔画像の有無を判定していく。このようにすることにより、早期に顔画像を検出することができる。なお、前記オブジェクトは、特定の画像的特徴を有するものであればよく、例えば人物・動物の顔や顔器官等を検出することができる。
【０００６】
さらに、前記検出窓の移動間隔は、前記重点位置に遠い領域よりも近い領域の方が狭くなるようにするのが望ましい。すなわち、前記オブジェクトの存在頻度が他の位置よりも高い領域については、前記検出窓が移動させられる位置の密度を高くすることにより、当該領域について詳細にオブジェクトを検出することができる。一方、前記オブジェクトの存在頻度が他の位置よりも低い領域については、前記検出窓が移動させられる位置の密度を低くしても、検出漏れが生じる可能性は低い。
【０００７】
前記重点位置の具体的な例として、前記重点位置を前記画像データが示す画像の中央とするようにしてもよい。大多数の写真においては、主たるオブジェクトを中央に構図することとなるため、中央に近い位置から前記検出窓を設定することにより、早期にオブジェクトを検出することができる。さらに、前記検出窓が移動させられる各位置は、前記画像データにおいて前記重心位置を中心とした同心円状となるようにしてもよい。また、前記画像データを撮影する際に、実際にカメラがファーカスを合わせたときの情報に基づいて、前記重点位置を決定してもよい。前記画像データの付属情報として、撮影時のフォーカス情報を添付するようにしておけば、当該フォーカス情報に基づいて前記重点位置を特定することができる。大多数の写真においては、主たるオブジェクトにフォーカスを合わせて撮影を行うため、早期にオブジェクトを検出することができる。
【０００８】
さらに、本発明の技術的思想は、具体的なオブジェクト検出方法にて具現化されるのみならず、当該方法をオブジェクト検出装置において具現化することもできる。すなわち、上述したオブジェクト検出方法が行う各工程に対応する手段を有するオブジェクト検出装置としても本発明を特定することができる。むろん、上述したオブジェクト検出装置がプログラムを読み込んで上述した各手段を実現する場合には、当該各手段に対応する機能を実行させるプログラムや当該プログラムを記録した各種記録媒体においても本発明の技術的思想が具現化できることは言うまでもない。なお、本発明のオブジェクト検出装置は、単一の装置のみならず、複数の装置によって分散して存在可能であることはいうまでもない。また、プリンタ等の印刷装置やデジタルスチルカメラ等の画像入力装置において本発明のオブジェクト検出方法を実現するようにしてもよい。
【発明を実施するための最良の形態】
【０００９】
以下、下記の順序に従って本発明の実施形態を説明する。
１．画像処理装置の構成：
２．画像処理：
２−１．顔検出処理：
２−２．顔判定処理：
２−３．肌色調整および印刷処理：
３．変形例：
３−１．変形例１：
３−２．変形例２：
３−３．変形例３：
３−４．変形例４：
【００１０】
１．画像処理装置の構成
図１は、本発明の一実施形態にかかる画像処理装置を具体的に実現するコンピュータの構成を示している。同図において、コンピュータ１０はＣＰＵ１１とＲＡＭ１２とＲＯＭ１３とハードディスクドライブ（ＨＤＤ）１４と汎用インターフェイス（ＧＩＦ）１５とビデオインターフェイス（ＶＩＦ）１６と入力インターフェイス（ＩＩＦ）１７とバス１８とから構成されている。バス１８は、コンピュータ１０を構成する各要素１１〜１７の間でのデータ通信を実現するものであり、図示しないチップセット等によって通信が制御されている。ＨＤＤ１４には、オペレーティングシステム（ＯＳ）を含む各種プログラムを実行するためのプログラムデータ１４ａが記憶されており、当該プログラムデータ１４ａをＲＡＭ１２に展開しながらＣＰＵ１１が当該プログラムデータ１４ａに準じた演算を実行する。
【００１１】
また、ＨＤＤ１４には、デジタルスチルカメラやスキャナによって画像入力された画像データ１４ｂが記憶されている。ＧＩＦ１５は、例えばＵＳＢ規格に準じたインターフェイスを提供するものであり、外部のプリンタ２０をコンピュータ１０に接続させている。ＶＩＦ１６はコンピュータ１０を外部のディスプレイ４０に接続し、ディスプレイ４０に画像を表示するためのインターフェイスを提供する。ＩＩＦ１７はコンピュータ１０を外部のキーボード５０ａとマウス５０ｂに接続し、キーボード５０ａとマウス５０ｂからの入力信号をコンピュータ１０が取得するためのインターフェイスを提供する。
【００１２】
図２は、コンピュータ１０において実行されるプログラムのソフトウェア構成を示している。同図において、オペレーティングシステム（ＯＳ）ＰＧ１と画像処理アプリケーションＰＧ２とプリンタドライバＰＧ３が実行されている。ＯＳ ＰＧ１は各プログラム間のインターフェイスを提供し、プリンタドライバＰＧ３はプリンタ２０を制御するための処理を実行する。画像処理アプリケーションＰＧ２は、作業画像取得部ＰＧ２ａと検出窓設定部ＰＧ２ｂと窓画像取得部ＰＧ２ｃと特徴量算出部ＰＧ２ｄと顔判定部ＰＧ２ｅと画質調整部ＰＧ２ｆとから構成されている。画像処理アプリケーションＰＧ２を構成する各モジュールＰＧ２ａ〜ＰＧ２ｆが実行する処理の詳細については後述する画像処理の流れとともに説明する。
【００１３】
２．画像処理
図３は、画像処理の全体の流れを示している。ステップＳ１００では、作業画像取得部ＰＧ２ａが所定のＵＩ画面をディスプレイ４０に表示させるとともに、キーボード５０ａとマウス５０ｂから操作を受け付ける。それにより、ＨＤＤ１４等に記憶された複数の画像データ１４ｂのなかからユーザーが印刷したい画像データ１４ｂを取得する。作業画像取得部ＰＧ２ａが画像データ１４ｂの解像度を変換することにより、３２０画素×２４０画素（ＱＶＧＡ）の作業画像データＷＤを生成する。そして、ステップＳ２００においては、検出窓設定部ＰＧ２ｂが顔検出処理を実行させ、作業画像データＷＤにおいて、順次、検出窓ＳＷを設定する。検出窓ＳＷが設定されるごとに、ステップＳ４００において特徴量算出部ＰＧ２ｄと顔判定部ＰＧ２ｅが検出窓ＳＷについての顔判定処理を実行させ、その判定結果を出力する。その判定結果に応じて、画質調整部ＰＧ２ｅが肌色調整処理をステップＳ５００にて実行し、画質調整後の画像データ１４ｂをプリンタドライバＰＧ３に出力する。するとプリンタドライバＰＧ３が印刷制御処理を実行し、プリンタ２０にて画質調整後の画像データ１４ｂを印刷させる。
【００１４】
２−１．顔検出処理
図４は、顔検出処理の流れを示し、図５は作業画像データＷＤを示している。図５において、作業画像データＷＤに正方形状領域の検出窓（検出領域）ＳＷが設定されており、顔検出処理によって検出窓設定部ＰＧ２ｂが検出窓ＳＷを作業画像データＷＤにおいて隈無く移動させる。なお、作業画像データＷＤの長手方向をｘ軸とし、短手方向をｙ軸と表すものとし、ｘ軸とｙ軸の原点（本発明の重点位置。）は作業画像データＷＤの中心位置とする。検出窓ＳＷを移動させる際に、検出窓ＳＷのサイズと、検出窓ＳＷの画像面内における回転角度を順次シフトさせる。以上のように検出窓ＳＷをシフトさせるために、以下のパラメータを順次シフトさせる必要がある。
・検出窓ＳＷのサイズのパラメータ：Ｓ
・検出窓ＳＷの中心位置のパラメータ：Ｐ
・検出窓ＳＷの回転角度のパラメータ：Ｔ
ステップＳ２１０においては、検出窓設定部ＰＧ２ｂが各カウンタｎs，ｎr，ｎa，ｎtをリセットする。各カウンタｎs，ｎr，ｎa，ｎtは、上述したパラメータＳ，Ｐ，Ｔを順にシフトさせるための整数値であり、リセットによって０とされる。ステップＳ２２０においては、サイズカウンタｎsに１を加算する。
【００１５】
図６は、サイズカウンタｎsと検出窓ＳＷのサイズＳとの関係を示している。同図において、サイズカウンタｎsの増加とともに、検出窓ＳＷのサイズＳ（縦と横の長さ）が徐々に減少することが示されている。本実施例では、サイズカウンタｎsとサイズＳとが線形的な関係を有し、サイズカウンタｎsが１〜１５の間で１増加するごとに、検出窓ＳＷのサイズＳが１２画素ずつ小さくなるようにしている。また、サイズカウンタｎsが１のときの最大のサイズＳが検出窓ＳＷの短手の長さよりわずかに短い２００画素となり、サイズカウンタｎsが１５のときの最小の検出窓ＳＷのサイズＳが２０画素となる。なお、ここで示したサイズカウンタｎsと検出窓ＳＷのサイズＳの関係は一例であり、これらが非線形の関係を有していたり、傾きや切片などを変更してもよい。次のステップＳ２３０，Ｓ２４０においては、検出窓ＳＷの中心位置のパラメータＰを設定するため径方向カウンタｎrと周方向カウンタｎaにそれぞれ１を加算する。
【００１６】
図７は、検出窓ＳＷの中心位置Ｐと、径方向カウンタｎrと周方向カウンタｎaの関係を示している。径方向カウンタｎrは原点を中心とした径方向に関する検出窓ＳＷの中心位置Ｐに対応付けられている。径方向カウンタｎrは１〜６までの整数値をとる。中心位置Ｐの径方向に関する位置をｒで表すと、位置ｒは径方向カウンタｎrが１のとき０となり、径方向カウンタｎrが６のとき最大値となる２次曲線（ｎr＝１を頂点とし、下に凸の２次曲線。）で表されている。なお、位置ｒの最大値は、原点から検出窓ＳＷの四隅までの距離よりもわずかに小さい大きさとされている。一方、周方向カウンタｎaは１〜１２までの整数値をとる。原点を水平方向に通過する直線（右側）と、原点と検出窓ＳＷの中心位置Ｐを結ぶ直線がなす角をθで表すと、角θは周方向カウンタｎaが１のとき０度となり、周方向カウンタｎaが１増加するごとに反時計回りに３０度回転（θ＝３０＊ｎa）する。なお、周方向カウンタｎaは１〜１２までの整数値をとるため、一周分（３６０度）だけ角θをシフトさせることができる。なお、径方向カウンタｎr＝１のときに限り、周方向カウンタｎaの上限値を１とする。ステップＳ２５０では、以上の定義に基づいて、検出窓設定部ＰＧ２ｂが径方向カウンタｎrと周方向カウンタｎaから検出窓ＳＷの中心の径方向に関する位置ｒと角度θを特定するとともに、検出窓ＳＷの中心位置Ｐのｘ，ｙ座標を下記の（１）式によって算出する。
【数１】
2009237634.tif 000003
ステップＳ２６０においては、中心位置Ｐを中心としてサイズＳの検出窓ＳＷを生成するとともに、検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出ていないか否かを判定する。なお、初期の段階では各カウンタｎs，ｎr，ｎa＝１であるため、作業画像データＷＤの中心を中心位置Ｐとした２２８×２２８画素の検出窓ＳＷが生成されることとなる。
【００１７】
図８は、ステップＳ２６０における判定の様子を模式的に示している。同図に示すように、各カウンタｎs，ｎr，ｎaの変動によって検出窓ＳＷの中心位置Ｐと大きさがシフトするため、あるカウンタｎs，ｎr，ｎaの組み合わせにおいては検出窓ＳＷの一部が作業画像データＷＤの外側にはみ出ることとなる。このような場合に正常な顔検出を行うことができないとして、当該カウンタｎs，ｎr，ｎaで特定される検出窓ＳＷについての顔検出処理をスキップさせる。一方、検出窓ＳＷの全部が作業画像データＷＤの内側に入る場合には、ステップＳ２７０において検出窓設定部ＰＧ２ｂが検出窓ＳＷの回転角度Ｔを設定するための回転角カウンタｎtに１を加算する。
【００１８】
図９は、回転角カウンタｎtと検出窓ＳＷの回転角Ｔとの関係を示している。同図に示すように回転角カウンタｎtが１のとき作業画像データＷＤの上方向を検出窓ＳＷの上とし、回転角カウンタｎtが２のとき作業画像データＷＤの右方向を検出窓ＳＷの上とし、回転角カウンタｎtが３のとき作業画像データＷＤの下方向を検出窓ＳＷの上とし、回転角カウンタｎtが４のとき作業画像データＷＤの左方向を検出窓ＳＷの上とする。すなわち、本実施形態では、回転角カウンタｎtが１増加するごとに検出窓ＳＷの回転角Ｔを時計回りに９０度ずつ回転させることとしている。なお、検出窓ＳＷの回転角度は９０度刻みであるものに限られず、例えば３０度刻み等としてもよい。
【００１９】
以上のようにして、ステップＳ２６０にてスキップされた場合を除いて、すべてのカウンタｎs，ｎr，ｎa，ｎtが設定できると検出窓ＳＷの大きさＳと位置Ｐと回転角Ｔが検出窓設定部ＰＧ２ｂによって一意に特定されたこととなる。ステップＳ２８０においては、窓画像取得部ＰＧ２ｃが現在決定されている検出窓ＳＷの内側の画像データを抽出し、窓画像データＸＤとして取得する。取得した窓画像データＸＤは、特徴量算出部ＰＧ２ｄに出力され、窓画像データＸＤについての顔判定処理をステップＳ４００にて実行する。顔判定処理の詳細については後述する。
【００２０】
窓画像データＸＤを特徴量算出部ＰＧ２ｄに出力すると、検出窓設定部ＰＧ２ｂがステップＳ２９０において、回転角カウンタｎt＝４であるか否かを判定する。すなわち、現在の検出窓ＳＷのサイズＳおよび中心位置Ｐにおいて４方向の回転角の設定が完了したか否かを判定する。回転角カウンタｎt＜４である場合には、ステップＳ２７０に戻り、回転角カウンタｎtに１を加算する。これにより、次回は９０度時計回りに回転した検出窓ＳＷを設定することができる。一方、回転角カウンタｎt＝４である場合にはステップＳ２９５において回転角カウンタｎtを０にリセットし、ステップＳ３００において周方向カウンタｎa＝１２（径方向カウンタｎr＝１のとき周方向カウンタｎa＝１）であるか否かを判定する。すなわち、現在の検出窓ＳＷのサイズＳおよび径方向の位置ｒにおけるすべての周方向の位置について検出窓ＳＷの設定が完了したか否かを判定する。周方向カウンタｎa＜１２である場合には、ステップＳ２４０に戻り、周方向カウンタｎaに１を加算する。これにより、次回は３０度半時計回りに回転した中心位置Ｐに検出窓ＳＷを設定することができる。なお、径方向カウンタｎr＝１のときに限り、周方向カウンタｎaの上限値を１とすることにより、原点において複数回検出窓ＳＷが設定されることを防止している。
【００２１】
一方、周方向カウンタｎa＝１２（径方向カウンタｎr＝１のとき周方向カウンタｎa＝１）である場合にはステップＳ３０５において周方向カウンタｎaを０にリセットし、ステップＳ３１０において径方向カウンタｎr＝６であるか否かを判定する。すなわち、現在の検出窓ＳＷのサイズＳにおいて、すべての中心位置Ｐについて検出窓ＳＷの設定が完了したか否かを判定する。径方向カウンタｎr＜６である場合には、ステップＳ２３０に戻り、径方向カウンタｎrに１を加算する。これにより、次回は径方向に１段階外側の中心位置Ｐに検出窓ＳＷを設定することができる。一方、径方向カウンタｎr＝６である場合には、ステップＳ３１５において径方向カウンタｎrを０にリセットし、ステップＳ３２０においてサイズカウンタｎs＝１５であるか否かを判定する。すなわち、すべてのサイズＳについて検出窓ＳＷの設定が完了したか否かを判定する。サイズカウンタｎs＜１５である場合には、ステップＳ２２０に戻り、サイズカウンタｎsに１を加算する。これにより、次回は一回り小さいサイズＳの検出窓ＳＷを設定することができる。一方、サイズカウンタｎs＝１５である場合には、すべてのサイズおよび位置および回転角の組み合わせについて検出窓ＳＷの設定が完了したとして、処理を終了させる。
【００２２】
以上説明した顔検出処理においては、ステップＳ２６０にてスキップされた場合を除いて、検出窓ＳＷのサイズと位置と回転角のいずれかが更新されるごとに、窓画像データＸＤが特徴量算出部ＰＧ２ｄに出力され、当該窓画像データＸＤについての顔判定処理がステップＳ４００にて実行される。この顔判定処理においては、窓画像データＸＤに顔画像が存在するか否かが判定されるため、検出窓ＳＷを設定したサイズと位置と回転角において顔画像の有無を判定していくことができる。
【００２３】
図１０は、本実施形態において検出窓ＳＷの位置が移動する様子を示している。同図に示すように、作業画像データＷＤの中央の重点位置から開始し、径方向カウンタｎrの増加とともに検出窓ＳＷの中心位置Ｐを外側に移動させて行くことができる。デジタルスチルカメラ等で撮影された多くの画像データ１４ｂ（作業画像データＷＤ）においては、主たる被写体人物を全体画像の中央に構図されるため、作業画像データＷＤの中央は他の領域よりも顔画像の出現頻度が高い。そのため、作業画像データＷＤの中央の重点位置から検出窓ＳＷの移動を開始することにより、処理の初期において顔画像を検出させることができる。例えば、後述する顔判定処理において所定人数までの顔画像が検出された時点で顔検出処理を終了させるようにした場合、より早期に処理を終了させることができ、処理負担を軽減させることができる。さらに、径方向カウンタｎrに対応する径方向の位置ｒは、ｎr＝１を頂点とし、下に凸の２次曲線で表されるため、作業画像データＷＤの中心付近においては検出窓ＳＷの中心位置Ｐを高密度とし、作業画像データＷＤの中心から離れるほど中心位置Ｐを低密度とすることができる。このようにすることにより、顔画像が含まれる可能性の高い位置では細かく検出窓ＳＷを移動させることができるとともに、顔画像が含まれる可能性の低い位置での顔判定処理の実行回数を軽減させることができる。
【００２４】
２−２．顔判定処理
図１１は、顔判定処理の流れを示している。ステップＳ４１０にて窓画像データＸＤを取得すると、次のステップＳ４２０において特徴量算出部ＰＧ２ｄが窓画像データＸＤから複数の特徴量を算出する。特徴量は、窓画像データＸＤに対して各種のフィルタを適用し、当該フィルタ内の輝度平均やエッジ量やコントラスト等の状態を示す特徴量（平均値や最大値や最小値や標準偏差等）を算出することにより得られる。なお、窓画像データＸＤは、検出窓ＳＷのサイズＳによって異なる大きさとなるが、ステップＳ４１０において予め一定の大きさに解像度変換される。
【００２５】
図１２は、窓画像データＸＤから特徴量を算出する様子を示している。同図において、窓画像データＸＤに対して多数のフィルタＦＴが用意されており、各フィルタＦＴを順次窓画像データＸＤに適用し、各フィルタＦＴ内の画像について例えば１２個の特徴量ＣＡ１〜ＣＡ１２を順次算出する。特徴量ＣＡ１〜ＣＡ１２が算出できると、ステップＳ４３０において、顔判定部ＰＧ２ｅが特徴量ＣＡ１〜ＣＡ１２を予め用意されたニューラルネットワークＮＮに入力し、その出力として顔画像が存在する／しないの判定結果を算出する。なお、特徴量ＣＡは、窓画像データＸＤが示す画像的特徴を指標化したものであればよく、必ずしもフィルタＦＴを使用する必要はない。
【００２６】
図１３は、ニューラルネットワークＮＮの構造の一例を示している。ニューラルネットワークＮＮは、前段層のユニットＵの値の線形結合（添え字ｉは前段層のユニットＵの識別番号。）によって後段層のユニットＵの値が決定される基本構造を有している。さらに、線形結合によって得られた値をそのまま次の層のユニットＵの値としてもよいが、線形結合によって得られた値を例えばハイパボリックタンジェント関数のような非線形関数によって変換して次の層のユニットＵの値を決定することにより、非線形特性を与えてもよい。本実施例のニューラルネットワークＮＮは３層構造であり、ニューラルネットワークＮＮは、１層の中間層と、入力層と出力層とから構成されている。各特徴量ＣＡ１〜ＣＡ１２がニューラルネットワークＮＮの入力層に入力可能となっており、出力層では出力値Ｋ（０〜１に正規化された値）を出力することが可能となっている。そして、出力値Ｋが０．５以上であれば窓画像データＸＤに顔画像が存在すると判定し、出力値Ｋが０．５未満であれば窓画像データＸＤに顔画像が存在しないと判定する（ステップＳ４４０）。このようなニューラルネットワークＮＮをＨＤＤ１４に予め用意しておけば、顔画像が窓画像データＸＤに存在するか否かを特徴量ＣＡ１〜ＣＡ１２に基づいて判定することができる。
【００２７】
図１４は、ニューラルネットワークＮＮを学習する様子を模式的に示している。本実施形態では、誤差逆伝搬（error back propagation）法によって学習を行うことにより、各ユニットＵの数や、各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値が最適化される。誤差逆伝搬法による学習においては、まず各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値を適当な値に初期設定する。そして、顔画像が存在しているか否かが既知の学習用画像データについてステップＳ４２０と同様の手順で特徴量ＣＡ１〜ＣＡ１２を算出し、当該特徴量ＣＡ１〜ＣＡ１２を初期設定されたニューラルネットワークＮＮに入力し、その出力値Ｋを取得する。
【００２８】
本実施例において、顔画像が存在している学習用画像データについて出力値Ｋとして１が出力されるのが望ましく、顔画像が存在していない学習用画像データについて出力値Ｋとして０が出力されるのが望ましい。しかしながら、各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値を適当な値に初期設定したに過ぎないため、実際の出力値Ｋと理想的な値との間には誤差が生じることとなる。このような誤差を極小化させる各ユニットＵについての重みｗやバイアスｂを、勾配法等の数値最適化手法を用いて算出する。以上のような誤差は、後段の層から前段の層に伝搬され、後段のユニットＵについて重みｗやバイアスｂから順に最適化されていく。以上のようにして学習したニューラルネットワークＮＮによれば、窓画像データＸＤに顔画像が存在している場合の特徴量ＣＡ１〜ＣＡ１２に対して１に近い出力値Ｋを得ることができ、窓画像データＸＤに顔画像が存在していない場合の特徴量ＣＡ１〜ＣＡ１２に対して０に近い出力値Ｋを得ることができる。従って、適当な閾値０．５によって閾値判定を行うことにより、窓画像データＸＤに顔画像が存在しているか否かを判定することができる（ステップＳ４４０）。
【００２９】
ステップＳ４４０において窓画像データＸＤについて顔画像が存在すると判定された場合、そのときの窓画像データＸＤが得られた検出窓ＳＷのサイズＳおよび位置Ｐおよび回転角ＴをＲＡＭ１２に記憶させ（ステップＳ４５０）、リターンする。一方、ステップＳ４４０において窓画像データＸＤについて顔画像が存在しないと判定された場合、そのままリターンする。上述した顔検出処理によって窓画像データＸＤが特徴量算出部ＰＧ２ｄに順次出力されるため、その度にステップＳ４１０〜Ｓ４４０の処理を実行させる。これにより、図１０に示すように順次シフトされる検出窓ＳＷのそれぞれについて顔画像の存在の有無を判定していくことができる。
【００３０】
２−３．肌色調整および印刷処理
図１５は、画質調整部ＰＧ２ｅが実行する肌色調整処理の流れを示している。上述した顔検出処理のステップＳ３２０において、すべてのサイズＳについて検出窓ＳＷの設定が完了したか否かを判定されると、顔検出処理を終了するとともに、顔検出処理と同期して実行される顔判定処理も終了する。ステップＳ５１０においては、顔検出処理と顔判定処理の終了を検出し、調整対象の画像データ１４ｂを取得する。ここで取得される画像データ１４は、顔検出処理と顔判定処理の対象となった画像データ１４ｂである。ステップＳ５２０においては、顔画像が存在すると判定された検出窓ＳＷのサイズＳおよび位置Ｐおよび回転角ＴをＲＡＭ１２から読み出す。ステップＳ５３０においては、顔画像が存在すると判定された検出窓ＳＷに対応する領域を画像データ１４ｂにおいて特定する。検出窓ＳＷのサイズＳおよび位置ＰがＲＡＭ１２から取得されているため、これを画像データ１４ｂの画像サイズに換算することにより、検出窓ＳＷに対応する領域を特定することができる。
【００３１】
ステップＳ５４０においては、ステップＳ５３０にて特定した領域に含まれる肌色画素の色をサンプリングし、当該色に基づいて画像データ１４ｂに対する色調調整のためのパラメータを設定する。ここでは、まずステップＳ５４０にて特定した領域に含まれる肌色画素を、各画素の色彩値（例えばＲＧＢ値やＨＳＶ値）に基づいて特定し、当該色彩値を肌色として好ましいものに補正するための調整パラメータを算出する。調整パラメータは、例えばカラーバランスやホワイトバランスや明るさを調整するためのパラメータが該当する。予め肌色として好ましい色彩値がＨＤＤ１４に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくような調整パラメータが算出される。検出窓ＳＷによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素に基づいて調整パラメータを得ることができる。なお、顔画像が存在すると判定された検出窓ＳＷが複数検出された場合には、平均的な調整パラメータの算出を実行する。調整パラメータが算出できると、ステップＳ５４５において、当該調整パラメータに基づく各画素の色彩値の調整が実行される。以上のようにして、肌色調整が完了すると、ステップＳ５５０にて調整後の画像データ１４ｂをプリンタドライバＰＧ３に出力する。すると、プリンタドライバＰＧ３は、画像データ１４ｂに対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、プリンタ２０に画質調整後の画像データ１４ｂに対応する画像の印刷を実行させる。
【００３２】
３−１．変形例１
図１６は、本変形例にかかる画像データ１４ｂの構造を示している。同図において、画像データ１４ｂは、本体部１４ｂ１とタグ情報部１４ｂ２とから構成されている。本体部１４ｂ１には、例えばＪＰＥＧ方式で圧縮された画像データ本体が格納されており、タグ情報部１４ｂ２には画像データ本体に関する複数項目の添付情報がタグＩＤによって識別可能に格納されている。画像データ１４ｂは、デジタルスチルカメラによって生成されており、主に画像データ１４ｂを撮影したときの情報がタグ情報部１４ｂ２に格納されている。このタグ情報部１４ｂ２には、フォーカス情報として、画像データ１４ｂが示す画像において撮影時にフォーカスが合わせられたフォーカス位置が記憶されている。
【００３３】
図１７は、本変形例において検出窓ＳＷが移動する様子を示している。同図において、画像データ１４ｂに対応する作業画像データＷＤが示されており、タグ情報部１４ｂ２に格納されたフォーカス位置に対応する位置が×で示されている。前実施形態においては、作業画像データＷＤの中心位置を原点としたが、本変形例においては、フォーカス位置に対応する位置を原点として、検出窓ＳＷの中心位置Ｐを移動させる。すなわち、前実施形態では、作業画像データＷＤの中央から検出窓ＳＷを移動させるようにしたが、本変形例ではフォーカス位置から外側に向けて検出窓ＳＷを移動させている。多くの場合、人物の顔にフォーカスを合わせて撮影を行うため、顔画像が存在する可能性の高い位置から顔画像の有無を判定していくことができる。
【００３４】
なお、スポットフォーカスによるフォーカス位置を重点位置とする例を挙げたが、ワイドフォーカス時の広範なフォーカス範囲の中央位置を重点位置として、検出窓ＳＷの中心位置Ｐを移動させるようにしてもよい。すなわち、ワイドフォーカスにおけるフォーカス範囲の中央から外側に向けて検出窓ＳＷを移動させるようにしてもよい。また、フォーカス範囲においては検出窓ＳＷの設定を均等な間隔で行うことが望ましく、フォーカス範囲については図７に示した径方向カウンタｎrに応じた半径ｒの変動特性を線形にするのが望ましい。
【００３５】
３−２．変形例２
図１８は、本変形例にかかる顔検出処理の流れを示している。同図において、上述した実施形態の顔検出処理に対して、ステップＳ２４５の処理が追加され、ステップＳ２５０の中心位置Ｐの算出処理が２通り（ステップＳ２５０ａ，Ｓ２５０ｂ）に分岐されている。ステップＳ２４５においては、径方向カウンタｎrが奇数であるか偶数であるかを判定する。そして、径方向カウンタｎrが偶数である場合には、ステップＳ２５０ａにて角度θを『θ＝３０＊ｎa』と算出し、上記の（１）式によって検出窓ＳＷの中心位置Ｐを算出する。一方、径方向カウンタｎrが奇数である場合には、ステップＳ２５０ｂにて、角度θを『θ＝３０＊ｎa＋１５』と算出し、上記の（１）式によって検出窓ＳＷの中心位置Ｐを算出する。このようにすることにより、径方向カウンタｎrが偶数ある場合と、径方向カウンタｎrが奇数である場合とで、検出窓ＳＷの中心位置Ｐを１５度だけずらすことができる。
【００３６】
図１９は、本変形例において検出窓ＳＷが移動する様子を示している。同図において、隣接する径方向の位置ｒに移動される検出窓ＳＷの中心位置Ｐが互いに１５度ずれることとなる。このようにすることにより、検出窓ＳＷの中心位置Ｐが一定の放射線上のみに移動されるのが防止でき、作業画像データＷＤにおいて偏りなく検出窓ＳＷを移動させていくことができる。
【００３７】
３−３．変形例３
上述した実施形態の顔検出処理のステップＳ２３０，Ｓ２４０においては径方向カウンタｎrと周方向カウンタｎaに個別に１を加算ことにより、それぞれ径方向の位置ｒと周方向の位置（各θ）を独立して変動させるようにした。これにより、図１０に示すように、検出窓ＳＷの中心位置Ｐの配置は、同心円状となる。本発明は、径方向の位置ｒと周方向の位置（各θ）を独立して変動ものに限られず、径方向の位置ｒと周方向の位置（各θ）を同時に変動させるようにしてもよい。例えば、径方向の位置ｒと周方向の位置（各θ）を同時に変動させることによって、検出窓ＳＷの中心位置Ｐの配置を螺旋状とすることもできる。
【００３８】
なお、以上においては、本発明の画像処理方法が、コンピュータ上で実行されるものを例示したが、例えばプリンタやデジタルスチルカメラやスキャナ等の画像機器にて実行されてもよい。プリンタにて本発明の画像処理方法を行えば、印刷の際に理想的な顔画像に近づく画像処理を実行することができる。むろん、プリンタは家庭用のものに限られず、業務用の写真プリントシステムにおいても適用することができる。さらに、プリンタのように印刷用紙上に画像処理結果を出力するものに限らず、フォトビューワのようにディスプレイ上に画像処理結果を出力する装置においても本発明を実現することができる。また、デジタルスチルカメラにて本発明の画像処理方法を行えば、理想的な肌色の顔画像となった撮影結果を得ることができる。さらに、人物認証を行うＡＴＭ（Automated Teller 
Machine）等においても本発明を適用することができる。さらに、ニューラルネットワークＮＮを使用して顔判定を行うものに限られず、上述した特徴量の特徴量空間における種々の判別手法を用いることも可能である。例えば、サポートベクタマシンを利用してもよいし、判別境界面を異ならせた複数段の判定器をカスケード接続するようにしてもよい。
【図面の簡単な説明】
【００３９】
【図１】画像処理装置のハードウェア構成を示すブロック図である。
【図２】画像処理装置のソフトウェア構成を示すブロック図である。
【図３】画像処理の流れを示すフローチャートである。
【図４】顔検出処理の流れを示すフローチャートである。
【図５】作業画像データの一例を示す図である。
【図６】サイズカウンタとサイズとの関係を示すグラフである。
【図７】検出窓の中心位置と径方向カウンタと周方向カウンタの関係を示すグラフである。
【図８】検出窓と作業画像データの関係を示す図である。
【図９】回転角カウンタと検出窓の回転角との関係を示すグラフである。
【図１０】検出窓の位置が移動する様子を示す図である。
【図１１】顔判定処理の流れを示すフローチャートである。
【図１２】窓画像データから特徴量を算出する様子を示す図である。
【図１３】ニューラルネットワークの構造の一例を示す図である。
【図１４】ニューラルネットワークを学習する様子を模式的に示す図である。
【図１５】肌色調整処理の流れを示すフローチャートである。
【図１６】画像データの構造を示す図である。
【図１７】変形例において検出窓の位置が移動する様子を示す図である。
【図１８】変形例にかかる顔検出処理の流れを示すフローチャートである。
【図１９】変形例において検出窓の位置が移動する様子を示す図である。
【符号の説明】
【００４０】
１０…コンピュータ、１１…ＣＰＵ、１２…ＲＡＭ、１３…ＲＯＭ、１４…ＨＤＤ、１４ａ…プログラムデータ、１４ｂ…画像データ、１５…ＧＩＦ、１６…ＶＩＦ、１７…ＩＩＦ、１８…バス、２０…プリンタ、４０…ディスプレイ、５０ａ…キーボード、５０ｂ…マウス、ＰＧ１…ＯＳ、ＰＧ２…画像処理アプリケーション、ＰＧ２ａ…作業画像取得部、ＰＧ２ｂ…検出窓設定部、ＰＧ２ｃ…窓画像取得部、ＰＧ２ｄ…特徴量算出部、ＰＧ２ｅ…顔判定部、ＰＧ２ｆ…画質調整部、ＰＧ３…プリンタドライバ。
【図１】
2009237634.tif 000004
【図２】
2009237634.tif 000005
【図３】
2009237634.tif 000006
【図４】
2009237634.tif 000007
【図５】
2009237634.tif 000008
【図６】
2009237634.tif 000009
【図７】
2009237634.tif 000010
【図８】
2009237634.tif 000011
【図９】
2009237634.tif 000012
【図１０】
2009237634.tif 000013
【図１１】
2009237634.tif 000014
【図１２】
2009237634.tif 000015
【図１３】
2009237634.tif 000016
【図１４】
2009237634.tif 000017
【図１５】
2009237634.tif 000018
【図１６】
2009237634.tif 000019
【図１７】
2009237634.tif 000020
【図１８】
2009237634.tif 000021
【図１９】
2009237634.tif 000022