JP2021162916A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2021162916A
JP2021162916A JP2020061225A JP2020061225A JP2021162916A JP 2021162916 A JP2021162916 A JP 2021162916A JP 2020061225 A JP2020061225 A JP 2020061225A JP 2020061225 A JP2020061225 A JP 2020061225A JP 2021162916 A JP2021162916 A JP 2021162916A
Authority
JP
Japan
Prior art keywords
module
image
modules
management table
middleware
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
Application number
JP2020061225A
Other languages
English (en)
Inventor
新 宮本
Arata Miyamoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2020061225A priority Critical patent/JP2021162916A/ja
Publication of JP2021162916A publication Critical patent/JP2021162916A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Safety Devices In Control Systems (AREA)

Abstract

【課題】複数のモジュールのそれぞれが、起動している他のモジュールの状況に応じて動作可能な情報処理装置を提供する。【解決手段】情報処理装置は、制御部により制御される複数のモジュールと、複数のモジュールの起動管理テーブル221を記憶する記憶部22と、を有し、複数のモジュールのそれぞれは、制御部により起動されると、起動管理テーブル221に起動情報を登録し、かつ、起動管理テーブル221を参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する処理の内容を決定する。【選択図】図5

Description

本発明は、情報処理装置に関する。
自動制御による車両の運転を実現するために、電子制御装置(Electronic Control Unit:ECU)が車両に搭載されている。ECUは、車両の現在位置と、車両の目的地と、地図データとに基づいて、車両の走行予定経路を生成して、車両が、車両と他の車両との間に安全な距離が維持されるように、この走行予定経路に沿って走行するように車両の走行を制御する。
このようなECUの動作は、ECUに組み込まれたアプリケーションが実行されることにより実現される。アプリケーションは、複数のモジュールを有しており、各モジュールが協働して動作することにより、アプリケーションの処理が実現される。
例えば、特許文献1に記載の情報処理装置は、複数のモジュールを冗長構成にして備える。起動処理実行部は、起動処理を処理ブロックごとに逐次実行する。異常情報生成部は、起動制御時に異常を生じたモジュールを検出した場合に、異常情報を生成し、メモリに保持する。縮退運転判定部は、異常を生じたモジュールを除外した縮退運転の可否を判定する。縮退運転判定部は、縮退運転に最低限必要とされる数のモジュールの起動経過が正常である場合、縮退運転を可能であると判定する。これにより、情報処理装置は、冗長構成されたモジュールの起動時に異常を検出しても、モジュールの起動にかかる遅延時間を抑制する。
特開2014−71668号公報
特許文献1に記載の情報処理装置は、異常が生じたモジュールを除外した縮退運転の可否を判定していたが、起動している他のモジュールの状況に応じて、一のモジュールの動作を決定できることが好ましい。
そこで、本発明は、複数のモジュールのそれぞれが、起動している他のモジュールの状況に応じて動作可能な情報処理装置を提供することを目的とする。
一の実施形態によれば、情報処理装置が提供される。この情報処理装置は、制御部により制御される複数のモジュールと、複数のモジュールの起動管理テーブルを記憶する記憶部と、を有し、複数のモジュールのそれぞれは、制御部により起動されると、起動管理テーブルに起動情報を登録し、かつ、起動管理テーブルを参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する処理の内容を決定する。
本発明に係る情報処理装置は、複数のモジュールのそれぞれが、起動している他のモジュールに基づいて実行する処理の内容を決定して、起動している他のモジュールの状況に応じて動作できるという効果を奏する。
第1実施形態における情報処理装置が実装される車両制御システムの概略構成図である。 第1実施形態における情報処理装置の一つの実施形態である電子制御装置のハードウェア構成図である。 第1実施形態の情報処理に関する、電子制御装置のプロセッサを説明する図である。 第1実施形態における情報処理を含む、画像処理を説明するシーケンス図(その1)である。 第1実施形態における情報処理を含む、画像処理を説明するシーケンス図(その2)である。 第1実施形態における起動管理テーブルを説明する図である。 第2実施形態の情報処理に関する、電子制御装置のプロセッサを説明する図である。 第2実施形態における情報処理を含む、画像処理を説明するシーケンス図(その1)である。 第2実施形態における情報処理を含む、画像処理を説明するシーケンス図(その2)である。 第2実施形態における起動管理テーブルを説明する図(その1)である。 第2実施形態における通知管理テーブルを説明する図(その1)である。 第2実施形態における情報処理を含む、画像処理を説明するシーケンス図(その1)である。 第2実施形態における情報処理を含む、画像処理を説明するシーケンス図(その2)である。 第2実施形態における起動管理テーブルを説明する図(その2)である。 第2実施形態における通知管理テーブルを説明する図(その2)である。
以下、図を参照しつつ、第1実施形態の情報処理装置について説明する。この情報処理装置は、制御部により制御される複数のモジュールと、複数のモジュールの起動情報が登録される起動管理テーブルを記憶する記憶部と、を有する。制御部は、例えば、オペレーティングシステム(OS)上で動作するミドルウェアにより実装され、モジュールは、例えば、OS上でミドルウェアを介して動作して、情報処理アプリケーションの機能を実現するプログラムを用いて実装される。複数のモジュールのそれぞれは、制御部により起動されると、起動管理テーブルに起動情報を登録し、かつ、起動管理テーブルを参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する処理の内容を決定する。これにより、情報処理装置では、複数のモジュールのそれぞれが、起動している他のモジュールに基づいて、実行する処理の内容を決定するので、起動している他のモジュールの状況に応じて動作できる。
図1は、情報処理装置が実装される車両制御システムの概略構成図である。図2は、情報処理装置の一つの実施形態である電子制御装置のハードウェア構成図である。
本実施形態では、車両10に搭載され、且つ、車両10を制御する車両制御システム1は、車両の前方の画像を撮影する第1カメラ11と、第1カメラ11とは別に配置され、車両10の前方の画像を取得する第2カメラ12と、車両10の前に配置されるLiDARセンサ13とを有する。また、車両制御システム1は、測位情報受信機14と、地図情報を記憶する地図情報記憶装置15と、ナビゲーション装置16と、情報処理装置の一例である電子制御装置(ECU)17とを有する。
第1カメラ11と、第2カメラ12と、LiDARセンサ13と、地図情報記憶装置15と、ナビゲーション装置16と、ECU17とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。
第1カメラ11は、車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。第1カメラ11は、所定の周期で設定される第1画像情報取得時刻において、車両10の前方の所定の領域が表された第1画像を生成する。生成された第1画像には、車両10の周囲の他の車両又は車両10の前方の所定の領域内に含まれる路面上の車線区画線などの地物が表わされる。第1カメラ11により生成される画像は、カラー画像であってもよく、又は、グレー画像であってもよい。第1カメラ11は、撮像部の一例であり、CCDあるいはC−MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する撮像光学系を有する。第1カメラ11は、第1画像を生成する度に、第1画像及び第1画像を生成した第1画像情報取得時刻を、車内ネットワークを介してECU17へ出力する。第1画像は、ECU17において、車両の位置を推定する処理に使用されるのと共に、車両10の周囲の他の物体を検出する処理に使用される。
第2カメラ12は、第1画像に含まれる車両10の前方の所定の領域を含むように、車両10の前方の所定の領域が表された第2画像を生成する。生成された第2画像には、車両10の周囲の他の車両又は車両10の前方の所定の領域内に含まれる路面上の車線区画線などの地物が表わされる。第2カメラ12により生成される画像は、カラー画像であってもよく、又は、グレー画像であってもよい。第2カメラ12は、撮像部の一例であり、CCDあるいはC−MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する撮像光学系を有する。第2カメラ12は、第2画像を生成する度に、第2画像及び第2画像を生成した第2画像情報取得時刻を、車内ネットワークを介してECU17へ出力する。第2画像は、ECU17において、車両10の周囲の他の物体を検出する処理に使用される。本実施形態では、第1画像取得時刻と、第2画像取得時刻とは同期しているとする。
LiDARセンサ13は、車両10の前方を向くように、例えば、車両10の外面に取り付けられる。LiDARセンサ12は、所定の周期で設定される反射波情報取得時刻において、車両10の前方に向けてパルス状のレーザを同期して発射して、反射物により反射された反射波を受信する。LiDARセンサ12の視野は、第2画像に含まれる車両10の前方の所定の領域を含む。反射波が戻ってくるのに要する時間は、レーザが照射された方向に位置する地物と車両10との間の距離情報を有する。LiDARセンサ12は、レーザの照射方向及び反射波が戻ってくるのに要する時間を含む反射波情報を、レーザを発射した反射波情報取得時刻と共に、車内ネットワークを介してECU17へ出力する。反射波情報は、ECU17において、車両10の周囲の他の物体を検出する処理に使用される。本実施形態では、第1画像取得時刻と、反射波情報取得時刻とは同期しているとする。
測位情報受信機14は、車両10の現在位置を表す測位情報を出力する。例えば、測位情報受信機14は、GPS受信機とすることができる。測位情報受信機14は、所定の受信周期で測位情報を取得する度に、測位情報及び測位情報を取得した測位情報取得時刻を、地図情報記憶装置15へ出力する。
地図情報記憶装置15は、車両10の現在位置を含む相対的に広い範囲(例えば10〜30km四方の範囲)の広域地図情報を記憶する。この広域地図情報は、路面の3次元情報、道路上の車線区画線などの地物、構造物の種類及び位置を表す情報、道路の法定速度などを含む高精度地図情報であることが好ましい。地図情報記憶装置15は、測位情報受信機14から測位情報を入力する度に、記憶装置に記憶している広域地図情報を参照して、測位情報により表される現在位置を含む相対的に狭い領域(例えば、100m〜10km四方の範囲)の地図情報、測位情報及び測位情報取得時刻を、車内ネットワークを介してECU17へ出力する。
ナビゲーション装置16は、ナビゲーション用地図情報と、車両10の目的地と、車両10の現在位置とに基づいて、車両10の現在位置から目的地までの走行予定経路を生成する。ナビゲーション装置16は、走行予定経路を生成する度に、その走行予定経路を、車内ネットワークを介してECU17へ出力する。
ECU17は、車両10の走行を制御する。本実施形態では、ECU17では、物体検出処理を実行するアプリケーションが有する複数のモジュールのそれぞれは、制御部の一例であるミドルウェアにより起動されると、複数のモジュールのそれぞれが起動していることを示す起動情報が登録される起動管理テーブルに起動情報を登録し、かつ、起動管理テーブルを参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する情報処理の内容を決定する。そのために、ECU17は、通信インターフェース21と、メモリ22と、プロセッサ23とを有する。
通信インターフェース(I/F)21は、通信部の一例であり、ECU17を車内ネットワークに接続するためのインターフェース回路を有する。すなわち、通信インターフェース21は、車内ネットワークを介して、第1カメラ11、第2カメラ12及び地図情報記憶装置15などと接続される。通信インターフェース21は、例えば、第1カメラ11から第1画像及び第1画像情報取得時刻を受信する度に、受信した第1画像及び第1画像情報取得時刻をプロセッサ23へわたす。また、通信インターフェース21は、第2カメラ12から第2画像及び第2画像情報取得時刻を受信する度に、受信した第2画像及び第2画像情報取得時刻をプロセッサ23へわたす。さらに、通信インターフェース21は、Lidar13から反射波情報及び反射波情報取得時刻を受信する度に、受信した反射波情報及び反射波情報取得時刻をプロセッサ23へわたす。
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、ECU17のプロセッサ23により実行される情報処理において使用されるアプリケーションのプログラム(アプリケーションの複数のモジュールを含む)及び各種のデータ(例えば、プロセッサ23により実行されるアプリケーションが有する複数のモジュールのそれぞれが起動していることを示す起動情報が登録される起動管理テーブル)、第1カメラ11、第2カメラ12及びLidar13のそれぞれの光軸方向及び取り付け位置などの設置位置情報、第1カメラ11及び第2カメラ12の撮像光学系の焦点距離及び画角といった内部パラメータなどを記憶する。
プロセッサ23は、1個又は複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。プロセッサ23が複数個のCPUを有する場合、CPUごとにメモリを有していてもよい。
プロセッサ23は、第1カメラ11が生成した画像と、地図情報とに基づいて、この画像が生成された第1画像情報取得時刻における車両10の位置を推定する位置推定処理を実行し、第1画像情報取得時刻における車両10の位置に基づいて、車両10の現在位置を推定する。また、プロセッサ23は、第1画像、第2画像及び反射波情報に基づいて、車両10の周囲の他の物体及び他の物体の位置を検出する(以下、物体検出処理ともいう)。他の物体には、車両10の周囲を走行する他の車両が含まれる。さらに、プロセッサ23は、車両10の推定位置と、車両10の目的地と、車両10の周囲の他の物体との相対的な位置関係とに基づいて運転計画を生成して(以下、運転計画生成処理ともいう)、この運転計画に基づいて車両10の走行動作を制御するための制御信号を生成する(以下、車両制御処理ともいう)。この制御信号に基づいて、車両10の操舵、加速又は制動が制御される。
図3は、第1実施形態の情報処理に関する、ECU17のプロセッサを説明する図である。プロセッサ23には、物体検出アプリケーション33と、位置推定処理、物体検出処理の一部の処理、運転計画生成処理及び車両制御処理などを実行する他のアプリケーション34と、ミドルウェア32と、OS31とが実装される。物体検出アプリケーション33及び他のアプリケーション34は、制御部の一例であるミドルウェア32を介して、OS31上で動作する。OS31と、ミドルウェア32と、物体検出アプリケーション33と、他のアプリケーション34とは、OS31が上位となって下位層の動作を制御する階層構造30を形成する。
物体検出アプリケーション33は、モジュール1〜モジュール3を有する。モジュール1〜モジュール3は、制御部の一例であるミドルウェア32を介して、OS31上で動作する。ミドルウェア32は、モジュール1〜モジュール3の動作を制御する。モジュール1は、第1画像から他の物体及びその種類を検出して、オプティカルフローなどに基づく追跡処理に従って、最新の画像から検出された他の物体を過去の画像から検出された物体と対応付けることで、最新の画像から検出された他の物体を追跡する。モジュール1は、この追跡処理において、必要に応じて他の物体の位置及び大きさを補正する。モジュール2は、第2画像から他の物体及びその種類を検出して、オプティカルフローなどに基づく追跡処理に従って、最新の画像から検出された他の物体を過去の画像から検出された物体と対応付けることで、最新の画像から検出された他の物体を追跡する。モジュール2は、この追跡処理において、必要に応じて他の物体の位置及び大きさを補正する。モジュール3は、反射波情報に基づいて他の物体並びに車両10に対する他の物体までの距離及び方位を検出する。モジュール3は、その検出結果を、モジュール1及びモジュール2が検出した他の物体を関連づけて、他のアプリケーション34へ通知する。次に、上述した画像処理アプリケーション35の動作例を、図4〜図6を参照しながら、以下に説明する。
まず、ステップS401において、ミドルウェア32は、物体検出アプリケーション33の起動を要求する起動要求が通知されると、モジュール1〜モジュール3を起動し且つ初期化させるための起動及び初期化要求を生成して、モジュール1〜モジュール3のそれぞれに通知する。また、ミドルウェア32は、モジュール1〜モジュール3のそれぞれが起動していることを示す起動情報が登録される起動管理テーブル221を、モジュール1〜モジュール3がアクセス可能なメモリ22の領域に生成する。
次に、ステップS402において、モジュール1は、ミドルウェア32から起動要求が通知されると、ミドルウェア32から動作を開始することを要求する動作開始要求が通知された場合に動作を開始することが可能な状態となるように初期化処理を実行する。モジュール1は、例えば、初期化処理として、第1画像から他の物体及びその種類を検出するのに使用するパラメータ、第1画像からの他の物体の検出結果及びその信頼度を通知する通知先である他のモジュール(2)に関する情報(起動モジュール識別番号)、及び補正後の検出結果を通知する通知先である他のモジュール(3)に関する情報(起動モジュール識別番号)などを、メモリ22から読み込む。なお、モジュール1及びモジュール2は、これらの初期化処理で読み込む情報を、ミドルウェア32から通知されてもよい。
次に、ステップS403において、モジュール1は、モジュール1が起動していることを示す起動情報を、メモリ22に記憶されている起動管理テーブル221に登録する。図6は、第1実施形態における起動管理テーブルを説明する図である。起動管理テーブル221は、起動しているモジュールを識別する起動モジュール識別番号(起動情報の一例)が登録される起動モジュール識別番号欄2211と、起動しているモジュールの数を示す起動モジュール数が登録される起動モジュール数欄2212を有する。起動管理テーブル221が生成された初期状態では、起動モジュール識別番号欄2211には起動モジュール識別番号は登録されておらず、起動モジュール数欄2212にはゼロが登録されている。モジュール1は、起動管理テーブル221の起動モジュール識別番号欄2211に、モジュール1の起動モジュール識別番号を登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール1は、起動及び初期化を行ったことを、ミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール1が起動及び初期化を行ったと判定する。例えば、モジュール1は、起動及び初期化の実行時に異常が発生した場合、起動及び初期化を行ったことを、ミドルウェア32へ通知しない。ミドルウェア32は、起動要求をモジュール1へ通知した後に所定の時間が経過しても、起動及び初期化を行ったことが通知されない場合、モジュール1が起動していないと判定する。
また、ステップS404において、モジュール2は、ミドルウェア32から起動要求が通知されると、ミドルウェア32から動作を開始することを要求する動作開始要求が通知された場合に動作を開始することが可能な状態となるように初期化処理を実行する。モジュール2は、例えば、初期化処理として、第2画像から他の物体及びその種類を検出するのに使用するパラメータ、第2画像からの他の物体の検出結果及びその信頼度を通知する通知先である他のモジュール(1)に関する情報(起動モジュール識別番号)、及び補正後の検出結果を通知する通知先である他のモジュール(3)に関する情報(起動モジュール識別番号)などを、メモリ22から読み込む。なお、ステップS404の処理は、上述したステップS402よりも先に行われるか、又は同時に行われてもよい。
次に、ステップS405において、モジュール2は、モジュール2が起動していることを示す起動情報を、メモリ22に記憶されている起動管理テーブル221に登録する。モジュール2は、起動管理テーブル221の起動モジュール識別番号欄2211に、モジュール2の起動モジュール識別番号を登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール1は、起動及び初期化を行ったことを、ミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール2が起動及び初期化を行ったと判定する。なお、ステップS405の処理は、上述したステップS403よりも先に行われるか、又は同時に行われてもよい。
また、ステップS406において、モジュール3は、ミドルウェア32から起動要求が通知されると、ミドルウェア32から動作を開始することを要求する動作開始要求が通知された場合に動作を開始することが可能な状態となるように初期化処理を実行する。モジュール3は、例えば、初期化処理として、反射波情報から他の物体を検出するのに使用するパラメータ、及び、モジュール3に対して他の物体の検出結果を通知する通知元である他のモジュール(1,2)に関する情報(起動モジュール識別番号)などを、メモリ22から読み込む。なお、ステップS404の処理は、上述したステップS402又はS404よりも先に行われるか、又は同時に行われてもよい。
次に、ステップS407において、モジュール3は、モジュール3が起動していることを示す起動情報を、メモリ22に記憶されている起動管理テーブル221に登録する。モジュール3は、起動管理テーブル221の起動モジュール識別番号欄2211に、モジュール2の起動モジュール識別番号を登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール1は、起動及び初期化を行ったことを、ミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール2が起動及び初期化を行ったと判定する。なお、ステップS407の処理は、上述したステップS403又はS405よりも先に行われるか、又は同時に行われてもよい。
図6は、モジュール1〜モジュール3のそれぞれが起動情報を登録した後の起動管理テーブル221を示す。図6に示すように、起動モジュール識別番号欄2211にはモジュール1〜モジュール3の起動モジュール識別番号が登録され、起動モジュール数欄2212には、起動しているモジュールの数である3が登録されている。
次に、ステップS408において、ミドルウェア32は、第1カメラ11から第1画像及び第1画像取得時刻が通知されると、モジュール1に対して、第1画像及び第1画像取得時刻を通知すると共に、モジュール1が動作を開始することを要求する動作開始要求を通知する。
次に、ステップS409において、モジュール1は、ミドルウェア32から動作開始要求が通知されると、メモリ22に記憶された起動管理テーブル221を参照して、起動している他のモジュールと関連する処理の内容を決定する。そして、モジュール1は、第1画像から他の物体を検出する。具体的には、モジュール1は、起動管理テーブル221を参照して、起動している他のモジュールの起動モジュール識別番号を取得し、検出結果及びその信頼度を通知する通知先である他のモジュール(2)が起動している場合、起動モジュール識別番号(2)で識別されるモジュール2を通知先として選択する。一方、モジュール1は、検出結果及びその信頼度を通知する通知先である他のモジュール(2)が起動していない場合、検出結果及びその信頼度を他のモジュールを通知することなく、検出結果を補正することを決定する。また、モジュール1は、起動管理テーブル221を参照して、補正後の検出結果を通知する通知先である他のモジュール(3)が起動している場合、起動モジュール識別番号(3)で識別されるモジュール3を通知先として選択する。一方、モジュール1は、補正後の検出結果を通知する通知先である他のモジュール(3)が起動していない場合、補正後の検出結果を他のモジュールへ通知することなく他のアプリケーション34へ通知することを決定する。そして、モジュール1は、第1画像から他の物体を含むと推定される矩形領域の位置及びその種類を検出すると共に、その検出結果の信頼度を求める。モジュール1は、例えば、第1カメラ11が生成した第1画像を識別器に入力することで第1画像に表された物体を検出する。識別器として、例えば、入力された画像から、その画像に表された物体を検出するように予め学習されたディープニューラルネットワーク(DNN)を用いることができる。モジュール1は、DNN以外の識別器を用いてもよい。また、モジュール1は、第1画像内の矩形領域の位置に基づいて、車両10に対する矩形領域の方位を求める。そして、モジュール1は、他の物体(矩形領域)の位置、その種類、検出結果の信頼度及び車両10に対する他の物体の方位を、選択された他のモジュール(モジュール2)へ通知する。一方、モジュール1は、モジュール2が起動していない場合、上述した検出結果を他のモジュールへ通知することは行わない。
また、ステップS410において、ミドルウェア32は、第2カメラ12から第2画像及び第2画像取得時刻が通知されると、モジュール2に対して、第2画像及び第2画像取得時刻を通知すると共に、モジュール2が動作を開始することを要求する動作開始要求を通知する。なお、ステップS410の処理は、上述したステップS406よりも先に行われてもよい。
次に、ステップS411において、モジュール2は、ミドルウェア32から動作開始要求が通知されると、メモリ22に記憶された起動管理テーブル221を参照して、起動している他のモジュールと関連する処理の内容を決定する。そして、モジュール2は、第2画像から他の物体を検出する。具体的には、モジュール2は、起動管理テーブル221を参照して、起動している他のモジュールの起動モジュール識別番号を取得し、検出結果及びその信頼度を通知する通知先である他のモジュール(2)が起動している場合、起動モジュール識別番号(1)で識別されるモジュール1を通知先として選択する。一方、モジュール2は、検出結果及びその信頼度を通知する通知先である他のモジュール(1)が起動していない場合、検出結果及びその信頼度を他のモジュールを通知することなく、検出結果を補正することを決定する。また、モジュール2は、起動管理テーブル221を参照して、補正後の検出結果を通知する通知先である他のモジュール(3)が起動している場合、起動モジュール識別番号(3)で識別されるモジュール3を通知先として選択する。一方、モジュール2は、補正後の検出結果を通知する通知先である他のモジュール(3)が起動していない場合、補正後の検出結果を他のモジュールへ通知することなく他のアプリケーション34へ通知することを決定する。そして、モジュール2は、第2画像から他の物体を含むと推定される矩形領域の位置及びその種類を検出すると共に、その検出結果の信頼度を求める。モジュール2は、例えば、第2カメラ12が生成した第1画像を識別器に入力することで第2画像に表された物体を検出する。識別器として、例えば、入力された画像から、その画像に表された物体を検出するように予め学習されたディープニューラルネットワーク(DNN)を用いることができる。モジュール2は、DNN以外の識別器を用いてもよい。また、モジュール2は、第2画像内の矩形領域の位置に基づいて、車両10に対する矩形領域の方位を求める。そして、モジュール2は、他の物体(矩形領域)の位置、その種類、検出結果の信頼度及び車両10に対する他の物体の方位を、選択された他のモジュール(モジュール1)へ通知する。一方、モジュール2は、モジュール1が起動していない場合、上述した検出結果を他のモジュールへ通知することは行わない。
また、ステップS412において、ミドルウェア32は、Lidar12から反射波情報及び反射波取得時刻が通知されると、モジュール3に対して、反射波情報及び反射波取得時刻を通知すると共に、モジュール3が動作を開始することを要求する動作開始要求を通知する。なお、ステップS412の処理は、上述したステップS408又はS410よりも先に行われてもよい。
次に、ステップS413において、モジュール3は、ミドルウェア32から動作開始要求が通知されると、メモリ22に記憶された起動管理テーブル221を参照して、起動している他のモジュールと関連する処理の内容を決定する。そして、モジュール3は、反射波情報に基づいて他の物体を検出する。具体的には、モジュール3は、起動管理テーブル221を参照して、起動している他のモジュールの起動モジュール識別番号を取得し、モジュール3に対して他の物体に検出結果を通知する通知元である他のモジュール(1,2)が起動している場合、起動モジュール識別番号(1,2)で識別されるモジュール1及びモジュール2を通知元として選択する。一方、モジュール3は、モジュール3に対して他の物体に検出結果を通知する通知元である他のモジュール(1,2)が起動していない場合、他のモジュールから他の物体の検出結果が通知されることを待つことなく、モジュール3の検出結果を他のアプリケーション34へ通知することを決定する。そして、モジュール3は、ミドルウェア32から通知されて反射波情報に基づいて、車両10の前方の他の物体を検出する。モジュール3は、例えば、反射波情報を識別器に入力することで、車両10の前方の他の物体を検出して、車両10に対する他の物体までの距離及び方位を推定する。識別器として、例えば、入力された反射波情報から、その反射波情報に表された物体を検出するように予め学習されたディープニューラルネットワーク(DNN)を用いることができる。モジュール3は、DNN以外の識別器を用いてもよい。そして、モジュール3は、選択された他のモジュール(モジュール1及びモジュール2)から他の物体に関する情報が通知されるまで待機する。一方、モジュール3は、モジュール1及びモジュール2が起動していない場合、選択された他のモジュールから他の物体の検出結果が通知されることを待つことなく、車両10に対する他の物体までの距離及び方位を他のアプリケーション34へ通知した上で、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。
次に、ステップS501において、モジュール1は、モジュール2から検出結果及び信頼度などが通知されると、モジュール1が検出した他の物体の車両10に対する方位と、モジュール2から通知された他の物体の車両10に対する方位とを比較して、2つの方位の差が所定の範囲内にある場合、モジュール1が検出した他の物体とモジュール2が検出した他の物体とは同一であると判定する。そして、モジュール1は、モジュール1が求めた信頼度と、モジュール2から通知された信頼度とを比較して、モジュール1が求めた信頼度が、モジュール2から通知された信頼度よりも高い場合、第1画像内の矩形領域の補正を実行する。具体的には、モジュール1は、追跡処理を行って、最新の画像から検出された他の物体を直前の画像から検出された物体と対応付ける。そして、モジュール1は、追跡処理により対応づけた直前の第1画像内に検出された矩形領域の位置と今回の矩形領域の位置との差である距離(画素数)と、所定の基準値と比較して、差である距離が所定の基準値よりも大きい場合、今回の矩形領域の位置を、直前の第1画像内に検出された矩形領域の位置に対して所定の基準値以内の距離となるように補正する。これは、差である距離が所定の基準値よりも大きい場合、今回の矩形領域の位置は異常値であると考えられるからである。また、モジュール1は、直前の第1画像内に検出された矩形領域の大きさと今回の矩形領域の大きさとの差を、所定の基準値と比較して、大きさの差が所定の基準値よりも大きい場合、今回の矩形領域の大きさを、大きさの差が所定の基準値以内となるように補正する。これは、大きさの差が所定の基準値よりも大きい場合、今回の矩形領域の大きさが異常値であると考えられるからである。モジュール1は、補正後の他の物体(矩形領域)の第1画像内の位置及びその種類と、追跡処理の結果を、第1画像取得時刻と共に、選択された他のモジュール(3)へ通知する。一方、モジュール1は、モジュール3が起動していない場合、補正後の他の物体(矩形領域)の車両10に対する方位、第1画像内の位置及びその種類を、他のアプリケーション34へ通知する。そして、モジュール1は、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。また、モジュール1は、モジュール1が検出した他の物体とモジュール2が検出した他の物体とは同一ではないと判定した場合、この第1画像内の他の物体(矩形領域)の補正を実行して、補正後の他の物体の第1画像内の位置及びその種類を、第1画像取得時刻と共に、選択された他のモジュール(3)へ通知する。
また、ステップS502において、モジュール2は、モジュール1から検出結果及び信頼度などが通知されると、モジュール2が検出した他の物体の車両10に対する方位と、モジュール1から通知された他の物体の車両10に対する方位とを比較して、2つの方位の差が所定の範囲内にある場合、モジュール2が検出した他の物体とモジュール1が検出した他の物体とは同一であると判定する。そして、モジュール2は、モジュール2が求めた信頼度と、モジュール1から通知された信頼度とを比較して、モジュール2が求めた信頼度が、モジュール1から通知された信頼度よりも高い場合、第2画像内の矩形領域の補正を実行する。具体的には、モジュール1は、追跡処理を行って、最新の画像から検出された他の物体を直前の画像から検出された物体と対応付ける。そして、モジュール2は、追跡処理により対応づけた直前の第2画像内に検出された矩形領域の位置と今回の矩形領域の位置との差である距離(画素数)と、所定の基準値と比較して、差である距離が所定の基準値よりも大きい場合、今回の矩形領域の位置を、直前の第2画像内に検出された矩形領域の位置に対して所定の基準値以内の距離となるように補正する。これは、差である距離が所定の基準値よりも大きい場合、今回の矩形領域の位置は異常値であると考えられるからである。また、モジュール2は、直前の第2画像内に検出された矩形領域の大きさと今回の矩形領域の大きさとの差を、所定の基準値と比較して、大きさの差が所定の基準値よりも大きい場合、今回の矩形領域の大きさを、大きさの差が所定の基準値以内となるように補正する。これは、大きさの差が所定の基準値よりも大きい場合、今回の矩形領域の大きさが異常値であると考えられるからである。モジュール2は、補正後の他の物体(矩形領域)の車両10に対する方位、第2画像内の位置及びその種類と、追跡処理の結果を、第2画像取得時刻と共に、選択された他のモジュール(3)へ通知する。一方、モジュール2は、モジュール3が起動していない場合、補正後の他の物体(矩形領域)の第2画像内の位置及びその種類を、他のアプリケーション34へ通知する。そして、モジュール2は、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。また、モジュール2は、モジュール2が検出した他の物体とモジュール1が検出した他の物体とは同一ではないと判定した場合、この第2画像内の他の物体(矩形領域)の補正を実行して、補正後の他の物体の第2画像内の位置及びその種類を、第2画像取得時刻と共に、選択された他のモジュール(3)へ通知する。
このように、物体検出アプリケーション33では、第1カメラ11が生成した第1画像と、第2カメラ12が生成した第2画像との両方に撮影された同一の他の物体の検出については、新ライドの低い検出結果の矩形領域に対しては補正せず、信頼度の高い検出結果の矩形領域に対して補正を行うことにより処理量の抑制を図っている。
次に、ステップS503において、モジュール3は、通知元として選択された他のモジュール(1、2)から補正後の他の物体(矩形領域)の車両10に対する方位、画像内の位置及びその種類と、追跡処理の結果が通知されると、通知された他の物体の車両10に対する方位と、モジュール3が検出した他の物体の方位の中で、方位が一致する他の物体を選択する。モジュール3は、方位が一致する他の物体が選択された場合、通知された他の物体の車両10に対する方位、画像内の位置及びその種類と、追跡処理の結果を、モジュール3が推定した他の物体の車両10に対する距離とを関連づけて、他のアプリケーション34へ通知する。そして、モジュール3は、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。
プロセッサ23に実装される他のアプリケーション34は、車両10の位置と、車両10に対する他の物体までの距離及び方位に基づいて、例えば世界座標系で表された、他の物体の位置を推定する。そして、他のアプリケーション34は、車両10の位置と、他の物体に関する情報と、走行予定経路と、地図情報とに基づいて運転計画を生成して、この運転計画に基づいて制御信号を生成する。
以上に説明してきたように、この情報処理装置は、制御部により制御される複数のモジュールと、複数のモジュールのそれぞれが起動していることを示す起動情報が登録される起動管理テーブルを記憶する記憶部と、を有する。複数のモジュールのそれぞれは、制御部により起動されると、起動管理テーブルに起動情報を登録し、かつ、起動管理テーブルを参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する処理の内容を決定する。これにより、情報処理装置では、複数のモジュールのそれぞれが、起動している他のモジュールに基づいて、実行する処理の内容を決定するので、起動している他のモジュールの状況に応じて動作できる。
上述した第1実施形態では、起動している他のモジュールと関連する処理として、検出結果の信頼度が他のモジュールよりも高い場合、画像内の矩形領域の補正を実行していたが、モジュールが実行する処理は、これに限定されない。例えば、モジュール1(又は2)は、モジュール2(又は1)から通知された、モジュール2が検出した車両10に対する他の物体の方位に対応する他の物体を検出しない場合、最初の物体検出処理よりも検出精度の高い処理を用いて、モジュール2(又は1)が検出した車両10に対する他の物体の方位の画像領域を解析するようにしてもよい。
次に、上述した情報処理装置の第2実施形態を、図7〜図15を参照しながら以下に説明する。他の実施形態について特に説明しない点については、上述の第1実施形態に関して詳述した説明が適宜適用される。また、同一の構成要素には同一の符号を付してある。
本実施形態の情報処理装置も、上述した第1実施形態と同様に、車両制御システムのECU17に実装される。本実施形態のECU17は、上述した第1実施形態とは異なり、第1カメラ11が生成した第1画像と共に、第2カメラ12が生成した第2画像に基づいて、車両10の現在位置を推定する。また、ECU17は、画像を処理する際に使用されるハードウェアアクセラレータ(HA)を有する。ECU17は、画像を処理する際にハードウェアアクセラレータを使用することにより、画像を高速に処理することができる。
図7は、第2実施形態の情報処理に関する、ECU17のプロセッサを説明する図である。プロセッサ23には、位置推定処理の一部及び物体検出処理の一部を実行する画像処理アプリケーション35と、位置推定処理及び物体検出処理の他の処理、運転計画生成処理及び車両制御処理などを実行する他のアプリケーション36と、ミドルウェア32と、OS31とが実装される。画像処理アプリケーション35及び他のアプリケーション36は、制御部の一例であるミドルウェア32を介して、OS31上で動作する。OS31と、ミドルウェア32と、画像処理アプリケーション35と、他のアプリケーション36とは、OS31が上位となって下位層の動作を制御する階層構造30を形成する。
画像処理アプリケーション35は、モジュール1〜モジュール4を有する。モジュール1〜モジュール4は、制御部の一例であるミドルウェア32を介して、OS31上で動作する。ミドルウェア32は、モジュール1〜モジュール4の動作を制御する。モジュール1は、ハードウェアアクセラレータを用いて、第1カメラ11が生成した第1画像から他の物体及びその種類を検出した後、メモリ22に記憶される起動管理テーブル221に登録される情報に基づいて選択される他のモジュールへハードウェアアクセラレータの使用権を通知する。モジュール2は、ハードウェアアクセラレータを用いて、第1カメラ11が生成した第1画像から車線区画線を検出した後、起動管理テーブル221に登録される情報に基づいて選択される他のモジュールへハードウェアアクセラレータの使用権を通知する。モジュール3は、ハードウェアアクセラレータを用いて、第2カメラ12が生成した第2画像から他の物体及びその種類を検出した後、起動管理テーブル221に登録される情報に基づいて選択される他のモジュールへハードウェアアクセラレータの使用権を通知する。モジュール4は、ハードウェアアクセラレータを用いて、第2カメラ12が生成した第2画像から車線区画線を検出した後、起動管理テーブル221に登録される情報に基づいて選択される他のモジュールへハードウェアアクセラレータの使用権を通知する。次に、上述した画像処理アプリケーション35の第1動作例を、図8〜図11を参照しながら、以下に説明する。
まず、ステップS801において、ミドルウェア32は、画像処理アプリケーション35の起動を要求する起動要求が通知されると、モジュール1〜モジュール4を起動させるための起動要求を生成して、モジュール1〜モジュール4のそれぞれに通知する。また、ミドルウェア32は、モジュール1〜モジュール4のそれぞれが起動していることを示す起動情報が登録される起動管理テーブル221を、モジュール1〜モジュール4がアクセス可能なメモリ22の領域に生成する。
次に、ステップS802において、モジュール1は、ミドルウェア32から起動要求が通知されると、モジュール1が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。図10は、第2実施形態の第1動作例における起動管理テーブルを説明する図である。そして、モジュール1は、起動したことをミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール1が起動したと判定する。
また、ステップS803において、モジュール2は、ミドルウェア32から起動要求が通知されると、モジュール2が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール2は、起動したことをミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール2が起動したと判定する。
また、ステップS804において、モジュール3は、ミドルウェア32から起動要求が通知されると、モジュール3が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール3は、起動したことを、ミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール3が起動したと判定する。
また、ステップS805において、モジュール4は、ミドルウェア32から起動要求が通知されると、モジュール4が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール4は、起動したことをミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール4が起動したと判定する。なお、ステップS802〜S805の処理は、その順番に制約はなく、また、各処理は同時に行われてもよい。
図10は、モジュール1〜モジュール4のそれぞれが起動情報を登録した後の起動管理テーブル221を示す。図10に示すように、起動モジュール識別番号欄2211にはモジュール1〜モジュール4の起動モジュール識別番号が登録され、起動モジュール数欄2212には、起動しているモジュールの数である4が登録されている。
次に、ステップS806において、ミドルウェア32は、第1カメラ11から第1画像及び第1画像取得時刻が通知されると、モジュール1に対して、第1画像及び第1画像取得時刻を通知すると共に、モジュール1が動作を開始することを要求する最初の動作開始要求と、第1画像の処理に使用するハードウェアアクセラレータ(HA)の使用権を通知する。これにより、モジュール1は、ハードウェアアクセラレータの使用が許容される。モジュール1〜モジュール4のそれぞれは、画像を処理する際にECU17が有するハードウェアアクセラレータを使用するが、ハードウェアアクセラレータの使用は、ハードウェアアクセラレータの使用権が通知されているモジュールのみに許容される。また、ミドルウェア32は、モジュール2に対して、第1画像及び第1画像取得時刻を通知すると共に、モジュール2が動作を開始することを要求する最初の動作開始要求を通知する。なお、ミドルウェア32は、モジュール1が起動していない場合、ハードウェアアクセラレータ(HA)の使用権をモジュール2へ通知する。
次に、ステップS807において、モジュール1は、ミドルウェア32から最初の動作開始要求が通知されると、起動管理テーブル221を参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する初期化処理および実行する所定の処理の内容を決定し、かつ、ミドルウェア32から動作を開始することの指示が通知された場合に動作を開始することが可能な状態となるように決定した内容の初期化処理を行う。具体的には、モジュール1は、第1画像から他の物体及びその種類を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。なお、モジュール1〜モジュール4は、これらの初期化処理に用いる情報を、ミドルウェア32から通知されてもよい。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール2、モジュール3、モジュール4の順番である。そして、モジュール1は、メモリ22に記憶された起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール1は、起動している他のモジュールの起動モジュール識別番号として、2、3及び4を取得する。一方、他のモジュールが起動していない場合、モジュール1は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。ここまでの処理が、モジュール1が、起動管理テーブル221を参照して、起動している他のモジュールに基づいて、起動している他のモジュールと関連する初期化処理および実行する所定の処理の内容を決定することに対応する。そして、モジュール1は、初期化処理として、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図11(A)は、モジュール1が生成した通知管理テーブルを示す。通知管理テーブル1101は、通知管理テーブル1101が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1111と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1112とを有する。モジュール識別番号欄1111には、通知管理テーブル1101が適用されるモジュールを識別するモジュール識別番号(1)が登録される。通知先欄1112には、起動管理テーブル221の起動モジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール2の起動モジュール識別番号(2)が登録される。モジュール1は、後述する所定の第1画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール2へ通知する。一方、モジュール1は、全ての他のモジュールが起動していない場合、通知管理テーブルを生成しない。なお、モジュール1は、ミドルウェア32から通知される2回目移行の動作要求に対しては、ステップS807の処理を行わなくてよい。
また、ステップS808において、モジュール2は、ミドルウェア32から最初の動作開始要求が通知されると、第1画像から車線区画線を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール3、モジュール4、モジュール1の順番である。そして、モジュール2は、メモリ22に記憶された起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール2は、起動している他のモジュールの起動モジュール識別番号として、1、3及び4を取得する。一方、他のモジュールが起動していない場合、モジュール2は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。そして、モジュール2は、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図11(B)は、モジュール2が生成した通知管理テーブルを示す。通知管理テーブル1102は、通知管理テーブル1102が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1121と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1122とを有する。モジュール識別番号欄1121には、通知管理テーブル1102が適用されるモジュールを識別するモジュール識別番号(2)が登録される。通知先欄1122には、起動管理テーブル221のモジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール3の起動モジュール識別番号(3)が登録される。モジュール2は、後述する所定の第1画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール3へ通知する。一方、モジュール2は、全ての他のモジュールが起動していない場合、通知管理テーブルを生成しない。なお、モジュール2は、ミドルウェア32から通知される2回目移行の動作要求に対しては、ステップS808の処理を行わなくてよい。
また、ステップS809において、ミドルウェア32は、第2カメラ12から第2画像及び第2画像取得時刻が通知されると、モジュール3及びモジュール4に対して、第2画像及び第2画像取得時刻を通知すると共に、モジュールが動作を開始することを要求する最初の動作開始要求を通知する。ミドルウェア32は、モジュール1及び2が起動していない場合、ハードウェアアクセラレータ(HA)の使用権をモジュール3へ通知する。また、ミドルウェア32は、モジュール1〜3が起動していない場合、ハードウェアアクセラレータ(HA)の使用権をモジュール4へ通知する。なお、ステップS809の処理は、上述したステップS806よりも先に行われてもよい。
次に、ステップS810において、モジュール3は、ミドルウェア32から最初の動作開始要求が通知されると、第2画像から他の物体及びその種類を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール4、モジュール1、モジュール2の順番である。そして、モジュール3は、メモリ22に記憶された起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール3は、起動している他のモジュールの起動モジュール識別番号として、1、2及び4を取得する。一方、他のモジュールが起動していない場合、モジュール3は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。そして、モジュール3は、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図11(C)は、モジュール3が生成した通知管理テーブルを示す。通知管理テーブル1103は、通知管理テーブル1103が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1131と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1132とを有する。モジュール識別番号欄1131には、通知管理テーブル1103が適用されるモジュールを識別するモジュール識別番号(3)が登録される。通知先欄1132には、起動管理テーブル221の起動モジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール4の起動モジュール識別番号(4)が登録される。モジュール3は、後述する所定の第2画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール4へ通知する。一方、モジュール3は、全ての他のモジュールが起動していない場合、通知管理テーブルを生成しない。なお、モジュール3は、ミドルウェア32から通知される2回目移行の動作要求に対しては、ステップS810の処理を行わなくてよい。
また、ステップS811において、モジュール4は、ミドルウェア32から最初の動作開始要求が通知されると、第2画像から車線区画線を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール1、モジュール2、モジュール3の順番である。そして、モジュール4は、メモリ22に記憶された起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール4は、起動している他のモジュールの起動モジュール識別番号として、1、2及び3を取得する。一方、他のモジュールが起動していない場合、モジュール4は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。そして、モジュール4は、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図11(D)は、モジュール4が生成した通知管理テーブルを示す。通知管理テーブル1104は、通知管理テーブル1104が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1141と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1142とを有する。モジュール識別番号欄1141には、通知管理テーブル1104が適用されるモジュールを識別するモジュール識別番号(4)が登録される。通知先欄1142には、起動管理テーブル221の起動モジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール1の起動モジュール識別番号(1)が登録される。モジュール4は、後述する所定の第2画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール1へ通知する。一方、モジュール4は、全ての他のモジュールが起動していない場合、通知管理テーブルを生成しない。なお、モジュール4は、ミドルウェア32から通知される2回目移行の動作要求に対しては、ステップS811の処理を行わなくてよい。
次に、ステップS901において、モジュール1は、物体検出処理として、ハードウェアアクセラレータを使用して第1画像から他の物体を含むと推定される矩形領域の位置及びその種類を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。この他のアプリケーション36は、第1画像内の矩形領域の位置及びその種類に基づいて、物体検出の他の処理を実行する。そして、モジュール1は、メモリ22に記憶される通知管理テーブル1101を参照して、ハードウェアアクセラレータの使用権を、モジュール2へ通知した後待機状態となる。これにより、モジュール2は、ハードウェアアクセラレータの使用が許容される。
次に、ステップS902において、モジュール2は、モジュール1からハードウェアアクセラレータの使用権が通知された後、車線区画線検出処理として、ハードウェアアクセラレータを使用して第1画像から車線区画線を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。モジュール2は、第1カメラ11の画像内に設けられた、車両10の周囲の車線区画線を検出するための照合領域を、画像内の車線区画線を識別する識別器に入力することで車線区画線を検出する。識別器として、例えば、入力された画像から、その画像に表された車線区画線を検出するように予め学習されたディープニューラルネットワーク(DNN)を用いることができる。プロセッサ23に実装される他のアプリケーション36は、第1画像内の車線区画線の位置に基づいて、車両10の位置推定の他の処理を実行する。そして、モジュール2は、メモリ22に記憶される通知管理テーブル1102を参照して、ハードウェアアクセラレータの使用権を、モジュール3へ通知した後待機状態となる。これにより、モジュール3は、ハードウェアアクセラレータの使用が許容される。
次に、ステップS903において、モジュール3は、モジュール2からハードウェアアクセラレータの使用権が通知された後、物体検出処理として、ハードウェアアクセラレータを使用して第2画像から他の物体を含むと推定される矩形領域の位置及びその種類を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。この他のアプリケーション36は、第2画像内の矩形領域の位置及びその種類に基づいて、物体検出の他の処理を実行する。なお、プロセッサ23に実装される他のアプリケーション36は、モジュール1の検出結果及びモジュール3の検出結果の中の何れかに基づいて、物体検出の他の処理を実行してもよい。そして、モジュール2は、メモリ22に記憶される通知管理テーブル1103を参照して、ハードウェアアクセラレータの使用権を、モジュール4へ通知した後待機状態となる。これにより、モジュール4は、ハードウェアアクセラレータの使用が許容される。
次に、ステップS904において、モジュール4は、モジュール3からハードウェアアクセラレータの使用権が通知された後、車線区画線検出処理として、ハードウェアアクセラレータを使用して第2画像から車線区画線を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。この他のアプリケーション36は、第2画像内の車線区画線の位置に基づいて、車両10の位置推定の他の処理を実行する。なお、プロセッサ23に実装される他のアプリケーション36は、モジュール2の検出結果及びモジュール4の検出結果の中の何れかに基づいて、位置推定の他の処理を実行してもよい。そして、モジュール4は、メモリ22に記憶される通知管理テーブル1104を参照して、ハードウェアアクセラレータの使用権を、モジュール1へ通知する。これにより、モジュール1は、ハードウェアアクセラレータの使用が許容される。そして、モジュール4は、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。
他のアプリケーション36は、画像処理アプリケーション35が検出した車線区画線と、地図情報とに基づいて、車両10の位置を推定する。また、他のアプリケーション36は、画像処理アプリケーション35が検出した他の物体の検出結果と、反射波情報に基づいて検出した他の物体の検出結果とに基づいて、他の物体の位置を推定する。そして、他のアプリケーション36は、車両10の位置と、他の物体に関する情報と、走行予定経路と、地図情報とに基づいて運転計画を生成して、この運転計画に基づいて制御信号を生成する。
次に、車両制御システムのECU17が有する画像処理アプリケーションの第2動作例を、図12〜図15を参照しながら、以下に説明する。上述した第1動作例では全てのモジュール1〜モジュール4が起動していたが、第2動作例ではモジュール3が起動しない点が、第1動作例とは異なっている。
まず、ステップS1201において、ミドルウェア32は、画像処理アプリケーション35の起動を要求する起動要求が通知されると、モジュール1〜モジュール4を起動させるための起動要求を生成して、モジュール1〜モジュール4のそれぞれに通知する。また、ミドルウェア32は、モジュール1〜モジュール4のそれぞれが起動していることを示す起動情報が登録される起動管理テーブル221を、メモリ22に生成する。
次に、ステップS1202において、モジュール1は、ミドルウェア32により起動要求が通知されると、モジュール1が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。図14は、第2実施形態の第2動作例における起動管理テーブルを説明する図である。そして、モジュール1は、起動したことをミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール1が起動したと判定する。
また、ステップS1203において、モジュール2は、ミドルウェア32により起動要求が通知されると、モジュール2が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール2は、起動したことをミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール2が起動したと判定する。
また、ステップS1204において、モジュール4は、ミドルウェア32により起動要求が通知されると、モジュール4が起動していることを示す起動情報の一例である起動モジュール識別番号を、メモリ22に記憶されている起動管理テーブル221に登録すると共に、起動モジュール数欄2212の値を1だけ増加させる。そして、モジュール4は、起動したことをミドルウェア32へ通知する。これにより、ミドルウェア32は、モジュール4が起動したと判定する。なお、ステップS1202、S1203及びS1204の処理は、その順番に制約はなく、また、各処理は同時に行われてもよい。
第2動作例では、ミドルウェア32は、モジュール3に対して起動要求を通知した後、所定の待機時間が経過してもモジュール3から起動したことが通知されないので、モジュール3は起動していないと判定する。
図14は、モジュール1、モジュール2及びモジュール4のそれぞれが起動情報を登録した後の起動管理テーブル221を示す。図14に示すように、起動モジュール識別番号欄2211にはモジュール1、モジュール2及びモジュール4の起動モジュール識別番号が登録され、起動モジュール数欄2212には、起動しているモジュールの数である3が登録されている。モジュール3は起動していないので、起動モジュール識別番号欄2211にはモジュール3の起動モジュール識別番号(3)は登録されていない。
次に、ステップS1205において、ミドルウェア32は、第1カメラ11から第1画像及び第1画像取得時刻が通知されると、モジュール1に対して、第1画像及び第1画像取得時刻を通知すると共に、モジュール1が動作を開始することを要求する最初の動作開始要求と、第1画像の処理に使用するハードウェアアクセラレータ(HA)の使用権を通知する。これにより、モジュール1は、ハードウェアアクセラレータの使用が許容される。また、ミドルウェア32は、モジュール2に対して、第1画像及び第1画像取得時刻を通知すると共に、モジュール2が動作を開始することを要求する最初の動作開始要求を通知する。
次に、ステップS1206において、モジュール1は、ミドルウェア32から最初の動作開始要求が通知されると、第1画像から他の物体及びその種類を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール2、モジュール3、モジュール4の順番である。そして、モジュール1は、起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール1は、起動している他のモジュールの起動モジュール識別番号として、2及び4を取得する。一方、他のモジュールが起動していない場合、モジュール1は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。そして、モジュール1は、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図15(A)は、モジュール1が生成した通知管理テーブルを示す。通知管理テーブル1501は、通知管理テーブル1501が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1511と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1512とを有する。モジュール識別番号欄1511には、通知管理テーブル1501が適用されるモジュールを識別するモジュール識別番号(1)が登録される。通知先欄1512には、起動管理テーブル221の起動モジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール2の起動モジュール識別番号(2)が登録される。モジュール1は、後述する所定の第1画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール2へ通知する。一方、モジュール1は、全ての他のモジュールが起動していない場合、通知管理テーブルを生成しない。なお、モジュール1は、ミドルウェア32から通知される2回目移行の動作開始要求に対しては、ステップS1206の処理を行わなくてよい。
また、ステップS1207において、モジュール2は、ミドルウェア32から最初の動作開始要求が通知されると、第1画像から車線区画線を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール3、モジュール4、モジュール1の順番である。そして、モジュール2は、メモリ22に記憶された起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール1は、起動している他のモジュールの起動モジュール識別番号として、1及び4を取得する。一方、他のモジュールが起動していない場合、モジュール2は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。そして、モジュール2は、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図15(B)は、モジュール2が生成した通知管理テーブルを示す。通知管理テーブル1502は、通知管理テーブル1502が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1521と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1522とを有する。モジュール識別番号欄1521には、通知管理テーブル1502が適用されるモジュールを識別するモジュール識別番号(2)が登録される。通知先欄1522には、起動管理テーブル221の起動モジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール4の起動モジュール識別番号(4)が登録される。モジュール2は、後述する所定の第1画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール4へ通知する。一方、モジュール2は、全ての他のモジュールが起動していない場合、通知管理テーブルを生成しない。なお、モジュール2は、ミドルウェア32から通知される2回目移行の動作開始要求に対しては、ステップS1207の処理を行わなくてよい。
また、ステップS1210において、ミドルウェア32は、第2カメラ12から第2画像及び第2画像取得時刻が通知されると、モジュール4に対して、第2画像及び第2画像取得時刻を通知すると共に、モジュールが動作を開始することを要求する最初の動作開始要求を通知する。なお、ステップS1210の処理は、上述したステップS1205よりも先に行われてもよい。
次に、ステップS1208において、モジュール4は、ミドルウェア32から最初の動作開始要求が通知されると、第2画像から車線区画線を検出するのに使用するパラメータ、並びハードウェアアクセラレータの使用権の通知先の優先順位などを、メモリ22から読み込む。ここでは、ハードウェアアクセラレータの使用権を通知先の優先順位は、モジュール1、モジュール2、モジュール3の順番である。そして、モジュール4は、メモリ22に記憶された起動管理テーブル221を参照して、他のモジュールが起動している場合、起動している他のモジュールの起動モジュール識別番号を取得する。ここでは、モジュール1は、起動している他のモジュールの起動モジュール識別番号として、1及び2を取得する。一方、他のモジュールが起動していない場合、モジュール3は、ハードウェアアクセラレータの使用権を他のモジュールへ通知しないことを決定する。そして、モジュール4は、ハードウェアアクセラレータの通知先の優先順位と、起動している他のモジュールの起動モジュール識別番号とに基づいて通知先のモジュールを選択して、通知管理テーブルをメモリ22に生成する。図15(C)は、モジュール4が生成した通知管理テーブルを示す。通知管理テーブル1503は、通知管理テーブル1503が適用されるモジュールを識別する識別番号が登録されるモジュール識別番号欄1531と、ハードウェアアクセラレータの使用権の通知先が登録される通知先欄1532とを有する。モジュール識別番号欄1431には、通知管理テーブル1503が適用されるモジュールを識別するモジュール識別番号(4)が登録される。通知先欄1532には、起動管理テーブル221の起動モジュール識別番号欄2211に登録されているモジュールの中で最も優先順位の高いモジュール1の起動モジュール識別番号(1)が登録される。モジュール4は、後述する所定の第2画像に基づいた処理を実行した後、ハードウェアアクセラレータの使用権を、モジュール1へ通知する。なお、モジュール4は、ミドルウェア32から通知される2回目移行の動作開始要求に対しては、ステップS1208の処理を行わなくてよい。
次に、ステップS1301において、モジュール1は、物体検出処理として、ハードウェアアクセラレータを使用して第1画像から他の物体を含むと推定される矩形領域の位置及びその種類を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。この他のアプリケーション36は、第1画像内の矩形領域の位置及びその種類に基づいて、物体検出の他の処理を実行する。そして、モジュール1は、メモリ22に記憶される通知管理テーブル1501を参照して、ハードウェアアクセラレータの使用権を、モジュール2へ通知した後待機状態となる。これにより、モジュール2は、ハードウェアアクセラレータの使用が許容される。なお、モジュール1は、全ての他のモジュールが起動していない場合には、ハードウェアアクセラレータの使用権を他のモジュールへ通知せずに(ハードウェアアクセラレータの使用権を保持した状態となる)、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。このことは、他のモジュールの動作に対しても適用される。
次に、ステップS1302において、モジュール2は、モジュール1からハードウェアアクセラレータの使用権が通知された後、車線区画線検出処理として、ハードウェアアクセラレータを使用して第1画像から車線区画線を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。この他のアプリケーション36は、第1画像内の車線区画線の位置に基づいて、位置推定の他の処理を実行する。そして、モジュール2は、メモリ22に記憶される通知管理テーブル1502を参照して、ハードウェアアクセラレータの使用権を、モジュール4へ通知した後待機状態となる。これにより、モジュール4は、ハードウェアアクセラレータの使用が許容される。このように、モジュール2は、他のモジュールの起動状態に動的に対応して、ハードウェアアクセラレータの使用権を起動している他のモジュールへ通知できる。
次に、ステップS1303において、モジュール4は、モジュール2からハードウェアアクセラレータの使用権が通知された後、車線区画線検出処理として、ハードウェアアクセラレータを使用して第2画像から車線区画線を検出し、その検出結果及びその検出結果の信頼度をプロセッサ23に実装される他のアプリケーション36へ通知する。この他のアプリケーション36は、第2画像内の車線区画線の位置に基づいて、位置推定の他の処理を実行する。なお、位置推定部31は、モジュール2の検出結果及びモジュール4の検出結果の中の何れかに基づいて、位置推定の他の処理を実行してもよい。そして、モジュール4は、メモリ22に記憶される通知管理テーブル1503を参照して、ハードウェアアクセラレータの使用権を、モジュール1へ通知する。これにより、モジュール1は、ハードウェアアクセラレータの使用が許容される。そして、モジュール4は、動作を終了することを示す動作終了通知を、ミドルウェア32へ通知した後、待機状態となる。
本発明では、上述した実施形態の情報処理装置は、本発明の趣旨を逸脱しない限り適宜変更が可能である。また、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
例えば、本発明では、情報処理装置は、車両制御に関する情報を処理していたが、情報処理装置は、車両制御以外の情報を処理するのに用いられてもよい。例えば、情報処理装置は、複数のモジュールを有するアプリケーションの動作を確認するための試験に用いてもよい。
1 車両制御システム
10 車両
11 第1カメラ
12 第2カメラ
13 Lidarセンサ
14 測位情報受信機
15 地図情報記憶装置
16 ナビゲーション装置
17 電子制御装置(ECU)
21 通信インターフェース
22 メモリ
23 プロセッサ

