IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

特開2024-127356更新システム、車載装置、及びサーバ
<>
  • 特開-更新システム、車載装置、及びサーバ 図1
  • 特開-更新システム、車載装置、及びサーバ 図2
  • 特開-更新システム、車載装置、及びサーバ 図3
  • 特開-更新システム、車載装置、及びサーバ 図4
  • 特開-更新システム、車載装置、及びサーバ 図5
  • 特開-更新システム、車載装置、及びサーバ 図6
  • 特開-更新システム、車載装置、及びサーバ 図7
  • 特開-更新システム、車載装置、及びサーバ 図8
  • 特開-更新システム、車載装置、及びサーバ 図9
  • 特開-更新システム、車載装置、及びサーバ 図10A
  • 特開-更新システム、車載装置、及びサーバ 図10B
  • 特開-更新システム、車載装置、及びサーバ 図11
  • 特開-更新システム、車載装置、及びサーバ 図12
  • 特開-更新システム、車載装置、及びサーバ 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024127356
(43)【公開日】2024-09-20
(54)【発明の名称】更新システム、車載装置、及びサーバ
(51)【国際特許分類】
   G01M 17/007 20060101AFI20240912BHJP
   B60R 16/02 20060101ALI20240912BHJP
【FI】
G01M17/007 J
B60R16/02 660U
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023036466
(22)【出願日】2023-03-09
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】上口 翔悟
(57)【要約】
【課題】学習済モデルの更新を短期間に行う。
【解決手段】
更新システムは、車載装置と、サーバと、を備え、前記車載装置は、前記車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルと、前記第1学習済モデルから出力される前記推定値と、第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定する第1判定部と、を含み、前記サーバは、前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択する選択部と、選択された前記第2学習済モデルを前記車載装置へ送信する送信部と、を含み、前記車載装置は、前記第2学習済モデルを受信する受信部と、前記第1学習済モデルを、前記第2学習済モデルに更新する更新部と、を含む。
【選択図】図6
【特許請求の範囲】
【請求項1】
車載装置と、
サーバと、
を備え、
前記車載装置は、
前記車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルと、
前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定する第1判定部と、
を含み、
前記サーバは、
前記第1判定部によって前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択する選択部と、
前記選択部によって選択された前記第2学習済モデルを前記車載装置へ送信する送信部と、
を含み、
前記車載装置は、
前記サーバから送信された前記第2学習済モデルを受信する受信部と、
前記第1学習済モデルを、前記受信部によって受信された前記第2学習済モデルに更新する更新部と、
を含む、
更新システム。
【請求項2】
前記車載装置は、過去に前記車載ネットワークを伝送された第1車両値及び第2車両値を記憶する記憶部をさらに含み、
前記第1判定部は、前記記憶部に記憶された前記第1車両値を前記第1学習済モデルに入力することによって前記第1学習済モデルから出力された前記推定値と、前記記憶部に記憶された前記第2車両値とを比較して、前記第1学習済モデルが前記車両に適合しているか否かを判定する、
請求項1に記載の更新システム。
【請求項3】
前記第1判定部は、前記車両が停止している状態において、前記第1学習済モデルが前記車両に適合しているか否かを判定する、
請求項2に記載の更新システム。
【請求項4】
前記車載装置は、
前記車両が走行する通常モードと、前記車両の保守を行うための保守モードとのいずれかに動作モードを設定するモード設定部をさらに含み、
前記第1判定部は、前記動作モードが前記保守モードに設定されている場合に、前記第1学習済モデルが前記車両に適合しているか否かを判定する、
請求項2に記載の更新システム。
【請求項5】
前記車載装置は、前記動作モードが前記通常モードに設定されている場合に、前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第2車両値を含むフレームが不正フレームであるか否かを判定する第2判定部をさらに含む、
請求項4に記載の更新システム。
【請求項6】
前記選択部は、前記車両に関する車両情報に基づいて、前記第2学習済モデルを選択する、
請求項1に記載の更新システム。
【請求項7】
前記車両情報は、前記車両の車種を含む、
請求項6に記載の更新システム。
【請求項8】
前記車両情報は、前記車両の年式を含む、
請求項6に記載の更新システム。
【請求項9】
前記車両情報は、前記車両の総走行距離を含む、
請求項6に記載の更新システム。
【請求項10】
前記車両情報は、前記車両の車種、年式、及び総走行距離を含み、
前記選択部は、前記車両情報に含まれる車種及び年式に対応する前記第2学習済モデルを選択し、
前記選択部は、前記車両情報に含まれる車種及び年式に対応する複数の前記第2学習済モデルが存在する場合、前記車両情報に含まれる前記総走行距離に基づいて、前記複数の第2学習済モデルの中の1つを選択する、
請求項6に記載の更新システム。
【請求項11】
前記選択部は、複数の学習済モデルを格納する格納部から、前記第2学習済モデルを選択する、
請求項1に記載の更新システム。
【請求項12】
前記車載装置は、
前記第2学習済モデルから出力される推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第2学習済モデルが前記車両に適合しているか否かを判定する第3判定部と、
前記第3判定部によって前記第2学習済モデルが前記車両に適合していないと判定された場合に、前記車載ネットワークを伝送される前記第1車両値及び前記第2車両値を教師データとする教師あり学習を実行することにより、第3学習済モデルを生成する学習部と、
をさらに含み、
前記更新部は、前記第1学習済モデルを、前記学習部によって生成された前記第3学習済モデルに更新する、
請求項1から請求項11のいずれか1項に記載の更新システム。
【請求項13】
前記車載装置は、複数の車両において利用可能な複数の学習済モデルを格納する格納部に、前記学習部によって生成された前記第3学習済モデルを格納させる格納制御部をさらに含む、
請求項12に記載の更新システム。
【請求項14】
前記車載装置は、前記車載ネットワークに含まれる複数の通信線に接続され、複数の車載装置の間でフレームを中継する中継装置である、
請求項1に記載の更新システム。
【請求項15】
車載ネットワークに接続される車載装置であって、
前記車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルと、
前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定する第1判定部と、
前記第1判定部によって前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルをサーバから受信する受信部と、
前記第1学習済モデルを、前記受信部によって受信された前記第2学習済モデルに更新する更新部と、
を備える、
車載装置。
【請求項16】
車載装置と通信することが可能なサーバであって、
車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較することにより、前記第1学習済モデルが車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択する選択部と、
前記選択部によって選択された前記第2学習済モデルを前記車載装置へ送信する送信部と、
を備える、
サーバ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、更新システム、車載装置、及びサーバに関する。
【背景技術】
【0002】
車両には、エンジン、トランスミッション等を制御する制御系ECU(Electronic Control Unit)、ヘッドライト、パワーウインドウ等を制御するボディ系ECU、ナビゲーション装置、マルチメディア機器等の情報系ECU等、多種の車載装置が搭載される。各車載装置は、車載ネットワークに接続され、相互に通信することができる。
【0003】
車載ネットワークに非正規の車載装置が正規の車載装置になりすまして接続され、非正規の車載装置から車載ネットワークに不正なフレームが送信されることにより、車両が不正に制御されることが問題となっている。このため、車載ネットワークにおいて不正なフレームを検出する技術が提案されている(例えば、特許文献1から3)。
【0004】
機械学習によって生成した学習済モデルを用いて不正フレームの検出を行う場合、車両の経年劣化等によって学習済モデルの入力値と出力値との関係が変化してしまうと、不正フレームを正確に検出することができなくなる。特許文献2には、車載機器が劣化することによって車両に搭載されたセンサから取得した第1車両値と第2車両値との関係が変化した場合に、学習済モデルの再学習を行う装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2020/203352号
【特許文献2】国際公開第2019/116973号
【特許文献3】特開2020-96286号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献2に開示された装置では、学習済モデルの再学習を行うために、センサから取得した第1車両値及び第2車両値をログとして記録しておく必要があるため、待ち時間が大きくなるという問題がある。
【課題を解決するための手段】
【0007】
本開示の一態様に係る更新システムは、車載装置と、サーバと、を備え、前記車載装置は、前記車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルと、前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定する第1判定部と、を含み、前記サーバは、前記第1判定部によって前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択する選択部と、前記選択部によって選択された前記第2学習済モデルを前記車載装置へ送信する送信部と、を含み、前記車載装置は、前記サーバから送信された前記第2学習済モデルを受信する受信部と、前記第1学習済モデルを、前記受信部によって受信された前記第2学習済モデルに更新する更新部と、を含む。
【発明の効果】
【0008】
本開示によれば、学習済モデルの更新を短期間に行うことができる。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係る更新システムの構成の一例を示すブロック図である。
図2図2は、実施形態に係る中継ECUのハードウェア構成の一例を示すブロック図である。
図3図3は、実施形態に係るサーバのハードウェア構成の一例を示すブロック図である。
図4図4は、実施形態に係る学習済モデルの構成の一例を示す模式図である。
図5図5は、学習済モデルDBの構成の一例を示す図である。
図6図6は、実施形態に係る中継ECUの機能の一例を示す機能ブロック図である。
図7図7は、実施形態に係るサーバの機能の一例を示す機能ブロック図である。
図8図8は、実施形態に係る中継ECUの動作の一例を示すフローチャートである。
図9図9は、不正フレーム検出処理の一例を示すフローチャートである。
図10A図10Aは、更新処理の一例を示すフローチャートの前半部である。
図10B図10Bは、更新処理の一例を示すフローチャートの後半部である。
図11図11は、実施形態に係るサーバの動作の一例を示すフローチャートである。
図12図12は、モデル選択処理の一例を示すフローチャートである。
図13図13は、実施形態に係る更新システムの動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【0010】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0011】
(1) 本実施形態に係る管理システムは、車載装置と、サーバと、を備え、前記車載装置は、前記車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルと、前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定する第1判定部と、を含み、前記サーバは、前記第1判定部によって前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択する選択部と、前記選択部によって選択された前記第2学習済モデルを前記車載装置へ送信する送信部と、を含み、前記車載装置は、前記サーバから送信された前記第2学習済モデルを受信する受信部と、前記第1学習済モデルを、前記受信部によって受信された前記第2学習済モデルに更新する更新部と、を含む。これにより、車載装置において再学習を行う必要がなく、学習済モデルの更新を短期間に行うことができる。
【0012】
(2) 上記(1)において、前記車載装置は、過去に前記車載ネットワークを伝送された第1車両値及び第2車両値を記憶する記憶部をさらに含み、前記第1判定部は、前記記憶部に記憶された前記第1車両値を前記第1学習済モデルに入力することによって前記第1学習済モデルから出力された前記推定値と、前記記憶部に記憶された前記第2車両値とを比較して、前記第1学習済モデルが前記車両に適合しているか否かを判定してもよい。これにより、記憶部に記憶された実績値である第1車両値及び第2車両値を用いることにより、第1学習済モデルが車両に適合しているか否かを正確に判定することができる。
【0013】
(3) 上記(2)において、前記第1判定部は、前記車両が停止している状態において、前記第1学習済モデルが前記車両に適合しているか否かを判定してもよい。これにより、車両の走行制御を行う必要がない車両の停止中に、第1学習済モデルが車両に適合しているか否かの判定を実行することができる。
【0014】
(4) 上記(2)又は(3)において、前記車載装置は、前記車両が走行する通常モードと、前記車両の保守を行うための保守モードとのいずれかに動作モードを設定するモード設定部をさらに含み、前記第1判定部は、前記動作モードが前記保守モードに設定されている場合に、前記第1学習済モデルが前記車両に適合しているか否かを判定してもよい。これにより、動作モードが保守モードに設定されている間に、第1学習済モデルが車両に適合しているか否かの判定を実行することができる。
【0015】
(5) 上記(4)において、前記車載装置は、前記動作モードが前記通常モードに設定されている場合に、前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第2車両値を含むフレームが不正フレームであるか否かを判定する第2判定部をさらに含んでもよい。これにより、動作モードが通常モードの間に、第1学習済モデルを用いて不正フレームの検出を行うことができる。
【0016】
(6) 上記(1)から(5)のいずれか1つにおいて、前記選択部は、前記車両に関する車両情報に基づいて、前記第2学習済モデルを選択してもよい。これにより、車両に対応した第2学習済モデルを車載装置に提供することができる。
【0017】
(7) 上記(6)において、前記車両情報は、前記車両の車種を含んでもよい。これにより、車両の車種に対応した第2学習済モデルを車載装置に提供することができる。
【0018】
(8) 上記(6)又は(7)において、前記車両情報は、前記車両の年式を含んでもよい。これにより、車両の年式に対応した第2学習済モデルを車載装置に提供することができる。
【0019】
(9) 上記(6)から(8)のいずれか1つにおいて、前記車両情報は、前記車両の総走行距離を含んでもよい。これにより、車両の総走行距離に対応した第2学習済モデルを車載装置に提供することができる。
【0020】
(10) 上記(6)において、前記車両情報は、前記車両の車種、年式、及び総走行距離を含み、前記選択部は、前記車両情報に含まれる車種及び年式に対応する前記第2学習済モデルを選択し、前記選択部は、前記車両情報に含まれる車種及び年式に対応する複数の前記第2学習済モデルが存在する場合、前記車両情報に含まれる前記総走行距離に基づいて、前記複数の第2学習済モデルの中の1つを選択してもよい。これにより、車両の車種及び年式に対応した第2学習済モデルを選択することができる。さらに、車両の車種及び年式に対応した複数の第2学習済モデルが存在する場合には、総走行距離によって適切な第2学習済モデルを選択することができる。
【0021】
(11) 上記(1)から(10)のいずれか1つにおいて、前記選択部は、複数の学習済モデルを格納する格納部から、前記第2学習済モデルを選択してもよい。これにより、様々な学習済モデルから車両に適合した学習済モデルを第2学習済モデルとして選択することができる。
【0022】
(12) 上記(1)から(11)のいずれか1つにおいて、前記車載装置は、前記第2学習済モデルから出力される推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第2学習済モデルが前記車両に適合しているか否かを判定する第3判定部と、前記第3判定部によって前記第2学習済モデルが前記車両に適合していないと判定された場合に、前記車載ネットワークを伝送される前記第1車両値及び前記第2車両値を教師データとする教師あり学習を実行することにより、第3学習済モデルを生成する学習部と、をさらに含み、前記更新部は、前記第1学習済モデルを、前記学習部によって生成された前記第3学習済モデルに更新してもよい。これにより、サーバから提供された第2学習済モデルが車両に適合していない場合に、車両に適合した第3学習済モデルを生成し、第1学習済モデルを第3学習済モデルに更新することができる。
【0023】
(13) 上記(12)において、前記車載装置は、複数の車両において利用可能な複数の学習済モデルを格納する格納部に、前記学習部によって生成された前記第3学習済モデルを格納させる格納制御部をさらに含んでもよい。これにより、生成された第3学習済モデルを、他の車両において用いることができる。
【0024】
(14) 上記(1)から(13)のいずれか1つにおいて、前記車載装置は、前記車載ネットワークに含まれる複数の通信線に接続され、複数の車載装置の間でフレームを中継する中継装置であってもよい。これにより、複数の車載装置間でフレームを中継する中継装置における学習モデルを更新することができる。
【0025】
(15) 本実施形態に係る車載装置は、車載ネットワークに接続される車載装置であって、前記車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルと、前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定する第1判定部と、前記第1判定部によって前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルをサーバから受信する受信部と、前記第1学習済モデルを、前記受信部によって受信された前記第2学習済モデルに更新する更新部と、を備える。これにより、車載装置において再学習を行う必要がなく、学習済モデルの更新を短期間に行うことができる。
【0026】
(16) 本実施形態に係るサーバは、車載装置と通信することが可能なサーバであって、車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較することにより、前記第1学習済モデルが車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択する選択部と、前記選択部によって選択された前記第2学習済モデルを前記車載装置へ送信する送信部と、を備える。これにより、車載装置において再学習を行う必要がなく、学習済モデルの更新を短期間に行うことができる。
【0027】
本開示は、上記のような特徴的な構成を備える更新システム、更新システムに含まれる車載装置、及び更新システムに含まれるサーバとして実現することができるだけでなく、車載装置における特徴的な処理をステップとする更新方法として実現したり、前記車載装置に特徴的な処理を実行させるための更新プログラムとして実現したり、前記中継装置の一部又は全部を半導体集積回路として実現したりすることができる。さらに、本開示は、前記サーバにおける特徴的な処理をステップとする方法として実現したり、前記サーバに特徴的な処理を実行させるためのプログラムとして実現したり、前記サーバの一部又は全部を半導体集積回路として実現したりすることもできる。
【0028】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0029】
[1.更新システム]
図1は、本実施形態に係る更新システムの構成の一例を示すブロック図である。更新システム10は、車両に搭載された中継ECU200と、車両の外部に設けられたサーバ500とを含む。
【0030】
車両は、車載システム100を有する。車載システム100は、中継ECU200と、ECU300A,300B,300C,300D,300Eとを含む。車載システム100は、中継ECU200、ECU300A,300B,300C,300D,300E、及びそれらを繋ぐ通信線(通信バス)によって構成される車載ネットワークである。
【0031】
複数のECU300A,300B,300C,300D,300Eは、車両の各部に配置される。ECU300A,300B,300C,300D,300Eは、車両の各部のハードウェアを個別に制御したり、車両の各部のハードウェアの状態を監視したりする。例えば、ECU300A,300B,300C,300D,300Eは、制御系、ボディ系、情報系のECUである。なお、以下の説明では、ECU300A,300B,300C,300Dを総称して「ECU300」ともいう。
【0032】
ECU300A,300B,300C,300Dはセンサに接続されている。センサは、車両に関する物理量を検出する。例えば、ECU300Aには、エンジン回転数を検出するセンサ310Aが接続されている。例えば、ECU300Bには、アクセルペダルの踏込量、すなわち、スロットル開度を検出するセンサ310Bが接続されている。例えば、ECU300Cには、車両に搭載された変速機構におけるギアポジションを検出するセンサ310Cが接続されている。例えば、ECU300Dには、車輪の回転速度、すなわち、車速を検出するセンサ310Dが接続されている。エンジン回転数、スロットル開度、ギアポジション、及び車速は、「車両値」の例である。
【0033】
中継ECU200は、ECU300A,300B,300C,300D,300EのそれぞれとCAN(Controller Area Network)バスのような通信バス400A,400B,400Cを介して接続されている。具体的には、バス400Aには、ECU300A,300Bが接続されている。バス400Bには、ECU300C,300Dが接続されている。バス400Cには、ECU300Eが接続されている。中継ECU200は、ECU300A,300B,300C,300D,300Eのそれぞれと相互に通信することができる。中継ECU200,ECU300A,300B,300C,300D,300Eは、「車載装置」の例である。
【0034】
中継ECU200及びECU300は、周期的又は非周期的にメッセージを送受信するための通信プロトコルを使用する。通信プロトコルは、例えば、CAN又はCAN FD(CAN with Flexible Data Rate)である。他の例では、プロトコルは、イーサネット(登録商標)である。
【0035】
中継ECU200は、複数のECU300間の通信を中継するゲートウェイとしての機能を有する。ECU300は、フレームを送信することができる。フレームは、上述した通信プロトコルに準拠したメッセージである。中継ECU200は、異なるバスに接続されたECU間のフレームを中継する。例えば、中継ECU200は、バス400Aに接続されたECU300Aと、バス400Bに接続されたECU300Cとの間でフレームを中継することができる。
【0036】
ECU300A,300B,300C,300Dは、上述した車両値を含むフレームを送信することができる。フレームを受信したECU300A,300B,300C,300D,300Eは、受信したフレームから車両値を取得することができる。
【0037】
中継ECU200は、バス400Cを介して外部通信装置350に接続されている。外部通信装置350は、例えばTCU(Telematics Control Unit)であり、車外の装置と通信することができる。外部通信装置350は、例えば第5世代移動通信システム(5G)、又は第4世代移動通信システム(4G)等の移動通信システム用の無線通信インタフェースを備える。外部通信装置350は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)のパケットを送受信することができる。外部通信装置350は、移動通信ネットワークの基地局(図示せず)に接続し、インターネットに接続された装置と、基地局を介して通信することができる。具体的には、外部通信装置350は、サーバ500と通信することができる。外部通信装置350は、中継ECU200とサーバ500との間の通信を中継する。
【0038】
バス400Cには、コネクタ410が接続されている。コネクタ410は、例えばOBD1(On-board Diagnostics first generation)又はOBD2(On-board Diagnostics second generation)に準拠したコネクタである。コネクタ410には、車両の診断を行うための診断装置370が接続可能である。診断装置370は、上述した通信プロトコルを使用して、中継ECU200及びECU300と通信することができる。例えば、診断装置370は、中継ECU200及びECU300から、センサによって検出された車両値、ECU300によって過去に検出された異常又は警告情報等を収集することができる。
【0039】
[2.中継ECUのハードウェア構成]
図2は、本実施形態に係る中継ECUのハードウェア構成の一例を示すブロック図である。中継ECU200は、プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信インタフェース(以下、「通信I/F」ともいう)204A,204B,204Cとを含む。プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信I/F204とのそれぞれは、通信線であるバス205によって互いに接続されている。プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信I/F204とのそれぞれは、バス205を介して互いにデータを伝送することができる。中継ECU200は、「中継装置」の一例である。
【0040】
揮発性メモリ203は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の半導体メモリである。不揮発性メモリ202は、例えばフラッシュメモリ、ハードディスク、ROM(Read Only Memory)等である。不揮発性メモリ202には、コンピュータプログラムである不正フレーム検出プログラム210及び更新プログラム211並びに不正フレーム検出プログラム210及び更新プログラム211の実行に使用されるデータが格納される。中継ECU200の後述する機能は、不正フレーム検出プログラム210及び更新プログラム211がプロセッサ201によって実行されることで発揮される。
【0041】
プロセッサ201は、例えばCPU(Central Processing Unit)である。ただし、プロセッサ201は、CPUに限られない。プロセッサ201は、GPU(Graphics Processing Unit)であってもよい。具体的な一例では、プロセッサ201は、マルチコアプロセッサである。プロセッサ201は、シングルコアプロセッサであってもよい。プロセッサ201は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ201は、例えば、ASIC(Application Specific Integrated Circuit)であってもよいし、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスであってもよい。この場合、ASIC又はプログラマブルロジックデバイスは、不正フレーム検出プログラム210及び更新プログラム211と同じ機能を実行可能に構成される。
【0042】
通信I/F204A,204B,204Cは、上述した車載ネットワーク用の通信プロトコルに準拠した通信インタフェースである。通信I/F204A,204B,204Cは、例えばCANインタフェースである。通信I/F204A,204B,204Cは、イーサネットインタフェースであってもよい。
【0043】
通信I/F204Aは、バス400Aに接続されている。通信I/F204Bは、バス400Bに接続されている。通信I/F204Cは、バス400Cに接続されている。中継ECU200は、通信I/F204Aによって、ECU300A及び300Bと通信することができる。中継ECU200は、通信I/F204Bによって、ECU300C及び300Dと通信することができる。中継ECU200は、通信I/F204Cによって、ECU300Eと通信することができる。さらに、中継ECU200は、通信I/F204Cによって、診断装置370と通信することができ、外部通信装置350を介してサーバ500と通信することができる。
【0044】
不揮発性メモリ202には、不正フレームの検出に用いられる学習済モデル212が格納されている。学習済モデル212については後述する。
【0045】
不揮発性メモリ202には、ログデータ213が格納されている。ログデータ213は、過去に検出された車両値、すなわち、エンジン回転数、スロットル開度、ギアポジション、及び車速等を含む。
【0046】
不揮発性メモリ202には、車両情報214が格納されている。車両情報214は、車両の車種、年式、及び総走行距離を含む。例えば、車両情報214は、中継ECU200の不揮発性メモリ202ではなく、ECU300の不揮発性メモリ(図示せず)に記憶されていてもよい。この場合、中継ECU200は、通信によってECU300から車両情報を取得することができる。
【0047】
[3.サーバのハードウェア構成]
図3は、本実施形態に係るサーバのハードウェア構成の一例を示すブロック図である。サーバ500は、プロセッサ501と、不揮発性メモリ502と、揮発性メモリ503と、通信I/F504とを含む。プロセッサ501と、不揮発性メモリ502と、揮発性メモリ503と、通信I/F504とのそれぞれは、通信線であるバス505によって互いに接続されている。プロセッサ501と、不揮発性メモリ502と、揮発性メモリ503と、通信I/F504とのそれぞれは、バス505を介して互いにデータを伝送することができる。
【0048】
揮発性メモリ503は、例えばSRAM、DRAM等の半導体メモリである。不揮発性メモリ502は、例えばフラッシュメモリ、ハードディスク、ROM等である。不揮発性メモリ502には、コンピュータプログラムである提供プログラム510、及び提供プログラム510の実行に使用されるデータが格納される。サーバ500の後述する機能は、提供プログラム510がプロセッサ501によって実行されることで発揮される。
【0049】
プロセッサ501は、例えばCPUである。ただし、プロセッサ501は、CPUに限られない。プロセッサ501は、GPUであってもよい。具体的な一例では、プロセッサ501は、マルチコアプロセッサである。プロセッサ501は、シングルコアプロセッサであってもよい。プロセッサ501は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ501は、例えば、ASICであってもよいし、FPGA等のプログラマブルロジックデバイスであってもよい。この場合、ASIC又はプログラマブルロジックデバイスは、提供プログラム510と同じ機能を実行可能に構成される。
【0050】
通信I/F504は、例えばイーサネットインタフェース(「Ethernet」は登録商標)である。通信I/F504は、例えばインターネットに接続されている。通信I/F504は、例えば、TCP/IPのパケットを送受信することができる。
【0051】
不揮発性メモリ502には、学習済モデルデータベース511(以下、「学習済モデルDB511」ともいう)が設けられている。学習済モデルDB511は、複数の学習済モデルが格納されている。学習済モデルDB511は、「格納部」の一例である。提供プログラム510は、車両からの要求に応じて、学習済モデルDB511から当該車両に適した学習済モデルを選択し、選択した学習済モデルを車両に提供する。学習済モデルDB511については後述する。
【0052】
[4.学習済モデル]
学習済モデル212は、プロセッサ201によって実行可能なコンピュータプログラムであり、不正フレームの検出に用いられる。
【0053】
図4は、実施形態に係る学習済モデルの構成の一例を示す模式図である。学習済モデル212は、例えば、ニューラルネットワークによって構成され、入力層と、隠れ層と、出力層とを含む。
【0054】
学習済モデル212は、例えばディープニューラルネットワークによって構成される。学習済モデル212は、畳み込みニューラルネットワークであってもよく、再帰型ニューラルネットワークであってもよく、LSTM(Long Short Term Memory)であってもよく、その他のニューラルネットワークであってもよい。
【0055】
入力層は、センサによって検出され、ECU300から送信されるフレームに含まれる車両値(第1車両値)を受け付ける。入力層212INは1又は複数のノードを含む。例えば、入力層は、エンジン回転数と、スロットル開度と、ギアポジションとのそれぞれの第1車両値を受け付ける。
【0056】
隠れ層は、一又は複数の処理層によって構成される。図4に示す例では、隠れ層は3層構造である。隠れ層を構成する各層は、一又は複数のノードを有する。入力層のノードのそれぞれは、2層目のノードのそれぞれにエッジによって接続される。エッジには個別の重みが設定される。2層目のノードのそれぞれは、3層目のノードのそれぞれにエッジによって接続される。3層目のノードのそれぞれは、4層目のノードのそれぞれにエッジによって接続される。
【0057】
出力層は、少なくとも1つのノードを含む。隠れ層における4層目のノードのそれぞれは、出力層のノードにエッジによって接続される。
【0058】
入力層のノードに与えられた第1車両値は、エッジの重みによって重み付けされ、2層目のノードに受け渡される。2層目のノードは、与えられたデータに対してそれぞれに割り当てられた処理を実行する。2層目のノードによって処理されたデータは、エッジの重みによって重み付けされ、3層目のノードに受け渡される。3層目のノードは、与えられたデータに対してそれぞれに割り当てられた処理を実行する。同様にしてデータを4層目、出力層へとデータが順次受け渡される。出力層に含まれるノードのデータは、第2車両値の推定値である。第2車両値は、第1車両値に相関関係のある車両値である。例えば、第1車両値がエンジン回転数、スロットル開度、及びギアポジションである場合、第2車両値は車速である。
【0059】
例えば、第2車両値である車速を送信するフレームが正規のフレーム(以下、「正規フレーム」ともいう)である場合、正規フレームに含まれる車速は実際の車速を示す正常な値である。したがって、入力データであるエンジン回転数、スロットル開度、及びギアポジションのそれぞれが正常であれば、学習済モデル212から出力される車速の推定値は、正規フレームに含まれる車速に近い値である。例えば、第2車両値である車速を送信するフレームが不正フレームである場合、不正フレームに含まれる車速は実際の車速とは異なる異常な値である。したがって、学習済モデル212から出力される車速の推定値は、不正フレームに含まれる車速とは近似しない値になる。
【0060】
中継ECU200の不揮発性メモリ202には、複数の学習済モデルが格納されてもよい。例えば、ブレーキペダルの踏込量を入力データとし、加速度の推定値を出力データとする学習済モデル、ステアリングホイールの回転角を入力データとし、車輪の舵角の推定値を出力データとする学習済モデルなどが不揮発性メモリ202に格納されてもよい。
【0061】
[5.学習済モデルDB]
図5は、学習済モデルDBの構成の一例を示す図である。学習済モデルDB511は、車両情報と、学習済モデルとを関連付けて格納する。すなわち、学習済モデルDB511は、車両情報と、車両情報によって特定される車両に適合した学習済モデルとを対応づけて格納する。具体的には、車両情報は、対応する学習済モデルが生成された車両の車両情報である。図5の例では、学習済モデルM1は、車種「車種A」、年式「2011」、総走行距離「9251km」の車両によって生成された学習済モデルである。学習済モデルM2は、車種「車種A」、年式「2015」、総走行距離「8289km」の車両によって生成された学習済モデルである。学習済モデルM3は、車種「車種A」、年式「2015」、総走行距離「20350km」の車両によって生成された学習済モデルである。学習済モデルM4は、車種「車種B」、年式「2021」、総走行距離「563km」の車両によって生成された学習済モデルである。
【0062】
[6.更新システムの機能]
図6は、実施形態に係る中継ECUの機能の一例を示す機能ブロック図である。
【0063】
中継ECU200のプロセッサ201が不正フレーム検出プログラム210及び更新プログラム211を実行することにより、モード設定部221と、入力部231と、フレーム判定部232と、出力部233と、入力部241と、第1適合性判定部242と、要求部243と、受信部244と、入力部245と、第2適合性判定部246と、更新部247と、学習部248と、格納制御部249との各機能が実現される。
【0064】
中継ECU200は、通常モードと、保守モードとの2つの動作モードを設定可能である。通常モードは、車両が走行する場合に設定される動作モードである。保守モードは、車両の保守作業を行う場合に設定される動作モードである。すなわち、保守モードは、車両が走行しない場合に設定される動作モードである。
【0065】
図1を参照する。例えば、車両の点検、修理等の保守作業は、ディーラ等で行われる。ディーラの作業員は、保守作業時において、診断装置370をコネクタ410に接続する。診断装置370が車載システム100に接続されると、診断装置370から車載システム100へフレームが送信される。中継ECU200は、フレームを受信することで診断装置370の接続を検出する。
【0066】
図6に戻り、例えば、モード設定部221は、診断装置370の接続を検出すると、動作モードを通常モードから保守モードに切り替える。診断装置370が車載システム100から切り離されると、モード設定部221は、保守モードから通常モードに切り替える。すなわち、通常モードは、診断装置370が車載システム100に接続されていない場合に設定される動作モードである。保守モードは、診断装置370が車載システム100に接続されている場合に設定される動作モードである。
【0067】
入力部231と、フレーム判定部232と、出力部233とは、通常モードにおいて実行される機能である。入力部231と、フレーム判定部232と、出力部233とは、不正フレーム検出プログラム210によって実現される。
【0068】
入力部231は、第1車両値を学習済モデル212に入力する。具体的な一例では、入力部231は、中継ECU200が車載ネットワークから受信したフレームから第1車両値を取得し、取得した第1車両値を学習済モデル212に入力する。すなわち、入力部231が学習済モデル212に入力する第1車両値は、センサ310A,310B,310Cが直近に検出した車両値、すなわち、現在値である。
【0069】
学習済モデル212は、入力データである第1車両値を受け付けると、第2車両値の推定値を出力する。すなわち、学習済モデル212からの出力データは、第1車両値の現在値から得られる第2車両値の現在値の推定値であり、センサ310Dが直近に検出した車両値の推定値である。不揮発性メモリ202に格納されている学習済モデル212は、「第1学習済モデル」の一例である。
【0070】
フレーム判定部232は、学習済モデル212から出力される推定値と、車載ネットワークを伝送される第2車両値とを比較して、第2車両値を含むフレームが不正フレームであるか否かを判定する。フレーム判定部232は、「第2判定部」の一例である。具体的な一例では、フレーム判定部232は、中継ECU200が車載ネットワークから受信したフレームから第2車両値の現在値を取得する。フレーム判定部232は、学習済モデル212から出力される推定値と、第2車両値の現在値とを比較する。例えば、フレーム判定部232は、学習済モデル212から出力される推定値と、第2車両値の現在値との差分を算出し、差分が閾値以上であるか否かを判定する。差分が閾値未満である場合、フレーム判定部232は、第2車両値を含むフレームが正規フレームであると判定する。差分が閾値以上である場合、フレーム判定部232は、第2車両値を含むフレームが不正フレームであると判定する。
【0071】
フレーム判定部232が不正フレームを検出した場合、出力部233は、不正フレームの検出をユーザに通知するための通知データを出力する。例えば、出力部233は、不正フレームの検出をユーザに通知するための通知フレームを生成し、生成した通知フレームを車載ネットワークに送信する。例えば、車載システムには、ユーザインタフェース装置(以下、「UI装置」ともいう)が接続されている(図示せず)。UI装置は、車両に搭載された車載装置の1つである。UI装置は、車両のドライバによって使用される。UI装置は、入力装置及び表示装置を含み、ドライバからの入力を受け付け、ドライバへ提供する情報を表示することができる。UI装置は、中継ECU200から送信された通知フレームを受信し、不正フレームの検出を通知するための画面を表示する。これにより、不正フレームの検出がドライバに通知される。
【0072】
入力部241と、第1適合性判定部242と、要求部243と、受信部244と、入力部245と、第2適合性判定部246と、更新部247と、学習部248と、格納制御部249とは、保守モードにおいて実行される機能である。入力部231と、入力部241と、第1適合性判定部242と、要求部243と、受信部244と、入力部245と、第2適合性判定部246と、更新部247と、学習部248と、格納制御部249とは、更新プログラム211によって実現される。
【0073】
入力部241は、第1車両値を学習済モデル212に入力する。具体的な一例では、入力部241は、ログデータ213から第1車両値を読み出し、読み出した第1車両値を学習済モデル212に入力する。すなわち、入力部241が学習済モデル212に入力する第1車両値は、センサ310A,310B,310Cが過去に検出した車両値、すなわち、過去値(実績値)である。
【0074】
学習済モデル212は、入力データである第1車両値を受け付けると、第2車両値の推定値を出力する。すなわち、学習済モデル212からの出力データは、第1車両値の過去値から得られる第2車両値の過去値の推定値であり、センサ310Dが過去に検出した車両値の推定値である。
【0075】
車両は経年劣化によってその機械的特性が変化する。機械的特性が変化すると、第1車両値と第2車両値との間の相関関係が変化する。このため、過去においては、第1車両値と第2車両値との関係を正しく反映していた学習済モデル212が、車両の経年劣化によって、第1車両値と第2車両値との関係を正しく反映しなくなることがある。
【0076】
第1適合性判定部242は、学習済モデル212から出力される推定値と、車載ネットワークを伝送される第2車両値とを比較して、学習済モデル212が車両に適合しているか否かを判定する。第1適合性判定部242は、「第1判定部」の一例である。具体的な一例では、第1適合性判定部242は、ログデータ213から第2車両値を読み出す。ログデータ213に記録されている第2車両値は、第2車両値の過去値である。第1適合性判定部242は、学習済モデル212から出力される推定値と、ログデータ213から読み出した第2車両値とを比較する。推定値との比較に用いられる第2車両値は、学習済モデル212に入力された第1車両値が検出された時刻、又は、第1車両値が検出された時刻に近い時刻に検出された第2車両値である。
【0077】
例えば、第1適合性判定部242は、学習済モデル212から出力される推定値と、第2車両値の過去値との差分を算出し、差分が閾値以上であるか否かを判定する。差分が閾値未満である場合、第1適合性判定部242は、学習済モデル212が車両に適合していると判定する。差分が閾値以上である場合、第1適合性判定部242は、学習済モデル212が車両に適合していないと判定する。
【0078】
第1適合性判定部242によって学習済モデル212が車両に適合していると判定された場合、学習済モデル212は更新されず、不正フレームの検出に継続して使用される。
【0079】
車両に適合していない学習済モデル212における入出力関係は、実際の第1車両値と第2車両値との相関関係から乖離している。このため、車両に適合していない学習済モデル212を不正フレームの検出に用いると、不正フレームを誤検出したり、不正フレームを検出できなかったりするおそれがある。したがって、学習済モデル212が車両に適合していない場合、当該学習済モデル212を、第1車両値と第2車両値との相関関係を正しく反映した学習済モデルに更新する必要がある。
【0080】
第1適合性判定部242によって学習済モデル212が車両に適合していないと判定された場合、要求部243は、新たな学習済モデルをサーバ500に要求する。具体的な一例では、要求部243は、新たな学習済モデルを要求するための要求フレームを生成し、要求フレームを車載ネットワークへ送出する。
【0081】
要求フレームには、車両情報が含まれる。すなわち、要求部243は、不揮発性メモリ202から車両情報214を読み出し、読み出した車両情報214を含む要求フレームを生成する。要求部243が送信した要求フレームは、外部通信装置350が受信する。外部通信装置350は、要求フレームを受信すると、プロトコル変換等の必要な処理を行い、要求フレームをサーバ500へ送信する。
【0082】
図7は、実施形態に係るサーバの機能の一例を示す機能ブロック図である。
【0083】
サーバ500のプロセッサ501が提供プログラム510を実行することにより、受信部521と、選択部522と、送信部523との各機能が実現される。
【0084】
受信部521は、車両から送信された要求フレームを受信する。
【0085】
受信部521が要求フレームを受信すると、選択部522は、学習済モデルDB511から更新用の学習済モデルを選択する。
【0086】
具体的な一例では、選択部522は、要求フレームに含まれる車両情報に基づいて、学習済モデルDB511に格納されている複数の学習済モデルの中から、更新用の学習済モデルを選択する。
【0087】
例えば、選択部522は、要求フレームに含まれる車種と同じ車種に対応する学習済モデルを選択することができる。車種が同じ車両の機械的特性は近似していると推定することができる。このため、車種が共通する車両においては、第1車両値と第2車両値との関係が近似していると推定される。したがって、学習済モデルの要求元の車両と同じ車種の車両用の学習済モデルは、要求元の車両に適合する可能性が高いと考えられる。
【0088】
車種が異なる車両間では、車載ネットワークの構成が異なる可能性が高い。例えば、第1の車載ネットワークにおいて使用されている車両値が、第2の車載ネットワークにおいては使用されていないことがある。これに対して、同一車種の車両間では、車載ネットワークの構成が共通する可能性が高い。この観点からも、学習済モデルの要求元の車両と同じ車種の車両用の学習済モデルは、要求元の車両に適合する可能性が高いと考えられる。
【0089】
例えば、選択部522は、要求フレームに含まれる年式に近い年式に対応する学習済モデルを選択することができる。年式が近似する車両の経年劣化は、同程度であると推定することができる。このため、年式が近似する車両においては、第1車両値と第2車両値との関係が近似していると推定される。したがって、学習済モデルの要求元の車両と年式が近似する車両用の学習済モデルは、要求元の車両に適合する可能性が高いと考えられる。
【0090】
例えば、要求フレームに含まれる車種と同じ車種に対応する複数の学習済モデルが学習済モデルDB511に格納されている場合、選択部522は、要求フレームに含まれる年式と最も近い年式に対応する学習済モデルを選択することができる。
【0091】
例えば、選択部522は、要求フレームに含まれる総走行距離に近い総走行距離に対応する学習済モデルを選択することができる。総走行距離が近似する車両の劣化は、同程度であると推定することができる。このため、総走行距離が近似する車両においては、第1車両値と第2車両値との関係が近似していると推定される。したがって、学習済モデルの要求元の車両と総走行距離が近似する車両用の学習済モデルは、要求元の車両に適合する可能性が高いと考えられる。
【0092】
例えば、選択部522は、車両情報に含まれる車種及び年式に対応する学習済モデルを選択することができる。選択部522は、車両情報に含まれる車種及び年式に対応する複数の学習済モデルが存在する場合、車両情報に含まれる総走行距離に基づいて、複数の学習済モデルの中の1つを選択することができる。具体的な一例では、要求フレームに含まれる車種及び年式と同じ車種及び年式に対応する複数の学習済モデルが学習済モデルDB511に格納されている場合、選択部522は、要求フレームに含まれる総走行距離と最も近い総走行距離に対応する学習済モデルを選択することができる。
【0093】
送信部523は、選択部522によって選択された更新用の学習済モデルを、要求元の車両へ送信する。
【0094】
図6に戻る。サーバ500から送信された学習済モデルは、外部通信装置350によって受信される。外部通信装置350は、受信した学習済モデルを、例えば複数のフレームに分割して中継ECU200へ送信する。受信部244は、外部通信装置350から送信されたフレーム、すなわち、更新用の学習済モデルを受信する。
【0095】
入力部245は、受信した更新用の学習済モデル(以下、「更新用モデル」ともいう)に第1車両値を入力する。更新用モデルは、「第2学習済モデル」の一例である。具体的な一例では、入力部231は、ログデータ213から第1車両値を読み出し、読み出した第1車両値を更新用モデルに入力する。すなわち、入力部231が更新用モデルに入力する第1車両値は、センサ310A,310B,310Cが過去に検出した車両値、すなわち、過去値(実績値)である。
【0096】
更新用モデルは、入力データである第1車両値を受け付けると、第2車両値の推定値を出力する。すなわち、更新用モデルからの出力データは、第1車両値の過去値から得られる第2車両値の過去値の推定値であり、センサ310Dが過去に検出した車両値の推定値である。
【0097】
第2適合性判定部246は、更新用モデルから出力される推定値と、車載ネットワークを伝送される第2車両値とを比較して、更新用モデルが車両に適合しているか否かを判定する。第2適合性判定部246は、「第3判定部」の一例である。具体的な一例では、第2適合性判定部246は、ログデータ213から第2車両値を読み出す。ログデータ213に記録されている第2車両値は、第2車両値の過去値である。第2適合性判定部246は、更新用モデルから出力される推定値と、ログデータ213から読み出した第2車両値とを比較する。推定値との比較に用いられる第2車両値は、更新用モデルに入力された第1車両値が検出された時刻、又は、第1車両値が検出された時刻に近い時刻に検出された第2車両値である。
【0098】
例えば、第2適合性判定部246は、更新用モデルから出力される推定値と、第2車両値の過去値との差分を算出し、差分が閾値以上であるか否かを判定する。差分が閾値未満である場合、第2適合性判定部246は、更新用モデルが車両に適合していると判定する。差分が閾値以上である場合、第2適合性判定部246は、更新用モデルが車両に適合していないと判定する。
【0099】
第2適合性判定部246によって更新用モデルが車両に適合していると判定された場合、更新部247は、不揮発性メモリ202に格納されている学習済モデル212を、更新用モデルに更新する。すなわち、更新部247は、不揮発性メモリ202に格納されている学習済モデル212を更新用モデルに上書きする。
【0100】
第2適合性判定部246によって更新用モデルが車両に適合していないと判定された場合、学習部248は、車載ネットワークを伝送される第1車両値及び第2車両値を教師データとする教師あり学習を実行することにより、新たな学習済モデル(以下、「新規モデル」ともいう)を生成する。新規モデルは、「第3学習済モデル」の一例である。
【0101】
具体的な一例では、学習部248は、ログデータ213から第1車両値及び第2車両値を読み出し、読み出した第1車両値及び第2車両値から教師データを作成する。例えば、ログデータ213は、教師あり学習に必要となる十分なデータ量の第1車両値及び第2車両値を含む。具体的には、ログデータ213には、一定期間に検出された第1車両値及び第2車両値が蓄積されている。例えば、中継ECU200が新たな第1車両値及び第2車両値を受信すると、受信した第1車両値及び第2車両値がログデータ213に追加される。例えば、新たな第1車両値及び第2車両値がログデータ213に追加された場合、最も古い第1車両値及び第2車両値をログデータ213から削除してもよい。例えば、学習部248は、ログデータ213に含まれる全ての第1車両値及び第2車両値から、教師データを作成することができる。
【0102】
学習部248は、教師データに基づいて、第1車両値を入力とし、第2車両値を出力とする学習済モデルを生成する。すなわち、学習部248は、教師データを用いて機械学習を実行し、学習モデルを構築する。
【0103】
学習部248は、ニューラルネットワークに教師データを与え、教師あり学習を実行する。教師あり学習では、教師データにおける第1車両値が入力としてニューラルネットワークに与えられ、出力が第2車両値と同じになるように学習が行われる。このような機械学習は、第1車両値と第2車両値とを組み合わせた複数のデータセットを用いて繰り返し行われる。機械学習では、バックプロパゲーション、勾配降下法等の既存の学習アルゴリズムが使用されてもよい。機械学習によって、ニューラルネットワークの重みが調整され、学習済モデルが構築される。
【0104】
更新部247は、不揮発性メモリ202に格納された学習済モデル212を、学習部248によって生成された新規モデルに更新することができる。
【0105】
格納制御部249は、学習部248によって生成された新規モデルを、学習済モデルDB511に格納させる。具体的な一例では、格納制御部249は、学習部248によって生成された新規モデルと車両情報214とを含む登録要求を送信する。登録要求は、例えば複数のフレームに分割されて外部通信装置350へ送信される。外部通信装置350は、登録要求を受信すると、プロトコル変換等の必要な処理を行い、登録要求をサーバ500へ送信する。
【0106】
サーバ500は、登録要求を受信すると、登録要求に含まれる車両情報及び新規モデルを学習済モデル511に登録する。これにより、新規モデルは、複数の車両において利用可能となる。
【0107】
[7.更新システムの動作]
以下、本実施形態に係る車載システムの動作を説明する。
【0108】
図8は、実施形態に係る中継ECUの動作の一例を示すフローチャートである。
【0109】
中継ECU200のデフォルトの動作モードは通常モードである。すなわち、中継ECU200は、起動時において通常モードに設定されている。
【0110】
診断装置370が車載ネットワークに接続されると、診断装置370はフレームを送信する。中継ECU200のプロセッサ201は、フレームの受信によって診断装置370の接続を検出する。プロセッサ201は、診断装置370が車載ネットワークに接続されているか否かを判定する(ステップS101)。
【0111】
診断装置370が車載ネットワークに接続されていない場合(ステップS101においてNO)、プロセッサ201は、通常モードを維持し、不正フレーム検出処理を実行する(ステップS102)。
【0112】
図9は、不正フレーム検出処理の一例を示すフローチャートである。
【0113】
不正フレーム検出処理において、プロセッサ201は、第1車両値を含むフレーム及び第2車両値を含むフレームを受信する(ステップS201)。例えば、CANにおいては、送信元のECU300を示すCAN IDが割り当てられている。プロセッサ201は、フレームのCAN IDによって送信元を特定し、これにより、第1車両値を含むフレームであるか、第2車両値を含むフレームであるか、それ以外のフレームであるかを特定することができる。
【0114】
プロセッサ201は、受信したフレームから第1車両値を取得し、取得した第1車両値を学習済モデル212に入力する。学習済モデル212は、第2車両値の推定値を出力する(ステップS202)。
【0115】
プロセッサ201は、ステップS201において受信したフレームから第2車両値の現在値を取得し、取得した第2車両値の現在値と、第2車両値の推定値との差分を算出する(ステップS203)。
【0116】
プロセッサ201は、算出した差分と閾値とを比較する(ステップS204)。差分が閾値未満である場合(ステップS204においてNO)、プロセッサ201は、不正フレーム検出処理を終了する。
【0117】
差分が閾値以上である場合(ステップS204においてYES)、プロセッサ201は、受信したフレームが不正フレームであると判断し、不正フレームの検出をユーザに通知するための通知フレームを送信する(ステップS205)。UI装置が通知フレームを受信し、不正フレームの検出を通知するための画面を表示する。以上で、不正フレーム検出処理が終了する。
【0118】
図8に戻り、不正フレーム検出処理が終了すると、中継ECU200の動作は終了する。中継ECU200は、例えば、図8に示す動作を所定の周期で繰り返し実行する。
【0119】
診断装置370が車載ネットワークに接続されている場合(ステップS101においてYES)、プロセッサ201は、動作モードを保守モードに設定する(ステップS103)。
【0120】
プロセッサ201は、更新処理を実行する(ステップS104)。
【0121】
図10A及び図10Bは、更新処理の一例を示すフローチャートである。
【0122】
図10Aを参照し、更新処理において、プロセッサ201は、ログデータ213から第1車両値及び第2車両値の過去値を読み出す(ステップS301)。
【0123】
プロセッサ201は、ログデータ213から読み出した第1車両値を学習済モデル212に入力する。学習済モデル212は、第2車両値の推定値を出力する(ステップS302)。
【0124】
プロセッサ201は、ログデータ213から読み出した第2車両値の過去値と、第2車両値の推定値との差分を算出する(ステップS303)。
【0125】
プロセッサ201は、算出した差分と閾値とを比較する(ステップS304)。差分が閾値未満である場合(ステップS304においてNO)、プロセッサ201は、学習済モデル212が車両に適合していると判定し、更新処理を終了する。
【0126】
差分が閾値以上である場合(ステップS304においてYES)、プロセッサ201は、学習済モデル212が車両に適合していないと判定する。プロセッサ201は、サーバ500に更新用モデルを要求するための要求フレームを送信する。要求フレームには、車両情報214が含まれる。要求フレームは外部通信装置350によって受信され、外部通信装置350がサーバ500へ要求フレームを転送する。
【0127】
図11は、実施形態に係るサーバの動作の一例を示すフローチャートである。
【0128】
サーバ500は、要求フレームを受信する(ステップS401)。これにより、サーバ500のプロセッサ501は、更新用モデルの要求を受け付ける。
【0129】
プロセッサ501は、要求フレームに含まれる車両情報に基づいて、学習済モデルDB511から更新用モデルを選択するモデル選択処理を実行する(ステップS402)。
【0130】
図12は、モデル選択処理の一例を示すフローチャートである。
【0131】
モデル選択処理において、プロセッサ501は、車両情報に含まれる車種及び年式に対応する学習済モデルを、学習済モデルDB511において検索する(ステップS501)。
【0132】
プロセッサ501は、検索結果として、車両情報に含まれる車種及び年式に対応する学習済モデルが複数得られたか否かを判定する(ステップS502)。車両情報に含まれる車種及び年式に対応する学習済モデルが1つしか得られなかった場合(ステップS502においてNO)、プロセッサ501は、当該学習済モデルを更新用モデルとして選択する(ステップS503)。
【0133】
車両情報に含まれる車種及び年式に対応する複数の学習済モデルが得られた場合(ステップS502においてYES)、プロセッサ501は、これらの学習済モデルの中から、車両情報に含まれる総走行距離に最も近い総走行距離に対応する学習済モデルを更新用モデルとして選択する(ステップS504)。以上で、モデル選択処理が終了する。
【0134】
図11に戻り、プロセッサ501は、選択した更新用モデルを要求元の車両(外部通信装置350)へ送信する(ステップS403)。以上で、サーバ500の動作が終了する。
【0135】
図10Aに戻る。外部通信装置350は、サーバ500から送信された更新用モデルを受信すると、プロトコル変換等の必要な処理を行い、更新用モデルを中継ECU200へ送信する。中継ECU200は、更新用モデルを受信する(ステップS306)。
【0136】
プロセッサ201は、ログデータ213から第1車両値及び第2車両値の過去値を読み出す(ステップS307)。
【0137】
プロセッサ201は、ログデータ213から読み出した第1車両値を更新用モデルに入力する。更新用モデルは、第2車両値の推定値を出力する(ステップS308)。
【0138】
プロセッサ201は、ログデータ213から読み出した第2車両値の過去値と、更新用モデルから出力された第2車両値の推定値との差分を算出する(ステップS309)。
【0139】
プロセッサ201は、算出した差分と閾値とを比較する(ステップS310)。差分が閾値未満である場合(ステップS310においてNO)、プロセッサ201は、更新用モデルが車両に適合していると判定し、不揮発性メモリ202に格納されている学習済モデル212を更新用モデルに更新する(ステップS311)。
【0140】
差分が閾値以上である場合(ステップS310においてYES)、プロセッサ201は、更新用モデルが車両に適合していないと判定する。
【0141】
図10Bを参照し、プロセッサ201は、ログデータ213から第1車両値及び第2車両値の過去値を読み出す(ステップS312)。プロセッサ201は、読み出した第1車両値及び第2車両値から教師データを作成する(ステップS313)。
【0142】
プロセッサ201は、教師データをニューラルネットワークに与え、学習処理を実行する(ステップS314)。これによって、新規モデルが生成される。
【0143】
プロセッサ201は、不揮発性メモリ202に格納されている学習済モデル212を新規モデルに更新する(ステップS315)。
【0144】
プロセッサ201は、生成した新規モデルと車両情報とを含む登録要求を送信する。登録要求は外部通信装置350によってサーバ500へ送信(アップロード)される。サーバ500は、登録要求を受信すると、登録要求に含まれる車両情報及び新規モデルを学習済モデルDB511に登録する。以上で、更新処理が終了する。
【0145】
図13は、実施形態に係る更新システムの動作の一例を示すフローチャートである。図13には、中継ECU200の動作モードが保守モードである場合の更新システムの動作が示されている。
【0146】
診断装置370が車載ネットワークに接続されると、中継ECU200のプロセッサ201は、動作モードを保守モードに設定する。プロセッサ201は、更新処理を実行する。
【0147】
プロセッサ201は、ログデータ213に含まれる第1車両値を学習済モデル212に入力する。プロセッサ201は、学習済モデル212から出力される推定値を取得する。プロセッサ201は、ログデータ213に含まれる第2車両値と、学習済モデル212から出力された推定値とを比較し、学習済モデル212が車両に適合しているか否かを判定する(ステップS11)。
【0148】
学習済モデル212が車両に適合していると判定された場合、プロセッサ201は処理を終了する。この場合、学習済モデル212は更新されない。
【0149】
学習済モデル212が車両に適合していないと判定された場合、プロセッサ201は、車両情報214を不揮発性メモリ202から読み出し、車両情報214を含む要求フレームを送信する(ステップS12)。外部通信装置350は、要求フレームを受信し、受信した要求フレームにプロトコル変換等の必要な処理を施した後、サーバ500へ送信する(ステップS13)。
【0150】
サーバ500が要求フレームを受信すると、プロセッサ501は、要求フレームに含まれる車両情報に基づいて、学習済モデルDB511から更新用の学習済モデルを選択する(ステップS14)。
【0151】
プロセッサ501は、選択された学習済モデルである更新用モデルを送信する(ステップS15)。外部通信装置350は、更新用モデルを受信し、受信した更新用モデルにプロトコル変換等の必要な処理を施した後、中継ECU200へ送信する(ステップS16)。
【0152】
中継ECU200は、更新用モデルを受信する。プロセッサ201は、ログデータ213に含まれる第1車両値を更新用モデルに入力する。プロセッサ201は、更新用モデルから出力される推定値を取得する。プロセッサ201は、ログデータ213に含まれる第2車両値と、更新用モデルから出力された推定値とを比較し、更新用モデルが車両に適合しているか否かを判定する(ステップS17)。
【0153】
更新用モデルが車両に適合していると判定された場合、プロセッサ201は、更新用モデルによって学習済モデル212を更新する。
【0154】
更新用モデルが車両に適合していないと判定された場合、プロセッサ201は、ログデータ213から教師データを作成し、作成された教師データを用いて機械学習を行う(ステップS18)。プロセッサ201は、機械学習によって生成された学習済モデルである新規モデルによって学習済モデル212を更新する(ステップS19)。なお、図13は、更新用モデルが車両に適合していない場合の更新システムの動作例を示している。
【0155】
プロセッサ201は、生成された新規モデルと車両情報214とを含む登録要求を送信する(ステップS20)。外部通信装置350は、登録要求を受信し、受信した登録要求にプロトコル変換等の必要な処理を施した後、サーバ500へ送信する(ステップS21)。
【0156】
サーバ500が登録要求を受信すると、プロセッサ501は、登録要求に含まれる車両情報214及び新規モデルを学習済モデルDB511に登録する(ステップS22)。
【0157】
[8.変形例]
上述した実施形態では、学習済モデルDB511をサーバ500に設けたが、これに限定されない。例えば、学習済モデルDB511と同じデータベースを含むデータベースサーバをサーバ500とは別に設けてもよい。この場合、例えば、サーバ500は、データベースサーバにアクセスして、車両情報に適合する更新用モデルを選択してもよい。
【0158】
上述した実施形態では、複数の学習済モデルを学習済モデルDB511に格納したが、これに限定されない。例えば、ファイルシステムに複数の学習済モデルを格納してもよい。この場合、サーバ500は、車両情報に対応づけて学習済モデルの格納場所(ディレクトリ)を格納するテーブルを記憶しておき、テーブルを参照して車両情報に適合する学習済モデルの格納場所を特定することができる。サーバ500は、特定した格納場所から学習済モデルを取得し、取得した学習済モデルを車両へダウンロードすることができる。他の例では、サーバ500は、要求への応答として外部通信装置350へ学習済モデルの格納場所を送信することができる。外部通信装置350は、受信した格納場所から学習済モデルを例えばFTP(File Transfer Protocol)によってダウンロードし、ダウンロードした学習済モデルを中継ECU200へ転送することができる。
【0159】
上述した実施形態では、車両の車種、年式、及び総走行距離に基づいて更新用の学習済モデルを選択したが、これに限定されない。上述した車両情報に加えて、又はこれらの少なくとも1つに代えて、車両が登録される国又は地域に基づいて更新用の学習済モデルを選択してもよい。国又は地域によって気候は様々であり、気候によって車両の劣化の進み方は異なる。したがって、要求元の車両と同じ国又は地域に対応する学習済モデルは、要求元の車両に適合する可能性が高いと考えられる。
【0160】
上述した実施形態においては、学習済モデル212をニューラルネットワークモデルとしたが、これに限定されない。決定木、サポートベクターマシン等のニューラルネットワーク以外の教師あり機械学習アルゴリズムによって生成される学習済モデルを用いてもよい。
【0161】
上述した実施形態においては、中継ECU200が学習済モデル212を記憶し、学習済モデル212が車両と適合するか否かを判定する構成としたが、これに限定されない。ECU300が学習済モデル212を記憶し、学習済モデル212が車両と適合するか否かを判定してもよい。
【0162】
[9.付記]
[付記1]
車載装置において不正フレームの検出に使用される学習済モデルの更新方法であって、
前記車載装置が接続される車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルに前記第1車両値を入力し、前記第1学習済モデルから出力される前記推定値を、前記車載装置が取得するステップと、
前記車載装置が、取得された前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定するステップと、
前記第1学習済モデルが前記車両に適合していないと判定された場合に、サーバが、前記第1学習済モデルの更新用の第2学習済モデルを選択するステップと、
前記サーバが、選択された前記第2学習済モデルを前記車載装置へ送信するステップと、
前記車載装置が、前記サーバから送信された前記第2学習済モデルを受信するステップと、
前記車載装置が、前記第1学習済モデルを、受信された前記第2学習済モデルに更新するステップと、
を含む、
更新方法。
【0163】
[付記2]
車載ネットワークに接続される車載装置において不正フレームの検出に使用される学習済モデルを、前記車載装置が更新するための更新方法であって、
前記車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルに前記第1車両値を入力し、前記第1学習済モデルから出力される前記推定値を取得するステップと、
前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定するステップと、
前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルをサーバから受信するステップと、
前記第1学習済モデルを、受信された前記第2学習済モデルに更新するステップと、
を含む、
更新方法。
【0164】
[付記3]
車載ネットワークに接続される車載装置において不正フレームの検出に使用される学習済モデルを更新するための更新プログラムであって、
コンピュータに、
前記車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルに前記第1車両値を入力し、前記第1学習済モデルから出力される前記推定値を取得するステップと、
前記第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較して、前記第1学習済モデルが車両に適合しているか否かを判定するステップと、
前記第1学習済モデルが前記車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルをサーバから受信するステップと、
前記第1学習済モデルを、受信された前記第2学習済モデルに更新するステップと、
を実行させるための、
更新プログラム。
【0165】
[付記4]
車載ネットワークに接続される車載装置において不正フレームの検出に使用される学習済モデルを前記車載装置に提供する提供方法であって、
前記車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較することにより、前記第1学習済モデルが車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択するステップと、
選択された前記第2学習済モデルを前記車載装置へ送信するステップと、
を含む、
提供方法。
【0166】
[付記5]
車載ネットワークに接続される車載装置において不正フレームの検出に使用される学習済モデルを前記車載装置に提供するための提供プログラムであって、
コンピュータに、
前記車載ネットワークを伝送される第1車両値を入力データとし、前記第1車両値に相関する推定値を出力する第1学習済モデルから出力される前記推定値と、前記車載ネットワークを伝送される第2車両値とを比較することにより、前記第1学習済モデルが車両に適合していないと判定された場合に、前記第1学習済モデルの更新用の第2学習済モデルを選択するステップと、
選択された前記第2学習済モデルを前記車載装置へ送信するステップと、
を実行させるための、
提供プログラム。
【0167】
[10.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
【符号の説明】
【0168】
10 更新システム
100 車載システム
200 中継ECU(中継装置、車載装置)
201 プロセッサ
202 不揮発性メモリ
203 揮発性メモリ
204A,204B,204C 通信インタフェース(通信I/F)
210 不正フレーム検出プログラム
211 更新プログラム
212 学習済モデル
213 ログデータ
214 車両情報
221 モード設定部
231 入力部
232 フレーム判定部
233 出力部
241 入力部
242 第1適合性判定部
243 要求部
244 受信部
245 入力部
246 第2適合性判定部
247 更新部
248 学習部
249 格納制御部
300,300A,300B,300C,300D,300E ECU(車載装置)
310A,310B,310C,310D センサ
350 外部通信装置
370 診断装置
400A,400B,400C 通信バス
410 コネクタ
500 サーバ
501 プロセッサ
502 不揮発性メモリ
503 揮発性メモリ
504 通信インタフェース(通信I/F)
510 提供プログラム
511 学習済モデルデータベース
521 受信部
522 選択部
523 送信部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13