(57)【要約】【課題】少ない記憶容量で物体の認識処理を実現するために好適な特徴量を抽出することが可能な画像処理装置を提供する。【解決手段】入力画像から特徴画像を生成する特徴画像生成部と、生成した特徴画像から所定の特徴点の画素の画素値を抽出する画素値抽出部と、抽出した特徴点の画素の画素値と所定のビットマスクとによって画素値の一部のビットを選択し物体の認識処理に用いる特徴量を符号化する特徴符号化部とを有し、特徴点の画素の画素値からビットマスクにより物体識別の能力の高いビットを選択して特徴量とし、弱判別処理を行うルックアップテーブルのサイズを削減する。【選択図】図３
2015225469.tif 000002
【特許請求の範囲】
【請求項１】
入力される画像から物体の認識処理に用いる特徴量を抽出する画像処理装置であって、
入力される前記画像から特徴画像を生成する特徴画像生成手段と、
前記特徴画像生成手段で生成した特徴画像から所定の特徴点の画素の画素値を抽出する画素値抽出手段と、
前記画素値抽出手段で抽出した特徴点の画素の画素値と所定のビットマスクとによって、当該画素値の一部のビットを選択して前記特徴量を符号化する特徴符号化手段とを有することを特徴とする画像処理装置。
【請求項２】
前記特徴符号化手段は、前記特徴点の画素の画素値と前記ビットマスクとからインデックスを生成してルックアップテーブルを参照し、前記ルックアップテーブルを参照して得られた値を基に前記特徴量を符号化することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記特徴符号化手段は、前記画素値抽出手段で抽出した特徴点の画素の画素値から前記ビットマスクに基づいて一部のビットの値を取得し、取得した前記一部のビットの値を連結して前記特徴量を符号化することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記ビットマスクは、Ｎビットの第１のビットマスクとＮビットの第２のビットマスクからなる２Ｎビットのビット配列であり、
前記特徴符号化手段は、前記特徴点の画素の画素値の第１のＮビットと前記第１のビットマスクとを連結して２Ｎビットの第１のバイナリコードを生成し、ルックアップテーブルを参照して前記第１のバイナリコードをＮビットのバイナリコードに変換するとともに、前記特徴点の画素の画素値の第２のＮビットと前記第２のビットマスクとを連結して２Ｎビットの第２のバイナリコードを生成し、ルックアップテーブルを参照して前記第２のバイナリコードをＮビットのバイナリコードに変換し、前記第１のバイナリコード及び前記第２のバイナリコードをそれぞれ変換して得られたバイナリコードを論理和演算してＮビットの前記特徴量に符号化することを特徴とする請求項２記載の画像処理装置。
【請求項５】
前記画素値抽出手段は複数の特徴点の画素の画素値を抽出し、
前記特徴符号化手段は、抽出した第１の特徴点の画素の画素値の第１のＮビットと前記第１のビットマスクとを連結して２Ｎビットの前記第１のバイナリコードを生成するとともに、抽出した第２の特徴点の画素の画素値の第２のＮビットと前記第２のビットマスクとを連結して２Ｎビットの前記第２のバイナリコードを生成することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記特徴画像生成手段が生成する特徴画像は、入力された前記画像から取得した対象画素の画素値と当該対象画素の近傍の画素の画素値との比較結果に基づく論理値の組み合わせを当該対象画素の画素値とすることを特徴とする請求項１〜５の何れか１項に記載の画像処理装置。
【請求項７】
前記ビットマスクは、認識対象とする物体を含む学習サンプルと認識対象とする物体を含まない学習サンプルとを用いた機械学習によって取得することを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項８】
入力される画像から物体の認識処理に用いる特徴量を抽出する画像処理方法であって、
入力される前記画像から特徴画像を生成する工程と、
生成した前記特徴画像から所定の特徴点の画素の画素値を抽出する工程と、
抽出した前記特徴点の画素の画素値と所定のビットマスクとによって、当該画素値の一部のビットを選択して前記特徴量を符号化する工程とを有することを特徴とする画像処理方法。
【請求項９】
入力される画像から物体の認識処理に用いる特徴量を抽出する画像処理方法をコンピュータに実行させるためのプログラムであって、
入力される前記画像から特徴画像を生成するステップと、
生成した前記特徴画像から所定の特徴点の画素の画素値を抽出するステップと、
抽出した前記特徴点の画素の画素値と所定のビットマスクとによって、当該画素値の一部のビットを選択して前記特徴量を符号化するステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
現在、画像から物体を検出する方法は機械学習に基づくものが主流になっている。アダブースト学習に基づいた物体検出方法は、検出精度や処理速度の面で優れており、注目されている。アダブースト学習に基づいた物体検出装置は、複数の強判別器を含み、それぞれの強判別器は複数の弱判別器を有する。それぞれの弱判別器は、特徴量を抽出する特徴抽出ユニット、及びルックアップテーブル（ＬＵＴ：Lookup Table）を参照して弱判別処理を行う弱判別ユニットを有する。
【０００３】
アダブースト学習に基づいた物体検出装置において、識別に適した特徴量は予め用意した特徴量から選択されて弱判別器を構成する。物体を高速に検出するためには、例えば特徴量の計算コストは低くし、強判別器は少ない弱判別器で構成することが要求される。また、物体検出装置をハードウェアチップに組み込む場合には、例えば必要な記憶容量を削減するためにルックアップテーブルのサイズは小さくして、回路の規模を削減することが要求される。このような要求を鑑みると、特徴量を設計するキーポイントは、特徴量の識別性能、特徴量の算出の高速性、小サイズのルックアップテーブルの生成である。
【０００４】
非特許文献１には、ＬＡＢ（Locally Assembled Binary）特徴量の画像を事前に計算しておき、カスケード型の高速な顔検出装置を実現する技術が記載されている。検出の過程において、弱判別器の特徴量は事前に計算した特徴画像の画素をアクセスすることで得られ非常に高速である。しかし、ＬＡＢ特徴量は２５６通りもの値を持つため、それぞれの弱判別器のルックアップテーブルにも２５６個のエントリーが必要となってしまう。この大きな記憶容量は、ハードウェアチップへの組み込みを困難とさせる原因となる。
【０００５】
また、非特許文献２には、物体検出にＵｎｉｆｏｒｍ  ＬＢＰ（Local Binary Pattern、ローカルバイナリパターン）と非冗長ＬＢＰを採用して記憶容量を削減する技術が記載されている。環状２値表現において０→１又は１→０に変化した回数が２回以下のＬＢＰをＵｎｉｆｏｒｍ  ＬＢＰと定義し、Ｕｎｉｆｏｒｍ  ＬＢＰ以外のＬＢＰはｎｏｎ−ｕｎｉｆｏｒｍ  ＬＢＰと呼ばれ、１つのパターンにマージする。これによりＵｎｉｆｏｒｍ  ＬＢＰは、参照テーブルを５９エントリーに削減している。非冗長ＬＢＰは、Ｕｎｉｆｏｒｍ  ＬＢＰのパターンをさらにマージすることにより、参照テーブルを３０エントリーに削減している。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】S. Yan, S. Shan, X. Chen, and W. Gao, "Locally Assembled Binary (LAB) feature with feature-centric cascade for fast and accurate face detection", Proceedings of CVPR. 2008.
【非特許文献２】D.T. Nguyen, Z. Zong, P. Ogunbona, and W. Li, "Object detection using Non-Redundant Local Binary Patterns", Proceedings of ICIP. 2010
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記非特許文献２に記載の技術では、これらの特徴量の識別性能がオリジナルＬＢＰより低下するといった問題がある。このことは、強判別器の構成に、より多くの弱判別器が必要となることを意味する。主に弱判別器の数とルックアップテーブルのエントリーサイズとによって要求される記憶容量が変動するため、より少ない弱判別器を生成する特徴量と小さい参照テーブルが必要不可欠である。本発明の目的は、少ない記憶容量で物体の認識処理を実現するために好適な特徴量を抽出することが可能な画像処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、入力される画像から物体の認識処理に用いる特徴量を抽出する画像処理装置であって、入力される前記画像から特徴画像を生成する特徴画像生成手段と、前記特徴画像生成手段で生成した特徴画像から所定の特徴点の画素の画素値を抽出する画素値抽出手段と、前記画素値抽出手段で抽出した特徴点の画素の画素値と所定のビットマスクとによって、当該画素値の一部のビットを選択して前記特徴量を符号化する特徴符号化手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、所定の特徴点の画素の画素値から所定のビットマスクにより物体識別の能力の高いビットを選択して特徴量とするので、弱判別処理を行うルックアップテーブルのサイズを削減でき、少ない記憶容量での物体の認識処理の実現が可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る画像処理装置を含む物体検出装置の構成例を示す図である。
【図２】本実施形態における物体検出装置の処理の流れを示す図である。
【図３】本実施形態における特徴抽出部の構成例を示す図である。
【図４】本実施形態におけるＬＢＰ特徴抽出処理の例を示す図である。
【図５】本実施形態における特徴点の選択方法を説明するための図である。
【図６】本実施形態における特徴量の符号化処理を説明するための図である。
【図７】本実施形態におけるルックアップテーブルを用いた特徴量の符号化処理を説明するための図である。
【図８】本実施形態におけるルックアップテーブルを用いた特徴量の符号化処理を説明するための図である。
【図９】本実施形態における特徴量の符号化処理のバリエーションを説明するための図である。
【図１０】本実施例における画像処理装置を実現可能なコンピュータの構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面に基づいて説明する。
【００１２】
図１は、本発明の一実施形態に係る画像処理装置を含む物体検出装置の構成例を示す図である。図２は、本実施形態における物体検出装置の処理の流れを示す図である。図１に示すように、本実施形態における物体検出装置１００は、画像入力部１０１、部分領域画像抽出部１０２、本実施形態に係る画像処理装置を含む特徴抽出部１０３、物体判別部１０４、認識結果統合部１０５、及び物体モデル１０６を有する。
【００１３】
以下、図２に示すフローチャートを用いて、本実施形態における物体検出装置１００の処理の流れを説明する。本実施形態において、部分領域画像は物体検出ウィンドウ画像である。ステップＳ１０１にて、画像入力部１０１は、不図示の画像撮影装置や画像記憶装置等から１つのフレーム画像を取得する。
【００１４】
ステップＳ１０２にて、部分領域画像抽出部１０２は、ステップＳ１０１において取得したフレーム画像について所定の倍率で繰り返し縮小処理を行い、複数のサイズの画像を作成する。部分領域画像抽出部１０２は、作成した複数のサイズ（解像度）の画像の各画像について、物体モデル１０６の判別器に対応した領域サイズで、所定のステップ幅でスキャンを行い、物体検出ウィンドウ画像を作成する。そして、作成したすべての部分領域画像（物体検出ウィンドウ画像）について、ステップＳ１０３〜Ｓ１０８の物体の認識処理が行われる。
【００１５】
ステップＳ１０３にて、特徴抽出部１０３及び物体判別部１０４は、物体モデル１０６を読み込む。物体モデル１０６は、現在の物体検出ウィンドウ画像に認識対象の物体が含まれるか否かを判断するために、カスケード化した各弱判別器に利用する特徴量の情報、弱判別器の出力値を参照するルックアップテーブル、及び判別の閾値を少なくとも保持している。なお、本実施形態では、１つの弱判別器毎に現在の物体検出ウィンドウ画像に認識対象の物体が含まれているか否かを判断するように閾値を持つ構成としている。
【００１６】
ステップＳ１０４にて、物体モデル１０６を構成するすべての弱判別器について、ステップＳ１０５〜Ｓ１０７の処理を行ったかどうかを判断する。ステップＳ１０５にて、特徴抽出部１０３は、物体モデル１０６に記憶されている現在の弱判別器の特徴量の情報に基づいて、現在の物体検出ウィンドウ画像の特徴量の値を計算する。ステップＳ１０６にて、物体判別部１０４は、ステップＳ１０５において算出された特徴量の値に基づいて、現在の弱判別器のルックアップテーブルを参照して弱判別処理を行い、現在の物体検出ウィンドウ画像に認識対象の物体が含まれているか否かを判定する。
【００１７】
ステップＳ１０７にて、物体判別部１０４は、ステップＳ１０６での判定結果に基づいて、処理フローを制御する。現在の物体検出ウィンドウ画像に認識対象の物体が含まれていると判定した場合には、ステップＳ１０５に移り、次の弱判別器でステップＳ１０５〜Ｓ１０７の処理を行う。一方、現在の物体検出ウィンドウ画像に認識対象の物体が含まれていないと判定した場合には、ステップＳ１０５〜ステップＳ１０７の処理を中断して、ステップＳ１０９に移り、次の物体検出ウィンドウ画像の処理に移る。
【００１８】
ステップＳ１０９にて、ステップＳ１０３〜Ｓ１０８の認識処理を、すべての物体検出ウィンドウ画像に適用したかどうかを判定する。適用していない物体検出ウィンドウ画像がある場合には、ステップＳ１０３に戻って次の物体検出ウィンドウ画像を処理し、すべての物体検出ウィンドウ画像に適用した場合には、終了処理を行う。ステップＳ１１０にて、認識結果統合部１０５は、認識対象の物体が含まれていると識別した物体検出ウィンドウ画像のうち、互いに重複するウィンドウ画像を判定して１つに統合する。ステップＳ１１１にて、認識結果統合部１０５は、統合した結果を出力する。
【００１９】
図３は、本実施形態における特徴抽出部１０３の構成例を示す図である。図３に示すように、特徴抽出部１０３は、特徴画像を生成する特徴画像生成部２０１、生成した特徴画像から特徴点の画素値を抽出する画素値抽出部２０２、及び抽出した画素値とビットマスクとから特徴量を符号化する特徴符号化部２０３を有する。ここで、特徴点の位置やビットマスクは、物体モデル１０６に記憶されており、特徴抽出処理を行う際に特徴抽出部１０３に読み込まれる。
【００２０】
特徴画像生成部２０１は、入力される画像から１つ又は複数の特徴画像を生成する。特徴画像の各画素は、論理値の組み合わせである。例えば、特徴画像はＬＢＰ（Local Binary Pattern、ローカルバイナリパターン）画像であり、非特許文献２に開示されている方法によって入力画像の各画素に対するＬＢＰ特徴が抽出される。
【００２１】
図４は、ＬＢＰ特徴抽出処理の例を示す図である。図４（Ａ）に示すように、対象画素（図示の例では画素値５４の中央画素）のＬＢＰコードは、対象画素の画素値と近傍の画素の画素値（図示の例では隣接する画素の画素値）とを比較することによって得られる。すなわち、近傍の画素に関して、近傍の画素の画素値が対象画素の画素値以上である場合には“１”、その他の場合（近傍の画素の画素値が対象画素の画素値未満の場合）には“０”としてラベル付けする。ラベル付けした“０”又は“１”の結果は、左上の近傍画素との比較結果から始めて時計回りで符号化される。図４（Ａ）に示した例では、対象画素のＬＢＰは“１１００００１１”（１０進数の１９５）となる。最上位ビット（１ビット目）が左上の近傍画素に対応する。
【００２２】
異なる解像度でのテクスチャに対応するために、ＬＢＰ特徴抽出処理は異なる距離の画素との比較を利用するように拡張可能である。図４（Ｂ）に示すように、ＬＢＰ（８，１）は、対象画素に対して距離が１である８つの近傍画素との比較を行う。また、図４（Ｃ）に示すように、ＬＢＰ（８，２）は、対象画素に対して距離が２である８つの近傍画素との比較を行う。ＬＢＰ（８，１）とＬＢＰ（８，２）の処理を行うことによって異なるスケールの２つのＬＢＰ画像を生成できる。
【００２３】
ここで本実施形態において、特徴画像はＬＢＰ画像に制限されるものではない。ＬＢＰに代表される論理値（論理コード）を生成する他の処理でもよい。例えば、論理コードは、輝度画像の異なる方向の勾配強度を比較して生成することができる。まず、入力画像の各画素（ｘ，ｙ）に対して、以下のように勾配強度を算出する。
【００２４】
【数１】
2015225469.tif 000003
【００２５】
ここで、ｄｘ（ｘ，ｙ）及びｄｙ（ｘ，ｙ）は、それぞれｘ方向及びｙ方向の勾配強度であり、Ｉ（ｘ，ｙ）は入力画像の位置（ｘ，ｙ）における輝度値を表す。
そして、方向別の勾配強度は、以下のように算出する。
【００２６】
【数２】
2015225469.tif 000004
【００２７】
但し、θk＝ｋ×π／８（ｋ＝０，１，…，７）であり、８方向の角度毎に勾配強度を算出する。算出した各勾配強度画像は２×２、３×３、又は４×４のサイズのボックス形フィルタを適用してぼかしてもよい。
前述のようにして算出された勾配強度画像（又はぼかした勾配強度画像）から以下のようにして特徴画像を生成する。すなわち、以下に示すように各方向の勾配強度の値を、全方向の勾配強度の平均値ｇavg（ｘ，ｙ）と比較して“０”又は“１”の論理値を得る。
【００２８】
【数３】
2015225469.tif 000005
【００２９】
最後に、ｋ＝０，１，…，７の全方向の論理値が連結されて特徴画像の画素値を形成する。
【００３０】
画素値抽出部２０２は、特徴画像生成部２０１で生成した特徴画像から予め定めた特徴点の画素の画素値を抽出する。特徴点は、特徴画像の１つの画素、又は同じ特徴画像の複数の画素、又は異なる特徴画像の複数の画素に対応する。図５（Ａ）〜図５（Ｃ）にその例を示す。図５（Ａ）は、１つの特徴画像の１つの画素５０１を特徴点とする例を示している。図５（Ｂ）は、同じ特徴画像（１つの特徴画像）の２つの画素５０２、５０３を特徴点とする例を示している。図５（Ｃ）は、異なる特徴画像Ｉ1、Ｉ2の２つの画素５０４、５０５を特徴点とする例を示している。
【００３１】
特徴符号化部２０３は、画素値抽出部２０２で抽出した画素値と予め定められたビットマスクとから特徴量を符号化する。ビットマスクは、特徴点の位置とビットマスクの組み合わせのうち、予め行われた機械学習によって学習サンプルに対して識別性能の高いものが選択されている。図６は、特徴量の符号化処理の例を示す図である。図６（Ａ）には、１つの画素の画素値とビットマスクから特徴量を符号化する例を示している。この例では、画素値は８ビットの値“１０１００１１０”であり、ビットマスクは８ビットの値“１０１１００１０”である。ビットマスクにおいて各“１”の値は画素値の対応するビットが符号化処理において選択されることを表す。この例では、ビットマスクのうち“１”の位置は、上位側から１番目、３番目、４番目、７番目であるので、画素値の上位側から１番目、３番目、４番目、７番目のビットが選択される。そして、選択されたビットの値１，１，０，１を４ビットコード“１１０１”（１０進数の１３に対応）に連結する。
【００３２】
図６（Ｂ）には、２つの画素の画素値とビットマスクから特徴量を符号化する例を示している。この例では、８ビットのビットマスクは、上位側４ビットの第１のビットマスクと下位側４ビットの第２のビットマスクとの２つの部分に分かれる。第１の４ビットマスクは、画素Ａの第１の４ビット（上位側４ビット）からビットを選択し、第２の４ビットマスクは、画素Ｂの第２の４ビット（下位側４ビット）からビットを選択する。図６（Ｂ）に示す例では、画素Ａの画素値の上位側から１番目、３番目、４番目のビットと画素Ｂの画素値の上位側から７番目のビットが選択される。選択されたビットの値は４ビットコード“１１００”（１０進数の１２に対応）に連結される。
【００３３】
図６（Ａ）及び図６（Ｂ）に示した例では、符号化処理においてビットマスクの各ビットをビット毎に繰り返し評価する必要がある。すなわち、ビットマスクにおいて値が“１”なら対応する画素のビットを選択し、そうでなければ選択しない、という処理の繰り返しが必要となり、ビットマスクが８ビットの場合には８回の評価が必要である。
【００３４】
前述した特徴量の符号化処理は、例えば以下に説明するようにルックアップテーブルを用いることで高速化することが可能である。図７を参照して、ルックアップテーブルを使用して１画素の特徴量を符号化する例について説明する。まず、画素値とビットマスクとを２つのグループに分割する。画素値の上位４ビットとビットマスクの上位４ビットとを第１のグループ７０１Ａとし、画素値の下位４ビットとビットマスクの下位４ビットとを第２のグループ７０１Ｂとする。
【００３５】
それぞれのグループで、ビットマスクの４ビットを上位側ビット、画素値の４ビットを下位側ビットとした８ビットのバイナリコードに連結される。例えば、第１のグループは第１のバイナリコード７０２Ａ：“１０１１１０１０”、第２のグループは第２のバイナリコード７０２Ｂ：“００１００１１０”を得る。そして、得られた８ビットのバイナリコードをインデックスとして用いてルックアップテーブルを参照し、それぞれ４ビットのコードに変換する。すなわち、８ビットの第１のバイナリコード７０２Ａ：“１０１１１０１０”を４ビットのバイナリコード７０３Ａ：“１１００”に変換する。また、８ビットの第２のバイナリコード７０２Ｂ：“００１００１１０”を４ビットのバイナリコード７０２Ｂ：“０００１”に変換する。最後に、２つの４ビットのバイナリコードを論理和演算（ＯＲ論理演算）によって結合し、特徴量の値７０４“１１０１”を得る。
【００３６】
２画素の特徴量を符号化する場合においても同様の符号化処理を行う。図８に示すように、特徴量は２つの画素を含む。画素Ａの上位４ビットとビットマスクの上位４ビットとが抽出され、第１のグループ８０１Ａにグループ化される。また、画素Ｂの下位４ビットとビットマスクの下位４ビットが抽出され、第２のグループ８０１Ｂにグループ化される。そして、それぞれのグループで、ビットマスクの４ビットを上位側ビット、画素値の４ビットを下位側ビットとした８ビットのバイナリコード８０２Ａ、８０２Ｂに連結される。続いて、得られた８ビットのバイナリコード８０２Ａ、８０２Ｂをインデックスとして用いてルックアップテーブルを参照し、それぞれ４ビットのバイナリコード８０３Ａ、８０３Ｂに変換する。さらに、４ビットのバイナリコード８０３Ａ、８０３Ｂを論理和演算（ＯＲ論理演算）によって結合して、特徴量の値８０４を得る。
【００３７】
ここで、図７及び図８に示した、第１のグループで参照されるルックアップテーブルＬＵＴ  Ａと、第２のグループで参照されるルックアップテーブルＬＵＴ  Ｂは、事前に計算された４ビットの値を有する。各ルックアップテーブルは、インデックスとして用いる８ビットのバイナリコードに対応した２５６個のエントリーを有する。例えば、第１のグループで参照されるルックアップテーブルＬＵＴ  Ａ、及び第２のグループで参照されるルックアップテーブルＬＵＴ  Ｂは、それぞれ以下のようなテーブルを有する。
【００３８】
ＬＵＴ  Ａ：
００００  ００００  →  ００００
００００  ０００１  →  ００００
・・・
１１１０  １０１０  →  １０１０
・・・
【００３９】
ＬＵＴ  Ｂ：
００００  ００００  →  ００００
００００  ０００１  →  ００００
・・・
１１１０  １０１０  →  ０１０１
・・・
【００４０】
以上説明したように本実施形態では、ＬＢＰのような８ビットで表現される特徴であったとしても、物体識別には８ビットの一部のみが有効であることを利用している。すなわち、すべてのビットを使う代わりに物体識別に強いビットのみを選択することで、弱判別処理を行うルックアップテーブルのサイズを削減することができ、必要な記憶容量を削減することができる。さらに、特徴画像の複数の画素から物体識別に有効なビットを選択して特徴量を形成できる。そのような特徴量は、ＬＢＰのような単独の特徴量よりも識別性能の高いジョイント特徴量である。このジョイント特徴量によって、より少ない数の弱判別器で強判別器を構成でき、回路面積を削減することができる。
【００４１】
以下に特徴点とビットマスクの学習方法について説明する。この学習方法は機械学習の１つであるアダブースト学習に基づく。まず、事前に正及び負の学習サンプルを用意する。正の学習サンプルは、認識対象とする物体を含む画像であり、負の学習サンプルは、認識対象とする物体を含まない画像である。例えば、人物の顔を検出する顔検出装置に使用する物体モデルの特徴量の情報を学習する場合には、正の学習サンプルとして顔画像を、負の学習サンプルとして非顔画像を用意する。そして、これらの正及び負の学習サンプルから特徴画像を１つ又は複数生成しておく。特徴画像は、例えば前述したＬＢＰ画像である。
【００４２】
学習のための特徴量のデータベースには、予め特徴画像中の特徴点の位置とビットマスクとの組み合わせを設定しておく。ここで、特徴点の位置は、単独（前述した１画素特徴に対応）又は複数（前述した２画素特徴に対応）を設定しておく。また、ビットマスクは８ビットから４ビットを選択するように（８ビットのうちの４ビットの値を“１”とするように）設定しておく。
【００４３】
正及び負の学習サンプルに対して最も識別性能の高い特徴、すなわち特徴画像中の特徴点の位置とビットマスクの組み合わせが弱判別器として選択される。そして、選択した特徴点の画素とビットマスクの組み合わせから符号化されるバイナリコードの正及び負サンプルの統計からルックアップテーブルが生成される。ここで生成されるルックアップテーブルは４ビットのバイナリコードに対応する１６エントリーの小サイズのルックアップテーブルである。また、判別の閾値を所定の基準に基づいて決定する。
【００４４】
そして、アダブースト学習アルゴリズムに従って、正及び負の学習サンプルの重みが識別結果によって更新され、弱判別器の選択処理が所定回数繰り返される。選択された弱判別器はカスケード化した物体判別器を構成し、物体モデル１０６に記憶され、検出処理において、ある位置での物体の存在の決定に使われる。ここで学習した物体モデル１０６は複数の弱判別器を含み、各弱判別器は特徴量表現、ルックアップテーブル、閾値を含むデータ構造を保持する。そして、各特徴量表現は１つ又は２つの特徴点の位置とビットマスクを含む。各特徴点位置は（Ｉ，ｘ，ｙ）で示され、Ｉは特徴画像のインデックス、（ｘ，ｙ）は特徴画像の座標である。
【００４５】
以上の説明においては、特徴画像の１つ又は２つの画素から識別性能の高い４つのビットをビットマスクを用いて取得し、４ビットのバイナリコードを画像特徴量として取得している。ここで取得するバイナリコードのビット数は、より一般的にＮビットとしても成り立つ。このとき、ビットマスクは、Ｎビットの第１のビットマスクとＮビットの第２のビットマスクからなる２Ｎビットのビット配列とすれば良い。そして、特徴点の画素の画素値の第１のＮビットと第１のビットマスクとを連結し、特徴点の画素の画素値の第２のＮビットと第２のビットマスクとを連結して、Ｎビットのバイナリコードを取得するようにすれば良い。Ｎの値が小さければ小さい程、本発明の効果は大きい。また、特徴画像の３つ以上の画素からバイナリコードを取得するようにしてもよい。
【００４６】
また、以上の説明においては、複数の特徴点の画素値について、同じビットマスクの異なるビットを利用して物体識別に強いビットのみを選択し連結する。図９に示すように、複数の特徴点の画素値について、異なるビットマスクを利用して、物体識別に強いビットのみを選択し連結することも可能である。図に示すように、画素値Ａは、ビットマスクＡと対応し、第１ビットと第３ビットが符号化処理において選択される。一方、画素値Ｂは、ビットマスクＢと対応し、第３ビットと第７ビットが符号化処理において選択される。最後に、選択されたそれぞれのビットの値は４ビットコード“１１１０”（１０進数の１４に対応）に連結される。異なるビットマスクを利用することにより、識別性能の高いビットを自由にジョイントできるようになる。
【００４７】
以上の実施形態では、物体検出を例として説明したが、物体検出の他に、本実施形態における画像処理装置は、例えば、顔認識の特徴量を抽出する画像処理装置としても利用できる。入力顔画像に対して特徴量が抽出され、同じ特徴量の値を示す特徴を積算してヒストグラム特徴を形成する。そして、ヒストグラム特徴はデータベースにストアされた特徴量と比較され、入力顔画像が照合される。
【００４８】
図１０は、本実施形態における画像処理装置を実現可能なコンピュータの構成例を示すブロック図である。図１０において、９０１はＣＰＵであり、本実施形態の画像処理装置における各種制御を実行する。９０２はＲＯＭであり、本装置の立ち上げ時に実行されるブートプログラムや各種データを格納する。９０３はＲＡＭであり、ＣＰＵ９０１が処理するための制御プログラムを格納するとともに、ＣＰＵ９０１が各種制御を実行する際の作業領域を提供する。９０４はキーボード、９０５はマウスであり、ユーザによる各種入力操作環境を提供する。
【００４９】
９０６は外部記憶装置であり、ハードディスクやフレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、磁気テープ等で構成される。ただし、外部記憶装置９０６は、制御プログラムや各種データをすべてＲＯＭ９０２に持つようにすれば、必ずしも必要な構成要素ではない。９０７は表示器であり、ディスプレイ等で構成され、結果等をユーザに対して表示する。９０８はネットワークインターフェースである。９０９はビデオインターフェースであり、図示しない画像撮影装置や画像記憶装置等とケーブル等を介したフレーム画像の取り込みを可能とする。また、９１１は前記の各構成を接続するバスである。
【００５０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００５１】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５２】
１００：物体検出装置  １０２：部分領域画像抽出部  １０３：特徴抽出部  １０４：物体判別部  １０５：認識結果統合部  １０６：物体モデル  ２０１：特徴画像生成部  ２０２：画素値抽出部  ２０３：特徴符号化部
【図１】
2015225469.tif 000006
【図２】
2015225469.tif 000007
【図３】
2015225469.tif 000008
【図４】
2015225469.tif 000009
【図５】
2015225469.tif 000010
【図６】
2015225469.tif 000011
【図７】
2015225469.tif 000012
【図８】
2015225469.tif 000013
【図９】
2015225469.tif 000014
【図１０】
2015225469.tif 000015