(57)【要約】      （修正有）【課題】ニューラルネットワークによる演算の対象となる歩行者などのオブジェクトの数が多くなった場合に、演算処理に要する処理時間が増加する問題を解決する。【解決手段】車両電子制御装置は、車両の状態を取得する状態取得部と、状態取得部で取得された車両の状態に基づいて人工知能モデルを構成するか否かを判定する判定部と、を備える。判定部が人工知能モデルを構成すると判定した場合に、演算ユニットを複数組み合わせて所定の処理を実行する人工知能モデルを構成する。【選択図】図２
2018190045.tif 000002
【特許請求の範囲】
【請求項１】
車両の状態を取得する状態取得部と、
前記状態取得部で取得された車両の状態に基づいて人工知能モデルを構成するか否かを判定する判定部と、を備え、
前記判定部が前記人工知能モデルを構成すると判定した場合に、演算ユニットを複数組み合わせて所定の処理を実行する人工知能モデルを構成する、車両電子制御装置。
【請求項２】
請求項１に記載の車両電子制御装置において、
前記所定の処理が所定の時間内に完了しない場合に、複数の前記演算ユニットのいずれを用いて前記人工知能モデルを構成するかを決定して前記所定の処理を実行する、
車両電子制御装置。
【請求項３】
請求項２に記載の車両電子制御装置において、
前記人工知能モデルは、外部からの信号を受付ける入力層と、外部に演算結果を出力する出力層と、複数の前記演算ユニットから構成され、前記入力層から受付けた情報に対して所定の処理を施し、前記出力層に当該処理結果を出力する中間層とから構成されるニューラルネットワークであり、前記状態取得部で取得された車両の状態に応じて前記中間層の構成を選択する車両電子制御装置。
【請求項４】
請求項３に記載の車両電子制御装置において、
前記車両の状態は、前記車両の周辺に存在するオブジェクトの個数を含む自車両走行環境である車両電子制御装置。
【請求項５】
請求項３に記載の車両電子制御装置において、
前記車両の状態は、前記車両の走行シーンを含む自車両走行環境である車両電子制御装置。
【請求項６】
請求項３に記載の車両電子制御装置において、
前記車両の状態は、前記車両の走行地点の天候を含む自車両走行環境である車両電子制御装置。
【請求項７】
請求項３に記載の車両電子制御装置において、
前記車両の状態は、前記車両の走行中の時間帯を含む自車両走行環境である車両電子制御装置。
【請求項８】
請求項３に記載の車両電子制御装置において、
前記車両の状態は、前記車両の装置状態を含む自車両走行環境である車両電子制御装置。
【請求項９】
請求項３に記載の車両電子制御装置において、
前記演算ユニットの有効化可否が前記車両の状態に応じて設定された有効ユニットテーブルを備え、
前記ニューラルネットワークは、有効ユニットテーブルに基づいて、前記演算ユニットを有効化して複数の前記演算ユニットを組み合わせて構成される車両電子制御装置。
【請求項１０】
請求項４に記載の車両電子制御装置において、
前記ニューラルネットワークは、前記オブジェクトの個数に応じて、複数の前記演算ユニットのいずれを用いて構成されるかを決定する車両電子制御装置。
【請求項１１】
請求項４に記載の車両電子制御装置において、
前記車両の状態に基づいて、オブジェクトに優先度を付与し、
前記ニューラルネットワークは、前記オブジェクトの優先度に応じて、複数の前記演算ユニットのいずれを用いて構成されるかを決定する車両電子制御装置。
【請求項１２】
請求項１１記載の車両電子制御装置において、
前記優先度は、自車両と前記オブジェクトの間の相対関係に基づいて付与する車両電子制御装置。
【請求項１３】
請求項３に記載の車両電子制御装置において、
前記複数の演算ユニットの演算パラメータを記憶する記憶部を備え、
前記ニューラルネットワークは、前記車両の状態における前記出力層からの出力値の信頼度が向上するように前記演算パラメータが更新される車両電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両電子制御装置に関する。
【背景技術】
【０００２】
近年、自動運転システムの開発が活発化している。自動運転システムにおいて、複雑な走行環境を走行するためには、カメラ、レーザレーダ、ミリ波レーダ等の様々なセンサからの情報を基にした自車両周辺環境をセンシングする「認識」や、センサで検出された自車両周辺のオブジェクトが今後どのように行動するのかを推定する「認知」や、認識と認知の結果に基づき今後の自車両の行動を計画する「判断」といった機能の高度化が必要になる。そのため、これらの機能に対して、Neural NetworkやDeep Learning等のＡＩ (Artificial Intelligence ) モデルを導入することで更なる高度化が期待されている。例えば、ステレオカメラの撮像画像から障害物の種類(人、自動車等)を特定するオブジェクト認識処理にＡＩモデルを適用する場合、ステレオビジョンによる視差に基づいた「構造推定」によってオブジェクト（障害物）を抽出し、抽出したそれぞれのオブジェクトに対する画像データからＡＩモデルの一種であるＣＮＮ（Convolutional Neural Network）によって、各障害物の特徴量を算出し、それに応じた障害物の種類の特定を行う一連の処理手順が考えられる。その場合、構造推定処理で抽出された障害物毎にＣＮＮによる種類の特定処理を行うため、抽出された障害物の数が増加すると、ＣＮＮ処理に要する負荷や時間が増加する。自動運転システムでは車両の走行制御を行う「操作」の一連の処理がリアルタイムに実行される必要がある。よって、「操作」のリアルタイムな周期処理に影響を与えないよう、ＡＩモデルを適用した場合においても「認識」「認知」「判断」の各処理が「操作」の周期実行開始までのデッドライン内に完了していなければならない。
【０００３】
特許文献1には、カメラを用いた自車両前方の撮像画像から障害物を検出することが記載されている。この特許文献１に記載された装置は、歩行者を障害物として検出する際に、実際の歩行者の動きパターンを学習したニューラルネットワークを用いて障害物が歩行者かどうかを高精度に判断している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１４５６６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術は、ニューラルネットワークによる演算の対象となる歩行者などのオブジェクトの数が多くなった場合に、演算処理に要する処理時間が増加する問題があった。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によると、車両電子制御装置は、車両の状態を取得する状態取得部と、前記状態取得部で取得された車両の状態に基づいて人工知能モデルを構成するか否かを判定する判定部と、を備え、前記判定部が前記人工知能モデルを構成すると判定した場合に、演算ユニットを複数組み合わせて所定の処理を実行する人工知能モデルを構成する。
【発明の効果】
【０００７】
本発明によれば、オブジェクトの数が多くなった場合等の車両の状態に応じて、演算処理に要する処理時間を少なくすることができる。
【図面の簡単な説明】
【０００８】
【図１】ニューラルネットワークの概略構成図である。
【図２】第１の実施形態における車両電子制御装置の構成図である。
【図３】（ａ）（ｂ）（ｃ）（ｄ）（ｅ）ＡＩモデルの選択に使用する第１の実施形態における状態テーブルである。
【図４】ＡＩモデルを構成する演算ユニットの一例を示す図である。
【図５】演算ユニットにより構成されるＡＩモデルを示す図である。
【図６】ＡＩモデル情報をアクセラレータに反映する際に使用するテーブル情報である。
【図７】第１の実施形態における車両電子制御装置の処理動作を示すフローチャートである。
【図８】第１の実施形態における車両電子制御装置の構成の変形例を示す構成図である。
【図９】第１の実施形態における車両電子制御装置の変形例の処理動作を示すフローチャートである。
【図１０】第２の実施形態における車両電子制御装置の構成図である。
【図１１】（ａ）（ｂ）（ｃ）ＡＩモデルの選択に使用する第２の実施形態における状態テーブルである。
【図１２】第２の実施形態における車両電子制御装置の処理動作を示すフローチャートである。
【図１３】第２の実施形態における車両電子制御装置の構成の変形例を示す構成図である。
【図１４】ＡＩモデルの選択に使用する第２の実施形態の変形例におけるテーブル情報である。
【図１５】第２の実施形態における車両電子制御装置の変形例の処理動作を示すフローチャートである。
【図１６】第３の実施形態における車両電子制御装置の構成図である。
【図１７】第３の実施形態における車両電子制御装置の構成の変形例を示す構成図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。なお、以下に示す各実施形態について、同じ構成要素、処理内容等については、同一の番号を記載してその説明を簡略にする。各実施形態は、人工知能処理を用いたＡＩモデル(予測モデル)を備えた車両電子制御装置について、ＡＩモデルは、Neural Networkの例で説明するが、機械学習やDeep  Learning、さらには強化学習に関するモデルであってもよく、演算ユニットの構成を可変にして組み合わせることにより、本実施形態を適用できる。
【００１０】
−第１の実施形態−
本実施形態では、ＡＩモデルを複数の演算ユニットにより構成し、その演算ユニットの組み合わせパターンを車両電子制御装置２０の状態に応じて一意に選択する。以下、図１〜図９を用いて説明する。なお、車両電子制御装置２０の状態とは、例えば、オブジェクト数、走行シーン、天候、時間帯、装置状態などの自車両走行環境である。
【００１１】
＜ＡＩモデル＞
図１は、ＡＩモデルの構造の一例を示す図である。
図１に示すように、ニューラルネットワークモデル１は、入力層１０と、中間層１１と、出力層１２より構成され、各層はそれぞれＩ個、Ｊ個、Ｋ個の演算ユニットｕを持つ。それぞれの演算ユニットｕは、演算ユニットｕ間の結合情報を基に接続され、入力層１０より入力された情報は、その結合情報に従って中間層１１内を伝搬されて、最終的に出力層１２より予測結果に相当する情報が出力される。演算ユニットｕ間の接続に関する結合情報を実施形態では「ＡＩモデル構造情報」として記載する。結合情報は結合係数を含み、その結合係数をパラメータとする演算を施行しながら情報は伝搬される。ＡＩモデルの演算で使用される結合係数のことを実施形態では「ＡＩモデルパラメータ情報」として記載する。演算の内容は、結合情報に含まれる層の種類によって特定される。結合情報に含まれる層は、例えば、畳込み層、バッチ正規化、活性化関数、プーリング層、全結合層、ＬＳＴＭ（Long Short Term Memory）層などである。
【００１２】
なお、演算ユニットｕの数や、中間層１１を構成する層の数は、実施形態とは無関係であるため、任意の値とする。また、ＡＩモデルの構造もこれに限ることはなく、演算ユニットｕ間の結合に再帰性や双方向性を持つものであっても良い。さらに教師有り、教師無しのいずれの機械学習モデル、及び強化学習モデル等、何れのＡＩモデルに対しても、車両電子制御装置２０の状態に応じてＡＩモデルを選択する観点で適用できる。
【００１３】
＜車両制御装置の構成＞
図２は、第１の実施形態における車両電子制御装置２０の構成図である。本実施形態では、ＡＩモデルを複数の演算ユニット２３００から構成し、その演算ユニット２３００の組み合わせパターンを車両電子制御装置２０の状態に応じて一意に選択する。
【００１４】
車両電子制御装置２０はホストデバイス２１と、記憶部２２と、アクセラレータ２３から構成される。なお、車両電子制御装置２０は、図示しないＣＰＵ（Central Processing Unit）をハードウェアとして少なくとも備えており、ＣＰＵは記憶部２２に格納されたプログラムに従って、車両電子制御装置２０の動作の制御を行うことで本実施形態に関わる機能が実現される。ただし、本実施形態はこのような構成に限定されるものではなく、上述の機能の全部または一部をハードウェアとして構成してもよい。
【００１５】
ホストデバイス２１は、予測実行制御部２１０を備え、ＣＰＵにより、予測実行制御部２１０の各処理に相当するプログラムを実行することで、アクセラレータ２３を制御して、本実施形態に関わる機能を実現する。なお、予測実行制御部２１０の各処理は全部または一部をハードウェアとして搭載しても良い。また、アクセラレータ２３にＣＰＵを備え、予測実行制御部２１０の全部または一部をアクセラレータ２３で制御する構成としても良い。
【００１６】
予測実行制御部２１０は、ＡＩモデルによる演算処理時間を算出する算出部（ＡＩモデル演算処理時間算出部）２１００と、ＡＩモデルによる演算処理時間が所定時間を超過するか否かを判定する判定部（ＡＩモデル演算処理時間超過判定部）２１０１と、電子制御装置の状態を取得する取得部（電子制御装置状態取得部）２１０２と、ＡＩモデルを選択する選択部２１０３と、ＡＩモデル演算処理に使用するユニットは有効化し、使用しないユニットは有効化しないことを設定する有効化可否設定部２１０４と、ＡＩモデル演算処理実行制御部２１０５と、ＡＩモデル使用判定部２１０６から構成される。
【００１７】
ＡＩモデル演算処理時間算出部２１００は、後述の図４（ｅ）に示すＡＩモデル７１による演算処理時間の見積もりを算出する。この見積もり算出には、予めＡＩモデルの設計段階で事前に求めたＡＩモデルの演算処理の評価結果を用いる。ＡＩモデルは、その設計を完了した時点で、ＡＩモデル構造情報やＡＩモデルパラメータ情報が一意に定まっている。また、演算処理は専用のアクセラレータを用いる。このため、ＡＩモデル演算処理時間の見積もりが可能である。ＡＩモデルとその演算処理時間は処理時間対応テーブル（図示省略）に記憶されている。
【００１８】
ＡＩモデル演算処理時間超過判定部２１０１は、ＡＩモデル演算を含む自動運転や運転支援に関わるアプリケーション処理が予め設定された所定時間内に（デッドラインまでに）完了できるかどうかの判定を行う。デッドラインを設けるアプリケーションの処理単位は任意とする。例えば、自車両周辺に存在する各障害物の位置情報を算出してから各障害物の種類を分類するまでの処理や、各障害物の位置情報や種類情報を算出してからそれらが将来どのように移動するかの行動を予測するまでの処理が一例としてあげられる。
【００１９】
電子制御装置状態取得部２１０２は、ＡＩモデルを構成する演算ユニットの組み合わせパターンを選択してＡＩモデルを決定するために必要な車両電子制御装置２０の状態に関する情報を取得する。
【００２０】
ＡＩモデル選択部２１０３は、電子制御装置状態取得部２１０２の情報と、ＡＩモデル演算処理時間超過判定部２１０１の判定結果情報から、ＡＩモデルの演算ユニットの組み合わせパターンを特定する。そして、その組み合わせパターンから、後述の図３に示す状態テーブル２２１を参照して、一意に決定されるＡＩモデルを選択する。
ＡＩモデル演算処理ユニット有効化可否設定部２１０４は、ＡＩモデル選択部２１０３で選択されたＡＩモデルを使用するため、アクセラレータ２３に対して、演算ユニットの組み合わせパターンを有効化するための設定を行う。
【００２１】
ＡＩモデル演算処理実行制御部２１０５は、ＡＩモデルの演算処理を実行するため、アクセラレータ２３に対して、ＡＩモデルの演算に必要な入力データを転送し、演算実行開始に関わる制御命令を送出する。
ＡＩモデル使用判定部２１０６は、電子制御装置状態取得部２１０２からの出力結果を受けて、ＡＩモデルを使用するかどうかを判定し、その判定結果をＡＩモデル選択部２１０３へ出力する。
【００２２】
記憶部２２は、状態テーブル２２１、ＡＩモデル演算処理ユニット有効化可否テーブル２２０を備える。状態テーブル２２１は、車両電子制御装置２０の状態に関する情報とＡＩモデルとを対応付けた情報を保持する。図３は、本テーブルの一例を示したものであり、詳細は後述する。ＡＩモデル演算処理ユニット有効化可否テーブル２２０は、ＡＩモデル演算処理部２３０の演算ユニット２３００の組み合わせパターン情報を保持する。組み合わせパターン情報に基づきアクセラレータ２３に対して設定を行う。図６は、本テーブルの一例を示したものであり、詳細を後述する。
【００２３】
アクセラレータ２３はＦＰＧＡ（Field-Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＧＰＵ（Graphics  Processing  Unit）等のＡＩモデルの演算処理を高速に実行するためのハードウェアデバイスを備える。図２に示す例では、アクセラレータ２３はＦＰＧＡまたはＡＳＩＣを備え、ＡＩモデル演算処理部２３０とＡＩモデルパラメータ情報２３１から構成される。
【００２４】
ＡＩモデル演算処理部２３０はＡＩモデルの演算処理を実行し、１つ以上の演算ユニット２３００から構成される。ＡＩモデルパラメータ情報２３１は、ＡＩモデルの演算処理で使用するパラメータ情報であり、例えば図１で述べた各演算ユニットu間の結合係数を指す。なお、ＡＩモデルパラメータ情報２３１はアクセラレータ２３のハードウェアデバイス内外どちらで保持しても良い。デバイス外で保持する場合は、記憶部２２に格納しても良いし、アクセラレータ２３と接続された図示しない別の記憶部に格納しても良い。
【００２５】
なお、ＡＩモデルの演算処理の全部または一部をアクセラレータ２３ではなくＣＰＵで実行するようにしても良い。また、異なるＡＩモデルを用いる複数のアプリケーションが車両電子制御装置２０に搭載される場合、ＡＩモデル演算処理部２３０に複数のＡＩモデルのＡＩモデル構造情報やＡＩモデルパラメータ情報２３１に応じた演算ユニット２３００の組み合わせを設けてもよい。
【００２６】
＜ＡＩモデル選択部で使用する状態テーブル＞
図３は、車両電子制御装置２０の状態に関する情報とＡＩモデルとを対応付けて管理するための状態テーブル２２１の例を示したものである。状態テーブル２２１に従ってＡＩモデル選択部２１０３がＡＩモデルを選択する。車両電子制御装置２０の状態に関する情報は、例えば、オブジェクト数、走行シーン、天候、時間帯、装置状態などの自車両走行環境を示す情報である。この状態テーブル２２１は、図２に示す記憶部２２に記憶される。
【００２７】
図３（ａ）は、モデルＩＤ６００とオブジェクト数６０１の情報を対応付けたオブジェクト数・モデルＩＤ対応テーブル６０である。モデルＩＤ６００は、演算ユニットの組み合わせパターンで一意に定められるＡＩモデルを識別するためのＩＤ情報である。ここでは演算ユニットの組み合わせパターンで定められるＡＩモデルが３種類あることを示しているが、ＡＩモデルの種類の数は任意であり、１種類以上であれば良い。また、ＡＩモデルの替わりに、ＡＩを用いずに人手でロジック設計されたルールベースのモデルを用いるようにしても良い。
【００２８】
図３（ａ）に示すオブジェクト数６０１は外界センシングによって検出された自車両周辺のオブジェクト（障害物）の個数を示す。検出されたそれぞれのオブジェクトはＡＩモデルを用いることで、車両、自転車、歩行者等のオブジェクトの種類を識別したり、それぞれのオブジェクトが将来どのように移動するかの行動予測をしたりする。
【００２９】
なお、外界センシングによって検出されたオブジェクトの個数ではなく、外界センシングによって検出されたオブジェクトのうちＡＩモデルの演算の対象となるオブジェクトの個数であっても良い。これは対向車線上の障害物など、自車両の走行軌道計画とは明らかに無関係のオブジェクトを含めないようにすることを意図したものである。
【００３０】
図３（ａ）に示すオブジェクト数とＡＩモデルとの組み合わせにおいて、例えば、オブジェクト数ｎが１０≦ｎの場合、即ちＡＩモデル演算処理の繰り返し実行回数が多い場合は、ＡＩモデル演算に要する処理時間を抑制するため、演算精度は若干低下するが処理時間の短いＡＩモデルであるＩＤ＝Ｍ００３を使用する。オブジェクト数ｎが０≦ｎ＜５の場合、ＩＤ＝Ｍ００３に比べて、処理時間が長く演算精度の高いＡＩモデルであるＩＤ＝Ｍ００１を使用する。オブジェクト数ｎが５≦ｎ＜１０の場合、中間のＩＤ＝Ｍ００２を使用する。この図３（ａ）に示すオブジェクト数やＡＩモデルとの組み合わせは一例であり、これに限るものではない。
【００３１】
図３（ｂ）は、モデルＩＤ６００と走行シーン６１１の情報を対応付けた走行シーン・モデルＩＤ対応テーブル６１である。モデルＩＤ６００は、演算ユニットの組み合わせパターンで一意に定められるＡＩモデルを識別するためのＩＤ情報である。
【００３２】
図３（ｂ）に示す走行シーン６１１は自車両の走行路に関する情報を示す。この情報は、高速道路、一般道路、交差点、事故多発地点、駐車場などが挙げられ、これらの情報に基づいて、ＡＩモデルを選択する。例えば、高速道路と一般道路において、走行に関わるアクチュエータ制御の処理周期が同一とした場合、自動運転ロジックの処理時間の内訳を変更する例を考える。一般道路走行における自車両の走行軌道生成処理は、高速道路に比べて、より複雑な走行路に対応するため、処理時間を高速道路走行時に比べて大きく確保する。その場合、一般道路走行は、高速道路走行に比べてＡＩモデルを用いたオブジェクト認識や、オブジェクトの行動予測を演算精度は若干低下するが処理時間を小さくしなければならない。よって、一般道路走行時は、高速道路走行時に比べて処理時間の小さいＡＩモデルであるＭ００５を選択し、高速道路走行時は、一般道走行時に比べて演算精度が高く処理時間の大きいＡＩモデルであるＭ００４を選択する。交差点では、一般道路よりも更に処理時間の小さいＡＩモデルであるＭ００６を選択する。事故多発地点では、一般道路よりも若干処理時間の小さいＡＩモデルであるＭ００７を選択する。駐車場では、高速道路よりも処理時間の大きいＡＩモデルであるＭ００８を選択する。
【００３３】
なお、図３（ｂ）に示す走行シーンとＡＩモデルとの組み合わせは一例であり、これに限るものではない。また、図３（ｂ）に示す全ての走行シーンに応じてＡＩモデルを切替える必要はなく、図３（ｂ）に示すものの中から選んだいくつかの走行シーン毎にＡＩモデルを切替えるようにしても良いし、図３（ｂ）に示していないものを含む走行シーンの組み合わせに応じてＡＩモデルを切り替えるようにしても良い。
また、走行路情報は、自車両位置情報による地図情報とのマップマッチングにより特定したり、交通インフラやテレマティクスセンタから送信される情報を用いて特定する。
【００３４】
図３（ｃ）は、モデルＩＤ６００と天候６２１の情報を対応付けた天候・モデルＩＤ対応テーブル６２である。モデルＩＤ６００は、演算ユニットの組み合わせパターンで一意に定められるＡＩモデルを識別するためのＩＤ情報である。
【００３５】
図３（ｃ）に示す天候６２１は自車両の走行地点での天候に関する情報を示し、晴、曇、雨、雪などの天候種別が考えられる。例えば、雨や雪などの天候が不良な場合は、天候が良好なときと比べて外界センシングの精度が低下することを想定して、次のように設計する。すなわち、ＡＩモデルを用いたオブジェクト認識や、オブジェクトの行動予測の演算精度は若干低下するが処理時間を小さくするような設計を行う。これにより、ＡＩモデルの演算の出力結果の妥当性に関する診断と、その診断結果のＡＩモデルを用いるアプリケーションに対するフィードバックのサイクルを短くする。よって、晴や曇の天候が良好な場合は、雨や雪の時に比べて処理時間の大きいＡＩモデルであるＭ００９を、雨などの天候が不良な場合は、晴れや曇りの時に比べて処理時間の小さいＡＩモデルであるＭ０１０を、雪などの天候が不良な場合は、晴れや曇りの時に比べて処理時間の小さいＡＩモデルであるＭ０１１を使用する。なお、天候情報の種別やＡＩモデルとの組み合わせパターンは一例であり、これに限るものではない。また、天候情報はカメラ画像によるセンシング結果や、ワイパ稼働情報、降雨・降雪センサ情報、他車のセンシング結果情報等を用いて判定する。
【００３６】
図３（ｄ）は、モデルＩＤ６００と時間帯６３１の情報を対応付けた時間帯・モデルＩＤ対応テーブル６３である。モデルＩＤ６００は、演算ユニットの組み合わせパターンで一意に定められるＡＩモデルを識別するためのＩＤ情報である。
【００３７】
図３（ｄ）に示す時間帯６３１は自車両が走行中の時間帯に関する情報を示し、朝・昼と夜の種別が考えられる。例えば、夜の場合は、朝・昼の時と比べて外界センシングの精度が低下することを想定して、ＡＩモデルの演算の出力結果の妥当性に関する診断とその診断結果のＡＩモデルを用いるアプリケーションに対するフィードバックのサイクルを短くする。このため、ＡＩモデルを用いたオブジェクト認識や、オブジェクトの行動予測の演算精度は若干低下するが処理時間を小さくするように設計する。よって、走行時間帯が昼の場合は、夜間に比べて処理時間の大きいＡＩモデルであるＭ０１２を、夜間の場合は、昼に比べて処理時間の小さいＡＩモデルであるＭ０１３を使用する。なお、時間帯の種別やＡＩモデルとの組み合わせパターンは一例であり、これに限るものではない。また、時間帯情報は照度センサ情報やＧＰＳ時刻情報等を用いて検出する。
【００３８】
図３（ｅ）は、モデルＩＤ６００と装置状態６４１の情報を対応付けた装置状態・モデルＩＤ対応テーブル６４である。モデルＩＤ６００は、演算ユニットの組み合わせパターンで一意に定められるＡＩモデルを識別するためのＩＤ情報である。
【００３９】
図３（ｅ）に示す装置状態６４１は、車両電子制御装置２０のハードウェア及びソフトウェアの装置状態に関する情報を示し、車両電子制御装置２０の障害発生有無や、ＣＰＵまたはアクセラレータの負荷状態による種別を含む。例えば、車両電子制御装置２０に障害発生した場合や高負荷の場合は、通常時に使用しているＡＩモデルであるＭ０１６やＭ０１７に対して、演算精度は若干低下するが処理時間が小さく軽量なＡＩモデルであるＭ０１４やＭ０１５を使用する。なお、装置状態の種別やＡＩモデルとの組み合わせパターンは一例であり、これに限るものではない。
【００４０】
なお、図示はしないが、図３（ａ）から図３（ｅ）に示すオブジェクト数６０１と、走行シーン６１１と、天候６２１と、時間帯６３１、装置状態６４１の情報の全て又はいくつかを組み合わせて、ＡＩモデルと対応付けたテーブルを作成し、それらの情報の組み合わせに応じてＡＩモデルを選択するようにしても良い。更には、ＡＩモデルの組み合わせである必要はなく、ＡＩを用いずに人手でロジック設計されたルールベースのモデルとＡＩモデルの組み合わせであっても良い。
【００４１】
＜ＡＩモデルを構成する演算ユニット＞
図４は、ＡＩモデルを構成する演算ユニット７０の一例を示す図である。なお、演算ユニット７０は、図２に示すＡＩモデル演算処理部２３０に実装されるか、または、後述する図８に示すＡＩモデル構造情報４２１に格納されるものである。
【００４２】
図４（ａ）は畳み込み層７００と、バッチ正規化７０１と、活性化関数７０２から構成される演算ユニット７０の一例である。図４（ｂ）は畳み込み層７００と、バッチ正規化７０１と、活性化関数７０２と、プーリング層７０３から構成される演算ユニット７０の一例である。図４（ｃ）は全結合層７０４から構成される演算ユニット７０の一例である。図４（ｄ）はＬＳＴＭ層７０５から構成される演算ユニット７０の一例である。
【００４３】
ＡＩモデル７１は、図４（ｅ）に示す通り、中間層は１つ以上の演算ユニット７０から構成される。演算ユニット７０の個数は任意であり、演算ユニット７０の種別の組み合わせパターンも自由である。例えば、図４（ｂ）を１０個組み合わせてＡＩモデル７１を構成しても良いし、図４（ａ）と（ｂ）と（ｃ）をそれぞれ複数個ずつ組み合わせてＡＩモデル７１を構成しても良い。なお、図４で示した以外の演算ユニット７０を組み合わせてＡＩモデル７１を構成しても良い。
【００４４】
＜演算ユニットにより構成されるＡＩモデルの構成例＞
図５は、演算ユニット７０により構成されるＡＩモデルを示す図である。図５（ａ）は、演算ユニット７０を有効とするか、無効とするかの切替え機能付き演算ユニット（有効無効切替え機能付き演算ユニット）８０の一例を示す。このような演算ユニット８０は、演算ユニット７０の処理を有効にしたり、無効にしたりして、演算ユニット７０を切替え可能にしたものである。図５（ｂ）は演算ユニット７０の処理を有効にした場合を示し、図５（ｃ）は演算ユニット７０の処理を無効にした場合を示す。図５（ｄ）は、中間層として有効無効切替え機能付き演算ユニット８０を１つ以上組み合わせて構成した有効無効切替え機能付きＡＩモデル８３を示す。ここでは演算ユニット８０を５個組み合わせたものを例としているが、その組み合わせの数は任意である。
【００４５】
図５（ｅ）は、有効無効切替え機能付きＡＩモデル８３において、演算ユニット７０の処理を全て有効にした場合のＡＩモデル８４を示す図である。図５（ｆ）は、有効無効切替え機能付きＡＩモデル８３において、左から４番目の演算ユニット７０の処理のみを無効にし、その他の演算ユニット７０を全て有効にした場合のＡＩモデル８５を示す図である。図５（ｇ）は、有効無効切替え機能付きＡＩモデル８３において、左から２番目と４番目の演算ユニット７０の処理を無効にし、その他の演算ユニット７０を全て有効にした場合のＡＩモデル８６を示す図である。
【００４６】
図５（ｆ）に示すＡＩモデル８５は一部の演算ユニットの処理を実行しないため、図５（ｅ）に示すＡＩモデル８４に比べて処理時間を短くすることができる。図５（ｇ）に示すＡＩモデル８６は同様の理由で、図５（ｅ）７や図５（ｆ）に示すＡＩモデル８４やＡＩモデル８５に比べて処理時間を短くすることができる。
これらのＡＩモデルを図３で示したような車両電子制御装置２０の状態に応じて使い分けることで、車両電子制御装置２０の状態に応じた所望の処理完了の所定時間内（デッドライン内）に処理を完了させることができる。例えば、オブジェクト数が多い場合は図５（ｇ）に示すＡＩモデル８６を用いる。なお、本実施形態のＡＩモデルを専用回路として実装する場合は図５（ｄ）に示す有効無効切替え機能付きＡＩモデル８３のみを搭載すればよく、ＡＩモデル８４と、ＡＩモデル８５と、ＡＩモデル８６は有効無効切替えのためのスイッチの設定変更のみで実現することができる。これにより種類の完全に異なるＡＩモデルを複数実装する場合に比べて専用回路を作成するためのハードウェアリソースの増加を抑制することが可能となる。
【００４７】
図６は、ＡＩモデル情報をアクセラレータに反映する際に使用するテーブル情報である。このテーブル情報は、図２に示すＡＩモデル演算処理ユニット有効化可否テーブル２２０に記憶される。このテーブル情報に基づいて、図５（ｄ）に示す有効無効切替え機能付きＡＩモデル８３に対して、有効無効切替えスイッチを設定する。図６に示すテーブル情報は一例である。
【００４８】
図６に示すＡＩモデル演算ユニット有効化可否テーブル２２０は、モデルＩＤ１３２０に示すＡＩモデルの識別情報と、演算ユニット有効化可否情報１５０１に示す各演算ユニット毎の有効・無効情報を対応付けて管理するためのテーブル情報である。
【００４９】
図５（ｅ）に示すＡＩモデル８４は、図６のモデルＩＤ＝Ｍ００１に相当する設定となり、全ての演算ユニットを有効にするため、全ての演算ユニットＩＤであるＵ１からＵ５を「ＯＮ」にする。
【００５０】
図５（ｆ）に示すＡＩモデル８５は、図６のモデルＩＤ＝Ｍ００２の設定となり、左から４番目の演算ユニットのみを無効にするため、演算ユニットＩＤのＵ４のみを「ＯＦＦ」にし、それ以外の演算ユニットＩＤを「ＯＮ」にする。
【００５１】
図５（ｇ）に示すＡＩモデル８６は、図６のモデルＩＤ＝Ｍ００３の設定となり、左から２番目と４番目の演算ユニットを無効にするため、演算ユニットＩＤのＵ２とＵ４を「ＯＦＦ」にし、それ以外の演算ユニットＩＤを「ＯＮ」にする。
【００５２】
図６に示すテーブル情報ではモデルＩＤを３つ例示したが、図３に示したモデルＩＤ＝Ｍ００１〜モデルＩＤ＝Ｍ０１７に対応して、テーブル情報には複数の演算ユニット有効化可否情報１５０１が記憶されており、オブジェクトの数などにより選択された図３に示したモデルＩＤにより、図６に示す対応するモデルＩＤが参照され、演算ユニットの有効・無効が設定される。
【００５３】
＜車両電子制御装置の動作＞
図７は、本実施形態における車両電子制御装置２０の処理動作を示すフローチャートである。本フローはＡＩモデルによる演算処理を実行する際に開始される。
【００５４】
ステップＳ２９に遷移し、電子制御装置状態取得部２１０２は、ＡＩモデルを決定するために必要な車両電子制御装置２０の状態に関する情報を取得する。この車両電子制御装置２０の状態に関する情報の一例は図３を参照して説明したとおりである。その後ステップ３０に遷移し、ＡＩモデル使用判定部２１０６によって、車両電子制御装置２０の状態に関する情報を基にＡＩモデルを使用するかどうかの判定を行う。ステップＳ３０においてＡＩモデルを使用しないと判定された場合は、本処理フローを終了し、図示しないルールベースモデルを用いた処理を実行する。一方、ステップＳ３０においてＡＩモデルを使用すると判定された場合は、ステップＳ３１に遷移する。
【００５５】
ステップＳ３１では、ＡＩモデル演算処理時間算出部２１００によって、ＡＩモデル演算処理に必要な時間を見積もる。ＡＩモデルとその演算処理時間とは処理時間対応テーブルに記憶されており、ＡＩモデル演算処理時間算出部２１００によって、演算処理時間がオブジェクトの数等に応じた処理回数と乗算された結果がＡＩモデル演算処理時間として求められる。
【００５６】
その後、ステップＳ３２に遷移し、ＡＩモデル演算処理時間超過判定部２１０１は、ＡＩモデル演算を含むアプリケーション処理が予め設定された処理完了のための所定時間（以下、デッドライン）を超過するかどうかの判定を行う。高速道路、一般道路などの走行シーンでそれぞれ異なるデッドラインを設定してもよく、その他に、車両電子制御装置２０の状態に応じて異ならせてもよい。
【００５７】
ステップＳ３２で、デッドラインを超過しないと判定された場合は、ステップＳ３５に遷移する。この場合、ＡＩモデルの演算ユニットの組み合わせパターンによって一意に定められるＡＩモデルの種類を選択せずに、デフォルトで設定されているＡＩモデルを選択することになる。ステップＳ３２で、デッドラインを超過すると判定された場合は、ステップＳ３３に遷移し、ＡＩモデル選択部２１０３は、電子制御装置状態取得部２１０２が取得した車両電子制御装置２０の状態に関する情報と、ＡＩモデル演算処理時間超過判定部２１０１の判定結果から、ＡＩモデルの演算ユニットの組み合わせパターンによって一意に定められるＡＩモデルの種類を選択する。具体的には、車両電子制御装置２０の状態に関する情報と対応するモデルＩＤを図３に示す状態テーブルより読み出し、読み出したモデルＩＤを基に図６に示すＡＩモデル演算処理ユニット有効化可否テーブル２２０を参照して、演算処理ユニット有効化可否情報を選択する。以下、この処理を「ＡＩモデルの選択」と記載する。この場合、所定の処理が所定の時間に完了するように演算処理ユニット有効化可否情報を選択する。
【００５８】
そして、ステップＳ３４では、ＡＩモデル演算処理ユニット有効化可否設定部２１０４は、記憶部２２に格納されたＡＩモデル演算処理ユニット有効化可否テーブル２２０の情報に従い、アクセラレータ２３に対して、演算ユニットの組み合わせパターンの設定を行う。
【００５９】
その後、ステップＳ３５に遷移し、ＡＩモデル演算処理実行制御部２１０５は、アクセラレータ２３に対して、ＡＩモデルの演算に必要な入力データを転送し、演算実行開始に関わる制御命令を送出することでＡＩモデルの演算処理を実行する。この演算処理において、例えば、オブジェクトの数に応じて、演算精度は若干低下するが処理時間の短いＡＩモデルや処理時間が長く演算精度の高いＡＩモデルが選択されることにより、所定の処理が所定の時間に完了する。
【００６０】
なお、ステップＳ３０とステップＳ３１の処理は省略して車両電子制御装置２０の状態に関する情報のみを用いてＡＩモデルの選択をしても良い。これは、車両電子制御装置２０の状態が、ＡＩモデル演算の処理単位でその都度動的に変わらないケースに対して有効であり、その場合、ステップＳ３０とステップＳ３１の処理は不要となる。
【００６１】
＜車両制御装置の変形例＞
図８は、図２に示した第１の実施形態における車両電子制御装置２０の構成の変形例を示す構成図である。図２に示したアクセラレータ２３は、ＧＰＵを備えることにより、予測実行制御部２１０と、記憶部２２と、アクセラレータ２３の一部が変更になる。
【００６２】
図８では、予測実行制御部２１０は、図２に示したＡＩモデル演算処理ユニット有効化可否設定部２１０４が削除され、替わりにＡＩモデル情報設定部４１００を備える。また、ＡＩモデル演算処理実行制御部２１０５が削除され、替わりにＡＩモデル演算処理実行制御部４１０１を備える。
【００６３】
ＡＩモデル情報設定部４１００は、ＡＩモデル選択部２１０３で選択されたＡＩモデルの情報に合致したＡＩモデルパラメータ情報４２０と、ＡＩモデル構造情報４２１を記憶部２２から読み出して、ＣＰＵがプログラム実行の際に使用するメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に格納する。
【００６４】
ＡＩモデル演算処理実行制御部４１０１はメモリ上に展開されたＡＩモデルパラメータ情報４２０とＡＩモデル構造情報４２１、及び、ＡＩモデルの演算処理の対象となる入力データをアクセラレータ２３に転送し、演算実行開始に関わる制御命令を送出する。
【００６５】
記憶部２２は、ＡＩモデルパラメータ情報４２０とＡＩモデル構造情報４２１を新たに格納する。ＡＩモデルパラメータ情報とＡＩモデル構造情報の内容については上述の通りである。
【００６６】
アクセラレータ２３は、図２に示したＡＩモデルパラメータ情報２３１が削除された構成となる。これはアクセラレータ２３でＡＩモデルパラメータ情報を保持し続けるのではなく、ＡＩモデル演算処理実行の度にアクセラレータ２３へＡＩモデルパラメータ情報が転送される。但し、アクセラレータ２３に本情報を保持し続けるような構成としても良い。
【００６７】
また、図２に示したＡＩモデル演算処理部２３０が削除され、替わりにＡＩモデル演算処理実行部４３０が追加される。ＡＩモデル演算処理実行部４３０はＡＩモデル演算処理部２３０と異なり、車両電子制御装置２０に搭載されるＡＩモデルに特化した専用回路、即ち、複数の演算ユニット２３００から構成されるのではなく、様々なＡＩモデルに関わる演算を高速に実行可能な汎用の演算器を複数搭載した構成となる。但し、複数の演算ユニット２３００に相当する演算処理を実行することは可能であるためＡＩモデル演算処理部２３０とＡＩモデル演算処理実行部４３０の間で同じＡＩモデルの演算処理を実行できる。
【００６８】
＜車両電子制御装置の変形例の動作＞
図９は、第１の実施形態における車両電子制御装置２０の変形例（図８）の処理動作を示すフローチャートである。
【００６９】
図９のフローチャートは、図７で説明したものと比べて、ステップＳ３４が削除され、その替わりに、ステップＳ５０が追加される。このステップＳ５０では、ステップＳ３３にてＡＩモデルが選択された後、ＡＩモデル演算処理実行制御部４１０１が、ＡＩモデル情報設定部４１００によってメモリに展開されたＡＩモデルパラメータ情報とＡＩモデル構造情報をアクセラレータ２３のＡＩモデル演算処理実行部４３０に転送する。その後、ステップＳ３５に遷移してＡＩモデル演算処理対象の入力データを転送し、演算実行開始に関わる制御命令を送出することでＡＩモデルの演算処理を実行する。
【００７０】
第１の実施形態によれば、ニューラルネットワークを含むＡＩモデル演算処理を所望の時間内に完了させ、また、ＡＩモデル演算処理を実行するハードウェアアクセラレータのハードウェアリソース消費の増加を極力抑えて実現することができる。
【００７１】
−第２の実施形態−
第２の実施形態では、車両電子制御装置２０の状態に応じて、ＡＩモデルの演算処理対象となる入力データ毎にＡＩモデルを選択する。以下、図１０〜図１５を用いて説明する。なお、図１に示したニューラルネットワークの概略構成図、図４に示したＡＩモデルの構成図、図５に示したＡＩモデルを構成する演算ユニットの構成図、図６に示したＡＩモデル情報をアクセラレータに反映する際に使用するテーブル情報は、本実施形態でも同様であるのでその説明を省略する。
【００７２】
本実施形態は、例えば、外界センシングによって検出された複数のオブジェクト（障害物）に対して、各オブジェクトデータを個別にＡＩモデルに入力して、それぞれのオブジェクトの種別（車両、人、自転車等）を判定する場合や、それぞれのオブジェクトの将来の行動（移動後の位置位置情報等）を予測する場合に適用する。そして各オブジェクトデータをＡＩモデルにそれぞれ入力して演算する際、オブジェクトデータ毎にＡＩモデルを選択する。
【００７３】
＜車両制御装置の構成＞
図１０は、第２の実施形態における車両電子制御装置２０の構成図である。図１０に示した構成は、図２に示した第１の実施形態の構成と比較して、予測実行制御部２１０にＡＩモデル選択用スコア算出部９１００と、ＡＩモデル演算処理実行完了判定部９１０１と、オブジェクト毎ＡＩモデル選択部９１０２を新たに追加し、ＡＩモデル選択部２１０３を削除した構成となっている。本実施形態における車両電子制御装置２０の構成は、アクセラレータ２３にＦＰＧＡまたはＡＳＩＣを備える。
【００７４】
ＡＩモデル選択用スコア算出部９１００は、ＡＩモデル演算処理の対象となる入力データ（例えば、外界センシングされた自車両周辺のオブジェクトデータ）毎にＡＩモデルを選択するためのスコア値の算出を行う。スコア値の算出は、ＡＩモデル演算処理の対象となる入力データだけでなく、最終的に演算処理の対象とならないような外界センシングされた自車両周辺の全オブジェクトを対象としても良い。
【００７５】
ＡＩモデル演算処理実行完了判定部９１０１は、ＡＩモデル演算処理の対象となる全ての入力データに対してＡＩモデルの演算処理が完了したかどうかの判定を行う。なお、スコア値算出とＡＩモデル選択の具体例は、図１１および図１２を用いて後述する。
【００７６】
オブジェクト毎ＡＩモデル選択部９１０２は、ＡＩモデル選択用スコア算出部９１００にて算出されたＡＩモデル演算処理の対象となる入力データ毎のスコア値に基づいて、演算処理に使用するＡＩモデルを選択する。
【００７７】
＜ＡＩモデルの選択に使用する状態テーブル＞
図１１（ａ）（ｂ）（ｃ）は、ＡＩモデルの選択に使用する第２の実施形態における状態テーブル１３０〜１３２である。この状態テーブル１３０〜１３２は、記憶部２２に記憶され、ＡＩモデル選択用スコア算出部９１００と、オブジェクト毎ＡＩモデル選択部９１０２で使用するテーブル情報を記憶する。
【００７８】
ＡＩモデル選択用スコア算出部９１００と、オブジェクト毎ＡＩモデル選択部９１０２は、外界センシングによって検出された自車両周辺のオブジェクト（障害物）に対して、各オブジェクトにスコア値を算出する。これにより、オブジェクト毎に使用する演算ユニットの組み合わせ、即ちＡＩモデルを選択する。テーブル情報はこのために用いる。
【００７９】
図１１（ａ）は、検出されたオブジェクトと自車両間の相対距離からスコア値を算出するためのスコアＤ値テーブル１３０である。スコア値は走行シーンに応じて異なる値とすることができるよう管理される。スコアＤ値テーブル１３０は、車両電子制御装置状態１３００と、相対距離Ｄ１３０１とスコアＤ値１３０２を対応付けて記憶する。
【００８０】
スコアＤ値テーブル１３０の車両電子制御装置状態１３００は、本実施形態では走行シーンを表し、高速道路走行と一般道道路走行で、それぞれに応じたスコア値を表す。相対距離Ｄ１３０１は検出されたオブジェクトと自車両間の相対距離の値によって、管理されるスコア値である。本実施形態では５種類の相対距離値のレンジによって、スコア値を管理している。なお、スコア値を管理する相対距離以外の別の例として、検出されたオブジェクトと自車両間の相対速度や、衝突余裕時間（Time To Collision：ＴＴＣ）で管理してもよい。また、車両電子制御装置状態１３００の他の例として、図３で説明した走行シーン６１１、天候６２１、時間帯６３１、装置状態６４１といった情報に応じてスコア値を管理してもよい。
【００８１】
スコアＤ値１３０２はオブジェクトと自車両間の相対距離の値に応じて割り当てるスコア値である。このスコア値はユーザが予めスコアＤ値テーブル１３０の設計値として設定する。
【００８２】
図１１（ｂ）は、検出されたオブジェクトが、自車両の走行計画の軌道上に存在するかどうかの情報を用いてスコア値を算出するためのテーブルを示したものである。スコアＰ値テーブル１３１は、車両電子制御装置状態１３００と、将来軌道存在有無情報１３１０とスコアＰ値１３１１を対応付けて管理するテーブルである。
【００８３】
スコアＰ値テーブル１３１の車両電子制御装置状態１３００は、本実施形態では走行シーンを表し、高速道路走行と一般道道路走行で、それぞれに応じたスコア値を表す。将来軌道存在有無情報１３１０は、検出されたオブジェクトが自車両の走行計画の軌道上に存在するかどうかによって、管理されるスコア値である。軌道上に存在する場合を「ＥＸＩＳＴ」、存在しない場合を「ＮＯＴ  ＥＸＩＳＴ」としている。スコアＰ値１３１１は車の走行計画の軌道上に存在するかどうかの情報に応じて割り当てるスコア値である。このスコア値はユーザが予めスコアＰ値テーブル１３１の設計時に設定する。
【００８４】
図１１（ｃ）は、スコアＤ値１３０２と、スコアＰ値１３１１のそれぞれの値から算出されたスコアＳ値に応じて、ＡＩモデルを選択するためのテーブルを示したものである。スコアＳ値テーブル１３２は、モデルＩＤ１３２０とスコアＳ値１３２１を対応付けて管理するテーブルである。
【００８５】
スコアＳ値テーブル１３２のモデルＩＤ１３２０は、演算ユニットの組み合わせパターンで表現されるＡＩモデルを識別するためのＩＤ情報である。スコアＳ値１３２１はスコアＤ値１３０２と、スコアＰ値１３１１の値から算出され、ＡＩモデルを選択するために使用されるスコア値である。
【００８６】
スコアＳ値の算出方法はユーザが予めスコアＳ値テーブル１３２の設計時に設定することとし、例えば、スコアＳ値＝Ｗ１＊スコアＤ値＋Ｗ２＊スコアＰ値のような評価式で算出する。ここで、Ｗ１とＷ２は任意の定数値である。そしてＡＩモデルを用いるアプリケーションの設計段階で、モデル毎にスコアＳ値の取り得る値の範囲を決定して、スコアＳ値テーブル１３２を作成する。またＷ１とＷ２は車両電子制御装置状態１３００に応じてそれぞれ設定するようにしても良い。
【００８７】
図１１（ｃ）に示すスコアＳ値テーブル１３２の例では、高速道路を走行している場合は、自車両との相対距離が大きく、走行計画の軌道上に存在するオブジェクトに対してはスコアＳ値１３２が大きくなり、一般道路を走行している場合は、自車両との相対距離が小さく、走行計画の軌道上に存在するオブジェクトに対してはスコアＳ値１３２が大きくなる。これは、高速道路走行の場合は自車両から遠方にあるオブジェクトほど優先的に処理時間の大きい高精度なＡＩモデルを割り当て、一般道路走行の場合は自車両に近いオブジェクトほど優先的に処理時間の大きい高精度なＡＩモデルを割り当てるように作成したスコア値テーブルの例である。高速道路走行の場合、一般道路走行時に比べて、オブジェクトの種類は車両や二輪車に限定され、かつ、走行進路は道路上に描かれた白線内を直進するという比較的単純なものであるため、自車両に近いオブジェクトについては、処理時間の小さい簡易なＡＩモデルやルールベースモデルを割り当てる。一方、一般道道路走行の場合は高速道路走行時に比べてオブジェクトの種類が、車両や二輪車に加えて、歩行者(子供、お年寄り)や自転車、更には一時的に設置された障害物など多岐にわたり、かつ、走行進路も交差点を右左折したり、道路上の白線が無い場所も走行する等無数にあるため、自車両に近いオブジェクトであっても安全のために処理時間の大きい高精度なＡＩモデルを割り当てる。このように、自車両とオブジェクト間の相対関係に基づいて、オブジェクトに優先度を付与し、オブジェクトの優先度に応じて、複数の演算ユニットの構成を選択する。
【００８８】
なお、モデルＩＤ１３２０は全てＡＩモデルである必要なく、ＡＩを用いずに人手でロジック設計されたルールベースのモデルであっても良い。即ち、スコア値によって選択できるモデルはＡＩベースのものでも、人手でロジックが設計されたルールベースのものであっても良い。
【００８９】
＜車両電子制御装置の動作＞
図１２は、第２の実施形態における車両電子制御装置２０の処理動作を示すフローチャートである。図７に示す第１の実施形態におけるフローチャートと同一部分には同一の符号を付して説明を簡略にする。
【００９０】
図１２に示すステップＳ３２の終了後、ステップＳ１００に遷移し、ＡＩモデル選択用スコア算出部９１００は、ＡＩモデル演算処理の対象となる全オブジェクト、または、センシングされた自車両周辺の全オブジェクトに対して、それぞれのオブジェクト毎にＡＩモデルを選択するためのスコア値の算出を行う。
【００９１】
そしてステップＳ１０１に遷移し、オブジェクト毎ＡＩモデル選択部９１０２は、ステップＳ１００で算出されたオブジェクト毎のスコア値に基づいて、オブジェクト毎にＡＩモデルにおける演算ユニットの組み合わせパターン、即ちＡＩモデルを選択する。その後ステップＳ３４とステップＳ３５を経て、ステップＳ１０２に遷移する。
【００９２】
ステップＳ１０２では、ＡＩモデル演算処理実行完了判定部９１０１が、全てのオブジェクトについてＡＩモデルの演算処理が完了したと判定した場合、本処理フローは終了となる。ステップＳ１０２で、ＡＩモデル演算処理実行完了判定部９１０１が、全てのオブジェクトについてＡＩモデルの演算処理が完了していないと判定された場合、ステップＳ３４に遷移し、オブジェクト毎に選択されたＡＩモデルに合わせてアクセラレータ２３の設定を行い、ＡＩモデルによる演算処理を実行して、ステップＳ１０２の判定がＹｅｓになるまで繰り返し実行する。
【００９３】
＜車両制御装置の変形例＞
図１３は、図１０の車両電子制御装置２０の構成の変形例を示す構成図である。この場合、アクセラレータ２３がＧＰＵを備えることにより、図１０の車両電子制御装置２０と比較して、ホストデバイス２１、記憶部２２、アクセラレータ２３の構成の一部が変更になる。
【００９４】
図１３では、予測実行制御部２１０は、図１０に示したＡＩモデル演算処理ユニット有効化可否設定部２１０４が削除され、替わりにＡＩモデル情報設定部４１００を備える。また、ＡＩモデル演算処理実行制御部２１０４が削除され、替わりにＡＩモデル演算処理実行制御部４１０１を備える。
【００９５】
ＡＩモデル情報設定部４１００およびＡＩモデル演算処理実行制御部４１０１は、第１の実施形態における車両電子制御装置２０の構成の変形例で説明したものと同様であるので説明を省略する。
【００９６】
アクセラレータ２３は、図１０に示したＡＩモデルパラメータ情報２３１が削除された構成となる。これはアクセラレータ２３でＡＩモデルパラメータ情報を保持し続けるのではなく、ＡＩモデル演算処理実行の度にアクセラレータ２３へＡＩモデルパラメータ情報が転送される。但し、アクセラレータ２３に本情報を保持し続けるような構成としても良い。また、図１０に示したＡＩモデル演算処理部２３０が削除され、替わりにＡＩモデル演算処理実行部３３０が追加される。ＡＩモデル演算処理実行部３３０は車両電子制御装置２０に搭載されるＡＩモデルに特化した専用回路、即ち、様々なＡＩモデルに関わる演算を高速に実行可能な汎用の演算器を複数搭載した構成となる。
【００９７】
＜第２の実施形態の変形例におけるＡＩモデルの選択に使用するテーブル情報＞
図１４は、ＡＩモデルの選択に使用する第２の実施形態の変形例におけるテーブル情報である。このテーブル情報は、ＡＩモデル選択用スコア算出部９１００と、オブジェクト毎ＡＩモデル選択部９１０２で使用する。
【００９８】
図１４は、ＡＩモデル選択のためのスコア値を管理するテーブルについて、図１１と異なる例を示したものである。図１４に示すスコアＴ値テーブル１４０は、車両電子制御装置状態１３００と、オブジェクト検出経過時間１４０１と、スコアＴ値１４０２を対応付けて管理するテーブルである。
【００９９】
スコアＴ値テーブル１４０の車両電子制御装置状態１３００は、本実施形態では走行シーンを表し、高速道路走行と一般道道路走行で、それぞれに応じたスコア値を表す。オブジェクト検出経過時間１４０１は外界センシングによって、自車両周辺に存在するオブジェクトが検出されてからの経過時間を示す情報である。
【０１００】
図１４に示すスコアＴ値１４０２はオブジェクト検出経過時間１４０１の情報に応じて割り当てるスコア値である。なお、スコアＴ値１４０２に任意の定数を乗算して、図１１（ｃ）に示したスコアＳ値１３２１を算出することでＡＩモデルを選択しても良く、図１１（ａ）〜図１１（ｂ）に示したスコアＤ値１３０２とスコアＰ値１３１１と、スコアＴ値１４０２から成る任意の評価式によって、スコアＳ値を算出してＡＩモデルを選択しても良い。
【０１０１】
本実施形態では、スコアＴ値によって、センシングによって新規に検出されたオブジェクトに対しては、処理時間が大きく高精度なＡＩモデルを割り当てることができる。新規の検出から時間が経過しているオブジェクトについてはトラッキング等の既存手法を併用することで、センシング結果の補正ができるため、処理時間が小さく、負荷の観点で軽量なＡＩモデルやルールベースのモデルを割り当てる。また、オブジェクト検出経過時間１４０１は、時間情報以外に、センサから周期的に入力されるデータの受信回数であったり、画像データの場合、フレーム枚数によって、経過時間を算出してもよい。
【０１０２】
また、オブジェクト検出から一定時間経過した後は、定期的にスコアＴ値１４０２を変動させることによって、周期的に処理時間の大きい高精度なＡＩモデルと処理時間の小さい軽量なＡＩモデルやルールベースのモデルを切り替えながら併用することができる。この際、自車両周辺の全オブジェクトに対して、同一のＡＩモデルを選択するのではなく、いくつかのオブジェクトは処理時間大きい高精度なＡＩモデルを、いくつのかのオブジェクトは処理時間の小さい軽量なＡＩモデルを選択し、周期的に互いに使用するモデルを入れ替えることで、オブジェクトそれぞれに対する予測精度と、オブジェクト全体の処理時間の両立を図ることが可能になる。
【０１０３】
＜車両電子制御装置の変形例の動作＞
図１５は、第２の実施形態における車両電子制御装置２０の変形例の処理動作を示すフローチャートである。図１５では、図７に示す第１の実施形態におけるフローチャートと同一部分には同一の符号を付して説明を簡略にする。
【０１０４】
図１５に示すステップＳ３２の終了後、ステップＳ１００に遷移し、モデル選択用スコア算出部９１００は、ＡＩモデル演算処理の対象となる全オブジェクト、または、センシングされた自車両周辺の全オブジェクトに対して、それぞれのオブジェクト毎にＡＩモデルを選択するためのスコア値の算出を行う。
【０１０５】
そしてステップＳ１０１に遷移し、オブジェクト毎ＡＩモデル選択部９１０２は、ステップＳ１００で算出されたオブジェクト毎のスコア値に基づいて、オブジェクト毎にＡＩモデルにおける演算ユニットの組み合わせパターン、即ちＡＩモデルを選択する。その後ステップＳ５０に遷移し、ＡＩモデルが選択された後、ＡＩモデル演算処理実行制御部４１０１が、ＡＩモデル情報設定部４１００によってメモリに展開されたＡＩモデルパラメータ情報とＡＩモデル構造情報をアクセラレータ２３のＡＩモデル演算処理実行部３３０に転送する。その後、ステップＳ３５に遷移してＡＩモデル演算処理対象の入力データを転送し、演算実行開始に関わる制御命令を送出することでＡＩモデルの演算処理を実行する。その後、ステップＳ１０２に遷移する。
【０１０６】
ステップＳ１０２では、ＡＩモデル演算処理実行完了判定部９１０１が、全てのオブジェクトについてＡＩモデルの演算処理が完了したと判定した場合、本処理フローは終了となる。ステップＳ１０２で、全てのオブジェクトについてＡＩモデルの演算処理が完了していないと判定された場合、ステップＳ５０に遷移し、上述の処理をステップＳ１０２の判定がＹｅｓになるまで繰り返し実行する。
【０１０７】
第２の実施形態によれば、自車両とオブジェクトの間の相対関係に基づいてオブジェクトに優先度を付与し、オブジェクトの優先度に応じて、複数の演算ユニットの構成を選択するので、オブジェクトの優先度を考慮して、ニューラルネットワークを含むＡＩモデル演算処理を所望の時間内に完了させることができる。
【０１０８】
-第３の実施形態-
図１６は、第３の実施形態における車両電子制御装置２０の構成図である。第３の実施形態では、第１の実施形態と第２の実施形態の車両電子制御装置２０に対して、ＡＩモデルパラメータ情報２３１ないしＡＩモデルパラメータ情報３２１のデータを学習して更新する機能を備える。実施形態における車両電子制御装置２０の構成は、アクセラレータ２３にＦＰＧＡまたはＡＳＩＣを備える。
【０１０９】
＜車両制御装置の構成＞
図１６に示した実施形態における車両電子制御装置２０の構成は、図２に示した車両電子制御装置２０の構成と比較して、ホストデバイス２１に学習制御部１６００を新たに追加し、アクセラレータ２３にＡＩモデル合計予測誤差算出部１６１０と、更新用ＡＩモデル演算パラメータ算出部１６２０を新たに追加する構成である。
【０１１０】
学習制御部１６００はＡＩモデル演算パラメータ更新判定部１６０００と、ＡＩモデル演算パラメータ更新部１６００１から構成される。
【０１１１】
ＡＩモデル合計予測誤差算出部１６１０は、ＡＩモデルパラメータ情報を更新するためのＡＩモデルによる出力値と正解値の予測誤差値を最小二乗誤差や交差エントロピー誤差等の損失関数を用いて算出する。更新用ＡＩモデル演算パラメータ算出部１６２０は、ＡＩモデル合計予測誤差算出部１６１０で算出された予測誤差値から誤差逆伝播法と呼ばれる公知の手法を用いて、予測誤差値が最小になるようにＡＩモデルパラメータ情報の更新、即ち学習を行う。具体的には、ＡＩモデルによる現在の出力値と期待される出力値との間に誤差があった場合に、その誤差が小さくなるように、すなわち信頼度が向上するようにＡＩモデルパラメータ情報の更新を行う。
【０１１２】
ＡＩモデル演算パラメータ更新判定部１６０００は、アクセラレータ２３から受信した新たなＡＩモデルパラメータ情報について、ＡＩモデルの予測精度を評価するための評価用データを用いて予測精度を評価することで、ＡＩモデルパラメータ情報２３１に格納されているＡＩモデルパラメータ情報を更新するかどうかの判定を行う。なお、評価用データから予測精度を算出する方法は、これまでに説明したＡＩモデルの演算処理と同様の手順であり、ＡＩモデルの演算処理対象となる入力データを評価用データとすれば良い。
【０１１３】
ＡＩモデル演算パラメータ更新部１６００１は、ＡＩモデルパラメータ２３１のＡＩモデルパラメータ情報の更新制御を行う。ＡＩモデル演算パラメータ更新判定部１６０００からの判定結果を基に、ＡＩモデルパラメータ情報２３１のＡＩモデルパラメータ情報の更新を行う。また、後述のＡＩモデル合計予測誤差算出部１６１０に対して、ＡＩモデルパラメータ情報の更新、即ち学習を要求する。
【０１１４】
＜車両電子制御装置の構成の変形例＞
図１７は、第３の実施形態における車両電子制御装置２０の構成の変形例を示す構成図である。実施形態では、アクセラレータ２３がＧＰＵを備えることにより、図１６に示した車両電子制御装置２０と比較して、ホストデバイス２１、記憶部２２、アクセラレータ２３の構成の一部が変更になるが、何れの処理部も第１の実施形態において説明したものと同様であり、その説明を省略する。
【０１１５】
なお、本実施形態において図１６および図１７におけるＡＩモデルパラメータ情報の学習について、演算ユニットの組み合わせに応じて複数のＡＩモデルを演算に使用することを説明してきたが、それらの複数のＡＩモデルにおける各演算ユニット間でＡＩモデルパラメータ情報が共通になるように学習することもできる。具体的には、ＡＩモデル合計予測誤差算出部１６１０は、車両電子制御装置２０に搭載する全てのＡＩモデルそれぞれについて予測誤差を算出する。そして、それぞれのＡＩモデル毎に算出された予測誤差の合計を算出し、その値が最小になるようにＡＩモデルパラメータ情報の更新を行うことで実現することができる。こうすることで、複数のＡＩモデルにおける各演算ユニット間でＡＩモデルパラメータを共通化でき、ＡＩモデル毎にＡＩモデルパラメータ情報を保持する必要がなくなるため、記憶部に必要な容量の増大を回避し、ハードウェアコストを抑制することができる。
【０１１６】
以上説明した実施形態によれば、次の作用効果が得られる。
（１）車両電子制御装置２０は、車両の状態を取得する状態取得部２１０２と、状態取得部２１０２で取得された車両の状態に基づいて人工知能モデルを構成するか否かを判定する判定部２１０６と、を備え、判定部２１０６が人工知能モデルを構成すると判定した場合に、演算ユニットを複数組み合わせて所定の処理を実行する人工知能モデルを構成する。れにより、車両の状態に基づいて人工知能モデルを構成し、演算処理に要する処理時間を少なくすることができる。
【０１１７】
（２）車両電子制御装置２０は、所定の処理が所定の時間内に完了しない場合に、複数の演算ユニットのいずれを用いて人工知能モデルを構成するかを決定して所定の処理を実行する。これにより、人工知能モデルを構成して、演算処理に要する処理時間を少なくすることができる。
【０１１８】
（３）車両電子制御装置２０の人工知能モデは、外部からの信号を受付ける入力層１０と、外部に演算結果を出力する出力層１２と、複数の演算ユニット２３００から構成され、入力層１０から受付けた情報に対して所定の処理を施し、出力層１２に当該処理結果を出力する中間層１１とから構成されるニューラルネットワークであり、状態取得部２１０２で取得された車両の状態に応じて中間層１１の構成を選択する。これにより、ニューラルネットワークを含むＡＩモデル演算処理に要する処理時間を少なくし、また、ＡＩモデル演算処理を実行するハードウェアアクセラレータのハードウェアリソース消費の増加を極力増加させずに実現することができる。
【０１１９】
（４）車両電子制御装置２０の車両の状態は、車両の周辺に存在するオブジェクトの個数を含む自車両走行環境である。これにより、オブジェクトの個数に応じたＡＩモデルを構築できる。
【０１２０】
（５）車両電子制御装置２０の車両の状態は、車両の走行シーンを含む自車両走行環境である。これにより、走行シーンに応じたＡＩモデルを構築できる。
【０１２１】
（６）車両電子制御装置２０の車両の状態は、車両の走行地点の天候を含む自車両走行環境である。これにより、車両の走行地点の天候に応じたＡＩモデルを構築できる。
【０１２２】
（７）車両電子制御装置２０の車両の状態は、車両の走行中の時間帯を含む自車両走行環境である。これにより、車両の走行中の時間帯に応じたＡＩモデルを構築できる。
【０１２３】
（８）車両電子制御装置２０の車両の状態は、車両の装置状態を含む自車両走行環境である。これにより、車両の装置状態、例えば、障害発生有無や、ＣＰＵまたはアクセラレータの負荷状態に応じたＡＩモデルを構築できる。
【０１２４】
（９）車両電子制御装置は、演算ユニットの有効化可否が車両の状態に応じて設定された有効ユニットテーブルを備え、ニューラルネットワークは、有効ユニットテーブルに基づいて、演算ユニットを有効化して複数の演算ユニットを組み合わせて構成される。これにより、複数の演算ユニットを組み合わせることができる。
【０１２５】
（１０）ニューラルネットワークは、オブジェクトの個数に応じて、複数の演算ユニットのいずれを用いて構成されるかを決定する。これにより、オブジェクトの数が多くなった場合等においても、演算処理に要する処理時間を少なくすることができる。
【０１２６】
（１１）車両の状態に基づいて、オブジェクトに優先度を付与し、ニューラルネットワークは、オブジェクトの優先度に応じて、複数の演算ユニットのいずれを用いて構成されるかを決定する。これにより、オブジェクトの優先度を考慮して、ニューラルネットワークを含むＡＩモデル演算処理に要する処理時間を少なくすることができる。
【０１２７】
（１２）優先度は、自車両とオブジェクトの間の相対関係に基づいて付与する。これにより、オブジェクトの優先度を考慮して、ニューラルネットワークを含むＡＩモデル演算処理に要する処理時間を少なくすることができる。
【０１２８】
（１３）複数の演算ユニットの演算パラメータを記憶する記憶部を備え、ニューラルネットワークは、車両の状態における出力層からの出力値の信頼度が向上するように演算パラメータが更新される。これにより、ＡＩモデル演算処理の演算誤差を少なくすることができる。
【０１２９】
本発明は、上記の実施形態に限定されるものではなく、本発明の特徴を損なわない限り、本発明の技術思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。また、上述の実施形態を組み合わせた構成としてもよい。
【符号の説明】
【０１３０】
１  ニューラルネットワークモデル
１０  入力層
１１  中間層
１２  出力層
２０  車両電子制御装置
２１  ホストデバイス
２２  記憶部
２３  アクセラレータ
２１０  予測実行制御部
２２０  ＡＩモデル演算処理ユニット有効化可否テーブル
２３０  ＡＩモデル演算処理部
２３１  ＡＩモデルパラメータ情報
２１００  ＡＩモデル演算処理時間算出部
２１０１  ＡＩモデル演算処理時間超過判定部
２１０２  電子制御装置状態取得部
２１０３  ＡＩモデル選択部
２１０４  ＡＩモデル演算処理ユニット有効化可否設定部
２１０５  ＡＩモデル演算処理実行制御部
２１０６  ＡＩモデル使用有無判定部
２３００  演算ユニット
Ｓ３０  アプリ処理時間見積もり処理
Ｓ３１  デッドライン超過判定処理
Ｓ３２  電子制御装置状態取得処理
Ｓ３３  ＡＩモデル選択処理
Ｓ３４  演算ユニット有効化可否設定処理
Ｓ３５  ＡＩモデル演算処理実行開始命令処理
４２０  ＡＩモデルパラメータ情報
４２１  ＡＩモデル構造情報
４３０  ＡＩモデル情報設定部
４１００  ＡＩモデル演算処理実行部
Ｓ５０  ＡＩモデルデータ転送
６０  オブジェクト数・モデルＩＤ対応テーブル
６１  走行シーン・モデルＩＤ対応テーブル
６００  モデルＩＤ
６０１  オブジェクト数情報
６１１  走行シーン情報
６２  天候・モデルＩＤ対応テーブル
６２１  天候情報
６３  時間帯・モデルＩＤ対応テーブル
６３１  時間帯情報
６４  装置状態・モデルＩＤ対応テーブル
６４１  装置状態
７０  演算ユニット
７１  ＡＩモデル
７００  畳み込み層
７０１  バッチ正規化
７０２  活性化関数
７０３  プーリング層
７０４  全結合層
７０５  ＬＳＴＭ層
８０  有効無効切替え機能付き演算ユニット
８１  有効切替え時演算ユニット
８２  無効切替え時演算ユニット
８３  有効無効切替え機能付ＡＩモデル
８４  モデルパターン１
８５  モデルパターン２
８６  モデルパターン３
９１００  ＡＩモデル選択用スコア算出部
９１０１  ＡＩモデル演算処理実行完了判定部
９１０２オブジェクト毎ＡＩモデル選択部
Ｓ１００  ニューラルネットモデル選択用スコア算出処理
Ｓ１０１  ニューラルネットモデル演算完了判定処理
１３０  スコアＴ値テーブル
１３００  車両電子制御装置状態
１３０１  相対距離Ｄ       
１３０２  スコアＴ値
１３１  スコアＰ値テーブル
１３１０  将来軌道存在有無情報
１３１１  スコアＰ値
１３２  スコアＳ値テーブル
１３２０  モデルＩＤ
１３２１  スコアＳ値
１４０  スコアＴ値テーブル
１４０１  オブジェクト検出経過時間
１４０２  スコアＴ値
１５００  演算ユニットＩＤ
１５０１  演算ユニット有効化可否情報
１６００  学習制御部
１６１０  ＡＩモデル合計予測誤差算出
１６２０  更新用ＡＩモデル演算パラメータ算出部
１６０００  ＡＩモデル演算パラメータ更新判定部
１６００１  ＡＩモデル演算パラメータ更新部
【図１】
2018190045.tif 000003
【図２】
2018190045.tif 000004
【図３】
2018190045.tif 000005
【図４】
2018190045.tif 000006
【図５】
2018190045.tif 000007
【図６】
2018190045.tif 000008
【図７】
2018190045.tif 000009
【図８】
2018190045.tif 000010
【図９】
2018190045.tif 000011
【図１０】
2018190045.tif 000012
【図１１】
2018190045.tif 000013
【図１２】
2018190045.tif 000014
【図１３】
2018190045.tif 000015
【図１４】
2018190045.tif 000016
【図１５】
2018190045.tif 000017
【図１６】
2018190045.tif 000018
【図１７】
2018190045.tif 000019