Claims (1)

  1. 制御部により制御される複数のモジュールと、
    複数の前記モジュールの起動管理テーブルを記憶する記憶部と、
    を有し、
    複数の前記モジュールのそれぞれは、前記制御部により起動されると、前記起動管理テーブルに起動情報を登録し、かつ、前記起動管理テーブルを参照して、起動している他の前記モジュールに基づいて、起動している他の前記モジュールと関連する処理の内容を決定する情報処理装置。
JP2020061225A 2020-03-30 2020-03-30 情報処理装置 Pending JP2021162916A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020061225A JP2021162916A (ja) 2020-03-30 2020-03-30 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020061225A JP2021162916A (ja) 2020-03-30 2020-03-30 情報処理装置

Publications (1)

Publication Number Publication Date
JP2021162916A true JP2021162916A (ja) 2021-10-11

Family

ID=78003445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020061225A Pending JP2021162916A (ja) 2020-03-30 2020-03-30 情報処理装置

Country Status (1)

Country Link
JP (1) JP2021162916A (ja)

Similar Documents

Publication Publication Date Title
JP7082545B2 (ja) 情報処理方法、情報処理装置およびプログラム
US11506502B2 (en) Robust localization
JP6520740B2 (ja) 物体検出方法、物体検出装置、およびプログラム
JP7077910B2 (ja) 区画線検出装置及び区画線検出方法
US20210158544A1 (en) Method, Device and Computer-Readable Storage Medium with Instructions for Processing Sensor Data
RU2628420C1 (ru) Устройство вычисления собственного местоположения и способ вычисления собственного местоположения
JP2008249555A (ja) 位置特定装置、位置特定方法および位置特定プログラム
JP7113134B2 (ja) 車両制御装置
US11573326B2 (en) Simultaneous localization and mapping in 2D using a 3D-scanner
US20190285418A1 (en) Method and device for the robust localization of a vehicle
JP7234840B2 (ja) 位置推定装置
JP6988873B2 (ja) 位置推定装置および位置推定用コンピュータプログラム
JP2007233440A (ja) 車載用画像処理装置
CN111989541B (zh) 立体摄像机装置
JP2021162916A (ja) 情報処理装置
US20220309805A1 (en) Apparatus, method, and computer program for detecting lane boundary
KR102371617B1 (ko) 차량의 객체 인식 장치 및 방법
EP3859281B1 (en) Apparatus and method for collecting data for map generation
JP2010223619A (ja) キャリブレーション装置およびキャリブレーション方法
EP3051494B1 (en) Method for determining an image depth value depending on an image region, camera system and motor vehicle
JP2019132762A (ja) 自車位置推定装置
JP2017112566A (ja) パラメータ特定装置
JP2021163263A (ja) 情報処理装置
WO2020021596A1 (ja) 車両位置推定装置および車両位置推定方法
JP2007257306A (ja) 障害物認識装置