JP5098488B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP5098488B2
JP5098488B2 JP2007195052A JP2007195052A JP5098488B2 JP 5098488 B2 JP5098488 B2 JP 5098488B2 JP 2007195052 A JP2007195052 A JP 2007195052A JP 2007195052 A JP2007195052 A JP 2007195052A JP 5098488 B2 JP5098488 B2 JP 5098488B2
Authority
JP
Japan
Prior art keywords
image data
image
gradation value
area
partial image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007195052A
Other languages
English (en)
Other versions
JP2009032021A5 (ja
JP2009032021A (ja
Inventor
宏幸 辻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2007195052A priority Critical patent/JP5098488B2/ja
Publication of JP2009032021A publication Critical patent/JP2009032021A/ja
Publication of JP2009032021A5 publication Critical patent/JP2009032021A5/ja
Application granted granted Critical
Publication of JP5098488B2 publication Critical patent/JP5098488B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Analysis (AREA)

Description

この発明は、画像中において特定の対象物が写っている領域を特定する技術に関する。
従来より、画像中に特定の物体が存在するか否かを判定する技術が存在する。そのような技術においては、検討対象の画像が暗い場合(たとえば、明度を0〜255の階調値で表したとき70以下)には、対象物の検出率が低下するという問題がある。このため、たとえば、ある従来技術においては、画像の撮像環境の照度に応じて、物体検出部における検出試行回数と検出閾値が設定される(特許文献1)。
特開2006−209227号公報
しかし、上記の従来技術においては、各照度について検出試行回数と検出閾値の組み合わせを得るために、膨大な処理を行う必要がある。
画像中において特定の対象物が写っている領域を特定する技術分野においては、上記の問題を解決するため、簡易な処理で、検出対象である画像の明るさによらず、一定以上の信頼性をもって画像中から特定の物体を検出できる技術が求められている。
本発明は、検出対象である画像の明るさによらず、一定以上の信頼性をもって画像中から特定の物体を検出することを目的とする。
上記目的を達成するために、本発明の一態様においては、画像中において所定の対象物が存在する部分を特定する際に、以下の処理を行う。
(a)原画像データに基づいて、画素の色に関する基準階調値によって前記原画像データの画像の少なくとも一部を表す第1の部分画像データを生成する。
(b)所定の第1の条件が満たされた場合に、前記第1の部分画像データの少なくとも一部の数値範囲に含まれる基準階調値をより明るい色に対応する基準階調値に変換する第1の変換を行うことにより、第2の部分画像データを生成する。
(c)前記第1の条件が満たされなかった場合に、前記第1の部分画像データの前記基準階調値に基づいて、前記第1の部分画像データの画像が所定の対象物を含むか否かを判定する。
(d)前記第1の条件が満たされた場合に、前記第2の部分画像データの前記基準階調値に基づいて、前記第2の部分画像データの画像が前記所定の対象物を含むか否かを判定する。
(e)前記原画像データの画像中において、前記所定の対象物を含むと判定された前記第1または第2の部分画像データの画像に対応する部分に基づいて、前記原画像データの画像中において前記所定の対象物が存在する部分を決定する。
なお、「第1の部分画像データの画像の第1の部分と、第2の部分画像データの画像の第2の部分と、に基づいて、」決定する、とは、第2の部分画像データが存在しない場合については、「第1の部分画像データの画像の第1の部分に基づいて、」決定することを意味する。
上記のような態様とすれば、検出対象である画像の明るさによらず、一定以上の信頼性をもって画像中から特定の対象物を検出することができる。
なお、基準階調値は、画素の明度を表す階調値とすることができる。このような態様とすれば、一つの色成分を表す階調値に基づいて処理を行う場合に比べて、多くの場合、高精度に対象物の特定を行うことができる。
また、基準階調値は、画素の緑の色成分の強度を表す階調値とすることもできる。
このような態様としても、たとえば人の顔などの対象物を、他の色成分の階調値を使用する態様に比べて高精度に特定することができる。
なお、基準階調値を変換する少なくとも一部の数値範囲は、基準階調値が取りうる範囲のうち、最も暗い色に対応する基準階調値から、取りうる範囲の幅の25%までの範囲を含むことが好ましい。
このような態様とすれば、画像中において、最も暗い色の基準階調値から25%までの範囲の基準階調値を有する部分について、基準階調値をより明るい色の基準階調値に変換して、第2の部分を特定することができる。このため、画像中において対象物が暗い色で描かれている場合にも、その対象物が存在する部分を第2の部分として特定できる可能性が高い。
基準階調値を変換する際には、基準階調値を定数倍することによって、変換を行うことが好ましい。
なお、基準階調値が、他の条件が同じである場合に、基準階調値の値が小さいほど暗い色を表すものであるときには、定数は1より大きい値とすることが好ましい。そのような態様とすれば、階調値を定数倍することによって、画像中の各部分の階調値の差を拡大して、第2の部分の特定においてより対象物が特定されやすいようにすることができる。一方、基準階調値が、他の条件が同じである場合に、基準階調値の値が小さいほど明るい色を表すものであるときには、定数は1より小さい値とすることもできる。
基準階調値を変換する際には、基準階調値をガンマ変換することによって、変換を行うこともできる。このような態様においては、基準階調値を定数倍する態様に比べて、基準階調値の最小値の近傍や最大値の近傍の値を有する複数の階調値において、階調値の差がなくなってしまう可能性を少なくすることができる。このため、第2の部分を特定する際に、第2の部分画像データの画像全体について高精度に第2の部分を特定することができる。
なお、基準階調値が、「他の条件が同じである場合に、基準階調値の値が小さいほど暗い色を表す基準階調値」であるときには、ガンマ曲線は上に凸であることが好ましい。一方、基準階調値が、「他の条件が同じである場合に、基準階調値の値が小さいほど明るい色を表す基準階調値」であるときには、ガンマ曲線は下に凸であることが好ましい。
基準階調値を変換する際には、基準階調値を所定量だけ変更することによって、変換を行うこともできる。このような態様とすれば、画像中において、最小の基準階調値から所定の値までの範囲の基準階調値を有する部分の基準階調値を上げて、画像中において対象物が存在するか否かを判定することができる。このため、たとえば、画像中において対象物が、対象物の特定に失敗しやすい最大値または最小値の近傍の範囲の階調値で描かれている場合にも、その対象物を対象物の特定に失敗しやすい範囲以外の範囲の階調値で表して、判定を行うことができる。
なお、改変における上記の所定量は、基準階調値が取りうる範囲の幅の10%〜40%であることが好ましい。このような態様とすれば、所定の対象物が存在する部分を特定する際に、見落としが生じやすい端の近傍の階調値を、全体に、より中央値に近く見落としが生じにくい範囲の階調値に変換することができる。
基準階調値が、「他の条件が同じである場合に、前記基準階調値の値が小さいほど暗い色を表す階調値」であるときには、以下のような態様とすることが好ましい。すなわち、第1の条件は、第1の部分画像データの画素の基準階調値の平均値が所定のしきい値よりも小さいことを含むことが好ましい。このような態様とすれば、第1の部分画像データの画像が、全体に暗い色で表される場合に、第2の部分画像データの生成と第2の部分の特定とが行われる。そして、第1の部分画像データの画像が、全体に明るい色で表される場合には、第2の部分画像データの生成と第2の部分の特定とが行われない。このため、対象物を特定する精度を低下させる程度を押さえつつ、全体の処理の負荷を少なくすることができる。
また、第1の条件は、第1の部分画像データの画像の領域を、第1の領域と、第1の領域を囲む第2の領域と、に分けたときに、第1の領域に含まれる画素の基準階調値の平均値が所定のしきい値よりも小さいことを含むことも好ましい。
このような態様とすれば、第1の部分画像データの画像のうち、対象物が存在する可能性が高い中央近傍の部分の画像が明るい色で表される場合には、第2の部分画像データの生成と第2の部分の特定とが行われない。このため、対象物を特定する精度を低下させることなく、全体の処理の負荷を低減することができる。
対象物特定部は、あらかじめサンプル画像データを使用して学習させた検出モジュールとすることができる。
また、画像処理装置は、対象物特定部を複数備える態様とすることもできる。
なお、所定の対象物は人間の顔とすることができる。
第1の部分画像データの画像中において、所定の対象物が存在するか否かの判定を行う際には、あらかじめサンプル画像データを使用して学習させた検出モジュールを使用して判定を行うことが好ましい。
さらに、検出モジュールについては、以下の処理を行うことが好ましい。
(f)基準階調値によって画像を表す第1のサンプル画像データを準備する。
(g)所定の第2の条件が満たされた場合に、第1のサンプル画像データの画素の色に関する階調値であって少なくとも一部の数値範囲に含まれる基準階調値を、より明るい色に対応する基準階調値に変換する第2の変換を行うことによって、第2のサンプル画像データを生成する。
(h)工程(c)に先だって、第1のサンプル画像データを使用して検出モジュールに学習をさせる。
(i)第2のサンプル画像データが生成された場合に、工程(d)に先だって、第2のサンプル画像データを使用して検出モジュールに学習をさせる。
このような態様とすれば、検出モジュールが第1および第2の部分を特定する際に行われる処理と同様の階調値の改変を行って、検出モジュールを学習させることができる。このため、何らの加工を行わないサンプル画像データで学習を行わせる場合に比べて、実際の対象物の特定において精度が高くなるように効率的に検出モジュールに学習を行わせることができる。
なお、第1のサンプル画像データを複数準備する場合には、一部の第1のサンプル画像データについて、第2のサンプル画像データを生成し、他の一部の第1のサンプル画像データについて、第2のサンプル画像データを生成しないようにすることもできる。
また、基準階調値が、「他の条件が同じである場合に、前記基準階調値の値が小さいほど暗い色を表す階調値」であるときには、以下のような態様とすることが好ましい。すなわち、第2の条件は、第1のサンプル画像データの画素の基準階調値の平均値が所定のしきい値よりも小さいことを含むことが好ましい。このような態様とすれば、第1のサンプル画像データの画像が、全体に明るい色の階調値で表される場合には、第2のサンプル画像データの生成とその学習とが行われない。このため、全体として学習の処理の負荷を少なくすることができる。
第2の条件は、第1のサンプル画像データの画像の領域を、第3の領域と、第3の領域を囲む第4の領域と、に分けたときに、第3の領域に含まれる画素の集合の基準階調値の平均値が所定のしきい値よりも小さいことを含むことも好ましい。
このような態様とすれば、第1のサンプル画像データの画像のうち、対象物が存在する可能性が高い中央近傍の部分の画像が明るい色の階調値で表される場合には、第2のサンプル画像データの生成とその学習とが行われない。このため、対象物を特定するための学習の精度を低下させることなく、全体の学習の処理の負荷を低減することができる。
第2のサンプル画像データの生成における階調値変換の対象である少なくとも一部の数値範囲は、第2の部分画像データの生成における階調値変換の対象である少なくとも一部の数値範囲と等しいことが好ましい。このような態様とすれば、第2の部分画像データに対する判定の精度が高くなるように、検出モジュールに学習を行わせることができる。なお、第2のサンプル画像データを生成する際における階調値変換の対象である少なくとも一部の数値範囲は、第2の部分画像データを生成する際における階調値変換の対象である少なくとも一部の数値範囲と異なる範囲とすることもできる。
なお、第2のサンプル画像データを生成する際における階調値変換の対象である少なくとも一部の数値範囲は、基準階調値が取りうる範囲のうち、最も暗い色に対応する基準階調値から、取りうる範囲の幅の25%までの範囲を含むことが好ましい。このような態様とすれば、サンプル画像データの画像中において、最小の基準階調値から25%までの範囲の基準階調値を有する部分の基準階調値を上げて、学習を行うことができる。このため、サンプル画像データの画像中において対象物が暗い色で描かれている場合にも、その対象物に基づいて有効な学習を行うことができる。
第2のサンプル画像データを生成する際には、基準階調値を定数倍することによって、変換を行うことが好ましい。
また、第2のサンプル画像データを生成する際には、基準階調値をガンマ変換することによって、変換を行うことも好ましい。
さらに、第2のサンプル画像データを生成する際には、基準階調値を所定量だけ変更することによって、変換を行うことも好ましい。このような態様とすれば、サンプル画像データの画像中において、最小の基準階調値から所定の値までの範囲の基準階調値を有する部分の基準階調値を上げて、学習を行うことができる。このため、たとえば、サンプル画像データの画像中において対象物が、対象物の特定に失敗しやすい最大値または最小値の近傍の範囲の階調値で描かれている場合にも、変換によって、その対象物を対象物の特定に失敗しやすい範囲以外の範囲の階調値で表して、その対象物について有効な学習を行うことができる。
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法および画像処理装置、印刷制御方法および印刷制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
A.第1実施例:
A1.装置の構成:
図1は、本発明の実施例である画像処理装置の概略構成を示す説明図である。この画像処理装置は、画像データに対して所定の画像処理を行うパーソナルコンピュータ100と、パーソナルコンピュータ100に情報を入力する装置としてのキーボード120、マウス130およびCD−R/RWドライブ140と、情報を出力する装置としてのディスプレイ110、プリンタ22およびプロジェクタ32と、を備えている。コンピュータ100では、所定のオペレーティングシステムの下で、アプリケーションプログラム95が動作している。このアプリケーションプログラム95が実行されることで、コンピュータ100のCPU102は様々な機能を実現する。
画像のレタッチなどを行うアプリケーションプログラム95が実行され、キーボード120やマウス130からユーザの指示が入力されると、CPU102は、CD−R/RWドライブ140内のCD−RWからメモリ103内に画像データを読み込む。CPU102は、画像データに対して所定の画像処理を行って、ビデオドライバ91を介して画像をディスプレイ110に表示する。また、CPU102は、画像処理を行った画像データを、プリンタドライバ96を介してプリンタ22に印刷させることもできる。さらに、CPU102は、画像データを、プロジェクタ32のドライバ98を介してプロジェクタ32に投射させることもできる。
本実施例では、プリンタドライバ96が、画像データの画像中において人間の顔が存在すると思われる領域を特定する。そして、そのような領域が存在する場合には、印刷に先立って、画像データに対して、人間の顔がより美しく見えるような補正を行う。人間の顔が存在すると思われる領域が存在しない場合には、画像データに対して他の補正が行われるか、画像データに対して補正が行われない。その後、その画像データに基づいて印刷が実行される。
A2.顔領域の検出の原理:
本実施例では、画像中で人間の顔が存在する領域を特定する処理は、プリンタドライバ96のあるモジュールが実行する。このモジュールを「顔検出部962」と呼ぶ。顔検出部962については、プリンタドライバ96に実装されるのに先立って、あらかじめサンプルの画像データを使って学習が行われる。
図2は、画像データの画像中で人間の顔が存在する可能性が高いと思われる領域を特定する方法を示す図である。以下で説明する処理は、プリンタドライバ96の顔検出部962が実行する。なお、人間の顔が存在する可能性が高いと思われる領域を、本明細書では「顔領域」と表記する。
図2において、顔領域の有無の検討対象である画像PI1は、たとえば、320画素×240画素の画像である。画像PI1の画像データは、各画素の色について、明度のみの情報を有する。顔領域を特定する際には、画像の大きさ以下の大きさを有する検出窓DWで、画像データの画像PI1内における検討対象の画像領域IDWを特定し、その画像領域IDWの各画素の明度のデータを取り出す。その後、その画素の明度のデータに基づいて、その画像領域IDWに人間の顔と思われるパターンが存在するか否かが検討される。
一つの画像領域についての検討が終了すると、検出窓DWは、画像PI1内で移動される。移動は、左から右に向かって行われる(図2の矢印Ah参照)。検出窓DWが画像PI1中の右端に到達したときには、次には画像PI1中の左端であって、それまでの位置よりも下方の位置に配される。以下、同様に検出窓DWが移動される。ここでは、検出窓DWは、左右方向の一度の移動において、検出窓DWの幅Whよりも大きい距離dhだけ移動される(図2の矢印Ah参照)。また、検出窓DWは、上下方向の移動についても、検出窓DWの高さWvよりも大きい距離だけ移動される。
検出窓DWによって取り出されたデータを解析した結果、その画像領域IDWが「顔領域である」と判定することはできないが、「顔領域である可能性がある」と判定された場合には、検出窓DWは、上、下、左、右の各方向に向かって1画素分づつ、移動される(図2の矢印As参照)。そして、それぞれの位置において検出窓DW内の画像領域のデータの解析が行われる。移動後のいずれかの検出窓DW内の画像領域が「顔領域である」と判定された場合には、検出窓DWの幅(または高さ)よりも大きい距離の移動(図2の矢印Ah参照)が再開される。
一方、上、下、左、右の移動後の検出窓DW内の画像が、いずれも「顔領域である」と判定することはできないが「顔領域である可能性がある」と判定された場合には、以下の処理が行われる。すなわち、もっとも顔領域である可能性が高いと判断された位置から再び上、下、左、右の各方向に向かって1画素分づつ、検出窓DWが移動される。以下、画像PI1中の所定の範囲について同様の処理が繰り返され、もっとも顔領域である可能性が高い位置に検出窓がある状態で、最終的にその画像領域周辺に顔領域が存在するか否かが判定される。その後、検出窓DWの幅(または高さ)よりも大きい距離の移動(図2の矢印Ah参照)が再開される。
図3は、検出窓DWによって取り出されたデータの画像領域IDWが顔領域であるか否かの判定の処理を示す図である。検出窓DWによって取り出されたデータの画像領域IDWが顔領域であるか否かについては、24段階のステージ(図3中でSt1〜St24で示す)を経て判定が行われる。第1のステージSt1の判定において、画像領域のデータが所定の条件を満たした場合にのみ、次の第2のステージSt2の判定が行われる。以下、第3〜第23のステージSt3〜St23についても同様である。最終の第24のステージの判定においても条件を満たした画像領域IDWは、「顔領域である」と判定される。
また、第9のステージまでの条件を満たした画像については、「顔領域と判定することはできないが顔領域である可能性がある」と判定される。そのような場合には、上述のように、上下左右の方向に沿った1画素分の検出窓DWの移動が行われ(図2の矢印As参照)、データの解析と検出窓の移動が繰り返される。
図4は、あるステージにおける判定の処理を示す図である。各ステージ(図3参照)においては、矩形フィルタを使った判定が行われる。図4においては、矩形フィルタの例として、矩形フィルタF11,F12を示す。また、矩形フィルタが適用される画像領域IDWの画像も、矩形フィルタと重ねて表示する。図4の例では、画像領域IDWの画像は、顔の画像であるものとする。画像領域IDWの画像として、人間の顔の目と鼻と口を示す。
矩形フィルタは、20画素×20画素の大きさを有する。ここでは、説明を簡略にするために、検出窓DWによって取り出されたデータの画像領域IDWの大きさと、矩形フィルタの大きさとは、同じであるものとする。すなわち、画像領域IDWも、20画素×20画素の大きさを有する。矩形フィルタは、画像領域IDWの一部の領域(図4においてハッチを付して示す)に含まれる画素の明度の情報を取り出すために使用される。
矩形フィルタF11を使用した判定においては、まず、矩形フィルタF11を使用して、画像領域IDWのデータのうち、領域A11aの各画素の明度のデータY11aが取り出される。領域A11aは、画像領域IDWにおいて高さ方向の中央よりも上側にあって画像領域IDWの左右幅と等しい幅を有する長方形の領域である。また、同様に、矩形フィルタF11を使用して、領域A11bの各画素の明度のデータY11bも取り出される。領域A11bは、画像領域IDWにおいて高さ方向の中央よりも下側にあって画像領域IDWの左右幅と等しい幅を有する長方形の領域である。
なお、領域A11aは、画像領域IDWが顔領域である場合に、人間の目があると推定される領域である。また、領域A11bは、画像領域IDWが顔領域である場合に、人間の口があると推定される領域である(図4の上段左側参照)。
そして、領域A11aの各画素の明度Y11aの合計をα11a倍した値と(α11aは定数)、領域A11bの各画素の明度Y11bの合計をα11b倍した値と(α11bは定数)、の合計値が所定の基準値θ11よりも大きいか否かが判定される。合計値がθ11よりも大きい場合には、矩形フィルタF11を用いた判定の結果の値A11として、値D11yが返される。合計値がθ11以下である場合には、矩形フィルタF11を用いた判定の結果の値A11として、値D11nが返される(図4の上段右側参照)。値D11y,D11nは、所定の定数である。
同様に、矩形フィルタF12を使用した判定においては、矩形フィルタF12を使用して、画像領域IDWのデータのうち、領域A12aの各画素の明度のデータY12aが取り出される。領域A12aは、領域A11aの左半分の領域A11alの一部であって、領域A11alの中心を含む領域である。また、矩形フィルタF12を使用して、画像領域IDWのデータのうち、領域A12bの各画素の明度のデータY12bが取り出される。領域A12bは、領域A11aの右半分の領域A11arの一部であって、領域A11arの中心を含む領域である。
なお、領域A12aは、画像領域IDWが顔領域である場合に、人間の右目があると推定される領域である。また、領域A12bは、画像領域IDWが顔領域である場合に、人間の左目があると推定される領域である(図4の中段左側参照)。
そして、領域A12aの各画素の明度Y12aの合計をα12a倍した値と(α12aは定数)、領域A12bの各画素の明度Y12bの合計をα12b倍した値と(α12bは定数)、の合計値が所定の基準値θ12よりも大きいか否かが判定される。合計値がθ12よりも大きい場合には、矩形フィルタF12を用いた判定の結果の値A12として、値D12yが返される。合計値がθ12以下である場合には、矩形フィルタF12を用いた判定の結果の値A12として、値D12nが返される(図4の中段右側参照)。値D12y,D12nは、所定の定数である。
以上のように、一つのステージの処理において、1以上の矩形フィルタを用いた判定が行われる。そして、各矩形フィルタの判定結果の値A11,A12...の合計値が所定の基準値Θ1よりも大きいか否かが判定される(図4の下段参照)。合計値がΘ1よりも大きい場合には、画像領域IDWは、このステージの判定条件を満たしたと判定される。合計値がΘ1以下である場合には、画像領域IDWは、このステージの判定条件を満たさないと判定される。画像領域IDWが、このステージの判定条件を満たさない場合には、画像領域IDWは、顔領域ではないと判定され、処理が終了する。一方、画像領域IDWが、このステージの判定条件を満たした場合には、次のステージの判定が行われる(図3参照)。
なお、以上の処理は、複数種類の大きさの検出窓を使用して行われる。たとえば、20画素×20画素の大きさから200画素×200画素の大きさまでの複数種類の検出窓が、顔領域の検出に使用される。このため、画像中で顔が様々な大きさに描かれていても、それらを顔領域として検出することができる。なお、検出対象の画像PI1の50%以上の面積(画素数)を有する検出窓は、たとえば、証明写真のように、一つの顔が画像全体に大きく写っている場合の顔領域の認定に有効である。
なお、第1実施例においては、矩形フィルタの大きさは20画素×20画素である。このため、20画素×20画素以外の大きさの検出窓DWが使用される場合には、検出窓DWによって取り出されたデータの画像は20画素×20画素に解像度変換されて、上記の判定の対象とされる。
上記の判定は、画素の明度に基づいて行われる。各画素の明度で表される画像中において対象物は各画素の明度差で表される。すなわち、上記の判定は、画像の一部の領域(図4の領域A11a,A11b,A12a,A12b参照)と他の一部の領域の画素の明度の差に基づいて行われる。このため、全体に暗く写っている人物の顔の領域については、「顔領域である」と判定されない可能性がある。たとえば、図2に示すように夜間にフラッシュをたいて写真が撮影された際に、手前にいる人物P1にはフラッシュの光が届き、奥にいる人物P2にはフラッシュの光が届かない場合がある。そのような場合には、上記の処理の結果、人物P1の顔の領域Af1については、「顔領域である」と判定され、一方で、人物P2の顔の領域Af2については、「顔領域である」と判定されない可能性がある(図2参照)。
一方で、光が強く当たりすぎ、顔全体が白く写っている人物の顔の領域についても、「顔領域である」と判定されない可能性がある。たとえば、夜間にフラッシュをたいて写真が撮影された場合に、奥にいる人物P2はフラッシュの光で適度に照らされ、手前にいる人物P1にはフラッシュの光が強く当たりすぎて顔全体が白くなってしまう場合がある。そのような場合には、人物P2の顔の領域Af2については、「顔領域である」と判定され、一方で、人物P1の顔の領域Af1については、「顔領域である」と判定されない可能性がある。
なお、上記の処理において、どのような矩形フィルタが使用されるかは、サンプルの画像データを用いて行われる顔検出部962(より具体的には顔検出部962の機能部である判定部9623)の学習において、顔領域の検出に先立って、あらかじめ決定される。また、θ11,θ12,Θ1などの基準値も、顔検出部962の学習において決定される。一方、α11a,α11bなどの係数は、矩形フィルタと対応づけられて予め決定されている。すなわち、学習において、各ステージで使用される矩形フィルタが決定されると、使用される係数も同時に決定される。
A3.顔領域の検出処理:
図5は、顔検出部962(より具体的には、顔検出部962の機能部である判定部9623)の学習の際の処理を示すフローチャートである。ステップS110では、第1の学習サンプル画像データグループが準備される。第1の学習サンプル画像データグループを構成する第1の学習サンプル画像データは、たとえば20画素×20画素の画像データである。第1の学習サンプル画像データは、各画素について0〜255の階調値で表される明度のみの情報を有する。階調値0が最も暗い明度を表し、階調値255が最も明るい明度を表す。第1の学習サンプル画像データグループは、画像中に実際に顔が存在する、たとえば10000個の画像データと、画像中に顔が存在しない、たとえば20000個の画像データと、を含む。
ステップS120では、第1の学習サンプル画像データグループ中に、全画素の平均明度がThs以下のものが存在するか否かが決定される。全画素の平均明度がThs以下のもの(以下「暗サンプルデータ」と呼ぶ)が存在する場合には、処理は、ステップS130に進む。第1の学習サンプル画像データグループ中に暗サンプルデータが存在しない場合には、処理は、ステップS150に進む。Thsは、たとえば、70とすることができる。なお、第1の学習サンプル画像データグループは、その一部として、全画素の平均明度がThs以下の暗サンプルデータを含むように、予め準備されることが好ましい。
ステップS130では、第1の学習サンプル画像データグループ中の暗サンプルデータに基づいて、第2の学習サンプル画像データグループを生成する。第2の学習サンプル画像データグループを構成する第2の学習サンプル画像データは、第1の学習サンプル画像データグループの各暗サンプルデータの画素の明度をそれぞれより明るい明度に置き換えることによって生成される。
ステップS140では、第2の学習サンプル画像データグループを使用して、顔検出部962の学習が行われる。
ステップS150では、第1の学習サンプル画像データグループの第1の学習サンプル画像データのうち暗サンプルデータ以外の画像データを使用して、顔検出部962の学習が行われる。
このように、全画素の平均明度がThs(70)以下の画像データと(ステップS120〜S140参照)、全画素の平均明度がThsより大きい画像データと(ステップS150参照)、を使用して学習を行うことで、プリンタドライバ96における顔領域の検出の際の正答率を、明るい画像と暗い画像の両方について、高くすることができる。
図6は、画像データの画像中において顔が存在する領域を決定する処理を示すフローチャートである。各ステップは、プリンタドライバ96によって実行される。
まず、ステップS210で、顔領域を特定する対象となる画像データをCD−R/RWドライブ140のCD−Rから読み込んで(図1参照)、その画像データに基づいて第1の画像データを生成する。顔領域を特定する対象となる画像データ(以下、「オリジナル画像データ」ということがある)は、たとえば、2560画素×1920画素の24bitカラーの画像データである。ステップS210で生成される第1の画像データは、画像のサイズが320画素×240画素である画像データである。そして、第1の画像データは、各画素について明度のみの情報を有する画像データである。
第1の画像データは、オリジナル画像データから各画素の明度の情報を取りだし、さらに解像度変換を行うことによって生成される。各画素の明度Yは、赤、緑、青の階調値をそれぞれR,G,Bとしたとき(R,G,B=0〜255)、たとえば、以下の式で得られる。
Y=0.299R+0.587G+0.114B ・・・ (1)
このように、画像の解像度を低減し、各画素の色情報を明度のみに限定することで、対象となる画像データをそのまま使用して顔領域を特定する態様に比べて、処理の負荷を軽くすることができる。なお、ステップS210の処理は、プリンタドライバ96の機能部としての第1の画像データ生成部963が実行する(図1参照)。
なお、顔領域を特定する対象となる画像データの画像PI0は、夜間にフラッシュをたいて撮影された写真画像であるものとする。第1の画像データの画像PI1は、解像度が異なる点および明度のみの画像である点以外は、オリジナル画像データの画像PI0と同じ画像である(図2参照)。画像PI1中において、手前にいる人物P1にはフラッシュの光が届いている。このため、人物P1は、画像PI1中において、ほぼ70以上の明度の濃淡で表現されている。これに対して、奥にいる人物P2にはフラッシュの光が届いていない。このため、人物P2は、画像PI1中において、ほぼ70以下の明度の濃淡で表現されている。
図6のステップS250では、第1の画像データの画像の一部である画像領域IDWについて、順に顔領域であるか否かの判定が行われる。画像領域IDWが顔領域であるか否かの判定の原理は、図2〜図4を使用して説明したとおりである。なお、ステップS250の処理は、プリンタドライバ96の顔検出部962が実行する(図1参照)。
ステップS252では、第1の画像データの画像PI1中における検出窓DWの位置を決定して、画像領域IDWの画像を表す第1の部分画像データを生成する(図2参照)。
なお、ステップS252の処理は、プリンタドライバ96の機能部としての第1の部分画像データ生成部9621が実行する(図1参照)。
ステップS253では、第1の部分画像データの全画素の平均明度AYが所定のしきい値Thp以下であるか否かが決定される。平均明度AYがThp以下であるとき、処理は、ステップS256に進む。平均明度AYがThpより大きい場合には、処理は、ステップS254に進む。Thpは、たとえば、Thsと等しい値70とすることができる。ThpをThsと等しい値に設定することで、第2の学習サンプル画像データによって学習された設定(図4のD11y,Θ11などの値や選択された矩形フィルタ)を活用して、第1の画像データの画像中から高い正答率で顔領域を特定することができる。
ステップS253の処理を行うことにより、明度の平均値が70以下であり顔領域の判定に失敗する可能性が高い画像領域IDWについて、ステップS256,S258の処理が行われる。このため、本来、顔領域の判定に失敗する可能性が高い画像領域IDWについても、後述のように、高い精度で顔領域であるか否かの判定を行うことができる。また、すべての画像についてステップS256,S258の処理を行う態様に比べて、全体の処理の負担を軽くすることができる。
ステップS256では、第1の部分画像データに基づいて、第2の部分画像データを生成する。第2の部分画像データは、第1の部分画像データの画素の明度を、それぞれより明るい明度に置き換えることによって生成される。なお、ステップS253,S256の処理は、プリンタドライバ96の機能部としての第2の部分画像データ生成部9622が実行する(図1参照)。
ステップS258では、第2の部分画像データに基づいて、第2の部分画像データの画像が顔領域であるか否かの判定が行われる。すなわち、第2の部分画像データの画像中に人間の顔が存在するか否かの判定が行われる。ある部分画像の領域(画像領域)が顔領域であるか否かを判定する処理の内容は、図2〜図4を使用して説明したとおりである。
そして、第2の部分画像データの画像が顔領域であると判定された場合には、そのときの第1の画像データの画像PI1中における検出窓DWの位置がRAM103に記憶される(図1参照)。検出窓DWの位置は、ステップS252で決定されている。なお、ステップS258の処理は、プリンタドライバ96の顔検出部962の機能部としての判定部9623が実行する(図1参照)。
一方、ステップS254では、第1の部分画像データに基づいて、第1の部分画像データの画像が顔領域であるか否かの判定が行われる。すなわち、第1の部分画像データの画像中に人間の顔が存在するか否かの判定が行われる。ある部分画像の領域(画像領域)が顔領域であるか否かを判定する処理の内容は、図2〜図4を使用して説明したとおりである。
そして、第1の部分画像データの画像が顔領域であると判定した場合には、そのときの検出窓DWの位置がRAM103に記憶される。なお、ステップS254の処理も、プリンタドライバ96の顔検出部962の機能部としての判定部9623が実行する(図1参照)。
ステップS259では、第1の画像データの画像中のすべての領域について、ステップS254またはS258の判定が行われたか否かの判定が行われる。まだ、第1の画像データの画像中のすべての領域について、ステップS254またはS258の判定が行われていない場合には、処理はステップS252に戻る。そして、第1の画像データの画像中における検出窓DWの位置が変更される(図2の矢印Ah参照)。
一方、第1の画像データの画像中のすべての領域について、ステップS254またはS258の判定が行われた場合には(ステップS259においてYes)、処理はステップS260に進む。
なお、検出窓DWの移動は、水平方向については、検出窓DWの幅Whよりも大きい距離dhだけ行われ(図2の矢印Ah参照)、上下方向の移動については、検出窓DWの高さWvよりも大きい距離だけ行われる。このため、ステップS259で行われる判定は、そのような移動によって決定される検出窓DWの代表的な位置のすべてについて、ステップS254またはS258の判定が行われたか否か、についての判定である。
また、ステップS250の処理は、たとえば、20画素×20画素の大きさから200画素×200画素の大きさまでの、様々な検出窓を使用して行われる。ステップS259を経てステップS260に処理が進むのは、それらの異なる大きさの検出窓を使用した判定がすべて完了した場合である。
ステップS260では、ステップS258で記憶された検出窓DWの位置と、ステップS254で記憶された検出窓DWの位置と、に基づいて、第1の画像データが表す画像PI1中の顔領域の集合が決定される。すなわち、ステップS258で記憶された検出窓DWの位置の集合と、ステップS254で記憶された検出窓DWの集合と、の和集合に基づいて、画像PI1中の顔領域の集合が決定される。そして、決定された画像PI1中の顔領域に基づいて、CD−R/RWドライブ140のCD−Rから読み込まれた画像データの画像中の顔領域が決定される。
たとえば、第1の画像データの画像PI1中における検出窓DWの位置は、検出窓DWの左上角の画素位置によって特定される。ある検出窓DWの位置に対応する原画像PI0の部分は、上記の検出窓DWの左上角の画素位置と、検出窓DWの大きさと、画像PI0と画像PI1の画素数の比と、に基づいて、画像PI0上において特定することができる。
なお、画像PI1中の顔領域の集合を決定する際には、たとえば、互いに75%以上の画素を共有するN個(Nは2以上の整数)の顔領域については、その中から一つの顔領域が選択され、他の顔領域は廃棄される。このような態様とすることで、互いに大部分が重複する顔領域が画像PI1中の複数の顔領域として決定されることを防止できる。選択される顔領域は、たとえば、その中心が、それらN個の顔領域によって共有される領域の中心と、最も近い顔領域である。なお、本実施例においては、顔領域は長方形の領域である。長方形の領域の中心は、その長方形の対角線の交点である。
ステップS260では、そのようにして選択された顔領域によって構成される顔領域の集合を、画像PI1中の顔領域の集合とする。そして、それらの顔領域に対応する、CD−Rから読み込まれた画像データの画像PI0中の領域を、CD−Rから読み込まれた画像データの画像PI0中の顔領域とする。なお、ステップS260の処理は、プリンタドライバ96の機能部としての顔特定部9624が実行する(図1参照)。
このような処理を行うことで、通常の処理で顔領域であると判定できる画像領域については、ステップS254の処理によって判定される。そして、通常の処理では顔領域の判定に失敗する可能性が高い暗い画像の画像領域については、ステップS256およびS258の処理によって判定される。そして、それらの顔領域集合の和集合(OR集合)を、検討対象の画像データの画像における顔領域とすることにより(ステップS260参照)、明るい画像領域の顔についても、暗い画像領域の画像についても、高い確率で検討対象の画像中の顔領域として特定することができる。
また、本実施例においては、第1の画像データそのものではなく、第1の画像データの画像の一部を表す部分画像データについて明度の階調値に関する判定を行い、部分画像データに基づいて新たな部分画像データを生成する。このため、第1の画像データそのものについて階調値に関する判定を行って、第1の画像データに基づいて新たな画像データを生成する態様に比べて、画像中の各部分の明度に応じたより適切な判定処理を行うことができる。また、部分画像データは第1の画像データに比べてデータ量が少ない。このため、第1の画像データに基づいて新たな画像データを生成する態様に比べて、処理の負荷も小さい。
A4.画像データの変換:
以下では、図6のステップS256において、第1の部分画像データに基づいて第2の部分画像データを生成する方法について説明する。図5のステップS130において、暗サンプルデータに基づいて第2の学習サンプル画像データを生成する方法も同様である。
図7は、図6のステップS256において、第1の部分画像データに基づいて第2の部分画像データを生成する方法を示すヒストグラムである。横軸は、0〜255の明度である。縦軸は、画像データにおける各明度の頻度である。図7においては、第1の部分画像データにおける画素の明度の分布D1と、第2の部分画像データにおける画素の明度の分布D2aを示す。なお、分布D2aは離散的となるが、理解を容易にするため、ここでは曲線として示す。
第2の部分画像データは、第1の部分画像データの各画素の明度を2倍の明度に置き換えることによって生成される(図7のD1,D2a参照)。その結果、第1の部分画像データにおいて、たとえば、0〜70の明度の範囲R1に含まれる明度Y1を有していた画素の明度は、0〜140の明度の範囲R2aに含まれる明度Y2(Y2=Y1×2)に変換される。
なお、2倍した結果、255を越えることとなる明度については、すべて255に置き換えられる。すなわち、第1の部分画像データの画像中において126以上の明度で表現されている部分の明度については、すべて255に置き換えられる。
このような処理を行うことで、第1の部分画像データの画像中において暗い色で表されている画像を、より明るく、かつ明度差の大きい画像に変換することができる(図7の範囲R1とR2a参照)。その結果、図6のステップS258において、図2〜4で説明した処理で、高い正確さで顔領域を特定することができる。
また、たとえば、第1の部分画像データの明度20の画素と明度30の画素との明度の差10と、第1の部分画像データの明度120の画素と明度130の画素との明度の差10と、は、変換後の第1の部分画像データにおいてもそれぞれ2倍の20となる。すなわち、等しい量の明度差は、変換後も等しい量の明度差となる。よって、第2の部分画像データにおいても、第1の部分画像データと同様に、正確に顔領域の特定を行うことができる。
なお、第1の部分画像データの画像中において126以上の明度で表現されている部分の明度については、明度を2倍にする上記の処理によって明度差がなくなる。よって、その部分については、図2〜4で説明した処理では、顔領域を特定することができなくなるおそれがある。しかし、図7の処理を含む図6のステップS256,S258の処理は、画像領域IDW(第1の部分画像データ)の平均明度が70以下の場合にのみ行われる。このため、対象となる画像領域IDW中において図7の処理によって明度差がなくなる部分は、大きくはない。さらに、明度が126以上の部分に顔を有する画像領域IDWついては、第2の部分画像データではなく第1の部分画像データに対する顔領域の特定の処理(図6のステップS254参照)によって、判定が行われる可能性が高い。このため、図7の処理を行うことによって、顔が存在する領域を顔領域として特定するのに失敗する可能性は少ない。
第1実施例においては、図5のステップS130において、暗サンプルデータに基づいて第2の学習サンプル画像データを生成する際にも、同様の処理が行われる。すなわち、画像データにおける顔領域の特定の際の処理(図6のステップS256参照)と同じ処理で、暗サンプルデータが改変され、学習が行われる。このような態様とすることで、実際に行われる処理の精度が高くなるように、顔検出部962の学習を行わせることができる。
B.第2実施例:
第2実施例の画像処理装置は、図6のステップS256において、第1の部分画像データに基づいて第2の部分画像データを生成する方法、および図5のステップS130において、暗サンプルデータに基づいて第2の学習サンプル画像データを生成する方法が、第1実施例の画像処理装置とは異なる。第2実施例の画像処理装置の他の点は、第1実施例の画像処理装置と同じである。
図8は、図6のステップS256において、第1の部分画像データに基づいて第2の部分画像データを生成する際のガンマ変換の内容を示す図である。横軸は変換前の画素の明度Yiであり、縦軸は同じ画素の変換後の明度Yoである。図8のガンマ曲線は、たとえば、明度70を明度160に置き換えるガンマ曲線である。第2実施例においては、第2の部分画像データを生成するために、第1の部分画像データの各画素の明度は、図8のガンマ曲線に従って、変換される。
このような態様としても、第1の部分画像データの画像中において暗い色で表されている画像を、より明るく、かつ明度差の大きい画像に変換することができる(図8の範囲R1とR2b参照)。その結果、図6のステップS258において、図2〜4で説明した処理によって、高い正確さで顔領域を特定することができる。
また、第2実施例においては、図5のステップS130において、暗サンプルデータに基づいて第2の学習サンプル画像データを生成する際にも、同様の処理が行われる。すなわち、画像データにおける顔領域の特定の際の処理(図6のステップS256参照)と同じ処理で、暗サンプルデータが改変され、学習が行われる。このような態様とすることで、実際に行われる処理の精度が高くなるように、顔検出部962の学習を行わせることができる。
さらに、ガンマ曲線を使用した変換においては、第1実施例に比べて、変換前の画像データにおいて互いに異なる値を有する明度が、同じ値(たとえば最大値255)に変換されてしまう可能性が低い。このため、広い範囲の明度について、顔領域を特定することができる。
C.第3実施例:
第3実施例の画像処理装置は、図6のステップS256において、第1の部分画像データに基づいて第2の部分画像データを生成する方法、および図5のステップS130において、暗サンプルデータに基づいて第2の学習サンプル画像データを生成する方法が、第1実施例の画像処理装置とは異なる。第2実施例の画像処理装置の他の点は、第1実施例の画像処理装置と同じである。
図9は、図6のステップS256において、第1の部分画像データに基づいて第2の部分画像データを生成する方法を示すヒストグラムである。横軸は、0〜255の明度である。縦軸は、画像データにおける各明度の頻度である。図9においては、第1の部分画像データにおける画素の明度の分布D1と、第2の部分画像データにおける画素の明度の分布D2bを示す。第3実施例においては、第2の部分画像データを生成するために、第1の部分画像データの各画素の明度は、Δだけ増大される(Δは正の整数。1≦Δ<255)。Δは、たとえば、70とすることができる。なお、Δだけ増大された結果、255を越えることとなる明度については、すべて255に置き換えられる。
このような態様としても、第1の部分画像データの画像中において暗い色で表されている画像を、より明るい画像に変換することができる(図9の範囲R1とR2c参照)。その結果、図6のステップS258において、図2〜4で説明した処理で、高い正確さで顔領域を特定することができる。
明度70以下の範囲の明度を有する画素で描かれている画像は、他の明度範囲の明度を有する画素で描かれている画像に比べて、顔領域の特定に失敗する可能性が高い。第3実施例においては、明度70以下の範囲の明度が、明度70以上となるように改変量Δが設定されている。このため、第2の部分画像データについて処理を行うことで、図2〜図4の処理で高精度に顔領域を特定することができる。
また、第3実施例においては、図5のステップS130において、暗サンプルデータに基づいて第2の学習サンプル画像データを生成する際にも、同様の処理が行われる。すなわち、画像データにおける顔領域の特定の際の処理(図6のステップS256参照)と同じ処理で、暗サンプルデータが改変され、学習が行われる。このような態様とすることで、実際に行われる処理の精度が高くなるように、顔検出部962の学習を行わせることができる。
第1実施例および第2実施例では、明度の改変の前後で画素同士の明度の差が変わる。たとえば、第1実施例においては、第1の部分画像データの明度20の画素と明度30の画素との明度の差は10であるのに対して、第2の部分画像データにおける対応する画素同士の明度の差は、20となる。このため、明度を改変されていない画像における「目」と「顔の地肌」との明度の差と、明度を改変された画像における「目」と「顔の地肌」との明度の差と、は異なる値となる可能性がある。すなわち、明るい画像と暗い画像とで顔領域の明度差の判定基準が異なる可能性がある。よって、事前に第1のサンプル画像と第2のサンプル画像とを使って顔検出部962の学習を行う際に、学習の精度が低くなるおそれがある。ガンマ曲線を使用する第2実施例の場合も同様である。
一方、第3実施例においては、画素の明度は整数Δを加えられて改変される。すなわち、明度の改変の前後で、暗い領域における画素同士の明度の差が同じ値に保持される。このため、明るい画像と暗い画像とで顔領域の明度差の判定基準が異なる可能性が少ない。よって、事前に第1のサンプル画像と第2のサンプル画像とを使って顔検出部962の学習を行う際に、学習の精度が高い。
D.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
D1.変形例1:
上記実施例では、画像データは320画素×240画素の画像データに変換されて、顔領域が特定される(図6のステップS210参照)。しかし、顔領域を特定する処理の対象とする画像データは、320画素×240画素の画像データに限らず、任意の大きさおよび画素数の画像データとすることができる。ただし、顔領域を特定する処理の対象とする画像データは、一定の大きさの画像データとすることが好ましい。そのような態様とすれば、その大きさの画像データのために1種類の顔検出モジュールを用意すれば、顔領域の特定の処理を行うことができる。
また、画像データは、縮小され、画素数を少なくされてから、顔領域を特定する処理の対象とされることが好ましい。そのような態様とすれば、処理の負荷を軽減することができる。
D2.変形例2:
上記第1実施例では、第1の部分画像データの全画素の平均明度AYが所定のしきい値Thp以下である場合に(図6のステップS253参照)、第2の部分画像データが生成され、顔領域についての判定が行われる(同、ステップS256,S258)。しかし、階調値(明度)を改変した画像データを生成し顔領域の判定を行うための条件は、他の条件とすることもできる。
たとえば、画像データの画像の領域を、画像の中心点(たとえば、長方形の画像であれば対角線の交点)を含む第1の領域と、第1の領域を囲む第2の領域と、に分けたときに、第1の領域に含まれる画素の集合の所定の色や明度の階調値の平均値に応じて、階調値を改変した画像データを生成し顔領域の特定を行うか否かを決定することとしてもよい。なお、「第2の領域が第1の領域を囲む」とは、第1の領域に含まれる任意の点が、第2の領域に含まれる2点を内分する点で表されることをいう。
また、たとえば、横軸を階調値とし、縦軸を頻度とした画像データの明度分布において、ピークとなる階調値の大きさに応じて、階調値を改変した画像データを生成し顔領域の判定を行うか否かを決定することとしてもよい。
すなわち、階調値を改変した画像データを生成し顔領域の判定を行うか否かの判断は、対象となる画像の少なくとも一部の画素の色の階調値に基づいて行うことができる。
階調値(明度)を改変した学習サンプル画像データを生成し学習を行うための条件(図5のステップS120)についても、同様である。
D3.変形例3:
上記実施例では、第2の部分画像データを生成するために、第1の部分画像データのすべての明度が変換される(図6のステップS256参照)。しかし、第1の部分画像データの一部の範囲の階調値(明度)についてのみ改変を行って、第2の部分画像データを生成することもできる。そのような態様においては、階調値が取りうる範囲のうち、少なくとも最も暗い色に対応する階調値から、階調値が取りうる範囲の幅の10%までの範囲の階調値について変換を行うことが好ましい。なお、階調値が取りうる範囲のうち、少なくとも最も暗い色に対応する階調値から、階調値が取りうる範囲の幅の20%までの範囲の階調値について変換を行うことが、より好ましい。そして、階調値が取りうる範囲のうち、少なくとも最も暗い色に対応する階調値から、階調値が取りうる範囲の幅の30%までの範囲の階調値について変換を行うことが、さらに好ましい。
D4.変形例4:
上記第1実施例では、第2の部分画像データを生成する際に、第1の部分画像データの明度が2倍される。また、第2の学習サンプル画像データを生成する際に、暗サンプルデータ(第1の学習サンプル画像データ)の明度が2倍される。しかし、階調値(明度)を定数倍する際の定数は2以外の値とすることができる。ただし、その定数は、1.5〜2.5であることが好ましく、1.8〜2.2であることがより好ましい。
D5.変形例5:
上記第2実施例では、明度が0から255で表されるという条件の下で、第2の部分画像データおよび第2の学習サンプル画像データを生成する際に、明度70を明度160に置き換えるガンマ変換が行われる。しかし、第2の部分画像データおよび第2の学習サンプル画像データを生成する際に使用されるガンマ曲線は、他の形状とすることもできる。ただし、ガンマ曲線は、明度が0(黒)から255(白)で表されるという条件の下で、明度70を明度100〜180のいずれかの明度に置き換えるガンマ曲線であることが好ましく、明度70を明度130〜170のいずれかの明度に置き換えるガンマ曲線であることがより好ましい。そして、ガンマ曲線は、明度70を明度140〜160のいずれかの明度に置き換えるガンマ曲線であることがさらに好ましい。
D6.変形例6:
上記第3実施例では、明度が0から255で表されるという条件の下で、明度の改変量Δは70に設定されている。しかし、明度の改変量Δは、たとえば60,50など、他の値に設定することができる。ただし、階調値(明度)の改変量Δは、階調値が取りうる範囲の幅の10%〜40%であることが好ましく、20%〜30%であることがより好ましい。そして、階調値の改変量Δは、階調値が取りうる範囲の幅の23%〜27%であることがさらに好ましい。画素の色の階調値に基づいて対象物が存在するか否かの判定を行う際、精度が低くなる階調値の範囲は、階調値が取りうる範囲全体に対して、通常、10%〜40%である。よって、上記のような態様とすれば、判定精度が低くなる範囲に含まれる階調値を、そのような範囲外の階調値に置き換えて判定を行うことができる。
D7.変形例7:
上記実施例および変形例では、さまざまな手法で、対象物を検出する際の画像の階調値の改変、および学習の際の画像の階調値の改変が行われる。それら、対象物を検出する際の画像の階調値の改変、および学習の際の画像の階調値の改変は、同じ条件(たとえば、画像の平均の明度についての条件)にしたがって行うか否かが決定され、かつ同じ変換(たとえば、明度を定数倍するなど)で実行されることが好ましい。そのような態様とすれば、対象物を検出する際の精度が高くなるように、効率的な学習を行うことができる。
D8.変形例8:
上記実施例では、画像中において人間の顔が存在する領域が特定される。しかし、画像中において特定される対象物は、人間の顔に限らず、他の物とすることもできる。本明細書で説明した処理は、たとえば、犬や猫などの動物の顔や、電車や蒸気機関車などの車両、自動車、建造物、花や紅葉などの植物など、様々な対象を特定する処理に適用することができる。
D9.変形例9:
上記実施例では、画像PI1中の顔領域の集合を決定する際に、互いに75%以上の画素を共有するN個(Nは2以上の整数)の顔領域については、その中から一つの顔領域が選択され、他の顔領域は廃棄される。しかし、その中から一つの顔領域が選択される複数の顔領域(以下、「候補顔領域」という)は、他の方法で定めることもできる。たとえば、複数の候補顔領域は、互いに70%以上の画素を共有する複数の顔領域とすることができる。そして、複数の候補顔領域は、互いに80%以上の画素を共有する複数の顔領域とすることがより好ましい。また、複数の候補顔領域は、互いに90%以上の画素を共有する複数の顔領域とすることがさらに好ましい。
さらに、共有する画素数以外の基準で、複数の候補顔領域を決定することもできる。ただし、互いに所定量以上の領域を共有する複数の候補顔領域については、所定の基準で、その中から一つの候補顔領域を選択して、それを画像の顔領域として決定することが好ましい。
D10.変形例10:
上記実施例では、第1の学習サンプル画像データを使った学習(図5のステップS150参照)と、明度を上げた第2の学習サンプル画像データを使った学習(同、ステップS140参照)とが行われる。そして、第1の部分画像データを使った顔領域の特定(図6のステップS254参照)と、明度を上げた第2の部分画像データを使った顔領域の特定(同、ステップS258参照)とが行われる。
しかし、第2の学習サンプル画像データは、第1の学習サンプル画像データの色の階調値(明度)を下げることによって生成することもできる。また、第2の部分画像データは、第1の部分画像データの色の階調値(明度)を下げることによって生成することもできる。そのような態様とすれば、そのままの状態では対象物全体が白く写っており階調値の差が少ない範囲についても、対象物を特定することができる。
D11.変形例11:
上記実施例では、一つの判定部9623に対して、第1の学習サンプル画像データを使った学習(図5のステップS150参照)と、第2の学習サンプル画像データを使った学習(同、ステップS140参照)とが行われる。そして、画像データに対する顔領域の特定も、一つの判定部9623を使用して行われる。
しかし、検出モジュールを複数用意して、それら複数の検出モジュールの一部に、第1の学習サンプル画像データを使った学習(図5のステップS150参照)を行わせ、他の一部に色の階調値(明度)を改変した第2の学習サンプル画像データを使った学習(同、ステップS140参照)を行わせることとしてもよい。
その後、第1の学習サンプル画像データを使った学習(図5のステップS150参照)を行った検出モジュールについては、第1の部分画像データに対する顔検出(図6のステップS258参照)を行わせることが好ましい。そして、第2の学習サンプル画像データを使った学習(同、ステップS140参照)を行った検出モジュールについては、階調値を改変した第2の部分画像データに対する顔検出(図6のステップS254参照)を行わせることが好ましい。
また、明度を改変する方向および程度(量)が異なる複数種類の学習サンプル画像データのグループを設け、それぞれの学習サンプル画像データのグループを使って、互いに異なる検出モジュールに学習を行わせることができる。そして、明度を改変する処理を行った画像データについて対象物の検出を行う際には、その明度を改変する方向および程度(量)と対応する方向および程度(量)で明度を改変した学習サンプル画像データで学習を行った検出モジュールで、その画像データについて対象物の検出を行うことが好ましい。
なお、この態様において、検出モジュールの数は、学習を行う画像のグループ(上記実施例では、第1の学習サンプル画像データグループと第2の学習サンプル画像データグループの2グループ)の数と同じであることがより好ましい。
D12.変形例12:
上記実施例では、図2〜図4に示す方法で顔領域の特定を行う。しかし、顔領域の特定は、ブースティング(たとえばAdaBoost)や、サポートベクターマシン、ニューラルネットワークなど様々な方法を使用して行うことができる。ただし、画像中の各画素の色に関する階調値の差に基づいて顔領域の特定を行う手法であることが好ましい。
D13.変形例13:
上記実施例および変形例では、画像の画素の明度に基づいて顔領域の特定(図2〜図4)、第2の部分画像データの生成(図6および図10のステップS256)、第2の学習サンプル画像データの生成(図5のステップS130)、さらには、第2の部分画像データや第2の学習サンプル画像データの生成に関する判定(図5のステップS120、S253)が行われる。しかし、それらの処理は、明度以外の階調値に基づいて行うこともできる。
たとえば、画像の画素の明度に代えて、画像の画素のグリーンの階調値に基づいて、上記各処理を行うことができる。また、画像の画素の明度に代えて、画像の画素のレッドやブルーの階調値に基づいて、上記各処理を行うことができる。さらには、画像の画素のレッド、グリーン、ブルーの階調値に基づいて得られる値に基づいて、上記各処理を行うことができる。すなわち、上記の各処理は、画像の画素の色に関する階調値に基づいて行うことができる。
また、処理に使用する画素の色に関する階調値は、画像データがあらかじめ各画素について保持している明度に関する階調値であってもよい。たとえば、JPEG画像データやYCrCb表色系の画像データが保持している輝度や明度の階調値を使用することができる。また、処理に使用する画素の色に関する階調値は、画像データが各画素について保持しているRGBなどの色成分の階調値に基づいて得られる階調値であってもよい。
明度を表す階調値は、値が大きくなるほど明るい状態を表し、値が小さくなるほど暗い状態を表す階調値とすることができる。また、明度を表す階調値は、値が小さくなるほど明るい状態を表し、値が大きくなるほど暗い状態を表す階調値とすることもできる。
D14.変形例14:
上記実施例では、第1の画像データの画像PI1の一部である画像領域IDWを表す第1の部分画像データ、および第1の部分画像データから生成された第2の部分画像データに基づいて、顔領域の判定を行っている。しかし、第1の画像データの画像全体を顔領域の判定の対象とすることもできる。そのような態様においては、第1の画像データの色の階調値を改変して得られる第2の画像データについても、所定の条件(たとえば画素の平均明度に関する条件)下で、顔領域の判定が行われる。
D15.変形例15:
画像処理装置は、原画像データの画像中において所定の対象物が存在する部分を特定した後に、その対象物が存在する部分を表示する態様とすることもできる。そのような態様において、原画像データの画像を表示し、さらに、その画像上において、対象物が存在する部分を表示することがより好ましい。
D16.変形例16:
画像処理装置は、原画像データの画像中において所定の対象物が存在する部分を特定した後に、原画像データの画像中において所定の対象物が存在する部分の大きさに基づいて、原画像データに対して画像処理を行う態様とすることもできる。なお、原画像データの画像中に、対象物が存在する部分が複数ある場合には、画像処理の際に考慮される「対象物が存在する部分の大きさ」は、対象物が存在する複数の部分のうち最も大きい部分の大きさとすることができる。また、画像処理の際に考慮される「対象物が存在する部分の大きさ」は、対象物が存在する複数の部分の合計の大きさとすることもできる。
D17.変形例17:
上記実施例では、プリンタドライバ96が、顔領域を特定する処理を行い、その結果に基づいて画像処理を行っている。しかし、対象物を特定する処理は、他の構成が行うこともできる。対象物を特定する処理は、たとえば、パーソナルコンピュータ100のOS上で実行されるアプリケーションソフト95が実行することもでき、プリンタ22やプロジェクタ32等の出力装置が備えるCPU104,106が実行することもできる。さらに、顔領域を特定する処理は、プリンタ22やプロジェクタ32等の出力装置が備えるハードウェア回路で実行することもできる。さらには、液晶ディスプレイなどの出力装置を備えたデジタルスチルカメラが備えるCPUやハードウェア回路で実行することもできる。
すなわち、上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
このような機能を実現するコンピュータプログラムは、フロッピディスクやCD−ROM、DVD等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
この明細書において、ホストコンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなホストコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
本発明の実施例である画像処理装置の概略構成を示す説明図。 画像データの画像中で人間の顔が存在する可能性が高いと思われる領域を特定する方法を示す図。 検出窓DWによって取り出されたデータの画像領域IDWが顔領域であるか否かの判定の処理を示す図。 あるステージにおける判定の処理を示す図。 顔検出部962の学習の際の処理を示すフローチャート。 画像データの画像中において顔が存在する領域を決定する処理を示すフローチャート。 第1の画像データに基づいて第2の画像データを生成する方法を示すヒストグラム。 第1の画像データに基づいて第2の画像データを生成する際のガンマ変換の内容を示す図。 第1の画像データに基づいて第2の画像データを生成する方法を示すヒストグラム。
符号の説明
22…プリンタ
30…明度
32…プロジェクタ
88…ホストコンピュータ
91…ビデオドライバ
95…アプリケーションプログラム
96…プリンタドライバ
98…プロジェクタのドライバ
100…パーソナルコンピュータ
102…CPU
110…ディスプレイ
120…キーボード
130…マウス
140…R/RWドライブ
962…顔検出部
A11a,b…矩形フィルタF11を使用してデータが取り出される領域
A11al…A11aの左半分の領域
A11ar…A11bの右半分の領域
A12a,b…矩形フィルタF12を使用してデータが取り出される領域
Af1…顔が存在する領域
Af2…顔が存在する領域
Ah…検出窓DWの移動を示す矢印
As…検出窓DWの上下左右の移動を示す矢印
D1…第1の画像データにおける画素の明度の分布
D2a,b…第2の画像データにおける画素の明度の分布
D11y,n…矩形フィルタF11を使用した判定の結果を表す定数
D12y,n…矩形フィルタF11を使用した判定の結果を表す定数
DW…検出窓
F11,F12…矩形フィルタ
IDW…検出窓DWでデータを取り出される画像領域
P1…人物
P2…人物
PI1…第1の画像データの画像
R1…明度の範囲
R2a〜c…第1の画像データの画像中において範囲R1内にあった明度の範囲
St1〜St24…第1〜第24のステージ
Wh…検出窓DWの幅
Y11a…領域A11aの各画素の明度
Y11b…領域A11bの各画素の明度
Y12a…領域A12aの各画素の明度
Y12b…領域A12bの各画素の明度
Yi…変換前の明度
Yo…変換後の明度
dh…検出窓の移動距離
α11a,b…矩形フィルタに関連づけられている定数
α12a,b…矩形フィルタに関連づけられている定数

Claims (7)

  1. 画像中において所定の対象物が存在する部分を特定する画像処理装置であって、
    原画像データに基づいて、画素の色に関する基準階調値によって前記原画像データの画像の少なくとも一部を表す第1の部分画像データを生成する第1の部分画像データ生成部と、
    記第1の部分画像データの少なくとも一部の数値範囲に含まれる基準階調値をより明るい色に対応する基準階調値に変換することによって、第2の部分画像データを生成する第2の部分画像データ生成部と、
    記第1の部分画像データの画像または前記第2の部分画像データの画像が前記所定の対象物を含むか否かを判定する判定部と、
    前記原画像データの画像中において、前記所定の対象物を含むと判定された前記第1または第2の部分画像データの画像に対応する部分に基づいて、前記原画像データの画像中において前記所定の対象物が存在する部分を決定する対象物特定部と、を備え、
    前記第2の部分画像データ生成部は、所定の第1の条件が満たされた場合に、前記第1の部分画像データの少なくとも一部の数値範囲に含まれる基準階調値をより明るい色に対応する基準階調値に変換することによって、前記第2の部分画像データを生成し、前記第1の条件が満たされた場合には、前記第2の部分画像データを生成せず、
    前記判定部は、前記第1の条件が満たされなかった場合に、前記第1の部分画像データの前記基準階調値に基づいて、前記第1の部分画像データの画像が所定の対象物を含むか否かを判定し、前記第1の条件が満たされた場合に、前記第2の部分画像データの前記基準階調値に基づいて、前記第2の部分画像データの画像が前記所定の対象物を含むか否かを判定する、
    画像処理装置。
  2. 請求項1記載の装置であって、
    前記基準階調値は、画素の明度を表す階調値である、装置。
  3. 請求項1または2に記載の装置であって、
    前記少なくとも一部の数値範囲は、前記基準階調値が取りうる範囲のうち、最も暗い色に対応する基準階調値から、前記取りうる範囲の幅の25%までの範囲を含む、装置。
  4. 請求項3記載の装置であって、
    前記第2の部分画像データ生成部は、前記基準階調値を所定量だけ変更することによって、前記変換を行う、装置。
  5. 請求項4記載の装置であって、
    前記所定量は、前記基準階調値が取りうる範囲の幅の10%〜40%である、装置。
  6. 請求項1ないし5のいずれかに記載の装置であって、
    前記基準階調値は、他の条件が同じである場合に、前記基準階調値の値が小さいほど暗い色を表す階調値であり、
    前記第1の条件は、前記第1の部分画像データの画素の基準階調値の平均値が所定のしきい値よりも小さいことを含む、装置。
  7. 請求項1ないし5のいずれかに記載の装置であって、
    前記基準階調値は、他の条件が同じである場合に、前記基準階調値の値が小さいほど暗い色を表す階調値であり、
    前記第1の条件は、前記第1の部分画像データの画像の領域を、第1の領域と、前記第1の領域を囲む第2の領域と、に分けたときに、前記第1の領域に含まれる画素の基準階調値の平均値が所定のしきい値よりも小さいことを含む、装置。
JP2007195052A 2007-07-26 2007-07-26 画像処理装置 Expired - Fee Related JP5098488B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007195052A JP5098488B2 (ja) 2007-07-26 2007-07-26 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007195052A JP5098488B2 (ja) 2007-07-26 2007-07-26 画像処理装置

Publications (3)

Publication Number Publication Date
JP2009032021A JP2009032021A (ja) 2009-02-12
JP2009032021A5 JP2009032021A5 (ja) 2010-03-25
JP5098488B2 true JP5098488B2 (ja) 2012-12-12

Family

ID=40402457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007195052A Expired - Fee Related JP5098488B2 (ja) 2007-07-26 2007-07-26 画像処理装置

Country Status (1)

Country Link
JP (1) JP5098488B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7242185B2 (ja) * 2018-01-10 2023-03-20 キヤノン株式会社 画像処理方法、画像処理装置、画像処理プログラム、および、記憶媒体
WO2023067906A1 (ja) * 2021-10-22 2023-04-27 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202868A (ja) * 1995-01-30 1996-08-09 Konica Corp 画像処理装置
JP4376352B2 (ja) * 1999-05-12 2009-12-02 パナソニック株式会社 階調補正装置
JP4469476B2 (ja) * 2000-08-09 2010-05-26 パナソニック株式会社 眼位置検出方法および眼位置検出装置
JP4226308B2 (ja) * 2002-11-27 2009-02-18 パナソニック株式会社 画像処理装置および画像処理方法
JP2006004090A (ja) * 2004-06-16 2006-01-05 Mitsubishi Electric Corp 画像正規化装置及び画像正規化プログラム
JP2007025901A (ja) * 2005-07-13 2007-02-01 Canon Inc 画像処理装置、画像処理方法
JP2007048108A (ja) * 2005-08-11 2007-02-22 Seiko Epson Corp 画像評価システム及び画像評価方法並びに画像評価プログラム
JP2007066114A (ja) * 2005-08-31 2007-03-15 Fujifilm Software Co Ltd 分類器を用いた分類方法及びその装置
JP4619927B2 (ja) * 2005-11-01 2011-01-26 富士フイルム株式会社 顔検出方法および装置並びにプログラム

Also Published As

Publication number Publication date
JP2009032021A (ja) 2009-02-12

Similar Documents

Publication Publication Date Title
US8059892B1 (en) Image enhancement method and apparatus
US7358994B2 (en) Image processing apparatus, image processing method, recording medium thereof, and program thereof
JP4423298B2 (ja) デジタル画像におけるテキスト状エッジの強調
JP5810628B2 (ja) 画像処理装置及び画像処理プログラム
US7936926B2 (en) Apparatus, method, and program for face feature point detection
US7796139B1 (en) Methods and apparatus for displaying a frame with contrasting text
US8355574B2 (en) Determination of main object on image and improvement of image quality according to main object
US20090309994A1 (en) Tone Correcting Method, Tone Correcting Apparatus, Tone Correcting Program, and Image Equipment
US9092668B2 (en) Identifying picture areas based on gradient image analysis
JP2007504719A (ja) 組み込みアプリケーションに適した、画像における赤目の検出と補正を行うシステム及び方法
JP2000149018A (ja) 画像処理方法、画像処理装置及び記録媒体
JP5782838B2 (ja) 画像処理装置及び画像処理プログラム
US9299003B2 (en) Image processing apparatus, non-transitory computer readable medium, and image processing method
JP3667181B2 (ja) 画像処理方法および画像処理装置
JP5098488B2 (ja) 画像処理装置
JP6791593B2 (ja) 認識装置、認識プログラム、及び認識方法
JP2021196451A (ja) 画像変換装置、画像変換方法及び画像変換用コンピュータプログラム
JP4935561B2 (ja) 画像処理装置
US20190259168A1 (en) Image processing apparatus, image processing method, and storage medium
JP5125954B2 (ja) 写真画像処理方法、写真画像処理プログラム、及び写真画像処理装置
JP5109518B2 (ja) 画像処理装置
JP4219577B2 (ja) 画像処理装置と画像出力装置と画像処理方法及び記憶媒体
JP5067224B2 (ja) オブジェクト検出装置、オブジェクト検出方法、オブジェクト検出プログラムおよび印刷装置
WO2020166596A1 (ja) 画像処理システム及びプログラム
JP2007219899A (ja) 個人識別装置、個人識別方法および個人識別プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120910

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5098488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees