(57)【要約】【課題】利用可能なリソースが制限される場合でも、物体検出処理を目標時間内に終了できる物体検出装置を提供する。【解決手段】物体検出装置は、センサ２から得たセンサ信号をニューラルネットワークに入力することで車両１０の周囲に存在する物体を検出し、ニューラルネットワークは、センサ信号が入力される入力層と、物体の検出結果を出力する出力層と、入力層と出力層との間に接続される複数の層とを有し、複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、その層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有する検出部３４と、検出部３４が利用可能な電力量及び計算リソースの少なくとも何れかに応じて、ニューラルネットワークの少なくとも一つの層のそれぞれにおける複数の部分ネットワークのうち、物体の検出に用いられる部分ネットワークの数を制御するネットワーク制御部（３２、３３）とを有する。【選択図】図３
2020052667.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載されたセンサから得られるセンサ信号をニューラルネットワークに入力することで前記車両の周囲に存在する物体を検出し、前記ニューラルネットワークは、前記センサ信号が入力される入力層と、前記物体の検出結果を出力する出力層と、前記入力層と前記出力層との間に接続される複数の層とを有し、前記複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、当該層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有する検出部と、
前記検出部が利用可能な電力量及び前記検出部が利用可能な計算リソースの少なくとも何れかに応じて、前記少なくとも一つの層のそれぞれにおける前記複数の部分ネットワークのうち、前記検出部が前記物体を検出する際に用いられる部分ネットワークの数を制御するネットワーク制御部と、
を有する物体検出装置。
【請求項２】
前記ネットワーク制御部は、前記検出部が利用可能な電力量及び前記検出部が利用可能な計算リソースの少なくとも何れかに応じて、前記検出部が前記物体を検出する際の目標計算量を求め、前記目標計算量に応じて、前記少なくとも一つの層のそれぞれにおける前記複数の部分ネットワークのうち、前記検出部が前記物体を検出する際に用いられる部分ネットワークの数を制御する、請求項１に記載の物体検出装置。
【請求項３】
前記目標計算量と、前記少なくとも一つの層のそれぞれについて、前記複数の部分ネットワークのうち、前記検出部が前記物体を検出する際に用いられる部分ネットワークとの関係を表すテーブルを記憶する記憶部をさらに有し、
前記ネットワーク制御部は、前記テーブルを参照して、前記目標計算量に応じて、前記少なくとも一つの層のそれぞれについて、前記複数の部分ネットワークのうち、前記検出部が前記物体を検出する際に用いられる部分ネットワークを決定する、請求項２に記載の物体検出装置。
【請求項４】
車両に搭載されたセンサから得られるセンサ信号をニューラルネットワークに入力することで前記車両の周囲に存在する物体を検出し、前記ニューラルネットワークは、前記センサ信号が入力される入力層と、前記物体の検出結果を出力する出力層と、前記入力層と前記出力層との間に接続される複数の層とを有し、前記複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、当該層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有し、
前記物体の検出に利用可能な電力量及び前記物体の検出に利用可能な計算リソースの少なくとも何れかに応じて、前記少なくとも一つの層のそれぞれにおける前記複数の部分ネットワークのうち、前記物体を検出する際に用いられる部分ネットワークの数を制御する、
物体検出方法。
【請求項５】
車両に搭載されたセンサから得られるセンサ信号から検出された前記車両の周囲の物体の位置を表す情報をニューラルネットワークを入力することで前記車両の制御情報を求め、前記ニューラルネットワークは、前記車両の周囲の物体の位置を表す情報が入力される入力層と、前記制御情報を出力する出力層と、前記入力層と前記出力層との間に接続される複数の層とを有し、前記複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、当該層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有する制御情報決定部と、
前記制御情報決定部が利用可能な電力量及び前記制御情報決定部が利用可能な計算リソースの少なくとも何れかに応じて、前記少なくとも一つの層のそれぞれにおける前記複数の部分ネットワークのうち、前記制御情報決定部が前記制御情報を求める際に用いられる部分ネットワークの数を制御するネットワーク制御部と、
を有する車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体を検出する物体検出装置及び物体検出方法ならびに車両制御装置に関する。
【背景技術】
【０００２】
画像に表された物体を検出する技術が研究されている。近年では、物体を検出するために、いわゆるディープニューラルネットワーク（以下、単にＤＮＮと呼ぶ）を用いることで、検出精度を向上する技術が提案されている。そしてそのようなＤＮＮにおいて、同一の構造を持つ部分ネットワークを並列に設け、入力に対して各部分ネットワークによる処理結果の和をとるブロック(ResNeXtモジュール)を設けることで、ハイパーパラメータ数を減少させる技術が提案されている（例えば、非特許文献１を参照）。
【０００３】
また、ＤＮＮを学習する際に、一部の層のモジュールを確率的にランダムに短絡することで、ＤＮＮの学習に要する時間を短出するとともに、ＤＮＮの汎化性を向上させる技術が提案されている（例えば、非特許文献２を参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Saining Xie他、「Aggregated Residual Transformations for Deep Neural Networks」、CVPR2017、2017年
【非特許文献２】Gao Huang他、「Deep Networks with Stochastic Depth」、ECCV2016、2016年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の技術でも、ＤＮＮを用いた物体検出が行われるときには、設計時に予め決定されたネットワーク全体を用いて物体検出処理が実行される。そのため、ＤＮＮを用いた物体検出処理には、ある程度の計算リソースが必要となり、また物体検出処理に要する演算コストを制御することは困難である。一方、利用可能な計算リソースの総量及び利用可能な総電力量が制限される演算装置がある。このような演算装置でＤＮＮを用いた物体検出処理を実行する場合、この演算装置と同じ電源から電力供給される他の機器の電力使用状況またはこの演算装置における他の演算処理の実行状況に応じて、ＤＮＮによる演算処理に利用可能な電力量または利用可能な計算リソース（以下、単に利用可能なリソースと呼ぶことがある）が不足することがある。そしてその結果として、ＤＮＮを用いた物体検出処理を目標時間内に終了することが困難となることがある。
【０００６】
そこで、本発明は、利用可能なリソースが制限される場合でも、物体検出処理を目標時間内に終了できる物体検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施形態によれば、物体検出装置が提供される。この物体検出装置は、車両に搭載されたセンサから得られるセンサ信号をニューラルネットワークに入力することで車両の周囲に存在する物体を検出し、ニューラルネットワークは、センサ信号が入力される入力層と、物体の検出結果を出力する出力層と、入力層と出力層との間に接続される複数の層とを有し、複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、その層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有する検出部と、検出部が利用可能な電力量及び検出部が利用可能な計算リソースの少なくとも何れかに応じて、少なくとも一つの層のそれぞれにおける複数の部分ネットワークのうち、検出部が物体を検出する際に用いられる部分ネットワークの数を制御するネットワーク制御部とを有する。
【０００８】
この物体検出装置において、ネットワーク制御部は、検出部が利用可能な電力量及び検出部が利用可能な計算リソースの少なくとも何れかに応じて、検出部が物体を検出する際の目標計算量を求め、目標計算量に応じて、ニューラルネットワークの少なくとも一つの層のそれぞれにおける複数の部分ネットワークのうち、検出部が物体を検出する際に用いられる部分ネットワークの数を制御することが好ましい。
【０００９】
この場合において、物体検出装置は、目標計算量と、ニューラルネットワークの少なくとも一つの層のそれぞれについて、複数の部分ネットワークのうち、検出部が物体を検出する際に用いられる部分ネットワークとの関係を表すテーブルを記憶する記憶部をさらに有することが好ましい。そしてネットワーク制御部は、そのテーブルを参照して、目標計算量に応じて、ニューラルネットワークの少なくとも一つの層のそれぞれについて、複数の部分ネットワークのうち、検出部が物体を検出する際に用いられる部分ネットワークを決定することが好ましい。
【００１０】
本発明の他の形態によれば、物体検出方法が提供される。この物体検出方法は、車両に搭載されたセンサから得られるセンサ信号をニューラルネットワークに入力することで車両の周囲に存在する物体を検出し、ニューラルネットワークは、センサ信号が入力される入力層と、物体の検出結果を出力する出力層と、入力層と出力層との間に接続される複数の層とを有し、複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、その層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有し、物体の検出に利用可能な電力量及び物体の検出に利用可能な計算リソースの少なくとも何れかに応じて、ニューラルネットワークの少なくとも一つの層のそれぞれにおける複数の部分ネットワークのうち、物体を検出する際に用いられる部分ネットワークの数を制御することを含む。
【００１１】
本発明のさらに他の形態によれば、車両制御装置が提供される。この車両制御装置は、車両に搭載されたセンサから得られるセンサ信号から検出された車両の周囲の物体の位置を表す情報をニューラルネットワークを入力することで車両の制御情報を求め、ニューラルネットワークは、車両の周囲の物体の位置を表す情報が入力される入力層と、車両の制御情報を出力する出力層と、入力層と出力層との間に接続される複数の層とを有し、複数の層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、その層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有する制御情報決定部と、制御情報決定部が利用可能な電力量及び制御情報決定部が利用可能な計算リソースの少なくとも何れかに応じて、ニューラルネットワークの少なくとも一つの層のそれぞれにおける複数の部分ネットワークのうち、制御情報決定部が車両の制御情報を求める際に用いられる部分ネットワークの数を制御するネットワーク制御部とを有する。
【発明の効果】
【００１２】
本発明に係る物体検出装置は、利用可能なリソースが制限される場合でも、物体検出処理を目標時間内に終了できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】物体検出装置が実装される車両制御システムの概略構成図である。
【図２】物体検出装置の一つの実施形態である電子制御装置のハードウェア構成図である。
【図３】物体検出処理を含む車両制御処理に関する、電子制御装置のプロセッサの機能ブロック図である。
【図４】識別器として利用されるＤＮＮが有する可変層の概略構成図である。
【図５】複数の可変層を含む、ＤＮＮの構造の一部の例を示す図である。
【図６】識別器制御部により実行される識別器制御処理の動作フローチャートである。
【図７】物体検出処理を含む車両制御処理の動作フローチャートである。
【発明を実施するための形態】
【００１４】
以下、図を参照しつつ、物体検出装置について説明する。この物体検出装置は、車両に搭載されたカメラにより得られた画像から、車両の周囲に存在する物体を検出するための識別器としてＤＮＮを利用する。物体検出装置が利用するＤＮＮは、画像が入力される入力層と、物体の検出結果を出力する出力層と、入力層と出力層との間に接続される複数の隠れ層とを有し、複数の隠れ層のうちの少なくとも一つの層は、同一の構造を持ち、かつ、その隠れ層に入力される信号に対して互いに並列に演算する複数の部分ネットワークを有する可変層として構成される。そしてこの物体検出装置は、利用可能なリソースに応じて１回の物体検出処理を実行する際の目標計算量を求め、その目標計算量に応じて、少なくとも一つの可変層のそれぞれについておける複数の部分ネットワークのうち、物体検出処理に利用される部分ネットワークの数を制御する。これにより、この物体検出装置は、利用可能なリソースが制限される場合でも、物体検出処理を目標時間内に終了することができる。
【００１５】
以下では、物体検出装置を、車両制御システムに適用した例について説明する。この例では、物体検出装置は、車両に搭載されたカメラにより得られた画像に対して物体検出処理を実行することで、車両の周囲に存在する各種の物体、例えば、他の車両、人、道路標識または道路標示などを検出し、その検出結果に基づいて車両を自動運転制御する。
【００１６】
図１は、物体検出装置が実装される車両制御システムの概略構成図である。また図２は、物体検出装置の一つの実施形態である電子制御装置のハードウェア構成図である。本実施形態では、車両１０に搭載され、かつ、車両１０を制御する車両制御システム１は、車両１０の周囲を撮影するためのカメラ２と、電力センサ３と、物体検出装置の一例である電子制御装置（ＥＣＵ）４とを有する。カメラ２と、電力センサ３と、ＥＣＵ４とは、コントローラエリアネットワークといった規格に準拠した車内ネットワーク５を介して通信可能に接続される。
【００１７】
カメラ２は、所定の検知範囲内に存在する物体を検出するためのセンサである撮像部の一例であり、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された２次元検出器と、その２次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。そしてカメラ２は、車両１０の前方を向くように、例えば、車両１０の車室内に取り付けられる。そしてカメラ２は、所定の撮影周期（例えば1/30秒〜1/10秒）ごとに車両１０の前方領域を撮影し、その前方領域が写った画像を生成する。カメラ２により得られた画像は、カラー画像であってもよく、あるいは、グレー画像であってもよい。なお、カメラ２により生成された画像は、センサ信号の一例である。
【００１８】
カメラ２は、画像を生成する度に、その生成した画像を、車内ネットワーク５を介してＥＣＵ４へ出力する。
【００１９】
電力センサ３は、電力測定部の一例であり、ＥＣＵ４へ電力を供給する車載バッテリ６から各機器へ供給される単位時間当たりの電力量を所定の周期ごとに測定する。そして電力センサ３は、測定した電力量を表す信号を、車内ネットワーク５を介してＥＣＵ４へ出力する。なお、電力センサ３は、複数設けられてもよい。そして複数の電力センサ３のそれぞれは、車載バッテリ６から電力供給を受ける各機器の何れかに設けられ、その機器へ供給される単位時間当たりの電力量を所定の周期ごとに測定し、測定した電力量を表す信号を、車内ネットワーク５を介してＥＣＵ４へ出力すればよい。
【００２０】
ＥＣＵ４は、車両１０を制御する。本実施形態では、ＥＣＵ４は、カメラ２により得られた時系列の一連の画像から検出された物体に基づいて車両１０を自動運転するよう、車両１０を制御する。そのために、ＥＣＵ４は、通信インターフェース２１と、メモリ２２と、プロセッサ２３とを有する。
【００２１】
通信インターフェース２１は、通信部の一例であり、ＥＣＵ４を車内ネットワーク５に接続するためのインターフェース回路を有する。すなわち、通信インターフェース２１は、車内ネットワーク５を介して、カメラ２及び電力センサ３と接続される。そして通信インターフェース２１は、カメラ２から画像を受信する度に、受信した画像をプロセッサ２３へわたす。また通信インターフェース２１は、電力センサ３から測定した電力量を表す信号を受信する度に、その信号をプロセッサ２３へわたす。
【００２２】
メモリ２２は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ２２は、ＥＣＵ４のプロセッサ２３により実行される物体検出処理において使用される各種のデータ、例えば、カメラ２から受信した画像、電力センサ３により測定された電力量、物体検出処理で利用される識別器を特定するための各種パラメータ、利用可能なリソースと、プロセッサ２３が１秒当たりに実行可能な計算量（以下、単に実行可能計算量と呼ぶ）との関係を表す参照テーブル、及び、目標計算量と物体検出処理に利用される部分ネットワークの関係を表す参照テーブルをなどを記憶する。さらに、メモリ２２は、地図情報を記憶してもよい。
【００２３】
プロセッサ２３は、制御部の一例であり、１個または複数個のＣＰＵ(Central Processing Unit)及びその周辺回路を有する。プロセッサ２３は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。そしてプロセッサ２３は、車両１０が走行している間、カメラ２から画像を受信する度に、受信した画像に対して物体検出処理を含む車両制御処理を実行する。そしてプロセッサ２３は、検出された車両１０の周囲の物体に基づいて、車両１０を自動運転するよう、車両１０を制御する。
【００２４】
図３は、物体検出処理を含む車両制御処理に関する、ＥＣＵ４のプロセッサ２３の機能ブロック図である。プロセッサ２３は、リソース量算出部３１と、目標計算量算出部３２と、識別器制御部３３と、物体検出部３４と、運転計画部３５と、車両制御部３６とを有する。プロセッサ２３が有するこれらの各部は、例えば、プロセッサ２３上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ２３が有するこれらの各部は、プロセッサ２３に設けられる、専用の演算回路であってもよい。また、プロセッサ２３が有するこれらの各部のうち、リソース量算出部３１、目標計算量算出部３２、識別器制御部３３及び物体検出部３４が、物体検出処理を実行する。
【００２５】
リソース量算出部３１は、所定の周期ごとに、プロセッサ２３が有する計算リソースの総量のうち、物体検出処理に利用可能な計算リソース量を算出する。
【００２６】
例えば、リソース量算出部３１は、プロセッサ２３のアイドル率及びメモリ２２のメモリ利用可能量を、物体検出処理に利用可能な計算リソース量として算出する。リソース量算出部３１は、例えば、プロセッサ２３のアイドル率を、1からプロセッサ２３の稼働率を減じることで算出する。プロセッサ２３の稼働率は、例えば、単位時間当たりの実行命令数をプロセッサ２３の単位時間当たりの実行可能命令数で除した値とすることで算出できる。あるいは、プロセッサ２３のアイドル率は、単位時間tu当たりのプロセッサ２３のアイドル時間tiを、その単位時間tuで除した値(ti/tu)とすることができる。また、リソース量算出部３１は、メモリ２２の全メモリ容量から、メモリ２２において現在利用中のメモリ量を減じた値を、メモリ利用可能量として算出できる。
【００２７】
リソース量算出部３１は、アイドル率及びメモリ利用可能量を算出する度に、アイドル率及びメモリ利用可能量を目標計算量算出部３２へ通知する。
【００２８】
目標計算量算出部３２は、識別器制御部３３とともにネットワーク制御部を構成し、所定の周期ごとに、物体検出処理に利用可能な計算リソース量（プロセッサ２３のアイドル率及びメモリ２２のメモリ利用可能量）と、電力センサ３により測定された電力量から求められる、物体検出処理に利用可能な電力量とに基づいて、物体検出部３４による、カメラ２により得られた画像１枚当たりの目標計算量をもとめる。目標計算量は、目標時間内に物体検出処理が終了するように（この例では、画像の取得周期ごとに物体検出処理が終了するように）決定される。なお、物体検出処理に利用可能な電力量は、車載バッテリ６が供給可能な単位時間当たりの電力量の最大値から、電力センサ３により測定された電力量を減じた値とすることができる。なお、車載バッテリ６が供給可能な単位時間当たりの電力量の最大値は、例えば、メモリ２２に予め記憶される。
【００２９】
例えば、目標計算量算出部３２は、メモリ２２に予め記憶された、物体検出処理に利用可能なリソース（計算リソース及び電力量）と実行可能計算量との関係を表す参照テーブルを参照して、物体検出処理に利用可能なリソースに対応する１秒当たりの実行可能計算量をもとめる。そして目標計算量算出部３２は、実行可能計算量を、全ての部分ネットワークが物体検出処理に利用される場合の物体検出部３４の１秒当たりの演算量（以下、最大必要演算量と呼ぶ）と比較する。なお、最大必要演算量は、画像１枚当たりに要する、全ての部分ネットワークが物体検出処理に利用される場合の物体検出部３４の演算量に、１秒当たりに物体検出部３４が処理する画像の枚数を乗じた値となる。
【００３０】
実行可能計算量が最大必要演算量以上となる場合、目標計算量算出部３２は、目標計算量を、全ての部分ネットワークが物体検出処理に利用される場合の画像１枚当たりに要する物体検出部３４の演算量に設定する。一方、実行可能計算量が最大必要演算量未満となる場合、目標計算量算出部３２は、実行可能計算量を１秒当たりに物体検出部３４が処理する画像の枚数で除した値を、目標計算量として設定する。
【００３１】
目標計算量算出部３２は、目標計算量を求める度に、その目標計算量を識別器制御部３３へ通知する。
【００３２】
識別器制御部３３は、所定の周期ごとに、目標計算量に基づいて、物体検出部３４により物体の検出に利用される識別器として用いられるＤＮＮが有する複数の部分ネットワークのうちの物体検出処理に利用される部分ネットワークの数を制御する。なお、識別器として利用されるＤＮＮは、プロセッサ２３上で動作する物体検出処理用のコンピュータプログラムによりソフトウェア的に実装される。しかし、識別器として利用されるＤＮＮは、プロセッサ２３が有する専用の演算回路として実装されてもよい。
【００３３】
本実施形態では、識別器として利用されるＤＮＮは、例えば、Single Shot MultiBox Detector、Faster R-CNN、VGG-19またはAlexNetといった、コンボリューションニューラルネットワーク（ＣＮＮ）型のアーキテクチャを持つＤＮＮとすることができる。あるいは、識別器として利用されるＤＮＮは、Fully Convolutional Networkといった、入力された画像から、その画像の各画素について、その画素に表される可能性の有る物体を識別するセグメンテーション用のＣＮＮアーキテクチャを持つＤＮＮであってもよい。
【００３４】
すなわち、本実施形態で識別器として利用されるＤＮＮは、画像が入力される入力層と、物体検出の結果を出力する出力層と、入力層と出力層との間に接続される複数の隠れ層とを有する。そして複数の隠れ層には、畳み込み層及びプーリング層が含まれる。さらに、複数の隠れ層には、全結合層が含まれてもよい。
【００３５】
さらに、本実施形態では、ＤＮＮが有する複数の隠れ層のうちの何れか一つ以上の層において、同一の構造を持ち、かつ、その層に入力される信号に対して互いに並列に演算する複数の部分ネットワークが設けられる可変層として形成される。また、複数の部分ネットワークが同一の構造を持つとは、その複数の部分ネットワークのそれぞれに入力されるデータが同一であり、かつ、入力されるデータに対して同じ種類の演算（例えば、畳み込みなど）を実行することをいう。
【００３６】
図４は、識別器として利用されるＤＮＮが有する一つの可変層の概略構成図である。この例では、ＤＮＮの入力側から順にi番目(iは1以上の整数)の可変層４００に、互いに並列に、可変層４００の上流側の層により得られたfeature map xiに対して畳み込み演算を行う複数の畳み込みモジュールTi1(xi)〜Tini(xi)(niは、2以上の整数)が設けられる。これらの畳み込みモジュールは、複数の部分ネットワークの一例である。
【００３７】
畳み込みモジュールTi1(xi)〜Tini(xi)のそれぞれは、互いに同一の構造を持つ。そして畳み込みモジュールTi1(xi)〜Tini(xi)のそれぞれは、スイッチSi1〜Siniを介して可変層４００の上流側の層と下流側の層との間に接続される。畳み込みモジュールTi1(xi)〜Tini(xi)は、それぞれ、複数の画像を含む教師データに基づいて、誤差逆伝搬法といった学習手法に従って予め学習される。例えば、ＤＮＮが学習される際に、スイッチSi1〜Siniのうち、互いに異なる目標計算量ごとに、その目標計算量に応じたスイッチのみがオンにされ、畳み込みモジュールTi1(xi)〜Tini(xi)のうちのオンとなるスイッチに対応する畳み込みモジュールのみがＤＮＮに接続される。その上で、教師データを用いてＤＮＮが学習される。これにより、畳み込みモジュールTi1(xi)〜Tini(xi)のうちの一部の畳み込みモジュールのみが物体検出処理に利用される場合でも、ＤＮＮは、物体の検出精度の低下を抑制できる。
【００３８】
可変層４００では、畳み込みモジュールTi1(xi)〜Tini(xi)のうち、対応するスイッチがオンとなる畳み込みモジュールの出力の和が計算される。そしてその和に対して、畳み込み演算を実施した畳み込みモジュールの数に対する可変層４００が有する畳み込みモジュールの総数の比(ni/ΣSbk)、ただし、ΣSbk≠0、Sbk(k=1,...,ni)は、スイッチSikがオンの時に1となり、スイッチSikがオフの時に0となるbool変数である)が乗じられることで得られる値とxiとの和が、feature map xi+iとして出力される。なお、スイッチSi1〜Siniの全てがオフとされる場合には、入力されたfeature map xiそのものがfeature map xi+iとなる。そしてfeature map xi+iが、次の層に入力される。
【００３９】
なお、識別器として利用されるＤＮＮは、図４に示されるような可変層を２以上有していてもよい。
【００４０】
図５は、複数の可変層を含む、ＤＮＮの構造の一部の例を示す図である。図５に示されるように、ＤＮＮ５００には、複数の可変層５０１−１〜５０１−ｄ(dは2以上の整数)が含まれる。各可変層は、２以上の畳み込みモジュールを含む。また、図５において、図示は省略されているが、連続する二つの可変層の間にプーリング層といった他の層が設けられてもよい。複数の可変層５０１−１〜５０１−ｄのそれぞれに含まれる畳み込みモジュールの数は同じでもよく、あるいは、互いに異なっていてもよい。さらに、ＤＮＮ５００が１以上の全結合層を有する場合、複数の可変層５０１−１〜５０１−ｄのうちの何れか一つ以上が全結合層であってもよい。例えば、最も下流側の可変層５０１−ｄが全結合層であってもよい。この場合、全結合層となる可変層に含まれる複数の部分ネットワークのそれぞれは、上流側の層が有する複数のニューロンの全ての出力値を入力として一つの出力値を演算するように構成されてもよい。また、全結合層が可変層となる場合には、特定の種類の検出対象物体に関する検出結果を出力するためのニューロンが、目標計算量に応じて物体検出処理に利用されるか否かが切り替えられる部分ネットワークとなっていてもよい。この場合には、目標計算量が少ないほど、検出対象となる物体の種類の数が減少する。
【００４１】
識別器制御部３３は、各可変層について、スイッチSi1〜Sini(i=1,2,...,d)のうち、目標計算量に応じて使用される部分ネットワークに対応するスイッチをオンにし、他のスイッチをオフにする。そのために、識別器制御部３３は、例えば、メモリ２２に予め記憶された、目標計算量とオンにするスイッチの組み合わせとの関係を表す参照テーブルを参照することで、目標計算量に対応する、オンにするスイッチの組み合わせを特定できる。そして識別器制御部３３は、特定した組み合わせに含まれる各スイッチをオンにし、他のスイッチをオフにする。これにより、識別器制御部３３は、目標計算量に対応する部分ネットワークが物体検出処理に使用されるようになる。なお、目標計算量が多いほど、オンになるスイッチの数、すなわち、物体検出に使用される部分ネットワークの数が多くなるように、参照テーブルは設定されることが好ましい。そして例えば、目標計算量が、画像１枚当たりに要する、全ての部分ネットワークが物体検出処理に利用される場合の物体検出部３４の演算量に相当する計算量である場合には、全ての部分ネットワークが物体検出処理に利用されるように、識別器制御部３３は、部分ネットワークの数を制御することが好ましい。これにより、プロセッサ２３は、目標計算量が大きくなるほど、物体検出の精度を向上でき、一方、目標計算量が小さくなるほど、物体検出に要する演算量を低減できる。そのため、プロセッサ２３は、物体検出に利用可能な計算リソースを十分に確保することが困難な場合でも、物体検出の精度の低下を抑制しつつ、物体検出処理をその実行周期にて完了させることができる。すなわち、プロセッサ２３は、物体検出処理を目標時間内に完了させることができる。
【００４２】
図６は、識別器制御部３３により実行される識別器制御処理の動作フローチャートである。リソース量算出部３１、目標計算量算出部３２及び識別器制御部３３は、所定の周期（例えば、1/10秒〜1秒など）ごとに、図６に示される動作フローチャートに従って、識別器制御処理を実行する。
【００４３】
プロセッサ２３のリソース量算出部３１は、プロセッサ２３の動作状況に基づいて、物体検出部３４により実行される、ＤＮＮを用いた物体検出処理に利用可能な計算リソース量を求める（ステップＳ１０１）。そしてプロセッサ２３の目標計算量算出部３２は、その計算リソース量と、ＤＮＮを用いた物体検出処理に利用可能な電力量とに基づいて、目標計算量を求める（ステップ１０２）。
【００４４】
プロセッサ２３の識別器制御部３３は、物体検出部３４にて物体検出処理に使用される識別器のＤＮＮが有する複数の部分ネットワークのうち、目標計算量にて物体検出処理を完了できるよう、物体検出処理に使用する部分ネットワークの数を制御する（ステップＳ１０３）。
ステップＳ１０３の後、識別器制御部３３は、識別器制御処理を終了する。
【００４５】
物体検出部３４は、検出部の一例であり、カメラ２から画像が得られる度に、その画像を識別器として利用されるＤＮＮに入力することで、その画像に表された、車両１０の周囲に存在する検出対象となる物体を検出する。その際、ＤＮＮが有する複数の部分ネットワークのうち、識別器制御部３３により使用するよう制御された部分ネットワークが物体検出処理に利用される。なお、検出対象となる物体には、例えば、車または人といった移動物体が含まれる。また、検出対象となる物体には、車線区画線といった道路標示または道路標識、及び信号機といった静止物体がさらに含まれてもよい。
物体検出部３４は、検出された物体の種類及び画像上での位置を表す情報を運転計画部３５へ出力する。
【００４６】
運転計画部３５は、各画像から検出された物体に基づいて、車両１０の周囲に存在する物体と車両１０とが衝突しないように車両１０の走行予定経路を１以上生成する。走行予定経路は、例えば、現時刻から所定時間先までの各時刻における、車両１０の目標位置の集合として表される。例えば、運転計画部３５は、カメラ２から画像を受信する度に、カメラ２についての車両１０への取り付け位置などの情報を用いて視点変換処理を実行することで、受信した画像を鳥瞰画像に変換する。そして運転計画部３５は、一連の鳥瞰画像に対してKalman Filterなどを用いたトラッキング処理を実行することで、各画像についての検出されている物体を追跡し、その追跡結果により得られた軌跡から、物体のそれぞれの所定時間先までの予測軌跡を推定する。運転計画部３５は、追跡中の各物体の予測軌跡に基づいて、何れの物体についても所定時間先までの追跡中の物体のそれぞれと車両１０間の距離の予測値が所定距離以上となるように、車両１０の走行予定経路を生成する。その際、運転計画部３５は、例えば、車両１０に搭載されたＧＰＳ受信機（図示せず）から得た測位情報に表される車両１０の現在位置と、メモリ２２に記憶されている地図情報とを参照して、車両１０が走行可能な車線の数を確認してもよい。そして運転計画部３５は、車両１０が走行可能な車線が複数存在する場合には、車両１０が走行する車線を変更するように走行予定経路を生成してもよい。その際、運転計画部３５は、画像から検出された車線区画線の位置を参照して、車両１０が走行中の車線、あるいは変更先の車線と車両１０との位置関係を判定してもよい。さらに、運転計画部３５は、画像から検出された信号機が一時停止を示している場合には、車両１０をその信号機に対応する停止線にて停止させるように走行予定経路を設定してもよい。
なお、運転計画部３５は、複数の走行予定経路を生成してもよい。この場合、運転計画部３５は、複数の走行予定経路のうち、車両１０の加速度の絶対値の総和が最小となる経路を選択してもよい。
【００４７】
運転計画部３５は、生成した走行予定経路を車両制御部３６へ通知する。
【００４８】
車両制御部３６は、車両１０が通知された走行予定経路に沿って走行するように車両１０の各部を制御する。例えば、車両制御部３６は、通知された走行予定経路、及び、車速センサ（図示せず）により測定された車両１０の現在の車速に従って、車両１０の加速度を求め、その加速度となるようにアクセル開度またはブレーキ量を設定する。そして車両制御部３６は、設定されたアクセル開度に従って燃料噴射量を求め、その燃料噴射量に応じた制御信号を車両１０のエンジンの燃料噴射装置へ出力する。あるいは、車両制御部３６は、設定されたブレーキ量に応じた制御信号を車両１０のブレーキへ出力する。
【００４９】
さらに、車両制御部３６は、車両１０が走行予定経路に沿って走行するために車両１０の進路を変更する場合には、その走行予定経路に従って車両１０の操舵角を求め、その操舵角に応じた制御信号を、車両１０の操舵輪を制御するアクチュエータ（図示せず）へ出力する。
【００５０】
図７は、プロセッサ２３により実行される、物体検出処理を含む車両制御処理の動作フローチャートである。プロセッサ２３は、カメラ２から画像を受信する度に、図７に示される動作フローチャートに従って車両制御処理を実行する。なお、以下に示される動作フローチャートにおいて、ステップＳ２０１〜Ｓ２０２の処理が物体検出処理に対応する。
【００５１】
プロセッサ２３のリソース量算出部３１、目標計算量算出部３２及び識別器制御部３３は、図６に示されるフローチャートに従って、利用可能な計算リソース量及び利用可能な電力量に応じて決定される目標計算量で物体検出処理を完了できるよう、識別器として利用するＤＮＮの可変層に含まれる複数の部分ネットワークのうち、物体検出処理で使用される部分ネットワークの数を制御する（ステップＳ２０１）。すなわち、図４及び図５に示されるように、識別器制御部３３は、目標計算量に対応する部分ネットワークに対応するスイッチをオンにして、その部分ネットワークが物体の検出に利用されるようにする。そしてプロセッサ２３の物体検出部３４は、カメラ２から得られた画像を識別器に入力して、画像に表された車両１０の周囲の物体を検出する（ステップＳ２０２）。
【００５２】
プロセッサ２３の運転計画部３５は、検出されている物体を追跡し、その追跡結果に基づいて推定されるその物体の予測軌跡と所定の距離以上となるように、車両１０の走行予定経路を生成する（ステップＳ２０３）。そしてプロセッサ２３の車両制御部３６は、走行予定経路に沿って車両１０が走行するように車両１０を制御する（ステップＳ２０４）。そしてプロセッサ２３は、車両制御処理を終了する。
【００５３】
以上に説明してきたように、この物体検出装置は、物体検出処理において識別器として用いられるニューラルネットワークの可変層に含まれる複数の部分ネットワークのうち、画像に対する物体検出処理を目標時間に応じた目標計算量で完了できるよう、物体検処理に利用する部分ネットワークの数を制御する。これにより、この物体検出装置は、物体検出処理に利用可能な計算リソース量及び電力量が制限される場合でも、物体検出処理を目標時間内に完了することができる。また各部分ネットワークは、予め、目標計算量に応じてニューラルネットワークに接続された状態で学習されるので、物体検出処理に利用可能な計算リソース量及び電力量が制限される場合でも、この物体検出装置は、物体検出の精度の低下を抑制できる。さらに、プロセッサ２３の一部の回路が故障した場合、あるいは、車載バッテリから供給可能な電力量が低下した場合のように、物体検出処理に利用可能な計算リソースの総量または利用可能な電力量の最大値が低下する場合でも、この物体検出装置は、物体検出処理に要する演算量を削減できるので、物体検出処理を目標時間内に完了することができる。一方、この物体検出装置では、設計の段階においてＤＮＮのサイズにマージンを持たせる必要が無いので、物体検出処理に利用可能な計算リソース量及び電力量が十分な場合には、この物体検出装置は、全ての部分ネットワークを物体検出処理に利用することで、物体検出の精度を向上できる。
【００５４】
変形例によれば、目標計算量算出部３２は、物体検出処理に利用可能な計算リソース量と物体検出処理に利用可能な電力量の何れか一方に基づいて目標計算量を求めてもよい。例えば、物体検出処理に利用可能な計算リソース量に基づいて目標計算量を求める場合、目標計算量算出部３２は、メモリ２２に予め記憶された、利用可能な計算リソース量と実行可能計算量との関係を表す参照テーブルを参照して、利用可能な計算リソース量に対応する実行可能計算量をもとめればよい。そして目標計算量算出部３２は、その実行可能計算量に基づいて、上記の実施形態と同様に目標計算量を求めればよい。この場合には、電力センサ３は省略されてもよい。また、物体検出処理に利用可能な電力量に基づいて目標計算量を求める場合、目標計算量算出部３２は、メモリ２２に予め記憶された、電力量と実行可能計算量との関係を表す参照テーブルを参照して、物体検出処理に利用可能な電力量に対応する実行可能計算量をもとめればよい。そして目標計算量算出部３２は、その実行可能計算量に基づいて、上記の実施形態と同様に目標計算量を求めればよい。この場合には、リソース量算出部３１は省略されてもよい。
【００５５】
他の変形例によれば、識別器制御部３３は、物体検出処理に利用可能な計算リソース量と物体検出処理に利用可能な電力量の少なくとも一方に基づいて、ＤＮＮが有する複数の部分ネットワークのうち、物体検出処理に利用される部分ネットワークの数を直接決定してもよい。この場合には、識別器制御部３３は、物体検出処理に利用可能な計算リソース量と物体検出処理に利用可能な電力量の組み合わせまたは何れか一方と、オンにするスイッチの組み合わせとの関係を表す参照テーブルを参照することで、物体検出処理に利用可能な計算リソース量と物体検出処理に利用可能な電力量の少なくとも一方に対応する、オンにするスイッチの組み合わせを特定すればよい。この場合には、目標計算量算出部３２は省略されてもよい。
【００５６】
上記の実施形態または変形例による物体検出装置は、カメラ２以外の車両１０の周囲に存在する物体を検知するためのセンサにより取得されたセンサ信号に対して適用されてもよい。そのような、所定の検知範囲内に存在する物体を検出するためのセンサとして、例えば、車両１０に搭載されたLIDARセンサあるいはレーザセンサが用いられてもよい。この場合、物体検出部３４が識別器として用いるＤＮＮは、車両１０に搭載されたセンサにより取得されたセンサ信号から、物体を検出するように予め学習されればよい。この場合も、識別器は、上記の実施形態または変形例と同様に、複数の部分ネットワークを含む可変層を１以上有し、複数の部分ネットワークは、対応する目標計算量に応じて予め学習されればよい。
【００５７】
また他の変形例によれば、複数の部分ネットワークを有するＤＮＮは、物体検出処理以外に用いられてもよい。例えば、運転計画部３５が、一連の画像から検出された、追跡された物体の位置に基づいて車両１０の走行予定経路を決定するために、ＤＮＮが利用されてもよい。この場合、ＥＣＵ４は、車両制御装置の一例となり、運転計画部３５は、制御情報決定部の一例となり、車両１０の走行予定経路は、車両１０の制御情報の一例となる。ＤＮＮは、追跡された物体の各画像から検出された位置が入力されると、車両１０の最適な走行予定経路を出力するよう、例えば、強化学習の手法に従って予め学習されればよい。そしてこの場合も、識別器制御部３３は、運転計画部３５の運転計画処理に利用可能なリソース（計算リソース量及び電力量の少なくとも一方）と、オンにするスイッチの組み合わせとの関係を表す参照テーブルを参照することで、そのリソースに基づいて、ＤＮＮが有する複数の部分ネットワークのうち、運転計画処理に利用される部分ネットワークを決定すればよい。なお、この場合も、運転計画処理に利用可能なリソースが多くなるほど、運転計画処理に利用される部分ネットワークの数が多くなるように、参照テーブルは設定されればよい。これにより、運転計画処理に利用可能なリソースが制限される場合でも、運転計画部３５は、所定の制御周期ごとに、１回の運転計画処理を完了することができる。
【００５８】
また、上記の実施形態または変形例による、物体検出装置のプロセッサ２３の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【００５９】
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。
【符号の説明】
【００６０】
１    車両制御システム
２    カメラ
３    電力センサ
４    電子制御装置（物体検出装置）
５    車内ネットワーク
６    車載バッテリ
２１    通信インターフェース
２２    メモリ
２３    プロセッサ
３１    リソース量算出部
３２    目標計算量算出部
３３    識別器制御部
３４    物体検出部
３５    運転計画部
３６    車両制御部
【図１】
2020052667.tif 000003
【図２】
2020052667.tif 000004
【図３】
2020052667.tif 000005
【図４】
2020052667.tif 000006
【図５】
2020052667.tif 000007
【図６】
2020052667.tif 000008
【図７】
2020052667.tif 000009