説明

画像処理装置、画像処理方法及びプログラム

【課題】頭部特徴である頭部上方のエッジをより高精度で検出できるようにする。
【解決手段】画像から被写体の領域を検出する画像処理装置であって、前記被写体の所定の部位を検出する検出手段と、前記被写体の他の候補領域を検出し、各候補領域にスコアを付ける手段と、各部位の位置とサイズとの関係から前記各候補領域のスコアに重みを付ける手段と、前記重みを付けたスコアに基づいて、前記被写体の他の部位の領域を選択する手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法及びプログラムに関し、特に、画像から頭部領域を検出するために用いて好適な技術に関する。
【背景技術】
【0002】
近年、カメラなどの撮影装置により撮影された映像において、指定された人物の位置を特定して追尾することにより、カメラのフォーカス、露出、及びカメラのパン、チルト、ズームなどの姿勢を制御する機能が注目されている。この機能では、人物の位置を特定するために、人物の顔パターンを検出し、その動きを追尾することが一般的である。このような画像中から顔を検出する技術としては、非特許文献1に各種方式が挙げられている。特に、非特許文献2に記載されている方法は、実行速度及び検出率が高いことから、顔検出の研究において広く使用されている。
【0003】
一方、人物の位置を特定するために、人物の顔パターンを検出して追尾するだけでは十分ではない。人物の顔の横回転や後ろ反転などにより、顔パターンを検出できない場合がある。そこで、顔の変わりに、頭部領域を検出して追尾することが有力な代替手段と考えられる。
【0004】
頭部領域を検出する方法としては、例えば非特許文献3に開示されているように、Hough変換を用いて楕円形状を検出する方法が知られている。また、近年では、非特許文献4に開示されるように、楕円円周上の勾配情報と、事前に取った頭部カラーヒストグラムモデルとで楕円内部のカラーヒストグラムのマッチングにより頭部の楕円形状を検出する研究も行われている。なお、頭部領域は楕円で近似することを前提とし、頭部領域は頭部楕円領域または頭部楕円の外接矩形領域とする。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】M.H. Yang, D.J. Kriegman and N. Ahuja. "Detecting Faces in Images:A Survey," IEEE Trans. on PAMI, vol.24, no.1, pp.34−58, January, 2002.
【非特許文献2】P. Viola and M. Jones. "Robust Real−time Object Detection," in Proc. of IEEE Workshop SCTV, July, 2001.
【非特許文献3】Duda, R. O. and P. E. Hart, "Use of the Hough Transformation to Detect Lines and Curves in Pictures," Comm. ACM, Vol. 15, pp. 11−15 (January, 1972).
【非特許文献4】Stan Birchfield, "Elliptical Head Tracking Using Intensity Gradients and Color Histograms," Proc. IEEE International Conference On Computer Vision and Pattern Recognition(CVPR '98), Santa Barbara, California, pp.232−237, June 1998
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述したように、人物の位置を特定するために、人物の顔を検出できない場合、人物の頭部を代わりに検出して追尾する方法が考えられる。しかしながら、人物の頭部の検出は顔の検出より困難であり、前に検出した頭部領域情報を利用して現在フレームとの対応付けを行い、頭部領域を追尾する。このため、人物の顔を検出できた時でも、頭部領域を正しく検出しておく必要がある。
【0007】
一方、人物を含めた画像または映像に、人物の頭部領域内のエッジが多く存在し、頭部の面外回転角度によるものの、背景領域に横エッジ及び縦エッジが多く存在する。従来の方法を用いて頭部楕円を検出しようとすると、これらの内部のエッジを頭部楕円として検出することがある。また、背景エッジ及び頭部エッジの組み合わせで、大きい楕円円弧として検出する場合もあり、頭部上方のエッジを正しく検出できない場合がある。
【0008】
本発明は前述の問題点に鑑み、頭部特徴である頭部上方のエッジをより高精度で検出できるようにすることを目的としている。
【課題を解決するための手段】
【0009】
本発明の画像処理装置は、画像から被写体の領域を検出する画像処理装置であって、前記被写体の所定の部位を検出する検出手段と、前記被写体の他の候補領域を検出し、各候補領域にスコアを付ける手段と、各部位の位置とサイズとの関係から前記各候補領域のスコアに重みを付ける手段と、前記重みを付けたスコアに基づいて、前記被写体の他の部位の領域を選択する手段とを備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、頭部特徴である頭部上方のエッジをより高精度で検出することができる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態における画像処理装置の機能構成例を示すブロック図である。
【図2】顔及び頭部の位置と頭部領域の面外回転角度との関係を示す図である。
【図3】第1の実施形態における処理手順の一例を示すフローチャートである。
【図4】人物頭部領域の垂直面外回転角度の関係を示す図である。
【図5】第3の実施形態における画像処理装置の機能構成例を示すブロック図である。
【図6】第3の実施形態における処理手順の一例を示すフローチャートである。
【図7】実施形態に係る画像処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を参照しながら説明する。
(第1の実施形態)
図7は、本実施形態に係る画像処理装置100のハードウェア構成例を示すブロック図である。
図7において、1001はCPUであり、本実施形態の画像処理装置100における各種制御を実行する。1002はROMであり、画像処理装置100本体の立ち上げ時に実行されるブートプログラムや各種データを格納する。1003はRAMであり、CPU1001が処理するための制御プログラムを格納するとともに、CPU1001が各種制御を実行する際の作業領域を提供する。1004はキーボード、1005はマウスであり、ユーザによる各種入力操作環境を提供する。
【0013】
1006は外部記憶装置であり、ハードディスクやフレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、磁気テープ等で構成される。ただし、外部記憶装置1006は、制御プログラムや各種データを全てROM1002に持つようにすれば、必ずしも必要な構成要素ではない。1007は表示器であり、ディスプレイなどで構成され、結果等をユーザに対して表示する。1008はネットワークインターフェースでる。1009はビデオインターフェースであり、撮像部と同軸ケーブルを解したフレーム画像の取り込みを可能とする。また、1011は上記の各構成を接続するバスである。
【0014】
図1は、本実施形態における被写体領域を検出する画像処理装置100の機能構成例を示すブロック図である。以下、本実施形態では、被写体領域とは人物の頭部を指すものとする。
初期頭部領域設定部110は、入力画像101に対し、マウス1005やキーボード1004などの外部入力装置からの指示により、ユーザーインタフェースを介して、頭部領域の初期領域を設定する。頭部検出領域設定部104は、現在のフレーム画像から頭部検出領域を設定する。
【0015】
顔検出部102は、頭部検出領域設定部104で設定された頭部検出領域について、被写体の第1部位である顔領域を検出する。候補楕円スコア算出部105は、頭部検出領域設定部104で設定した頭部検出領域において、被写体の第2部位である頭部の各候補楕円を検出し、スコアを算出する。角度増分計算部103は、過去のフレーム画像において顔及び頭部を検出し、且つ、現在のフレーム画像に顔及び頭部候補領域を検出した場合に、各頭部候補領域対前フレームの頭部の面外回転角度増分を計算する。本実施形態において、第1フレームの場合、各頭部候補領域の面外回転角度増分を計算しないようにする。
【0016】
重み計算部106は、角度増分計算部103で計算した頭部水平面外回転角度増分Δαkの分布に基づいて、各頭部候補領域のスコアに重みを付ける。頭部楕円選択部107は、各候補楕円のスコア及び重みに基づいて、頭部楕円領域又は外接矩形領域を選択する。
【0017】
図3は、本実施形態における処理手順の一例を示すフローチャートである。
まず、ステップS101において、初期頭部領域設定部110は、マウス1005やキーボード1004などの外部入力装置からの指示により、ユーザーインタフェースを介して、入力画像(t=0のフレーム画像)に頭部領域の初期領域を設定する。入力画像101は、静止画像でもよいし、連続映像のフレーム画像でもよい。本実施形態においては、連続映像のフレーム画像を例として説明する。
【0018】
ステップS102において、画像処理装置100は、ステップS103からステップS113までの処理を、全ての後続の入力画像(t≧1のフレーム画像)に対して行う。まず、ステップS103において、不図示の画像入力部から、フレーム画像を画像処理装置100に入力する。
【0019】
次に、ステップS104において、頭部検出領域設定部104は、入力された画像または映像について、頭部検出領域を設定する。具体的には、第1フレーム画像の場合、設定された頭部領域の初期設定を用い、初期領域の中心を頭部検出領域の中心とし、初期領域の幅w及び高hを所定倍数で拡大して、頭部検出領域の幅及び高とする。一方、第2フレーム画像以降の場合は、過去フレーム画像で検出した頭部領域を用い、頭部領域の中心を頭部検出領域の中心とし、頭部領域の幅w及び高hを所定倍数で拡大して、頭部検出領域の幅及び高とする。
【0020】
次に、ステップS105において、顔検出部102は、ステップS104で設定された頭部検出領域から顔領域を検出する。顔検出方法として、AdaBoostなどの機械学習手法を利用して、所定数の顔の特徴量を選択して弱判別器を構成し、cascadeの形で連結して強判別器を形成する。この強判別器を利用して、検出領域をスキャンし、選択された特徴量に合う領域を顔領域として検出する。現在tフレーム画像で検出した顔領域では、左上水平座標xf、左上垂直座標yf、横幅wf、縦幅hfとする。
【0021】
次に、ステップS106において、候補楕円スコア算出部105は、まず、ステップS104に設定された頭部検出領域に、頭部楕円のパラメータであるxe、ye、a、b、θを所定範囲内に設定する。ここで、xeは楕円中心水平座標であり、yeは楕円中心垂直座標であり、aは楕円横軸であり、bは楕円縦軸であり、θは楕円の回転角度である。次に、候補楕円スコア算出部105は、頭部検出領域設定部104で設定した頭部検出領域において、ハフ変換を利用して、各パラメータで表す候補楕円に投票するエッジ画素数nCntkを数える。ここで、Nはtフレーム画像で検出した頭部候補楕円数である。
【0022】
スコアskは、第k番目の楕円パラメータであらわす楕円が、現在フレーム画像の実際の被写体と、どの程度でマッチしたかどうかを示す指標である。一般性を失わず、スコアskが高いほど、よりよいマッチングを示すことを仮定できる。本実施形態において、スコアskは単にエッジ画素数nCntkとする。
【0023】
次に、ステップS107において、角度増分計算部103は、過去t−1フレーム画像と現在tフレーム画像とで顔領域を検出したかどうかを判断する。過去フレーム画像で顔及び頭部領域を両方とも検出し、且つ、現在フレーム画像で顔及び頭部候補領域を検出した場合は、以下のステップS108からステップS111までの処理を行う。一方、その他の場合は、各候補領域の重みを計算せず、ステップS112に移る。
【0024】
ステップS108において、角度増分計算部103は、不図示の記憶部から、過去フレーム画像の顔及び頭部領域を読み出して、t−1フレーム画像の頭部水平面外回転角度αt-1を計算する。
【0025】
図2は、顔及び頭部の位置と頭部領域の面外回転角度との関係を示す図である。
角度増分計算部103は、過去t−1フレーム画像で検出された顔領域(xft-1,yft-1,wft-1,hft-1)と頭部領域(xet-1,yet-1,at-1,bt-1)とを用い、t−1フレーム画像の頭部水平面外回転角度αt-1を計算する。計算する際には、以下の式(1)及び式(2)を用いる。ここで、(xf,yf)は顔領域の左上座標であり、(wf,hf)は顔領域の横幅及び縦高である。また、(xet-1,yet-1,at-1,bt-1)は頭部領域の楕円パラメータである。
【0026】
【数1】

【0027】
【数2】

【0028】
次に、ステップS109において、角度増分計算部103は、顔検出部102で検出した現在フレームの顔領域を利用して、各候補楕円の面外回転角度αkを計算する。角度増分計算部103は、現在tフレーム画像で検出した顔領域(xft,yft,wft,hft)の中心(xft+wft/2,yft+hft/2)と候補楕円の中心座標(xek,yek)との水平距離dxkを、以下の式(3)より計算する。水平距離dxkと候補楕円akとの比率から、頭部の面外回転角度αkを式(4)より計算する。ここで、Nはtフレーム画像で検出した頭部領域の候補楕円数である。ただし、例外処理として、顔領域及び頭部楕円領域が交差しない場合、または、顔領域と候補楕円との距離が候補楕円の横軸aを超える場合、候補楕円の重みは0とし、候補から削除することにする。
【0029】
【数3】

【0030】
【数4】

【0031】
続いて、ステップS110において、角度増分計算部103は、tフレーム画像に各候補楕円領域の角度の増分Δαkを、以下の式(5)により計算する。
【0032】
【数5】

【0033】
本実施形態において、第1フレーム画像の場合、過去フレーム画像に顔領域がないケースとして扱い、各候補楕円領域の面外回転角度の増分を計算しないようにする。
ステップS111において、重み計算部106は、ステップS110で求めた各候補楕円の水平面外回転角度増分Δαkの分布に基づいて、第k番目の候補楕円に対応する重みwkを式(6)より計算する。本実施形態において、頭部水平面外回転角度増分Δαkの分布は正規ガウス分布とし、σはその分布のパラメータである。
【0034】
【数6】

【0035】
ステップS112において、頭部楕円選択部107は、ステップS106で各候補楕円のスコアskを計算できた場合、計算した重みwkとスコアskに基づいて、式(7)により、第kmax番目の候補楕円を頭部楕円領域108として出力する。
【0036】
【数7】

【0037】
ステップS113において、頭部楕円選択部107で選択した頭部楕円領域108と、顔検出部102で検出した顔領域とを不図示の記憶部で記憶する。本実施形態において、候補楕円スコア算出部105で候補楕円のスコアを算出する方法はハフ変換を挙げていたが、楕円パターンマッチングの方法も同様に利用できる。楕円パターンマッチングでは、設定された楕円パラメータの変化範囲の各パラメータについて、楕円パターンを予め用意し、楕円パターン上のエッジ画素数nCntkを数えてスコアとする。
【0038】
また、候補楕円のスコアを計算する際、楕円上のエッジ画素数ではなく、エッジ勾配方向ベクトルgと楕円上点の法線ベクトルnとの角度により、以下の式(8)によりスコアを計算することもできる。ここで、<>は、エッジ勾配ベクトル(ベクトルg)と楕円上点の法線ベクトル(ベクトルn)の内積を示す。さらに、エッジ勾配方向ベクトルと楕円上点の法線ベクトルとを量子化して、量子化した角度の差でスコアを計算してもよい。
【0039】
【数8】

【0040】
また、楕円上のエッジ画素数nCntkと楕円パラメータとの組み合わせで構成した関数から、スコアを計算することもできる。この場合、以下の式(9)のような組み合わせとする。
【0041】
【数9】

【0042】
さらに、候補楕円のスコアの計算では、式(8)及び式(9)の両方を用い、以下の式(10)のいずれかの式により計算してもよい。
【0043】
【数10】

【0044】
また、本実施形態では、重み計算部106で重みを計算する際に、頭部領域の面外回転角度増分をガウス分布としたが、ガウス分布のほかに両側指数分布、三角分布、所定範囲内の一様分布などを利用して、重みを計算してもよい。なお、本実施形態では、頭部領域の面外回転角度を水平回転角度としたが、水平回転角度のほかに、図4に示すように垂直面外回転角度も、以下の式(11)を用いて同様に利用できる。ここで、dyt-1は過去フレーム画像の顔中心と頭部中心との垂直距離であり、dytは現在フレーム画像の顔中心と各候補楕円との垂直距離である。
【0045】
【数11】

【0046】
さらに、水平及び垂直の面外回転角度の両方を利用して、重みを設定してもよい。例えば、Δαを頭部領域の水平面外回転角度増分、Δβを頭部領域の垂直面外回転角度増分とし、重みについては、以下の式(12)により設定できる。
【0047】
【数12】

【0048】
また、以上の重み計算において、ΔαまたはΔβを予め計算しておき、記憶装置に記憶し、利用する際に、記憶装置から読み出して、参照することもできる。なお、以上のように重みはモデル化したものではなく、実際のユースケースに応じて、面外回転角度の分布を実測し、参照テーブルとして記憶装置に記憶することもできる。
【0049】
また、本実施形態において、頭部楕円選択部107は、式(7)により頭部楕円領域を選択するが、式(7)のほかに、skとwkとの和または重み付け和が最大になるように、頭部楕円領域を選択してもよい。さらに、sk及びwkからなる一般的な関数で、候補楕円領域を評価し、頭部楕円領域を選択してもよい。
【0050】
なお、本実施形態においては、過去と現在とで顔領域を検出できない場合、ステップS108からステップS111の処理をスキップして、skのみで頭部楕円を選択する。一方、他の実施方法として、wkを全部1に設定して、式(7)により頭部楕円領域を選択してもよい。
【0051】
また、本実施形態では、映像の第1フレームまたは静止画に適用する場合、第0フレームの頭部角度を予め初期値α0に設定し、α0により各頭部候補楕円の重みwkを計算し、初期値α0と近い角度の頭部候補楕円を優先的に選択することもできる。また、本実施形態では、候補楕円の選出を例として説明したが、頭部被写体を楕円ではなく円で近似しても、同じ方法で各候補円に重みを付けて頭部円を選出することができる。
【0052】
以上のように本実施形態によれば、過去フレーム画像で顔領域と頭部領域とを両方とも検出し、且つ、現在フレーム画像で顔領域を検出した場合に、現在フレームの各頭部候補領域の面外回転角度増分を求めることができる。前記面外回転角度の増分は、過去フレームの顔領域と頭部領域との位置関係とサイズと、現在フレーム画像の顔領域と頭部候補領域の位置関係及びサイズから計算できる。また、面外回転角度増分により、頭部候補領域に重みを付けて、候補領域を頭部面外回転角度の時系列方向でフィルタリングすることができ、背景エッジの悪影響を低減できる。特に、第1フレーム画像の場合、過去の面外回転角度を所定角度に指定すると、現在フレーム画像で所定角度の頭部領域を安定して検出することができる。
【0053】
(第2の実施形態)
本実施形態では、第1の実施形態とは面外回転角度増分の計算方法が異なっている。それ以外については第1の実施形態と同様であるため、異なる点についてのみ説明する。
【0054】
本実施形態においては、角度増分計算部103は、以下の式(13)により、arcsin関数をテイラー展開して近似計算を行い、処理を高速化する。
【0055】
【数13】

【0056】
ここで、式(2)及び式(4)の計算を近似計算により計算すると、以下の式(14)のように計算できる。
【0057】
【数14】

【0058】
式(14)において、αt-1及びαkの計算では、第2項まで近似計算すれば45度まで相対誤差は3%以内になるため、十分な精度を取れる。つまり、回転角度は45度以上の場合、αt-1及びαkの計算は、以下の式(15)により、相対誤差を3%以内にして計算できる。また、以上の近似計算では、xが0に近い場合は第1項のみで近似計算できる。
【0059】
【数15】

【0060】
なお、arcsinの計算または以上の近似計算は、xについて予め計算しておき、参照テーブルとして記憶装置に記憶して、顔の面外回転角度の増分を計算する際に、前記参照テーブルを読み出して参照することにより高速化することもできる。また、前後のフレーム画像で頭部サイズが殆ど変わらないユースケースの場合、αt-1とαkとの差分は、顔中心と頭部中心との距離と比例するので、重み計算部106で候補楕円の重みを計算する際、顔中心と頭部中心との距離に基づいて計算してもよい。
【0061】
(第3の実施形態)
図5は、本実施形態に係る画像処理装置200の機能構成例を示すブロック図である。第1の実施形態では、全ての候補楕円について頭部面外回転の角度増分を計算した。これに対して本実施形態では、上位スコア候補楕円選出部207を備え、上位スコアの候補楕円を選出して、上位スコアの候補楕円のみについて頭部面外回転の角度増分を計算し、重みを付けて、頭部楕円を選択する。顔検出部202、頭部検出領域設定部204、候補楕円スコア算出部205及び初期頭部領域設定部210の構成については、それぞれ図1の顔検出部102、頭部検出領域設定部104、候補楕円スコア算出部105及び初期頭部領域設定部110と同様である。したがって、これらの構成については、詳細な説明は省略する。
【0062】
上位スコア候補楕円選出部207は、候補楕円スコア算出部205で各候補楕円について計算したスコアをソートして、上位スコアの候補楕円を選択する。スコアの計算方法は第1の実施形態と同様である。また、角度増分計算部203、重み計算部206、及び頭部楕円選択部208は、上位スコア候補楕円選出部207で選出した各上位スコアの候補楕円のみについて、第1の実施形態と同様の処理を行い、頭部楕円を選択する。
【0063】
図6は、本実施形態における処理手順の一例を示すフローチャートである。第1の実施形態で説明した図3と異なる点は、ステップS207の処理を含む点である。
図6において、ステップS201〜S206の処理は、それぞれ図3のステップS101〜S106の処理と同様である。そして、ステップS207において、ステップS206で計算した各候補楕円のスコアskをソートし、スコアが上位になった所定数の候補楕円を選出する。そして、ステップS208〜S214までの処理では、ステップS207で選出した各上位スコアの候補楕円について行う。なお、ステップS208〜S215は、それぞれ図3のステップS107〜S114の処理と同様である。
【0064】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0065】
102 顔検出部
103 角度増分計算部
104 頭部検出領域設定部
105 候補楕円スコア算出部
106 重み計算部
107 頭部楕円選択部
110 初期頭部領域設定部

【特許請求の範囲】
【請求項1】
画像から被写体の領域を検出する画像処理装置であって、
前記被写体の所定の部位を検出する検出手段と、
前記被写体の他の候補領域を検出し、各候補領域にスコアを付ける手段と、
各部位の位置とサイズとの関係から前記各候補領域のスコアに重みを付ける手段と、
前記重みを付けたスコアに基づいて、前記被写体の他の部位の領域を選択する手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記の被写体は人物であり、前記部位は人物の顔領域であり、前記他の部位は人物の頭部領域であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記検出手段は顔を検出し、前記スコアを付ける手段は頭部領域を検出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記被写体の他の部位の候補領域は、前記スコアを計算する頭部楕円領域またはその外接矩形領域であることを特徴とする請求項1に記載の画像処理装置。
【請求項5】
画像から被写体の領域を検出する画像処理方法であって、
前記被写体の所定の部位を検出する検出工程と、
前記被写体の他の候補領域を検出し、各候補領域にスコアを付ける工程と、
各部位の位置とサイズとの関係から前記各候補領域のスコアに重みを付ける工程と、
前記重みを付けたスコアに基づいて、前記被写体の他の部位の領域を選択する工程とを備えることを特徴とする画像処理方法。
【請求項6】
請求項5に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−3891(P2013−3891A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−135088(P2011−135088)
【出願日】平成23年6月17日(2011.6.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】