説明

画像認識プロセッサ

【課題】各方式の演算を網羅して画像認識に必要な幅広い機能変更に対応しつつ、回路効率を最大にした画像認識プロセッサを提供する。
【解決手段】画像認識プロセッサは、第1の演算器アレイと、第2の演算器アレイとを備え、前記第1の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第1回路(concat)、および、シフトと減算機能とを有する第2回路(shift&sub)を含み、ルックアップテーブル機能を有する第3回路(LUT)、積和演算機能を有する第4回路(MAC)、および、多入力加算機能を有する第6回路(addtree)を含まず、前記第2の演算器アレイは、再構成可能な回路として、前記第3回路、前記第4回路、前記第5回路および前記第6回路を含み、前記第1回路および前記第2回路を含まない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像認識プロセッサに関するものであり、特にアルゴリズム変更可能な再構成型画像認識プロセッサを少ない回路資源で実現する技術に関する。
【背景技術】
【0002】
近年、監視カメラ、車載安全装置、デジタルスチルカメラなど、人物や非人物を検知する画像認識技術が幅広く使用されている。画像認識の手法としては各種存在するが、その中でも代表的なものが画素情報を基にして対象の特徴を表現するデータ(特徴量)を作成し、そのデータが該当・非該当いずれであるかの識別結果を計算・判定する特徴量ベース識別方式と、参照画像とベース画像(テンプレート)の差分を計算してその大小で該当・非該当いずれかであるかを判定するパターンマッチング方式がある(非特許文献1、非特許文献2)。これら方式の説明を以下に述べる。
【0003】
図16はHOG(輝度勾配ヒストグラム)を用いた特徴量に関する説明である。輝度勾配ヒストグラムとは隣り合う画素の輝度情報の勾配ベクトルを元に算出したヒストグラムである。参照画像10001における任意位置から単位ブロック10002を抜き出し、単位ブロック内の各画素10003における輝度勾配ベクトルの強度、角度を算出し、角度・強度を軸に持つヒストグラム10004を算出する。各々の値10005は、該当する角度に対応した強度の単位ブロック総和である。
【0004】
ここで輝度勾配ベクトル強度、輝度勾配ベクトル角度とは、例えば、10006で示される画素関係において、注目している画素10007の上下左右、図ではA、B、C、Dで示される画素に関して、X方向、Y方向の傾きdx、dyを、
dx=輝度(B)−輝度(A)
dy=輝度(C)−輝度(D)
の様に定義したとき、
輝度勾配ベクトル強度 = √(dx^2+dy^2)
輝度勾配ベクトル角度 = arctan(dy/dx)
で表される数値である。
【0005】
例えば単位ブロック10002では、8×8=64画素から構成されているため、ヒストグラム10004は、64画素それぞれの輝度勾配ベクトル強度、角度を集計した結果となる。このヒストグラム10004を特徴量とする。
【0006】
図17はLBP(Local Binary Pattern)を用いた特徴量に関する説明である。LBPとは例えば10106で示される画素関係において、注目している画素ic 10107の周囲8画素、図ではi0〜i7で示される画素に関して、(式1)で表される。(式1)中のs(u)は(式2)で表される。
【0007】
【数1】

で表される、画素icとi0〜i7との大小比較結果(8種類:8ビット)をパターンとしたものである。このパターンを用いて、参照画像10101における任意位置から単位ブロック10102を抜き出し、単位ブロック10102内の各画素10103におけるLBPを算出し、パターン番号・度数を軸に持つヒストグラム10104を算出する。各々の値10105は、該当するパターン番号に対応した画素の単位ブロック総和である。このヒストグラム10104を特徴量とする。
【0008】
図18はAdaBoost方式を用いた識別器に関する説明図である。この識別器10201は、一般的に、(式3)で表される、弱識別器10202と、重み10203の累算で構成される。
【0009】
【数2】

【0010】
弱識別器10202は、例えばルックアップテーブルで実現される。この識別器の入力xに先に説明した特徴量を設定することで該当・非該当を表す数値が得られる。
【0011】
図19は SVM(Support Vector Machine)方式を用いた識別器に関する説明図である。この識別器10301は、例えば線形識別器の場合は、一般的に、(式4)、(式5)で表される。
【0012】
【数3】

【0013】
このSVM識別器10301は、例えばルックアップテーブルで実現される。この識別器の入力xに先に説明した特徴量を設定することで該当・非該当を表す数値が得られる。
【0014】
図20は差分絶対値和(SAD: Sum of Absolute Difference)を用いたパターンマッチングに関する説明図である。参照画像10401、基準画像10402から対応する任意位置からそれぞれ単位ブロック10403、10404を抜き出し、参照画像における輝度をref(x,y)、基準画像における輝度をbase(x,y)と定義したときに、(式6)で表される、同一座標の画素同士の差分絶対値を単位ブロック分累算した値であり、これが該当・非該当を表す数値となる。
【0015】
【数4】

【0016】
この様に代表的な画像認識であっても計算内容は大きく異なっており、さらに上記方式においても認識精度を高めるため数式に変形を加えたりしている。
【0017】
これら方式は認識対象、条件に応じて適切なものを使用すべきであるが、既に述べたように計算内容は大きく異なっているため、何らかのプログラマビリティを持つ実現手段が望ましい。一方で、大量の画素を対象に計算する場合、演算処理能力が課題となり、ハードウェア処理が望ましい。更には消費電力、LSIコストを最小限にするために回路規模が必要最低限になっていることが望ましい。
【0018】
プログラマビリティを持たせつつ、ハードウェア処理を実現する手段として、いわゆるFPGA、再構成プロセッサがある。既にフィルタ演算、複数の演算種類、乗算、など効率よく実行するための提案がなされている(非特許文献3、特許文献1、特許文献2、特許文献3)。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】特開2001−236496号公報
【特許文献2】特開2007−141132号公報
【特許文献3】特開2010−134713号公報
【非特許文献】
【0020】
【非特許文献1】PCSJ/IMPS 2008ナイトセッションスライド「一般物体認識のための局所特徴量(SIFTとHOG)」
【非特許文献2】情報処理学会研究報告. CVIM, [コンピュータビジョンとイメージメディア] 2004(40), 33-40, 2004-05-06 「画像のブロックマッチングにおける相関関数とサブピクセル推定方式の最適化」
【非特許文献3】NEC技報 Vol.62 No.3/2009
【発明の概要】
【発明が解決しようとする課題】
【0021】
しかしながら、従来の提案は画像認識処理の実現手段として、機能あるいは回路規模効率として最適な構成を提供できない。
【0022】
図24A、図24Bは非特許文献3に対応する代表図面の抜粋である。非特許文献3は画像認識プロセッサのアーキテクチャに関するものであり、SIMD構成のデータパスをベースに複数のタスクを実行できるMIMDモードを設けて、SIMDモード(図24A)とMIMDモード(図24B)とを切り替えることで画像認識のデータ、タスク並列に応じた制御アーキテクチャを構築できるというものである。図24Aに示すように、全体でSIMD演算を実現する複数のプロセッシングエレメント(PE)と、PEを制御する複数のコントロールプロセッサ(CP)から構成され、画像認識のデータ、タスク並列に応じて、
(a) 一つのCPに対して全PEが並列制御(SIMDモード)
(b) 複数のCPにそれぞれ対応するPEを割り当て、CP毎に対応PEが並列制御(MIMDモード)
を切り替える。
【0023】
各PEはそれぞれRAMに接続され、隣り合うPE間のデータ通信経路が設けられている。演算はRAM、隣り合うPEの出力結果に対して行なわれ、RAM、あるいは隣り合うPEに出力される。
【0024】
本構成によってタスク特徴に応じた制御は実現できるが、演算のデータ入出力がRAMとの接続、隣り合うPE間の接続に限定されているため、処理データパスの柔軟性が低く、演算の特徴に応じたデータパスの最適化が実現できない。
【0025】
図21A、図21Bは特許文献1に対応する代表図面の抜粋である。特許文献1は1次元、2次元各種フィルタを効率よく実行するアーキテクチャに関するものであり、演算器間の接続構成を複数設けることでフィルタ処理の効率を向上させる、というものである。図24A、図24Bが実現できるフィルタであるが、フィルタ演算で多用される積和演算を中心にした構造のため、先に述べた特徴量計算、識別器、SAD演算の実現は困難である。
【0026】
図22は特許文献2に対応する代表図面の抜粋である。特許文献2は配線面積を削減する再構成プロセッサに関するものであり、演算回路群毎に異なる配線構造を設けることで面積効率を高める、というものである。しかしながら、演算回路群自体は、先に述べた特徴量計算、識別器、SAD演算の実現に必要でない演算も含むため、回路規模は大きくなる。
【0027】
図23A、図23Bは特許文献3に対応する代表図面の抜粋である。特許文献3は乗算を効率よく実行できるアレイ演算器に関するものであり、算術演算器と乗算器の組み合わせによって乗算の効率を高める、というものである。しかしながら、算術演算器と、乗算器のみの組み合わせのため、先に述べたLUTを用いた識別器の実現は困難である。
【0028】
そこで本発明では、特徴量ベース識別方式、パターンマッチング方式の演算の共通的な構造に着目し、演算エレメントの機能を限定することで、各方式の演算を網羅して画像認識に必要な幅広い機能変更に対応しつつ、回路効率を最大にした画像認識プロセッサを提供することを目的とする。
【課題を解決するための手段】
【0029】
上記の課題を解決するため本発明の1形態における画像認識プロセッサは、第1の演算処理と、第1の演算処理に後続する第2の演算処理とによって画像認識する画像認識プロセッサであって、2次元状に配列された複数の第1演算器を含み、前記第1の演算処理を行う第1の演算器アレイと、2次元状に配列された複数の第2演算器を含み、前記第2の演算処理を行う第2の演算器アレイとを備え、前記第1の演算器アレイおよび第2の演算器アレイの回路構成は再構成可能であり、前記第1の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第1回路、および、シフトと減算機能とを有する第2回路を含み、ルックアップテーブル機能を有する第3回路、積和演算機能を有する第4回路、および、多入力加算機能を有する第5回路を含まず、前記第2の演算器アレイは、再構成可能な回路として、前記第3回路、前記第4回路および前記第5回路を含み、前記第1回路および前記第2回路を含まない。
【0030】
この構成によれば、第1演算器および第2演算器それぞれの回路規模の増大を抑えることと、第1演算器アレイにおける第1の演算処理および第2演算器アレイにおける第2の演算処理それぞれの機能変更によって複数種類の画像認識方式に対応させることができる。言い換えれば、第1の演算器アレイ、第2の演算器アレイは、複数種類の画像認識方式を切り替え可能に必要な幅広い機能変更に対応しつつ、回路効率を最大にすることができる。
【0031】
ここで、前記前記第2の演算器アレイは、再構成可能な回路として、入力データを前記第3回路のルックアップテーブルのアドレスに変換するアドレス変換機能を有する第7回路を含み、前記前記第1の演算器アレイは、再構成可能な回路として、前記第7回路を含まず、前記アドレス変換機能は、除算、クリッピング、および、前記ルックアップテーブルのイネーブル信号の生成のうち少なくとも一つの機能を有する構成としてもよい。
【0032】
ここで、前記複数の第1の演算器の各々は、少なくとも2つの第1入力端子と、第1出力端子と、前記2つの入力端子からのデータに算術論理演算を施す算術論理演算器と、前記算術論理演算器による演算結果を保持するレジスタと、前記算術論理演算器による演算結果、および、レジスタに保持されたデータのうち一方を選択して前記出力端子に出力する第1セレクタと、前記算術論理演算器、前記レジスタ、前記セレクタのそれぞれの機能を定義するための第1コンフィグレーションデータを保持する第1メモリとを備えていてもよい。
【0033】
ここで、前記複数の第2の演算器の各々は、少なくとも2つの第2入力端子と、第2出力端子と、前記2つの第2入力端子から入力されるデータに積和演算を施す積和・加算器ツリー回路と、ルックアップテーブルと、前記2つの第2入力端子から入力されるデータを前記ルックアップテーブルのアドレスに変換するアドレス変換器と、前記積和・加算器ツリーの演算結果、および、前記ルックアップテーブルの出力の一方を選択するセレクタと、前記積和・加算器ツリー、前記ルックアップテーブル、および、前記第2セレクタの機能を定義するための第2コンフィグレーションデータを保持する第2メモリとを備える構成としてもよい。
【0034】
ここで、前記積和・加算器ツリー回路は、データを保持するレジスタと、乗数と被乗数との積を部分積として生成する部分積生成回路と、加数および被加数と、前記部分積および前記レジスタに保持されたデータとのうち一方を選択するマルチプレクサと、前記マルチプレクサからの選択結果を加算し、加算結果として和とキャリーとを前記レジスタに保持させるキャリー保存加算器と、前記レジスタの保持された和とキャリーとを加算するキャリー伝播加算器とを備え、前記マルチプレクサが前記部分積および前記レジスタに保持されたデータを選択するとき、前記積和・加算器ツリー回路は積和演算の少なくとも1部を行い、前記マルチプレクサが加数および被加数を選択するとき、前記積和・加算器ツリー回路は多入力加算の少なくとも1部を行うようにしてもよい。
【0035】
ここで、前記第1の演算器アレイにおける前記第1演算処理は、HOG(輝度勾配ヒストグラム)を用いた特徴量生成処理であってもよい。
【0036】
ここで、前記第1の演算器アレイにおける前記第2演算処理は、LBP(ローカル・バイナリー・パターン)を用いた特徴量生成処理であってもよい。
【0037】
ここで、前記第2の演算器アレイは、前記第2演算処理用にAdaboost方式を用いて画像を識別する識別器として機能するようにしてもよい。
【0038】
ここで、前記第2の演算器アレイは、前記第2演算処理用にSVM方式を用いて画像を識別する識別器として機能するようにしてもよい。
【0039】
ここで、前記第1の演算器アレイは、差分絶対値和を用いたパターンマッチングにおける差分絶対値計算を実施し、前記第2の演算器アレイは、前記第1の演算器アレイで計算された差分絶対和を累算するようにしてもよい。
【0040】
ここで、前記第1の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも1つに応じて、特徴量生成方法を変更し、前記第2の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも1つに応じて、画像の識別方法を変更するようにしてもよい。
【0041】
ここで、前記第1の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも1つに応じて、差分絶対値計算における単位ブロックのサイズを変更するようにしてもよい。
【0042】
また、本発明の1形態におけるカメラシステムは、カメラと、カメラにより撮像された画像を認識する、上記の画像認識プロセッサと、前記カメラ周囲の明るさおよび時刻の少なくとも一方を環境情報として検知する環境センサーと、検知された環境情報に応じて、前記第1の演算器アレイおよび第2の演算器アレイの少なくとも一方の回路構成を変更する構成切替部とを備える。
【0043】
ここで、前記カメラシステムは、さらに、前記カメラシステムの位置情報を検知する地理情報センサーと、前記カメラシステムが車載された車の速度、および、ハンドル角度の少なくとも一方を検知する記走行情報センサーとを備え、前記構成切替部は、環境センサーににより検知された環境情報と、地理情報センサーにより検知された位置情報と、走行情報センサーにより検知された速度およびハンドル角度の少なくとも一方とに応じて、前記第1の演算器アレイ及び第2の演算器アレイの少なくとも一方の回路構成を変更するようにしてもよい。
【0044】
ここで、前記カメラシステムは、さらに、前記カメラシステムの撮影モードを選択するモードセレクタを備え、前記構成切替部は、環境センサーににより検知された環境情報と、前記モードセレクタにより選択された撮像モードとに応じて、前記第1の演算器アレイ及び第2の演算器アレイの少なくとも一方の回路構成を変更するようにしてもよい。
【発明の効果】
【0045】
本発明によれば、画像認識の方式を切り替える自由度を備えつつ、回路規模効率が高いため、消費電力、LSIコスト削減の効果を得ることが出来る。
【図面の簡単な説明】
【0046】
【図1A】本発明の実施形態である画像認識プロセッサの説明図である。
【図1B】第1の演算器アレイ内のコンフィギュレーションメモリの設定一覧を示す図である。
【図1C】第2の演算器アレイ内のコンフィギュレーションメモリの設定一覧を示す図である。
【図2A】画像認識プロセッサの構成要素の積和・加算器ツリーの説明図である。
【図2B】積和・加算器ツリーの構成例を示す図である。
【図2C】積和・加算器ツリーの別の構成例を示す図である。
【図3A】本発明の実施形態であるHOG特徴量の計算に関する説明図である。
【図3B】輝度勾配ベクトル角度の近似計算の説明図である。
【図3C】BIN番号判定木の一例を示す説明図である。
【図4】本発明の実施形態であるHOG特徴量を計算するための第1の演算器アレイのコンフィグレーション例を示す図である。
【図5A】本発明の実施形態であるLBP特徴量の計算に関する説明図である。
【図5B】LBP特徴量を計算するための第1の演算器アレイのコンフィグレーション例を示す図である。
【図6A】本発明の実施形態であるAdaBoost方式による識別器に関する説明図である。
【図6B】AdaBoost方式による識別器を実現するための第2の演算器アレイのコンフィグレーション例を示す図である。
【図7A】本発明の実施形態であるSVM方式による識別器に関する説明図である。
【図7B】SVM方式による識別器を実現するための第2の演算器アレイのコンフィグレーション例を示す図である。
【図8A】本発明の実施形態であるSAD方式パターンマッチングに関する説明図である。
【図8B】差分絶対値和(SAD: Sum of Absolute Difference)を用いたパターンマッチングを実現するための第1、第2の演算器アレイ101、102のコンフィギュレーション例を示す図である。
【図8C】輝度およびコントラストが低下する画像例を示す図である。
【図9A】HOG特徴量を用いたAdaBoost方式識別を画像認識プロセッサで実現する例に関する第1の演算器アレイ101の説明図である。
【図9B】HOG特徴量を用いたAdaBoost方式識別を画像認識プロセッサで実現する例に関する第2の演算器アレイ102の説明図である。
【図9C】HOG特徴量を算出する第1の演算器アレイ101の構成例を示す図である。
【図9D】AdaBoost方式識別を行う第2の演算器アレイ102の構成例を示す図である。
【図10A】LBP特徴量を用いたSVM方式識別を画像認識プロセッサで実現する例に関する第1の演算器アレイ101の説明図である。
【図10B】LBP特徴量を用いたSVM方式識別を画像認識プロセッサで実現する例に関する第2の演算器アレイ102の説明図である。
【図10C】LBP特徴量を算出する第1の演算器アレイ101の構成例を示す図である。
【図10D】SVM方式識別を行う第2の演算器アレイ102の構成例を示す図である。
【図11A】SAD方式パターンマッチングを画像認識プロセッサで実現する例に関する第1の演算器アレイ101の説明図である。
【図11B】SAD方式パターンマッチングを画像認識プロセッサで実現する例に関する第2の演算器アレイ102の説明図である。
【図11C】SAD方式パターンマッチングを実現する第1、第2の演算器アレイ101、102の構成例を示す図である。
【図12A】画像認識プロセッサにおける識別方式切り替えの組み合わせに関する説明図である。
【図12B】画像認識プロセッサにおける識別方式切り替えのシーンに関する説明図である。
【図12C】画像認識プロセッサにおける識別方式切り替えのシーン毎に適した処理に関する説明図である。
【図13A】画像認識プロセッサにおけるSAD演算回路切り替えの組み合わせに関する説明図である。
【図13B】画像認識プロセッサにおけるSAD演算回路切り替えの組み合わせに関する説明図である。
【図13C】画像認識プロセッサにおけるSAD演算回路切り替えの具体例に関する説明図である。
【図14A】画像認識プロセッサを用いた画像認識システムの構成図である。
【図14B】画像特徴に変換が生じる画像例を示す図である。
【図15A】画像認識システムを用いた監視カメラの構成図である。
【図15B】画像認識システムを用いた車載カメラシステムの構成図である。
【図15C】画像認識システムを用いたデジタルスチルカメラシステムの構成図である。
【図16】HOG特徴量の計算に関する説明図である。
【図17】LBP特徴量の計算に関する説明図である。
【図18】AdaBoost方式による識別器に関する説明図である。
【図19】SVM方式による識別器に関する説明図である。
【図20】SAD方式パターンマッチングに関する説明図である。
【図21A】特許文献1の回路構成例を示す図である。
【図21B】特許文献1の他の回路構成例を示す図である。
【図22】特許文献2の回路構成例を示す図である。
【図23A】特許文献3の回路構成例を示す図である。
【図23B】特許文献3の他の回路構成例を示す図である。
【図24A】非特許文献3の回路構成例を示す図である。
【図24B】非特許文献3の他の回路構成例を示す図である。
【発明を実施するための形態】
【0047】
以下、本発明に関わる画像認識プロセッサの実施の形態を図面に基づいて詳細に説明する。
【0048】
図1Aは画像認識プロセッサに関する説明図である。同図のように画像認識プロセッサは、第1の演算器アレイ101、第2の演算器アレイ102から構成される。この画像認識プロセッサは、第1の演算処理と、第1の演算処理に後続する第2の演算処理とによって画像認識する画像認識プロセッサであって、2次元状に配列された複数の第1演算器(プロセッサエレメント103)を含み、第1の演算処理を行う第1の演算器アレイ101と、2次元状に配列された複数の第2演算器(プロセッサエレメント110)を含み、第2の演算処理を行う第2の演算器アレイ102とを備える。第1の演算器アレイおよび第2の演算器アレイの回路構成は再構成可能である。
【0049】
第1の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第1回路(concat)、および、シフトと減算機能とを有する第2回路(shift&sub)を含み、ルックアップテーブル機能を有する第3回路(LUT)、積和演算機能を有する第4回路(MAC)、および、多入力加算機能を有する第6回路(addtree)を含まない。
【0050】
第2の演算器アレイは、再構成可能な回路として、第3回路、第4回路、第5回路および第6回路を含み、第1回路および第2回路を含まない。
【0051】
このような構成にすることによって、第1演算器および第2演算器それぞれの回路規模の増大を抑えることと、第1演算器アレイにおける第1の演算処理および第2演算器アレイにおける第2の演算処理それぞれの機能変更によって複数種類の画像認識方式に対応させることができる。言い換えれば、第1の演算器アレイ、第2の演算器アレイは、複数種類の画像認識方式を切り替え可能に必要な幅広い機能変更に対応しつつ、回路効率を最大にすることができる。第1の演算処理は、例えば、HOGによる特徴量生成処理、LBPによる特徴量生成処理、差分絶対値和を求める処理などである。第2の演算処理は、例えば、Adaboostの識別器としての画像認識処理、SVMの識別器としての画像認識処理、差分絶対値和を累積する演算処理等である。
【0052】
第1の演算器アレイ101はプロセッサエレメント103と配線ネットワーク107から構成され、第2の演算器アレイ102はプロセッサエレメント110と配線ネットワーク107から構成される。プロセッサエレメント103とプロセッサエレメント110は大きく機能が異なるものであり、後述する画像認識のある特徴に基づいたものである。
【0053】
プロセッサエレメント103は演算器104とレジスタ105、切り替えスイッチ117、コンフィギュレーションメモリ106から構成される。切り替えスイッチ117は演算器104の結果をそのまま出力するか、もしくはレジスタ経由で出力するかを選択するセレクタであり、コンフィギュレーションメモリ106はその内容によって、演算器104の機能モードと、切り替えスイッチ117の切り替えを制御する。
【0054】
図1Bは、コンフィギュレーションメモリ106の設定一覧を示す図である。コンフィギュレーションメモリ106の設定一覧(115)に内容(コンフィギュレーション)と機能を示す。例えば、以下のようになっている。ここで演算内容はハードウェア記述言語Verilogの演算仕様に準拠した記載としている。
【0055】
0:register。入力118を、演算器104を用いて“Y=A”の形で演算し、レジスタ105で格納し、格納結果を出力119へ出力する。すなわちレジスタとして機能する。
【0056】
1:cmp。入力118の値を、演算器104を用いて“Y=(A>=B)”の形で演算し、結果を出力119へ出力する。すなわち比較器として機能する。
【0057】
2:abs。入力118の値を、演算器104を用いて“Y1=(A>=0), Y2=Y1?A:(-A)”の形で条件演算をし、結果を出力119へ出力する。すなわち絶対値演算器として機能する。なお、上記式中の「?:」は条件演算子を示す記号である。
【0058】
3:shift&sub。入力118の値を、演算器104を用いて“Y=A-(B>>C)”の形で演算し、結果を出力119へ出力する。すなわちシフト&減算器として機能する。
【0059】
4:add。入力118の値を、演算器104を用いて“Y=A+B”の形で演算し、結果を出力119へ出力する。すなわち加算器として機能する。
【0060】
5:selector。入力118の値を、演算器104を用いて“Y=A?B:C”の形で演算し、結果を出力119へ出力する。すなわちセレクタとして機能する。
【0061】
6:concat。入力118の値を、演算器104を用いて“Y={A[0],B[0],C[0], D[0],E[0],F[0]}”の形で演算し、結果を出力119へ出力する。すなわちビット連接演算器として機能する。
【0062】
上記の機能以外にも必要に応じて機能を設けることで演算機能の対応範囲が広がるが、演算性能、回路効率の両面から、以下の要件1〜3をすべて満たすことが必要である。
【0063】
要件1: shift&subを設ける。これはHOGのような輝度勾配による特徴量の場合にベクトルの強度算出の近似計算をする上で多用される演算であり、演算性能上有効な機能である。
【0064】
要件2: concatを設ける。これはLBPのような輝度パターンによる特徴量の場合にパターンを効率よく演算する上で多用される演算であり、演算性能上有効な機能である。
【0065】
要件3: 乗算器、LUTを持たない。乗算器、LUTは一般に回路規模が大きく、かつ要件1、要件2によって不要な演算となるため、回路効率上持たないことが必要である。
【0066】
画像の特徴量としては、輝度勾配(エッジ)特徴量、輝度パターン(テクスチャ)特徴量に大別されるため、要件1、要件2によっていずれの場合にも対応することが出来る。また、要件3によって回路効率を高めることが出来る。
【0067】
プロセッサエレメント110はアドレス変換器111と、ルックアップテーブル(LUT)112、積和・加算器ツリー113、切り替えスイッチ123、コンフィギュレーションメモリ114から構成される。切り替えスイッチ123は積和・加算器ツリー113の結果、あるいはLUT112の出力のいずれかを選択するセレクタであり、コンフィギュレーションメモリ114はその内容によって、積和・加算器ツリー113、アドレス変換器111の機能モードと、切り替えスイッチ123の切り替えを制御する。
【0068】
図1Cは、コンフィギュレーションメモリ114の設定一覧を示す図である。コンフィギュレーションメモリ114の設定一覧(116)に内容と機能を示す。例えば、以下のようになっている。
【0069】
0:mac。入力121を、積和・加算器ツリー113を用いて“Y=A*B”の形で演算し、結果を出力122へ出力する。すなわち乗算器として機能する。
【0070】
1:addtree。入力121を、積和・加算器ツリー113を用いて“Y=A+B+C+D+E+F”の形で演算し、結果を出力122へ出力する。すなわち多入力加算器として機能する。
【0071】
2:LUT。入力121を、アドレス変換器111を用いてアドレス情報にし、LUT112で該当するアドレスのデータを取り出し、結果を出力122へ出力する。すなわちLUTとして機能する。ここでアドレス変換器111は、例えば以下のような変換を行う。
【0072】
2a:除算。入力値の上位ビットデータ、下位ビットデータを分離し、(上位ビットデータ)/下位ビットデータで除算した商、あるいは剰余をLUTアドレスとする。これは入力値の正規化(商を用いる場合)、あるいは巡回化(剰余を用いる場合)したアドレスにする効用を持つ。
【0073】
2b:クリッピング。入力値をある閾値と比較し、閾値を上回る、あるいは下回っている場合に、上限値あるいは下限値に値を補正した値をLUTアドレスとする。これは規格外入力値を補正したアドレスにする効用を持つ。
【0074】
2c:LUTイネーブル生成。入力値の上位ビットデータを規定値と比較し、LUTのイネーブルの有効、無効化を行う。これは一つの入力データで複数のLUTに渡ったアドレス拡張を行う効用を持つ。
【0075】
ここで、積和・加算器ツリー113についてその詳細を説明する。
【0076】
図2Aは積和・加算器ツリーの説明図である。
【0077】
プロセッサエレメント(PE)110内の積和・加算器ツリー113は部分積生成部204、マルチプレクサ205、加算器ツリー206、レジスタ207、加算器208から構成される。加算器ツリー206はいわゆるキャリー保存加算器(CSA)を用いた加算器であり、加算器208はキャリー伝播加算器(CPA)を用いた加算器である。入力121は、加数・被加数201、乗数202、被乗数203に接続される。部分積生成部204は乗数202、被乗数203の部分積を生成する。マルチプレクサ205は、他のプロセッサエレメントで生成された加数・被加数201、部分積生成部204で生成された部分積、レジスタ207の格納値のいずれかを選択し、選択された複数の値(加数・被加数、あるいは部分積)は加算器ツリー206にて加算され、結果をレジスタ207に格納される。レジスタ207の内容は加算値(Sum)とキャリー(Carry)が分離された状態となっており、マルチプレクサ205の入力、加算器208の入力、中間加算結果209として参照される。
【0078】
この構成によって積和・加算器ツリー113は積和演算、多入力加算の機能を実現できる。以下にそれぞれの機能を説明する。
【0079】
「積和演算」:マルチプレクサ205は部分積生成部204の結果、及びレジスタ207の格納内容を選択する。部分積、及びレジスタ207のSum、Carryは加算器ツリー206にて加算されるため、レジスタ207には乗算結果の累算値が格納される。所定の累算が完了した後、加算器208にてレジスタ207のSum、Carryが加算され、最終的な積和・加算結果210(ここでは積和結果)として出力される。なお、乗算は1回の積和演算として本構成を用いて実現可能である。
【0080】
「多入力加算」:マルチプレクサ205は加数・被加数201を選択され、加算器ツリー206にて加算される。レジスタ207には加算結果が格納される。レジスタ207の格納内容Sum、Carryは中間加算結果209として出力されてさらに別のプロセッサエレメント110の加数・被加数201として参照されるか、または加算器208でSum、Carryが加算され、最終的な積和・加算結果210(ここでは加算結果)として出力される。
【0081】
上記積和演算、あるいは多入力加算は、以降の説明(図6B、図7B、図8B)にて積和モード、加算器ツリーモードとして表記される。
【0082】
図2Bは積和・加算器ツリーの構成例を示す図である。例えば処理サイクル数Nの積和演算として、(式7)を実現したい場合、プロセッサエレメント211を積和モードとして乗数、被乗数を入力すれば、積和結果が得られる。
【0083】
【数5】

