以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
[第1の実施形態]
図1は本実施形態に係る画像処理装置の機能構成を示す図である。本実施形態に係る画像処理装置は、画像中から顔を検出し、その表情を判別するものであり、撮像部100、制御部101、顔検出部102、中間検出結果保持部103、表情判別部104、画像保持部105、表示部106、記録部107から成る。以下、各部について説明する。
撮像部100は、制御部101からの制御信号に基づいて画像を撮影し、その撮影した画像(撮影画像)を、顔検出部102、画像保持部105、表示部106若しくは記録部107に出力する。
制御部101は、本実施形態に係る画像処理装置全体を制御するための処理を行うものであり、撮像部100、顔検出部102、中間検出結果保持部103、表情判別部104、画像保持部105、表示部106、記録部107と接続されており、各部が適切なタイミングで動作するよう、各部を制御するものである。
顔検出部102は、撮像部101からの撮影画像において顔の領域(撮影画像中に含まれる顔の画像の領域)を検出する処理を行う。この処理は即ち、撮影画像中の顔領域の数、撮影画像における顔領域の座標位置、顔領域のサイズ、顔領域の撮影画像における回転量(例えば顔領域を矩形とする場合、この矩形が撮影画像においてどの方向にどれだけ傾いているかを示す回転量)を求める処理に換言される。なお、これらの情報(撮影画像中の顔領域の数、撮影画像における顔領域の座標位置、顔領域のサイズ、顔領域の撮影画像における回転量)を総称して以下、「顔領域情報」と呼称する。従って、顔領域情報を求めることにより、撮影画像における顔の領域を特定することができる。
これらの検出結果は表情判別部104に出力する。また、検出処理の途中で得られる後述の中間検出結果は中間検出結果保持部103へ出力する。
中間検出結果保持部103は、顔検出部102から出力された上記中間特徴検出結果を保持する。
表情判別部104は、顔検出部102から出力される顔領域情報のデータと、中間検出結果保持部103から出力される上記中間特徴検出結果のデータとを受け付ける。そして、それらのデータに基づいて、画像保持部105から撮影画像の全部若しくは一部(一部の場合、顔領域の画像のみ)を読み込み、後述の処理によって、読み込んだ画像における顔の表情を判別する処理を行う。
画像保持部105は、撮像部100から出力された撮影画像を一時的に保持し、制御部101の制御信号に基づいて、保持している撮影画像の全部若しくは一部を、表情判別部104や、表示部106、記録部107へ出力する。
表示部106は、例えばCRTや液晶画面などにより構成されており、画像保持部105から出力された撮影画像の全部若しくは一部、又は撮像部100で撮像された撮影画像を表示する。
記録部107は、ハードディスクドライブやDVD−RAM、コンパクトフラッシュ(登録商標)などの記憶媒体に情報を記録する装置により構成されており、画像保持部105に保持された画像、または撮像部100で撮像された撮影画像を記録する。
次に、上記各部の動作によって実行される、撮影画像中の顔の表情を判別する為のメインの処理について、同処理のフローチャートを示す図2を用いて説明する。
先ず、制御部101からの制御信号に基づいて撮像部100が画像を撮影する(ステップS201)。撮影された画像のデータは、表示部106に表示されると共に、画像保持部105に出力され、更には顔検出部102に入力される。
次に、顔検出部102は入力された撮影画像を用いて、この撮影画像中の顔の領域を検出する処理を行う(ステップS202)。この顔領域の検出処理について、より詳細に説明する。
図7は、撮影画像における局所特徴を検出し、顔領域を特定するための一連の処理を示す図である。同図に示した処理では、まず最もプリミティブな局所特徴である一次特徴を検出する。一次特徴としては同図に示すように、縦特徴701,横特徴702,右上がり斜め特徴703,右下がり斜め特徴704といった特徴がある。ここで「特徴」とは、縦特徴701を例に取ると、縦方向のエッジセグメントを表すものである。
撮影画像において各方向のセグメントを検出する技術については周知であるので、この技術を用いて撮影画像から各方向のセグメントを検出し、撮影画像から縦特徴のみを検出した画像、撮影画像から横特徴のみを検出した画像、撮影画像から右上がり斜め特徴のみを検出した画像、撮影画像から右下がり斜め特徴のみを検出した画像を生成する。このことから4つの画像(一次特徴画像)のサイズ(縦横の画素数)は撮影画像と同じであるので、特徴画像と撮影画像とでは夫々画素が1対1に対応する。また、特徴画像において、検出した特徴部分の画素の値とそれ以外の部分の画素の値とは異なる値とし、例えば特徴部分の画素の値は1、それ以外の部分の画素の値は0とする。従って、特徴画像において画素値が1である画素があれば、撮影画像においてこれに対応する画素は一次特徴を構成する画素であるとすることができる。
以上のようにして一次特徴画像群を生成することで、撮影画像における一次特徴を検出することができる。
次に、検出した一次特徴群の何れかを組み合わせた二次特徴群を撮影画像から検出する。二次特徴群としては同図に示すように、右空きV字特徴710,左空きV字特徴711,水平平行線特徴712,垂直平行線特徴713といった特徴がある。右空きV字特徴710は一次特徴である右上がり斜め特徴703と右下がり斜め特徴704とを組み合わせた特徴、左空きV字特徴711は一次特徴である右下がり斜め特徴704と右上がり斜め特徴703とを組み合わせた特徴であり、水平平行線特徴712は一次特徴である横特徴702を組み合わせた特徴であり、垂直平行線特徴713は一次特徴である縦特徴701を組み合わせた特徴である。
一次特徴画像の生成と同様に、撮影画像から右空きV字特徴710のみを検出した画像、撮影画像から左空きV字特徴711のみを検出した画像、撮影画像から水平平行線特徴712のみを検出した画像、撮影画像から垂直平行線特徴713のみを検出した画像を生成する。このことから4つの画像(二次特徴画像)のサイズ(縦横の画素数)は撮影画像と同じであるので、特徴画像と撮影画像とでは夫々画素が1対1に対応する。また、特徴画像において、検出した特徴部分の画素の値とそれ以外の部分の画素の値とは異なる値とし、例えば特徴部分の画素の値は1、それ以外の部分の画素の値は0とする。従って、特徴画像において画素値が1である画素があれば、撮影画像においてこれに対応する画素は二次特徴を構成する画素であるとすることができる。
以上のようにして二次特徴画像群を生成することで、撮影画像における二次特徴を検出することができる。
次に、検出した二次特徴群の何れかを組み合わせた三次特徴群を撮影画像から検出する。三次特徴群としては同図に示すように、眼特徴720,口特徴721といった特徴がある。眼特徴720は二次特徴である右空きV字特徴710と左空きV字特徴711と水平平行線特徴712と垂直平行線特徴713とを組み合わせた特徴であり、口特徴721は二次特徴である右空きV字特徴710と左空きV字特徴711と水平平行線特徴712とを組み合わせた特徴である。
一次特徴画像の生成と同様に、眼特徴720のみを検出した画像、撮影画像から口特徴721のみを検出した画像を生成する。このことから2つの画像(三次特徴画像)のサイズ(縦横の画素数)は撮影画像と同じであるので、特徴画像と撮影画像とでは夫々画素が1対1に対応する。また、特徴画像において、検出した特徴部分の画素の値とそれ以外の部分の画素の値とは異なる値とし、例えば特徴部分の画素の値は1、それ以外の部分の画素の値は0とする。従って、特徴画像において画素値が1である画素があれば、撮影画像においてこれに対応する画素は三次特徴を構成する画素であるとすることができる。
以上のようにして三次特徴画像群を生成することで、撮影画像における三次特徴を検出することができる。
次に、検出した三次特徴群を組み合わせた四次特徴を撮影画像から検出する。四次特徴は同図では顔特徴そのものである。顔特徴は三次特徴である眼特徴72と口特徴721とを組み合わせた特徴である。
一次特徴画像の生成と同様に、顔特徴を検出した画像(四次特徴画像)を生成する。このことから四次特徴画像のサイズ(縦横の画素数)は撮影画像と同じであるので、特徴画像と撮影画像とでは夫々画素が1対1に対応する。また、特徴画像において、検出した特徴部分の画素の値とそれ以外の部分の画素の値とは異なる値とし、例えば特徴部分の画素の値は1、それ以外の部分の画素の値は0とする。従って、特徴画像において画素値が1である画素があれば、撮影画像においてこれに対応する画素は四次特徴を構成する画素であるとすることができる。 従ってこの四次特徴画像を参照することで、例えば画素値が1である画素の重心位置をもって、顔領域の位置を求めることができる。
なお、この顔領域を矩形とする場合、この矩形が撮影画像に対してどれだけどの方向に傾いているのかを示す情報を求めるために、この矩形の撮影画像に対する傾きを求めることで、上記回転量を求めることができる。
以上のようにして、上記顔領域情報を求めることができる。求めた顔領域情報は上述の通り、表情判別部104に出力する。
また、上記各特徴画像(本実施形態では一次特徴画像、二次特徴画像、三次特徴画像、四次特徴画像)は上記中間検出結果として中間検出結果保持部103に出力する。
このようにして、撮影画像における四次特徴を検出することで、撮影画像における顔の領域を求めることができる。また、以上説明した顔領域の検出処理を撮影画像全体に対して行うことで、撮影画像に顔の領域が複数含まれていても、夫々の顔の領域を検出することができる。
なお、上記顔領域の検出処理については、並列階層処理により画像認識を行う神経回路網を用いて実現することも可能であり、これについては、M.Matsugu,K.Mori,et.al, “Convolutional Spiking Neural Network Model for Robust Face Detection”,2002,Internatinal Conference On Neural Information Processing (ICONIP02)に記述がされている。
図8を参照して神経回路網の処理内容を説明する。図8は、画像認識を行うための神経回路網の構成を示す図である。
この神経回路網は、入力データ中の局所領域において、対象または幾何学的特徴などの認識(検出)に関与する情報を階層的に扱うものであり、その基本構造はいわゆるConvolutionalネットワーク構造(LeCun, Y. and Bengio, Y., 1995, “Convolutional Networks for Images Speech, and Time Series” in Handbook of Brain Theory and Neural Networks (M. Arbib, Ed.), MIT Press, pp.255-258)である。最終層(最上位層)では検出したい被写体の有無と、存在すればその入力データ上の位置情報が得られる。この神経回路網を本実施形態に適用すれば、この最終層からは、撮影画像中の顔の領域の有無と、顔の領域が存在すれば、この顔の領域の撮影画像上における位置情報が得られる。
同図においてデータ入力層801は、画像データを入力する層である。最初の特徴検出層(1,0)は、データ入力層801より入力された画像パターンの局所的な低次の特徴(特定方向成分、特定空間周波数成分などの幾何学的特徴のほか色成分特徴を含んでもよい)を全画面の各位置を中心として局所領域(或いは、全画面にわたる所定のサンプリング点の各点を中心とする局所領域)において同一箇所で複数のスケールレベル又は解像度で複数の特徴カテゴリの数だけ検出する。
特徴統合層(2,0)は、所定の受容野構造(以下、受容野とは直前の層の出力素子との結合範囲を、受容野構造とはその結合荷重の分布を意味する)を有し、特徴検出層(1,0)からの同一受容野内にある複数のニューロン素子出力の統合(局所平均化、最大出力検出等によるサブサンプリングなどの演算)を行う。この統合処理は、特徴検出層(1,0)からの出力を空間的にぼかすことで、位置ずれや変形などを許容する役割を有する。また、特徴統合層内のニューロンの各受容野は同一層内のニューロン間で共通の構造を有している。
後続の層である各特徴検出層(1,1)、(1,2)、…、(1,M)、及び各特徴統合層(2,1)、(2,2)、…、(2,M)は、上述した各層と同様に、前者((1,1)、…)は、各特徴検出モジュールにおいて複数の異なる特徴の検出を行い、後者((2,1)、…)は、前段の特徴検出層からの複数特徴に関する検出結果の統合を行う。但し、前者の特徴検出層は同一チャネルに属する前段の特徴統合層の細胞素子出力を受けるように結合(配線)されている。特徴統合層で行う処理であるサブサンプリングは、同一特徴カテゴリの特徴検出細胞集団からの局所的な領域(当該特徴統合層ニューロンの局所受容野)からの出力についての平均化などを行うものである。
図8に示した神経回路網を用いて、図7に示した各特徴を検出するためには、各特徴検出層の検出に使用する受容野構造をその特徴を検出するためのものにすることで、各特徴の検出が可能である。また、最終層の顔検出層における顔の検出に使用する受容野構造を、各サイズや各回転量に適したものを用意し、顔特徴の検出において、顔が存在するという結果を得たときにどの受容野構造を用いて検出したかによって、その顔の大きさや向き等の顔データを得ることが出来る。
図2に戻って、次に、制御部101は、ステップS202で顔検出部102による顔領域検出処理の結果を参照して、撮影画像において顔領域が存在したか否かを判定する(ステップS203)。この判定方法としては、例えば四次特徴画像が得られたか否かを判定し、得られた場合には顔領域が撮影画像中に存在すると判定する。またその他にも、(顔)特徴検出層内の各ニューロンのうち、出力値がある基準値以上のニューロンが存在するかを判定し、基準値以上のニューロンが示す位置に顔(領域)が存在するとしても良い。その場合、基準値以上のニューロンが存在しない場合は、顔が存在しないとする。
そしてステップS203における判定処理の結果、撮影画像中に顔領域が存在しない場合、顔検出部102はその旨を制御部101に通知するので、処理をステップS201に戻し、制御部101は撮像部100を制御して、新たな画像を撮影する。
一方、顔領域が存在した場合、顔検出部102はその旨を制御部101に通知するので、処理をステップS204に進め、制御部101は画像保持部105に保持されている撮影画像を表情判別部104に出力すると共に、中間検出結果保持部103に保持されている特徴画像を表情判別部104に出力し、表情判別部104は、入力された特徴画像と顔領域情報を用いて、撮影画像中の顔領域に含まれる顔の表情を判定する処理を行う(ステップS204)。
なお、画像保持部105から表情判別部104に出力する画像は本実施形態では撮影画像全体とするが、これに限定されるものではなく、例えば制御部101が顔領域情報を用いて撮影画像中の顔領域を特定し、この顔領域のみの画像を表情判別部104に出力するようにしても良い。
次に、表情判別部104が行う表情判定処理について、より詳細に説明する。上述のように、顔の表情を判別するために、一般的な表情記述法であるFACS(Facial Action Coding System)で用いられるAction Unit(AU)を検出し、検出したAUの種類により、表情判別を行うことが出来る。AUには、眉の外側を上げる、唇を横に引っ張る等がある。AUの組み合わせにより人間のあらゆる表情の記述は可能であるため、原理的には、AUが全て検出できれば、全ての表情を判別することが可能である。しかし、AUは44個あり、全てを検出するのは容易ではない。
そこで本実施形態では図9に示すように、眉の端点(B1〜B4)、目の端点(E1〜E4)、口の端点(M1,M2)を表情判別に使用する特徴とし、それら特徴点の相対位置の変化を求めることにより表情を判別する。これらの特徴点の変化でいくつかのAUは記述可能であり、基本的な表情の判別は可能である。なお、各表情における各特徴点の変化は、表情判別データとして表情判別部104の中に保持されており、表情判別部104の表情判別処理に使用される。
図9は、各特徴点を示す図である。
図9に示した表情検出のための各特徴点は、目や眉などの端部であり、この端部の形状は大まかには右空きのV字、左空きのV字であるので、例えば図7に示した二次特徴の右空きV字特徴710,左空きV字特徴711に相当する。
また、表情判別に使用する特徴点の検出は、顔検出部102における顔検出処理の中間段階で得られている。そして、その顔検出処理の中間処理結果は、中間特徴結果保持部103に保持されている。
しかしながら、右空きV字特徴710,左空きV字特徴711は、顔以外にも、背景等、様々な位置に存在する。そのため、顔検出部102で得られた顔領域情報を用いて二次特徴画像中の顔領域を特定し、この領域において右空きV字特徴710,左空きV字特徴711の端点、即ち眉の端点、目の端点、口の端点を検出する。
そこで、図9に示すように、顔領域内で眉・目の端点の探索範囲(RE1,RE2)と口の端点の探索範囲(RM)を設定する。そして、その設定した探索範囲内の画素値を参照して、右空きV字特徴710,左空きV字特徴711を構成する画素群のうち、同図水平方向に両端の画素の位置を検出し、検出した位置をもって特徴点の位置とする。なお顔領域の中心位置に対するこの探索範囲(RE1,RE2,RM)の相対位置は予め設定されている。
例えば探索範囲RE1内で右空きV字特徴710を構成する画素群のうち、同図水平方向に端の画素の位置はB1,E1であるので、これを眉、目何れかの一端の位置とする。また、夫々の位置B1,E1の垂直方向の位置を参照し、より上側に位置するものが眉の一端の位置とする。同図ではB1がE1に比べてより上の位置にあるので、B1を眉の一端の位置とする。
このようにして、目、眉の一端の位置を求めることができる。同様に探索範囲RE1において左空きV字特徴711について同様の処理を行うことで、眉、目のもう一端の位置B2,E2の位置を求めることができる。
以上説明した処理により、目、眉、そして口の両端の位置、即ち各特徴点の位置を求めることができる。なお、特徴画像と撮影画像とはサイズが同じで、且つ各画素が1対1で対応するので、特徴画像中の各特徴点の位置はそのまま撮影画像中における位置とすることもできる。
なお、本実施形態では各特徴点の位置を求める処理に二次特徴を用いたが、これに限定されるものではなく、一次特徴や三次特徴等の何れか若しくはその組み合わせを用いても良い。
例えば右空きV字特徴710,左空きV字特徴711以外に、図7に示した三次特徴である目特徴720と口特徴721、及び一次特徴である縦特徴701,横特徴702,右上がり斜め特徴703,右下がり斜め特徴704を用いることもできる。
一次特徴と三次特徴とを用いて特徴点を求める処理を図10を用いて説明する。図10は図9に示した顔領域において一次特徴と三次特徴とを用いた特徴点を求める処理を説明するための図である。
図10に示すように、目探索範囲(RE3、RE4)と口探索範囲(RM2)を設定し、そして、その設定した探索範囲内の画素値を参照して、目特徴720、口特徴721を構成する画素群が配置されている範囲を求める。そしてこの範囲を網羅するように、眉・目の端点の探索範囲(RE5,RE6)と口の端点の探索範囲(RM3)を設定する。
そして次に、夫々の探索範囲(RE5,RE6,RM3)内で縦特徴701,横特徴702,右上がり斜め特徴703,右下がり斜め特徴704から成る連続した線分上を追跡し、その結果、水平方向に両端の位置を求め、目、眉、口の両端を求めることができる。1次特徴は基本的にエッジ抽出であるので、各検出結果に対して、あるしきい値以上の領域を細線化し、その結果を追跡することで端点を検出することが出来る。
次に、求めた各特徴点を用いて行う、表情の判定処理について説明する。表情の判別の個人差を無くすために、まず無表情の時の顔画像に対して、顔検出処理を行い、各局所特徴の検出結果を求める。そして、それらの検出結果を用いて、図9または図10に示した各特徴点の相対位置を求め、基準となる相対位置としてそのデータを表情判別部104に保持させておく。そして表情判別部104は、その基準の相対位置と、上記求めた各特徴点の相対位置とを参照し、夫々の特徴点が基準からどれだけ変化したか、即ち「ずれ」を求める処理を行う。なお、撮影した画像中の顔のサイズと予め撮影した無表情の時の顔のサイズは一般的に異なるため、求めた各特徴点のうちの相対位置、例えば両目間の距離に基づいて、各特徴点の位置を正規化する。
そして、各特徴点毎にその変化に依存した得点を求め、その得点の分布に基づいて、表情を判別する。例えば、喜びの表情を示す表情は、(1)眼尻が下がる、(2)頬の筋肉が持ち上がる、(3)口の端が持ち上がるなどの特徴が見られるため、「眼の端点から口端点までの距離」、「口の横幅の長さ」、「眼の横幅の長さ」に大きな変化が現れる。そして、それらの変化から求めた得点分布は、喜び表情に特有な得点分布となる。
この特有な得点分布は他の表情に関しても同様なことが言える。従って、分布の形状を混合ガウシアン近似してパラメトリックにモデル化し、求めた得点分布と各表情毎に設けられた得点分布との類似度判別を、パラメータ空間内の距離の大小を判定することにより求める。そして、求めた得点分布とより類似度の高い得点分布(より距離の小さい得点分布)が示す表情を、判定結果としての表情とする。
また、得点総和に対して、閾値処理を行なう方法も適用可能である。この閾値処理は、表情場面に類似した非表情場面(例えば、会話中で”い”という発音をした顔)と表情場面とを正確に判別するためにより有効である。なお、得点分布形状の判別と総和の閾値処理のいずれか一方を行っても良い。このように得点分布と得点の総和の閾値処理から表情の判定を行うことにより、正確に表情場面を認識し検出率を向上することができる。
以上の処理によって、顔の表情を判定することができたので、表情判別部104は、判定した表情に応じたコード(各表情に個別のコード)を出力する。このコードは例えば番号であっても良いし、その表現方法は特に限定されるものではない。
次に表情判別部104は、判定した表情が、予め設定された特定の表情(例えば笑顔)であるか否かを判定し、その判定結果を制御部101に通知する(ステップS205)。
ここで、ステップS204までの処理により判定した表情が、予め設定された特定の表情と同じであった場合、例えば本実施形態の場合には、表情判別部104が出力した「表情を示すコード」と、予め設定された特定の表情を示すコードとが一致した場合、制御部101は画像保持部105が保持している撮影画像を記録部107に記録する。また、記録部107がDVD−RAMやコンパクトフラッシュ(登録商標)である場合には、制御部101は記録部107を制御してDVD−RAMやコンパクトフラッシュ(登録商標)等の記憶媒体に撮影画像を記録する(ステップS206)。また、記録する画像を、顔領域の画像、即ち、特定の表情の顔画像としても良い。
一方、ステップS204までの処理により判定した表情が、予め設定された特定の表情と同じではなかった場合、例えば本実施形態の場合には、表情判別部104が出力した「表情を示すコード」と、予め設定された特定の表情を示すコードとが一致しなかった場合、制御部101は撮像部100を制御し、新たな画像を撮影させる。
なお、判定された表情が特定の表情であった場合にはその他にも、例えばステップS206で、制御部101が撮像部100を制御して次の画像を撮影させつつ、撮影した画像を記録部107に保持させるようにしても良い。また、制御部101は表示部106を制御して、撮影した画像を表示部106に表示しても良い。
一般に表情は急激に変化するものではなく、或程度の連続性を有するものであるので、上記ステップS202、ステップS204における処理が比較的短時間で終了すると、特定の表情を示した画像と連続した画像も同様な表情を示していることが多い。そこで、ステップS202で検出された顔領域をより明瞭とすべく、制御部101が撮影部100の撮影パラメータ(露出補正、自動焦点、色補正等、撮像系の撮像パラメータ)を設定し、再撮影を行ない、表示、記録するように動作させることも可能である。
図11は本実施形態に係る画像処理装置の基本構成を示す図である。
1001はCPUで、RAM1002やROM1003に格納されたプログラムやデータを用いて本装置全体の制御を行うと共に、上記表情判定に係る一連の処理を実行する。またCPU1001は図1では上記制御部101に相当するものである。
1002はRAMで、外部記憶装置1007や記憶媒体ドライブ1008からロードされたプログラムやデータ、I/F1009を介して撮像部100から入力される画像のデータなどを一時的に格納するエリアを備えると共に、CPU1001が各種の処理を実行する為に必要なエリアも備える。図1では中間検出結果保持部103と画像保持部105とがこのRAM1002に相当する。
1003はROMで、例えば本装置全体のボートプログラムや設定データなどを格納する。
1004、1005は夫々キーボード、マウスで、夫々CPU1001に対して各種の指示を入力するために用いる。
1006は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などにより構成されている各種の情報を表示することができる。図1では表示部106に相当するものである。
1007は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにOS(オペレーティングシステム)やCPU1001が上記表情判定に係る一連の処理を実行する為に実行するプログラムなどを保存している。そしてこのプログラムはCPU1001からの指示により、RAM1002に読み出され、CPU1001により実行されるものである。なお、このプログラムは、図1に示した顔検出部102、表情判別部104をプログラムにより実現した場合には、この顔検出部102、表情判別部104に相当するプログラムを含むものである。
1008は記憶媒体ドライブ装置1008で、CD−ROMやDVD−ROM等の記憶媒体に記録されたプログラムやデータを読み出してRAM1002や外部記憶装置1007に出力するものである。なお、CPU1001が上記表情判定に係る一連の処理を実行する為に実行するプログラムをこの記憶媒体に記録しておき、CPU1001からの指示により、記憶媒体ドライブ装置1008がRAM1002に読み出すようにしても良い。
1009はI/Fで、図1に示した撮像部100と本装置を接続するためのもので、撮像部100が撮像した画像のデータはI/F1009を介してRAM1002に出力される。
1010は上記各部を繋ぐバスである。
続いて、本実施形態に係る画像処理装置を撮像装置に搭載させることにより、被写体が特定表情の場合に撮影を行う場合について、図12を参照して説明する。図12は本実施形態に係る画像処理装置を撮像装置に用いた例の構成を示す図である。
図12中の撮像装置5101は、撮影レンズおよびズーム撮影用駆動制御機構を含む結像光学系5102、CCD又はCMOSイメージセンサー5103、撮像パラメータの計測部5104、映像信号処理回路5105、記憶部5106、撮像動作の制御、撮像条件の制御などの制御用信号を発生する制御信号発生部5107、EVFなどファインダーを兼ねた表示ディスプレイ5108、ストロボ発光部5109、記録媒体5110などを具備し、更に上述した画像処理装置5111を表情検出装置として備える。
この撮像装置5101は、例えば撮影された映像中から人物の顔画像の検出(存在位置・サイズ・回転角度の検出)と表情の検出を画像処理装置5111により行う。そして、その人物の位置情報や表情情報等が画像処理装置5111から制御信号発生部5107に入力されると、同制御信号発生部5107は、撮像パラメータ計測部5104からの出力に基づき、その人物の画像を最適に撮影する制御信号を発生する。具体的には、例えば、人物の顔画像が撮影領域の中央に、所定以上のサイズで正面向きに得られ、笑った表情のときを撮影時点とすることができる。
上述した画像処理装置を、このように撮像装置に用いることで、顔検出と表情検出、それに基づくタイミングの良い撮影を行うことができるようになる。なお、上記説明では、上述した処理装置を画像処理装置5111として備える撮像装置5101について説明したが、当然、上述したアルゴリズムをプログラムとして実装し、CPUで動作させる処理手段として、撮像装置5101に搭載することも可能である。
またこの撮像装置に適用可能な画像処理装置としては本実施形態に係るものに限定されるものではなく、以下説明する実施形態に係る画像処理装置を適用しても良い。
上記説明したように、本実施形態に係る画像処理装置は、一次特徴、二次特徴、、、というような局所特徴を用いるので、撮影画像における顔の領域を特定できるだけでなく、新たに口や目などの検出処理を行うことなく、より簡便に表情の判定処理を行うことができる。
また、撮影画像中における顔の位置や向きなどがまちまちであっても、上記各局所特徴を求めることが出来、その結果、表情の判定処理を行うことができるので、撮影画像中における顔の位置や向きなどにロバストな表情判定を行うことができる。
また本実施形態によれば、何度も撮影を行う過程において、特定の表情のみを撮影することができる。
なお、本実施形態では顔の領域を検出するための画像は撮影画像であったが、これに限定されるものではなく、予め保存しておいたものであっても良いし、ダウンロードしたものであっても良い。
[第2の実施形態]
本実施形態では、第1の実施形態における顔検出領域の検出処理(ステップS202)と表情判別処理(ステップS204)とを並列に行なう。これにより、全体の処理をより高速に行うことができる。
図3は、本実施形態に係る画像処理装置の機能構成を示す図である。本実施形態に係る構成において、実質的には中間検出結果保持部303の構成と、画像保持部305の構成が第1の実施形態に係るそれとは異なっている。
中間検出結果保持部303はさらに、中間検出結果保持部A313と中間検出結果保持部B314で構成されている。また、画像保持部305も同様に、画像保持部A315と画像保持部B316で構成されている。
続いて、図3に示す構成の動作を、図4のタイミングチャートを用いて説明する。
図4のタイミングチャートにおいて、“A”の表示はAモードで動作することを、“B”の表示はBモードで動作することを示している。「画像撮影」のAモードとは、撮影した画像を画像保持部305に保持する際に、画像保持部A315に保持することを、Bモードとは、画像保持部B316に保持することを示す。以下、画像撮影のAモードとBモードとは交互に切り替わり、それに応じて撮像部300は画像の撮影を行うことから、撮像部300は連続して画像を撮影を行う。なお撮影のタイミングは制御部101が与えるものとする。
また、「顔検出」のAモードとは、顔検出部302の顔領域検出処理において、中間処理結果を中間検出結果保持部303に保持する際に、中間検出結果保持部A313に保持することを、Bモードとは、中間検出結果保持部B314に保持することを示す。
さらに「表情判別」のAモードとは、表情判別部304の表情判別処理において、画像保持部A315に保持された画像と中間検出結果保持部A313に保持された中間処理結果、及び顔検出部302の顔領域情報を用いて表情を判別することを示し、またBモードとは、画像保持部B316に保持された画像と中間検出結果保持部B314に保持された中間特徴検出結果、及び顔検出部302の顔領域情報とを用いて表情を判別することを示す。
次に、本実施形態に係る画像処理装置の動作について説明する。
最初に画像撮影のAモードで画像の撮影を行なうことにより、画像保持部305の画像保持部A315に撮影された画像が保持される。また、表示部306に画像が表示され、さらに顔検出部302に画像が入力される。次に、顔検出部302では、入力された画像に対して、第1の実施形態と同様な処理を行うことにより顔領域情報を生成する処理を行う。そして、画像中に顔が検出されれば、顔領域情報のデータが表情判別部304に入力される。また、その顔検出処理の途中で得られる中間特徴検出結果を中間検出結果保持部303の中間検出結果保持部A313に保持させる。
次に、Bモードの画像撮影とBモードの顔検出処理、Aモードの表情判別処理が並列に行なわれる。Bモードの画像撮影では、画像保持部305の画像保持部B316に撮影された画像が保持される。また、表示部306に画像が表示され、さらに顔検出部302に画像が入力される。そして、顔検出部302で、入力された画像に対して、第1の実施形態と同様の処理を行うことにより顔領域情報を生成する処理を行い、中間処理結果保持部B314に中間処理結果を保持する。
また、上記のBモードの画像撮影とBモードの顔領域検出処理と並列に、Aモードの表情判別処理が行なわれる。Aモードの表情判別処理では、表情判別部304で、画像保持部A315から入力された画像に対して、顔検出部302からの顔領域情報及び中間検出結果保持部A313に保持された中間特徴検出結果を用い、表情判別部304で顔の表情を判別する。表情判別部304で判別した表情が所望の表情の場合は、画像保持部A315の画像を記録して終了となる。
表情判別部304で判別した表情が所望の表情と異なる場合は、続いて、Aモードの画像撮影とAモードの顔領域検出処理、Bモードの表情判別処理が並列に行なわれる。Aモードの画像撮影では、画像保持部305の画像保持部A315に撮影された画像が保持される。また、表示部306に画像が表示され、さらに顔検出処理部302に画像が入力される。続いて、顔検出部302で、入力された画像に対して、顔領域を検出する処理を行う。また、並列に行なわれる、Bモードの表情判別処理では、表情判別部304で、画像保持部B316から入力された画像に対して、顔検出部302からの顔領域情報及び中間検出結果保持部B314に保持された中間検出結果を用い、表情判別部304で顔の表情を検出する。
以下、表情判別部304で判別した表情が特定の表情と判定されるまで、同様の処理を繰り返す。そして、所望の表情と判別されると、表情判別処理がAモードであれば画像保持部A315の画像を、Bモードであれば画像保持部B316の画像を記録して終了となる。
なお、各処理におけるモードの切り替えは制御部101が行い、そのタイミングは顔検出部102が行う顔検出処理の終了を制御部101が検知した時点でモードの切り替えを行うものとする。
このように、画像保持部305が画像保持部A315及び画像保持部B316から、また中間検出結果保持部303が中間検出結果保持部A313及び中間検出結果保持部B314から構成されているため、画像撮影及び顔領域検出処理、と表情判別処理とを並列に行なうことが出来、結果として、表情を判別する画像の撮影レートを上げることが出来る。
[第3の実施形態]
本実施形態に係る画像処理装置は、第1,2の実施形態における顔検出部102が行う顔領域検出処理と、表情判別部104が行う表情判別処理とを並列に行なうことにより、システム全体のパフォーマンスを向上させることを目的とする。
第2の実施形態では、画像撮影及び顔領域検出処理の方が、表情判別処理よりも動作時間がかかることを利用して、表情判別処理と、次の画像の撮影及び次の画像中の顔領域の検出処理を並列に行なっていた。それに対し本実施形態では、顔検出処理において、第1の実施形態の図7に示した4次特徴量を検出する処理が、1次特徴量から3次特徴量を検出するのと比較して処理時間がかかることを利用して、顔領域情報は前画像の検出結果を利用し、目や口といった表情の検出に使用する特徴点の検出結果は現画像の検出結果を利用する。これにより、顔領域検出処理と表情判別処理の並列処理を実現するものである。
図5は本実施形態に係る画像処理装置の機能構成を示す図である。
撮像部500は時系列画像又は動画像を撮像して、各フレームの画像のデータを顔検出部502、画像保持部505、表示部506、記録部507に出力するものである。本実施形態に係る構成において、実質的には、顔検出部502と表情判別部504とが第1の実施形態に係るそれとは異なっている。
顔検出部502は、第1の実施形態に係る顔領域検出処理と同じ処理を行うのであるが、その処理が終了すると、終了信号を表情判別部504に出力する。
表情判別部504は、さらに前画像検出結果保持部514を含む構成を備える。
次に、図5に示した各部が行う処理について、図6に示すタイミングチャートを用いて説明する。
撮像部500により最初のフレームの画像が撮影されると、この画像のデータは顔検出部502に入力される。顔検出部502では、入力された画像に対して、第1の実施形態と同様の処理を行うことにより顔領域情報を生成し、表情判別部504に出力する。表情判別部504に入力された顔領域情報は前画像検出結果保持部514に保持される。また、その途中で得られる中間特徴検出結果は中間検出結果保持部503に入力され、保持される。
続いて、次のフレームの画像が撮像部500により撮影されると、この画像のデータは画像保持部505に入力される。また、表示部506にその撮影された画像が表示され、さらに顔検出部502に画像が入力される。そして、顔検出部502は第1の実施形態と同様の処理を行うことにより顔領域情報を生成する。この顔領域検出処理が終了すると、顔検出部502は、その中間特徴の検出結果を中間検出結果保持部503に入力するとともに、表情判別部504が行うべき一連の処理が終了したことを示す信号を出力する。
そして、表情判別部504の判別結果の表情が、所望の表情でなかった場合は、顔検出部502で得られた顔領域情報を表情判別部504の前画像検出結果保持部514に保持する。
表情判別部504では、顔検出部502から上記終了信号を受けると、前画像検出結果保持部514に保持されている前画像(一つ若しくはそれ以上前のフレームの画像)に対する顔領域情報601と、画像保持部505に保持されている現画像(現在のフレームの画像)と、中間検出結果保持部503に保持されている現画像の中間特徴検出結果602を用いて、現画像に対する表情判別処理を行う。
即ち、1つ若しくはそれ以上前のフレームの画像において顔領域情報によって特定される領域に位置的に対応する原画像中の領域について、この領域から得られた中間検出結果を用いて表情判別処理を行う。
前画像を撮影した時間と現画像を撮影した時間との差が短ければ、夫々の画像中の顔領域の位置は大きくは変化しない。そのため、上記のように、顔領域情報は前画像から得られたものを使用し、図9、図10に示した探索領域をより広く設定することで、前画像と現画像の顔領域の位置等のずれによる影響を抑えることができ、表情の判別処理を行なうことができる。
表情判別部504で判別した表情が所望の表情の場合は、画像保持部505の画像を記録して終了となる。表情判別部504で判別した表情が所望の表情と異なる場合は、次の画像を撮影し、顔検出部502で顔検出処理を行い、また表情判別部504で、撮影した画像、前画像検出結果保持部514に保持されている前画像に対する顔検出結果、中間検出結果保持部503に保持されている中間処理結果を用いて、表情の判別処理が行われる。
以下、表情判別部504で判別した表情が所望の表情になるまで、同様の処理を繰り返す。そして、所望の表情と判別されると、画像保持部505の画像を記録して終了となる。
このように、前画像検出結果保持部514に保持されている前画像に対する顔領域情報と中間検出結果保持部503に保持されている中間特徴検出処理結果を用いて、表情の判別処理が行われることにより、顔領域検出処理と表情判別処理とを並列に行なうことが出来、結果として、表情を判別する画像の撮影レートを上げることが出来る。
[第4の実施形態]
上記実施形態では顔の表情を判別する為の技術について説明したが、本実施形態では、その顔が誰のものであるかの判別、すなわち顔に対する個人の判別するための技術について説明する。
図13は本実施形態に係る画像処理装置の機能構成を示す図である。本実施形態に係る画像処理装置は、撮像部1300、制御部1301、顔検出部1302、中間検出結果保持部1303、個人判別部1304、画像保持部1305、表示部1306、記録部1307から成る。以下、各部について説明する。
撮像部1300は、制御部1301からの制御信号に基づいて画像を撮影し、その撮影した画像(撮影画像)を、顔検出部1302、画像保持部1305、表示部1306若しくは記録部1307に出力する。
制御部1301は、本実施形態に係る画像処理装置全体を制御するための処理を行うものであり、撮像部1300、顔検出部1302、中間検出結果保持部1303、個人判別部1304、画像保持部1305、表示部1306、記録部1307と接続されており、各部が適切なタイミングで動作するよう、各部を制御するものである。
顔検出部1302は、撮像部1301からの撮影画像において顔の領域(撮影画像中に含まれる顔の画像の領域)を検出する処理を行う。この処理は即ち、撮影画像中の顔領域の有無の判別、顔領域が存在する場合にはこの顔領域の数、撮影画像における顔領域の座標位置、顔領域のサイズ、顔領域の撮影画像における回転量(例えば顔領域を矩形とする場合、この矩形が撮影画像においてどの方向にどれだけ傾いているかを示す回転量)を求める処理に換言される。なお、これらの情報(撮影画像中の顔領域の数、撮影画像における顔領域の座標位置、顔領域のサイズ、顔領域の撮影画像における回転量)を総称して以下、「顔領域情報」と呼称する。従って、顔領域情報を求めることにより、撮影画像における顔の領域を特定することができる。
これらの検出結果は表情判別部1304に出力する。また、検出処理の途中で得られる後述の中間検出結果は中間検出結果保持部1303へ出力する。
中間検出結果保持部1303は、顔検出部1302から出力された上記中間特徴検出結果を保持する。
個人判別部1304は、顔検出部1302から出力される顔領域情報のデータと、中間検出結果保持部1303から出力される上記中間特徴検出結果のデータとを受け付ける。そして、それらのデータに基づいて、この顔が誰のものであるかの判別処理を行う。この判別処理について詳しくは後述する。
画像保持部1305は、撮像部1300から出力された撮影画像を一時的に保持し、制御部1301の制御信号に基づいて、保持している撮影画像の全部若しくは一部を表示部1306、記録部1307へ出力する。
表示部1306は、例えばCRTや液晶画面などにより構成されており、画像保持部1305から出力された撮影画像の全部若しくは一部、又は撮像部1300で撮像された撮影画像を表示する。
記録部1307は、ハードディスクドライブやDVD−RAM、コンパクトフラッシュ(登録商標)などの記憶媒体に情報を記録する装置により構成されており、画像保持部1305に保持された画像、または撮像部1300で撮像された撮影画像を記録する。
次に、上記各部の動作によって実行される、撮影画像中の顔が誰のものであるかを判別する為のメインの処理について、同処理のフローチャートを示す図14を用いて説明する。
先ず、制御部1301からの制御信号に基づいて撮像部1300が画像を撮影する(ステップS1401)。撮影された画像のデータは、表示部1306に表示されると共に、画像保持部1305に出力され、更には顔検出部1302に入力される。
次に、顔検出部1302は入力された撮影画像を用いて、この撮影画像中の顔の領域を検出する処理を行う(ステップS1402)。この顔領域の検出処理については第1の実施形態と同様にして行うので、その説明は省略するが、顔検出処理における中間処理結果として、目・口、目や口の端点といった個人識別に有用な特徴が検出されているというのが、本実施形態に係る顔検出処理方式の大きな特徴である。
次に、制御部1301は、ステップS1402で顔検出部1302による顔領域検出処理の結果を参照して、撮影画像において顔領域が存在するか否かを判定する(ステップS1403)。この判定方法としては例えば、(顔)特徴検出層内の各ニューロンのうち、出力値がある基準値以上のニューロンが存在するかを判定し、基準値以上のニューロンが示す位置に顔(領域)が存在するとする。また、基準値以上のニューロンが存在しない場合は、顔が存在しないとする。
そしてステップS1403における判定処理の結果、撮影画像中に顔領域が存在しない場合、顔検出部1302はその旨を制御部1301に通知するので、処理をステップS1401に戻し、制御部1301は撮像部1300を制御して、新たな画像を撮影する。
一方、顔領域が存在した場合、顔検出部1302はその旨を制御部1301に通知するので、処理をステップS1404に進め、制御部1301は顔検出部1302による中間検出結果情報を中間検出結果保持部1303に保持させると共に、顔検出部1302による顔領域情報を個人判別部1304に入力する。
ここで顔の数は、前述のように、基準値以上のニューロンの数で求めることが出来る。なお神経回路網による顔検出は、顔のサイズ変動や回転変動に対してロバストであり、そのため、画像中の1つの顔に対して、基準値を超えたニューロンが1つになるとは限らない。一般的には、複数になる。そこで、基準値を超えたニューロン間の距離に基づいて基準値を超えたニューロンをまとめることにより、画像中の顔の数を求める。また、このようにまとめた複数のニューロンの平均位置や重心位置を顔の位置とする。
回転量や顔の大きさは以下のように求められる。前述のように、顔特徴を検出する時の中間処理結果として、目や口の検出結果が得られる。つまり、第1の実施形態で示した図10に示すように、顔検出結果を用いて、目探索範囲(RE3、RE4)と口探索範囲(RM2)を設定し、目特徴検出結果と口特徴検出結果に対して、その範囲で、目特徴と口特徴を検出することが出来る。具体的には、これらの範囲の、目検出層のニューロン及び口検出層のニューロンで、基準値を超えた複数のニューロンの平均位置または重心位置を目(左右の目)、口の位置とする。そして、それら3点の位置関係から顔の大きさや回転量が求められる。なお、この顔のサイズや回転量を求める際は目特徴検出結果から両目位置だけを求め、つまり口特徴を使用せずに、両目位置のみから顔のサイズや回転量を求めることも可能である。
そして個人判別部1304は、顔領域情報と中間検出結果保持部1303に保持れている中間検出結果情報とを用いて、撮影画像中の顔領域に含まれる顔が誰のものであるかの判別処理を行う(ステップS1404)。
ここで、個人判別部1304が行う判別処理(個人判別処理)について説明する。なお、この説明において先ずこの判別処理で使用する特徴ベクトルについて説明し、その後、その特徴ベクトルを用いた識別を行う識別器について説明する。
背景技術で説明したように、一般的に個人判別処理は、画像中の顔の位置や大きさを検出する顔検出処理とは独立に行われる。つまり通常、個人判別処理に使用される特徴ベクトルを求める処理と、顔検出処理とは別個独立のものである。それに対し、本実施形態では、個人判別処理に使用される特徴ベクトルを、顔検出処理の中間処理結果から得るので、個人判別処理を行う過程で求めるべき特徴量の数が従来よりも少なくてすむので、処理全体がより簡便になる。
図15は、個人判別処理で用いる特徴ベクトルについて説明した図である。図15(a)は個人判別処理に使用される特徴ベクトル1301を示す図、図15(b)は2次特徴の右空きV字特徴検出結果を示す図、図15(c)は左空きV字特徴検出結果を示す図、図15(d)は顔領域を含む撮影画像を示す図である。
ここで図15(b)、(c)における点線は、顔における目のエッジを示している。このエッジは、実際の特徴ベクトルではなく、V字特徴検出結果と目の関係をわかりやすくするために示してあるものである。また、図15(b)において1502a〜1502dはそれぞれ、2次特徴の右空きV字特徴検出結果における、各特徴におけるニューロンの発火分布領域を示し、黒色が大きな値を、白色が小さな値を示している。同様に、図15(c)において1503a〜1503dはそれぞれ、2次特徴の左空きV字特徴検出結果における、各特徴におけるニューロンの発火分布領域を示し、黒色が大きな値を、白色が小さな値を示している。
また、一般的に検出対象の平均的な形状の特徴であれば、ニューロンの出力値は大きな値になり、回転や移動等の変動があれば、出力値は小さな値になるため、図15(b)、(c)に示したニューロンの出力値の分布は、検出対象の存在する座標から周囲に向かって弱くなっている。
図15に模式的に示したように、個人判別処理に使用される特徴ベクトル1501は、中間検出結果保持部1303に保持された中間検出結果の一つである、2次特徴の右空きV字特徴検出結果と左空きV字特徴検出結果とから作成される。また、この特徴ベクトルは、図15(d)に示した顔領域全体1505ではなく両目を含む領域1504を使用している。より具体的には、両目を含む領域で右空きV字特徴検出層ニューロンの複数の出力値と左空きV字特徴検出層ニューロンの複数、の出力値をそれぞれ配列と考え、同じ座標の出力値を比較して、大きな値を選択するようにして、特徴ベクトルを作成している。
背景技術で説明したEigenface法では、顔領域全体を、固有顔とよばれる基底で分解し、その係数を個人判別に使用する特徴ベクトルとしていた。つまり、Eigenface法では、顔領域全体の特徴を使用して、個人判別を行っている。しかしながら、個人間で異なる傾向を示す特徴であれば、顔領域全体を使用せずに個人判別を行うことも可能である。図15で示した両目を含む領域の、右空きV字特徴検出結果と左空きV字特徴検出結果には、それぞれの目の大きさ、両目間の距離、また眉毛と目の距離といった情報が含まれており、これらの情報から個人判別することが可能である。
また、Eigenface法は、照明条件の変動に弱いという欠点があるが、図15に示した右空きV字特徴検出結果と左空きV字特徴検出結果は、照明条件やサイズ・回転変動にロバストに顔を検出するために学習された受容野を用いて得られており、照明条件やサイズ・回転変動の影響を受けにくく、個人判別を行うための特徴ベクトルの作成に適している。
さらに、前述のように右空きV字特徴検出結果と左空きV字特徴検出結果から個人判別を行うための特徴ベクトルを生成するのは非常に簡便な処理である。このように、顔検出処理の中間で得られる中間処理結果を用いて、個人判別のための特徴ベクトルを生成することは、非常に有用である。
本実施形態では、得られた特徴ベクトルを用いて個人判別を行う為の識別器は特に限定しないが、その一例として最近傍識別器がある。最近傍識別器は、各個人を示すトレーニングベクトルをプロトタイプとして記憶し、入力された特徴ベクトルと最も近いプロトタイプが属するクラスによって対象を識別する手法である。つまり、前述した手法で各個人の特徴ベクトルをあらかじめ求めて、それを保持しておき、入力画像から求めた特徴ベクトルと、保持しておいた特徴ベクトルとの距離を求め、最も近い距離の特徴ベクトルを示した人を、識別結果とするというものである。
また別の識別器として、Vapnikらによって提案されたSupport Vector Machine(以降、SVMとする)を使用しても良い。このSVMは、トレーニングデータから、マージン最大化という基準で線形しきい素子のパラメータを学習する。
また、カーネルトリックと呼ばれる非線形変換を組み合わせることで識別性能に優れた識別器となっている( Vapnik, “Statistical Learning Theory”, John Wiley & Sons (1998) )。つまり、各個人を示すトレーニングデータから判別のためのパラメータを求め、そのパラメータと入力画像から求めた特徴ベクトルから個人を判別する。ただし、SVMは基本的に2クラスを識別する識別器を構成するため、複数の人を判別する際は、複数のSVMを組み合わせて判別を行う。
ステップS1402で行う顔検出処理は前述のように、並列階層処理により画像認識を行う神経回路網を使用している。また各特徴を検出する際に使用する受容野は、大量の顔画像及び非顔画像を用いた学習により獲得される。つまり、顔検出処理を行う神経回路網では、大量の顔画像中で共通しながら、非顔画像とは共通しない情報を入力画像中から抽出し、その情報を用いて顔・非顔の区別をしていると考えることが出来る。
それに対し、個人判別を行う識別器は、顔画像から個人毎に作成された特徴ベクトルの差を識別するように設計されている。つまり、各個人ごとに、少しずつ異なった表情や向き等の顔画像を複数用意し、それら顔画像をトレーニングデータとすると、各個人ごとにクラスタが形成され、SVMを用いると、各クラスタを分離する面が高精度に獲得できる。
また、最近傍識別器であれば、十分な数のプロトタイプが与えられると、ベイズ誤り確率の2倍以下の誤り確率を達成できるという理論的根拠があり、個人間の差異を識別することが可能である。
図16は、3つの識別器それぞれにおいて学習時に用いられるデータを表として示した図である。すなわち同図の表は、顔検出識別器に(Aさん、Bさんを含む)人の顔の検出を行わせるためのトレーニングを行う際に用いるデータ、Aさん識別器にAさんを識別するためのトレーニングを行う際に用いるデータ、Bさん識別器にBさんを識別するためのトレーニングを行う際に用いるデータを示すもので、あって、顔検出識別器を用いた顔検出の為のトレーニング時では、サンプルに用いる全ての人(Aさん、Bさん、その他の人)の顔の画像から求めた特徴ベクトルを正解データとして用い、顔の画像でない背景画像(非顔画像)を不正解データとして用いる。
一方、Aさん識別器を用いたAさんの識別の為のトレーニング時ではAさんの顔画像から求めた特徴ベクトルを正解データとして用い、Aさん以外の人(同図では「Bさん」、「その他」)の顔画像から求めた特徴ベクトルを不正解データとして用いる。また、背景画像についてはトレーニング時には用いない。
同様に、Bさん識別器を用いたBさんの識別の為のトレーニング時ではBさんの顔画像から求めた特徴ベクトルを正解データとして用い、Bさん以外の人(同図では「Aさん」、「その他」)の顔画像から求めた特徴ベクトルを不正解データとして用いる。また、背景画像についてはトレーニング時には用いない。
従って、3次特徴である目を検出する際に使用する2次特徴検出結果と、前述の個人判別に使用する2次特徴検出結果は一部共通するが、上述のように、顔検出時に目特徴を検出するための識別器(神経回路網)と個人判別を行う識別器は、識別器の種類の違い(すなわち、第1の実施形態で示した神経回路網とSVMや最近傍識別器との違い)だけではなく、トレーニングに使用されるデータの組が異なるため、共通する検出結果を使用してもそこから抽出される、識別に使用する情報が結果的に異なることになり、前者は目を検出し、後者は個人を判別することが出来る。
なお、特徴ベクトルを作成する際に、顔検出部1302で得られた顔のサイズや向きが所定の範囲に入っていない場合は、中間検出結果保持部1303に保持されている中間処理結果に対して、回転補正やサイズ正規化を行うことも可能である。個人判別の識別器は、個人の細かな差異を識別するように設計されているため、サイズや回転を統一する方が、精度が向上する傾向がある。回転補正及びサイズ正規化は、中間検出結果保持部1303に保持されている中間処理結果を、個人判別部1304に入力するために、中間検出結果保持部1303から読み出すときに、行うことが出来る。
以上の処理によって、顔の個人判別ができたので、個人判別部1304は、判定した個人に応じたコード(各個人に個別のコード)が、予め設定されたある個人に対応するコードに一致しているか否かを判断する(ステップS1405)。このコードは例えば番号であっても良いし、その表現方法は特に限定されるものではない。この判定結果は制御部1301に通知する。
ここで、ステップS1404までの処理により判定した個人が、予め設定された特定の個人と同じであった場合、例えば本実施形態の場合には、個人判別部1304が出力した「個人を示すコード」と、予め設定された特定の個人を示すコードとが一致した場合、制御部1301は画像保持部1305が保持している撮影画像を記録部1307に記録する。また、記録部1307がDVD−RAMやコンパクトフラッシュ(登録商標)である場合には、制御部1301は記録部1307を制御してDVD−RAMやコンパクトフラッシュ(登録商標)等の記憶媒体に撮影画像を記録する(ステップS1406)。また、記録する画像を、顔領域の画像としても良い。
一方、ステップS1404までの処理により判定した個人が、予め設定された特定の個人と同じではなかった場合、例えば本実施形態の場合には、個人判別部1304が出力した「個人を示すコード」と、予め設定された特定の個人を示すコードとが一致しなかった場合、制御部1301は撮像部1300を制御し、新たな画像を撮影させる。
なお、判定された個人が特定の表情であった場合にはその他にも、例えばステップS1406で、制御部1301が撮像部1300を制御して次の画像を撮影させつつ、撮影した画像を記録部1307に保持させるようにしても良い。また、制御部1301は表示部1306を制御して、撮影した画像を表示部1306に表示しても良い。
また、ステップS202で検出された顔領域が綺麗に撮像されるように、制御部1301が撮影部1300の撮影パラメータ(露出補正、自動焦点、色補正等、撮像系の撮像パラメータ)を設定し、再撮影を行ない、表示、記録するように動作させることも可能である。
上記説明したように、階層的に検出した局所特徴から最終的な検出対象を検出するアルゴリズムに基づいて、画像中の顔を検出すると、検出した顔領域に基づいて、露出補正や自動焦点、及び色補正等の処理が行なえるだけではなく、その顔検出処理の途中で得られる中間特徴検出結果である、目の候補の検出結果、及び口の候補の検出結果を用いて、個人の判別が、目や口を検出するための新たな検出処理を行うことなく可能になり、処理コストの増加を抑えつつ個人を検出し撮影することが出来るという効果がある。また、顔の位置やサイズなどの変動に強い個人認識が可能になる。
また、本実施形態に係る画像処理装置は図11に示す構成を備えるコンピュータとしても良い。また、図12に示す撮像装置における画像処理装置5111に適用しても良く、その場合、個人の判別結果に応じた撮影を行うことが可能となる。
[第5の実施形態]
本実施形態に係る画像処理装置は、同じ1つの画像に対して上記実施形態で説明した顔領域検出処理、第1乃至3の実施形態で説明した表情判別処理、第4の実施形態で説明した個人判別処理を行う。
図17は、本実施形態に係る画像処理装置の機能構成を示す図である。基本的には第1の実施形態に係る画像処理装置の構成に、第4の実施形態に係る画像処理装置の構成、及び統合部1708を加えたものとなっている。統合部1708を除く各部については上記実施形態において同じ名前の部分と同じ動作を行う。すなわち、撮像部1700からの画像は顔検出部1702、画像保持部1705、記録部1707、表示部1706に出力される。顔検出部1702は、上記実施形態と同様の顔領域検出処理を行い、検出処理結果を上記実施形態と同様に、表情検出部1704、個人判別部1714に出力する。また、その処理の途中で得られる中間検出結果を中間検出結果保持部1703に出力する。表情検出部1704は、第1の実施形態における表情検出部104と同様の処理を行う。個人判別部1714は、第4の実施形態における個人判別部1304と同様の処理を行う。
統合部1708は、顔検出部1702、表情検出部1704、個人判別部1714それぞれの処理結果のデータを受け、これを用いて、顔検出部1702が検出した顔が、ある特定の個人の顔であるか否か、そして特定の個人の顔である場合にはこの特定の顔がある特定の表情であるか否かの判断処理を行う。つまり、ある特定の個人が特定の表情であるかを判別する。
次に、上記各部の動作によって実行される、撮影画像中の顔が誰のもので、且つどのような表情であるのかを判別する為のメインの処理について、同処理のフローチャートを示す図18を用いて説明する。
ステップS1801からステップS1803の各ステップにおける処理は、それぞれ図14のステップS1401からステップS1403の各ステップにおける処理と同じであるので説明は省略する。すなわち、ステップS1801からステップS1803までの処理で、制御部1701と顔検出部1702とにより、撮像部1700からの画像に顔領域が存在するか否かを判断する。
存在する場合には処理をステップS1804に進め、図2のステップS204における処理と同じ処理を行うことで、表情検出部1704は、検出した顔領域中の顔の表情を判別する。
次にステップS1805では、図14のステップS1404における処理と同じ処理を行うことで、個人判別部1714は、検出した顔領域中の顔の個人判別を行う。
なお、ステップS1804,ステップS1805の各ステップにおける処理は、ステップS1802で検出した各顔毎に行う処理である。
次に、ステップS1806では、統合部1708が、表情検出部1704から出力される「判定した表情に応じたコード」と、個人判別部1714から出力される「判定した個人に応じたコード」とを、各顔毎に管理する。
図19は、この管理したデータの構成例を示す図である。上述の通り、表情検出部1704、個人判別部1714は共に、顔検出部1702が検出した各顔毎に表情判別、個人判別を行う。従って、統合部1708は、各顔毎に固有のID(同図では数字1,2,、)に関連付けて、「判定した表情に応じたコード」と、「判定した個人に応じたコード」とを管理する。例えば、「判定した表情に応じたコード」として「笑顔」というコードと、「判定した個人に応じたコード」として「A」というコードは、IDが1の顔に対するものであるので、これらのコードを1のIDに関連付けて管理する。これはIDが2の場合についても同様である。このようにして統合部1708は各コードを管理するためのテーブルデータ(例えば図19に示す構成を有する)を生成し、保持する。
そしてその後、統合部1708はステップS1806で、特定の個人が、ある特定の表情であるか否かをこのテーブルデータを参照することで、判断する。例えば、Aさんが笑っているのか否かを図19のテーブルデータを用いて判断するとすると、図19のテーブルデータではAさんは笑顔であるので、Aさんは笑っていると判断する。
このようにして判断した結果、特定の個人が、ある特定の表情である場合には統合部1708はその旨を制御部1701に通知するので、処理をステップS1807に進め、図14のステップS1406と同じ処理を行う。
尚本実施形態では顔検出処理と表情判別処理とを連続して行ったが、第2,3の実施形態で説明した方法を用いても良い。その場合、全体の処理時間を短縮することができる。
以上の説明によって本実施形態によれば、画像から顔を検出し、個人を特定し、その表情を特定することで、多人数の中から所望の個人の所望の表情の写真を撮影すること、例えば、複数の子供の中から自分の子供の笑顔の瞬間を撮影することが可能となる。
つまり、第1の実施形態で説明した撮像装置の画像処理装置に本実施形態に係る画像処理装置を適用すれば、個人判別処理、表情判別処理の両方を行うことができ、その結果、特定の個人が特定の表情をしたときの撮影を行うことが可能となる。さらに、特定の個人、表情を認識することで、人間と機械のインターフェースとしても使用することが出来る。
[第6の実施形態]
本実施形態では、第5の実施形態で説明した表情判別処理と個人判別処理とを、シーケンシャルに行う。これにより、より高精度に特定の個人の特定の表情を判別することができる。
図20は、本実施形態に係る画像処理装置の機能構成を示す図である。同図に示した構成は、図18に示した第5の実施形態に係る画像処理装置の構成に対して、ほぼ同じであるが、個人判別部2014と表情判別部2004とが接続されている点、統合部1708の代わりに表情判別データ保持部2008が用いられている点が異なる。
図21は本実施形態に係る画像処理装置が行うメインの処理のフローチャートである。以下同図を用いて、本実施形態に係る画像処理装置が行う処理について説明する。
ステップS2101からステップS2103の各ステップにおける処理は、図18のステップS1801からステップS1803の各ステップにおける処理と同じであるので、その説明は省略する。
ステップS2104では、個人判別部2014がステップS1804と同様の処理を行うことで、個人判別処理を行う。なお、ステップS2104における処理は、ステップS1802で検出した各顔毎に行う処理である。次にステップS2105では、個人判別部2014は、ステップS2104で判別した顔がある特定の顔であるか否かを判断する。これは例えば、第5の実施形態で説明したように、管理情報(この場合、各顔固有のIDと、個人を示すコードとを関連付けるテーブル)を参照することで成されるものである。
そしてある特定の顔を示すコードと、判別した顔を示すコードとが一致する場合、すなわち、ステップS2104で判別した顔がある特定の顔である場合には個人判別部2014はその旨を表情検出部2004に通知し、そして処理をステップS2106に進め、表情判別処理2004は第1の実施形態と同様にして表情判別処理を行うのであるが、本実施形態では、表情検出部2004は表情判別処理を行う際には、表情判別データ保持部2008に保持されている「各個人に対応した表情判別データ」を用いる。
図22は、この表情判別データの構成例を示す図である。同図に示す如く、各個人毎に表情判別の為のパラメータをあらかじめ用意しておく。ここでパラメータとは、第1の実施形態で説明した「目の端点と口の端点の距離」「口の横幅の長さ」「目の横幅の長さ」のほかに、「頬の部分の影」や「目の下の影」等である。基本的には、第1の実施形態で説明したように、無表情の画像データから作成した参照データとの差分により、個人に依存しない表情認識は行えるが、個人に依存した特異な変化を検出することでより高精度の表情判別が行える。
例えば、ある特定の人物では、笑顔の時に、口が大きく横に伸びたり、頬の部分に影が出たり、目の下に影が出来るとすると、その人物に対する表情判別では、上記の特異な変化を使用することで、より精度の高い表情判別が可能になる。
従って表情検出部2004は、個人判別部2004が判別した顔を示すコードを受け、このコードに応じた表情判別のためのパラメータを表情判別データ保持部2008から読み出す。例えばこの表情判別データが図22に示す如く構成を有する場合、個人判別部2004が画像中のある顔をAさんのものであると判別し、Aさんを示すコードを表情検出部2004に出力すれば、表情検出部2004は、表情判別データ保持部2008から、Aさんに対応するパラメータ(目口間距離の変動率>1.1,頬領域エッジ密度3.0、、、を示すパラメータ)を読み出し、これを用いて表情判別処理を行う。
これにより表情検出部2004は、第1の実施形態で説明した処理を行うことで求めた目口間距離の変動率、頬領域エッジ密度等がこのパラメータが示す範囲に入っているのか否かをチェックすることで、更に高精度に表情判別を行うことができる。
図21に戻って、次に、表情検出部2004は、ステップS2106で判別した表情が、予め設定された特定の表情であるのか否かを判断する。これは、ステップS2106で判別した表情を示すコードと、予め設定された特定の表情を示すコードとが一致しているか否かを判別することで成されるものである。
そして一致している場合には処理をステップS2108に進め、その旨を制御部1701に通知し、図14のステップS1406と同じ処理を行う。
このように、各個人を特定してから、個人に合わせた表情認識を行うため、表情認識の精度が向上するという効果がある。また、画像から顔を検出し、個人を特定し、その表情を特定することで、多人数の中から所望の個人の所望の表情の写真を撮影すること、例えば、複数の子供の中から自分の子供の笑顔の瞬間を撮影することが可能となる。さらに、特定の個人、表情を認識することで、人間と機械のインターフェースとしても使用することが出来る。
また上記実施形態で「ある特定の個人」や「ある特定の表情」は所定の操作部を介して適宜ユーザが設定することも可能である。よって適宜設定するとそれに応じて当然、それらを示すコードもまた変更される。
また上記実施形態では、被写体を顔としたが、これに限らず、乗り物や建物などであってもよい。
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。