(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-10
(45)【発行日】2023-10-18
(54)【発明の名称】リソース管理装置及びリソース管理方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20231011BHJP
【FI】
G06F9/50 120B
(21)【出願番号】P 2020113199
(22)【出願日】2020-06-30
【審査請求日】2022-06-06
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【氏名又は名称】河野 努
(72)【発明者】
【氏名】浅尾 直弥
(72)【発明者】
【氏名】宮本 新
【審査官】田中 幸雄
(56)【参考文献】
【文献】米国特許出願公開第2016/0162335(US,A1)
【文献】特開2015-11474(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
一時記憶部と、
互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理のそれぞれについて、当該処理の対象となるデータを取得すると、当該取得したデータを前記一時記憶部に記憶させるデータ取得部と、
所定のタイミングごとに、前記複数の処理のそれぞれについて利用可能な共有リソースを、前記複数の処理のうちの前記一時記憶部に対象となるデータが記憶されている処理について前記優先度が最も高い方から順に割り当てるリソース割り当て部と、
を有
し、
前記所定のタイミングは、前記複数の処理のうちの最も優先度が高い処理の対象となるデータが取得されたタイミングであるリソース管理装置。
【請求項2】
前記複数の処理のそれぞれの対象となるデータは、車両に搭載された互いに異なるセンサから得られたセンサ信号であり、前記複数の処理のそれぞれは、当該処理に対応する前記センサにより得られた前記センサ信号から前記車両の周囲の物体を検出する処理である、請求項
1に記載のリソース管理装置。
【請求項3】
前記車両の走行状況に応じて前記複数の処理のそれぞれについての前記優先度を設定する優先度設定部をさらに有する、請求項
2に記載のリソース管理装置。
【請求項4】
互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理のそれぞれについて、当該処理の対象となるデータを取得すると、当該取得したデータを一時記憶部に記憶させ、
所定のタイミングごとに、前記複数の処理のそれぞれについて利用可能な共有リソースを、前記複数の処理のうちの前記一時記憶部に対象となるデータが記憶されている処理について前記優先度が最も高い方から順に割り当てる、
ことを含
み、
前記所定のタイミングは、前記複数の処理のうちの最も優先度が高い処理の対象となるデータが取得されたタイミングであるリソース管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の処理が共通に利用可能なリソースを管理するリソース管理装置及びリソース管理方法に関する。
【背景技術】
【0002】
複数の処理の実行が可能なシステムにおいて、各処理が共通に利用可能なリソースにおいて2以上の処理が競合することがある。そこで、そのような競合によって優先度の高い処理の実行が妨げられることを抑制する技術が提案されている(例えば、特許文献1及び2を参照)。
【0003】
例えば、特許文献1に開示された技術では、競合制御装置は、複数のプロセッサで共有される共有資源へのアクセスの許可を要求する資源獲得要求を受信したとき、共有資源へのアクセス権を有している処理が有れば、資源獲得要求に設定されている優先度を、アクセス権を有している処理の優先度と比較する。そして資源獲得要求に設定されている優先度の方が高い優先度を有するときは、この競合制御装置は、資源獲得要求に設定されている許容待ち時間だけ資源獲得要求を送信してきた処理の実行を待たせ、許容待ち時間が経過してもアクセス権を有している処理が終了しないときは、アクセス権を有している処理を中断させ、資源獲得要求を送信してきた処理を実行させる。
【0004】
また、特許文献2に記載された技術では、情報処理装置は、周期起動タスクと、周期起動タスクに対応付けてタスク登録テーブルに登録された、周期起動タスクよりも優先度の高い競合タスクの実行タイミングが競合した場合、競合タスクを優先して実行し、競合した周期における周期起動タスクの実行を禁止する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2005-18224号公報
【文献】特開2013-152636号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、優先度が互いに異なる複数の処理について共通に利用されるリソースに対して、相対的に優先度の低い処理がアクセスを要求した時点で、実行すべき相対的に優先度の高い処理が無ければ、その優先度の低い処理がリソースを占有することになる。そしてそのリソースにおいて、優先度の低い処理の実行が先に行われている場合に、優先度の高い処理についてリソースへのアクセスの要求がなされても、実行中の優先度の低い処理が終了するまでリソースを解放できず、優先度の高い処理の実行が待たされることがある。
【0007】
そこで、本発明は、共通のリソースを使用する複数の処理のうちの優先度の高い方の処理の待機時間を短縮することが可能なリソース管理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
一つの実施形態によれば、リソース管理装置が提供される。このリソース管理装置は、一時記憶部と、互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理のそれぞれについて、その処理の対象となるデータを取得すると、その取得したデータを一時記憶部に記憶させるデータ取得部と、所定のタイミングごとに、複数の処理のそれぞれについて利用可能な共有リソースを、複数の処理のうちの一時記憶部に対象となるデータが記憶されている処理について優先度が最も高い方から順に割り当てるリソース割り当て部とを有する。
【0009】
このリソース管理装置において、所定のタイミングは、複数の処理のうちの最も優先度が高い処理の対象となるデータが取得されたタイミングであることが好ましい。
【0010】
また、このリソース管理装置において、複数の処理のそれぞれの対象となるデータは、車両に搭載された互いに異なるセンサから得られたセンサ信号であり、複数の処理のそれぞれは、その処理に対応するセンサにより得られたセンサ信号から車両の周囲の物体を検出する処理であることが好ましい。
【0011】
この場合において、このリソース管理装置は、車両の走行状況に応じて複数の処理のそれぞれについての優先度を設定する優先度設定部をさらに有することが好ましい。
【0012】
本発明の他の形態によれば、リソース管理方法が提供される。このリソース管理方法は、互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理のそれぞれについて、その処理の対象となるデータを取得すると、その取得したデータを一時記憶部に記憶させ、所定のタイミングごとに、複数の処理のそれぞれについて利用可能な共有リソースを、複数の処理のうちの一時記憶部に対象となるデータが記憶されている処理について優先度が最も高い方から順に割り当てる、ことを含む。
【発明の効果】
【0013】
本発明に係るリソース管理装置は、共通のリソースを使用する複数の処理のうちの優先度の高い方の処理の待機時間を短縮できるという効果を奏する。
【図面の簡単な説明】
【0014】
【
図1】リソース管理装置が実装される車両制御システムの概略構成図である。
【
図2】リソース管理装置の一実施形態である電子制御装置のハードウェア構成図である。
【
図3】リソース管理処理を含む車両制御処理に関する、電子制御装置のプロセッサの機能ブロック図である。
【
図4】(a)及び(b)は、演算回路の割り当ての概要の説明図である。
【
図5】リソース管理処理の動作フローチャートである。
【
図7】変形例による、電子制御装置のプロセッサの機能ブロック図である。
【発明を実施するための形態】
【0015】
以下、図を参照しつつ、リソース管理装置、及び、リソース管理装置において実行されるリソース管理方法について説明する。このリソース管理装置は、互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理に対して共通に利用可能な共有リソースを管理する。その際、このリソース管理装置は、処理ごとに、その処理の対象となるデータを受信すると、受信したデータを一時記憶部に一時的に記憶する。そしてこのリソース管理装置は、所定のタイミングごとに、複数の処理のうちの一時記憶部に対象となるデータが記憶されている処理のうち、最も優先度が高い処理から順に共有リソースを割り当てる。
【0016】
以下では、リソース管理装置を、車両制御システムに適用した例について説明する。この例では、リソース管理装置は、車両に搭載された複数のカメラのそれぞれにより得られた画像から、車両の周囲に存在する物体を検出し、検出した物体と車両とが衝突しないように、車両を自動運転制御する。その際、このリソース管理装置は、各カメラから画像を受信する度に、画像を一時的に記憶する。そしてこのリソース管理装置は、所定のタイミングごとに、物体を検出する処理(以下、物体検出処理と呼ぶ)に利用可能な共有リソースに、一時的に記憶しているカメラごとの画像のうち、優先度の最も高いカメラから順に、そのカメラにより得られた画像に対する物体検出処理に共有リソースを割り当てる。
【0017】
図1は、リソース管理装置が実装される車両制御システムの概略構成図である。また
図2は、リソース管理装置の一つの実施形態である電子制御装置のハードウェア構成図である。本実施形態では、車両10に搭載され、かつ、車両10を制御する車両制御システム1は、車両10の周囲を撮影するための複数のカメラ2-1~2-n(ただし、nは2以上の整数)と、リソース管理装置の一例である電子制御装置(ECU)3とを有する。カメラ2-1~2-nとECU3とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。なお、車両制御システム1は、車両10の自動運転制御に用いられる地図を記憶するストレージ装置(図示せず)をさらに有していてもよい。さらに、車両制御システム1は、LiDARあるいはレーダといった、車両10の周囲の物体までの距離を測定するための距離センサ(図示せず)を有してもよい。さらにまた、車両制御システム1は、GPS受信機といった、衛星測位システムに準拠して車両10の自己位置を測位するための受信機(図示せず)、他の機器と無線通信するための無線端末(図示せず)、及び、車両10の走行予定ルートを探索するためのナビゲーション装置(図示せず)などを有していてもよい。
【0018】
カメラ2-1~2-nのそれぞれは、センサの一例であり、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。そしてカメラ2-1~2-nは、車両10の周囲を撮影するように、例えば、車両10に取り付けられる。なお、カメラ2-1~2-nのそれぞれは、互いに異なる方向を向くように車両10に取り付けられてもよい。あるいは、カメラ2-1~2-nのうちの2以上のカメラは、互いに異なる焦点距離を持ち、かつ、同一の方向を向くように車両10に取り付けられてもよい。例えば、カメラ2-1は、車両10の前方、かつ、遠方の領域を撮影するためのカメラであり、相対的に長い焦点距離を有し、車両10の車室内に、車両10の前方へ向けて取り付けられる。また、カメラ2-2は、車両10の前方、かつ、近傍の領域を撮影するためのカメラであり、カメラ2-1の焦点距離よりも短い焦点距離を有し、すなわちカメラ2-1よりも広角のカメラであり、車両10の車室内に、車両10の前方へ向けて取り付けられる。さらに、カメラ2-3は、車両10の後方の領域を撮影するためのカメラであり、車両10の後方へ向けて取り付けられる。カメラ2-1~2-nのそれぞれは、互いに非同期、かつ、所定の撮影周期(例えば1/30秒~1/10秒)ごとに車両10の周囲の所定の領域を撮影し、その所定の領域が写った画像を生成する。なお、カメラ2-1~2-nのそれぞれの撮影周期は、互いに同一でもよく、あるいは、互いに異なっていてもよい。また、カメラ2-1~2-nのそれぞれにより得られた画像は、カラー画像であってもよく、あるいは、グレー画像であってもよい。カメラ2-1~2-nのそれぞれにより得られた画像は、互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理のそれぞれの対象となるデータの一例であり、かつ、センサ信号の一例である。
【0019】
カメラ2-1~2-nのそれぞれは、画像を生成する度に、カメラの識別情報とともにその生成した画像を、車内ネットワークを介してECU3へ出力する。
【0020】
ECU3は、車両10を制御する。本実施形態では、ECU3は、カメラ2-1~2-nのそれぞれにより得られた時系列の一連の画像から検出された物体に基づいて車両10を自動運転するよう、車両10を制御する。そのために、ECU3は、通信インターフェース21と、メモリ22と、バッファメモリ23と、プロセッサ24とを有する。なお、通信インターフェース21、メモリ22、バッファメモリ23及びプロセッサ24は、互いに異なる回路として構成されてもよく、あるいは、一つの集積回路として一体的に構成されてもよい。
【0021】
通信インターフェース21は、ECU3を車内ネットワークに接続するためのインターフェース回路を有する。すなわち、通信インターフェース21は、車内ネットワークを介して、カメラ2-1~2-nと接続される。そして通信インターフェース21は、カメラ2-1~2-nの何れかから識別情報及び画像を受信する度に、受信した識別情報及び画像をプロセッサ24へわたす。
【0022】
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、ECU3のプロセッサ24により実行される車両制御処理のアルゴリズム、車両制御処理において使用される各種のデータ及びパラメータを記憶する。例えば、メモリ22は、地図情報、車両制御処理で利用される識別器を特定するためのパラメータセット、カメラ2-1~2-nのそれぞれの優先度、及び、演算回路241の割り当てを行うタイミングを表す情報などを記憶する。さらに、メモリ22は、検出された物体に関する情報といった、車両制御処理の途中で生成される各種のデータを一定期間記憶する。
【0023】
バッファメモリ23は、一時記憶部の一例であり、例えば、揮発性の半導体メモリを有する。そしてバッファメモリ23は、通信インターフェース21を介して受信した、カメラ2-1~2-nのそれぞれからの画像及び識別情報を、その画像に対する物体検出処理が実行されるまで一時的に記憶する。なお、バッファメモリ23は、いわゆるFirst In, First Out(FIFO)型のメモリとして構成されてもよい。この場合、バッファメモリ23は、カメラ2-1~2-nのそれぞれについて別個に、先に書き込まれた画像から先に読み出されるように構成されるメモリを有する。この場合には、バッファメモリ23は、メモリごとに、そのメモリに対応するカメラからの画像を、その画像に対する物体検出処理が実行されるまで一時的に記憶する。なお、バッファメモリ23は、その容量あるいは予め設定された枚数を越える画像が書き込まれる度に、古い画像から順に消去してもよい。
【0024】
プロセッサ24は、制御部の一例である。本実施形態では、プロセッサ24は、例えば、1個または複数個のCPU(Central Processing Unit)及びその周辺回路を有する。また、プロセッサ24は、時間を計時するためのタイマ回路を有する。なお、タイマ回路は、CPUに内蔵されていてもよい。さらに、プロセッサ24は、演算回路241を有する。演算回路241は、共有リソースの一例であり、例えば、グラフィック処理ユニット(Graphics Processing Unit, GPU)、または、いわゆるニューラルネットワークアクセラレータといった、物体検出用の識別器で実行される所定の演算(例えば、畳み込み演算)に特化した数値演算回路を有する。そして演算回路241は、カメラ2-1~2-nのそれぞれから得られた画像に対する物体検出処理の少なくとも一部の演算を実行する。
【0025】
プロセッサ24は、車両10が走行している間、所定のタイミングごとに、カメラ2-1~2-nの何れかから受信した画像に基づいて車両制御処理を実行する。
【0026】
図3は、リソース管理処理を含む車両制御処理に関する、ECU3のプロセッサ24の機能ブロック図である。プロセッサ24は、データ取得部31と、リソース割り当て部32と、物体検出部33と、車両制御部34とを有する。プロセッサ24が有するこれらの各部は、例えば、プロセッサ24上で動作するコンピュータプログラムにより実現される機能モジュールである。また、プロセッサ24が有するこれらの各部のうち、データ取得部31、リソース割り当て部32及び車両制御部34の処理は、プロセッサ24が有するCPU上で実行される。一方、物体検出部33の処理の少なくとも一部は、演算回路241上で実行される。
【0027】
データ取得部31は、通信インターフェース21を介してカメラ2-1~2-nのそれぞれから、画像及びカメラの識別情報を取得する。そしてデータ取得部31は、取得した画像をカメラの識別情報及び取得時刻とともにバッファメモリ23に書き込む。これにより、カメラごとに、画像の取得順序を特定することが可能となる。あるいは、バッファメモリ23がカメラ2-1~2-nのそれぞれごとに個別のFIFO型のメモリを有する場合には、データ取得部31は、画像とともに受信した識別情報を参照して、カメラ2-1~2-nのうち、その識別情報で特定されるカメラに対応するメモリに画像を書き込めばよい。
【0028】
リソース割り当て部32は、所定のタイミングごとに、カメラ2-1~2-nのそれぞれから得られた画像に対する物体検出部33による物体検出処理を実行するために、演算回路241を割り当てる。すなわち、カメラ2-1~2-nのそれぞれから得られた画像に対する物体検出処理は、共有リソースにより実行される複数の処理の一例である。
【0029】
本実施形態では、リソース割り当て部32は、カメラ2-1~2-nのうち、バッファメモリ23に処理対象となる画像が記憶されている1以上のカメラについて、優先度が最も高い方から順に、バッファメモリ23に記憶されている画像に対する物体検出処理を演算回路241に実行させるよう、演算回路241を割り当てる。その際、リソース割り当て部32は、メモリ22に記憶されている、カメラ2-1~2-nのそれぞれの優先度を参照して、バッファメモリ23に記憶されている画像のうち、最も優先度が高いカメラにより得られた画像を特定すればよい。そしてリソース割り当て部32は、特定した画像を表す割り当て情報を生成し、生成した割り当て情報を物体検出部33へ通知する。
【0030】
さらに、リソース割り当て部32は、演算回路241から実行中の物体検出処理が終了したことを通知されると、演算回路241を開放し、次の画像に対して演算回路241を割り当て可能とする。
【0031】
図4(a)及び
図4(b)は、リソース割り当て部32による、演算回路241の割り当ての概要の説明図である。この例では、n=3、すなわち、車両10に3台のカメラ2-1~2-3が設けられるものとする。そして、これらカメラのうち、カメラ2-1により得られた画像に対する物体検出処理の優先度が最も高く、逆に、カメラ2-3により得られた画像に対する物体検出処理の優先度が最も低いものとする。
【0032】
図4(a)に示されるケースでは、演算回路241から演算結果が出力されて、演算回路241が開放されたタイミングt1では、バッファメモリ23に、カメラ2-2により得られた画像401と、カメラ2-3により得られた画像402とが記憶されている。タイミングt1は、演算回路241の割り当てが実行されるタイミングでないので、リソース割り当て部32は、演算回路241の割り当てが行われるタイミングt2になるまで、演算回路241の割り当てを行わずに待機する。すなわち、タイミングt1では、画像401に対する物体検出処理と画像402に対する物体検出処理の何れも、演算回路241には割り当てられない。その後、演算回路241への割り当てが実行されるタイミングt2になるまでに、バッファメモリ23に、カメラ2-1により得られた画像403が書き込まれている。そのため、タイミングt2において、リソース割り当て部32は、優先度が最も高いカメラ2-1からの画像403に対する物体検出処理に演算回路241を割り当てる。
【0033】
図4(b)に示されるケースでも、演算回路241が開放されたタイミングt1では、バッファメモリ23に、カメラ2-2により得られた画像401と、カメラ2-3により得られた画像402とが記憶されているものの、リソース割り当て部32は、タイミングt2になるまで、演算回路241の割り当てを行わずに待機する。しかしこのケースでは、タイミングt2になっても、カメラ2-1により得られた画像がバッファメモリ23に書き込まれていない。そのため、リソース割り当て部32は、タイミングt2において、2番目に優先度が高いカメラ2-2からの画像401に対する物体検出処理に演算回路241を割り当てる。
【0034】
なお、所定のタイミングは、演算回路241が割り当てられる処理のうち、最も優先度が高い処理の対象となるデータが取得されるタイミングであることが好ましい。すなわち、上記の例では、所定のタイミングは、カメラ2-1からの画像がバッファメモリ23に書き込まれるタイミングであることが好ましい。これにより、リソース割り当て部32は、カメラ2-1~2-nのうち、最も優先度が高いカメラからの画像に対する物体検出処理に遅滞なく演算回路241を割り当てることが可能となる。
【0035】
ただし、演算回路241が開放されてから、次に最も優先度が高い処理の対象となるデータが取得されるタイミングとなるまでの待ち時間よりも、演算回路241による、他のデータに対する処理の実行所要時間の期待値が短い場合には、リソース割り当て部32は、他のデータに対する処理に演算回路241を割り当てることが好ましい。すなわち、上記の
図4(a)及び
図4(b)の例では、リソース割り当て部32は、タイミングt1において、バッファメモリ23に記憶されている、カメラ2-2またはカメラ2-3により得られた画像に対する物体検出処理の実行所要時間の期待値と、次にカメラ2-1による画像がバッファメモリ23に書き込まれるタイミングまでの待ち時間とを比較する。そしてカメラ2-2またはカメラ2-3の何れかについて、物体検出処理の実行所要時間の期待値が待ち時間よりも短ければ、リソース割り当て部32は、タイミングt1において、カメラ2-2またはカメラ2-3により得られた画像に対する物体検出処理に演算回路241を割り当てる。一方、何れのカメラについても、物体検出処理の実行所要時間の期待値が待ち時間以上であれば、リソース割り当て部32は、上記のように、タイミングt2まで演算回路241の割り当てを実行せずに待機する。ただしこの場合、優先度が低い処理ほど演算回路241の割り当てが行われなくなる。そこで、演算回路241が割り当てられるよりも前に、次の周期の最も優先度が高いデータがバッファメモリ23に書き込まれることで、物体検出処理がスキップされたカメラの優先度を、一時的に2番目の優先度になるよう高くしてもよい。これにより、リソース割り当て部32は、優先度が相対的に低いデータに対する処理にも演算回路241を順次割り当てることが可能となる。なお、リソース割り当て部32は、他のデータに対する処理の実行所要時間の期待値を、例えば、直近の所定回数についてのそのデータに対する処理の実行所要時間の平均値として算出すればよい。あるいは、他のデータに対する処理の実行所要時間の期待値は、メモリ22に予め記憶されていてもよい。
【0036】
図5は、プロセッサ24により実行される、リソース管理処理の動作フローチャートである。
【0037】
プロセッサ24のデータ取得部31は、カメラ2-1~2-nの何れかから通信インターフェース21を介して画像を取得する度に、取得した画像をバッファメモリ23に書き込む(ステップS101)。
【0038】
プロセッサ24のリソース割り当て部32は、現時刻が演算回路241の割り当てを実行する所定のタイミングか否か判定する(ステップS102)。現時刻が所定のタイミングでなければ(ステップS102-No)、リソース割り当て部32は、ステップS101以降の処理を繰り返す。
【0039】
一方、現時刻が所定のタイミングである場合(ステップS102-Yes)、リソース割り当て部32は、バッファメモリ23に記憶されている画像のうち、最も優先度の高いカメラからの画像に対する物体検出処理に演算回路241を割り当てる(ステップS103)。その後、リソース割り当て部32は、物体検出部33から演算回路241による演算が終了したことを示す通知を受け取ったか否か判定する(ステップS104)。
【0040】
演算回路241による演算が終了したことを示す通知を受け取っていない場合(ステップS104-No)、リソース割り当て部32は、一定周期ごとにステップS104の処理を繰り返す。一方、演算回路241による演算が終了したことを示す通知を受け取った場合(ステップS104-Yes)、リソース割り当て部32は、演算回路241を開放する(ステップS105)。その後、プロセッサ24は、ステップS101以降の処理を繰り返す。
【0041】
また、カメラ2-1~2-nのうちの最も優先度が高いカメラによる画像の取得周期よりも、各カメラにより得られた画像に対する物体検出処理のそれぞれの実行時間の合計が長くなることがある。このような場合、優先度が低いカメラからの画像に対する物体検出処理の終了前に、優先度が最も高いカメラからの画像が取得されることとなる。そこで、リソース割り当て部32は、優先度が最も高いカメラからの次の周期の画像がバッファメモリ23に書き込まれた時点で、それ以前にバッファメモリ23に書き込まれている各カメラからの画像の全てに対して、優先度に従って演算回路241の割り当て順序を設定してもよい。そしてリソース割り当て部32は、その順序に従って、各画像に対する物体検出処理に演算回路241を順次割り当ててもよい。リソース割り当て部32は、それらの画像に対する物体検出処理が終了するまで、優先度が最も高いカメラからの次の周期の画像がバッファメモリ23に書き込まれても、その優先度が最も高いカメラからの次の周期の画像に対する物体検出処理の実行を待機する。そしてリソース割り当て部32は、優先度が最も高いカメラからの次の周期の画像に対する物体検出処理の待機時間だけ、次の周期の各画像に対する処理時間が短縮されるよう、優先度が最も低いカメラから順に、次の周期の画像に対する物体検出処理への演算回路241の割り当てをスキップする。なお、優先度が最も高いカメラからの次の周期の画像に対する物体検出処理の待機時間が、そのカメラの撮影周期よりも長い場合には、リソース割り当て部32は、各カメラからの次の周期の画像に対する物体検出処理がスキップされるよう、何れのカメラの画像に対する物体検出処理にも演算回路241を割り当てないようにしてもよい。これにより、優先度が最も高いカメラからの画像に対する物体検出処理についても若干待機時間が生じるものの、リソース割り当て部32は、各カメラからの画像に対する物体検出処理に、ある程度の周期で演算回路241を割り当てることが可能となる。
【0042】
物体検出部33は、リソース割り当て部32から、何れかのカメラにより得られた画像に対する物体検出処理に演算回路241の割り当てが行われたことが通知されると、演算回路241を使用して、その通知された画像に対する物体検出処理を実行する。すなわち、物体検出部33は、リソース割り当て部32から通知された割り当て情報に示される画像をバッファメモリ23から読み出して演算回路241へ渡すことで、その画像に対する物体検出処理を実行する。そしてその物体検出処理により、物体検出部33は、画像に表された検出対象となる、車両10の周囲の物体を検出する。
【0043】
本実施形態では、物体検出部33は、識別器に画像を入力することで、画像に表された検出対象となる物体を含む物体領域を検出し、かつ、検出対象となる物体の種類を識別する。検出対象となる物体には、例えば、他の車両、歩行者、車線区画線といった道路標示、各種の道路標識あるいは信号機が含まれる。物体検出部33は、そのような識別器として、例えば、Single Shot MultiBox Detector(SSD)、または、Faster R-CNNといった、コンボリューショナルニューラルネットワーク(以下、単にCNNと呼ぶ)型のアーキテクチャを持つ、いわゆるディープニューラルネットワーク(以下、単にDNNと呼ぶ)を使用することができる。このような識別器は、検出対象となる物体が表された画像(教師画像)を多数用いて、誤差逆伝搬法といった学習手法に従って予め学習される。
【0044】
物体検出部33は、上記の識別器による演算の少なくとも一部を演算回路241に実行させることで、物体検出処理の実行所要時間を短縮する。例えば、物体検出部33は、上記の識別器による演算のうち、畳み込み層の畳み込み演算、プーリング層のプーリング演算、及び、softmax層のsoftmax演算などを演算回路241に実行させる。
【0045】
物体検出部33は、画像から検出対象となる物体を検出すると、画像上でのその検出対象となる物体が表された物体領域の位置及び範囲と、その物体領域に含まれる物体の種類とを表す情報を、車両制御部34へ出力する。また、物体検出部33は、演算回路241による処理が終了したことを、リソース割り当て部32へ通知する。
【0046】
車両制御部34は、目的地までの走行予定ルートに沿って車両10が進むよう、直近の所定の区間(例えば、500m~1km)における車両10の走行予定経路(トラジェクトリ)を1以上生成する。走行予定経路は、例えば、所定の区間を車両10が走行する際の各時刻における、車両10の目標位置の集合として表される。そして車両制御部34は、その走行予定経路に沿って車両10が走行するように車両10の各部を制御する。
【0047】
車両制御部34は、カメラ2-1~2-nのそれぞれにより得られた一連の画像から検出された、車両10の周囲に存在する物体(例えば、他の車両)と車両10とが衝突しないように走行予定経路を生成する。そのために、車両制御部34は、物体検出部33により検出された物体を追跡する。
【0048】
例えば、車両制御部34は、Lucas-Kanade法といった、オプティカルフローに基づく追跡処理を、カメラ2-1~2-nのそれぞれについて、そのカメラにより得られた最新の画像における、着目する物体領域及び過去の画像における物体領域に対して適用することで、その物体領域に表された物体を追跡する。そのため、車両制御部34は、例えば、着目する物体領域に対してSIFTあるいはHarrisオペレータといった特徴点抽出用のフィルタを適用することで、その物体領域から複数の特徴点を抽出する。そして車両制御部34は、複数の特徴点のそれぞれについて、過去の画像における物体領域における対応する点を、適用される追跡手法に従って特定することで、オプティカルフローを算出すればよい。あるいは、車両制御部34は、画像から検出された移動物体の追跡に適用される他の追跡手法を、最新の画像における、着目する物体領域及び過去の画像における物体領域に対して適用することで、その物体領域に表された物体を追跡してもよい。
【0049】
車両制御部34は、追跡中の各物体について、カメラ2-1~2-nについての車両10への取り付け位置などの情報を用いて視点変換処理を実行することで、その物体の画像内座標を鳥瞰画像上の座標(鳥瞰座標)に変換する。その際、車両制御部34は、各画像の取得時における、車両10の位置及び姿勢と、検出された物体までの推定距離と、車両10からその物体へ向かう方向とにより、各画像の取得時における、検出された物体の位置を推定できる。なお、各画像取得時における車両10の位置及び姿勢は、カメラ2-1~2-nにより得られた画像と高精度地図とを照合することで推定されればよい。さらに、車両制御部34は、異なるカメラごとに追跡された物体の軌跡のうち、互いに少なくとも部分的に重なるものを、同じ物体の軌跡として一つに統合してもよい。そして車両制御部34は、一連の鳥瞰座標に対してKalman FilterまたはParticle filterなどを用いた予測処理を実行することで、その物体の所定時間先までの予測軌跡を推定することができる。
【0050】
車両制御部34は、追跡中の各物体の予測軌跡に基づいて、何れの物体についても所定時間先までの追跡中の物体のそれぞれと車両10間の距離の予測値が所定距離以上となるように、車両10の走行予定経路を生成する。なお、車両制御部34は、複数の走行予定経路を生成してもよい。この場合、車両制御部34は、複数の走行予定経路のうち、車両10の加速度の絶対値の総和が最小となる経路を選択してもよい。
【0051】
車両制御部34は、走行予定経路を設定すると、車両10がその走行予定経路に沿って走行するように車両10の各部を制御する。例えば、車両制御部34は、走行予定経路、及び、車速センサ(図示せず)により測定された車両10の現在の車速に従って、車両10の目標加速度を求め、その目標加速度となるようにアクセル開度またはブレーキ量を設定する。そして車両制御部34は、設定されたアクセル開度に従って燃料噴射量を求め、その燃料噴射量に応じた制御信号を車両10のエンジンの燃料噴射装置へ出力する。あるいは、車両制御部34は、設定されたブレーキ量に応じた制御信号を車両10のブレーキへ出力する。
【0052】
さらに、車両制御部34は、車両10が走行予定経路に沿って走行するために車両10の進路を変更する場合には、その走行予定経路に従って車両10の操舵角を求め、その操舵角に応じた制御信号を、車両10の操舵輪を制御するアクチュエータ(図示せず)へ出力する。
【0053】
図6は、プロセッサ24により実行される、車両制御処理の動作フローチャートである。
【0054】
プロセッサ24の物体検出部33は、カメラ2-1~2-nのうち、リソース割り当て部32により演算回路241が割り当てられたカメラからの画像に対して、演算回路241を使用して物体検出処理を実行することで、その画像に表された車両10の周囲の物体を検出する(ステップS201)。そして物体検出部33は、演算回路241による演算処理が終了すると、そのことをリソース割り当て部32へ通知する(ステップS202)。
【0055】
プロセッサ24の車両制御部34は、各カメラからの画像から検出された車両10の周囲の物体を追跡することで、その物体の予測軌跡を推定する(ステップS203)。車両制御部34は、推定した予測軌跡に基づいて、車両10がその周囲の物体と衝突しないように走行予定経路を設定する(ステップS204)。車両制御部34は、設定した走行予定経路に沿って車両10が走行するように車両10の各部を制御する(ステップS205)。そしてプロセッサ24は、車両制御処理を終了する。
【0056】
以上に説明してきたように、このリソース管理装置は、互いに非同期かつ周期的に発生し、かつ、優先度が指定される複数の処理が共通に利用可能な共有リソースを管理する。その際、このリソース管理装置は、処理ごとに、その処理の対象となるデータを受信すると、受信したデータを一時記憶部に一時的に記憶する。そしてこのリソース管理装置は、所定のタイミングごとに、複数の処理のうちの一時記憶部に対象となるデータが記憶されている処理のうちの優先度が高い方から順に共有リソースを割り当てる。すなわち、このリソース管理装置は、相対的に優先度が低い処理のデータを受信したタイミングで共有リソースが他のデータの処理に占有されておらず、かつ、相対的に優先度が高い処理のデータが受信されていない状況でも、直ちに、その相対的に優先度が低い処理に共有リソースを割り当てず、しばらくの間待機する。そのため、このリソース管理装置は、優先度が相対的に高い処理のデータを受信したタイミングで共有リソースが他の処理に占有されている可能性を低減できるので、優先度の異なる複数の処理が互いに非同期かつ周期的に発生する場合でも、優先度の高い処理の待機時間を削減できる。
【0057】
変形例によれば、共有リソースを利用する複数の処理のそれぞれの優先度は動的に変更されてもよい。
【0058】
図7は、この変形例による、ECU3のプロセッサ24の機能ブロック図である。プロセッサ24は、データ取得部31と、リソース割り当て部32と、物体検出部33と、車両制御部34と、優先度設定部35とを有する。
図7に示される変形例では、
図3に示される上記の実施形態と比較して、プロセッサ24は、優先度設定部35を有する点で相違する。そこで以下では、優先度設定部35及びその関連部分について説明する。
【0059】
優先度設定部35は、車両10の走行状況に応じて、演算回路241を割り当てる複数の物体検出処理のそれぞれについての優先度を動的に設定する。例えば、車両10がある程度以上の速度で走行している場合には、ECU3は、車両10から比較的離れた位置に存在する物体をできるだけ早期に検出できることが好ましい。車両10から比較的離れた位置に存在する物体であっても、車両10がその物体に接近するまでに要する時間が短いことがあるためである。一方、車両10が渋滞中の道路を走行している場合のように、車両10の速度が低い場合には、車両10の遠くに存在する物体よりも車両10の近くに存在する物体を優先的に検出することが好ましい。
【0060】
そこで、優先度設定部35は、車速センサ(図示せず)から取得した車両10の車速を所定の速度閾値と比較する。車両10の車速が速度閾値よりも速ければ、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方、かつ、遠方の領域を撮影するように設けられたカメラ(例えば、カメラ2-1)からの画像に対する物体検出処理についての優先度を最も高く設定する。また、優先度設定部35は、車両10の前方、かつ、車両10の近傍の領域を撮影するように設けられたカメラ(例えば、カメラ2-2)からの画像に対する物体検出処理についての優先度を2番目に高く設定する。そして優先度設定部35は、車両10の前方以外の領域を撮影するように設けられたカメラ(例えば、カメラ2-3)からの画像についての物体検出処理に対する優先度を最も低く設定する。
【0061】
逆に、車両10の車速が速度閾値以下であれば、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方、かつ、車両10の近傍の領域を撮影するように設けられたカメラ(例えば、カメラ2-2)からの画像に対する物体検出処理についての優先度を最も高く設定する。そして、優先度設定部35は、車両10の前方、かつ、遠方の領域を撮影するように設けられたカメラ(例えば、カメラ2-1)からの画像に対する物体検出処理についての優先度を2番目に高く設定する。
【0062】
なお、優先度設定部35は、車速以外の情報を利用して、各カメラからの画像に対する物体検出処理についての優先度を設定してもよい。例えば、優先度設定部35は、無線端末(図示せず)から受信した交通情報で示される渋滞区間と、GPS受信機(図示せず)により測位される車両10の現在位置とを比較して、車両10が渋滞区間内に位置しているか否かを判定してもよい。そして車両10が渋滞区間内に位置している場合には、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方、かつ、車両10の近傍の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を最も高く設定し、車両10の前方、かつ、遠方の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を2番目に高く設定する。一方、車両10の位置が渋滞区間から外れている場合には、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方、かつ、遠方の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を最も高く設定し、車両10の前方、かつ、車両10の近傍の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を2番目に高く設定してもよい。
【0063】
さらに、優先度設定部35は、GPS受信機(図示せず)により測位される車両10の現在位置と地図情報とを参照することで、車両10が何れかの交差点から所定距離以内に位置しているか否かを判定してもよい。車両10が何れかの交差点から所定距離以内に位置している場合、車両10の側方から他の移動物体(例えば、他の車両または人)が車両10の進路に進入してくるおそれがある。そこでこの場合、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方、かつ、車両10の近傍の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を最も高く設定し、車両10の前方、かつ、遠方の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を2番目に高く設定してもよい。一方、車両10が何れの交差点の所定距離以内にも位置していない場合、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方、かつ、遠方の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を最も高く設定し、車両10の前方、かつ、車両10の近傍の領域を撮影するように設けられたカメラからの画像に対する物体検出処理についての優先度を2番目に高く設定してもよい。
【0064】
さらに、優先度設定部35は、車両10のシフトポジションに関する情報に基づいて、優先度を設定してもよい。例えば、車両10のシフトポジションがドライブポジションである場合、車両10はその前方へ向けて走行する。そこで優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方を撮影するように設けられた何れかのカメラからの画像に対する物体検出処理についての優先度を最も高く設定すればよい。一方、車両10のシフトポジションがリバースポジションである場合、車両10はその後方へ向けて走行する。そこで優先度設定部35は、カメラ2-1~2-nのうち、車両10の後方を撮影するように設けられた何れかのカメラからの画像に対する物体検出処理についての優先度を最も高く設定すればよい。
【0065】
さらにまた、車両制御部34が、車両10が他の車両を追い越すように車両10を制御する場合、優先度設定部35は、追い越しの対象となる他の車両と車両10との位置関係に応じて、優先度を設定してもよい。例えば、追い越しの対象となる他の車両が車両10の前方を走行している場合、優先度設定部35は、カメラ2-1~2-nのうち、車両10の前方を撮影するように設けられた何れかのカメラからの画像に対する物体検出処理についての優先度を最も高く設定すればよい。一方、追い越しの対象となる他の車両が車両10の側方または後方を走行している場合、優先度設定部35は、カメラ2-1~2-nのうち、車両10の側方または後方を撮影するように設けられた何れかのカメラからの画像に対する物体検出処理についての優先度を最も高く設定すればよい。なお、優先度設定部35は、車両制御部34による、他の車両の追跡結果を参照することで、車両10と他の車両との相対的な位置関係を判定することができる。
【0066】
優先度設定部35は、各カメラからの画像に対する物体検出処理についての優先度を変更する度に、変更後の優先度を表す情報をメモリ22に保存する。
【0067】
リソース割り当て部32は、演算回路241の割り当てを行う度に、メモリ22に記憶されている優先度を表す情報を参照することで、各カメラからの画像に対する物体検出処理についての優先度を特定すればよい。そしてリソース割り当て部32は、特定したそれぞれの優先度に従って、演算回路241の割り当てを実行すればよい。
【0068】
この変形例によれば、リソース管理装置の一例であるECU3は、車両10の周囲の状況に応じて演算回路241を使用する各処理に対する優先度を適切に設定することができる。
【0069】
なお、上記の実施形態または変形例において、演算回路241が利用される演算は画像に対する物体検出処理に限られない。例えば、リソース割り当て部32は、距離センサにより得られた測距信号から車両10の周囲の物体を検出する処理、あるいは、検出された物体を追跡するための追跡処理に対しても、演算回路241を割り当ててもよい。この場合も、処理ごとに優先度が設定され、リソース割り当て部32は、その優先度に従って各処理に演算回路241を順次割り当てればよい。
【0070】
また、複数の処理に対して共通に利用可能な演算回路の数は複数であってもよい。この場合には、リソース割り当て部32は、所定のタイミングごとに、バッファメモリ23に処理対象となるデータが記憶されている処理のうち、優先度が高い方の処理から順に空いている演算回路を割り当てればよい。
【0071】
さらに、複数の処理に対して共通に利用可能な共有リソースは、演算回路に限られない。例えば、共有リソースは、複数の処理のそれぞれが利用可能なメモリ領域であってもよい。
【0072】
さらにまた、このリソース管理装置は、車両制御システム以外に適用されてもよい。このリソース管理装置は、互いに非同期、かつ、周期的に生じるとともに、優先度が指定される複数の処理に対して共有リソースを割り当てることでその複数の処理が実行される様々な装置またはシステムに適用することが可能である。
【0073】
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。
【符号の説明】
【0074】
1 車両制御システム
2-1~2-n カメラ
3 電子制御装置(リソース管理装置)
21 通信インターフェース
22 メモリ
23 バッファメモリ
24 プロセッサ
31 データ取得部
32 リソース割り当て部
33 物体検出部
34 車両制御部
35 優先度設定部