【0084】
図2Cは積和・加算器ツリーの別の構成例を示す図である。例えば演算性能を高めるため、先の積和演算を5並列化した処理サイクル数N/5の積和演算として、(式8)を実現したい場合、プロセッサエレメント212を積和モードとして乗数、被乗数を入力し、さらに、プロセッサエレメント213を加算器ツリーモードとして中間加算結果を加算することで、積和結果が得られる。
【0085】
【数6】

【0086】
他にも積和モード、加算器ツリーモードの組み合わせによって様々な構成が実現できる。これについては後述する画像認識でのコンフィギュレーション例にて説明する。
【0087】
上記の機能以外にも必要に応じて機能を設けることで演算機能の対応範囲が広がるが、演算性能、回路効率の両面から、以下の要件4、5をすべて満たすことが必要である。
【0088】
要件4: アドレス変換器、およびLUTを備える。これは識別器を構成する際に多用される機能であり、演算性能上有効な機能である。また、SAD演算結果の補正をする場合にも有効な機能である。
【0089】
要件5: 積和モード、加算器ツリーモードを有する積和・加算器ツリーを備える。これは、強識別器、SVM識別器、SAD累算結果を得るために多用される機能であり、演算性能上有効な機能である。
【0090】
画像の識別方式としては、特徴量識別方式、パターンマッチング方式に大別されるため、要件4、5により、その主要な処理要素である識別器、SAD累算を効率よく実現することが出来る。
【0091】
図1Aの画像認識プロセッサの説明に戻る。配線ネットワーク107は、配線124、クロスバスイッチ108、コンフィギュレーションメモリ109から構成される。クロスバスイッチ108はそのオン・オフによって、交差する2つの配線124の間にデータを伝達させるかどうかを切り替える。コンフィギュレーションメモリ109はクロスバスイッチ108のオン・オフを制御し、それによって任意の端子120間の経路を実現する。端子120はそれぞれ第1の演算器アレイ101内のプロセッサエレメント103、及び第2の演算器アレイ102内のプロセッサエレメント110に接続され、コンフィギュレーションメモリ109の情報に基づき、第1の演算器アレイ101、あるいは第2の演算器アレイ102内における、任意のプロセッサエレメント間の経路を実現する。
【0092】
また、第1の演算器アレイ101と第2の演算器アレイ102の接続関係は、101から102へと1方向であることが必要である。これは、要件1〜3を満たすプロセッサエレメント103からなる第1の演算器アレイ101、及び要件4〜5を満たすプロセッサエレメント110からなる第2の演算器アレイ102の組み合わせにより、102から101への信号伝達が不要となるためである。そのため、回路効率上、101から102へと1方向であることが必要となる。
【0093】
(コンフィギュレーション例1)
図3A〜図3C、図4は既に説明したHOG(輝度勾配ヒストグラム)を用いた特徴量生成を本発明に適用した場合の説明図である。先に輝度勾配ベクトル強度は以下の式で表されることを説明した。
【0094】
輝度勾配ベクトル強度 = √(dx^2+dy^2)
【0095】
上記平方根、自乗計算について、以下のような近似計算で同等の数値を得ることが可能である。
【0096】
輝度勾配ベクトル強度(近似) = a*P + b*Q
【0097】
ここで a,bは定数、例えばa=0.9604, b=0.3978などが使用できる。また、P,Q はdx, dyの絶対値(abs(dx), abs(dy))の関係によって、以下のように定義できる。
【0098】
abs(dx)>abs(dy)の時: P=abs(dx), Q=abs(dy)
abs(dx)=<abs(dy)の時: P=abs(dy), Q=abs(dx)
【0099】
また、0.9604*A, 0.3978*A(A:任意の数値)は、以下のようにシフトと減算の組み合わせで同等精度の数値を得ることが出来る。
【0100】
0.9604 * A -> (1-1/32-1/128-1/2048) * A
= A - (A>>5) - (A>>7) - (A>>11)
0.3978 * A -> (1-1/2-1/16-1/32-1/128-1/2048-1/8192) * A
= A - (A>>1) - (A>>4) - (A>>5) - (A>>11) - (A>>13)
【0101】
以上で、輝度勾配ベクトル強度の近似値は、絶対値(abs)、比較、加減算、シフトによって算出できることが分かる。
【0102】
次に輝度勾配ベクトル角度は以下の式で表されることを説明した。
【0103】
輝度勾配ベクトル角度 = arctan(dy/dx)
【0104】
上記角度計算について、以下のような近似計算で必要な精度の角度を得ることが出来る。例えば図3Bの301に記載したように8方向(BIN番号:0〜7)の方向を求めたい場合、以下のようなdx, dyの符号判定、比較計算とBIN番号の関係が成り立つ。
【0105】
(1) dx の符号比較
(1a) sign(dx) = 0 → BIN 0, 1, 6, 7
(1b) sign(dx) = 1 → BIN 2, 3, 4, 5
(2) dx, dy の符号比較
(2a) sign(dx) ^ sign(dy) = 0 → BIN 0, 1, 4, 5
(2b) sign(dx) ^ sign(dy) = 1 → BIN 2, 3, 6, 7
(3) dx, dy の絶対値比較
(3a) abs(dx) >= abs(dy) → BIN 0, 3, 4, 7
(3b) abs(dx) < abs(dy) → BIN 1, 2, 5, 6
【0106】
上記関係を用いると、図3Cの303に示すような判定木でBIN 番号が確定する。ここで各々のBIN番号リスト304は BIN番号の候補を表し、BIN番号リスト304につながる矢印305は判定結果を表す、上記に記載した判定条件(1a)〜(3b)を各々の矢印305に付与している。例えば、(1)〜(3)の比較結果が(1a)→(2a)→(3a)であれば図3Bの302で示した“BIN 0”が確定する。
【0107】
以上に示した近似計算に基づいた回路構成を、図4に示す。輝度勾配ベクトル強度算出と同等の演算を輝度勾配ベクトル強度算出回路401に、輝度勾配ベクトル角度算出と同等の演算を輝度勾配ベクトル角度算出回路402に、勾配方向ヒストグラム算出と同等の演算を勾配方向ヒストグラム算出回路403に示している。各演算器の上部に対応する演算を記載しており、これは図1Bの115に示したコンフィギュレーションメモリ106の設定一覧に対応している。輝度勾配ベクトル強度算出回路401、輝度勾配ベクトル角度算出回路402から得られる3種類の信号、“比較結果:abs(dx)>abs(dy)”、“符号:sign(dx)”、“排他的論理和結果:sign(dx)^sign(dy)”は図3Cの303に示す判定木の判定条件(1a)〜(3b)と等価であり、レジスタ更新・セレクタ制御信号群404により勾配方向ヒストグラム算出回路403のselector、及びregisterを制御して該当のBIN強度レジスタを選択・更新し、勾配方向ヒストグラムが算出できる。
【0108】
これら演算は、図1Aで説明した第1の演算器アレイ101のプロセッサエレメント103の機能に十分包含されているため、第1の演算器アレイ101を用いて実現できる。
【0109】
(コンフィギュレーション例2)
図5Aは既に説明したLBP(Local Binary Pattern)を用いた特徴量生成を本発明に適用した場合の説明図である。図5Bは、LBP特徴量を計算するための第1の演算器アレイのコンフィグレーション例を示す図である。
【0110】
先にLBPパターン番号は以下の(式9)、(式10)で表されることを説明した。
【0111】
【数7】

