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