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