【0112】
上式は、減算と比較で実現できる複数のs(in-ic)をビット連接することを意味するため、図5BのLBP算出回路501に示した、sub, cmp, concatの構成で効率よく実現できることが分かる。LBP算出回路501で算出できたLBP503は、LBPヒストグラム算出回路502のcmpで各々のパターン番号と比較し、比較結果をadd、及びregisterで累算・更新することで、LBPヒストグラムが算出できる。
【0113】
これら演算は、図1Aで説明した第1の演算器アレイ101のプロセッサエレメント103の機能に十分包含されているため、第1の演算器アレイ101を用いて実現できる。
【0114】
(コンフィギュレーション例3)
図6Aは既に説明した、AdaBoost方式を用いた識別器を本発明に適用した場合の説明図である。図6Bは、AdaBoost方式による識別器を実現するための第2の演算器アレイ102のコンフィグレーション例を示す図である。
【0115】
先に識別器10201は、以下の(式11)で表されることを説明した。
【0116】
【数8】

【0117】
この式は、図6Bのアドレス変換器601、LUT602、積和・加算器ツリー603、積和・加算器ツリー604の組み合わせで実現される。ここで、アドレス変換器601は除算、あるいはクリッピング機能を用いて実現することできる。
【0118】
また、積和・加算器ツリー603は積和モード、積和・加算器ツリー604は加算器ツリーモードである。このように積和モード、加算器ツリーモードを組み合わせることで、複数の積和演算を並列化して、演算効率を高めた強識別器を実現することが出来る。
【0119】
これら演算は、図1Aで説明した第2の演算器アレイ102のプロセッサエレメント110の機能に十分包含されているため、第2の演算器アレイ102を用いて実現できる。
【0120】
(コンフィギュレーション例4)
図7Aは既に説明した、SVM方式を用いた識別器を本発明に適用した場合の説明図である。図7Bは、SVM方式を用いた識別器を実現するための第2の演算器アレイ102のコンフィギュレーション例を示す図である。
【0121】
先に識別器10301は、以下の(式12)、(式13)で表されることを説明した。
【0122】
【数9】

