JP5376920B2 - コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 - Google Patents
コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 Download PDFInfo
- Publication number
- JP5376920B2 JP5376920B2 JP2008309970A JP2008309970A JP5376920B2 JP 5376920 B2 JP5376920 B2 JP 5376920B2 JP 2008309970 A JP2008309970 A JP 2008309970A JP 2008309970 A JP2008309970 A JP 2008309970A JP 5376920 B2 JP5376920 B2 JP 5376920B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage means
- storage
- convolution operation
- shift register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
- G06V40/171—Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Description
本発明は、パターン認識等に好適なコンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置に関する。
パターン認識装置、予測システム・制御装置等に、ニューラルネットワークを利用した信号処理装置が広く応用されている。一般的に、ニューラルネットワークはマイクロプロセッサ上で動作するソフトウェアとして実現される場合が多く、パーソナルコンピュータ又はワークステーション等のアプリケーションソフトウェアとして提供されている。一方、画像データ等の大容量データに対する高速な処理装置への適用を目的として、ニューラルネットワークをアナログハードウェア又はディジタルハードウェアで実現する技術も提案されている。例えば、特許文献1には、一般的な多層パーセプトロン型ニューラルネットワークをディジタルハードウェアで実現する技術が提案されている。
ニューラルネットワークの中でも、Convolutional Neural Networks(以下CNNと略記する)とよばれる演算方法は認識対象の変動に対して頑健なパターン認識を可能にする方法として知られている。このような方法を適用した例として、特許文献2に、画像データを用いた顔認識を行う技術が提案されている。
ここで、CNN演算の例について説明する。図13は、CNN演算の例を示すネットワーク構成図である。図21において、入力層301は、画像データに対してCNN演算を行う場合のラスタスキャンされた所定サイズの画像データを示す。特徴面303a〜303cは第1段目の階層308の特徴面を示す。特徴面とは、所定の特徴抽出フィルタ(コンボリューション演算及び非線形処理)の検出結果を示すデータ面であり、例えば顔を検出する場合、目、口又は鼻等の検出結果を示すデータ面である。ラスタスキャンされた画像データに対する検出結果であるため、検出結果も面で表される。特徴面303a〜303cは、入力層301に対するコンボリューション演算及び非線形処理により生成される。例えば、特徴面303aは、フィルタカーネル3021aに模式的に示すコンボリューションフィルタ演算及び演算結果の非線形変換により得られる。なお、図3中のフィルタカーネル3021b及び3021cは、夫々特徴面303b及び303cを生成する際に使用されるフィルタカーネルである。
図14は、コンボリューションフィルタの例を示す図である。図22において、データ列41は、ラスタスキャンされた参照画素を示すデータ列であり、フィルタカーネル42は、参照画素に対するフィルタカーネルの例である。この例は、カーネルサイズが11×11のFIR(finite Impulse Response)フィルタ演算を行うことに相当する。FIRフィルタは以下の数1に示す積和演算により処理される。
ここで、「input(x,y)」は座標(x,y)での参照画素値を示し、「output(x,y)」は座標(x,y)でのFIRフィルタ演算結果を示す。また、「weight(column,row)」は座標(x+column,y+row)でのFIRフィルタ係数を示し、「columnSize」及び「rowSize」はフィルタカーネルサイズを示す。
そして、特徴面303aを算出する場合、データ列41は入力層301に相当し、フィルタカーネル42はフィルタカーネル3021aに相当する。CNN演算では複数のフィルタカーネルを画素単位で走査しながら積和演算を繰り返し、最終的な積和結果を非線形変換することにより特徴面を生成する。なお、特徴面303aを算出する場合は、前階層との結合数が1であるため、フィルタカーネルは1つである。
次に、第2段目の階層309の特徴面305aを生成する演算について説明する。図15は、特徴面305aを生成する演算を説明する図である。特徴面305aは前段の階層308の3つの特徴面303a〜303cと結合している。従って、特徴面305aのデータを算出する場合、特徴面303aに対してはフィルタカーネル3041aで模式的に示すカーネルを用いたフィルタ演算を行い、この結果を累積加算器501に保持する。同様に、特徴面303b及び303cに対しては、夫々フィルタカーネル3042a及び3043aのフィルタ演算を行い、これらの結果を累積加算器501に蓄積する。これらの3種類のフィルタ演算の終了後、ロジスティック関数又は双曲正接関数(tanh関数)を利用した非線形変換処理502を行う。以上の処理を画像全体に対して1画素ずつ走査しながら処理することにより、特徴面305aを生成する。
同様に、特徴面305bの生成の際には、前段の階層308の特徴面303a〜303cに対するフィルタカーネル3041b、3042b及び3043bによる3つのコンボリューションフィルタ演算を行う。また、第3段目の階層310の特徴面307の生成の際には、前段の階層309の特徴面305a〜305bに対するフィルタカーネル3061及び3062による2つのコンボリューションフィルタ演算を行う。
なお、各フィルタ係数はパーセプトロン学習又はバックプロパゲーション学習等の一般的な方法を用いて、予め学習により決定されている。物体の検出又は認識等においては、10×10以上の大きなサイズのフィルタカーネルを使用することが多い。
このように、CNN演算では多数の大きなカーネルサイズのフィルタが階層的に利用されるため、膨大な回数のコンボリューション演算が必要とされ、ソフトウェアで実現する場合、高価な高性能プロセッサが必要になる。
また、ハードウェアにより実現する場合であっても、特許文献1で提案されているような1つの演算ユニットによるシリアル処理による回路では十分な性能の装置を実現できない。特許文献1には、シリアル処理する回路を複数組み合わせて高速な処理を実現する方法に関する記載もあるが、任意のネットワークに対応する高性能なハードウェアを同一の回路で実現することは困難である。更に、特許文献1には、積和演算ユニットを複数設けた構成も記載されているが、同時に動作する各積和演算ユニットに夫々異なる重み係数を与える回路構成となっている。このため、CNN演算等の大きなサイズのカーネルを複数使用するコンボリューション演算を高速に実現するためには回路規模が増大する。
また、特許文献3には、積和演算ユニットに共通の重み係数を設定し、入力データをシフトさせながら並列に取り出すことで高速に並列コンボリューション演算を実行する画像処理装置が提案されている。但し、この装置に設けられる回路は演算器の数と同じポートを有するマルチポートメモリを利用する回路である。このため、一般的なシングルポートメモリシステムに適用すると、入力データの投入がボトルネックになり演算器の並列度に応じた性能を引き出すことができない。また、CNN演算のように、大きなフィルタカーネルサイズの重み係数を複数用意し、積和演算単位で複数の重み係数を選択しながら処理する場合、重み係数の設定がボトルネックになり、並列度に応じた性能を引き出すことができない。
そもそも、これらの従来の技術は、一般的な多層パーセプトロン型のニューラルネットワーク又は一般的なFIRフィルタの実現を目的としたものである。このため、CNN演算のような複雑な階層的コンボリューション演算を簡易な構成で柔軟に構成することは困難である。
本発明は、コンボリューション演算を簡易な構成で高速に実行することができるコンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置を提供することを目的とする。
本願発明者は、前記課題を解決すべく鋭意検討を重ねた結果、以下に示す発明の諸態様に想到した。
本発明に係るコンボリューション演算回路は、複数の乗算器と、前記複数の乗算器の第1の入力にデータを供給する第1のシフトレジスタと、前記第1のシフトレジスタに供給する複数のデータを保持する第1の記憶手段と、前記複数の乗算器の第2の入力にデータを供給する第2のシフトレジスタと、前記第2のシフトレジスタに供給する複数のデータを保持する第2の記憶手段と、前記複数の乗算器の出力を累積する複数の累積加算器と、前記複数の累積加算器の出力を所定のタイミングでラッチする第3の記憶手段と、前記第1の記憶手段及び前記第2の記憶手段に保持するデータを所定の領域に格納し、前記第3の記憶手段の出力を所定の領域に格納する第4の記憶手段と、前記第1の記憶手段、前記第2の記憶手段、前記第3の記憶手段、前記第4の記憶手段、前記第1のシフトレジスタ、前記第2のシフトレジスタ及び前記累積加算器の動作を制御する制御手段と、を有し、前記制御手段は、前記第1の記憶手段に保持された複数のデータを所定のタイミングで前記第1のシフトレジスタにセットし、前記第2の記憶手段に保持された複数のデータを所定のタイミングで前記第2のシフトレジスタにセットし、前記第1のシフトレジスタ及び前記第2のシフトレジスタを前記累積加算器の動作と同期してシフト動作させ、前記シフト動作の期間中に前記第4の記憶手段に格納されているデータを前記第1の記憶手段又は第2の記憶手段の少なくとも一方に転送することを特徴とする。
本発明に係る階層的コンボリューション演算回路は、乗算器と、前記乗算器の第1の入力にデータを供給する第1の記憶手段と、前記乗算器の第2の入力にデータを供給する第2の記憶手段と、前記乗算器の出力を累積する累積加算器と、前記累積加算器の出力をラッチする第3の記憶手段と、を備えたコンボリューション演算手段と、前記第1の記憶手段及び前記第2の記憶手段に供給するデータを所定の領域に格納し、前記第3の記憶手段からの出力を所定の領域に格納する第4の記憶手段と、前記第4の記憶手段及び前記コンボリューション演算手段の動作を制御する制御手段と、を有し、前記第4の記憶手段を前記制御手段に対して共通のアドレス空間にマッピングし、前記制御手段は、前記第4の記憶手段における読み出しアドレス及び書き込みアドレスを制御し、前記第4の記憶手段から前記第1の記憶手段及び前記第2の記憶手段へのデータ転送及び前記第3の記憶手段から前記第4の記憶手段へのデータ転送を実行して、前記第4の記憶手段に格納されている処理の対象のデータに対するコンボリューション演算を行い、更に、前記コンボリューション演算の結果に対して再びコンボリューション演算を行うことを特徴とする。
本発明に係る物体認識装置は、上記のコンボリューション演算回路又は階層的コンボリューション演算回路を有することを特徴とする。
本発明によれば、コンボリューション演算を簡易な構成で高速に実行することができる。
以下、本発明の実施形態について添付の図面を参照して具体的に説明する。
(第1の実施形態)
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る階層的コンボリューション演算回路を具備した物体検出装置の構成を示すブロック図である。この物体検出装置(物体認識装置)は、2次元のコンボリューション演算を行い、画像データから特定の物体を検出する機能を有する。
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る階層的コンボリューション演算回路を具備した物体検出装置の構成を示すブロック図である。この物体検出装置(物体認識装置)は、2次元のコンボリューション演算を行い、画像データから特定の物体を検出する機能を有する。
この物体検出装置(物体認識装置)には、図1に示すように、画像入力部20、CNN処理部22、ブリッジ24、前処理部25、DMAC(Direct Memory Access Controller)26及びRAM100(第4の記憶部)が設けられている。更に、CPU(Central Processing Unit)27、ROM28及びRAM100も設けられている。そして、画像入力部20、CNN処理部22、前処理部25及びDMAC26が画像バス23を介して互いに接続され、CPU27、ROM28及びRAM29がCPUバス30を介して互いに接続されている。また、ブリッジ24により画像バス23とCPUバス30との間のデータ転送が可能となっている。
画像入力部20には、光学系、CCD(Charge-Coupled Devices)又はCMOS(Complementary Metal Oxide Semiconductor)センサ等の光電変換デバイスが設けられている。更に、センサを制御するドライバー回路、ADコンバータ、各種画像補正を司る信号処理回路及びフレームバッファ等も設けられている。
CNN処理部22は、階層的コンボリューション演算回路として機能する。RAM100は、CNN処理部22の演算作業バッファとして使用される。なお、CNN処理部22の構成等の詳細については、図2を参照しながら後述する。
前処理部25は、CNN演算による検出処理を効果的に行うための種々の前処理を行う。例えば、色変換処理及びコントラスト補正処理等の画像データ変換処理をハードウェアで処理する。
DMAC26は、画像バス23上の画像入力部20、CNN処理部22及び前処理部25とCPUバス30との間のデータ転送を司る。
ROM(Read Only Memory)28は、CPU27の動作を規定する命令及びパラメータデータを格納しており、CPU27は、これらを読み出しつつ当該物体検出装置の全体の動作を制御する。その際に、RAM29がCPU27の作業領域として使用される。なお、CPU27はブリッジ24を介して画像バス23上のRAM100にアクセスすることも可能である。
次に、CNN処理部22の詳細について説明する。図2は、CNN処理部22の構成を示すブロック図である。上述のように、CNN処理部22は、階層的コンボリューション演算回路として機能する。ここでは、CNN処理部22が列方向に並列処理を行うこととする。
CNN処理部22には、図2に示すように、制御部101、記憶部102〜103、シフトレジスタ104〜106、2つの入力を備えた複数の乗算器107、複数の累積加算器108及び非線形変換処理部109が設けられている。
制御部101には、CNN処理部22自体の基本的な動作を決定するレジスタ群、当該レジスタ群に設定されたレジスタ値に基づいて種々の信号のタイミングを制御するシーケンサ、及びRAM100へのアクセス調停を行うメモリ制御部等が設けられている。なお、制御部101の構成等の詳細については、図3を参照しながら後述する。
記憶部102(第2の記憶手段)はRAM100に保持された重み係数データを一時的に保持する。重み係数が8bitで表されるデータの場合、記憶部102は8bit幅の複数のレジスタで構成される。また、記憶部102は並列処理する方向と同じ方向のフィルタカーネルサイズと同じサイズ以上のレジスタ(記憶容量)を有する。例えば、列方向のフィルタカーネルサイズが「11」の場合、当該レジスタの数は少なくとも「11」あればよい。つまり、想定される最大フィルタサイズのレジスタ数で構成することが好ましい。
記憶部103(第1の記憶手段)はRAM100に格納された参照データを一時的に保持する。参照データが8bitで表されるデータの場合、記憶部103は8bit幅の複数のレジスタで構成される。記憶部103は「並列に処理するデータの数(レジスタ長)」+「並列処理する方向と同じ方向のフィルタカーネルサイズ−1」以上の個数のレジスタ(記憶容量)を有する。ここでのレジスタ個数は一度に処理する(並列演算する)位置の特徴面データが参照するデータを得るために必要な値であり、この値以上の個数のレジスタが設けられていればよい。例えば,列方向のフィルタカーネルサイズが「12」、演算並列度が「12」の場合、少なくとも23個の8bitレジスタが設けられていればよい。
シフトレジスタ104(第2のシフトレジスタ)、105(第1のシフトレジスタ)及び106(第3の記憶手段)はデータロード機能を備えている。例えば、シフトレジスタ104及び105は、夫々記憶部102及び103と同じbit幅の複数のレジスタで構成されており、シフトレジスタ106は、累積加算器108の出力の有効bitと同じbit数以上の複数のレジスタで構成されている。
図3は、シフトレジスタ104〜106の構成の例を示す図である。この例では、シフトレジスタに4個のレジスタが設けられているとする。このシフトレジスタには、4個の多bitフリップフロップ801a〜801dが設けられており、これらがCLOCK信号に同期して所定bitのデータをラッチする。フリップフロップ801a〜801dにはイネーブル信号(Enable信号)が与えられ、フリップフロップ801a〜801dは、Enable信号が1の場合にCLOCK信号の立ち上がりでデータをラッチする。一方、Enable信号が0の場合に前クロックでラッチしたデータをそのまま保持する。つまり、状態遷移が生じない。また、3個のセレクタ802a〜802cが設けられており、これらは、選択信号(Load信号)が0の場合に信号OUTx(x:0〜2)を選択し、1の場合に信号INx(x:1〜3)を選択する。即ち、セレクタ802a〜802cは、Load信号に応じてシフト動作又はロード動作を選択する。
そして、図2中のLoad2信号、Load4信号及びLoad5信号は、図3中のLoad信号に相当し、図2中のEnable1信号、Enable2信号及びEnable3信号が図3中のEnable信号に相当する。このような構成により、並列度が高い場合であってもセレクタの複雑化等による配線数の増大及び遅延の増大の少ない高速な回路を構築することが可能になる。
制御部101は、シフトレジスタ104のシフト動作中にRAM100から次の列の積和演算処理に必要な係数を当該レジスタにロードする。また、制御部101は、シフトレジスタ105のシフト動作中にRAM100から次の列処理に必要な参照データをロードする。そして、シフトレジスタ104は初期データのロード(記憶部102からの一括ロード)後に、列方向のフィルタカーネルサイズと同じクロック数だけシフト動作を実行し、乗算器107に対して重み係数データを連続して供給する。つまり、図3中の信号OUTn(シフトレジスタの最終段出力)が全ての乗算器107に供給される。また、シフトレジスタ105は記憶部103から初期データがロードされると、列方向のフィルタカーネルサイズと同じクロック数だけシフト動作を実行し、乗算器107に対して複数の参照データを同時に供給する。つまり、図3中の信号OUT1〜OUTnが全ての乗算器107に同時に供給される。シフトレジスタ104及びシフトレジスタ105は互いに同期して動作し、これらからのデータが乗算器107の第1の入力及び第2の入力に供給される。以上の処理により、積和演算処理及びRAM100からのデータロードをフィルタカーネルの列単位でパイプライン化することが可能になる。
図4は、累積加算器108の構成を示す図である。累積加算器108には、図4に示すように、加算器901及びレジスタ902が含まれており、累積加算器108は、Latch Enable信号に従って入力データの累積和を保持する。Latch Enable信号は、クロック信号に同期した信号である。累積加算器108により得られた累積和は、対象とする特徴面に対応する全フィルタカーネルの演算終了後、シフトレジスタ106にロードされ、所定のタイミングで非線形変換処理部109に送られる。乗算器107及び累積加算器108としては、例えば、夫々同一クロックで動作する同一のものが12個並んで設けられている。そして、シフトレジスタ106は、例えば、12個の累積加算器108の出力を保持することが可能なフリップフロップを含んでいる。累積加算器108の出力は所定の有効ビットのみシフトレジスタ106に出力される。
図5は、非線形変換処理部109の構成を示す図である。非線形変換処理部109には、ルックアップテーブル(LUT)1301及びセレクタ1302が設けられている。LUT1301は、積和演算結果をアドレスデータ(In)としてROM等に保持されたデータを参照する。ROMには、例えば予めアドレス値に対応する出力の非線形関係が記録されている。セレクタ1302は、非線形処理変換しない場合に積和演算結果をそのまま出力する(Out)。セレクタ1302への選択信号(Select)は制御部101から供給されている。つまり、セレクタ1302は、制御部101内の「非線形変換」レジスタ(後述)の値に従って制御される。なお、後述のように、「非線形変換」レジスタを含むレジスタセット1101a〜1101c(図7参照)は、特徴面単位で構成される。このため、非線形変換処理の有無も特徴面単位で選択可能である。このように、非線形変換の有無を特徴面単位で選択可能にすることで、非線形変換処理を含む階層と含まない階層が混在した大規模ネットワークを構築することが可能になる。また、非線形変換処理部109により得られたデータは、RAM100の所定のアドレスに格納される。この格納アドレスも制御部101のレジスタ群602の設定及びシーケンス制御部601(図6参照)の動作に従って制御される。
次に、制御部101の詳細について説明する。図6は、制御部101の構成を示すブロック図である。
制御部101には、図6に示すように、シーケンス制御部601、レジスタ群602(記憶領域)及びメモリ制御部605が設けられている。
シーケンス制御部601は、レジスタ群602に設定された情報に従って、CNN処理部22の動作を制御する種々の制御信号604を入出力する。同様に、シーケンス制御部601はメモリ制御部605を制御する制御信号606を生成する。シーケンス制御部601は、例えば、バイナリカウンタ又はジョンソンカウンタ等からなるシーケンサにより構成される。
レジスタ群602は、複数のレジスタセットを含み、1つの階層的な処理を行うための情報が当該レジスタセット毎に保持される。レジスタ群602は外部からのアクセスが可能に構成されている。図7は、レジスタ群602に設定される情報の例を示す図である。この例では、3つのレジスタセット1101a、1101b及び1101cがレジスタ群602に含まれており、これらのうちの1つが1つの特徴面を処理するために必要な情報を保持する。レジスタ群602にはブリッジ24及び画像バス23を介してCPU27から予め所定の値が書き込まれる。ここでは、レジスタセット1101a〜1101c内の各レジスタが32bit長であるとする。
図7中の「最終層指定」レジスタは、当該レジスタセットに対応する特徴面が最終層か否かを指定するレジスタであり、当該レジスタ値が1の場合、対象特徴面の処理を終了すると検出処理を終了する。
図7中の「参照データ面の数」レジスタは、対象特徴面と接続する前階層の特徴面(データ領域)数を指定するレジスタであり、例えば、図13に示す特徴面305aを演算する場合「3」が設定される。
図7中の「非線形変換」レジスタは、非線形変換の有無を指定するレジスタであり、当該レジスタに「1」が設定されている場合、非線形変換処理を行い、当該レジスタに「0」が設定されている場合、非線形変換処理を行わない。
図7中の「演算結果格納先ポインタ」レジスタは、対象とする特徴面の演算結果を保持するためのRAM100上の先頭ポインタを示すアドレスを指定するレジスタであり、当該ポインタ値を先頭ポインタとして演算結果をラスタスキャン順に格納する。
図7中の「フィルタカーネルの水平サイズ」レジスタ及び「フィルタカーネルの垂直サイズ」レジスタは、当該特徴面の演算に使用するフィルタカーネルのサイズを指定するレジスタである。
図7中の「重み係数格納先」レジスタは、当該特徴面の演算に使用する重み係数のRAM100上の格納先アドレスを示すレジスタである。例えば、重み係数データは「参照データ面の数」レジスタと同じ数の係数の組を有し、「重み係数格納先」レジスタで指定されるアドレスからラスタスキャン順に格納されている。即ち、「フィルタカーネルの水平サイズ」×「フィルタカーネルの垂直サイズ」×「参照データ面の数」の個数の係数データがRAM100に格納されている。
図7中の「参照データの垂直サイズ」レジスタ及び「参照データの水平サイズ」レジスタは、夫々参照画像データの水平方向画素数及び垂直方向ライン数を示すレジスタである。また、参照データは、図7中の「参照データ格納先ポインタ」レジスタの示すアドレスを先頭としてRAM100上にラスタスキャン順に格納されている。即ち「参照データの水平サイズ」×「参照データの垂直サイズ」×「参照データ面の数」の個数の参照データがRAM100に格納されている。
このような複数のレジスタが各特徴面単位に設けられている。演算対象とする特徴面の「参照データ格納ポインタ」レジスタの内容が前階層結合対象特徴面の「演算結果格納先ポインタ」である場合、前階層の特徴面と対象となる特徴面が結合されていることになる。従って、ここでのレジスタ設定(ポインタ設定)だけで任意の階層的結合関係を特徴面単位に構築することが可能である。
図8は、RAM100に格納される参照データ、重み係数データ及び演算結果のメモリマップの例を示す図である。ここでは、前階層の結合数が3であるとする(例えば、図13において305aを算出する場合の例)。このような場合、領域1501〜1503は3つの参照データを格納する領域であり、領域1504〜1506は参照画像に対応するフィルタカーネル係数を格納する領域であり、領域1507は特徴面305aの演算結果を格納する領域である。例えば、各領域にはラスタスキャンされたデータが格納される。従って、制御部101はレジスタ群602に格納された先頭ポインタ情報及びサイズに関する情報に基づいて、必要な参照画像データ及びフィルタカーネル係数データにアクセスすることが可能である。また、次の階層の特徴面の演算時には、演算結果が格納された領域1507を参照データの格納領域として指定する(レジスタ群602への設定)だけで、不要なデータの転送を行わずに、高速に処理することが可能である。
シーケンス制御部601は、上記の「フィルタカーネルの水平サイズ」レジスタ、「フィルタカーネル垂直サイズ」レジスタ、「参照データの水平サイズ」レジスタ及び「参照データの垂直サイズ」レジスタ等の内容に従って演算動作タイミングに関わるシーケンス制御を行う。
メモリ制御部605は、シーケンス制御部601の生成する制御信号606に従って、参照データ607、重み係数データ608及び演算結果データ609のRAM100からの読み出及びRAM100への書き込みを調停する。具体的には、画像バス23を介したメモリへのアクセス、参照データ607の読み出し、重み係数データ608の読み出し、演算結果データ609の書き出しを制御する。なお、RAM100のデータ幅及び各バス(データ607〜609)のデータ幅は、例えば全て32bitである。
次に、このように構成された物体検出装置の動作について説明する。図9(a)は、第1の実施形態に係る物体検出装置の動作を示すフローチャートである。
先ず、ステップS701において、検出処理の開始に先立ち、CPU27が各種初期化処理を実行する。例えば、CPU27は、CNN処理部22の動作に必要な重み係数をROM28からRAM100に転送すると共に、CNN処理部22の動作、即ちCNNネットワークの構成を定義する為の各種レジスタ設定を行う。具体的には、CNN処理部22の制御部に存在する複数のレジスタ(図7参照)に所定の値を設定する。同様に、前処理部25等のレジスタに対しても動作に必要な値を書き込む。
次いで、ステップS702において、画像入力部20が、画像センサの出力する信号をディジタルデータに変換し、フレーム単位でフレームバッファ(図示せず)に格納する。
その後、ステップS703において、前処理部25が、所定の信号に基づいて画像変換処理を行う。即ち、前処理部25は、画像入力部20のフレームバッファ上の画像データから輝度データを抽出し、コントラスト補正処理を行う(ステップS703)。輝度データの抽出では、例えば、一般的な線形変換処理によりRGB画像データから輝度データを生成する。また、コントラスト補正では、例えば、一般的に知られているコントラスト補正処理を適用してコントラストを強調する。前処理部25は、コントラスト補正処理後の輝度データを検出用画像としてRAM100に格納する。
そして、1フレームの画像データに対して前処理が完了すると、前処理部25が完了信号(図示せず)を有効にし、CNN処理部22が当該完了信号に基づいて物体の検出処理を開始する(ステップS704〜S705)。
物体の検出処理では、CNN処理部22は特徴面単位(例えば図13に示す303a〜c等)でコンボリューション演算を行う(ステップS704)。そして、全ての特徴面に対する処理を終了すると(図13の場合、特徴面307の算出を終了した場合)、CPU27に対して割り込み信号を生成する(ステップS706)。つまり、制御部101が1つの特徴面のコンボリューション演算処理(ステップS704)を終了すると、レジスタセット1101aの「最終層指定」レジスタの内容に従って(ステップS705)、最終層ではない場合、次の特徴面の処理を開始する。制御部101は、次特徴面を処理する場合、レジスタ群602の次のアドレスに存在するレジスタセットの内容に従って同様のコンボリューション演算処理を行う。レジスタセットが最終層を示している場合、制御部101は所定のコンボリューション演算処理の終了後、CPU27に対して終了通知割り込みを発生する。例えば、動画像から所定の物体を検出するような場合、CPU27は以上の処理をフレーム画像単位に連続処理する(ステップS707)。割り込み処理の詳細については、図9(b)を参照しながら後述する。
図10は、並列処理(コンボリューション演算処理)の具体例を示す図である。図10にはラスタスキャンされたデータ座標を示してある。1001は参照データ面を表し、各ブロック(模式的に示す最小一升)がラスタスキャン順でRAM100に格納された前階層の演算結果(input(x,y)、x:水平方向位置、y:垂直方向位置)を示す。1004は対象となる特徴データ面を表し、各ブロックがラスタスキャンされた演算結果(output(x,y)、x:水平方向位置、y:垂直方向位置)を示す。また、1002a及び1002bは、夫々output(5,5)、output(5,6)位置の特徴面データを算出する場合のフィルタ演算に必要な参照データ範囲を示す。ここでは、フィルタのカーネルサイズは水平方向に「11」、垂直方向に「12」である。1003は同時にフィルタ演算する特徴面データの領域を示し、例えば並列度が12の場合、output(5,y):y=5〜16の特徴面位置のデータを同時に演算する。従って、本実施形態では、並列処理の対象である領域(1003)を水平方向に1画素単位、垂直方向に12ライン単位で走査させながらフィルタ演算を行い、二次元データ列に対して高速にフィルタ演算を行う。
図11は、第1の実施形態におけるコンボリューション演算の処理時の動作を示すタイムチャートである。図11には、1つの特徴面のコンボリューション演算処理動作(ステップS704)の一部を示してある。また、図11に示す信号は全てクロック信号(図示せず)に基づいて同期動作する。
Load1信号は、記憶部102に重みデータをロードするイネーブル信号を示す。制御部101はLoad信号1が有効(信号レベルが1)の期間に、RAM100から1列分の重みデータを読み出し、記憶部102に書き込む。フィルタカーネルの1列の大きさはレジスタ群602に保持されている。また、制御部101は、レジスタ群602で指定する重み係数のアドレスポインタ情報、重み係数サイズ及び参照するデータ面の数に基づいて、読み出すデータのアドレスを決定する。RAM100のデータ幅は32bitであり、重み係数のデータ幅は8bitであるので、記憶部102に列方向12個の重み係数を書き込む場合(図10に示す例)、3クロックでロード処理を完了する。なお、以後、RAM100に対する読み出し及び書き込みサイクルは全て1クロックで完了するものとする。
制御部101は、重み係数のロードが完了すると、次に参照データのロードを開始するためにLoad3信号を有効化する。Load3信号もLoad1信号と同様に信号レベル1の場合が有効化された状態である。制御部101はLoad3信号の有効化と同時にRAM100から参照データを取り出し、記憶部103にセットする。セットするデータの数はレジスタ群602に保持されているフィルタカーネルの大きさ及び並列度から決定する。また、制御部101は、レジスタ群602で指定する参照データのアドレスポインタ情報、参照データのサイズ及び参照データ面の数に基づいて、RAM100から読み出すデータのアドレスを決定する。参照データの有効桁は8bitであるため、記憶部103に例えば23個の参照データを書き込む場合、6サイクルで書き込みシーケンスを完了する。図10に示す例の場合、フィルタカーネルの水平方向サイズが12、演算並列度が12であるため、並列度が23(12+12−1=23個)のデータをロードする必要がある。
*CLR信号は、累積加算器108を初期化させる信号であり、*CLR信号が0の場合、累積加算器108のレジスタ902が0に初期化される。制御部101は、新たな特徴面の位置のコンボリューション演算開始前に、この*CLR信号を0にする。
Load2信号は、シフトレジスタ104の初期化を指示する信号であり、Load2信号が1で、かつEnable1信号が有効(信号レベル1)の場合、記憶部102に保持する複数の重み係数データがシフトレジスタ104に一括ロードされる。Enable1信号はシフトレジスタのデータ遷移を制御する信号であるが、図11に示すように動作中は常に1に設定されている。従って、Load2信号が1の場合、クロック信号に応じて記憶部102の出力をラッチし、Load2信号が0の場合、クロック信号に応じてシフト処理を継続する。制御部101のシーケンス制御部601は、フィルタカーネルの列方向サイズに応じたクロック数をカウントするとLoad2信号を有効化し、シフト動作を停止させると同時に、記憶部102に保持する重み係数データをシフトレジスタ104に一括ロードする。即ち、フィルタカーネルの水平方向単位で重み係数を一括ロードし、ロードした係数を動作クロックに応じてシフトアウトする。
Load4信号は、シフトレジスタ105の初期化を指示する信号であり、Load4信号が1で、かつEnable2信号が有効(信号レベル1)の場合、記憶部103に保持する参照データがシフトレジスタ105に一括ロードされる。なお、Enable2信号はシフトレジスタのデータ遷移を制御する信号であるが、図11に示すように動作中は常に1に設定されている。このため、Load4信号が1の場合、クロック信号に応じて記憶部103の出力をラッチし、Load4信号が0の場合、クロック信号に応じてシフト処理を継続する。制御部101のシーケンス制御部601は、フィルタカーネルの列方向サイズに応じたクロック数をカウントするとLoad4信号を有効化し、シフト動作を停止させると同時に、記憶部103に保持する参照データを一括ロードする。即ち、フィルタカーネルの1列単位で必要な参照データを一括ロードし、ロードした参照データを動作クロックに応じてシフトする。このように、制御部101はLoad4信号をLoad2信号と同一のタイミングで制御する。
累積加算器108はクロックに同期して積和演算を継続している。従って、シフトレジスタ104及び105のシフト動作に従って算出する特徴面の複数の点に対して同時にフィルタカーネルサイズに応じた積和演算処理を実行する。具体的には、シフトレジスタ104及び105のシフト動作期間(図11中の積和演算処理区間)中にフィルタカーネルの1列分の積和演算がなされる。このような列単位の演算を重み係数及び参照データを入れ替ながら水平方向に繰り返し、並列度の数に応じた二次元のコンボリューション演算結果が生成される。また、制御部101はカーネルサイズ及び並列度に応じて各信号を制御し、積和演算処理及び積和演算処理に必要なデータ(重み係数データ及び参照データ)のRAM100からの供給を並行に実行する。
Load5信号は、累積加算器の結果をシフトレジスタ106に並列にロードする信号であり、制御部101は対象となる特徴面の並列処理単位の積和演算が終了すると、Load5信号及びEnable3信号に1を出力する(図示せず)。シフトレジスタ106は、Load5信号が1で、かつEnable3信号が1の場合、累積加算器108の出力を一括ロードする。なお、図11に示すタイミングでは、計算済みのコンボリューション演算結果がシフトレジスタ106にラッチされているものとする。制御部101は、シフトレジスタ104及び105のシフト動作中に記憶部102及び103へのデータロードが完了している場合、Enable3の信号を有効化し、シフトレジスタ106に保持する演算結果をシフトアウトする。つまり、信号OUTn(シフトレジスタ106の最終段出力)を非線形変換処理部109に向けて出力させる。シフトアウトした演算結果は非線形変換処理部109によって変換処理され、その後、制御部101により、レジスタ群602に記された演算結果格納先ポインタ及び参照データのサイズに従ってRAM100の所定のアドレスに格納される。
このように、制御部101は記憶部102、記憶部103及び非線形変換処理部109の3つの処理部のRAM100に対するアクセスを調停し、積和演算処理及び当該3つの処理部(102、103及び109)のRAM100へのアクセスをパイプライン化する。図10に示す例の場合、「列単位の積和演算に必要なクロック数(12)」が「重み係数ロードクロック数(3)+参照データロードクロック数(6)+結果データ格納クロック数(1)」より大きい。このため、メモリアクセスに要する時間は積和演算時間内に隠蔽される。なお、非線形変換処理部109は記憶部102及び103に比べてRAM100に対するアクセス頻度が低いため、最も低い優先順位で動作する。即ち、記憶部102及び103のアクセスの間隙となるタイムスロットでアクセスを行う。
また、本実施形態では、RAM100に対する参照データの読み出し、重み係数の読み出し及び演算結果の書き出しを積和演算処理期間に並行処理する。従って、「積和演算時間(フィルタカーネルの水平サイズ×フィルタカーネルの垂直サイズ)+シフトレジスタへのロード時間(フィルタカーネルの水平サイズ)」×結合する前階層の特徴面数」分のクロックで、並列度分の数のコンボリューション演算処理が完了する。
但し、フィルタカーネルが小さい場合等、並列度とフィルタカーネルとの関係によっては、RAM100へのアクセスを積和演算期間中に完全にパイプライン化できない場合もある。このような場合、制御部101はRAM100へアクセス完了を優先し、Enable1信号、Enable2信号及びEnable3信号及び累積加算器のLatch Enable信号を制御して積和演算処理の開始を遅延させることが好ましい。つまり、記憶部102及び103へのデータロード及び非線形変換処理部109のデータセーブを行うことが好ましい。
ここで、コンボリューション演算処理の終了に伴う割り込み処理について説明する。図9(b)は、割り込み処理時の動作を示すフローチャートである。
割り込み処理時には、CPU27が制御部101からの終了通知割り込みを受信すると、ステップS708において、DMAC26を起動し、RAM100上の最終特徴面データをCPUバス30上のRAM29に転送する。
次いで、CPU27はRAM29に記憶されている最終層検出結果から検出対象である所定の物体の位置及び大きさ等の情報を取得する。具体的には、最終検出結果を二値化処理し、ラベリング等の処理によりオブジェクト位置及びサイズ等を抽出する。
このようにして一連の処理が終了する。
そして、本実施形態によれば、少ない回路規模(レジスタサイズ等)で並列度と同じ方向のフィルタカーネルサイズ単位で演算及びメモリアクセスをパイプライン化し、高速に階層的なコンボリューション演算処理を行うことが可能である。また、参照データ及び演算結果データを同一のメモリ空間上に配置する回路構成であるため、レジスタの設定だけで複雑な階層的コンボリューション演算処理に柔軟に対応することが可能である。
つまり、階層的なコンボリューション演算を低コストで高速に実現することができる。また、同一の回路で様々な階層的結合を有するコンボリューション演算を高速に処理することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第2の実施形態では、記憶部102及びシフトレジスタ104の構成及び制御タイミングが第1の実施形態と相違しており、他の構成等は第1の実施形態と同様である。第1の実施形態では、シフトレジスタ104はコンボリューションカーネルの列単位で記憶部102からデータをロードしている。即ち、制御部101はLaod2信号及びLoad4信号を同じタイミングで駆動している。これに対し、第2の実施形態では、記憶部102及びシフトレジスタ104が、夫々1つのコンボリューションカーネル係数の数と同じか、それ以上の長さのレジスタ及びシフトレジスタで構成されている。
次に、本発明の第2の実施形態について説明する。第2の実施形態では、記憶部102及びシフトレジスタ104の構成及び制御タイミングが第1の実施形態と相違しており、他の構成等は第1の実施形態と同様である。第1の実施形態では、シフトレジスタ104はコンボリューションカーネルの列単位で記憶部102からデータをロードしている。即ち、制御部101はLaod2信号及びLoad4信号を同じタイミングで駆動している。これに対し、第2の実施形態では、記憶部102及びシフトレジスタ104が、夫々1つのコンボリューションカーネル係数の数と同じか、それ以上の長さのレジスタ及びシフトレジスタで構成されている。
図12は、第2の実施形態におけるコンボリューション演算の処理時の動作を示すタイムチャートである。ここでは、フィルタカーネルのサイズが3×3であるとする。図12中の各信号は図11のものと同一であり、図12に示すタイムチャートは、積和演算中のRAM100に対するデータアクセスに関連している。
新たなコンボリューションカーネルに対する演算を開始する場合、制御部101はLoad2信号を有効にして記憶部102に保持する全ての重み係数をシフトレジスタ104に一括ロードする。
積和演算処理期間中、制御部101は、先ずLoad3信号を有効化すると同時に、次の列のコンボリューション演算を行うための参照データをRAM100又は記憶部103にロードする。1列の処理に必要な参照データのロードを完了すると、次に、制御部101はLoad1信号を有効化し、次のコンボリューションカーネルの重み係数をRAM100から記憶部102に転送する。制御部101は次のフィルタカーネル1列分のコンボリューション演算処理を終了すると、Load4信号を有効化して記憶部103に保持した次の列の参照データをシフトレジスタ105に一括ロードする。
ロード後、Load3信号を有効化して次の列の参照データをRAM100から記憶部103に転送する。その際に、Load1信号を無効にする。制御部101は参照データの転送が終了すると、再びLoad1信号を有効化してRAM100から記憶部102へのフィルタカーネル係数の転送を再開する。次のフィルタカーネルの全係数の転送が終了すると、制御部101はEnable3信号を有効化して、非線形変換処理結果をRAM100に格納する。
本実施形態では、参照データのロードを優先し、その間隙に次のカーネルの係数を記憶部102にロードする。
このような第2の実施形態では、1つのフィルタカーネル単位で重み係数データを記憶部102及びシフトレジスタ104に保持するため、記憶部102からシフトレジスタ104へのロード回数が第1の実施形態よりも減少する。図12に示す例では、図11に示す例と比較して2回分だけロード回数が減少する。従って、ロード回数の減少分だけ記憶部102へのデータロードに関するRAM100へのアクセス回数を増やすことが可能になる。このため、記憶部103及び非線形変換処理部109の積和演算期間中のRAM100へのアクセス回数を増加させることができ、フィルタカーネルサイズが小さい場合等、積和演算の処理開始が遅れる条件の場合であっても、その遅れサイクル数を減少することができる。
なお、これらの実施形態では、積和演算部の並列度を12としているが、本発明はこれに限るわけではなく、回路規模及び必要な性能に応じて任意の並列度を有する回路に適用することが可能である。
また、これらの実施形態では、記憶部102及び103がレジスタで構成されているが、本発明はこれに限るわけではなく、高速なメモリ等を用いてもよい。
また、並列処理の方向は、図10に示すような列方向に限定されず、行方向に連続する複数の特徴面データを並列に処理する構成を採用してもよい。この場合、記憶部102にはフィルタカーネルの1行の重み係数がロードされ、記憶部103には「並列度+フィルタカーネルの行方向サイズ−1」個の行方向に連続する参照データがロードされる。また、シフトレジスタ104及び105はフィルタカーネルの行方向サイズ単位で初期値がロードされ、行方向サイズのシフト動作を行う。以上の処理をフィルタカーネルの列方向サイズ繰り返せば、第1の実施形態と同様の特徴面データを算出することが可能である。
また、これらの実施形態では、制御部101にレジスタ群602が内蔵されているが、レジスタ群602に相当する構成を外部のメモリ上に配置してもよい。例えばRAM100上の所定のアドレスを制御部101のレジスタ群として共通のアドレス空間にマッピングする構成でもよい。この場合、レジスタセットをCNN処理部22に設ける必要がなくなるため、CNN処理部22の回路規模を削減できる。更に、レジスタセットの容量に制限がなくなるため、同じハードウェアで特徴面の多い複雑な階層的ネットワークを構築することも可能になる。
また、最低限のレジスタセットを内蔵すると共に、選択信号に従って外部のメモリもレジスタ群の代替として使用できるようにしてもよい。このような構成の場合、搭載するレジスタセットのみで構築可能なネットワークはより高速に処理可能であり、更に同一の回路で複雑なネットワークを構築することも可能になる。
また、これらの実施形態では、画像入力部20に画像センサ等を具備する光学的な画像入力手段が設けられているが、ネットワーク装置又はハードディスク等の記録装置等か得られた画像データに対して処理を行ってもよい。
更に、これらの実施形態では、CPU27と組み合わせて動作する構成が採用されているが、全て専用ハードウェアにより構成したシステムに適用してもよい。逆に、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することもできる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
101:RAM
101:制御部
102、103:記憶部
104、105、106:シフトレジスタ
107:乗算器
108:累積加算器
109:非線形変換処理部
101:制御部
102、103:記憶部
104、105、106:シフトレジスタ
107:乗算器
108:累積加算器
109:非線形変換処理部
Claims (22)
- 複数の乗算器と、
前記複数の乗算器の第1の入力にデータを供給する第1のシフトレジスタと、
前記第1のシフトレジスタに供給する複数のデータを保持する第1の記憶手段と、
前記複数の乗算器の第2の入力にデータを供給する第2のシフトレジスタと、
前記第2のシフトレジスタに供給する複数のデータを保持する第2の記憶手段と、
前記複数の乗算器の出力を累積する複数の累積加算器と、
前記複数の累積加算器の出力を所定のタイミングでラッチする第3の記憶手段と、
前記第1の記憶手段及び前記第2の記憶手段に保持するデータを所定の領域に格納し、前記第3の記憶手段の出力を所定の領域に格納する第4の記憶手段と、
前記第1の記憶手段、前記第2の記憶手段、前記第3の記憶手段、前記第4の記憶手段、前記第1のシフトレジスタ、前記第2のシフトレジスタ及び前記累積加算器の動作を制御する制御手段と、
を有し、
前記制御手段は、
前記第1の記憶手段に保持された複数のデータを所定のタイミングで前記第1のシフトレジスタにセットし、
前記第2の記憶手段に保持された複数のデータを所定のタイミングで前記第2のシフトレジスタにセットし、
前記第1のシフトレジスタ及び前記第2のシフトレジスタを前記累積加算器の動作と同期してシフト動作させ、
前記シフト動作の期間中に前記第4の記憶手段に格納されているデータを前記第1の記憶手段又は第2の記憶手段の少なくとも一方に転送することを特徴とするコンボリューション演算回路。 - 前記第3の記憶手段は、前記乗算器の数以上のレジスタを含むシフトレジスタであることを特徴とする請求項1に記載のコンボリューション演算回路。
- 前記第3の記憶手段の出力を非線形変換する非線形変換手段を有することを特徴とする請求項1又は2に記載のコンボリューション演算回路。
- 前記制御手段は、前記シフト動作の期間中に、前記第3の記憶手段に保持した演算結果又は前記非線形変換手段による非線形変換の結果を前記第4の記憶手段の所定の領域に格納することを特徴とする請求項3に記載のコンボリューション演算回路。
- 前記第1のシフトレジスタのレジスタ長及び第1の記憶手段の記憶容量は、前記乗算器の数と2次元のコンボリューションカーネルの列又は行のサイズとの和から1を減じて得られる値以上であり、
前記第1のシフトレジスタにデータをセットする所定のタイミングは、コンボリューション演算の列方向又は行方向の処理の開始又は終了のタイミングであることを特徴とする請求項1乃至4のいずれか1項に記載のコンボリューション演算回路。 - 前記第2のシフトレジスタのレジスタ長及び第2の記憶手段の記憶容量は、2次元のコンボリューションカーネルの列又は行のサイズ以上であり、
前記第2のシフトレジスタにデータをセットする所定のタイミングは、コンボリューション演算の列方向又は行方向の処理の開始又は終了のタイミングであることを特徴とする請求項1乃至5のいずれか1項に記載のコンボリューション演算回路。 - 前記第2のシフトレジスタのレジスタ長及び第2の記憶手段の記憶容量は、2次元のコンボリューションカーネル係数の数以上であり、
前記第2のシフトレジスタにデータをセットする所定のタイミングは、1つのコンボリューション演算の処理開始又は終了のタイミングであることを特徴とする請求項1乃至5のいずれか1項に記載のコンボリューション演算回路。 - 乗算器と、
前記乗算器の第1の入力にデータを供給する第1の記憶手段と、
前記乗算器の第2の入力にデータを供給する第2の記憶手段と、
前記乗算器の出力を累積する累積加算器と、
前記累積加算器の出力をラッチする第3の記憶手段と、
を備えたコンボリューション演算手段と、
前記第1の記憶手段及び前記第2の記憶手段に供給するデータを所定の領域に格納し、前記第3の記憶手段からの出力を所定の領域に格納する第4の記憶手段と、
前記第4の記憶手段及び前記コンボリューション演算手段の動作を制御する制御手段と、
を有し、
前記第4の記憶手段を前記制御手段に対して共通のアドレス空間にマッピングし、
前記制御手段は、前記第4の記憶手段における読み出しアドレス及び書き込みアドレスを制御し、前記第4の記憶手段から前記第1の記憶手段及び前記第2の記憶手段へのデータ転送及び前記第3の記憶手段から前記第4の記憶手段へのデータ転送を実行して、前記第4の記憶手段に格納されている処理の対象のデータに対するコンボリューション演算を行い、更に、前記コンボリューション演算の結果に対して再びコンボリューション演算を行うことを特徴とする階層的コンボリューション演算回路。 - 前記制御手段は、外部からのアクセスが可能な記憶領域を有し、前記記憶領域の内容に従って階層的な結合関係を決定することを特徴とする請求項8に記載の階層的コンボリューション演算回路。
- 前記制御手段は、外部からのアクセスが可能な記憶領域を有し、前記記憶領域の内容に従って前記外部からのアクセスが可能な記憶領域のアドレスを決定することを特徴とする請求項9に記載の階層的コンボリューション演算回路。
- 前記制御手段は、前記外部からのアクセスが可能な記憶領域を階層的な結合を決定するための情報を、結合する前階層の全てのデータ領域に対するコンボリューション演算処理の単位で有することと特徴とする請求項9又は10に記載の階層的コンボリューション演算回路。
- 前記制御手段は、前記外部からのアクセスが可能な記憶領域の内容に基づいて、前記第4の記憶手段からの読み出しアドレスを決定することを特徴とする請求項9乃至11のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記制御手段は、前記外部からのアクセスが可能な記憶領域の内容に基づいて、前記第4の記憶手段への書き込みアドレスを決定することを特徴とする請求項9乃至12のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記外部からのアクセスが可能な記憶領域の内容は、結合する前階層のデータへのポインタに関する情報を含むことを特徴とする請求項9乃至13のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記外部からのアクセスが可能な記憶領域の内容は、処理の対象の特徴データの格納先へのポインタに関する情報を含むことを特徴とする請求項9乃至14のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記外部からのアクセスが可能な記憶領域の内容は、結合する前階層の数を規定する情報を含むことを特徴とする請求項9乃至15のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記外部からのアクセスが可能な記憶領域の内容は、結合する前階層の全てのデータ領域に対するコンボリューション演算処理の単位が最終の処理であるか否かを規定する情報を含むことを特徴とする請求項9乃至16のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記外部からのアクセスが可能な記憶領域の内容は、重み係数のサイズに関する情報を含むことを特徴とする請求項9乃至17のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記外部からのアクセスが可能な記憶領域の内容は、重み係数データへのポインタに関する情報を含むことを特徴とする請求項9乃至18のいずれか1項に記載の階層的コンボリューション演算回路。
- 前記制御手段は、前記外部からのアクセスが可能な記憶領域の内容に従って非線形変換の有無を決定することを特徴とする請求項9乃至19のいずれか1項に記載の階層的コンボリューション演算回路。
- 請求項1乃至7のいずれか1項に記載のコンボリューション演算回路を有することを特徴とする物体認識装置。
- 請求項8乃至20のいずれか1項に記載の階層的コンボリューション演算回路を有することを特徴とする物体認識装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008309970A JP5376920B2 (ja) | 2008-12-04 | 2008-12-04 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
US13/132,316 US8832004B2 (en) | 2008-12-04 | 2009-12-03 | Convolution operation circuit and object recognition apparatus |
PCT/JP2009/070626 WO2010064728A1 (en) | 2008-12-04 | 2009-12-03 | Convolution operation circuit and object recognition apparatus |
US14/447,468 US9135553B2 (en) | 2008-12-04 | 2014-07-30 | Convolution operation circuit and object recognition apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008309970A JP5376920B2 (ja) | 2008-12-04 | 2008-12-04 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010134697A JP2010134697A (ja) | 2010-06-17 |
JP5376920B2 true JP5376920B2 (ja) | 2013-12-25 |
Family
ID=42233372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008309970A Active JP5376920B2 (ja) | 2008-12-04 | 2008-12-04 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8832004B2 (ja) |
JP (1) | JP5376920B2 (ja) |
WO (1) | WO2010064728A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205700A (zh) * | 2016-12-20 | 2018-06-26 | 上海寒武纪信息科技有限公司 | 神经网络运算装置和方法 |
US10210419B2 (en) | 2015-10-21 | 2019-02-19 | Canon Kabushiki Kaisha | Convolution operation apparatus |
EP3474133A1 (en) | 2017-10-17 | 2019-04-24 | Canon Kabushiki Kaisha | Filter processing apparatus and control method thereof |
US10755126B2 (en) | 2016-11-07 | 2020-08-25 | Samsung Electronics Co., Ltd. | Convolutional neural network processing method and apparatus |
US11120298B2 (en) | 2015-09-30 | 2021-09-14 | Kabushiki Kaisha Toshiba | Tensor image mapping device, method, and computer program product |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9978014B2 (en) * | 2013-12-18 | 2018-05-22 | Intel Corporation | Reconfigurable processing unit |
US9613001B2 (en) | 2013-12-20 | 2017-04-04 | Intel Corporation | Processing device for performing convolution operations |
JP6314628B2 (ja) * | 2014-04-28 | 2018-04-25 | 株式会社デンソー | 演算処理装置 |
US10387773B2 (en) * | 2014-10-27 | 2019-08-20 | Ebay Inc. | Hierarchical deep convolutional neural network for image classification |
US10438117B1 (en) | 2015-05-21 | 2019-10-08 | Google Llc | Computing convolutions using a neural network processor |
US10192162B2 (en) * | 2015-05-21 | 2019-01-29 | Google Llc | Vector computation unit in a neural network processor |
US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US10083395B2 (en) | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
US9805303B2 (en) | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
US10049322B2 (en) | 2015-05-21 | 2018-08-14 | Google Llc | Prefetching weights for use in a neural network processor |
US11423311B2 (en) | 2015-06-04 | 2022-08-23 | Samsung Electronics Co., Ltd. | Automatic tuning of artificial neural networks |
US10460230B2 (en) | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
US10853738B1 (en) | 2015-06-29 | 2020-12-01 | Hrl Laboratories, Llc | Inference circuit for improving online learning |
KR102325602B1 (ko) * | 2015-07-06 | 2021-11-12 | 삼성전자주식회사 | 데이터를 병렬적으로 처리하는 장치 및 방법 |
JP6532334B2 (ja) * | 2015-07-21 | 2019-06-19 | キヤノン株式会社 | 並列演算装置、画像処理装置及び並列演算方法 |
CN107851214A (zh) * | 2015-07-23 | 2018-03-27 | 米雷普里卡技术有限责任公司 | 针对二维阵列处理器的性能增强 |
KR101788829B1 (ko) * | 2015-08-24 | 2017-10-20 | (주)뉴로컴즈 | 콘볼루션 신경망 컴퓨팅 장치 |
CN107704267B (zh) * | 2016-04-29 | 2020-05-08 | 中科寒武纪科技股份有限公司 | 一种卷积神经网络运算指令及其方法 |
AU2016203619A1 (en) | 2016-05-31 | 2017-12-14 | Canon Kabushiki Kaisha | Layer-based operations scheduling to optimise memory for CNN applications |
US10546211B2 (en) * | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
JP2018022339A (ja) | 2016-08-03 | 2018-02-08 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US20180046898A1 (en) * | 2016-08-11 | 2018-02-15 | Vivante Corporation | Zero Coefficient Skipping Convolution Neural Network Engine |
JP6786948B2 (ja) | 2016-08-12 | 2020-11-18 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6800656B2 (ja) * | 2016-08-24 | 2020-12-16 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
US10489680B2 (en) * | 2016-10-04 | 2019-11-26 | Magic Leap, Inc. | Efficient data layouts for convolutional neural networks |
US10366302B2 (en) | 2016-10-10 | 2019-07-30 | Gyrfalcon Technology Inc. | Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor |
US10366328B2 (en) | 2017-09-19 | 2019-07-30 | Gyrfalcon Technology Inc. | Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit |
US10360470B2 (en) | 2016-10-10 | 2019-07-23 | Gyrfalcon Technology Inc. | Implementation of MobileNet in a CNN based digital integrated circuit |
US9940534B1 (en) * | 2016-10-10 | 2018-04-10 | Gyrfalcon Technology, Inc. | Digital integrated circuit for extracting features out of an input image based on cellular neural networks |
US10402628B2 (en) | 2016-10-10 | 2019-09-03 | Gyrfalcon Technology Inc. | Image classification systems based on CNN based IC and light-weight classifier |
US10339445B2 (en) | 2016-10-10 | 2019-07-02 | Gyrfalcon Technology Inc. | Implementation of ResNet in a CNN based digital integrated circuit |
US10043095B2 (en) * | 2016-10-10 | 2018-08-07 | Gyrfalcon Technology, Inc. | Data structure for CNN based digital integrated circuit for extracting features out of an input image |
JP2018067154A (ja) * | 2016-10-19 | 2018-04-26 | ソニーセミコンダクタソリューションズ株式会社 | 演算処理回路および認識システム |
US10175980B2 (en) * | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
JP6945986B2 (ja) | 2016-10-28 | 2021-10-06 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
JP6945987B2 (ja) * | 2016-10-28 | 2021-10-06 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
US10657424B2 (en) | 2016-12-07 | 2020-05-19 | Samsung Electronics Co., Ltd. | Target detection method and apparatus |
JP6972547B2 (ja) | 2016-12-27 | 2021-11-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6747305B2 (ja) * | 2017-01-17 | 2020-08-26 | 株式会社デンソー | データ処理装置及びニューラルネットワークシステム |
CN106951395B (zh) * | 2017-02-13 | 2018-08-17 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
JP6823495B2 (ja) * | 2017-02-27 | 2021-02-03 | 株式会社日立製作所 | 情報処理装置および画像認識装置 |
CN108629405B (zh) * | 2017-03-22 | 2020-09-18 | 杭州海康威视数字技术股份有限公司 | 提高卷积神经网络计算效率的方法和装置 |
JP6794891B2 (ja) | 2017-03-22 | 2020-12-02 | 株式会社デンソー | ニューラルネットワーク回路 |
JP7173709B2 (ja) * | 2017-04-14 | 2022-11-16 | 株式会社半導体エネルギー研究所 | ニューラルネットワーク回路 |
CN108734279B (zh) * | 2017-04-20 | 2021-04-23 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
WO2018228399A1 (zh) * | 2017-06-13 | 2018-12-20 | 上海寒武纪信息科技有限公司 | 运算装置和方法 |
WO2018234919A1 (ja) * | 2017-06-21 | 2018-12-27 | 株式会社半導体エネルギー研究所 | ニューラルネットワークを有する半導体装置 |
JP6958027B2 (ja) * | 2017-07-03 | 2021-11-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US10671349B2 (en) * | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11157287B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system with variable latency memory access |
JP6929734B2 (ja) * | 2017-08-08 | 2021-09-01 | キヤノン株式会社 | 判別演算装置、判別演算方法及びプログラム |
US10261849B1 (en) * | 2017-08-11 | 2019-04-16 | Electronics Arts Inc. | Preventative remediation of services |
JP2019040403A (ja) | 2017-08-25 | 2019-03-14 | ルネサスエレクトロニクス株式会社 | 半導体装置および画像認識システム |
WO2019053835A1 (ja) | 2017-09-14 | 2019-03-21 | 三菱電機株式会社 | 演算回路、演算方法、およびプログラム |
CN107590534B (zh) * | 2017-10-17 | 2021-02-09 | 北京小米移动软件有限公司 | 训练深度卷积神经网络模型的方法、装置及存储介质 |
DE112018004972T5 (de) * | 2017-10-18 | 2020-06-18 | Mitsubishi Electric Corporation | Operationsschaltung und operationsverfahren |
US11580369B2 (en) | 2017-10-23 | 2023-02-14 | Nec Corporation | Inference apparatus, convolution operation execution method, and program |
CN108898554A (zh) | 2017-10-30 | 2018-11-27 | 上海寒武纪信息科技有限公司 | 提高图像分辨率的方法及相关产品 |
CN109754061B (zh) * | 2017-11-07 | 2023-11-24 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN107909148B (zh) * | 2017-12-12 | 2020-10-20 | 南京地平线机器人技术有限公司 | 用于执行卷积神经网络中的卷积运算的装置 |
KR102408858B1 (ko) * | 2017-12-19 | 2022-06-14 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
AU2017279610A1 (en) * | 2017-12-19 | 2019-07-04 | Canon Kabushiki Kaisha | Memory access optimisation using per-layer computational mapping and memory allocation for CNN application |
CN110163333B (zh) * | 2018-01-10 | 2020-06-09 | 成都信息工程大学 | 卷积神经网络的并行优化方法 |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US10601960B2 (en) | 2018-02-14 | 2020-03-24 | Eingot Llc | Zero-knowledge environment based networking engine |
US10621489B2 (en) * | 2018-03-30 | 2020-04-14 | International Business Machines Corporation | Massively parallel neural inference computing elements |
CN110321997B (zh) * | 2018-03-31 | 2021-10-19 | 赛灵思公司 | 高并行度计算平台、***及计算实现方法 |
CN110533174B (zh) * | 2018-05-24 | 2023-05-12 | 华为技术有限公司 | 神经网络***中数据处理的电路和方法 |
IN201811023855A (ja) | 2018-06-26 | 2018-07-13 | Hcl Technologies Ltd | |
US10417342B1 (en) | 2018-07-03 | 2019-09-17 | Gyrfalcon Technology Inc. | Deep learning device for local processing classical chinese poetry and verse |
US10311149B1 (en) | 2018-08-08 | 2019-06-04 | Gyrfalcon Technology Inc. | Natural language translation device |
WO2020051751A1 (zh) * | 2018-09-10 | 2020-03-19 | 中国科学院深圳先进技术研究院 | 卷积神经网络计算的加速方法、装置、设备及存储介质 |
CN109460813B (zh) * | 2018-09-10 | 2022-02-15 | 中国科学院深圳先进技术研究院 | 卷积神经网络计算的加速方法、装置、设备及存储介质 |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
US10713517B2 (en) | 2018-09-30 | 2020-07-14 | Himax Technologies Limited | Region of interest recognition |
JP7165018B2 (ja) * | 2018-10-03 | 2022-11-02 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
CN112930543A (zh) * | 2018-10-10 | 2021-06-08 | 利普麦德股份有限公司 | 神经网络处理装置、神经网络处理方法和神经网络处理程序 |
US10387772B1 (en) | 2018-10-22 | 2019-08-20 | Gyrfalcon Technology Inc. | Ensemble learning based image classification systems |
US11487845B2 (en) * | 2018-11-28 | 2022-11-01 | Electronics And Telecommunications Research Institute | Convolutional operation device with dimensional conversion |
US11474785B2 (en) | 2019-02-08 | 2022-10-18 | Samsung Electronics Co., Ltd. | Memory device and computing device using the same |
KR20200097396A (ko) | 2019-02-08 | 2020-08-19 | 삼성전자주식회사 | 메모리 장치 및 이를 이용한 컴퓨팅 장치 |
JP7199283B2 (ja) * | 2019-03-28 | 2023-01-05 | 三菱電機株式会社 | アクセラレータ装置 |
CN109993130A (zh) * | 2019-04-04 | 2019-07-09 | 哈尔滨拓博科技有限公司 | 一种基于深度图像动态手语语义识别***及方法 |
CN110008913A (zh) * | 2019-04-08 | 2019-07-12 | 南京工业大学 | 基于姿态估计与视点机制融合的行人再识别方法 |
JP7402623B2 (ja) * | 2019-06-17 | 2023-12-21 | キヤノン株式会社 | フィルタ処理装置及びその制御方法 |
CN110765411A (zh) * | 2019-09-05 | 2020-02-07 | 天津芯海创科技有限公司 | 一种卷积神经网络中卷积运算数据复用装置 |
WO2021061329A1 (en) * | 2019-09-24 | 2021-04-01 | Alibaba Group Holding Limited | Apparatus and system for execution of neural network |
US11755683B2 (en) | 2019-12-23 | 2023-09-12 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors (FAST) in machine learning |
US11403727B2 (en) | 2020-01-28 | 2022-08-02 | Nxp Usa, Inc. | System and method for convolving an image |
US11462003B2 (en) | 2020-03-25 | 2022-10-04 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors in convolutional neural networks |
US11797830B2 (en) | 2020-03-25 | 2023-10-24 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors in convolutional neural networks |
KR102548283B1 (ko) * | 2021-12-22 | 2023-06-27 | (주)뉴로컴즈 | 콘볼루션 신경망 컴퓨팅 장치 |
US20230401433A1 (en) * | 2022-06-09 | 2023-12-14 | Recogni Inc. | Low power hardware architecture for handling accumulation overflows in a convolution operation |
US11762946B1 (en) * | 2022-09-23 | 2023-09-19 | Recogni Inc. | Systems for using shifter circuit and 3×3 convolver units to emulate functionality of larger sized convolver units |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4489393A (en) * | 1981-12-02 | 1984-12-18 | Trw Inc. | Monolithic discrete-time digital convolution circuit |
JPS62137668A (ja) * | 1985-12-11 | 1987-06-20 | Fanuc Ltd | コンボリユ−シヨンを用いる画像信号処理装置 |
US4991107A (en) * | 1988-12-15 | 1991-02-05 | Schlumberger Technologies Limited | Vibration control system |
US4989158A (en) | 1988-12-15 | 1991-01-29 | Schlumberger Technologies Limited | Vibration control system |
JPH02236659A (ja) | 1989-03-09 | 1990-09-19 | Fujitsu Ltd | 半導体情報処理装置 |
JP3070748B2 (ja) * | 1989-11-15 | 2000-07-31 | 株式会社日立製作所 | レチクル上の欠陥検出方法及びその装置 |
JPH05150781A (ja) * | 1991-10-15 | 1993-06-18 | Yamaha Corp | エフエクタ |
JPH06175691A (ja) * | 1992-12-07 | 1994-06-24 | Gijutsu Kenkyu Kumiai Iryo Fukushi Kiki Kenkyusho | 音声強調装置と音声強調方法 |
JP2845114B2 (ja) | 1993-12-29 | 1999-01-13 | ヤマハ株式会社 | 残響付与装置 |
US6038337A (en) | 1996-03-29 | 2000-03-14 | Nec Research Institute, Inc. | Method and apparatus for object recognition |
JPH10162120A (ja) * | 1996-12-02 | 1998-06-19 | Mitsubishi Electric Corp | 動画像処理方法ならびに動画像処理装置 |
JP4185751B2 (ja) | 2002-10-03 | 2008-11-26 | キヤノン株式会社 | 画像処理装置、画像処理方法、コンピュータプログラム |
-
2008
- 2008-12-04 JP JP2008309970A patent/JP5376920B2/ja active Active
-
2009
- 2009-12-03 WO PCT/JP2009/070626 patent/WO2010064728A1/en active Application Filing
- 2009-12-03 US US13/132,316 patent/US8832004B2/en not_active Expired - Fee Related
-
2014
- 2014-07-30 US US14/447,468 patent/US9135553B2/en active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11120298B2 (en) | 2015-09-30 | 2021-09-14 | Kabushiki Kaisha Toshiba | Tensor image mapping device, method, and computer program product |
US10210419B2 (en) | 2015-10-21 | 2019-02-19 | Canon Kabushiki Kaisha | Convolution operation apparatus |
US10755126B2 (en) | 2016-11-07 | 2020-08-25 | Samsung Electronics Co., Ltd. | Convolutional neural network processing method and apparatus |
US11508146B2 (en) | 2016-11-07 | 2022-11-22 | Samsung Electronics Co., Ltd. | Convolutional neural network processing method and apparatus |
CN108205700A (zh) * | 2016-12-20 | 2018-06-26 | 上海寒武纪信息科技有限公司 | 神经网络运算装置和方法 |
CN108205700B (zh) * | 2016-12-20 | 2021-07-30 | 上海寒武纪信息科技有限公司 | 神经网络运算装置和方法 |
EP3474133A1 (en) | 2017-10-17 | 2019-04-24 | Canon Kabushiki Kaisha | Filter processing apparatus and control method thereof |
US10861123B2 (en) | 2017-10-17 | 2020-12-08 | Canon Kabushiki Kaisha | Filter processing apparatus and control method thereof |
EP3757757A1 (en) | 2017-10-17 | 2020-12-30 | Canon Kabushiki Kaisha | Filter processing apparatus and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20140337262A1 (en) | 2014-11-13 |
JP2010134697A (ja) | 2010-06-17 |
US9135553B2 (en) | 2015-09-15 |
US8832004B2 (en) | 2014-09-09 |
US20110239032A1 (en) | 2011-09-29 |
WO2010064728A1 (en) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5376920B2 (ja) | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 | |
JP6700712B2 (ja) | 畳み込み演算装置 | |
US11068776B2 (en) | Convolutional neural network based data processing apparatus, method for controlling the same, and storage medium storing program | |
US11467969B2 (en) | Accelerator comprising input and output controllers for feeding back intermediate data between processing elements via cache module | |
JP7329533B2 (ja) | 演算を加速するための方法および加速器装置 | |
CN109117948B (zh) | 画风转换方法及相关产品 | |
US11699067B2 (en) | Arithmetic processing apparatus and control method therefor | |
JP6945987B2 (ja) | 演算回路、その制御方法及びプログラム | |
WO2018074012A1 (ja) | 演算処理回路および認識システム | |
JP6800656B2 (ja) | 演算回路、その制御方法及びプログラム | |
CN108717571B (zh) | 一种用于人工智能的加速方法和装置 | |
JP7261226B2 (ja) | 演算処理装置 | |
JP6684951B2 (ja) | 人工知能推論演算装置 | |
JP6532334B2 (ja) | 並列演算装置、画像処理装置及び並列演算方法 | |
US4845767A (en) | Image signal processor | |
CN108764182B (zh) | 一种优化的用于人工智能的加速方法和装置 | |
CN117217274A (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
JP2023058636A (ja) | 情報処理装置及びメモリ制御方法 | |
CN111783979B (zh) | 一种基于ssim算法的图像相似度检测硬件加速器vlsi结构 | |
JP6747305B2 (ja) | データ処理装置及びニューラルネットワークシステム | |
JP7321213B2 (ja) | 情報処理装置、情報処理方法 | |
CN112184565B (zh) | 一种多窗口串行的图像锐化方法 | |
JP2806436B2 (ja) | 演算回路 | |
JP2022152208A (ja) | 畳み込み演算を行なう演算処理装置および演算処理方法 | |
Hassoun et al. | VLSI gray-scale morphology processor for real-time NDE image-processing applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130924 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5376920 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |