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