図1は実施の形態に係る画像検出装置1を備える画像処理システム50の構成を示す図である。画像処理システム50は、画像検出装置1と、撮像装置5とを備えている。撮像装置5は、画像を撮像し、撮像画像を示す画像データを画像検出装置1に出力する。画像検出装置1は、入力される画像データが示す撮像画像から検出対象画像を検出する。画像処理システム50は、例えば、監視カメラシステム、デジタルカメラシステム等で使用される。本実施の形態では、検出対象画像は、例えば人の顔画像である。以後、単に「顔画像」と言えば、人の顔画像を意味するものとする。また、検出対象画像を検出する対象の撮像画像を「処理対象画像」と呼ぶ。なお、検出対象画像は顔画像以外の画像であっても良い。例えば、検出対象画像は人全体の画像であっても良い。
図1に示されるように、画像検出装置1は、CPU(Central Processing Unit)2及び記憶部3を備えている。記憶部3は、ROM(Read Only Memory)及びRAM(Random Access Memory)等で構成されている。記憶部3には、画像検出装置1の動作を制御するための制御プログラム4等が記憶されている。画像検出装置1の各種機能は、CPU2が記憶部3内の制御プログラム4を実行することによって実現される。画像検出装置1では、制御プログラム4が実行されることによって、図2に示されるような複数の機能ブロックが形成される。
図2に示されるように、画像検出装置1は、機能ブロックとして、画像入力部11と、検出部12と、出力値マップ生成部15とを備えている。なお、画像検出装置1が備える各種機能は、機能ブロックではなくハードウェア回路で実現しても良い。
画像入力部11には、撮像装置5で順次撮像された複数枚の画像をそれぞれ示す複数の画像データが順次入力される。画像入力部11は、処理対象画像を示す画像データを出力する。画像入力部11は、撮像装置5で得られる各画像を処理対象画像としても良いし、撮像装置5で得られる画像のうち、数秒毎に得られる画像を処理対象画像としても良い。撮像装置5では、例えば、1秒間にL枚(L≧2)の画像が撮像される。つまり、撮像装置5での撮像フレームレートは、Lfps(frame per second)である。
また、撮像装置5で撮像される画像では、行方向にM個(M≧2)の画素が並び、列方向にN個(N≧2)の画素が並んでいる。撮像装置5で撮像される画像の解像度は、例えばVGA(Video Graphics Array)であって、M=640、N=480となっている。
なお以後、行方向にm個(m≧1)の画素が並び、列方向にn個(n≧1)の画素が並ぶ領域の大きさをmp×npで表す(pはピクセルの意味)。また、行列状に配置された複数の値において、左上を基準にして第m行目であって第n列目に位置する値をm×n番目の値と呼ぶことがある。また、行列状に配置された複数の画素において、左上を基準にして第m行目であって第n列目に位置する画素をm×n番目の画素と呼ぶことがある。
検出部12は、画像入力部11から出力される画像データを使用して、処理対象画像に対して顔画像の検出を行う。出力値マップ生成部15は、検出部12での検出結果に基づいて、顔画像としての確からしさを示す検出確度値についての処理対象画像での分布を示す出力値マップを生成する。
次に、画像検出装置1の各ブロックの動作について詳細に説明する。
<検出処理>
図2に示されるように、検出部12は、特徴量抽出部13及び識別器14を備えている。検出部12は、検出枠を用いて、処理対象画像において当該検出枠と同じサイズの顔画像である可能性が高い領域を検出結果領域として検出する検出処理を行う。以後、単に「検出処理」と言えば、検出部12でのこの検出処理を意味する。検出処理については後で詳細に説明する。
検出部12は、処理対象画像における様々な大きさの顔画像を検出するために、サイズの異なる複数種類の検出枠を使用する。検出部12では、例えば30種類の検出枠が使用される。
本実施の形態では、後述するように、特徴量抽出部13は、画像から特徴量を抽出する。そして、特徴量抽出部13においては、特徴量を抽出する対象の画像については、基準サイズ(正規化サイズ)の画像を使用する必要がある。
一方で、本実施の形態では、互いにサイズが異なる複数種類の検出枠には、基準サイズと同じサイズの検出枠と、基準サイズとは異なるサイズの検出枠とが含まれている。以後、基準サイズと同じサイズの検出枠を「基準検出枠」と呼び、基準サイズとは異なるサイズの検出枠を「非基準検出枠」と呼ぶ。本実施の形態では、複数種類の検出枠のうちのサイズが最小の検出枠が基準検出枠となっている。したがって、非基準検出枠のサイズは基準サイズよりも大きくなっている。基準検出枠のサイズは、例えば16p×16pである。また、複数種類の検出枠には、例えば、大きさが18p×18pの非基準検出枠及び大きさが20p×20pの非基準検出枠などが含まれている。
本実施の形態では、検出部12は、処理対象画像について基準検出枠を使用して検出処理を行う際には、処理対象画像に対して基準検出枠を移動させながら、当該基準検出枠内の画像に対して顔画像の検出を行って、当該画像が顔画像である可能性が高いかを判定する。そして、検出部12は、処理対象画像において、顔画像である可能性が高いと判定した領域(基準検出枠内の画像)を検出結果領域とする。
一方で、検出部12は、処理対象画像について非基準検出枠を使用して検出処理を行う際には、基準サイズとサイズが一致するように非基準検出枠をサイズ変更する。そして、検出部12は、非基準検出枠のサイズ変更に応じて処理対象画像のサイズ変更を行う。検出部12は、サイズ変更を行った処理対象画像に対して、サイズ変更を行った非基準検出枠を移動させながら、当該非基準検出枠内の画像に対して顔画像の検出を行って、当該画像が顔画像である可能性が高いかを判定する。そして、検出部12は、サイズ変更を行った処理対象画像において、顔画像である可能性が高いと判定した領域(サイズ変更後の非基準検出枠内の画像)に基づいて、サイズ変更が行われていない、本来のサイズの処理対象画像において顔画像である可能性が高い領域を特定し、当該領域を検出結果領域とする。
以後、処理対象画像に対して非基準検出枠が使用されて検出処理が行われる際のサイズ変更後の当該処理対象画像を「サイズ変更画像」と呼ぶ。また、処理対象画像に対して非基準検出枠が使用されて検出処理が行われる際のサイズ変更後の当該非基準検出枠を「サイズ変更検出枠」と呼ぶ。
このように、本実施の形態では、検出部12が処理対象画像に対して基準検出枠を使用して検出処理を行う際の当該検出部12の動作と、検出部12が処理対象画像に対して非基準検出枠を使用して検出処理を行う際の当該検出部12の動作とが異なっている。以下に検出部12の動作について詳細に説明する。
検出部12では、検出処理に基準検出枠が使用される際には、特徴量抽出部13が、処理対象画像に対して基準検出枠を設定し、当該処理対象画像における当該基準検出枠内の画像から複数の特徴量を抽出する。一方で、検出処理に非基準検出枠が使用される際には、特徴量抽出部13は、処理対象画像をサイズ変更して得られるサイズ変更画像に対して、非基準検出枠をサイズ変更して得られるサイズ変更検出枠を設定し、当該サイズ変更画像における当該サイズ変更検出枠内の画像から複数の特徴量を抽出する。以後、特徴量が抽出される、基準検出枠内の画像及びサイズ変更検出枠内の画像を総称して「枠内画像」と呼ぶことがある。
ここで、基準検出枠のサイズは基準サイズと一致することから、処理対象画像における基準検出枠内の画像のサイズは基準サイズとなる。また、サイズ変更検出枠のサイズは基準サイズと一致することから、サイズ変更画像におけるサイズ変更検出枠内の画像のサイズは基準サイズとなる。よって、特徴量抽出部13は、常に基準サイズの画像から特徴量を抽出することができる。なお、特徴量抽出部13での特徴量の抽出方法については後で詳細に説明する。
識別器14は、特徴量抽出部13が枠内画像から抽出した複数の特徴量から成る特徴ベクトルと、学習サンプル(学習用のサンプル画像)に基づいて生成された複数の重み係数から成る重みベクトルとに基づいて、当該枠内画像が顔画像である確からしさを示す実数値を算出する。具体的には、特徴量抽出部13は、枠内画像についての特徴ベクトルと、重みベクトルとの内積を求め、当該内積に所定のバイアス値を加算して得られる値を、当該枠内画像が顔画像である確からしさを示す実数値とする。以後、顔画像である確からしさを示す実数値を「検出確度値」と呼ぶ。識別器14で算出される検出確度値は、基準検出枠内の画像あるいはサイズ変更検出枠内の画像についての顔画像らしさ(顔らしさ)を示している。識別器14では、例えば、SVM(Support Vector Machine)あるいはAdaboostが使用される。
識別器14は、算出した検出確度値がしきい値以上であれば、枠内画像が顔画像である可能性が高いと判定する。つまり、基準検出枠が使用される際には、識別器14は、処理対象画像における基準検出枠内の画像が、基準検出枠と同じサイズの顔画像である可能性が高い領域であると判定する。また、非基準検出枠が使用される際には、識別器14は、サイズ変更画像におけるサイズ変更検出枠内の画像が、サイズ変更検出枠と同じサイズの顔画像である可能性が高い領域であると判定する。
一方で、識別器14は、算出した検出確度値がしきい未満であれば、枠内画像が顔画像でない可能性が高いと判定する。つまり、基準検出枠が使用される際には、識別器14は、処理対象画像における基準検出枠内の画像が、基準検出枠と同じサイズの顔画像である可能性が高い領域ではないと判定する。また、非基準検出枠が使用される際には、識別器14は、サイズ変更画像におけるサイズ変更検出枠内の画像が、サイズ変更検出枠と同じサイズの顔画像である可能性が高い領域ではないと判定する。
識別器14は、処理対象画像における基準検出枠内の画像が、基準検出枠と同じサイズの顔画像である可能性が高い領域であると判定すると、当該画像を検出結果領域とし、当該基準検出枠を検出結果枠とする。
また識別器14は、サイズ変更画像におけるサイズ変更検出枠内の画像が、サイズ変更検出枠と同じサイズの顔画像である可能性が高い領域であると判定すると、当該領域の外形枠を仮検出結果枠とする。そして、識別器14は、仮検出結果枠に基づいて、サイズ変更画像の元の画像である処理対象画像において、非基準検出枠と同じサイズの顔画像である可能性が高い領域を特定し、当該領域を検出結果領域とするとともに、当該検出結果領域の外形枠を最終的な検出結果枠とする。
<基準検出枠を用いた検出処理>
次に、検出部12が処理対象画像に対して基準検出枠を移動させながら、当該基準検出枠内の画像が顔画像である可能性が高いかを判定する際の当該検出部12の一連の動作について説明する。図3〜6は、検出部12の当該動作を説明するための図である。検出部12は、基準検出枠をラスタスキャンさせながら、当該基準検出枠内の画像に対して顔画像の検出を行う。
図3に示されるように、特徴量抽出部13は、処理対象画像20の左上にまず基準検出枠100を設定して、当該基準検出枠100内の画像から複数の特徴量を抽出する。識別器14は、特徴量抽出部13が抽出した複数の特徴量から成る特徴ベクトルと、複数の重み係数から成る重みベクトルとに基づいて、基準検出枠100内の画像についての検出確度値を求める。そして、識別器14は、算出した検出確度値がしきい値以上である場合には、処理対象画像20での左上の基準検出枠100内の領域が顔画像である可能性が高いと判定し、当該領域を検出結果領域とし、当該領域の外形枠である当該基準検出枠100を検出結果枠とする。
次に特徴量抽出部13は、処理対象画像20において基準検出枠100を少し右に移動させる。特徴量抽出部13は、例えば、1画素分あるいは数画素分だけ右に基準検出枠100を移動させる。そして、特徴量抽出部13は、処理対象画像20における移動後の基準検出枠100内の画像から複数の特徴量を抽出する。
その後、識別器14は、特徴量抽出部13で抽出された複数の特徴量から成る特徴ベクトルと、複数の重み係数から成る重みベクトルとに基づいて、移動後の基準検出枠100内の画像についての検出確度値を求める。そして、識別器14は、算出した検出確度値がしきい値以上である場合には、移動後の基準検出枠100内の画像が顔画像である可能性が高いと判定して、当該画像を検出結果領域とするとともに、当該画像の外形枠である移動後の基準検出枠100を検出結果枠とする。
その後、検出部12は同様に動作して、図4に示されるように、基準検出枠100が処理対象画像20の右端まで移動すると、検出部12は、右端の基準検出枠100内の画像についての検出確度値を求める。そして、検出部12は、求めた検出確度値がしきい値以上であれば、右端の基準検出枠100内の画像を検出結果領域とするとともに、当該右端の基準検出枠100を検出結果枠とする。
次に、特徴量抽出部13は、図5に示されるように、基準検出枠100を少し下げつつ処理対象画像20の左端に移動させた後、当該基準検出枠100内の画像から複数の特徴量を抽出する。特徴量抽出部13は、上下方向(列方向)において例えば1画素分あるいは数画素分だけ下に基準検出枠100を移動させる。その後、識別器14は、特徴量抽出部13から抽出された複数の特徴量から成る特徴ベクトルと、複数の重み係数から成る重みベクトルとに基づいて、現在の基準検出枠100内の画像についての検出確度値を求めて出力する。そして、識別器14は、算出した検出確度値がしきい値以上である場合には、現在の基準検出枠100内の画像が顔画像である可能性が高いと判定して、当該画像を検出結果領域とするとともに、当該基準検出枠100を検出結果枠とする。
その後、検出部12は同様に動作して、図6に示されるように、基準検出枠100が処理対象画像20の右下まで移動すると、検出部12は、右下の当該基準検出枠100内の画像についての検出確度値を求める。そして、検出部12は、求めた検出確度値がしきい値以上であれば、右下の基準検出枠100内の画像を検出結果領域とするとともに、当該右下の基準検出枠を検出結果枠とする。
以上のようにして、検出部12は、基準検出枠を使用して、処理対象画像において、当該基準検出枠と同じサイズの顔画像である可能性が高い領域を検出結果領域として検出する。言い換えれば、検出部12は、基準検出枠を使用して、処理対象画像において、当該基準検出枠と同じサイズの顔画像を特定する。
<非基準検出枠を用いた検出処理>
検出部12が非基準検出枠を使用して検出処理を行う際には、特徴量抽出部13は、非基準検出枠の大きさが基準サイズ(基準検出枠のサイズ)と一致するように、当該非基準検出枠をサイズ変更する。そして、特徴量抽出部13は、非基準検出枠についてのサイズ変更比率と同じだけ処理対象画像をサイズ変更する。
本実施の形態では、基準サイズは16p×16pであることから、例えば、大きさがRp×Rp(R>16)の非基準検出枠が使用される場合、特徴量抽出部13は、当該非基準検出枠の縦幅(上下方向の幅)及び横幅(左右方向の幅)をそれぞれ(16/R)倍して当該非基準検出枠を縮小し、サイズ変更検出枠を生成する。そして、特徴量抽出部13は、処理対象画像の縦幅(画素数)及び横幅(画素数)をそれぞれ(16/R)倍して当該処理対象画像を縮小し、サイズ変更画像を生成する。その後、検出部12は、上述の図3〜6を用いて説明した処理と同様に、サイズ変更画像に対してサイズ変更検出枠を移動させながら、当該サイズ変更検出枠内の画像から特徴量を抽出し、当該特徴量に基づいて、当該サイズ変更検出枠内の画像が、当該サイズ変更検出枠と同じサイズの顔画像である可能性が高いか判定する。つまり、検出部12は、サイズ変更検出枠を用いて、サイズ変更画像において当該サイズ変更検出枠と同じサイズの顔画像である可能性が高い領域を検出する処理を行う。以後、この処理を「サイズ変更版検出処理」と呼ぶ。また、枠内画像からの特徴量の抽出に使用される基準検出枠及びサイズ変更検出枠を総称して「特徴量抽出枠」と呼ぶ。特徴量抽出枠には、サイズ変更前の非基準検出枠は含まれない。
検出部12は、サイズ変更版検出処理において、サイズ変更画像に対してサイズ変更検出枠を設定し、当該サイズ変更検出枠内の画像が、当該サイズ変更検出枠と同じサイズの顔画像である可能性が高いと判定すると、当該画像の外形枠である当該サイズ変更検出枠を仮検出結果枠とする。
検出部12では、サイズ変更画像について少なくとも一つの仮検出結果枠が得られると、識別器14が、当該少なくとも一つの仮検出結果枠を、当該サイズ変更画像の元になる処理対象画像に応じた検出結果枠に変換する。
具体的には、識別器14は、まず、サイズ変更画像に対して、得られた少なくとも一つの仮検出結果枠を設定する。図7は、サイズ変更画像120に対して仮検出結果枠110が設定されている様子を示す図である。図7の例では、サイズ変更画像120に対して複数の仮検出結果枠110が設定されている。
次に識別器14は、図8に示されるように、仮検出結果枠110が設定されたサイズ変更画像120を拡大(サイズ変更)して元のサイズに戻すことによって、サイズ変更画像120を処理対象画像20に変換する。これにより、サイズ変更画像120に設定された仮検出結果枠110も拡大されて、仮検出結果枠110は、図8に示されるように、処理対象画像20に応じた検出結果枠150に変換される。処理対象画像20における検出結果枠150内の領域が、処理対象画像20において非基準検出枠と同じサイズの顔画像である可能性が高い検出結果領域となる。これにより、検出部12では、サイズ変更版検出処理によって得られた仮検出結果枠110に基づいて、処理対象画像において非基準検出枠と同じサイズの顔画像である可能性が高い検出結果領域が特定される。
このように、検出部12は、非基準検出枠を使用して処理対象画像についての検出処理を行う際には、サイズが基準サイズと一致するようにサイズ変更した非基準検出枠と、当該非基準検出枠のサイズ変更に応じてサイズ変更した処理対象画像とを使用してサイズ変更版検出処理を行う。これにより、基準サイズとは異なるサイズの検出枠が使用される場合であっても、特徴量抽出部13は、基準サイズの画像から特徴量を抽出できる。そして、検出部12は、サイズ変更版検出処理の結果に基づいて、処理対象画像において非基準検出枠と同じサイズの顔画像である可能性が高い検出結果領域を特定する。これにより、検出部12では非基準検出枠が用いられた検出処理が行われる。
検出部12は、以上のような検出処理を、複数種類の検出枠のそれぞれを用いて行う。これにより、処理対象画像に顔画像が含まれている場合には、検出結果領域(顔画像である可能性が高い領域)及び検出結果枠(顔画像である可能性が高い領域の外形枠)が得られるとともに、検出結果枠に対応した検出確度値が得られる。処理対象画像について得られた検出結果枠に対応した検出確度値とは、当該処理対象画像における当該検出結果枠内の画像が顔画像である確からしさを示している。
図9は、処理対象画像20について得られた検出結果枠150が当該処理対象画像20に重ねて配置された様子を示す図である。図9に示されるように、互いにサイズの異なる複数種類の検出枠が使用されて検出処理が行われることによって、様々な大きさの検出結果枠150が得られる。これは、処理対象画像20に含まれる様々な大きさの顔画像が検出されていることを意味している。
<特徴量抽出処理>
次に特徴量抽出部13の動作について詳細に説明する。図10は、特徴量抽出部13の構成を示す図である。図10に示されるように、特徴量抽出部13は、評価値取得部130と、特徴量取得部131とを備えている。
評価値取得部130は、処理対象画像から、行列状に配列された複数の評価値で構成された評価値マップを生成する。特徴量取得部131は、評価値マップを用いて顔画像についての特徴量を取得する。ここで、評価値とは、注目画素の画素値と、当該注目画素の周囲の複数の画素値との関係を示す値である。以後、注目画素の画素値を「注目画素値」と呼ぶことがある。また、注目画素の周囲の画素値を「周囲画素値」と呼ぶことがある。本実施の形態では、評価値の取得には、例えば、注目画素の周囲8方向の周囲画素値が使用される。
<評価値マップの生成方法>
評価値取得部130は、検出処理で使用される複数種類の検出枠のそれぞれについて、当該検出枠に対応した評価値マップを生成する。以後、基準検出枠に対応した評価値マップを「基準用評価値マップ」と呼ぶ。また、非基準検出枠に対応した評価値マップを「非基準用評価値マップ」と呼ぶ。
ここで、後述するように、処理対象画像についての特徴量の抽出では、本来のサイズ(Mp×Np)よりも周囲1画素分だけ小さい、(M−2)p×(N−2)pの処理対象画像が使用される。つまり、上述の図3〜6を用いて説明した検出処理においては、本来のサイズよりも周囲1画素分だけ小さい処理対象画像が使用される。この処理対象画像を特に「抽出用処理対象画像」と呼ぶ。図3〜6に示される処理対象画像20は実際には「抽出用処理対象画像」である。また、サイズ変更画像についての特徴量が抽出される際には、本来のサイズよりも周囲1画素分だけ小さいサイズ変更画像が使用される。以後、このサイズ変更画像を特に「抽出用サイズ変更画像」と呼ぶ。
基準用評価値マップは処理対象画像から生成される。基準用評価値マップは、抽出用処理対象画像と同様に、行方向に(M−2)個の評価値が並び、列方向に(N−2)個の評価値が並ぶ、合計((M−2)×(N−2))個の複数の評価値で構成されている。基準用評価値マップを構成する複数の評価値は、抽出用処理対象画像を構成する複数の画素とそれぞれ対応している。具体的には、基準用評価値マップでのm×n番目の評価値は、抽出用処理対象画像でのm×n番目の画素に対応している。基準用評価値マップでの各評価値は、それに対応する画素を注目画素とした場合における、当該注目画素の画素値と複数の周囲画素値との間の関係を示している。
また、非基準検出枠に対応した非基準用評価値マップを構成する、行列状に配置された複数の評価値は、当該非基準検出枠に対応するサイズ変更画像(当該非基準検出枠のサイズ変更比率と同じ比率だけサイズ変更された処理対象画像)を、周囲1画素分だけ小さくして得られる抽出用サイズ変更画像を構成する複数の画素とそれぞれ対応している。非基準用評価値マップでの複数の評価値の配列は、抽出用サイズ変更画像を構成する複数の画素の配列と同じである。非基準用評価値マップでのm×n番目の評価値は、抽出用サイズ変更画像でのm×n番目の画素に対応している。非基準用評価値マップでの各評価値は、それに対応する画素を注目画素とした場合における、当該注目画素の画素値と複数の周囲画素値との間の関係を示している。
評価値取得部130は、基準用評価値マップを生成する際には、図11に示されるように、処理対象画像20の左上に対してサイズが3p×3pの算出用枠200を設定する。そして、評価値取得部130は、算出用枠200内の9個の画素の中央の画素を注目画素とする。
次に評価値取得部130は、注目画素の画素値と、注目画素の周囲の8個の周囲画素値との関係を示す評価値を求める。評価値取得部130は、当該8個の周囲画素値として、注目画素の左上の画素の画素値、真上の画素の画素値、右上の画素の画素値、右の画素の画素値、右下の画素の画素値、真下の画素の画素値、左下の画素の画素値、左の画素の画素値を使用する。本実施の形態では、評価値は8ビットで表される。そして、評価値取得部130は、求めた評価値を、算出用枠200内の中央の画素、つまり、抽出用処理対象画像の1×1番目の画素に対応する、基準用評価値マップの1×1番目の値とする。評価値としては、例えば、LBPあるいはLTPを使用することができる。LBP及びLTPの求め方については後で詳細に説明する。
図12は、算出用枠200内の9個の画素についての画素値の例を示す図である。本実施の形態では、評価値の取得で使用する画素値を例えば輝度とする。また本実施の形態では、画素値は8ビットで表される。したがって、画素値は、十進数で表すと、“0”から“255”までの値をとる。なお、当該画素値は色差成分であっても良い。以後、画素値等の値については、特に断らない名切り、十進数で表した値とする。
図12の例では、注目画素値210が“57”である。また、注目画素の左上の画素の画素値、真上の画素の画素値、右上の画素の画素値、右の画素の画素値、右下の画素の画素値、真下の画素の画素値、左下の画素の画素値、左の画素の画素値が、それぞれ、“50”、“55”、“65”、“75”、“79”、“59”、“48”及び“49”となっている。
評価値取得部130は、処理対象画像20の左上にある算出用枠200に対応する評価値を求めると、処理対象画像20において算出用枠200を1画素分だけ右に移動させる。そして、評価値取得部130は、移動後の算出用枠200内の9個の画素の中央の画素を注目画素とし、注目画素値と、8個の周囲画素値との関係を示す評価値を求める。評価値取得部130は、求めた評価値を、移動後の算出用枠200内の中央の画素、つまり、抽出用処理対象画像の1×2番目の画素に対応する、基準用評価値マップの1×2番目の値とする。
次に、評価値取得部130は、処理対象画像20において算出用枠200をさらに1画素分だけ右に移動させる。そして、評価値取得部130は、移動後の算出用枠200内の9個の画素の中央の画素を注目画素とし、注目画素値と、8個の周囲画素値との関係を示す評価値を求める。評価値取得部130は、求めた評価値を、移動後の算出用枠200内の中央の画素、つまり、抽出用処理対象画像の1×3番目の画素に対応する、基準用評価値マップの1×3番目の値とする。
以後、評価値取得部130は、算出用枠200を1画素分ずつ処理対象画像20の右下までラスタスキャンさせて、算出用枠200の各位置において、当該算出用枠200の中央の画素を注目画素として評価値を求める。これにより、抽出用処理対象画像を構成する複数の画素、つまり、処理対象画像の周囲1画素分を除いた複数の画素にそれぞれ対応する複数の評価値が生成され、当該複数の評価値から成る基準用評価値マップが完成する。なお、処理対象画像の周囲1画素分については、各画素が注目画素とならないため、当該各画素に対応する評価値は求められない。
評価値取得部130は、非基準検出枠に対応する非基準用評価値マップを生成する際には、処理対象画像に対して算出用枠200を設定する替わりに、当該非基準検出枠に対応するサイズ変更画像に対して算出用枠200を設定する。そして、評価値取得部130は、上記と同様にして、当該サイズ変更画像に対して算出用枠200を1画素ずつラスタスキャンさせながら、算出用枠200の各位置で評価値を求める。これにより、非基準検出枠に対応する抽出用サイズ変更画像を構成する複数の画素、つまり非基準検出枠に対応するサイズ変更画像の周囲1画素分を除いた複数の画素にそれぞれ対応する複数の評価値が生成され、当該複数の評価値から成る、当該非基準検出枠に対応する非基準用評価値マップが完成する。評価値取得部130は、複数種類の非基準検出枠のそれぞれについて非基準用評価値マップを生成する。なお、サイズ変更画像の周囲1画素分については、各画素が注目画素とならないため、当該各画素に対応する評価値は求められない。
<評価値の具体例>
次に評価値として使用されるLBP及びLTPについて説明する。
<LBP>
LBPが生成される際には、複数の周囲画素値のそれぞれについて、当該周囲画素値と注目画素値との関係を示す1ビット(以後、「関係表示ビット」と呼ぶ)が生成される。周囲画素値から注目画素値を差し引いて得られる差分値が零以上であれば関係表示ビットの値は“1”とされ、零未満であれば関係表示ビットの値は“0”とされる。そして、複数の周囲画素値について得られた複数の関係表示ビットで構成される8ビットのバイナリコード(以後、「関係表示コード」と呼ぶ)がLBPとなり、当該LPBが評価値とされる。具体的には、LBPとしての関係表示コードを十進数で表した値が評価値とされる。
例えば、算出用枠200内の複数の画素について、図12に示されるような注目画素値210と複数の周囲画素値220とが得られたとする。評価値取得部130は、各周囲画素値220について、当該周囲画素値220から注目画素値210を差し引いて得られる差分値250を求める。図13に示されるように、左上、真上、右上、右、右下、真下、左下、左の周囲画素値220についての注目画素値210との間の差分値250は、それぞれ“−7”、“−2”、“8”、“18”、“22”、“2”、“−9”、“−8”となる。そして評価値取得部130は、求めた複数の差分値250(本例では8個の差分値250)のそれぞれと零とを比較する。評価値取得部130は、周囲画素値220についての差分値250が零以上である場合には、当該周囲画素値220についての関係表示ビット260の値を“1”とし、当該差分値250が零未満である場合には、当該周囲画素値220についての関係表示ビット260の値を“0”とする。図12,13の例では、図14に示されるように、左上、真上、右上、右、右下、真下、左下、左の周囲画素値220についての関係表示ビット260は、それぞれ“0”、“0”、“1”、“1”、“1”、“1”、“0”、“0”となる。そして、評価値取得部130は、複数の周囲画素値220について求めた複数の関係表示ビット260を所定の順で並べることによって、LBPとして8ビットの関係表示コードを生成する。評価値取得部130は、関係表示コードを求めると、当該関係表示コードを十進数で表した値を、注目画素に対応する評価値とする。本実施の形態では、例えば、左上の周囲画素値220の関係表示ビット260、真上の周囲画素値220の関係表示ビット260、右上の周囲画素値220の関係表示ビット260、右の周囲画素値220の関係表示ビット260、右下の周囲画素値220の関係表示ビット260、真下の周囲画素値220の関係表示ビット260、左下の周囲画素値220の関係表示ビット260、左の周囲画素値220の関係表示ビット260の順で、得られた8個の関係表示ビット260が並べられて関係表示コードが生成される。図12の画素値の例では、図14に示されるように、“00111100”が関係表示コードとなり、それを十進数で表した値“60”が注目画素に対応する評価値となる。
以上の説明から理解できるように、LBPは、注目画素の周囲での画素値の様子(分布状況)を示していると言える。よって、LBPは局所的なテクスチャを示していると言える。以後、LBP(正確にはそれを十進数で表した値)を各評価値とする評価値マップを「LBPマップ」と呼ぶ。
図15は処理対象画像20の一例を示す図である。図16は図15に示される処理対象画像20に基づいて生成されたLBPマップでの各評価値を輝度とすることによって、当該LBPマップを画像化して得られるグレースケールのLBPマップ画像30を示す図である。図16に示されるLBPマップ画像30からは、処理対象画像20についてのテクスチャを読み取ることができる。
<LTP>
LTPが生成される際には、LBPとは異なり、複数の周囲画素値のそれぞれについて、当該周囲画素値と注目画素値との関係を示す3値データが生成される。ここで、LTPにおいては、ノイズの影響を抑制するために、周囲画素値と注目画素値との関係を示す3値データが生成される際にはオフセット値が使用される。
具体的には、周囲画素値と注目画素値との差分値の絶対値が所定のオフセット値未満の場合には、3値データの値が“0”とされる。また、周囲画素値と注目画素値との差分値の絶対値がオフセット値以上であって、当該周囲画素値が当該注目画素値よりも大きい場合には、3値データの値は“1”とされる。つまり、周囲画素値が、注目画素値に対してオフセット値を加算して得られる値以上の場合には、3値データの値は“1”とされる。そして、周囲画素値と注目画素値との差分値の絶対値がオフセット値以上であって、当該周囲画素値が当該注目画素値よりも小さい場合には、3値データの値は“−1”とされる。つまり、周囲画素値が、注目画素値からオフセット値だけ減算して得られる値以下の場合には、3値データの値は“−1”とされる。オフセット値は、非特許文献1に記載されているように、例えば“5”に設定される。
このように、周囲画素値と注目画素値との間の大小関係が判定される際にオフセット値が設けられることによって、周囲画素値及び注目画素値の少なくとも一方がノイズの影響を受けたとしても、当該大小関係が誤って判定されることを抑制することができる。
LTPは、複数の周囲画素値について求められた複数の3値データが所定の順で並べられて得られる3値コード(ターナリーコード)である。例えば、左上の周囲画素値の3値データ、真上の周囲画素値の3値データ、右上の周囲画素値の3値データ、右の周囲画素値の3値データ、右下の周囲画素値の3値データ、真下の周囲画素値の3値データ、左下の周囲画素値の3値データ、左の周囲画素値の3値データの順で並べられて得られる3値コードがLTPとされる。
図17は、上述の図12に示されるような注目画素値210と複数の周囲画素値220とが得られた場合における当該複数の周囲画素値220にそれぞれ対応する複数の3値データ270を示す図である。図15の例では、LTPは(−1)01110(−1)(−1)となる。
LTPが評価値として使用される場合には、LTPがそのまま使用されるのではなく、LTPから得られるポジティブLTP及びネガティブLTPのどちらか一方が使用される。
ポジティブLTPとは、LTPに含まれる“1”だけに着目して当該LTPをバイナリコードに変換したものである。具体的には、LTPにおいて“1”以外の値をすべて“0”に変換し、それによって得られたバイナリコードがポジティブLTPとなる。図18は、図17に示されるLTPに対応するポジティブLTPを示す図である。図17に示されるLTP、つまり(−1)01110(−1)(−1)において、“1”以外の値がすべて“0”に変換されると、図18に示されるように、“00111000”というポジティブLTPが得られる。ポジティブLTPを構成する8ビットは、上位から順に、左上の周囲画素値、真上の周囲画素値、右上の周囲画素値、右の周囲画素値、右下の周囲画素値、真下の周囲画素値、左下の周囲画素値、左の周囲画素値にそれぞれ対応している。
上記の説明から理解できるように、ポジティブLTPの各ビットは、当該ビットに対応する周囲画素値と注目画素値との関係を示している。そして、ポジティブLTPの各ビットは、それに対応する周囲画素値が、注目画素値に対してオフセット値だけ加算して得られる値以上であれば“1”を示し、当該値未満であれば“0”を示す。したがって、ポジティブLTPは、注目画素の周囲での、当該注目画素の画素値よりも大きい画素値の様子(分布状況)を示していると言える。よって、ポジティブLTPについても、LBPと同様に、局所的なテクスチャを示していると言える。評価値取得部130は、ポジティブLTPを十進数で表した値を評価値として使用する。図18の例では、バイナリコード“00111000”を十進数で表した値“56”が評価値とされる。以後、ポジティブLTP(正確にはそれを十進数で表した値)を各評価値とする評価値マップを「ポジティブLTPマップ」と呼ぶ。
一方で、ネガティブLTPとは、LTPに含まれる“−1”だけに着目して当該LTPをバイナリコードに変換したものである。具体的には、LTPにおいて“−1”以外の値をすべて“0”に変換するとともに“−1”を“1”に変換し、それによって得られたバイナリコードがネガティブLTPとなる。図19は、図17に示されるLTPに対応するネガティブLTPを示す図である。図17に示されるLTP、つまり(−1)01110(−1)(−1)において、“−1”以外の値がすべて“0”に変換されるとともに“−1”が“1”に変換されると、図19に示されるように、“10000011”というネガティブLTPが得られる。ネガティブLTPを構成する8ビットは、上位から順に、左上の周囲画素値、真上の周囲画素値、右上の周囲画素値、右の周囲画素値、右下の周囲画素値、真下の周囲画素値、左下の周囲画素値、左の周囲画素値にそれぞれ対応している。
上記の説明から理解できるように、ネガティブLTPの各ビットについても、当該ビットに対応する周囲画素値と注目画素値との関係を示している。そして、ネガティブLTPの各ビットは、それに対応する周囲画素値が、注目画素値からオフセット値だけ減算して得られる値以下であれば“1”を示し、当該値よりも大きければ“0”を示す。したがって、ネガティブLTPは、注目画素の周囲での、当該注目画素の画素値よりも小さい画素値の様子(分布状況)を示していると言える。よって、ネガティブLTPについても、LBP及びポジティブLTPと同様に、局所的なテクスチャを示していると言える。評価値取得部130は、ネガティブLTPを十進数で表した値を評価値として使用する。図19の例では、バイナリコード“10000011”を十進数で表した値“131”が評価値とされる。以後、ネガティブLTP(正確にはそれを十進数で表した値)を各評価値とする評価値マップを「ネガティブLTPマップ」と呼ぶ。
図20は図15に示される処理対象画像20に基づいて生成されたポジティブLTPマップでの各評価値を輝度とすることによって、当該ポジティブLTPマップを画像化して得られるグレースケールのポジティブLTPマップ画像40pを示す図である。図21は図15に示される処理対象画像20に基づいて生成されたネガティブLTPマップでの各評価値を輝度とすることによって、当該ネガティブLTPマップを画像化して得られるグレースケールのネガティブLTPマップ画像40nを示す図である。図21に示されるポジティブLTPマップ画像40p及び図21に示されるネガティブLTPマップ画像40nからは、処理対象画像20についてのテクスチャを読み取ることができる。
なお以後、LBP、ネガティブLTP及びポジティブLTPを特に区別する必要がないときにはそれぞれを「テクスチャ表現コード」と呼ぶことがある。
<uniformについて>
上記の通り、本実施の形態では、評価値は、8ビットで表現されることから、0〜255までの256種類の値をとることが可能である。
一方で、後述の説明から理解できるように、枠内画像から抽出される複数の特徴量の数、つまり枠内画像から抽出される特徴ベクトルの次元数は、評価値がとり得る値の種類の数に依存する。したがって、検出部12での処理量を低減するためには、評価値がとり得る値の種類の数を制限することが有効である。
そこで、LBPやLTPを求める際に使用されることがあるuniformという考え方を使用して、評価値がとり得る値の種類の数を制限(低減)することについて検討する。以下に、uniformを使用した、評価値がとり得る値の種類の数の制限について説明する。
まず、LBP等のテクスチャ表現コードを構成する8ビットを順に見ていった際のビット変化(ビット反転)の回数を求める。テクスチャ表現コードを構成する8ビットを順に見ていく方向は、上位から下位に向かう方向で良いし、下位から上位に向かう方向であっても良い。そして、テクスチャ表現コードについて求めたビット変化の回数が2回以下である場合には、当該テクスチャ表現コードはuniformであるとする。一方で、テクスチャ表現コードについて求めたビット変化の回数が2回を越える場合には、つまり3回以上の場合には、当該テクスチャ表現コードはuniformでないとする。
uniformであるとされたテクスチャ表現コードについては、当該テクスチャ表現コードを十進数で表した値が評価値とされる。
一方で、uniformでないとされたテクスチャ表現コードは、ノイズの影響を受けた注目画素値及び周囲画素値に基づいて生成されたもとのとして、評価値として使用されない。uniformでないとされたテクスチャ表現コードは、8ビットの特定のバイナリコードに変換されて、当該特定のバイナリコードを十進数で表した値が評価値とされる。この特定のバイナリコードについては、uniformとされる8ビットのバイナリコード以外の8ビットのバイナリコードであれば、何でも良い。例えば、特定のバイナリコードとしては、“10101010”が採用される。
例えば、テクスチャ表現コードが“01000000”であるとする。“01000000”を例えば上位から順に見ていくと、上位から1ビット目と2ビット目との間で“0”から“1”に変化しており、上位から2ビット目と3ビット目との間で“1”から“0”へ変化している。したがって、ビット変化が2回であるため、“01000000”はuniformとなり、“01000000”を十進数で表した値“64”が評価値とされる。
また、テクスチャ表現コードが“00001111”であるとする。それを上位から順に見ていくと、上位から4ビット目と5ビット目の間で“0”から“1”の変化しており、ビット変化は1回である。したがって、“00001111”はuniformとなり、“00001111”を十進数で表した値“15”が評価値とされる。
また、テクスチャ表現コードが“00110011”であるとする。それを上位から順に見ていくと、上位から2ビット目と3ビット目の間で“0”から“1”に変化し、上位から4ビット目と5ビット目の間で“1”から“0”に変化し、上位から6ビット目と7ビット目の間で“0”から“1”に変化している。したがって、ビット変化は3回であるため、“00110011”はuniformでないとされる。よって、“00110011”は、“10101010”という特定のバイナリコードに変換されて、“10101010”を十進数で表した値“170”が評価値とされる。
また、テクスチャ表現コードが“01010101”であるとする。それを順に見ていくと、ビット変化は7回であるため、“01010101”はuniformでないとされる。よって、“01010101”は、“10101010”という特定のバイナリコードに変換されて、“10101010”を十進数で表した値“170”が評価値とされる。
このように、テクスチャ表現コードを構成する8ビットを順に見ていった際のビット変化の回数が2回を越える場合には、当該テクスチャ表現コードを特定のバイナリコードに変換し、当該特定のバイナリコードを十進数で表した値を評価値とすることによって、評価値がとり得る値の種類は、256種類から59種類に制限される。
本実施の形態に係る評価値取得部130は、特徴ベクトルの次元数を低減するために、uniformを使用して、評価値がとり得る値の種類を59種類に制限する。
なお、説明の便宜上、評価値がとり得る59種類の値に対して0〜58の番号をそれぞれ割り当てる。以後、この番号を使用して本実施の形態を説明することがある。
<画素値補間について>
評価値の精度を向上させるためには、評価値の取得で用いられる複数の周囲画素値については、注目画素からの距離が同じである複数の周囲位置での周囲画素値が用いられる方が望ましい。
一方で、LBPの生成においては、周囲画素値についての注目画素値との比較を、注目画素からどの程度離れた範囲まで行うかを示すパラメータとして、「注目点からの距離」が使用される。注目点からの距離が“1”の場合には、上述のように、8個の周囲画素値が使用されてLBPが求められる。距離1とは、画素間の上下方向及び左右方向の距離を示している。なお、LTPについても同様である。
図22は算出用枠200内での注目画素300と8個の周囲画素310a〜310hとの間での位置関係を示す図である。図22に示されるように、算出用枠200内の9個の画素においては、注目画素300と上下方向あるいは左右方向の周囲画素との間の距離aと、注目画素300と斜め方向の周囲画素との間の距離bとは異なっている。
上述のように、評価値を求める際に使用する8個の周囲画素値として、注目画素300の周囲に存在する8個の周囲画素310a〜310hの画素値を使用すると、注目画素と、周囲画素値が対応する位置との間の距離については、上下方向及び左右方向では“1”となるが、斜め方向では“1”とならない。したがって、この場合には、評価値の取得で用いられる複数の周囲画素値については、注目画素からの距離が同じである複数の周囲位置での周囲画素値とはならない。
したがって、斜め方向の周囲画素値については、斜め方向の周囲画素の画素値を使用するのではなく、注目画素からの距離が“1”である斜め方向の周囲位置400(図22参照)での画素値を使用することが望ましい。
注目画素からの距離が“1”である斜め方向の周囲位置400での画素値については、バイリニア補間処理などの画素値補間処理によって求めることができる。
図23は、注目画素からの距離が“1”である右上方向の周囲位置400での画素値をバイリニア補間処理を用いて求める方法を説明するための図である。図23の例では、注目画素300の画素値、上方向の周囲画素310bの画素値、右上方向の周囲画素310cの画素値、右方向の周囲画素310dの画素値が、それぞれ“57”、“55”、“65”及び“75”となっている。また、周囲画素310cの上方向に存在する画素320aの画素値が“50”であり、周囲画素310cの右方向に存在する画素320bの画素値が“70”となっている。
図23の例において、対象の周囲位置400と画素320aとの間の上下方向の距離と、周囲位置400と周囲画素310dとの間の上下方向の距離との比が、y1:y2であるとすると、以下の式(1)を用いて上下方向の補間値Y0を求める。
また、周囲位置400と周囲画素310bとの間の左右方向の距離と、周囲位置400と画素320bとの間の左右方向の距離との比が、x1:x2であるとすると、以下の式(2)を用いて左右方向の補間値X0を求める。
そして、以下の式(3)を用いて周囲位置400での画素値Z0を求める。
注目画素からの距離が“1”である左上方向の周囲位置での画素値、注目画素からの距離が“1”である左下方向の周囲位置での画素値、注目画素からの距離が“1”である右下方向の周囲位置での画素値についても同様にして求めることができる。
評価値を求める際には、周囲画素値として、注目画素の斜め方向に存在する周囲画素の画素値ではなく、注目画素からの距離が“1”である斜め方向の周囲位置での画素値を使用することによって、より正確な評価値を求めることができる。評価値取得部130は、周囲画素値として、斜め方向の周囲画素の画素値を使用しても良いし、注目画素からの距離が“1”である斜め方向の周囲位置での画素値を使用しても良い。
<特徴量取得部の動作説明>
次に特徴量取得部131の動作について詳細に説明する。特徴量取得部131は、複数種類の検出枠のそれぞれについて、当該検出枠に対応する、評価値取得部130で生成された評価値マップを用いて特徴量を取得する。また特徴量取得部131は、処理対象画像についての特徴量を取得する際には、本来のサイズよりも周囲1画素分だけ小さい抽出用処理対象画像を使用する。また、特徴量取得部131は、サイズ変更画像についての特徴量を取得する際には、本来のサイズよりも周囲1画素分だけ小さい抽出用サイズ変更画像を使用する。以後、特徴量の取得で使用される抽出用処理対象画像及び抽出用サイズ変更画像を総称して「抽出対象画像」と呼ぶことがある。
本実施の形態では、例えば、2種類の特徴量が使用される。具体的には、評価値マップに設定された特徴量抽出枠内での評価値の頻度(度数)が特徴量とされる。つまり、評価値マップに設定された特徴量抽出枠内での、評価値がとり得る59種類の値のそれぞれについての頻度(度数)が特徴量とされる。以後、この特徴量を「第1特徴量」とする。
さらに、本実施の形態では、評価値マップに設定された特徴量抽出枠内での評価値の共起頻度(共起度数)が特徴量とされる。つまり、評価値マップに設定された特徴量抽出枠内における、評価値がとり得る値についての組み合わせの頻度(度数)が特徴量とされる。以後、この特徴量を「第2特徴量」とする。第2特徴量は、評価値の共起性を示していると言える。特徴量取得部131は、枠内画像から取得した第1及び第2特徴量の両方から成る特徴ベクトルを識別器14に入力する。以下に、第1及び第2特徴量の求め方について説明する。
<第1特徴量について>
特徴量取得部131は、上述の図3〜6のようにして、抽出用処理対象画像のある位置に基準検出枠を設定した際には、評価値取得部130で生成された基準用評価値マップに対して、当該ある位置と同じ位置に基準検出枠を設定する。そして、特徴量取得部131は、基準用評価値マップに設定した基準検出枠内での評価値の頻度分布(度数分布)を示す1次元評価値ヒストグラムを生成する。
図24は1次元評価値ヒストグラムの一例を示す図である。図24の横軸は、評価値がとり得る59種類の値に対してそれぞれ割り当てられた0〜58の番号を示している。図24の縦軸は、基準用評価値マップに設定された基準検出枠内の複数の評価値において、横軸に示された番号の値を有する評価値の頻度を示している。本実施の形態では、評価値がとり得る値の種類は59種類であるため、1次元評価値ヒストグラムは59個のビンを有する。
特徴量取得部131は、1次元評価値ヒストグラムを生成すると、当該1次元評価値ヒストグラムにおける59個のビンでの頻度のそれぞれを、抽出用処理対象画像に設定した基準検出枠内の画像についての第1特徴量とする。これにより、抽出用処理対象画像に設定された基準検出枠内の画像から、59個の第1特徴量が抽出される。
特徴量取得部131は、抽出用処理対象画像に対して基準検出枠をラスタスキャンさせていく際に、基準検出枠の各位置において、上記のようにして、基準用評価値マップを用いて基準検出枠内の画像から59個の第1特徴量を取得する。
特徴量取得部131では、非基準検出枠が使用される場合でも、同様にして第1特徴量が取得される。特徴量取得部131は、非基準検出枠に対応する抽出用サイズ変更画像のある位置にサイズ変更検出枠(特徴量抽出枠)を設定した際には、当該非基準検出枠に対応する、評価値取得部130で生成された非基準用評価値マップに対して、当該ある位置と同じ位置に当該サイズ変更検出枠を設定する。そして、特徴量取得部131は、非基準用評価値マップに設定したサイズ変更検出枠内での評価値の頻度分布を示す1次元評価値ヒストグラムを生成する。
特徴量取得部131は、1次元評価値ヒストグラムを生成すると、当該1次元評価値ヒストグラムにおける59個のビンでの頻度のそれぞれを、抽出用サイズ変更画像に設定したサイズ変更検出枠内の画像についての第1特徴量とする。これにより、抽出用サイズ変更画像に設定されたサイズ変更検出枠内の画像から59個の第1特徴量が抽出される。
特徴量取得部131は、抽出用サイズ変更画像に対してサイズ変更検出枠をラスタスキャンさせていく際に、サイズ変更検出枠の各位置において、上記のようにして、非基準用評価値マップを用いてサイズ変更検出枠内の画像から59個の第1特徴量を取得する。特徴量取得部131は、複数種類の非基準検出枠のそれぞれに関して、当該非基準検出枠に対応する抽出用サイズ変更画像に対して当該非基準検出枠に対応するサイズ変更検出枠をラスタスキャンさせながら、当該非基準検出枠に対応する非基準用評価値マップを用いて当該サイズ変更検出枠内の画像から59個の第1特徴量を取得する。
なお、枠内画像から抽出された59個の第1特徴量(1次元評価値ヒストグラムの59個のビンでの頻度)のそれぞれを以下の式(4)を用いて正規化しても良い。第1特徴量を正規化することによって、第1特徴量が、撮像装置5での撮像環境の変化の影響を受けにくくなる。
ここで、vは正規化前の第1特徴量を示しており、Vは正規化後の第1特徴量を示している。また、kは、枠内画像から抽出された複数の第1特徴量の数を示しており、本実施の形態ではk=59である。そして、v(i)は、k個の第1特徴量に対して1番〜k番までをそれぞれ付与した場合における、i番の正規化前の第1特徴量を示している。なお、εは、式(4)の右辺の式において、vが零で除算されないために設けられた定数である。
<第2特徴量について>
特徴量取得部131は、抽出用処理対象画像のある位置に基準検出枠を設定した際には、評価値取得部130で生成された基準用評価値マップに対して、当該ある位置と同じ位置に基準検出枠を設定する。そして、特徴量取得部131は、基準用評価値マップに設定した基準検出枠内での評価値の共起頻度の分布を示す2次元評価値ヒストグラムを生成する。
本実施の形態では、基準用評価値マップに設定した基準検出枠(特徴量抽出枠)内において、所定の相対的な位置関係にある2つの評価値がとり得る値の組み合わせについての頻度分布を示す2次元評価値ヒストグラムが生成される。以後、所定の相対的な位置関係にある2つの評価値のペアを「評価値ペア」と呼ぶ。そして、本実施の形態では、評価値ペアを構成する2つの評価値の間での相対的な位置関係が異なる複数種類(複数組)の評価値ペアのそれぞれについて2次元評価値ヒストグラムが生成される。本実施の形態では、例えば30種類の評価値ペアが使用される。以後、評価値ペアにおいて、一方の評価値を「第1評価値」と呼び、他方の評価値を「第2評価値」と呼ぶ。
図25は30種類の評価値ペアの一例を示す図である。図25では、特徴量抽出枠内での、第1評価値500と第2評価値510の間の相対的な位置関係が示されている。図25では、白丸は第1評価値500を示している。また図25では、黒丸は第2評価値510を示しており、特徴量抽出枠内で位置が互いに異なる30種類の第2評価値510が示されている。
本実施の形態では、図25に示される第1評価値500と、図25に示される1種類の第2評価値510とで、1種類の評価値ペアが形成される。図25では、第2評価値510は30種類存在することから、30種類の評価値ペアが形成される。以後、説明の対象の評価値ペアを「対象評価値ペア」と呼ぶ。
図26〜28は、特徴量取得部131が、基準用評価値マップに設定した基準検出枠100内において、対象評価値ペアがとり得る値の組み合わせについての頻度分布を示す2次元評価値ヒストグラムを生成する際の当該特徴量取得部131の動作を説明するための図である。図26〜28では、対象評価値ペアは、左右方向で互いに隣り合う第1評価値500及び第2評価値510で構成されている。
本実施の形態では、特徴量取得部131は、基準検出枠100において、左上から右下にかけて(ラスタスキャン方向に沿って)順番に評価値を第1評価値500とし、当該第1評価値500とペアとなる第2評価値510と当該第1評価値500の組み合わせを記憶する。そして、特徴量取得部131は、記憶した複数組の組み合わせについての頻度分布を示す2次元評価値ヒストグラムを生成する。以下にこの点について詳細に説明する。
図26に示されるように、まず特徴量取得部131は、基準検出枠100内の左上の評価値を第1評価値500とし、その右隣の評価値を第2評価値510として、第1評価値500と第2評価値510の組み合わせを記憶する。
次に図27に示されるように、特徴量取得部131は、基準検出枠100内の左上から右方向に見て2番目の評価値を第1評価値500とし、その右隣の評価値を第2評価値510として、第1評価値500と第2評価値510の組み合わせを記憶する。
以後、特徴量取得部131は、ラスタスキャン方向に沿って、基準検出枠100内の評価値を順番に第1評価値500とし、当該第1評価値500の右隣の評価値を第2評価値510として、各第1評価値500について、当該第1評価値500と、それとペアとなる第2評価値510の組み合わせを記憶する。図28では、基準検出枠100内の右下から左方向に見て2番目の評価値が第1評価値500とされ、その右隣の評価値が第2評価値510とされている様子が示されている。
なお、特徴量取得部131は、基準検出枠100において、左上から右下にかけて順番に評価値を第1評価値500とし、当該第1評価値500とペアとなる第2評価値510と当該第1評価値500の組み合わせを記憶していく際に、第1評価値500とペアとなる第2評価値510を定めることができないときには、当該第1評価値500と、それとペアとなる第2評価値510との組み合わせは記憶しない。例えば、図26〜28の例では、基準検出枠100内の右下の評価値を第1評価値500とした場合には、それとペアとなる第2評価値510を定めることができないことから、当該第1評価値500と、それとペアとなる第2評価値520との組み合わせは記憶されない。
特徴量取得部131は、第1評価値500と第2評価値510の組み合わせの記憶が終了すると、記憶した複数組の組み合わせに基づいて、対象評価値ペアがとり得る値の組み合わせについての頻度分布を示す2次元評価値ヒストグラムを生成する。
図29は、対象評価値ペアについての2次元評価値ヒストグラムの一例を示す図である。図29のX方向に沿った第1軸は、対象評価値ペアの第1評価値がとり得る59種類の値に対してそれぞれ割り当てられた0〜58の番号が示されている。また図29のY方向に沿った第2軸は、対象評価値ペアの第2評価値がとり得る59種類の値に対してそれぞれ割り当てられた0〜58の番号が示されている。そして図29のZ方向に沿った第3軸は、評価値マップに設定された特徴量抽出枠内における、第1軸に示された番号の値を有する第1評価値と、第2軸に示された番号の値を有する第2評価値との組み合わせの頻度を示している。つまり、図29の第3軸は、対象評価値ペアについて記憶された複数組の組み合わせにおいて、第1軸に示された番号の値を有する第1評価値と、第2軸に示された番号の値を有する第2評価値との組み合わせがいくつ存在しているかを示している。
例えば、対象評価値ペアについて記憶された複数組の組み合わせにおいて、番号0の値を有する第1評価値と、番号2の値を有する第2評価値との組み合わせが8個存在する場合には、第1軸に示される番号0及び第2軸に示される番号2に対応するビンでの頻度が“8”となる。また、対象評価値ペアについて記憶された複数組の組み合わせにおいて、番号2の値を有する第1評価値と、番号1の値を有する第2評価値との組み合わせが3個存在する場合には、第1軸に示される番号2及び第2軸に示される番号1に対応するビンでの頻度が“3”となる。本実施の形態では、2次元評価値ヒストグラムは、3481(=59×59)個のビンを有する。
上述のようにして、特徴量取得部131は、30種類の評価値ペアのそれぞれについて2次元評価値ヒストグラムを生成する。これにより、30個の2次元評価値ヒストグラムが生成される。
特徴量取得部131は、30個の2次元評価値ヒストグラムを生成すると、当該30個の2次元評価値ヒストグラムのそれぞれについて、当該2次元評価ヒストグラムにおける3481個のビンでの頻度のそれぞれを、抽出用処理対象画像に設定した基準検出枠内の画像についての第2特徴量とする。これにより、抽出用処理対象画像に設定された基準検出枠内の画像から、104430(=3481×30)個の第2特徴量が抽出される。
特徴量取得部131は、抽出用処理対象画像に対して基準検出枠をラスタスキャンさせていく際に、基準検出枠の各位置において、上記のようにして、基準用評価値マップを用いて基準検出枠内の画像から104430個の第2特徴量を取得する。
特徴量取得部131では、非基準検出枠が使用される場合でも、同様にして第2特徴量が取得される。特徴量取得部131は、非基準検出枠に対応する抽出用サイズ変更画像のある位置にサイズ変更検出枠を設定した際には、当該非基準検出枠に対応する、評価値取得部130で生成された非基準用評価値マップに対して、当該ある位置と同じ位置に当該サイズ変更検出枠を設定する。そして、特徴量取得部131は、非基準用評価値マップに設定したサイズ変更検出枠内での評価値の共起頻度の分布を示す2次元評価値ヒストグラムを30種類の評価値ペアのそれぞれについて生成する。
特徴量取得部131は、30個の2次元評価値ヒストグラムを生成すると、当該30個の2次元評価値ヒストグラムのそれぞれについて、当該2次元評価値ヒストグラムにおける3481個のビンでの頻度のそれぞれを、抽出用サイズ変更画像に設定したサイズ変更検出枠内の画像についての第2特徴量とする。これにより、抽出用サイズ変更画像に設定されたサイズ変更検出枠内の画像から104430個の第2特徴量が抽出される。
特徴量取得部131は、抽出用サイズ変更画像に対してサイズ変更検出枠をラスタスキャンさせていく際に、サイズ変更検出枠の各位置において、上記のようにして、非基準用評価値マップを用いてサイズ変更検出枠内の画像から104430個の第2特徴量を取得する。特徴量取得部131は、複数種類の非基準検出枠のそれぞれに関して、当該非基準検出枠に対応する抽出用サイズ変更画像に対して当該非基準検出枠に対応するサイズ変更検出枠をラスタスキャンさせながら、当該非基準検出枠に対応する非基準用評価値マップを用いて当該サイズ変更検出枠内の画像から104430個の第2特徴量を取得する。
なお、第1特徴量と同様に、枠内画像から抽出された104430個の第2特徴量(2次元評価値ヒストグラムの104430個のビンでの頻度)のそれぞれを上記の式(4)を用いて正規化しても良い。これにより、第2特徴量が、撮像装置5での撮像環境の変化の影響を受けにくくなる。式(4)を用いて第2特徴量を正規化する場合には、vは正規化前の第2特徴量となり、Vは正規化後の第2特徴量となる。また、kは、枠内画像から抽出された第2特徴量の数となり、k=104430である。そして、v(i)は、k個の第2特徴量に対して1番〜k番までをそれぞれ付与した場合における、i番の正規化前の第2特徴量となる。
<識別器に入力する特徴ベクトルについて>
特徴量取得部131は、枠内画像から、59個の第1特徴量と104430個の第2特徴量を抽出すると、これらの104489(=59+104430)個の特徴量を順番で並べて得られる特徴ベクトルを生成する。特徴ベクトルの次元数は“104489”となる。そして、特徴量取得部131は、生成した特徴ベクトルを識別器14に入力する。識別器14は、上述のように、入力された特徴ベクトルと、重みベクトルとに基づいて、枠内画像が顔画像である確からしさを示す検出確度値を算出する。識別器14で使用される重みベクトルは、上記と同様にして学習サンプルから抽出された59個の第1特徴量及び104430個の第2特徴量から成る特徴ベクトルに基づいて生成されている。
このように、本実施の形態に係る特徴量抽出部13は、枠内画像から、104489個の特徴量から成る特徴ベクトルを取得して識別器14に入力する。
なお、uniformを使用して評価値がとり得る値が制限されない場合には、1次元評価値ヒストグラムでのビンの数は256個となり、2次元評価値ヒストグラムでのビンの数は1966080(=256×256×30)個となる。したがって、この場合の特徴ベクトルの次元数は1966336(=256+1966080)となる。
<出力値マップ生成処理>
出力値マップ生成部15は、検出部12での検出結果に基づいて、顔画像としての確からしさ(顔画像らしさ)を示す検出確度値についての処理対象画像での分布を示す出力値マップを生成する。
具体的には、出力値マップ生成部15は、抽出用処理対象画像と同様に、行方向に(M−2)個の値が並び、列方向に(N−2)個の値が並ぶ、合計((M−2)×(N−2))個の値から成るマップ600を考える。そして、出力値マップ生成部15は、処理対象画像についての一つの検出結果枠を対象検出結果枠とし、対象検出結果枠と同じ位置に、対象検出結果枠と同じ大きさの枠610をマップ600に対して設定する。図30は、マップ600に対して枠610を設定した様子を示す図である。
次に出力値マップ生成部15は、マップ600における、枠610外の各値については“0”とし、枠610内の各値については、対象検出結果枠に対応する検出確度値(対象検出結果枠となった検出枠内の画像に対して顔画像の検出を行った結果得られた検出確度値)を用いて決定する。対象検出結果枠の大きさが、例えば16p×16pであるとすると、枠610内には、行方向に16個、列方向に16個、合計256個の値が存在する。また、対象検出結果枠の大きさが、例えば20p×20pであるとすると、枠610内には、行方向に20個、列方向に20個、合計400個の値が存在する。図31は、枠610内の各値を決定する方法を説明するための図である。
出力値マップ生成部15は、枠610内の中心611の値を、検出部12で求められた、対象検出結果枠に対応する検出確度値とする。そして、出力値マップ生成部15は、枠610内のそれ以外の複数の値を、枠610の中心611の値を最大値とした正規分布曲線に従って枠610内の中心611から外側に向けて値が徐々に小さくなるようにする。これにより、マップ600を構成する複数の値のそれぞれが決定されて、対象検出結果枠に対応するマップ600が完成する。
以上のようにして、出力値マップ生成部15は、処理対象画像についての複数の検出結果枠にそれぞれ対応する複数のマップ600を生成する。そして、出力値マップ生成部15は、生成した複数のマップ600を合成して出力値マップを生成する。
具体的には、出力値マップ生成部15は、生成した複数のマップ600のm×n番目の値を加算し、それによって得られた加算値を出力値マップのm×n番目の検出確度値とする。出力値マップ生成部15は、このようにして、出力値マップを構成する各検出確度値を求める。これにより、処理対象画像での検出確度値の分布を示す出力値マップが完成される。出力値マップは、抽出用処理対象画像と同様に、((M−2)×(N−2))個の検出確度値で構成される。出力値マップを参照すれば、処理対象画像において顔画像らしさが高い領域を特定することができる。つまり、出力値マップを参照することによって、処理対象画像おける顔画像を特定することができる。
図32は、処理対象画像20についての出力値マップを当該処理対象画像20に重ねて示す図である。図32には、評価値マップとしてネガティブLTPマップが使用された際の出力値マップが示されている。図32及び後述の図33では、理解し易いように、検出確度値の大きさを例えば第1段階から第5段階の5段階に分けて出力値マップを示している。図32,33に示される出力値マップにおいては、検出確度値が、最も大きい第5段階に属する領域については砂地のハッチングが示されており、2番目に大きい第4段階に属する領域については左上がりのハッチングが示されている。また、図32,33での出力値マップにおいては、検出確度値が、3番目に大きい第3段階に属する領域については右上がりのハッチングが示されており、4番目に大きい第2段階に属する領域については縦線のハッチングが示されている。そして、図32,33に示される出力値マップにおいては、検出確度値が、最も小さい第1段階に属する領域についてはハッチングが示されていない。
図32に示される出力値マップにおいては、処理対象画像20での顔画像に対応する領域での検出確度値が高くなっている。これは、処理対象画像20に含まれる顔画像が適切に検出されていることを意味する。
図33は、本実施の形態とは異なり、枠内画像から第1特徴量(1次元評価値マップでの各ビンの頻度)だけが抽出され、識別器14には第1特徴量だけから成る特徴ベクトルが入力された際の出力値マップを処理対象画像20に重ねて示す図である。図33では、図32と同様に、評価値マップとしてネガティブLTPマップが使用された際の出力値マップが示されている。
図33に示されるように、第1特徴量だけが使用されて顔検出が行われることによって得られた出力値マップでは、検出確度値が大きくなっている、処理対象画像20での非顔画像に対応する領域が多くなっている。したがって、顔画像を誤検出する可能性が高くなる。
このように、本実施の形態に係る画像検出装置1では、第1特徴量だけが使用されて顔検出が行わる場合と比較して、顔画像についての検出精度が高くなっている。
画像検出装置1は、出力値マップを生成すると、当該出力値マップに基づいて、処理対象画像での顔画像を特定する。具体的には、画像検出装置1は、出力値マップにおいて、検出確度値がしきい値以上である領域を特定し、処理対象画像での当該領域と同じ位置に存在する領域を顔画像であると認定する。そして、画像検出装置1は、処理対象画像を表示装置で表示する際に、当該処理対象画像での顔画像を四角枠等が囲うようにする。
また、画像検出装置1は、予め登録された顔画像と、処理対象画像において特定した顔画像とを比較し、両者が一致するか否かを判定しても良い。そして、画像検出装置1は、予め登録された顔画像と、処理対象画像において特定した顔画像と一致しない場合には、処理対象画像での当該顔画像に対してモザイク処理を行った上で、当該処理対象画像を表示装置に表示しても良い。これにより、本実施の形態に係る画像検出装置1を監視カメラシステムに使用した場合において、監視カメラによって隣家の人の顔画像が撮影された場合であっても、当該顔画像を認識できないようにすることができる。つまり、プライバシーマスクを実現することができる。
以上のように、本実施の形態に係る特徴量抽出装置13(特徴量抽出部13)では、注目画素値と複数の周囲画素値との関係を示す評価値についての共起頻度を特徴量としていることから、顔画像の検出等の画像検出に適切な特徴量を得ることができる。よって、本実施の形態のように、処理対象画像から検出対象画像を検出する画像検出装置1において特徴量抽出装置13を使用し、特徴量抽出装置13において画像から抽出された特徴量に基づいて、当該画像が検出対象画像である可能性が高いかを判定することによって、判定精度を向上することができる。したがって、検出対象画像についての誤検出を抑制することができる。つまり、検出対象画像についての検出精度が向上する。
また、画像の局所的なテクスチャを示すLBP、ネガティブLTPあるいはポジティブLTPに基づく特徴量を使用して顔画像の検出を行うことによって、HOG(Histgrams of Oriented Gradients)特徴量あるいはHaar−like特徴量だけを使用する場合よりも顔画像についての検出精度を向上することができる。
また、本実施の形態では、第2特徴量を使用することによって検出対象画像についての検出精度が向上することから、処理量を低減するために第1及び第2特徴量の正規化を行わず、そのために第1及び第2特徴量が撮像環境の変化の影響を受けやすくなったとしても、検出対象画像についての検出精度を維持することができる。
なお、上記の例では、識別器14に入力される特徴ベクトルには、第1特徴量と第2特徴量の両方が含まれていたが、第1特徴量が含まれていなくても良い。つまり、特徴ベクトルには、少なくとも第2特徴量(評価値の共起頻度)が含まれていれば良い。
また、特徴ベクトルには、LBPマップから取得された第2特徴量、ポジティブLTPマップから取得された第2特徴量、及びネガティブLTPマップから取得された第2特徴量のうちの少なくとも2種類の第2特徴量が含まれても良い。例えば、特徴ベクトルには、LBPマップから取得された第2特徴量、ポジティブLTPマップから取得された第2特徴量、及びネガティブLTPマップから取得された第2特徴量が含まれても良いし、ポジティブLTPマップから取得された第2特徴量及びネガティブLTPマップから取得された第2特徴量が含まれても良い。
また、特徴ベクトルには、HOG特徴量、Haar−like特徴量などの他の種類の特徴量が含まれても良い。
<各種変形例>
以下に本実施の形態についての各種変形例について説明する。
<第1変形例>>
枠内画像から特徴量を抽出する際には、枠内画像を複数のブロックに分割し、各ブロックから個別に特徴量を抽出し、抽出された当該複数のブロックについての特徴量を当該枠内画像についての特徴量としても良い。これにより、枠内画像を構成する複数のブロックのそれぞれについて独立した特徴量を抽出することができる。したがって、顔の一部が隠れている場合であっても、処理対象画像から当該顔についての顔画像を適切に検出することが可能となる。以下に、枠内画像が行列状に4つのブロックに分割される場合を例に挙げて、本変形例について説明する。
特徴量取得部131は、図34に示されるように、抽出対象画像700のある位置に特徴量抽出枠710を設定すると、特徴量抽出枠710内の画像(枠内画像)を行列状に4つの画像ブロック720に分割する。また、特徴量取得部131は、評価値マップ800に対して、抽出対象画像700に設定した特徴量抽出枠710と同じ位置に特徴量抽出枠710を設定すると、特徴量抽出枠710内の領域を行列状に4つの評価値ブロック820に分割する。そして、特徴量取得部131は、4つの評価値ブロック820のそれぞれについて、当該評価値ブロック820に含まれる複数の評価値を用いて、上述のようにして複数の第1特徴量と複数の第2特徴量を求める。第1特徴量の数及び第2特徴量の数は、評価値ブロック820に含まれる複数の評価値の数に依存する。以後、一つの評価値ブロック820について求められた、複数の第1特徴量及び複数の第2特徴量をまとめて「特徴量群」と呼ぶ。
特徴量取得部131は、複数の評価値ブロック820のそれぞれについて、当該評価値ブロック820の特徴量群を求めると、当該特徴量群を、当該評価値ブロック820と同じ位置にある画像ブロック720についての特徴量とする。これにより、枠内画像を構成する4つの画像ブロック720のそれぞれから独立して特徴量が抽出される。特徴量取得部131は、枠内画像を構成する4つの画像ブロック720から特徴量を抽出すると、当該4つの画像ブロック720の特徴量から成るベクトルを当該枠内画像についての特徴ベクトルとして識別器14に入力する。識別器14は、入力された特徴ベクトルと重みベクトルに基づいて、当該枠内画像が顔画像である確からしさを示す検出確度値を算出する。
<第2変形例>
上述のように、評価値の共起頻度を特徴量として使用することによって、検出対象画像についての誤検出を抑制することができることから、処理量を低減するために特徴ベクトルの次元数を低減させたとしても検出対象画像の検出精度を維持することができる。
そこで、本変形例では、評価値取得部130は、評価値を求める際には、注目画素に対する斜め方向の周囲画素値は使用しないようにする。例えば、評価値取得部130は、注目画素に対して右上、左上、右下及び左下の方向の周囲画素値はすべて使用しない。これにより、評価値の取得では、上方向の周囲画素値、下方向の周囲画素値、右方向の周囲画素値及び左方向の周囲画素値だけが使用されることから、評価値は8ビットから4ビットで表現されることになり、評価値の情報量が低減する。したがって、評価値がとり得る値は0〜15の16種類となり、評価値がとり得る値の種類の数が低減する。なお、右上、左上、右下及び左下の方向の周囲画素値のうち少なくとも一つの周囲画素値を評価値の取得で使用しないことによって、評価値がとり得る値の種類の数を低減することができる。
このように、評価値がとり得る値の種類の数が低減することによって、1次元評価値ヒストグラム及び2次元評価値ヒストグラムでのビンの数を低減することができる。よって、特徴量抽出部13での特徴ベクトルの生成処理についての処理量を低減できるとともに、識別器14での処理量を低減することができる。
また、評価値の取得で、斜め方向の周囲画素値が使用されない場合には、注目画素からの距離が“1”である当該斜め方向の周囲位置での画素値を画素値補間処理によって求める必要がないことから、評価値取得部130での処理量がさらに低減する。
また、評価値の取得で、右上、左上、右下及び左下の方向の周囲画素値がすべて使用されない場合には、評価値が4ビットで表現されることから、上記のようにuniformを使用して評価値がとり得る値の種類を制限したとしてもそれほど効果が現れない。よって、この場合には、uniformを使用して評価値がとり得る値の種類を制限しないようにする。つまり、評価値取得部130は、複数のビット(4ビット)で構成されるテクスチャ表現コード(より正確にはそれを十進数で表した値)を、当該複数のビットを順に見ていった際のビット変化の回数にかかわらず、評価値として使用する。これにより、評価値がとり得る値の種類を制限する処理が不要となることから、評価値取得部130での処理量が低減する。
なお、評価値が4ビットで表現され、uniformを使用して評価値がとり得る値の種類が制限されない場合には、1次元評価値ヒストグラムのビンの数は16個となり、2次元評価値ヒストグラムのビンの数は256(=16×16)個となる。したがって、枠内画像から抽出される特徴ベクトルは、7696(=16+256×30)個の特徴量で構成され、7696次元となる。
<第3変形例>
図36に示されるように、昼間など撮像環境が明るい場合には、人の顔における、目などの比較的暗い部分と、周囲との明暗がはっきりとなる。したがって、撮像環境が明るい場合には、注目画素の周囲での、当該注目画素よりも暗い画素の分布状況を示すネガティブLTPで構成されたネガティブLTPマップから取得された特徴量に基づいて顔画像の検出を行うことによって、検出精度を向上させることができる。
一方で、図37に示されるように、夜間など撮像環境が暗い場合には、人の顔における、頬などの比較的明るい部分と、周囲との明暗がはっきりとなる。したがって、撮像環境が暗い場合には、注目画素の周囲での、当該注目画素よりも明るい画素の分布状況を示すポジティブLTPで構成されたポジティブLTPマップから取得された特徴量に基づいて顔画像の検出を行うことによって、検出精度を向上させることができる。
そこで、本変形例に係る画像処理システム50では、画像検出装置1が、撮像装置5での撮像環境が明るい場合には、ネガティブLTPマップを使用して顔画像の検出を行い、撮像装置5での撮像環境が暗い場合には、ポジティブLTPマップを使用して顔画像の検出を行う。以下に、本変形例に係る画像処理システム50について詳細に説明する。
図38は本変形例に係る画像処理システム50の構成を示す図である。図38に示されるように、本変形例に係る画像処理システム50では、撮像装置5に照度センサー5aが設けられている。照度センサー5aは、撮像装置5での撮像環境の照度を検出し、検出した照度を示す検出信号を出力する。
図39は、本変形例に係る画像検出装置1の機能ブロックを示す図である。図39に示されるように、本変形例に係る画像検出装置1は、照度センサー5aから出力される検出信号に基づいて、撮像装置5での撮像環境が明るいか否かを判定する判定部16を備えている。判定部16は、検出部12において処理対象画像についての検出処理が行われる際に、照度センサー5aから出力される検出信号を参照する。そして、判定部16は、当該検出信号が示す照度がしきい値以上であれば撮像環境は明るいと判定し、当該照度が当該しきい値未満であれば撮像環境は暗いと判定する。
本変形例では、特徴量抽出部13は、判定部16において撮像環境が明るいと判定されると、ネガティブLTPマップを生成する。そして、特徴量抽出部13は、生成したネガティブLTPマップを用いて特徴ベクトルを生成して識別器14に入力する。一方で、特徴量抽出部13は、判定部16において撮像環境が暗いと判定されると、ポジティブLTPマップを生成する。そして、特徴量抽出部13は、生成したポジティブLTPマップを用いて特徴ベクトルを生成して識別器14に入力する。
このように、撮像環境が明るいか暗いかによって、使用する評価値マップの種類を切り替えることによって、顔画像についての検出精度がさらに向上する。
<第4変形例>
画素値が輝度であって、画素値が8ビットで表現される際には、LTPの生成で使用されるオフセット値を“8”に設定することによって、顔画像についての検出精度が向上する。以下に、この理由について説明する。
図40は、顔画像サンプルについての隣接画素間の輝度差の頻度分布(度数分布)を示す頻度曲線(度数曲線)900と、非顔画像サンプルについての隣接画素間の輝度差の頻度分布を示す頻度曲線910とを示す図である。図40の横軸は、画素間の輝度差がとり得る値を示している。図40の縦軸は、横軸に示された値を有する輝度差の頻度(度数)を示している。頻度曲線900,910については以下のようにして求められる。
まず、様々な複数枚の顔画像サンプルを用意する。次に、顔画像サンプルを構成する複数の画素のそれぞれについて、当該画素と、それに隣接する3つの画素(真下の画素、右下の画素、右の画素)のそれぞれとの間の輝度差を求める。この輝度差を求める処理を、用意した複数枚の顔画像サンプルのそれぞれについて行う。そして、複数枚の顔画像サンプルについて得られた複数の輝度差についての頻度分布を求める。次に、求めた頻度分布での各頻度を顔画像サンプルの枚数で除算し、1枚の顔画像サンプルについての平均的な頻度分布を生成する。その後、当該頻度分布を示すヒストグラムを生成する。頻度曲線900は、生成したヒストグラムの複数のビンの頂点を曲線で結んだものである。
また、様々な複数枚の非顔画像サンプルを用意する。そして、非顔画像サンプルを構成する複数の画素のそれぞれについて、当該画素と、それに隣接する3つの画素(真下の画素、右下の画素、右の画素)のそれぞれとの間の輝度差を求める。この輝度差を求める処理を、用意した複数枚の非顔画像サンプルのそれぞれについて行う。そして、複数枚の非顔画像サンプルについて得られた複数の輝度差についての頻度分布を求める。次に、求めた頻度分布での各頻度を非顔画像サンプルの枚数で除算し、1枚の非顔画像サンプルについての平均的な頻度分布を生成する。その後、当該頻度分布を示すヒストグラムを生成する。頻度曲線910は、生成したヒストグラムの複数のビンの頂点を曲線で結んだものである。
図40に示されるように、非顔画像サンプルについての隣接画素間の輝度差の頻度分布を示す頻度曲線910は、全体的に正規分布曲線に近い形を成している。これは、非顔画像については、隣接画素間の輝度差に何ら特徴が見られないからであり、輝度差が2〜3あたりでピークとなっているのはノイズの影響である。
一方で、顔画像サンプルについての隣接画素間の輝度差の頻度分布を示す頻度曲線900は、輝度差が8未満の部分では、正規分布曲線に近い形となって頻度曲線910と相似形となっているが、輝度差が8以上の部分では、正規分布曲線からくずれており、頻度曲線910とは相似形ではない。顔画像については、隣接画素間の輝度差に特徴が見られるため、頻度曲線900については本来的には正規分布曲線とはならないが、ノイズの影響により、輝度差が8未満の部分では正規分布曲線に近い形となっているものと思われる。
ここで、仮に頻度曲線900,910がともに正規分布曲線であれば、頻度曲線900,910は互いに交差することはない。しかしながら、図40に示されるように、頻度曲線900,910は輝度差8で交差していることから、輝度差が8以上において、顔画像の特徴が現れて、頻度曲線910の形が正規分布曲線からくずれていると見ることができる。
このように、顔画像サンプルについての頻度曲線900と、非顔画像サンプルについての頻度曲線910とを比較すると、隣接画素間の輝度差が8以上となれば、両者は非相似形となっている。このことから、隣接画素間の輝度差が8以上の場合に、ノイズの影響が小さくなって、顔画像の特徴が現れると考えることができる。
そこで、ネガティブLTPマップあるいはポジティブLTPマップを使用して特徴量を抽出する際には、LTPを生成する際のオフセット値を“8”に設定する。これにより、ネガティブLTPあるいはポジティブLTPは、顔画像の特徴を適切に表すことができ、ネガティブLTPマップあるいはポジティブLTPマップを使用して抽出された特徴量に基づいて顔画像の識別を行うことによって、顔画像についての検出精度が向上する。
上記において画像処理システム50は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種の例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。