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