(57)【要約】      （修正有）【課題】画像上の顔画像を検出する処理において演算量を抑えつつ検出結果の信頼度を適切に評価する。【解決手段】顔画像が既に検出された領域を検出対象から除外しつつ対象画像上における顔画像を検出する顔検出部Ｍ３と、顔検出部Ｍ３によって検出された顔画像の位置から一定量だけオフセットした位置で前記対象画像上における顔画像の検出を行う顔検証部Ｍ５と、顔検証部Ｍ５と顔検出部Ｍ３の検出結果に基づいて顔検出部Ｍ３によって検出された顔画像の向きを修正する顔修正部Ｍ６とをプリンター１００に備える。【選択図】図２
2010186268.tif 000002
【特許請求の範囲】
【請求項１】
顔画像が既に検出された領域を検出対象から除外しつつ対象画像上における顔画像を検出する顔検出手段と、
前記顔検出手段によって検出された顔画像の位置から一定量だけオフセットした位置で前記対象画像上における顔画像の検出を行う顔検証手段と、
前記顔検証手段と前記顔検出手段の検出結果に基づいて前記顔検出手段によって検出された顔画像の向きを修正する顔修正手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記顔修正手段は、前記顔検証手段が顔画像を検出しない場合に、前記顔検出手段が検出した顔画像の向きに検出結果を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記顔検証手段は、前記一定量だけオフセットした位置において前記顔検出手段によって検出された顔画像とは逆向きの顔画像を検出した場合に、更に一定量だけオフセットした位置において前記対象画像上における顔画像の検出を行うことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記顔検証手段は、前記顔検出手段によって検出された顔画像よりも一定量だけ大きな顔画像の検出を行うことを特徴とする請求項１〜３の何れか１項に記載の画像処理装置。
【請求項５】
前記顔検証手段は、前記顔検出手段によって検出された顔画像よりも一定量だけ小さな顔画像の検出を行うことを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
前記顔検出手段が前記対象画像の全域から前記顔画像の検出を行った後、前記顔検出手段にて検出された各顔画像について前記顔検証手段による顔画像の検出と前記顔修正手段による修正とが行われることを特徴とする請求項１〜５の何れか１項に記載の画像処理装置。
【請求項７】
前記顔検出手段は、上記対象画像上における正面顔を検出し、
前記顔検証手段は、前記正面顔の中心線に沿って一定量オフセットした位置で前記対象画像上における顔画像の検出を行うことを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項８】
請求項１〜７の何れか１項に記載の前記顔検出手段と前記顔検証手段と前記顔修正手段とを備えたプリンターであって、
印刷対象として入力された画像データーにて表される画像を前記対象画像として、前記顔検出手段による顔画像の検出と前記顔検証手段による顔画像の検出と前記顔修正手段による顔画像の修正とを行い、修正された顔画像に基づいた所定領域に対して肌色調整を行った画像データーに基づいた画像を印刷するプリンター。
【請求項９】
顔画像が検出された領域を検出対象から除外しつつ対象画像上における顔画像を検出する顔検出工程と、
前記顔検出工程において検出された顔画像の位置から一定量だけオフセットした位置で前記対象画像上における顔画像の検出を行う顔確認工程と、
前記顔確認工程と前記顔検出工程における検出結果に基づいて前記顔検出工程において検出された顔画像の向きを修正する顔修正工程とを備えることを特徴とする画像処理方法。
【請求項１０】
顔画像が検出された領域を検出対象から除外しつつ対象画像上における顔画像を検出する顔検出機能と、
前記顔検出機能によって検出された顔画像の位置から一定量だけオフセットした位置で前記対象画像上における顔画像の検出を行う顔確認機能と、
前記顔確認機能と前記顔検出機能の検出結果に基づいて前記顔検出機能によって検出された顔画像の向きを修正する顔修正機能とをコンピューターに実現させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、プリンター、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラの普及に伴って、様々な場面で気軽に静止画が撮影されるようになってきて、撮影枚数も増加してきている。また、撮影者にも専門知識や専門的な器具を持たない一般ユーザーが多くなり、主要な撮影対象の色合いが悪い画像や不鮮明な画像等のいわゆる取り損ね画像も多くなる。特にユーザーが不満を感じることの多い画像として、主要な撮影対象（例えば人物写真であれば顔等）からピントがずれた画像や、主要な撮影対象色合いが悪く写ってしまった画像が挙げられる。このような取り損ねを防止したり修正したりするには、顔画像の領域を特定しなければならない。顔画像の領域を特定する手法として、特許文献１には、ニューラルネットワーク、遺伝的アルゴリズム、サポートベクターマシンなどの学習データーを利用したパターン認識処理を用いて、人間の顔領域を抽出することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−４８１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば処理能力の高いコンピューターであれば上述した特許文献１に記載の技術を適宜実行して精度よく顔画像を検出することも可能だが、デジタルカメラやプリンター等の処理能力の低い機器では特許文献１の技術を適用して高精度に顔画像を検出するのは荷が重い。また、近年、処理能力の高いコンピューターが普及しているとはいえ、アプリケーションの要求する処理能力も年々上昇しており、他のアプリケーションを実行しつつ並行して画像処理を行うようなユーザーにとっては、顔画像を高い精度で検出できるにもかかわらず要求される処理能力が低い方が望ましいと言える。
本発明は前記課題に鑑みてなされたもので、画像上の顔画像を検出する処理において演算量を抑えつつ検出結果の信頼度を適切に評価することが可能な画像処理装置、プリンター、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の請求項１にかかる画像処理装置では、顔検出手段と顔検証手段と顔修正手段を備える構成としてある。
前記顔検出手段は、顔画像が既に検出された領域を検出対象から除外しつつ対象画像上における顔画像を検出する。既に顔検出された領域に重複して顔画像が存在することは考えにくく、その領域については検出処理の対象外とすることにより顔検出処理の回数が少なくなり、処理速度が向上するからである。
前記顔検証手段は、前記顔検出手段によって検出された顔画像の位置から一定量だけオフセットした位置で前記対象画像上における顔画像の検出を行う。ここでオフセットされる一定量は、前記顔検出手段によって検出された顔画像のサイズに応じて決定される量であり、前記顔検出手段によって検出された顔画像と略同位置（僅かにずらしてあるものの、検出された顔画像のサイズに比べて十分に少ない量（例えば検出された顔画像の１／２０程度の量）だけずらした位置であり、同一の顔画像を検出対象にできると見込める位置）に検出位置をずらすものである。従って、顔検出手段の検出結果における顔画像の向きが違っていたり位置がずれたりしていれば、この顔検証手段において前記顔検出手段の検出結果とは向きの異なる顔画像が検出される可能性が高い。
前記顔修正手段は、前記顔検証手段と前記顔検出手段の検出結果に基づいて前記顔検出手段によって検出された顔画像の向きを修正する。すなわち、前記顔検出手段と顔検証手段とで、検出された顔の向きが一致すれば前記顔検出手段の検出結果の正しさが証明されるし、検出された顔の向きが相違すれば前記顔検出手段の検出結果が誤っている可能性がある。そこで、顔修正手段は、顔検証手段の検証結果に基づいて顔検出手段の検出結果を修正し、より信頼度の高い顔検出結果とすることができる。よって、顔検出手段の処理速度を向上しつつ、要所で前記顔検証手段による検証と前記顔修正手段の修正とを実行することにより検出精度の低下を防止できる。
【０００６】
また本発明の選択的な一態様として、前記顔修正手段は、前記顔検証手段が顔画像を検出しない場合に、前記顔検出手段が検出した顔画像の向きに検出結果を決定するようにしてもよい。前記顔画像検出部が顔画像を検出した位置から前記一定量だけオフセットした位置で顔画像を検出しないと言うことは、オフセットすることによって顔画像からずれてしまっていると考えられるからである。
【０００７】
また本発明の選択的な一態様として、前記顔検証手段は、前記一定量だけオフセットした位置において前記顔検出手段によって検出された顔画像とは逆向きの顔画像を検出した場合に、更に一定量だけオフセットした位置において前記対象画像上における顔画像の検出を行うようにしてもよい。前記一定量だけオフセットした位置において顔画像を検出しているものの逆向きの顔画像である場合は、顔画像がその領域に存在することを示唆するものの、その上下が逆である可能性を意味する。そこでこのオフセットした位置において検出された顔画像の向きについて検証するために、そこから前記一定量のオフセットと同じ方向に更に一定量だけオフセットした位置で顔画像の検出を試みる。このとき再度逆向きの顔画像が検出されれば、この領域にある顔画像が逆向きであると判断できるし、顔画像が検出されないのであれば、１回目のオフセットした位置において検出された逆向きの顔画像が誤りであると判断できる。
【０００８】
また本発明の選択的な一態様として、前記顔検証手段は、前記顔検出手段によって検出された顔画像よりも一定量だけ大きな顔画像の検出を行うようにしたり、前記顔検出手段によって検出された顔画像よりも一定量だけ小さな顔画像の検出を行うようにしたりしてもよい。顔画像を検出する際は、対象画像から検出しようとする顔画像のサイズに見合った領域を設定し、この領域内に顔画像が存在するか否かを判断する。この領域が実際の顔画像のサイズよりも小さいと、上下反転した顔として検出してしまうことがある。逆に、この領域が実際の顔画像のサイズよりも大きい場合も、例えば髭や被り物等のように顔の周辺に存在する画像特徴を顔の特徴と誤検出することによって、上下反転した顔として検出してしまうことがある。そこで一定量だけ大きかったり小さかったりする顔画像の検出を試みることにより、このような誤検出を解消することができる。
【０００９】
また本発明の選択的な一態様として、前記顔検出手段が前記対象画像の全域から前記顔画像の検出を行った後、前記顔検出手段にて検出された各顔画像について前記顔検証手段による顔画像の検出と前記顔修正手段による修正とが行われるようにしてもよい。すなわち、処理の手順として、前記顔検出手段が顔画像を検出する度に前記顔検証手段がする場合に比べて、前記顔検出手段が対象画像の全領域を対象とした顔画像の検出を行ったのちに前記顔検出手段が検出した各顔画像について前記顔検証手段が検証する方が、処理の高速が図れるし、さらに例えば、前記顔検出手段が検出した検出結果に信頼度を付与してその信頼度が高いものは顔検証手段の処理対象外としたり、検出結果の間で矛盾したものがあればその矛盾を解消した後で検証を行ったりした方が処理全体を効率化できる。矛盾した検出結果の例としては、略同一の領域でありながら傾きの異なる顔画像が重複して検出される場合や、サイズが大きく異なる顔画像が隣り合って検出された場合等である。
【００１０】
また本発明の選択的な一態様として、前記顔検出手段は、上記対象画像上における正面顔を検出し、前記顔検証手段は、前記正面顔の中心線に沿って一定量オフセットした位置で前記対象画像上における顔画像の検出を行うようにしてもよい。前記オフセットの方向として、検出された顔画像が正面顔であれば、正面顔の中心線に沿って上下何れかに限定することができる。正面顔は左右対称だからである。
【００１１】
上述した画像処理装置は、プリンター等の他の機器に組み込まれた状態で実施されたり他の方法とともに実施されたりする等の各種の態様を含む。また、本発明は上記画増処理装置を備える画像処理システム、上述した装置の構成に対応した工程を有する画像処理方法、上述した装置の構成に対応した機能をコンピューターに実現させる画像処理プログラム、該プログラムを記録したコンピューター読み取り可能な記録媒体、等としても実現可能である。これら画像処理システム、画像処理方法、画像処理プログラム、該プログラムを記録した媒体、の発明も、上述した作用、効果を奏する。むろん、請求項２〜７に記載した構成も、前記システムや前記方法や前記プログラムや前記記録媒体に適用可能である。
【図面の簡単な説明】
【００１２】
【図１】プリンターのハードウェア構成を示すブロック図である
【図２】プリンターのソフトウェア構成を示すブロック図である
【図３】画像処理のフローチャートである。
【図４】画像データーＩＤに対して設定される検出窓の模式図である。
【図５】サイズカウンターｎＳとサイズパラメーターＳの関係を示すグラフである。
【図６】顔検出処理のフローチャートである。
【図７】重複度を説明する図である。
【図８】窓画像データーＷＤから画像特徴量を算出する様子を示している。
【図９】ニューラルネットワークＮＮを学習する様子を示す模式図である。
【図１０】重複度設定部Ｍ４が顔画像に設定する検出窓ＳＷの移動距離を説明する図である。
【図１１】顔検証処理の概略を説明する模式的な図である。
【図１２】上下反転して検出される可能性のある顔画像の典型例である。
【図１３】顔検証処理のフローチャートである。
【図１４】肌色調整処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）画像処理装置の構成：
（２）画像処理：
（３）顔検出処理：
（４）顔検証処理：
（５）肌色調整および印刷処理：
（６）まとめ：
【００１４】
（１）画像処理装置の構成： 
図１は、本実施形態に係る画像処理装置を具体的に実現するプリンターのハードウェア構成を示すブロック図である。同図において、プリンター１００は、制御部１０と汎用インターフェース（ＧＩＦ）１３とメモリーカードインターフェース（ＭＩＦ）１４と印刷部１５と操作パネル１６とディスプレイ１７と、これら構成要素１０〜１７を相互通信可能に接続するバス１８とを備えている。バス１８を介して行われる通信は、図示しないチップセット等により制御されている。
【００１５】
制御部１０は、ＣＰＵ１０ａ、ＲＡＭ１０ｂ、ＲＯＭ１０ｃを備えており、ＣＰＵ１０ａの制御に従ってＲＯＭ１２に記録されたプログラムデーター１２ａを適宜ＲＡＭ１１に展開しつつ、展開されたプログラムデーターに従った演算をＣＰＵ１０ａが実行することにより、プリンター１００を制御することができる。ＲＯＭ１２に記録されるプログラムデーター１２ａとは、ユーザーインターフェース（ＵＩ）をディスプレイ１７に表示してユーザーが操作パネル１６に対して行う操作入力を受付けながらプリンター１００のハードウェア制御を行うファームウェアや、後述の画像処理を実行するためのプログラム等である。
【００１６】
ＧＩＦ１３は、外部のコンピューターと接続されたり、外部半導体メモリーに対してデーターを読み書きする装置等の外部装置が接続されたりするインターフェースであり、例えばＵＳＢ規格に準じたインターフェース等である。
ＭＩＦ１４は、メモリーカード１４ａを挿入可能なスロットに接続されており、ＭＩＦを介してＣＰＵ１０ａがメモリーカード１４ａにアクセスし、ファイルの読み出しと書き込みを実行可能である。
操作パネル１６は例えば複数のボタンとしてプリンター１００の筐体上に設けられており、ＣＰＵ１０ａは操作パネル１６に対する入力操作を示す信号を取得する。
ディスプレイ１７は入力されたデーター基づいて各種の情報や画像等を表示可能であり、ＣＰＵ１０ａはディスプレイ１７に表示するべき内容を示すデーターをディスプレイ１７に入力する。この結果、ディスプレイ１７には、各種の情報や画像等が表示される。
【００１７】
印刷部１５は、ＣＭＹＫ各色のインクが充填されたインクカートリッジ、該インクカートリッジのインクを記録媒体の記録面に向けて吐出する印刷ヘッド、該印刷ヘッドのインク吐出量をコントロールするＡＳＩＣ（Application Specific Integrated Circuits）、印刷ヘッドやインクカートリッジを搭載したキャリッジ機構の制御や記録媒体の送り速度の制御を行うコントロールＩＣ、等を備えており、ＣＰＵ１０ａの制御に従って所定の画像データーを記録媒体に印刷可能である。むろん、プリンター１００は、他の種類のインク（ＣやＭやＫの淡色、Ｙの濃色、レッド、バイオレット、無着色インク等を使用したインクやＣＭＹＫのいずれかを使用しないインク等）を使用するインクジェットプリンタであってもよいし、各種インク昇華式プリンターやトナーインクを使用するレーザープリンタ等であってもよい。なお、プリンター１００は、印刷機能以外にも、コピー機能やスキャナ機能など多種の機能を備えたいわゆる複合機であってもよい。
【００１８】
図２は、プリンター１００において実行されるプログラムのソフトウェア構成を示すブロック図である。同図において、プリンター１００ではファームウェアと画像処理プログラムＰＧが実行されている。画像処理プログラムＰＧは、ファームウェアを介してメモリーカード１４ａやＵＳＢメモリー１３ａから画像データーを取得したり、画像データーの印刷を印刷部１５に指示したりできるようになっている。
【００１９】
画像処理プログラムＰＧは、画像取得部Ｍ１と、画像取得部が取得した画像に対して位置を変更しつつ各種サイズの検出窓を設定する画像走査部Ｍ２と、設定された検出窓にて囲われた領域における顔画像の有無を検出する顔検出部Ｍ３と、顔検出部Ｍ３で検出された顔画像の信頼度として重複度を付与する重複度設定部Ｍ４と、顔検出部Ｍ３が検出した顔画像について上下逆さまに検出されていないか検証する顔検証部Ｍ５と、顔検証部Ｍ５の検証結果に基づいて顔検出部Ｍ３で検出された顔画像の向きや検出位置を修正する顔修正部Ｍ６と、各部Ｍ１〜Ｍ５によって検出や検証が行われた顔画像に肌色調整処理を行って画像の画質調整を行う画質調整部Ｍ７を備える。以下、各部Ｍ１〜Ｍ７が実行する処理について説明する。
【００２０】
（２）画像処理： 
図３は、本実施形態にかかる画像処理のフローチャートである。プリンター１００は、カードスロットに記録メディアが挿入されると、画像取得部Ｍ１が記録メディアに記録された画像データーを取得し、この画像データーに基づく画像をディスプレイ１７に表示させる。また、プリンター１００は、ＧＩＦ１３を介して接続した外部機器から画像が入力されると画像取得部Ｍ１がこれを取得し、取得した画像データーに基づく画像をディスプレイ１７に表示させたり、印刷部１５に印刷させたりする。画像取得部Ｍ１は、入力された画像をディスプレイ１７に一枚単位で表示したり複数の画像を一覧表示したりする。また画像取得部Ｍ１は、入力された画像を印刷用紙に一枚単位で印刷したり複数の画像をまとめて印刷したりする。本実施形態においては、このようにディスプレイ１７に画像を出力したり、印刷部１５に印刷させたりする場面において画像走査処理を行い、顔画像を検出する処理（顔検出処理）および検出された顔画像の信頼度を確認する処理（顔画像評価処理）を実行する。そして例えば、検出された顔画像の領域に対して後述の肌色補正処理を行ってなお、本実施形態においてはオブジェクトとして顔画像を例にとって説明を行うが、本発明の顔検出処理は顔以外の様々なオブジェクトを検出対象とすることも可能である。
【００２１】
ステップＳ１００において、画像取得部Ｍ１は、処理対象となる一枚分の画像（対象画像）を表した画像データーＩＤを記録メディアや外部機器等から取得する。画像データーＩＤは、複数の画素で表されたビットマップデーターであり、それぞれの画素がＲＧＢ三原色について階調表現（例えば、０〜２５５の２５６階調）されている。もちろん、画像データーＩＤは、記録メディア等に記録されている段階ではベクターイメージであってもよいし、ＪＰＥＧ等に圧縮されていてもよいし、ＲＧＢ以外の色空間で各画素の色が表現されていてもよい。ビットマップデーター以外のデーターを取得した場合、画像取得部Ｍ１は、取得したベクターイメージを変換したり、圧縮画像データーを展開したり、色空間の変換を実行したりして、ＲＧＢビットマップデーターとしての画像データーＩＤを取得する。
【００２２】
また、画像取得部Ｍ１は、画像データーＩＤを縮小化してもよい。オリジナルサイズの画像データーを対象として後述の顔検出処理等を実行すると、処理負担が大きいからである。そのために画像取得部Ｍ１は、画像データーＩＤについて画素数を減らすなどして画像サイズを縮小し、縮小後の画像データーＩＤを対象として後述の顔検出処理を行ってもよい。例えば、画像取得部Ｍ１は、画像データーＩＤをＱＶＧＡ（Quarter Video Graphics Array）に縮小する。さらに画像取得部Ｍ１は、顔検出処理において必要な画像情報が輝度情報のみであれば、画像データーＩＤをグレースケールのビットマップデーターに変換してもよい。
【００２３】
ステップＳ１０５〜Ｓ１７５において、画像走査部Ｍ２は、画像データーＩＤを検出窓ＳＷで走査する。検出窓ＳＷは、画像データーＩＤ上のある領域を範囲指定する仮想的な枠であり、検出窓ＳＷ内の画像が本実施形態においてオブジェクト検出の対象となる。なお、本実施形態においては、検出窓ＳＷを正方形状の枠として説明を行うが、検出窓ＳＷの形状には、円形，矩形，三角形等、任意の形状を採用可能であるし、さらには１つの閉じた範囲を指定するもののみならず、複数の閉じた範囲を組合せて指定するものであってもよい。
【００２４】
図４は、画像データーＩＤに対して設定される検出窓の模式図である。画像走査部Ｍ２は、１回目のステップＳ１０５〜Ｓ１７５では、画像内の先頭位置（例えば、画像の左上の角位置）に複数の画素を含む所定サイズの矩形状の検出窓ＳＷ（図４においては２点鎖線で記載）を設定する。２回目以降のステップＳ１０５〜Ｓ１７５では、画像走査部Ｍ２は、それまで検出窓ＳＷを設定していた位置から画像の左右方向および／または上下方向に所定距離（第１の所定画素数）移動させた位置に、新たな検出窓ＳＷを設定する。画像走査部Ｍ２は、検出窓ＳＷの大きさを維持した状態で画像データーの最終位置（例えば、画像の右下の角位置）まで検出窓を移動させながら検出窓ＳＷを設定し終えると、先頭位置に戻って検出窓ＳＷを設定する。検出窓ＳＷを先頭位置に戻した場合は、画像走査部Ｍ２は、それまでよりも矩形の大きさを縮小した検出窓ＳＷを設定する。その後、画像走査部Ｍ２は、上記同様に先頭位置から最終位置まで検出窓を移動させながら各位置に検出窓ＳＷを設定する。画像走査部Ｍ２は、検出窓ＳＷの大きさを予め決められた回数だけ段階的に縮小しつつ、検出窓ＳＷの移動と設定を繰り返す。このようにしてステップＳ１０５〜Ｓ１７５で検出窓ＳＷが設定される度に、ステップＳ１１０の顔検出処理が実行される。
【００２５】
以下、Ｓ１０５〜Ｓ１７５において、画像走査部Ｍ２が実行する画像走査処理の具体例を説明する。
ステップＳ１０５では、各カウンターｎＳ，ｎＤ，ｎｘ，ｎｙをリセットする。ｎＳはサイズカウンターであり、検出窓ＳＷのサイズパラメーターＳを順にシフトさせるための整数値である。ｎＤは傾きカウンターであり、検出窓ＳＷの傾きパラメータＤを順に変更するための整数値である。本実施形態においては、検出窓は上下左右の４つの傾きをとるものとし、ｎＤが１増加する毎に検出窓ＳＷが９０°ずつ回転する。ｎｘはｘ方向カウンターであり、検出窓ＳＷの中心位置Ｐをｘ軸方向にシフトさせるための整数値である。ｎｙはｙ方向カウンターであり、検出窓ＳＷの中心位置Ｐをｙ軸方向にシフトさせるための整数値である。これらのカウンターはリセットにより例えば０に初期化される。なお、本実施形態においては、画像データーＩＤの長手方向をｘ軸とし、短手方向をｙ軸とし、ｘ軸とｙ軸の原点は画像データーＩＤの左上端としてある。
【００２６】
図５は、サイズカウンターｎＳと検出窓ＳＷのサイズパラメーターＳとの関係を示している。同図に示すように、サイズカウンターｎＳの増加とともに検出窓ＳＷのサイズパラメーターＳ（縦と横の長さ）が徐々に減少する。本実施例では、サイズカウンターｎＳとサイズパラメーターＳが線形的な関係を有し、カウンターｎＳが１〜１５の間で１増加する毎に、検出窓ＳＷのサイズパラメーターＳが所定画素数ずつ小さくなるようにしている。なお、ここで示したカウンターｎＳと検出窓ＳＷのサイズパラメーターＳの関係は一例であり、これらが非線形の関係を有していたり、傾きや切片などを変更したりしてもよい。
【００２７】
検出窓ＳＷは、例えば下記式（１）に基づいて設定位置が決定される。
【数１】
2010186268.tif 000003
前記式（１）において、Ｐ（ｘ，ｙ）は検出窓ＳＷの中心位置、ｄx，ｄyは検出窓ＳＷの中心位置Ｐの各方向への単位移動距離（画素数）を表しており、移動間隔ｄx，ｄyと方向カウンターｎx，ｎｙをそれぞれ乗算することにより、検出窓ＳＷの中心位置Ｐのｘ，ｙ座標を算出する。前記式（１）にて算出される中心位置Ｐは、検出窓ＳＷのサイズに応じて対象画像内に隈無く設定されるため、検出窓ＳＷは対象画像に隈無く走査することになる。なお、移動間隔ｄy＜１となる場合は、ｄy＝１とする。なお、ｘ方向カウンターｎxが取り得る範囲は１〜［縮小画像データーのｘ方向画素数］／ｄxの整数値とし、ｙ方向カウンターｎｙは１〜［縮小画像データーのｙ方向画素数］／ｄyの整数値とする。すなわち、検出窓ＳＷの単位移動距離は、検出窓ＳＷが大きいほど長く、検出窓ＳＷが小さいほど短くなる。
【００２８】
ステップＳ１１０において、画像走査部Ｍ２は、縮小画像に中心位置Ｐを中心としてサイズパラメーターＳの検出窓ＳＷを設定する。
ステップＳ１１５において、顔検出部Ｍ３は、窓画像データーＷＤ（検出窓ＳＷ内の画像データー）を取得して解析し、該窓画像データーＷＤの画像特徴量に基づいて顔画像の検出を行う。この顔検出処理については、次節で説明する。
【００２９】
ステップＳ１２０においては、検出窓ＳＷがｘ軸方向の右端まで到達したか否かを判断する。検出窓ＳＷが右端に到達していない場合は、ステップＳ１２５に進んでｘ方向カウンターを１増加（インクリメント）して検出窓ＳＷをｘ軸方向に単位移動距離ｄｘだけ移動させてから、ステップＳ１１０に戻り、新たな位置Ｐに検出窓ＳＷを設定する。検出窓ＳＷが右端に到達している場合は、Ｓ１３０でｘ方向カウンターｎxを１にリセットして検出窓ＳＷが左端から設定されるようにしてからＳ１３５に進む。
【００３０】
Ｓ１３５では、検出窓ＳＷがｙ軸方向の下端まで到達したか否かを判断する。検出窓ＳＷが下端に到達していない場合は、Ｓ１４０でｙ方向カウンターｎｙをインクリメントして検出窓ＳＷをｙ軸方向に単位移動距離ｄｙだけ移動させてから、ステップＳ１１０に戻り、新たな位置Ｐに検出窓ＳＷを設定する。検出窓ＳＷが下端に到達している場合は、Ｓ１４５でｙ方向カウンターｎｙを１にして検出窓ＳＷが上端から設定されるようにしてからＳ１５０に進む。
【００３１】
Ｓ１５０においては、検出窓ＳＷが、現在設定されているサイズにおいて、上下左右の全方向に傾けて設定されたか否かを判断する。ｎＤが４未満であれば、ステップＳ１５５に進んで傾きカウンターをインクリメントして検出窓ＳＷの傾きを変化させてから、ステップＳ１１０に戻り、新たな位置Ｐに検出窓ＳＷを設定する。ｎＤが４であれば、全方向に傾けて設定完了したと判断して、ステップＳ１６０に進んで傾きカウンターｎＤを１にリセットして検出窓ＳＷが傾き０から設定されるようにしてからステップＳ１７０に進む。
【００３２】
Ｓ１７０では、検出窓ＳＷのサイズが所定サイズに到達しているが否かを判断する。検出窓ＳＷが所定サイズ（図４ではｎＳ＝９）に到達している場合は、画像処理を終了する。検出窓ＳＷが所定サイズに到達していない場合は、Ｓ１７５でサイズカウンターｎＳをインクリメントして検出窓ＳＷのサイズパラメーターＳを単位量縮小してから、ステップＳ１１０に戻り新たな位置Ｐに検出窓ＳＷを設定する。
【００３３】
（３）顔検出処理： 
図６は、上記ステップＳ１１５で実行される顔検出処理のフローチャートである。顔検出処理において、顔検出部Ｍ３は、検出窓内の窓画像について顔画像の有無を判定する。また顔検出処理において、重複度設定部Ｍ４は、顔検出部Ｍ３の判定結果に基づいて検出された顔画像が実際に顔である可能性の高さを示す指標として、検出された各顔画像に重複度を付与する処理を行う。重複度は、所定割合以上重複した領域に顔画像が重複して検出された場合に、重複検出された顔画像の数を示す値である。
【００３４】
図７は、重複度を説明する図である。同図に示すように、実際に顔画像を検出した場合には、検出窓と顔画像のサイズ比にも依存するが、検出窓の設定位置が少しずれた異なる検出窓においても同一の顔画像が含まれることがある。これに対し、顔以外のオブジェクトを誤って顔として検出した場合には、検出窓の設定位置が少しずれると顔として検出しなくなる可能性が高い。すなわち、領域の大部分を共有（重複）する複数の領域で顔検出するということは、これらの検出結果が実際に顔画像を検出している確率が高いことをお互いに保証しあうことを意味しており、検出された顔画像の信頼度が高いことを示唆する。そこで本実施形態においては、領域の大部分が重複するように設定された複数の検出窓で顔検出された検出窓の数を重複度とし、検出された顔画像の信頼度として利用している。
【００３５】
ステップＳ２００において、顔検出部Ｍ３は、現在のカウンター値に基づいて設定される検出窓が、同じ方向を向いて検出された顔画像のうち信頼度の高い顔画像（確実に顔画像を検出していると思われる領域）と重複して設定されないか判定する。同じ場所に複数の顔画像が重複して存在することはありえないので、検出済みの顔画像の領域を除外して検出処理を行い、無駄な演算処理を省くためである。顔検出部Ｍ３は、現在設定されている検出窓ＳＷの領域について、顔検出済みの検出窓ＳＷの領域のうち重複度が８（規定値）に達したもの（信頼性の高い顔画像）との重複度合を検出し、その重複度合が３０％（所定割合）以上であるか否かを判断する。実際には、顔検出した検出窓ＳＷと現在設定されている検出窓ＳＷとの重複度合を検出する。後述するように、顔画像を検出した検出窓ＳＷの位置とサイズはＲＡＭに格納されているので、現在の検出窓ＳＷの位置、サイズ、傾きパラメータに基づいてその重複割合を算出することができる。重複度が８の領域と３０％以上重複している場合には、顔検出処理を終了してステップＳ１２０に進み、次の位置に検出窓を設定する。重複度８の領域と３０％以上重複していない場合には、ステップＳ２０５に進む。
ステップＳ２０５において、顔検出部Ｍ３は、画像に中心位置Ｐを中心としてサイズパラメーターＳで傾きＤの検出窓ＳＷを設定し、検出窓ＳＷが設定された範囲の画像データーＩＤを窓画像データーＷＤとして取得する。
【００３６】
ステップＳ２１０において、顔検出部Ｍ３は、ステップＳ２０５において取得された窓画像データーＷＤの画像特徴量を抽出する。画像特徴量は、窓画像データーＷＤに対して各種のフィルタを適用し、当該フィルタ内の輝度やエッジやコントラスト等の状態を示す特徴量（平均値、最大値、最小値、標準偏差等）を算出することにより得られる。なお、窓画像データーＷＤは、検出窓Ｗのサイズによって大きさが異なるが、解析を行う際に予め一定の大きさに解像度変換される。
図８は、窓画像データーＷＤから画像特徴量を算出する様子を示している。同図において、窓画像データーＷＤに対して多数のフィルタＦＴが用意されており、各フィルタＦＴを順次窓画像データーＷＤに適用し、各フィルタＦＴ内の画像について例えば１２個の画像特徴量ＣＡ１〜ＣＡ１２を順次算出する。
【００３７】
ステップＳ２１５において、顔検出部Ｍ３は、算出された窓画像データーＷＤの画像特徴量を解析して顔画像の有無を検出する。顔検出部Ｍ３は、ステップＳ２１０で得られた画像特徴量ＣＡ１〜ＣＡ１２を予め用意されたニューラルネットワークＮＮに入力し、その出力として顔画像等が存在する／しないの判定結果を算出する。判定の結果、画像特徴量に顔画像を検出すると、顔検出部Ｍ３は、ステップＳ２２０に進んで顔画像が検出された検出窓ＳＷのサイズパラメーターＳ、位置Ｐ、回転角Ｔおよび重複度１をＲＡＭ１２に記憶させてから顔検出した旨を重複検出部Ｍ４に通知する。顔検出した旨を通知された重複検出部Ｍ４は、ステップＳ２２０以降の処理を実行して検出された顔画像に重複度を付与するための処理を行う。顔検出部Ｍ３は、画像特徴量に顔画像を検出しなかった場合には、顔検出処理を終了してステップＳ１２０に進む。
【００３８】
図９は、ニューラルネットワークＮＮを学習する様子を模式的に示している。ニューラルネットワークＮＮは、前段層のユニットＵの値の線形結合によって後段層のユニットＵの値が決定される基本構造を有している。さらに、入出力関係の非線形特性に対応するために、線形結合によって得られた値を、例えばハイパボリックタンジェント関数のような非線形関数によって変換することにより、次の層のユニットＵの値を決定するのが望ましい。本実施形態では、誤差逆伝搬（error back propagation）法によって学習を行うことにより、各ユニットＵの数や、各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値が最適化される。誤差逆伝搬法による学習においては、まず各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値を適当な値に初期設定する。
【００３９】
そして、顔画像が存在しているか否かが既知の学習用画像データーについてステップＳ２１０と同様の手順で特徴量ＣＡ１〜ＣＡ１２を算出し、当該特徴量ＣＡ１〜ＣＡ１２を初期設定されたニューラルネットワークＮＮに入力し、その出力値Ｋを取得する。学習用画像データーはできるだけ多く用意するべきであり、様々な状態の顔画像が検出できるように、種々の人種や性別や年齢等をカバーするように用意する必要がある。さらに、デジタルスチルカメラ等によって撮影された画像データーに含まれる顔画像は種々の方向に向いている可能性がある。そのため、種々の方向に向いた顔画像を含む学習用画像データーを用意する。また、上下に顔を向けるより左右に顔を向けて撮影される可能性が高いため、左右に顔を向けて撮影された学習用画像データーの方が多数用意される。
【００４０】
本実施例のニューラルネットワークＮＮは、顔画像が存在している学習用画像データーに対して出力値Ｋとして１を出力するのが望ましく、顔画像が存在していない学習用画像データーに対して出力値Ｋとして０を出力するのが望ましい。しかしながら、各ユニットＵ間における線形結合の際の重みｗの大きさやバイアスｂの値を適当な値に初期設定したに過ぎないため、実際の出力値Ｋと理想的な値との間には誤差が生じる。このような誤差を極小化させる各ユニットＵについての重みｗやバイアスｂを、勾配法等の数値最適化手法を用いて算出する。この誤差は、後段の層から前段の層に伝搬され、後段のユニットＵについて重みｗやバイアスｂの順に最適化されていく。以上のように最適化されたニューラルネットワークＮＮを用いると、窓画像データーＷＤに顔画像が存在している場合の特徴量ＣＡ１〜ＣＡ１２に対して１に近い出力値Ｋを得ることができ、窓画像データーＷＤに顔画像が存在していない場合の特徴量ＣＡ１〜ＣＡ１２に対して０に近い出力値Ｋを得ることができる。従って、適当な閾値０．５によって閾値判定を行うことにより、窓画像データーＷＤに顔画像が存在しているか否かを判定することができる。
【００４１】
ステップＳ２２５〜Ｓ２５０において、重複度設定部Ｍ４は、ステップＳ２１５において検出された顔画像の信頼度を検証するために、顔画像が検出された位置から検出窓ＳＷを微小距離だけ移動させて、ステップＳ２１５と同様に顔検出するか否か判定する。ここで言う微小距離とは、通常の検出窓ＳＷの走査距離よりも短い距離である。無論、上述した走査において既に最小の移動距離（例えば１画素単位）で移動させつつ設定された全ての検出窓ＳＷについてオブジェクト検出を行っていれば、このような重複度の取得は行う必要は無いのであるが、顔の存在しない部位についてこのように細かく検出窓ＳＷを設定しながら顔検出処理を実行すると演算量の多い顔検出処理の回数も増加し、非効率的である。従って、本実施形態においては、通常は所定画素数おきに検出窓ＳＷを設定しつつ、顔画像を検出したときだけ顔検出位置の近傍（所定画素数よりも近い位置）に検出窓ＳＷを集中的に設定し、検出された顔画像の信頼度を検証する方法を採用している。
【００４２】
図１０は、重複度設定部Ｍ４が顔画像に設定する検出窓ＳＷの移動距離を説明する図である。同図に示すように、重複度設定部Ｍ４は、ステップＳ２１５において顔検出部Ｍ３が顔画像を検出した位置Ｐ０と、位置Ｐ０から距離ｄｘだけ離れた位置Ｐ８との間に、距離ｄｘ／８間隔で重複度取得用に検出窓を７つ設定する。すなわち通常の検出窓ＳＷの設定間隔よりも短い間隔で検出窓ＳＷを設定し、顔画像を検出した検出窓の数を重複数としてカウントする。なお、図１０には、ｘの正方向に微小距離移動させた検出窓を設定しつつ重複度を算出する例について示してあるが、無論、ｘの負方向やｙ方向に微小距離移動させた検出窓を設定したり斜め方向に微小距離移動させた検出窓を設定したりして信頼度の検証を行っても構わない。以下、重複度設定部Ｍ４が実行する顔検出処理を具体的に説明する。
【００４３】
ステップＳ２２５において、重複度設定部Ｍ４は、検証用のｘ方向カウンターｎx’をリセットし、ｘ方向カウンターｎx’にｎx＋ｄｘ／８を代入する。すなわち検出窓ＳＷの設定間隔を通常より短くし、顔検出位置の近傍に検出窓ＳＷの中心位置Ｐを変更する。
【００４４】
ステップＳ２３０において、重複度設定部Ｍ４は、画像に検証用のｘ方向カウンターｎx’に基づく中心位置Ｐを中心としてサイズパラメーターＳで傾きＤの検出窓ＳＷを設定し、検出窓ＳＷが設定された範囲の画像データーＩＤを窓画像データーＷＤとして取得し、窓画像データーＷＤにおける顔画像の有無を解析する。この解析は、ステップＳ２１０，Ｓ２１５において顔検出部Ｍ３が行う処理と同様である。解析の結果、顔画像を検出した場合には、重複度設定部Ｍ４はステップＳ２３５に進み、ステップＳ２２０でＲＡＭ１２に記憶された検出結果の重複度に１加算してステップＳ２４０に進む。一方、解析の結果、顔画像を検出しなかった場合には、重複度設定部Ｍ４はそのままステップＳ２４０に進む。なお、隣接して設定された検出窓が連続的にオブジェクト検出することを重要視する場合は、このステップＳ２３０において顔検出しなかった時点で次の検出窓を設定することなく重複度の設定を終了してステップＳ２４０に進んでもよい。
【００４５】
ステップＳ２４０において、重複度設定部Ｍ４は、ｎx’がｎx＋ｄｘに達しているか否かを判断する。ｎx＋ｄｘに達している場合はステップＳ２５０に進み、ｎx＋ｄｘに到達していない場合はステップＳ２４０においてｎx’にｄｘ／８を加算してからステップＳ２３０に戻る。
【００４６】
ステップＳ２５０において、重複度設定部Ｍ４は、ステップＳ２１５で検出された顔画像の検出位置を、ステップＳ２３０で検出された顔画像の位置に応じて修正する。例えば、ステップＳ２１５にて顔検出された位置がＰ０（ｘ０、ｙ０）であり、複数回実行されたＳ２３０の処理のうち顔検出された位置がＰ１（ｘ１、ｙ０），Ｐ２（ｘ２、ｙ０），Ｐ３（ｘ３、ｙ０），Ｐ４（ｘ４、ｙ０）の４箇所であり、位置Ｐ５（ｘ５、ｙ０），Ｐ６（ｘ６、ｙ０），Ｐ７（ｘ７、ｙ０）では顔画像を検出しなかった場合は、下記（２）式のように顔画像の検出位置を修正する。
【数２】
2010186268.tif 000004
前記（２）式において、修正後の顔検出位置をＰ’（ｘ’、ｙ’）としてある。すなわち、オブジェクトを検出したと判定した複数の検出窓の位置を平均化することで、丁度中間に位置する適当なオブジェクト領域の座標を得る。このように検出位置を修正することにより、検出位置の精度を高めることができる。また、このようにして修正された顔検出位置に付与される重複度は、ステップＳ２３０の処理で顔画像を検出した検出窓ＳＷの数であり、上述した例においては、位置Ｐ１，Ｐ２，Ｐ３，Ｐ４の５箇所で顔検出されているので、Ｐ’（ｘ’、ｙ’）における重複度は、ステップＳ２１５で位置Ｐ０で検出した数を加えて５となる。
【００４７】
（４）顔検証処理：
図１１は、顔検証処理の概略を説明する模式的な図である。上述したように、本実施形態の画像走査手段Ｍ２は、重複度が８の顔画像を検出した領域に３０％以上重複する領域には検出窓を設定しないことにより、走査処理の処理速度を向上している。しかし、オブジェクト検出部Ｍ２は、図１１に示すように実際の顔画像の位置から少しずれて検出窓が設定された場合にも、顔画像有りと判定することがある。この領域には実際に顔画像があるので、重複検出部Ｍ３においても顔画像と重複した顔画像を検出して重複度が８に達する可能性が十分に考えられる。すると、以降の走査処理では、この顔画像に３０％以上重複する領域に検出窓が設定されなくなり、前記オブジェクト検出処理の中では検出位置のずれが修正されない。さらに、図１１のように検出窓がずれて設定されると、顔の上下が逆さまの顔画像が検出される可能性もある。
【００４８】
図１２は、上下反転して検出される可能性のある顔画像の典型例である。同図において、左にはターバンを巻いた人の顔、右にはあごひげを生やした人の顔である。図１２のターバンを巻いた人は、両目とターバンの一部が含まれるように設定された検出窓で顔画像として検出されている。この状態で顔検出を行うと、例えばターバンの一部を口と認識する可能性があり、上下反転した顔画像が検出される。また、図１２のあごひげを生やした人は、例えば目の辺りを口、口の辺りを眉、頭のラインを顎、あごひげを頭、とそれぞれ誤認識し、やはり上下反転した状態の顔として検出される可能性がある。本実施形態においては、顔検証処理を実行することにより、顔検出処理で検出された顔画像について、実際の顔画像の位置からずれた状態で検出された顔画像であるか否かを検証し、ずれた状態で検出された顔画像について検出位置のずれと検出方向の誤りとを効率よく修正する。
【００４９】
図１３は、顔検証処理のフローチャートである。同図のステップＳ６００において、顔検証部Ｍ５は、オブジェクト検出処理において重複度８と判定された顔のうち顔検証処理で未選択のものの有無を判定する。顔検証部Ｍ５は、重複度８と判定された未選択の顔があればその１つを選択し、選択された顔画像が検出されたときの検出窓ＳＷのサイズＳと位置Ｐ、そして顔の向きＤを取得してステップＳ６０５に進み、無ければ顔検証処理を終了する。
【００５０】
ステップＳ６０５において、顔検証部Ｍ５は、位置Ｐから所定量だけオフセットした位置に検出窓ＳＷを設定する。オフセットする方向は、選択された顔画像の顔の向きＤに基づいて向きＤと同じ方向もしくは向きＤと反対方向の少なくとも一方である。特に検出された顔画像が正面顔であれば、向きＤは正面顔の中心線に沿った方向となる。オフセット量は、顔検証部Ｍ５の選択している顔画像が検出された時の検出窓ＳＷのサイズに比例した量であり、例えば下記（３）式で求めることができる。
【数３】
2010186268.tif 000005
【００５１】
なお顔検証部Ｍ５は、ステップＳ６０５において、顔検出処理において顔検出したときのサイズ以外で複数サイズの検出窓ＳＷを設定してもよい。その理由として、顔検出処理において顔画像が誤った方向やずれた位置で検出される原因に、図１１に示したように、検出窓ＳＷが検出すべき顔を完全に包含し切れていないことや、検出窓ＳＷが顔の周辺に存在する変則的な特徴部分（例えば、髭やターバン等。）を包含している事が想定されるからである。従って、顔検証部Ｍ５が、所定量ずつ漸次増加させた複数サイズの検出窓ＳＷを設定することにより、何れかのサイズの検出窓ＳＷが変則的な顔の特徴部分を含まなくなり、正しい顔の位置と方向とを検出できる可能性がある。このようにステップＳ６０５において複数サイズの検出窓ＳＷを設定した場合は、そのそれぞれについて下記ステップＳ６１０で顔検出を試み、何れかのサイズで顔画像が検出されればその検出結果の顔の向きや位置を利用する。
【００５２】
ステップＳ６１０において、顔検証部Ｍ５は、上述したオブジェクト検出処理と同様の方法で、向きＤと逆向き（逆方向）の顔検出を行う。まず、顔検証部Ｍ５は、ステップＳ６０５で設定された検出窓ＳＷから取得した順方向の窓画像データーＷＤの画像特徴量を抽出し、この画像特徴量をニューラルネットワークに入力してその判定結果を示す情報を出力させる。次に、顔検証部Ｍ５は、ステップＳ６０５で設定された検出窓ＳＷから取得した逆方向の窓画像データーＷＤの画像特徴量を抽出し、この画像特徴量をニューラルネットワークに入力してその判定結果を示す情報を出力させる。顔修正部Ｍ６は、順方向の窓画像データーＷＤ並びに逆方向の窓画像データーＷＤの画像特徴量についてのニューラルネットワークの判定結果を示す情報を取得する。顔修正部Ｍ６は、取得した情報が、顔画像が無いことを示す情報であればステップＳ６１５に進み、取得した情報が、顔画像が有ることを示す情報であればステップＳ６２０に進む。
【００５３】
ステップＳ６１５において、顔修正部Ｍ６は、ステップＳ６００で選択した顔画像の検出位置と顔の向きを、オブジェクト検出処理の検出結果のままで確定する。すなわち顔修正部Ｍ６はステップＳ６００で選択された検出結果について顔画像の検出位置にズレはなく顔の向きも正しく検出されていたと判断する。ステップＳ６１５が終了すると、顔修正部Ｍ６はその旨を顔検証部Ｍ５に通知し、この通知を受けた顔検証部Ｍ５はステップＳ６００の処理を実行する。
【００５４】
ステップＳ６２０において、顔修正部Ｍ６は、ステップＳ６１５で検出された顔の向きが向きＤに対して順方向であるか逆方向であるかを判断する。顔修正部Ｍ６は、検出された顔の向きが向きＤと一致している場合はステップＳ６１５に進む。すなわち、順方向の顔が検出されたのであれば、オブジェクト検出処理で検出された顔画像は、正しい方向と位置で検出されていたと判断する。一方、顔修正部Ｍ６は、検出された顔の向きが向きＤと一致していない場合は顔検証部Ｍ５にその旨を通知する。顔修正部Ｍ６から通知を受けた顔検証部Ｍ５は、ステップＳ６２５を実行する。
【００５５】
ステップＳ６２５において、顔検証部Ｍ５は、ステップＳ６０５でオフセットした位置から更に所定量だけオフセットした位置に検出窓ＳＷを設定する。オフセットする方向は、ステップＳ６０５と同じ方向である。オフセット量も、ステップＳ６０５でオフセットした量と同じである。
【００５６】
ステップＳ６３０において、顔検証部Ｍ５は、ステップＳ６１０と同様に順方向の顔検出と逆方向の顔検出を行って、ニューラルネットワークに判定結果を示す情報を出力させる。顔修正部Ｍ６は、ステップＳ６１０と同様に、順方向の顔画像と逆方向の顔画像とに対応したニューラルネットワークの判定結果を示す情報をそれぞれ取得する。顔修正部Ｍ６は、これらの情報が共に顔画像が無いことを示す情報であればステップＳ６１５に進み、これら情報の何れか一方が顔画像が有ることを示す情報であればステップＳ６３５に進む。
【００５７】
ステップＳ６３５において、顔修正部Ｍ６は、ステップＳ６２０と同様に、ステップＳ６３０で検出された顔の向きが向きＤについて順方向であるか逆方向であるかを判断する。顔修正部Ｍ６は、検出された顔の向きが向きＤと一致していない場合はステップＳ６１５に進む。すなわち、順方向の顔が検出されたのであれば、オブジェクト検出処理で検出された顔画像は、正しい方向と位置で検出されていたと判断する。
【００５８】
ステップＳ６４０において、顔修正部Ｍ６は、オブジェクト検出処理の検出結果を修正する。すなわち、顔修正部Ｍ６はステップＳ６００で選択された検出結果について顔画像の顔の向きが逆向きに検出されており検出位置にズレがあったと判断する。そして、顔修正部Ｍ６は、ステップＳ６００で選択された検出結果の内容について、顔の向きを逆方向に修正し、顔の検出位置をステップＳ６０５で設定された検出窓ＳＷの位置に修正する。検出結果の修正が終了すると、顔修正部Ｍ６は、顔検証部Ｍ５にその旨通知する。顔検証部Ｍ５は、顔修正部Ｍ６から修正が完了した旨を通知されると、ステップＳ６００の処理を実行する。
【００５９】
（５）肌色調整および印刷処理： 
図１４は、画質調整部Ｍ７が実行する肌色調整処理のフローチャートである。なお本実施形態においては、人物の顔に対する肌色調整処理を例に取り説明を行うが、無論、顔以外の腕や足や体であってもよいし、画質調整処理も肌色調整処理のみならず検出対象のオブジェクト種類にあわせて適宜選択可能である。上述した画像処理と顔検証処理が終了すると、Ｓ７００において、調整対象の画像データーＩＤを取得する。ここで取得される画像データーＩＤは、顔検出処理の対象となった画像データーＩＤである。Ｓ７０５においては、顔画像が存在すると判定された検出窓ＷのサイズパラメーターＳおよび位置Ｐおよび回転角ＴをＲＡＭ１２から読み出す。Ｓ７１５においては、顔画像が存在すると判定された検出窓Ｗに対応する領域を画像データーＩＤにおいて特定する。検出窓ＷのサイズパラメーターＳおよび位置ＰがＲＡＭ１２から取得されているため、これを画像データーＩＤの画像サイズに換算することにより、検出窓Ｗに対応する領域を特定することができる。
【００６０】
Ｓ７２０においては、Ｓ７１５にて特定した領域に含まれる肌色画素の色を調整する処理を実行する。ここでは、まずＳ７２０にて特定した領域に含まれる肌色画素を、各画素の色彩値（例えばＲＧＢ値やＨＳＶ値）に基づいて特定し、当該色彩値を肌色として好ましいものに補正する。具体的には、予め肌色として好ましい色彩値がＨＤＤ１２に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくように補正を行う。検出窓Ｗによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素についてのみ補正を行うことができる。なお、顔画像が存在すると判定された検出窓Ｗが複数検出された場合には、そのそれぞれについて肌色調整を実行する。以上のようにして、肌色調整が完了すると、Ｓ７２５にて調整後の画像データーＩＤを印刷部１５に出力する。すると、印刷部１５は、画像データーＩＤに対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、画質調整後の画像データーＩＤに対応する画像の印刷を実行する。
【００６１】
（６）まとめ： 
以上説明した本実施形態のプリンター１００においては、顔検出部Ｍ３が顔画像が既に検出された領域を検出対象から除外しつつ対象画像上における顔画像を検出し、顔検出部Ｍ３によって検出された顔画像の位置から一定量だけオフセットした位置で前記対象画像上における顔画像の検出を顔検証部Ｍ５が行い、顔検証部Ｍ５と顔検出部Ｍ３の検出結果に基づいて顔検出部Ｍ３によって検出された顔画像の向きを顔修正部Ｍ６が修正する。よって、画像上の顔画像を検出する処理において演算量を抑えつつ検出結果の信頼度を適切に評価することができる。従って、このようにして検出された顔画像の位置に肌色調整処理を施せば、適切な位置に肌色調整処理が施されることになる。
【００６２】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。
【符号の説明】
【００６３】
１０…制御部、１０ａ…ＣＰＵ、１０ｂ…ＲＡＭ、１０ｃ…ＲＯＭ、１３…汎用インターフェース（ＧＩＦ）、１３ａ…ＵＳＢメモリー、１４…メモリーカードインターフェース（ＭＩＦ）、１４ａ…メモリーカード、１５…印刷部、１６…操作パネル、１７…ディスプレイ、１８…バス、１００…プリンター、Ｍ１…画像取得部、Ｍ２…画像走査部、Ｍ３…顔検出部、Ｍ４…重複度設定部、Ｍ５…顔検証部、Ｍ６…顔修正部、Ｍ７…画質調整部、ＰＧ…画像処理プログラム
【図１】
2010186268.tif 000006
【図２】
2010186268.tif 000007
【図３】
2010186268.tif 000008
【図４】
2010186268.tif 000009
【図５】
2010186268.tif 000010
【図６】
2010186268.tif 000011
【図７】
2010186268.tif 000012
【図８】
2010186268.tif 000013
【図９】
2010186268.tif 000014
【図１０】
2010186268.tif 000015
【図１１】
2010186268.tif 000016
【図１２】
2010186268.tif 000017
【図１３】
2010186268.tif 000018
【図１４】
2010186268.tif 000019