対象画像からの顔領域の検出
【課題】対象画像からの顔領域検出処理の高速化を図ることを可能とする。
【解決手段】画像処理装置は、顔領域検出結果の用途を特定する用途特定情報を取得する用途特定情報取得部と、用途特定情報に基づき対象画像上における判定対象画像領域の設定条件を設定する条件設定部と、設定条件に従い判定対象画像領域を設定する判定対象設定部と、判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出部と、評価値と判定対象画像領域の位置およびサイズとに基づき顔領域を設定する顔領域設定部と、を備える。
【解決手段】画像処理装置は、顔領域検出結果の用途を特定する用途特定情報を取得する用途特定情報取得部と、用途特定情報に基づき対象画像上における判定対象画像領域の設定条件を設定する条件設定部と、設定条件に従い判定対象画像領域を設定する判定対象設定部と、判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出部と、評価値と判定対象画像領域の位置およびサイズとに基づき顔領域を設定する顔領域設定部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象画像からの顔領域の検出に関する。
【背景技術】
【0002】
対象画像データの表す対象画像から部分画像を順次切り出し、切り出した部分画像が顔に対応する画像であるか否かを判定することにより、対象画像から顔の画像に対応する画像領域である顔領域を検出する技術が知られている(例えば特許文献1)。
【0003】
【特許文献1】特開2007−94633
【発明の開示】
【発明が解決しようとする課題】
【0004】
対象画像からの顔領域の検出の際には、処理の高速化が図られることが好ましい。
【0005】
本発明は、上記の課題を解決するためになされたものであり、対象画像からの顔領域検出処理の高速化を図ることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0007】
[適用例1]画像処理装置であって、
対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する用途特定情報取得部と、
前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する条件設定部と、
前記設定条件に従い前記判定対象画像領域を設定する判定対象設定部と、
前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出部と、
前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する顔領域設定部と、を備える、画像処理装置。
【0008】
この画像処理装置では、顔領域検出結果の用途を特定する用途特定情報に基づき対象画像上における判定対象画像領域の設定条件が設定され、設定条件に従い判定対象画像領域が設定され、判定対象画像領域について算出された評価値と判定対象画像領域の位置およびサイズとに基づき顔領域が設定される。従って、この画像処理装置では、対象画像からの顔領域検出処理の高速化を図ることができる。
【0009】
[適用例2]適用例1に記載の画像処理装置であって、
前記設定条件は、前記判定対象画像領域のサイズとして取り得る値の範囲を含む、画像処理装置。
【0010】
この画像処理装置では、用途特定情報に基づき判定対象画像領域のサイズとして取り得る値の範囲が設定されるため、対象画像からの顔領域検出処理の高速化を図ることができる。
【0011】
[適用例3]適用例1または適用例2に記載の画像処理装置であって、
前記設定条件は、前記対象画像における前記判定対象画像領域の位置し得る範囲を含む、画像処理装置。
【0012】
この画像処理装置では、用途特定情報に基づき判定対象画像領域の位置し得る範囲が設定されるため、対象画像からの顔領域検出処理の高速化を図ることができる。
【0013】
[適用例4]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、さらに、
被写体を撮像して画像データを生成する画像生成部を備え、
前記用途は、撮像実行タイミングの設定である、画像処理装置。
【0014】
この画像処理装置では、撮像実行タイミングの設定という用途を特定する用途特定情報に基づき対象画像上における判定対象画像領域の設定条件が設定されるため、被写体を撮像して画像データを生成する際に対象画像からの顔領域検出処理の高速化を図ることができる。
【0015】
[適用例5]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、
前記用途は、前記顔領域に対応する顔の画像の表情の判別である、画像処理装置。
【0016】
この画像処理装置では、顔領域に対応する顔の画像の表情の判別という用途を特定する用途特定情報に基づき対象画像上における判定対象画像領域の設定条件が設定されるため、対象画像からの顔領域検出処理の高速化を図ることができる。
【0017】
[適用例6]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データと前記用途特定情報とを含む画像ファイルを取得する画像取得部を備え、
前記用途特定情報取得部は、前記画像ファイルに含まれる前記用途特定情報を取得する、画像処理装置。
【0018】
この画像処理装置では、取得された画像ファイルに含まれる対象画像データの表す対象画像からの顔領域検出処理の高速化を図ることができる。
【0019】
[適用例7]適用例1ないし適用例6のいずれかに記載の画像処理装置であって、
前記顔領域設定部は、前記評価値に基づき前記判定対象画像領域が顔の画像に対応する画像領域であるか否かを判定し、顔の画像に対応する画像領域であると判定された前記判定対象画像領域の位置およびサイズに基づき前記顔領域を設定する、画像処理装置。
【0020】
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法および装置、顔領域検出方法および装置、顔領域設定方法および装置、画像生成方法および装置、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【0021】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A−1.画像処理装置の構成:
A−2.画像生成処理:
A−3.顔領域検出処理:
B.変形例:
【0022】
A.実施例:
A−1.画像処理装置の構成:
図1は、本発明の実施例における画像処理装置としてのデジタルスチルカメラ100の構成を概略的に示す説明図である。実施例のデジタルスチルカメラ(以下「DSC」とも呼ぶ)100は、被写体としての撮像対象物を撮像して被写体画像を表す画像データを生成する撮像装置(画像生成装置)として機能すると共に、生成された画像データに対する画像処理を行う画像処理装置としても機能する。
【0023】
DSC100は、レンズ102と、レンズ102を駆動して焦点(ピント)の位置や焦点距離を調整するレンズ駆動部104と、レンズ駆動部104を制御するレンズ駆動制御部106と、レンズ102を介して受光面に入力された光を電気信号に変換する撮像素子108と、撮像素子108から出力された電気信号に対するA/D変換を行うA/D変換器110と、外部機器との情報のやり取りのためのインターフェース部(I/F部)112と、液晶ディスプレイにより構成された表示部114と、ボタンやタッチパネルにより構成された操作部116と、DSC100の各部を制御するCPU118と、ROMやRAMによって構成された内部メモリ200と、を備えている。撮像素子108は、例えばCCDを用いて構成される。DSC100の各構成要素は、バス122を介して互いに接続されている。
【0024】
内部メモリ200には、画像生成部210と、モード設定部220と、領域検出部230と、表情判別部240と、が格納されている。画像生成部210は、レンズ102や撮像素子108等を制御して、被写体としての撮像対象物を撮像し、被写体画像を表す画像データを生成するためのコンピュータプログラムである。モード設定部220は、自動的に、あるいは操作部116を介したユーザの指示に従い、撮像モード(後述)を設定するためのコンピュータプログラムである。領域検出部230は、対象画像データの表す対象画像における所定の画像(顔の画像や顔の器官の画像)に対応する画像領域(顔領域や器官領域)の検出を行うコンピュータプログラムである。表情判別部240は、領域検出部230により検出された顔領域に対応する顔の画像の表情の判別を行うコンピュータプログラムである。CPU118は、内部メモリ200から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
【0025】
領域検出部230は、プログラムモジュールとして、条件設定部231と、判定対象設定部232と、評価値算出部233と、判定部234と、領域設定部235と、を含んでいる。領域検出部230は、さらに、撮像モードに応じた顔領域の検出条件を定義する条件テーブルCTと、顔領域の検出に用いられる複数の顔学習データFLDと、器官領域の検出に用いられる複数の顔器官学習データOLDと、を有している。表情判別部240は、表情判別に用いられる複数の表情データEDを有している。これらの各部の機能や各テーブル・データの内容については後述する。
【0026】
図2は、実施例のDSC100による画像生成処理の流れを示すフローチャートである。実施例のDSC100による画像生成処理は、被写体としての撮像対象物を撮像して、被写体画像を表す画像データを生成する処理である。
【0027】
ステップS110(図2)では、モード設定部220(図1)が、撮像モードを特定する撮像モード情報を取得して、使用する撮像モードを設定する。具体的には、モード設定部220は、表示部114上に撮像モード情報得のためのユーザインタフェースを表示させる。図3は、撮像モード情報取得のためのユーザインタフェースの一例を示す説明図である。図3に示すように、本実施例のDSC100は、撮像モードとして、通常モードと、肖像写真を生成するためのポートレートモードと、笑顔の人物の顔を含む写真を生成するためのスマイルモードと、証明写真を生成するための証明写真モードと、の4つのモードを有している。
【0028】
通常モードは、ユーザによる撮像指示に応じて撮像が実行される撮像モードである。初期状態においては、撮像モードは通常モードに設定されている。ポートレートモードおよび証明写真モードは、後述する顔検出用画像FDImgにおいて条件テーブルCT(図1)に定義された検出条件に該当する顔領域が検出された場合に、自動的に撮像が実行される撮像モードである。スマイルモードは、顔検出用画像FDImgにおいて条件テーブルCTに定義された検出条件に該当する顔領域が検出され、検出された顔領域に対応する顔の画像の表情が笑顔であると判定された場合に、自動的に撮像が実行される撮像モードである。ユーザは、操作部116(図1)を介して、所望の撮像モードを選択指定する。モード設定部220は、指定された撮像モードを特定する撮像モード情報を取得し、撮像モード情報により特定される撮像モードを使用する撮像モードとして設定する。
【0029】
なお、本実施例における撮像モード情報は、顔領域の検出結果の用途を特定する情報であると言える。例えば、ポートレートモードまたは証明写真モードであることを示す撮像モード情報は、顔領域の検出結果が撮像実行タイミングの設定に用いられることを特定する情報である。また、スマイルモードであることを示す撮像モード情報は、顔領域の検出結果が、顔領域に対応する顔の画像の表情が笑顔であるか否かの判定に用いられることを特定する情報である。そのため、本実施例における撮像モード情報は、本発明における用途特定情報に相当する。また、撮像モード情報を取得するモード設定部220は、本発明における用途特定情報取得部に相当する。
【0030】
ステップS120(図2)では、領域検出部230の条件設定部231(図1)が、撮像モード情報と条件テーブルCTとに基づき、後に実行される顔領域検出処理の際の検出条件を特定し、使用ウィンドウサイズとウィンドウ移動範囲と使用顔学習データとを設定する。
【0031】
図4は、条件テーブルCTの内容の一例を示す説明図である。図4に示すように、条件テーブルCTには、撮像モード毎に、検出サイズと検出傾きと検出向きと検出範囲とが定められている。検出サイズは、顔領域検出処理の対象となる画像(後述の顔検出用画像FDImg(図10参照))から顔領域として検出すべき画像領域のサイズである。条件テーブルCTには、顔検出用画像FDImgのサイズが横320画素×縦240画素である場合の検出サイズが示されている。なお、本実施例では、顔領域は正方形形状の画像領域として検出されるものとされており、検出サイズは、顔領域の1辺の長さが画素数を単位として規定されている。
【0032】
図4に示すように、通常モードについては、検出サイズが20画素から240画素までと規定されている。この検出サイズの範囲は、本実施例において検出可能な顔領域のサイズの範囲全体である。ポートレートモードについては、検出サイズが60画素から180画素までと規定されており、比較的小さいサイズ(20画素から60画素まで)および比較的大きいサイズ(180画素から240画素まで)が検出サイズから除外されている。すなわち、ポートレートモードにおいては、顔検出用画像FDImgのサイズに対して比較的小さいサイズおよび比較的大きいサイズの顔領域の検出は実行されない。スマイルモードについては、検出サイズが60画素から240画素までと規定されており、比較的小さいサイズ(20画素から60画素まで)が検出サイズから除外されている。すなわち、スマイルモードにおいては、顔検出用画像FDImgのサイズに対して比較的小さいサイズの顔領域の検出は実行されない。証明写真モードについては、検出サイズが180画素から240画素までと規定されており、比較的大きいサイズのみに限定されている。すなわち、証明写真モードにおいては、顔検出用画像FDImgのサイズに対して比較的大きいサイズの顔領域の検出のみが実行される。
【0033】
条件設定部231は、条件テーブルCT(図4)に規定された検出サイズに従った顔領域の検出が実行されるように、使用ウィンドウサイズを設定する。本実施例では、後述するように、顔領域検出処理(図2のステップS150、S180およびS210)において、顔検出用画像FDImg上に正方形形状のウィンドウSWがそのサイズおよび位置が変更されつつ配置され、配置されたウィンドウSWにより規定される顔検出用画像FDImg上の画像領域である判定対象画像領域JIAが顔の画像に対応する画像領域であるか否かを判定することにより、顔領域の検出が行われる(図10参照)。使用ウィンドウサイズは、顔領域検出処理において使用されるウィンドウSWのサイズの範囲(すなわち判定対象画像領域JIAのサイズとして取りうる値の範囲)である。
【0034】
図5は、使用ウィンドウサイズの設定方法の一例を示す説明図である。条件設定部231(図1)は、図5(a)に示す予め設定された15個のウィンドウSWの標準サイズを有している。すなわち、ウィンドウSWの標準サイズ(1辺の長さ)は、20画素(最小サイズ)、24画素、29画素、35画素、41画素、50画素、60画素、72画素、86画素、103画素、124画素、149画素、180画素、213画素、240画素(最大サイズ)の合計15個のサイズである。図5(b)には、顔検出用画像FDImg上に配置された最小サイズのウィンドウSW(SWs(20))と最大サイズのウィンドウSW(SWs(240))とを示している。
【0035】
条件設定部231は、撮像モード毎に、15個のウィンドウSWの標準サイズの内、条件テーブルCT(図4)に規定された検出サイズの範囲内に含まれる標準サイズを、使用ウィンドウサイズとして設定する。通常モードについては、検出サイズが20画素から240画素までと規定されているため、ウィンドウSWの15個の標準サイズのすべてが使用ウィンドウサイズとして設定される。
【0036】
ポートレートモードについては、図5(c)に示すように、検出サイズが60画素から180画素までと規定されているため、使用ウィンドウサイズは、検出サイズ内に含まれる標準サイズである60画素、72画素、86画素、103画素、124画素、149画素、180画素の7個のサイズとなる。スマイルモードについては、図5(d)に示すように、検出サイズが60画素から240画素までと規定されているため、使用ウィンドウサイズは、検出サイズ内に含まれる標準サイズである60画素、72画素、86画素、103画素、124画素、149画素、180画素、213画素、240画素の9個のサイズとなる。証明写真モードについては、図5(e)に示すように、検出サイズが180画素から240画素までと規定されているため、使用ウィンドウサイズは、検出サイズ内に含まれる標準サイズである180画素、213画素、240画素の3個のサイズとなる。
【0037】
条件テーブルCT(図4)に規定された検出範囲は、顔領域検出処理の対象となる画像(後述の顔検出用画像FDImg)における顔領域の検出を行うべき画像領域である。図4に示すように、通常モードについては、検出範囲は顔検出用画像FDImgの全領域であると規定されている。一方、その他のモード(ポートレートモード、スマイルモード、証明写真モード)については、検出範囲は、顔検出用画像FDImgの一部の画像領域であると規定されている。なお図4には、条件テーブルCTにおいて、ポートレートモード、スマイルモード、証明写真モードについての検出範囲が顔検出用画像FDImgの一部の画像領域であることが規定されていることのみを示しているが、実際には、各撮像モードについて、顔検出用画像FDImgにおける検出範囲が規定されている。
【0038】
条件設定部231は、条件テーブルCT(図4)に規定された検出範囲に従った顔領域の検出が実行されるように、ウィンドウ移動範囲を設定する。ウィンドウ移動範囲は、顔領域検出処理(図2のステップS150、S180およびS210)において、ウィンドウSWが配置され得る顔検出用画像FDImg上の範囲(すなわち判定対象画像領域JIAが位置し得る範囲)である(図10参照)。通常モードについては、検出範囲が顔検出用画像FDImgの全領域であると規定されているため、ウィンドウ移動範囲は、顔検出用画像FDImgの全領域に設定される。
【0039】
図6は、検出範囲が顔検出用画像FDImgの一部の領域である場合におけるウィンドウ移動範囲の設定方法の一例を示す説明図である。図6(a)には、例えばポートレートモードについて規定された顔検出用画像FDImg上の検出範囲DAを示している。ポートレートモードについては、図6(a)に示すように、ウィンドウSWが顔検出用画像FDImgの外側にはみ出さない限りにおいて、ウィンドウSWの中心が検出範囲DA内に位置するような範囲が、ウィンドウ移動範囲として設定される。このようにウィンドウ移動範囲を設定することは、検出範囲DAにおいてウィンドウSWにより規定される判定対象画像領域JIAが設定されると表現できる。なお、図6(b)に示すように、ポートレートモードについて、ウィンドウ移動範囲が、顔検出用画像FDImg上においてウィンドウSW全体が検出範囲DA内に含まれるような範囲として設定されるものとしてもよい。スマイルモードおよび証明写真モードについても、ポートレートモードと同様に、撮像モードに応じて規定された検出範囲DAに基づいて、ウィンドウ移動範囲が設定される。
【0040】
条件テーブルCT(図4)に規定された検出傾きは、顔領域検出処理の対象となる画像(顔検出用画像FDImg)において顔領域として検出すべき顔の画像の傾き(以下、「顔傾き」とも呼ぶ)である。ここで、顔傾きとは、画像面内(インプレーン)における顔の画像の回転角度を意味している。図7は、各顔傾きに対応する顔の画像の一例を示す説明図である。本実施例では、横長画像である顔検出用画像FDImg(図10参照)の天地方向と、顔の画像の天地方向とが一致した状態(図7(a)の状態)を顔傾きが0度であると定義し、顔傾きが0度の状態から顔の画像が時計回りに回転する方向をプラスの方向として、顔傾きをマイナス180度からプラス180度までの値で示すものとしている。
【0041】
図4に示すように、通常モードについては、検出傾きは、マイナス180度からプラス180度まで、すなわち、すべての傾きであると規定されている。そのため、通常モードにおいては、顔検出用画像FDImgにおけるあらゆる顔傾きを有する顔の画像に対応する顔領域が検出され得る。
【0042】
ポートレートモードおよびスマイルモードについては、図4に示すように、検出傾きは、マイナス120度からプラス120度までと規定されている。そのため、ポートレートモードおよびスマイルモードにおいては、顔検出用画像FDImgにおける顔傾きがマイナス120度からプラス120度までの顔の画像に対応する顔領域が検出され得る。なお、ポートレートモードおよびスマイルモードについては、顔傾きが、顔の画像の天地方向が顔検出用画像FDImgにおける天地方向または水平方向に一致する状態の顔傾きからプラスマイナス30度の範囲内にある顔の画像に対応する顔領域を検出するために、検出傾きがマイナス120度からプラス120度までと規定されている。
【0043】
証明写真モードについては、図4に示すように、検出傾きがマイナス95度からマイナス85度までおよびプラス85度からプラス95度までと規定されている。そのため、証明写真モードにおいては、顔検出用画像FDImgにおける顔傾きがマイナス95度からマイナス85度までおよびプラス85度からプラス95度までの顔の画像に対応する顔領域が検出され得る。なお、証明写真モードについては、顔の画像の天地方向が横長の顔検出用画像FDImgにおける水平方向にほぼ一致するような顔の画像に対応する顔領域を検出するために、検出傾きが上述のような角度であると規定されている。
【0044】
条件テーブルCT(図4)に規定された検出向きは、顔領域検出処理の対象となる画像(顔検出用画像FDImg)において顔領域として検出すべき顔の画像の向き(以下、「顔向き」とも呼ぶ)である。ここで、顔向きとは、画像面外(アウトプレーン)における顔の画像の向きを意味している。図8は、各顔向きに対応する顔の画像の一例を示す説明図である。本実施例では、デジタルスチルカメラ等の画像生成装置の撮像面に正対した顔の画像の顔向きを「正面向き」と定義し、撮像面に向かって右を向いた顔の画像(画像の観賞者からみて左を向いた顔の画像)の顔向きを「右向き」と、撮像面に向かって左を向いた顔の画像(画像の観賞者からみて右を向いた顔の画像)の顔向きを「左向き」と定義している。
【0045】
図4に示すように、通常モードについては、検出向きは、正面向き、右向き、左向きのすべてであると規定されている。そのため、通常モードにおいては、顔検出用画像FDImgにおける正面向き、右向き、左向きの顔の画像に対応する顔領域が検出され得る。ポートレートモード、スマイルモード、証明写真モードについては、図4に示すように、検出向きは、正面向きのみと規定されている。そのため、これらのモードにおいては、顔検出用画像FDImgにおける正面向きの顔の画像に対応する顔領域のみが検出され得る。
【0046】
条件設定部231は、条件テーブルCT(図4)に規定された検出傾きおよび検出向きに従った顔領域の検出が実行されるように、複数の顔学習データFLD(図1)の中から使用する顔学習データFLDを設定する。顔学習データFLDの内容については後述するが、各顔学習データFLDは、当該顔学習データFLDを用いた顔領域検出処理によって検出可能な顔の画像の顔傾きおよび顔向きに対応付けられて設定されている。すなわち、使用する顔学習データFLDが設定されると、顔領域検出処理によって検出可能な顔の画像の顔傾きおよび顔向きが定まる。
【0047】
通常モードについては、図4に示すように、検出傾きがマイナス180度からプラス180度まで(すなわち、すべての顔傾き)と規定され、検出向きが正面向き、右向き、左向きのすべてであると規定されているため、すべての顔傾きおよびすべての顔向きに対応付けられた顔学習データFLDが、使用する顔学習データFLDとして設定される。
【0048】
ポートレートモードおよびスマイルモードについては、図4に示すように、検出傾きがマイナス120度からプラス120度までと規定され、検出向きが正面向きのみであると規定されているため、当該顔傾きおよび顔向きに対応付けられた顔学習データFLDが、使用する顔学習データFLDとして設定される。
【0049】
証明写真モードについては、図4に示すように、検出傾きがマイナス95度からマイナス85度までおよびプラス85度からプラス95度までと規定され、検出向きが正面向きのみであると規定されているため、当該顔傾きおよび顔向きに対応付けられた顔学習データFLDが、使用する顔学習データFLDとして設定される。
【0050】
ステップS130(図2)では、画像生成部210(図1)が、撮像準備指示を取得し、撮像準備指示に応じて準備画像PImgを生成する。撮像準備指示は、例えばユーザが操作部116に含まれるシャッターボタンを半押しすると、画像生成部210に伝えられる。準備画像PImgは、撮像前の種々の処理に用いられる画像である。画像生成部210は、レンズ102や撮像素子108等を制御して、準備画像PImgを生成する。なお、表示部114が撮像時のファインダーとして利用されている場合には、準備画像PImgが表示部114に表示される。
【0051】
画像生成処理(図2)におけるステップS140以降は、撮像モード情報により特定される撮像モードに応じた処理が実行される。撮像モードが通常モードである場合には、顔領域検出処理(ステップS150)が実行される。顔領域検出処理は、準備画像PImgに基づき生成された顔検出用画像FDImgにおける顔の画像に対応する画像領域を顔領域FAとして検出する処理である。顔領域検出処理の際には、ステップS120で設定された使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データが採用される。すなわち、通常モードにおいては、ウィンドウSWの15個の標準サイズ(図5(a)参照)のすべてが使用ウィンドウサイズとして設定され、ウィンドウ移動範囲が顔検出用画像FDImgの全領域に設定され、すべての顔傾きおよびすべての顔向きに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。なお、顔領域検出処理の内容は後に詳述する。
【0052】
顔領域検出処理(図2のステップS150)が完了すると、画像生成部210(図1)が、撮像指示を取得する(ステップS160)。撮像指示は、例えばユーザが操作部116に含まれるシャッターボタンを半押しした状態から全押しすると、画像生成部210に伝えられる。ステップS170では、画像生成部210が、撮像指示に応じて、レンズ102や撮像素子108等を制御して撮像を行うことにより画像データを生成する。なお、画像生成部210は、顔領域検出処理において顔領域FAが検出された場合には、画像データ生成の際に、検出された顔領域FAを利用した所定の画像処理を実行するものとしてもよい。所定の画像処理としては、例えば顔の肌に対応する画像の部分の色を好ましい肌色に調整するための肌色補正や、顔の画像を変形させる変形処理等が挙げられる。
【0053】
一方、撮像モードがポートレートモードまたは証明写真モードである場合には、やはり、ステップS120で設定された使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データを採用した顔領域検出処理(図2のステップS180)が実行される。すなわち、ポートレートモードにおいては、上述した7個のウィンドウSWのサイズが使用ウィンドウサイズとして設定され(図5(c)参照)、ウィンドウSWの中心が検出範囲DA内に位置するようなウィンドウ移動範囲が設定され、マイナス120度からプラス120度までの顔傾きと正面向きの顔向きとに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。また、証明写真モードにおいては、上述した3個のウィンドウSWのサイズが使用ウィンドウサイズとして設定され(図5(e)参照)、ウィンドウSWの中心が検出範囲DA内に位置するようなウィンドウ移動範囲が設定され、マイナス95度からマイナス85度までおよびプラス85度からプラス95度までの顔傾きと正面向きの顔向きとに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。
【0054】
顔領域検出処理(図2のステップS180)において顔領域FAが検出されなかった場合には(ステップS190:No)、再度、顔領域検出処理が実行される。顔領域検出処理において顔領域FAが検出された場合には(ステップS190:Yes)、画像生成部210が、レンズ102や撮像素子108等を制御して撮像を行うことにより画像データを生成する(ステップS200)。すなわち、撮像モードがポートレートモードまたは証明写真モードである場合には、ユーザによる撮像指示(図2のステップS160参照)に応じてではなく、顔領域検出処理における顔領域FAの検出に応じて自動的に、撮像による画像データの生成が実行される。なお、ポートレートモードまたは証明写真モードにおいても、通常モード時と同様に、画像データ生成の際に、検出された顔領域FAを利用した所定の画像処理を実行するものとしてもよい。
【0055】
撮像モードがスマイルモードである場合には、やはり、ステップS120で設定された使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データを採用した顔領域検出処理(図2のステップS210)が実行される。すなわち、スマイルモードにおいては、上述した9個のウィンドウSWのサイズが使用ウィンドウサイズとして設定され(図5(d)参照)、ウィンドウSWの中心が検出範囲DA内に位置するようなウィンドウ移動範囲が設定され、マイナス120度からプラス120度までの顔傾きと正面向きの顔向きとに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。
【0056】
顔領域検出処理(図2のステップS210)において、顔領域FAが検出されなかった場合には(ステップS220:No)、再度、顔領域検出処理が実行される。顔領域検出処理において、顔領域FAが検出された場合には(ステップS220:Yes)、表情判別部240(図1)が、表情データEDを利用して笑顔判定を行う(ステップS230)。笑顔判定は、検出された顔領域FAに対応する顔の画像の表情が笑顔であるか否かを判定する処理である。笑顔判定は、顔領域FAから顔器官学習データOLD(図1)を用いて顔の器官の画像に対応する画像領域である器官領域の検出を行うと共に、顔および顔の器官の輪郭検出を行い、口角の開き具合、鼻唇溝の有無、目尻の下がり具合等を総合的に評価することにより実行可能である。なお、笑顔判定の実行に必要な技術は、特開2004−178593号公報や、副島義貴著「場景変動を考慮した移動物体の追跡に関する研究」1998年2月15日等に記載されている。また、器官領域の検出は、使用する学習データが顔学習データFLDではなく顔器官学習データOLDであることを除けば、顔領域検出処理と同様の処理により実行可能である。
【0057】
笑顔判定(図2のステップS230)において、検出された顔領域FAに対応する顔の画像の表情は笑顔ではないと判定された場合には(ステップS240:No)、再度、顔領域検出処理が実行される。一方、笑顔判定において検出された顔領域FAに対応する顔の画像の表情が笑顔であると判定された場合には(ステップS240:Yes)、画像生成部210が、レンズ102や撮像素子108等を制御して撮像を行うことにより画像データを生成する(ステップS250)。すなわち、撮像モードがスマイルモードである場合には、ユーザによる撮像指示(図2のステップS160参照)に応じてではなく、顔領域検出処理における顔領域FAの検出および笑顔判定における笑顔であるとの判定に応じて自動的に、撮像による画像データの生成が実行される。なお、スマイルモードにおいても、通常モード時と同様に、画像データ生成の際に、検出された顔領域FAを利用した所定の画像処理を実行するものとしてもよい。
【0058】
A−3.顔領域検出処理:
図9は、実施例における顔領域検出処理(図2のステップ150、S180およびS210)の流れを示すフローチャートである。また、図10は、顔領域検出処理の概要を示す説明図である。顔領域検出処理は、対象画像データの表す対象画像から顔の画像に対応する画像領域である顔領域FAの検出を行う処理である。図10の最上段には、画像生成処理(図2)のステップS130において生成された準備画像PImgを示している。
【0059】
ステップS310(図9)では、領域検出部230(図1)が、準備画像PImgを表す準備画像データから顔検出用画像FDImgを表す顔検出用画像データを生成する。本実施例では、図10に示すように、顔検出用画像FDImgは横320画素×縦240画素のサイズの画像である。領域検出部230は、必要により準備画像データの解像度変換を行うことにより、顔検出用画像FDImgを表す顔検出用画像データを生成する。なお、本実施例の顔領域検出処理において、顔検出用画像FDImgを表す顔検出用画像データは、本発明における対象画像を表す対象画像データに相当する。
【0060】
ステップS320(図3)では、判定対象設定部232(図1)が、判定対象画像領域JIAの設定に用いるウィンドウSWのサイズを初期値に設定する。ステップS330では、判定対象設定部232が、ウィンドウSWを顔検出用画像FDImg上の初期位置に配置する。ステップS340では、判定対象設定部232が、顔検出用画像FDImg上に配置されたウィンドウSWにより規定される画像領域を、顔の画像に対応する顔領域であるか否かの判定(以下「顔判定」とも呼ぶ)の対象となる判定対象画像領域JIAに設定する。
【0061】
ここで、ウィンドウSWのサイズの初期値およびウィンドウSWの顔検出用画像FDImg上における初期位置は、画像生成処理(図2)のステップS120で設定された使用ウィンドウサイズおよびウィンドウ移動範囲に基づき設定される。具体的には、ウィンドウSWのサイズの初期値は、使用ウィンドウサイズの中で最大のサイズに設定される。例えば、撮像モードがポートレートモードに設定されたときの顔領域検出処理(図2のステップS180)では、図5(c)に示すポートレートモードにおける使用ウィンドウサイズの内の最大サイズである180画素が、ウィンドウSWのサイズの初期値として設定される。また、ウィンドウSWの顔検出用画像FDImg上における初期位置は、ウィンドウSWがウィンドウ移動範囲内に位置する限りにおいて最も左上側の位置である。すなわち、ウィンドウSWの中心が検出範囲DAの左上の頂点に重なるような位置である(図6(a)参照)。ただし、このように初期位置を設定するとウィンドウSWが顔検出用画像FDImgの外側にはみ出してしまう場合には、初期位置は、ウィンドウSWの上辺または左辺が顔検出用画像FDImgの上辺または左辺に重なるような位置である。図10の中段には、顔検出用画像FDImg上に初期値のサイズのウィンドウSWが初期位置に配置され、ウィンドウSWにより規定される画像領域が判定対象画像領域JIAとして設定された様子を示している。
【0062】
ステップS350(図9)では、評価値算出部233(図1)が、判定対象画像領域JIAについて、判定対象画像領域JIAに対応する画像データ基づき、顔判定に用いる累計評価値Tvを算出する。なお、本実施例では、顔判定は、画像生成処理(図2)のステップS120で設定された使用顔学習データを用いて行われる。すなわち、顔判定は、判定対象画像領域JIAが、使用顔学習データを構成する各顔学習データFLD(図1)に対応付けられた顔傾きおよび顔向きを有する顔の画像に対応する画像領域であるか否かを判定することにより実行される。また、本実施例では、顔学習データFLDは、特定顔傾きおよび特定顔向きの組み合わせ毎に用意されている。ここで、特定顔傾きは、予め設定された図7に示す12個の顔傾きであり、特定顔向きは、予め設定された図8に示す3個の顔向きである。評価値算出部233は、ステップS120で設定された使用顔学習データに対応する特定顔傾きおよび特定顔向きの組み合わせ毎に、累計評価値Tvを算出する。
【0063】
図11は、顔判定に用いる累計評価値Tvの算出方法の概要を示す説明図である。本実施例では、累計評価値Tvの算出にN個のフィルタ(フィルタ1〜フィルタN)が用いられる。各フィルタの外形はウィンドウSWと同じアスペクト比を有しており(すなわち正方形形状であり)、各フィルタにはプラス領域paとマイナス領域maとが設定されている。評価値算出部233は、判定対象画像領域JIAにフィルタX(X=1,2,・・・,N)を順に適用して評価値vX(すなわちv1〜vN)を算出する。具体的には、評価値vXは、フィルタXのプラス領域paに対応する判定対象画像領域JIA上の領域内に位置する画素の輝度値の合計から、マイナス領域maに対応する判定対象画像領域JIA上の領域内に位置する画素の輝度値の合計を差し引いた値である。
【0064】
算出された評価値vXは、各評価値vXに対応して設定された閾値thX(すなわちth1〜thN)と比較される。本実施例では、評価値vXが閾値thX以上である場合には、フィルタXに関しては判定対象画像領域JIAが顔の画像に対応する画像領域であると判定され、フィルタXの出力値として値「1」が設定される。一方、評価値vXが閾値thXより小さい場合には、フィルタXに関しては判定対象画像領域JIAが顔の画像に対応しない画像領域であると判定され、フィルタXの出力値として値「0」が設定される。各フィルタXには重み係数WeX(すなわちWe1〜WeN)が設定されており、すべてのフィルタについての出力値と重み係数WeXとの積の合計が、累計評価値Tvとして算出される。
【0065】
なお、顔判定に用いられるフィルタXの態様や閾値thX、重み係数WeX、後述の閾値THは、顔学習データFLD(図1)として規定されている。顔学習データFLDは、サンプル画像を用いた学習によって設定される。図12は、学習に用いられるサンプル画像の一例を示す説明図である。学習には、顔の画像に対応する画像であることが予めわかっている複数の顔サンプル画像によって構成された顔サンプル画像群と、顔の画像に対応する画像ではないことが予めわかっている複数の非顔サンプル画像によって構成された非顔サンプル画像群と、が用いられる。
【0066】
学習による顔学習データFLDの設定は特定顔傾きおよび特定顔向きの組み合わせ毎に実行される。そのため、顔サンプル画像群は、12個の特定顔傾きと3個の特定顔向きとの組み合わせのそれぞれに対応するものが準備される。図12には、正面向きの特定顔向きに対応するいくつかの顔サンプル画像群を示している。例えば0度の特定顔傾きと正面向きの特定顔向きとの組み合わせについての顔学習データFLDの設定は、0度の特定顔傾きと正面向きの特定顔向きとの組み合わせに対応する顔サンプル画像群と非顔サンプル画像群とを用いて実行される。
【0067】
各顔サンプル画像群は、画像サイズに対する顔の画像の大きさの比が所定の値の範囲内であると共に顔の画像の傾きが特定顔傾きに等しい複数の顔サンプル画像(以下、「基本顔サンプル画像FIo」とも呼ぶ)を含む。また、顔サンプル画像群は、少なくとも1つの基本顔サンプル画像FIoについて、基本顔サンプル画像FIoを例えば1.2倍から0.8倍までの範囲の所定の倍率で拡大および縮小した画像(例えば図12における画像FIaおよびFIb)や、基本顔サンプル画像FIoを時計回りおよび反時計回りに例えば15度の範囲で所定の角度だけ回転させた画像(例えば図12における画像FIcおよびFId)をも含む。
【0068】
サンプル画像を用いた学習は、例えばニューラルネットワークを用いた方法や、ブースティング(例えばアダブースティング)を用いた方法、サポートベクターマシーンを用いた方法等により実行される。例えば学習がニューラルネットワークを用いた方法により実行される場合には、各フィルタX(すなわちフィルタ1〜フィルタN、図11参照)について、ある顔サンプル画像群と非顔サンプル画像群とに含まれるすべてのサンプル画像を用いて評価値vX(すなわちv1〜vN)が算出され、所定の顔検出率を達成する閾値thX(すなわちth1〜thN)が設定される。ここで、顔検出率とは、顔サンプル画像群を構成する顔サンプル画像の総数に対する、評価値vXによる閾値判定によって顔の画像に対応する画像であると判定される顔サンプル画像の数の割合を意味している。
【0069】
次に、各フィルタXに設定された重み係数WeX(すなわちWe1〜WeN)が初期値に設定され、顔サンプル画像群および非顔サンプル画像群の中から選択された1つのサンプル画像についての累計評価値Tvが算出される。後述するように、顔判定においては、ある画像について算出された累計評価値Tvが所定の閾値TH以上の場合には、当該画像は顔の画像に対応する画像であると判定される。学習においては、選択されたサンプル画像(顔サンプル画像または非顔サンプル画像)について算出された累計評価値Tvによる閾値判定結果の正誤に基づき、各フィルタXに設定された重み係数WeXの値が修正される。以降、サンプル画像の選択と、選択されたサンプル画像について算出された累計評価値Tvによる閾値判定、および判定結果の正誤に基づく重み係数WeXの値の修正が、顔サンプル画像群および非顔サンプル画像群に含まれるすべてのサンプル画像について繰り返し実行される。以上の処理が特定顔傾きおよび特定顔向きの組み合わせ毎に実行されることにより、特定顔傾きおよび特定顔向きの組み合わせ毎の顔学習データFLDが設定される。
【0070】
判定対象画像領域JIAについて画像生成処理(図2)のステップS120で設定された使用顔学習データに対応する特定顔傾きおよび特定顔向きの組み合わせ毎に累計評価値Tvが算出されると(図9のステップS350)、判定部234(図1)は、累計評価値Tvを特定顔傾きおよび特定顔向きの組み合わせ毎に設定された閾値THと比較する(ステップS360)。累計評価値Tvが閾値TH以上である場合には、領域検出部230が、判定対象画像領域JIAは当該特定顔傾きおよび当該特定顔向きを有する顔の画像に対応する画像領域であるとして、判定対象画像領域JIAの位置、すなわち現在設定されているウィンドウSWの座標と、当該特定顔傾きおよび当該特定顔向きと、を記憶する(ステップS370)。一方、いずれの特定顔傾きおよび当該特定顔向きの組み合わせについても累計評価値Tvが閾値THより小さい場合には、ステップS370の処理はスキップされる。
【0071】
ステップS380(図9)では、領域検出部230(図1)が、現在設定されているサイズのウィンドウSWにより、図2のステップS120で設定されたウィンドウ移動範囲全体がスキャンされたか否かを判定する。未だウィンドウ移動範囲全体がスキャンされていないと判定された場合には、判定対象設定部232(図1)が、ウィンドウSWを所定の方向に所定のウィンドウ移動ピッチSPだけ移動する(ステップS390)。図10の下段には、ウィンドウSWが移動した様子を示している。ウィンドウ移動ピッチSPは、例えば、縦方向および横方向共にウィンドウSWのサイズに0.2を乗じた値である。ステップS390では、ウィンドウSWがこのウィンドウ移動ピッチSP分の移動量で右方向に移動する。また、ウィンドウSWがさらに右方向には移動できない位置に配置されている場合には、ステップS390において、ウィンドウSWがウィンドウ移動範囲の左端まで戻ると共に、ウィンドウ移動ピッチSP分の移動量で下方向に移動する。ウィンドウSWがさらに下方向には移動できない位置に配置されている場合には、ウィンドウ移動範囲全体がスキャンされたこととなる。ウィンドウSWの移動(ステップS390)の後には、移動後のウィンドウSWについて、上述のステップS340以降の処理が実行される。
【0072】
ステップS380(図9)において現在設定されているサイズのウィンドウSWによりウィンドウ移動範囲全体がスキャンされたと判定された場合には、図2のステップS120で設定された使用ウィンドウサイズがすべて使用されたか否かが判定される(ステップS400)。未だ使用されていない使用ウィンドウサイズがあると判定された場合には、判定対象設定部232(図1)が、ウィンドウSWのサイズを現在設定されているサイズの次に小さい使用ウィンドウサイズに変更する(ステップS410)。すなわち、ウィンドウSWのサイズは、最初に使用ウィンドウサイズの内の最大サイズに設定され、その後、順に小さいサイズに変更されていく。ウィンドウSWのサイズの変更(ステップS410)の後には、変更後のサイズのウィンドウSWについて、上述のステップS330以降の処理が実行される。
【0073】
ステップS400(図9)において使用ウィンドウサイズがすべて使用されたと判定された場合には、領域設定部235(図1)が、顔領域設定処理を実行する(ステップS420)。図13および図14は、顔領域設定処理の概要を示す説明図である。領域設定部235は、図9のステップS360において累計評価値Tvが閾値TH以上であると判定されステップS370において記憶されたウィンドウSWの座標(すなわちウィンドウSWの位置およびサイズ)と特定顔傾きとに基づき、顔の画像に対応する画像領域としての顔領域FAを設定する。具体的には、特定顔傾きが0度である場合には、ウィンドウSWにより規定される画像領域(すなわち判定対象画像領域JIA)が、そのまま顔領域FAとして設定される。一方、特定顔傾きが0度以外である場合には、ウィンドウSWにより規定される画像領域(判定対象画像領域JIA)を所定の点(例えばウィンドウSWの重心)を中心として特定顔傾き分だけ回転させた画像領域が顔領域FAとして設定される。例えば図13(a)に示すように、30度の特定顔傾きについて累計評価値Tvが閾値TH以上であると判定された場合には、図13(b)に示すように、ウィンドウSWにより規定される画像領域をウィンドウSWの重心を中心として時計回りに30度回転させた画像領域が顔領域FAとして設定される。
【0074】
また、領域設定部235は、ステップS370において、ある特定顔傾きおよび特定顔向きの組み合わせについて互いに一部が重複する複数のウィンドウSWが記憶された場合には、各ウィンドウSWにおける所定の点(例えばウィンドウSWの重心)の座標の平均の座標を重心とし、各ウィンドウSWのサイズの平均のサイズを有する1つの新たなウィンドウ(以下、「平均ウィンドウAW」とも呼ぶ)を設定する。例えば図14(a)に示すように、互いに一部が重複する4つのウィンドウSW(SW1〜SW4)が記憶された場合には、図14(b)に示すように、4つのウィンドウSWのそれぞれの重心の座標の平均の座標を重心とし、4つのウィンドウSWのそれぞれのサイズの平均のサイズを有する1つの平均ウィンドウAWが定義される。このとき、上述したのと同様に、特定顔傾きが0度である場合には、平均ウィンドウAWにより規定される画像領域がそのまま顔領域FAとして設定される。一方、特定顔傾きが0度以外である場合には、平均ウィンドウAWにより規定される画像領域を所定の点(例えば平均ウィンドウAWの重心)を中心として特定顔傾き分だけ回転させた画像領域が顔領域FAとして設定される(図14(c)参照)。
【0075】
なお、図13に示したように、他のウィンドウSWと重複しない1つのウィンドウSWが記憶された場合にも、図14に示した互いに一部が重複する複数のウィンドウSWが記憶された場合と同様に、1つのウィンドウSW自身が平均ウィンドウAWであると解釈することも可能である。
【0076】
本実施例では、学習の際に用いられる顔サンプル画像群(図12参照)に、基本顔サンプル画像を例えば1.2倍から0.8倍までの範囲の所定の倍率で拡大および縮小した画像(例えば図12における画像FIaおよびFIb)が含まれているため、ウィンドウSWの大きさに対する顔の画像の大きさが基本顔サンプル画像FIoと比べてわずかに大きかったり小さかったりする場合にも、顔領域FAが検出されうる。従って、本実施例では、ウィンドウSWの標準サイズとして上述した15個の離散的なサイズのみが設定されているが、あらゆる大きさの顔の画像について顔領域FAが検出されうる。同様に、本実施例では、学習の際に用いられる顔サンプル画像群に、基本顔サンプル画像を時計回りおよび反時計回りに例えば15度の範囲で所定の角度だけ回転させた画像(例えば図12における画像FIcおよびFId)が含まれているため、ウィンドウSWに対する顔の画像の傾きが基本顔サンプル画像FIoとはわずかに異なっている場合にも、顔領域FAが検出されうる。従って、本実施例では、特定顔傾きとして上述した12個の離散的な角度のみが設定されているが、あらゆる角度の顔の画像について顔領域FAが検出されうる。
【0077】
なお、顔領域検出処理において検出された顔領域FAから顔の器官の画像に対応する画像領域である器官領域の検出を行う器官領域検出処理は、顔領域検出処理と同様に、顔領域FA上にウィンドウSWをサイズおよび位置を変更しつつ配置し、配置されたウィンドウSWにより規定される画像領域が顔の器官の画像に対応する画像領域であるか否かを判定することにより、実行可能である。また、器官領域検出処理に用いられる顔器官学習データOLD(図1)は、顔学習データFLDと同様に、サンプル画像群を用いた学習により設定可能である。
【0078】
以上説明したように、本実施例の画像生成処理(図2)では、顔領域の検出結果の用途を特定可能な情報である撮像モード情報が取得され、撮像モード情報に基づき、使用ウィンドウサイズ(すなわち判定対象画像領域JIAのサイズとして取りうる値の範囲)と、ウィンドウ移動範囲(すなわち判定対象画像領域JIAが位置し得る範囲)と、が設定される。なお、判定対象画像領域JIAのサイズとして取りうる値の範囲と判定対象画像領域JIAが位置し得る範囲とは、まとめて判定対象画像領域JIAの設定条件と表現することができる。そのため、顔領域検出処理において、撮像モードに応じた処理に必要なサイズおよび位置の顔領域の検出のみが実行される。従って、本実施例の画像生成処理では、対象画像からの顔領域の検出の際に、処理の高速化を図ることができる。
【0079】
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0080】
B1.変形例1:
上記実施例では、DSC100による画像生成処理を例に用いて説明したが、本発明は、DSC100以外の他の画像処理装置にも適用可能である。例えば、本発明は、デジタルビデオカメラ等の他の画像生成装置による画像生成処理にも適用可能である。また、本発明は、パーソナルコンピュータやプリンタにおいて、画像データと撮像モード情報とを含む画像ファイルが取得された場合における、画像データの表す画像を対象とした顔領域検出処理にも適用可能である。この場合には、画像ファイルに含まれる撮像モード情報が取得され、撮像モード情報により特定される撮像モードに応じて、使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データが設定される。
【0081】
B2.変形例2:
上記実施例における撮像モードの種類(図3)は、あくまで一例であり、DSC100が、図3に示した撮像モードの一部を有さないとしてもよいし、他の撮像モードを有するとしてもよい。また、条件テーブルCT(図4)において撮像モードに応じて規定された検出サイズ、検出傾き、検出向き、検出範囲は、あくまで一例であり、種々変更可能である。
【0082】
B3.変形例3:
上記実施例では、正方形形状のウィンドウSWを採用しているが、ウィンドウSWの形状は正方形形状に限られない。例えば、ウィンドウSWの形状は、円形形状であってもよい。この場合には、ウィンドウSWのサイズは、例えば円の径により特定される。
【0083】
B4.変形例4:
上記実施例における顔領域検出処理(図9)の態様はあくまで一例であり、種々変更可能である。例えば顔検出用画像FDImg(図10参照)のサイズは320画素×240画素に限られず、他のサイズであってもよいし、準備画像PImgそのものを顔検出用画像FDImgとして用いることも可能である。また、使用されるウィンドウSWのサイズやウィンドウSWの移動方向および移動量(移動ピッチ)は上述したものに限られない。また、上記実施例では、顔検出用画像FDImgのサイズが固定され、複数種類のサイズのウィンドウSWが顔検出用画像FDImg上に配置されることにより複数サイズの判定対象画像領域JIAが設定されているが、複数種類のサイズの顔検出用画像FDImgが生成され、固定サイズのウィンドウSWが顔検出用画像FDImg上に配置されることにより複数サイズの判定対象画像領域JIAが設定されるものとしてもよい。
【0084】
また、上記実施例では、累計評価値Tvを閾値THと比較することにより顔判定を行っているが(図11参照)、顔判定を複数の判別器を用いた判別等の他の方法によって行ってもよい。顔判定の方法に応じて、顔学習データFLDの設定に用いられる学習方法も変更される。また、顔判定は、必ずしも学習を用いた判別方法により行われる必要はなく、パターンマッチング等の他の方法により行われるとしてもよい。
【0085】
また、上記実施例では、30度刻みの12種類の特定顔傾き(図12参照)が設定されているが、より多くの種類の特定顔傾きが設定されてもよいし、より少ない種類の特定顔傾きが設定されてもよい。また、必ずしも特定顔傾きが設定される必要はなく、0度の顔傾きについての顔判定が行われるとしてもよい。また、上記実施例では、顔サンプル画像群に基本顔サンプル画像FIoを拡大・縮小した画像や回転させた画像が含まれるとしているが、顔サンプル画像群に必ずしもこのような画像が含まれる必要はない。
【0086】
上記実施例において、あるサイズのウィンドウSWにより規定される判定対象画像領域JIAについての顔判定で顔の画像に対応する画像領域であると判定された場合には、当該サイズより所定の比率以上小さいサイズのウィンドウSWを配置する場合には、顔の画像に対応する画像領域であると判定された判定対象画像領域JIAを避けて配置するものとしてもよい。このようにすれば、処理の高速化を図ることができる。
【0087】
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0088】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【0089】
【図1】本発明の実施例における画像処理装置としてのデジタルスチルカメラ100の構成を概略的に示す説明図である。
【図2】実施例のDSC100による画像生成処理の流れを示すフローチャートである。
【図3】撮像モード情報取得のためのユーザインタフェースの一例を示す説明図である。
【図4】条件テーブルCTの内容の一例を示す説明図である。
【図5】使用ウィンドウサイズの設定方法の一例を示す説明図である。
【図6】検出範囲が顔検出用画像FDImgの一部の領域である場合におけるウィンドウ移動範囲の設定方法の一例を示す説明図である。
【図7】各顔傾きに対応する顔の画像の一例を示す説明図である。
【図8】各顔向きに対応する顔の画像の一例を示す説明図である。
【図9】実施例における顔領域検出処理の流れを示すフローチャートである。
【図10】顔領域検出処理の概要を示す説明図である。
【図11】顔判定に用いる累計評価値Tvの算出方法の概要を示す説明図である。
【図12】学習に用いられるサンプル画像の一例を示す説明図である。
【図13】顔領域設定処理の概要を示す説明図である。
【図14】顔領域設定処理の概要を示す説明図である。
【符号の説明】
【0090】
100…デジタルスチルカメラ
102…レンズ
104…レンズ駆動部
106…レンズ駆動制御部
108…撮像素子
110…A/D変換器
114…表示部
116…操作部
118…CPU
122…バス
200…内部メモリ
210…画像生成部
220…モード設定部
230…領域検出部
231…条件設定部
232…判定対象設定部
233…評価値算出部
234…判定部
235…領域設定部
240…表情判別部
【技術分野】
【0001】
本発明は、対象画像からの顔領域の検出に関する。
【背景技術】
【0002】
対象画像データの表す対象画像から部分画像を順次切り出し、切り出した部分画像が顔に対応する画像であるか否かを判定することにより、対象画像から顔の画像に対応する画像領域である顔領域を検出する技術が知られている(例えば特許文献1)。
【0003】
【特許文献1】特開2007−94633
【発明の開示】
【発明が解決しようとする課題】
【0004】
対象画像からの顔領域の検出の際には、処理の高速化が図られることが好ましい。
【0005】
本発明は、上記の課題を解決するためになされたものであり、対象画像からの顔領域検出処理の高速化を図ることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0007】
[適用例1]画像処理装置であって、
対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する用途特定情報取得部と、
前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する条件設定部と、
前記設定条件に従い前記判定対象画像領域を設定する判定対象設定部と、
前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出部と、
前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する顔領域設定部と、を備える、画像処理装置。
【0008】
この画像処理装置では、顔領域検出結果の用途を特定する用途特定情報に基づき対象画像上における判定対象画像領域の設定条件が設定され、設定条件に従い判定対象画像領域が設定され、判定対象画像領域について算出された評価値と判定対象画像領域の位置およびサイズとに基づき顔領域が設定される。従って、この画像処理装置では、対象画像からの顔領域検出処理の高速化を図ることができる。
【0009】
[適用例2]適用例1に記載の画像処理装置であって、
前記設定条件は、前記判定対象画像領域のサイズとして取り得る値の範囲を含む、画像処理装置。
【0010】
この画像処理装置では、用途特定情報に基づき判定対象画像領域のサイズとして取り得る値の範囲が設定されるため、対象画像からの顔領域検出処理の高速化を図ることができる。
【0011】
[適用例3]適用例1または適用例2に記載の画像処理装置であって、
前記設定条件は、前記対象画像における前記判定対象画像領域の位置し得る範囲を含む、画像処理装置。
【0012】
この画像処理装置では、用途特定情報に基づき判定対象画像領域の位置し得る範囲が設定されるため、対象画像からの顔領域検出処理の高速化を図ることができる。
【0013】
[適用例4]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、さらに、
被写体を撮像して画像データを生成する画像生成部を備え、
前記用途は、撮像実行タイミングの設定である、画像処理装置。
【0014】
この画像処理装置では、撮像実行タイミングの設定という用途を特定する用途特定情報に基づき対象画像上における判定対象画像領域の設定条件が設定されるため、被写体を撮像して画像データを生成する際に対象画像からの顔領域検出処理の高速化を図ることができる。
【0015】
[適用例5]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、
前記用途は、前記顔領域に対応する顔の画像の表情の判別である、画像処理装置。
【0016】
この画像処理装置では、顔領域に対応する顔の画像の表情の判別という用途を特定する用途特定情報に基づき対象画像上における判定対象画像領域の設定条件が設定されるため、対象画像からの顔領域検出処理の高速化を図ることができる。
【0017】
[適用例6]適用例1ないし適用例3のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データと前記用途特定情報とを含む画像ファイルを取得する画像取得部を備え、
前記用途特定情報取得部は、前記画像ファイルに含まれる前記用途特定情報を取得する、画像処理装置。
【0018】
この画像処理装置では、取得された画像ファイルに含まれる対象画像データの表す対象画像からの顔領域検出処理の高速化を図ることができる。
【0019】
[適用例7]適用例1ないし適用例6のいずれかに記載の画像処理装置であって、
前記顔領域設定部は、前記評価値に基づき前記判定対象画像領域が顔の画像に対応する画像領域であるか否かを判定し、顔の画像に対応する画像領域であると判定された前記判定対象画像領域の位置およびサイズに基づき前記顔領域を設定する、画像処理装置。
【0020】
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法および装置、顔領域検出方法および装置、顔領域設定方法および装置、画像生成方法および装置、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【0021】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A−1.画像処理装置の構成:
A−2.画像生成処理:
A−3.顔領域検出処理:
B.変形例:
【0022】
A.実施例:
A−1.画像処理装置の構成:
図1は、本発明の実施例における画像処理装置としてのデジタルスチルカメラ100の構成を概略的に示す説明図である。実施例のデジタルスチルカメラ(以下「DSC」とも呼ぶ)100は、被写体としての撮像対象物を撮像して被写体画像を表す画像データを生成する撮像装置(画像生成装置)として機能すると共に、生成された画像データに対する画像処理を行う画像処理装置としても機能する。
【0023】
DSC100は、レンズ102と、レンズ102を駆動して焦点(ピント)の位置や焦点距離を調整するレンズ駆動部104と、レンズ駆動部104を制御するレンズ駆動制御部106と、レンズ102を介して受光面に入力された光を電気信号に変換する撮像素子108と、撮像素子108から出力された電気信号に対するA/D変換を行うA/D変換器110と、外部機器との情報のやり取りのためのインターフェース部(I/F部)112と、液晶ディスプレイにより構成された表示部114と、ボタンやタッチパネルにより構成された操作部116と、DSC100の各部を制御するCPU118と、ROMやRAMによって構成された内部メモリ200と、を備えている。撮像素子108は、例えばCCDを用いて構成される。DSC100の各構成要素は、バス122を介して互いに接続されている。
【0024】
内部メモリ200には、画像生成部210と、モード設定部220と、領域検出部230と、表情判別部240と、が格納されている。画像生成部210は、レンズ102や撮像素子108等を制御して、被写体としての撮像対象物を撮像し、被写体画像を表す画像データを生成するためのコンピュータプログラムである。モード設定部220は、自動的に、あるいは操作部116を介したユーザの指示に従い、撮像モード(後述)を設定するためのコンピュータプログラムである。領域検出部230は、対象画像データの表す対象画像における所定の画像(顔の画像や顔の器官の画像)に対応する画像領域(顔領域や器官領域)の検出を行うコンピュータプログラムである。表情判別部240は、領域検出部230により検出された顔領域に対応する顔の画像の表情の判別を行うコンピュータプログラムである。CPU118は、内部メモリ200から、これらのプログラムを読み出して実行することにより、これら各部の機能を実現する。
【0025】
領域検出部230は、プログラムモジュールとして、条件設定部231と、判定対象設定部232と、評価値算出部233と、判定部234と、領域設定部235と、を含んでいる。領域検出部230は、さらに、撮像モードに応じた顔領域の検出条件を定義する条件テーブルCTと、顔領域の検出に用いられる複数の顔学習データFLDと、器官領域の検出に用いられる複数の顔器官学習データOLDと、を有している。表情判別部240は、表情判別に用いられる複数の表情データEDを有している。これらの各部の機能や各テーブル・データの内容については後述する。
【0026】
図2は、実施例のDSC100による画像生成処理の流れを示すフローチャートである。実施例のDSC100による画像生成処理は、被写体としての撮像対象物を撮像して、被写体画像を表す画像データを生成する処理である。
【0027】
ステップS110(図2)では、モード設定部220(図1)が、撮像モードを特定する撮像モード情報を取得して、使用する撮像モードを設定する。具体的には、モード設定部220は、表示部114上に撮像モード情報得のためのユーザインタフェースを表示させる。図3は、撮像モード情報取得のためのユーザインタフェースの一例を示す説明図である。図3に示すように、本実施例のDSC100は、撮像モードとして、通常モードと、肖像写真を生成するためのポートレートモードと、笑顔の人物の顔を含む写真を生成するためのスマイルモードと、証明写真を生成するための証明写真モードと、の4つのモードを有している。
【0028】
通常モードは、ユーザによる撮像指示に応じて撮像が実行される撮像モードである。初期状態においては、撮像モードは通常モードに設定されている。ポートレートモードおよび証明写真モードは、後述する顔検出用画像FDImgにおいて条件テーブルCT(図1)に定義された検出条件に該当する顔領域が検出された場合に、自動的に撮像が実行される撮像モードである。スマイルモードは、顔検出用画像FDImgにおいて条件テーブルCTに定義された検出条件に該当する顔領域が検出され、検出された顔領域に対応する顔の画像の表情が笑顔であると判定された場合に、自動的に撮像が実行される撮像モードである。ユーザは、操作部116(図1)を介して、所望の撮像モードを選択指定する。モード設定部220は、指定された撮像モードを特定する撮像モード情報を取得し、撮像モード情報により特定される撮像モードを使用する撮像モードとして設定する。
【0029】
なお、本実施例における撮像モード情報は、顔領域の検出結果の用途を特定する情報であると言える。例えば、ポートレートモードまたは証明写真モードであることを示す撮像モード情報は、顔領域の検出結果が撮像実行タイミングの設定に用いられることを特定する情報である。また、スマイルモードであることを示す撮像モード情報は、顔領域の検出結果が、顔領域に対応する顔の画像の表情が笑顔であるか否かの判定に用いられることを特定する情報である。そのため、本実施例における撮像モード情報は、本発明における用途特定情報に相当する。また、撮像モード情報を取得するモード設定部220は、本発明における用途特定情報取得部に相当する。
【0030】
ステップS120(図2)では、領域検出部230の条件設定部231(図1)が、撮像モード情報と条件テーブルCTとに基づき、後に実行される顔領域検出処理の際の検出条件を特定し、使用ウィンドウサイズとウィンドウ移動範囲と使用顔学習データとを設定する。
【0031】
図4は、条件テーブルCTの内容の一例を示す説明図である。図4に示すように、条件テーブルCTには、撮像モード毎に、検出サイズと検出傾きと検出向きと検出範囲とが定められている。検出サイズは、顔領域検出処理の対象となる画像(後述の顔検出用画像FDImg(図10参照))から顔領域として検出すべき画像領域のサイズである。条件テーブルCTには、顔検出用画像FDImgのサイズが横320画素×縦240画素である場合の検出サイズが示されている。なお、本実施例では、顔領域は正方形形状の画像領域として検出されるものとされており、検出サイズは、顔領域の1辺の長さが画素数を単位として規定されている。
【0032】
図4に示すように、通常モードについては、検出サイズが20画素から240画素までと規定されている。この検出サイズの範囲は、本実施例において検出可能な顔領域のサイズの範囲全体である。ポートレートモードについては、検出サイズが60画素から180画素までと規定されており、比較的小さいサイズ(20画素から60画素まで)および比較的大きいサイズ(180画素から240画素まで)が検出サイズから除外されている。すなわち、ポートレートモードにおいては、顔検出用画像FDImgのサイズに対して比較的小さいサイズおよび比較的大きいサイズの顔領域の検出は実行されない。スマイルモードについては、検出サイズが60画素から240画素までと規定されており、比較的小さいサイズ(20画素から60画素まで)が検出サイズから除外されている。すなわち、スマイルモードにおいては、顔検出用画像FDImgのサイズに対して比較的小さいサイズの顔領域の検出は実行されない。証明写真モードについては、検出サイズが180画素から240画素までと規定されており、比較的大きいサイズのみに限定されている。すなわち、証明写真モードにおいては、顔検出用画像FDImgのサイズに対して比較的大きいサイズの顔領域の検出のみが実行される。
【0033】
条件設定部231は、条件テーブルCT(図4)に規定された検出サイズに従った顔領域の検出が実行されるように、使用ウィンドウサイズを設定する。本実施例では、後述するように、顔領域検出処理(図2のステップS150、S180およびS210)において、顔検出用画像FDImg上に正方形形状のウィンドウSWがそのサイズおよび位置が変更されつつ配置され、配置されたウィンドウSWにより規定される顔検出用画像FDImg上の画像領域である判定対象画像領域JIAが顔の画像に対応する画像領域であるか否かを判定することにより、顔領域の検出が行われる(図10参照)。使用ウィンドウサイズは、顔領域検出処理において使用されるウィンドウSWのサイズの範囲(すなわち判定対象画像領域JIAのサイズとして取りうる値の範囲)である。
【0034】
図5は、使用ウィンドウサイズの設定方法の一例を示す説明図である。条件設定部231(図1)は、図5(a)に示す予め設定された15個のウィンドウSWの標準サイズを有している。すなわち、ウィンドウSWの標準サイズ(1辺の長さ)は、20画素(最小サイズ)、24画素、29画素、35画素、41画素、50画素、60画素、72画素、86画素、103画素、124画素、149画素、180画素、213画素、240画素(最大サイズ)の合計15個のサイズである。図5(b)には、顔検出用画像FDImg上に配置された最小サイズのウィンドウSW(SWs(20))と最大サイズのウィンドウSW(SWs(240))とを示している。
【0035】
条件設定部231は、撮像モード毎に、15個のウィンドウSWの標準サイズの内、条件テーブルCT(図4)に規定された検出サイズの範囲内に含まれる標準サイズを、使用ウィンドウサイズとして設定する。通常モードについては、検出サイズが20画素から240画素までと規定されているため、ウィンドウSWの15個の標準サイズのすべてが使用ウィンドウサイズとして設定される。
【0036】
ポートレートモードについては、図5(c)に示すように、検出サイズが60画素から180画素までと規定されているため、使用ウィンドウサイズは、検出サイズ内に含まれる標準サイズである60画素、72画素、86画素、103画素、124画素、149画素、180画素の7個のサイズとなる。スマイルモードについては、図5(d)に示すように、検出サイズが60画素から240画素までと規定されているため、使用ウィンドウサイズは、検出サイズ内に含まれる標準サイズである60画素、72画素、86画素、103画素、124画素、149画素、180画素、213画素、240画素の9個のサイズとなる。証明写真モードについては、図5(e)に示すように、検出サイズが180画素から240画素までと規定されているため、使用ウィンドウサイズは、検出サイズ内に含まれる標準サイズである180画素、213画素、240画素の3個のサイズとなる。
【0037】
条件テーブルCT(図4)に規定された検出範囲は、顔領域検出処理の対象となる画像(後述の顔検出用画像FDImg)における顔領域の検出を行うべき画像領域である。図4に示すように、通常モードについては、検出範囲は顔検出用画像FDImgの全領域であると規定されている。一方、その他のモード(ポートレートモード、スマイルモード、証明写真モード)については、検出範囲は、顔検出用画像FDImgの一部の画像領域であると規定されている。なお図4には、条件テーブルCTにおいて、ポートレートモード、スマイルモード、証明写真モードについての検出範囲が顔検出用画像FDImgの一部の画像領域であることが規定されていることのみを示しているが、実際には、各撮像モードについて、顔検出用画像FDImgにおける検出範囲が規定されている。
【0038】
条件設定部231は、条件テーブルCT(図4)に規定された検出範囲に従った顔領域の検出が実行されるように、ウィンドウ移動範囲を設定する。ウィンドウ移動範囲は、顔領域検出処理(図2のステップS150、S180およびS210)において、ウィンドウSWが配置され得る顔検出用画像FDImg上の範囲(すなわち判定対象画像領域JIAが位置し得る範囲)である(図10参照)。通常モードについては、検出範囲が顔検出用画像FDImgの全領域であると規定されているため、ウィンドウ移動範囲は、顔検出用画像FDImgの全領域に設定される。
【0039】
図6は、検出範囲が顔検出用画像FDImgの一部の領域である場合におけるウィンドウ移動範囲の設定方法の一例を示す説明図である。図6(a)には、例えばポートレートモードについて規定された顔検出用画像FDImg上の検出範囲DAを示している。ポートレートモードについては、図6(a)に示すように、ウィンドウSWが顔検出用画像FDImgの外側にはみ出さない限りにおいて、ウィンドウSWの中心が検出範囲DA内に位置するような範囲が、ウィンドウ移動範囲として設定される。このようにウィンドウ移動範囲を設定することは、検出範囲DAにおいてウィンドウSWにより規定される判定対象画像領域JIAが設定されると表現できる。なお、図6(b)に示すように、ポートレートモードについて、ウィンドウ移動範囲が、顔検出用画像FDImg上においてウィンドウSW全体が検出範囲DA内に含まれるような範囲として設定されるものとしてもよい。スマイルモードおよび証明写真モードについても、ポートレートモードと同様に、撮像モードに応じて規定された検出範囲DAに基づいて、ウィンドウ移動範囲が設定される。
【0040】
条件テーブルCT(図4)に規定された検出傾きは、顔領域検出処理の対象となる画像(顔検出用画像FDImg)において顔領域として検出すべき顔の画像の傾き(以下、「顔傾き」とも呼ぶ)である。ここで、顔傾きとは、画像面内(インプレーン)における顔の画像の回転角度を意味している。図7は、各顔傾きに対応する顔の画像の一例を示す説明図である。本実施例では、横長画像である顔検出用画像FDImg(図10参照)の天地方向と、顔の画像の天地方向とが一致した状態(図7(a)の状態)を顔傾きが0度であると定義し、顔傾きが0度の状態から顔の画像が時計回りに回転する方向をプラスの方向として、顔傾きをマイナス180度からプラス180度までの値で示すものとしている。
【0041】
図4に示すように、通常モードについては、検出傾きは、マイナス180度からプラス180度まで、すなわち、すべての傾きであると規定されている。そのため、通常モードにおいては、顔検出用画像FDImgにおけるあらゆる顔傾きを有する顔の画像に対応する顔領域が検出され得る。
【0042】
ポートレートモードおよびスマイルモードについては、図4に示すように、検出傾きは、マイナス120度からプラス120度までと規定されている。そのため、ポートレートモードおよびスマイルモードにおいては、顔検出用画像FDImgにおける顔傾きがマイナス120度からプラス120度までの顔の画像に対応する顔領域が検出され得る。なお、ポートレートモードおよびスマイルモードについては、顔傾きが、顔の画像の天地方向が顔検出用画像FDImgにおける天地方向または水平方向に一致する状態の顔傾きからプラスマイナス30度の範囲内にある顔の画像に対応する顔領域を検出するために、検出傾きがマイナス120度からプラス120度までと規定されている。
【0043】
証明写真モードについては、図4に示すように、検出傾きがマイナス95度からマイナス85度までおよびプラス85度からプラス95度までと規定されている。そのため、証明写真モードにおいては、顔検出用画像FDImgにおける顔傾きがマイナス95度からマイナス85度までおよびプラス85度からプラス95度までの顔の画像に対応する顔領域が検出され得る。なお、証明写真モードについては、顔の画像の天地方向が横長の顔検出用画像FDImgにおける水平方向にほぼ一致するような顔の画像に対応する顔領域を検出するために、検出傾きが上述のような角度であると規定されている。
【0044】
条件テーブルCT(図4)に規定された検出向きは、顔領域検出処理の対象となる画像(顔検出用画像FDImg)において顔領域として検出すべき顔の画像の向き(以下、「顔向き」とも呼ぶ)である。ここで、顔向きとは、画像面外(アウトプレーン)における顔の画像の向きを意味している。図8は、各顔向きに対応する顔の画像の一例を示す説明図である。本実施例では、デジタルスチルカメラ等の画像生成装置の撮像面に正対した顔の画像の顔向きを「正面向き」と定義し、撮像面に向かって右を向いた顔の画像(画像の観賞者からみて左を向いた顔の画像)の顔向きを「右向き」と、撮像面に向かって左を向いた顔の画像(画像の観賞者からみて右を向いた顔の画像)の顔向きを「左向き」と定義している。
【0045】
図4に示すように、通常モードについては、検出向きは、正面向き、右向き、左向きのすべてであると規定されている。そのため、通常モードにおいては、顔検出用画像FDImgにおける正面向き、右向き、左向きの顔の画像に対応する顔領域が検出され得る。ポートレートモード、スマイルモード、証明写真モードについては、図4に示すように、検出向きは、正面向きのみと規定されている。そのため、これらのモードにおいては、顔検出用画像FDImgにおける正面向きの顔の画像に対応する顔領域のみが検出され得る。
【0046】
条件設定部231は、条件テーブルCT(図4)に規定された検出傾きおよび検出向きに従った顔領域の検出が実行されるように、複数の顔学習データFLD(図1)の中から使用する顔学習データFLDを設定する。顔学習データFLDの内容については後述するが、各顔学習データFLDは、当該顔学習データFLDを用いた顔領域検出処理によって検出可能な顔の画像の顔傾きおよび顔向きに対応付けられて設定されている。すなわち、使用する顔学習データFLDが設定されると、顔領域検出処理によって検出可能な顔の画像の顔傾きおよび顔向きが定まる。
【0047】
通常モードについては、図4に示すように、検出傾きがマイナス180度からプラス180度まで(すなわち、すべての顔傾き)と規定され、検出向きが正面向き、右向き、左向きのすべてであると規定されているため、すべての顔傾きおよびすべての顔向きに対応付けられた顔学習データFLDが、使用する顔学習データFLDとして設定される。
【0048】
ポートレートモードおよびスマイルモードについては、図4に示すように、検出傾きがマイナス120度からプラス120度までと規定され、検出向きが正面向きのみであると規定されているため、当該顔傾きおよび顔向きに対応付けられた顔学習データFLDが、使用する顔学習データFLDとして設定される。
【0049】
証明写真モードについては、図4に示すように、検出傾きがマイナス95度からマイナス85度までおよびプラス85度からプラス95度までと規定され、検出向きが正面向きのみであると規定されているため、当該顔傾きおよび顔向きに対応付けられた顔学習データFLDが、使用する顔学習データFLDとして設定される。
【0050】
ステップS130(図2)では、画像生成部210(図1)が、撮像準備指示を取得し、撮像準備指示に応じて準備画像PImgを生成する。撮像準備指示は、例えばユーザが操作部116に含まれるシャッターボタンを半押しすると、画像生成部210に伝えられる。準備画像PImgは、撮像前の種々の処理に用いられる画像である。画像生成部210は、レンズ102や撮像素子108等を制御して、準備画像PImgを生成する。なお、表示部114が撮像時のファインダーとして利用されている場合には、準備画像PImgが表示部114に表示される。
【0051】
画像生成処理(図2)におけるステップS140以降は、撮像モード情報により特定される撮像モードに応じた処理が実行される。撮像モードが通常モードである場合には、顔領域検出処理(ステップS150)が実行される。顔領域検出処理は、準備画像PImgに基づき生成された顔検出用画像FDImgにおける顔の画像に対応する画像領域を顔領域FAとして検出する処理である。顔領域検出処理の際には、ステップS120で設定された使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データが採用される。すなわち、通常モードにおいては、ウィンドウSWの15個の標準サイズ(図5(a)参照)のすべてが使用ウィンドウサイズとして設定され、ウィンドウ移動範囲が顔検出用画像FDImgの全領域に設定され、すべての顔傾きおよびすべての顔向きに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。なお、顔領域検出処理の内容は後に詳述する。
【0052】
顔領域検出処理(図2のステップS150)が完了すると、画像生成部210(図1)が、撮像指示を取得する(ステップS160)。撮像指示は、例えばユーザが操作部116に含まれるシャッターボタンを半押しした状態から全押しすると、画像生成部210に伝えられる。ステップS170では、画像生成部210が、撮像指示に応じて、レンズ102や撮像素子108等を制御して撮像を行うことにより画像データを生成する。なお、画像生成部210は、顔領域検出処理において顔領域FAが検出された場合には、画像データ生成の際に、検出された顔領域FAを利用した所定の画像処理を実行するものとしてもよい。所定の画像処理としては、例えば顔の肌に対応する画像の部分の色を好ましい肌色に調整するための肌色補正や、顔の画像を変形させる変形処理等が挙げられる。
【0053】
一方、撮像モードがポートレートモードまたは証明写真モードである場合には、やはり、ステップS120で設定された使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データを採用した顔領域検出処理(図2のステップS180)が実行される。すなわち、ポートレートモードにおいては、上述した7個のウィンドウSWのサイズが使用ウィンドウサイズとして設定され(図5(c)参照)、ウィンドウSWの中心が検出範囲DA内に位置するようなウィンドウ移動範囲が設定され、マイナス120度からプラス120度までの顔傾きと正面向きの顔向きとに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。また、証明写真モードにおいては、上述した3個のウィンドウSWのサイズが使用ウィンドウサイズとして設定され(図5(e)参照)、ウィンドウSWの中心が検出範囲DA内に位置するようなウィンドウ移動範囲が設定され、マイナス95度からマイナス85度までおよびプラス85度からプラス95度までの顔傾きと正面向きの顔向きとに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。
【0054】
顔領域検出処理(図2のステップS180)において顔領域FAが検出されなかった場合には(ステップS190:No)、再度、顔領域検出処理が実行される。顔領域検出処理において顔領域FAが検出された場合には(ステップS190:Yes)、画像生成部210が、レンズ102や撮像素子108等を制御して撮像を行うことにより画像データを生成する(ステップS200)。すなわち、撮像モードがポートレートモードまたは証明写真モードである場合には、ユーザによる撮像指示(図2のステップS160参照)に応じてではなく、顔領域検出処理における顔領域FAの検出に応じて自動的に、撮像による画像データの生成が実行される。なお、ポートレートモードまたは証明写真モードにおいても、通常モード時と同様に、画像データ生成の際に、検出された顔領域FAを利用した所定の画像処理を実行するものとしてもよい。
【0055】
撮像モードがスマイルモードである場合には、やはり、ステップS120で設定された使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データを採用した顔領域検出処理(図2のステップS210)が実行される。すなわち、スマイルモードにおいては、上述した9個のウィンドウSWのサイズが使用ウィンドウサイズとして設定され(図5(d)参照)、ウィンドウSWの中心が検出範囲DA内に位置するようなウィンドウ移動範囲が設定され、マイナス120度からプラス120度までの顔傾きと正面向きの顔向きとに対応付けられた顔学習データFLDが使用する顔学習データFLDとして設定された状態で、顔領域検出処理が実行される。
【0056】
顔領域検出処理(図2のステップS210)において、顔領域FAが検出されなかった場合には(ステップS220:No)、再度、顔領域検出処理が実行される。顔領域検出処理において、顔領域FAが検出された場合には(ステップS220:Yes)、表情判別部240(図1)が、表情データEDを利用して笑顔判定を行う(ステップS230)。笑顔判定は、検出された顔領域FAに対応する顔の画像の表情が笑顔であるか否かを判定する処理である。笑顔判定は、顔領域FAから顔器官学習データOLD(図1)を用いて顔の器官の画像に対応する画像領域である器官領域の検出を行うと共に、顔および顔の器官の輪郭検出を行い、口角の開き具合、鼻唇溝の有無、目尻の下がり具合等を総合的に評価することにより実行可能である。なお、笑顔判定の実行に必要な技術は、特開2004−178593号公報や、副島義貴著「場景変動を考慮した移動物体の追跡に関する研究」1998年2月15日等に記載されている。また、器官領域の検出は、使用する学習データが顔学習データFLDではなく顔器官学習データOLDであることを除けば、顔領域検出処理と同様の処理により実行可能である。
【0057】
笑顔判定(図2のステップS230)において、検出された顔領域FAに対応する顔の画像の表情は笑顔ではないと判定された場合には(ステップS240:No)、再度、顔領域検出処理が実行される。一方、笑顔判定において検出された顔領域FAに対応する顔の画像の表情が笑顔であると判定された場合には(ステップS240:Yes)、画像生成部210が、レンズ102や撮像素子108等を制御して撮像を行うことにより画像データを生成する(ステップS250)。すなわち、撮像モードがスマイルモードである場合には、ユーザによる撮像指示(図2のステップS160参照)に応じてではなく、顔領域検出処理における顔領域FAの検出および笑顔判定における笑顔であるとの判定に応じて自動的に、撮像による画像データの生成が実行される。なお、スマイルモードにおいても、通常モード時と同様に、画像データ生成の際に、検出された顔領域FAを利用した所定の画像処理を実行するものとしてもよい。
【0058】
A−3.顔領域検出処理:
図9は、実施例における顔領域検出処理(図2のステップ150、S180およびS210)の流れを示すフローチャートである。また、図10は、顔領域検出処理の概要を示す説明図である。顔領域検出処理は、対象画像データの表す対象画像から顔の画像に対応する画像領域である顔領域FAの検出を行う処理である。図10の最上段には、画像生成処理(図2)のステップS130において生成された準備画像PImgを示している。
【0059】
ステップS310(図9)では、領域検出部230(図1)が、準備画像PImgを表す準備画像データから顔検出用画像FDImgを表す顔検出用画像データを生成する。本実施例では、図10に示すように、顔検出用画像FDImgは横320画素×縦240画素のサイズの画像である。領域検出部230は、必要により準備画像データの解像度変換を行うことにより、顔検出用画像FDImgを表す顔検出用画像データを生成する。なお、本実施例の顔領域検出処理において、顔検出用画像FDImgを表す顔検出用画像データは、本発明における対象画像を表す対象画像データに相当する。
【0060】
ステップS320(図3)では、判定対象設定部232(図1)が、判定対象画像領域JIAの設定に用いるウィンドウSWのサイズを初期値に設定する。ステップS330では、判定対象設定部232が、ウィンドウSWを顔検出用画像FDImg上の初期位置に配置する。ステップS340では、判定対象設定部232が、顔検出用画像FDImg上に配置されたウィンドウSWにより規定される画像領域を、顔の画像に対応する顔領域であるか否かの判定(以下「顔判定」とも呼ぶ)の対象となる判定対象画像領域JIAに設定する。
【0061】
ここで、ウィンドウSWのサイズの初期値およびウィンドウSWの顔検出用画像FDImg上における初期位置は、画像生成処理(図2)のステップS120で設定された使用ウィンドウサイズおよびウィンドウ移動範囲に基づき設定される。具体的には、ウィンドウSWのサイズの初期値は、使用ウィンドウサイズの中で最大のサイズに設定される。例えば、撮像モードがポートレートモードに設定されたときの顔領域検出処理(図2のステップS180)では、図5(c)に示すポートレートモードにおける使用ウィンドウサイズの内の最大サイズである180画素が、ウィンドウSWのサイズの初期値として設定される。また、ウィンドウSWの顔検出用画像FDImg上における初期位置は、ウィンドウSWがウィンドウ移動範囲内に位置する限りにおいて最も左上側の位置である。すなわち、ウィンドウSWの中心が検出範囲DAの左上の頂点に重なるような位置である(図6(a)参照)。ただし、このように初期位置を設定するとウィンドウSWが顔検出用画像FDImgの外側にはみ出してしまう場合には、初期位置は、ウィンドウSWの上辺または左辺が顔検出用画像FDImgの上辺または左辺に重なるような位置である。図10の中段には、顔検出用画像FDImg上に初期値のサイズのウィンドウSWが初期位置に配置され、ウィンドウSWにより規定される画像領域が判定対象画像領域JIAとして設定された様子を示している。
【0062】
ステップS350(図9)では、評価値算出部233(図1)が、判定対象画像領域JIAについて、判定対象画像領域JIAに対応する画像データ基づき、顔判定に用いる累計評価値Tvを算出する。なお、本実施例では、顔判定は、画像生成処理(図2)のステップS120で設定された使用顔学習データを用いて行われる。すなわち、顔判定は、判定対象画像領域JIAが、使用顔学習データを構成する各顔学習データFLD(図1)に対応付けられた顔傾きおよび顔向きを有する顔の画像に対応する画像領域であるか否かを判定することにより実行される。また、本実施例では、顔学習データFLDは、特定顔傾きおよび特定顔向きの組み合わせ毎に用意されている。ここで、特定顔傾きは、予め設定された図7に示す12個の顔傾きであり、特定顔向きは、予め設定された図8に示す3個の顔向きである。評価値算出部233は、ステップS120で設定された使用顔学習データに対応する特定顔傾きおよび特定顔向きの組み合わせ毎に、累計評価値Tvを算出する。
【0063】
図11は、顔判定に用いる累計評価値Tvの算出方法の概要を示す説明図である。本実施例では、累計評価値Tvの算出にN個のフィルタ(フィルタ1〜フィルタN)が用いられる。各フィルタの外形はウィンドウSWと同じアスペクト比を有しており(すなわち正方形形状であり)、各フィルタにはプラス領域paとマイナス領域maとが設定されている。評価値算出部233は、判定対象画像領域JIAにフィルタX(X=1,2,・・・,N)を順に適用して評価値vX(すなわちv1〜vN)を算出する。具体的には、評価値vXは、フィルタXのプラス領域paに対応する判定対象画像領域JIA上の領域内に位置する画素の輝度値の合計から、マイナス領域maに対応する判定対象画像領域JIA上の領域内に位置する画素の輝度値の合計を差し引いた値である。
【0064】
算出された評価値vXは、各評価値vXに対応して設定された閾値thX(すなわちth1〜thN)と比較される。本実施例では、評価値vXが閾値thX以上である場合には、フィルタXに関しては判定対象画像領域JIAが顔の画像に対応する画像領域であると判定され、フィルタXの出力値として値「1」が設定される。一方、評価値vXが閾値thXより小さい場合には、フィルタXに関しては判定対象画像領域JIAが顔の画像に対応しない画像領域であると判定され、フィルタXの出力値として値「0」が設定される。各フィルタXには重み係数WeX(すなわちWe1〜WeN)が設定されており、すべてのフィルタについての出力値と重み係数WeXとの積の合計が、累計評価値Tvとして算出される。
【0065】
なお、顔判定に用いられるフィルタXの態様や閾値thX、重み係数WeX、後述の閾値THは、顔学習データFLD(図1)として規定されている。顔学習データFLDは、サンプル画像を用いた学習によって設定される。図12は、学習に用いられるサンプル画像の一例を示す説明図である。学習には、顔の画像に対応する画像であることが予めわかっている複数の顔サンプル画像によって構成された顔サンプル画像群と、顔の画像に対応する画像ではないことが予めわかっている複数の非顔サンプル画像によって構成された非顔サンプル画像群と、が用いられる。
【0066】
学習による顔学習データFLDの設定は特定顔傾きおよび特定顔向きの組み合わせ毎に実行される。そのため、顔サンプル画像群は、12個の特定顔傾きと3個の特定顔向きとの組み合わせのそれぞれに対応するものが準備される。図12には、正面向きの特定顔向きに対応するいくつかの顔サンプル画像群を示している。例えば0度の特定顔傾きと正面向きの特定顔向きとの組み合わせについての顔学習データFLDの設定は、0度の特定顔傾きと正面向きの特定顔向きとの組み合わせに対応する顔サンプル画像群と非顔サンプル画像群とを用いて実行される。
【0067】
各顔サンプル画像群は、画像サイズに対する顔の画像の大きさの比が所定の値の範囲内であると共に顔の画像の傾きが特定顔傾きに等しい複数の顔サンプル画像(以下、「基本顔サンプル画像FIo」とも呼ぶ)を含む。また、顔サンプル画像群は、少なくとも1つの基本顔サンプル画像FIoについて、基本顔サンプル画像FIoを例えば1.2倍から0.8倍までの範囲の所定の倍率で拡大および縮小した画像(例えば図12における画像FIaおよびFIb)や、基本顔サンプル画像FIoを時計回りおよび反時計回りに例えば15度の範囲で所定の角度だけ回転させた画像(例えば図12における画像FIcおよびFId)をも含む。
【0068】
サンプル画像を用いた学習は、例えばニューラルネットワークを用いた方法や、ブースティング(例えばアダブースティング)を用いた方法、サポートベクターマシーンを用いた方法等により実行される。例えば学習がニューラルネットワークを用いた方法により実行される場合には、各フィルタX(すなわちフィルタ1〜フィルタN、図11参照)について、ある顔サンプル画像群と非顔サンプル画像群とに含まれるすべてのサンプル画像を用いて評価値vX(すなわちv1〜vN)が算出され、所定の顔検出率を達成する閾値thX(すなわちth1〜thN)が設定される。ここで、顔検出率とは、顔サンプル画像群を構成する顔サンプル画像の総数に対する、評価値vXによる閾値判定によって顔の画像に対応する画像であると判定される顔サンプル画像の数の割合を意味している。
【0069】
次に、各フィルタXに設定された重み係数WeX(すなわちWe1〜WeN)が初期値に設定され、顔サンプル画像群および非顔サンプル画像群の中から選択された1つのサンプル画像についての累計評価値Tvが算出される。後述するように、顔判定においては、ある画像について算出された累計評価値Tvが所定の閾値TH以上の場合には、当該画像は顔の画像に対応する画像であると判定される。学習においては、選択されたサンプル画像(顔サンプル画像または非顔サンプル画像)について算出された累計評価値Tvによる閾値判定結果の正誤に基づき、各フィルタXに設定された重み係数WeXの値が修正される。以降、サンプル画像の選択と、選択されたサンプル画像について算出された累計評価値Tvによる閾値判定、および判定結果の正誤に基づく重み係数WeXの値の修正が、顔サンプル画像群および非顔サンプル画像群に含まれるすべてのサンプル画像について繰り返し実行される。以上の処理が特定顔傾きおよび特定顔向きの組み合わせ毎に実行されることにより、特定顔傾きおよび特定顔向きの組み合わせ毎の顔学習データFLDが設定される。
【0070】
判定対象画像領域JIAについて画像生成処理(図2)のステップS120で設定された使用顔学習データに対応する特定顔傾きおよび特定顔向きの組み合わせ毎に累計評価値Tvが算出されると(図9のステップS350)、判定部234(図1)は、累計評価値Tvを特定顔傾きおよび特定顔向きの組み合わせ毎に設定された閾値THと比較する(ステップS360)。累計評価値Tvが閾値TH以上である場合には、領域検出部230が、判定対象画像領域JIAは当該特定顔傾きおよび当該特定顔向きを有する顔の画像に対応する画像領域であるとして、判定対象画像領域JIAの位置、すなわち現在設定されているウィンドウSWの座標と、当該特定顔傾きおよび当該特定顔向きと、を記憶する(ステップS370)。一方、いずれの特定顔傾きおよび当該特定顔向きの組み合わせについても累計評価値Tvが閾値THより小さい場合には、ステップS370の処理はスキップされる。
【0071】
ステップS380(図9)では、領域検出部230(図1)が、現在設定されているサイズのウィンドウSWにより、図2のステップS120で設定されたウィンドウ移動範囲全体がスキャンされたか否かを判定する。未だウィンドウ移動範囲全体がスキャンされていないと判定された場合には、判定対象設定部232(図1)が、ウィンドウSWを所定の方向に所定のウィンドウ移動ピッチSPだけ移動する(ステップS390)。図10の下段には、ウィンドウSWが移動した様子を示している。ウィンドウ移動ピッチSPは、例えば、縦方向および横方向共にウィンドウSWのサイズに0.2を乗じた値である。ステップS390では、ウィンドウSWがこのウィンドウ移動ピッチSP分の移動量で右方向に移動する。また、ウィンドウSWがさらに右方向には移動できない位置に配置されている場合には、ステップS390において、ウィンドウSWがウィンドウ移動範囲の左端まで戻ると共に、ウィンドウ移動ピッチSP分の移動量で下方向に移動する。ウィンドウSWがさらに下方向には移動できない位置に配置されている場合には、ウィンドウ移動範囲全体がスキャンされたこととなる。ウィンドウSWの移動(ステップS390)の後には、移動後のウィンドウSWについて、上述のステップS340以降の処理が実行される。
【0072】
ステップS380(図9)において現在設定されているサイズのウィンドウSWによりウィンドウ移動範囲全体がスキャンされたと判定された場合には、図2のステップS120で設定された使用ウィンドウサイズがすべて使用されたか否かが判定される(ステップS400)。未だ使用されていない使用ウィンドウサイズがあると判定された場合には、判定対象設定部232(図1)が、ウィンドウSWのサイズを現在設定されているサイズの次に小さい使用ウィンドウサイズに変更する(ステップS410)。すなわち、ウィンドウSWのサイズは、最初に使用ウィンドウサイズの内の最大サイズに設定され、その後、順に小さいサイズに変更されていく。ウィンドウSWのサイズの変更(ステップS410)の後には、変更後のサイズのウィンドウSWについて、上述のステップS330以降の処理が実行される。
【0073】
ステップS400(図9)において使用ウィンドウサイズがすべて使用されたと判定された場合には、領域設定部235(図1)が、顔領域設定処理を実行する(ステップS420)。図13および図14は、顔領域設定処理の概要を示す説明図である。領域設定部235は、図9のステップS360において累計評価値Tvが閾値TH以上であると判定されステップS370において記憶されたウィンドウSWの座標(すなわちウィンドウSWの位置およびサイズ)と特定顔傾きとに基づき、顔の画像に対応する画像領域としての顔領域FAを設定する。具体的には、特定顔傾きが0度である場合には、ウィンドウSWにより規定される画像領域(すなわち判定対象画像領域JIA)が、そのまま顔領域FAとして設定される。一方、特定顔傾きが0度以外である場合には、ウィンドウSWにより規定される画像領域(判定対象画像領域JIA)を所定の点(例えばウィンドウSWの重心)を中心として特定顔傾き分だけ回転させた画像領域が顔領域FAとして設定される。例えば図13(a)に示すように、30度の特定顔傾きについて累計評価値Tvが閾値TH以上であると判定された場合には、図13(b)に示すように、ウィンドウSWにより規定される画像領域をウィンドウSWの重心を中心として時計回りに30度回転させた画像領域が顔領域FAとして設定される。
【0074】
また、領域設定部235は、ステップS370において、ある特定顔傾きおよび特定顔向きの組み合わせについて互いに一部が重複する複数のウィンドウSWが記憶された場合には、各ウィンドウSWにおける所定の点(例えばウィンドウSWの重心)の座標の平均の座標を重心とし、各ウィンドウSWのサイズの平均のサイズを有する1つの新たなウィンドウ(以下、「平均ウィンドウAW」とも呼ぶ)を設定する。例えば図14(a)に示すように、互いに一部が重複する4つのウィンドウSW(SW1〜SW4)が記憶された場合には、図14(b)に示すように、4つのウィンドウSWのそれぞれの重心の座標の平均の座標を重心とし、4つのウィンドウSWのそれぞれのサイズの平均のサイズを有する1つの平均ウィンドウAWが定義される。このとき、上述したのと同様に、特定顔傾きが0度である場合には、平均ウィンドウAWにより規定される画像領域がそのまま顔領域FAとして設定される。一方、特定顔傾きが0度以外である場合には、平均ウィンドウAWにより規定される画像領域を所定の点(例えば平均ウィンドウAWの重心)を中心として特定顔傾き分だけ回転させた画像領域が顔領域FAとして設定される(図14(c)参照)。
【0075】
なお、図13に示したように、他のウィンドウSWと重複しない1つのウィンドウSWが記憶された場合にも、図14に示した互いに一部が重複する複数のウィンドウSWが記憶された場合と同様に、1つのウィンドウSW自身が平均ウィンドウAWであると解釈することも可能である。
【0076】
本実施例では、学習の際に用いられる顔サンプル画像群(図12参照)に、基本顔サンプル画像を例えば1.2倍から0.8倍までの範囲の所定の倍率で拡大および縮小した画像(例えば図12における画像FIaおよびFIb)が含まれているため、ウィンドウSWの大きさに対する顔の画像の大きさが基本顔サンプル画像FIoと比べてわずかに大きかったり小さかったりする場合にも、顔領域FAが検出されうる。従って、本実施例では、ウィンドウSWの標準サイズとして上述した15個の離散的なサイズのみが設定されているが、あらゆる大きさの顔の画像について顔領域FAが検出されうる。同様に、本実施例では、学習の際に用いられる顔サンプル画像群に、基本顔サンプル画像を時計回りおよび反時計回りに例えば15度の範囲で所定の角度だけ回転させた画像(例えば図12における画像FIcおよびFId)が含まれているため、ウィンドウSWに対する顔の画像の傾きが基本顔サンプル画像FIoとはわずかに異なっている場合にも、顔領域FAが検出されうる。従って、本実施例では、特定顔傾きとして上述した12個の離散的な角度のみが設定されているが、あらゆる角度の顔の画像について顔領域FAが検出されうる。
【0077】
なお、顔領域検出処理において検出された顔領域FAから顔の器官の画像に対応する画像領域である器官領域の検出を行う器官領域検出処理は、顔領域検出処理と同様に、顔領域FA上にウィンドウSWをサイズおよび位置を変更しつつ配置し、配置されたウィンドウSWにより規定される画像領域が顔の器官の画像に対応する画像領域であるか否かを判定することにより、実行可能である。また、器官領域検出処理に用いられる顔器官学習データOLD(図1)は、顔学習データFLDと同様に、サンプル画像群を用いた学習により設定可能である。
【0078】
以上説明したように、本実施例の画像生成処理(図2)では、顔領域の検出結果の用途を特定可能な情報である撮像モード情報が取得され、撮像モード情報に基づき、使用ウィンドウサイズ(すなわち判定対象画像領域JIAのサイズとして取りうる値の範囲)と、ウィンドウ移動範囲(すなわち判定対象画像領域JIAが位置し得る範囲)と、が設定される。なお、判定対象画像領域JIAのサイズとして取りうる値の範囲と判定対象画像領域JIAが位置し得る範囲とは、まとめて判定対象画像領域JIAの設定条件と表現することができる。そのため、顔領域検出処理において、撮像モードに応じた処理に必要なサイズおよび位置の顔領域の検出のみが実行される。従って、本実施例の画像生成処理では、対象画像からの顔領域の検出の際に、処理の高速化を図ることができる。
【0079】
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0080】
B1.変形例1:
上記実施例では、DSC100による画像生成処理を例に用いて説明したが、本発明は、DSC100以外の他の画像処理装置にも適用可能である。例えば、本発明は、デジタルビデオカメラ等の他の画像生成装置による画像生成処理にも適用可能である。また、本発明は、パーソナルコンピュータやプリンタにおいて、画像データと撮像モード情報とを含む画像ファイルが取得された場合における、画像データの表す画像を対象とした顔領域検出処理にも適用可能である。この場合には、画像ファイルに含まれる撮像モード情報が取得され、撮像モード情報により特定される撮像モードに応じて、使用ウィンドウサイズ、ウィンドウ移動範囲、使用顔学習データが設定される。
【0081】
B2.変形例2:
上記実施例における撮像モードの種類(図3)は、あくまで一例であり、DSC100が、図3に示した撮像モードの一部を有さないとしてもよいし、他の撮像モードを有するとしてもよい。また、条件テーブルCT(図4)において撮像モードに応じて規定された検出サイズ、検出傾き、検出向き、検出範囲は、あくまで一例であり、種々変更可能である。
【0082】
B3.変形例3:
上記実施例では、正方形形状のウィンドウSWを採用しているが、ウィンドウSWの形状は正方形形状に限られない。例えば、ウィンドウSWの形状は、円形形状であってもよい。この場合には、ウィンドウSWのサイズは、例えば円の径により特定される。
【0083】
B4.変形例4:
上記実施例における顔領域検出処理(図9)の態様はあくまで一例であり、種々変更可能である。例えば顔検出用画像FDImg(図10参照)のサイズは320画素×240画素に限られず、他のサイズであってもよいし、準備画像PImgそのものを顔検出用画像FDImgとして用いることも可能である。また、使用されるウィンドウSWのサイズやウィンドウSWの移動方向および移動量(移動ピッチ)は上述したものに限られない。また、上記実施例では、顔検出用画像FDImgのサイズが固定され、複数種類のサイズのウィンドウSWが顔検出用画像FDImg上に配置されることにより複数サイズの判定対象画像領域JIAが設定されているが、複数種類のサイズの顔検出用画像FDImgが生成され、固定サイズのウィンドウSWが顔検出用画像FDImg上に配置されることにより複数サイズの判定対象画像領域JIAが設定されるものとしてもよい。
【0084】
また、上記実施例では、累計評価値Tvを閾値THと比較することにより顔判定を行っているが(図11参照)、顔判定を複数の判別器を用いた判別等の他の方法によって行ってもよい。顔判定の方法に応じて、顔学習データFLDの設定に用いられる学習方法も変更される。また、顔判定は、必ずしも学習を用いた判別方法により行われる必要はなく、パターンマッチング等の他の方法により行われるとしてもよい。
【0085】
また、上記実施例では、30度刻みの12種類の特定顔傾き(図12参照)が設定されているが、より多くの種類の特定顔傾きが設定されてもよいし、より少ない種類の特定顔傾きが設定されてもよい。また、必ずしも特定顔傾きが設定される必要はなく、0度の顔傾きについての顔判定が行われるとしてもよい。また、上記実施例では、顔サンプル画像群に基本顔サンプル画像FIoを拡大・縮小した画像や回転させた画像が含まれるとしているが、顔サンプル画像群に必ずしもこのような画像が含まれる必要はない。
【0086】
上記実施例において、あるサイズのウィンドウSWにより規定される判定対象画像領域JIAについての顔判定で顔の画像に対応する画像領域であると判定された場合には、当該サイズより所定の比率以上小さいサイズのウィンドウSWを配置する場合には、顔の画像に対応する画像領域であると判定された判定対象画像領域JIAを避けて配置するものとしてもよい。このようにすれば、処理の高速化を図ることができる。
【0087】
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0088】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【0089】
【図1】本発明の実施例における画像処理装置としてのデジタルスチルカメラ100の構成を概略的に示す説明図である。
【図2】実施例のDSC100による画像生成処理の流れを示すフローチャートである。
【図3】撮像モード情報取得のためのユーザインタフェースの一例を示す説明図である。
【図4】条件テーブルCTの内容の一例を示す説明図である。
【図5】使用ウィンドウサイズの設定方法の一例を示す説明図である。
【図6】検出範囲が顔検出用画像FDImgの一部の領域である場合におけるウィンドウ移動範囲の設定方法の一例を示す説明図である。
【図7】各顔傾きに対応する顔の画像の一例を示す説明図である。
【図8】各顔向きに対応する顔の画像の一例を示す説明図である。
【図9】実施例における顔領域検出処理の流れを示すフローチャートである。
【図10】顔領域検出処理の概要を示す説明図である。
【図11】顔判定に用いる累計評価値Tvの算出方法の概要を示す説明図である。
【図12】学習に用いられるサンプル画像の一例を示す説明図である。
【図13】顔領域設定処理の概要を示す説明図である。
【図14】顔領域設定処理の概要を示す説明図である。
【符号の説明】
【0090】
100…デジタルスチルカメラ
102…レンズ
104…レンズ駆動部
106…レンズ駆動制御部
108…撮像素子
110…A/D変換器
114…表示部
116…操作部
118…CPU
122…バス
200…内部メモリ
210…画像生成部
220…モード設定部
230…領域検出部
231…条件設定部
232…判定対象設定部
233…評価値算出部
234…判定部
235…領域設定部
240…表情判別部
【特許請求の範囲】
【請求項1】
画像処理装置であって、
対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する用途特定情報取得部と、
前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する条件設定部と、
前記設定条件に従い前記判定対象画像領域を設定する判定対象設定部と、
前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出部と、
前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する顔領域設定部と、を備える、画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記設定条件は、前記判定対象画像領域のサイズとして取り得る値の範囲を含む、画像処理装置。
【請求項3】
請求項1または請求項2に記載の画像処理装置であって、
前記設定条件は、前記対象画像における前記判定対象画像領域の位置し得る範囲を含む、画像処理装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、さらに、
被写体を撮像して画像データを生成する画像生成部を備え、
前記用途は、撮像実行タイミングの設定である、画像処理装置。
【請求項5】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、
前記用途は、前記顔領域に対応する顔の画像の表情の判別である、画像処理装置。
【請求項6】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データと前記用途特定情報とを含む画像ファイルを取得する画像取得部を備え、
前記用途特定情報取得部は、前記画像ファイルに含まれる前記用途特定情報を取得する、画像処理装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載の画像処理装置であって、
前記顔領域設定部は、前記評価値に基づき前記判定対象画像領域が顔の画像に対応する画像領域であるか否かを判定し、顔の画像に対応する画像領域であると判定された前記判定対象画像領域の位置およびサイズに基づき前記顔領域を設定する、画像処理装置。
【請求項8】
画像処理方法であって、
(a)対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する工程と、
(b)前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する工程と、
(c)前記設定条件に従い前記判定対象画像領域を設定する工程と、
(d)前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する工程と、
(e)前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する工程と、を備える、画像処理方法。
【請求項9】
画像処理のためのコンピュータプログラムであって、
対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する用途特定情報取得機能と、
前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する条件設定機能と、
前記設定条件に従い前記判定対象画像領域を設定する判定対象設定機能と、
前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出機能と、
前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する顔領域設定機能と、を、コンピュータに実現させる、コンピュータプログラム。
【請求項1】
画像処理装置であって、
対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する用途特定情報取得部と、
前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する条件設定部と、
前記設定条件に従い前記判定対象画像領域を設定する判定対象設定部と、
前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出部と、
前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する顔領域設定部と、を備える、画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記設定条件は、前記判定対象画像領域のサイズとして取り得る値の範囲を含む、画像処理装置。
【請求項3】
請求項1または請求項2に記載の画像処理装置であって、
前記設定条件は、前記対象画像における前記判定対象画像領域の位置し得る範囲を含む、画像処理装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、さらに、
被写体を撮像して画像データを生成する画像生成部を備え、
前記用途は、撮像実行タイミングの設定である、画像処理装置。
【請求項5】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、
前記用途は、前記顔領域に対応する顔の画像の表情の判別である、画像処理装置。
【請求項6】
請求項1ないし請求項3のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データと前記用途特定情報とを含む画像ファイルを取得する画像取得部を備え、
前記用途特定情報取得部は、前記画像ファイルに含まれる前記用途特定情報を取得する、画像処理装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載の画像処理装置であって、
前記顔領域設定部は、前記評価値に基づき前記判定対象画像領域が顔の画像に対応する画像領域であるか否かを判定し、顔の画像に対応する画像領域であると判定された前記判定対象画像領域の位置およびサイズに基づき前記顔領域を設定する、画像処理装置。
【請求項8】
画像処理方法であって、
(a)対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する工程と、
(b)前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する工程と、
(c)前記設定条件に従い前記判定対象画像領域を設定する工程と、
(d)前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する工程と、
(e)前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する工程と、を備える、画像処理方法。
【請求項9】
画像処理のためのコンピュータプログラムであって、
対象画像から顔の画像に対応する顔領域を検出して得られる検出結果の用途を特定する用途特定情報を取得する用途特定情報取得機能と、
前記用途特定情報に基づき、前記対象画像上における画像領域である判定対象画像領域の設定条件を設定する条件設定機能と、
前記設定条件に従い前記判定対象画像領域を設定する判定対象設定機能と、
前記判定対象画像領域に対応する画像データに基づき、前記判定対象画像領域が顔の画像に対応する画像領域であることの確からしさを表す評価値を算出する評価値算出機能と、
前記評価値と前記判定対象画像領域の位置およびサイズとに基づき、前記顔領域を設定する顔領域設定機能と、を、コンピュータに実現させる、コンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−237611(P2009−237611A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−79222(P2008−79222)
【出願日】平成20年3月25日(2008.3.25)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願日】平成20年3月25日(2008.3.25)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]