(57)【要約】【課題】大容量のバッファを必要とせずイメージセンサからのピクセルデータ出力に同期してリアルタイムで画像認識を行う。【解決手段】画像認識装置(100)は、ピクセルデータを受信しながらセルの特徴量を計算するセル特徴量計算部(10)と、セルの特徴量計算が完了するごとにセル位置を計算するセル位置計算部(20)と、セル位置に基づいてセルが所属するすべてのウィンドウのアドレスを計算するウィンドウアドレス計算部(30)と、各ウィンドウにおけるセルの重複数を計算するセル重複数計算部(40)と、セルの特徴量計算が完了するごとに各ウィンドウについてセル重複数だけ当該セルの特徴量を繰り返し適用して得たウィンドウの部分特徴量と参照画像において対応する部分特徴量とを比較してその中間結果を累積するセルベース画像比較部(50)と、１ウィンドウ分の画像比較が完了するごとに当該ウィンドウと参照画像との類似を判定する類似判定部(60)とを備える。【選択図】図３
2018136703.tif 000002
【特許請求の範囲】
【請求項１】
イメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルの特徴量計算を順次開始し、前記イメージセンサから各セルの最後のピクセルデータを受信し終えた時点で各セルの特徴量計算を順次完了するパイプライン処理を行うセル特徴量計算部と、
前記セル特徴量計算部においてセルの特徴量計算が完了するごとに、当該セルのフレーム画像内の位置を計算するセル位置計算部と、
前記セル位置計算部により計算されたセルのフレーム画像内の位置に基づいて、当該セルが所属するすべてのウィンドウのアドレスを計算するウィンドウアドレス計算部と、
前記セル位置計算部により計算されたセルのフレーム画像内の位置および前記ウィンドウアドレス計算部により計算されたウィンドウのアドレスに基づいて、当該ウィンドウにおいて当該セルがいくつのブロックに重複して所属するかを表すセル重複数を計算するセル重複数計算部と、
前記セル特徴量計算部においてセルの特徴量計算が完了するごとに、前記ウィンドウアドレス計算部により計算されたアドレスにより特定される各ウィンドウについて、前記セル重複数計算部により計算されたセル重複数だけ当該セルの特徴量を繰り返し適用して得られる当該ウィンドウの部分特徴量と参照画像において対応する部分特徴量とを比較してその中間結果を累積するセルベース画像比較部と、
前記セルベース画像比較部において１ウィンドウ分の画像比較が完了するごとに、当該ウィンドウと前記参照画像との類似を判定する類似判定部とを備えた画像認識装置。
【請求項２】
前記ウィンドウアドレス計算部が、
セルのフレーム画像内の位置から当該セルが所属するブロックのフレーム画像内の位置を計算するブロック位置計算部と、
ブロックのフレーム画像内の位置に基づいて、ウィンドウアドレス計算の基準となる先頭ウィンドウのアドレスを計算する先頭ウィンドウアドレス計算部と、
ブロックの列アドレスに基づいて、当該ブロックが所属するウィンドウが前記先頭ウィンドウに続いて行方向にいくつ並んでいるかを示す行方向連続数を計算する行方向連続数計算部と、
ブロックの行アドレスに基づいて、当該ブロックが所属するウィンドウが前記先頭ウィンドウに続いて列方向にいくつ並んでいるかを示す列方向連続数を計算する列方向連続数計算部と、
前記先頭ウィンドウのアドレス、前記行方向連続数、および前記列方向連続数を組み合わせてウィンドウのアドレスを生成するアドレス生成部とを有する、請求項１に記載の画像認識装置。
【請求項３】
前記先頭ウィンドウアドレス計算部が、ブロックのフレーム画像内の位置と先頭ウィンドウのアドレスとの対応関係を表すマップを参照して、与えられたブロックのフレーム画像内の位置に対応する先頭ウィンドウのアドレスを決定する、請求項２に記載の画像認識装置。
【請求項４】
前記行方向連続数計算部が、ブロックの列アドレスと行方向連続数との対応関係を表すテーブルを参照して、与えられたブロックの列アドレスに対応する行方向連続数を決定し、
前記列方向連続数計算部が、ブロックの行アドレスと列方向連続数との対応関係を表すテーブルを参照して、与えられたブロックの行アドレスに対応する列方向連続数を決定する、請求項２または請求項３に記載の画像認識装置。
【請求項５】
前記セル重複数計算部が、セル重複数として、セルがウィンドウのコーナーに位置する場合には「１」を、セルがウィンドウのエッジに位置する場合には「２」を、セルがウィンドウの内部に位置する場合には「４」を出力する、請求項１に記載の画像認識装置。
【請求項６】
前記セル重複数計算部が、ウィンドウごとにセルのフレーム画像内の位置とセル重複数との対応関係を表すマップを参照して、与えられたセルのフレーム画像内の位置およびウィンドウのアドレスに対応するセル重複数を決定する、請求項５に記載の画像認識装置。
【請求項７】
前記セルベース画像比較部が、ウィンドウの部分特徴量と参照画像の部分特徴量とのユークリッド距離を計算し、
前記類似判定部が、フレーム画像において参照画像とのユークリッド距離が最小のウィンドウを特定する、請求項１に記載の画像認識装置。
【請求項８】
イメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルの特徴量計算を順次開始し、前記イメージセンサから各セルの最後のピクセルデータを受信し終えた時点で各セルの特徴量計算を順次完了するパイプライン処理を行うセル特徴量計算部と、
前記セル特徴量計算部においてセルの特徴量計算が完了するごとに、当該セルのフレーム画像内の位置を計算するセル位置計算部と、
前記セル位置計算部により計算されたセルのフレーム画像内の位置に基づいて、当該セルが所属するすべてのウィンドウのアドレスを計算するウィンドウアドレス計算部と、
前記セル位置計算部により計算されたセルのフレーム画像内の位置および前記ウィンドウアドレス計算部により計算されたウィンドウのアドレスに基づいて、当該ウィンドウにおいて当該セルがいくつのブロックに重複して所属するかを表すセル重複数を計算するセル重複数計算部と、
前記セル特徴量計算部においてセルの特徴量計算が完了するごとに、前記ウィンドウアドレス計算部により計算されたアドレスにより特定される各ウィンドウについて、前記セル重複数計算部により計算されたセル重複数だけ当該セルの特徴量を繰り返し適用して得られる当該ウィンドウの部分特徴量と重みベクトルにおいて対応する部分ベクトルとの内積演算を行ってその中間結果を累積して当該ウィンドウの特徴量の次元を削減するセルベース次元削減部と、
前記セルベース次元削減部により次元削減されたウィンドウと参照画像とを比較する画像比較部と、
前記画像比較部においてウィンドウと参照画像との画像比較が完了するごとに、当該ウィンドウと当該参照画像との類似を判定する類似判定部とを備えた画像認識装置。
【請求項９】
前記セルベース次元削減部が、
ウィンドウの特徴量と重みベクトルとの内積演算を行って当該ウィンドウの特徴量を１次元に圧縮する１または複数の内積演算回路と、
前記１または複数の内積演算回路から出力される１または複数の１次元の成分を前記ウィンドウの次元削減後の特徴量として記憶するメモリとを有する、請求項８に記載の画像認識装置。
【請求項１０】
前記内積演算回路が、
前記セル特徴量計算部から出力されるセルの特徴量の各成分と前記重みベクトルにおいて対応する成分とを乗算し、当該乗算値を前記セル重複数計算部により計算されたセル重複数だけ累積する複数の部分内積演算回路と、
前記複数の部分内積演算回路から出力される値を合計する加算回路と、
前記加算回路から出力される中間値を１ウィンドウ分累積する中間値累積回路とを有する、請求項９に記載の画像認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識装置に関し、特に、イメージセンサからシリアル出力されるピクセルデータを受信しながらリアルタイムで画像認識を行う技術に関する。
【背景技術】
【０００２】
画像に人物などの対象物が含まれていることを認識する画像認識処理では、画像を所定サイズのウィンドウでスキャンしてウィンドウの画像特徴量（特徴ベクトル）を抽出し、識別器により対象物を認識する（例えば、特許文献１を参照）。画像特徴量としてＳＩＦＴ（Scale Invariant Feature Transform）、ＳＵＲＦ（Speeded Up Robust Features）、Ｈａａｒ−ｌｉｋｅ、ＨＯＧ（Histogram of Oriented Gradients）などが使用される。特にＨａａｒ−ｌｉｋｅおよびＨＯＧは人物の認識に有効な画像特徴量である。識別器として連想メモリやＳＶＭ（Support Vector Machine）などが用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１６１１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の画像認識処理は大量の複雑な計算を行う必要があることからソフトウェアで実行すると処理速度が遅くなるため、高速・高性能なＣＰＵ（Central Processing Unit）が必要とされる。しかし、特にモバイル機器では消費電力およびコストの観点からそのような高速・高性能なＣＰＵを実装することが困難である。このため、画像認識を高速処理可能なハードウェアで実現することが求められる。
【０００５】
また、従来の画像認識処理では画像をスキャンして画像特徴量を抽出するため、１フレームの画像を蓄積するための大容量のバッファが必要となり、回路規模が大きくなってしまうという問題がある。また、１フレームの画像が蓄積されるまでスキャンが開始できないことから、イメージセンサから撮像画像のピクセルデータが出力されてから画像特徴量が抽出されるまでのレイテンシが大きいという問題がある。このレイテンシの問題は画像認識のリアルタイム処理を困難にする一因となっている。
【０００６】
上記問題に鑑み、本発明は、大容量のバッファを必要とせずイメージセンサからのピクセルデータ出力に同期してリアルタイムで画像認識を行うことができる画像認識装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一局面に従った画像認識装置は、イメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルの特徴量計算を順次開始し、イメージセンサから各セルの最後のピクセルデータを受信し終えた時点で各セルの特徴量計算を順次完了するパイプライン処理を行うセル特徴量計算部と、セル特徴量計算部においてセルの特徴量計算が完了するごとに、当該セルのフレーム画像内の位置を計算するセル位置計算部と、セル位置計算部により計算されたセルのフレーム画像内の位置に基づいて、当該セルが所属するすべてのウィンドウのアドレスを計算するウィンドウアドレス計算部と、セル位置計算部により計算されたセルのフレーム画像内の位置およびウィンドウアドレス計算部により計算されたウィンドウのアドレスに基づいて、当該ウィンドウにおいて当該セルがいくつのブロックに重複して所属するかを表すセル重複数を計算するセル重複数計算部と、セル特徴量計算部においてセルの特徴量計算が完了するごとに、ウィンドウアドレス計算部により計算されたアドレスにより特定される各ウィンドウについて、セル重複数計算部により計算されたセル重複数だけ当該セルの特徴量を繰り返し適用して得られる当該ウィンドウの部分特徴量と参照画像において対応する部分特徴量とを比較してその中間結果を累積するセルベース画像比較部と、セルベース画像比較部において１ウィンドウ分の画像比較が完了するごとに、当該ウィンドウと参照画像との類似を判定する類似判定部とを備えたものである。
【０００８】
これによると、１フレーム分のピクセルデータやインテグラルイメージをバッファに蓄積してフレーム画像が完成するのを待たずに、イメージセンサからのピクセルデータの出力開始に合わせてセルの特徴量の計算が開始され、セルの特徴量計算が完了するごとに当該セルが所属するウィンドウにおける当該セルの重複数を考慮して計算された当該ウィンドウの部分特徴量と参照画像において対応する部分特徴量との比較が行われ、１ウィンドウ分の画像比較が完了するごとに当該ウィンドウと参照画像との類否が判定される。このため、イメージセンサから撮像画像のピクセルデータが出力されてから画像認識が完了するまでのレイテンシを小さくすることができる。
【発明の効果】
【０００９】
本発明によると、大容量のバッファを必要とせずイメージセンサからのピクセルデータ出力に同期してリアルタイムで画像認識を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】画像認識処理におけるフレーム画像の処理単位を説明する図
【図２】イメージセンサからのピクセルデータ出力を説明する図
【図３】本発明の一実施形態に係る画像認識装置の概略ブロック図
【図４Ａ】Ｈａａｒ−ｌｉｋｅ特徴量計算においてサブセルを左右２分割する例を示す図
【図４Ｂ】Ｈａａｒ−ｌｉｋｅ特徴量計算においてサブセルを上下２分割する例を示す図
【図５】第１の構成例に係るセル特徴量計算部の概略ブロック図
【図６】サブセル特徴量演算回路における特徴量Ｄｘ演算回路の詳細構成図
【図７Ａ】特徴量Ｄｘ演算回路のタイミングチャート
【図７Ｂ】特徴量Ｄｘ演算過程のデュアルポートメモリの記憶データの変遷を表す図
【図８】セル特徴量演算回路における特徴量ΣＤｘ演算回路の詳細構成図
【図９】セル特徴量演算過程のデュアルポートメモリの記憶データの変遷を表す図
【図１０】サブセル特徴量演算回路における特徴量Ｄｙ演算回路の詳細構成図
【図１１Ａ】特徴量Ｄｙ演算回路のタイミングチャート
【図１１Ｂ】特徴量Ｄｙ演算過程のデュアルポートメモリの記憶データの変遷を表す図
【図１２】ピクセルの輝度勾配を説明する図
【図１３】第２の構成例に係るセル特徴量計算部の概略ブロック図
【図１４】第２の構成例に係るセル特徴量計算部の詳細ブロック図
【図１５】一例に係るピクセル演算回路の構成図
【図１６】ウィンドウのアドレスを説明する図
【図１７】ウィンドウアドレス計算部の概略ブロック図
【図１８】ブロックの位置と先頭ウィンドウのアドレスとの対応関係を表すマップである。
【図１９】ブロックの列アドレスと行方向連続数との対応関係、およびブロックの行アドレスと列方向連続数との対応関係を表すテーブル
【図２０】ウィンドウにおける各セルのブロック所属数を表す図
【図２１】セル重複数計算部の概略ブロック図
【図２２】セルベース画像比較部の概略ブロック図
【図２３】類似判定部の概略ブロック図
【図２４】変形例に係る画像認識装置の概略ブロック図
【図２５】次元削減部の概略ブロック図
【発明を実施するための形態】
【００１１】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。ただし、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１２】
なお、発明者らは、当業者が本発明を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１３】
１．画像認識における画像処理単位
画像認識において１枚の画像データすなわちフレーム画像は複数の処理単位に細分化されて処理される。図１は画像認識処理におけるフレーム画像の処理単位を説明する図である。フレーム画像において参照画像データとの比較単位としてウィンドウが区画される。ウィンドウ単位で特徴量が抽出されて参照画像データとの類似度（例えばウィンドウの特徴量と参照画像データの特徴量とのユークリッド距離）が計算される。ウィンドウのサイズは例えば横６４ピクセル×縦１２８ピクセルである。フレーム画像においてウィンドウは下記のブロック単位（例えば１６ピクセル単位）で縦横にそれぞれシフトして設定され得る。
【００１４】
なお、カラー画像の場合、ＲＧＢの各色ピクセルにより画像データが構成されるが、本明細書では便宜のためカラーを考慮せずに画像データが単一色ピクセルで構成されているものとする。
【００１５】
ウィンドウは特徴量の最小単位であるセルを複数含む。セルは例えば８×８のピクセルの集まりである。セルはさらにサブセルに細分化されることがある。サブセルは例えば４×４のピクセルの集まりであり、セルを２×２に細分化したものの一つである。
【００１６】
ウィンドウにおいて特徴量計算の最小単位としてブロックが区画される。ブロックは例えば２×２のセルの集まりであり、ブロックのサイズは例えば横１６ピクセル×縦１６ピクセルである。ウィンドウにおいてブロックはセル単位で縦横にそれぞれシフトして設定され得る。例えば、ウィンドウのサイズを横６４ピクセル×縦１２８ピクセル、ブロックのサイズを横１６ピクセル×縦１６ピクセル、セルのサイズを横８ピクセル×縦８ピクセルとすると、フレーム画像において３７×２３＝８５１のウィンドウが設定され、ウィンドウにおいて７×１５＝１０５のブロックが設定され得る。
【００１７】
上記のようにフレーム画像においてウィンドウ同士は互いに一部が重複して区画され、ウィンドウにおいてブロック同士は互いに一部が重複して区画され得る。一方、セルは互いに重複することなくフレーム画像において縦横規則正しく配列されている。例えば、フレーム画像のサイズを横Ｎピクセル×縦Ｍピクセル、セルのサイズを横８ピクセル×縦８ピクセルとすると、フレーム画像においてセルは行方向にＮ／８個、列方向にＭ／８個並んでいる。
【００１８】
画像認識で参照される画像データはイメージセンサが光学結像を光電変換することにより生成される。イメージセンサには複数の光電変換素子がマトリックス状に配置（画素アレイ）されており、各光電変換素子の信号（以下、ピクセルデータをいう）がフレーム画像における各ピクセルに対応する。
【００１９】
イメージセンサにより撮像された１フレーム分の画像はピクセルデータをシリアル出力することで外部に出力される。図２はイメージセンサからのピクセルデータ出力を説明する図である。例えば、イメージセンサから、画素アレイにおける１行目１列目の光電変換素子から行方向優先でピクセルデータが順に出力される。図中のジグザグの矢印はピクセルデータの出力順を示している。このシリアル出力されるピクセルデータをフレームバッファなどに蓄積することでフレーム画像が形成される。
【００２０】
２．画像認識装置の概要
本発明の一実施形態に係る画像認識装置は、１フレーム分のピクセルデータやインテグラルイメージをバッファに蓄積してフレーム画像が完成してから画像特徴量を抽出するのではなく、フレーム画像の完成を待たずにイメージセンサからのピクセルデータ出力に同期してリアルタイムで画像認識を行う。すなわち、本発明の一実施形態に係る画像認識装置は、イメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルの特徴量計算をパイプライン処理し、計算されたセルの特徴量と参照画像において対応する部分特徴量とを比較してその中間結果を累積して１ウィンドウ分の画像比較結果が得られるごとに当該ウィンドウと参照画像との類似を判定するものである。
【００２１】
例えば、図２に示したようにイメージセンサから行方向優先でピクセルデータが出力される場合において、本発明の一実施形態に係る画像認識装置は、イメージセンサから１行目１列目のピクセルデータを受信すると第１セルの特徴量計算を開始し、１行目９列目のピクセルデータを受信するとその右隣の第２セルの特徴量計算を開始するといったように次々とセルの特徴量計算を開始し、８行目８列目のピクセルデータを受信したときに第１セルの特徴量計算を完了して当該第１のセルの特徴量と参照画像において対応する部分特徴量との比較を行い、８行目１６列目のピクセルデータを受信したときにその右隣の第２セルの特徴量計算を完了して当該第２セルの特徴量と参照画像において対応する部分特徴量とを比較するといったように次々とセルの特徴量計算を完了して計算されたセルの特徴量と参照画像において対応する部分特徴量とを比較する。したがって、１行のピクセル数がＮの場合、画像認識装置はＮ／８個のセルをパイプライン処理することとなる。
【００２２】
３．画像認識装置の構成例
図３は本発明の一実施形態に係る画像認識装置の概略ブロック図である。本実施形態に係る画像認識装置１００は、セル特徴量計算部１０と、セル位置計算部２０と、ウィンドウアドレス計算部３０と、セル重複数計算部４０と、セルベース画像比較部５０と、類似判定部６０とを備えている。具体的には、これら構成要素はすべて論理回路で構成することができ、画像認識装置１００は半導体集積回路で実現することができる。以下、各構成要素を詳細に説明する。
【００２３】
３．１  セル特徴量計算部
セル特徴量計算部１０は、図略のイメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルの特徴量計算を順次開始し、イメージセンサから各セルの最後のピクセルデータを受信し終えた時点で各セルの特徴量計算を順次完了するパイプライン処理を行う。セルの特徴量を計算するための画像特徴記述子にはさまざまなものがあるが、Ｈａａｒ−ｌｉｋｅおよびＨＯＧをそれぞれ適用したセル特徴量計算部１０の構成例について説明する。
【００２４】
３．１．１  第１の構成例
第１の構成例に係るセル特徴量計算部１０はＨａａｒ−ｌｉｋｅを適用したものである。本構成例では計算量を少なくするためにサブセルを左右２分割および上下２分割した２パターンから各セルのＨａａｒ−ｌｉｋｅ特徴量を計算する。
【００２５】
図４ＡはＨａａｒ−ｌｉｋｅ特徴量計算においてサブセルを左右２分割する例を示す図である。図４ＢはＨａａｒ−ｌｉｋｅ特徴量計算においてサブセルを上下２分割する例を示す図である。いまセルにおける４つのサブセルをｓ１，ｓ２，ｓ３，ｓ４とし、各サブセルにおいて左右２分割された左側領域をＬ、右側領域をＲ、上下２分割された上側領域をＵ、下側領域をＤとすると、左右領域のピクセル値（例えば輝度）の誤差（例えば輝度差）Ｄｘおよびその絶対値|Ｄｘ|および上下領域のピクセル値の誤差（例えば輝度差）Ｄｙおよびその絶対値|Ｄｙ|は次式１ないし４で計算される。
【００２６】
Ｄｘ＝Σｐ∈ＬＩ（ｐ）−Σｐ∈ＲＩ（ｐ）…（１）
|Ｄｘ|＝|Σｐ∈ＬＩ（ｐ）−Σｐ∈ＲＩ（ｐ）|…（２）
Ｄｙ＝Σｐ∈ＵＩ（ｐ）−Σｐ∈ＤＩ（ｐ）…（３）
|Ｄｙ|＝|Σｐ∈ＵＩ（ｐ）−Σｐ∈ＤＩ（ｐ）|…（４）
ただし、ｐはピクセルであり、Ｉ（ｐ）はピクセル値であり、ｘ、ｙはそれぞれ画像における水平方向および垂直方向を表す。
【００２７】
そして、次式５ないし８で計算される４つのサブセルの特徴量Ｄｘおよび|Ｄｘ|の合計値ΣＤｘおよびΣ|Ｄｘ|ならびに４つのサブセルの特徴量Ｄｙおよび|Ｄｙ|の合計値ΣＤｙおよびΣ|Ｄｙ|がセルのＨａａｒ−ｌｉｋｅ特徴量である。
【００２８】
ΣＤｘ＝Ｄｘｓ１＋Ｄｘｓ２＋Ｄｘｓ３＋Ｄｘｓ４…（５）
Σ|Ｄｘ|＝|Ｄｘｓ１|＋|Ｄｘｓ２|＋|Ｄｘｓ３|＋|Ｄｘｓ４|…（６）
ΣＤｙ＝Ｄｙｓ１＋Ｄｙｓ２＋Ｄｙｓ３＋Ｄｙｓ４…（７）
Σ|Ｄｙ|＝|Ｄｙｓ１|＋|Ｄｙｓ２|＋|Ｄｙｓ３|＋|Ｄｙｓ４|…（８）
すなわち、本構成例に係るセル特徴量計算部１０は一つのセルにつき４次元のＨａａｒ−ｌｉｋｅ特徴量｛ΣＤｘ，Σ|Ｄｘ|，ΣＤｙ，Σ|Ｄｙ|｝を計算する。
【００２９】
図５は第１の構成例に係るセル特徴量計算部１０の概略ブロック図である。セル特徴量計算部１０は、パイプラインコントローラ１１と、サブセル特徴量演算回路１２と、セル特徴量演算回路１３と、２つのデュアルポートメモリ１４Ａ，１４Ｂとを備えている。
【００３０】
パイプラインコントローラ１１は、デュアルポートメモリ１４Ａにデータ読み出しアドレスａｄｄｒＲ１およびデータ書き込みアドレスａｄｄｒＷ１を供給し、デュアルポートメモリ１４Ｂにデータ読み出しアドレスａｄｄｒＲ２およびデータ書き込みアドレスａｄｄｒＷ２を供給する。また、パイプラインコントローラ１１は、サブセル特徴量演算回路１２およびセル特徴量演算回路１３に図略の制御信号を出力してこれら回路の演算動作を制御する。
【００３１】
サブセル特徴量演算回路１２は、図略のイメージセンサから行方向優先でシリアル出力されるピクセルデータを受けて式１，３の演算を実行してサブセルの特徴量Ｄｘ，Ｄｙを計算する回路である。いま１行のピクセル数をＮとすると、１行にＮ／４個のサブセルが存在する。サブセルの特徴量Ｄｘ，Ｄｙは各サブセルに属するすべてのピクセルデータが入力され終わるまで確定しないため、サブセル特徴量演算回路１２はＮ／４個のサブセルの特徴量計算を並列に行う必要がある。サブセル特徴量演算回路１２は各サブセルの中間計算値をデュアルポートメモリ１４Ａに保存しながらパイプライン処理によりＮ／４個のサブセルの特徴量計算を並列に行う。
【００３２】
デュアルポートメモリ１４Ａは、サブセル特徴量演算回路１２から出力される中間計算値を一時的に保存するメモリである。デュアルポートメモリ１４Ａは、サブセル特徴量演算回路１２から出力されるあるサブセルの中間計算値を指定されたアドレスａｄｄｒＷ１に書き込むとともに、指定されたアドレスａｄｄｒＲ１に一時保存されている別のサブセルの中間計算値をサブセル特徴量演算回路１２に供給する。
【００３３】
セル特徴量演算回路１３は、サブセル特徴量演算回路１２から行方向優先でシリアル出力されるサブセルの特徴量Ｄｘ，Ｄｙを受けて式５ないし８の演算を実行する回路である。いま１行のピクセル数をＮとすると、１行にＮ／８個のセルが存在する。セルのＨａａｒ−ｌｉｋｅ特徴量｛ΣＤｘ，Σ|Ｄｘ|，ΣＤｙ，Σ|Ｄｙ|｝は各セルに属するすべてのサブセルの特徴量Ｄｘ，Ｄｙが入力され終わるまで確定しないため、セル特徴量演算回路１３はＮ／８個のセルのＨａａｒ−ｌｉｋｅ特徴量計算を並列に行う必要がある。このため、セル特徴量演算回路１３は各セルの中間計算値をデュアルポートメモリ１４Ｂに保存しながらパイプライン処理によりＮ／８個のサブセルの特徴量計算を並列に行う。
【００３４】
デュアルポートメモリ１４Ｂは、セル特徴量演算回路１３から出力される中間計算値を一時的に保存するメモリである。デュアルポートメモリ１４Ｂは、セル特徴量演算回路１３から出力されるあるセルの中間計算値を指定されたアドレスａｄｄｒＷ２に書き込むとともに、指定されたアドレスａｄｄｒＲ２に一時保存されている別のセルの中間計算値をセル特徴量演算回路１３に供給する。
【００３５】
図６はサブセル特徴量演算回路１２における特徴量Ｄｘ演算回路の詳細構成図である。特徴量Ｄｘ演算回路１２Ａは、２つのマルチプレクサＭ１，Ｍ２、２つのアダーＡ１，Ａ２、４つのレジスタＲ１，Ｒ２，Ｒ３，Ｒ４などから構成することができる。マルチプレクサＭ１は“０”およびデュアルポートメモリ１４Ａから供給される中間計算値を受けていずれか一方を出力する。マルチプレクサＭ２はマルチプレクサＭ１の出力およびレジスタＲ１の保持値を受けていずれか一方を出力する。マルチプレクサＭ１，Ｍ２がいずれの入力信号を出力するかはパイプラインコントローラ１１により制御される。アダーＡ１は図略のイメージセンサからシリアル出力されるピクセルデータ（入力ａ）とマルチプレクサＭ２の出力（入力ｂ）とを加算する。ここで図略のイメージセンサからｉ番目に出力されるピクセルデータをＰ［ｉ］で表す。また１行のピクセル数をＮとする。したがってＰ［１］，Ｐ［２］，…，Ｐ［Ｎ］は１行目のピクセルデータであり、Ｐ［Ｎ＋１］は２行目の最初のピクセルデータである。なお、図６に示したデュアルポートメモリ１４Ａの記憶データは、特徴量Ｄｘ演算回路１２ＡにおいてＰ［１］からＰ［Ｎ］までのピクセルデータの処理が終わったときの状態を表している。
【００３６】
レジスタＲ１はアダーＡ１の計算結果を保持する。レジスタＲ２，Ｒ３はレジスタＲ１の保持値を受けて保持する。なお、レジスタＲ２，Ｒ３が入力信号を保持するタイミング、およびレジスタＲ２，Ｒ３のいずれがアダーＡ１の計算結果を保持するかはパイプラインコントローラ１１から出力されるロード信号により制御される。アダーＡ２はレジスタＲ２の保持値とレジスタＲ３の保持値との差を計算する。レジスタＲ４はアダーＡ２の計算結果を保持する。レジスタＲ４の保持値がサブセルの特徴量Ｄｘである。
【００３７】
図７Ａは特徴量Ｄｘ演算回路１２ＡにおけるアダーＡ１の入力ａ，ｂ、レジスタＲ１の保持値、デュアルポートメモリ１４Ａの記憶データのタイミングチャートである。図７Ｂは特徴量Ｄｘ演算過程のデュアルポートメモリ１４Ａの記憶データの変遷を表す図である。これら図を参照して特徴量Ｄｘ演算回路１２Ａの動作について説明する。
【００３８】
特徴量Ｄｘ演算回路１２Ａに１行目の最初のピクセルデータ、すなわち、図４Ａに示したサブセルの左側領域Ｌの最初のピクセルデータであるＰ［１］が入力されると、アダーＡ１の入力ａにはＰ［１］が、入力ｂにはマルチプレクサＭ１，Ｍ２を経由して“０”が、それぞれ与えられる。デュアルポートメモリ１４ＡはレジスタＲ１の保持値（ただしこの時点ではドントケア値である）をアドレス“１”に記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［１］＋０を保持する。
【００３９】
特徴量Ｄｘ演算回路１２Ａに次のピクセルデータであるＰ［２］が入力されると、アダーＡ１の入力ａにはＰ［２］が、入力ｂにはレジスタＲ１の保持値であるＰ［１］が、それぞれ与えられる。デュアルポートメモリ１４ＡはレジスタＲ１の保持値をアドレス“１”に記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［１］＋Ｐ［２］を新たに保持する。
【００４０】
特徴量Ｄｘ演算回路１２Ａに次のピクセルデータ、すなわち、図４Ａに示したサブセルの右側領域Ｒの最初のピクセルデータであるＰ［３］が入力されると、アダーＡ１の入力ａにはＰ［３］が、入力ｂにはマルチプレクサＭ１，Ｍ２を経由して“０”が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“１”にレジスタＲ１の保持値であるＰ［１］＋Ｐ［２］を記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［３］＋０を新たに保持する。
【００４１】
特徴量Ｄｘ演算回路１２Ａに次のピクセルデータであるＰ［４］が入力されると、アダーＡ１の入力ａにはＰ［４］が、入力ｂにはレジスタＲ１の保持値であるＰ［３］が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“２”にレジスタＲ１の保持値を記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［３］＋Ｐ［４］を新たに保持する。
【００４２】
その後、特徴量Ｄｘ演算回路１２Ａに２行目の最初のピクセルデータであるＰ［Ｎ＋１］が入力されると、アダーＡ１の入力ａにはＰ［Ｎ＋１］が、入力ｂにはデュアルポートメモリ１４Ａのアドレス“１”から読み出されたＰ［１］＋Ｐ［２］が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“Ｎ／２”にレジスタＲ１の保持値であるＰ［Ｎ−１］＋Ｐ［Ｎ］を記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［１］＋Ｐ［２］＋Ｐ［Ｎ＋１］を新たに保持する。
【００４３】
特徴量Ｄｘ演算回路１２Ａに次のピクセルデータであるＰ［Ｎ＋２］が入力されると、アダーＡ１の入力ａにはＰ［Ｎ＋２］が、入力ｂにはレジスタＲ１の保持値であるＰ［１］＋Ｐ［２］＋Ｐ［Ｎ＋１］が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“Ｎ／２”にレジスタＲ１の保持値を記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［１］＋Ｐ［２］＋Ｐ［Ｎ＋１］＋Ｐ［Ｎ＋２］を新たに保持する。
【００４４】
その後、特徴量Ｄｘ演算回路１２Ａに４行目２列目のピクセルデータ、すなわち、図４Ａに示したサブセルの左側領域Ｌの最後のピクセルデータであるＰ［３Ｎ＋２］が入力されると、アダーＡ１の入力ａにはＰ［３Ｎ＋２］が、入力ｂにはレジスタＲ１の保持値であるＰ［１］＋Ｐ［２］＋…＋Ｐ［３Ｎ＋１］が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“１”にレジスタＲ１の保持値を記憶する。レジスタＲ１はアダーＡ１の加算結果であるＰ［１］＋Ｐ［２］＋…＋Ｐ［３Ｎ＋１］＋Ｐ［３Ｎ＋２］を新たに保持する。これでサブセルの左側領域Ｌに属するすべてのピクセルデータの加算が終わるため、レジスタＲ２はレジスタＲ１の保持値であるＰ［１］＋Ｐ［２］＋…＋Ｐ［３Ｎ＋１］＋Ｐ［３Ｎ＋２］を保持する。
【００４５】
同様にして、特徴量Ｄｘ演算回路１２Ａに４行目４列目のピクセルデータ、すなわち、図４Ａに示したサブセルの右側領域Ｒの最後のピクセルデータであるＰ［３Ｎ＋４］が入力されると、サブセルの右側領域Ｒに属するすべてのピクセルデータの加算が終わるため、レジスタＲ３はレジスタＲ１の保持値であるＰ［３］＋Ｐ［４］＋…＋Ｐ［３Ｎ＋３］＋Ｐ［３Ｎ＋４］を保持する。
【００４６】
アダーＡ２はレジスタＲ２の保持値とレジスタＲ３の保持値の符号反転値とを加算する。すなわち、アダーＡ２は式１の演算を実行し、その計算結果である１行目１列目のサブセルの特徴量ＤｘがレジスタＲ４に保持される。以後同様にして別のサブセルの特徴量Ｄｘが順次計算される。
【００４７】
図８はセル特徴量演算回路１３における特徴量ΣＤｘ演算回路の詳細構成図である。特徴量ΣＤｘ演算回路１３Ａは、式５の演算を実行する回路であり、２つのマルチプレクサＭ３，Ｍ４、アダーＡ３、レジスタＲ５などから構成することができる。マルチプレクサＭ３は“０”およびデュアルポートメモリ１４Ｂから供給される中間計算値を受けていずれか一方を出力する。マルチプレクサＭ４はマルチプレクサＭ３の出力およびレジスタＲ５の保持値を受けていずれか一方を出力する。マルチプレクサＭ３，Ｍ４がいずれの入力信号を出力するかはパイプラインコントローラ１１により制御される。
【００４８】
アダーＡ３は特徴量Ｄｘ演算回路１２Ａから出力される特徴量Ｄｘ（入力ａ）とマルチプレクサＭ４の出力（入力ｂ）とを加算する。ここで特徴量Ｄｘ演算回路１２Ａからｊ番目に出力される特徴量ＤｘをＤｘ［ｊ］で表す。また１行のピクセル数をＮとする。したがってＤｘ［１］，Ｄｘ［２］，…，Ｄｘ［Ｎ／４］は１行目の特徴量Ｄｘであり、Ｄｘ［Ｎ／４＋１］は２行目の特徴量Ｄｘである。レジスタＲ５はアダーＡ３の計算結果を保持する。レジスタＲ５の保持値がセルの特徴量ΣＤｘである。なお、図８に示したデュアルポートメモリ１４Ｂの記憶データは、特徴量ΣＤｘ演算回路１３ＡにおいてＤｘ［１］からＤｘ［Ｎ／４］までの特徴量の処理が終わったときの状態を表している。
【００４９】
図９はセル特徴量演算過程のデュアルポートメモリ１４Ｂの記憶データの変遷を表す図である。同図を参照して特徴量ΣＤｘ演算回路１３Ａの動作について説明する。
【００５０】
特徴量ΣＤｘ演算回路１３Ａに１行目の最初の特徴量ＤｘであるＤｘ［１］が入力されると、アダーＡ３の入力ａにはＤｘ［１］が、入力ｂにはマルチプレクサＭ３，Ｍ４を経由して“０”が、それぞれ与えられる。デュアルポートメモリ１４ＢはレジスタＲ５の保持値（ただしこの時点ではドントケア値である）をアドレス“１”に記憶する。レジスタＲ５はアダーＡ３の加算結果であるＤｘ［１］＋０を保持する。
【００５１】
特徴量ΣＤｘ演算回路１３Ａに次の特徴量ＤｘであるＤｘ［２］が入力されると、アダーＡ３の入力ａにはＤｘ［２］が、入力ｂにはレジスタＲ５の保持値であるＤｘ［１］が、それぞれ与えられる。デュアルポートメモリ１４ＢはレジスタＲ５の保持値をアドレス“１”に記憶する。レジスタＲ５はアダーＡ３の加算結果であるＤｘ［１］＋Ｄｘ［２］を新たに保持する。
【００５２】
特徴量ΣＤｘ演算回路１３Ａに次の特徴量ＤｘであるＤｘ［３］が入力されると、アダーＡ３の入力ａにはＤｘ［３］が、入力ｂにはマルチプレクサＭ３，Ｍ４を経由して“０”が、それぞれ与えられる。デュアルポートメモリ１４Ｂはアドレス“１”にレジスタＲ５の保持値であるＤｘ［１］＋Ｄｘ［２］を記憶する。レジスタＲ５はアダーＡ３の加算結果であるＤｘ［３］＋０を新たに保持する。
【００５３】
特徴量ΣＤｘ演算回路１３Ａに次の特徴量ＤｘであるＤｘ［４］が入力されると、アダーＡ３の入力ａにはＤｘ［４］が、入力ｂにはレジスタＲ５の保持値であるＤｘ［３］が、それぞれ与えられる。デュアルポートメモリ１４Ｂはアドレス“２”にレジスタＲ５の保持値を記憶する。レジスタＲ５はアダーＡ３の加算結果であるＤｘ［３］＋Ｄｘ［４］を新たに保持する。
【００５４】
その後、特徴量ΣＤｘ演算回路１３Ａに２行目の最初の特徴量ＤｘであるＤｘ［Ｎ／４＋１］が入力されると、アダーＡ３の入力ａにはＤｘ［Ｎ／４＋１］が、入力ｂにはデュアルポートメモリ１４Ｂのアドレス“１”から読み出されたＤｘ［１］＋Ｄｘ［２］が、それぞれ与えられる。デュアルポートメモリ１４Ｂはアドレス“Ｎ／８”にレジスタＲ５の保持値であるＤｘ［Ｎ／４−１］＋Ｄｘ［Ｎ／４］を記憶する。レジスタＲ５はアダーＡ３の加算結果であるＤｘ［１］＋Ｄｘ［２］＋Ｄｘ［Ｎ／４＋１］を新たに保持する。
【００５５】
特徴量ΣＤｘ演算回路１３Ａに次の特徴量Ｄｘ、すなわち、図４Ａに示したセルにおけるサブセルｓ４の特徴量ＤｘであるＤｘ［Ｎ／４＋２］が入力されると、アダーＡ３の入力ａにはＤｘ［Ｎ／４＋２］が、入力ｂにはレジスタＲ５の保持値であるＤｘ［１］＋Ｄｘ［２］＋Ｄｘ［Ｎ／４＋１］が、それぞれ与えられる。デュアルポートメモリ１４Ｂはアドレス“１”にレジスタＲ５の保持値を記憶する。レジスタＲ５はアダーＡ３の加算結果であるＤｘ［１］＋Ｄｘ［２］＋Ｄｘ［Ｎ／４＋１］＋Ｄｘ［Ｎ／４＋２］を新たに保持する。これでセルを構成する４つのサブピクセルの特徴量Ｄｘの加算が終わる。すなわち、式５の計算が完了し、その計算結果である１行目１列目のセルの特徴量ΣＤｘがレジスタＲ５に保持される。以後同様にして別のセルの特徴量ΣＤｘが順次計算される。
【００５６】
なお、図示を省略するが、アダーＡ３の入力ａの前段に特徴量Ｄｘ演算回路１２Ａから出力される特徴量Ｄｘの絶対値を計算する回路を設けることで、上記の特徴量ΣＤｘ演算回路１３Ａを、式６で表されるセルの特徴量Σ|Ｄｘ|を演算する特徴量Σ|Ｄｘ|演算回路に変形することができる。
【００５７】
図１０はサブセル特徴量演算回路１２における特徴量Ｄｙ演算回路の詳細構成図である。特徴量Ｄｙ演算回路１２Ｂは、２つのマルチプレクサＭ５，Ｍ６、アダーＡ４、３つのレジスタＲ６，Ｒ７，Ｒ８などから構成することができる。アダーＡ４は加算および減算の切り替えができるようになっている。アダーＡ４が加算器および減算器のいずれで機能するかはパイプラインコントローラ１１により制御される。マルチプレクサＭ５は“０”およびデュアルポートメモリ１４Ａから供給される中間計算値を受けていずれか一方を出力する。マルチプレクサＭ６はマルチプレクサＭ５の出力およびレジスタＲ６の保持値を受けていずれか一方を出力する。マルチプレクサＭ５，Ｍ６がいずれの入力信号を出力するかはパイプラインコントローラ１１により制御される。
【００５８】
アダーＡ４は図略のイメージセンサからシリアル出力されるピクセルデータ（入力ａ）とマルチプレクサＭ６の出力（入力ｂ）とを加算または減算する。アダーＡ４が加算または減算のいずれの演算を行うかはパイプラインコントローラ１１により制御される。ここで図略のイメージセンサからｉ番目に出力されるピクセルデータをＰ［ｉ］で表す。また１行のピクセル数をＮとする。したがってＰ［１］，Ｐ［２］，…，Ｐ［Ｎ］は１行目のピクセルデータであり、Ｐ［Ｎ＋１］は２行目の最初のピクセルデータである。なお、図１０に示したデュアルポートメモリ１４Ａの記憶データは、特徴量Ｄｙ演算回路１２ＢにおいてＰ［１］からＰ［Ｎ］までのピクセルデータの処理が終わったときの状態を表している。
【００５９】
レジスタＲ６はアダーＡ４の計算結果を保持する。レジスタＲ７はレジスタＲ６の保持値を受けて保持する。レジスタＲ７が入力信号を保持するタイミングはパイプラインコントローラ１１から出力されるロード信号により制御される。レジスタＲ８はレジスタＲ７の保持値を受けて保持する。レジスタＲ８の保持値がサブセルの特徴量Ｄｙである。なお、アダーＡ４の後段に３つのレジスタＲ６，Ｒ７，Ｒ８をシリース接続する理由は、図６に示した特徴量Ｄｘ演算回路１２ＡにおいてアダーＡ１の後段に３つのレジスタＲ１，Ｒ２（またはＲ３），Ｒ４がシリース接続されており、それと出力タイミングを合わせるためである。
【００６０】
図１１Ａは特徴量Ｄｙ演算回路１２ＢにおけるアダーＡ４の入力ａ，ｂ、レジスタＲ６の保持値、デュアルポートメモリ１４Ａの記憶データのタイミングチャートである。図１１Ｂは特徴量Ｄｙ演算過程のデュアルポートメモリ１４Ａの記憶データの変遷を表す図である。これら図を参照して特徴量Ｄｙ演算回路１２Ｂの動作について説明する。
【００６１】
特徴量Ｄｙ演算回路１２Ｂに１行目の最初のピクセルデータ、すなわち、図４Ｂに示したサブセルの上側領域Ｕの最初のピクセルデータであるＰ［１］が入力されると、アダーＡ４の入力ａにはＰ［１］が、入力ｂにはマルチプレクサＭ１，Ｍ２を経由して“０”が、それぞれ与えられる。デュアルポートメモリ１４ＡはレジスタＲ１の保持値（ただしこの時点ではドントケア値である）をアドレス“１”に記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［１］＋０を保持する。なお、便宜上、特徴量Ｄｘ演算回路１２Ａと特徴量Ｄｙ演算回路１２Ｂとでデュアルポートメモリ１４Ａの同じアドレスを使用しているが、実際にはデュアルポートメモリ１４Ａの相異なる記憶領域に特徴量Ｄｘ，Ｄｙの各中間計算値が読み書きされる。
【００６２】
特徴量Ｄｙ演算回路１２Ｂに次のピクセルデータであるＰ［２］が入力されると、アダーＡ４の入力ａにはＰ［２］が、入力ｂにはレジスタＲ６の保持値であるＰ［１］が、それぞれ与えられる。デュアルポートメモリ１４ＡはレジスタＲ６の保持値をアドレス“１”に記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［１］＋Ｐ［２］を新たに保持する。
【００６３】
その後、特徴量Ｄｙ演算回路１２Ｂに１行目４列目のピクセルデータであるＰ［４］が入力されると、アダーＡ４の入力ａにはＰ［４］が、入力ｂにはレジスタＲ６の保持値であるＰ［１］＋Ｐ［２］＋Ｐ［３］が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“１”にレジスタＲ６の保持値を記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［１］＋Ｐ［２］＋Ｐ［３］＋Ｐ［４］を新たに保持する。
【００６４】
特徴量Ｄｙ演算回路１２Ｂに次のピクセルデータであるＰ［５］が入力されると、アダーＡ４の入力ａにはＰ［５］が、入力ｂにはマルチプレクサＭ５，Ｍ６を経由して“０”が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“１”にレジスタＲ６の保持値であるＰ［１］＋Ｐ［２］＋Ｐ［３］＋Ｐ［４］を記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［５］＋０を新たに保持する。
【００６５】
その後、特徴量Ｄｙ演算回路１２Ｂに２行目の最初のピクセルデータであるＰ［Ｎ＋１］が入力されると、アダーＡ４の入力ａにはＰ［Ｎ＋１］が、入力ｂにはデュアルポートメモリ１４Ａのアドレス“１”から読み出されたＰ［１］＋Ｐ［２］＋Ｐ［３］＋Ｐ［４］が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“Ｎ／４”にレジスタＲ６の保持値であるＰ［Ｎ−３］＋Ｐ［Ｎ−２］＋Ｐ［Ｎ−１］＋Ｐ［Ｎ］を記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［１］＋Ｐ［２］＋Ｐ［３］＋Ｐ［４］＋Ｐ［Ｎ＋１］を新たに保持する。
【００６６】
その後、特徴量Ｄｙ演算回路１２Ｂに３行目の最初のピクセルデータ、すなわち、図４Ｂに示したサブセルの下側領域Ｄの最初のピクセルデータであるＰ［２Ｎ＋１］が入力されると、アダーＡ４の入力ａにはＰ［２Ｎ＋１］が、入力ｂにはデュアルポートメモリ１４Ａのアドレス“１”から読み出されたＰ［１］＋Ｐ［２］＋Ｐ［３］＋Ｐ［４］＋Ｐ［Ｎ＋１］＋Ｐ［Ｎ＋２］＋Ｐ［Ｎ＋３］＋Ｐ［Ｎ＋４］が、それぞれ与えられる。このとき、アダーＡ４は入力ａから入力ｂを減算するように切り替わる。デュアルポートメモリ１４Ａはアドレス“Ｎ／４”にレジスタＲ６の保持値であるＰ［Ｎ−３］＋Ｐ［Ｎ−２］＋Ｐ［Ｎ−１］＋Ｐ［Ｎ］＋Ｐ［２Ｎ−３］＋Ｐ［２Ｎ−２］＋Ｐ［２Ｎ−１］＋Ｐ［２Ｎ］を記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［１］＋Ｐ［２］＋Ｐ［３］＋Ｐ［４］＋Ｐ［Ｎ＋１］＋Ｐ［Ｎ＋２］＋Ｐ［Ｎ＋３］＋Ｐ［Ｎ＋４］−Ｐ［２Ｎ＋１］を新たに保持する。
【００６７】
その後、特徴量Ｄｙ演算回路１２Ｂに４行目４列目のピクセルデータ、すなわち、図４Ｂに示したサブセルの下側領域Ｄの最後のピクセルデータであるＰ［３Ｎ＋４］が入力されると、アダーＡ４の入力ａにはＰ［３Ｎ＋４］が、入力ｂにはレジスタＲ６の保持値であるＰ［１］＋Ｐ［２］＋…＋Ｐ［Ｎ＋４］−（Ｐ［２Ｎ＋１］＋Ｐ［２Ｎ＋２］＋…＋Ｐ［３Ｎ＋３］）が、それぞれ与えられる。デュアルポートメモリ１４Ａはアドレス“１”にレジスタＲ６の保持値を記憶する。レジスタＲ６はアダーＡ４の加算結果であるＰ［１］＋Ｐ［２］＋…＋Ｐ［Ｎ＋４］−（Ｐ［２Ｎ＋１］＋Ｐ［２Ｎ＋２］＋…＋Ｐ［３Ｎ＋４］）を新たに保持する。これでサブセルに属するすべてのピクセルについて式３の計算が終わるため、レジスタＲ７はレジスタＲ６の保持値を保持し、レジスタＲ８はレジスタＲ７の保持値を保持する。以後同様にして別のサブセルの特徴量Ｄｙが順次計算される。
【００６８】
セル特徴量演算回路１３において式７の演算を実行する特徴量ΣＤｙ演算回路は、図８に示した特徴量ΣＤｘ演算回路１３Ａの入力を特徴量Ｄｙ演算回路１２Ｂから出力される特徴量Ｄｙに変更することで構成可能である。また、上述した特徴量Σ|Ｄｘ|演算回路の入力を特徴量Ｄｙ演算回路１２Ｂから出力される特徴量Ｄｙに変更することで、式８で表されるセルの特徴量Σ|Ｄｙ|を演算する特徴量Σ|Ｄｙ|演算回路を構成することができる。
【００６９】
上記の通り、１行のピクセル数をＮとすると、デュアルポートメモリ１４Ａにおいて特徴量Ｄｘの中間計算値が読み書きされるアドレスは“１”から“Ｎ／２”を巡回し、特徴量Ｄｙの中間計算値が読み書きされるアドレスは“１”から“Ｎ／４”を巡回する。また、デュアルポートメモリ１４ＢにおいてＨａａｒ−ｌｉｋｅ特徴量｛ΣＤｘ，Σ|Ｄｘ|，ΣＤｙ，Σ|Ｄｙ|｝の各中間計算値が読み書きされるアドレスは“１”から“Ｎ／８”を巡回する。ここでＶＧＡ画像ではＮ＝４８０、フルＨＤ画像ではＮ＝１９２０といったようにＮは画像サイズに応じて変わり得る。そこで、さまざまなサイズの画像に対応できるように、パイプラインコントローラ１１においてアドレスａｄｄｒＲ１，ａｄｄｒＷ１，ａｄｄｒＲ２，ａｄｄｒＷ２を生成する図略の回路を、カウント最大値を変更することができるフレキシブル巡回カウンタで構成してもよい。これにより、フレキシブル巡回カウンタに対して指定するカウント最大値を変更するだけで、本構成例に係るセル特徴量計算部１０がさまざまなサイズの画像についてＨａａｒ−ｌｉｋｅ特徴量を抽出することができるようになる。
【００７０】
以上の通り本構成例によると、イメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルのＨａａｒ−ｌｉｋｅ特徴量を順次計算して出力することができる。これにより、１フレーム分のピクセルデータやインテグラルイメージを蓄積するための大容量のバッファが不要になり、回路規模を縮小することができる。また、イメージセンサで画像が撮像されてからＨａａｒ−ｌｉｋｅ特徴量が抽出されるまでのレイテンシが小さいため、リアルタイムの画像認識処理が可能になる。
【００７１】
３．１．２  第２の構成例
第２の構成例に係るセル特徴量計算部１０はＨＯＧを適用したものである。ＨＯＧにおいて各ピクセルの輝度勾配が隣接または周辺のピクセルとの相対的関係で計算される。図１２はピクセルの輝度勾配を説明する図である。ｉ列目ｊ行目のピクセルの勾配量Ｍ（ｉ，ｊ）および勾配方向Ｏ（ｉ，ｊ）は次式９，１０で表される。
【００７２】
Ｍ（ｉ，ｊ）＝√（Ｇｘ２（ｉ，ｊ）＋Ｇｙ２（ｉ，ｊ））…（９）
Ｏ（ｉ，ｊ）＝ｔａｎ−１｛Ｇｙ（ｉ，ｊ）／Ｇｘ（ｉ，ｊ）｝…（１０）
ただし、Ｇｘ（ｉ，ｊ），Ｇｙ（ｉ，ｊ）はｉ列目ｊ行目のピクセルの行方向勾配および列方向勾配であり、例えば次式１１，１２で計算される。
【００７３】
Ｇｘ（ｉ，ｊ）＝Ｈ（ｉ＋１，ｊ）−Ｈ（ｉ−１，ｊ）…（１１）
Ｇｙ（ｉ，ｊ）＝Ｈ（ｉ，ｊ＋１）−Ｈ（ｉ，ｊ−１）…（１２）
ただし、Ｈ（ｉ，ｊ）はｉ列目ｊ行目のピクセルの値（輝度）である。
【００７４】
ＨＯＧ特徴量計算において各ピクセルの勾配方向は例えば図１２に示したように−９０°から＋９０°を２０°間隔で区切った９つのビンに分類される。すなわち、本構成例に係るセル特徴量計算部１０はセルごとにそのセルに属する各ピクセルの勾配計算を行って９つの勾配方向をビンとする勾配量ヒストグラムを生成し、当該勾配量ヒストグラムをＨＯＧ特徴量｛ｈ１，ｈ２，…，ｈ９｝（ただし、ｈは各ビンの値である。）として出力する。このように各ピクセルの勾配方向を−９０°から＋９０°の範囲で定義する理由は、その範囲において式１０におけるアークタンジェントが連続かつ奇関数となるためである。これにより、後述するように各ピクセルの勾配方向の計算を簡素化することができる。
【００７５】
図１３は第２の構成例に係るセル特徴量計算部１０の概略ブロック図である。セル特徴量計算部１０は、パイプラインコントローラ１１と、勾配演算回路１５と、ヒストグラム演算回路１６と、デュアルポートメモリ１４とを備えている。
【００７６】
パイプラインコントローラ１１は、デュアルポートメモリ１４にデータ読み出しアドレスａｄｄｒＲおよびデータ書き込みアドレスａｄｄｒＷを供給する。また、パイプラインコントローラ１１は、勾配演算回路１５およびヒストグラム演算回路１６に図略の制御信号を出力してこれら回路の演算動作を制御する。
【００７７】
勾配演算回路１５は、図略のイメージセンサから行方向優先でシリアル出力されるピクセルデータを受けて式９から１２の演算を実行してピクセルの勾配量Ｍおよび勾配方向Ｂｉｎを計算する回路である。なお、式１２は３行分のピクセルがないと計算できないため、勾配演算回路１５は内部に３行分のピクセルデータを保持する図略のラインバッファを備えている。
【００７８】
ヒストグラム演算回路１６は、勾配演算回路１５から行方向優先でシリアル出力される勾配量Ｍおよび勾配方向Ｂｉｎを受けて９つの勾配方向をビンとする勾配量ヒストグラムを生成する。いま１行のピクセル数をＮとすると、１行にＮ／８個のセルが存在する。勾配量ヒストグラムは各セルに属するすべてのピクセルデータが入力され終わるまで確定しないため、ヒストグラム演算回路１６はＮ／８個のセルのヒストグラム演算を並列に行う必要がある。ヒストグラム演算回路１６は各セルの中間計算値をデュアルポートメモリ１４に保存しながらパイプライン処理によりＮ／８個のセルのヒストグラム演算を並列に行う。
【００７９】
デュアルポートメモリ１４は、ヒストグラム演算回路１６から出力される中間計算値を一時的に保存するメモリである。デュアルポートメモリ１４は、ヒストグラム演算回路１６から出力されるあるセルの中間計算値を指定されたアドレスａｄｄｒＷに書き込むとともに、指定されたアドレスａｄｄｒＲに一時保存されている別のセルの中間計算値をヒストグラム演算回路１６に供給する。
【００８０】
図１４はセル特徴量計算部１０の詳細ブロック図である。勾配演算回路１５は、ピクセル演算回路１５１、絶対値計算回路１５２、アダー１５３、ビンデコーダ１５４などから構成することができる。
【００８１】
ピクセル演算回路１５１は、図略のイメージセンサから行方向優先でシリアル出力されるピクセルデータを受けてピクセルの行方向勾配Ｇｘおよび列方向勾配Ｇｙを計算する。
【００８２】
図１５は一例に係るピクセル演算回路１５１の構成図である。ピクセル演算回路１５１はラインバッファＬＢ１，ＬＢ２，ＬＢ３およびアダーＡ５などから構成することができる。ラインバッファＬＢ１，ＬＢ２，ＬＢ３はいずれも１行分のピクセルデータを保持するＦＩＦＯ（First In First Out）メモリである。ラインバッファＬＢ１，ＬＢ２，ＬＢ３はシリース接続されており、ラインバッファＬＢ３は図略のイメージセンサから出力された１行分のピクセルデータを保持し、ラインバッファＬＢ２はラインバッファＬＢ３から出力された１行分のピクセルデータを保持し、ラインバッファＬＢ１はラインバッファＬＢ２から出力された１行分のピクセルデータを保持する。すなわち、ラインバッファＬＢ１は図１２に示したｊ−１行目のピクセルデータを保持し、ラインバッファＬＢ２はｊ行目のピクセルデータを保持し、ラインバッファＬＢ３はｊ＋１行目のピクセルデータを保持する。
【００８３】
各ラインバッファから図１２に示したｉ−１列目、ｉ列目、ｉ＋１列目の３つのピクセルデータが読み出され、アダーＡ５は読み出された合計９つのピクセルデータ｛Ｐ１，Ｐ２，…，Ｐ９｝と係数｛Ｘ１，Ｘ２，…，Ｘ９｝との積を合計する。なお、係数は行方向勾配Ｇｘおよび列方向勾配Ｇｙの計算で異なるものが適用される。アダーＡ５の計算結果が行方向勾配Ｇｘおよび列方向勾配Ｇｙである。
【００８４】
このように行方向勾配Ｇｘおよび列方向勾配Ｇｙは式１１，１２に従って計算する以外に、図１５に示したようなソーベルフィルタを適用して計算することができる。
【００８５】
図１４へ戻り、絶対値計算回路１５２は行方向勾配Ｇｘおよび列方向勾配Ｇｙのそれぞれの絶対値|Ｇｘ|，|Ｇｙ|を計算する。アダー１５３は|Ｇｘ|と|Ｇｙ|とを加算する。アダー１５３の計算結果が勾配量Ｍである。なお、式９に従って勾配量Ｍを計算すると２乗計算および平方根計算が必要となり計算量が増えるため、本構成例では計算量を少なくするために行方向勾配Ｇｘおよび列方向勾配Ｇｙの絶対値和を勾配量Ｍとしている。
【００８６】
ビンデコーダ１５４はＧｘ，Ｇｙ，|Ｇｘ|，|Ｇｙ|を受けて勾配方向Ｂｉｎを出力する。ただし、式１０に従ってアークタンジェントの計算を実行すると計算量が増えるため、本構成例では計算量を少なくするためにタンジェント値と複数の閾値とを比較してビンを決定する。さらに、図１２に示したように勾配方向は０°（ｘ軸）を中心に対称性があるため、|Ｇｘ|，|Ｇｙ|から計算したタンジェントの絶対値つまり|Ｇｙ|／|Ｇｘ|とｔａｎ（７０°），ｔａｎ（５０°），ｔａｎ（３０°），ｔａｎ（１０°）の４つの閾値との比較およびＧｘ，Ｇｙの正負符号に応じてビンを決定することができる。
【００８７】
デュアルポートメモリ１４は９つのデュアルポートヒストグラムメモリ（ＤＨＭ）を備えている。各ＤＨＭは各セルの各ビンの値を保持する。
【００８８】
ヒストグラム演算回路１６はマルチプレクサ１６１、アダー１６２、マルチプレクサ群１６３、レジスタ１６４などから構成することができる。マルチプレクサ１６１は９つのＤＨＭから供給される中間計算値を受けて、ビンデコーダ１５４によって指定されたいずれか一つのビンの中間計算値を出力する。アダー１６２は勾配演算回路１５から出力される勾配量Ｍとマルチプレクサ１６１の出力とを加算する。
【００８９】
マルチプレクサ群１６３は９つのマルチプレクサからなり、各マルチプレクサには各ＤＨＭから供給される中間計算値とアダー１６２の出力が入力される。マルチプレクサ群１６３において、ビンデコーダ１５４によって指定されたいずれか一つのビンに対応するマルチプレクサのみアダー１６２の出力を出力し、他のマルチプレクサはＤＨＭから供給される中間計算値を出力する。マルチプレクサ群１６３の出力は９つのＤＨＭに書き戻される。これにより、ビンデコーダ１５４によって指定されたいずれか一つのビンのみ値が更新される。
【００９０】
各セルに属するすべてのピクセルの勾配量の計算が終わったタイミングでパイプラインコントローラ１１からレジスタ１６４に図略のロード信号が出力される。レジスタ１６４は当該ロード信号を受信したとき、マルチプレクサ群１６３の出力を保持する。レジスタ１６４の保持値がセルのＨＯＧ特徴量｛ｈ１，ｈ２，…，ｈ９｝である。
【００９１】
上記の通り、１行のピクセル数をＮとすると、デュアルポートメモリ１４においてＨＯＧ特徴量の中間計算値が読み書きされるアドレスは“１”から“Ｎ／８”を巡回する。ここでＶＧＡ画像ではＮ＝４８０、フルＨＤ画像ではＮ＝１９２０といったようにＮは画像サイズに応じて変わり得る。そこで、さまざまなサイズの画像に対応できるように、パイプラインコントローラ１１においてアドレスａｄｄｒＲ，ａｄｄｒＷを生成する図略の回路を、カウント最大値を変更することができるフレキシブル巡回カウンタで構成してもよい。これにより、フレキシブル巡回カウンタに対して指定するカウント最大値を変更するだけで、本構成例に係るセル特徴量計算部１０がさまざまなサイズの画像についてＨＯＧ特徴量を抽出することができるようになる。
【００９２】
以上の通り本構成例によると、イメージセンサからシリアル出力されるピクセルデータを受信しながら複数のセルのＨＯＧ特徴量を順次計算して出力することができる。これにより、１フレーム分のピクセルデータやインテグラルイメージを蓄積するための大容量のバッファが不要になり、回路規模を縮小することができる。また、イメージセンサで画像が撮像されてからＨＯＧ特徴量が抽出されるまでのレイテンシが小さいため、リアルタイムの画像認識処理が可能になる。
【００９３】
３．２  セル位置計算部
図３へ戻り、セル位置計算部２０は、セル特徴量計算部１０においてセルの特徴量計算が完了するごとに、当該セルのフレーム画像内の位置を計算する。上述したようにセルはフレーム画像において縦横規則正しく配列されていることから、セルのフレーム画像内の位置は［ｃ，ｒ］で表すことができる。ただし、ｃはフレーム画像における列アドレスを、ｒはフレーム画像における行アドレスを表す。フレーム画像のサイズが横６４０ピクセル×縦４８０ピクセルの場合、ｃは０から７９までの整数値を、ｒは０から５９までの整数値を取り得る。例えば、フレーム画像における左上のセル（図２に示した「第１セル」）の位置は［０，０］である。
【００９４】
具体的には、セル位置計算部２０は図略のカウンタを有し、セル特徴量計算部１０においてセルの特徴量の計算が完了するごとにセル特徴量計算部１０から信号を受けて当該カウンタをカウントアップする。そして、セル位置計算部２０は、当該カウンタのカウント値からセルのフレーム画像内の位置［ｃ，ｒ］を計算する。
【００９５】
３．３  ウィンドウアドレス計算部
セルは、フレーム画像の４隅におけるセルを除き、複数のウィンドウに所属している。ウィンドウアドレス計算部３０は、セル位置計算部２０により計算されたセルのフレーム画像内の位置に基づいて、フレーム画像内で当該セルが所属するすべてのウィンドウのアドレスを計算する。
【００９６】
図１６はウィンドウのアドレスを説明する図である。なお、図中、ウィンドウのアドレスは括弧書きで示している。また、図中のフレーム画像の上および左に示したルーラーの「ｃ」および「Ｂｃ」はセルおよびブロックの列アドレスを、「ｒ」および「Ｂｒ」はセルおよびブロックの行アドレスを表す。横６４０ピクセル×縦４８０ピクセルのフレーム画像の場合、左上のウィンドウのアドレスは［０］であり、ウィンドウが右方向にブロック単位でシフトするごとにアドレスが１ずつ増えて右上のウィンドウのアドレスは［３６］である。アドレス［０］のウィンドウを下へ１ブロックだけシフトしたウィンドウのアドレスは［３７］である。以下、同様にアドレスを数えていき、左下のウィンドウのアドレスは［８１４］であり、最後の右下のウィンドウのアドレスは［８５０］である。
【００９７】
例えば、図中でハッチング表示した位置［７，１５］のセルが所属するウィンドウは全部で３２個あり、それらウィンドウのアドレスは［０］〜［３］，［３７］〜［４０］，［７４］〜［７７］，［１１１］〜［１１４］，［１４８］〜［１５１］，［１８５］〜［１８８］，［２２２］〜［２２５］，［２５９］〜［２６２］である。当該セルは位置［３，７］のブロックに所属し、同じブロックに他に位置［６，１４］、［７，１４］、［６，１５］の３つのセルが所属している。そして、これら３つのセルが所属するウィンドウと位置［７，１５］のセルが所属するウィンドウとは同じである。すなわち、同じブロックに所属する４つのセルが所属するウィンドウは共通しており、ブロックの位置が決まればウィンドウのアドレスが一意に決まる。ウィンドウアドレス計算部３０は、セルの位置からブロックの位置を計算し、さらにブロックの位置からウィンドウのアドレスを計算する。
【００９８】
図１７はウィンドウアドレス計算部３０の概略ブロック図である。例えば、ウィンドウアドレス計算部３０は、ブロック位置計算部３１と、先頭ウィンドウアドレス計算部３２と、行方向連続数計算部３３と、列方向連続数計算部３４と、アドレス生成部３５とを備えている。
【００９９】
ブロック位置計算部３１は、セル位置計算部２０から与えられるセルの位置［ｃ，ｒ］をブロックの位置［Ｂｃ，Ｂｒ］に変換する。具体的には、ＢｃおよびＢｒは、引数の小数点以下の数字を切り捨てて整数値を返すＩＮＴ関数を用いて、Ｂｃ＝ＩＮＴ（ｃ／２）、Ｂｒ＝ＩＮＴ（ｒ／２）として計算することができる。
【０１００】
先頭ウィンドウアドレス計算部３２は、ブロック位置計算部３１により計算されたブロックの位置［Ｂｃ，Ｂｒ］に基づいて、ウィンドウのアドレス計算の基準となる先頭ウィンドウのアドレスＦＷを計算する。先頭ウィンドウの定義の仕方はさまざまであるが、ここでは、与えられたブロックの位置から見て最も左上に位置するウィンドウを先頭ウィンドウとする。例えば、図１６に示した位置［３，７］のブロックに対応する先頭ウィンドウは右上のウィンドウであり、位置［３，７］のブロックの先頭ウィンドウのアドレスＦＷは［０］である。
【０１０１】
図１８はブロックの位置と先頭ウィンドウのアドレスとの対応関係を表すマップである。なお、図中のフレーム画像内の数字はウィンドウのアドレスを［Ｗ］としたときの「Ｗ」を表す。先頭ウィンドウアドレス計算部３２は、図１８に示したマップに合致するようにブロックの位置［Ｂｃ，Ｂｒ］から先頭ウィンドウのアドレスＦＷを計算することができる。あるいは、図１８に示したマップを用意しておくことで、先頭ウィンドウアドレス計算部３２は、当該マップを参照して、与えられたブロックの位置［Ｂｃ，Ｂｒ］に対応する先頭ウィンドウのアドレスＦＷを決定することができる。
【０１０２】
行方向連続数計算部３３は、ブロック位置計算部３１により計算されたブロックの位置の列アドレスＢｃに基づいて、位置［Ｂｃ，Ｂｒ］のブロックが所属するウィンドウが先頭ウィンドウに続いて行方向にいくつ並んでいるかを示す行方向連続数ＷＮｈｏｒを計算する。列方向連続数計算部３４は、ブロック位置計算部３１により計算されたブロックの位置の行アドレスＢｒに基づいて、位置［Ｂｃ，Ｂｒ］のブロックが所属するウィンドウが先頭ウィンドウに続いて列方向にいくつ並んでいるかを示す列方向連続数ＷＮｈｏｒを計算する。
【０１０３】
図１９はブロックの列アドレスＢｃと行方向連続数ＷＮｈｏｒとの対応関係、およびブロックの行アドレスＢｒと列方向連続数ＷＮｖｅｒとの対応関係を表すテーブルである。例えば、図１６に示した位置［３，７］のブロックの場合、ＷＮｈｏｒ＝３、ＷＮｖｅｒ＝７である。行方向連続数計算部３３および列方向連続数計算部３４は、図１９に示したテーブルに合致するようにブロックの列アドレスＢｃおよび行アドレスＢｒから行方向連続数ＷＮｈｏｒおよび列方向連続数ＷＮｖｅｒをそれぞれ計算することができる。あるいは、図１９に示したテーブルを用意しておいて、行方向連続数計算部３３および列方向連続数計算部３４は、当該テーブルを参照して、与えられたブロックの列アドレスＢｃおよび行アドレスＢｒに対応する行方向連続数ＷＮｈｏｒおよび列方向連続数ＷＮｖｅｒをそれぞれ決定することができる。
【０１０４】
図１７へ戻り、アドレス生成部３５は、ＦＷ、ＷＮｈｏｒ、ＷＮｖｅｒを組み合わせてウィンドウのアドレスを生成する。例えば、図１６に示した位置［３，７］のブロックの場合、ＦＷ＝［０］、ＷＮｈｏｒ＝３、ＷＮｖｅｒ＝７であるから、上記の行方向に４、列方向に８連続する合計３２個のウィンドウのアドレスが生成される。
【０１０５】
３．４  セル重複数計算部
上述したようにウィンドウにおいてブロックはセル単位で縦横にそれぞれシフトして設定され得ることから、一つのセルが複数のブロックに属することがある。図２０はウィンドウにおける各セルのブロック所属数を表す図である。ただし、ウィンドウのサイズを横６４ピクセル×縦１２８ピクセル、ブロックのサイズを横１６ピクセル×縦１６ピクセル、セルのサイズを横８ピクセル×縦８ピクセルとし、ウィンドウに８×１６＝１２８個のセルが存在する。図中で「１」と表記された４隅のセルはただ一つのブロックに属する。図中で「２」と表記された辺縁部の４０個のセルは異なる２つのブロックに属する。図中で「４」と表記された内部のセルは異なる４つのブロックに属する。
【０１０６】
セル特徴量計算部１０により計算された各セルの特徴量に基づいてウィンドウの特徴量を生成するには、図２０に示した各セルのブロック所属数を考慮する必要がある。すなわち、ｍ個（ただし、ｍ＝１，２，４である）のブロックに属するセルの特徴量は当該セルが所属するウィンドウの特徴量にｍ回含まれる必要がある。例えば各セルの特徴量をｎ次元とすると、ウィンドウの特徴量の次元は（１×４＋２×４０＋４×８４）×ｎ＝４２０ｎ次元となる。
【０１０７】
図３へ戻り、セル重複数計算部４０は、セル位置計算部２０により計算されたセルのフレーム画像内の位置およびウィンドウアドレス計算部３０により計算されたウィンドウのアドレスに基づいて、当該ウィンドウにおいて当該セルがいくつのブロックに重複して所属するかを表すセル重複数ｍを計算する。
【０１０８】
上述したように、セル重複数ｍはウィンドウにおける当該セルの位置に応じて決まる。換言すると、任意のセルについて、当該セルが所属する各ウィンドウにおける当該セルの相対位置に応じてセル重複数ｍが違ってくる。例えば、図１６に示した位置［７，１５］のセルは、アドレス［０］のウィンドウにおいては左下のコーナーに位置することからｍ＝１であり、アドレス［１］〜［３］，［７４］，［１１１］，［１４８］，［１８５］，［２２２］，［２５９］の各ウィンドウにおいてはエッジに位置することからｍ＝２であり、アドレス［７５］〜［７７］，［１１２］〜［１１４］，［１４９］〜［１５１］，［１８６］〜［１８８］，［２２３］〜［２２５］，［２６０］〜［２６２］の各ウィンドウにおいて内部に位置することからｍ＝４である。
【０１０９】
図２１はセル重複数計算部の概略ブロック図である。例えば、セル重複数計算部４０は、ウィンドウ内セル位置計算部４１と、ウィンドウ内セル位置−セル重複数対応マップ４１とを備えている。
【０１１０】
ウィンドウ内セル位置計算部４１は、セル位置計算部２０から与えられるセルの位置［ｃ，ｒ］およびウィンドウアドレス計算部３０から与えられるウィンドウのアドレス［Ｗ］に基づいて、アドレス［Ｗ］のウィンドウ内における位置［ｃ，ｒ］のセルの相対位置［Ｒ］を計算する。セルの相対位置［Ｒ］は、例えば、図２０に示したマップにおいてウィンドウの左上から行方向優先でカウントした値である。例えば、図２０のマップにおいて左上のセルの相対位置は［０］、右上のセルの相対位置は［７］、左下のセルの相対位置は［９７］、右下のセルの相対位置は［１０４］である。
【０１１１】
ウィンドウ内セル位置−セル重複数対応マップ４２は、ウィンドウにおけるセルの相対位置［Ｒ］を受けて当該セルに対応するセル重複数ｍを出力する。このように、セル重複数計算部４０は、与えられたセルの位置［ｃ，ｒ］およびウィンドウのアドレス［Ｗ］に基づいて、アドレス［Ｗ］のウィンドウにおける位置［ｃ，ｒ］のセルの相対位置［Ｒ］を計算し、当該セルが当該ウィンドウの４コーナーに位置する場合にはｍ＝１を、当該セルが当該ウィンドウのエッジに位置する場合にはｍ＝２を、それ以外、すなわち、当該セルがウィンドウの内部に位置する場合にはｍ＝４を出力することができる。
【０１１２】
３．５  セルベース画像比較部
図３へ戻り、セルベース画像比較部５０は、セル特徴量計算部１０においてセルの特徴量計算が完了するごとに、ウィンドウアドレス計算部３０により計算されたアドレスにより特定される各ウィンドウについて、セル重複数計算部４０により計算されたセル重複数だけ当該セルの特徴量を繰り返し適用して得られる当該ウィンドウの部分特徴量と参照画像において対応する部分特徴量とを比較してその中間結果を累積する。
【０１１３】
ウィンドウと参照画像との比較方法として、例えば、ウィンドウと参照画像とのユークリッド距離を計算することが考えられる。以下、セルベース画像比較部５０がウィンドウと参照画像とのユークリッド距離を計算するものとして説明する。
【０１１４】
図２２はセルベース画像比較部５０の概略ブロック図である。例えば、セルベース画像比較部５０は、複数の差分二乗計算回路５１と、加算回路５２と、中間値累積回路５３とを備えている。
【０１１５】
差分二乗計算回路５１は、セル特徴量計算部１０から出力されるセルの特徴量ＣＦＶの第ｉ番目（ただし、０≦ｉ≦Ｄ−１であり、Ｄはセルの特徴量の次元である。）の成分Ｆｉと、参照画像において当該セルに対応する特徴量の成分ｒｅｆｉと、セル重複数計算部４０から出力される当該セルのセル重複数ｍとを受け、Ｆｉとｒｅｆｉとの部分ユークリッド距離二乗値ＰＳＥＤｉを出力する。より詳細には、ＰＳＥＤｉは、ｍ＝１の場合には（Ｆｉ−ｒｅｆｉ）２であり、ｍ＝２の場合には２×（Ｆｉ−ｒｅｆｉ）２であり、ｍ＝４の場合には４×（Ｆｉ−ｒｅｆｉ）２である。
【０１１６】
なお、差分二乗計算回路５１をＤ個、すなわち、セルの特徴量ＣＦＶの次元だけ設けることで、セルの特徴量ＣＦＶと参照画像の特徴量ｒｅｆとのユークリッド距離を最小クロック数で計算することができる。
【０１１７】
加算回路５２は、差分二乗計算回路５１により計算されたＰＳＥＤ０からＰＳＥＤＤ−１までを合計して中間値ＰＳＥＤを出力する。
【０１１８】
中間値累積回路５３は、１ウィンドウ分の中間値ＰＳＥＤを累積して、ウィンドウと参照画像とのユークリッド距離二乗値ＳＥＤを出力する。より詳細には、中間値累積回路５３は、ウィンドウ別中間値メモリ５３１を備えている。ウィンドウ別中間値メモリ５３１は、ウィンドウアドレス計算部３０から出力されるウィンドウのアドレス［Ｗ］により指定されるアドレスに中間値ＰＳＥＤの累積値を保存する。セル特徴量計算部１０において各ウィンドウの最後のセル、例えば、図１６に示したアドレス［０］のウィンドウの場合には位置［７，１５］のセルの特徴量が計算されると、当該ウィンドウの終了を表す信号ＷＩＮｅｎｄが出力され、ウィンドウ別中間値メモリ５３１から当該ウィンドウと参照画像とのユークリッド距離二乗値ＳＥＤが出力される。
【０１１９】
３．６  類似判定部
図３へ戻り、類似判定部６０は、セルベース画像比較部５０において１ウィンドウ分の画像比較が完了するごとに、当該ウィンドウと参照画像との類似を判定する。具体的には、類似判定部６０は、ウィンドウアドレス計算部３０からウィンドウのアドレス［Ｗ］を、セルベース画像比較部５０から当該ウィンドウと参照画像とのユークリッド距離二乗値ＳＥＤを受け、フレーム画像において参照画像とのユークリッド距離が最小のウィンドウを特定する。
【０１２０】
図２３は類似判定部６０の概略ブロック図である。例えば、類似判定部６０は、レジスタ６１と、レジスタ６２と、比較回路６３とを備えている。
【０１２１】
レジスタ６１は、比較回路６３から出力される信号をトリガとして、セルベース画像比較部５０から出力されるユークリッド距離二乗値ＳＥＤを保持する。
【０１２２】
レジスタ６２は、比較回路６３から出力される信号をトリガとして、ウィンドウアドレス計算部３０から出力されるウィンドウのアドレス［Ｗ］を保持する。
【０１２３】
比較回路６３は、セルベース画像比較部５０から出力されるユークリッド距離二乗値ＳＥＤとレジスタ６１の保持値とを比較して、前者の方が小さければレジスタ６１，６２にトリガを出力する。すなわち、レジスタ６１にはフレーム画像における任意のウィンドウと参照画像とのユークリッド距離二乗値の最小値ＳＥＤｍｉｎが保持され、レジスタ６２にはそのような最小値ＳＥＤｍｉｎを与えるウィンドウのアドレス［Ｗ］ｍｉｎが保持される。
【０１２４】
４．実施形態の効果・利点
以上のように本実施形態に係る画像認識装置１００によると、１フレーム分のピクセルデータやインテグラルイメージをバッファに蓄積してフレーム画像が完成するのを待たずに、イメージセンサからのピクセルデータの出力開始に合わせてセルの特徴量の計算が開始され、セルの特徴量計算が完了するごとに当該セルが所属するウィンドウにおける当該セルの重複数を考慮して計算された当該ウィンドウの部分特徴量と参照画像において対応する部分特徴量との比較が行われ、１ウィンドウ分の画像比較が完了するごとに当該ウィンドウと参照画像との類否が判定される。このため、イメージセンサから撮像画像のピクセルデータが出力されてから画像認識が完了するまでのレイテンシを小さくすることができる。
【０１２５】
このように、本実施形態によると、大容量のバッファを必要とせずイメージセンサからのピクセルデータ出力に同期してリアルタイムで画像認識を行うことができる。
【０１２６】
５．変形例
ウィンドウの特徴量の次元は、Ｈａａｒ−ｌｉｋｅの場合には１６８０次元であり、ＨＯＧの場合には３７８０次元である。このようにウィンドウの特徴量の次元が大きいと、ウィンドウと参照画像との比較において大きな計算パワーが必要となる。そこで、ウィンドウの特徴量の次元を削減することで計算パワーの問題は解決することができる。
【０１２７】
ウィンドウの特徴量の次元削減はＰＬＳ（Partial Least Squares）回帰により行うことができる。いま、次元削減前のウィンドウの特徴量の次元をＤ、フレーム画像におけるウィンドウの総数をＳ、次元削減後のウィンドウの特徴量の次元をＴとすると次の行列式が成り立つ。
【０１２８】
【数１】
2018136703.tif 000003
【０１２９】
ただし、Ｆｉ，ｊは次元削減前のウィンドウの特徴量の成分、ｗｉ，ｊは重みベクトルの成分、ｆｉ，ｊは次元削減後のウィンドウの特徴量の成分である。このように、次元削減後のウィンドウの特徴量の各成分は、次元削減前のウィンドウの特徴量と重みベクトルとの内積として計算される。すなわち、ウィンドウの特徴量と重みベクトルとの内積計算を行うことでウィンドウの特徴量を任意の次元に削減することができる。
【０１３０】
図２４は変形例に係る画像認識装置の概略ブロック図である。変形例に係る画像認識装置１００Ａは、セル特徴量計算部１０と、セル位置計算部２０と、ウィンドウアドレス計算部３０と、セル重複数計算部４０と、画像比較部５０Ａと、類似判定部６０と、セルベース次元削減部７０とを備えている。なお、セル特徴量計算部１０、セル位置計算部２０、ウィンドウアドレス計算部３０、セル重複数計算部４０、および類似判定部６０については上記で既に説明しているため繰り返しの説明は省略し、以下では、セルベース次元削減部７０および画像比較部５０Ａについて詳細に説明する。
【０１３１】
セルベース次元削減部７０は、セル特徴量計算部１０においてセルの特徴量計算が完了するごとに、ウィンドウアドレス計算部３０により計算されたアドレスにより特定される各ウィンドウについて、セル重複数計算部４０により計算されたセル重複数だけ当該セルの特徴量を繰り返し適用して得られる当該ウィンドウの部分特徴量と重みベクトルにおいて対応する部分ベクトルとの内積演算を行ってその中間結果を累積して当該ウィンドウの特徴量の次元を削減する。
【０１３２】
図２５は次元削減部７０の概略ブロック図である。例えば、次元削減部７０は、複数の内積演算回路７１と、次元削減ウィンドウ特徴量メモリ７２とを備える。
【０１３３】
内積演算回路７１は、ウィンドウの特徴量と重みベクトルとの内積演算を行ってＤ次元のウィンドウの特徴量を１次元に圧縮する。より詳細には、内積演算回路７１は、複数の部分内積演算回路７１１と、加算回路７１２と、中間値累積回路７１３とを備えている。ウィンドウの特徴量をＴ次元に削減する場合、Ｔ個の内積演算回路７１が並列動作し、各内積演算回路７１が次元削減後のウィンドウの特徴量におけるｊ（ただし、０≦ｊ≦Ｔ−１）番目の成分ｆｊを出力する。
【０１３４】
第ｊ番目の内積演算回路７１における部分内積演算回路７１１は、セル特徴量計算部１０から出力されるセルの特徴量ＣＦＶの第ｉ番目（ただし、０≦ｉ≦Ｄ−１であり、Ｄはセルの特徴量の次元である。）の成分Ｆｉと、重みベクトルＷＶにおいて当該セルに対応する部分ベクトルの第ｉ番目の成分Ｗｉ，ｊと、セル重複数計算部４０から出力される当該セルのセル重複数ｍとを受け、ＦｉとＷｉ，ｊとの積Ｐｉを出力する。より詳細には、Ｐｉは、ｍ＝１の場合にはＦｉ×Ｗｉ，ｊであり、ｍ＝２の場合には２×Ｆｉ×Ｗｉ，ｊであり、ｍ＝４の場合には４×Ｆｉ×Ｗｉ，ｊである。
【０１３５】
なお、部分内積演算回路７１１をＤ個、すなわち、セルの特徴量ＣＦＶの次元だけ設けることで、セルの特徴量ＣＦＶと重みベクトルＷＶの部分ベクトルとの内積演算を最小クロック数で実行することができる。
【０１３６】
加算回路７１２は、部分内積演算回路７１１により計算されたＰ０からＰＤ−１までを合計して中間値Ｐを出力する。中間値累積回路７１３は、１ウィンドウ分の中間値Ｐを累積して、ウィンドウの特徴量を１次元に圧縮した成分ｆｊを出力する。
【０１３７】
次元削減ウィンドウ特徴量メモリ７２は、各内積演算回路７１から出力される成分ｆ０，ｆ１，…，ｆＴ−１を受け、これらをウィンドウアドレス計算部３０から出力されるアドレス［Ｗ］のウィンドウの特徴量として記憶する。すなわち、次元削減後のアドレス［Ｗ］のウィンドウの特徴量ＷＦＶは｛ｆ０，ｆ１，…，ｆＴ−１｝となる。
【０１３８】
なお、内積演算回路７１は１個でもよい。この場合、ウィンドウの特徴量がＤ次元から１次元に削減される。
【０１３９】
図２４へ戻り、画像比較部５０Ａは、セルベース次元削減部７０により次元削減されたウィンドウと参照画像とを比較する。より詳細には、画像比較部５０Ａは、セルベース次元削減部７０から出力される次元削減されたウィンドウの特徴量ＷＦＶと参照画像の特徴量とのユークリッド距離ＳＥＤを計算する。
【０１４０】
上記の本変形例では、ウィンドウの特徴量の次元が削減されることで、画像比較部５０Ａにおいてウィンドウと参照画像とを比較する際の計算量を大幅に削減することができる。
【０１４１】
以上のように、本発明における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【０１４２】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１４３】
また、上述の実施の形態は、本発明における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。例えば、本発明の実施の形態としてＨａａｒ−ｌｉｋｅ特徴量およびＨＯＧ特徴量を適用した例を示したが、本発明はＳＩＦＴやＳＵＲＦなどの別の特徴量の抽出にも適用可能である。
【産業上の利用可能性】
【０１４４】
本発明に係る画像認識装置は、大容量のバッファを必要とせずイメージセンサからのピクセルデータ出力に同期してリアルタイムで画像認識を行うことができるため、省電力および小型化が要求されるモバイル機器や、例えば自動運転における車載カメラなどのリアルタイムの画像認識が要求されるアプリケーションなどに有用である。
【符号の説明】
【０１４５】
１００、１００Ａ  画像認識装置
１０    セル特徴量計算部
２０    セル位置計算部
３０    ウィンドウアドレス計算部
３１    ブロック位置計算部
３２    先頭ウィンドウアドレス計算部
３３    行方向連続数計算部
３４    列方向連続数計算部
３５    アドレス生成部
４０    セル重複数計算部
５０    セルベース画像比較部
５０Ａ  画像比較部
６０    類似判定部
７０    セルベース次元削減部
７１    内積演算回路
７１１  部分内積演算回路
７１２  加算回路
７１３  中間値累積回路
７２    メモリ
【図１】
2018136703.tif 000004
【図２】
2018136703.tif 000005
【図３】
2018136703.tif 000006
【図４Ａ】
2018136703.tif 000007
【図４Ｂ】
2018136703.tif 000008
【図５】
2018136703.tif 000009
【図６】
2018136703.tif 000010
【図７Ａ】
2018136703.tif 000011
【図７Ｂ】
2018136703.tif 000012
【図８】
2018136703.tif 000013
【図９】
2018136703.tif 000014
【図１０】
2018136703.tif 000015
【図１１Ａ】
2018136703.tif 000016
【図１１Ｂ】
2018136703.tif 000017
【図１２】
2018136703.tif 000018
【図１３】
2018136703.tif 000019
【図１４】
2018136703.tif 000020
【図１５】
2018136703.tif 000021
【図１６】
2018136703.tif 000022
【図１７】
2018136703.tif 000023
【図１８】
2018136703.tif 000024
【図１９】
2018136703.tif 000025
【図２０】
2018136703.tif 000026
【図２１】
2018136703.tif 000027
【図２２】
2018136703.tif 000028
【図２３】
2018136703.tif 000029
【図２４】
2018136703.tif 000030
【図２５】
2018136703.tif 000031