(57)【要約】【課題】効率よくオブジェクト検出を行う。【解決手段】複数の画素からなる画像データからオブジェクトを検出するにあたり、前記画像データが示す画像の複数の位置について仮検出領域を順次設定し、該仮検出領域を設定するごとに該仮検出領域内に属する画素のうち所定色域に属する所定色画素の比率が閾値よりも大きいか否かを満足するか否かを判定し、前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する重点領域については、本検出領域を第１間隔ごと移動するように順次設定し、前記画像データにおける前記重点領域以外の非重点領域については、前記本検出領域を前記第１間隔より大きい第２間隔ごと移動するように順次設定し、前記本検出領域が設定されるごとに該検出領域内における前記オブジェクトの存在の有無を判定する。【選択図】図６
2010160639.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素からなる画像データからオブジェクトを検出するオブジェクト検出方法であって、
前記画像データが示す画像の複数の位置について仮検出領域を順次設定し、該仮検出領域を設定するごとに該仮検出領域内に属する画素のうち所定色域に属する所定色画素の比率が閾値よりも大きいか否かを満足するか否かを判定し、
前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する重点領域については、本検出領域を第１間隔ごと移動するように順次設定し、
前記画像データにおける前記重点領域以外の非重点領域については、前記本検出領域を前記第１間隔より大きい第２間隔ごと移動するように順次設定し、
前記本検出領域が設定されるごとに該検出領域内における前記オブジェクトの存在の有無を判定することを特徴とするオブジェクト検出方法。
【請求項２】
前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域同士が隣接する区間を前記重点領域とすることを特徴とする請求項１に記載のオブジェクト検出方法。
【請求項３】
前記第１間隔の大きさは前記所定色画素の比率に応じて変動することを特徴とする請求項１または請求項２のいずれかに記載のオブジェクト検出方法。
【請求項４】
前記オブジェクトは人間の顔であり、前記所定色域は肌色領域または非肌色領域であることを特徴とする請求項１から請求項３のいずれか一項に記載のオブジェクト検出方法。
【請求項５】
複数の画素からなる画像データからオブジェクトを検出するオブジェクト検出装置であって、
前記画像データが示す画像の複数の位置について仮検出領域を順次設定し、該仮検出領域を設定するごとに該仮検出領域内に属する画素のうち所定色域に属する所定色画素の比率が閾値よりも大きいか否かを満足するか否かを判定する前処理手段と、
前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する重点領域については、本検出領域を第１間隔ごと移動するように順次設定し、
前記画像データにおける前記重点領域以外の非重点領域については、前記本検出領域を前記第１間隔より大きい第２間隔ごと移動するように順次設定する検出領域設定手段と、
前記本検出領域が設定されるごとに該検出領域内における前記オブジェクトの存在の有無を判定する本処理手段とを具備することを特徴とするオブジェクト検出装置。
【請求項６】
複数の画素からなる画像データからオブジェクトを検出する機能をコンピュータに実行させるオブジェクト検出プログラムであって、
前記画像データが示す画像の複数の位置について仮検出領域を順次設定し、該仮検出領域を設定するごとに該仮検出領域内に属する画素のうち所定色域に属する所定色画素の比率が閾値よりも大きいか否かを満足するか否かを判定する前処理機能と、
前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する重点領域については、本検出領域を第１間隔ごと移動するように順次設定し、
前記画像データにおける前記重点領域以外の非重点領域については、前記本検出領域を前記第１間隔より大きい第２間隔ごと移動するように順次設定する検出領域設定機能と、
前記本検出領域が設定されるごとに該検出領域内における前記オブジェクトの存在の有無を判定する本処理機能とをコンピュータに実行させることを特徴とするコンピュータ読み取り可能なオブジェクト検出プログラム。
【請求項７】
複数の画素からなる画像データからオブジェクトを検出する印刷装置であって、
前記画像データが示す画像の複数の位置について仮検出領域を順次設定し、該仮検出領域を設定するごとに該仮検出領域内に属する画素のうち所定色域に属する所定色画素の比率が閾値よりも大きいか否かを満足するか否かを判定する前処理手段と、
前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する重点領域については、本検出領域を第１間隔ごと移動するように順次設定し、
前記画像データにおける前記重点領域以外の非重点領域については、前記本検出領域を前記第１間隔より大きい第２間隔ごと移動するように順次設定する検出領域設定手段と、
前記本検出領域が設定されるごとに該検出領域内における前記オブジェクトの存在の有無を判定する本処理手段とを具備することを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置に関し、特に画像に含まれるオブジェクトを検出するオブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置に関する。
【背景技術】
【０００２】
画像において複数の検出領域を順次設定し、検出領域が設定されるごとに検出領域内の画像についてニューラルネットワークによる判定を行うことにより、画像内の顔（オブジェクト）を検出することが行われている（特許文献１、参照。）。かかる文献においては、予め各検出領域における肌色画素の比率が閾値を超えるか否かの判定を行い、肌色画素の比率が閾値を超える場合には当該検出領域についてニューラルネットワークによる顔の有無の判定を行うようにしている。一方、肌色画素の比率が閾値を超えない場合には当該検出領域についてニューラルネットワークによる顔の有無の判定を行わない。このようにすることにより、すべての検出領域についてニューラルネットワークによる判定を行うことが回避でき、検出処理を効率的に行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１５８７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、肌色画素の比率が閾値を下回る場合でも顔が存在する可能性もあるため、上述した手法において検出漏れが生じるという問題があった。また、厳密には、肌色画素の比率が閾値を超える検出領域であっても、各検出領域間で顔が存在する可能性は異なっている。例えば、肌色画素の比率が閾値を超える検出領域であって、顔が存在する可能性が極めて高い検出領域と、顔が存在する可能性が半分程度である検出領域とが存在する場合には、前者について検出漏れのないように重点的に顔を検出すべきである。一方、後者については重点度を下げて、処理の効率を向上させた方が望ましい。しかしながら、上述した手法では、肌色画素の比率が閾値を超える場合には、一律にニューラルネットワークによる判定が行われるため、判定の重点度が均一になり、検出漏れが生じるという問題や、依然として処理効率が悪いという問題があった。
本発明は、前記課題にかんがみてなされたもので、効率よく、かつ、漏れのないオブジェクトを検出するオブジェクト検出方法、オブジェクト検出装置、オブジェクト検出プログラムおよび印刷装置の提供を目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するために、複数の画素からなる画像データからオブジェクトを検出するオブジェクト検出方法するにあたり、まず前記画像データが示す画像の複数の位置について仮検出領域を順次設定する。そして、仮検出領域を設定するごとに該仮検出領域内に属する画素のうち所定色域に属する所定色画素の比率が閾値よりも大きいか否かを満足するか否かを判定していく。前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する領域を重点領域とし、該重点領域については第１間隔ごと移動するように本検出領域を順次設定する。
【０００６】
一方、前記画像データにおける前記重点領域以外の非重点領域については、前記本検出領域を前記第１間隔より大きい第２間隔ごと移動するように順次設定する。そして、前記本検出領域が設定されるごとに該検出領域内における前記オブジェクトの存在の有無を判定する。このようにすることにより、前記重点領域については漏れのないオブジェクト検出を実現することができると同時に、前記非重点領域に対する処理負荷を軽減することができる。前記重点領域は、前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域が存在する領域であるため、前記所定色画素を多く含むオブジェクトが存在する可能性が高い領域であるということができる。
【０００７】
また、前記重点領域を決定する手法の具体例として、前記画像データにおいて前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域同士が隣接する区間を前記重点領域とするようにしてもよい。すなわち、前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域同士が隣接する区間においても、前記所定色画素の比率が前記閾値よりも大きくなる画像的特徴を同様に有していると考えることができ、同様に前記オブジェクトが存在する可能性が高いと考えることができる。また、前記所定色画素の比率が前記閾値よりも大きい前記仮検出領域から一定の距離については前記重点領域であるとしてもよい。
【０００８】
また、前記第１間隔の大きさは前記第２間隔よりも小さければよく、一定であってもよいし、変動してもよい。例えば、前記所定色画素の比率に応じて、前記第１間隔を変動させるようにしてもよい。前記所定色画素の比率は、前記オブジェクトが存在する可能性に関連しているため、前記オブジェクトが存在する可能性が高くなる領域については前記第１間隔を小さくするのが望ましい。なお、前記オブジェクトは人間の顔であり、前記所定色域は肌色領域または非肌色領域とすることにより、前記オブジェクトとしての人間の顔を効率よく、かつ、漏れなく検出することができる。
【０００９】
さらに、本発明の技術的思想は、具体的なオブジェクト検出方法にて具現化されるのみならず、該方法をオブジェクト検出装置において具現化することもできる。すなわち、上述したオブジェクト検出方法が行う各工程に対応する手段を有するオブジェクト検出装置としても本発明を特定することができる。むろん、上述したオブジェクト検出装置がプログラムを読み込んで上述した各手段を実現する場合には、該各手段に対応する機能を実行させるプログラムや該プログラムを記録した各種記録媒体においても本発明の技術的思想が具現化できることは言うまでもない。なお、本発明のオブジェクト検出装置は、単一の装置のみならず、複数の装置によって分散して存在可能であることはいうまでもない。また、プリンタ等の印刷装置やデジタルスチルカメラ等の画像入力装置において本発明のオブジェクト検出方法を実現するようにしてもよい。
【図面の簡単な説明】
【００１０】
【図１】印刷装置のハードウェア構成を示すブロック図である。
【図２】印刷装置のソフトウェア構成を示すブロック図である。
【図３】画像処理の流れを示すフローチャートである。
【図４】顔検出前処理の流れを示すフローチャートである。
【図５】仮検出窓と仮検出窓テーブルの一例を示す図である。
【図６】本検出窓テーブルを作成する様子を示す図である。
【図７】顔検出本処理の流れを示すフローチャートである。
【図８】顔判定処理の流れを示すフローチャートである。
【図９】窓画像データから特徴量を算出する様子を示す図である。
【図１０】ニューラルネットワークの構造の一例を示す図である。
【図１１】ニューラルネットワークを学習する様子を模式的に示す図である。
【図１２】肌色調整処理の流れを示すフローチャートである。
【図１３】学習用画像データにおける肌色画素率の分布を示すヒストグラムである。
【図１４】肌色画素率と本検出窓を移動させる間隔との関係を示すグラフである。
【図１５】本検出窓テーブルを作成する様子を示す図である。
【図１６】肌色画素率と本検出窓を移動させる間隔との関係を示すグラフである。
【発明を実施するための形態】
【００１１】
以下、下記の順序に従って本発明の実施形態を説明する。
１．画像処理装置の構成：
２．画像処理：
２−１．顔検出前処理：
２−２．顔検出本処理：
２−３．顔判定処理：
２−４．肌色調整および印刷処理：
３．変形例：
【００１２】
１．画像処理装置の構成
図１は、本発明の一実施形態にかかるオブジェクト検出装置を備えた印刷装置としてのプリンタの構成を示している。同図において、プリンタ１０はＣＰＵ１１とＲＡＭ１２とＲＯＭ１３とメモリースロット１４と印刷機構１５と外部接続インターフェイス（Ｉ／Ｆ）１６と操作パネル１７とＮＶＲＡＭ１８とバス１９とから構成されている。バス１９は、プリンタ１０を構成する各要素１１〜１７の間でのデータ通信を実現するものである。ＲＯＭ１３には、オペレーティングシステム（ＯＳ）を含む各種プログラムを実行するためのプログラムデータ１３ａが記憶されており、該プログラムデータ１３ａをＲＡＭ１２に展開しながらＣＰＵ１１が該プログラムデータ１３ａに準じた演算を実行する。
【００１３】
メモリースロット１４には、デジタルスチルカメラやスキャナによって画像入力された画像データＩＤが複数記憶されたメモリーカードＭＣが装着されている。これにより、メモリーカードＭＣに記憶された画像データＩＤを取得したり、該画像データＩＤを更新したりすることができる。本実施形態の画像データＩＤは、デジタルスチルカメラによって撮影されたものであり、複数の画素によって画像を構成する本体部と、各種添付情報を格納したヘッダー・フッター部とから構成されている。種添付情報には、デジタルスチルカメラが撮影したときに撮影者が設定した撮影モード等が含まれている。外部接続Ｉ／Ｆ１６は、例えばＵＳＢ規格やＬＡＮ規格に準じたインターフェイスを提供するものであり、デジタルスチルカメラやスキャナから画像データＩＤを取得する。操作パネル１７は、液晶モニターと機械式ボタンとから構成されている。ＮＶＲＡＭ１８は、書換可能な不揮発性メモリであり、仮検出窓テーブル１８ｂ１と本検出窓テーブル１８ｂ２を記憶する。
【００１４】
図２は、プリンタ１０において実行されるプログラムのソフトウェア構成を示している。同図において、オペレーティングシステム（ＯＳ）ＰＧ１と画像処理アプリケーションＰＧ２と印刷制御部ＰＧ３が実行されている。ＯＳ ＰＧ１は各プログラム間のインターフェイスを提供し、印刷制御部ＰＧ３は印刷機構１５を制御するための処理を実行する。画像処理アプリケーションＰＧ２は、作業画像取得部ＰＧ２ａと検出窓設定部ＰＧ２ｂと窓画像取得部ＰＧ２ｃと特徴量算出部ＰＧ２ｄと顔判定部ＰＧ２ｅと画質調整部ＰＧ２ｆとから構成されている。画像処理アプリケーションＰＧ２を構成する各モジュールＰＧ２ａ〜ＰＧ２ｆが実行する処理の詳細については後述する画像処理の流れとともに説明する。
【００１５】
２．画像処理
図３は、画像処理の全体の流れを示している。ステップＳ１００では、作業画像取得部ＰＧ２ａが所定のＵＩ画面を操作パネル１７の液晶パネルに表示させるとともに、操作パネル１７に対する操作を受け付ける。それを受け、作業画像取得部ＰＧ２ａは、メモリーカードＭＣに記憶された複数の画像データＩＤのなかからユーザーが印刷したい画像データＩＤを取得する。作業画像取得部ＰＧ２ａは、画像データＩＤの解像度を変換することにより、３２０画素×２４０画素（ＱＶＧＡ）の作業画像データＷＤを生成する。そして、ステップＳ２００においては、前処理手段としての検出窓設定部ＰＧ２ｂが顔検出前処理を実行させ、作業画像データＷＤにおいて設定すべき本検出窓ＳＷを規定した本検出窓テーブル１８ｂ２を生成する。顔検出前処理が完了すると、検出窓設定部ＰＧ２ｂがステップＳ３００にて顔検出本処理を実行させる。顔検出本処理では、検出窓設定部ＰＧ２ｂが本検出窓テーブル１８ｂ２を参照して、順次、本検出窓ＳＷを作業画像データＷＤにおいて設定する。本検出窓ＳＷが設定されるごとに、ステップＳ４００において特徴量算出部ＰＧ２ｄと顔判定部ＰＧ２ｅが本検出窓ＳＷについての顔判定処理を実行させ、その判定結果を出力する。その判定結果に応じて、画質調整部ＰＧ２ｅが肌色調整処理をステップＳ５００にて実行し、画質調整後の画像データＩＤを印刷制御部ＰＧ３に出力する。すると印刷制御部ＰＧ３が印刷制御処理を実行し、印刷機構１５にて画質調整後の画像データＩＤを印刷させる。
【００１６】
２−１．顔検出前処理
図４は、前処理手段としての検出窓設定部ＰＧ２ｂが実行する顔検出前処理（ステップＳ２００）の流れを示し、図５は作業画像データＷＤと仮検出窓ＰＳＷと仮検出窓テーブル１８ｂ１を模式的に示している。検出窓設定部ＰＧ２ｂは、顔検出前処理を実行するためのソフトウェア構成として、肌色判定部ＰＧ２ｂ１と閾値判定部ＰＧ２ｂ２と本検出窓テーブル作成部ＰＧ２ｂ３を有している。図５において、作業画像データＷＤに正方形状領域の仮検出窓（仮検出領域）ＰＳＷが検出窓設定部ＰＧ２ｂによって設定される。図５に示すように、設定されるべき仮検出窓ＰＳＷの位置（例えば中心位置Ｐの座標）が仮検出窓テーブル１８ｂ１に規定されている。仮検出窓テーブル１８ｂ１には顔検出を行う順序を示す仮検出番号ＰＮｄが定義されており、各仮検出番号ＰＮｄに対応付けて各仮検出窓ＰＳＷの位置が記憶されている。
【００１７】
仮検出窓テーブル１８ｂ１は、作業画像データＷＤにおける本検出窓ＳＷの位置が左上から右下に走査する順に仮検出番号ＰＮｄが大きくなるようにソートされている。また、仮検出窓ＰＳＷの縦および横の大きさをａ画素とすると、上下左右に隣接する仮検出窓ＰＳＷとの中心位置Ｐ同士の間隔は０．９×ａとなるように設定されている。なお、実際には、複数の大きさ・角度の仮検出窓ＰＳＷが設定されるべきであるが、本実施形態では説明の簡略化のため、単一の大きさ・角度の仮検出窓ＰＳＷのみを設定するものとして説明する。
【００１８】
ステップＳ２１０においては、肌色判定部ＰＧ２ｂ１が作業画像データＷＤの各画素が肌色領域に属するか否かを判定する。肌色領域は、ＨＳＢ(Hue-Saturation-Brightness）色空間で特定されており、肌色領域を指定する座標情報がＲＯＭ１３等に予め記憶されている。ここでは、作業画像データＷＤの各画素が示す色（例えばＲＧＢやＹＣｂＣｒ系の色情報。）をＨＳＢ系の色情報に変換し、肌色領域に属するか否かを判定する。そして、作業画像データＷＤを、各画素が肌色領域に属するか否かの２値情報を有する２値画像データに変換する。ステップＳ２２０においては、仮検出窓テーブル１８ｂ１に規定された仮検出窓ＰＳＷの一つを選択する。本実施形態では、仮検出番号ＰＮｄの若い順に（左上から順に）選択されるものとする。
【００１９】
仮検出窓ＰＳＷが選択できると、ステップＳ２３０において閾値判定部ＰＧ２ｂ２が仮検出窓ＰＳＷを作業画像データＷＤにおいて設定し、該仮検出窓ＰＳＷを構成する全画素のうち肌色領域に属する肌色画素（所定色画素）の数を前記２値画像データに基づいてカウントする。ステップＳ２４０においては、肌色画素の数を仮検出窓ＰＳＷの全画素ａ2で除算することにより、肌色画素率Ｒを算出する。ステップＳ２５０において、閾値判定部ＰＧ２ｂ２は、肌色画素率Ｒが閾値０．５（５０％）よりも大きいか否かを判定する。肌色画素率Ｒが閾値０．５よりも大きい場合には、本検出窓テーブル作成部ＰＧ２ｂ３が仮検出窓テーブル１８ｂ１における現在の仮検出窓ＰＳＷについて重点フラグを添付し（ステップＳ２６０）、ステップＳ２７０に進む。肌色画素率Ｒが閾値０．５以下の場合には、そのままステップＳ２７０に進む。ステップＳ２７０では、検出窓設定部ＰＧ２ｂが仮検出窓テーブル１８ｂ１に規定されたすべての仮検出窓ＰＳＷが選択されたか否かを判定し、すべて選択していない場合にはステップＳ２２０に戻って次の仮検出窓ＰＳＷを選択する。
【００２０】
以上のループ処理（ステップＳ２２０〜Ｓ２７０）を繰り返して実行することにより、すべての仮検出窓ＰＳＷについて肌色画素率Ｒが閾値０．５よりも大きいか否かを判定し、大きい場合には仮検出窓テーブル１８ｂ１に重点フラグを添付していくことができる。そして、ステップＳ２７０においてすべての仮検出窓ＰＳＷが選択されたと判定されると、ステップＳ２８０において本検出窓テーブル作成部ＰＧ２ｂ３が本検出窓テーブル１８ｂ２を作成する。
【００２１】
図６Ａ，図６Ｂは、本検出窓テーブル１８ｂ２が作成される様子を模式的に示している。本検出窓テーブル作成部ＰＧ２ｂ３は、重点フラグが添付された仮検出窓テーブル１８ｂ１を取得し、図６Ａに示すように各仮検出窓ＰＳＷの中心位置Ｐを作業画像データＷＤにマッピングする。図６Ａにおいては、重点フラグが添付された仮検出窓ＰＳＷの中心位置Ｐを◎で示し、重点フラグが添付されなかった仮検出窓ＰＳＷの中心位置Ｐを●で示している。次に、図６Ａに示すマップに基づいて、図６Ｂに示すマップを作成する。図６Ｂに示すマップにおいては、後述する顔検出本処理にて設定される本検出窓（本検出領域）ＳＷの中心位置Ｐを○で示している。図６Ｂに示すように、すべての仮検出窓ＰＳＷの中心位置Ｐと同じ位置に、本検出窓ＳＷの中心位置Ｐがマッピングされている。
【００２２】
さらに、重点フラグが添付された仮検出窓ＰＳＷの中心位置Ｐを◎が隣接している区間においては、該隣接する仮検出窓ＰＳＷの同士の中間位置に本検出窓ＳＷの中心位置Ｐ（△で図示）が新たにマッピングされている。本実施形態では、重点フラグが添付された仮検出窓ＰＳＷの隣接関係を縦方向および横方向に検出しており、縦方向および横方向に隣接する重点フラグが添付された仮検出窓ＰＳＷ同士の間に本検出窓ＳＷの中心位置Ｐが生成されている。なお、重点フラグが添付された仮検出窓ＰＳＷ同士の間の領域を重点領域（ハッチング部分）というものとする。さらに、重点フラグが添付された隣接する仮検出窓ＰＳＷの中心位置Ｐの間において新たにマッピングされた本検出窓ＳＷの中心位置Ｐ（△で図示）が縦方向および横方向に隣接する場合には、該隣接する中心位置Ｐ同士の中間にも本検出窓ＳＷの中心位置Ｐ（□で図示。）をマッピングする。以上のようにマッピングすると、各中心位置Ｐ（○と△と□のすべて）を中心位置Ｐとした本検出窓ＳＷを規定した本検出窓テーブル１８ｂ２を作成する。本検出窓テーブル１８ｂ２は図５に示した仮検出窓テーブル１８ｂ１とほぼ同様であり、各本検出窓ＳＷについて中心位置Ｐ（○と△と□のすべて）の座標と本検出番号Ｎｄとが対応付けて記憶されている。以上のようにして本検出窓テーブル１８ｂ２が作成できると、顔検出前処理を終了させ、次の顔検出本処理へ移行する。
【００２３】
２−２．顔検出本処理
図７は、検出窓設定部ＰＧ２ｂが実行する顔検出本処理（ステップＳ３００）の流れを示している。ステップＳ３１０においては、顔検出前処理において本検出窓テーブル１８ｂ２を取得する。ステップＳ３２０においては、本検出窓テーブル１８ｂ２において本検出窓ＳＷを本検出番号Ｎｄの小さい順から取得する。ステップＳ３３０においては、作業画像データＷＤに対し本検出窓ＳＷを設定し、該本検出窓ＳＷの内側の画像を窓画像データＸＤとして取得する。
【００２４】
そして、ステップＳ３４０において、該窓画像データＸＤを特徴量算出部ＰＧ２ｄに出力する。これにより、該窓画像データＸＤに対して後述する顔判定処理（ステップＳ４００）が実行されることとなる。ステップＳ３５０においては、すべての本検出窓ＳＷについて窓画像データＸＤの出力が完了したか否かを判定し、完了していない場合にはステップＳ３２０に戻る。これにより、本検出窓テーブル１８ｂ２に規定されたすべての本検出窓ＳＷを順次設定し、窓画像データＸＤの出力を順次実行させていくことができる。すなわち、図６Ｂに図示した各中心位置Ｐ（○と△と□のすべて）に本検出窓ＳＷを順次移動させていくことができる。
【００２５】
ここで、重点フラグが添付された仮検出窓ＰＳＷの間となる重点領域については、本検出窓ＳＷが０．９×ａの半分の間隔（０．４５×ａ：第１間隔）で移動することとなる。一方、重点領域外においては、本検出窓ＳＷが０．９×ａの間隔（第２間隔）で移動することとなる。すなわち、重点領域については他の領域よりも小刻みに本検出窓ＳＷを移動させることができ、該重点領域における顔検出漏れを防止することができる。また、重点領域でない領域についても一定の間隔（０．９×ａ）で本検出窓ＳＷが設定されるため、重点領域ほど処理負荷を費やさないようにしつつ、検出漏れも防止することができる。なお、後述する顔判定処理によって顔が存在すると判定された場合には、その周囲の領域を第１間隔よりもさらに小さい間隔で本検出窓ＳＷを設定するようにしてもよい。
【００２６】
２−３．顔判定処理
図８は、顔判定処理の流れを示している。ステップＳ４１０にて窓画像データＸＤを取得すると、次のステップＳ４２０において特徴量算出部ＰＧ２ｄが窓画像データＸＤから複数の特徴量を算出する。特徴量は、窓画像データＸＤに対して各種のフィルタを適用し、該フィルタ内の輝度平均やエッジ量やコントラスト等の状態を示す特徴量（平均値や最大値や最小値や標準偏差等）を算出することにより得られる。なお、窓画像データＸＤは、本検出窓ＳＷの大きさによって異なる大きさとなるが、ステップＳ４１０において予め一定の大きさに解像度変換される。
【００２７】
図９は、窓画像データＸＤから特徴量を算出する様子を示している。同図において、窓画像データＸＤに対して多数のフィルタＦＴが用意されており、各フィルタＦＴを順次窓画像データＸＤに適用し、各フィルタＦＴ内の画像について例えば１２個の特徴量ＣＡ１〜ＣＡ１２を順次算出する。特徴量ＣＡ１〜ＣＡ１２が算出できると、ステップＳ４３０において、顔判定部ＰＧ２ｅが特徴量ＣＡ１〜ＣＡ１２を予め用意されたニューラルネットワークＮＮに入力し、その出力として顔画像が存在する／しないの判定結果を算出する。なお、特徴量ＣＡは、窓画像データＸＤが示す画像的特徴を指標化したものであればよく、必ずしもフィルタＦＴを使用する必要はない。
【００２８】
図１０は、ニューラルネットワークＮＮの構造の一例を示している。ニューラルネットワークＮＮは、前段層のユニットＵの値の線形結合（添え字ｉは前段層のユニットＵの識別番号。）によって後段層のユニットＵの値が決定される基本構造を有している。さらに、線形結合によって得られた値をそのまま次の層のユニットＵの値としてもよいが、線形結合によって得られた値を例えばハイパボリックタンジェント関数のような非線形関数によって変換して次の層のユニットＵの値を決定することにより、非線形特性を与えてもよい。本実施例のニューラルネットワークＮＮは３層構造であり、ニューラルネットワークＮＮは、１層の中間層と、入力層と出力層とから構成されている。各特徴量ＣＡ１〜ＣＡ１２がニューラルネットワークＮＮの入力層に入力可能となっており、出力層では出力値Ｋ（０〜１に正規化された値）を出力することが可能となっている。そして、出力値Ｋが０．５以上であれば窓画像データＸＤに顔画像が存在すると判定し、出力値Ｋが０．５未満であれば窓画像データＸＤに顔画像が存在しないと判定する（ステップＳ４４０）。このようなニューラルネットワークＮＮをＨＤＤ１４に予め用意しておけば、顔画像が窓画像データＸＤに存在するか否かを特徴量ＣＡ１〜ＣＡ１２に基づいて判定することができる。
【００２９】
図１１は、ニューラルネットワークＮＮを学習する様子を模式的に示している。本実施形態では、誤差逆伝搬（error back propagation）法によって学習を行うことにより、各ユニットＵの数や、各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値が最適化される。誤差逆伝搬法による学習においては、まず各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値を適当な値に初期設定する。
【００３０】
そして、顔画像が存在しているか否かが既知の学習用画像データについてステップＳ４２０と同様の手順で特徴量ＣＡ１〜ＣＡ１２を算出し、該特徴量ＣＡ１〜ＣＡ１２を初期設定されたニューラルネットワークＮＮに入力し、その出力値Ｋを取得する。学習用画像データはできるだけ多く用意するべきであり、様々な状態の顔画像が検出できるように、種々の人種や性別や年齢等をカバーするように用意する必要がある。さらに、デジタルスチルカメラ等によって撮影された画像データＩＤに含まれる顔画像は種々の方向に向いている可能性がある。そのため、種々の方向に向いた顔画像を含む学習用画像データを用意する。また、上下に顔を向けるより左右に顔を向けて撮影される可能性が高いため、左右に顔を向けて撮影された学習用画像データの方が多数用意される。
【００３１】
各学習用画像データは、各学習用画像データが含む顔の大きさがほぼ一定となるように用意されている。本実施形態では、各学習画像データについてステップＳ２１０〜Ｓ２４０と同様に肌色領域画素の数をカウントして得られた肌色画素率Ｒの平均が約０．７（７０％）となるように各学習画像データが用意されている。この場合、肌色画素率Ｒが０．７に近いほど仮検出窓ＰＳＷまたは該仮検出窓ＰＳＷの周辺に顔が存在する可能性が高いと考えることができる。肌色画素率Ｒが０．５より大きい仮検出窓ＰＳＷが隣接する領域を重点領域とし、他の領域よりも本検出窓ＳＷの移動間隔を小さくしているため、顔が存在する可能性が高い領域を重点的に調査することができる。一方、肌色画素率Ｒが０．５より小さい仮検出窓ＰＳＷまたは該仮検出窓ＰＳＷの周辺に顔が存在する可能性は低いと考えることができる。このような領域は、重点領域とすることなく本検出窓ＳＷの移動間隔を大きくしているため、顔が存在する可能性が低い領域についての処理速度を向上させることができる。重点領域外の領域について完全に本検出窓ＳＷを設定しないわけではないため、検出漏れを防止することができる。
【００３２】
本実施形態において、顔画像が存在している学習用画像データについて出力値Ｋとして１が出力されるのが望ましく、顔画像が存在していない学習用画像データについて出力値Ｋとして０が出力されるのが望ましい。しかしながら、各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値を適当な値に初期設定したに過ぎないため、実際の出力値Ｋと理想的な値との間には誤差が生じることとなる。このような誤差を極小化させる各ユニットＵについての重みｗやバイアスｂを、勾配法等の数値最適化手法を用いて算出する。この誤差は、後段の層から前段の層に伝搬され、後段のユニットＵについて重みｗやバイアスｂから順に最適化されていく。以上のようにして学習したニューラルネットワークＮＮによれば、窓画像データＸＤに顔画像が存在している場合の特徴量ＣＡ１〜ＣＡ１２に対して１に近い出力値Ｋを得ることができ、窓画像データＸＤに顔画像が存在していない場合の特徴量ＣＡ１〜ＣＡ１２に対して０に近い出力値Ｋを得ることができる。従って、適当な閾値０．５によって閾値判定を行うことにより、窓画像データＸＤに顔画像が存在しているか否かを判定することができる（ステップＳ４４０）。
【００３３】
ステップＳ４４０において窓画像データＸＤについて顔画像が存在すると判定された場合、そのときの窓画像データＸＤが得られた本検出窓ＳＷの中心位置ＰをＲＡＭ１２に記憶させ（ステップＳ４５０）、リターンする。一方、ステップＳ４３０において窓画像データＸＤについて顔画像が存在しないと判定された場合、そのままリターンする。上述した顔検出処理によって窓画像データＸＤが特徴量算出部ＰＧ２ｄに順次出力されるため、その度にステップＳ４１０〜Ｓ４４０の処理を実行させる。これにより、図６Ｂに示すように順次移動される本検出窓ＳＷのそれぞれについて顔画像の存在の有無を判定していくことができる。
【００３４】
２−４．肌色調整および印刷処理
図１２は、画質調整部ＰＧ２ｅが実行する肌色調整処理の流れを示している。上述した顔検出処理のステップＳ３２０において、すべての大きさについて本検出窓ＳＷの設定が完了したか否かを判定されると、顔検出処理が終了するとともに、顔検出処理と同期して実行される顔判定処理も終了する。ステップＳ５１０においては、顔検出処理と顔判定処理の終了を検出し、調整対象の画像データＩＤを取得する。ここで取得される画像データ１４は、顔検出処理と顔判定処理の対象となった画像データＩＤである。ステップＳ５２０においては、顔画像が存在すると判定された本検出窓ＳＷの大きさおよび位置Ｐおよび回転角ＴをＲＡＭ１２から読み出す。ステップＳ５３０においては、顔画像が存在すると判定された本検出窓ＳＷに対応する領域を画像データＩＤにおいて特定する。本検出窓ＳＷの大きさおよび位置ＰがＲＡＭ１２から取得されているため、これを画像データＩＤの画像サイズに換算することにより、本検出窓ＳＷに対応する領域を特定することができる。
【００３５】
ステップＳ５４０においては、ステップＳ５３０にて特定した領域に含まれる肌色画素の色をサンプリングし、該色に基づいて画像データＩＤに対する色調調整のためのパラメータを設定する。ここでは、まずステップＳ５４０にて特定した領域に含まれる肌色画素を、各画素の色彩値（例えばＲＧＢ値やＨＳＶ値）に基づいて特定し、該色彩値を肌色として好ましいものに補正するための調整パラメータを算出する。調整パラメータは、例えばカラーバランスやホワイトバランスや明るさを調整するためのパラメータが該当する。予め肌色として好ましい色彩値がＨＤＤ１４に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくような調整パラメータが算出される。本検出窓ＳＷによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素に基づいて調整パラメータを得ることができる。なお、顔画像が存在すると判定された本検出窓ＳＷが複数検出された場合には、平均的な調整パラメータの算出を実行する。調整パラメータが算出できると、ステップＳ５４５において、該調整パラメータに基づく各画素の色彩値の調整が実行される。以上のようにして、肌色調整が完了すると、ステップＳ５５０にて調整後の画像データＩＤを印刷制御部ＰＧ３に出力する。すると、印刷制御部ＰＧ３は、画像データＩＤに対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、印刷機構１５に画質調整後の画像データＩＤに対応する画像の印刷を実行させる。
【００３６】
３．変形例
上述した実施形態では、肌色画素率Ｒが０．５より大きいか否かによって、本検出窓ＳＷを設定する間隔を０．４５×ａと０．９×ａのいずれかに切り換えるものを例示したが、他の手法によって本検出窓ＳＷを設定する間隔を調整するようにしてもよい。上述したように、本検出窓ＳＷを設定する間隔を、顔が存在する可能性（確率）に応じて、より詳細に調整することにより、漏れがなく、かつ、効率のよい処理を実現することができる。
【００３７】
図１３は、ニューラルネットワークＮＮの学習に使用する学習用画像データの肌色画素率Ｒのヒストグラムを示している。本変形例において、学習用画像データの肌色画素率Ｒの平均は、０．７（７０％）であり、ほぼ正規分布状に肌色画素率Ｒが分布するように学習用画像データが用意されているものとする。このような場合、仮検出窓ＰＳＷの肌色画素率Ｒが０．７であるとき、該仮検出窓ＰＳＷの付近に顔が存在する可能性が最も高いと考えることができる。また、仮検出窓ＰＳＷの肌色画素率Ｒが０．７から離れるにつれて徐々に仮検出窓ＰＳＷの付近に顔が存在する可能性が低下していく。
【００３８】
図１４は、本変形例における本検出窓ＳＷの設定間隔と、仮検出窓ＰＳＷの肌色画素率Ｒとの関係を示している。同図において、横軸が仮検出窓ＰＳＷの肌色画素率Ｒを示し、縦軸が本検出窓ＳＷを設定する間隔を示している。前実施形態では、肌色画素率Ｒが０．５より大きい重点領域については本検出窓ＳＷを設定する間隔を一律に０．４５×ａとした（破線で図示）が、本変形例では肌色画素率Ｒが０．４より大きい仮検出窓ＰＳＷ同士が隣接する区間を重点領域としつつ、該重点領域において本検出窓ＳＷを設定する間隔を肌色画素率Ｒの線形関数で規定している。この関数は、肌色画素率Ｒが０．４のとき本検出窓ＳＷを設定する間隔が０．９×ａとなり、肌色画素率Ｒが１．０のとき本検出窓ＳＷを設定する間隔が０となるような負の傾きを有している。ただし、本実施形態では、本検出窓ＳＷを設定する間隔は、仮検出窓ＰＳＷを設定した間隔（０．９×ａ）の整数分の１となる離散的な値をとるため、間隔が階段状に減少（変動）している。さらに、本検出窓ＳＷを設定する間隔の減少は、仮検出窓ＰＳＷを設定した間隔（０．９×ａ）の９分の１（０．１×ａ）を限度としており、線形関数と間隔＝０．１×ａの交点の肌色画素率Ｒよりも大きい肌色画素率Ｒについては一律に間隔が０．１×ａとされている。
【００３９】
図１５は、本変形例において設定される間隔を模式的に示している。同図においては、肌色画素率Ｒが０．７と０．８と０．８と０．９である４個の仮検出窓ＰＳＷの中心位置Ｐが隣接している様子を示している。このような場合、４個の中心位置Ｐによって囲まれる正方領域が重点領域とされる。この重点領域においては、４個の仮検出窓ＰＳＷの肌色画素率Ｒの平均値０．８に基づいて間隔を設定する。図１４のグラフにおいて、肌色画素率Ｒが０．８であるとき、本検出窓ＳＷを設定する間隔は０．２２５×ａとなり、仮検出窓ＰＳＷを設定した間隔（０．９×ａ）の４分の１が設定される。従って、図１５に図示するように０．２２５×ａの間隔の直交格子が作成され、該直交格子の交点（格子点：△または□で図示）上に本検出窓ＳＷの中心位置Ｐが設定される。
【００４０】
図１６は、本変形例における本検出窓ＳＷの設定間隔と、仮検出窓ＰＳＷの肌色画素率Ｒとの関係の別の例を示している。同図においては、肌色画素率Ｒが０．７のときに極小値が得られるような関数によって、本検出窓ＳＷを設定する間隔が規定されている。本変形例では、仮検出窓ＰＳＷの肌色画素率Ｒが０．７であるとき、該仮検出窓ＰＳＷの付近に顔が存在する可能性が最も高いと考えることができる。従って、肌色画素率Ｒが０．７のときに最も小さい間隔が設定されるようにすることにより、顔が存在する可能性が最も高い領域について本検出窓ＳＷを設定する間隔を最も小さくすることができる。
【００４１】
なお、以上においては、本発明の画像処理方法が、プリンタ１０上で実行されるものを例示したが、例えばデジタルスチルカメラやスキャナ等の他の画像機器にて実行されてもよい。むろん、コンピュータ上で実行されるプリンタドライバ等のソフトウェアによって実行されてもよい。むろん、プリンタ１０は家庭用のものに限られず、業務用の写真プリントシステムにおいても適用することができる。さらに、プリンタのように印刷用紙上に画像処理結果を出力するものに限らず、フォトビューワのようにディスプレイ上に画像処理結果を出力する装置においても本発明を実現することができる。また、デジタルスチルカメラにて本発明の画像処理方法を行えば、理想的な肌色の顔画像となった撮影結果を得ることができる。さらに、人物認証を行うＡＴＭ（Automated Teller 
Machine）等においても本発明を適用することができる。ニューラルネットワークＮＮを使用して顔判定を行うものに限られず、上述した特徴量の特徴量空間における種々の判別手法を用いることも可能である。例えば、サポートベクタマシンを利用してもよいし、判別境界面を異ならせた複数段の判定器をカスケード接続するようにしてもよい。
【符号の説明】
【００４２】
１０…プリンタ、１１…ＣＰＵ、１２…ＲＡＭ、１３…ＲＯＭ、１４…メモリースロット、１５…印刷機構、１６…外部接続インターフェイス、１７…操作パネル、１８…ＮＶＲＡＭ、１９…バス、ＰＧ１…ＯＳ、ＰＧ２…画像処理アプリケーション、ＰＧ２ａ…作業画像取得部、ＰＧ２ｂ…検出窓設定部、ＰＧ２ｂ１…肌色判定部、ＰＧ２ｂ２…閾値判定部、ＰＧ２ｂ３…本検出窓テーブル作成部、ＰＧ２ｃ…窓画像取得部、ＰＧ２ｄ…特徴量算出部、ＰＧ２ｅ…顔判定部、ＰＧ２ｆ…画質調整部。
【図１】
2010160639.tif 000003
【図２】
2010160639.tif 000004
【図３】
2010160639.tif 000005
【図４】
2010160639.tif 000006
【図５】
2010160639.tif 000007
【図６】
2010160639.tif 000008
【図７】
2010160639.tif 000009
【図８】
2010160639.tif 000010
【図９】
2010160639.tif 000011
【図１０】
2010160639.tif 000012
【図１１】
2010160639.tif 000013
【図１２】
2010160639.tif 000014
【図１３】
2010160639.tif 000015
【図１４】
2010160639.tif 000016
【図１５】
2010160639.tif 000017
【図１６】
2010160639.tif 000018