(57)【特許請求の範囲】
【請求項１】
データの累積情報を所定の規則に従って記憶手段に書き込む手段と、
複数の前記累積情報を逐次または並列に読み出す読み出し手段と、
所定の局所領域の累積情報が並列読み出し可能なように前記所定の規則に応じて局所領域の形状パラメータを変換するパラメータ変換手段と、
逐次的に読み出すか或いは並列に読み出すかを指示する指示手段と、
前記複数の累積情報を用いて前記データの局所領域の特徴量を算出する手段と、
局所領域の特徴量を複数用いて所定のパターンを識別する手段とを備えることを特徴とするパターン識別装置。
【請求項２】
前記指示手段は、累積情報が前記記憶手段から並列読み出し可能か判定して前記動作を指示することを特徴とする請求項１記載のパターン識別装置。
【請求項３】
所定の局所領域の累積情報が並列読み出し可能なように前記所定の規則に応じて予め学習しておくことを特徴とする請求項１記載のパターン識別装置。
【請求項４】
前記所定の局所領域は局所領域ごとに処理時間を与えて前記学習を行うことを特徴とする請求項３記載のパターン識別装置。
【請求項５】
前記所定の局所領域の形状を前記パラメータ変換手段で変換する動作、または変換しない動作を指定することを特徴とする請求項１記載のパターン識別装置。
【請求項６】
前記所定の局所領域の形状を前記パラメータ変換手段で変換する動作、または変換しない動作を所定の条件に応じて変更することを特徴とする請求項１記載のパターン識別装置。
【請求項７】
データの累積情報を所定の規則に従って記憶手段に書き込む工程と、
所定の局所領域の累積情報が並列読み出し可能なように前記所定の規則に応じて局所領域の形状パラメータを変換するパラメータ変換工程と、
逐次的に読み出すか或いは並列に読み出すかを指示する指示工程と、
複数の前記累積情報を逐次または並列に読み出す読み出し工程と、
前記複数の累積情報を用いて前記データの局所領域の特徴量を算出する工程と、
局所領域の特徴量を複数用いて所定のパターンを識別する工程とを有することを特徴とするパターン識別方法。
【請求項８】
データの累積情報を所定の規則に従って記憶手段に書き込む工程と、
所定の局所領域の累積情報が並列読み出し可能なように前記所定の規則に応じて局所領域の形状パラメータを変換するパラメータ変換工程と、
逐次的に読み出すか或いは並列に読み出すかを指示する指示工程と、
複数の前記累積情報を逐次または並列に読み出す読み出し工程と、
前記複数の累積情報を用いて前記データの局所領域の特徴量を算出する工程と、
局所領域の特徴量を複数用いて所定のパターンを識別する工程とをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、累積情報を用いた画像認識あるいは情報分析等のパターン識別装置等に関する。
【背景技術】
【０００２】
情報処理分野においては、多次元配列情報を頻繁に取り扱う。その中でも、画像処理、画像認識や画像合成等に関わる一部処理や統計処理等では、特定領域範囲内における要素の総和値を求めて使用することが多い。
【０００３】
コンピュータ・グラフィックスの分野では、F.C.Crowが矩形のsummed-area tableと呼ばれる、元の入力画像情報に対する累積情報の概念を提案している（非特許文献１）。この文献では、summed-area tableを入力画像と同サイズ（同要素数）の２次元配列とし、入力画像の座標(x,y)の画素値をI(x,y)としたとき、summed-area tableの同位置(x,y)の成分C(x,y)を、式（１）として定義している。
【０００４】
【数１】
0005868054.tif 000002
【０００５】
すなわち図７に示すように、元の入力画像（ａ）において原点位置(0,0)と位置(x,y)の画素を対角とする矩形内の画素の総和値がsummed-area table（ｂ）の位置(x,y)の値C(x,y)となる。なお、非特許文献１のオリジナルのsummed-area tableは、原点位置を画像左下として説明しているが、ここでは、後述の説明と整合させるため左上原点とする。
この定義によれば、入力画像上で水平または垂直に置かれた任意の矩形領域内のI(x,y)の和を、次の式を使ってsummed-area table上の４点を参照するだけで求めることができる。例えば図８に示すように(x0,y0)と(x1,y1)を対角とする矩形領域内の画素値の総和C(x0,y0;x1,y1)を求めるには、式（２）を用いればよい。これにより、画像上の任意の矩形領域内の値の総和を高速に求めることが可能となった。
【０００６】
【数２】
0005868054.tif 000003
【０００７】
例えば、特許文献１には、累積情報の実装方法の１つが記載されている。
また、画像認識の分野では、ViolaとJonesが上記summed-area tableと同等の累積情報をIntegral Imageと呼んでいる。そのIntegral Imageを用いて複数の局所領域で特徴量を算出し、パターン識別を行っている（非特許文献２）。局所領域（local area）とは、入力画像から切り出された画像領域の部分領域を示す。
パターン識別では複数の局所領域で特徴量を算出しており、これら特徴量には予め学習によって求められたパラメータが使われる。パラメータは特徴量を算出する局所領域の位置や大きさなどの情報が含まれる。
また、パターン識別は参照する局所領域の数が非常に多く、特徴量算出のために累積情報が頻繁に読み出される。この累積情報の読み出しを高速化する手法の１つとして、累積情報を複数メモリに格納し、並列に読み出すことで高速化する技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２９９６２７号公報
【非特許文献】
【０００９】
【非特許文献１】F. C. Crow, “Summed-Area Tables For Texture Mapping”, Computer Graphics, 1984.
【非特許文献２】P. Viola, M. Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features”, Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Vol. 1, pp.511-518, December 2001.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したような技術では、読み出す局所領域の形状（幅、高さ）に制約を設けるため、検出精度に影響を与える場合がある。そして、上述した技術で示される高速化する手法で、検出精度が低下し要求検出精度を満たせない場合は問題となる。このような場合、検出精度の低下を軽減できる手段が望まれる。
【課題を解決するための手段】
【００１１】
本発明は、データの累積情報を所定の規則に従って記憶手段に書き込む手段と、複数の前記累積情報を逐次または並列に読み出す読み出し手段と、所定の局所領域の累積情報が並列読み出し可能なように前記所定の規則に応じて局所領域の形状パラメータを変換するパラメータ変換手段と、逐次的に読み出すか或いは並列に読み出すかを指示する指示手段と、前記複数の累積情報を用いて前記データの局所領域の特徴量を算出する手段と、局所領域の特徴量を複数用いて所定のパターンを識別する手段とを備える。
【発明の効果】
【００１２】
本発明によれば、パターン識別に使用する複数の局所領域を、高速化できる形状を持つ局所領域と形状制約を外して検出精度を重視した局所領域とに分けることができる。したがって、これらの割合を調整することで、検出精度の低下を軽減することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１に係るパターン識別装置の構成を示すブロック図である。
【図２】実施例１に係る全体処理のフローチャートである。
【図３】実施例１に係るパターン識別処理のフローチャートである。
【図４】実施例１に係るメモリへの分配を説明する図である。
【図５】実施例１に係る局所領域と読み出し座標を説明する図である。
【図６】実施例１に係る読み出し方を説明するタイミングチャートである。
【図７】入力画像情報に対する累積画像情報の生成方法を説明する図である。
【図８】総和算出のため累積画像情報から読み出す座標を説明する図である。
【図９】処理ウィンドウを説明する図である。
【図１０】実施例２に係るパターン識別装置の構成を示すブロック図である。
【図１１】実施例２に係るパラメータ変換処理のフローチャートである。
【図１２】実施例３に係る一次元累積情報のメモリへの分配を説明する図である。
【図１３】実施例４に係る三次元累積情報と局所空間を説明する図である。
【図１４】検出対象データのフィルタ出力ヒストグラムと非検出対象データのフィルタ出力ヒストグラムを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための実施例について、図面を用いて説明する。なお、本実施例においては、従来技術で説明したSummed-area tableあるいはIntegral Imageのような、二次元配列の情報を累積画像情報と呼ぶ。また、二次元配列の画像情報（RGB画像やGrayscale画像のような画像情報だけでなく一次微分フィルタをかけた画像など、加工された画像情報も含む）を入力画像情報と呼ぶ。
【実施例１】
【００１５】
まず、本発明に係る実施例としてのパターン識別装置の構成と処理フローチャートについて説明する。累積画像情報の逐次読み出し、並列読み出しは処理フローチャートの中で説明する。その後、学習について説明する。
図１は、実施例１のパターン識別装置の構成を示すブロック図である。
１０１は、ＣＰＵ（Central Processing Unit）であって、バス１０５を介して接続される各部を制御する。１０２は入力画像情報を入力するデータ入力部であって、処理対象となる入力画像情報を装置内に取り込む。データ入力部１０２は、例えばＣＣＤ（Charge Coupled Device）イメージセンサなどの画像センサによって構成されていてもよく、ネットワーク等所定の通信経路を持って外部装置から処理したいデータを受信するＩ／Ｆ装置であってもよい。１０４はバス１０５に接続される外部メモリであって、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）あるいはＨＤＤ（Hard Disk Drive）等のストレージ装置で構成されている。
【００１６】
外部メモリ１０４は、ＣＰＵ１０１が動作するためのプログラムコードを記憶したり、各種処理を行う上での作業領域として用いられたりする。また、必要に応じて、入力画像情報やパターン識別に使用する各種情報を保持するための領域としても用いられる。１０３はＤＭＡ（direct memory access）コントローラ（以下、ＤＭＡＣ）である。ＤＭＡＣ１０３は、ＣＰＵ１０１が設定して動作指令することにより、データ入力部１０２、外部メモリ１０４、パターン識別部１０７に所定サイズのデータ転送を自立的に連続で行うことが可能である。指令された転送動作が完了すると、バス１０５を介して割り込み信号をＣＰＵ１０１に通知する。
【００１７】
１０７はパターン識別部であって、ＤＭＡＣ１０３からバス１０５を介して送られてくる入力画像情報をパターン識別処理する。パターン識別処理は入力画像情報が所定の検出パターン（例えば顔や人体の立像など）か否かを判定し、検出位置、検出形状、尤度などの検出情報を出力する。検出情報はバス１０５を介して外部メモリ１０４に書き込まれる。
パターン識別部１０７は、バスインタフェース１１１、累積画像情報生成部１１２、分配書き込み処理部１１３、メモリアクセス制御部１１４、メモリ１１５〜１１８、読み出し動作指示部１３０を有している。また、パターン識別部１０７は、識別処理制御部１１９、辞書記憶部１２０、特徴量算出部１２１、判定処理部１２２、処理ウィンドウ管理部１２３などを有している。本実施例のメモリ１１５〜１１９はシングルポート型のメモリを使用する。ただし、デュアルポート型のメモリや他の多ポート型のメモリで構成しても構わない。
【００１８】
次に、図１のパターン識別装置の詳細と全体の処理の流れを、図２のフローチャートを使って説明する。
実施例１のパターン識別装置は、ユーザの操作や不図示の外部装置からの処理開始トリガによって、まずデータ入力処理ステップＳ２０１を実行する。
ステップＳ２０１では最初に、ＣＰＵ１０１の指示によってデータ入力部１０２が入力画像情報を受信し、バス１０５を介して外部メモリ１０４に蓄積する。次に、外部メモリ１０４に蓄積された入力画像情報をＤＭＡＣ１０３がパターン識別部１０７に転送する。パターン識別部１０７はバス１０５を介して転送されてくる入力画像情報をバスインタフェース１１１で受け、累積画像情報生成部１１２に転送する。本実施例では入力画像情報は画像左上の画素から画素単位でラスタ順に入力されるとする。
【００１９】
次に、ステップＳ２０２では累積画像情報生成処理を行う。
累積画像情報生成部１１２は、ラスタ順で送られる入力画像情報を累積処理し、累積画像情報を生成する。累積画像情報は入力画像情報の画像左上の画素を原点として画素値を累積し、累積結果を順次、分配書き込み処理部１１３に転送する。累積処理の詳細については従来技術で説明した通りであり、その説明は省略する。
次に、ステップＳ２０３では累積画像情報の分配書き込み処理を行う。
分配書き込み処理部１１３は、まずメモリに対して書き込みを行ってよいか処理ウィンドウ管理部１２３に問い合わせる。処理ウィンドウ管理部１２３は、分配書き込み処理部１１３からのメモリの書き込みと識別処理制御部１１９からの読み出しの排他制御を管理している。
【００２０】
処理ウィンドウとはパターン識別処理が処理を行う単位である。図９は、処理ウィンドウを説明する図である。９００は入力画像情報であり、９０１は１つの処理ウィンドウを示し、処理ウィンドウ９０１の画像領域がパターン識別処理を行う１単位である。そして、処理ウィンドウ９０１に対してパターン識別処理を行い、この処理ウィンドウ９０１に所定の検出パターンが存在するかどうかを判定する。処理ウィンドウは、入力画像情報９００の左上の処理ウィンドウ９０１から順に右方向に移動し、それぞれの位置でパターン識別処理をする。右端に達したら左端にもどって下方向に移動する。以上の移動を繰り返し右下位置まで順に移動させる。
【００２１】
分配書き込み処理部１１３は、処理ウィンドウ管理部１２３から所定個数の書き込み許可を受ける。そして、分配書き込み処理部１１３は、累積画像情報の画素単位で書き込み先のメモリ番号（メモリ１１５〜１１８）とアドレスを決定し、メモリアクセス制御部１１４に書き込みを指示する。メモリアクセス制御部１１４は指示されたメモリ番号とアドレスに従ってメモリ１１５〜１１８に累積画像情報を格納する。分配書き込みの詳細は特許文献１などにも開示されている。
【００２２】
本実施例は、図４に示すように累積画像情報４００を分配して４つのメモリ１１５〜１１８に格納するものである。累積画像情報４００で示される模様分けされた矩形１つ１つを画素とする。(0,0),(1,0),…,(3,3)と示されているのは左上を原点(0,0)とする各画素の座標を示している。累積画像情報は分配書き込み処理部１１３によって座標位置で格納先のメモリ番号が決定されメモリに格納される。図４で示すメモリ１１５にはx方向が偶数かつy方向が偶数の座標位置の画素が格納される。また、メモリ１１６にはx方向が奇数かつy方向が偶数の座標位置の画素が格納される。また、メモリ１１７にはx方向が偶数かつy方向が奇数の座標位置の画素が格納される。また、メモリ１１８にはx方向が奇数かつy方向が奇数の座標位置の画素が格納される。
分配書き込み処理部１１３は所定個数の書き込みが終了すると処理ウィンドウ管理部１２３に書き込み終了を通知する。
【００２３】
次に、ステップＳ２０４でパターン識別処理を行う。パターン識別処理は従来技術で説明したような複数の弱判別器で判定を行う。弱判別器を使った処理方法はいくつかあるが、ここではある処理ウィンドウにおいて局所領域の総和を算出し、その算出結果を用いて弱判別器で判定する処理を複数回繰り返す。以下、パターン識別処理の詳細は図３のフローチャートを使って説明する。
【００２４】
まず、パターン識別処理では、ステップＳ３０１で処理ウィンドウを要求する。
識別処理制御部１１９は、処理ウィンドウ管理部１２３に対して処理対象となる処理ウィンドウを要求する。処理ウィンドウ分のデータがメモリ１１５〜１１８に準備できたら次のステップＳ３０２に移る。
次に、ステップＳ３０２では、辞書データの読み込み処理を行う。
識別処理制御部１１９は、辞書記憶部１２０に格納されている辞書データをもとに識別処理を開始する。辞書データは予め学習によって得られたパラメータ群である。学習についての詳細は後述する。辞書データには累積画像情報から特徴量を算出する局所領域の位置や形状、判定処理の係数や閾値などのパラメータが格納されている。
【００２５】
次に、ステップＳ３０３では、特徴量パラメータの送信処理を行う。
識別処理制御部１１９は、辞書データのパラメータから局所領域の位置や形状情報を読み出し動作指示部１３０に転送する。また、一方で、識別処理制御部１１９は特徴量算出部１２１、判定処理部１２２で使用するパラメータ（係数、閾値など）も辞書データから取り出して特徴量算出部１２１、判定処理部１２２に設定する。
【００２６】
次に、読み出し動作指示部１３０は、転送された情報から４頂点分のデータの読み方を決め、メモリ番号とアドレスを算出する。図５、図６を使って４頂点分のデータの読み方について説明する。
図５では累積画像情報４００から読み出す４つの局所領域５００，５１０，５２０，５３０が示されている。各局所領域は幅、高さが偶数、奇数の組み合わせで分けられている。累積画像情報４００は、図４同様、模様分けされた矩形１つ１つが画素を示し、模様は格納先メモリを表す。図６は各メモリ１１５〜１１８へのリードアクセスのタイミングチャートを示している。図６の横軸は時間である。
【００２７】
局所領域５００の４頂点５０１〜５０４は、図５（ａ）から４つのメモリに分かれていることがわかる。これは図６のタイミングチャートのｒｅａｄ６０１〜６０４に示すように各メモリから同時に読み出せるため高速であることがわかる。ここで説明するｒｅａｄ６０１は頂点５０１、ｒｅａｄ６０２は頂点５０２、ｒｅａｄ６０３は頂点５０３、ｒｅａｄ６０４は頂点５０４と対応している。
また、局所領域５１０の４頂点５１１〜５１４は、図５（ｂ）から１つのメモリに集中していることがわかる。これはｒｅａｄ６１１〜６１４で示すようにシーケンシャルに並べられて逐次読み出しになることから局所領域５００に比べ４倍の時間を要することがわかる。
また、局所領域５２０の４頂点５２１〜５２４は、図５（ｃ）から２頂点５２１，５２２が１つのメモリ、残り２頂点５２３，５２４が別の１つのメモリであることがわかる。これはｒｅａｄ６２１〜６２４に示すように部分的に同時読み出しができているが、局所領域５００に比べ２倍の時間を要していることがわかる。ここで、ｒｅａｄ６２１は頂点５２１、ｒｅａｄ６２２は頂点５２２、ｒｅａｄ６２３は頂点５２３、ｒｅａｄ６２４は頂点５２４と対応している。
また、局所領域５３０の４頂点５３１〜５３４は、図５（ｄ）から２頂点５３１、５３３が１つのメモリ、残り２頂点５３２，５３４が別の１つのメモリであることがわかる。これはｒｅａｄ６３１〜６３４に示すように部分的に同時読み出しができているが、局所領域５００に比べ２倍の時間を要していることがわかる。ここで、ｒｅａｄ６３１は頂点５３１、ｒｅａｄ６３２は頂点５３２、ｒｅａｄ６３３は頂点５３３、ｒｅａｄ６３４は頂点５３４と対応している。
【００２８】
読み出し動作指示部１３０は、局所領域の幅、高さが偶数か奇数かで上記の読み出し方か１つを決定し、逐次的な読み出しか、並列的な読み出しかを実行させる。
読み出し動作指示部１３０は、他にメモリ番号とアドレスを算出する。メモリ番号とアドレスは分配書き込み処理部１１３で格納した規則に従って算出する。
読み出し動作指示部１３０は、決定した読み出し方とメモリ番号とアドレスでメモリアクセス制御部１１４に指示する。
本実施例では読み出し動作指示部１３０で局所領域の形状を使って読み出し方を決定しているが、予め辞書データにどの読み出し方で読み出すかが埋め込まれていてもよい。この場合、読み出し動作指示部１３０は決定処理を行わないが本発明を限定するものではない。
【００２９】
次に、ステップＳ３０４では累積画像情報の読み出し処理を行う。
メモリアクセス制御部１１４は、指示された読み出し方でメモリ番号とアドレスに対応するメモリからデータを読み出して、特徴量算出部１２１に送る。
次に、ステップＳ３０５では特徴量を算出する処理を行う。
特徴量算出部１２１は、読み出した４頂点の値から総和値を算出し、ステップＳ３０３で設定されたパラメータを使用して特徴量を算出する。そして、特徴量の算出結果は判定処理部１２２に送られる。
次に、ステップＳ３０６では結果判定の処理を行う。
判定処理部１２２は、特徴量の算出結果とステップＳ３０３で設定されたパラメータとを使用して判定を行う。設定されるパラメータは例えば閾値で特徴量の算出結果がその閾値よりも高ければ所定の検出パターンである（以下、True判定）、閾値よりも低ければ所定の検出パターンでない（以下、False判定）という判定がされる。True判定の場合、判定結果は、識別処理制御部１１９に送られ、ステップＳ３０７に移る。一方、False判定の場合、判定が確定（以下、False確定）し、ステップＳ３０８に移る。
【００３０】
次に、ステップＳ３０７では全局所領域の識別が終了したかチェックする。
識別処理制御部１１９は判定結果がTrue判定であればステップＳ３０２に戻り次の局所領域用の辞書データを読み込み、ステップＳ３０２からステップＳ３０６の処理を所定の局所領域数分繰り返し行う。所定の局所領域全てでTrue判定が得られたら、所定の検出パターンであることが確定（以下、True確定）し、ステップＳ３０８に移る。
【００３１】
次に、ステップＳ３０８では処理ウィンドウの終了通知を行う。
識別処理制御部１１９は処理ウィンドウ管理部１２３に対して処理が終了したことを通知する。通知を受けた処理ウィンドウ管理部１２３は次の処理ウィンドウを準備する処理を開始する。
識別処理制御部１１９は処理対象となった処理ウィンドウの最終結果がTrue確定の場合、識別処理制御部１１９はその処理ウィンドウの位置情報をバスインタフェース１１１を介して外部メモリ１０４に書き出す。一方、False確定の場合は、判定結果は書き出さない。
以上のパターン識別処理が入力画像情報の全処理ウィンドウに渡って処理が繰り返され、終了した後、ステップＳ２０５に移る。
次に、ステップＳ２０５では後処理を行う。
識別処理制御部１１９は、全処理ウィンドウのパターン識別処理が終了したことをＣＰＵ１０１に対して通知する。
【００３２】
次に、辞書記憶部１２０に格納する辞書データの学習について説明する。
学習は、パターン識別処理において画像中に含まれるものが検出パターンかどうか識別するための基準を決定する手法として広く使用されている。本実施例では学習によって決定されたパラメータを辞書データと呼んでいる。学習は、所定の検出パターンを含むことがわかっている複数のサンプル画像と所定の検出パターンを含まないことがわかっている複数のサンプル画像の各々から所定のパラメータを導出し、記録しておくものである。この所定のパラメータの中には局所領域の位置、形状の導出が含まれている。
【００３３】
次に、本発明に関する学習処理に関して詳細を説明する。
学習に先立ち、学習に必要なデータ群は用意されているものとする。例えば、画像中から特定の物体を検出する場合、検出対象を含む複数の画像データと検出対象を含まない画像データを複数用意し、それぞれ検出対象データ・非検出対象データとしてラベル付けしておく。
以下、Ａｄａｂｏｏｓｔアルゴリズムに従って弱判別器を学習する。基本的な学習方法は非特許文献２に記載の手法と同一である。
【００３４】
まず、保持する学習データから学習に使用するデータを選択する。ここでは、検出対象画像と非検出対象画像を所定の比率でランダムに選択する。
次に、各学習データに対する重み係数を初期化する。重み係数とは学習データの学習処理に対する寄与率に相当する。学習データの総数がｍ個の場合、全ての重み係数ｗt,i（t:生成する弱判別器の番号、i:学習データの番号）を以下の式（３）で初期化する。
【００３５】
【数３】
0005868054.tif 000004
【００３６】
ここでは、全ての学習データに対して共通の重みを与える事になる。
次に、式（４）に従って重み係数を正規化する。
【００３７】
【数４】
0005868054.tif 000005
【００３８】
以降の処理で重み係数が変更された場合、当該ステップで重み係数の総和が１になる様に正規化する。
次に、１つの弱判別器を学習する。まず、矩形フィルタ群の中から１つの矩形フィルタを選択する。矩形フィルタ群は予め定める形状の基本矩形フィルタに対してその大きさや検出ウィンドウ内の位置に応じた変形を有する複数の矩形フィルタ候補である。矩形フィルタ群は予め定める基本矩形フィルタを基準にしてその変形も含めた全ての組み合わせを用意しておく。
【００３９】
次に、選択した矩形フィルタを用いて全ての学習データに対して矩形フィルタの判別性能評価を行う。まず、全ての学習データに対してそのフィルタ出力値を算出し、検出対象と非検出対象を分離する閾値を決定する。閾値の決定は矩形フィルタ出力値のヒストグラムを利用して行う。図１４は検出対象データのフィルタ出力ヒストグラム１４０２と非検出対象データのフィルタ出力ヒストグラム１４０１を示す。当該ヒストグラムを使用して検出対象と非検出対象をよく分離する閾値Ｔhを決定する。
次に決定した閾値Ｔhを用いて全ての学習データに対する検出誤り率を算出する。式（５）は全ての学習データに対する重み付き誤り率である。
【００４０】
【数５】
0005868054.tif 000006
【００４１】
ここで、hj(xi)は、選択した矩形フィルタによる判定出力であり、前記閾値Ｔhを使用して入力対象データxiが検出対象である場合１を出力し、検出対象を含まない場合０を出力する。yiは正解ラベルであり入力画像データが検出対象であるか否かによってそれぞれ１又は０が割り当てられている。
以上の処理を全ての矩形フィルタ候補に対して演算する。
矩形フィルタ候補に対する全ての重みつき誤り率Ejの算出が終了すると、次に各矩形フィルタの形状に応じて決まる処理時間のペナルティを乗じた評価値Rjを式（６）により算出する。
【００４２】
【数６】
0005868054.tif 000007
【００４３】
Ljは処理時間のペナルティの係数で、まず全並列で読み出せる条件、全て逐次読み出しとなる条件、それらの組み合わせとなる条件で係数が定義される。通常、係数は大きい順に逐次読み出し条件、組み合わせ条件、全並列で読み出しの条件の順になるように定義する。
そして、評価値Rjの小さい矩形フィルタ（即ち判別性能が高く、処理時間が短い矩形フィルタ）を弱判別器として選択する。
次に、選択した矩形フィルタのEjから式（７）により当該弱判別器に対する信頼度を算出する。
【００４４】
【数７】
0005868054.tif 000008
【００４５】
次に、学習データに対する重み係数を下記演算式（８）で更新する。
【００４６】
【数８】
0005868054.tif 000009
【００４７】
但し、式（８）で更新する重み係数Wt,jは正しく検出できた学習データiに付随する係数のみである。即ち正しく検出された学習データの重みが小さくなるように更新する。つまり、検出を誤った学習データに対する重みを相対的に大きくしていく。
ここまでの処理で１つの弱判別器を生成する。
以上説明した学習方法の例では、局所領域のパラメータは学習によって各サンプル画像内の局所領域が評価され、決定されている。また、その学習時の局所領域の評価の中で各局所領域に対して処理時間のペナルティが与えられることで検出精度だけでなく処理速度も評価した局所領域が選択される。
【００４８】
従来の技術のように処理速度重視で全局所領域を同時読み出し可能な局所領域とすることもできるが検出精度に影響を与える場合がある。本発明はこのような場合、上記評価手法により高速化が可能な局所領域と精度を重視した局所領域を混在させる割合を調整することができる。そしてこれによって検出精度の低下を軽減することができる。
また、本実施例では４つのメモリにｘ方向、y方向それぞれに奇数座標、偶数座標で分配する規則を元に局所領域の形状制約は幅、高さが偶数長、奇数長である例を示した。しかしながら、分配規則は、ｘ方向、ｙ方向の分割数によって変わる場合がある。この場合、読み出し動作指示部１３０での読み出し方の判定はより複雑になるが本発明を限定するものではない。本発明は速度重視と精度重視の２つの特徴を持つ局所領域を混在させ、その割合を調整できるものである。
【実施例２】
【００４９】
実施例１では予め学習によって形状制約の有無を選択的に行って２つの特徴を持つ局所領域を混在させるようにしたが、本発明はこれに限るわけではない。
実施例２では形状制約無しで学習された辞書データを使って、検出精度の低下を軽減する方法について説明する。実施例２では実施例１と説明が重なる部分があるため差分のみ説明する。
実施例２のパターン識別装置の構成を図１０に示す。構成上の差分はパラメータ変換部１００１が識別処理制御部１１９と読み出し動作指示部１３０の間に追加されていることである。
【００５０】
パラメータ変換部１００１は、識別処理制御部１１９から指示される局所領域の４頂点分のメモリ読み出しにおいて、局所領域の形状である幅と高さが奇数長になるように形状パラメータを変換する。例えば幅、高さが偶数長であった場合、それぞれから−１することで奇数長にする。
本実施例では形状パラメータを変換するか否かを指定する情報（以下、変換フラグ）は予め所定の局所領域に決められており、その情報は辞書データに入っているとする。
所定の局所領域は、複数の局所領域群の候補を定義した後、全候補を評価して決められる。評価は、実際のユースケース等を想定した複数の画像に対して検出精度と処理時間を計測して行う。
【００５１】
次に、上記所定の局所領域の決め方と評価の具体例を説明する。１つずつ特徴量を算出処理するパターン識別において、まず特徴量の算出処理順で並べた局所領域群に１つの境界を設ける。その境界で分けられた局所領域群は一方が形状パラメータを変換する局所領域群、もう一方が形状パラメータを変換しない局所領域群とする。そして、これらの局所領域群を使って複数の画像に対してパターン識別処理を行い、その検出精度と処理時間を計測する。そして、次に境界を移動させて局所領域群を決めて上記評価を繰り返す。最後に要求検出精度を満たしたものの中から処理時間の最も短いものを選択する。
【００５２】
次に、形状パラメータの変換処理を図１１のフローチャートに示す。
まず、ステップＳ１１０１では、パラメータ変換部１００１は識別処理制御部１１９から指示される局所領域の左上座標と幅、高さを取得する。
次に、ステップＳ１１０２では、パラメータ変換部１００１は変換フラグのチェックと局所領域の幅が偶数長かどうかをチェックする。もし、変換フラグが１でかつ偶数長の場合はステップＳ１１０３に移り、それ以外はステップＳ１１０４に移る。
次に、ステップＳ１１０３では、パラメータ変換部１００１は局所領域幅計算を行い奇数長にする。ここで指示される局所領域の幅をla_w、変換後の局所領域の幅をla_widthとすると式（９）のように表される。
【００５３】
【数９】
0005868054.tif 000010
【００５４】
次に、ステップＳ１１０４では、パラメータ変換部１００１は局所領域の高さが偶数長かどうかをチェックする。もし、変換フラグが１でかつ偶数長の場合はステップＳ１１０５に移り、それ以外はステップＳ１１０６に移る。
次に、ステップＳ１１０５では、パラメータ変換部１００１は局所領域高さ計算を行い奇数長にする。ここで指示される局所領域の高さをla_h、変換後の局所領域の高さをla_heightとすると式（１０）のように表される。
【００５５】
【数１０】
0005868054.tif 000011
【００５６】
次に、ステップＳ１１０６では、パラメータ変換部１００１は変換後の局所領域情報を読み出し動作指示部１３０に転送する。
以上、パラメータ変換部１００１の処理によって、同時読み出しできるように変換された局所領域と変換しないで読み出す精度重視の局所領域を混在させることができる。
これにより速度重視の局所領域と精度重視の局所領域を混在させる割合を調整することで検出精度の低下を軽減することができる。
【００５７】
以上、実施例２では識別処理中にパラメータ変換部１００１で変換を行った例を説明したが、同様の変換処理を予め辞書データに対して行っておき、変換済みの辞書データを使ってパターン識別処理を行う方法もある。この場合、実施例１の図１の構成となる。
また、実施例２では他に変換式（９）、（１０）の一方を成り立たせるようにして、幅と高さに対して別々に変換指示を与える方法でも構わない。
【００５８】
また、変換式（９）、（１０）は近傍座標にずらすための一例であり、辞書データの局所領域の幅、高さに＋１する計算であっても構わない。重要なのは局所領域の形状を奇数長に変換することである。
また、実施例２では元々の辞書データのパラメータから、読み出し座標位置をずらすことになるので局所領域の形状の変換前と変換後の総和値に差が出てしまう。この対処方法として、局所領域の形状の変換前と変換後の面積比を変換後の総和値Ｓ２ｄに乗じてＳ２ｄ’として以下のような式（１１）で総和値を補間してもよい。
【００５９】
【数１１】
0005868054.tif 000012
【００６０】
また、実施例２では変換フラグを予め辞書に入れておくことで説明したが、本発明はこれに限定するものではない。例えば形状パラメータを変換するか否かを動作モードとして与えられる方法がある。この動作モードは形状パラメータを変換して高速に動作させる高速モードと形状パラメータを変換しないで検出精度を重視する精度重視モードが定義される。そして、この動作モードは変換フラグと同義で動作モードが1なら変換フラグを1にして形状パラメータの変換を行い、動作モードが0なら変換フラグを0にして形状パラメータの変換を行わないようにする。
【００６１】
また、他の方法として累積画像情報の位置に応じて形状パラメータを変換するか決める方法もある。この場合、変換フラグを累積画像情報の位置に応じて１または０にして制御する。具体的には人を検出するパターン識別装置を例に説明する。画面上、人が現れるドアや階段、エレベータの付近では検出精度を重視するために形状パラメータを変換しないように変換フラグを０にする。一方、壁など人が現れないところは変換フラグを１にして形状パラメータを変換して高速にパターン識別する方法がある。
【実施例３】
【００６２】
上述した実施例１、２では累積画像情報と呼ぶ２次元配列の情報での例を説明したが、実施例３では本発明を１次元の情報に適用する方法を説明する。実施例３では、１次元配列のデータを入力とし、その入力データを一次元入力情報と呼ぶ。また、一次元入力情報を累積した情報を一次元累積情報と呼ぶ。
【００６３】
実施例３での一次元配列の累積情報は図１２に示すようになる。図１２ではデータ１２０１を開始点として、ｘ方向にデータの値を累積させたものを一次元累積情報１２００としている。データ中の括弧内の数値はｘ方向の座標を示す。
実施例３のパターン識別装置の構成は実施例１とほぼ同じで、実施例３との差分はメモリ数が２つであることである。
【００６４】
実施例１で説明した局所領域に相当するものはここでは直線の区分１２２０（以下、一次元累積情報では局所区分（local piecewise）と呼ぶ）となる。局所区分は奇数長の場合、２つのメモリから同時に読み出すことができるが、偶数長の場合、１つのメモリから逐次読み出す必要がある。実施例３においても実施例１、２と同様に形状制約を与える局所区分と形状制約を与えない局所区分を混在させて調整することで検出精度の低下を軽減させる。
【００６５】
混在させる方法としては実施例１と同様に予め学習で形状制約の有無を選択的に行っておく方法と実施例２と同様に実行時にパラメータ変換する方法がある。また、実施例３では説明を簡単化するため偶数長、奇数長の場合を説明したが、実施例１の最後で説明したのと同様に本発明を限定するものではない。
【実施例４】
【００６６】
実施例４では本発明を３次元の情報に適用した例で説明する。
実施例４では３次元配列のデータを入力とし、その入力データを三次元入力情報と呼ぶ。三次元入力情報とは例えば動画情報であって、二次元画像に時間軸の一次元が加わり三次元入力情報となる。また、三次元入力情報を累積した情報を三次元累積情報と呼ぶ。
【００６７】
実施例４での三次元配列の累積情報は図１３に示すようになる。図１３では三次元入力情報１３００の原点Ｏを開始点として、ｘ方向、ｙ方向、t方向に値を累積させたものを三次元累積情報１３１０としている。例えば点１３０２の座標(x,y,t)の三次元累積情報１３１０での値は原点Ｏと点１３０２を対角とする直方体１３０１に含まれるデータの合計値となる。本実施例では直方体を動画情報で考え、ｘ方向を幅、ｙ方向を高さ、ｔ方向を時間で定義する。ここで、t方向は時間軸で定義したが、もし立体空間であればｚ方向として奥行きと定義してもよい。
【００６８】
実施例４のパターン識別装置の構成は実施例１とほぼ同じで、実施例４との差分はメモリ数のみで、メモリを８つ使用する。
実施例１で説明した局所領域に相当するものは、ここでは直方体の空間１３１２（以下、三次元累積情報では局所空間(local space)と呼ぶ）となる。局所空間はｘ方向、y方向、t方向がそれぞれ偶数長か奇数長かで同時に読み出せるメモリが決まる。実施例４においても実施例１、２と同様に形状制約を与える局所空間と形状制約を与えない局所空間を混在させて調整することで検出精度の低下を軽減させる。実施例４では実施例１、２と比べて読み出し方の種類が多いだけで基本的な考え方は実施例１、２と同様である。
【００６９】
混在させる方法としては実施例１と同様に予め学習で形状制約の有無を選択的に行っておく方法と実施例２と同様に実行時にパラメータ変換する方法がある。
また、実施例３では説明を簡単化するため偶数長、奇数長の場合を説明したが、実施例１の最後で説明したのと同様に本発明を限定するものではない。
【００７０】
以上の実施例１〜実施例４では、一次元から三次元について説明した。さらに、三次元を超える多次元入力情報に対する累積情報であっても、同様に超直方体で考えれば、本発明を適用可能であるのは明らかである。
以上の実施例ではパターン識別処理に弱判別器を使った例で説明したが本発明はこれに限らない。実際、パターン識別処理には様々なものが提案されており、実装も多岐にわたっている。しかし、これらパターン識別処理において累積情報を使用し特徴量を算出するものはいずれも本発明が適用できることは明らかである。
また、本発明はコンピュータ内のプログラムによっても実現できることは当然である。
【符号の説明】
【００７１】
１０１：ＣＰＵ  １０２：データ入力部  １０３：ＤＭＡＣ  １０４：外部メモリ  １０５：バス  １０７：パターン識別部  １１１：インタフェース  １１２：累積画像情報生成部  １１３：分配書き込み処理部  １１４：メモリアクセス制御部  １１５〜１１８：メモリ  １１９：識別処理制御部  １２０：辞書記憶部  １２１：特徴量算出部  １２２：判定処理部  １３０：読み出し動作指示部  １００１： パラメータ変換部
【図１】
0005868054.tif 000013
【図２】
0005868054.tif 000014
【図３】
0005868054.tif 000015
【図４】
0005868054.tif 000016
【図５】
0005868054.tif 000017
【図６】
0005868054.tif 000018
【図７】
0005868054.tif 000019
【図８】
0005868054.tif 000020
【図９】
0005868054.tif 000021
【図１０】
0005868054.tif 000022
【図１１】
0005868054.tif 000023
【図１２】
0005868054.tif 000024
【図１３】
0005868054.tif 000025
【図１４】
0005868054.tif 000026