【0123】
この式は、図7Bのアドレス変換器701、LUT702、積和・加算器ツリー703の組み合わせで実現される。ここで、アドレス変換器701はLUT702のイネーブル生成機能を用いて実現することできる。例えばイネーブルがアクティブになっていないLUTは無効な値(0)を出力する、という機能が考えられる。
【0124】
また、積和・加算器ツリー703は加算器ツリーモードであり、先に説明したとおり、イネーブルがアクティブになっているLUTのみ有効な値を出力し、それ以外は無効な値(0)を出力しているので、各々のLUTの出力を加算器ツリーで足し合わせることで、複数のアドレス変換器701、LUT702全体で一つのLUTとして振舞う。そのためサイズの大きなLUTであっても本コンフィギュレーション例によれば、効率の良いSVM識別器を実現することが出来る。
【0125】
これら演算は、図1Aで説明した第2の演算器アレイ102のプロセッサエレメント110の機能に十分包含されているため、第2の演算器アレイ102を用いて実現できる。
【0126】
(コンフィギュレーション例5)
図8Aは既に説明した、差分絶対値和(SAD: Sum of Absolute Difference)を用いたパターンマッチングを本発明に適用した場合の説明図である。図8Bは、差分絶対値和(SAD: Sum of Absolute Difference)を用いたパターンマッチングを実現するための第1、第2の演算器アレイ101、102のコンフィギュレーション例を示す図である。
【0127】
先に図8Aにおける参照画像10401、基準画像10402から対応する任意位置からそれぞれ単位ブロック10403、10404を抜き出し、参照画像における輝度をref(x,y)、基準画像における輝度をbase(x,y)と定義したときに、差分絶対値和は以下の式で表されることを説明した。
【0128】
【数10】

【0129】
この式は、図8Bの差分絶対値算出回路802で示した、sub, absと、絶対値累算回路804で示した積和・加算器ツリー805、806の組み合わせで実現される。また、積和・加算器ツリー805は積和モードで係数を1にしたもの、積和・加算器ツリー806は加算器ツリーモードである。このように積和モード、加算器ツリーモードを組み合わせることで、複数の差分絶対値演算を並列化して、演算効率を高めた差分絶対値和計算を実現することが出来る。
【0130】
更に本発明によれば、図8Cで示したように801のタイミングで参照画像の輝度レベル、コントラストが低下した場合に、LUTを用いたSAD結果の補正が実現できる。具体的には、前フレーム最低輝度算出回路803で示した、cmp, selector, registerを用いて、前フレームの最適輝度を求め、その値と、補正前SAD出力結果を用いてLUTを参照することで、補正後SAD出力を求めることが出来る。これにより、環境に応じて補正機能を持つパターンマッチングが実現できる。なお補正機能については、本コンフィギュレーション例以外にも、例えば積和モードとなっている積和・加算器ツリー805の係数1の代わりにLUTの出力を用いることで、差分絶対値和計算自体に補正を行うことが出来る。
【0131】
これら演算のうち、差分絶対値算出回路802及び、前フレーム最低輝度算出回路803は、これら演算は、図1Aで説明した第1の演算器アレイ101のプロセッサエレメント103の機能に十分包含されているため、第1の演算器アレイ101を用いて実現できる。また、絶対値累算回路804及び、SAD補正回路807は、これら演算は、図1Aで説明した第2の演算器アレイ102のプロセッサエレメント110の機能に十分包含されているため、第2の演算器アレイ102を用いて実現できる。
【0132】
(コンフィギュレーション例6)
図9A、図9Bは、コンフィギュレーション例1で説明したHOG(輝度勾配ヒストグラム)を用いた特徴量生成と、コンフィギュレーション例3で説明したAdaBoost方式を用いた識別器を第1の演算器アレイ101と、第2の演算器アレイ102で実現した場合の説明図である。
【0133】
図9C、図9Dは、HOG(輝度勾配ヒストグラム)を用いた特徴量生成、及びAdaBoost方式を用いた識別器の回路構成である。それぞれ演算のグループを演算回路(a1)(a2)(a3)(a4)、演算回路(b1)(b2)(b3)という様に記している。コンフィギュレーション例1〜コンフィギュレーション例5にて、それぞれの処理について第1の演算器アレイ101、及び第2の演算器アレイ102のいずれで実現できるか説明したが、その説明に基づいたプロセッサエレメント103、及び110の機能割り当てを図9A、図9Bに示す。各々のエレメントに機能(sub, abs, mac, …)を記し、接続関係を矢印で示している。さらにエレメントと先に述べた演算のグループの対応関係として、複数のエレメント毎に演算回路(a1)(a2)(a3)(a4)、演算回路(b1)(b2)(b3)という様に記している。
【0134】
以上のように、本コンフィギュレーション例によれば、第1の演算器アレイ101、及び第2の演算器アレイ102に機能の過不足無く処理を割り当てることが出来ることがわかる。また処理の流れという観点からも、第1の演算器アレイ101から第2の演算器アレイ102への1方向で実現できるため、不要な双方向のデータ伝達を不要に出来る。
【0135】
(コンフィギュレーション例7)
図10A、図10Bは、コンフィギュレーション例2で説明したLBP(Local Binary Pattern)を用いた特徴量生成と、実施例5で説明したSVM方式を用いた識別器を第1の演算器アレイ101と、第2の演算器アレイ102で実現した場合の説明図である。
【0136】
図10C、図10Dは、LBP(Local Binary Pattern)を用いた特徴量生成、及びSVM方式を用いた識別器の回路構成である。それぞれ演算のグループを演算回路(a1)(a2)、演算回路(b1)(b2)という様に記している。コンフィギュレーション例1〜コンフィギュレーション例5にて、それぞれの処理について第1の演算器アレイ101、及び第2の演算器アレイ102のいずれで実現できるか説明したが、その説明に基づいたプロセッサエレメント103、及び110の機能割り当てを図10A、図10Bに示す。各々のエレメントに機能(sub, abs, addtree, …)を記し、接続関係を矢印で示している。さらにエレメントと先に述べた演算のグループの対応関係として、複数のエレメント毎に演算回路(a1)(a2)、演算回路(b1)(b2)という様に記している。
【0137】
以上のように、本コンフィギュレーション例によれば、第1の演算器アレイ101、及び第2の演算器アレイ102に機能の過不足無く処理を割り当てることが出来ることがわかる。また処理の流れという観点からも、第1の演算器アレイ101から第2の演算器アレイ102への1方向で実現できるため、不要な双方向のデータ伝達を不要に出来る。
【0138】
(コンフィギュレーション例8)
図11A、図11Bは、コンフィギュレーション例5で説明した差分絶対値和(SAD: Sum of Absolute Difference)を用いたパターンマッチングを第1の演算器アレイ101と、第2の演算器アレイ102で実現した場合の説明図である。
【0139】
図11Cは、差分絶対値和(SAD: Sum of Absolute Difference)を用いたパターンマッチングの回路構成である。それぞれ演算のグループを演算回路(a1)(a2)、演算回路(b1)(b2)という様に記している。コンフィギュレーション例1〜コンフィギュレーション例5にて、それぞれの処理について第1の演算器アレイ101、及び第2の演算器アレイ102のいずれで実現できるか説明したが、その説明に基づいたプロセッサエレメント103、及び110の機能割り当てを図11(a)に示す。各々のエレメントに機能(sub, abs, mac, …)を記し、接続関係を矢印で示している。さらにエレメントと先に述べた演算のグループの対応関係として、複数のエレメント毎に演算回路(a1)(a2)、演算回路(b1)(b2)という様に記している。
【0140】
以上のように、本コンフィギュレーション例によれば、第1の演算器アレイ101、及び第2の演算器アレイ102に機能の過不足無く処理を割り当てることが出来ることがわかる。また処理の流れという観点からも、第1の演算器アレイ101から第2の演算器アレイ102への1方向で実現できるため、不要な双方向のデータ伝達を不要に出来る。
【0141】
(処理割り当て変更例1)
以上のように、本発明を用いることで、第1の演算器アレイ101と第2の演算器アレイ102の組み合わせにより、機能の過不足無く画像認識の処理を割り当てることを説明した。これら処理の割り当ては適宜変更することが出来る。図12A、図12Bに特徴量ベース識別方式における、処理割り当て変更の例を示す。
【0142】
例えば、車の前方安全確認のために対象物を識別する場合、1201、1202に示すように、周辺環境が市街地の場合、山道の場合、それぞれにおいて対象物が人、動物と異なるため、対象物に応じて特徴量、あるいは識別器の手法を変更したほうが望ましい。また、1203、1204に示すように、昼間と夜間において画像の輝度、コントラスト等が大きく異なるため、識別精度を上げるために環境に応じて特徴量、あるいは識別器の手法を変更したほうが望ましい。
【0143】
これら組み合わせをまとめた例を1205に示す。対象物、環境に応じてシーンA、B、C、Dとしている。先のコンフィギュレーション例で示したように、本発明では第1の演算器アレイ101と第2の演算器アレイ102の組み合わせにより、特徴量の計算手法、識別器の手法を自在に実現することが出来る。例えば、1206に示したように、シーンAでは、特徴量としてHOG、識別器としてAda-boostを使用し、またシーンBでは、特徴量としてLBP、識別企図してはSVMを使用する、ということが出来る。また、既に説明した特徴量には拘らず、例えばHOG、LBPの変形版(1206ではHOG2、LBP2と記載)、Ada-boostの変形版(1206ではAda-boost2と記載)、あるいは新規の手法を第1の演算器アレイ101と第2の演算器アレイ102の組み合わせで実現することも出来る。既にで述べたように本発明によれば、特徴量においては輝度勾配(エッジ)特徴量、輝度パターン(テクスチャ)特徴量いずれにおいても実現でき、さらに主要な処理要素である、識別器、SAD累算を効率よく実現できるため、新規の手法においても本発明が網羅した機能によって実現出来る。
【0144】
(処理割り当て変更例2)
図13A〜図13Cにパターンマッチング方式における、処理割り当て変更の例を示す。
【0145】
先に説明したとおり、SAD演算では単位ブロックにおける各ピクセルの絶対値差分の累積を求めるため、図13Aに示すようにピクセル毎の差分絶対値に分布が存在する場合、SAD演算範囲の大小によっては、例えば図13AでSAD演算範囲1、SAD演算範囲2の2通りを考えた場合、図13Bに示したように、SAD演算範囲が狭い(SAD演算範囲1)場合は、SAD単位ブロック座標(SAD演算開始位置)に応じた累算量の変動が大きいが、SAD演算範囲が広い(SAD演算範囲2)場合は、累算量の変動が小さい。
【0146】
この特徴は、例えば単位ブロック座標によって検出感度を高めたい場合は、変動量が大きくなるSAD演算範囲とし、逆にノイズ成分の平滑効果を高めたい場合は、変動量が小さくなるSAD演算範囲とする、という効果に応用できる。
【0147】
すなわち、図13Cのように単位ブロック形状を変更(1301、1302)によって画像に適したSAD演算を実現できる。本発明では、それぞれの単位ブロック形状に応じたSAD演算回路(1303、1304)を割り当てることが出来るため、画像に適したパターンマッチングを実現できる。
【0148】
(画像認識システム構成例1)
処理割り当て変更例1、2に示したように環境、識別対象、画像の特徴、などに応じて第1の演算器アレイ101と第2の演算器アレイ102の処理割り当ての変更を行うことで、認識精度を最適化することが出来る。この特徴を生かした画像認識システム構成を図14Aに示す。
【0149】
画像認識システム1401は、カメラ1402に接続される。画像認識システム1401は、ビデオI/F 1403、CPU1404、図1Aの説明で述べた画像認識プロセッサ1405、メモリ1406、各々を接続するバス1407で構成される。またメモリ1406には1409に示すように、各シーン、画像特徴に応じたコンフィギュレーション(設定1、設定2、・・・)が格納されている。
【0150】
例えば、図14Bに示すように、シーン、画像特徴の変更(1408)の有無をCPU1404が監視し、変更が発生すると、メモリ1406に格納されたコンフィギュレーション情報1409のうち、適切なものを選択して、画像認識プロセッサ1405へ設定する。これにより、シーン、画像特徴に応じた画像認識システムが実現できる。
【0151】
(画像認識システム構成例2)
画像認識システム構成例1に示した画像認識システムを用いたセットの例を説明する。近年、監視カメラ、車載カメラ、デジタルスチルカメラなど、人物や非人物を検知する画像認識技術が幅広く使用されているが、それぞれの用途において以下のような課題がある。
【0152】
監視カメラ: 設置場所の周辺環境(明るさ、障害物の色・模様)、対象物(人物高さ、服装、人数)によっては、誤検知、検知漏れが発生する。
【0153】
車載カメラ: 走行環境(明るさ、路面周囲環境)、対象物(人、動物)によっては、誤検知、検知漏れが発生する。
【0154】
デジタルスチルカメラ: 撮影環境(明るさ、路面周囲環境)、対象物(人、動物)によっては、誤検知、検知漏れが発生する。
【0155】
こういった課題に対し、処理割り当て変更例1、2に示したような画像特徴に応じた特徴量生成、識別器を切りかえる、あるいはパターンマッチングの差分絶対値和計算における、単位ブロック形状を変更することで、誤検知、検知漏れを防ぐことが出来る。
【0156】
図15Aは、監視カメラシステムにおける画像認識システム構成例である。環境センサー1501、画像履歴データベース1502、画像認識システム1401から構成される。環境センサー1501、画像履歴データベース1502の情報は、CPU1404で実現される認識手法判定・コンフィギュレーション切り替え部に入力される。この環境センサー1501から明るさ、時間情報が入力され、また画像履歴データベース1502から過去の監視カメラ映像の履歴情報、例えば人数、画面内の滞留時間などが入力されることで、CPU1404にて設置場所の周辺環境、及び対象物の分析がなされる。この分析の結果、認識手法を判定し、コンフィギュレーションを切り替えることで、画像認識プロセッサ1405にて該当の認識手法による処理が実行できる。
【0157】
図15Bは、車載カメラシステムにおける画像認識システム構成例である。環境センサー1503、地理情報センサー1504、走行情報センサー1505、画像認識システム1401から構成される。環境センサー1503、地理情報センサー1504、走行情報センサー1505の情報は、CPU1404で実現される認識手法判定・コンフィギュレーション切り替え部に入力される。この環境センサー1503から明るさ、時間情報が入力され、また地理情報センサー1504から地理情報、例えば現在の位置、周辺の道路状況などが入力される。また走行情報センサー1505から走行情報、例えば車速、ハンドル角度などが入力されることで、CPU1404にて走行環境、及び対象物の分析がなされる。この分析の結果、認識手法を判定し、コンフィギュレーションを切り替えることで、画像認識プロセッサ1405にて該当の認識手法による処理が実行できる。
【0158】
図15Cは、デジタルスチルカメラシステムにおける画像認識システム構成例である。環境センサー1506、撮影モードセレクタ1507、画像認識システム1401から構成される。環境センサー1506、撮影モードセレクタ1507の情報は、CPU1404で実現される認識手法判定・コンフィギュレーション切り替え部に入力される。この環境センサー1506から明るさ、時間情報が入力され、また撮影モードセレクタ1507から撮影モード、例えば人物写真か風景写真か、あるいはフラッシュ使用有無などが入力されることで、CPU1404にて撮影環境、及び対象物の分析がなされる。この分析の結果、認識手法を判定し、コンフィギュレーションを切り替えることで、画像認識プロセッサ1405にて該当の認識手法による処理が実行できる。
【0159】
以上、本発明の画像認識プロセッサについて、実施形態に基づいて説明したが、本発明は、この実施形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【0160】
本発明によれば、画像認識の方式を切り替える自由度を備えつつ、回路規模効率が高いため、消費電力、LSIコスト削減の効果を得ることが出来る。また画像認識の方式を切り替えることでシーン、画像特徴に応じて最適な手法を実施する画像認識システムが実現できる。
【符号の説明】
【0161】
101 第1の演算器アレイ
102 第2の演算器アレイ
103、110、211、212、213 プロセッサエレメント
107 配線ネットワーク
104 演算器
105、207 レジスタ
106、109、114 コンフィギュレーションメモリ
108 クロスバスイッチ
111、601、701 アドレス変換器
112、602、702 ルックアップテーブル(LUT)
113、603、604、703 積和・加算器ツリー
117、123 切り替えスイッチ
124 配線
204 部分積生成部
205 マルチプレクサ
206 加算器ツリー
208 加算器
1401 画像認識システム
1402 カメラ
1403 ビデオI/F
1404 CPU
1405 本発明の画像認識プロセッサ
1406 メモリ
1407 バス
1501、1503、1506 環境センサー
1502 画像履歴データベース
1504 地理情報センサー
1505 走行情報センサー
1507 撮影モードセレクタ
10001、10101、10401 参照画像
10002 10102、10403、10404 単位ブロック
10003、10007、10103、10107 単位ブロック内の各画素
10004、10104 ヒストグラム
10201、10202、10301 識別器
10402 基準画像

