(57)【要約】【課題】車両周辺に存在する事物の未来の位置を好適に予測する。【解決手段】車両システムは、車両（１）の周囲に存在する事物（５０）を認識する第１のプログラム（１１０）と、認識された事物に関する情報を、時系列の地図データとして格納する第２のプログラム（１２０）と、格納された時系列の地図データに基づいて、事物の未来の位置を予測する第３のプログラム（１３０）とを備える。第１のプログラム及び第３のプログラムの学習パラメータは、（ｉ）第１のプログラム及び第３のプログラムの各々の出力に対応する正解データに基づいて個別に最適化された後、（ｉｉ）第３のプログラムの出力に対応する正解データに基づいてまとめて最適化されている。【選択図】図２
2018197977.tif 000002
【特許請求の範囲】
【請求項１】
車両の周囲に存在する事物を認識する第１のプログラムと、
前記第１のプログラムによって認識された前記事物に関する情報を、時系列の地図データとして格納する第２のプログラムと、
前記第２プログラムによって格納された前記時系列の地図データに基づいて、前記事物の未来の位置を予測する第３のプログラムと
を備え、
前記第１のプログラム及び前記第３のプログラムは、（ｉ）前記第１のプログラム及び前記第３のプログラムの各々の出力に対応する正解データに基づいて個別に最適化された後、（ｉｉ）前記第３のプログラムの出力に対応する正解データに基づいてまとめて最適化されている
ことを特徴とする車両システム。
【請求項２】
前記第３のプログラムは、前記時系列の地図データから判別した前記事物の挙動のクセを利用して、前記事物の未来の位置を予測することを特徴とする請求項１に記載の車両システム。
【請求項３】
前記第３のプログラムは、前記時系列の地図データから算出される判別パラメータが、予め設定された複数のクセカテゴリのいずれに対応するものであるかを判定することで、前記事物の挙動のクセを判別することを特徴とする請求項２に記載の車両システム。
【請求項４】
前記第３のプログラムによって予測された前記事物の未来の位置に基づいて、前記車両の走行経路を設定する設定手段を更に備えることを特徴とする請求項１から３のいずれか一項に記載の車両システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両周辺に存在する事物の動きを予測する車両システムの技術分野に関する。
【背景技術】
【０００２】
車両及びその周囲を表すマップを格子状に区切られた領域上に表現するＯＧＭ（Ｏｃｃｕｐａｎｃｙ  Ｇｒｉｄ  Ｍａｐ）という技術が知られている（特許文献１参照）。また、評価関数が複数ある最適化問題において、個別の最適化と全体の最適化を考慮する技術が開示されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１６−５２２５０８号公報
【特許文献２】特開２００２−３６６５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＯＧＭは、例えば車両周辺に存在する事物（他車両や歩行者等）の未来の位置を予測するために用いられることがある。しかしながら、車両周辺に存在する事物の数や種類が増加すると、予測時の演算負荷が増大するという技術的問題点が生ずる。演算負荷の増大は、機械学習によって低減できるとも考えられるが、適切な学習モデルがなければ十分な効果は望めない。
【０００５】
本発明は、上記問題点に鑑みてなされたものであり、車両周辺に存在する事物の未来の位置を好適に予測することが可能な車両システムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明の車両システムは上記課題を解決するために、車両の周囲に存在する事物を認識する第１のプログラムと、前記第１のプログラムによって認識された前記事物に関する情報を、時系列の地図データとして格納する第２のプログラムと、前記第２プログラムによって格納された前記時系列の地図データに基づいて、前記事物の未来の位置を予測する第３のプログラムとを備え、前記第１のプログラム及び前記第３のプログラムの学習パラメータは、（ｉ）前記第１のプログラム及び前記第３のプログラムの各々の出力に対応する正解データに基づいて個別に最適化された後、（ｉｉ）前記第３のプログラムの出力に対応する正解データに基づいてまとめて最適化されている。
【０００７】
プログラムを個別に最適化（即ち、個別最適化）する場合、各プログラムの機能に特化した最適化は実現できるが、システム全体としての機能を考慮した最適化を実現することができない。その一方で、最初から複数のプログラムをまとめて最適化（即ち、全体最適化）しようとすると、最適化に要する処理負荷が極めて大きくなってしまうおそれがある。また、全体最適化では、各プログラムの個別の機能が考慮されないため、真の最適値（即ち、最適化によって実現し得る最良の値）が実現できず、十分な最適化の効果が得られないおそれがある。
【０００８】
しかるに本発明の車両システムによれば、まず第１のプログラム及び第３のプログラムの各々が個別最適化され、その後に全体最適化が行われる。このように段階的に最適化を行えば、比較的処理負荷の低い個別最適化によって各プログラムの機能に特化した最適化が実現された状態で、比較的処理負荷の高い全体最適化が行われる。これにより、最初から全体最適化を行う場合と比較して、処理負荷が小さく且つ効果の高い最適化を実現することができる。この結果、車両周辺に存在する事物の未来の位置を好適に予測することが可能となる。
【０００９】
本発明に係る車両システムの一態様では、前記第３のプログラムは、前記時系列の地図データから判別した前記事物の挙動のクセを利用して、前記事物の未来の位置を予測する。
【００１０】
この態様によれば、事物の挙動のクセ（言い換えれば、挙動の傾向）を利用して、より正確に事物の未来の位置を予測できる。
【００１１】
上述した事物の挙動のクセを利用する態様では、前記第３のプログラムは、前記時系列の地図データから算出される判別パラメータが、予め設定された複数のクセカテゴリのいずれに対応するものであるかを判定することで、前記事物の挙動のクセを判別してもよい。
【００１２】
この態様によれば、判別パラメータによって判定されたクセカテゴリ（例えば、初心者ドライバ、熟練ドライバ、せっかちなドライバ等）に応じて、より正確に事物の未来の位置を予測できる。
【００１３】
本発明に係る車両システムの他の態様では、前記第３のプログラムによって予測された前記事物の未来の位置に基づいて、前記車両の走行経路を設定する設定手段を更に備える。
【００１４】
この態様によれば、車両周辺に存在する事物との衝突や接近を回避しつつ、好適に車両を走行させることが可能である。
【００１５】
本発明の作用及び他の利得は次に説明する実施するための形態から明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係る車両の構成を示すブロック図である。
【図２】ＥＣＵに記憶されている制御プログラムの構成図である。
【図３】ＯＧＭプログラムに蓄積されるグリッドマップの一例を示す概念図である。
【図４】離散値で表現されたグリッドマップの一例を示す平面図である。
【図５】確率分布で表現されたグリッドマップの一例を示す平面図である。
【図６】動き予測プログラムの構成図である。
【図７】動き予測プログラムの動作の流れを示すフローチャートである。
【図８】クセカテゴリの判別方法を示す概念図である。
【図９】動き予測プログラムの入力及び出力を示す概念図である。
【図１０】認識プログラムの個別最適化を示す概念図である。
【図１１】動き予測プログラムの個別最適化を示す概念図である。
【図１２】３つのプログラムの全体最適化を示す概念図である。
【発明を実施するための形態】
【００１７】
本発明の車両システムに係る実施形態を図面に基づいて説明する。
【００１８】
＜車両の構成＞
まず、実施形態に係る車両システムが搭載される車両の構成について、図１を参照して説明する。ここに図１は、実施形態に係る車両の構成を示すブロック図である。
【００１９】
図１において、本実施形態に係る車両１は、センサ１０と、ＥＣＵ（Ｅｌｅｃｔｒｉｃａｌ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）２０と、エンジン３０と、通信インターフェース１５及び２５と、ユーザインターフェース３５とを備えて構成されている。
【００２０】
センサ１０は、例えば車載カメラや、レーダ、ライダー（ＬＩＤＥＲ：Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）等を含んで構成されており、車両１の周辺に存在する物体５０（具体的には、図中の物体Ａ５０ａや物体Ｂ５０ｂ）を検出する。物体５０は、「事物」の一具体例であり、一例として他車両、歩行者、自転車等が挙げられる。
【００２１】
ＥＣＵ３０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算回路を有する制御ユニットであり、車両１の各部の動作を制御可能に構成されている。ＥＣＵ３０は、通信インターフェース１５を介して入力されるセンサ１０の検出結果を、制御プログラム１００を用いて処理する。制御プログラム１００は、その処理結果として生成される制御信号を、通信インターフェース２５を介してエンジン３０に出力する。また、制御プログラム１００は、その処理結果に関する情報を、ユーザインターフェース３５を介して搭乗者４０に提供する。制御プログラム１００の具体的な構成は後に詳述する。
【００２２】
エンジン３０は、車両１の主な動力源であり、ガソリン等の燃料を燃焼させることでトルクを出力する。エンジン３０の出力するトルクは、通常運転者４０によるアクセルペダルの操作に基づいて制御されるが、車両１が自動運転制御又は半自動運転制御（即ち、運転操作の少なくとも一部を運転者４０が行う自動運転）を実施する際には、ＥＣＵ２０の制御プログラム１００によって制御される。なお、車両１は、エンジン３０に代えてモータ等の動力源を備える電気自動車であってもよいし、エンジン３０に加えてモータ等の動力源を備えるハイブリッド車両であってもよい。この場合、ＥＣＵ２０は、エンジン３０に加えて又は代えて、モータ等の動力源の動作を制御してもよい。
【００２３】
＜制御プログラムの構成＞
次に、ＥＣＵ２０における制御プログラム１００の構成について、図２を参照して具体的に説明する。図２は、ＥＣＵ２０に記憶されている制御プログラムの構成図である。
【００２４】
図２において、制御プログラム１００は、認識プログラム１１０と、ＯＧＭプログラム１２０と、動き予測プログラム１３０と、パスプランプログラム１４０と、エンジン制御プログラム１５０とを備えて構成されている。
【００２５】
認識プログラム１１０は、センサ入力（即ち、センサ１０の検出結果）から、車両１の周辺に存在する物体５０を認識する。なお、物体５０を認識する具体的な手法については、Ｓｉｎｇｌｅ  Ｓｈｏｔ  ＭｕｌｔｉＢｏｘ  Ｄｅｔｅｃｔｏｒ（ＳＳＤ）やＭｕｌｔｉ−ｓｃａｌｅ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＭＳ−ＣＮＮ）のような既存の技術を適宜採用することができるため、ここでの詳細な説明は省略する。認識プログラム１１０は、「第１のプログラム」の一具体例である。
【００２６】
ＯＧＭプログラム１２０は、認識プログラム１１０の検出結果に基づいて、現在の物体５０の位置情報を示す二次元のグリッドマップを生成する。ＯＧＭプログラム１２０は、生成したグリッドマップに関する情報を動き予測プログラム１３０に出力すると共に、動き予測プログラム１３０から入力された予測情報に基づいて、未来の物体５０の位置情報を示すグリッドマップを生成する。ＯＧＭプログラム１２０のより具体的な動作については後に詳述する。ＯＧＭプログラム１２０は、「第２のプログラム」の一具体例である。
【００２７】
動き予測プログラム１３０は、ＯＧＭプログラム１２０によって生成される時系列データ（即ち、生成タイミングの異なる複数のグリッドマップ）に基づいて、認識されている物体５０の動き（言い換えれば、未来の位置）を予測する。動き予測プログラム１３０の具体的な動作については後に詳述する。動き予測プログラム１３０は、「第３のプログラム」の一具体例である。
【００２８】
パスプランプログラム１４０は、車両１が自動運転制御又は半自動運転制御を実施する際の車両１の走行スケジュール（例えば、走行経路や車速等）を生成する。具体的には、パスプランプログラム１４０は、ＯＧＭプログラム１３０に蓄積された現在までの物体５０の位置情報及び未来の物体５０の位置情報に基づいて、物体５０との衝突や過度な接近を避けるように、車両１の走行スケジュールを生成する。なお、走行スケジュールを生成する具体的な手法については、既存の技術を適宜採用することができるため、ここでの詳細な説明は省略する。
【００２９】
エンジン制御プログラム１５０は、車両１が自動運転制御又は半自動運転制御を実施する際に、車両１のエンジン３０の動作を制御するためのプログラムである。エンジン制御プログラム１５０は、パスプランプログラム１４０によって生成された走行スケジュールに基づいて、エンジン３０の動作（言い換えれば、エンジンが出力するトルク）を制御する。走行スケジュールに基づいてエンジン３０を制御する具体的な手法については、既存の技術を適宜採用することができるため、ここでの詳細な説明は省略する。なお、エンジン制御プログラム１５０に加えて又は代えて、自動運転制御又は半自動運転制御を実施するための他のプログラム（例えば、操舵制御プログラム等）が備えられてもよい。
【００３０】
＜ＯＧＭプログラムの詳細＞
次に、ＯＧＭプログラム１２０について、図３から図５を参照して詳細に説明する。図３は、ＯＧＭプログラムに蓄積されるグリッドマップの一例を示す概念図である。図４は、離散値で表現されたグリッドマップの一例を示す平面図であり、図５は、確率分布で表現されたグリッドマップの一例を示す平面図である。
【００３１】
図３において、ＯＧＭプログラム１２０は、認識プログラム１１０の認識結果に基づいて、所定期間毎に二次元のグリッドマップを生成する。よって、ＯＧＭプログラム１２０には、物体５０の認識開始（ｔ＝０）から現在（ｔ＝ｎ）までの時系列データとして複数のグリッドマップが蓄積されていく。現在までのグリッドマップは、物体５０の位置を示す物体座標情報だけでなく、物体５０の種別を示す物体カテゴリ（例えば、車、バイク、人等）、複数の物体５０を個別に認識するための物体固有ＩＤを含んでいる。なお、本実施例では、グリッドマップは車両１の位置を基準とし、かつ地平面に平行な二次元の相対座標を用いて構成されるが、高低差の情報を含む三次元座標により構成されてもよいし、Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ（ＧＰＳ）センサから取得した情報を用いて生成された世界座標（絶対座標）により構成されてもよい。
【００３２】
また、ＯＧＭプログラム１２０は、動き予測プログラム１３０から入力される予測情報に基づいて、未来のグリッドマップを生成する。よって、ＯＧＭプログラム１２０には、現在（ｔ＝ｎ）以降の未来（ｔ＝ｎ＋１〜ｎ＋Ｔ）の時系列データとして複数のグリッドマップが蓄積されていく。未来のグリッドマップは、現在までのグリッドマップに含まれている各種情報の他、予測情報から得られた物体５０の向き、物体５０の速度、更には後に詳述する物体５０のクセカテゴリを含んでいる。
【００３３】
図４に示すように、ＯＧＭプログラム１２０は、例えば０又は１の離散値によって表現されるビットマップとして二次元のグリッドマップを生成する。０又は１の数値は、物体５０の存在確率であり、０の部分には物体５０が存在しておらず、１の部分には物体５０が存在していることを示している。
【００３４】
他方、図５に示すように、ＯＧＭプログラム１２０は、例えば０．０から１．０までの連続値（より具体的には、例えば０．１刻みの連続値）によって表現されるビットマップとして二次元のグリッドマップを生成してもよい。０．０から１．０の数値は、物体５０の存在確率であり、１．０に近づくほど（即ち、数値が大きいほど）、物体の存在確率が高いことを示している。
【００３５】
＜動き予測プログラムの詳細＞
次に、動き予測プログラム１３０について、図６から図９を参照して詳細に説明する。図６は、動き予測プログラムの構成図であり、図７は、動き予測プログラムの動作の流れを示すフローチャートである。図８は、クセカテゴリの判別方法を示す概念図であり、図９は、動き予測プログラムの入力及び出力を示す概念図である。
【００３６】
図６において、動き予測プログラム１３０は、ＲＮＮ（Ｒｅｃｕｒｓｉｖｅ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：再帰型ニューラルネットワーク）２００を有しており、ディープラーニングによって物体５０の未来の位置を予測する。ＲＮＮ２００は、ＬＳＴＭ（Ｌｏｎｇ  Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ）３１０及びＤＮＮ（Ｄｅｅｐ  Ｎｅｒｕｒａｌ  Ｎｅｔｗｏｒｋ）からなるニューラルネットワークレイヤー３００を備えている。動き予測プログラム１３０に入力されたＯＧＭプログラム１２０からの出力情報（時系列データ）は、ＬＳＴＭ３１０及びＤＮＮ３２０での処理を経て、再びＯＧＭプログラム１２０へと出力される構成となっている。ＲＮＮの代わりに、例えば３次元ＣＮＮなど、その他時系列処理用のニューラルネットワークを用いてもよい。以下では、動き予測プログラム１３０の動作の流れについて詳細に説明する。
【００３７】
図７において、動き予測プログラム１３０は、まずＯＧＭプログラム１２０からの入力データ（即ち、現在の車両１の周辺情報を示すグリッドマップ）を受信する（ステップＳ１０１）。ＯＧＭプログラム１２０からの入力データはグリッドマップのデータそのものであってもよいし、グリッドマップデータを圧縮したデータや、過去のグリッドマップに対する差分データであってもよい。続いて、動き予測プログラム１３０は、受信した入力データをニューラルネットワークレイヤー３００に入力する（ステップＳ１０２）。
【００３８】
ニューラルネットワークレイヤー３００に入力された入力データは、ＬＳＴＭ３１０及びＤＮＮ３２０におけるディープラーニングにより処理され、ＤＮＮ３２０から未来の物体５０の位置を示す予測情報が出力される。ＬＳＴＭ３１０及びＤＮＮ３２０の具体的な動作については既存の技術であるため割愛するが、本実施形態に係るＤＮＮ３２０から出力される予測情報には特に、物体５０のクセカテゴリを判別するための判別パラメータが含まれている。クセカテゴリは、物体５０の挙動のクセを分類するために予め設定されるカテゴリである。
【００３９】
図８に示すように、物体５０が他車両である場合のクセカテゴリの具体例として「普通（即ち、一般的なドライバ）」、「熟練ドライバ」、「初心者ドライバ」、「せっかちなドライバ」、「自動運転車」、「荒っぽいドライバ」、「飲酒運転車」、「緊急車両」等が挙げられる。例えば、クセカテゴリが「熟練ドライバ」として判別された物体５０（車両）であれば、その物体５０は効率的な走行ルートを選択して走行する可能性が高いと推測できる。一方で、クセカテゴリが「初心者ドライバ」として判別された物体５０（車両）であれば、その物体５０は通常のドライバであれば選択しないような走行ルートを選択して走行する可能性があると推測できる。
【００４０】
なお、上記のクセカテゴリは、物体カテゴリが「車両」である物体５０に対応したものであるが、クセカテゴリは物体カテゴリ毎に設定されている。例えば、物体カテゴリが「人」である物体に対しては、「子ども」、「学生」、「成人」、「老人」、「酩酊者」等のクセカテゴリが設定されればよい。
【００４１】
判別パラメータは、判別対象となる物体５０が各クセカテゴリに属する確率を示すパラメータとして算出される。図に示す例では、「せっかちなドライバ」に属する確率が“０．６５０”となっており最も高い。よって、この場合の物体５０のクセカテゴリは、「せっかちなドライバ」であると判別される。
【００４２】
図７に戻り、ＤＮＮ３２０は、上述したように物体５０のクセカテゴリを判別する（ステップＳ１０３）。クセカテゴリは物体５０の挙動のクセを分類したものであるため、物体５０がいずれのクセカテゴリに対応するかを判別することで、物体５０の挙動のクセを判別することができる。より具体的には、物体５０がいずれのクセカテゴリに属するかによって、今後どのような動きをする可能性が高いのか（あるいは、どのような動きをする可能性が低いのか）を知ることができる。
【００４３】
その後、ＤＮＮ３２０は、入力データ及び判別したクセカテゴリ（即ち、物体５０の挙動のクセを示す情報）に基づいて、物体５０の向き、速度、座標を算出する（ステップＳ１０４）。物体５０の向き、速度、座標については、時系列データからクセカテゴリを用いずとも算出することができる。しかしながら、物体５０の挙動のクセを分類したクセカテゴリを利用すれば、時系列データのみを用いた場合と比較して、より正確な値を算出することが可能である。動き予測プログラム１３０は最後に、予測した物体５０のクセカテゴリ、向き、速度、座標を、予測情報としてＯＧＭプログラム１２０に出力する（ステップＳ１０５）。
【００４４】
図９に示すように、動き予測プログラム１３０は、ＯＧＭプログラム１２０によって二次元グリッドマップが生成される度に（即ち、所定期間毎に連続して）、未来の予測情報を出力する。この時、ＯＧＭプログラムから入力される入力データは、ＯＧＭプログラム１２０によって生成されたグリッドマップではなく、すでに動き予測プログラム１３０から得られている予測情報に基づいて生成されたグリッドマップ（言い換えれば、ＯＧＭプログラム１２０によって生成されたグリッドマップを予測情報に基づいて更新したグリッドマップ）となる。このため、ＯＧＭプログラム１２０からの入力データにも、認識プログラム１１０の認識結果からでは推測することが難しい「クセカテゴリ」、「物体座標」、「物体向き」、「物体速度」が含まれている。なお、予測情報が得られていない段階での入力データにおける「クセカテゴリ」、「物体座標」、「物体向き」、「物体速度」は、予め設定した初期値を用いればよい。
【００４５】
以上のように、予測情報に基づいて生成されたグリッドマップは、認識結果から生成したグリッドマップには含まれない情報を含んでいる。このため、予測情報に基づいて更新されたグリッドマップを用いて予測を続けていけば、認識プログラム１１０の認識結果から生成したグリッドマップだけを用いて予測をする場合と比較して、より正確に未来の物体５０の位置を予測することができる。
【００４６】
＜プログラムの最適化＞
次に、認識プログラム１１０、ＯＧＭプログラム１２０、及び動き予測プログラム１３０の最適化（即ち、プログラムの出力をより適切なものにするための学習）について、図１０から図１２を参照して説明する。図１０は、認識プログラム１１０の個別最適化を示す概念図であり、図１１は、動き予測プログラム１３０の個別最適化を示す概念図である。図１２は、３つのプログラムの全体最適化を示す概念図である。なお、以下で説明する最適化は、車両システムの出荷前に行われることを前提としている。
【００４７】
図１０及び図１１に示すように、本実施形態では、まず認識プログラム１１０及び動き予測プログラム１３０の個別最適化が実行される。認識プログラム１１０の個別最適化は、センサ入力ｘに対する認識プログラム１１０の出力である認識結果ｙ０と、認識結果ｙ０に対応する正解データｔ０とを比較することで行われる。具体的には、認識結果ｙ０が正解データｔ０に近づくように、認識プログラム１１０の学習パラメータが最適化される。動き予測プログラム１３０の個別最適化は、時系列データｙ１（即ち、ＯＧＭプログラム１２０からの入力データ）に対する動き予測プログラム１３０の出力である予測情報ｙ２と、予測情報ｙ２に対応する正解データｔ２とを比較することで行われる。具体的には、予測情報ｙ２が正解データｔ２に近づくように、動き予測プログラム１３０の学習パラメータが最適化される。
【００４８】
学習パラメータを最適化するためには、例えば機械学習モデルの誤差関数が最小化されるような学習パラメータを見つければよい。具体的な手法としては、ＳＧＤ（Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｉｅｎｔ  Ｄｅｓｃｅｎｔ：確率的勾配降下法）や、Ａｄａｍ（Ａｄａｐｔｉｖｅ  Ｍｏｍｅｎｔ  Ｅｓｔｉｍａｔｉｏｎ）等を利用することができる。これらの手法は既存の技術であるため、ここでの詳細な説明は省略する。なお、上述した最適化手法に代えて、他の既存の技術を採用することも可能である。
【００４９】
なお、最適化に用いる正解データを得るためには、予め設定された条件下でシミュレーションを行えばよい。具体的には、実施形態に係る車両システムが搭載される車両１の周辺を、クセカテゴリの判明している運転者（例えば、実際の初心者ドライバや熟練者ドライバ）に、事前に決められた通りに運転してもらうようなシミュレーションを行えば、認識結果ｙ０に対応する正解データｔ０及び予測情報ｙ２に対応する正解データｔ２を得ることができる。
【００５０】
図１２に示すように、本実施形態では、上述した個別最適化の後に、認識プログラム１１０、ＯＧＭプログラム１２０及び動き予測プログラム１３０の全体最適化が行われる。これら３つのプログラムの全体最適化は、センサ入力ｘが認識プログラム１１０に入力された場合の動き予測プログラム１３０の出力である予測情報ｙ２と、予測情報ｙ２に対応する正解データｔ２とを比較することで行われる。
【００５１】
全体最適化においても、個別最適化と同様に、例えば機械学習モデルの誤差関数が最小化されるような認識プログラム１１０及び動き予測プログラム１３０（更には、ＯＧＭプログラム１２０）の学習パラメータを見つければよい。ただし、個別最適化では、認識プログラム１１０及び動き予測プログラム１３０の各々の機能に特化した最適化が行われるのに対し、全体最適化では３つのプログラム全体として最適な結果が得られるような学習が実現される。このため、個別最適化のみを実行する場合と比較して、より適切な結果を得ることが可能となる。
【００５２】
また、全体最適化は、個別最適化と比較すると利用するパラメータの数が多く、演算負荷が大きい。これに対し、本実施形態では、個別最適化によって認識プログラム１１０及び動き予測プログラム１３０が夫々最適化された状態で全体最適化が実行されるため、最初から全体最適化を実行する場合と比較して演算負荷を小さくすることができる。更に、全体最適化は、３つのプログラムの動作の全てを考慮して最適化するため、全体最適化を実行しただけでは、各プログラムの機能に特化した個別最適化であれば実現できたであろう真の最適値に到達できない（即ち、最適化の効果が十分に得られない）場合がある。しかるに本実施形態では、まず個別最適化が実行され、その後で全体最適化が実行されるため、全体最適化だけを行う場合と比較して最適化の効果を高めることができる。
【００５３】
以上説明したように、本実施形態に係る車両システムによれば、個別最適化を実行した後に全体最適化を実行することで、最適化に要する演算負荷を抑制しつつ、最適化の効果を最大限に高めることが可能である。この結果、動き予測プログラム１３０から出力される予測情報の予測精度が高まり、予測情報を利用した各種制御（例えば、エンジン制御プログラム１５０によるエンジン３０の制御）を好適に実行することが可能である。
【００５４】
なお、上述した認識プログラム１１０、ＯＧＭプログラム１２０、及び動き予測プログラム１３０のプログラムの最適化は、車両システムの出荷後（具体的には、車両１が利用開始された後）にオンラインで実行されてもよい。プログラムの最適化は、すでに説明したように、各プログラムに対する入力データ、出力データ及び正解データが揃っていれば実行することができる。よって、車両１の走行データを蓄積できるような構成を採用すれば、蓄積された実際の走行データを利用して最適化を行い、予測情報の精度を更に高めることができる。この場合、出荷前にすでに個別最適化が実行されているため、新たに実行するのは全体最適化だけでよい。
【００５５】
本発明は、上述した実施形態に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う車両システムもまた本発明の技術的範囲に含まれるものである。
【符号の説明】
【００５６】
１  車両
１０  センサ
２０  ＥＣＵ
３０  エンジン
４０  運転者
５０  物体
１００  制御プログラム
１１０  認識プログラム
１２０  ＯＧＭプログラム
１３０  動き予測プログラム
１４０  パスプランプログラム
１５０  エンジン制御プログラム
２００  ＲＮＮ
３００  ニューラルネットワークレイヤー
３１０  ＬＳＴＭ
３２０  ＤＮＮ
【図１】
2018197977.tif 000003
【図２】
2018197977.tif 000004
【図３】
2018197977.tif 000005
【図４】
2018197977.tif 000006
【図５】
2018197977.tif 000007
【図６】
2018197977.tif 000008
【図７】
2018197977.tif 000009
【図８】
2018197977.tif 000010
【図９】
2018197977.tif 000011
【図１０】
2018197977.tif 000012
【図１１】
2018197977.tif 000013
【図１２】
2018197977.tif 000014