(57)【要約】【課題】ニューラルネットワークを利用した演算を行う情報処理装置において、ハードウェアの簡素化を図る。【解決手段】情報処理装置は、複数の層からなるニューラルネットワークによるＤＮＮ演算を実行するＤＮＮ演算部と、ＤＮＮ演算において用いられる重みを格納する重み格納部１３とを備える。ＤＮＮ演算部において、非ゼロ値特定部１４１は、ニューラルネットワークの所定の層に入力されたデータのうち、所定の閾値（ゼロ）よりも大きい値を有するデータを演算対象データとして特定し、行列積再構成部１４２は、その演算対象データに対応する重みを重み格納部１３から取得する。そして、畳み込み演算部１４３は、特定した演算対象データと、重み格納部１３から取得した重みとに基づき、所定の層の演算を実行する。【選択図】図３
2020095463.tif 000002
【特許請求の範囲】
【請求項１】
複数の層からなるニューラルネットワークによるＤＮＮ演算を実行するＤＮＮ演算部と、
前記ＤＮＮ演算において用いられる重みを格納する重み格納部と、を備え、
前記ＤＮＮ演算部は、
前記ニューラルネットワークの所定の層に入力されたデータのうち、所定の閾値よりも大きい値を有するデータを演算対象データとして特定し、
前記演算対象データに対応する重みを前記重み格納部から取得し、
前記演算対象データと、前記重み格納部から取得した重みとに基づき、前記所定の層の演算を実行する、情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記閾値は０である、情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記閾値を設定する閾値設定部をさらに備え、
前記ＤＮＮ演算部は、前記所定の層に入力されたデータのうち、前記閾値設定部により設定された前記閾値よりも大きい値を有するデータを前記演算対象データとして特定する、情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
前記閾値設定部は、過去のデータに対する前記ＤＮＮ演算部の演算結果に基づいて、現在のデータに対する前記閾値を設定する、情報処理装置。
【請求項５】
請求項１に記載の情報処理装置において、
前記所定の層の演算結果におけるデータ数が所定の制限設定値を超過した場合、前記所定の層の演算結果の出力を制限するデータ出力制限部をさらに備える、情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
前記データ出力制限部は、前記所定の層の演算結果における各データの演算順序、各データの絶対値、各データに対応する重みの大きさの少なくともいずれか一つに基づいて、出力制限対象とするデータを選択する、情報処理装置。
【請求項７】
請求項１に記載の情報処理装置において、
前記ＤＮＮ演算部は、前記重み格納部から取得した重みが所定の重み閾値未満である場合、当該重みに基づく前記所定の層の演算を省略する、情報処理装置。
【請求項８】
請求項１から請求項７のいずれか一項に記載の情報処理装置と、
車両の行動計画を策定する行動計画策定部と、を備え、
前記情報処理装置は前記車両に搭載されており、
前記ＤＮＮ演算部は、前記車両の周囲状況に関するセンサ情報に基づいて前記ＤＮＮ演算を実行し、
前記行動計画策定部は、前記ＤＮＮ演算部の演算結果に基づいて前記車両の行動計画を策定する、車載制御装置。
【請求項９】
請求項８に記載の車載制御装置と、
前記車載制御装置と通信可能なサーバ装置と、を備え、
前記サーバ装置は、前記閾値を決定し、
前記車載制御装置は、前記サーバ装置により決定された前記閾値に基づいて、前記ＤＮＮ演算部のリソース配分を決定する、車両制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と、これを用いた車載制御装置および車両制御システムとに関する。
【背景技術】
【０００２】
従来、カメラの撮影画像や各種センサの情報から車両の周囲状況を認識し、その認識結果に基づいて様々な運転支援を行う技術が広く利用されている。こうした車両の運転支援技術において、近年では複雑な周囲状況に対して高精度な認識結果を得るために、人間の大脳における神経細胞の働きをモデル化したニューラルネットワークを利用した演算を行うことが提案されている。
【０００３】
一般に、ニューラルネットワークを利用して高精度な認識結果を得るためには、大量の演算処理が必要となる。例えば、１枚の撮影画像に対して１０００億回から１兆回程度の演算を行うものが知られている。しかしながら、車両に搭載して用いられる装置においてこのように大量の演算処理を行うことは、装置サイズや消費電力の観点から現実的ではない。したがって、少ない演算量でもニューラルネットワークを利用して高精度な認識結果を得られる技術が求められている。
【０００４】
本願発明の背景技術として、特許文献１が知られている。特許文献１には、前段の層からの出力から１つ以上の特徴量を検出して出力する検出層と、当該検出層からの出力を統合して出力する統合層とを交互に配置することにより構成される階層型ニューラルネットワークを用いた計算処理によって、入力画像中の所定のパターンを検出する情報処理装置において、検出層内の各ニューロンの出力値が所定の値以上であるニューロンのみ、その出力値のデータをメモリに格納し、メモリに格納されなかったニューロンの出力値については、代わりに所定の値を用いて演算を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３４６４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、入力画像が変化すると、それに応じて各ニューロンの出力値も変化するため、どのニューロンの出力値がメモリに格納されるかが一定ではない。したがって、多様な入力画像を適切に処理するためには、想定される最大の演算量に対応して情報処理装置を構成する必要があり、ハードウェアを簡素化することができない。
【課題を解決するための手段】
【０００７】
本発明による情報処理装置は、複数の層からなるニューラルネットワークによるＤＮＮ演算を実行するＤＮＮ演算部と、前記ＤＮＮ演算において用いられる重みを格納する重み格納部と、を備え、前記ＤＮＮ演算部は、前記ニューラルネットワークの所定の層に入力されたデータのうち、所定の閾値よりも大きい値を有するデータを演算対象データとして特定し、前記演算対象データに対応する重みを前記重み格納部から取得し、前記演算対象データと、前記重み格納部から取得した重みとに基づき、前記所定の層の演算を実行する。
本発明による車載制御装置は、上記の情報処理装置と、車両の行動計画を策定する行動計画策定部と、を備え、前記情報処理装置は前記車両に搭載されており、前記ＤＮＮ演算部は、前記車両の周囲状況に関するセンサ情報に基づいて前記ＤＮＮ演算を実行し、前記行動計画策定部は、前記ＤＮＮ演算部の演算結果に基づいて前記車両の行動計画を策定する。
本発明による車両制御システムは、上記の車載制御装置と、前記車載制御装置と通信可能なサーバ装置と、を備え、前記サーバ装置は、前記閾値を決定し、前記車載制御装置は、前記サーバ装置により決定された前記閾値に基づいて、前記ＤＮＮ演算部のリソース配分を決定する。
【発明の効果】
【０００８】
本発明によれば、ニューラルネットワークを利用した演算を行う情報処理装置において、ハードウェアの簡素化を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る車載制御装置の構成を示す図である。
【図２】ＤＮＮ演算部の概要図である。
【図３】本発明の第１の実施形態に係るＤＮＮ演算部の各演算部の機能ブロック図である。
【図４】ＤＮＮ演算部における各演算部の具体的な演算処理を説明する図である。
【図５】本発明の第２の実施形態に係るＤＮＮ演算部の各演算部の機能ブロック図である。
【図６】本発明の第２の実施形態における演算対象データの概要を説明する図である。
【図７】本発明の第３の実施形態に係るＤＮＮ演算部の各演算部の機能ブロック図である。
【図８】本発明の第３の実施形態におけるデータ出力制限の概要を説明する図である。
【図９】本発明の第３の実施形態におけるデータ出力制限の効果を説明する図である。
【図１０】本発明の第４の実施形態に係るＤＮＮ演算部の各演算部の機能ブロック図である。
【図１１】本発明の第５の実施形態に係る車両制御システムの構成を示す図である。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１は、本発明の一実施形態に係る車載制御装置の構成を示す図である。図１に示す車載制御装置１は、車両に搭載されて使用され、車両の周囲状況を検出するためのセンサとしてそれぞれ機能するカメラ２、ＬｉＤＡＲ（Light Detection and Ranging）３およびレーダ４と接続されている。車載制御装置１には、カメラ２が取得した車両周囲の撮影画像と、ＬｉＤＡＲ３およびレーダ４がそれぞれ取得した車両から周囲の物体までの距離情報とが入力される。なお、カメラ２、ＬｉＤＡＲ３およびレーダ４は、車両に複数ずつ搭載されており、これら複数のセンサがそれぞれ取得した撮影画像や距離情報が車載制御装置１に入力されるようにしてもよい。
【００１１】
車載制御装置１は、センサフュージョン部１１、センサ情報格納部１２、重み格納部１３、ＤＮＮ演算部１４および行動計画策定部１５の各機能ブロックを有する。センサフュージョン部１１、ＤＮＮ演算部１４および行動計画策定部１５は、例えばＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）等の演算処理回路や、これらと組み合わせて利用される各種プログラムを用いてそれぞれ構成される。また、センサ情報格納部１２および重み格納部１３は、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶装置を用いてそれぞれ構成される。なお、重み格納部１３およびＤＮＮ演算部１４により、車両の周囲状況を認識するための情報処理を行う情報処理装置１０が構成される。
【００１２】
カメラ２、ＬｉＤＡＲ３およびレーダ４からそれぞれ入力された撮影画像や距離情報は、車両の周囲状況に関するセンサ情報として、センサ情報格納部１２に格納される。なお、ＬｉＤＡＲ３およびレーダ４からそれぞれ入力される距離情報は、センサフュージョン部１１のセンサフュージョン処理によって統合された後、センサ情報格納部１２に格納される。ただし、センサフュージョン処理は必ずしも実施しなくてもよい。また、他のセンサからの情報をセンサ情報に加えてセンサ情報格納部１２に格納してもよいし、撮影画像と距離情報の一方のみをセンサ情報としてセンサ情報格納部１２に格納してもよい。
【００１３】
ＤＮＮ演算部１４は、センサ情報格納部１２からセンサ情報（撮影画像または距離情報）を読み出し、読み出したセンサ情報に対してＤＮＮ（Deep Neural Network）演算を実行する。このＤＮＮ演算部１４が行うＤＮＮ演算とは、人工知能の一形態に相当する演算処理であり、情報処理装置１０が担う情報処理を実現するものである。ＤＮＮ演算の実行に際して、ＤＮＮ演算部１４は、重み格納部１３から必要な重み情報を取得する。重み格納部１３には、不図示のサーバにより予め計算され、ＤＮＮ演算部１４がこれまでに実施したＤＮＮ演算の学習結果に基づいて更新された重み情報が、学習済みモデルとして格納されている。なお、ＤＮＮ演算部１４の詳細については、後で説明する。
【００１４】
行動計画策定部１５は、ＤＮＮ演算部１４によるＤＮＮ演算結果に基づいて車両の行動計画を策定し、行動計画情報を出力する。例えば、車両の運転者が行うブレーキ操作やハンドル操作を支援するための情報や、車両が自動運転を行うための情報を、行動計画情報として出力する。行動計画策定部１５から出力された行動計画情報は、車両内に設けられたディスプレイ上にその内容が表示されたり、車両に搭載された各種ＥＣＵ（Electronic Control Unit）に入力されて様々な車両制御に用いられたりする。なお、行動計画情報をサーバや他の車両に送信してもよい。
【００１５】
次に、ＤＮＮ演算部１４について説明する。図２は、ＤＮＮ演算部１４の概要図である。図２に示すように、ＤＮＮ演算部１４には、第１層演算部１４−１から第Ｎ層演算部１４−Ｎまで、Ｎ個の演算部（ただし、Ｎは３以上の自然数）が層状に並べられている。すなわち、ＤＮＮ演算部１４には、第１層演算部１４−１、第２層演算部１４−２、・・・、第ｋ層演算部１４−ｋ、・・・、第Ｎ層演算部１４−ＮからなるＮ層のニューラルネットワークが形成されている。ＤＮＮ演算部１４は、これらの演算部に対して重みをそれぞれ設定してＤＮＮ演算を実行することで、入力データ（センサ情報）から車両の周囲状況の認識結果を示す演算結果を算出して出力する。なお、図２に示したＮ層の各演算部のうち、最初の第１層演算部１４−１は入力層に相当し、最後の第Ｎ層演算部１４−Ｎは出力層に相当する。
【００１６】
図３は、本発明の第１の実施形態に係るＤＮＮ演算部１４の各演算部の機能ブロック図である。なお、ＤＮＮ演算部１４において、第１層演算部１４−１〜第Ｎ層演算部１４−Ｎは、いずれも同様の機能構成を有しているため、図３ではこれらを代表して、第ｋ層演算部１４−ｋの機能ブロックを示している。以下では、この第ｋ層演算部１４−ｋの機能ブロックを説明することで、本実施形態のＤＮＮ演算部１４を構成する全ての演算部についての説明を行う。
【００１７】
第ｋ層演算部１４−ｋは、非ゼロ値特定部１４１、行列積再構成部１４２、畳み込み演算部１４３、活性化演算部１４４を有している。
【００１８】
第ｋ層演算部１４−ｋに対する前層（第ｋ−１層）からの入力データは、非ゼロ値特定部１４１に入力される。この入力データには、前層の演算部での演算結果を表す複数のデータ値が含まれており、そのうちいくつかのデータ値は、前層の演算部において行われる後述の活性化演算によって０とされている。なお、第１層演算部１４−１の場合は、センサ情報格納部１２から読み出したセンサ情報が、前層からの入力データとして非ゼロ値特定部１４１に入力される。
【００１９】
非ゼロ値特定部１４１は、入力データに含まれる複数のデータ値の中で、非ゼロ値、すなわち０以外の値を有するデータ値の箇所を特定する。そして、特定した入力データにおける非ゼロ値の箇所を重み格納部１３に通知するとともに、０であるデータ値を入力データから廃棄する。これにより、入力データのうち非ゼロ値のみが、以降の演算対象データとして、非ゼロ値特定部１４１から行列積再構成部１４２に出力される。換言すると、非ゼロ値特定部１４１は、入力データに対する閾値を０とし、この閾値（＝０）よりも大きい値を有するデータを、以降の演算対象データとして特定する。
【００２０】
重み格納部１３には、入力データの各データ値に対する重みが格納されている。非ゼロ値特定部１４１から非ゼロ値の箇所の通知を受けると、これに応じて重み格納部１３は、格納されている重みのうち、非ゼロ値の箇所に対応する重みを抽出して出力する。これにより、非ゼロ値特定部１４１が演算対象データとして特定した非ゼロ値に対応する重みが重み格納部１３から出力され、行列積再構成部１４２において取得される。
【００２１】
行列積再構成部１４２は、非ゼロ値特定部１４１から出力された演算対象データと、重み格納部１３から取得した重みとに基づき、ＤＮＮ演算部１４におけるＮ層のニューラルネットワークのうち第ｋ層の演算を実行するための行列積を再構成する。ここでは、非ゼロ値特定部１４１から出力された演算対象データの各データ値と、重み格納部１３から取得した重みとの積和演算式を、第ｋ層の行列積として再構成する。
【００２２】
畳み込み演算部１４３は、行列積再構成部１４２により再構成された行列積を演算するための畳み込み演算を行う。この畳み込み演算部１４３が行う畳み込み演算により、第ｋ層演算部１４−ｋによる第ｋ層の演算が実施される。
【００２３】
活性化演算部１４４は、畳み込み演算部１４３の演算結果を活性化するための活性化演算を実施する。ここでは、例えばＲｅＬＵ（Rectified Linear Unit）関数と呼ばれる活性化関数を用いて、活性化演算を行う。ＲｅＬＵ関数とは、０未満の入力値に対しては０を出力し、０以上の値に対しては入力値をそのまま出力する関数である。なお、ＲｅＬＵ関数以外を用いて活性化演算を行ってもよい。この活性化演算部１４４が行う活性化演算により、畳み込み演算部１４３の演算結果における各データ値のうち、次層（第ｋ＋１層）での演算に及ぼす影響が小さいデータ値は０へと変換される。
【００２４】
活性化演算部１４４により活性化演算が行われた各データ値は、第ｋ層演算部１４−ｋから出力され、次層の入力データとなる。この次層の入力データには、前述したように、活性化演算によって０とされたデータ値が含まれている。
【００２５】
続いて、ＤＮＮ演算部１４における各演算部の具体的な演算処理について、図４を参照して以下に説明する。なお、図４でも図３と同様に、図２の第１層演算部１４−１〜第Ｎ層演算部１４−Ｎのうち、第ｋ層演算部１４−ｋの具体的な演算処理を代表例として示している。
【００２６】
第ｋ層演算部１４−ｋに対する前層からの入力データとして、例えば図４に示すように、９つのデータ値が順に入力されたとする。これらのデータ値には、０以外の値を有するａ，ｂ，ｃ，ｄ，ｅの各データ値と、４つのゼロ値とが含まれている。この場合、非ゼロ値特定部１４１では、ａ，ｂ，ｃ，ｄ，ｅの各データ値を非ゼロ値として特定し、これらの箇所を重み格納部１３に通知するとともに、これらのデータ値を以降の演算対象データとして、順に行列積再構成部１４２へ出力する。すなわち、非ゼロ値特定部１４１は、入力データに含まれる９つのデータ値のうち、４つのゼロ値を廃棄し、残りの５つの非ゼロ値のみを演算対象データとして行列積再構成部１４２へ出力する。
【００２７】
重み格納部１３には、入力データにおける９つのデータ値にそれぞれ対応して、９つの重みｗ１〜ｗ９が格納されている。非ゼロ値特定部１４１から非ゼロ値の箇所の通知を受けると、重み格納部１３は、通知されたａ，ｂ，ｃ，ｄ，ｅの各データ値に対応する重みｗ１，ｗ２，ｗ４，ｗ７，ｗ８を抽出し、行列積再構成部１４２に出力する。
【００２８】
行列積再構成部１４２は、非ゼロ値特定部１４１から演算対象データとして出力されたａ，ｂ，ｃ，ｄ，ｅの各データ値と、重み格納部１３から取得した重みｗ１，ｗ２，ｗ４，ｗ７，ｗ８との積和演算式を、第ｋ層の行列積として再構成し、畳み込み演算部１４３に出力する。畳み込み演算部１４３は、行列積再構成部１４２から出力された積和演算式により、ａ，ｂ，ｃ，ｄ，ｅの各データ値と、重みｗ１，ｗ２，ｗ４，ｗ７，ｗ８との積和演算を行い、第ｋ層の演算を実行する。
【００２９】
従来のＤＮＮ演算では、入力データに含まれる全てのデータ値を演算対象として各層の積和演算が実行されるため、上記のように入力データに９つのデータ値が含まれる場合には、各層の積和演算において９回の乗算が必要となる。したがって、これらの乗算を高速化のために並列処理で実施しようとすると、９つの乗算器が必要となる。
【００３０】
一方、本実施形態のＤＮＮ演算部１４によるＤＮＮ演算では、非ゼロ値のみを演算対象として各層の積和演算が実行されるため、各層の積和演算における乗算回数を従来よりも低減できる。例えば、上記のように入力データに９つのデータ値が含まれ、そのうち４つのデータ値が０である場合には、乗算回数を９回から５回に低減できる。したがって、５つの乗算器のみで並列処理を実現することができ、従来よりも乗算器の数を減らすことが可能となる。
【００３１】
なお、活性化関数にＲｅＬＵ関数を用いたＤＮＮ演算では、一般的に、活性化演算後のデータ値のおよそ半分が０であるという特徴を有することが知られている。したがって、本実施形態のＤＮＮ演算部１４では、各層の入力データに含まれるデータ値の数に応じて、各層の演算に割り当てる乗算器の数を予め決定しておくことができる。これにより、認識精度の劣化を抑制しつつ、ハードウェアを簡素化することが可能となる。
【００３２】
以上説明した本発明の第１の実施形態によれば、以下の作用効果を奏する。
【００３３】
（１）情報処理装置１０は、複数の層からなるニューラルネットワークによるＤＮＮ演算を実行するＤＮＮ演算部１４と、ＤＮＮ演算において用いられる重みを格納する重み格納部１３とを備える。ＤＮＮ演算部１４は、ニューラルネットワークの所定の層に入力されたデータのうち、所定の閾値（ゼロ）よりも大きい値を有するデータを演算対象データとして特定し（非ゼロ値特定部１４１）、その演算対象データに対応する重みを重み格納部１３から取得する（行列積再構成部１４２）。そして、特定した演算対象データと、重み格納部１３から取得した重みとに基づき、所定の層の演算を実行する（畳み込み演算部１４３）。このようにしたので、ニューラルネットワークを利用した演算を行う情報処理装置１０において、ハードウェアの簡素化を図ることができる。
【００３４】
（２）車載制御装置１は、情報処理装置１０と、車両の行動計画を策定する行動計画策定部１５とを備える。情報処理装置１０は車両に搭載されており、ＤＮＮ演算部１４は、車両の周囲状況に関するセンサ情報に基づいてＤＮＮ演算を実行する。行動計画策定部１５は、ＤＮＮ演算部１４の演算結果に基づいて車両の行動計画を策定する。このようにしたので、ＤＮＮ演算部１４の演算結果を利用して、車両の行動計画を適切に策定することができる。
【００３５】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本実施形態では、ＤＮＮ演算部１４において、ゼロ値付近のデータを演算対象データから除外する例を説明する。なお、本実施形態における車載制御装置１の構成、情報処理装置１０の構成、およびＮ個の演算部が層状に並べられたＤＮＮ演算部１４の構成は、第１の実施形態において図１、２でそれぞれ説明したものと同様である。そのため、以下ではこれらの説明を省略する。
【００３６】
図５は、本発明の第２の実施形態に係るＤＮＮ演算部１４の各演算部の機能ブロック図である。なお、本実施形態でも第１の実施形態と同様に、ＤＮＮ演算部１４において、第１層演算部１４−１〜第Ｎ層演算部１４−Ｎは、いずれも同様の機能構成を有しているため、図５ではこれらを代表して、第ｋ層演算部１４−ｋの機能ブロックを示している。以下では、この第ｋ層演算部１４−ｋの機能ブロックを説明することで、本実施形態のＤＮＮ演算部１４を構成する全ての演算部についての説明を行う。
【００３７】
本実施形態において、第ｋ層演算部１４−ｋは、第１の実施形態で説明した非ゼロ値特定部１４１、行列積再構成部１４２、畳み込み演算部１４３および活性化演算部１４４に加えて、さらに閾値設定部１４５、逆バイアス設定部１４６およびバイアス設定部１４７を有している。
【００３８】
閾値設定部１４５は、入力データに対する閾値を設定し、逆バイアス設定部１４６およびバイアス設定部１４７に通知する。逆バイアス設定部１４６は、入力データに含まれる各データ値から閾値設定部１４５により設定された閾値を減算することにより、入力データに逆バイアスをかける。逆バイアス設定部１４６によって逆バイアスがかけられた入力データは、非ゼロ値特定部１４１に入力される。
【００３９】
非ゼロ値特定部１４１は、第１の実施形態と同様に、逆バイアスがかけられた入力データにおいて非ゼロ値の箇所を特定し、重み格納部１３に通知するとともに、０であるデータ値を入力データから廃棄する。このとき、０以下のデータ値は全てゼロ値とみなして廃棄する。そして、廃棄されずに残ったデータ値を以降の演算対象データとして特定し、バイアス設定部１４７に出力する。
【００４０】
バイアス設定部１４７は、非ゼロ値特定部１４１から出力される各データ値に対して、閾値設定部１４５により設定された閾値を加算することにより、バイアスをかける。その結果、逆バイアス設定部１４６によってかけられた逆バイアスが解消され、元の入力データの値に戻される。ただし、非ゼロ値特定部１４１により廃棄された入力データについては元に戻されず、以降の演算対象データとはされない。バイアス設定部１４７によって元のデータ値に戻された演算対象データは、行列積再構成部１４２に入力される。これにより、閾値よりも大きい値を有する入力データが演算対象データとして特定され、第１の実施形態で説明したのと同様の演算処理が実行される。
【００４１】
図６は、本発明の第２の実施形態における演算対象データの概要を説明する図である。例えば、図５に示した第ｋ層演算部１４−ｋに対して、図６（ａ）に示すようなデータ分布を有する各データ値が入力データとして入力されたとする。図６（ａ）において、横軸はデータ値の大きさを表し、縦軸はデータの個数を表している。このとき、逆バイアス設定部１４６は、図６（ｂ）に示すように、閾値設定部１４５によって設定された閾値の分だけ入力データに逆バイアスをかけることで、図６（ａ）のデータ分布をマイナス方向にシフトさせる。
【００４２】
非ゼロ値特定部１４１は、図６（ｂ）のデータ分布に対して、０以下のデータ値を全てゼロ値とみなして廃棄する。これにより、図６（ｃ）に示すように、０以下の部分が除去されたデータ分布が形成される。
【００４３】
バイアス設定部１４７は、図６（ｄ）に示すように、閾値設定部１４５によって設定された閾値の分だけ、非ゼロ値特定部１４１によってゼロ値が廃棄されたデータにバイアスをかけることで、図６（ｃ）のデータ分布をプラス方向にシフトさせる。この図６（ｄ）のデータ分布を元の図６（ａ）のデータ分布と比較すると、閾値以下のデータは全て除去され、閾値よりも大きい値を有するデータのみが含まれている。これにより、図６（ｄ）のデータ分布を有する演算対象データでは、認識に影響の少ないゼロ値付近のデータを除去できることが分かる。
【００４４】
ここで、閾値設定部１４５では任意の閾値を設定することができる。例えば、カメラ２が所定のフレームレートで取得した撮影画像の各画素値をＤＮＮ演算部１４への入力データとする場合、各フレームの撮影画像は、前後のフレーム同士で相互に類似している。したがって、前フレームの撮影画像、すなわち過去の入力データに対するＤＮＮ演算部１４の演算結果に基づいて、現フレームの撮影画像、すなわち現在のデータに対する閾値を設定することが可能である。また、入力データに含まれる各データ値ごとに異なる閾値を設定してもよい。例えば、演算対象データに設定可能な残りのデータ数、すなわち乗算器の残り数に応じて閾値を段階的に引き上げることで、演算結果への影響が少ないデータ値から順に廃棄することができる。これ以外にも、任意の方法で閾値を設定し、その閾値よりも大きい値を有するデータをＤＮＮ演算部１４の各演算部における演算対象データとして特定することができる。なお、ＤＮＮ演算の各層ごとに、すなわちＤＮＮ演算部１４を構成する各演算部ごとに閾値を変化させるようにしてもよい。
【００４５】
以上説明した本発明の第２の実施形態によれば、第１の実施形態で説明したものに加えて、さらに以下の作用効果を奏する。
【００４６】
（３）情報処理装置１０は、閾値を設定する閾値設定部１４５をさらに備える。ＤＮＮ演算部１４は、ニューラルネットワークの所定の層に入力されたデータのうち、閾値設定部１４５により設定された閾値よりも大きい値を有するデータを演算対象データとして特定する。このようにしたので、ハードウェアの簡素化を図りつつ、さらなる処理性能の向上と認識精度劣化の抑制を図ることができる。
【００４７】
（４）閾値設定部１４５は、過去のデータに対するＤＮＮ演算部１４の演算結果に基づいて、現在のデータに対する閾値を設定することができる。このようにすれば、所定のフレームレートで取得される車両周囲の撮影画像のように、時系列で入力されるデータに対して、適切な閾値を容易に設定することが可能となる。
【００４８】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。本実施形態では、ＤＮＮ演算部１４の演算時間を一定時間内とする例を説明する。なお、第２の実施形態と同じく、本実施形態においても、車載制御装置１の構成、情報処理装置１０の構成、およびＮ個の演算部が層状に並べられたＤＮＮ演算部１４の構成は、第１の実施形態において図１、２でそれぞれ説明したものと同様である。そのため、以下ではこれらの説明を省略する。
【００４９】
図７は、本発明の第３の実施形態に係るＤＮＮ演算部１４の各演算部の機能ブロック図である。なお、本実施形態でも第１、第２の実施形態と同様に、ＤＮＮ演算部１４において、第１層演算部１４−１〜第Ｎ層演算部１４−Ｎは、いずれも同様の機能構成を有しているため、図７ではこれらを代表して、第ｋ層演算部１４−ｋの機能ブロックを示している。以下では、この第ｋ層演算部１４−ｋの機能ブロックを説明することで、本実施形態のＤＮＮ演算部１４を構成する全ての演算部についての説明を行う。
【００５０】
本実施形態において、第ｋ層演算部１４−ｋは、第１の実施形態で説明した非ゼロ値特定部１４１、行列積再構成部１４２、畳み込み演算部１４３および活性化演算部１４４に加えて、さらにデータ出力制限部１４８を有している。
【００５１】
データ出力制限部１４８は、予め設定された制限設定値に基づいて、活性化演算部１４４による活性化演算後の各データ値に対する出力制限を実施する。例えば、活性化演算後のデータ値のうち非ゼロ値の個数をカウントし、そのカウント数が制限設定値を超過した場合には、残りのデータ値を全て０に置き換える。これにより、次層の入力データに含まれるデータ値における非ゼロ値の個数が制限設定値以下となるように、データの出力制限を実施する。
【００５２】
図８は、本発明の第３の実施形態におけるデータ出力制限の概要を説明する図である。一般的に、ＤＮＮ演算部１４の各演算部におけるデータ出力数と次層での演算時間との間には、図８に示すような比例関係が成り立つ。すなわち、次層の入力データにおける非ゼロ値のデータの個数が多くなるほど、次層の演算で必要な乗算回数が増えるため、次層での演算時間が長くなる。こうした各演算部での演算時間の変化は、ＤＮＮ演算部１４全体でのＤＮＮ演算の実行時間に影響するため、データごとにＤＮＮ演算時間のばらつきが生じる。これは車両制御の不安定化につながるため、好ましくない。
【００５３】
そこで本実施形態では、データ出力制限部１４８を用いて、前述のようなデータの出力制限を実施する。その際、次層での演算に対して要求される演算時間に応じた制限設定値をデータ出力制限部１４８に設定する。これにより、図８に示すように、活性化演算後のデータにおける非ゼロ値のカウント数が制限設定値を超えると、データ値が０に置き換えられて以降のデータ出力が停止される。したがって、次層での演算時間が要求される演算時間を超えないように、データの出力数を制限することができる。
【００５４】
図９は、本発明の第３の実施形態におけるデータ出力制限の効果を説明する図である。図９（ａ）は、従来のデータ出力制限を実施しない場合のＤＮＮ演算時間と車両制御タイミングとの関係を示している。この場合は、入力される画像情報ごとにＤＮＮ演算時間の長さが変化するため、ＤＮＮ演算結果が得られるタイミングも画像情報ごとに変化する。その結果、ＤＮＮ演算結果に基づいて行われる車両制御の間隔が不定となり、これは車両制御の不安定化につながる。
【００５５】
図９（ｂ）は、本実施形態によるデータ出力制限を実施した場合のＤＮＮ演算時間と車両制御タイミングとの関係を示している。この場合は、入力される画像情報ごとにＤＮＮ演算時間の長さが一定であるため、ＤＮＮ演算結果が得られるタイミングも一定となる。その結果、ＤＮＮ演算結果に基づいて行われる車両制御の間隔が一定となり、車両制御を安定して行うことが可能となる。
【００５６】
なお、データ出力制限部１４８では、出力制限対象とするデータを様々な基準により選択することができる。例えば、各データの演算順序に応じて非ゼロ値の個数を順にカウントしていき、そのカウント数が制限設定値を超過したら、以降の演算順序のデータを出力制限対象とすることができる。また、各データの絶対値や、各データに対応する重みの大きさなどにより、出力制限対象とするデータを選択してもよい。例えば、各データを絶対値や対応する重みの大きさ順に並べたときに、その順番が制限設定値を超えるデータを出力制限対象とすることができる。さらに、これらを組み合わせて出力制限対象とするデータを選択してもよいし、他の基準を用いて出力制限対象とするデータを選択してもよい。活性化演算後のデータにおいて非ゼロ値であるデータの個数が制限設定値を超過したときに、データ出力制限部１４８から出力されるデータ数を制限設定値以下に制限することができれば、どのような基準で出力制限対象とするデータを選択しても構わない。
【００５７】
また、ＤＮＮ演算の各層ごとに、すなわちＤＮＮ演算部１４を構成する各演算部ごとに、データ出力制限部１４８に対して設定する制限設定値を変化させるようにしてもよい。例えば、ＤＮＮ演算部１４全体でのＤＮＮ演算の実行時間を定めておき、各層での演算負荷に応じて各層に割り当てる演算時間を設定することで、各演算部におけるデータ出力制限部１４８の制限設定値を定めることができる。このとき、入力データに応じて各演算部の制限設定値を動的に変化させてもよい。
【００５８】
さらに、データ出力制限部１４８においてデータ数をカウントせずに、各演算部での演算時間を直接測定し、測定した演算時間が制限設定値を超過したときに、当該演算部からのデータ出力を制限してもよい。例えば、各演算部での演算処理のサイクル数をカウントすることで、演算時間を直接測定することが可能となる。
【００５９】
以上説明した本発明の第３の実施形態によれば、第１の実施形態で説明したものに加えて、さらに以下の作用効果を奏する。
【００６０】
（５）情報処理装置１０は、ニューラルネットワークの所定の層の演算結果におけるデータ数が所定の制限設定値を超過した場合、所定の層の演算結果の出力を制限するデータ出力制限部１４８をさらに備える。このようにしたので、演算結果の出力間隔を一定として、制御の安定化を図ることができる。
【００６１】
（６）データ出力制限部１４８は、ニューラルネットワークの所定の層の演算結果における各データの演算順序、各データの絶対値、各データに対応する重みの大きさの少なくともいずれか一つに基づいて、出力制限対象とするデータを選択することができる。このようにすれば、ＤＮＮ演算に及ぼす影響度を考慮して、適切なデータを出力制限対象とすることができる。
【００６２】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。本実施形態では、ＤＮＮ演算部１４において重みの大きさを考慮して、演算対象データを絞り込む例を説明する。なお、第２、第３の実施形態と同じく、本実施形態においても、車載制御装置１の構成、情報処理装置１０の構成、およびＮ個の演算部が層状に並べられたＤＮＮ演算部１４の構成は、第１の実施形態において図１、２でそれぞれ説明したものと同様である。そのため、以下ではこれらの説明を省略する。
【００６３】
図１０は、本発明の第４の実施形態に係るＤＮＮ演算部１４の各演算部の機能ブロック図である。なお、本実施形態でも第１〜第３の実施形態と同様に、ＤＮＮ演算部１４において、第１層演算部１４−１〜第Ｎ層演算部１４−Ｎは、いずれも同様の機能構成を有しているため、図１０ではこれらを代表して、第ｋ層演算部１４−ｋの機能ブロックを示している。以下では、この第ｋ層演算部１４−ｋの機能ブロックを説明することで、本実施形態のＤＮＮ演算部１４を構成する全ての演算部についての説明を行う。
【００６４】
本実施形態において、第ｋ層演算部１４−ｋは、第１の実施形態で説明した非ゼロ値特定部１４１、行列積再構成部１４２、畳み込み演算部１４３および活性化演算部１４４に加えて、さらに重み制限部１４９を有している。
【００６５】
重み制限部１４９は、重み格納部１３から取得した各演算対象データの重みを予め設定された重み閾値と比較し、重み閾値未満の場合は、その重みを行列積再構成部１４２へ出力せずに廃棄する。行列積再構成部１４２では、非ゼロ値特定部１４１から出力された演算対象データのうち、重み制限部１４９により重みが廃棄された演算対象データについては、行列積の再構成を行わない。これにより、畳み込み演算部１４３では、閾値未満の重みに基づく第ｋ層の畳み込み演算が省略される。
【００６６】
ここで、重み制限部１４９に対しては任意の重み閾値を設定することができる。なお、ＤＮＮ演算の各層ごとに、すなわちＤＮＮ演算部１４を構成する各演算部ごとに、重み制限部１４９に対して設定する重み閾値を変化させるようにしてもよい。また、入力データに応じて各演算部の重み閾値を動的に変化させてもよい。
【００６７】
以上説明した本発明の第４の実施形態によれば、第１の実施形態で説明したものに加えて、以下の作用効果を奏する。
【００６８】
（７）ＤＮＮ演算部１４は、重み格納部１３から取得した重みが所定の重み閾値未満である場合、当該重みに基づく所定の層の演算を省略する。このようにしたので、ハードウェアの簡素化を図りつつ、さらなる処理性能の向上と認識精度劣化の抑制を図ることができる。
【００６９】
（第５の実施形態）
次に、本発明の第５の実施形態について説明する。本実施形態では、ＤＮＮ演算部１４において用いられる学習済みモデルや各種設定値を、外部のサーバ装置から取得する例を説明する。
【００７０】
図１１は、本発明の第５の実施形態に係る車両制御システムの構成を示す図である。図１１に示す車両制御システム１００は、車載制御装置１Ａとサーバ装置５を有する。車載制御装置１Ａは、第１の実施形態で説明した車載制御装置１と同様に、車両に搭載されて使用されるものであり、センサであるカメラ２、ＬｉＤＡＲ３およびレーダ４と接続されている。また、車載制御装置１Ａは、第１の実施形態で説明したセンサフュージョン部１１、センサ情報格納部１２、重み格納部１３、ＤＮＮ演算部１４および行動計画策定部１５の各機能ブロックに加えて、サーバ情報取得部１６をさらに備えている。
【００７１】
サーバ装置５は、車載制御装置１Ａが搭載されている車両の外部に設置されており、車載制御装置１Ａと通信ネットワーク６を介して通信可能である。サーバ装置５は、車載制御装置１Ａで用いられる情報として、学習済みモデル、入力データや重みに対する閾値、演算時間に応じた制限設定値などを決定し、これらの情報を車載制御装置１Ａに送信する。なお、通信ネットワーク６には、例えば携帯電話用の通信ネットワークや無線ＬＡＮ等を用いることができる。
【００７２】
サーバ情報取得部１６は、サーバ装置５から送信された情報を取得し、重み格納部１３やＤＮＮ演算部１４に出力する。重み格納部１３には例えば学習済みモデルが出力され、重み格納部１３に格納される。これにより、サーバ装置５において作成された学習済みモデルを用いて、ＤＮＮ演算部１４がＤＮＮ演算を行うことができる。また、ＤＮＮ演算部１４には、第２の実施形態で説明した入力データに対する閾値や、第３の実施形態で説明した制限設定値や、第４の実施形態で説明した重み閾値などが出力される。これらの情報に基づき、ＤＮＮ演算部１４は第２〜第４の実施形態でそれぞれ説明したような処理を行うことができる。
【００７３】
さらに、サーバ情報取得部１６がサーバ装置５から取得した入力データに対する閾値に基づいて、ＤＮＮ演算部１４のリソース配分を決定するようにしてもよい。例えば、ＤＮＮ演算部１４が有する複数の乗算器を各層の演算部に対してそれぞれ割り当てる際に、サーバ装置５が決定した閾値の大きさに応じて、割り当てる乗算器の数を変化させる。具体的には、大きい閾値が設定された層ほど演算対象データが少なくなるため、当該層の演算部に対して割り当てる乗算器の数を少なくする。反対に、小さい閾値が設定された層ほど演算対象データが多くなるため、当該層の演算部に対して割り当てる乗算器の数を多くする。このようにすれば、ＤＮＮ演算部１４を構成する各層の演算部に対して、最適なリソース配分とすることができる。
【００７４】
以上説明した本発明の第５の実施形態によれば、以下の作用効果を奏する。
【００７５】
（８）車両制御システム１００は、車載制御装置１Ａと、車載制御装置１Ａと通信可能なサーバ装置５とを備える。サーバ装置５は、ニューラルネットワークの所定の層に入力されるデータに対する閾値を決定する。車載制御装置１Ａは、サーバ装置５により決定された閾値に基づいて、ＤＮＮ演算部１４のリソース配分を決定することができる。このようにすれば、ＤＮＮ演算部１４に対して任意の閾値を容易に設定できるとともに、その閾値に応じてＤＮＮ演算部１４を適切なリソース配分とすることができる。
【００７６】
なお、以上説明した各実施形態では、車両に搭載される車載制御装置１，１Ａに含まれる情報処理装置１０について、車両の周囲状況に関するセンサ情報に基づいてＤＮＮ演算を実行し、車両の周囲状況の認識を行うものを例として説明したが、本発明はこれに限定されない。複数の層からなるニューラルネットワークによるＤＮＮ演算を実行するものであれば、様々な情報処理装置について本発明を適用可能である。
【００７７】
以上説明した各実施形態や各種変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、各実施形態や各種変形例は、単独で採用してもよいし、任意に組み合わせてもよい。さらに、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００７８】
１，１Ａ：車載制御装置、２：カメラ、３：ＬｉＤＡＲ、４：レーダ、５：サーバ装置、６：通信ネットワーク、１０：情報処理装置、１１：センサフュージョン部、１２：センサ情報格納部、１３：重み格納部、１４：ＤＮＮ演算部、１５：行動計画策定部、１６：サーバ情報取得部、１４１：非ゼロ値特定部、１４２：行列積再構成部、１４３：畳み込み演算部、１４４：活性化演算部、１４５：閾値設定部、１４６：逆バイアス設定部、１４７：バイアス設定部、１４８：データ出力制限部、１４９：重み制限部
【図１】
2020095463.tif 000003
【図２】
2020095463.tif 000004
【図３】
2020095463.tif 000005
【図４】
2020095463.tif 000006
【図５】
2020095463.tif 000007
【図６】
2020095463.tif 000008
【図７】
2020095463.tif 000009
【図８】
2020095463.tif 000010
【図９】
2020095463.tif 000011
【図１０】
2020095463.tif 000012
【図１１】
2020095463.tif 000013