JP7675480B2 - Calculation device, recognition device and control device - Google Patents
Calculation device, recognition device and control device Download PDFInfo
- Publication number
- JP7675480B2 JP7675480B2 JP2021085284A JP2021085284A JP7675480B2 JP 7675480 B2 JP7675480 B2 JP 7675480B2 JP 2021085284 A JP2021085284 A JP 2021085284A JP 2021085284 A JP2021085284 A JP 2021085284A JP 7675480 B2 JP7675480 B2 JP 7675480B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- calculation
- information
- filter
- deletion
- 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 OR CALCULATING; 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Description
本発明は、入力データに基づく演算を実行する演算装置およびその演算方法に関する。また、本発明は、当該演算装置を用いて、入力データを認識する認識装置や入力データに応じた制御を行う制御装置にも関する。これらの中でも特に、カメラやLIDAR(Light Detection and Ranging)などセンサを用いて外界情報を収集し、その情報から物体の種類や存在する座標を検出する技術に関する。 The present invention relates to a calculation device that performs calculations based on input data and a calculation method thereof. The present invention also relates to a recognition device that uses the calculation device to recognize input data and a control device that performs control according to the input data. In particular, the present invention relates to a technology for collecting external information using sensors such as cameras and LIDAR (Light Detection and Ranging) and detecting the type of object and its coordinates from that information.
近年は、交通事故が社会問題となっており、車両による移動時の安全性に対する要求が高まっている。その要求に対応するため、様々な自動運転や運転支援向けの技術が提案されている。それらの技術の中で特にDNN(Deep Neural Network)のひとつであるCNN(Convolutional Neural Network)を用いた物体認識手法や行動予測手法は高い認識性能を有することが知られており、自動運転への適用が進展している。 In recent years, traffic accidents have become a social issue, and there is an increasing demand for safety when traveling by vehicle. To meet these demands, various technologies for autonomous driving and driving assistance have been proposed. Among these technologies, object recognition and behavior prediction methods using CNN (Convolutional Neural Network), a type of DNN (Deep Neural Network), are known to have high recognition performance, and their application to autonomous driving is progressing.
CNNは、外界情報である画像データを入力とし、複数の畳み込み層から構成され、縦続的に接続されているニューラルネットワークである。ここで畳み込み層とは積和演算と活性化関数演算により構成され、入力データ内の画素と対応する重みパラメータの乗算を行い、その結果を一定回数累積加算して出力データを作成し、その後活性化関数演算を行い、その結果を出力する一連の演算のことである。 CNN is a neural network that takes image data, which is information about the outside world, as input and is composed of multiple convolutional layers connected in cascade. Here, a convolutional layer is a series of operations that consists of product-sum operations and activation function operations, multiplying the pixels in the input data by the corresponding weight parameters, accumulating the results a certain number of times to create output data, and then performing activation function operations to output the results.
画像データに対して畳み込み層の演算を行うことで、入力された画像データ内の特定の物体の種類や存在する座標を出力する。まず具体的な構成を説明する。本特許で述べる認識装置では、第1層は入力された画像データと第1層の畳み込み演算の重みパラメータを積和演算することで、畳み込み演算結果を出力する。複数のニューラルネットワークの第j番目の畳み込み層を第j層と呼び、その第j層(1≦j≦Lを満たす整数)は第j-1層の出力データと、第j層の畳み込み演算の重みパラメータから、第j層の畳み込み層の演算結果を出力する。最終層をL層とすると第L層の前段の第L-1層の出力データと第L層目の畳み込み演算の重みパラメータとを入力とし、物体の種類と存在する座標を出力する。それぞれの畳み込み層は、入力データと重みパラメータを用いて畳み込み演算を行った後、活性化関数演算を、その行い結果を出力する。 By performing a convolutional layer operation on image data, the type of a specific object in the input image data and the coordinates of the object are output. First, the specific configuration is explained. In the recognition device described in this patent, the first layer performs a product-sum operation on the input image data and the weight parameters of the convolution operation of the first layer to output the convolution operation result. The jth convolutional layer of multiple neural networks is called the jth layer, and the jth layer (an integer that satisfies 1≦j≦L) outputs the operation result of the jth convolutional layer from the output data of the j-1th layer and the weight parameters of the convolution operation of the jth layer. If the final layer is the Lth layer, it takes the output data of the L-1th layer, which is the layer before the Lth layer, and the weight parameters of the convolution operation of the Lth layer as input, and outputs the type of object and the coordinates of the object. Each convolutional layer performs a convolution operation using the input data and weight parameters, then performs an activation function operation and outputs the result.
ここで、CNNのような積和演算を主体とする演算量が多い処理を、車載用ECU(Electronic Control Unit)に実装する場合には、外界情報取得装置の処理速度と同等のスループットと、車両制御周期以下のレイテンシを満たす必要がある。従来、CNNを実装する際には、エッジデバイス向けに設計されたGPU(Graphic Processing Unit)やFPGA(Field Programmable Logic Array)などを用いるのが一般的である。しかし車載用途のデバイスは、使用条件、実装コスト、搭載可能なデバイスサイズの制限から、限られた演算性能しか持たず、要求される演算性能を満たせない課題が発生する。そこで、要求演算性能を満たすためにデバイス自体の改良やCNN演算に特化した演算器を利用することで目標処理速度を満たすことが一般的である。 When implementing a computationally intensive process such as CNN, which mainly involves multiply-and-accumulate operations, in an in-vehicle ECU (Electronic Control Unit), it is necessary to achieve a throughput equivalent to the processing speed of the external information acquisition device and a latency equal to or less than the vehicle control cycle. Conventionally, when implementing CNN, it is common to use a GPU (Graphic Processing Unit) or FPGA (Field Programmable Logic Array) designed for edge devices. However, in-vehicle devices have only limited computing performance due to restrictions on the conditions of use, implementation costs, and device size that can be installed, and issues arise in which the required computing performance cannot be met. Therefore, in order to meet the required computing performance, it is common to achieve the target processing speed by improving the device itself or by using a computing unit specialized for CNN operations.
次に、CNNを演算装置としてハードウェアに実装した場合の従来技術について述べる。外部からの入力はカメラやLIDARなどの外界情報取得装置を用いて取得する。取得した情報はメモリに格納される。演算装置は、メモリ、モデル保存部、パラメータ格納部、複数の畳み込み演算部で構成され、物体の種類や存在する座標などの認識結果を出力するものである。 Next, we will describe the conventional technology when CNN is implemented in hardware as a computing device. External input is acquired using an external information acquisition device such as a camera or LIDAR. The acquired information is stored in memory. The computing device is composed of a memory, a model storage unit, a parameter storage unit, and multiple convolution calculation units, and outputs recognition results such as the type of object and its coordinates.
ここで、メモリに格納された外界情報は、畳み込み演算部に送信される。またモデル保存部は事前に学習を行ったデータを保管し、その学習済みデータをパラメータ格納部へ保存する。パラメータ格納部は受け取った学習済みデータから、層ごとの重みパラメータ、層ごとのチャネル数、層ごとのフィルタ数を選択し、1層目からL層目までの畳み込み演算部に送信する。畳み込み演算部は、1層目はメモリからの入力データと、1層目の重みパラメータ、1層目のチャネル数、1層目のフィルタ数を入力として2層目に演算結果を出力する。また、畳み込み演算部は、続接続される。そして、そのj番目の層である第j層の畳み込み演算部では、第j-1層の畳み込み演算部の出力と、第j層の重みパラメータと、第j層のチャネル数と、第j層のフィルタ数を入力とし、第j+1層に演算結果を出力する。 The external world information stored in the memory is sent to the convolution calculation unit. The model storage unit also stores data that has been previously trained, and saves the trained data in the parameter storage unit. The parameter storage unit selects weight parameters for each layer, the number of channels for each layer, and the number of filters for each layer from the trained data it receives, and sends them to the convolution calculation units from the 1st layer to the Lth layer. The first layer of the convolution calculation unit takes as input data from the memory, the weight parameters for the 1st layer, the number of channels for the 1st layer, and the number of filters for the 1st layer, and outputs the calculation result to the 2nd layer. The convolution calculation units are also connected in series. The jth layer, which is the jth layer, takes as input the output of the convolution calculation unit for the j-1th layer, the weight parameters for the jth layer, the number of channels for the jth layer, and the number of filters for the jth layer, and outputs the calculation result to the j+1th layer.
また、畳み込み演算部は、メモリから送信された入力データと、パラメータ格納部から送信された重みパラメータとチャネル数とフィルタ数をもとに畳み込み演算を行った後、活性化関数演算を行い、演算結果を次層に出力する働きを行う。 The convolution calculation unit performs a convolution calculation based on the input data sent from the memory and the weight parameters, number of channels, and number of filters sent from the parameter storage unit, then performs an activation function calculation and outputs the calculation result to the next layer.
しかしながら、演算器の演算性能が限られる車載用演算デバイスでは、演算デバイスの演算単位と、畳み込み演算に使用するフィルタやチャネルの数の不整合により、演算デバイスを十分活用できず、処理速度が低下するという課題があった。 However, in the case of in-vehicle computing devices, where the computing performance of the computing unit is limited, there is an issue that the computing device cannot be fully utilized due to a mismatch between the computing unit of the computing device and the number of filters and channels used for the convolution calculation, resulting in a decrease in processing speed.
そこで、CNNに関する演算で、限られた演算性能の中でCNN演算を効率的に実行できる手法及び装置として、特許文献1の方式が提案されている。特許文献1の構成を示す。まず、特許文献1に記載の演算装置は、分割器、演算器、生成器から構成される。次に、特許文献1の接続関係を示す。
In response to this, the method of
演算器には、分割器からの出力が入力される。演算器は生成器へ出力を行い、生成器は演算器からの入力を受け付ける。 The output from the divider is input to the calculator. The calculator outputs to the generator, and the generator accepts input from the calculator.
次に、特許文献1提案の演算装置の動作を示す。まず、分割器で、畳み込みニューラルネットワークの選択された層の重みパラメータを深さ方向の次元及びカーネル数の次元の少なくとも一方において分割する。そして、複数の演算パラメータを含む演算パラメータ配列を得る。次に、演算パラメータ配列の中の各演算パラメータを使用し、選択された層の演算を演算部で実行することで、部分演算結果配列を得る。最後に、生成器で部分演算結果配列をもとに層の出力を生成する。これにより、分割器で演算器の演算単位に合わせて分割してから、演算器へ重みパラメータを送信する。このことで、演算器の動作効率または利用率を改善し、パラメータのサイズによってハードウェアが限定されることを回避している。
Next, the operation of the arithmetic device proposed in
特許文献1では、事前に演算器へ入力される重みパラメータをCNNの演算の深さ方向もしくはカーネル数の次元の少なくとも一方向に関して分割し、分割したデータを分割器から演算器に転送して畳み込み演算を行う。そして、この演算結果により限られた大きさの演算器に対し、演算器で演算可能なサイズに分割した重みパラメータを用いて畳み込み演算を行う。
In
しかし、特許文献1では、事前に演算器外の分割器で重みパラメータの部分配列を得るための分割演算、及び、分割した重みパラメータの部分配列演算を再度結合するための生成器での演算が必要である。さらに、畳み込み演算では、分割前後での演算の整合性を保つ必要がある。このため、重みパラメータの分割方法や、分割後の重みパラメータのサイズに制約があり、演算器を十全に活用することができない課題がある。
However, in
上記の課題を解決するために、本発明では、畳み込み演算における感度および演算方向(実行順)に基づいてフィルタ情報の削除を行う。 To solve the above problem, in the present invention, filter information is deleted based on the sensitivity and calculation direction (execution order) of the convolution calculation.
より具体的には、入力データをもとにCNN演算を行う演算装置において、前記CNN演算に用いるモデルを保存するモデル保存部と、前記モデルを用いて、複数の畳み込み層毎に畳み込み演算を実行することで、前記CNN演算を行うCNN演算部と、前記モデル保存部から、前記畳み込み演算に用いる畳み込みフィルタの重みパラメータを取得する重みパラメータ取得部と、前記モデル保存部に保存された前記モデルから、前記複数の畳み込み層ごとのチャネル情報を取得するチャネル情報取得部と、前記モデル保存部から、前記複数の畳み込み層ごとのフィルタ情報を取得するフィルタ情報取得部と、前記CNN演算に必要となる重み情報と演算の組み合わせを割り当て、前記CNN演算部へ送信する演算割り当て部と、前記CNN演算部の最大演算可能数、前記CNN演算の実行順、前記チャネル情報取得部から取得した前記CNN演算部の畳み込み層ごとのチャネル情報および前記重みパラメータ取得部から取得した重み情報および前記フィルタ情報取得部から取得した前記複数の畳み込み層ごとのフィルタ情報に基づき、前記畳み込み演算に使用するフィルタ情報の一部を削除する削除インデックス決定部を有する演算装置である。 More specifically, in a computing device that performs CNN computation based on input data, the computing device includes a model storage unit that stores a model used in the CNN computation, a CNN computation unit that performs the CNN computation by executing a convolution computation for each of a plurality of convolution layers using the model, a weight parameter acquisition unit that acquires weight parameters of a convolution filter used in the convolution computation from the model storage unit, a channel information acquisition unit that acquires channel information for each of the plurality of convolution layers from the model stored in the model storage unit, a filter information acquisition unit that acquires filter information for each of the plurality of convolution layers from the model storage unit, a computation allocation unit that assigns a combination of weight information and computation required for the CNN computation and transmits it to the CNN computation unit, and a deletion index determination unit that deletes a part of the filter information used in the convolution computation based on the maximum number of computations possible for the CNN computation unit, the execution order of the CNN computation, the channel information for each convolution layer of the CNN computation unit acquired from the channel information acquisition unit, the weight information acquired from the weight parameter acquisition unit, and the filter information for each of the plurality of convolution layers acquired from the filter information acquisition unit.
本発明の代表的な実施によれば、演算器の活用率を向上できる。なお、前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 A typical implementation of the present invention can improve the utilization rate of the computing unit. Problems, configurations, and effects other than those described above will become clear from the explanation of the following embodiment.
図1は、実施例1における認識装置1000の機能ブロック図である。認識装置1000は、演算装置の一種であり、カメラやLIDARからの外界情報を用いて、外界の状況を認識する装置である。
Figure 1 is a functional block diagram of a
図1の認識装置1000は、外界情報取得装置101と接続する。そして、CNN演算部102と、モデル保存部104と、チャネル情報取得部105と、重みパラメータ取得部106と、フィルタ情報取得部107と削除インデックス決定部108と、演算割り当て部109から構成される。この結果、認識装置1000は、認識結果103を出力する。
The
ここで、各構成要素について説明する。まず、外界情報取得装置101は、外界情報を取得し、これをCNN演算部102に取得情報を送信する。この外界情報取得装置101は、カメラやLIDARといったセンサで実現できる。また、チャネル情報取得部105は、モデル保存部104からの出力であるモデル情報110を受け取る。また、重みパラメータ取得部106は、モデル保存部104からの出力であるモデル情報110を受け取る。
Here, each component will be described. First, the external world
また、フィルタ情報取得部107は、モデル保存部104からの出力であるモデル情報110を受け取る。また、削除インデックス決定部108は、チャネル情報取得部105から、各層のチャネル数を示すチャネル情報111と受け取る。さらに、削除インデックス決定部108は、重みパラメータ取得部106の出力である各層の重みパラメータを示す重みパラメータ情報112を受け取る。またさらに、削除インデックス決定部108は、フィルタ情報取得部107の出力である各層のフィルタ数を示すフィルタ情報113を受け取る。
The filter
また、演算割り当て部109は、モデル保存部104の出力であるモデル情報110を受け取る。さらに、演算割り当て部109は、削除インデックス決定部の出力である各層の削除フィルタインデックス情報114を受け取る。またさらに、演算割り当て部109は、各層の削除チャネルインデックス情報116を受け取る。
The
また、CNN演算部102は、外界情報取得装置101の外界情報である入力データ117と、演算割り当て部109の出力であるCNN演算制御信号115と、チャネル情報111およびフィルタ情報113を受け取る。そして、CNN演算部102は、これらを用いて認識結果103を出力する。
The
次に、認識装置1000の動作および信号の流れを説明する。まず、外界情報取得装置101からCNN演算部102へ、外界情報を送信する。次に、CNN演算部102は、モデル保存部104のモデル情報110および演算割り当て部109のCNN演算制御信号115、チャネル情報111およびフィルタ情報113をもとに演算を行う。なお、図1では、入力されるチャネル情報111およびフィルタ情報113を示す矢印は省略する。そして、CNN演算部102は、これらを用いて、認識結果103を算出し出力する。
Next, the operation of the
次に、チャネル情報取得部105は、モデル保存部104のモデル情報から各層のチャネル数を抽出し、チャネル情報111を削除インデックス決定部108に出力する。また、重みパラメータ取得部106は、モデル保存部104から受け取ったモデル情報110から各層の重みパラメータを抽出し、重みパラメータ情報112を削除インデックス決定部108に出力する。
Next, the channel
また、フィルタ情報取得部107は、モデル保存部104のモデル情報110から各層のフィルタ数を取得し、これを含む各層のフィルタ情報113を削除インデックス決定部108に出力する。
The filter
また、削除インデックス決定部108は、チャネル情報111、重みパラメータ情報112およびフィルタ情報113から演算を削除するフィルタ及びチャネルのインデックスを算出する。そして、削除インデックス決定部108は、これらインデックスを含む削除フィルタインデックス情報114及び削除チャネルインデックス情報116を、演算割り当て部109に出力する。
The deletion
また、演算割り当て部109では、削除フィルタインデックス情報114と各層ごとの削除チャネルインデックス情報116とモデル情報110をもとに、演算順の決定とモデルから削除するフィルタやチャネルを特定する。ここで、演算割り当て部109は、削除の対象として、フィルタおよびチャネルの少なくとも一方を特定すればよい。特に、削除の対象を、フィルタとすることが望ましい。そして、演算割り当て部109は、CNN演算部102に、特定されたフィルタやチャネルを含むCNN演算制御信号115を送信する。
The
ここで、削除チャネルインデックス情報116ついては、図2を用いて説明する。また、削除フィルタインデックス情報114については図3を用いて説明する。さらに、削除インデックス決定部108の動作の詳細については、図5を用いて説明する。なお、本実施例の認識装置は、いわゆるコンピュータでも実現できる。この場合、各部の機能をプログラムに従ってCPUのような処理装置で実行することになる。また、このプログラムは記憶媒体に格納される。また、各部は、FPGA(Field Programmable Gate Array)のような専用ハードウェアや専用回路でも実現できる。
The deletion
図2は、削除チャネルインデックス情報116を説明するための説明図である。まず、本実施例のCNNの層はL層存在して、それぞれ1層目からL層目まで従属接続されている。また、各層ごとにチャネル251が存在しており、ある1層のチャネル251は次の層のすべてのチャネル251に対して接続されている。ここで、各層ごとにチャネルに対してそれぞれ異なるインデックスをあたえ、削除チャネルインデックス情報116では、各層ごとに削除するべきチャネルインデックスを指定する。この指定されたインデックス番号を、以下、削除チャネルインデックスと呼ぶ。
Figure 2 is an explanatory diagram for explaining the deletion
次に、図3は、削除フィルタインデックス情報114を説明するための説明図である。まず、CNNでは1層目からL層目までそれぞれフィルタ351が存在している。図3において、あるj層(1≦j≦L)については、図3では3×3のフィルタを例示している。なお、フィルタの数については、あくまでも一例であり、これに限定されるものではない。
Next, FIG. 3 is an explanatory diagram for explaining the deletion
ここで、本実施例では、各層ごとに一つの層のすべてのフィルタに同じインデックス番号352を与える。この削除フィルタインデックス情報114では、各層ごとに削除するべきフィルタインデックス352を指定する。この指定されたインデックス番号を以下で削除フィルタインデックスと呼ぶ。
In this embodiment, the
図4は、CNN演算部102の内部構成を示す図である。図4において、CNN演算部102は、メモリ201、パラメータ格納部202、畳み込み演算部203を有する。また、CNN演算部102は、入力データ117、CNN演算制御信号115、モデル情報110、1層のCNN演算制御信号204、全層の重みパラメータ205、全層のフィルタ数206、全層のチャネル数207、1層、つまり、各層の重みパラメータである個別重みパラメータ208、各層の個別フィルタ数209および各層の個別チャネル数210を扱う。そして、CNN演算部102は、これらお用いて、認識結果103を出力する。
Figure 4 is a diagram showing the internal configuration of the
次に、図4に示すCNN演算部102の接続関係を説明する。メモリ201には、入力データ117が入力される。この入力データ117は、上述の外界情報である。また、パラメータ格納部202は、モデル情報110が保持される。
Next, the connections of the
また、1層目の畳み込み演算部203-1には、以下の信号ないし情報が入力される。
CNN演算制御信号115から分岐した個別、つまり、1層のCNN演算制御信号204-1
メモリ201に保存される保存データ211(入力データ117)
パラメータ格納部202から出力される重みパラメータ205から分岐した個別重みパラメータ208-1
パラメータ格納部202から出力されるフィルタ数206から分岐した個別フィルタ数209-1
パラメータ格納部202から出力されるチャネル数から分岐した個別チャネル数210-1
以降、2層目以降の畳み込み演算部、つまり、j層目の畳み込み演算部203-jについては、以下の信号ないし情報が入力される。
CNN演算制御信号115から分岐した個別の、つまり、j層のCNN演算制御信号204-j
j-1層の畳み込み演算部の出力データ212-j
パラメータ格納部202から出力される重みパラメータ205から分岐した個別重みパラメータ208-j
パラメータ格納部202から出力されるフィルタ数206から分岐した個別フィルタ数209-j
パラメータ格納部202から出力されるチャネル数から分岐した個別チャネル数210-j
また、最終層の第L層目の畳み込み演算部203-Lには、以下の信号ないし情報が入力される。
CNN演算制御信号115から分岐した個別のCNN演算制御信号204-L
L-1層目の畳み込み演算部203―jの出力データ212-L
パラメータ格納部202から出力される重みパラメータ205から分岐した個別重みパラメータ208-L
パラメータ格納部202から出力されるフィルタ数206から分岐した個別フィルタ数209-L
パラメータ格納部202から出力されるチャネル数から分岐した個別チャネル数210-L
そして、第L層目の畳み込み演算部203-Lは、これらを用いて認識した認識結果103を出力する。
The first-layer convolution operation unit 203-1 receives the following signals or information:
An individual CNN operation control signal 204-1, i.e., a first-layer CNN operation control signal, branched off from the CNN
Saved data 211 (input data 117) saved in
Individual weighting parameters 208-1 branched from the
The number of individual filters 209-1 branched from the number of
The number of individual channels 210-1 branched from the number of channels output from the
Thereafter, the following signals or information are input to the second-layer and subsequent convolution operation units, that is, the j-th layer convolution operation unit 203-j.
The CNN operation control signal 204-j of the jth layer is branched from the CNN
Output data 212-j of the convolution operation unit of the j-1th layer
Individual weight parameters 208-j branched from the
The number of individual filters 209-j branched from the number of
The number of individual channels 210-j branched from the number of channels output from the
The following signals or information are input to the convolution operation unit 203-L in the final layer, the Lth layer:
An individual CNN operation control signal 204-L branched off from the CNN
Output data 212-L of the L-1th layer convolution operation unit 203-j
Individual weight parameters 208-L branched from the
The number of individual filters 209-L branched from the number of
The number of individual channels 210-L branched from the number of channels output from the
Then, the Lth layer convolution operation unit 203-L outputs the
次に、CNN演算部102の動作の詳細を説明する。まず、CNN演算部102では、入力データ117およびモデル情報110をもとに畳み込み演算を行い、その認識結果103を出力する。この際、各畳み込み演算部203は、CNN演算制御信号115から分岐した各層それぞれに対するCNN演算制御信号204を受信し、一部のフィルタ及びチャネルの演算をスキップする。この演算のスキップが、本願の削除の一例である。ここで、本願の削除には、演算の省略、無視といった受動的な処理も含まれる。ここで、削除、つまり、スキップされるフィルタおよびチャネルは外部からのモデル更新に伴い、モデル情報110が変更されるまで同じものである。なお、上述のように、スキップされる対象は、フィルタおよびチャネルの一方であってもよい。この結果、本実施例では、言い換えると、本願では、畳み込みに使用するフィルタ情報とチャネル情報の少なくとも一方を削除することになる。
Next, the operation of the
また、メモリ201は、入力データ117を格納する。そして、畳み込み演算部203へ入力データ117である保存データ211が出力される。次に、畳み込み演算部203は、入力された保存データ211(出力データ212)と個別重みパラメータ208をもとに畳み込み演算を行う。この畳み込み演算の結果、演算順やデータ読み込みを制御するための信号であるCNN演算制御信号204と、個別フィルタ数209と個別チャネル数210により演算回数や出力データ数、演算器へのデータの割り当てが決定される。畳み込み演算部203は、このように決定された演算結果である出力データ212を出力する。これを第1層から第L層まで繰り返す。
The
また、パラメータ格納部202での受け取ったモデル情報110から各層の重みパラメータ205、各層のフィルタ数206、各層のチャネル数207を分割し畳み込み演算部203へ出力される。
The
以上で、CNN演算部102の説明を終わり、次に、削除インデックス決定部108について、説明する。図5は、削除インデックス決定部108の内部構成を示す図である。
This concludes the explanation of the
図5において、削除インデックス決定部108は、チャネル情報111と、重みパラメータ情報112と、フィルタ情報113を入力として受け取る。そして、削除インデックス決定部108は、これらの入力に基づいて、削除チャネルインデックス情報116および削除フィルタインデックス情報114を出力する。このために、削除インデックス決定部108は、目標処理速度格納部301と、最大演算数保存部302と、演算速度解析部303と、感度情報解析部304と、削除チャネル決定部305と、削除フィルタ決定部306と、削除チャネルインデックス出力部307と、削除フィルタインデックス出力部を有する。
In FIG. 5, the deletion
次に、図5を用いて、削除インデックス決定部108の接続関係を示す。演算速度解析部303は、目標処理速度格納部301の出力である目標処理速度310と最大演算数保存部302の出力である演算器当たりの最大演算可能な演算数315と、チャネル情報111と、フィルタ情報113を入力として受け取る。
Next, the connection relationship of the deletion
また、感度情報解析部304は、チャネル情報111と、重みパラメータ情報112と、フィルタ情報113を入力として受け取る。また、削除チャネル決定部305は、演算速度解析部303の結果である削除チャネル数311と感度情報解析部304の結果である感度情報313を入力として受け取る。
The sensitivity
また、削除フィルタ決定部306は、演算速度解析部303の出力である削除フィルタ数312と感度情報解析部304の出力である感度情報316を入力として受け取る。また、削除チャネルインデックス出力部307は、削除チャネル決定部305の出力である優先度情報317と、最大演算数保存部302の出力である演算数315を入力として受け取り、各層ごとの削除チャネルインデックス情報116を出力する。
The deletion
またさらに、削除フィルタインデックス出力部308は、削除フィルタ決定部306の出力318と、最大演算数保存部302の出力である演算数315を入力として受け取り、各層の削除フィルタインデックス情報114を出力する。
Furthermore, the deletion filter
次に、図5を用いて、削除インデックス決定部108の動作について説明する。まず、演算速度解析部303は、入力されたチャネル情報111と、フィルタ情報113と、演算器1つ当たりの最大演算可能な演算数315をもとに、各層ごとに畳み込み演算にかかる時間と目標処理速度と畳み込み演算にかかる時間の差分を試算する。
Next, the operation of the deletion
また、感度情報解析部304は、チャネル情報111と、重みパラメータ情報112と、フィルタ情報113から、各層のチャネル全ての認識精度に対する感度情報と、各層のフィルタすべての認識精度に対する感度情報を見積もる。
The sensitivity
また、削除チャネル決定部305は、演算速度解析部303から入力された各層の演算速度及び目標処理速度との差分情報と、感度情報解析部304から出力された各層ごとの認識精度への感度情報313と、層内のチャネルの感度情報313を受け付ける。そして、削除チャネル決定部305は、これらに基づいて、認識精度への感度が低いチャネルから順に目標処理速度との差分が0となるように、削除するチャネルの優先度を設定する。なお、削除チャネル決定部305での動作の詳細は、図8を用いて、後述する。
The channel to be removed
また、削除フィルタ決定部306では、演算速度解析部303からの各層の処理速度と目標処理速度との差分情報と、フィルタの感度情報316をもとに各層ごとに削除を行うフィルタの順位付けを行う。
The deletion
また、削除チャネルインデックス出力部307では、削除チャネル決定部305で決められた各層の削除を行うチャネルの優先度情報317と、最大演算数保存部302から出力される演算器の最大演算可能数の情報を受け付ける。そして、削除チャネルインデックス出力部307では、これらに基づいて、残るチャネルの数が、演算器の最大演算可能な演算数の倍数もしくは1以外の約数となるようにインデックス番号を設定し、これを出力する。
The deleted channel
ここで、削除チャネルインデックス出力部307は、チャネルの最大演算可能数をMc、あるj層(1≦j≦L)のチャネル数をC、j層の削除するチャネル数をCdとしたとき、以下の(数1)に従った処理を行う。つまり、削除チャネルインデックス出力部307は、(数1)を満たすCdを設定し、優先度情報が低いものから順番にCd個のチャネルの演算順をj層の削除チャネルインデックス情報116に設定する。
Here, the deletion channel
また、削除フィルタインデックス出力部308は、削除フィルタ決定部306で設定した削除を行うフィルタの優先順位をもとに、残るフィルタの数が、演算器の最大演算可能な演算数の倍数もしくは1以外の約数となるようにインデックス情報を設定する。そして、削除フィルタインデックス出力部308は、これを出力する。なお、削除フィルタ決定部306でのフィルタの優先順位の特定については、図7を用いて後述する。
The deletion filter
ここで、削除フィルタインデックス出力部308は、フィルタの最大演算可能数をMf、あるj層のフィルタ数をF、j層の削除するフィルタ数をFdとしたとき、以下の(数2)に従った処理を行う。つまり、削除フィルタインデックス出力部308は、(数2)を満たすFdを設定し、優先度情報が低いものから順番にFd個のフィルタの演算順に対してj層の削除フィルタインデックス情報114を設定する。
Here, the deletion filter
次に、畳み込み演算部203について、説明する。図6は、本実施例における畳み込み演算部203の内部構成を示す図である。
Next, the
まず、畳み込み演算部203の構成について、説明する。ここでは、第j層を例に挙げて説明する。畳み込み演算部203は、CNN演算制御信号204、個別チャネル数210、個別フィルタ数209、前層の出力データ212-j、個別重みパラメータ208を入力として受け取る。そして、畳み込み演算部203は、これらを用いて、演算結果である出力データ212-jを出力する。このために、演算制御部401、入力データ一時保存部402、演算部403、出力データ一時格納部404を有する。
First, the configuration of the
次に、畳み込み演算部203の内部構成の接続関係を示す。演算制御部401は、CNN演算制御信号204と個別チャネル数210と個別フィルタ数209を入力として受け取る。また、入力データ一時保存部402は、前層の出力データ212-jと個別重みパラメータ208と、演算制御部401から出力される、保存されたデータの出力順及び出力タイミングを制御する制御信号410を入力として受け取る。
The following shows the connections within the
また、演算部403は、演算順及び演算開始、演算停止の演算停止制御信号412と演算に必要となる入力データ411を入力として受け取る。また、出力データ一時格納部404は、演算部403の演算結果413と格納データの出力タイミングを制御する制御信号414を入力として受け取り、演算結果である出力データ212-j+1を出力する。
The
以下で、畳み込み演算部203の動作を説明する。まず、入力データ一時保存部402に、前層の出力データ212-jと個別重みパラメータ208を格納する。そして、演算制御部401は、CNN演算制御信号204、個別チャネル数210、個別フィルタ数209の情報をもとに、演算を実行させる順番に合わせ、データ出力タイミング、出力をスキップするチャネル及びフィルタの情報を出力する。また、演算制御部401は、演算部403に対しては演算回数、演算開始タイミング、終了タイミングを制御する演算停止制御信号412を出力する。
The operation of the
そして、出力データ一時格納部404では、演算後のデータを出力するタイミングを制御する制御信号414を保持し、他の部位で利用することを可能とする。また、演算部403では、入力されたデータから、畳み込み演算と活性化関数処理を行い、出力データ一時格納部404へ演算結果413を出力する。出力データ一時格納部404では、演算制御部401からの制御信号414に合わせて演算結果である出力データ212-j+1を順次出力する。CNN演算制御信号204、個別チャネル数210、個別フィルタ数209については、モデル情報110が更新されない限り、演算制御部401でデータを保持し続ける。
Then, the output data
次に、削除フィルタ決定部306の動作の詳細について、説明する。図7は、削除フィルタ決定部306での削除するフィルタの優先度を設定する動作についてのフローチャートである。
Next, the operation of the deletion
まず、削除フィルタ決定部306は、演算速度解析部303の出力である削除チャネル数311と感度情報解析部304の出力である感度情報313が入力されると、動作を開始する(ステップS1001)。
First, the deletion
次に、削除フィルタ決定部306は、演算速度解析部303の出力をもとに目標処理速度以下の処理速度の層をn層分(nはn>=0を満たす整数)抽出する。そして、削除フィルタ決定部306は、処理速度が遅い順に並べる(ステップS1002)。
Next, the deletion
次に、削除フィルタ決定部306は、処理速度以下の層を並べた場合に、現在対象にしている層を表すパラメータとしてiを設定し、i=nと設定する(ステップS1003)。
Next, when layers with a processing speed equal to or lower are arranged, the deletion
次に、削除フィルタ決定部306は、i=0かどうか判定する(ステップS1004)。この結果、i=0の場合はステップS1006に進む。iが0ではない場合はステップS1005に進む。
Next, the deletion
また、削除フィルタ決定部306は、認識精度への感度情報をもとにフィルタの大きさごとに、感度が低いものから順に削除優先度を設定する(ステップS1005)。例えば、3×3=9個の重みパラメータで構成されるフィルタの場合には、9個の重みパラメータの内、削除されたときに認識精度の劣化量が小さいものから順番に優先度が設定される。なお、フィルタの数については、この例に限定されない。また、削除の基準は、劣化量に限定されず、所定規則を満たすものであればよい。また、認識精度の劣化以外にも、演算精度の劣化量を用いてもよい。
The deletion
また、削除フィルタ決定部306は、iを一つ減らしてステップS1004へ戻る(ステップS1007)。
The deletion
そして、最終的に削除フィルタ決定部306は、n層分個別に算出したフィルタの削除優先度情報を出力する(ステップS1006)。
Finally, the deletion
以上で、削除フィルタ決定部306での削除するフィルタの優先度を設定する動作についての説明を終わる。
This concludes the explanation of the operation of setting the priority of filters to be deleted in the deletion
次に、削除チャネル決定部305の動作について説明する。図8は、削除チャネル決定部305の動作を示すフローチャートである。
Next, the operation of the deletion
まず、削除チャネル決定部305は、演算速度解析部303の出力である削除チャネル数311と感度情報解析部304の出力である感度情報313が入力されると、動作を開始する(ステップS2001)。
First, the deletion
次に、削除チャネル決定部305は、演算速度解析部の出力である削除チャネル数311をもとに処理速度が目標以下の層をn層分(nはn>=0を満たす整数)抽出し処理速度が遅い順に並べる(ステップS2002)。
Next, the deletion
次に、削除チャネル決定部305は、処理速度以下の層を並べた場合に現在対象にしている層を表すパラメータとしてiを設定し、i=nと設定する(ステップS2003)。
Then, the deletion
次に、削除チャネル決定部305は、i=0かどうか判定する(ステップS2004)。この結果、i=0の場合は、ステップS2006に進む。iが0でない場合は、ステップS2005に進む。
Then, the deletion
また、削除チャネル決定部305は、i層のチャネルについて感度情報解析部304の出力である感度情報313と演算速度解析部303の出力である削除チャネル数311の情報をもとに、削除が必要なチャネル数を算出する。算出される削除に必要なチャネル数は、i層の処理速度が目標処理速度を上回るまで算出することが望ましい。そして、削除チャネル決定部305は、認識精度への感度が小さい順に削除優先度設定を行う(ステップS2005)。
The channel to be deleted
最後に、削除チャネル決定部305は、n層分個別に算出したチャネルの削除優先度情報を出力する(ステップS2006)。
Finally, the deletion
次に、演算割り当て部109での動作について説明する。図9は、演算割り当て部109での動作についてのフローチャートである。以下処理フローについて説明する。
Next, the operation of the
まず、演算割り当て部109は、削除インデックス決定部108からの削除チャネルインデックス情報116と削除フィルタインデックス情報114が入力されると、動作を開始する(ステップS3001)。次に、演算割り当て部109は、入力された削除チャネルインデックス情報を格納する(ステップS3002)。
First, the
次に、演算割り当て部109は、削除フィルタインデックス情報および削除優先度を格納する(ステップS3002)。次に、演算割り当て部109は、削除を行うフィルタが削除フィルタインデックス情報のストライド方向から見て両端にあるかどうか判定する(ステップS3004)。なお、ストライド方向や両端に関しては、図10を用いて後述する。両端にあると判定された場合には、ステップS3007へ進む。両端でないと判定された場合には、ステップS3005へ進む。
Next, the
また、演算割り当て部109は、ストライド方向の変更が実装上可能かどうか判定する(ステップS3005)。このために、演算割り当て部109は、実装上の制約条件に基づいて判定することが望ましい。この判定の結果、変更可能な場合はステップS3009へ進む。変更不可能な場合はステップS3006へ進む。
The
次に、演算割り当て部109は、削除フィルタインデックスの優先度を両端の次点で優先度が高いものに変更する(ステップS3006)。次に、演算割り当て部109は、
削除チャネルインデックス情報を出力する(ステップS3007)。
Next, the
The deletion channel index information is output (step S3007).
そして、演算割り当て部109は、削除フィルタインデックス情報及びストライドの方向を出力する(ステップS3008)。
Then, the
また、演算割り当て部109は、ステップS3006において不可能と判定された場合に、ストライドの方向を90度変更させる(ステップS3009)。そして、ステップS3007に進む。
If it is determined in step S3006 that this is not possible, the
次に、ストライドおよび削除可能なフィルタについて説明する。図10は、ストライドおよび削除可能なフィルタの例を説明するための図である。畳み込み演算では、図10(a)(b)の中間データ801上を、畳み込みフィルタ803およびフィルタ805がストライド方向802及び804の方向へ移動しながら当該畳み込み演算がされる。ここではフィルタを3×3としているが、フィルタの大きさはこれに限定されない。
Next, the stride and the filters that can be removed will be described. FIG. 10 is a diagram for explaining an example of the stride and the filters that can be removed. In the convolution operation, the convolution operation is performed while the
フィルタの両端とは、図10(a)の畳み込みフィルタ803及び図10(b)のフィルタ805において灰色で示すフィルタのことである。ここで、畳み込みフィルタ803はストライド方向802が左右のため、両端のフィルタは左右となる。また、フィルタ805はストライド方向804が上下のため、両端のフィルタは上下となる。
The two ends of the filter refer to the filters shown in gray in the
次に、図11に、3×3のフィルタについて削除を行った例を示す。ここでは、最大演算可能数が8とした場合における実際に削除した例を示す。最大演算数は、ここでは例として8としているが、これに限定されず2n(n≧1)であればよい。このように、最大演算可能数が8の場合には、削除するフィルタの数は1つとなる。そのため、図11に示した灰色の領域の内1つのフィルタを削除する。削除済みのフィルタ913が、横方向のストライド912で削除を行った後のフィルタである。また、削除済みのフィルタ914が、縦方向のストライド915で削除を行った後のフィルタである。以上で、実施例1の説明を終わる。
Next, FIG. 11 shows an example of deleting a 3×3 filter. Here, an example of actual deletion when the maximum number of operable operations is 8 is shown. The maximum number of operations is 8 as an example here, but is not limited to this and may be 2 n (n≧1). In this way, when the maximum number of operable operations is 8, the number of filters to be deleted is one. Therefore, one filter is deleted from the gray area shown in FIG. 11. The deleted filter 913 is the filter after deletion with a
次に、実施例2について説明する。実施例2は、実施例1の認識装置1000を、車両の走行の際における外界の認識に適用した例である。このため、実施例2では、速度無制限道路走行の際と、通常の高速道走行の際や市街地走行の際など、走行する速度及び演算処理に要求される速度に応じて畳み込み演算の処理速度を変更する。
Next, a second embodiment will be described. The second embodiment is an example in which the
ここで、通常の高速道路走行の際や市街地走行の際と、速度無制限道路走行の際では、ECUで必要とされる処理速度が異なる。また、走行する路面の幅や周辺状況も異なる。そこで、本実施例では走行速度の変化を観測し、一つの演算器で複数の演算を行う演算数を増やすことで、要求処理速度の増加に対応させている例を示す。 The processing speed required by the ECU differs when driving on normal highways or urban areas, and when driving on roads with no speed limit. The width of the road surface and surrounding conditions also differ. Therefore, this embodiment shows an example of responding to the increase in required processing speed by observing changes in driving speed and increasing the number of calculations that perform multiple calculations in one computing unit.
また、実施例2では、走行速度情報を取得し、単位時間当たりの平均時速Vがあらかじめ設計時に定めた走行速度上限値Xを上回ったときに、目標処理速度を変更し、削除インデックスの数を増加させる。このことで、演算数を増加させ処理速度を向上させるための実施例である。なお実施例1と共通部分については図に同一符号を付し、その説明を省略する。 In addition, in the second embodiment, driving speed information is acquired, and when the average speed V per unit time exceeds the upper driving speed limit X determined in advance at the time of design, the target processing speed is changed and the number of deletion indexes is increased. This is an embodiment for increasing the number of calculations and improving the processing speed. Note that parts common to the first embodiment are given the same reference numerals in the figures and their explanations are omitted.
図12は、実施例2における演算装置である認識装置1000の機能ブロック図である。ここで、図12を用いて、実施例1との差異について説明する。実施例2の認識装置1000では、走行速度取得部901が、追加されている。また、本実施例では、実施例1とは異なる構成である削除インデックス決定部903を有する。つづいて、本実施例2の認識装置1000の接続関係について説明する。まず、走行速度取得部901は、削除インデックス決定部903へ走行速度を出力する。削除インデックス決定部108は、走行速度取得部901、チャネル情報取得部105、重みパラメータ取得部106、フィルタ情報取得部107の出力を受け取る。
Fig. 12 is a functional block diagram of the
次に、実施例2の認識装置1000の動作のうち、実施例1との差分について説明する。まず、走行速度取得部901で車両走行速度を監視しており、現在の走行速度を継続的に削除インデックス決定部108へ出力する。
Next, differences between the operation of the
なお、本実施例の認識装置1000も、いわゆるコンピュータでも実現できる。この場合、各部の機能をプログラムに従ってCPUのような処理装置で実行することになる。また、このプログラムは記憶媒体に格納される。また、各部は、FPGA(Field Programmable Gate Array)のような専用ハードウェアや専用回路でも実現できる。
The
図13は、実施例2における削除インデックス決定部903の内部構成を示す図である。ここで、図13を用いて、削除インデックス決定部903の構成について、削除インデックス決定部108との差分について説明する。
Figure 13 is a diagram showing the internal configuration of the deletion
削除インデックス決定部903は、実施例1の削除インデックス決定部108に加えて、目標処理速度判定部902と演算速度解析部905をさらに有する。ここで、目標処理速度判定部902は、走行速度取得部901から出力された走行速度情報を追加の入力とする。また、演算速度解析部905は、最大演算数保存部302からの出力916と目標処理速度判定部からの出力である目標処理速度310を追加の入力とし、最大演算数906を出力する。
The deletion
次に、実施例2における削除インデックス決定部903の接続関係について、説明する。まず、目標処理速度判定部902に、走行速度情報が入力される。また、演算速度解析部905に、最大演算数保存部302の出力916と、目標処理速度判定部902の出力である目標処理速度310と、チャネル情報111とフィルタ情報113が入力される。そして、演算速度解析部905は、削除チャネル数311と削除フィルタ数312と変更された最大演算数906を出力する。また、変更された最大演算数906は、削除チャネルインデックス出力部307と削除フィルタインデックス出力部308に入力される。
Next, the connection relationship of the deletion
以下、実施例2における削除インデックス決定部903の動作について説明する。目標処理速度判定部902では、入力された走行速度情報から単位時間当たりの走行速度Vを算出する。ここで、V<Xを満たす場合には、目標処理速度判定部902は、既存の目標処理速度Gを維持する。一方、目標処理速度判定部902は、V>Xを満たす場合には目標処理速度Gを2Gに変更して、変更された目標処理速度を演算速度解析部905へ送信する。
The operation of the deletion
また、目標処理速度判定部902は、演算速度解析部905では目標処理速度が増加したときに、最大演算可能数2nを2n-1へと変更する。また、目標処理速度判定部902は、減少したときには2nへ戻す。次に、目標処理速度判定部902は、変更した最大演算可能数をもとに削除フィルタチャネル数を求める。そして、目標処理速度判定部902は、変更した最大演算数906を削除チャネルインデックス出力部307と削除フィルタインデックス出力部308に送信する。それ以外の動作については、図5と同様ため省略する。
Furthermore, when the target processing speed is increased in the calculation
次に、図14は、演算器で演算する際のフィルタの格納の様子についての説明図である。図14(a)が、最大演算数を減少させる前の例を表し、図14(b)が最大演算数を減少させた後の例を示す。また、これらは、演算器151、重みパラメータ152をもとに構成される。
Next, FIG. 14 is an explanatory diagram of the storage state of the filter when it is calculated by the calculator. FIG. 14(a) shows an example before the maximum number of calculations is reduced, and FIG. 14(b) shows an example after the maximum number of calculations is reduced. These are also configured based on the
ここで、最大演算数が8(n=3)、フィルタサイズが9の場合について、図14(a)を用いて、説明する。最大演算数が8の場合、フィルタから1つインデックスを削除し、演算器151に重みパラメータ152をセットして演算する。また、走行速度が上昇し、最大演算数が4となったときの例について、図14(b)を用いて説明する。最大演算数が4のときには、フィルタから5削除して演算器151にセットする。この場合に、図14(a)と比較すると倍の重みパラメータ152を演算器151に入れることができることになる。以上で、実施例2についての説明を終わる。
Now, the case where the maximum number of operations is 8 (n=3) and the filter size is 9 will be described with reference to FIG. 14(a). When the maximum number of operations is 8, one index is deleted from the filter and the
実施例3は、実施例1および実施例2の認識装置1000を、制御装置2000に適用した実施例である。図15は、実施例3における制御装置2000の機能ブロック図である。この制御装置2000は、例えば、ECUとして実装される。
The third embodiment is an embodiment in which the
図3において、制御装置2000は、認識装置1000、制御信号生成部2001を有する。そして、実施例1や2の処理を実行する認識装置1000から出力される認識結果103を、制御信号生成部2001に送信する。次に、制御信号生成部2001では、認識結果に応じて、制御信号2002を生成し、これに基づいて制御対象3000の制御を行う。
In FIG. 3, the
ここで、制御装置2000がECUで実行される場合、制御対象3000は車両となる。この場合、各実施例に記載した処理に基づいて、車両の自動運転や運転支援を実現できる。
Here, when the
以上で、各実施例の説明を終わるが、各実施例には様々な変形例や適用例が想定される。例えば、各実施例では、認識装置1000を例に説明したが、認識に限定しない演算を行う演算装置も各実施例の範疇に含まれる。
This concludes the explanation of each embodiment, but various modifications and application examples are envisioned for each embodiment. For example, in each embodiment, the
また、各実施例によれば、一般的な画像データを用いて演算を行った場合に、演算器の活用率は50%程度であり、本発明による演算の削除機構を用いることで、演算器の活用率を約100%近くまで向上させることが期待できる。つまり、活用率を向上できる。 In addition, according to each embodiment, when performing calculations using general image data, the utilization rate of the calculator is about 50%, and by using the calculation deletion mechanism according to the present invention, it is expected that the utilization rate of the calculator can be improved to nearly 100%. In other words, the utilization rate can be improved.
さらに、本実施例では、畳み込みニューラルネットワークでの演算の際に、畳み込み演算で使用するフィルタ及びチャネルの一部を削除する。このため、層ごとに異なるフィルタ、チャネルの位置、もしくは順番を示す番号である削除インデックス情報を演算制御部へ与える。このことで、演算器の演算単位に合わせて、畳み込み演算の入力データの一部、および重みパラメータの一部の読み込みをスキップし、畳み込み演算の一部を削除する。これにより限られた演算性能を持つデバイスで演算器を効率よく使用することができる。 Furthermore, in this embodiment, when performing calculations in a convolutional neural network, some of the filters and channels used in the convolution calculation are deleted. For this reason, deletion index information, which is a number indicating the position or order of the filters and channels that differ for each layer, is provided to the calculation control unit. This allows the reading of some of the input data for the convolution calculation and some of the weight parameters to be skipped in accordance with the calculation unit of the calculator, and part of the convolution calculation is deleted. This allows the calculator to be used efficiently in a device with limited calculation performance.
101 外界情報取得装置
102 CNN演算部
104 モデル保存部
105 チャネル情報取得部
106 重みパラメータ取得部
107 フィルタ情報取得部
108 削除インデックス決定部
109 演算割り当て部
111 チャネル情報
112 重みパラメータ情報
113 フィルタ情報
114 削除フィルタインデックス情報
115 CNN演算制御信号
116 削除チャネルインデックス情報
117 入力データ
202 パラメータ格納部
203 畳み込み演算部
204 分岐したCNN演算制御信号
208 個別重みパラメータ
209 個別フィルタ数
210 個別チャネル数
211 保存データ
301 目標処理速度格納部
302 最大演算数保存部
303 演算速度解析部
304 感度情報解析部
305 削除チャネル決定部
306 削除フィルタ決定部
401 演算制御部
412 演算停止制御信号
801 中間データ
802 ストライド方向
803 畳み込みフィルタ
901 走行速度取得部
902 目標処理速度判定部
101 External world
Claims (10)
前記CNN演算に用いるモデルを保存するモデル保存部と、
前記モデルを用いて、複数の畳み込み層毎に畳み込み演算を実行することで、前記CNN演算を行うCNN演算部と、
前記モデル保存部から、前記畳み込み演算に用いる畳み込みフィルタの重みパラメータを取得する重みパラメータ取得部と、
前記モデル保存部に保存された前記モデルから、前記複数の畳み込み層ごとのチャネル情報を取得するチャネル情報取得部と、
前記モデル保存部から、前記複数の畳み込み層ごとのフィルタ情報を取得するフィルタ情報取得部と、
前記CNN演算に必要となる重み情報と演算の組み合わせを割り当て、前記CNN演算部へ送信する演算割り当て部と、
前記CNN演算部の最大演算可能数、前記CNN演算の実行順、前記チャネル情報取得部から取得した前記CNN演算部の畳み込み層ごとのチャネル情報および前記重みパラメータ取得部から取得した重み情報および前記フィルタ情報取得部から取得した前記複数の畳み込み層ごとのフィルタ情報に基づき、前記畳み込み演算に使用するフィルタ情報の一部を削除する削除インデックス決定部を有する演算装置。 In a computing device that performs CNN calculations based on input data,
A model storage unit for storing a model used in the CNN calculation;
A CNN calculation unit that performs the CNN calculation by executing a convolution calculation for each of a plurality of convolution layers using the model;
a weight parameter acquisition unit that acquires weight parameters of a convolution filter used in the convolution operation from the model storage unit;
a channel information acquisition unit that acquires channel information for each of the plurality of convolution layers from the model stored in the model storage unit;
a filter information acquisition unit that acquires filter information for each of the plurality of convolution layers from the model storage unit;
An operation allocation unit that allocates a combination of weight information and operations required for the CNN operation and transmits the combination to the CNN operation unit;
a deletion index determination unit that deletes a portion of filter information used for the convolution calculations, based on the maximum number of calculations possible for the CNN calculation unit, an execution order of the CNN calculations, channel information for each convolution layer of the CNN calculation unit acquired from the channel information acquisition unit, weight information acquired from the weight parameter acquisition unit, and filter information for each of the plurality of convolution layers acquired from the filter information acquisition unit.
前記削除インデックス決定部は、さらに、前記畳み込み演算に使用するチャネル情報の一部を削除する演算装置。 2. The computing device according to claim 1,
The deletion index determination unit is a calculation device that further deletes a part of the channel information used in the convolution calculation.
前記削除インデックス決定部は、削除するフィルタ情報を、前記重み情報の変更に応じて決定する演算装置。 2. The computing device according to claim 1,
The deletion index determination unit is a calculation device that determines filter information to be deleted in response to a change in the weight information.
前記削除インデックス決定部は、削除するチャネル情報を、前記重み情報の変更に応じて決定する演算装置。 3. The computing device according to claim 2,
The deletion index determination unit is a calculation device that determines channel information to be deleted in response to a change in the weight information.
前記フィルタ情報が示すフィルタは、複数の重みパラメータで構成され、
前記削除インデックス決定部は、前記複数のパラメータのうち、所定規則を満たす重みパラメータを決定する演算装置。 2. The computing device according to claim 1,
The filter indicated by the filter information is composed of a plurality of weight parameters,
The deletion index determination unit is a calculation device that determines a weight parameter that satisfies a predetermined rule from among the plurality of parameters.
前記削除インデックス決定部は、前記所定規則として、演算精度の劣化量に基づいて、削除する重みパラメータを決定する演算装置。 6. The computing device according to claim 5,
The deletion index determination unit is a calculation device that determines a weight parameter to be deleted based on an amount of deterioration in calculation accuracy as the predetermined rule.
前記削除インデックス決定部は、処理速度に応じて、削除するフィルタ情報を決定する演算装置。 2. The computing device according to claim 1,
The deletion index determination unit is a calculation device that determines filter information to be deleted in accordance with a processing speed.
前記削除インデックス決定部は、さらに、前記複数の畳み込み層の感度を示す感度情報および前記フィルタの大きさに基づいて、削除するフィルタ情報を決定する演算装置。 8. The computing device according to claim 7,
The deletion index determination unit is a calculation device that determines filter information to be deleted based on sensitivity information indicating sensitivities of the plurality of convolution layers and the size of the filter.
前記入力データとして、外界取得装置から取得される外界情報を用い、
前記外界情報を用いて、外界の状況を認識することを特徴とする認識装置。 The computing device according to any one of claims 1 to 8,
As the input data, external environment information acquired from an external environment acquisition device is used,
A recognition device that recognizes an external situation using the external world information.
前記認識された外界の状況に応じて、前記認識装置での演算の結果を、対象に対する制御信号として出力することを特徴とする制御装置。 The recognition device according to claim 9,
A control device characterized in that the result of the calculation in the recognition device is output as a control signal for an object in accordance with the recognized external situation.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021085284A JP7675480B2 (en) | 2021-05-20 | 2021-05-20 | Calculation device, recognition device and control device |
| DE112022001612.4T DE112022001612T5 (en) | 2021-05-20 | 2022-02-04 | COMPUTING DEVICE, RECOGNITION DEVICE AND CONTROL DEVICE |
| PCT/JP2022/004491 WO2022244331A1 (en) | 2021-05-20 | 2022-02-04 | Computation device, recognition device, and control device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021085284A JP7675480B2 (en) | 2021-05-20 | 2021-05-20 | Calculation device, recognition device and control device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022178465A JP2022178465A (en) | 2022-12-02 |
| JP7675480B2 true JP7675480B2 (en) | 2025-05-14 |
Family
ID=84140179
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021085284A Active JP7675480B2 (en) | 2021-05-20 | 2021-05-20 | Calculation device, recognition device and control device |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JP7675480B2 (en) |
| DE (1) | DE112022001612T5 (en) |
| WO (1) | WO2022244331A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2005096634A1 (en) | 2004-03-30 | 2005-10-13 | Kanazawa University Technolgy Licensing Organization Ltd. | Multi-task processing system and multi-task processing method |
| JP2018190045A (en) | 2017-04-28 | 2018-11-29 | 日立オートモティブシステムズ株式会社 | Vehicle electronic control device |
| JP2020190996A (en) | 2019-05-23 | 2020-11-26 | 沖電気工業株式会社 | Neural network weight reducing device, neural network weight reducing method, and program |
| US20200401895A1 (en) | 2019-06-21 | 2020-12-24 | Samsung Electronics Co., Ltd. | Neural network hardware accelerator system with zero-skipping and hierarchical structured pruning methods |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107832839B (en) | 2017-10-31 | 2020-02-14 | 南京地平线机器人技术有限公司 | Method and apparatus for performing operations in convolutional neural networks |
-
2021
- 2021-05-20 JP JP2021085284A patent/JP7675480B2/en active Active
-
2022
- 2022-02-04 DE DE112022001612.4T patent/DE112022001612T5/en active Pending
- 2022-02-04 WO PCT/JP2022/004491 patent/WO2022244331A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2005096634A1 (en) | 2004-03-30 | 2005-10-13 | Kanazawa University Technolgy Licensing Organization Ltd. | Multi-task processing system and multi-task processing method |
| JP2018190045A (en) | 2017-04-28 | 2018-11-29 | 日立オートモティブシステムズ株式会社 | Vehicle electronic control device |
| JP2020190996A (en) | 2019-05-23 | 2020-11-26 | 沖電気工業株式会社 | Neural network weight reducing device, neural network weight reducing method, and program |
| US20200401895A1 (en) | 2019-06-21 | 2020-12-24 | Samsung Electronics Co., Ltd. | Neural network hardware accelerator system with zero-skipping and hierarchical structured pruning methods |
Also Published As
| Publication number | Publication date |
|---|---|
| DE112022001612T5 (en) | 2024-01-18 |
| WO2022244331A1 (en) | 2022-11-24 |
| JP2022178465A (en) | 2022-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10996877B2 (en) | Semiconductor device and memory access setup method | |
| CN114529081B (en) | A time-space combined traffic flow prediction method and device | |
| US11577750B2 (en) | Method and apparatus for determining a vehicle comfort metric for a prediction of a driving maneuver of a target vehicle | |
| CN112614373B (en) | A method for predicting lane change intention based on BiLSTM | |
| CN112651441A (en) | Fine-grained non-motor vehicle feature detection method, storage medium and computer equipment | |
| CN115661771A (en) | A method and system for real-time detection of lane line edges based on uneven anchors | |
| Hasan et al. | Estimating traffic density on roads using convolutional neural network with batch normalization | |
| CN114038214B (en) | Urban traffic signal control system | |
| Shi et al. | Attention-YOLOX: Improvement in on-road object detection by introducing attention mechanisms to YOLOX | |
| JP7675480B2 (en) | Calculation device, recognition device and control device | |
| Zhang et al. | Real-time semantic segmentation of road scenes via hybrid dilated grouping network | |
| CN117877286A (en) | Signal control method, device, computer equipment and storage medium | |
| CN114639125B (en) | Pedestrian intention prediction method and device based on video image and electronic equipment | |
| CN115082867A (en) | Method and system for object detection | |
| CN118478895B (en) | Vehicle parameter prediction method and device | |
| CN119625973A (en) | Dynamic control method, system and medium of tidal lane based on traffic flow prediction | |
| Yang et al. | Traffic conflicts analysis in Penang based on improved object detection with transformer model | |
| CN116434573B (en) | Control method and device for traffic signal lamp system, computer equipment and medium | |
| CN117237612A (en) | A target detection method in complex road scenes based on YOLOX model | |
| Jiangzhou et al. | Research on real-time object detection algorithm in traffic monitoring scene | |
| Patel et al. | Improved Spatial Invariance for Vehicle Platoon Application using New Pooling Method in Convolution Neural Network | |
| CN113658228B (en) | Pedestrian trajectory prediction system and method based on convolutional neural network | |
| CN119942818B (en) | Queuing overflow control method and system in second-level self-adaptive control system | |
| Yesilyurt et al. | Integration of uncertainty modeling for the detection of pedestrian intention | |
| Lin | Lane Detection for Autonomous Driving Based on FastSCNN |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240208 |
|
| 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: 20250415 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250422 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7675480 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |