JP2021163433A - Arithmetic processing unit - Google Patents
Arithmetic processing unit Download PDFInfo
- Publication number
- JP2021163433A JP2021163433A JP2020067937A JP2020067937A JP2021163433A JP 2021163433 A JP2021163433 A JP 2021163433A JP 2020067937 A JP2020067937 A JP 2020067937A JP 2020067937 A JP2020067937 A JP 2020067937A JP 2021163433 A JP2021163433 A JP 2021163433A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- configuration
- dnn
- vehicle
- arithmetic
- 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.)
- Pending
Links
Images
Landscapes
- Traffic Control Systems (AREA)
Abstract
Description
本発明は、いわゆるニューラルネットワークによる演算処理を実行する演算装置に関する。 The present invention relates to an arithmetic unit that executes arithmetic processing by a so-called neural network.
物体検出、音声認識及び最適化などの処理において、いわゆるディープニューラルネットワーク(以下、単にDNNと呼ぶ)を用いる技術が提案されている。これらの処理にDNNを適用する場合、DNNによる演算量が非常に多くなり、その結果として、演算処理に要する処理時間が増大してしまうことがある。そこで、車両の状態に基づいて人工知能モデルを構成するか否かを判定し、人工知能モデルを構成すると判定した場合に、演算ユニットを複数組み合わせて所定の処理を実行する人工知能モデルを構成する技術が提案されている(例えば、特許文献1を参照)。 In processing such as object detection, voice recognition, and optimization, a technique using a so-called deep neural network (hereinafter, simply referred to as DNN) has been proposed. When DNN is applied to these processes, the amount of calculation by DNN becomes very large, and as a result, the processing time required for the calculation process may increase. Therefore, it is determined whether or not to configure the artificial intelligence model based on the state of the vehicle, and when it is determined that the artificial intelligence model is to be configured, a plurality of arithmetic units are combined to configure an artificial intelligence model that executes a predetermined process. A technique has been proposed (see, for example, Patent Document 1).
DNNを用いた演算処理にリアルタイム性が要求されることがある。このような場合、DNNを用いた演算処理が所定の制限時間内に完了することが求められる。しかしながら、上記の技術では、DNNを用いた演算処理を所定の制限時間内に終了させることができないおそれがある。 Real-time performance may be required for arithmetic processing using DNN. In such a case, it is required that the arithmetic processing using DNN is completed within a predetermined time limit. However, in the above technique, there is a possibility that the arithmetic processing using DNN cannot be completed within a predetermined time limit.
そこで、本発明は、演算結果についての精度の低下を抑制しつつ、ニューラルネットワークを用いた演算処理を目標演算終了時間までに終了させることが可能な演算装置を提供することを目的とする。 Therefore, an object of the present invention is to provide an arithmetic unit capable of completing an arithmetic process using a neural network by a target arithmetic end time while suppressing a decrease in accuracy of the arithmetic result.
一つの実施形態によれば、演算装置が提供される。この演算装置は、所定の演算処理を実行するための複数のニューラルネットワークの構成を記憶する記憶部と、複数のニューラルネットワークの構成の中から目標演算終了時間までに所定の演算処理が終了するニューラルネットワークの構成の候補を一つ以上選択し、その演算処理の結果についての精度が最大となるように、選択した候補の中からその演算処理を実行するニューラルネットワークの構成を選択する選択部と、選択されたニューラルネットワークの構成を用いて、所定のデータに対してその演算処理を実行する演算部とを有する。 According to one embodiment, an arithmetic unit is provided. This arithmetic device has a storage unit that stores the configurations of a plurality of neural networks for executing a predetermined arithmetic processing, and a neural network that completes the predetermined arithmetic processing by the target arithmetic end time from the configurations of the plurality of neural networks. A selection unit that selects one or more network configuration candidates and selects the neural network configuration that executes the arithmetic processing from the selected candidates so that the accuracy of the arithmetic processing result is maximized. It has an arithmetic unit that executes arithmetic processing on predetermined data using the configuration of the selected neural network.
本発明に係る演算装置は、演算結果についての精度の低下を抑制しつつ、ニューラルネットワークを用いた演算処理を目標演算終了時間までに終了させることができるという効果を奏する。 The arithmetic unit according to the present invention has an effect that the arithmetic processing using the neural network can be completed by the target arithmetic end time while suppressing the decrease in the accuracy of the arithmetic result.
以下、図を参照しつつ、演算装置について説明する。この演算装置は、DNNを用いた所定の演算処理を、その演算処理が目標演算終了時間までに終了するように実行する。しかし、演算装置が有するプロセッサの演算負荷の変動(例えば、他の演算処理の実行状況、割込み処理または例外処理の発生など)、または、プロセッサの発熱を抑制するためのクロック周波数の低下といった要因により、DNNを用いた演算処理の実行速度が変動することがある。そこで、この演算装置は、所定の演算処理を実行するための複数のDNNの構成を予め記憶し、それら複数のDNNの構成の中から、目標演算終了時間までに所定の演算処理が終了する構成の候補を一つ以上選択する。さらに、この演算装置は、選択した構成の候補の中からその演算処理の結果についての精度が最大となるDNNの構成をさらに選択する。そしてこの演算装置は、精度が最大となるよう選択した構成のDNNを用いて、所定のデータに対してその所定の演算処理を実行する。これにより、この演算装置は、演算結果についての精度の低下を抑制しつつ、DNNを用いた演算処理を目標演算終了時間までに終了させる。 Hereinafter, the arithmetic unit will be described with reference to the drawings. This arithmetic unit executes a predetermined arithmetic process using the DNN so that the arithmetic process is completed by the target arithmetic end time. However, due to factors such as fluctuations in the arithmetic load of the processor of the arithmetic unit (for example, execution status of other arithmetic processing, occurrence of interrupt processing or exception processing, etc.), or a decrease in the clock frequency for suppressing heat generation of the processor. , The execution speed of arithmetic processing using DNN may fluctuate. Therefore, this arithmetic unit stores in advance the configurations of a plurality of DNNs for executing the predetermined arithmetic processing, and from among the configurations of the plurality of DNNs, the predetermined arithmetic processing is completed by the target arithmetic end time. Select one or more candidates for. Further, the arithmetic unit further selects the configuration of the DNN that maximizes the accuracy of the result of the arithmetic processing from the candidates of the selected configuration. Then, this arithmetic unit executes the predetermined arithmetic processing on the predetermined data by using the DNN having the configuration selected so as to maximize the accuracy. As a result, the arithmetic unit finishes the arithmetic processing using the DNN by the target arithmetic end time while suppressing the decrease in the accuracy of the arithmetic result.
以下では、演算装置を、車両制御システムに適用した例について説明する。この例では、演算装置は、車両に搭載されたカメラにより得られた画像に対して、物体検出処理を実行することで、車両の周囲に存在する各種の物体、例えば、他の車両、人、道路標識または道路標示などを検出し、その検出結果に基づいて車両を自動運転制御する。物体検出処理は、所定の演算処理の一例である。 In the following, an example in which the arithmetic unit is applied to the vehicle control system will be described. In this example, the arithmetic unit executes object detection processing on the image obtained by the camera mounted on the vehicle, so that various objects existing around the vehicle, for example, other vehicles, people, etc. It detects road signs or road markings, and automatically controls the vehicle based on the detection results. The object detection process is an example of a predetermined arithmetic process.
図1は、演算装置が実装される車両制御システムの概略構成図である。図2は、演算装置の一つの実施形態である電子制御装置のハードウェア構成図である。本実施形態では、車両10に搭載され、かつ、車両10を制御する車両制御システム1は、車両10の周囲を撮影するためのカメラ2と、測距センサ3と、演算装置の一例である電子制御装置(ECU)4とを有する。カメラ2と、測距センサ3と、ECU4とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。なお、車両制御システム1は、車両10の自動運転制御に用いられる地図を記憶するストレージ装置をさらに有していてもよい。さらに、車両制御システム1は、GPS受信機といった、衛星測位システムに準拠して車両10の自己位置を測位するための受信機、他の機器と無線通信するための無線端末、及び、車両10の走行予定ルートを探索するためのナビゲーション装置などを有していてもよい。
FIG. 1 is a schematic configuration diagram of a vehicle control system in which an arithmetic unit is mounted. FIG. 2 is a hardware configuration diagram of an electronic control device, which is one embodiment of the arithmetic unit. In the present embodiment, the
カメラ2は、撮像部の一例であり、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。カメラ2は、車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。そしてカメラ2は、所定の撮影周期(例えば1/30秒〜1/10秒)ごとに車両10の前方領域を撮影し、その前方領域が写った画像を生成する。カメラ2により得られた画像は、カラー画像であってもよく、あるいは、グレー画像であってもよい。なお、車両制御システム1は、撮影方向または画角が異なる複数のカメラ2を有していてもよい。
The
カメラ2は、画像を生成する度に、その生成した画像を、車内ネットワークを介してECU4へ出力する。
Each time the
測距センサ3は、例えば、LiDERセンサあるいはレーダであり、所定の周期ごとに、各方位について、その方位における、車両10の周囲に存在する他の物体までの距離を測定する。そして測距センサ3は、所定の周期ごとに、方位ごとの他の物体までの距離を表すセンサ信号を、車内ネットワークを介してECU4へ出力する。
The distance measuring sensor 3 is, for example, a LiDER sensor or a radar, and measures the distance to another object existing around the
ECU4は、車両10を制御する。本実施形態では、ECU4は、カメラ2により得られた時系列の一連の画像から検出された物体に基づいて車両10を自動運転するよう、車両10を制御する。そのために、ECU4は、通信インターフェース21と、メモリ22と、プロセッサ23とを有する。
The ECU 4 controls the
通信インターフェース21は、通信部の一例であり、ECU4を車内ネットワークに接続するためのインターフェース回路を有する。すなわち、通信インターフェース21は、車内ネットワークを介して、カメラ2及び測距センサ3と接続される。そして通信インターフェース21は、カメラ2から画像を受信する度に、受信した画像をプロセッサ23へわたす。また通信インターフェース21は、測距センサ3から受信したセンサ信号をプロセッサ23へわたす。あるいはまた、通信インターフェース21は、車内ネットワークを介して受信した、ストレージ装置から読み込んだ地図、GPS受信機からの測位情報などを、プロセッサ23へわたす。
The
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、ECU4のプロセッサ23により実行される各種処理を実現するためのコンピュータプログラム、物体検出処理において使用される各種のデータ、例えば、カメラ2から受信した画像、測距センサ3から受け取ったセンサ信号、物体検出処理で利用される識別器を構成するための各種パラメータなどを記憶する。さらに、メモリ22は、物体検出処理の途中における演算結果を記憶する。さらにまた、メモリ22は、物体検出処理において使用されるDNNを構成するための各種パラメータ(例えば、重み係数、活性化関数など)及びDNNの基本構成を記憶する。さらにまた、メモリ22は、DNNの複数の構成単位及び各構成単位の演算所要時間及び演算結果についての精度に対する寄与の度合いの予測値(以下、演算精度寄与度と呼ぶ)を表す構成テーブル、及び、個々の構成単位による演算以外の演算(例えば、non-maximum suppression)に要する所要時間を記憶する。本実施形態では、DNNにより実行される演算処理は物体検出処理であるので、演算結果についての精度は、物体検出結果の確からしさを表す精度である。
The
プロセッサ23は、制御部の一例であり、1個または複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。プロセッサ23は、DNNによる演算処理に含まれる特定の演算(例えば、畳み込み演算)を実行するための専用の演算回路をさらに有してもよい。そしてプロセッサ23は、車両10が走行している間、カメラ2から画像を受信する度に、受信した画像に対して物体検出処理を含む車両制御処理を実行する。そしてプロセッサ23は、検出された車両10の周囲の物体に基づいて、車両10を自動運転するよう、車両10を制御する。
The
図3は、物体検出処理を含む車両制御処理に関する、ECU4のプロセッサ23の機能ブロック図である。プロセッサ23は、選択部31と、物体検出部32と、運転計画部33と、車両制御部34とを有する。プロセッサ23が有するこれらの各部は、例えば、プロセッサ23上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ23が有するこれらの各部は、プロセッサ23に設けられる、専用の演算回路であってもよい。また、プロセッサ23が有するこれらの各部のうち、選択部31及び物体検出部32が、DNNを用いた演算処理の一例である物体検出処理を実行する。
FIG. 3 is a functional block diagram of the
図4は、物体検出処理において識別器として使用されるDNNの構成の一例を示す図である。DNN400は、例えば、コンボリューショナルニューラルネットワーク型のアーキテクチャを有するニューラルネットワークであり、入力側から順に、複数のブロック401−1〜401−n(nは2以上の整数)を有する。個々のブロックは、例えば、それぞれ、同じ解像度のデータに対する処理を行う。例えば、入力側に近いブロックほど、高い解像度のデータに対する処理を実行する。本実施形態では、DNN400は、カメラ2により生成された画像に表された物体を検出するために用いられるので、個々のブロックは、そのブロックに入力されるデータの解像度で物体が表された領域を検出するとともに、検出された物体の種類を識別するための処理を実行する。
FIG. 4 is a diagram showing an example of the configuration of a DNN used as a classifier in the object detection process. The
個々のブロックには、選択可能な単位となる複数の構成が規定される。例えば、ブロック401−1には構成411−1〜411−k(kは2以上の整数)が規定され、ブロック401−2には、構成412−1〜412−i(iは2以上の整数)が規定され、ブロック401−nには、構成413−1〜413−j(jは2以上の整数)が規定される。個々の構成の単位は、例えば、ブロックそのもの、そのブロックに含まれる、入力されたデータに対して並列に処理を実行する2以上のブランチの何れか、または、そのブロックに含まれる1以上の層とすることができる。各層は、その層に入力されるデータ(例えば、feature map)に対して所定の演算を実行する。層の種類には、例えば、畳み込み層、プーリング層、全結合層(affine層)、活性化層及び出力層などが含まれる。畳み込み層は、所定のサイズのカーネルで入力されるデータに対する畳み込み演算を実行する層である。プーリング層は、Maxプーリングといったプーリング処理を実行する層である。全結合層は、入力されるデータに対する全結合演算を行う層である。活性化層は、ReLUまたはシグモイド関数といった活性化関数を用いた活性化演算を実行する層である。そして出力層は、softmax関数またはシグモイド関数を用いて出力値を求める層である。 Each block is defined by a plurality of configurations that are selectable units. For example, block 401-1 is defined with configurations 411-1 to 411-k (k is an integer of 2 or more), and block 401-2 is configured with configurations 421-1 to 421-i (i is an integer of 2 or more). ) Is specified, and configurations 413-1 to 413-j (j is an integer of 2 or more) are specified in the block 401-n. The unit of each configuration is, for example, the block itself, one or more branches contained in the block that execute processing in parallel with the input data, or one or more layers contained in the block. Can be. Each layer performs a predetermined operation on the data (for example, feature map) input to the layer. Types of layers include, for example, convolution layers, pooling layers, fully connected layers (affine layers), activation layers and output layers. The convolution layer is a layer that executes a convolution operation on data input by a kernel of a predetermined size. The pooling layer is a layer that executes a pooling process such as Max pooling. The fully connected layer is a layer that performs a fully connected operation on the input data. The activation layer is a layer that executes an activation operation using an activation function such as a ReLU or a sigmoid function. The output layer is a layer for which the output value is obtained by using the softmax function or the sigmoid function.
例えば、ブロックそのものまたはブランチが選択可能なニューラルネットワークの構成の単位である場合、個々の構成の単位に含まれる層の数または層の種類は互いに異なっていてもよい。また、ブロック内の何れかの層が選択可能なニューラルネットワークの構成の単位である場合、個々の構成の単位ごとに、その構成の単位である層の演算を規定するパラメータ(例えば、畳み込み層のカーネルサイズ、ストライド等)が異なっていてもよい。さらに、DNN400の全体構成自体、予め複数用意されてもよい。この場合には、DNN400の全体構成自体が選択可能な構成の単位であってもよい。さらにまた、DNNによる演算量に関連するパラメータも選択可能な構成の単位とされてもよい。このようなパラメータには、例えば、各層またはブロックに入力されるデータのサイズ(例えば、直前の層から出力されたfeature mapに対する縮小の程度)、入力されるデータに含まれる個々の値を表すタイプ及び量子化ビット幅(浮動小数点型32ビット、整数型8ビット等)、または0に置換する重み係数の程度を表す量であるPruning量等が含まれる。さらにまた、上記の構成の単位の何れか二つ以上を組み合わせたものが、選択可能なニューラルネットワークの構成の単位であってもよい。
For example, if the block itself or a branch is a selectable unit of neural network configuration, the number of layers or the types of layers contained in each configuration unit may be different from each other. Further, when any layer in the block is a unit of the neural network configuration that can be selected, a parameter (for example, of a convolution layer) that defines the operation of the layer that is the unit of the configuration for each unit of the configuration. Kernel size, stride, etc.) may be different. Further, a plurality of DNN400 overall configurations themselves may be prepared in advance. In this case, the overall configuration of the
選択部31は、複数のDNNの構成の中から目標演算終了時間までに物体検出処理が終了するニューラルネットワークの構成の候補を一つ以上選択し、演算処理の結果についての精度、本実施形態では、物体の検出精度が最大となるように、選択した候補の中から物体検出処理を実行するDNNの構成を選択する。個々のDNNの構成は、選択可能な構成の単位を組み合わせることで規定される。
The
選択部31は、プロセッサ23がカメラ2から画像を取得する度に、物体検出部32に、その画像に対して物体検出処理を開始させる。その際、選択部31は、物体検出部32に、予め設定された基本構成のDNNを利用するよう指示する。
The
その後、選択部31は、所定の周期(例えば、画像の取得周期またはその取得周期よりも短い周期)ごとに、プロセッサ23上で動作する各処理の演算順序及び各処理の演算の開始予定時刻などを管理するスケジューラに、物体検出処理の結果を利用する次の処理(本実施形態では、運転計画部33により実行される処理)の開始予定時刻を問い合わせる。そして選択部31は、その開始予定時刻に基づいて目標演算終了時間を設定する。例えば、選択部31は、次の処理の開始予定時刻自体、あるいは、次の処理の開始予定時刻よりも所定のオフセット時間だけ前の時間を、目標演算終了時間に設定する。なお、所定の周期ごとに物体検出処理を終了させることが予め規定されている場合には、選択部31は、その周期に従って目標演算終了時間を設定してもよい。
After that, the
また、選択部31は、現在実行中の物体検出処理にて使用されているDNNの構成による、物体検出処理の予定所要時間から、現在実行中の物体検出処理の開始時刻から現時刻までの経過時間との差を、物体検出処理の残りの演算が終了するまでの所要時間の推定値(以下、推定残所要時間と呼ぶ)として算出する。なお、選択部31は、例えば、メモリ22に記憶されている、現在使用中のDNNに含まれる個々の構成単位の推定所要時間及びそれ以外の演算の推定所要時間の和として、予定所要時間を算出できる。その際、選択部31は、予定所要時間を、プロセッサ23の現在のクロック周波数またはDNNの演算に利用可能なプロセッサ23の占有率に応じて補正してもよい。そして選択部31は、推定残所要時間と目標演算終了時間までの残り時間とを比較し、推定残所要時間が残り時間よりも長い場合、構成テーブルを参照して、目標演算終了時間までに物体検出処理が終了するように、物体検出処理の残りの演算に利用されるDNNの構成を選択する。さらに、選択部31は、構成テーブルを参照して、目標演算終了時間までに物体検出処理が終了するDNNの構成の中から、物体検出精度が最も高くなるように、物体検出処理の残りの演算に利用されるDNNの構成をさらに選択する。
In addition, the
図5は、構成テーブルの一例を示す図である。構成テーブル500には、各ブロックについて、選択可能な単位である複数の構成501と、構成501ごとに、その構成501の演算に要する推定所要時間502と演算精度寄与度503が示される。なお、構成テーブル500に示されるブロックm(m=1,2,...,n)は、図4に示されるDNN400のブロック401−mに対応する。各構成501は、上記のように、例えば、ブロックそのもの、ブランチ、何れかの層またはパラメータあるいはそれらの組み合わせである。各構成501の推定所要時間502及び演算精度寄与度503は、例えば、それぞれ、所定の条件下で予め実際に測定され、あるいは、その構成の設計情報から予め推定される。例えば、各構成501の推定所要時間502は、プロセッサ23を基準クロック周波数で動作させ、かつ、DNNの演算についてのプロセッサ23の占有率をその最大値としたときの測定値とすることができる。なお、推定所要時間502を表す単位は、例えば、クロック数または時間の何れであってもよい。また、演算精度寄与度503は、構成501間の相対的な演算精度の向上に対する寄与度を表す指標であればよく、実際の演算精度そのものを表す値でなくてもよい。図5に示される例では、演算精度寄与度503の値が高いほど、対応する構成501が演算精度の向上に対する寄与度が高いことを表す。
FIG. 5 is a diagram showing an example of the configuration table. The configuration table 500 shows a plurality of
選択部31は、構成テーブルを参照して、DNNによる残りの演算に関して適用可能な構成の単位の組み合わせの中から、目標演算終了時間までに物体検出処理が終了する組み合わせを、候補となるDNNの構成として選択する。例えば、現時点でブロック401−1までの演算が終了している場合、選択部31は、ブロック401−2以降の各ブロックの構成の単位を組み合わせて、候補となるDNNの構成を選択する。その際、選択部31は、構成の単位の可能な組み合わせのそれぞれについて推定所要時間の合計(以下、推定合計所要時間と呼ぶ)を算出し、その推定合計所要時間が残り時間以下となる組み合わせを候補となる構成として選択する。あるいは、選択部31は、動的計画法または他の最適化手法に従って、推定合計所要時間が残り時間以下となる組み合わせを候補となる構成として選択してもよい。なお、DNNによる演算量に関連するパラメータ(入力feature mapサイズ、量子化幅、Pruning量等)も、上記の個々の構成の単位とは別個に選択可能である場合、選択部31は、選択するパラメータに応じた演算の短縮率を、選択した個々の構成の単位の推定所要時間に乗じて得られる値の合計を推定合計所要時間として算出してもよい。この場合、選択可能なパラメータごとに、そのパラメータによる演算の短縮率も、メモリ22に予め記憶されればよい。
The
また、選択部31は、プロセッサ23の現在のクロック周波数に対する基準クロック周波数の比、または、DNNの演算に利用可能なプロセッサ23の現在の占有率に対する占有率の最大値の比を、選択した個々の構成の推定所要時間に乗じて得られる値の合計を推定合計所要時間として算出してもよい。
Further, the
選択部31は、選択した、候補となるDNNの構成(すなわち、構成の単位の組み合わせ)のそれぞれについて、構成テーブルを参照して、その組み合わせに含まれる個々の構成の単位の演算精度寄与度の合計を算出し、その合計が最大となる組み合わせを、物体検出精度が最大となる組み合わせとして特定する。あるいは、選択部31は、選択した構成の組み合わせのそれぞれについて、構成テーブルを参照して、その組み合わせに含まれる個々の構成の単位の演算精度寄与度の積を算出し、その積が最大となる組み合わせを、物体検出精度が最大となる組み合わせとして特定してもよい。そして選択部31は、選択した組み合わせを使用するDNNの構成として、物体検出部32へ通知する。
The
なお、推定残所要時間が残り時間以下である場合には、選択部31は、DNNの構成を変更しなくてもよい。あるいは、推定残所要時間が残り時間よりも短い場合には、選択部31は、上記と同様の処理を行って、目標演算終了時間までに物体検出処理が終了し、かつ、物体検出精度が現在のDNNの構成よりも高くなるように、残りの演算を実行するDNNの構成を変更し、変更したDNNの構成を物体検出部32へ通知してもよい。
When the estimated remaining required time is less than or equal to the remaining time, the
また、選択部31は、過去の演算履歴に応じて、各構成の推定所要時間を変更してもよい。例えば、物体検出処理が終了する度に、物体検出部32は、その物体検出処理で利用されたDNNに含まれる構成の単位ごとの演算所要時間をメモリ22に記憶させる。そして選択部31は、各構成の単位について、直近の所定回数の演算所要時間の平均値あるいは中央値を、その構成の単位の推定所要時間としてもよい。
Further, the
あるいは、選択部31は、DNNに入力されるデータに応じて、各構成の推定所要時間及び演算精度寄与度を変更してもよい。本実施形態では、DNNに入力されるデータが画像であるので、例えば、画像に表されたシーンの種別ごとに、各構成の推定所要時間と演算精度寄与度を表す構成テーブルがメモリ22に予め記憶される。そして選択部31は、画像に表されたシーンの種別を判断して、その種別に応じた構成テーブルをメモリ22から読み出し、読み出した構成テーブルを参照して、上記の処理を実行すればよい。例えば、選択部31は、画像全体または画像の所定領域内の画素値の統計的代表値(平均値、分散等)を算出し、その統計的代表値と、シーンの種別ごとに規定される基準代表値とを比較し、その統計的代表値に最も近い基準代表値に対応する種別を、画像に表されたシーンの種別と判定する。また、選択部31は、ワイパーの動作情報、無線端末を介して受信した、車両10の現在位置における天気予報などに基づいて、車両10の周囲の天候を判別し、車両10の周囲の天候に対応する種別を、画像に表された種別と判定してもよい。あるいは、選択部31は、画像に表されたシーンの種別を判定する他の手法に従って、そのシーンの種別を判定してもよい。
Alternatively, the
さらに、選択部31は、プロセッサ23がカメラ2から最新の画像を受け取った時、すなわち、物体検出部32による、最新の画像に対するDNNの演算が開始される前、あるいは、前の画像に対するDNNの演算の実行中においても、上記の処理と同様の処理を行って、最新の画像に対して使用するDNNの構成を決定してもよい。そして選択部31は、物体検出部32へ決定したDNNの構成を利用するよう指示してもよい。
Further, the
図6は、プロセッサ23の選択部31による、DNNの構成の選択処理の動作フローチャートである。選択部31は、以下に示される動作フローチャートに従って、所定の周期ごとに選択処理を実行すればよい。
FIG. 6 is an operation flowchart of the selection process of the DNN configuration by the
プロセッサ23の選択部31は、スケジューラに物体検出処理の検出結果を利用する次の処理の開始予定時刻を問い合わせ、その開始予定時刻に従って目標演算終了時間を設定する(ステップS101)。選択部31は、DNNによる演算が終了するまでの推定残所要時間が目標演算終了時間までの残り時間よりも長いか否か判定する(ステップS102)。推定残所要時間が残り時間よりも長い場合(ステップS102−Yes)、選択部31は、構成テーブルを参照して、DNNによる残りの演算の推定合計所要時間が目標演算終了時間までの残り時間以下となるDNNの構成の候補を一つ以上選択する(ステップS103)。そして選択部31は、構成テーブルを参照して、選択したDNNの構成の候補のうち、物体検出精度が最も高い候補を、残りの演算を実行するDNNの構成として選択する(ステップS104)。
The
一方、ステップS102にて、推定残所要時間が残り時間以下である場合(ステップS102−No)、選択部31は、現在使用中のDNNの構成を残りの演算にも使用する構成として選択する(ステップS105)。
On the other hand, in step S102, when the estimated remaining required time is less than or equal to the remaining time (step S102-No), the
ステップS104またはS105の後、選択部31は、物体検出部32へ、選択した構成のDNNを用いて残りの演算を実行するよう指示する(ステップS106)。そして選択部31は、選択処理を終了する。なお、選択部31は、ステップS102にて推定残所要時間が残り時間よりも短い場合も、上記のように、ステップS103及びS104の処理を実行してもよい。
After step S104 or S105, the
物体検出部32は、演算部の一例であり、カメラ2から画像が得られる度に、その画像を識別器として利用されるDNNに入力することで、その画像に表された、車両10の周囲に存在する検出対象となる物体を検出する。なお、検出対象となる物体には、例えば、車または人といった移動物体が含まれる。また、検出対象となる物体には、車線区画線といった道路標示または道路標識、及び信号機といった静止物体がさらに含まれてもよい。
The
本実施形態では、物体検出部32は、選択部31から指示された構成を有するDNNを識別器として利用する。そのために、物体検出部32は、選択部31から指示された構成を有するDNNを構成するためのパラメータをメモリ22から読み込んでそのDNNを構成し、構成したDNNへ画像を入力する。また、物体検出部32は、DNNによる演算の途中において、DNNの構成を変更するよう選択部31から指示された場合には、その変更後の構成を持つDNNを構成するためのパラメータをメモリ22から読み込んでDNNの構成を指示された構成に変更し、変更後の構成を持つDNNにより、残りの演算を実行する。なお、DNNのブロック間でfeature mapといったデータの受け渡しが行われる際に、そのデータのサイズが縮小される場合には、物体検出部32は、例えば、データを受け取るブロックの最初の層におけるストライドをそのデータのサイズの縮小率に応じて設定すればよい。
In the present embodiment, the
さらに、物体検出部32は、測距センサ3からのセンサ信号といった、カメラ2以外の車両10の周囲の物体を検知するために利用可能な他のセンサにより得られたセンサ信号に基づいて、車両10の周囲の物体を検出してもよい。
Further, the
この場合、物体検出部32は、他のセンサの種類に応じた物体検出手法に従って車両10の周囲の物体を検出すればよい。あるいは、物体検出部32は、DNNに対して、画像だけでなく、他のセンサにより得られた、画像に表された領域と同じ領域のセンサ信号を入力してもよい。
In this case, the
物体検出部32は、検出された物体の種類及び画像上での位置を表す情報を運転計画部33へ出力する。
The
運転計画部33は、各画像から検出された物体に基づいて、車両10の周囲に存在する物体と車両10とが衝突しないように車両10の走行予定経路を1以上生成する。走行予定経路は、例えば、現時刻から所定時間先までの各時刻における、車両10の目標位置の集合として表される。例えば、運転計画部33は、カメラ2から画像を受信する度に、カメラ2についての車両10への取り付け位置などの情報を用いて視点変換処理を実行することで、受信した画像を鳥瞰画像に変換する。そして運転計画部33は、一連の鳥瞰画像に対してKalman Filterなどを用いたトラッキング処理を実行することで、各画像についての検出されている物体を追跡し、その追跡結果により得られた軌跡から、物体のそれぞれの所定時間先までの予測軌跡を推定する。運転計画部33は、追跡中の各物体の予測軌跡に基づいて、何れの物体についても所定時間先までの追跡中の物体のそれぞれと車両10間の距離の予測値が所定距離以上となるように、車両10の走行予定経路を生成する。その際、運転計画部33は、例えば、車両10に搭載されたGPS受信機(図示せず)から得た測位情報に表される車両10の現在位置と、メモリ22に記憶されている地図情報とを参照して、車両10が走行可能な車線の数を確認してもよい。そして運転計画部33は、車両10が走行可能な車線が複数存在する場合には、車両10が走行する車線を変更するように走行予定経路を生成してもよい。その際、運転計画部33は、画像から検出された車線区画線の位置を参照して、車両10が走行中の車線、あるいは変更先の車線と車両10との位置関係を判定してもよい。さらに、運転計画部33は、画像から検出された信号機が一時停止を示している場合には、車両10をその信号機に対応する停止線にて停止させるように走行予定経路を設定してもよい。
なお、運転計画部33は、複数の走行予定経路を生成してもよい。この場合、運転計画部33は、複数の走行予定経路のうち、車両10の加速度の絶対値の総和が最小となる経路を選択してもよい。
Based on the objects detected from each image, the
The
運転計画部33は、生成した走行予定経路を車両制御部34へ通知する。
The
車両制御部34は、車両10が通知された走行予定経路に沿って走行するように車両10の各部を制御する。例えば、車両制御部34は、通知された走行予定経路、及び、車速センサ(図示せず)により測定された車両10の現在の車速に従って、車両10の加速度を求め、その加速度となるようにアクセル開度またはブレーキ量を設定する。そして車両制御部34は、設定されたアクセル開度に従って燃料噴射量を求め、その燃料噴射量に応じた制御信号を車両10のエンジンの燃料噴射装置へ出力する。あるいは、車両制御部34は、設定されたブレーキ量に応じた制御信号を車両10のブレーキへ出力する。
The
さらに、車両制御部34は、車両10が走行予定経路に沿って走行するために車両10の進路を変更する場合には、その走行予定経路に従って車両10の操舵角を求め、その操舵角に応じた制御信号を、車両10の操舵輪を制御するアクチュエータ(図示せず)へ出力する。
Further, when the
図7は、プロセッサ23により実行される、DNNを用いた演算処理の一例である物体検出処理を含む車両制御処理の動作フローチャートである。プロセッサ23は、例えば、カメラ2から画像を受信する度に、図7に示される動作フローチャートに従って車両制御処理を実行する。なお、以下に示される動作フローチャートにおいて、ステップS201〜S202の処理が物体検出処理に対応する。
FIG. 7 is an operation flowchart of a vehicle control process including an object detection process, which is an example of an arithmetic process using a DNN, executed by the
プロセッサ23の選択部31は、図6に示されるフローチャートに従って、物体検出部32において使用されるDNNの構成を選択する(ステップS201)。そしてプロセッサ23の物体検出部32は、カメラ2から得られた画像を選択された構成を持つDNNに入力して、画像に表された車両10の周囲の物体を検出する(ステップS202)。
The
プロセッサ23の運転計画部33は、検出されている物体を追跡し、その追跡結果に基づいて推定されるその物体の予測軌跡と所定の距離以上となるように、車両10の走行予定経路を生成する(ステップS203)。そしてプロセッサ23の車両制御部34は、走行予定経路に沿って車両10が走行するように車両10を制御する(ステップS204)。そしてプロセッサ23は、車両制御処理を終了する。
The
以上に説明してきたように、この演算装置は、所定の演算処理を実行するための複数のDNNの構成を予め記憶し、それら複数のDNNの構成の中から、目標演算終了時間までに所定の演算処理が終了する構成の候補を一つ以上選択する。この演算装置は、選択した構成の候補の中からその演算処理の結果についての精度が最大となるDNNの構成をさらに選択する。そしてこの演算装置は、精度が最大となるよう選択した構成のDNNを用いて、所定のデータに対してその所定の演算処理を実行する。これにより、この演算装置は、DNNの演算を実行するハードウェアの状態などに関わらず、演算結果についての精度の低下を抑制しつつ、DNNを用いた演算処理を目標演算終了時間までに終了させることができる。そのため、DNNの演算を実行するためのハードウェアリソースの余裕を過剰に用意しなくてもよくなるので、この演算装置は、必要なハードウェアリソースを低減できる。 As described above, this arithmetic unit stores in advance the configurations of a plurality of DNNs for executing a predetermined arithmetic process, and from the plurality of DNN configurations, a predetermined one is determined by the target calculation end time. Select one or more configuration candidates for which the arithmetic processing ends. This arithmetic unit further selects the configuration of the DNN that maximizes the accuracy of the result of the arithmetic processing from the candidates of the selected configuration. Then, this arithmetic unit executes the predetermined arithmetic processing on the predetermined data by using the DNN having the configuration selected so as to maximize the accuracy. As a result, this arithmetic unit finishes the arithmetic processing using the DNN by the target arithmetic end time while suppressing the decrease in the accuracy of the arithmetic result regardless of the state of the hardware that executes the DNN arithmetic. be able to. Therefore, it is not necessary to prepare an excessive margin of hardware resources for executing the DNN operation, so that the arithmetic unit can reduce the required hardware resources.
上記の実施形態または変形例による演算装置は、車両制御システム以外に適用されてもよい。例えば、上記の実施形態または変形例による演算装置は、屋外または屋内の所定の領域を監視するために設置される監視装置に適用され、その所定の領域が表された画像から検知対象の物体を検出するために利用されてもよい。また、上記の実施形態または変形例による演算装置は、物体検出以外にも利用されてもよい。例えば、演算装置が利用するDNNは、セマンティックセグメンテーション用のDNNであってもよい。あるいは、演算装置が利用するDNNは、上記の実施形態における運転計画部33による走行予定経路の生成に利用されるものであってもよい。
The arithmetic unit according to the above embodiment or modification may be applied to other than the vehicle control system. For example, the arithmetic unit according to the above embodiment or modification is applied to a monitoring device installed to monitor a predetermined area outdoors or indoors, and an object to be detected is detected from an image showing the predetermined area. It may be used to detect. Further, the arithmetic unit according to the above embodiment or modification may be used for other than object detection. For example, the DNN used by the arithmetic unit may be a DNN for semantic segmentation. Alternatively, the DNN used by the arithmetic unit may be used by the
また、上記の実施形態または変形例による、演算装置のプロセッサ23の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
Further, the computer program that realizes the functions of each part of the
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。 As described above, those skilled in the art can make various changes within the scope of the present invention according to the embodiment.
1 車両制御システム
2 カメラ
3 測距センサ
4 電子制御装置(演算装置)
21 通信インターフェース
22 メモリ
23 プロセッサ
31 選択部
32 物体検出部(演算部)
33 運転計画部
34 車両制御部
1
21
33
Claims (1)
前記複数のニューラルネットワークの構成の中から目標演算終了時間までに前記所定の演算処理が終了するニューラルネットワークの構成の候補を一つ以上選択し、前記所定の演算処理の結果についての精度が最大となるように、前記候補の中から前記所定の演算処理を実行するニューラルネットワークの構成を選択する選択部と、
選択された前記ニューラルネットワークの構成を用いて、所定のデータに対して前記所定の演算処理を実行する演算部と、
を有する演算装置。 A storage unit that stores the configurations of a plurality of neural networks for executing a predetermined arithmetic process,
From the configurations of the plurality of neural networks, one or more candidates for the configuration of the neural network whose predetermined arithmetic processing is completed by the target calculation end time are selected, and the accuracy of the result of the predetermined arithmetic processing is maximized. A selection unit that selects the configuration of the neural network that executes the predetermined arithmetic processing from the candidates, and
An arithmetic unit that executes the predetermined arithmetic processing on predetermined data using the selected neural network configuration, and
Arithmetic logic unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020067937A JP2021163433A (en) | 2020-04-03 | 2020-04-03 | Arithmetic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020067937A JP2021163433A (en) | 2020-04-03 | 2020-04-03 | Arithmetic processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021163433A true JP2021163433A (en) | 2021-10-11 |
Family
ID=78005109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020067937A Pending JP2021163433A (en) | 2020-04-03 | 2020-04-03 | Arithmetic processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021163433A (en) |
-
2020
- 2020-04-03 JP JP2020067937A patent/JP2021163433A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7052663B2 (en) | Object detection device, object detection method and computer program for object detection | |
JP7388971B2 (en) | Vehicle control device, vehicle control method, and vehicle control computer program | |
JP2020052695A (en) | Object detection apparatus, object detection method, and computer program for object detection | |
JP7077910B2 (en) | Bound line detection device and lane marking method | |
US11436815B2 (en) | Method for limiting object detection area in a mobile system equipped with a rotation sensor or a position sensor with an image sensor, and apparatus for performing the same | |
CN113435237B (en) | Object state recognition device, recognition method, and computer-readable recording medium, and control device | |
JP2021165914A (en) | Object state discrimination device, object state discrimination method, and computer program and control device for object state discrimination | |
JP7226368B2 (en) | Object state identification device | |
JP2020067896A (en) | Travelable direction detector and travelable direction detection method | |
JP7119839B2 (en) | OBJECT DETECTION DEVICE, OBJECT DETECTION METHOD AND VEHICLE CONTROL DEVICE | |
JP7381388B2 (en) | Signal lamp status identification device, signal lamp status identification method, computer program for signal lamp status identification, and control device | |
US20220319322A1 (en) | Drive assist apparatus and drive assist method | |
JP2021163433A (en) | Arithmetic processing unit | |
CN116448128A (en) | Travel route creation device, travel route creation method, and non-transitory computer-readable medium | |
JP2020050047A (en) | Object detection device | |
US11257239B2 (en) | Image selection device and image selection method | |
JP2023152109A (en) | Feature detection device, feature detection method and computer program for detecting feature | |
US11938939B1 (en) | Determining current state of traffic light(s) for use in controlling an autonomous vehicle | |
JP2021081985A (en) | Object detection device | |
JP7348874B2 (en) | Tilt angle detection device and control device | |
JP7484837B2 (en) | Land feature data collection device, land feature data collection method, and land feature data collection computer program | |
US20230024799A1 (en) | Method, system and computer program product for the automated locating of a vehicle | |
JP2022079954A (en) | Object detection apparatus | |
JP2021138338A (en) | Vehicle control system | |
JP2022074513A (en) | Calculation device |