図1は実施の形態に係る画像検出装置1を備える画像処理システム100の構成を示す図である。画像処理システム100は、画像検出装置1と、撮像装置5とを備えている。撮像装置5は、画像を撮像し、撮像画像を示す画像データを画像検出装置1に出力する。画像検出装置1は、移動体の画像を検出対象画像として、入力される画像データが示す撮像画像から当該検出対象画像を検出する。画像検出装置1は、撮像装置5で撮像画像が撮像されるたびに、当該撮像画像から検出対象画像を検出する。
本実施の形態では、例えば、人の顔の画像が検出対象画像とされる。人の顔は移動体の一種である。画像処理システム100は、例えば、監視カメラシステム、デジタルカメラシステム等で使用される。以後、単に「顔」と言えば「人の顔」を意味する。また「顔画像」と言えば、人の顔画像を意味する。検出対象画像は顔画像以外の画像であっても良い。例えば、移動体である人全体の画像(人体の画像)、あるいは移動体である車の画像を検出対象画像としても良い。
画像検出装置1は、一種のコンピュータであって、図1に示されるように、CPU(Central Processing Unit)2及び記憶部3を備えている。記憶部3は、ROM(Read Only Memory)及びRAM(Random Access Memory)等の、画像検出装置1(CPU2)が読み取り可能な非一時的な記録媒体で構成されている。記憶部3には、画像検出装置1の動作を制御するための制御プログラム4等が記憶されている。記憶部3は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えていても良い。記憶部3は、例えば、ハードディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)メモリ等を備えていても良い。
画像検出装置1の各種機能は、CPU2が記憶部3内の制御プログラム4を実行することによって実現される。画像検出装置1では、制御プログラム4が実行されることによって、図2に示されるような複数の機能ブロックが形成される。
図2に示されるように、画像検出装置1は、機能ブロックとして、画像入力部11と、検出部12と、検出対象画像特定部15と、しきい値調整部16とを備えている。画像検出装置1が備える各種機能は、機能ブロックではなくハードウェア回路で実現しても良い。
画像入力部11には、撮像装置(カメラ)5で順次撮像された複数枚の撮像画像をそれぞれ示す複数の画像データが順次入力される。画像入力部11は、入力された画像データが示す撮像画像を所定サイズにまで縮小し、縮小後の撮像画像を示す画像データを出力する。撮像装置5では、例えば、1秒間にL枚(L≧2)の画像が撮像される。つまり、撮像装置5での撮像フレームレートは、Lfps(frame per second)である。本実施の形態では例えばL=30となっている。
また、画像入力部11が出力する画像データが示す撮像画像(撮像装置5で得られた撮像画像を縮小したもの)では、行方向にX個(X≧2)のピクセルが並び、列方向にY個(Y≧2)のピクセルが並んでいる。撮像装置5で得られる撮像画像の解像度は、例えばフルハイビジョンである。また、画像入力部11が出力する画像データが示す撮像画像は、例えばVGA(Video Graphics Array)であって、X=640、Y=480となっている。
なお以後、撮像画像において、行方向にx個(x≧1)のピクセルが並び、列方向にy個(y≧1)のピクセルが並ぶ領域の大きさをxp×ypで表す(pはピクセルの意味)。また、行列状に配置された複数の値において、左上を基準にして第x行目であって第y列目に位置する値をx×y番目の値と呼ぶことがある。また以後、単に「撮像画像」と言えば、画像入力部11が出力する画像データが示す撮像画像を意味する。
検出部12は、画像入力部11から出力される画像データを使用して、当該画像データが示す撮像画像に対して顔画像の検出を行う。具体的には、検出部12は、撮像画像に検出枠を設定し、当該検出枠内の画像についての顔画像である確からしさを示す検出確度値を求めて、当該検出確度値がしきい値よりも大きいあるいは当該しきい値以上である場合には、当該検出枠内の画像は顔画像である可能性が高いと判断する検出処理を、当該検出枠を移動させながら行う。以後、検出処理と言えば、検出部12でのこの検出処理を意味する。
しきい値調整部16は、検出部12での検出処理で使用されるしきい値を調整する。検出対象画像特定部15は、検出部12での撮像画像についての検出処理の結果に基づいて、当該撮像画像において顔画像を特定する。これにより、画像検出装置1では、撮像装置5で撮像された撮像画像から顔画像が検出される。
次に、画像検出装置1の各ブロックの動作について詳細に説明する。
<検出部の詳細動作>
図2に示されるように、検出部12は、特徴量抽出部13及び識別器14を備えている。検出部12は、撮像画像における様々な大きさの顔画像を検出するために、サイズの異なる複数種類の検出枠を使用する。検出部12では、例えば30種類の検出枠が使用される。検出部12は、複数種類の検出枠のそれぞれについて、当該検出枠を用いた検出処理を行う。検出部12で使用される複数種類の検出枠のうち最も小さい検出枠は、例えば、大きさが16p×16pの検出枠である。また、当該複数種類の検出枠には、大きさが18p×18pの検出枠及び大きさが20p×20pの検出枠などが含まれている。
検出部12での検出処理では、特徴量抽出部13が、撮像画像に対して検出枠を設定し、当該撮像画像における当該検出枠内の画像から複数の特徴量を抽出する。特徴量抽出部13は、検出枠内の画像から、例えばHaar−like特徴量やLBP (Local Binary Pattern)特徴量などの特徴量を抽出する。特徴量の種類についてはこれに限られず、Co−HOG(Histograms of Oriented Gradients)特徴量などの共起性を表す特徴量であってもよい。
識別器14は、特徴量抽出部13が検出枠内の画像から抽出した複数の特徴量から成る特徴ベクトルと、学習サンプル(学習用のサンプル画像)に基づいて生成された複数の重み係数から成る重みベクトルとに基づいて、当該検出枠内の画像が顔画像である確からしさを示す検出確度値を算出する。具体的には、識別器14は、検出枠内の画像についての特徴ベクトルと、重みベクトルとの内積を求め、当該内積に所定のバイアス値を加算して得られる実数値を、当該検出枠内の画像が顔画像である確からしさを示す検出確度値とする。識別器14で算出される検出確度値は、検出枠内の画像についての顔画像らしさ(顔らしさ)を示している。識別器14では、例えば、SVM(Support Vector Machine)あるいはAdaboostが使用される。
識別器14は、算出した検出確度値がしきい値よりも大きいあるいは当該しきい値以上であれば、検出枠内の画像が顔画像である可能性が高いと判定する。一方で、識別器14は、算出した検出確度値がしきい以下あるいは当該しきい値未満であれば、検出枠内の画像が顔画像でない可能性が高いと判定する。識別器14は、撮像画像における検出枠内の画像が顔画像である可能性が高いと判定すると、当該検出枠内の画像を検出結果領域とし、当該検出枠を検出結果枠とする。識別器14で使用されるしきい値は、後述のように、しきい値調整部16で調整されることによって、撮像画像での検出枠の位置によって異なることがある。
次に、検出部12が検出枠を移動させながら撮像画像について検出処理を行う際の当該検出部12の一連の動作について説明する。図3〜6は、検出部12の当該動作を説明するための図である。検出部12は、検出枠をラスタスキャンさせながら、当該検出枠内の画像に対して顔画像の検出を行う。
図3に示されるように、特徴量抽出部13は、撮像画像20の左上にまず検出枠10を設定して、当該検出枠10内の画像から複数の特徴量を抽出する。識別器14は、特徴量抽出部13が抽出した複数の特徴量から成る特徴ベクトルと、複数の重み係数から成る重みベクトルとに基づいて、検出枠10内の画像についての検出確度値を求める。そして、識別器14は、算出した検出確度値がしきい値よりも大きいあるいは当該しきい値以上である場合には、撮像画像20での左上の検出枠10内の領域が顔画像である可能性が高いと判定し、当該領域を検出結果領域とし、当該領域の外形枠である当該検出枠10を検出結果枠とする。
次に特徴量抽出部13は、撮像画像20において検出枠10を少し右に移動させる。特徴量抽出部13は、例えば、1ピクセル分あるいは数ピクセル分だけ右に検出枠10を移動させる。そして、特徴量抽出部13は、撮像画像20における移動後の検出枠10内の画像から複数の特徴量を抽出する。
その後、識別器14は、特徴量抽出部13で抽出された複数の特徴量から成る特徴ベクトルと、複数の重み係数から成る重みベクトルとに基づいて、移動後の検出枠10内の画像についての検出確度値を求める。そして、識別器14は、算出した検出確度値がしきい値よりも大きいあるいは当該しきい値以上である場合には、移動後の検出枠10内の画像が顔画像である可能性が高いと判定して、当該画像を検出結果領域とするとともに、当該画像の外形枠である移動後の検出枠10を検出結果枠とする。
その後、検出部12は同様に動作して、図4に示されるように、検出枠10が撮像画像20の右端まで移動すると、検出部12は、右端の検出枠10内の画像についての検出確度値を求める。そして、検出部12は、求めた検出確度値がしきい値よりも大きいあるいは当該しきい値以上であれば、右端の検出枠10内の画像を検出結果領域とするとともに、当該右端の検出枠10を検出結果枠とする。
次に、特徴量抽出部13は、図5に示されるように、検出枠10を少し下げつつ撮像画像20の左端に移動させた後、当該検出枠10内の画像から複数の特徴量を抽出する。特徴量抽出部13は、上下方向(列方向)において例えば1ピクセル分あるいは数ピクセル分だけ下に検出枠10を移動させる。その後、識別器14は、特徴量抽出部13から抽出された複数の特徴量から成る特徴ベクトルと、複数の重み係数から成る重みベクトルとに基づいて、現在の検出枠10内の画像についての検出確度値を求めて出力する。そして、識別器14は、算出した検出確度値がしきい値よりも大きいあるいは当該しきい値以上である場合には、現在の検出枠10内の画像が顔画像である可能性が高いと判定して、当該画像を検出結果領域とするとともに、当該検出枠10を検出結果枠とする。
その後、検出部12は同様に動作して、図6に示されるように、検出枠10が撮像画像20の右下まで移動すると、検出部12は、右下の当該検出枠10内の画像についての検出確度値を求める。そして、検出部12は、求めた検出確度値がしきい値よりも大きいあるいは当該しきい値以上であれば、右下の検出枠10内の画像を検出結果領域とするとともに、当該右下の検出枠を検出結果枠とする。
以後、検出枠10をラスタスキャンさせる場合において、検出枠10の右方向の一回の移動量と、検出枠10が撮像画像の右端に到達した後の下方向の一回の移動量を「スキャンステップ」と呼ぶ。本実施の形態では、スキャンステップは例えば5ピクセルとなっている。
検出部12は、以上ような、検出枠を移動させながらの検出処理を、複数種類の検出枠のそれぞれを用いて行う。これにより、撮像画像に顔画像が含まれている場合には、検出結果領域(顔画像である可能性が高い領域)及び検出結果枠(顔画像である可能性が高い領域の外形枠)が得られるとともに、検出結果枠に対応した検出確度値が得られる。撮像画像について得られた検出結果枠に対応した検出確度値とは、当該撮像画像における当該検出結果枠内の画像が顔画像である確からしさを示している。
図7は、撮像画像20について得られた検出結果枠150が当該撮像画像20に重ねて配置された様子を示す図である。図7に示されるように、互いにサイズの異なる複数種類の検出枠が使用されて検出処理が行われることによって、様々な大きさの検出結果枠150が得られる。言い換えれば、様々な大きさの検出結果領域が得られる。これは、撮像画像20に含まれる様々な大きさの顔画像が検出されていることを意味している。撮像画像20に含まれる各顔画像の近くには、複数の検出結果枠150が位置しており、複数の検出結果枠150は重なることがある。つまり、撮像画像20に含まれる各顔画像の近くには、複数の検出結果領域が位置しており、複数の検出結果領域は重なることがある。
<検出対象画像特定部の詳細動作>
検出対象画像特定部15は、検出部12での撮像画像についての検出結果に基づいて、顔画像としての確からしさ(顔画像らしさ)を示す検出確度値についての当該撮像画像での分布を示す出力値マップを生成する。そして、検出対象画像特定部15は、撮像画像について生成した出力値マップに基づいて、当該撮像画像での顔画像を特定する。以下に、出力値マップの生成方法について説明する。
<出力値マップの生成方法>
検出対象画像特定部15は、撮像画像と同様に、行方向にX個の値が並び、列方向にY個の値が並ぶ、合計(X×Y)個の値から成るマップ170を考える。そして、検出対象画像特定部15は、撮像画像についての一つの検出結果枠を対象検出結果枠とし、対象検出結果枠と同じ位置に、対象検出結果枠と同じ大きさの枠180をマップ170に対して設定する。図8は、マップ170に対して枠180を設定した様子を示す図である。
次に検出対象画像特定部15は、マップ170における、枠180外の各値については“0”とし、枠180内の各値については、対象検出結果枠に対応する検出確度値(対象検出結果枠となった検出枠内の画像に対して顔画像の検出を行った結果得られた検出確度値)を用いて決定する。対象検出結果枠の大きさが、例えば16p×16pであるとすると、枠180内には、行方向に16個、列方向に16個、合計256個の値が存在する。また、対象検出結果枠の大きさが、例えば20p×20pであるとすると、枠180内には、行方向に20個、列方向に20個、合計400個の値が存在する。図9は、枠180内の各値を決定する方法を説明するための図である。
検出対象画像特定部15は、枠180内の中心181の値を、検出部12で求められた、対象検出結果枠に対応する検出確度値とする。そして、検出対象画像特定部15は、枠180内のそれ以外の複数の値を、枠180の中心181の値を最大値とした正規分布曲線に従って枠180内の中心181から外側に向けて値が徐々に小さくなるようにする。これにより、マップ170を構成する複数の値のそれぞれが決定されて、対象検出結果枠に対応するマップ170が完成する。
以上のようにして、検出対象画像特定部15は、撮像画像についての複数の検出結果枠にそれぞれ対応する複数のマップ170を生成する。そして、検出対象画像特定部15は、生成した複数のマップ170を合成して出力値マップを生成する。
具体的には、検出対象画像特定部15は、生成した複数のマップ170のx×y番目の値を加算し、それによって得られた加算値を出力値マップのx×y番目の検出確度値とする。検出対象画像特定部15は、このようにして、出力値マップを構成する各検出確度値を求める。これにより、撮像画像での検出確度値の分布を示す出力値マップが完成する。出力値マップでは、撮像画像と同様に、行方向にX個の検出確度値が並び、列方向にY個の検出確度値が並んでいる。出力値マップは(X×Y)個の検出確度値で構成される。出力値マップを参照すれば、撮像画像において顔画像らしさが高い領域を特定することができる。つまり、出力値マップを参照することによって、撮像画像おける顔画像を特定することができる。
図10は、撮像画像20についての出力値マップを当該撮像画像20に重ねて示す図である。図10及び後述の図12では、理解し易いように、検出確度値の大きさを例えば第1段階から第5段階の5段階に分けて出力値マップを示している。図10,12に示される出力値マップにおいては、検出確度値が、最も大きい第5段階に属する領域については縦線のハッチングが示されており、2番目に大きい第4段階に属する領域については砂地のハッチングが示されている。また、図10,12に示される出力値マップにおいては、検出確度値が、3番目に大きい第3段階に属する領域については右上がりのハッチングが示されており、4番目に大きい第2段階に属する領域については左上がりのハッチングが示されている。そして、図10,12に示される出力値マップにおいては、検出確度値が、最も小さい第1段階に属する領域についてはハッチングが示されていない。
図10に示される出力値マップにおいては、撮像画像20での顔画像に対応する領域(顔画像と同じ位置にある領域)での検出確度値が高くなっている。これは、撮像画像20に含まれる顔画像が適切に検出されていることを意味する。また、出力値マップにおける、撮像画像20での顔画像に対応する領域では、顔画像の中心付近と同じ位置での検出確度値が最も大きくなっており、外側に向かうほど検出確度値が小さくなっている。
<2値化処理>
検出対象画像特定部15は、出力値マップを生成すると、当該出力値マップをしきい値を用いて2値化して2値化マップを生成する。具体的に、検出対象画像特定部15は、出力値マップにおいて、検出確度値がしきい値以上あるいは当該しきい値よりも大きい領域の各値を例えば“1”に変更し、検出確度値が当該しきい値未満あるいは当該しきい値以下の領域の各値を例えば“0”に変更する。これにより、出力値マップにおける、検出確度値がしきい値以上あるいは当該しきい値よりも大きい領域に対応する、各値が“1”である高確度領域と、出力値マップにおける、検出確度値がしきい値未満あるいは当該しきい値以下の領域に対応する、各値が“0”である低確度領域とで構成された2値化マップが生成される。
図11は撮像画像20の一例を模式的に示す図である。図12は、図11に示される撮像画像20についての出力値マップ40を示す図である。図13は、図12に示される出力値マップ40を所定のしきい値を用いて2値化して生成された2値化マップ50を示す図である。
図12に示されるように、出力値マップ40では、撮像画像20に含まれる顔画像20aに対応する領域40aでの検出確度値や、撮像画像20に含まれる顔画像20bに対応する領域40bでの検出確度値は大きくなっている。一方で、出力値マップ40では、撮像画像20に含まれる顔画像20cに対応する領域40cでの検出確度値は小さくなっている。
図12に示される出力値マップ40を、例えば、検出確度値についての第2段階(左上がりのハッチング)と第3段階(右上がりのハッチング)の境界の値をしきい値として2値化すると、図13に示される2値化マップ50が得られる。図13では、高確度領域51には斜線のハッチングが示されており、低確度領域52にはハッチングが示されていない。出力値マップ40では、顔画像20cに対応する領域40cでの検出確度値は、全体的に、顔画像20a,20bに対応する領域40a,40bでの検出確度値よりもが小さくなっていることから、2値化マップ50の高確度領域51では、顔画像20cに対応する領域51cは、顔画像20a,20bにそれぞれ対応する領域51a,51bよりも小さくなっている。
2値化マップ50の生成で用いられるしきい値を適切に調整すると、図13に示されるように、2値化マップ50の高確度領域51には、撮像画像20に含まれる複数の顔画像20a〜20cにそれぞれ対応する互いに独立した(分離した)複数の領域51a〜51cが含まれるようになる。よって、当該複数の領域51a〜51cから、撮像画像20に含まれる複数の顔画像20a〜20cのそれぞれを個別に特定することが可能となる。
<2値化マップを用いた検出対象画像の特定方法>
検出対象画像特定部15は、2値化マップを生成すると、当該2値化マップの高確度領域に含まれる独立領域(島領域)を特定する。図13の例では、領域51a〜51cのそれぞれが独立領域として特定される。2値化マップの高確度領域に含まれる独立領域については、当該2値化マップに対して4連結等を用いたラベリングを行うことによって特定することができる。
検出対象画像特定部15は、特定した独立領域に基づいて、撮像画像において顔画像を特定する。具体的には、まず検出対象画像特定部15は、特定した各独立領域について、当該独立領域に外接する外接矩形を求める。図14は、図13に示される2値化マップ50の高確度領域51に含まれる独立領域51a〜51cについての外接矩形を示す図である。図14に示される外接矩形60a〜60cは、それぞれ、図13に示される2値化マップ50の高確度領域51に含まれる独立領域51a〜51cの外接矩形である。
検出対象画像特定部15は、撮像画像についての2値化マップの高確度領域の各独立領域についての外接矩形を求めると、当該外接矩形を当該撮像画像に設定する。図15は、図14に示される外接矩形60a〜60cを図11に示される撮像画像20に設定した様子を示す図である。検出対象画像特定部15は、撮像画像に設定された各外接矩形について、当該外接矩形内の画像が一つの顔画像であると判断する。これにより、撮像画像20において顔画像が特定される。
画像検出装置1は、撮像画像を表示装置に表示する際には、図15に示されるように、検出対象画像特定部15で求められた外接矩形を撮像画像に重ねて表示する。
また、画像検出装置1は、予め登録された顔画像と、撮像画像において特定した顔画像(外接矩形内の画像)とを比較し、両者が一致するか否かを判定しても良い。そして、画像検出装置1は、予め登録された顔画像と、撮像画像において特定した顔画像とが一致しない場合には、撮像画像での当該顔画像に対してモザイク処理を行った上で、当該撮像画像を表示装置に表示しても良い。これにより、本実施の形態に係る画像検出装置1を監視カメラシステムに使用した場合において、監視カメラによって隣家の人の顔画像が撮影された場合であっても、当該顔画像を認識できないようにすることができる。つまり、プライバシーマスクを実現することができる。
なお、本実施の形態では、撮像画像についての出力値マップが用いられて当該撮像画像での顔画像が特定されているが、出力値マップが生成されずに撮像画像像での顔画像が特定されても良い。例えば、検出対象画像特定部15は、撮像画像について得られた互いに近くにある複数の検出結果領域(検出結果枠)をMean-Shift法によるクラスタリング及びNearest Neighbor法を用いて統合し、当該撮像画像での統合後の検出結果領域(検出結果枠)内の画像を顔画像として特定しても良い。
<しきい値調整部の詳細動作>
しきい値調整部16は、画像検出装置1においてnフレーム目の撮像画像での顔画像が検出されると、その検出結果を用いて、検出部12において(n+1)フレーム目の撮像画像に対する検出処理で使用されるしきい値を調整する。しきい値調整部16は、画像入力部11が画像データを出力するたびに、画像入力部11が出力した画像データが示す撮像画像に対する顔画像の検出結果を用いて、画像入力部11が次に出力する画像データが示す撮像画像に対する検出処理で使用されるしきい値を調整する。
ここで、本実施の形態では、撮像装置5での撮像フレームレートLがL=30となっていることから、撮像画像の撮像間隔が(1/30)秒となる。人が歩く速度を5km/時間とすると、歩く人が(1/30)秒の間に移動する距離は数cm程度となる。したがって、撮像装置5では、連続する複数フレームにわたって同一の顔が撮像されることがある。
撮像装置5において、連続する複数フレームにわたって同一の顔が撮像される場合において、当該顔の向きや撮像装置5での撮像環境(例えば明るさ)等によって、画像検出装置1では、当該連続する複数フレームのうちのあるフレームでの撮像画像だけから、当該顔についての顔画像が検出できないことがある。
そこで、本実施の形態では、しきい値調整部16が、撮像装置5で次に撮像される撮像画像において顔画像が存在する可能性が高い領域を予測領域として特定し、当該予測領域に対する検出処理で使用されるしきい値を小さくするようなしきい値調整処理を行う。これにより、撮像画像における、顔画像が存在する可能性が高い予測領域では、顔画像が検出され易くなる。よって、連続して撮像された複数枚の撮像画像のうちのある撮像画像だけから顔画像が検出できないといったことが発生しにくくなる。その結果、顔画像についての検出精度が向上する。以下に、しきい値調整部16の動作について詳細に説明する。なお、nについては、撮像画像についての撮像順序を単に表すために使用している。したがって、(n−1)フレーム目の撮像画像、nフレーム目の撮像画像、(n+1)フレームの撮像画像等について言えることは、原則、その撮像画像に固有のことではなく、各撮像画像についても言える。
図16は、しきい値調整部16が(n+1)フレーム目の撮像画像に対する検出処理で使用されるしきい値を調整する際の当該しきい値調整部16の動作の概要を説明するための図である。以後、(n+1)フレーム目の撮像画像に対する検出処理で使用されるしきい値を「(n+1)フレーム目のしきい値」と呼ぶ。nフレーム目、(n−1)フレーム目等についても同様である。
図16では、撮像画像を表す領域200において、検出対象画像特定部15が、nフレーム目、(n−1)フレーム目、(n−2)フレームおよび(n−3)フレーム目の撮像画像においてそれぞれ特定した、同一の顔についての顔画像の位置190〜193が丸印で示されている。領域200の左上、左下、右上及び右下は、撮像画像の左上、左下、右上及び右下にそれぞれ対応している。以後、領域200を「撮像画像対応領域200」と呼ぶ。
しきい値調整部16は、(n+1)フレーム目の撮像画像において顔画像が存在する可能性が高い領域を予測領域300として特定する。そして、しきい値調整部16は、(n+1)フレーム目のしきい値を調整する際には、(n+1)フレーム目の撮像画像において、予測領域300に対する検出処理で使用されるしきい値を、予測領域300以外の領域に対する検出処理で使用されるしきい値よりも小さくするしきい値低減処理を行う。しきい値の初期値をTH0とすると、しきい値低減処理では、(n+1)フレーム目の撮像画像において、予測領域300に対する検出処理で使用されるしきい値が、初期値TH0よりも所定量だけ小さい値である低減値TH1(<TH0)に設定され、他の領域(予測領域300以外の領域)に対する検出処理で使用されるしきい値が初期値TH0に設定される。例えば、初期値TH0を“10”とすると、低減値は“7”とされる。
本実施の形態では、しきい値調整部16は、現在の処理対象のnフレーム目の撮像画像と、次に処理対象となる(n+1)フレーム目の撮像画像との間での顔(顔画像)の予測動きベクトルVn(nフレーム目の撮像画像と(n+1)フレーム目の撮像画像との間での顔の動きベクトルの予測値)を求めて、当該予測動きベクトルVnに基づいて、(n+1)フレーム目の撮像画像での予測領域300を特定する。予測領域300の特定方法については後で詳細に説明する。
予測動きベクトルVnは、nフレーム目の撮像画像において検出された顔画像の位置190から延びており、以下の式(1)を使用して求めることができる。
Vn=α・Cn+(1−α)・Vn−1 ・・・(1)
ここで式(1)中のCnは、(n−1)フレーム目の撮像画像とnフレーム目の撮像画像との間での顔についての実際の動きベクトルを意味している。以後、実際の動きベクトルを「実動きベクトル」と呼ぶ。また、Vn−1は、nフレーム目のしきい値が調整される際に求められた、(n−1)フレーム目の撮像画像とnフレーム目の撮像画像との間での顔の予測動きベクトルを示している。以後、当該予測動きベクトルを「過去予測動きベクトル」と呼ぶことがある。図16を参照して説明すると、実動きベクトルCnは、検出対象画像特定部15が(n−1)フレーム目の撮像画像で特定した顔画像の位置191から、検出対象画像特定部15がnフレーム目の撮像画像で特定した顔画像の位置190まで延びるベクトルである。また過去予測動きベクトルVn−1は、(n−1)フレーム目の撮像画像で特定した顔画像の位置191から延びている。本実施の形態では、撮像画像において特定された顔画像の位置として、例えば、当該顔画像の中心位置、つまり検出対象画像特定部15が求めた上記の外接矩形(図14参照)の中心位置が採用される。また式(1)中のαは実数を表しており、α<1となっている。
式(1)に示されるように、予測動きベクトルVnは、実動きベクトルCnと過去予測動きベクトルVn−1に基づいて求められている。具体的には、予測動きベクトルVnは、実動きベクトルCnと過去予測動きベクトルVn−1とを重み付け合成して得られるベクトルとなっている。αは実動きベクトルCnの重み係数となっており、(1−α)は過去予測動きベクトルVn−1の重み係数となっている。
検出部12は、(n+1)フレーム目の撮像画像に対して検出処理を行う際には、しきい値調整部16で調整された(n+1)フレーム目のしきい値を使用する。具体的には、検出部12は、(n+1)フレーム目の撮像画像20に対して検出枠をラスタスキャンしていく際に、図17に示されるように、予測領域300以外の領域310に対して検出枠10を設定したときには、当該検出枠内の画像について求めた検出確度値と、しきい値の初期値TH0とを比較する。そして、検出部12は、当該検出確度値が初期値TH0以上あるいは初期値TH0よりも大きいときには、当該検出枠内の画像が顔画像である可能性が高いと判断して、当該検出枠内の画像を検出結果領域とする。
一方で、検出部12は、図18に示されるように、予測領域300に対して検出枠10を設定したときには、当該検出枠内の画像について求めた検出確度値としきい値の低減値TH1とを比較する。そして、検出部12は、当該検出確度値が低減値TH1以上あるいは低減値TH1よりも大きいときには、当該検出枠内の画像が顔画像である可能性が高いと判断して、当該検出枠内の画像を検出結果領域とする。
このように、本実施の形態では、顔画像が存在する可能性の高い予測領域300に対する検出処理で使用されるしきい値が小さくされている。したがって、予測領域300に設定された検出枠内の画像が、顔画像であるにもかかわらず、顔の向きや撮像装置5での撮像環境によって、当該検出枠内の画像についての検出確度値が小さい場合であっても、検出部12は、当該検出枠内の画像が顔画像である可能性が高いと適切に判断することが可能となる。よって、(n+1)フレーム目の撮像画像から顔画像を適切に検出することが可能となる。さらに、顔画像が存在する可能性が高い予測領域300に対する検出処理で使用されるしきい値が小さくされていることから、顔画像の誤検出を抑制することができる。その結果、顔画像についての検出精度が向上する。
なお、図18とは異なり、撮像画像20に対して検出枠10を設定した際に、当該検出枠10内に少しでも予測領域300が存在すれば、当該検出枠10内の画像から求めた検出確度値と低減値TH1とを比較しても良い。
しきい値調整部16は、(n+2)フレーム目の撮像画像に対する検出処理で使用されるしきい値を調整する場合にも、(n+1)フレーム目の撮像画像と、その次に処理対象となる(n+2)フレーム目の撮像画像との間での顔の予測動きベクトルVn+1を求めて、当該予測動きベクトルVn+1に基づいて、(n+2)フレーム目の撮像画像において予測領域(顔画像が存在する可能性が高い領域)を特定する。そして、しきい値調整部16は、(n+2)フレーム目の撮像画像において、予測領域に対する検出処理で使用されるしきい値を低減値TH1に設定し、予測領域300以外の領域に対する検出処理で使用されるしきい値を初期値TH0に設定して、予測領域に対する検出処理で使用されるしきい値を、予測領域300以外の領域に対する検出処理で使用されるしきい値よりも小さくする。しきい値調整部16は、(n+3)フレーム目以降のしきい値についても同様にして調整する。
<予測領域の特定方法>
次に撮像画像において予測領域を特定する方法について説明する。図19,20は、nフレーム目及び(n−1)フレーム目の撮像画像において特定された、ある顔についての顔画像が、(n+1)フレーム目の撮像画像において存在する可能性が高い予測領域300を特定する方法を説明するための図である。以後、説明の対象の顔を「対象の顔」と呼ぶ。また、nフレーム目の撮像画像において特定された顔画像を「nフレーム目の顔画像」と呼ぶ。(n+1)フレーム目等についても同様である。
図19に示されるように、しきい値調整部16は、nフレーム目の撮像画像において特定された、対象の顔についての顔画像の位置190から延びる、対象の顔についての予測移動ベクトルVnの先の位置194を含む所定の大きさの矩形領域350を、上述の撮像画像対応領域200に対して設定する。この位置194は、(n+1)フレーム目の撮像画像での対象の顔についての顔画像の位置の予測値であると言える。矩形領域350の上端は、位置194から上方向にスキャンステップSS(本例では5ピクセル)がd1個分の距離となっており、矩形領域350の下端は、位置194から下方向にスキャンステップSSがd2個分の距離となっている。また、矩形領域350の左端は、位置194から左方向にスキャンステップSSがd3個分の距離となっており、矩形領域350の右端は、位置194から右方向にスキャンステップSSのd4個分の距離となっている。d1〜d4は、例えば5〜10の間に設定される。
そして、しきい値調整部16は、設定した矩形領域350が、(n−1)フレーム目の撮像画像で特定された対象の顔の顔画像の位置191から、nフレーム目の撮像画像で特定された対象の顔の顔画像の位置190まで延びる実動きベクトルCnを含む場合には、図20に示されるように、矩形領域350のうち、実動きベクトルCnを含む部分矩形領域360を矩形領域350から削除する。矩形領域350において、部分矩形領域360が削除されて残った領域が予測領域300となる。部分矩形領域360の横幅及び縦幅のそれぞれはスキャンステップの倍数となっている。矩形領域350が実動きベクトルCnを含まない場合には、矩形領域350がそのまま予測領域300となる。なお、予測領域300については他の方法で特定しても良い。
<しきい値調整の開始タイミングについて>
次に、しきい値調整部16がしきい値調整を開始するタイミングについて説明する。
例えば、(n−3)フレーム目の撮像画像では特定されていない、ある顔の顔画像が、(n−2)フレーム目の撮像画像において特定されたとする。図21には、(n−2)フレーム目の撮像画像において特定された、対象の顔の顔画像の位置192が示されている。この時点においては、(n−3)フレーム目の撮像画像と(n−2)フレーム目の撮像画像との間での対象の顔についての実際の動きベクトルである実動きベクトルCn−2を求めることができない。したがって、しきい値調整部16は(n−1)フレーム目のしきい値の調整は行わない。
次に、(n−1)フレーム目の撮像画像から、対象の顔の顔画像が再度特定されたとする。図22には、(n−1)フレーム目の撮像画像において特定された、対象の顔の顔画像の位置191が示されている。この時点においては、実動きベクトルCn−1を求めることはできるものの(図22参照)、(n−2)フレーム目の撮像画像に対する処理において予測動きベクトルVn−2が求められていないことから、しきい値調整部16はnフレーム目のしきい値の調整は行わない。
次に、nフレーム目の撮像画像から、対象の顔の顔画像が再度特定されたとする。図23には、nフレーム目の撮像画像において特定された、対象の顔の顔画像の位置190が示されている。この時点では、しきい値調整部16は、実動きベクトルCnを求めることができる。そして、しきい値調整部16は、上記の式(1)において、予測動きベクトルVn−1の代わりに実動きベクトルCn−1を代入することによって、予測動きベクトルVnを求める。その後、しきい値調整部16は、求めた予測動きベクトルVnに基づいて、(n+1)フレーム目のしきい値を調整する。具体的には、しきい値調整部16は、上述のようにして、予測動きベクトルVnに基づいて、(n+1)フレーム目の撮像画像での予測領域300を特定し、当該予測領域300に対する検出処理で使用されるしきい値を、他の領域に対する検出処理で使用されるしきい値よりも小さくする。
次の(n+1)フレーム目の撮像画像において、対象の顔の顔画像が再度特定された場合には、実動きベクトルCn+1を求めることができ、また予測動きベクトルVnが既に求められていることから、しきい値調整部16は式(1)を使用して予測動きベクトルVn+1を求めることができる。そして、しきい値調整部16は、求めた予測動きベクトルVn+1に基づいて、(n+2)フレーム目のしきい値を調整する。以後、しきい値調整部16は同様に動作する。
次に、(n−3)フレーム目の撮像画像では特定されていない、複数の顔の顔画像が、(n−2)フレーム目の撮像画像において特定された場合のしきい値調整部16の動作について説明する。図24は、(n−2)フレーム目の撮像画像から特定された、顔Aの顔画像の位置192Aと、(n−2)フレーム目の撮像画像から特定された、顔Bについての顔画像の位置192Bとが示されている。
(n−3)フレーム目の撮像画像において特定されていない、顔A及びBの顔画像が、(n−2)フレーム目の撮像画像において特定されると、顔A及びBについての実動きベクトルCn−2を求めることができない。したがって、しきい値調整部16は(n−1)フレーム目のしきい値の調整は行わない。
次に、(n−1)フレーム目の撮像画像から、顔A及びBの顔画像が再度特定されたとする。図25には、(n−1)フレーム目の撮像画像において特定された、顔Aの顔画像の位置191Aと、(n−1)フレーム目の撮像画像において特定された、顔Bの顔画像の位置191Bとが示されている。この時点においては、顔A及びBについての実動きベクトルCn−1を求めることはできるものの(図25参照)、(n−2)フレーム目の撮像画像に対する処理において、顔A及びBについての予測動きベクトルVn−2が求められていないことから、しきい値調整部16はnフレーム目のしきい値の調整は行わない。
次に、nフレーム目の撮像画像から、顔A及びBの顔画像が再度特定されたとする。図26には、nフレーム目の撮像画像において特定された、顔Aの顔画像の位置190Aと、nフレーム目の撮像画像において特定された、顔Bの顔画像の位置190Bとが示されている。この時点では、しきい値調整部16は、顔A及びBについての実動きベクトルCnを求めることができる。そして、しきい値調整部16は、上記の式(1)において、予測動きベクトルVn−1の代わりに実動きベクトルCn−1を代入することによって、顔A及びBについての予測動きベクトルVnを求める。その後、しきい値調整部16は、求めた顔A及びBについての予測動きベクトルVnに基づいて、(n+1)フレーム目のしきい値を調整する。具体的には、しきい値調整部16は、顔Aについての予測動きベクトルVnに基づいて、(n+1)フレーム目の撮像画像において、顔Aの顔画像が存在する可能性が高い予測領域300を特定するとともに、顔Bについての予測動きベクトルVnに基づいて、(n+1)フレーム目の撮像画像において、顔Bの顔画像が存在する可能性が高い予測領域300を特定する。顔Aについての予測領域300と、顔Bについての予測領域300とは、部分的に重複することがある。そして、しきい値調整部16は、求めた2つの予測領域300に対する検出処理で使用されるしきい値を、他の領域に対する検出処理で使用されるしきい値よりも小さくする。
次の(n+1)フレーム目の撮像画像において、顔A及びBの顔画像が再度特定された場合には、顔A及びBについての実動きベクトルCn+1を求めることができ、また顔A及びBについての予測動きベクトルVnが既に求められていることから、しきい値調整部16は式(1)を使用して顔A及びBについての予測動きベクトルVn+1を求めることができる。そして、しきい値調整部16は、求めた顔A及びBについての予測動きベクトルVn+1に基づいて、(n+2)フレーム目のしきい値を調整する。以後、しきい値調整部16は同様に動作する。
<フレーム間での顔画像の対応付け>
(n−1)フレーム目の撮像画像において特定された、ある顔についての顔画像の位置と、nフレーム目の撮像画像において特定された、当該ある顔とは別の顔についての顔画像の位置とに基づいて求められた実動きベクトルCnが使用されて予測動きベクトルVnが求められ、当該予測動きベクトルVnに基づいて(n+1)フレーム目の撮像画像において予測領域300が特定されると、精度の良い予測領域300を得ることが困難となる。
また、nフレーム目の撮像画像から誤検出された顔画像の位置、つまり、nフレーム目の撮像画像において顔画像ではない領域の位置に基づいて求められた実動きベクトルCnが使用されて予測動きベクトルVnが求められ、当該予測動きベクトルVnに基づいて(n+1)フレーム目の撮像画像において予測領域300が特定されると、精度の良い予測領域300を得ることが困難となる。
そこで、本実施の形態では、実動きベクトルCnが求められる際に、(n−1)フレーム目の撮像画像において特定された顔画像が対応する顔とは別の顔に対応する、nフレーム目の撮像画像において特定された顔画像の位置が使用されないように、またnフレーム目の撮像画像において誤検出された顔画像の位置が使用されないように、しきい値調整部16は、(n−1)フレーム目の撮像画像において特定された顔画像に対して、当該顔画像の位置から所定距離r以内に存在する、nフレーム目の撮像画像において特定された顔画像を対応付ける。そして、(n−1)フレーム目の撮像画像において特定された顔画像の位置から、当該顔画像に対応する、nフレーム目の撮像画像において特定された顔画像の位置まで延びるベクトルを、実動きベクトルCnとする。図27はその様子を示す図である。
図27には、(n−1)フレーム目の撮像画像で特定された顔画像の位置191から所定距離r以内に存在する、nフレーム目の撮像画像において特定された顔画像の位置190xが示されている。このような場合には、しきい値調整部16は、位置191から位置190xまで延びるベクトルを実動きベクトルCnとする。図28には、(n−1)フレーム目の顔画像の位置191から所定距離r以内に存在しない、nフレーム目の顔画像の位置190yが示されている。
ここで、所定距離rは、例えば、人の歩く速さに基づいて決定される。例えば、平均的な速さで歩く人を撮像装置5が連続して撮像した場合に、連続して撮像された2つの撮像画像において、先に撮像された撮像画像での当該人の顔画像の位置と、後に撮像された撮像画像での当該人の顔画像の位置との間の距離に対してマージン値を足し合わせて得られる値が所定距離rとされる。
しきい値調整部16は、(n−1)フレーム目の撮像画像で特定された顔画像の位置191から所定距離r以内に存在する、nフレーム目の撮像画像において特定された顔画像が存在しない場合には、当該位置191を用いて実動きベクトルCnを求めることができない。したがって、この場合には、しきい値調整部16は、(n−1)フレーム目の撮像画像で特定された顔画像に対応する顔について、(n+1)フレーム目の撮像画像において、当該顔の顔画像が存在する可能性が高い予測領域300を求めることができない。
しきい値調整部16は、(n−1)フレーム目の撮像画像において複数の顔画像が特定されている場合には、当該複数の顔画像のそれぞれに対して、上述のようにして、nフレーム目の撮像画像で特定された顔画像を対応付ける。
なお、(n−1)フレーム目の顔画像に対応付けられないnフレーム目の顔画像が存在する場合には、上述の図21〜23あるいは図24〜26を参照して説明したように、nフレーム目の当該顔画像については最初から処理される。
このように、本実施の形態では、しきい値調整部16が、(n−1)フレーム目の撮像画像において特定された第1の顔画像の位置191から所定距離r以内に存在する、nフレーム目の撮像画像から特定された第2の顔画像を特定し、当該第1の顔画像の位置191から当該第2の顔画像の位置190xまで延びるベクトルを、当該第1の顔画像の位置191から延びる実動きベクトルCnとしている。したがって、所定距離rを人が歩く速さ等に基づいて適切な値に設定することによって、(n−1)フレーム目の撮像画像において特定された顔画像に対応する顔と同じ顔についての、nフレーム目の撮像画像から特定された顔画像の位置を用いて実動きベクトルCnを求めることができる。つまり、ある顔についての実動きベクトルCnを、当該顔についての(n−1)フレーム目及びnフレーム目の顔画像の位置を用いて求めることができる。よって、精度の良い予測領域300を得ることができる。
また、nフレーム目の撮像画像において顔画像が誤検出されたとしても、誤検出された顔画像の位置が、(n−1)フレーム目の撮像画像において特定された顔画像の位置から大きく離れていれば、当該誤検出された顔画像の位置に基づいて実動きベクトルCnが求められることを抑制できる。よって、精度の良い予測領域300を得ることができる。
なお、所定距離rについては、実際の顔の移動の速さ(実際の人の移動の速さ)に基づいて決定しても良い。実動きベクトルCn−1の大きさは、実際の顔の移動の速さを示していることから、しきい値調整部16は、実動きベクトルCnを求める際には、前に求めた実動きベクトルCn−1の大きさに基づいて所定距離rを決定することによって、実際の顔の移動の速さに基づいて所定距離rを決定することができる。しきい値調整部16は、例えば、実動きベクトルCn−1の大きさに対して所定のマージン値を足し合わせて得られる値を所定距離rとする。
<所定距離r内に複数の顔画像が検出された場合の処理>
(n−1)フレーム目のある顔画像の位置から所定距離r以内に、nフレーム目の顔画像が複数存在することがある。ここでは、このような場合に、(n−1)フレーム目の顔画像に対応付ける、nフレーム目の顔画像の決定方法について説明する。以後、説明の対象の顔画像を「対象顔画像」と呼ぶことがある。
図29は、(n−1)フレーム目の、顔Aについての対象顔画像の位置191から所定距離r以内に、nフレーム目の顔画像が複数存在する様子を示す図である。nフレーム目の撮像画像からは、顔画像a〜dが特定されたとする。図29には、nフレーム目の顔画像aの位置190a、顔画像bの位置190b、顔画像cの位置190c、顔画像dの位置190dが示されている。位置190a〜190cは、(n−1)フレーム目の対象顔画像の位置191から所定距離r以内に存在し、位置190dは、(n−1)フレーム目の対象顔画像の位置191から所定距離r以内に存在しない。
このような場合、しきい値調整部16は、(n−1)フレーム目の対象顔画像の位置191から、nフレーム目の顔画像aの位置190aまで延びるベクトル400aと、(n−1)フレーム目の対象顔画像の位置191から、nフレーム目の顔画像bの位置190bまで延びるベクトル400bと、(n−1)フレーム目の対象顔画像の位置191から、nフレーム目の顔画像cの位置190cまで延びるベクトル400cとを求める。そして、しきい値調整部16は、求めたベクトル400a〜400cのうち、前に求めた予測動きベクトルVn−1(過去予測動きベクトル)に最も類似するベクトルを特定する。具体的には、しきい値調整部16は、ベクトル400a〜400cのうち、予測動きベクトルVn−1と成す角度が最も小さいベクトルを、予測動きベクトルVn−1に最も類似するベクトルとする。図29の例では、ベクトル400bが予測動きベクトルVn−1に最も類似するベクトル(最も近いベクトル)となる。しきい値調整部16は、特定した、予測動きベクトルVn−1に最も類似するベクトルに対応するnフレーム目の顔画像を、(n−1)フレーム目の対象顔画像に対応付ける。図29の例では、nフレーム目の顔画像bが、(n−1)フレーム目の対象顔画像に対応付けられる。しきい値調整部16は、図30に示されるように、(n−1)フレーム目の対象顔画像の位置191から、nフレーム目の顔画像bの位置190bまで延びるベクトル400bを、(n−1)フレーム目の対象顔画像に対応する顔Aについての実動きベクトルCnとして、予測動きベクトルVnを求める。
しきい値調整部16は、(n−1)フレーム目の撮像画像において複数の顔画像が特定されている場合には、当該複数の顔画像のそれぞれについて同様の処理を行う。nフレーム目の顔画像a,c,dのうち、(n−1)フレーム目のいずれの顔画像にも対応付けられない顔画像については、上述の図21〜23あるいは図24〜26を参照して説明したように最初から処理される。
このように、本実施の形態に係るしきい値調整部16は、(n−1)フレーム目の第1の顔画像(対象顔画像)の位置から所定距離r以内に存在する、nフレーム目の複数の第2の顔画像(顔画像a〜c)が存在する場合には、当該第1の顔画像の位置から、当該複数の第2の顔画像の位置にそれぞれ延びる複数のベクトル(ベクトル400a〜400c)のうち、当該第1の顔画像の位置から延びる予測動きベクトルVn−1と成す角度が最も小さいベクトル(ベクトル400b)を、当該第1の顔画像の位置から延びる実動きベクトルCnとしている。
ここで、(n−1)フレーム目の第1の顔画像の位置から延びる予測動きベクトルVn−1は、当該第1の顔画像に対応する顔についての、(n−1)フレーム目の撮像画像とnフレーム目の撮像画像との間での予測動きベクトル(動きベクトルの予測値)であると言える。したがって、(n−1)フレーム目の第1の顔画像の位置から、nフレーム目の複数の第2の顔画像の位置にそれぞれ延びる複数のベクトルのうち、予測動きベクトルVn−1と成す角度が最も小さいベクトルを、(n−1)フレーム目の第1の顔画像の位置から延びる実動きベクトルCn、つまり当該第1の顔画像に対応する顔についての実動きベクトルCnとすることによって、同じ顔についての(n−1)フレーム目及びnフレーム目の顔画像の位置に基づいた実動きベクトルCnを得ることができる。つまり、ある顔についての実動きベクトルCnを、当該顔についての(n−1)フレーム目及びnフレーム目の顔画像の位置を用いて求めることができる。よって、精度の良い予測領域300を得ることができる。
図31は、(n−1)フレーム目の撮像画像及びnフレーム目の撮像画像のそれぞれにおいて複数の顔画像が特定されている様子を示す図である。図31には、顔Aについての(n−3)フレーム目、(n−2)フレーム目及び(n−1)フレーム目の顔画像の位置193A,192A,191Aが示されている。また図31には、顔Bについての(n−3)フレーム目、(n−2)フレーム目及び(n−1)フレーム目の顔画像の位置193B,192B,191Bが示されている。また図31には、顔Cについての(n−4)フレーム目、(n−3)フレーム目、(n−2)フレーム目及び(n−1)フレーム目の顔画像の位置194C,193C,192C,191Cが示されている。そして、図31には、nフレーム目の撮像画像から特定された顔画像a〜cの位置190a,190b,190cが示されている。図31の例では、位置190a〜190cは、位置191Aから所定距離r以内に存在する。また位置190a〜190cは、位置191Bから所定距離r以内に存在する。そして、位置190a〜190cは、位置191Cから所定距離r以内に存在する。
図31の例では、しきい値調整部16は、顔A〜Cにそれぞれ対応する(n−1)フレーム目の複数の顔画像のそれぞれに対して、上記のようにしてnフレーム目の顔画像a〜cのうちの一つを対応付ける。
しきい値調整部16は、顔Aに対応する(n−1)フレーム目の顔画像に対してnフレーム目の顔画像を対応付ける場合には、図32に示されるように、顔Aに対応する(n−1)フレーム目の顔画像の位置191Aから、nフレーム目の顔画像aの位置190aまで延びるベクトル410aと、位置191Aからnフレーム目の顔画像bの位置190bまで延びるベクトル410bと、位置191Aからnフレーム目の顔画像cの位置190cまで延びるベクトル410cとを求める。そして、しきい値調整部16は、ベクトル410a〜410cのうち、位置191Aから延びる予測動きベクトルVn−1(顔Aについて前に求めた予測動きベクトルVn−1)と成す角度が最も小さいベクトルを、予測動きベクトルVn−1に最も類似するベクトルとする。図32の例では、ベクトル410bが予測動きベクトルVn−1に最も類似するベクトルとなる。しきい値調整部16は、特定した、予測動きベクトルVn−1に最も類似するベクトルに対応するnフレーム目の顔画像を、顔Aについての(n−1)フレーム目の顔画像に対応付ける。図32の例では、nフレーム目の顔画像bが、顔Aについての(n−1)フレーム目の顔画像に対応付けられる。しきい値調整部16は、顔Aについての(n−1)フレーム目の顔画像の位置191Aから、nフレーム目の顔画像bの位置190bまで延びるベクトル410bを、顔Aについての実動きベクトルCnとして、予測動きベクトルVnを求める。
しきい値調整部16は、顔Bに対応する(n−1)フレーム目の顔画像に対してnフレーム目の顔画像を対応付ける場合には、図33に示されるように、顔Bに対応する(n−1)フレーム目の顔画像の位置191Bから、nフレーム目の顔画像aの位置190aまで延びるベクトル420aと、位置191Bからnフレーム目の顔画像bの位置190bまで延びるベクトル420bと、位置191Bからnフレーム目の顔画像cの位置190cまで延びるベクトル420cとを求める。そして、しきい値調整部16は、ベクトル420a〜420cのうち、位置191Bから延びる予測動きベクトルVn−1と成す角度が最も小さいベクトルを、予測動きベクトルVn−1に最も類似するベクトルとする。図33の例では、ベクトル420cが予測動きベクトルVn−1に最も類似するベクトルとなる。しきい値調整部16は、特定した、予測動きベクトルVn−1に最も類似するベクトルに対応するnフレーム目の顔画像を、顔Bについての(n−1)フレーム目の顔画像に対応付ける。図33の例では、nフレーム目の顔画像cが、顔Bについての(n−1)フレーム目の顔画像に対応付けられる。しきい値調整部16は、顔Bについての(n−1)フレーム目の顔画像の位置191Bから、nフレーム目の顔画像cの位置190cまで延びるベクトル420cを、顔Bについての実動きベクトルCnとして、予測動きベクトルVnを求める。
しきい値調整部16は、顔Cに対応する(n−1)フレーム目の顔画像に対してnフレーム目の顔画像を対応付ける場合には、図34に示されるように、顔Cに対応する(n−1)フレーム目の顔画像の位置191Cから、nフレーム目の顔画像aの位置190aまで延びるベクトル430aと、位置191Cからnフレーム目の顔画像bの位置190bまで延びるベクトル430bと、位置191Cからnフレーム目の顔画像cの位置190cまで延びるベクトル430cとを求める。そして、しきい値調整部16は、ベクトル430a〜430cのうち、位置191Cから延びる予測動きベクトルVn−1と成す角度が最も小さいベクトルを、予測動きベクトルVn−1に最も類似するベクトルとする。図34の例では、ベクトル430aが予測動きベクトルVn−1に最も類似するベクトルとなる。しきい値調整部16は、特定した、予測動きベクトルVn−1に最も類似するベクトルに対応するnフレーム目の顔画像を、顔Cについての(n−1)フレーム目の顔画像に対応付ける。図34の例では、nフレーム目の顔画像aが、顔Cについての(n−1)フレーム目の顔画像に対応付けられる。しきい値調整部16は、顔Cについての(n−1)フレーム目の顔画像の位置191Cから、nフレーム目の顔画像aの位置190aまで延びるベクトル430aを、顔Cについての実動きベクトルCnとして、予測動きベクトルVnを求める。図35には、位置191A,191B,191Cから延びる、顔A〜Cについての実動きベクトルCnが示されている。
なお、上記のようにして(n−1)フレーム目の顔画像とnフレーム目の顔画像とを対応付ける場合には、異なる顔に対応する(n−1)フレーム目及びnフレームの顔画像を互いに対応付ける可能がある。図36は、異なる顔に対応する(n−1)フレーム目及びnフレームの顔画像が互いに対応付けられる様子の一例を示す図である。図36には、顔Aについての(n−3)フレーム目、(n−2)フレーム目、(n−1)フレーム及びnフレーム目の顔画像の位置193A,192A,191A,190Aが示されている。また、図36には、顔Bについての(n−3)フレーム目、(n−2)フレーム目、(n−1)フレーム及びnフレーム目の顔画像の位置193B,192B,191B,190Bが示されている。
図36の例では、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる予測動きベクトルVn−1に対して、nフレーム目の顔Bの顔画像の位置190Bの方が、nフレーム目の顔Aの顔画像の位置190Aよりも近いことから、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Bの顔画像とが対応付けられる。したがって、(n−1)フレーム目の顔Aの顔画像の位置191Aから、nフレーム目の顔Bの顔画像の位置190Bに延びるベクトルが、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCnとされる。そして、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Bの顔画像の位置191Bから延びる予測動きベクトルVnが求められる。
一方で、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる予測動きベクトルVn−1に対しては、nフレーム目の顔Aの顔画像の位置190Aの方が、nフレーム目の顔Bの顔画像の位置190Bよりも近いことから、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Aの顔画像とが対応付けられる。したがって、(n−1)フレーム目の顔Bの顔画像の位置191Bから、nフレーム目の顔Aの顔画像の位置190Aに延びるベクトルが、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCnとされる。そして、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Aの顔画像の位置191Aから延びる予測動きベクトルVnが求められる。
このように、図36の例では、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Bの顔画像とが対応付けられ、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Aの顔画像とが対応付けられる。
図37は、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Aの顔画像とが対応付けられ、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Bの顔画像とが対応付けられている様子を示す図である。図37では、(n−1)フレーム目の顔Aの顔画像の位置191Aから、nフレーム目の顔Aの顔画像の位置190Aに延びるベクトルが、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCnとされている。したがって、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Aの顔画像の位置191Aから延びる予測動きベクトルVnが求められる。
また図37では、(n−1)フレーム目の顔Bの顔画像の位置191Bから、nフレーム目の顔Bの顔画像の位置190Bに延びるベクトルが、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCnとされている。したがって、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Bの顔画像の位置191Bから延びる予測動きベクトルVnが求められる。
予測動きベクトルVnを求める際に使用される、実動きベクトルCnの重み係数αを大きめに設定すると、図36に示される例での予測動きベクトルVnと、図37に示される例での予測動きベクトルVnとの差を小さくすることができる。よって、図36のように、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Bの顔画像とが誤って対応付けられ、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Aの顔画像とが誤って対応付けられていたとしても、予測領域300の精度はそれほど劣化しない。
図38は、異なる顔に対応する(n−1)フレーム目及びnフレームの顔画像が互いに対応付けられる様子の他の一例を示す図である。図38の例では、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる予測動きベクトルVn−1の方向に、nフレーム目の顔Bの顔画像の位置190Bが存在していることから、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Bの顔画像とが対応付けられる。したがって、図36の例と同様に、(n−1)フレーム目の顔Aの顔画像の位置191Aから、nフレーム目の顔Bの顔画像の位置190Bに延びるベクトルが、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCnとされる。そして、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Bの顔画像の位置191Bから延びる予測動きベクトルVnが求められる。
一方で、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる予測動きベクトルVn−1の方向には、nフレーム目の顔Aの顔画像の位置190Aが存在することから、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Aの顔画像とが対応付けられる。したがって、(n−1)フレーム目の顔Bの顔画像の位置191Bから、nフレーム目の顔Aの顔画像の位置190Aに延びるベクトルが、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCnとされる。そして、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Aの顔画像の位置191Aから延びる予想動きベクトルVnが求められる。
このように、図38の例においても、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Bの顔画像とが対応付けられ、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Aの顔画像とが対応付けられる。
図39は、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Aの顔画像とが対応付けられ、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Bの顔画像とが対応付けられている様子を示す図である。図39では、(n−1)フレーム目の顔Aの顔画像の位置191Aから、nフレーム目の顔Aの顔画像の位置190Aに延びるベクトルが、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCnとされている。したがって、(n−1)フレーム目の顔Aの顔画像の位置191Aから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Aの顔画像の位置191Aから延びる予測動きベクトルVnが求められる。
また図39では、(n−1)フレーム目の顔Bの顔画像の位置191Bから、nフレーム目の顔Bの顔画像の位置190Bに延びるベクトルが、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCnとされている。したがって、(n−1)フレーム目の顔Bの顔画像の位置191Bから延びる実動きベクトルCn及び予測動きベクトルVn−1に基づいて、nフレーム目の顔Bの顔画像の位置191Bから延びる予測動きベクトルVnが求められる。
予測動きベクトルVnを求める際に使用される、実動きベクトルCnの重み係数αを大きめに設定すると、図38の例での予測動きベクトルVnと、図39の例での予測動きベクトルとの差を小さくすることができる。したがって、図38のように、(n−1)フレーム目の顔Aの顔画像と、nフレーム目の顔Bの顔画像とが誤って対応付けられ、(n−1)フレーム目の顔Bの顔画像と、nフレーム目の顔Aの顔画像とが誤って対応付けられていたとしても、予測領域300の精度はそれほど劣化しない。
<一つの顔画像について複数の予測動きベクトルが得られた際の処理>
上記の例では、(n−1)フレーム目の対象顔画像に対して、(n−2)フレームの複数の顔画像が対応付けられている場合には、(n−1)フレーム目の対象顔画像の位置から延びる予測動きベクトルVn−1が複数求められる。図40はその様子を示す図である。以後、顔Aについての予測動きベクトルVn−1を「予測動きベクトルVn−1A」と呼ぶことがある。顔B,C等についても同様である。
図40の例では、(n−1)フレーム目の対象顔画像に対して、顔A〜Cについての(n−2)フレームの顔画像が対応付けられている。このような場合には、(n−1)フレーム目の対象顔画像は、顔A〜Cに対応することになり、(n−1)フレーム目の対象顔画像の位置191tから延びる、顔Aについての予測動きベクトルVn−1A、顔Bについての予測動きベクトルVn−1B及び顔Cについての予測動きベクトルVn−1Cが得られる。
そして、(n−1)フレーム目の対象顔画像が、nフレーム目のある顔画像fに対応付けられたとすると、当該顔画像fの位置190fから延びる予測動きベクトルVnを求める際に使用する予測動きベクトルVn−1を、3つの予測動きベクトルVn−1A,Vn−1B,Vn−Cから決定する必要がある。このような場合、しきい値調整部16は、予測動きベクトルVn−1A,Vn−1B,Vn−Cのうち、(n−1)フレーム目の対象顔画像の位置191tからnフレーム目の顔fの顔画像の位置190fまで延びる実動きベクトルCnに最も類似するベクトルを、予測動きベクトルVnを求める際に使用する予測動きベクトルVn−1とする。具体的には、しきい値調整部16は、予測動きベクトルVn−1A,Vn−1B,Vn−Cのうち、実動きベクトルCnと成す角度が最も小さいベクトルを、予測動きベクトルVnを求める際に使用する予測動きベクトルVn−1とする。図40の例では、顔Cについての予測動きベクトルVn−1Cが、実動きベクトルCnに関連付けられ、予測動きベクトルVnを求める際に使用する予測動きベクトルVn−1となる。
図41は、(n−1)フレーム目の対象顔画像の位置191tから延びる予測動きベクトルVn−1A,Vn−1B,Vn−1Cが存在する場合において、nフレーム目の撮像画像から特定された、図40の例とは異なる位置の顔画像gに対して対象顔画像が対応付けられている様子を示す図である。図41の例では、(n−1)フレーム目の対象顔画像の位置191tから、nフレーム目の顔画像gの位置190gまで延びるベクトルが実動きベクトルCnとなる。そして、顔Bについての予測動きベクトルVn−1Bが、実動きベクトルCnに関連付けられ、予測動きベクトルVnを求める際に使用する予測動きベクトルVn−1となる。
このように、しきい値調整部16は、(n−1)フレーム目の対象顔画像の位置191tから延びる複数の予測動きベクトルVn−1を求めた場合には、当該複数の予測動きベクトルVn−1のうち、(n−1)フレーム目の対象顔画像の位置191tから、当該対象顔画像に対応付けられたnフレーム目の顔画像の位置まで延びる実動きベクトルCnと成す角度が最も小さいベクトルを使用して、当該対象顔画像に対応付けられたnフレーム目の顔画像の位置から延びる予測動きベクトルVnを求めている。
ここで、対象顔画像の位置から延びる複数の予測動きベクトルVn−1のうち、ある顔についての予測動きベクトルVn−1と、対象顔画像から延びる実動きベクトルCnとが成す角度が小さいということは、当該実動きベクトルCnは当該ある顔についての実動きベクトルCnである可能性が高く、対象顔画像に対応付けられたnフレーム目の顔画像は当該ある顔に対応する可能性が高い。よって、本実施の形態のように、しきい値調整部16が、対象顔画像の位置から延びる複数の予測動きベクトルVn−1のうち、対象顔画像の位置から延びる実動きベクトルCnと成す角度が最も小さいベクトルを使用して、対象顔画像に対応付けられたnフレーム目の顔画像の位置から延びる予測動きベクトルVnを求めることによって、予測領域300の精度を向上させることが可能となる。
以上のように、本実施の形態では、しきい値調整部16は、(n+1)フレーム目の撮像画像に対する検出処理で使用されるしきい値を調整する場合には、(n+1)フレーム目の撮像画像において顔画像が存在する可能性が高い領域を予測領域300として特定し、当該予測領域300に対する検出処理で使用されるしきい値を、当該予測領域300以外の領域に対する検出処理で使用されるしきい値よりも小さくしている。そのため、(n+1)フレーム目の撮像画像における、顔画像が存在する可能性が高い予測領域300では、顔画像が検出され易くなる。よって、撮像画像において顔画像が含まれているにもかかわらず、当該撮像画像から顔画像が検出できないといったことが発生しにくくなる。その結果、顔画像についての検出精度が向上する。
また、顔画像が存在する可能性が高い予測領域300に対する検出処理で使用されるしきい値を小さくしていることから、検出処理で使用されるしきい値を小さくしたことに起因する顔画像の誤検出の発生を抑制することができる。
また、本実施の形態では、(n+1)フレーム目の撮像画像において予測領域300を特定する際に使用される、nフレーム目の撮像画像と(n+1)フレーム目の撮像画像との間の予測動きベクトルVnが、(n−1)フレーム目の撮像画像とnフレーム目の撮像画像との間の予測動きベクトルVn−1と、(n−1)フレーム目の撮像画像とnフレーム目の撮像画像との間の実動きベクトルCnとに基づいて求められている。このように、予測動きベクトルVnを、実動きベクトルCnだけではなく、前の予測動きベクトルVn−1も用いて求めることによって、予測動きベクトルVnの精度を向上することができる。
また、本実施の形態のように、実動きベクトルCnと予測動きベクトルVn−1とを重み付け合成する際には、実動きベクトルCnの重み係数αを、予測動きベクトルVn−1の重み係数(1−α)よりも大きくすることによって、顔の移動方向が急に変化した場合であっても、精度の良い予測動きベクトルVnを得ることができる。
図42は、実動きベクトルCnの重み係数αと、予測動きベクトルVn−1の重み係数(1−α)とが一致している場合において、nフレーム目において顔Aの移動方向が急に変化した際の予測動きベクトルVnを示す図である。また、図43は、実動きベクトルCnの重み係数αが、予測動きベクトルVn−1の重み係数(1−α)よりも大きいい場合において、nフレーム目において顔Aの移動方向が急に変化した際の予測動きベクトルVnを示す図である。
図42,43には、(n−1)フレーム目の顔Aの顔画像の位置191Aからnフレーム目の顔Aの顔画像の位置190Aまで延びる実動きベクトルCnが示されている。この実動きベクトルCnは、顔Aについての急に変化した後の移動方向を示している。
図42に示される予測動きベクトルVnと、図43に示される予測動きベクトルVnとを比較すると、図43に示される予測動きベクトルVnの方が実動きベクトルCnに類似している。したがって、実動きベクトルCnの重み係数αが、予測動きベクトルVn−1の重み係数(1−α)よりも大きい場合には、予測動きベクトルVnの方向が、顔Aについての急に変化した後の移動方向に近くなる。よって、図43に示される予測動きベクトルVnの方が、図42に示される予測動きベクトルVnよりも精度が高いと言える。
<各種変形例>
以下に本実施の形態についての各種変形例を説明する。以下の説明では、検出処理で使用されるしきい値を「第1のしきい値」と呼ぶことがある。
<第1変形例>
nフレーム目の撮像画像において、ある顔に対応する顔画像であると特定された領域についての検出確度値が大きい場合には、(n+1)フレーム目の撮像画像において、当該ある顔に対応する顔画像が存在する領域についての検出確度値も大きい可能性が高い。
一方で、nフレーム目の撮像画像において、ある顔に対応する顔画像であると特定された領域についての検出確度値が小さい場合には、(n+1)フレーム目の撮像画像において、当該ある顔に対応する顔画像が存在する領域についての検出確度値も小さい可能性が高い。
そこで、本変形例に係るしきい値調整部16は、検出対象画像特定部15がnフレーム目の撮像画像において顔画像であると特定した領域(上記の外接矩形内の画像)についての検出確度値が第2のしきい値よりも小さい場合において(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用される第1のしきい値を、当該検出確度値が当該第2のしきい値よりも大きい場合において(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用される第1のしきい値よりも小さくする。検出対象画像特定部15がnフレーム目の撮像画像において顔画像であると特定した領域についての検出確度値としては、例えば、出力値マップにおける、当該領域の中心位置と同じ位置での検出確度値を使用する。
例えば、第1のしきい値の初期値が“10”であるとすると、nフレーム目の撮像画像において顔画像であると特定された領域についての検出確度値が第2のしきい値よりも小さい場合には、しきい値調整部16は、当該領域の位置(図16,19,20,23等の例では位置190)から延びる予測動きベクトルVnに基づいて特定された、(n+1)フレーム目の撮像画像の予測領域300に対する検出処理で使用される第1のしきい値を例えば“4”に設定する。一方で、nフレーム目の撮像画像において顔画像であると特定された領域についての検出確度値が第2のしきい値よりも大きい場合には、しきい値調整部16は、当該領域の位置から延びる予測動きベクトルVnに基づいて特定された、(n+1)フレーム目の撮像画像の予測領域300に対する検出処理で使用される第1のしきい値を例えば“7”に設定する。これにより、(n+1)フレーム目の撮像画像の予測領域300に対する検出処理での誤検出を抑制することができる。
なお、検出対象画像特定部15がnフレーム目の撮像画像において顔画像であると特定した領域についての検出確度値が第2のしきい値と一致する場合には、(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用する第1のしきい値を、当該検出確度値が当該第2のしきい値よりも大きい場合と同じにしても良いし、当該検出確度値が当該第2のしきい値よりも小さい場合と同じにしても良い。
<第2変形例>
撮像装置5が、当該撮像装置5に近づいてくる顔を撮像する場合には、撮像画像において当該顔の顔画像が写りやすくなることから、撮像画像において当該顔の顔画像が存在する領域についての検出確度値は大きくなる可能性が高い。
一方で、撮像装置5が、当該撮像装置5から遠ざかっていく顔を撮像する場合には、撮像画像において当該顔の顔画像が写りにくくなることから、撮像画像において当該顔の顔画像が存在する領域についての検出確度値は小さくなる可能性が高い。
そこで、本変形例に係るしきい値調整部16は、顔が撮像装置5から遠ざかる場合において(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用される第1のしきい値を、顔が撮像装置5に近づく場合において(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用される第1のしきい値よりも小さくする。以下にこの変形例について具体的に説明する。
図44は撮像装置5の設置例を示す図である。監視カメラシステム等においては、図44に示されるように、撮像装置5が、その撮像視野が斜め下方向となるように家450の外壁に取り付けられることがある。図44のように設置された撮像装置5で撮像される撮像画像20では、図45に示されるように、下端の中央が撮像装置5のレンズ中心500となる。
図44のように設置された撮像装置5で撮像された(n+1)フレーム目の撮像画像に対する検出処理で使用されるしきい値を調整する際には、しきい値調整部16は、nフレーム目の顔画像から延びる予測動きベクトルVnが下方向に向く場合には、当該顔画像に対応する顔が撮像装置5に近づくと判断する。一方で、しきい値調整部16は、nフレーム目の顔画像から延びる予測動きベクトルVnが上方向に向く場合には、当該顔画像に対応する顔が撮像装置5から遠ざかると判断する。
図46は、顔Aが撮像装置5に近づく様子と、顔Bが撮像装置5から遠ざかる様子とを示す図である。図46には、(n−3)フレーム目、(n−2)フレーム目、(n−1)フレーム目及びnフレーム目の顔Aの顔画像の位置193A,192A,191A,190Aが示されている。また図46には、(n−3)フレーム目、(n−2)フレーム目、(n−1)フレーム目及びnフレーム目の顔Bの顔画像の位置193B,192B,191B,190Bが示されている。
図46の例では、しきい値調整部16は、nフレーム目の顔Aの顔画像の位置190Aから延びる予測動きベクトルVnが下方向(より詳細には右下方向)を向いていることから、nフレーム目から(n+1)フレーム目にかけて顔Aが撮像装置5に近づくと判断する。そして、しきい値調整部16は、nフレーム目の顔Aの顔画像の位置190Aから延びる予測動きベクトルVnに基づいて特定する、(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用する第1のしきい値を例えば“7”に設定する。
一方で、しきい値調整部16は、nフレーム目の顔Bの顔画像の位置190Bから延びる予測動きベクトルVnが上方向(より詳細には右上方向)を向いていることから、nフレーム目から(n+1)フレーム目にかけて顔Bが撮像装置5から遠ざかると判断する。そして、しきい値調整部16は、nフレーム目の顔Bの顔画像の位置190Bから延びる予測動きベクトルVnに基づいて特定する、(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用する第1のしきい値を例えば“4”に設定する。
このように、しきい値調整部16が、顔が撮像装置5から遠ざかる場合において(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用される第1のしきい値を、顔が撮像装置5に近づく場合において(n+1)フレーム目の撮像画像での予測領域300に対する検出処理で使用される第1のしきい値よりも小さくすることによって、予測領域300に対する検出処理での顔画像の誤検出を抑制することができる。
<第3変形例>
撮像装置5の撮像視野が固定である場合には、当該撮像視野において、顔が頻繁に移動する経路(例えば人が頻繁に通る道など)のように、顔が存在する可能性が高い特定領域(固定領域)が存在することがある。撮像画像において、撮像視野における、顔が存在する可能性が高い特定領域を写す画像領域には、顔画像が存在する可能性が高い。したがって、撮像画像において、撮像視野における、顔が存在する可能性が高い特定領域を写す画像領域に対する検出処理で使用される第1のしきい値を、当該画像領域が予測領域300になるかどうかにかかわらず小さくしておくことによって、予測領域300の精度があまり良くなくても、顔画像の検出処理の精度を向上することが可能となる。
そこで、本変形例では、しきい値調整部16は、撮像画像において、それに対する検出処理で使用される第1のしきい値が小さくされた回数が、所定回数よりも多い、あるいは当該所定回数以上の領域を特定する。そして、しきい値調整部16は、特定した当該領域に対する検出処理で使用される第1のしきい値を、当該領域が予測領域300とされるか否かにかかわらず小さくする。これにより、撮像画像での予測領域300の精度があまり良くない場合であっても、当該撮像画像において、顔画像が存在する可能性が高い領域に対する検出処理で使用される第1のしきい値を確実に小さくすることができる。よって、顔画像についての検出精度が向上する。以下に、本変形例について具体的に説明する。
本変形例に係るしきい値調整部16は、検出処理で使用される第1のしきい値が小さくされた回数についての撮像画像での分布を示すしきい値低減回数マップ600を生成する。第1のしきい値が小さくされた回数は、予測領域300となった回数を意味していることから、しきい値低減回数マップ600は、予測領域300となった回数についての撮像画像での分布を示していると言える。
図47はしきい値低減回数マップ600の一例を示す図である。しきい値調整部16は、撮像画像を複数の分割領域に分割する。そして、しきい値調整部16は、各分割領域について、当該分割領域に対する検出処理で使用される第1のしきい値が小さくされた回数(以後、「しきい値低減回数」と呼ぶ)をカウントする。分割領域の縦方向及び横方向の長さはスキャンステップと一致している。しきい値低減回数マップ600では、しきい値低減回数610が、撮像画像における、それに対応する分割領域の位置に対応させて示されている。例えば、しきい値低減回数マップ600での左上のしきい値低減回数610は、撮像画像での左上の分割領域についてのしきい値低減回数となっている。
図47の例では、撮像画像の中央部の2列の複数の分割領域についてのしきい値低減回数610が大きくなっている。これは、撮像装置5の撮像視野の中央部において、玄関から門扉まで続く道(アプローチ)などのように、顔が頻繁に移動する経路が含まれているからである。
しきい値調整部16は、撮像画像での予測領域300を特定するたびに、当該予測領域300に基づいて、しきい値低減回数マップ600を更新する。そして、しきい値調整部16は、しきい値低減回数マップ600を更新するたびに、対応するしきい値低減回数610が所定回数以上あるいは当該所定回数よりも大きい分割領域を特定し、以後、当該分割領域に対する検出処理で使用される第1のしきい値を、当該分割領域が予測領域300とされるか否かにかかわらず、予測領域でない領域に対する検出処理で使用される第1のしきい値よりも小さくする。所定回数を例えば10回とすると、図47の例では、撮像画像の中央部の2列の複数の分割領域から成る領域に対する検出処理で使用される第1のしきい値が、当該領域が予測領域300とされるか否かにかかわらず、例えば“7”とされる。
なお、撮像画像において、しきい値低減回数610が所定回数以上あるいは当該所定回数よりも大きい分割領域に対する検出処理で使用される第1のしきい値については、当該分割領域が予測領域300とされる場合と、当該分割領域が予測領域300とされない場合とで必ずしも一致しなくても良い。
例えば、(n+1)フレーム目の撮像画像に対する検出処理で使用されるしきい値についての調整処理において、(n+1)フレーム目の撮像画像において当該分割領域が予測領域300とされない場合には、当該分割領域に対する検出処理で使用される第1のしきい値を例えば“7”に設定する。一方で、(n+1)フレーム目の撮像画像において当該分割領域が予測領域300とされる場合には、第1変形例と同様に、nフレーム目の撮像画像において顔画像であると特定された領域についての検出確度値と第2のしきい値との比較結果に応じて当該分割領域に対する検出処理で使用される第1のしきい値を決定する。また、(n+1)フレーム目の撮像画像において当該分割領域が予測領域300とされる場合には、第2変形例と同様に、顔が撮像装置5に近づくか撮像装置5から遠ざかるかに応じて当該分割領域に対する検出処理で使用される第1のしきい値を決定する。
上記において画像処理システム100は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。例えば、検出対象画像については、人の顔画像以外の画像であっても良い。また、上述した各種の例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。