(57)【要約】【課題】各方式の演算を網羅して画像認識に必要な幅広い機能変更に対応しつつ、回路効率を最大にした画像認識プロセッサを提供する。【解決手段】画像認識プロセッサは、第１の演算器アレイと、第２の演算器アレイとを備え、前記第１の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第１回路（concat）、および、シフトと減算機能とを有する第２回路（shift&sub）を含み、ルックアップテーブル機能を有する第３回路（ＬＵＴ）、積和演算機能を有する第４回路（MAC）、および、多入力加算機能を有する第６回路（addtree）を含まず、前記第２の演算器アレイは、再構成可能な回路として、前記第３回路、前記第４回路、前記第５回路および前記第６回路を含み、前記第１回路および前記第２回路を含まない。【選択図】図１Ａ
2012221131.tif 000002
【特許請求の範囲】
【請求項１】
第１の演算処理と、第１の演算処理に後続する第２の演算処理とによって画像認識する画像認識プロセッサであって、
２次元状に配列された複数の第１演算器を含み、前記第１の演算処理を行う第１の演算器アレイと、
２次元状に配列された複数の第２演算器を含み、前記第２の演算処理を行う第２の演算器アレイとを備え、
前記第１の演算器アレイおよび第２の演算器アレイの回路構成は再構成可能であり、
前記第１の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第１回路、および、シフトと減算機能とを有する第２回路を含み、ルックアップテーブル機能を有する第３回路、積和演算機能を有する第４回路、および、多入力加算機能を有する第５回路を含まず、
前記第２の演算器アレイは、再構成可能な回路として、前記第３回路、前記第４回路および前記第５回路を含み、前記第１回路および前記第２回路を含まない
画像認識プロセッサ。
【請求項２】
前記前記第２の演算器アレイは、再構成可能な回路として、入力データを前記第３回路のルックアップテーブルのアドレスに変換するアドレス変換機能を有する第７回路を含み、
前記前記第１の演算器アレイは、再構成可能な回路として、前記第７回路を含まず、
前記アドレス変換機能は、除算、クリッピング、および、前記ルックアップテーブルのイネーブル信号の生成のうち少なくとも一つの機能を有する
請求項１に記載の画像認識プロセッサ。
【請求項３】
前記複数の第１の演算器の各々は、
少なくとも２つの第１入力端子と、
第１出力端子と、
前記２つの入力端子からのデータに算術論理演算を施す算術論理演算器と、
前記算術論理演算器による演算結果を保持するレジスタと、
前記算術論理演算器による演算結果、および、レジスタに保持されたデータのうち一方を選択して前記出力端子に出力する第１セレクタと、
前記算術論理演算器、前記レジスタ、前記セレクタのそれぞれの機能を定義するための第１コンフィグレーションデータを保持する第１メモリと
を備える
請求項１または２に記載の画像認識プロセッサ。
【請求項４】
前記複数の第２の演算器の各々は、
少なくとも２つの第２入力端子と、
第２出力端子と、
前記２つの第２入力端子から入力されるデータに積和演算を施す積和・加算器ツリー回路と、
ルックアップテーブルと、
前記２つの第２入力端子から入力されるデータを前記ルックアップテーブルのアドレスに変換するアドレス変換器と、
前記積和・加算器ツリーの演算結果、および、前記ルックアップテーブルの出力の一方を選択するセレクタと、
前記積和・加算器ツリー、前記ルックアップテーブル、および、前記第２セレクタの機能を定義するための第２コンフィグレーションデータを保持する第２メモリと
を備える請求項１、２または３に記載の画像認識プロセッサ。
【請求項５】
前記積和・加算器ツリー回路は、
データを保持するレジスタと、
乗数と被乗数との積を部分積として生成する部分積生成回路と、
加数および被加数と、前記部分積および前記レジスタに保持されたデータとのうち一方を選択するマルチプレクサと、
前記マルチプレクサからの選択結果を加算し、加算結果として和とキャリーとを前記レジスタに保持させるキャリー保存加算器と、
前記レジスタの保持された和とキャリーとを加算するキャリー伝播加算器と
を備え、
前記マルチプレクサが前記部分積および前記レジスタに保持されたデータを選択するとき、前記積和・加算器ツリー回路は積和演算の少なくとも１部を行い、
前記マルチプレクサが加数および被加数を選択するとき、前記積和・加算器ツリー回路は多入力加算の少なくとも１部を行う
請求項４に記載の画像認識プロセッサ。
【請求項６】
前記第１の演算器アレイにおける前記第１演算処理は、ＨＯＧ（輝度勾配ヒストグラム）を用いた特徴量生成処理である
請求項１〜５の何れか１項に記載の画像認識プロセッサ。
【請求項７】
前記第１の演算器アレイにおける前記第２演算処理は、ＬＢＰ（ローカル・バイナリー・パターン）を用いた特徴量生成処理である
請求項１〜５の何れか１項に記載の画像認識プロセッサ。
【請求項８】
前記第２の演算器アレイは、前記第２演算処理用にＡｄａｂｏｏｓｔ方式を用いて画像を識別する識別器として機能する
請求項１〜５の何れか１項に記載の画像認識プロセッサ。
【請求項９】
前記第２の演算器アレイは、前記第２演算処理用にＳＶＭ方式を用いて画像を識別する識別器として機能する
請求項１〜５の何れか１項に記載の画像認識プロセッサ。
【請求項１０】
前記第１の演算器アレイは、差分絶対値和を用いたパターンマッチングにおける差分絶対値計算を実施し、
前記第２の演算器アレイは、前記第１の演算器アレイで計算された差分絶対和を累算する
請求項１〜５の何れか１項に記載の画像認識プロセッサ。
【請求項１１】
前記第１の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも１つに応じて、特徴量生成方法を変更し、
前記第２の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも１つに応じて、画像の識別方法を変更する
請求項１〜５の何れか１項に記載の画像認識プロセッサ。
【請求項１２】
前記第１の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも１つに応じて、差分絶対値計算における単位ブロックのサイズを変更する
請求項９に記載の画像認識プロセッサ。
【請求項１３】
カメラと、
カメラにより撮像された画像を認識する、請求項１〜４の何れか１項に記載の画像認識プロセッサと、
前記カメラ周囲の明るさおよび時刻の少なくとも一方を環境情報として検知する環境センサーと、
検知された環境情報に応じて、前記第１の演算器アレイおよび第２の演算器アレイの少なくとも一方の回路構成を変更する構成切替部と
を備えるカメラシステム。
【請求項１４】
さらに、
前記カメラシステムの位置情報を検知する地理情報センサーと、
前記カメラシステムが車載された車の速度、および、ハンドル角度の少なくとも一方を検知する記走行情報センサーとを備え、
前記構成切替部は、環境センサーににより検知された環境情報と、地理情報センサーにより検知された位置情報と、走行情報センサーにより検知された速度およびハンドル角度の少なくとも一方とに応じて、前記第１の演算器アレイ及び第２の演算器アレイの少なくとも一方の回路構成を変更する
請求項１３に記載のカメラシステム。
【請求項１５】
さらに、
前記カメラシステムの撮影モードを選択するモードセレクタを備え、
前記構成切替部は、環境センサーににより検知された環境情報と、前記モードセレクタにより選択された撮像モードとに応じて、前記第１の演算器アレイ及び第２の演算器アレイの少なくとも一方の回路構成を変更する
請求項１３に記載のカメラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識プロセッサに関するものであり、特にアルゴリズム変更可能な再構成型画像認識プロセッサを少ない回路資源で実現する技術に関する。
【背景技術】
【０００２】
近年、監視カメラ、車載安全装置、デジタルスチルカメラなど、人物や非人物を検知する画像認識技術が幅広く使用されている。画像認識の手法としては各種存在するが、その中でも代表的なものが画素情報を基にして対象の特徴を表現するデータ（特徴量）を作成し、そのデータが該当・非該当いずれであるかの識別結果を計算・判定する特徴量ベース識別方式と、参照画像とベース画像（テンプレート）の差分を計算してその大小で該当・非該当いずれかであるかを判定するパターンマッチング方式がある（非特許文献１、非特許文献２）。これら方式の説明を以下に述べる。
【０００３】
図１６はHOG（輝度勾配ヒストグラム）を用いた特徴量に関する説明である。輝度勾配ヒストグラムとは隣り合う画素の輝度情報の勾配ベクトルを元に算出したヒストグラムである。参照画像１０００１における任意位置から単位ブロック１０００２を抜き出し、単位ブロック内の各画素１０００３における輝度勾配ベクトルの強度、角度を算出し、角度・強度を軸に持つヒストグラム１０００４を算出する。各々の値１０００５は、該当する角度に対応した強度の単位ブロック総和である。
【０００４】
ここで輝度勾配ベクトル強度、輝度勾配ベクトル角度とは、例えば、１０００６で示される画素関係において、注目している画素１０００７の上下左右、図ではＡ、Ｂ、Ｃ、Ｄで示される画素に関して、Ｘ方向、Ｙ方向の傾きｄｘ、ｄｙを、
ｄｘ＝輝度（Ｂ）−輝度（Ａ）
ｄｙ＝輝度（Ｃ）−輝度（Ｄ）
の様に定義したとき、
輝度勾配ベクトル強度 = √(dx^2+dy^2)
輝度勾配ベクトル角度 = arctan(dy/dx)
で表される数値である。
【０００５】
例えば単位ブロック１０００２では、８×８＝６４画素から構成されているため、ヒストグラム１０００４は、６４画素それぞれの輝度勾配ベクトル強度、角度を集計した結果となる。このヒストグラム１０００４を特徴量とする。
【０００６】
図１７はLBP（Local Binary Pattern）を用いた特徴量に関する説明である。LBPとは例えば１０１０６で示される画素関係において、注目している画素ic １０１０７の周囲８画素、図ではi0〜i7で示される画素に関して、（式１）で表される。（式１）中のs(u)は（式２）で表される。
【０００７】
【数１】
2012221131.tif 000003
で表される、画素icとi0〜i7との大小比較結果（８種類：８ビット）をパターンとしたものである。このパターンを用いて、参照画像１０１０１における任意位置から単位ブロック１０１０２を抜き出し、単位ブロック１０１０２内の各画素１０１０３におけるLBPを算出し、パターン番号・度数を軸に持つヒストグラム１０１０４を算出する。各々の値１０１０５は、該当するパターン番号に対応した画素の単位ブロック総和である。このヒストグラム１０１０４を特徴量とする。
【０００８】
図１８はAdaBoost方式を用いた識別器に関する説明図である。この識別器１０２０１は、一般的に、（式３）で表される、弱識別器１０２０２と、重み１０２０３の累算で構成される。
【０００９】
【数２】
2012221131.tif 000004
【００１０】
弱識別器１０２０２は、例えばルックアップテーブルで実現される。この識別器の入力ｘに先に説明した特徴量を設定することで該当・非該当を表す数値が得られる。
【００１１】
図１９は SVM(Support Vector Machine)方式を用いた識別器に関する説明図である。この識別器１０３０１は、例えば線形識別器の場合は、一般的に、（式４）、（式５）で表される。
【００１２】
【数３】
2012221131.tif 000005
【００１３】
このSVM識別器１０３０１は、例えばルックアップテーブルで実現される。この識別器の入力ｘに先に説明した特徴量を設定することで該当・非該当を表す数値が得られる。
【００１４】
図２０は差分絶対値和（SAD: Sum of Absolute Difference）を用いたパターンマッチングに関する説明図である。参照画像１０４０１、基準画像１０４０２から対応する任意位置からそれぞれ単位ブロック１０４０３、１０４０４を抜き出し、参照画像における輝度をref(x,y)、基準画像における輝度をbase(x,y)と定義したときに、（式６）で表される、同一座標の画素同士の差分絶対値を単位ブロック分累算した値であり、これが該当・非該当を表す数値となる。
【００１５】
【数４】
2012221131.tif 000006
【００１６】
この様に代表的な画像認識であっても計算内容は大きく異なっており、さらに上記方式においても認識精度を高めるため数式に変形を加えたりしている。
【００１７】
これら方式は認識対象、条件に応じて適切なものを使用すべきであるが、既に述べたように計算内容は大きく異なっているため、何らかのプログラマビリティを持つ実現手段が望ましい。一方で、大量の画素を対象に計算する場合、演算処理能力が課題となり、ハードウェア処理が望ましい。更には消費電力、LSIコストを最小限にするために回路規模が必要最低限になっていることが望ましい。
【００１８】
プログラマビリティを持たせつつ、ハードウェア処理を実現する手段として、いわゆるFPGA、再構成プロセッサがある。既にフィルタ演算、複数の演算種類、乗算、など効率よく実行するための提案がなされている（非特許文献３、特許文献１、特許文献２、特許文献３）。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００１−２３６４９６号公報
【特許文献２】特開２００７−１４１１３２号公報
【特許文献３】特開２０１０−１３４７１３号公報
【非特許文献】
【００２０】
【非特許文献１】PCSJ/IMPS 2008ナイトセッションスライド「一般物体認識のための局所特徴量（SIFTとHOG）」
【非特許文献２】情報処理学会研究報告. CVIM, [コンピュータビジョンとイメージメディア] 2004(40), 33-40, 2004-05-06 「画像のブロックマッチングにおける相関関数とサブピクセル推定方式の最適化」
【非特許文献３】NEC技報  Vol.62 No.3/2009
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、従来の提案は画像認識処理の実現手段として、機能あるいは回路規模効率として最適な構成を提供できない。
【００２２】
図２４Ａ、図２４Ｂは非特許文献３に対応する代表図面の抜粋である。非特許文献３は画像認識プロセッサのアーキテクチャに関するものであり、ＳＩＭＤ構成のデータパスをベースに複数のタスクを実行できるＭＩＭＤモードを設けて、ＳＩＭＤモード（図２４Ａ）とＭＩＭＤモード（図２４Ｂ）とを切り替えることで画像認識のデータ、タスク並列に応じた制御アーキテクチャを構築できるというものである。図２４Ａに示すように、全体でＳＩＭＤ演算を実現する複数のプロセッシングエレメント（ＰＥ）と、ＰＥを制御する複数のコントロールプロセッサ（ＣＰ）から構成され、画像認識のデータ、タスク並列に応じて、
（ａ）  一つのＣＰに対して全ＰＥが並列制御（ＳＩＭＤモード）
（ｂ）  複数のＣＰにそれぞれ対応するＰＥを割り当て、ＣＰ毎に対応ＰＥが並列制御（ＭＩＭＤモード）
を切り替える。
【００２３】
各ＰＥはそれぞれＲＡＭに接続され、隣り合うＰＥ間のデータ通信経路が設けられている。演算はＲＡＭ、隣り合うＰＥの出力結果に対して行なわれ、ＲＡＭ、あるいは隣り合うＰＥに出力される。
【００２４】
本構成によってタスク特徴に応じた制御は実現できるが、演算のデータ入出力がＲＡＭとの接続、隣り合うＰＥ間の接続に限定されているため、処理データパスの柔軟性が低く、演算の特徴に応じたデータパスの最適化が実現できない。
【００２５】
図２１Ａ、図２１Ｂは特許文献１に対応する代表図面の抜粋である。特許文献１は１次元、２次元各種フィルタを効率よく実行するアーキテクチャに関するものであり、演算器間の接続構成を複数設けることでフィルタ処理の効率を向上させる、というものである。図２４Ａ、図２４Ｂが実現できるフィルタであるが、フィルタ演算で多用される積和演算を中心にした構造のため、先に述べた特徴量計算、識別器、ＳＡＤ演算の実現は困難である。
【００２６】
図２２は特許文献２に対応する代表図面の抜粋である。特許文献２は配線面積を削減する再構成プロセッサに関するものであり、演算回路群毎に異なる配線構造を設けることで面積効率を高める、というものである。しかしながら、演算回路群自体は、先に述べた特徴量計算、識別器、ＳＡＤ演算の実現に必要でない演算も含むため、回路規模は大きくなる。
【００２７】
図２３Ａ、図２３Ｂは特許文献３に対応する代表図面の抜粋である。特許文献３は乗算を効率よく実行できるアレイ演算器に関するものであり、算術演算器と乗算器の組み合わせによって乗算の効率を高める、というものである。しかしながら、算術演算器と、乗算器のみの組み合わせのため、先に述べたＬＵＴを用いた識別器の実現は困難である。
【００２８】
そこで本発明では、特徴量ベース識別方式、パターンマッチング方式の演算の共通的な構造に着目し、演算エレメントの機能を限定することで、各方式の演算を網羅して画像認識に必要な幅広い機能変更に対応しつつ、回路効率を最大にした画像認識プロセッサを提供することを目的とする。
【課題を解決するための手段】
【００２９】
上記の課題を解決するため本発明の１形態における画像認識プロセッサは、第１の演算処理と、第１の演算処理に後続する第２の演算処理とによって画像認識する画像認識プロセッサであって、２次元状に配列された複数の第１演算器を含み、前記第１の演算処理を行う第１の演算器アレイと、２次元状に配列された複数の第２演算器を含み、前記第２の演算処理を行う第２の演算器アレイとを備え、前記第１の演算器アレイおよび第２の演算器アレイの回路構成は再構成可能であり、前記第１の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第１回路、および、シフトと減算機能とを有する第２回路を含み、ルックアップテーブル機能を有する第３回路、積和演算機能を有する第４回路、および、多入力加算機能を有する第５回路を含まず、前記第２の演算器アレイは、再構成可能な回路として、前記第３回路、前記第４回路および前記第５回路を含み、前記第１回路および前記第２回路を含まない。
【００３０】
この構成によれば、第１演算器および第２演算器それぞれの回路規模の増大を抑えることと、第１演算器アレイにおける第１の演算処理および第２演算器アレイにおける第２の演算処理それぞれの機能変更によって複数種類の画像認識方式に対応させることができる。言い換えれば、第１の演算器アレイ、第２の演算器アレイは、複数種類の画像認識方式を切り替え可能に必要な幅広い機能変更に対応しつつ、回路効率を最大にすることができる。
【００３１】
ここで、前記前記第２の演算器アレイは、再構成可能な回路として、入力データを前記第３回路のルックアップテーブルのアドレスに変換するアドレス変換機能を有する第７回路を含み、前記前記第１の演算器アレイは、再構成可能な回路として、前記第７回路を含まず、前記アドレス変換機能は、除算、クリッピング、および、前記ルックアップテーブルのイネーブル信号の生成のうち少なくとも一つの機能を有する構成としてもよい。
【００３２】
ここで、前記複数の第１の演算器の各々は、少なくとも２つの第１入力端子と、第１出力端子と、前記２つの入力端子からのデータに算術論理演算を施す算術論理演算器と、前記算術論理演算器による演算結果を保持するレジスタと、前記算術論理演算器による演算結果、および、レジスタに保持されたデータのうち一方を選択して前記出力端子に出力する第１セレクタと、前記算術論理演算器、前記レジスタ、前記セレクタのそれぞれの機能を定義するための第１コンフィグレーションデータを保持する第１メモリとを備えていてもよい。
【００３３】
ここで、前記複数の第２の演算器の各々は、少なくとも２つの第２入力端子と、第２出力端子と、前記２つの第２入力端子から入力されるデータに積和演算を施す積和・加算器ツリー回路と、ルックアップテーブルと、前記２つの第２入力端子から入力されるデータを前記ルックアップテーブルのアドレスに変換するアドレス変換器と、前記積和・加算器ツリーの演算結果、および、前記ルックアップテーブルの出力の一方を選択するセレクタと、前記積和・加算器ツリー、前記ルックアップテーブル、および、前記第２セレクタの機能を定義するための第２コンフィグレーションデータを保持する第２メモリとを備える構成としてもよい。
【００３４】
ここで、前記積和・加算器ツリー回路は、データを保持するレジスタと、乗数と被乗数との積を部分積として生成する部分積生成回路と、加数および被加数と、前記部分積および前記レジスタに保持されたデータとのうち一方を選択するマルチプレクサと、前記マルチプレクサからの選択結果を加算し、加算結果として和とキャリーとを前記レジスタに保持させるキャリー保存加算器と、前記レジスタの保持された和とキャリーとを加算するキャリー伝播加算器とを備え、前記マルチプレクサが前記部分積および前記レジスタに保持されたデータを選択するとき、前記積和・加算器ツリー回路は積和演算の少なくとも１部を行い、前記マルチプレクサが加数および被加数を選択するとき、前記積和・加算器ツリー回路は多入力加算の少なくとも１部を行うようにしてもよい。
【００３５】
ここで、前記第１の演算器アレイにおける前記第１演算処理は、ＨＯＧ（輝度勾配ヒストグラム）を用いた特徴量生成処理であってもよい。
【００３６】
ここで、前記第１の演算器アレイにおける前記第２演算処理は、ＬＢＰ（ローカル・バイナリー・パターン）を用いた特徴量生成処理であってもよい。
【００３７】
ここで、前記第２の演算器アレイは、前記第２演算処理用にＡｄａｂｏｏｓｔ方式を用いて画像を識別する識別器として機能するようにしてもよい。
【００３８】
ここで、前記第２の演算器アレイは、前記第２演算処理用にＳＶＭ方式を用いて画像を識別する識別器として機能するようにしてもよい。
【００３９】
ここで、前記第１の演算器アレイは、差分絶対値和を用いたパターンマッチングにおける差分絶対値計算を実施し、前記第２の演算器アレイは、前記第１の演算器アレイで計算された差分絶対和を累算するようにしてもよい。
【００４０】
ここで、前記第１の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも１つに応じて、特徴量生成方法を変更し、前記第２の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも１つに応じて、画像の識別方法を変更するようにしてもよい。
【００４１】
ここで、前記第１の演算器アレイは、認識対象画像のシーン、認識対象画像の特徴、認識対象画像中の対象物、および、認識対象画像の環境の少なくとも１つに応じて、差分絶対値計算における単位ブロックのサイズを変更するようにしてもよい。
【００４２】
また、本発明の１形態におけるカメラシステムは、カメラと、カメラにより撮像された画像を認識する、上記の画像認識プロセッサと、前記カメラ周囲の明るさおよび時刻の少なくとも一方を環境情報として検知する環境センサーと、検知された環境情報に応じて、前記第１の演算器アレイおよび第２の演算器アレイの少なくとも一方の回路構成を変更する構成切替部とを備える。
【００４３】
ここで、前記カメラシステムは、さらに、前記カメラシステムの位置情報を検知する地理情報センサーと、前記カメラシステムが車載された車の速度、および、ハンドル角度の少なくとも一方を検知する記走行情報センサーとを備え、前記構成切替部は、環境センサーににより検知された環境情報と、地理情報センサーにより検知された位置情報と、走行情報センサーにより検知された速度およびハンドル角度の少なくとも一方とに応じて、前記第１の演算器アレイ及び第２の演算器アレイの少なくとも一方の回路構成を変更するようにしてもよい。
【００４４】
ここで、前記カメラシステムは、さらに、前記カメラシステムの撮影モードを選択するモードセレクタを備え、前記構成切替部は、環境センサーににより検知された環境情報と、前記モードセレクタにより選択された撮像モードとに応じて、前記第１の演算器アレイ及び第２の演算器アレイの少なくとも一方の回路構成を変更するようにしてもよい。
【発明の効果】
【００４５】
本発明によれば、画像認識の方式を切り替える自由度を備えつつ、回路規模効率が高いため、消費電力、LSIコスト削減の効果を得ることが出来る。
【図面の簡単な説明】
【００４６】
【図１Ａ】本発明の実施形態である画像認識プロセッサの説明図である。
【図１Ｂ】第１の演算器アレイ内のコンフィギュレーションメモリの設定一覧を示す図である。
【図１Ｃ】第２の演算器アレイ内のコンフィギュレーションメモリの設定一覧を示す図である。
【図２Ａ】画像認識プロセッサの構成要素の積和・加算器ツリーの説明図である。
【図２Ｂ】積和・加算器ツリーの構成例を示す図である。
【図２Ｃ】積和・加算器ツリーの別の構成例を示す図である。
【図３Ａ】本発明の実施形態であるＨＯＧ特徴量の計算に関する説明図である。
【図３Ｂ】輝度勾配ベクトル角度の近似計算の説明図である。
【図３Ｃ】ＢＩＮ番号判定木の一例を示す説明図である。
【図４】本発明の実施形態であるＨＯＧ特徴量を計算するための第１の演算器アレイのコンフィグレーション例を示す図である。
【図５Ａ】本発明の実施形態であるＬＢＰ特徴量の計算に関する説明図である。
【図５Ｂ】ＬＢＰ特徴量を計算するための第１の演算器アレイのコンフィグレーション例を示す図である。
【図６Ａ】本発明の実施形態であるＡｄａＢｏｏｓｔ方式による識別器に関する説明図である。
【図６Ｂ】ＡｄａＢｏｏｓｔ方式による識別器を実現するための第２の演算器アレイのコンフィグレーション例を示す図である。
【図７Ａ】本発明の実施形態であるＳＶＭ方式による識別器に関する説明図である。
【図７Ｂ】ＳＶＭ方式による識別器を実現するための第２の演算器アレイのコンフィグレーション例を示す図である。
【図８Ａ】本発明の実施形態であるＳＡＤ方式パターンマッチングに関する説明図である。
【図８Ｂ】差分絶対値和（SAD: Sum of Absolute Difference）を用いたパターンマッチングを実現するための第１、第２の演算器アレイ１０１、１０２のコンフィギュレーション例を示す図である。
【図８Ｃ】輝度およびコントラストが低下する画像例を示す図である。
【図９Ａ】ＨＯＧ特徴量を用いたＡｄａＢｏｏｓｔ方式識別を画像認識プロセッサで実現する例に関する第１の演算器アレイ１０１の説明図である。
【図９Ｂ】ＨＯＧ特徴量を用いたＡｄａＢｏｏｓｔ方式識別を画像認識プロセッサで実現する例に関する第２の演算器アレイ１０２の説明図である。
【図９Ｃ】ＨＯＧ特徴量を算出する第１の演算器アレイ１０１の構成例を示す図である。
【図９Ｄ】ＡｄａＢｏｏｓｔ方式識別を行う第２の演算器アレイ１０２の構成例を示す図である。
【図１０Ａ】ＬＢＰ特徴量を用いたＳＶＭ方式識別を画像認識プロセッサで実現する例に関する第1の演算器アレイ１０１の説明図である。
【図１０Ｂ】ＬＢＰ特徴量を用いたＳＶＭ方式識別を画像認識プロセッサで実現する例に関する第２の演算器アレイ１０２の説明図である。
【図１０Ｃ】ＬＢＰ特徴量を算出する第1の演算器アレイ１０１の構成例を示す図である。
【図１０Ｄ】ＳＶＭ方式識別を行う第２の演算器アレイ１０２の構成例を示す図である。
【図１１Ａ】ＳＡＤ方式パターンマッチングを画像認識プロセッサで実現する例に関する第1の演算器アレイ１０１の説明図である。
【図１１Ｂ】ＳＡＤ方式パターンマッチングを画像認識プロセッサで実現する例に関する第２の演算器アレイ１０２の説明図である。
【図１１Ｃ】ＳＡＤ方式パターンマッチングを実現する第１、第２の演算器アレイ１０１、１０２の構成例を示す図である。
【図１２Ａ】画像認識プロセッサにおける識別方式切り替えの組み合わせに関する説明図である。
【図１２Ｂ】画像認識プロセッサにおける識別方式切り替えのシーンに関する説明図である。
【図１２Ｃ】画像認識プロセッサにおける識別方式切り替えのシーン毎に適した処理に関する説明図である。
【図１３Ａ】画像認識プロセッサにおけるＳＡＤ演算回路切り替えの組み合わせに関する説明図である。
【図１３Ｂ】画像認識プロセッサにおけるＳＡＤ演算回路切り替えの組み合わせに関する説明図である。
【図１３Ｃ】画像認識プロセッサにおけるＳＡＤ演算回路切り替えの具体例に関する説明図である。
【図１４Ａ】画像認識プロセッサを用いた画像認識システムの構成図である。
【図１４Ｂ】画像特徴に変換が生じる画像例を示す図である。
【図１５Ａ】画像認識システムを用いた監視カメラの構成図である。
【図１５Ｂ】画像認識システムを用いた車載カメラシステムの構成図である。
【図１５Ｃ】画像認識システムを用いたデジタルスチルカメラシステムの構成図である。
【図１６】ＨＯＧ特徴量の計算に関する説明図である。
【図１７】ＬＢＰ特徴量の計算に関する説明図である。
【図１８】ＡｄａＢｏｏｓｔ方式による識別器に関する説明図である。
【図１９】ＳＶＭ方式による識別器に関する説明図である。
【図２０】ＳＡＤ方式パターンマッチングに関する説明図である。
【図２１Ａ】特許文献１の回路構成例を示す図である。
【図２１Ｂ】特許文献１の他の回路構成例を示す図である。
【図２２】特許文献２の回路構成例を示す図である。
【図２３Ａ】特許文献３の回路構成例を示す図である。
【図２３Ｂ】特許文献３の他の回路構成例を示す図である。
【図２４Ａ】非特許文献３の回路構成例を示す図である。
【図２４Ｂ】非特許文献３の他の回路構成例を示す図である。
【発明を実施するための形態】
【００４７】
以下、本発明に関わる画像認識プロセッサの実施の形態を図面に基づいて詳細に説明する。
【００４８】
図１Ａは画像認識プロセッサに関する説明図である。同図のように画像認識プロセッサは、第１の演算器アレイ１０１、第２の演算器アレイ１０２から構成される。この画像認識プロセッサは、第１の演算処理と、第１の演算処理に後続する第２の演算処理とによって画像認識する画像認識プロセッサであって、２次元状に配列された複数の第１演算器（プロセッサエレメント１０３）を含み、第１の演算処理を行う第１の演算器アレイ１０１と、２次元状に配列された複数の第２演算器（プロセッサエレメント１１０）を含み、第２の演算処理を行う第２の演算器アレイ１０２とを備える。第１の演算器アレイおよび第２の演算器アレイの回路構成は再構成可能である。
【００４９】
第１の演算器アレイは、再構成可能な回路として、ビット連接機能を有する第１回路（concat）、および、シフトと減算機能とを有する第２回路（shift&sub）を含み、ルックアップテーブル機能を有する第３回路（ＬＵＴ）、積和演算機能を有する第４回路（MAC）、および、多入力加算機能を有する第６回路（addtree）を含まない。
【００５０】
第２の演算器アレイは、再構成可能な回路として、第３回路、第４回路、第５回路および第６回路を含み、第１回路および第２回路を含まない。
【００５１】
このような構成にすることによって、第１演算器および第２演算器それぞれの回路規模の増大を抑えることと、第１演算器アレイにおける第１の演算処理および第２演算器アレイにおける第２の演算処理それぞれの機能変更によって複数種類の画像認識方式に対応させることができる。言い換えれば、第１の演算器アレイ、第２の演算器アレイは、複数種類の画像認識方式を切り替え可能に必要な幅広い機能変更に対応しつつ、回路効率を最大にすることができる。第１の演算処理は、例えば、ＨＯＧによる特徴量生成処理、ＬＢＰによる特徴量生成処理、差分絶対値和を求める処理などである。第２の演算処理は、例えば、Ａｄａｂｏｏｓｔの識別器としての画像認識処理、ＳＶＭの識別器としての画像認識処理、差分絶対値和を累積する演算処理等である。
【００５２】
第１の演算器アレイ１０１はプロセッサエレメント１０３と配線ネットワーク１０７から構成され、第２の演算器アレイ１０２はプロセッサエレメント１１０と配線ネットワーク１０７から構成される。プロセッサエレメント１０３とプロセッサエレメント１１０は大きく機能が異なるものであり、後述する画像認識のある特徴に基づいたものである。
【００５３】
プロセッサエレメント１０３は演算器１０４とレジスタ１０５、切り替えスイッチ１１７、コンフィギュレーションメモリ１０６から構成される。切り替えスイッチ１１７は演算器１０４の結果をそのまま出力するか、もしくはレジスタ経由で出力するかを選択するセレクタであり、コンフィギュレーションメモリ１０６はその内容によって、演算器１０４の機能モードと、切り替えスイッチ１１７の切り替えを制御する。
【００５４】
図１Ｂは、コンフィギュレーションメモリ１０６の設定一覧を示す図である。コンフィギュレーションメモリ１０６の設定一覧（１１５）に内容（コンフィギュレーション）と機能を示す。例えば、以下のようになっている。ここで演算内容はハードウェア記述言語Verilogの演算仕様に準拠した記載としている。
【００５５】
０：register。入力１１８を、演算器１０４を用いて“Y=A”の形で演算し、レジスタ１０５で格納し、格納結果を出力１１９へ出力する。すなわちレジスタとして機能する。
【００５６】
１：cmp。入力１１８の値を、演算器１０４を用いて“Y＝(A>＝B)”の形で演算し、結果を出力１１９へ出力する。すなわち比較器として機能する。
【００５７】
２：abs。入力１１８の値を、演算器１０４を用いて“Y1＝(A>＝0), Y2=Y1？A:(-A)”の形で条件演算をし、結果を出力１１９へ出力する。すなわち絶対値演算器として機能する。なお、上記式中の「？:」は条件演算子を示す記号である。
【００５８】
３：shift&sub。入力１１８の値を、演算器１０４を用いて“Y＝A-(B>>C)”の形で演算し、結果を出力１１９へ出力する。すなわちシフト＆減算器として機能する。
【００５９】
４：add。入力１１８の値を、演算器１０４を用いて“Y＝A+B”の形で演算し、結果を出力１１９へ出力する。すなわち加算器として機能する。
【００６０】
５：selector。入力１１８の値を、演算器１０４を用いて“Y＝A？Ｂ:C”の形で演算し、結果を出力１１９へ出力する。すなわちセレクタとして機能する。
【００６１】
６：concat。入力１１８の値を、演算器１０４を用いて“Y＝{A[0],B[0],C[0], D[0],E[0],F[0]}”の形で演算し、結果を出力１１９へ出力する。すなわちビット連接演算器として機能する。
【００６２】
上記の機能以外にも必要に応じて機能を設けることで演算機能の対応範囲が広がるが、演算性能、回路効率の両面から、以下の要件１〜３をすべて満たすことが必要である。
【００６３】
要件１：  shift&subを設ける。これはHOGのような輝度勾配による特徴量の場合にベクトルの強度算出の近似計算をする上で多用される演算であり、演算性能上有効な機能である。
【００６４】
要件２：  concatを設ける。これはLBPのような輝度パターンによる特徴量の場合にパターンを効率よく演算する上で多用される演算であり、演算性能上有効な機能である。
【００６５】
要件３：  乗算器、ＬＵＴを持たない。乗算器、ＬＵＴは一般に回路規模が大きく、かつ要件１、要件２によって不要な演算となるため、回路効率上持たないことが必要である。
【００６６】
画像の特徴量としては、輝度勾配（エッジ）特徴量、輝度パターン（テクスチャ）特徴量に大別されるため、要件１、要件２によっていずれの場合にも対応することが出来る。また、要件３によって回路効率を高めることが出来る。
【００６７】
プロセッサエレメント１１０はアドレス変換器１１１と、ルックアップテーブル（ＬＵＴ）１１２、積和・加算器ツリー１１３、切り替えスイッチ１２３、コンフィギュレーションメモリ１１４から構成される。切り替えスイッチ１２３は積和・加算器ツリー１１３の結果、あるいはＬＵＴ１１２の出力のいずれかを選択するセレクタであり、コンフィギュレーションメモリ１１４はその内容によって、積和・加算器ツリー１１３、アドレス変換器１１１の機能モードと、切り替えスイッチ１２３の切り替えを制御する。
【００６８】
図１Ｃは、コンフィギュレーションメモリ１１４の設定一覧を示す図である。コンフィギュレーションメモリ１１４の設定一覧（１１６）に内容と機能を示す。例えば、以下のようになっている。
【００６９】
０：mac。入力１２１を、積和・加算器ツリー１１３を用いて“Y=A*B”の形で演算し、結果を出力１２２へ出力する。すなわち乗算器として機能する。
【００７０】
１：addtree。入力１２１を、積和・加算器ツリー１１３を用いて“Y=A+B+C+D+E+F”の形で演算し、結果を出力１２２へ出力する。すなわち多入力加算器として機能する。
【００７１】
２：LUT。入力１２１を、アドレス変換器１１１を用いてアドレス情報にし、ＬＵＴ１１２で該当するアドレスのデータを取り出し、結果を出力１２２へ出力する。すなわちＬＵＴとして機能する。ここでアドレス変換器１１１は、例えば以下のような変換を行う。
【００７２】
２ａ：除算。入力値の上位ビットデータ、下位ビットデータを分離し、（上位ビットデータ）／下位ビットデータで除算した商、あるいは剰余をＬＵＴアドレスとする。これは入力値の正規化（商を用いる場合）、あるいは巡回化（剰余を用いる場合）したアドレスにする効用を持つ。
【００７３】
２ｂ：クリッピング。入力値をある閾値と比較し、閾値を上回る、あるいは下回っている場合に、上限値あるいは下限値に値を補正した値をＬＵＴアドレスとする。これは規格外入力値を補正したアドレスにする効用を持つ。
【００７４】
２ｃ：ＬＵＴイネーブル生成。入力値の上位ビットデータを規定値と比較し、ＬＵＴのイネーブルの有効、無効化を行う。これは一つの入力データで複数のＬＵＴに渡ったアドレス拡張を行う効用を持つ。
【００７５】
ここで、積和・加算器ツリー１１３についてその詳細を説明する。
【００７６】
図２Ａは積和・加算器ツリーの説明図である。
【００７７】
プロセッサエレメント（ＰＥ）１１０内の積和・加算器ツリー１１３は部分積生成部２０４、マルチプレクサ２０５、加算器ツリー２０６、レジスタ２０７、加算器２０８から構成される。加算器ツリー２０６はいわゆるキャリー保存加算器（ＣＳＡ）を用いた加算器であり、加算器２０８はキャリー伝播加算器（ＣＰＡ）を用いた加算器である。入力１２１は、加数・被加数２０１、乗数２０２、被乗数２０３に接続される。部分積生成部２０４は乗数２０２、被乗数２０３の部分積を生成する。マルチプレクサ２０５は、他のプロセッサエレメントで生成された加数・被加数２０１、部分積生成部２０４で生成された部分積、レジスタ２０７の格納値のいずれかを選択し、選択された複数の値（加数・被加数、あるいは部分積）は加算器ツリー２０６にて加算され、結果をレジスタ２０７に格納される。レジスタ２０７の内容は加算値（Ｓｕｍ）とキャリー（Ｃａｒｒｙ）が分離された状態となっており、マルチプレクサ２０５の入力、加算器２０８の入力、中間加算結果２０９として参照される。
【００７８】
この構成によって積和・加算器ツリー１１３は積和演算、多入力加算の機能を実現できる。以下にそれぞれの機能を説明する。
【００７９】
「積和演算」：マルチプレクサ２０５は部分積生成部２０４の結果、及びレジスタ２０７の格納内容を選択する。部分積、及びレジスタ２０７のＳｕｍ、Ｃａｒｒｙは加算器ツリー２０６にて加算されるため、レジスタ２０７には乗算結果の累算値が格納される。所定の累算が完了した後、加算器２０８にてレジスタ２０７のＳｕｍ、Ｃａｒｒｙが加算され、最終的な積和・加算結果２１０（ここでは積和結果）として出力される。なお、乗算は１回の積和演算として本構成を用いて実現可能である。
【００８０】
「多入力加算」：マルチプレクサ２０５は加数・被加数２０１を選択され、加算器ツリー２０６にて加算される。レジスタ２０７には加算結果が格納される。レジスタ２０７の格納内容Ｓｕｍ、Ｃａｒｒｙは中間加算結果２０９として出力されてさらに別のプロセッサエレメント１１０の加数・被加数２０１として参照されるか、または加算器２０８でＳｕｍ、Ｃａｒｒｙが加算され、最終的な積和・加算結果２１０（ここでは加算結果）として出力される。
【００８１】
上記積和演算、あるいは多入力加算は、以降の説明（図６Ｂ、図７Ｂ、図８Ｂ）にて積和モード、加算器ツリーモードとして表記される。
【００８２】
図２Ｂは積和・加算器ツリーの構成例を示す図である。例えば処理サイクル数Ｎの積和演算として、（式７）を実現したい場合、プロセッサエレメント２１１を積和モードとして乗数、被乗数を入力すれば、積和結果が得られる。
【００８３】
【数５】
2012221131.tif 000007
【００８４】
図２Ｃは積和・加算器ツリーの別の構成例を示す図である。例えば演算性能を高めるため、先の積和演算を５並列化した処理サイクル数Ｎ／５の積和演算として、（式８）を実現したい場合、プロセッサエレメント２１２を積和モードとして乗数、被乗数を入力し、さらに、プロセッサエレメント２１３を加算器ツリーモードとして中間加算結果を加算することで、積和結果が得られる。
【００８５】
【数６】
2012221131.tif 000008
【００８６】
他にも積和モード、加算器ツリーモードの組み合わせによって様々な構成が実現できる。これについては後述する画像認識でのコンフィギュレーション例にて説明する。
【００８７】
上記の機能以外にも必要に応じて機能を設けることで演算機能の対応範囲が広がるが、演算性能、回路効率の両面から、以下の要件４、５をすべて満たすことが必要である。
【００８８】
要件４：  アドレス変換器、およびＬＵＴを備える。これは識別器を構成する際に多用される機能であり、演算性能上有効な機能である。また、ＳＡＤ演算結果の補正をする場合にも有効な機能である。
【００８９】
要件５：  積和モード、加算器ツリーモードを有する積和・加算器ツリーを備える。これは、強識別器、ＳＶＭ識別器、ＳＡＤ累算結果を得るために多用される機能であり、演算性能上有効な機能である。
【００９０】
画像の識別方式としては、特徴量識別方式、パターンマッチング方式に大別されるため、要件４、５により、その主要な処理要素である識別器、ＳＡＤ累算を効率よく実現することが出来る。
【００９１】
図１Ａの画像認識プロセッサの説明に戻る。配線ネットワーク１０７は、配線１２４、クロスバスイッチ１０８、コンフィギュレーションメモリ１０９から構成される。クロスバスイッチ１０８はそのオン・オフによって、交差する２つの配線１２４の間にデータを伝達させるかどうかを切り替える。コンフィギュレーションメモリ１０９はクロスバスイッチ１０８のオン・オフを制御し、それによって任意の端子１２０間の経路を実現する。端子１２０はそれぞれ第１の演算器アレイ１０１内のプロセッサエレメント１０３、及び第２の演算器アレイ１０２内のプロセッサエレメント１１０に接続され、コンフィギュレーションメモリ１０９の情報に基づき、第１の演算器アレイ１０１、あるいは第２の演算器アレイ１０２内における、任意のプロセッサエレメント間の経路を実現する。
【００９２】
また、第１の演算器アレイ１０１と第２の演算器アレイ１０２の接続関係は、１０１から１０２へと１方向であることが必要である。これは、要件１〜３を満たすプロセッサエレメント１０３からなる第１の演算器アレイ１０１、及び要件４〜５を満たすプロセッサエレメント１１０からなる第２の演算器アレイ１０２の組み合わせにより、１０２から１０１への信号伝達が不要となるためである。そのため、回路効率上、１０１から１０２へと１方向であることが必要となる。
【００９３】
（コンフィギュレーション例１）
図３Ａ〜図３Ｃ、図４は既に説明したHOG（輝度勾配ヒストグラム）を用いた特徴量生成を本発明に適用した場合の説明図である。先に輝度勾配ベクトル強度は以下の式で表されることを説明した。
【００９４】
輝度勾配ベクトル強度 = √(dx^2+dy^2)
【００９５】
上記平方根、自乗計算について、以下のような近似計算で同等の数値を得ることが可能である。
【００９６】
輝度勾配ベクトル強度（近似） = a*P + b*Q
【００９７】
ここで a,bは定数、例えばa=0.9604, b=0.3978などが使用できる。また、P,Q はdx, dyの絶対値（abs(dx), abs(dy)）の関係によって、以下のように定義できる。
【００９８】
abs(dx)>abs(dy)の時：  P=abs(dx), Q=abs(dy)
abs(dx)=<abs(dy)の時：  P=abs(dy), Q=abs(dx)
【００９９】
また、0.9604*A, 0.3978*A（A：任意の数値）は、以下のようにシフトと減算の組み合わせで同等精度の数値を得ることが出来る。
【０１００】
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)
【０１０１】
以上で、輝度勾配ベクトル強度の近似値は、絶対値（abs）、比較、加減算、シフトによって算出できることが分かる。
【０１０２】
次に輝度勾配ベクトル角度は以下の式で表されることを説明した。
【０１０３】
輝度勾配ベクトル角度 = arctan(dy/dx)
【０１０４】
上記角度計算について、以下のような近似計算で必要な精度の角度を得ることが出来る。例えば図３Ｂの３０１に記載したように８方向（BIN番号：0〜7）の方向を求めたい場合、以下のようなdx, dyの符号判定、比較計算とBIN番号の関係が成り立つ。
【０１０５】
(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
【０１０６】
上記関係を用いると、図３Ｃの３０３に示すような判定木でBIN 番号が確定する。ここで各々のBIN番号リスト３０４は BIN番号の候補を表し、BIN番号リスト３０４につながる矢印３０５は判定結果を表す、上記に記載した判定条件（１a）〜（３ｂ）を各々の矢印３０５に付与している。例えば、（１）〜（３）の比較結果が（１ａ）→（２ａ）→（３ａ）であれば図３Ｂの３０２で示した“BIN ０”が確定する。
【０１０７】
以上に示した近似計算に基づいた回路構成を、図４に示す。輝度勾配ベクトル強度算出と同等の演算を輝度勾配ベクトル強度算出回路４０１に、輝度勾配ベクトル角度算出と同等の演算を輝度勾配ベクトル角度算出回路４０２に、勾配方向ヒストグラム算出と同等の演算を勾配方向ヒストグラム算出回路４０３に示している。各演算器の上部に対応する演算を記載しており、これは図１Ｂの１１５に示したコンフィギュレーションメモリ１０６の設定一覧に対応している。輝度勾配ベクトル強度算出回路４０１、輝度勾配ベクトル角度算出回路４０２から得られる３種類の信号、“比較結果：abs(dx)>abs(dy)”、“符号：sign(dx)”、“排他的論理和結果：sign(dx)^sign(dy)”は図３Ｃの３０３に示す判定木の判定条件（１a）〜（３ｂ）と等価であり、レジスタ更新・セレクタ制御信号群４０４により勾配方向ヒストグラム算出回路４０３のselector、及びregisterを制御して該当のBIN強度レジスタを選択・更新し、勾配方向ヒストグラムが算出できる。
【０１０８】
これら演算は、図１Ａで説明した第１の演算器アレイ１０１のプロセッサエレメント１０３の機能に十分包含されているため、第１の演算器アレイ１０１を用いて実現できる。
【０１０９】
（コンフィギュレーション例２）
図５Ａは既に説明したLBP（Local Binary Pattern）を用いた特徴量生成を本発明に適用した場合の説明図である。図５Ｂは、ＬＢＰ特徴量を計算するための第１の演算器アレイのコンフィグレーション例を示す図である。
【０１１０】
先にLBPパターン番号は以下の（式９）、（式１０）で表されることを説明した。
【０１１１】
【数７】
2012221131.tif 000009
【０１１２】
上式は、減算と比較で実現できる複数のs(in-ic)をビット連接することを意味するため、図５ＢのＬＢＰ算出回路５０１に示した、sub, cmp, concatの構成で効率よく実現できることが分かる。ＬＢＰ算出回路５０１で算出できたLBP５０３は、ＬＢＰヒストグラム算出回路５０２のcmpで各々のパターン番号と比較し、比較結果をadd、及びregisterで累算・更新することで、LBPヒストグラムが算出できる。
【０１１３】
これら演算は、図１Ａで説明した第１の演算器アレイ１０１のプロセッサエレメント１０３の機能に十分包含されているため、第１の演算器アレイ１０１を用いて実現できる。
【０１１４】
（コンフィギュレーション例３）
図６Ａは既に説明した、AdaBoost方式を用いた識別器を本発明に適用した場合の説明図である。図６Ｂは、ＡｄａＢｏｏｓｔ方式による識別器を実現するための第２の演算器アレイ１０２のコンフィグレーション例を示す図である。
【０１１５】
先に識別器１０２０１は、以下の（式１１）で表されることを説明した。
【０１１６】
【数８】
2012221131.tif 000010
【０１１７】
この式は、図６Ｂのアドレス変換器６０１、ＬＵＴ６０２、積和・加算器ツリー６０３、積和・加算器ツリー６０４の組み合わせで実現される。ここで、アドレス変換器６０１は除算、あるいはクリッピング機能を用いて実現することできる。
【０１１８】
また、積和・加算器ツリー６０３は積和モード、積和・加算器ツリー６０４は加算器ツリーモードである。このように積和モード、加算器ツリーモードを組み合わせることで、複数の積和演算を並列化して、演算効率を高めた強識別器を実現することが出来る。
【０１１９】
これら演算は、図１Ａで説明した第２の演算器アレイ１０２のプロセッサエレメント１１０の機能に十分包含されているため、第２の演算器アレイ１０２を用いて実現できる。
【０１２０】
（コンフィギュレーション例４）
図７Ａは既に説明した、SVM方式を用いた識別器を本発明に適用した場合の説明図である。図７Ｂは、ＳＶＭ方式を用いた識別器を実現するための第２の演算器アレイ１０２のコンフィギュレーション例を示す図である。
【０１２１】
先に識別器１０３０１は、以下の（式１２）、（式１３）で表されることを説明した。
【０１２２】
【数９】
2012221131.tif 000011
【０１２３】
この式は、図７Ｂのアドレス変換器７０１、ＬＵＴ７０２、積和・加算器ツリー７０３の組み合わせで実現される。ここで、アドレス変換器７０１はＬＵＴ７０２のイネーブル生成機能を用いて実現することできる。例えばイネーブルがアクティブになっていないＬＵＴは無効な値（０）を出力する、という機能が考えられる。
【０１２４】
また、積和・加算器ツリー７０３は加算器ツリーモードであり、先に説明したとおり、イネーブルがアクティブになっているＬＵＴのみ有効な値を出力し、それ以外は無効な値（０）を出力しているので、各々のＬＵＴの出力を加算器ツリーで足し合わせることで、複数のアドレス変換器７０１、ＬＵＴ７０２全体で一つのＬＵＴとして振舞う。そのためサイズの大きなＬＵＴであっても本コンフィギュレーション例によれば、効率の良いSVM識別器を実現することが出来る。
【０１２５】
これら演算は、図１Ａで説明した第２の演算器アレイ１０２のプロセッサエレメント１１０の機能に十分包含されているため、第２の演算器アレイ１０２を用いて実現できる。
【０１２６】
（コンフィギュレーション例５）
図８Ａは既に説明した、差分絶対値和（SAD: Sum of Absolute Difference）を用いたパターンマッチングを本発明に適用した場合の説明図である。図８Ｂは、差分絶対値和（SAD: Sum of Absolute Difference）を用いたパターンマッチングを実現するための第１、第２の演算器アレイ１０１、１０２のコンフィギュレーション例を示す図である。
【０１２７】
先に図８Ａにおける参照画像１０４０１、基準画像１０４０２から対応する任意位置からそれぞれ単位ブロック１０４０３、１０４０４を抜き出し、参照画像における輝度をref(x,y)、基準画像における輝度をbase(x,y)と定義したときに、差分絶対値和は以下の式で表されることを説明した。
【０１２８】
【数１０】
2012221131.tif 000012
【０１２９】
この式は、図８Ｂの差分絶対値算出回路８０２で示した、sub, absと、絶対値累算回路８０４で示した積和・加算器ツリー８０５、８０６の組み合わせで実現される。また、積和・加算器ツリー８０５は積和モードで係数を１にしたもの、積和・加算器ツリー８０６は加算器ツリーモードである。このように積和モード、加算器ツリーモードを組み合わせることで、複数の差分絶対値演算を並列化して、演算効率を高めた差分絶対値和計算を実現することが出来る。
【０１３０】
更に本発明によれば、図８Ｃで示したように８０１のタイミングで参照画像の輝度レベル、コントラストが低下した場合に、ＬＵＴを用いたSAD結果の補正が実現できる。具体的には、前フレーム最低輝度算出回路８０３で示した、cmp, selector, registerを用いて、前フレームの最適輝度を求め、その値と、補正前SAD出力結果を用いてＬＵＴを参照することで、補正後SAD出力を求めることが出来る。これにより、環境に応じて補正機能を持つパターンマッチングが実現できる。なお補正機能については、本コンフィギュレーション例以外にも、例えば積和モードとなっている積和・加算器ツリー８０５の係数１の代わりにＬＵＴの出力を用いることで、差分絶対値和計算自体に補正を行うことが出来る。
【０１３１】
これら演算のうち、差分絶対値算出回路８０２及び、前フレーム最低輝度算出回路８０３は、これら演算は、図１Ａで説明した第１の演算器アレイ１０１のプロセッサエレメント１０３の機能に十分包含されているため、第１の演算器アレイ１０１を用いて実現できる。また、絶対値累算回路８０４及び、ＳＡＤ補正回路８０７は、これら演算は、図１Ａで説明した第２の演算器アレイ１０２のプロセッサエレメント１１０の機能に十分包含されているため、第２の演算器アレイ１０２を用いて実現できる。
【０１３２】
（コンフィギュレーション例６）
図９Ａ、図９Ｂは、コンフィギュレーション例１で説明したHOG（輝度勾配ヒストグラム）を用いた特徴量生成と、コンフィギュレーション例３で説明したAdaBoost方式を用いた識別器を第１の演算器アレイ１０１と、第２の演算器アレイ１０２で実現した場合の説明図である。
【０１３３】
図９Ｃ、図９Ｄは、HOG（輝度勾配ヒストグラム）を用いた特徴量生成、及びAdaBoost方式を用いた識別器の回路構成である。それぞれ演算のグループを演算回路（ａ１）（ａ２）（ａ３）（ａ４）、演算回路（ｂ１）（ｂ２）（ｂ３）という様に記している。コンフィギュレーション例１〜コンフィギュレーション例５にて、それぞれの処理について第１の演算器アレイ１０１、及び第２の演算器アレイ１０２のいずれで実現できるか説明したが、その説明に基づいたプロセッサエレメント１０３、及び１１０の機能割り当てを図９Ａ、図９Ｂに示す。各々のエレメントに機能（sub, abs, mac, …）を記し、接続関係を矢印で示している。さらにエレメントと先に述べた演算のグループの対応関係として、複数のエレメント毎に演算回路（ａ１）（ａ２）（ａ３）（ａ４）、演算回路（ｂ１）（ｂ２）（ｂ３）という様に記している。
【０１３４】
以上のように、本コンフィギュレーション例によれば、第１の演算器アレイ１０１、及び第２の演算器アレイ１０２に機能の過不足無く処理を割り当てることが出来ることがわかる。また処理の流れという観点からも、第１の演算器アレイ１０１から第２の演算器アレイ１０２への１方向で実現できるため、不要な双方向のデータ伝達を不要に出来る。
【０１３５】
（コンフィギュレーション例７）
図１０Ａ、図１０Ｂは、コンフィギュレーション例２で説明したLBP（Local Binary Pattern）を用いた特徴量生成と、実施例５で説明したSVM方式を用いた識別器を第１の演算器アレイ１０１と、第２の演算器アレイ１０２で実現した場合の説明図である。
【０１３６】
図１０Ｃ、図１０Ｄは、LBP（Local Binary Pattern）を用いた特徴量生成、及びSVM方式を用いた識別器の回路構成である。それぞれ演算のグループを演算回路（ａ１）（ａ２）、演算回路（ｂ１）（ｂ２）という様に記している。コンフィギュレーション例１〜コンフィギュレーション例５にて、それぞれの処理について第１の演算器アレイ１０１、及び第２の演算器アレイ１０２のいずれで実現できるか説明したが、その説明に基づいたプロセッサエレメント１０３、及び１１０の機能割り当てを図１０Ａ、図１０Ｂに示す。各々のエレメントに機能（sub, abs, addtree, …）を記し、接続関係を矢印で示している。さらにエレメントと先に述べた演算のグループの対応関係として、複数のエレメント毎に演算回路（ａ１）（ａ２）、演算回路（ｂ１）（ｂ２）という様に記している。
【０１３７】
以上のように、本コンフィギュレーション例によれば、第１の演算器アレイ１０１、及び第２の演算器アレイ１０２に機能の過不足無く処理を割り当てることが出来ることがわかる。また処理の流れという観点からも、第１の演算器アレイ１０１から第２の演算器アレイ１０２への１方向で実現できるため、不要な双方向のデータ伝達を不要に出来る。
【０１３８】
（コンフィギュレーション例８）
図１１Ａ、図１１Ｂは、コンフィギュレーション例５で説明した差分絶対値和（SAD: Sum of Absolute Difference）を用いたパターンマッチングを第１の演算器アレイ１０１と、第２の演算器アレイ１０２で実現した場合の説明図である。
【０１３９】
図１１Ｃは、差分絶対値和（SAD: Sum of Absolute Difference）を用いたパターンマッチングの回路構成である。それぞれ演算のグループを演算回路（ａ１）（ａ２）、演算回路（ｂ１）（ｂ２）という様に記している。コンフィギュレーション例１〜コンフィギュレーション例５にて、それぞれの処理について第１の演算器アレイ１０１、及び第２の演算器アレイ１０２のいずれで実現できるか説明したが、その説明に基づいたプロセッサエレメント１０３、及び１１０の機能割り当てを図１１（ａ）に示す。各々のエレメントに機能（sub, abs, mac, …）を記し、接続関係を矢印で示している。さらにエレメントと先に述べた演算のグループの対応関係として、複数のエレメント毎に演算回路（ａ１）（ａ２）、演算回路（ｂ１）（ｂ２）という様に記している。
【０１４０】
以上のように、本コンフィギュレーション例によれば、第１の演算器アレイ１０１、及び第２の演算器アレイ１０２に機能の過不足無く処理を割り当てることが出来ることがわかる。また処理の流れという観点からも、第１の演算器アレイ１０１から第２の演算器アレイ１０２への１方向で実現できるため、不要な双方向のデータ伝達を不要に出来る。
【０１４１】
（処理割り当て変更例１）
以上のように、本発明を用いることで、第１の演算器アレイ１０１と第２の演算器アレイ１０２の組み合わせにより、機能の過不足無く画像認識の処理を割り当てることを説明した。これら処理の割り当ては適宜変更することが出来る。図１２Ａ、図１２Ｂに特徴量ベース識別方式における、処理割り当て変更の例を示す。
【０１４２】
例えば、車の前方安全確認のために対象物を識別する場合、１２０１、１２０２に示すように、周辺環境が市街地の場合、山道の場合、それぞれにおいて対象物が人、動物と異なるため、対象物に応じて特徴量、あるいは識別器の手法を変更したほうが望ましい。また、１２０３、１２０４に示すように、昼間と夜間において画像の輝度、コントラスト等が大きく異なるため、識別精度を上げるために環境に応じて特徴量、あるいは識別器の手法を変更したほうが望ましい。
【０１４３】
これら組み合わせをまとめた例を１２０５に示す。対象物、環境に応じてシーンＡ、Ｂ、Ｃ、Ｄとしている。先のコンフィギュレーション例で示したように、本発明では第１の演算器アレイ１０１と第２の演算器アレイ１０２の組み合わせにより、特徴量の計算手法、識別器の手法を自在に実現することが出来る。例えば、１２０６に示したように、シーンＡでは、特徴量としてHOG、識別器としてAda-boostを使用し、またシーンＢでは、特徴量としてLBP、識別企図してはSVMを使用する、ということが出来る。また、既に説明した特徴量には拘らず、例えばHOG、LBPの変形版（１２０６ではHOG2、LBP2と記載）、Ada-boostの変形版（１２０６ではAda-boost2と記載）、あるいは新規の手法を第１の演算器アレイ１０１と第２の演算器アレイ１０２の組み合わせで実現することも出来る。既にで述べたように本発明によれば、特徴量においては輝度勾配（エッジ）特徴量、輝度パターン（テクスチャ）特徴量いずれにおいても実現でき、さらに主要な処理要素である、識別器、SAD累算を効率よく実現できるため、新規の手法においても本発明が網羅した機能によって実現出来る。
【０１４４】
（処理割り当て変更例２）
図１３Ａ〜図１３Ｃにパターンマッチング方式における、処理割り当て変更の例を示す。
【０１４５】
先に説明したとおり、SAD演算では単位ブロックにおける各ピクセルの絶対値差分の累積を求めるため、図１３Ａに示すようにピクセル毎の差分絶対値に分布が存在する場合、SAD演算範囲の大小によっては、例えば図１３ＡでSAD演算範囲1、SAD演算範囲2の２通りを考えた場合、図１３Ｂに示したように、SAD演算範囲が狭い（SAD演算範囲1）場合は、SAD単位ブロック座標（SAD演算開始位置）に応じた累算量の変動が大きいが、SAD演算範囲が広い（SAD演算範囲2）場合は、累算量の変動が小さい。
【０１４６】
この特徴は、例えば単位ブロック座標によって検出感度を高めたい場合は、変動量が大きくなるSAD演算範囲とし、逆にノイズ成分の平滑効果を高めたい場合は、変動量が小さくなるSAD演算範囲とする、という効果に応用できる。
【０１４７】
すなわち、図１３Ｃのように単位ブロック形状を変更（１３０１、１３０２）によって画像に適したSAD演算を実現できる。本発明では、それぞれの単位ブロック形状に応じたSAD演算回路（１３０３、１３０４）を割り当てることが出来るため、画像に適したパターンマッチングを実現できる。
【０１４８】
（画像認識システム構成例１）
処理割り当て変更例１、２に示したように環境、識別対象、画像の特徴、などに応じて第１の演算器アレイ１０１と第２の演算器アレイ１０２の処理割り当ての変更を行うことで、認識精度を最適化することが出来る。この特徴を生かした画像認識システム構成を図１４Ａに示す。
【０１４９】
画像認識システム１４０１は、カメラ１４０２に接続される。画像認識システム１４０１は、ビデオI/F １４０３、ＣＰＵ１４０４、図１Ａの説明で述べた画像認識プロセッサ１４０５、メモリ１４０６、各々を接続するバス１４０７で構成される。またメモリ１４０６には１４０９に示すように、各シーン、画像特徴に応じたコンフィギュレーション（設定１、設定２、・・・）が格納されている。
【０１５０】
例えば、図１４Ｂに示すように、シーン、画像特徴の変更（１４０８）の有無をＣＰＵ１４０４が監視し、変更が発生すると、メモリ１４０６に格納されたコンフィギュレーション情報１４０９のうち、適切なものを選択して、画像認識プロセッサ１４０５へ設定する。これにより、シーン、画像特徴に応じた画像認識システムが実現できる。
【０１５１】
（画像認識システム構成例２）
画像認識システム構成例１に示した画像認識システムを用いたセットの例を説明する。近年、監視カメラ、車載カメラ、デジタルスチルカメラなど、人物や非人物を検知する画像認識技術が幅広く使用されているが、それぞれの用途において以下のような課題がある。
【０１５２】
監視カメラ：  設置場所の周辺環境（明るさ、障害物の色・模様）、対象物（人物高さ、服装、人数）によっては、誤検知、検知漏れが発生する。
【０１５３】
車載カメラ：  走行環境（明るさ、路面周囲環境）、対象物（人、動物）によっては、誤検知、検知漏れが発生する。
【０１５４】
デジタルスチルカメラ：  撮影環境（明るさ、路面周囲環境）、対象物（人、動物）によっては、誤検知、検知漏れが発生する。
【０１５５】
こういった課題に対し、処理割り当て変更例１、２に示したような画像特徴に応じた特徴量生成、識別器を切りかえる、あるいはパターンマッチングの差分絶対値和計算における、単位ブロック形状を変更することで、誤検知、検知漏れを防ぐことが出来る。
【０１５６】
図１５Ａは、監視カメラシステムにおける画像認識システム構成例である。環境センサー１５０１、画像履歴データベース１５０２、画像認識システム１４０１から構成される。環境センサー１５０１、画像履歴データベース１５０２の情報は、ＣＰＵ１４０４で実現される認識手法判定・コンフィギュレーション切り替え部に入力される。この環境センサー１５０１から明るさ、時間情報が入力され、また画像履歴データベース１５０２から過去の監視カメラ映像の履歴情報、例えば人数、画面内の滞留時間などが入力されることで、ＣＰＵ１４０４にて設置場所の周辺環境、及び対象物の分析がなされる。この分析の結果、認識手法を判定し、コンフィギュレーションを切り替えることで、画像認識プロセッサ１４０５にて該当の認識手法による処理が実行できる。
【０１５７】
図１５Ｂは、車載カメラシステムにおける画像認識システム構成例である。環境センサー１５０３、地理情報センサー１５０４、走行情報センサー１５０５、画像認識システム１４０１から構成される。環境センサー１５０３、地理情報センサー１５０４、走行情報センサー１５０５の情報は、ＣＰＵ１４０４で実現される認識手法判定・コンフィギュレーション切り替え部に入力される。この環境センサー１５０３から明るさ、時間情報が入力され、また地理情報センサー１５０４から地理情報、例えば現在の位置、周辺の道路状況などが入力される。また走行情報センサー１５０５から走行情報、例えば車速、ハンドル角度などが入力されることで、ＣＰＵ１４０４にて走行環境、及び対象物の分析がなされる。この分析の結果、認識手法を判定し、コンフィギュレーションを切り替えることで、画像認識プロセッサ１４０５にて該当の認識手法による処理が実行できる。
【０１５８】
図１５Ｃは、デジタルスチルカメラシステムにおける画像認識システム構成例である。環境センサー１５０６、撮影モードセレクタ１５０７、画像認識システム１４０１から構成される。環境センサー１５０６、撮影モードセレクタ１５０７の情報は、ＣＰＵ１４０４で実現される認識手法判定・コンフィギュレーション切り替え部に入力される。この環境センサー１５０６から明るさ、時間情報が入力され、また撮影モードセレクタ１５０７から撮影モード、例えば人物写真か風景写真か、あるいはフラッシュ使用有無などが入力されることで、ＣＰＵ１４０４にて撮影環境、及び対象物の分析がなされる。この分析の結果、認識手法を判定し、コンフィギュレーションを切り替えることで、画像認識プロセッサ１４０５にて該当の認識手法による処理が実行できる。
【０１５９】
以上、本発明の画像認識プロセッサについて、実施形態に基づいて説明したが、本発明は、この実施形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１６０】
本発明によれば、画像認識の方式を切り替える自由度を備えつつ、回路規模効率が高いため、消費電力、LSIコスト削減の効果を得ることが出来る。また画像認識の方式を切り替えることでシーン、画像特徴に応じて最適な手法を実施する画像認識システムが実現できる。
【符号の説明】
【０１６１】
１０１  第１の演算器アレイ
１０２  第２の演算器アレイ
１０３、１１０、２１１、２１２、２１３  プロセッサエレメント
１０７  配線ネットワーク
１０４  演算器
１０５、２０７  レジスタ
１０６、１０９、１１４  コンフィギュレーションメモリ
１０８  クロスバスイッチ
１１１、６０１、７０１  アドレス変換器
１１２、６０２、７０２  ルックアップテーブル（ＬＵＴ）
１１３、６０３、６０４、７０３  積和・加算器ツリー
１１７、１２３  切り替えスイッチ
１２４  配線
２０４  部分積生成部
２０５  マルチプレクサ
２０６  加算器ツリー
２０８  加算器
１４０１  画像認識システム
１４０２  カメラ
１４０３  ビデオＩ／Ｆ
１４０４  ＣＰＵ
１４０５  本発明の画像認識プロセッサ
１４０６  メモリ
１４０７  バス
１５０１、１５０３、１５０６  環境センサー
１５０２  画像履歴データベース
１５０４  地理情報センサー
１５０５  走行情報センサー
１５０７  撮影モードセレクタ
１０００１、１０１０１、１０４０１  参照画像
１０００２  １０１０２、１０４０３、１０４０４  単位ブロック
１０００３、１０００７、１０１０３、１０１０７  単位ブロック内の各画素
１０００４、１０１０４  ヒストグラム
１０２０１、１０２０２、１０３０１  識別器
１０４０２  基準画像
【図１Ａ】
2012221131.tif 000013
【図１Ｂ】
2012221131.tif 000014
【図１Ｃ】
2012221131.tif 000015
【図２Ａ】
2012221131.tif 000016
【図２Ｂ】
2012221131.tif 000017
【図２Ｃ】
2012221131.tif 000018
【図３Ｂ】
2012221131.tif 000019
【図３Ｃ】
2012221131.tif 000020
【図４】
2012221131.tif 000021
【図５Ｂ】
2012221131.tif 000022
【図６Ａ】
2012221131.tif 000023
【図６Ｂ】
2012221131.tif 000024
【図７Ａ】
2012221131.tif 000025
【図７Ｂ】
2012221131.tif 000026
【図８Ｂ】
2012221131.tif 000027
【図９Ａ】
2012221131.tif 000028
【図９Ｂ】
2012221131.tif 000029
【図９Ｃ】
2012221131.tif 000030
【図９Ｄ】
2012221131.tif 000031
【図１０Ａ】
2012221131.tif 000032
【図１０Ｂ】
2012221131.tif 000033
【図１０Ｃ】
2012221131.tif 000034
【図１０Ｄ】
2012221131.tif 000035
【図１１Ａ】
2012221131.tif 000036
【図１１Ｂ】
2012221131.tif 000037
【図１１Ｃ】
2012221131.tif 000038
【図１２Ｂ】
2012221131.tif 000039
【図１２Ｃ】
2012221131.tif 000040
【図１３Ａ】
2012221131.tif 000041
【図１３Ｂ】
2012221131.tif 000042
【図１４Ａ】
2012221131.tif 000043
【図１５Ａ】
2012221131.tif 000044
【図１５Ｂ】
2012221131.tif 000045
【図１５Ｃ】
2012221131.tif 000046
【図１８】
2012221131.tif 000047
【図１９】
2012221131.tif 000048
【図２１Ａ】
2012221131.tif 000049
【図２１Ｂ】
2012221131.tif 000050
【図２２】
2012221131.tif 000051
【図２３Ａ】
2012221131.tif 000052
【図２３Ｂ】
2012221131.tif 000053
【図３Ａ】
2012221131.tif 000054
【図５Ａ】
2012221131.tif 000055
【図８Ａ】
2012221131.tif 000056
【図８Ｃ】
2012221131.tif 000057
【図１２Ａ】
2012221131.tif 000058
【図１３Ｃ】
2012221131.tif 000059
【図１４Ｂ】
2012221131.tif 000060
【図１６】
2012221131.tif 000061
【図１７】
2012221131.tif 000062
【図２０】
2012221131.tif 000063
【図２４Ａ】
2012221131.tif 000064
【図２４Ｂ】
2012221131.tif 000065