【特許請求の範囲】
【請求項1】
第1の演算処理と、第1の演算処理に後続する第2の演算処理とによって画像認識する画像認識プロセッサであって、
2次元状に配列された複数の第1演算器を含み、前記第1の演算処理を行う第1の演算器アレイと、
2次元状に配列された複数の第2演算器を含み、前記第2の演算処理を行う第2の演算器アレイとを備え、
前記第1の演算器アレイおよび第2の演算器アレイの回路構成は再構成可能であり、
前記第1の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第1回路、および、シフトと減算機能とを有する第2回路を含み、ルックアップテーブル機能を有する第3回路、積和演算機能を有する第4回路、および、多入力加算機能を有する第5回路を含まず、
前記第2の演算器アレイは、再構成可能な回路として、前記第3回路、前記第4回路および前記第5回路を含み、前記第1回路および前記第2回路を含まない
画像認識プロセッサ。
【請求項2】
前記前記第2の演算器アレイは、再構成可能な回路として、入力データを前記第3回路のルックアップテーブルのアドレスに変換するアドレス変換機能を有する第7回路を含み、
前記前記第1の演算器アレイは、再構成可能な回路として、前記第7回路を含まず、
前記アドレス変換機能は、除算、クリッピング、および、前記ルックアップテーブルのイネーブル信号の生成のうち少なくとも一つの機能を有する
請求項1に記載の画像認識プロセッサ。
【請求項3】
前記複数の第1の演算器の各々は、
少なくとも2つの第1入力端子と、
第1出力端子と、
前記2つの入力端子からのデータに算術論理演算を施す算術論理演算器と、
前記算術論理演算器による演算結果を保持するレジスタと、
前記算術論理演算器による演算結果、および、レジスタに保持されたデータのうち一方を選択して前記出力端子に出力する第1セレクタと、
前記算術論理演算器、前記レジスタ、前記セレクタのそれぞれの機能を定義するための第1コンフィグレーションデータを保持する第1メモリと
を備える
請求項1または2に記載の画像認識プロセッサ。
【請求項4】
前記複数の第2の演算器の各々は、
少なくとも2つの第2入力端子と、
第2出力端子と、
前記2つの第2入力端子から入力されるデータに積和演算を施す積和・加算器ツリー回路と、
ルックアップテーブルと、
前記2つの第2入力端子から入力されるデータを前記ルックアップテーブルのアドレスに変換するアドレス変換器と、
前記積和・加算器ツリーの演算結果、および、前記ルックアップテーブルの出力の一方を選択するセレクタと、
前記積和・加算器ツリー、前記ルックアップテーブル、および、前記第2セレクタの機能を定義するための第2コンフィグレーションデータを保持する第2メモリと
を備える請求項1、2または3に記載の画像認識プロセッサ。
【請求項5】
前記積和・加算器ツリー回路は、
データを保持するレジスタと、
乗数と被乗数との積を部分積として生成する部分積生成回路と、
加数および被加数と、前記部分積および前記レジスタに保持されたデータとのうち一方を選択するマルチプレクサと、
前記マルチプレクサからの選択結果を加算し、加算結果として和とキャリーとを前記レジスタに保持させるキャリー保存加算器と、
前記レジスタの保持された和とキャリーとを加算するキャリー伝播加算器と
を備え、
前記マルチプレクサが前記部分積および前記レジスタに保持されたデータを選択するとき、前記積和・加算器ツリー回路は積和演算の少なくとも1部を行い、
前記マルチプレクサが加数および被加数を選択するとき、前記積和・加算器ツリー回路は多入力加算の少なくとも1部を行う
請求項4に記載の画像認識プロセッサ。
【請求項6】
前記第1の演算器アレイにおける前記第1演算処理は、HOG(輝度勾配ヒストグラム)を用いた特徴量生成処理である
請求項1〜5の何れか1項に記載の画像認識プロセッサ。
【請求項7】
前記第1の演算器アレイにおける前記第2演算処理は、LBP(ローカル・バイナリー・パターン)を用いた特徴量生成処理である
請求項1〜5の何れか1項に記載の画像認識プロセッサ。
【請求項8】
前記第2の演算器アレイは、前記第2演算処理用にAdaboost方式を用いて画像を識別する識別器として機能する
請求項1〜5の何れか1項に記載の画像認識プロセッサ。
【請求項9】
前記第2の演算器アレイは、前記第2演算処理用にSVM方式を用いて画像を識別する識別器として機能する
請求項1〜5の何れか1項に記載の画像認識プロセッサ。
【請求項10】
前記第1の演算器アレイは、差分絶対値和を用いたパターンマッチングにおける差分絶対値計算を実施し、
前記第2の演算器アレイは、前記第1の演算器アレイで計算された差分絶対和を累算する
請求項1〜5の何れか1項に記載の画像認識プロセッサ。
【請求項11】
前記第1の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも1つに応じて、特徴量生成方法を変更し、
前記第2の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも1つに応じて、画像の識別方法を変更する
請求項1〜5の何れか1項に記載の画像認識プロセッサ。
【請求項12】
前記第1の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも1つに応じて、差分絶対値計算における単位ブロックのサイズを変更する
請求項9に記載の画像認識プロセッサ。
【請求項13】
カメラと、
カメラにより撮像された画像を認識する、請求項1〜4の何れか1項に記載の画像認識プロセッサと、
前記カメラ周囲の明るさおよび時刻の少なくとも一方を環境情報として検知する環境センサーと、
検知された環境情報に応じて、前記第1の演算器アレイおよび第2の演算器アレイの少なくとも一方の回路構成を変更する構成切替部と
を備えるカメラシステム。
【請求項14】
さらに、
前記カメラシステムの位置情報を検知する地理情報センサーと、
前記カメラシステムが車載された車の速度、および、ハンドル角度の少なくとも一方を検知する記走行情報センサーとを備え、
前記構成切替部は、環境センサーににより検知された環境情報と、地理情報センサーにより検知された位置情報と、走行情報センサーにより検知された速度およびハンドル角度の少なくとも一方とに応じて、前記第1の演算器アレイ及び第2の演算器アレイの少なくとも一方の回路構成を変更する
請求項13に記載のカメラシステム。
【請求項15】
さらに、
前記カメラシステムの撮影モードを選択するモードセレクタを備え、
前記構成切替部は、環境センサーににより検知された環境情報と、前記モードセレクタにより選択された撮像モードとに応じて、前記第1の演算器アレイ及び第2の演算器アレイの少なくとも一方の回路構成を変更する
請求項13に記載のカメラシステム。

【図1A】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図4】
image rotate

【図5B】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8B】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図9D】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate

【図10D】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図11C】
image rotate

【図12B】
image rotate

【図12C】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14A】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図15C】
image rotate

【図18】
image rotate

【図19】
image rotate

【図21A】
image rotate

【図21B】
image rotate

【図22】
image rotate

【図23A】
image rotate

【図23B】
image rotate

【図3A】
image rotate

【図5A】
image rotate

【図8A】
image rotate

【図8C】
image rotate

【図12A】
image rotate

【図13C】
image rotate

【図14B】
image rotate

【図16】
image rotate

【図17】
image rotate

【図20】
image rotate

【図24A】
image rotate

【図24B】
image rotate