(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】車載制御ユニット、FPGAベースの車両自動運転方法及び装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20240110BHJP
B60W 40/02 20060101ALI20240110BHJP
B60W 60/00 20200101ALI20240110BHJP
G05D 1/43 20240101ALI20240110BHJP
【FI】
G06T7/00 350C
B60W40/02
B60W60/00
G05D1/02 H
(21)【出願番号】P 2020572668
(86)(22)【出願日】2019-12-27
(86)【国際出願番号】 CN2019129248
(87)【国際公開番号】W WO2020135730
(87)【国際公開日】2020-07-02
【審査請求日】2020-12-25
(31)【優先権主張番号】201811625816.8
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201910013122.7
(32)【優先日】2019-01-07
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】フー ジアユエ
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2008-021034(JP,A)
【文献】米国特許出願公開第2018/0093538(US,A1)
【文献】国際公開第2018/230492(WO,A1)
【文献】特開2017-182771(JP,A)
【文献】国際公開第2017/057056(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
B60W 40/02
B60W 60/00
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
フィールドプログラマブルゲートアレイ(FPGA)ベースの自動運転方法であって、車載制御ユニットに適用され、前記車載制御ユニットが第1のシステムオンチップ(第1のSoC)とマイクロコントロールユニット(MCU)とを含み、前記第1のSoCがFPGAによってアドバンスト縮小命令セットマシン(ARM)と集積的に配置され、前記車載制御ユニットが自動運転車両に配置され、前記方法は、
前記第1のSoCのFPGAが車載カメラによって送信されたビデオデータを受信するステップと、
前記第1のSoCのFPGAが第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得るステップと、
前記第1のSoCのFPGAが前記第1のSoCのARMへ前記第1のセンシング情報を送信するステップと、
前記第1のSoCのARMが前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUに送信するステップと、を含み、
前記車載制御ユニットはさらに、第2のシステムオンチップ(SoC)を含み、前記第2のSoCがFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置され、前記方法はさらに、
前記第2のSoCのFPGAが前記車載カメラによって送信された前記ビデオデータを受信するステップと、
前記第2のSoCのFPGAが第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得るステップと、
前記第2のSoCのFPGAが前記第2のSoCのARMへ前記第2のセンシング情報を送信するステップと、
前記第2のSoCのARMが前記第2のセンシング情報を処理し、第2の決定情報を得て前記MCUに送信するステップと、
前記MCUが前記第1の決定情報と前記第2の決定情報と
を比較と分析することによりその中から1つを選出し、選出結果に基づき、制御命令を生成するステップと、を含むことを特徴とするフィールドプログラマブルゲートアレイFPGAベースの自動運転方法。
【請求項2】
前記第1のSoCのARMが前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUに送信するステップは、
前記第1のSoCのARMがレーダデータを受信するステップと、
前記第1のSoCのARMが前記第1のセンシング情報と前記レーダデータとを融合するステップと、
前記第1のSoCのARMが融合された前記第1のセンシング情報と前記レーダデータとを処理し、前記第1の決定情報を得て前記MCUに送信するステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記レーダデータは超音波レーダデータ、ミリ波レーダデータ、レーザレーダデータのうちの少なくとも1つを含むことを特徴とする請求項2に記載の方法。
【請求項4】
車載制御ユニットであって、第1のシステムオンチップ(SoC)とマイクロコントロールユニット(MCU)とを含み、前記第1のSoCがフィールドプログラマブルゲートアレイ(FPGA)によってアドバンスト縮小命令セットマシン(ARM)と集積的に配置され、前記第1のSoCがイーサネットスイッチチップを介して前記MCUと接続され、
前記第1のSoCが第1のFPGAユニットと第1のARMユニットとを含み、
前記第1のFPGAユニットが、車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、前記第1のSoCの第1のARMへ前記第1のセンシング情報を送信するためのものであり、
前記第1のARMユニットが、前記第1のセンシング情報を処理し、第1の決定情報を得て、前記第1の決定情報を前記MCUに送信し、
前記車載制御ユニットは、第2のシステムオンチップ(SoC)をさらに含み、前記第2のSoCにFPGAとARMとが配置され、前記第2のSoCでのFPGAがバスを介してARMと接続され、前記第2のSoCが前記イーサネットスイッチチップを介して前記MCUと接続され、
前記第2のSoCのFPGAは、
前記車載カメラによって送信された前記ビデオデータを受
信し、
第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得、
前記第2のSoCのARMへ前記第2のセンシング情報を送信し、
前記第2のSoCのARMが前記第2のセンシング情報を処理し、第2の決定情報を得て前記MCUに送信し、
前記MCUが前記第1の決定情報と前記第2の決定情報と
を比較と分析することによりその中から1つを選出し、選出結果に基づき、制御命令を生成することを特徴とする車載制御ユニット。
【請求項5】
前記第1のARMユニットは、レーダデータを受信し、前記第1のセンシング情報と前記レーダデータとを融合し、融合された前記第1のセンシング情報と前記レーダデータとを処理し、前記第1の決定情報を得て、前記第1の決定情報を前記MCUに送信するためのものである請求項4に記載の車載制御ユニット。
【請求項6】
前記レーダデータは超音波レーダデータ、ミリ波レーダデータ、レーザレーダデータのうちの少なくとも1つを含むことを特徴とする請求項5に記載の車載制御ユニット。
【請求項7】
第1の同期ダイナミックランダムアクセスメモリ(SDRAM)と第1のフラッシュメモリ(Flash)とをさらに含み、前記第1のSDRAMが前記第1のSoCと接続され、前記第1のFlashが前記第1のSoCと接続されることを特徴とする請求項4に記載の車載制御ユニット。
【請求項8】
自動運転装置であって、該装置は車載制御ユニットに適用され、前記自動運転装置が、第1のシステムオンチップ(SoC)モジュールとマイクロコントロールユニット(MCU)モジュールとを含み、前記第1のSoCモジュールがフィールドプログラマブルゲートアレイ(FPGA)によってアドバンスト縮小命令セットマシン(ARM)と集積的に配置され、前記車載制御ユニットが自動運転車両に配置され、前記第1のSoCが第1のFPGAユニットと第1のARMユニットとを含み、
前記第1のFPGAユニットが、車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、前記第1のSoCのARMへ前記第1のセンシング情報を送信するためのものであり、
前記第1のARMユニットが、前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUモジュールに送信するためのものであり、
前記装置は、第2のSoCモジュールをさらに含み、前記第2のSoCモジュールが第2のFPGAユニットと第2のARMユニットとを含み、
前記第2のFPGAユニットが、前記車載カメラによって送信された前記ビデオデータを受信し、第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得て、前記第2のSoCのARMへ前記第2のセンシング情報を送信するためのものであり、
前記第2のARMユニットが、前記第2のセンシング情報を処理し、第2の決定情報を得て前記MCUモジュールに送信するためのものであり、
前記MCUモジュールが、前記第1の決定情報と前記第2の決定情報と
を比較と分析することによりその中から1つを選出し、選出結果に基づき、制御命令を生成するためのものであることを特徴とする自動運転装置。
【請求項9】
前記第1のARMユニットは、レーダデータを受信し、前記第1のセンシング情報と前記レーダデータとを融合し、融合された前記第1のセンシング情報と前記レーダデータとを処理し、前記第1の決定情報を得て前記MCUモジュールに送信するためのものであることを特徴とする請求項8に記載の装置。
【請求項10】
前記レーダデータは超音波レーダデータ、ミリ波レーダデータ、レーザレーダデータのうちの少なくとも1つを含むことを特徴とする請求項9に記載の装置。
【請求項11】
コンピュータプログラムであって、前記コンピュータプログラムがコンピュータで実行されると、前記コンピュータに請求項1~3のいずれか一項に記載の方法を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願の実施例は、車両制御技術分野に関し、特に車載制御ユニット、フィールドプログラマブルゲートアレイ(FPGA)ベースの車両自動運転方法及び装置に関する。
【背景技術】
【0002】
自動運転車両(Self-driving Car)はまた、無人運転車両、コンピュータ駆動車両、又は車輪付き移動ロボットとも呼ばれており、コンピュータシステムによって無人運転を実現するスマート車両である。
【0003】
自動運転自動車には電子制御ユニット(electronic control unit、ECU)が配置されており、ECUはまた、走行コンピュータ、車載コンピュータとも呼ばれており、無人運転車両の「脳」である。自動運転中には、車載カメラを利用して自動運転車両の周辺情報を収集し、収集した情報をECUに送信し、ECUがセンシングアルゴリズムを利用して受信された情報に対して視覚的センシングを行って決定結果を生成し、決定結果に基づいて制御命令を生成し、さらに制御命令に基づいて自動運転を完成させる。
【0004】
上記自動運転中には、センシングアルゴリズムを利用して車載カメラが収集した情報に対して視覚的センシングを行うことはECUに大きく依存し、ECU負担が増大してしまうようになっている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願の実施例は、車載制御ユニット、FPGAベースの車両自動運転方法及び装置を提供し、第1のシステムオンチップ(SoC)がFPGAによってARMと集積的に配置されており、FPAGとARMとを介してセンサデータを処理した後にマイクロコントロールユニット(MCU)に送信し、MCUの負担を軽減する。
【課題を解決するための手段】
【0006】
本願の実施例の第1の態様では、FPGAベースの車両自動運転方法を提供し、車載制御ユニットに適用され、前記車載制御ユニットが第1のシステムオンチップSoCとマイクロコントロールユニットMCUとを含み、前記第1のSoCがFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置され、前記車載制御ユニットが自動運転車両に配置され、前記方法は、
前記第1のSoCのFPGAが車載カメラによって送信されたビデオデータを受信するステップと、
前記第1のSoCのFPGAが第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得るステップと、
前記第1のSoCのFPGAが前記第1のSoCのARMへ前記第1のセンシング情報を送信するステップと、
前記第1のSoCのARMが前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUに送信するステップと、を含む。
【0007】
1つの実行可能な設計において、前記第1のSoCのARMが前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUに送信するステップは、
前記第1のSoCのARMがレーダデータを受信するステップと、
前記第1のSoCのARMが前記第1のセンシング情報と前記レーダデータとを融合するステップと、
前記第1のSoCのARMが融合された前記第1のセンシング情報と前記レーダデータとを処理し、前記第1の決定情報を得て前記MCUに送信するステップと、を含む。
【0008】
1つの実行可能な設計において、前記レーダデータは超音波レーダデータ、ミリ波レーダデータ、レーザレーダデータのうちの少なくとも1つを含む。
【0009】
1つの実行可能な設計において、前記車載制御ユニットは、第2のシステムオンチップSoCをさらに含み、前記第2のSoCがFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置され、前記方法はさらに、
前記第2のSoCのFPGAが前記車載カメラによって送信された前記ビデオデータを受信するステップと、
前記第2のSoCのFPGAが第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得るステップと、
前記第2のSoCのFPGAが前記第2のSoCのARMへ前記第2のセンシング情報を送信するステップと、
前記第2のSoCのARMが前記第2のセンシング情報を処理し、第2の決定情報を得て前記MCUに送信するステップと、
前記MCUが前記第1の決定情報と前記第2の決定情報とに基づき、制御命令を生成するステップと、を含む。
【0010】
本願の実施例の第2の態様では、第1のシステムオンチップSoCとマイクロコントロールユニットMCUとが含まれる車載制御ユニットを提供し、前記第1のSoCがフィールドプログラマブルゲートアレイFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置され、前記第1のSoCがイーサネットスイッチチップによって前記MCUと接続する。
【0011】
1つの実行可能な設計において、上記の車載制御ユニットはさらに、第2のシステムオンチップSoCを含み、前記第2のSoCにFPGAとARMとが配置され、前記第2のSoCでのFPGAがバスを介してARMと接続され、前記第2のSoCが前記イーサネットスイッチチップを介して前記MCUと接続する。
【0012】
1つの実行可能な設計において、上記の車載制御ユニットはさらに、第1の同期ダイナミックランダムアクセスメモリSDRAMと第1のフラッシュメモリFlashを含み、前記第1のSDRAMが前記第1のSoCと接続され、前記第1のFlashが前記第1のSoCと接続される。
【0013】
本願の実施例の第3の態様では、自動運転装置を提供し、該装置は車載制御ユニットに適用され、前記自動運転装置が、第1のシステムオンチップSoCモジュールとマイクロコントロールユニットMCUモジュールとを含み、前記第1のSoCモジュールがFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置され、前記車載制御ユニットが自動運転車両に配置され、前記第1のSoCが第1のFPGAユニットと第1のARMユニットとを含み、
前記第1のFPGAユニットが、車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、前記第1のSoCのARMへ前記第1のセンシング情報を送信するためのものであり、
前記第1のARMユニットが、前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUモジュールに送信するためのものである。
【0014】
1つの実行可能な設計において、前記第1のARMユニットは、具体的に、レーダデータを受信して、前記第1のセンシング情報と前記レーダデータとを融合し、融合された前記第1のセンシング情報と前記レーダデータとを処理し、前記第1の決定情報を得て前記MCUに送信するためのものである。
【0015】
1つの実行可能な設計において、前記装置はさらに、第2のSoCモジュールを含み、前記第2のSoCモジュールが第2のFPGAユニットと第2のARMユニットとを含み、
前記第2のFPGAユニットが、前記車載カメラによって送信された前記ビデオデータを受信し、第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得て、前記第2のSoCのARMへ前記第2のセンシング情報を送信するためのものであり、
前記第2のARMユニットが、前記第2のセンシング情報を処理し、第2の決定情報を得て前記MCUに送信するためのものであり、
前記MCUモジュールが、前記第1の決定情報と前記第2の決定情報とに基づき、制御命令を生成するためのものである。
【発明の効果】
【0016】
本願の実施例による車載制御ユニット、FPGAベースの車両自動運転方法及び装置であって、車載制御ユニットにはMCU及びFPGAによってARMと集積的に配置されていることで実現された第1のSoCが含まれ、車載制御ユニットが自動運転自動車に配置され、自動運転中には、第1のSoCのFPGAが車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、第1のSoCのARMへ該第1のセンシング情報を送信し、第1のSoCのARMが該第1のセンシング情報を処理して第1の決定情報を得てMCUに送信し、最後にMCUが該第1の決定情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって実行機構が該制御命令に基づいて自動運転をする。該過程では、第1のSoCがFPGAによってARMと集積的に配置され、FPAGとARMがセンサデータを処理した後にMCUに送信し、MCUの負担を軽減する。
【図面の簡単な説明】
【0017】
本願の実施例又は従来技術における技術的解決手段をより明確に説明するため、以下に実施例又は従来技術の記述に使用する必要がある図面を簡単に説明するが、当然ながら、以下に記載する図面は本願のいくつかの実施例であり、当業者にとって、創造的な労力なしにこれらの図面に基づいて他の図面を取得することもできる。
【
図1】従来技術においてFPGAベースで実現されたECUである。
【
図2】本願の実施例による車載制御ユニットのアーキテクチャ概略図である。
【
図3】本願の実施例によるフィールドプログラマブルゲートアレイFPGAベースの自動運転方法のフローチャートである。
【
図4】本願の実施例によるもう1つの車載制御ユニットのアーキテクチャ概略図である。
【
図5】本願の実施例による1つの自動運転装置の構造概略図である。
【
図6】本願の実施例によるもう1つの自動運転装置の構造概略図である。
【発明を実施するための形態】
【0018】
以下、本願の実施例に係る図面に合わせながら、本願の実施例における技術的解決手段を明瞭に、且つ完全に説明し、当然ながら、記載される実施例は本願の実施例の一部にすぎず、すべての実施例ではない。当業者が本願における実施例に基づいて創造的な労働なしに取得されたその他のすべての実施例は、いずれも本願発明の保護範囲に属する。
【0019】
本願の明細書と特許請求の範囲及び上記図面中の用語「第1」、「第2」、「第3」、「第4」など(存在する場合)は、類似の対象を区別するためのものであり、特定の手順又は順番を説明するためのものである必要はない。本明細書で説明する本願の実施例を、ここで図示又は説明するもの以外の順序で実施することができるように、このように使用するデータは適切な場合に交換可能であることが理解されるべきである。なお、用語「含む」及び「有する」及びそれらの任意の変形は、非排他的包含をカバーすることを意図し、例えば一連のステップ又はユニットを含むプロセス、方法、システム、製品、又はデバイスは、必ずしも明確に列記されたステップ又はユニットに限定される必要がなく、明確に列記されていない又はこれらのプロセス、方法、製品、又はデバイスに固有のそのほかのステップ又はユニットを含んでもよい。
【0020】
車載制御ユニットはまた、電子制御ユニット(electronic control unit、ECU)とも呼ばれ、現代の自動車用電子機器のコアコンポーネントの1つであり、1台の自動車にはECUが複数配置され、異なる機能を担当するためのものであり、各ECUの間では情報のインタラクションを行うことができ、複数のECUが自動車の制御システムを構成している。一般的に、1つのECUは、マイクロコントロールユニット(micro controller unit、MCU)、入力出力インタフェースなどを含む。ECUは他の電子コンポーネントとともに自動車の脳中枢神経システムを形成し、予め設定されたプログラムに基づいて様々なセンサによって送信された情報を処理し、決定結果を生成し、さらに制御命令を生成し、それから制御命令を実行機構に送信し、実行機構によって様々な所定の制御機能を実行する。
【0021】
現在、各メーカーは集積回路(integrated circuit、IC)を利用してECUを実現している一方、一部のメーカーはフィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)ベースのアーキテクチャを採ってECUを実現している。
図1は、従来技術においてFPGAベースで実現したECUである。
図1を参照されたい。該FPGAベースのECUは、FPGAがECUの外部に配置されたものであり、該FPGAが外部のECUと接続され、コンピューティングする必要が多くないECUに適する。しかしながら、運転支援、自動運転などの技術の進化に伴い、ECUと接続する車載カメラ、レーダなどのセンサが多くなっており、様々なセンサのデータを処理するために、ECUには強力なコンピューティング能力が必要となっている。様々なセンサでは、車載カメラによって収集されたデータは最も巨大で処理が困難であり、それに、車載カメラによって収集されたビデオデータの現在の主流の処理方法は、ディープラーニングニューラルネットワークアルゴリズムであり、ディープラーニングニューラルネットワークアルゴリズムは巨大なECU中央処理装置(central processing unit、CPU)リソースを消費する必要があり、即ち、ECUには強力なコンピューティング能力が必要であり、従来のFPGAベースのECUは、FPGAを利用して車載カメラによって送信されたビデオデータを処理し、処理されたデータを外部のECUに送信し、外部ECUによって受信したデータをさらに処理し、処理結果に基づいて制御命令を生成し、さらに制御命令に基づいて自動運転を完成させる。
【0022】
上記自動運転中には、FPGA演算を経たデータは外部ECUによってさらなる処理を行う必要があり、ECU負担が増加してしまうようになった。
【0023】
これに鑑みて、本願の実施例は、1つの
ECUベースのFPGAを提供し、ARMが集積されたFPGAを介してセンサデータを処理した後にECUのMCUに送信し、MCUの負担を軽減する。例示的に、
図2を参考にすることができる。
【0024】
図2は、本願の実施例による1つの車載制御ユニットのアーキテクチャ概略図である。
図2を参照されたい。本願の実施例による車載制御ユニットは、第1のシステムオンチップ(system on chip、SoC)とマイクロコントロールユニット(micro controller unit、MCU)とを含み、該第1のSoCがフィールドプログラマブルゲートアレイFPGAによってアドバンスト縮小命令セットマシン(advanced RISC Machine、ARM)と集積的に配置されており、前記第1のSoCがイーサネットスイッチチップを介して前記MCUと接続する。
【0025】
図2を参照されたい。第1のSoCはFPGAとARMとを融合し、両者を集中させてパッケージ化し、単一のチップを構成し、集積度を向上させると同時にFPGAとARMとの間のデータ接続が削減され、これによって第1のSoCはより多くの操作を実行することができ、信頼性を向上させると同時にECUの複雑さを低下した。該第1のSoCがイーサネットスイッチチップを介してMCUと接続され、これにより第1のSoCとMCUとの間のデータ交換を実現する。イーサネットスイッチチップはさらに、外部車載イーサネットとインタラクションをすることができる。MCUは、ECUのプリント回路基板(printed circuit board、PCB)全体の機能安全処理および内向き外向きインタフェースを担当し、MCUは、内向きにイーサネットスイッチ(switch)チップを介して第1のSoCとインタラクションをし、同時に全地球測位システム(global positioning system、GPS)、慣性測定ユニット(inertial measurement unit、IMU)、温度センサなどはいずれもMCUとインタラクションをする。外向きインタフェースの方では、MCUは、デバッグインタフェースと車両制
御インタフェースを引き出し、デバッグインタフェースが主にボードのデバッグを担当し、
車両制御インタフェースが車両に対する制御機能を実現する。
【0026】
本願の実施例による車載制御ユニットは、MCU及びFPGAによってARMと集積的に配置されていることで実現された第1のSoCを含み、車載制御ユニットが自動運転自動車に配置されており、自動運転中には、第1のSoCのFPGAが車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、第1のSoCのARMへ該第1のセンシング情報を送信し、第1のSoCのARMが該第1のセンシング情報を処理して第1の決定情報を得てMCUに送信し、最後にMCUが該第1の決定情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって実行機構が該制御命令に基づいて自動運転をする。該過程では、第1のSoCがFPGAによってARMと集積的に配置されており、FPAGとARMとを介してセンサデータを処理した後にMCUに送信し、MCUの負担を軽減する。
【0027】
上記の車載制御ユニットが自動運転自動車に配置される。以下、
図2に基づき、本願の実施例によるFPGAベースの自動運転方法について詳細に説明する。例示的に、
図3を参照することができる。
図3は、本願の実施例によるフィールドプログラマブルゲートアレイFPGAベースの自動運転方法のフローチャートである。本実施例は以下のステップを含む。
【0028】
101において、前記第1のSoCのFPGAが車載カメラによって送信されたビデオデータを受信する。
【0029】
本願の実施例において、車載制御ユニットが自動運転自動車に配置され、車載制御ユニットは第1のSoCとMCUとを含み、該第1のSoCがFPGAによってARMと集積的に配置される。本ステップでは、自動運転車両上の車載カメラがビデオデータを収集して第1のSoCでのFPGAへ送信する。相応的に、第1のSoCでのFPGAが該ビデオデータを受信する。
【0030】
102において、前記第1のSoCのFPGAが第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得る。
【0031】
本ステップでは、第1のSoCでのFPGAが第1のニューラルネットワークアルゴリズムを利用して受信したビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得る。第1のニューラルネットワークアルゴリズムが、畳み込みニューラルネットワーク(convolutional neural networks、CNN)アルゴリズムなどの予め設定されたディープラーニングベースのニューラルネットワークアルゴリズムである。例えば、時間遅延ネットワーク(time delay neural network、TDNN)アルゴリズム、シフト不変人工ニューラルネットワーク(shift-invariant artificial neural networks、SIANN)アルゴリズム、LeNet-5ニューラルネットワークアルゴリズム、VGGNetニューラルネットワークアルゴリズム、GoogLeNetニューラルネットワークアルゴリズム又はResNetニューラルネットワークアルゴリズムなどである。
【0032】
103において、前記第1のSoCのFPGAが前記第1のSoCのARMへ前記第1のセンシング情報を送信する。
【0033】
本ステップでは第1のSoCのFPGAがFPGA内部バスを介して、第1のセンシング情報を第1のSoCのARMに送信する。
【0034】
104において、前記第1のSoCのARMが前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUに送信する。
【0035】
本ステップでは、第1のSoCのARMが第1のセンシング情報に基づいて環境に対してモデル化などをし、決定アルゴリズムを利用して第1のセンシング情報を処理し、第1の決定情報を得た後にMCUに送信する。MCUは該第1の決定情報を受信した後に、該第1の決定情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって実行機構が該制御命令に基づいて自動運転をする。
【0036】
本願の実施例によるフィールドプログラマブルゲートアレイFPGAベースの自動運転方法は、車載制御ユニットに適用され、該車載制御ユニットにはMCU及びFPGAによってARMと集積的に配置されていることで実現された第1のSoCが含まれており、車載制御ユニットが自動運転自動車に配置されており、自動運転中には、第1のSoCのFPGAが車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、第1のSoCのARMへ該第1のセンシング情報を送信し、第1のSoCのARMが該第1のセンシング情報を処理して第1の決定情報を得てMCUに送信し、最後にMCUが該第1の決定情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって実行機構が該制御命令に基づいて自動運転をする。該過程では、第1のSoC がFPGAによってARMと集積的に配置されており、FPAGとARMとによってセンサデータを処理した後にMCUに送信し、MCUの負担を軽減する。
【0037】
図2を再び参照されたい。本願の実施例において、第1のSoCのARMが第1のセンシング情報を処理し、第1の決定情報を得て前記MCUに送信するとき、該第1のSoCのARMはさらに、レーダデータを受信し、第1のセンシング情報とレーダデータとを融合し、それから融合された第1のセンシング情報とレーダデータとを処理し、第1の決定情報を得てMCUに送信する。該過程では、第1のSoCのARMが第1のSoCのFPGAによって送信された第1のセンシング情報を受信した後に、該第1のセンシング情報と他のセンサによって送信されたデータとを集約して融合した後に融合データを得て、融合データを利用して環境モデリングと決定操作を行い、第1の決定情報を得た後にMCUに送信する。MCUが該第1の決定情報を受信した後に、該第1の決定情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって
実行機構が該制御
命令に基づいて自動運転をする。そのうち、センサは超音波レーダ、ミリ波レーダ、レーザレーダなどを含み、相応的に、センサによって送信されたデータは超音波レーダデータ、ミリ波レーダデータ、レーザレーダデータのうちの少なくとも1つを含む。
【0038】
図4は、本願の実施例によるもう1つの車載制御ユニットのアーキテクチャ概略図である。
図4を参照されたい。本願の実施例による車載制御ユニットは、上記
図2のうえで、さらに、第2のSoCを含み、該第2のSoCがFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置されている。自動運転中には、車載カメラは、収集したビデオデータを第1のSoCのFPGAに送信する以外に、該ビデオデータを第2のSoCのFPGAに送信する。第2のSoCのFPGAはビデオデータを受信した後に、第2のニューラルネットワークアルゴリズムを利用して該ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得てFPGA内部バスを介して、該第2のセンシング情報を第2のSoCのARMに送信する。第2のSoCのARMは第2のセンシング情報を受信した後に、該第2のセンシング情報を処理し、第2の決定情報を得てMCUに送信する。このようにすると、MCUは第1のSoCのARMによって送信された第1の決定情報と第2のSoCによって送信された第2の決定情報とを受信するようになる。MCUは該2つの決定情報に対して比較と分析をし、その中から適切な計画情報を選出し、選出された計画情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって
実行機構が該制御
命令に基づいて自動運転をする。
【0039】
上記
図4の実施例において、第1のSoCのFPGAが第1のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得る。第2のSoCのFPGAが第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得る。第1のニューラルネットワークアルゴリズムと第2のニューラルネットワークアルゴリズムとは、互いに異なるニューラルネットワークアルゴリズムである。例えば、第1のニューラルネットワークアルゴリズムは畳み込みニューラルネットワークアルゴリズムであり、第2のニューラルネットワークアルゴリズムはBpアルゴリズムなどである。また、例えば、第1のニューラルネットワークアルゴリズムは時間遅延ネットワークアルゴリズムであり、第2のニューラルネットワークアルゴリズムはResNetニューラルネットワークアルゴリズムなどである。
【0040】
本願の実施例において、第1のSoC、第2のSoC及びMCUを介して巨大な処理能力を得た高集積の車載制御ユニットアーキテクチャは、第1のSoCのFPGAと第2のSoCのFPGAとを利用してビデオデータに対してニューラルネットワークアルゴリズムの計算を行い、かつFPGAのそれぞれがビデオデータを計算して得られたセンシング情報は対応するSoCのARMに送信され、ARMによってセンシング情報とレーダデータとを融合するため、本願の実施例による車載制御ユニットはより強力な処理能力を備えられるようになった。それに、自動車電子製品が必要する機能安全の観点から見ると、第1のSoCと第2のSoCとを利用してデュアルSoCを実現し、これにより異種冗長構造を実現し、即ち、第1のSoCのFPGAと第2のSoCのFPGAとがそれぞれ異なるニューラルネットワークアルゴリズムを採ってビデオデータを処理することは、車載制御ユニットの機能安全を確保するのみならず、また一次バックアップ機能として使用できる。
【0041】
図4を再び参照されたい。本願の実施例による車載制御ユニットはさらに、第1の同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory、SDRAM)と第1のフラッシュメモリ(Flash)とを含んでもよく、該第1のSDRAMが第1のSoCと接続され、第1のFlashが第1のSoCと接続される。同様に、本願の実施例による車載制御ユニットはさらに、第2の同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory、SDRAM)と第2のフラッシュメモリ(Flash)を含んでもよく、該第2のSDRAMが第2のSoCと接続され、第2のFlashが第2のSoCと接続される。該アーキテクチャに基づき、自動運転中には、ECUが起動されると、第1のSoCが第1のFlashからプログラムをロードし、第2のSoCが第2のFlashからプログラムをロードし、プログラムロードが完成されると、車載
カメラおよび他のセンサがデータを入力するように待機する。車載カメラによって収集されたビデオデータに対し、第1のSoCのFPGAが第1のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得る。第2のSoCのFPGAが第2のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得る。第1のセンシング情報が第1のSoCのFPGAによって第1のSoCのARMに送信され、該第1のSoCのARMが第1のセンシング情報と様々なレーダの検出データを融合し、第1の融合データを得て、該第1の融合データを利用して環境をモデル化し、それから決定アルゴリズムに基づいて第1の決定情報を生成してイーサネットスイッチチップを介してMCUに送信する。第2のセンシング情報が第2のSoCのFPGAによって第2のSoCのARMに送信され、該第2のSoCのARMが第2のセンシング情報と様々なレーダの検出データとを融合し、第2の融合データを得て、該第2の融合データを利用して環境をモデル化し、それから決定アルゴリズムに基づいて第2の決定情報を生成してイーサネットスイッチチップを介してMCUに送信する。MCUは第1の決定情報と第2の決定情報とを受信した後に、該2つの決定情報に対して分析と比較をし、適切な決定情報を選出し、選出された決定情報に基づいて制御命令を生成し、
車両制御インタフェースを介して制御命令を実行機構に送信し、実行機構によって制御命令に基づいて自動運転をする。
【0042】
図5は、本願の実施例による1つの自動運転装置の構造概略図である。本実施例にかかる自動運転装置は車載制御ユニットであってもよく、車載制御ユニット内部に適用するチップであってもよい。該自動運転装置は、上記実施例において車載制御ユニットの機能を実行するために使用されることができる。
図5に示すように、該自動運転装置100は、第1のシステムオンチップSoCモジュール11とマイクロコントロールユニットMCUモジュール12とを含んでもよく、前記第1のSoCモジュール11がFPGAによってアドバンスト縮小命令セットマシンARMと集積的に配置されており、前記車載制御ユニットが自動運転車両に配置されており、前記第1のSoCモジュール11が第1のFPGAユニット111と第1のARMユニット112とを含み、
前記第1のFPGAユニット111が、車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、前記第1のARMユニット112へ前記第1のセンシング情報を送信するためのものである。
前記第1のARMユニット112が、前記第1のセンシング情報を処理し、第1の決定情報を得て前記MCUモジュール12に送信するためのものである。
【0043】
1つの実行可能な設計において、前記第1のARMユニット112は、具体的に、レーダデータを受信し、前記第1のセンシング情報と前記レーダデータとを融合し、融合された前記第1のセンシング情報と前記レーダデータとを処理し、前記第1の決定情報を得て前記MCUに送信するためのものである。
【0044】
本願の実施例による自動運転装置は、車載制御ユニットに適用され、該自動運転装置にはMCUモジュールおよび第1のSoCモジュールが含まれており、該第1のSoCモジュールが第1のFPGAユニットと第1のARMユニットとを含み、自動運転中には、第1のFPGAユニットが車載カメラによって送信されたビデオデータを受信し、第1のニューラルネットワークアルゴリズムを利用してビデオデータに対して視覚的センシングを行い、第1のセンシング情報を得て、第1のARMユニットへ該第1のセンシング情報を送信し、第1のARMユニットが該第1のセンシング情報を処理して第1の決定情報を得てMCUモジュールに送信し、最後にMCUモジュールが該第1の決定情報に基づいて制御命令を生成して対応する実行機構に送信し、これによって実行機構が該制御命令に基づいて自動運転をする。該過程では、第1のSoCがFPGAによってARMと集積的に配置されており、FPAGとARMとを介してセンサデータを処理した後にMCUに送信し、MCUの負担を軽減する。
【0045】
図6は、本願の実施例によるもう1つの自動運転装置の構造概略図である。本実施例による自動運転装置100は、上記
図5を基礎として、
第2のSoCモジュール13をさらに含み、前記第2のSoCモジュール13が第2のFPGAユニット131と第2の
ARMユニット132とを含み、
前記第2のFPGAユニット131が、前記車載カメラによって送信された前記ビデオデータを受信し、第2のニューラルネットワークアルゴリズムを利用して前記ビデオデータに対して視覚的センシングを行い、第2のセンシング情報を得て、前記第2のARMユニット132へ前記第2のセンシング情報を送信するためのものであり、
前記第2のARMユニット132が、前記第2のセンシング情報を処理し、第2の決定情報を得て前記MCUに送信するためのものであり、
前記MCUモジュール12が、前記第1の決定情報と前記第2の決定情報とに基づき、制御命令を生成するためのものである。
【0046】
本願の実施例はさらに、記憶媒体を提供し、前記記憶媒体にはコンピュータ実行命令が含まれ、前記コンピュータ実行命令が、プロセッサによって実行されるとき、上記に説明したフィールドプログラマブルゲートアレイFPGAベースの自動運転方法を実現するためのものである。
【0047】
上記の実施例において、説明されたデバイスと方法は、他の方式で実現されることができると理解されるべきである。例えば、以上説明したデバイスの実施例は例示的なものにすぎず、例えば、前記モジュールの分割は論理機能上の分割にすぎず、実際に実現する際に別の形態で分割してもよく、例えば、複数のモジュールを別のシステムに組み合わせもしくは集積させたり、又は一部の特徴を反映させなかったり、実行しなかったりしてもよい。また、表示又は検討した互いの結合又は直接的な結合又は通信接続は、いくつかのインタフェース、装置又はモジュールを介した間接的結合又は通信接続であってもよく、電気的形態、機械的形態又はその他の形態であってもよい。
【0048】
前記分離される部品として説明されるモジュールは、物理的に分離されるものでもよければ、分離されないものであってもよい。モジュールとして示される部品は、物理的なモジュールであってもよいが、物理的なモジュールでなくてもよい。即ち、同一の場所に設けられるものであってもよいが、複数のネットワークユニットに配置されるものであってもよい。実際の必要に応じて、モジュールの一部またはすべてを選択して本実施例の解決手段の目的を達成することができる。
【0049】
また、本願の各実施例において、各機能モジュールは1つの処理モジュールに集積されるか、各モジュールが単独で物理的存在するか、2つ以上のモジュールが1つのユニットに集積されてもよい。上記モジュールによって集積されたユニットはハードウェアの形で実現されてもよいし、ハードウェアとソフトウェアを加える機能モジュールの形で実現されてもよい。
【0050】
ソフトウェア機能モジュールの形で実現された集積的な上記モジュールは、1つのコンピュータ読み取り可能な記憶媒体に記憶されることができる。上記ソフトウェア機能モジュールは、1つの記憶媒体に記憶され、1台の電子デバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスなどであってよい)又はプロセッサ(processor)が本願の各実施例に記載の方法の一部のステップを実行するようにするためのいくつかの命令を含む。
【0051】
上記プロセッサは中央処理ユニット(central processing unit、CPU)であってもよく、他の汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application specific integrated circuit、ASIC)などであってもよいことが理解されるべきである。汎用プロセッサはマイクロプロセッサであってもよく、又は該プロセッサは任意の従来のプロセッサなどであってもよい。本願に開示された方法を組み合わせるステップは、ハードウェアプロセッサによる実行完了、又はプロセッサにおけるハードウェア及びソフトウェアモジュールの組み合わせによる実行完了と直接具体化されることができる。
【0052】
メモリは高速ランダムアクセスメモリ(RAM)を含んでよく、さらに不揮発性記憶NVM、例えば少なくとも1つの磁気ディスクメモリを含んでよく、さらにUSBフラッシュドライブ、モバイルハードディスクドライブ、リードオンリーメモリ、磁気ディスク又はコンパクトディスクなどであってもよい。
【0053】
バスは、業界標準アーキテクチャ(industry standard architecture、ISA)バス、ペリフェラルコンポーネント(peripheral component、PCI)バス又は拡張された業界標準アーキテクチャ(extended industry standard architecture、EISA)バスなどであってよい。バスはアドレスバス、データバス、コントロールバスなどに分けられることができる。表記を容易にするために、本願の図面におけるバスは1本のバス又は1種のバスのみに限定されない。
【0054】
上記記憶媒体は任意のタイプの揮発性又は不揮発性記憶機器またはそれらの組み合わせで実現されてよく、例えばスタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク又はコンパクトディスクであってよい。記憶媒体は汎用又は専用のコンピュータがアクセス可能な任意の利用可能な媒体であってもよい。
【0055】
例示的な記憶媒体は、プロセッサに結合されており、これによりプロセッサが該記憶媒体から情報を読み取り、該記憶媒体に情報を書き込むことができる。当然ながら、記憶媒体はプロセッサの構成部分であってもよい。プロセッサ及び記憶媒体は特定用途向け集積回路(application specific integrated circuits、ASIC)に配置されてもよい。当然ながら、プロセッサと記憶媒体は分離された構成要素として端末又はサーバに存在してもよい。
【0056】
上記実施例において、そのすべて又は一部は、ソフトウェア、ハードウェア、ファームウェア、または、それらの任意の組み合わせによって実現することができる。ソフトウェアを使用して実現する場合、すべて又は一部はコンピュータプログラム製品の形で実現できる。コンピュータプログラム製品は、1つ又は複数のコンピュータ命令を含む。コンピュータプログラム命令のロードと実行がコンピュータでされるとき、本願の実施例によるプロセス又は機能のすべて又は一部が構成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または、他のプログラム可能な装置であってもよい。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されるか、または、1つのコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送することができ、例えば、コンピュータ命令は、1つのウェブサイト、コンピュータ、サービス又はデータセンターから別のウェブサイト、コンピュータ、サービス又はデータセンターに有線(例えば、同軸ケーブル、光ファイバー、デジタル加入者線(digital subscriber line、DSL))、または、無線(例えば、赤外線、無線、マイクロウェイブなど)で伝送できる。コンピュータ可読記憶媒体は、アクセス可能な任意の利用可能な媒体、または、1つ又は複数の利用可能な媒体によって集積されたサービス、データセンターなどを含むデータ記憶機器であってもよい。利用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、磁気テープ)、光学媒体(例えば、DVD)、または、半導体媒体(例えば、ソリッドステートディスクSolid State Disk、SSD)などであってもよい。
【0057】
本明細書における「複数」という用語は、2つ以上を指す。本明細書の「及び/又は」という用語は、関連する対象を説明する関連関係にすぎず、3つの関係が存在すると表すことができ、例えば、A及び/又はBは、Aが単独で存在する、AとBが同時に存在する、Bが単独で存在するという3つの状況を表すことができる。また、本明細書の「/」という文字は一般的に、前後関連の対象が「又は」という関係であることを表し、式では、「/」という文字は、前後関連の対象が「除算」関係であることを表す。
【0058】
当業者であれば、上記各方法の実施例を実現するすべて又は一部のステップはプログラムコマンドに関連するハードウェアにより完了することができると理解されるべきである。前述したプログラムはコンピュータ読み取り可能な記憶媒体に記憶することができる。該プログラムが実行されるとき、上記各方法の実施例を含むステップを実行する。前述した記憶媒体は、ROM、RAM、磁気ディスク又はコンパクトディスクなどのプログラムコードが記憶できる様々な媒体を含む。
【0059】
最後に説明すべきなのは、以上の各実施例は、本願の技術的解決手段を説明するためのものだけであり、これを制限するものではなく、前述の各実施例を参照しながら本願を詳細に説明したが、当業者であれば、依然として前述の各実施例に記載の技術的解決手段を修正するか、またはそのうちの一部又はすべての技術的特徴に対して等価置換を行うことができ、これらの修正又は置換は、対応する技術的解決手段の本質を本願の各実施例の技術的解決手段の範囲から逸脱しないと理解すべきである。