(57)【要約】【課題】高次局所自己相関特徴を高速に抽出する演算処理を行うためのデータ処理装置を提供する。【解決手段】データ処理装置は、入力された画像データから、高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、レジスタの複数データを一括して積算の処理を行う積算処理手段とを備える。これにより、高次局所自己相関特徴を高速に抽出する処理を行う。【選択図】図６
2008165762.tif 000002
【特許請求の範囲】
【請求項１】
高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、
レジスタの複数データを一括して積算の処理を行う積算処理手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、
レジスタの複数データを一括して積算の処理を行い積算レジスタに格納する積算処理手段と、
積算レジスタの複数データを加算する加算処理手段と
を備えることを特徴とするデータ処理装置。
【請求項３】
高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、
レジスタの複数データを一括して行う積算の処理は、２次の項におけるレジスタがすべて１のとき、一括して積算の処理を行い積算レジスタに格納する積算処理手段と、
積算したレジスタの複数データを加算レジスタに加算する加算処理手段と、
を備えることを特徴とするデータ処理装置。
【請求項４】
高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、
レジスタの複数データを一括して積算の処理を行い積算レジスタに格納する積算処理手段と、
積算レジスタの複数データを加算する際に、レジスタ要素がｎビットで２のｎ−１乗回繰り返す度に、次数Ｎ＝０の積算レジスタのうち１つでも２のｎ−１乗以上の値を持つ場合に、全積算レジスタに積算レジスタの各値を加算し、小計レジスタをすべて０にする加算処理手段と、
を備えることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高次局所自己相関特徴を高速に抽出する演算処理を行うことができるデータ処理装置に関するものであり、具体的には、高次局所自己相関特徴を抽出するマスクパターンに合わせて複数データを一括してレジスタにロードし、高速に積和の演算処理を実行し、高次局所自己相関特徴を高速に抽出する演算処理を行うデータ処理装置に関するものである。
【背景技術】
【０００２】
特許文献１および特許文献２に見られるように、画像認識問題において有効かつ基本的な画像特徴である高次局所自己相関特徴（ＨＬＡＣ：Ｈｉｇｈｅｒ  ｏｒｄｅｒ  Ｌｏｃａｌ  ＡｕｔｏＣｏｒｒｅｌａｔｉｏｎ）が提案され、ＨＬＡＣを用いた認識が様々な分野で試みられている。ＨＬＡＣでは、次の（１）式によって対象画像から計算される高々２次までの自己相関関数を特徴量として、認識処理を行う。
【数１】
2008165762.tif 000003
ここでｒは画像内の参照点、Ｉ（ｒ）は参照点ｒにおける画像の輝度値、ａ１，…，ａＮ（Ｎ＝０，１，２）は参照点のムーア近傍における重複を許された高々２つの近傍点を表す。近傍点の取り方（マスクパターン）は、マスクを平行移動させて同値になるものを除外することで、図１に示されるように、多値画像の場合に３５通り，２値画像の場合に２５通りに制限される。
【０００３】
特許文献１および特許文献２には、次元画像に対する高次局所自己相関特徴（ＨＬＡＣ）を用いた学習適応型画像認識・計測方法の技術が開示されている。
【０００４】
また、特許文献３および特許文献４では、ＨＬＡＣを３次元に拡張した立体高次局所自己相関特徴（ＣＨＬＡＣ）を提案し、ＣＨＬＡＣに基づくデータ処理を行い、汎用的で高速・高精度で「対象および動き」を認識できるようにしている。
【０００５】
立体高次局所自己相関特徴（ＣＨＬＡＣ）は、２次元画像を時系列に並べたボクセルデータ（３次元データ）に対して、その中の各点において局所的な自己相関特徴を計算して、この局所特徴をボクセルデータ全体にわたって積分することにより得られる統計的特徴量であり、動作特徴であるといえる。
【特許文献１】特許第２９８２８１４号公報
【特許文献２】特許第２８３４１５３号公報
【特許文献３】特開２００５−０９２３４６号公報
【特許文献４】特開２００６−０７９２７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
画像データに対する認識処理を行う場合、画像データから高次局所自己相関特徴（ＨＬＡＣ）または立体高次局所自己相関特徴（ＣＨＬＡＣ）を抽出して、この特徴を用いることは有用であるが、ＨＬＡＣまたはＣＨＬＡＣを抽出する演算を行う場合には、その計算量は、膨大なものとなる。
【０００７】
具体的には、２値画像に対するＣＨＬＡＣは２５１次元のベクトルであり、ＣＨＬＡＣの抽出処理では、１画素につき７３８回の積と和の演算を行うことになる。例えば、ＱＶＧＡ（３２０×２４０）サイズの動画像からＣＨＬＡＣを抽出する場合、１フレームに対し、約５７００万回の積と和の膨大な演算が必要になる。これを、標準的なデータ処理能力を有するＰＣ（パーソナルコンピュータ）で演算するため、例えば、一般的なＣ言語を用いて記述すると、十分な処理速度が得られないため、動画像データに対するリアルタイム（３０フレーム／秒以上）での動作は難しくなる。実用化のためには、高速なデータ処理を行うことができるハードウェアまたはソフトウェアの実装が必要になる。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、本発明の目的は、高次局所自己相関特徴を高速に抽出する演算処理を行うためのデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記のような目的を達成するため、本発明は第１の態様として、本発明によるデータ処理装置が、高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、レジスタの複数データを一括して積算の処理を行う積算処理手段とを備えることを特徴とする。
【００１０】
本発明は第２の態様として、本発明によるデータ処理装置が、高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、レジスタの複数データを一括して積算の処理を行い積算レジスタに格納する積算処理手段と、積算レジスタの複数データを加算する加算処理手段とを備えることを特徴とする。
【００１１】
本発明は第３の態様として、本発明によるデータ処理装置が、高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、レジスタの複数データを一括して行う積算の処理は、２次の項におけるレジスタのすべてが１のとき、一括して積算の処理を行い積算レジスタに格納する積算処理手段と、積算したレジスタの複数データを加算レジスタに加算する加算処理手段とを備えることを特徴とする。
【００１２】
また、本発明は第４の態様として、本発明によるデータ処理装置が、高次局所自己相関特徴のマスクパターンに合わせて複数データを一括してレジスタにロードするロード処理手段と、レジスタの複数データを一括して積算の処理を行い積算レジスタに格納する積算処理手段と、積算レジスタの複数データを加算する際に、レジスタ要素がｎビットで２のｎ−１乗回繰り返す度に、次数Ｎ＝０の積算レジスタのうち１つでも２のｎ−１乗以上の値を持つ場合に、全積算レジスタに積算レジスタの各値を加算し、小計レジスタをすべて０にする加算処理手段とを備えることを特徴とする。
【発明の効果】
【００１３】
このような特徴を有する本発明のデータ処理装置によれば、高次局所自己相関特徴を抽出するマスクパターンに合わせて複数データを一括してレジスタにロードし、高速に積和の演算処理を実行し、高次局所自己相関特徴を高速に抽出する演算処理を行うことができる。このため、高次局所自己相関特徴を高速に抽出する処理を行うためのデータ処理装置が提供されることにより、このデータ処理装置をリアルタイムに動作する製品やシステムに組み込み、高次局所自己相関特徴（ＨＬＡＣ）または立体高次局所自己相関特徴（ＣＨＬＡＣ）を用いるデータ処理を行い、これを利用して、例えば、異常が起きたことを自動的に認識して警報を発するように構成された監視カメラシステムなどが実現できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施する形態について、図面を参照して説明する。まず、本発明の理解を容易とするために、ＨＬＡＣおよびＣＨＬＡＣの抽出処理について概略を説明する。図１は、画像データからＨＬＡＣの特徴ベクトルを抽出する処理を説明する模式図であり、図２は、画像データからＣＨＬＡＣの特徴ベクトルを抽出する処理を説明する模式図である。
【００１５】
図１には、ＨＬＡＣの抽出処理の手順が示されている。例えば、３×３の局所領域で、次数Ｎ＝２までのＨＬＡＣにおいては、２値画像に対して２５、濃淡画像に対して３５の変位パターン（マスクパターン）を持つ。この変位パターンによって画像全体に走査し、画素間の積の和を演算することにより、これをＨＬＡＣの特徴ベクトルとして抽出する。
【００１６】
図２には、ＣＨＬＡＣの抽出の手順が示されている。ＣＨＬＡＣの場合には、例えば、図２に示すように、３×３×３の局所領域で，次数Ｎ＝２までのＣＨＬＡＣでは、マスクパターンにより、２値画像に対して２５１次元の変位ベクトル、濃淡画像に対して２７５次元の変位ベクトルとして抽出される。抽出手順はＨＬＡＣと同じように、時系列画像などの３次元画像全体を走査し、画素間の積の和を求める。
【００１７】
ＨＬＡＣ／ＣＨＬＡＣは、加法性をもつため、その抽出処理では並列化により高速に処理を行うことができる。並列化の方法としては、ハードウェアやクラスタによる方法もあるが、より低コストで実現するために、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令を用いて、データ処理を命令レベルでの並列化を行う。ＳＩＭＤ命令は最近のＣＰＵの多くに搭載されており、１つの命令で複数のデータを同時並列に処理することができる命令である。
【００１８】
図３は、基本的なＨＬＡＣ／ＣＨＬＡＣの抽出処理を説明する図である。図３に示すように、基本的なＨＬＡＣ／ＣＨＬＡＣの抽出処理では、「
（１）マスクパターンを画像に当てはめ、
（２）各画素レジスタにロードし、
（３）各画素ごとに積和を計算する
」処理を行う。図３では、簡略化のため、２次元のＨＬＡＣで示している。すなわち、マスクパターンに合わせて、画素値をレジスタにロードし、その積和を求める処理を全画面に対して行う。ＣＨＬＡＣはＨＬＡＣを３次元に拡張したものであり、抽出手順はＨＬＡＣと同様である。１６画素から算出するには、１つのマスクパターンに対し、当然、１６回ずつのロード、積、和の処理が必要になる。
【００１９】
図４は、ＳＩＭＤ命令により行うＨＬＡＣの抽出処理を説明する図である。ＨＬＡＣの抽出処理を、ＳＩＭＤ命令の処理で行う場合、前述の場合と同様に、マスクパターンに合わせて各画素をレジスタにロードして積和を計算するが、一般的に画像データでは、ｘ方向に連続する画素は、メモリ上に連続して配置されているので、図４に示すように、隣接する画素をまとめてレジスタにロードすることができる。具体的には「
（１）マスクパターンをレジスタの左側の位置に合わせて画像に当てはめ、
（２）レジスタにｘ方向に連続する画素を一括してロードし、
（３）レジスタの各要素を一括して積和を計算する
」処理を行う。上記のようにマスクパターンに合わせて一括してロードすることで、例えば図４に示すマスクパターン（ＨＬＡＣにおける変位パターン）のように、位置のずれたパターンを一旦レジスタにロードすることで、積和処理の対象となるデータの位置が揃えられるため、以後の処理を一括して行うことができる。このレジスタの積和処理は、レジスタのビット幅に合わせて、ｍ個の要素を１度に行うことができるので、処理回数は単純に１／ｍに減らすことができる。たとえばレジスタのビット幅が１２８ビットで、画像が８ビットのとき、図４のように、１６画素の値を一度に扱うため、処理回数は単純に１／１６になる。
【００２０】
図５は、ゼロ条件による処理の省略を説明する図である。ＨＬＡＣ／ＣＨＬＡＣは、積の計算において、必ず中心が０次の項として含まれるが、この値がゼロのときは、ほかの変位パターンの場合も必ずゼロになるため、１次の項以降の計算を省略することができ、ＨＬＡＣの抽出処理を高速化できる。さらに、図５に示すように、１次の項と０次の項の積がゼロならば、２次の項以降の計算を省略できる。このため、後述するように、０判定処理部を設けて、ゼロを判定することにより以降の処理を省略することができる。この省略は、変位ベクトルの多いＣＨＬＡＣで特に有効である。
【００２１】
また、２値ＨＬＡＣ／ＣＨＬＡＣの場合において、ＨＬＡＣレジスタの要素がｂビットで構成されている場合、２ｂ回加算を繰り返すと、オーバーフローをおこすため、水平加算処理を行う必要がある。ただし、水平加算処理は、垂直加算処理と比べ、処理時間をかなり要するため、できるだけ少ない方がよい。そこで、２ｂ−１回加算処理を繰り返す度に、１つでも２ｂ−１以上の値を持つ場合にのみ、垂直加算処理を行う。これにより、処理を高速に行うことができる。次に、本発明の実施の態様として、ＨＬＡＣの抽出の処理を高速に行うデータ処理装置の構成について説明する。
【００２２】
図６は、本発明に係る第１の実施例のデータ処理装置の構成を示す図である。図６において、１０は入力データとなる画像データ、２０は抽出された特徴ベクトルの出力データである。１００はデータ処理装置、１０１はロード処理部、１０２は積算処理部、１０３はＨＬＡＣの特徴ベクトルを抽出するためのマスクパターンを格納しているマスクパターン格納部、１０４は演算処理に用いる例えばＳＩＭＤレジスタのレジスタである。
【００２３】
第１の実施例のデータ処理装置１００は、画像データ１０を入力し、ＨＬＡＣの特徴ベクトルを抽出する処理を行い、出力データ２０として出力する。この場合に、データ処理装置１００のデータ処理では、ロード処理部１０１が、入力された画像データ１０における各画素に対して、マスクパターン格納部１０３に格納されている変位パターンのマスクパターンに当てはめて、演算する画素をレジスタ１０４に一括ロードするロード処理を行い、レジスタ１０４にロードされた各画素のデータに対して、積算処理部１０２が積算処理を行い、ＨＬＡＣの特徴ベクトルを抽出し、出力データ２０として出力する。
【００２４】
図７は、第１実施例のデータ処理装置におけるデータ処理を処理フロー示すフローチャートである。第１の実施例のデータ処理装置では、図７に示すように、処理を開始すると、画像データを読み込み、まず、マスクパターンに合わせて、各画素をレジスタに一括でロードし（ステップ１２１）、レジスタの積を計算する（ステップ１２２）。
【００２５】
図８は、ＳＩＭＤレジスタの構成を示す図である。ＳＩＭＤ命令によりデータ処理を行う場合に用いるレジスタの構造を示している。また、図８の下部には、ここで用いる記号についても示されている。
【００２６】
図９は、ロード処理部のロード処理を詳細に示すフローチャートである。まず、図１における３×３マスクの中心画素に相当するレジスタＳ０に、注目する座標Ｒにおける画素値をロードする。ここでＳ０はＳＩＭＤレジスタであるため、ｘ方向に隣接するｍ個の画素値を一括にロードできる。ｎを１とし、図１における３×３マスクの中心以外の画素に相当するレジスタＳｎには、変数ベクトルＲの座標に対して変位ベクトルＡｎを加えた座標から、ｍ個の画素値を一括にロードする。同様にｎをｎ＋１としてロードし、レジスタＳ０，Ｓ１，…，ＳＮに画素値をロードする。
【００２７】
図１０は、本発明の第２の実施例にかかるデータ処理装置の構成を示す図である。この第２の実施例のデータ処理装置では、レジスタにロードされた各画素の積算処理を行う積算処理部と、積算演算が行われたデータに対して更に加算処理を行う加算処理部が設けられた構成となっている。
【００２８】
図１０において、１０は入力データとなる画像データ、２０は抽出された特徴ベクトルの出力データである。１０１はロード処理部、１０２は積算処理部、１０３はＨＬＡＣの特徴ベクトルを抽出するためのマスクパターンを格納しているマスクパターン格納部、１０４は演算処理に用いる例えばＳＩＭＤレジスタのレジスタ、１０５は加算処理を行う加算処理部、２００はデータ処理装置である。
【００２９】
第２の実施例のデータ処理装置２００は、画像データ１０を入力し、ＨＬＡＣの特徴ベクトルを抽出する処理を行い、出力データ２０として出力する。この場合に、データ処理装置２００のデータ処理では、ロード処理部１０１が、入力された画像データ１０における各画素に対して、マスクパターン格納部１０３に格納されているマスクパターンに当てはめて、演算する画素をレジスタ１０４に一括ロードするロード処理を行い、レジスタ１０４にロードされた各画素のデータに対して、積算処理部１０２が積算処理を行い、加算処理部１０５が積算処理を行った結果のデータに対して、加算処理を行い、ＨＬＡＣの特徴ベクトルを有する出力データ２０として出力する。
【００３０】
ここで画像の幅ｗが、ＳＩＭＤレジスタの要素数ｅの整数倍でない場合、画像の右端部分の処理（エッジ処理）は以下のように行う。画像の幅ｗに対してＳＩＭＤレジスタの要素数ｅによる剰余分に相当する右側の要素のビットをすべて１、それ以外のビットがすべて０となるレジスタをマスクレジスタＭとして定義する。変数ベクトルＲのｘ座標をｗ−ｅとして、演算する画素をレジスタ１０４に一括ロードするロード処理を行い、レジスタ１０４に対してマスクレジスタＭとの論理積をおこない、レジスタ１０４にロードされた各画素のデータに対して、積算処理部１０２が積算処理を行い、加算処理部１０５が積算処理を行った結果のデータに対して、加算処理を行う。
【００３１】
図１１は、第２実施例のデータ処理装置におけるデータ処理を処理フロー示すフローチャートである。第２の実施例のデータ処理装置では、図１１に示すように、処理を開始すると、出力データを０とすると共に、変数ベクトルＲを初期化する処理を行い（ステップ２０１，２０２）、画像データを読み込み、マスクパターンに合わせて、各画素をレジスタに一括でロードし（ステップ２０３）、レジスタの積を計算し（ステップ２０４）、続いて、積を計算した出力データに加算する処理を行う（ステップ２０５）。そして、変数ベクトルＲを次の位置に更新し（ステップ２０６）、変数ベクトルＲが画像の終端に達したか否かを判定し（ステップ２０７）、変数ベクトルＲが画像の終端に達するまで、ステップ２０３からステップ２０７までの処理を繰り返す。
【００３２】
図１２は、本発明の第３の実施例にかかるデータ処理装置の構成を示す図である。この第３の実施例のデータ処理装置は、第２の実施例のデータ処理装置に更にレジスタのロード処理を効率よく行うと共に、必要でない処理を省略するためのゼロ判定処理部が設けられた構成である。前述したように、ゼロ条件の判定により、必要でない処理を省略して処理の高速化を図る。
【００３３】
図１２において、１０は入力データとなる画像データ、２０は抽出された特徴ベクトルの出力データである。１０１はロード処理部、１０２は積算処理部、１０３はＨＬＡＣの特徴ベクトルを抽出するためのマスクパターンを格納しているマスクパターン格納部、１０４は演算処理に用いる例えばＳＩＭＤレジスタのレジスタ、１０５は加算処理を行う加算処理部、３００はデータ処理装置、３０１はゼロを判定するゼロ判定処理部である。
【００３４】
図１３は２値ＨＬＡＣにおける共有要素構成を説明する図である。ここで共有要素とは、Ｎ＝１と同様のマスクパターンを共有しているＮ＝２におけるマスクパターンを示している。このような共有要素構成をもつ部分は、図５のゼロ条件による処理の省略が可能である。
【００３５】
具体例として、背景を０、前景を１とし、前景に対し背景が多い場面に対では、多くの部分において処理の省略が可能である。図１４〜図１７は、マスクパターンにしたがってレジスタに一括ロードして加算処理を行うＨＬＡＣ処理を示すフローチャートである。これらの図を参照して、第３の実施例のデータ処理装置３００におけるデータ処理について説明する。図５により説明したように、ゼロ条件による処理を省略する場合の処理フローは、具体的には、図１４〜図１７に示すような処理フローとなる。
【００３６】
ここでは、Ｎ＝２の場合について説明する。図１４の処理フローに示すように、最初に出力データＪをゼロとし、座標の変数ベクトルを初期化し、変数ベクトルＲにしたがって画像内全体に走査し、図１５に示す処理（１）を行うことで、出力データＪを得る。
【００３７】
図１５は処理（１）の具体的な内容を示すフローチャートである。図９と同様の方法でＳ０レジスタをロードし、その中のすべての要素が０ならば以降の処理は省略できるので、処理１を終了する。０以外の要素を含んでいれば、Ｓ０をＪ（０、０）に加算し、変位ベクトルＡ１を含むＮ＝２の共有要素の数が予め決めた閾値ｔｈより大きければ、図１６に示す処理（２）を行い、閾値ｔｈ以下なら、図１７に示す処理（３）を行い、処理（１）を終了する。（最終的な出力は同じになるので、すべて処理（２）または処理（３）としてもよい。）
【００３８】
図１６は処理（２）の具体的な内容を示すフローチャートである。図９と同様の方法でＳ１レジスタをロードし、その中のすべての要素が０ならば以降の処理は省略できるので、処理（２）を終了する。０以外の要素を含んでいれば、Ｓ１にＳ１とＳ０の積を取り、Ｓ１を出力データＪ（１，Ａ１）に加算し、変位ベクトルＡ１を含む変位ベクトルＡ１を含むＮ＝２の共有要素すべてについて、図９と同様の方法でＳ２レジスタをロードし、Ｓ２にＳ２とＳ１の積を取り、Ｓ２を出力データＪ（２、Ａ２）に加算し、処理（２）を終了する。
【００３９】
図１７は処理（３）の具体的な内容を示すフローチャートである。図９と同様の方法でＳ１レジスタをロードし、Ｓ１にＳ１とＳ０の積を取り、Ｓ１を出力データＪ（１，Ａ１）に加算し、変位ベクトルＡ１を含むＮ＝２の共有要素すべてについて、図９と同様の方法でＳ２レジスタをロードし、Ｓ２にＳ２とＳ１の積を取り、Ｓ２を出力データＪ（２，Ａ２）に加算し、処理（３）を終了する。
【００４０】
図１８は、本発明の第４の実施例にかかるデータ処理装置の構成を示す図である。第４の実施例のデータ処理装置は、第３の実施例のデータ処理装置における加算処理部の構成を、垂直加算処理と水平加算処理とに分けて処理を実行し、更に処理を高速化した構成である。前述したように、このような構成は、加算を繰り返し行うことにより、オーバーフローを起こす場合に対応した構成となっている。
【００４１】
図１８において、１０は入力データとなる画像データ、２０は抽出された特徴ベクトルの出力データである。１０１はロード処理部、１０２は積算処理部、１０３はＨＬＡＣの特徴ベクトルを抽出するためのマスクパターンを格納しているマスクパターン格納部、１０４は演算処理に用いる例えばＳＩＭＤレジスタのレジスタ、３０１はゼロ判定処理部、４００はデータ処理装置、４０１は垂直加算処理部、４０２は水平加算処理部、４０３は垂直加算処理の結果データを格納する垂直加算データ格納部である。
【００４２】
図１９は、本発明の第４の実施例にかかるデータ処理装置の変形例の構成を示す図である。この第４の実施例にかかるデータ処理装置の変形例の構成は、第２の実施例のデータ処理装置における加算処理部１０５の構成を、垂直加算処理および水平加算処理とに分けて処理を実行し、更に処理を高速化した構成である。前述したように、このような構成は、加算を繰り返し行うことにより、オーバーフローを起こす場合に対応した構成となっている。
【００４３】
図１９において、１０は入力データとなる画像データ、２０は抽出された特徴ベクトルの出力データである。１０１はロード処理部、１０２は積算処理部、１０３はＨＬＡＣの特徴ベクトルを抽出するためのマスクパターンを格納しているマスクパターン格納部、１０４は演算処理に用いる例えばＳＩＭＤレジスタのレジスタ、４０１は垂直加算処理部、４０２は水平加算処理部、４０３は垂直加算処理の結果データを格納する垂直加算データ格納部、４１０はデータ処理装置である。
【００４４】
図２０は、第４の実施例のデータ処理装置におけるデータ処理を示すフローチャートである。第４の実施例のデータ処理装置では、図２０に示すような処理フローにより、ＨＬＡＣの特徴ベクトルの抽出処理を高速に行うことができる。
【００４５】
まず図２０は、最初に出力データ、垂直加算データ、プログラムカウンタｉをゼロとする。変数ベクトルＲは画像内全体を走査する。ある変数ベクトルＲに対して、すべてのマスクパターンについて図９と同様の方法でレジスタをロードし、その値を垂直加算データに垂直加算する。プログラムカウンタｉに１を加え、２の（ｂ−１）乗に一致した場合、プログラムカウンタｉをゼロとし、オーバーフローの確認を行う。０次の垂直加算データのうちどれかの要素が２の（ｂ−１）乗以上であれば、垂直加算データの全要素を出力データに加算し、垂直加算データを０とする。この処理を画像内全体に行う。画像の終端に至ったら、垂直加算データの全要素を出力データに加算し、出力データが得られる。
【００４６】
本発明によるデータ処理装置を評価するため、インテル社製のｘ８６プロセッサに搭載されているＭＭＸ命令、ＳＳＥ２／ＳＳＥ３命令を使用して、ＣＨＬＡＣ抽出処理を実装して実証実験を行った。ＭＭＸ命令では６４ｂｉｔレジスタ、ＳＳＥ命令では１２８ｂｉｔレジスタを用いる。これらによる処理速度を計測した。ここで用いた画像サイズは３２０×２４０で、カメラの前で手を振り、フレーム間差分を固定閾値で２値化した。
【００４７】
ＨＬＡＣ／ＣＨＬＡＣ抽出処理は、差分画素が少ない画像ほど、処理を省略できるため高速になる。反面、差分画素が多いと省略できず遅くなる。画像において照明が大きく変化した場合や、カメラが大きく動いた場合などに、多くの差分が現れる。そのような場面でもリアルタイムに動作できることが望ましい。
【００４８】
図２１は差分が多い場面のテスト画像の処理時間計測用テスト画像を示す図である。図２１（ａ）には通常場面の画像を示し、図２１（ｂ）に差分が多い場面の画像を示している。実証実験では、図２１（ａ）のような通常の差分画像に加えて、閾値を極端に低くし、図２１（ｂ）のように多くの差分領域が現れる画像を、速度面でのワーストケースと想定し、計測した。
【００４９】
表１に、ＣＨＬＡＣ抽出処理時間の計測結果を示す。これは、３フレームを用いてＣＨＬＡＣを抽出するために要する時間を計測した結果である。このテストは、Ｐｅｎｔｉｕｍ（登録商標）  Ｄ８４０（３．２ＧＨｚ）、Ｌｉｎｕｘ（Ｆｅｄｏｒａ  ｃｏｒｅ  ４）のＰＣ上で行なった。このように、ＳＳＥ２／ＳＳＥ３命令を使うことで、約９倍に高速化された。通常の差分画像で０．１２ｍｓｅｃ、最も遅い場面でも２．２ｍｓｅｃで処理を実行でき、３０フレーム／秒のリアルタイム動作に支障なく利用できる。
【表１】
2008165762.tif 000004
【産業上の利用可能性】
【００５０】
ＨＬＡＣ，ＣＨＬＡＣの有用性は、先行研究、特許文献などにより示されている。ＨＬＡＣ，ＣＨＬＡＣの特徴を抽出する処理を高速に処理することにより、産業界への技術移転、実用化が促進される。
【００５１】
特に、セキュリティに関して、大量のカメラが様々な場所に設置されるようになってきており、映像サーベイランスへの期待が大きい。しかし、現状では、映像を常に人が監視することはコストの問題で難しく、単に映像を記録しておくだけであることが多い。大規模な施設であれば多数のカメラ画像を、集中管理により監視員が常に見張ることができる。しかし、人手による限り、大量の映像に対し、完全に見落としなく注意を払うことは不可能である。このように、人手の限界が明確であることから、コンピュータによるインテリジェント化が急務であり、特に、ＣＨＬＡＣの適応学習を用いた異常検出や、人物認識・追跡といった方式への期待は大きい。
【図面の簡単な説明】
【００５２】
【図１】画像データからＨＬＡＣの特徴ベクトルを抽出する処理を説明する模式図である。
【図２】画像データからＣＨＬＡＣの特徴ベクトルを抽出する処理を説明する模式図である。
【図３】基本的なＨＬＡＣ／ＣＨＬＡＣの抽出処理を説明する図である。
【図４】ＳＩＭＤ命令により行うＨＬＡＣの抽出処理を説明する図である。
【図５】ゼロ条件による処理の省略を説明する図である。
【図６】本発明に係る第１の実施例のデータ処理装置の構成を示す図である。
【図７】第１実施例のデータ処理装置におけるデータ処理を示すフローチャートである。
【図８】ＳＩＭＤレジスタの構成を示す図である。
【図９】ロード処理部のロード処理を詳細に示すフローチャートである。
【図１０】本発明の第２の実施例にかかるデータ処理装置の構成を示す図である。
【図１１】第２の実施例のデータ処理装置におけるデータ処理を示すフローチャートである。
【図１２】本発明の第３の実施例にかかるデータ処理装置の構成を示す図である。
【図１３】２値ＨＬＡＣにおける共有要素構成を説明する図である。
【図１４】マスクパターンにしたがってレジスタに一括ロードして加算処理を行うＨＬＡＣ処理を示す第１のフローチャートである。
【図１５】マスクパターンにしたがってレジスタに一括ロードして加算処理を行うＨＬＡＣ処理を示す第２のフローチャートである。
【図１６】マスクパターンにしたがってレジスタに一括ロードして加算処理を行うＨＬＡＣ処理を示す第３のフローチャートである。
【図１７】マスクパターンにしたがってレジスタに一括ロードして加算処理を行うＨＬＡＣ処理を示す第４のフローチャートである。
【図１８】本発明の第４の実施例にかかるデータ処理装置の構成を示す図である。
【図１９】本発明の第４の実施例にかかるデータ処理装置の変形例の構成を示す図である。
【図２０】第４の実施例のデータ処理装置におけるデータ処理を示すフローチャートである。
【図２１】差分が多い場面のテスト画像の処理時間計測用テスト画像を示す図である。
【符号の説明】
【００５３】
１０  画像データ
２０  出力データ
１００  データ処理装置
１０１  ロード処理部
１０２  積算処理部
１０３  マスクパターン格納部
１０４  レジスタ
１０５  加算処理部
２００  データ処理装置
３００  データ処理装置
３０１  ゼロ判定処理部
４００  データ処理装置
４０１  垂直加算処理部、
４０２  水平加算処理部、
４０３  垂直加算データ格納部
４１０  データ処理装置
【図１】
2008165762.tif 000005
【図２】
2008165762.tif 000006
【図３】
2008165762.tif 000007
【図４】
2008165762.tif 000008
【図５】
2008165762.tif 000009
【図６】
2008165762.tif 000010
【図７】
2008165762.tif 000011
【図８】
2008165762.tif 000012
【図９】
2008165762.tif 000013
【図１０】
2008165762.tif 000014
【図１１】
2008165762.tif 000015
【図１２】
2008165762.tif 000016
【図１３】
2008165762.tif 000017
【図１４】
2008165762.tif 000018
【図１５】
2008165762.tif 000019
【図１６】
2008165762.tif 000020
【図１７】
2008165762.tif 000021
【図１８】
2008165762.tif 000022
【図１９】
2008165762.tif 000023
【図２０】
2008165762.tif 000024
【図２１】
2008165762.tif 000025