(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】自動運転のためのデータパイプラインおよび深層学習システム
(51)【国際特許分類】
G06T 7/00 20170101AFI20221115BHJP
【FI】
G06T7/00 350C
G06T7/00 650
(21)【出願番号】P 2020570440
(86)(22)【出願日】2019-03-20
(86)【国際出願番号】 US2019023249
(87)【国際公開番号】W WO2019245618
(87)【国際公開日】2019-12-26
【審査請求日】2021-02-01
(32)【優先日】2018-06-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】510192916
【氏名又は名称】テスラ,インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ウヴァロフ,ティモフェイ
(72)【発明者】
【氏名】トリパシ,ブリジェシュ
(72)【発明者】
【氏名】ファインスタイン,エフゲニー
【審査官】松浦 功
(56)【参考文献】
【文献】特開2017-076371(JP,A)
【文献】特開2007-265292(JP,A)
【文献】特開2011-008685(JP,A)
【文献】特開2016-006626(JP,A)
【文献】ブラックハット変換と高次局所自己相関特徴に基づく眼底血管の自動抽出,映像情報メディア学会技術報告,(一社)映像情報メディア学会,2016年08月19日,第40巻,第27号,pp. 27~30
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06T 1/00
G08G 1/16
G06V 10/00 -20/90
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
方法であって、
車両のセンサを使用してキャプチャされた画像を受け取るステップと、
前記受け取られた画像を複数のコンポーネント画像に分解するステップと
結果を決定するために、人工ニューラルネットワークの複数の層の異なる層への異なる入力として、前記複数のコンポーネント画像の各コンポーネント画像を提供するステップと、
少なくとも部分的に前記車両を自律的に操作するために、前記人工ニューラルネットワークの前記結果を使用するステップと、を含
み、
前記複数のコンポーネント画像のうちの少なくとも1つは、前記複数のコンポーネント画像の各コンポーネント画像を前記人工ニューラルネットワークの前記複数の層の前記異なる層に提供する前に前処理される、方法。
【請求項2】
前記センサは高ダイナミックレンジカメラである、請求項1に記載の方法。
【請求項3】
前記センサは、カメラセンサ、レーダセンサ、超音波センサ、またはLiDARセンサである、請求項1に記載の方法。
【請求項4】
前記受け取られた画像を前記複数のコンポーネント画像に分解するステップは、ハイパスフィルタまたはローパスフィルタを使用するステップを含む、請求項1に記載の方法。
【請求項5】
前記受け取られた画像を前記複数のコンポーネント画像に分解するステップは、ハイパスフィルタ、バンドパスフィルタ、またはローパスフィルタを使用するステップを含む、請求項1に記載の方法。
【請求項6】
前記受け取られた画像を前記複数のコンポーネント画像のうちの少なくとも1つに分解するために、グラフィックス処理ユニットが使用される、請求項1に記載の方法。
【請求項7】
前記受け取られた画像を前記複数のコンポーネント画像のうちの少なくとも1つに分解するために、トーンマッパプロセッサが使用される、請求項1に記載の方法。
【請求項8】
前記複数のコンポーネント画像は、ハイパスデータコンポーネントおよびローパスデータコンポーネントを含む、請求項1に記載の方法。
【請求項9】
前記ハイパスデータコンポーネントは第1の画像プリプロセッサを使用して分解され、前記ローパスデータコンポーネントは第2の画像プリプロセッサを使用して分解される、請求項8に記載の方法。
【請求項10】
前記第1の画像プリプロセッサおよび前記第2の画像プリプロセッサは異なるプロセッサである、請求項9に記載の方法。
【請求項11】
前記ローパスデータコンポーネントは、前記受け取られた画像からダウンサンプリングされる、請求項8に記載の方法。
【請求項12】
前記ローパスデータコンポーネントは、前記ハイパスデータコンポーネントよりも低い解像度である、請求項8に記載の方法。
【請求項13】
前記複数のコンポーネント画像のそれぞれは、前記受け取られた画像よりも低いビット深度を有する、請求項1に記載の方法。
【請求項14】
前記受け取られた画像は、前記受け取られた画像を前記複数のコンポーネント画像に分解する前に前処理される、請求項1に記載の方法。
【請求項15】
前記前処理は、圧縮、ノイズ除去、デモザイキング、局所コントラスト強調、ゲイン調整、または閾値化の1つ以上を実行するステップを含む、請求項
1に記載の方法。
【請求項16】
前記複数のコンポーネント画像は、特徴およびエッジデータコンポーネントならびにグローバルデータコンポーネントを含む、請求項1に記載の方法。
【請求項17】
前記特徴およびエッジデータコンポーネントは、前記人工ニューラルネットワークの第1の層に提供される、請求項
16に記載の方法。
【請求項18】
コンピュータに、
車両のセンサを使用してキャプチャされた画像を受け取り、
前記受け取られた画像を複数のコンポーネント画像に分解し、
結果を決定するために、人工ニューラルネットワークの複数の層の異なる層への異なる入力として、前記複数のコンポーネント画像の各コンポーネント画像を提供し、
少なくとも部分的に前記車両を自律的に操作するために、前記人工ニューラルネットワークの前記結果を使用する、
処理を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記複数のコンポーネント画像のうちの少なくとも1つは、前記複数のコンポーネント画像の各コンポーネント画像を前記人工ニューラルネットワークの前記複数の層の前記異なる層に提供する前に前処理される、記録媒体。
【請求項19】
システムであって、
車両のセンサと、
車両制御モジュールと、
1つ以上の画像信号プロセッサであって、
前記センサを使用してキャプチャされた画像を受け取り、
前記受け取られた画像を複数のコンポーネント画像に分解する、ように構成された、1つ以上の画像信号プロセッサと、
人工知能プロセッサと、
前記人工知能プロセッサと結合されたメモリであって、実行されたときに前記人工知能プロセッサに、
結果を決定するために、人工ニューラルネットワークの複数の層の異なる層への異なる入力として、前記複数のコンポーネント画像の各コンポーネント画像を受け取らせ、
少なくとも部分的に前記車両を自律的に操作するために、前記人工ニューラルネットワークの前記結果を前記車両制御モジュールに提供させる、命令を前記人工知能プロセッサに提供するように構成される、メモリと、を含
み、
前記複数のコンポーネント画像のうちの少なくとも1つは、前記複数のコンポーネント画像の各コンポーネント画像を前記人工ニューラルネットワークの前記複数の層の前記異なる層に提供する前に前処理される、システム。
【請求項20】
方法であって、
車両のセンサを使用してキャプチャされた画像を受け取るステップと、
前記受け取られた画像を複数のコンポーネント画像に分解するステップと
結果を決定するために、人工ニューラルネットワークの複数の層の異なる層への異なる入力として、前記複数のコンポーネント画像の各コンポーネント画像を提供するステップと、
少なくとも部分的に前記車両を自律的に操作するために、前記人工ニューラルネットワークの前記結果を使用するステップと、を含み、
前記複数のコンポーネント画像は、特徴およびエッジデータコンポーネントならびにグローバルデータコンポーネントを含み、前記特徴およびエッジデータコンポーネントは、前記人工ニューラルネットワークの第1の層に提供される、方法。
【発明の詳細な説明】
【背景技術】
【0001】
自動運転を実施するために使用される深層学習システムは、通常、入力として、キャプチャされたセンサデータに依存している。従来の学習システムでは、キャプチャされたデータをセンサ形式から学習システムの初期入力層と互換性のある形式に変換することにより、キャプチャされたセンサデータは深層学習システムと互換性があるようにされる。この変換には、元のセンサデータの信号忠実度を低下させる可能性のある圧縮とダウンサンプリングが含まれる場合がある。さらに、センサの変更は、新しい変換プロセスを必要とする場合がある。したがって、キャプチャされたセンサデータからの信号情報を最大化し、深層学習分析のために深層学習ネットワークに高レベルの信号情報を提供できる、カスタマイズされたデータパイプラインが必要である。
【図面の簡単な説明】
【0002】
本発明の様々な実施形態は、以下の詳細な説明および添付の図面に開示されている。
【0003】
【
図1】深層学習パイプラインを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。
【0004】
【
図2】深層学習パイプラインを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。
【0005】
【
図3】コンポーネントデータを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。
【0006】
【
図4】ハイパスおよびローパスコンポーネントデータを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。
【0007】
【
図5】ハイパス、バンドパス、およびローパスコンポーネントデータを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。
【0008】
【
図6】自動運転のための深層学習システムの実施形態を示すブロック図である。
【発明を実施するための形態】
【0009】
本発明は、プロセスとして装置、システム、物質の組成、コンピュータ可読記憶媒体上に具現化されたコンピュータプログラム製品、および/または例えば、プロセッサに結合されたメモリに格納されたおよび/またはメモリによって提供された命令を実行するように構成されたプロセッサのようなプロセッサを含む多くの方法で実施することができる。本明細書では、これらの実装、または本発明がとり得る他の任意の形態は、技術と呼ばれ得る。一般に、開示されたプロセスのステップの順序は、本発明の範囲内で変更することができる。特に明記しない限り、タスクを実行するように構成されていると説明されるプロセッサまたはメモリなどのコンポーネントは、所与の時間にタスクを実行するように一時的に構成される一般的なコンポーネント、またはタスクを実行するように製造される特定のコンポーネントとして実装され得る。本明細書で使用される場合、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1つ以上のデバイス、回路、および/または処理コアを指す。
【0010】
本発明の1つ以上の実施形態の詳細な説明が、本発明の原理を説明する添付の図とともに以下に提供される。本発明は、そのような実施形態に関連して説明されるが、本発明は、任意の実施形態に限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、多数の代替物、修正、および同等物を包含する。本発明の完全な理解を提供するために、以下の説明には多くの具体的な詳細が記載されている。これらの詳細は、例示の目的で提供されており、本発明は、これらの特定の詳細の一部または全部がなくても、特許請求の範囲に従って実施することができる。明確にするために、本発明に関連する技術分野で知られている技術資料は、本発明が不必要に不明瞭にならないように、詳細に説明されていない。
【0011】
自動運転のための深層学習ネットワークに個別のコンポーネントとしてセンサデータを抽出して提供するデータパイプラインが開示されている。一部の実施形態では、自動運転は、深層学習ネットワークとセンサから受け取られた入力データとを使用して実装される。例えば、車両に取り付けられたセンサは、車両の制御応答を決定するために、車両の周囲環境の視覚、レーダ、超音波データなどのリアルタイムセンサデータをニューラルネットワークに提供する。一部の実施形態では、ネットワークは、複数の層を使用して実装される。センサデータは、データの信号情報に基づいて、2つ以上の異なるデータコンポーネントに抽出される。例えば、特徴および/またはエッジデータは、グローバルイルミネーションデータなどのグローバルデータとは別に、異なるデータコンポーネントに抽出され得る。異なるデータコンポーネントは、対象となる関連データ、例えば、ディープラーニングネットワークによってエッジやその他の特徴を識別するために最終的に使用されるデータを保持する。一部の実施形態では、異なるデータコンポーネントは、特定のターゲット特徴を識別するために非常に関連性のあるデータを格納するが、それ自体は特徴を識別または検出しないコンテナとして機能する。異なるデータコンポーネントは、機械学習ネットワークの適切な段階で正確な特徴を確実に検出するためにデータを抽出する。次に、一部の実施形態では、異なるデータコンポーネントが前処理され、それらが含む特定の信号情報を強化することができる。データコンポーネントは、リソースを増加させ、計算効率を向上させるために、圧縮および/またはダウンサンプリングされ得る。次に、異なるデータコンポーネントは、システムの様々な層で深層学習システムに提供される。深層学習ネットワークは、抽出中に保持された信号情報を入力として使用して、データコンポーネントのターゲットデータ(エッジ、オブジェクトなど)に関連付けられた特徴を正確に識別および検出できる。例えば、特徴およびエッジデータはネットワークの第1の層に提供され、グローバルデータはネットワークの後の方の層に提供される。それぞれがそれぞれのターゲット信号情報を保持する異なるデータコンポーネントを抽出することにより、ネットワークはセンサデータをより効率的に処理する。ネットワークへの初期入力としてセンサデータを受け取る代わりに、ネットワークには、ネットワークの最も適切な層で最も有用な情報が提供される。一部の実施形態では、異なるデータコンポーネントは、それらの意図された目的のためにそれぞれのコンポーネントの画像解像度を最大限利用できるため、キャプチャされたセンサデータのより完全なバージョンがネットワークによって分析される。例えば、特徴およびエッジの入力では、特徴およびエッジデータの全体解像度、ビット範囲、ビット深度を利用できるが、グローバルイルミネーションの入力では、グローバルイルミネーションデータの全体解像度、ビット範囲、ビット深度を利用できる。
【0012】
一部の実施形態では、車両のセンサを使用してキャプチャされた画像が受け取られる。例えば、画像は高ダイナミックレンジの前向きカメラからキャプチャされる。別の例として、超音波データは横向きの超音波センサからキャプチャされる。一部の実施形態では、受け取られた画像は、複数のコンポーネント画像に分解される。例えば、特徴データは、キャプチャされた高ダイナミックレンジ画像から抽出される。別の例として、グローバルイルミネーションデータは、キャプチャされた高ダイナミックレンジ画像から抽出される。別の例として、画像は、ハイパス、ローパス、および/またはバンドパスフィルタを使用して分解され得る。一部の実施形態では、複数のコンポーネント画像の各コンポーネント画像は、結果を決定するために、人工ニューラルネットワークの複数の層の異なる層への異なる入力として提供される。例えば、畳み込みニューラルネットワークなどの人工ニューラルネットワークは、入力データを処理するための複数の層を含む。キャプチャされた画像から分解された様々なコンポーネント画像は、ニューラルネットワークの様々な層への入力として提示される。例えば、特徴データはネットワークの第1の層への入力として提示され、グローバルデータはネットワークの後の方の層(第3の層など)への入力として提示される。一部の実施形態では、人工ニューラルネットワークの結果は、車両を少なくとも部分的に自律的に操作するために使用される。例えば、人工ニューラルネットワークを使用した深層学習分析の結果は、車両のステアリング、ブレーキング、照明、および/または警告システムを制御するために使用される。一部の実施形態では、結果は、他の自動運転への応用の中でも、車両の速度を交通状況に自律的に一致させ、ナビゲーション経路をたどるように車両を操縦し、物体が検出されたときに衝突を回避し、車両を所望の場所に呼び出し、起こり得る衝突についてユーザに警告するために使用される。
【0013】
一部の実施形態では、車両には、データをキャプチャするための複数のセンサが取り付けられている。例えば、一部の実施形態では、8つのサラウンドカメラが車両に取り付けられ、最大250メートルの範囲で車両の周囲360度の視界を提供する。一部の実施形態では、カメラセンサは、広い前方カメラ、狭い前方カメラ、後方ビューカメラ、前向きのサイドカメラ、および/または後向きのサイドカメラを含む。一部の実施形態では、超音波およびレーダセンサを使用して、周囲の詳細をキャプチャする。例えば、硬い物体と柔らかい物体の両方を検出するために、12個の超音波センサが車両に取り付けられ得る。一部の実施形態では、前向きレーダを利用して、周囲環境のデータをキャプチャする。様々な実施形態では、レーダセンサは、大雨、霧、ほこり、および他の車両にもかかわらず、周囲の詳細をキャプチャすることができる。様々なセンサは車両周辺の環境をキャプチャするために使用され、キャプチャした画像は深層学習分析に提供される。
【0014】
センサからキャプチャされ、開示された深層学習システムを使用して分析されたデータを使用して、自動運転の機械学習結果が決定される。様々な実施形態では、機械学習の結果は、自動運転機能を実装するための車両制御モジュールに提供される。例えば、車両制御モジュールは、車両のステアリング、ブレーキング、警告システム、および/または照明を制御するために使用することができる。一部の実施形態では、車両は、他の自動運転への応用の中でも、道路をナビゲートし、車両の速度を交通状況に一致させ、車両を車線内に保ち、運転者の入力を必要とせずに自動的に車線を変更し、車両をある高速道路から別の高速道路に移行させ、目的地に近づいたときに高速道路から出て、車両を自動駐車し、駐車スポットとの間で車両を呼び出す。一部の実施形態では、自動運転機能は、より遅い交通の後ろにあるときに車両をより速い車線に移動させる機会を特定することを含む。一部の実施形態では、機械学習結果は、運転者の相互作用なしの自動運転が適切であるとき、およびそれを無効にする必要があるときを決定するために使用される。様々な実施形態では、機械学習結果は、運転者が車両を運転するのを支援するために使用される。
【0015】
一部の実施形態では、機械学習結果は、車両が自動的に駐車スポットを検索し、車両を駐車するセルフパーキングモードを実施するために使用される。一部の実施形態では、機械学習結果は、ユーザのカレンダーからの目的地を使用して車両をナビゲートするために使用される。様々な実施形態では、機械学習結果は、衝突回避および自動緊急ブレーキなどの自動運転安全機能を実施するために使用される。例えば、一部の実施形態では、深層学習システムは、車両に衝突する可能性のある物体を検出し、車両制御モジュールは、それに応じてブレーキをかける。一部の実施形態では、車両制御モジュールは、車両の横、前、または後ろの障害物とで起こり得る衝突について車両のユーザに警告する側面、前方、および/または後方の追突警告を実施するために深層学習分析を使用する。様々な実施形態では、車両制御モジュールは、とりわけ、衝突アラート、音声アラート、視覚アラート、および/または物理的アラート(振動アラートなど)などの警告システムを作動させて、ユーザに緊急事態または運転者の注意が必要であることを知らせることができる。一部の実施形態では、車両制御モジュールは、例えば、別の当事者に緊急事態を知らせるために、緊急応答呼び出し、テキストメッセージ、ネットワーク更新、および/または必要に応じて別の通信応答などの通信応答を開始することができる。一部の実施形態では、車両制御モジュールは、深層学習分析結果に基づいて、ハイ/ロービーム、ブレーキライト、室内灯、非常灯などを含む照明を調整することができる。一部の実施形態では、車両制御モジュールは、深層学習分析結果に基づいて、ホーンの使用、車両のサウンドシステムから再生されるオーディオ(例えば、音楽、電話など)の変更、サウンドシステムの音量の調整、音声アラートの再生、マイクロフォンの有効化などを含む、車両内または車両周辺のオーディオをさらに調整することができる。
【0016】
図1は、深層学習パイプラインを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。例えば、
図1のプロセスは、安全性を向上させ、事故のリスクを軽減するために、自動運転や運転者支援自動車の自動運転機能を実施するために使用することができる。一部の実施形態では、
図1のプロセスは、深層学習分析のためにセンサによってキャプチャされたデータを前処理する。センサデータを前処理することにより、深層学習分析に提供されるデータが強化され、車両を制御するためのより正確な結果が得られる。一部の実施形態では、前処理は、センサによってキャプチャされたデータと、深層学習のためのニューラルネットワークによって期待されるデータとの間のデータの不一致に対処する。
【0017】
101で、センサデータが受け取られる。例えば、センサデータは、車両に取り付けられた1つ以上のセンサによってキャプチャされる。一部の実施形態では、センサは、環境および/または他の車両に取り付けられ、データは遠隔で受け取られる。様々な実施形態では、センサデータは、画像のRGBまたはYUVチャネルなどの画像データである。一部の実施形態では、センサデータは、高ダイナミックレンジカメラを使用してキャプチャされる。一部の実施形態では、センサデータは、レーダ、LiDAR、および/または超音波データである。様々な実施形態では、LiDARデータは、レーザ光を使用してキャプチャされたデータであり、光検出測距、ならびにレーザ画像検出測距と呼ばれる技術を含み得る。様々な実施形態では、センサデータのビット深度は、深層学習分析のためのニューラルネットワークのビット深度を超える。
【0018】
103で、データの前処理がセンサデータに対して実行される。一部の実施形態では、1つ以上の前処理パスが、センサデータに対して実行され得る。例えば、データは、ノイズを除去したり、位置合わせの問題やぶれを修正などしたりするために、最初に前処理され得る。一部の実施形態では、2つ以上の異なるフィルタリングパスがデータに対して実行される。例えば、ハイパスフィルタがデータに対して実行され得、ローパスフィルタがデータに対して実行され得る。一部の実施形態では、1つ以上のバンドパスフィルタが実行され得る。例えば、ハイパスおよびローパスに加えて、1つ以上のバンドパスがデータに対して実行され得る。様々な実施形態では、センサデータは、ハイパスデータセットおよびローパスデータセットなどの2つ以上のデータセットに分離される。一部の実施形態では、1つ以上のバンドパスデータセットも作成される。様々な実施形態では、異なるデータセットは、センサデータの異なるコンポーネントである。
【0019】
一部の実施形態では、データを前処理することによって作成された異なるコンポーネントは、特徴および/またはエッジコンポーネントならびにグローバルデータコンポーネントを含む。様々な実施形態では、特徴および/またはエッジコンポーネントは、センサデータに対してハイパスまたはバンドパスフィルタを実行することによって作成され、グローバルデータコンポーネントは、センサデータに対してローパスまたはバンドパスフィルタを実行することによって作成される。一部の実施形態では、特徴/エッジデータおよび/またはグローバルデータを抽出するために、1つ以上の異なるフィルタ技術を使用することができる。
【0020】
様々な実施形態では、センサデータの1つ以上のコンポーネントが処理される。例えば、ハイパスコンポーネントは、画像データからノイズを除去する、および/または画像データの局所コントラストを増強することによって処理することができる。一部の実施形態では、ローパスコンポーネントは、圧縮および/またはダウンサンプリングされる。様々な実施形態では、異なるコンポーネントは、圧縮および/またはダウンサンプリングされる。例えば、コンポーネントは、機械学習モデルの層にデータを入力するためにデータのサイズおよび/または解像度を調整するために、必要に応じて圧縮、サイズ変更、および/またはダウンサンプリングされ得る。一部の実施形態では、センサデータのビット深度が調整される。例えば、20ビットまたは別の適切なビット深度でデータをキャプチャするカメラのデータチャネルは、8ビットの機械学習モデル用のチャネルが準備するために8ビットに圧縮または量子化される。一部の実施形態では、1つ以上のセンサは、12ビット、16ビット、20ビット、32ビットのビット深度、または深層学習ネットワークによって使用されるビット深度よりも大きい別の適切なビット深度でデータをキャプチャする。
【0021】
様々な実施形態では、103で実行される前処理は、画像プリプロセッサによって実行される。一部の実施形態では、画像プリプロセッサは、グラフィックス処理ユニット(GPU)、中央処理装置(CPU)、人工知能(AI)プロセッサ、画像信号プロセッサ、トーンマッパプロセッサ、または他の同様のハードウェアプロセッサである。様々な実施形態では、異なる画像プリプロセッサは、異なるデータコンポーネントを並行して抽出および/または前処理するために使用される。
【0022】
105で、深層学習分析が実行される。例えば、深層学習分析は、人工ニューラルネットワークなどの機械学習モデルを使用して実行される。様々な実施形態では、深層学習分析は、103で処理されたセンサデータを入力として受け取る。一部の実施形態では、処理されたセンサデータは、ハイパスデータコンポーネントおよびローパスデータコンポーネントなどの複数の異なるコンポーネントとして105で受け取られる。一部の実施形態では、異なるデータコンポーネントは、機械学習モデルの異なる層への入力として受け取られる。例えば、ニューラルネットワークは、ネットワークの第1の層への初期入力としてハイパスコンポーネントを受け取り、ネットワークの次の層への入力としてローパスコンポーネントを受け取る。
【0023】
107で、深層学習分析の結果が車両制御に提供される。例えば、結果は、車両の速度および/またはステアリングを調整するために車両制御モジュールに提供され得る。様々な実施形態では、結果は、自動運転機能を実施するために提供される。例えば、結果は、車両を操舵することによって回避されるべき物体を示している可能性がある。別の例として、結果は、ブレーキングおよび車線での車両の位置を変更することによって回避されるべき合流車を示している可能性がある。
【0024】
図2は、深層学習パイプラインを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。例えば、
図2のプロセスは、センサデータを前処理し、センサデータから画像コンポーネントを抽出し、抽出した画像コンポーネントを前処理し、深層学習分析のためにコンポーネントを提供するために利用することができる。深層学習分析の結果は、安全性を向上させ、事故のリスクを軽減するために自動運転を実施するために使用することができる。一部の実施形態では、
図2のプロセスは、
図1のプロセスを実行するために使用される。一部の実施形態では、ステップ201は、
図1の101で実行され、ステップ203、205、207、および/または209は、
図1の103で実行され、および/またはステップ211は、
図1の105および/または107で実行される。センサデータの抽出されたコンポーネントを処理することにより、機械学習モデルに提供される処理済みデータが拡張され、その結果、拡張されていないデータを使用するより深層学習分析から優れた結果が得られる。示される例では、深層学習分析の結果が車両制御に使用されている。
【0025】
201で、センサデータが受け取られる。様々な実施形態では、センサデータは、高ダイナミックレンジカメラなどのセンサからキャプチャされた画像データである。一部の実施形態では、センサデータは、1つ以上の異なるセンサからキャプチャされる。一部の実施形態では、画像データは、データの忠実度を高めるために、12ビット以上のビット深度を使用してキャプチャされる。
【0026】
203で、データが前処理される。一部の実施形態では、データは、画像信号プロセッサ、グラフィックス処理ユニット(GPU)、トーンマッパプロセッサ、中央処理装置(CPU)、人工知能(AI)プロセッサ、または他の同様のハードウェアプロセッサなどの画像前処理装置を使用して前処理される。様々な実施形態では、線形化、デモザイキング、および/または別の処理技術が、キャプチャされたセンサデータに対して実行され得る。様々な実施形態では、前処理は、キャプチャされたデータの忠実度を高めるために、および/または後続のステップによるエラーの導入を減らすために、高解像度センサデータに対して実行される。一部の実施形態では、前処理ステップは任意である。
【0027】
205で、1つ以上の画像コンポーネントが抽出される。一部の実施形態では、2つの画像コンポーネントが抽出される。例えば、センサデータの特徴/エッジデータコンポーネントが抽出され、センサデータのグローバルデータコンポーネントが抽出される。一部の実施形態では、センサデータのハイパスコンポーネントおよびローパスコンポーネントが抽出される。一部の実施形態では、1つ以上の追加のバンドパスコンポーネントがセンサデータから抽出される。様々な実施形態では、ハイパス、ローパス、および/またはバンドパスフィルタは、センサデータの異なる成分を抽出するために使用される。一部の実施形態では、画像成分は、トーンマッパを使用して抽出される。一部の実施形態では、グローバルデータおよび/またはローパスコンポーネントデータは、ビニングまたは同様の技術を使用してセンサデータをダウンサンプリングすることによって抽出される。様々な実施形態では、抽出は、ターゲット信号情報を画像データコンポーネントとして保持および保存するが、ターゲット情報に関連する特徴を実際に検出または識別することはない。例えば、エッジデータに対応する画像コンポーネントの抽出は、エッジを正確に識別するためのターゲット信号情報を有する画像成分をもたらすが、205で実行される抽出は、センサデータにおけるエッジの存在を検出しない。
【0028】
一部の実施形態では、機械学習ネットワークの第1の層のために抽出される画像データコンポーネントは、深層学習分析の第1の層の応答を保存するプロセスを使用して抽出される。例えば、第1の層の分析後に画像コンポーネントに対して実行される分析の結果が、画像コンポーネントに抽出される前に対応するセンサデータに対して実行される分析と同様になるように、第1の層に関連する信号情報が保存される。様々な実施形態では、結果は、5x5マトリックスフィルタと同じくらい小さいフィルタについて保存される。
【0029】
一部の実施形態では、抽出されたデータコンポーネントは、キャプチャされた画像の複数のチャネルを1つ以上のチャネルに結合することによって作成される。例えば、赤、緑、青のチャネルは、データコンポーネントの新しいチャネルを作成するために平均される。様々な実施形態では、抽出されたデータコンポーネントは、ソースキャプチャデータの1つ以上の異なるチャネル、および/または異なるセンサの1つ以上の異なるキャプチャ画像から構築され得る。例えば、複数のセンサからのデータを1つのデータコンポーネントに統合することができる。
【0030】
一部の実施形態では、ステップ203のプリプロセッサなどの画像プリプロセッサが、異なるコンポーネントを抽出するために使用される。一部の実施形態では、画像信号プロセッサが、異なる成分を抽出するために使用され得る。様々な実施形態では、グラフィックス処理ユニット(GPU)が、異なるコンポーネントを抽出するために使用され得る。一部の実施形態では、異なるプリプロセッサが異なるコンポーネントを抽出するために使用されるので、複数のコンポーネントが並行して抽出され得る。例えば、画像信号プロセッサはハイパスコンポーネントを抽出するために使用され得、GPUはローパスコンポーネントを抽出するために使用され得る。別の例として、画像信号プロセッサはローパスコンポーネントを抽出するために使用され得、GPUはハイパスコンポーネントを抽出するために使用され得る。一部の実施形態では、トーンマッパプロセッサが画像コンポーネント(ハイパスコンポーネントなど)を抽出するために使用され、並行してGPUが別個の画像コンポーネント(ローパスコンポーネントなど)を抽出するために使用される。一部の実施形態では、トーンマッパは、画像信号プロセッサの一部である。一部の実施形態では、並行して抽出を実行するために、同様のプリプロセッサの複数のインスタンスが存在する。
【0031】
207で、コンポーネントの前処理が実行される。一部の実施形態では、ステップ203および/または205のプリプロセッサなどの画像プリプロセッサが、1つ以上のコンポーネントを前処理するために使用される。一部の実施形態では、異なるプリプロセッサは異なるコンポーネントを前処理するために使用され、その結果、前処理は、並行して異なるコンポーネントに対して実行することができる。例えば、画像信号プロセッサはハイパスコンポーネントを処理するために使用され得、グラフィックス処理ユニット(GPU)はローパスコンポーネントを処理するために使用され得る。一部の実施形態では、トーンマッパプロセッサは、1つの画像コンポーネントを処理するために使用され、GPUは、並行して別個の画像コンポーネントを処理するために使用される。一部の実施形態では、並行して異なるコンポーネントを処理するために、同様のプリプロセッサの複数のインスタンスが存在する。
【0032】
様々な実施形態では、前処理は、画像コンポーネントデータのダウンサンプリングおよび/または圧縮を含む。一部の実施形態では、前処理は、コンポーネントデータからノイズを除去することを含む。一部の実施形態では、前処理は、キャプチャされたデータを20ビットから8ビットのデータフィールドに圧縮または量子化することを含む。一部の実施形態では、前処理は、画像コンポーネントのサイズをより低い解像度に変換することを含む。例えば、画像コンポーネントは、元のセンサ画像サイズの半分、4分の1、8分の1、16分の1、32分の1、64分の1、または別の適切なスケーリングであり得る。様々な実施形態では、画像コンポーネントは、機械学習モデルの入力層に適切なサイズに縮小される。
【0033】
209で、コンポーネントが深層学習ネットワークの適切なネットワーク層に提供される。例えば、異なるコンポーネントがネットワークの異なる層に提供され得る。一部の実施形態では、ネットワークは、複数の層を有するニューラルネットワークである。例えば、ニューラルネットワークの第1の層は、ハイパスコンポーネントデータを入力として受け取る。後続のネットワーク層の1つは、グローバルイルミネーションデータに対応するローパスコンポーネントデータを入力として受け取る。様々な実施形態では、205で抽出され、207で前処理された異なるコンポーネントは、ニューラルネットワークの異なる層で受け取られる。別の例として、特徴および/またはエッジデータコンポーネントは、人工ニューラルネットワークなどの深層学習ネットワークの第1の層への入力として提供される。グローバルデータは特徴および/またはエッジコンポーネントデータほどの精度を必要としないため、グローバルデータコンポーネントは、後続の層に提供され、かつデータの圧縮および/またはダウンサンプリングバージョンとして提供され得る。様々な実施形態では、グローバルデータは、情報を失うことなくより容易に圧縮され、ネットワークの後の方の層で提供され得る。
【0034】
一部の実施形態では、機械学習モデルは、複数の連続する層で構成され、1つ以上の後続の層が、前の層よりもサイズが小さいサイズ特性を有する入力データを受け取る。例えば、ネットワークへの第1の層は、キャプチャ画像サイズと同様の画像サイズを受け取ることができる。後続の層は、キャプチャ画像サイズの半分または4分の1の入力データを受け取ることができる。入力データサイズの削減により、後続の層の計算が削減され、深層学習分析の効率が向上する。センサ入力データを様々なコンポーネントとして様々な層で提供することにより、計算効率が向上する。ネットワークの前の方の層では、データ量とデータサイズが後続の層よりも大きいため、特に計算量を増やす必要がある。入力データがネットワークの前の層および/または207での前処理によって圧縮されているため、後続の層では計算がより効率的である可能性がある。
【0035】
211で、深層学習分析の結果が車両制御に提供される。例えば、処理された画像コンポーネントを使用する機械学習結果は、車両の動きを制御するために利用され得る。一部の実施形態では、結果は、車両制御動作に対応する。例えば、結果は車両の速度とステアリングに対応する場合がある。一部の実施形態では、結果は、車両の操縦を支援するために使用される車両制御モジュールによって受け取られる。一部の実施形態では、結果は、車両の安全性を改善するために利用される。様々な実施形態では、211で提供される結果は、209で提供されるコンポーネントに対して深層学習分析を実行することによって決定される。
【0036】
図3は、コンポーネントデータを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。示される例では、
図3のプロセスは、グローバルデータとは別のセンサデータから特徴およびエッジデータを抽出するために使用される。次に、2つのデータセットは、車両制御の結果を推測するために、異なる段階で深層学習ネットワークに供給される。2つのコンポーネントを分離し、それらを異なる段階で提供することにより、ネットワークの初期層は、計算リソースを初期エッジと特徴検出に割り当てることができる。一部の実施形態では、初期の段階は、道路、車線マーカ、障害物、車両、歩行者、交通標識などのオブジェクトの初期識別にリソースを割り当てる。グローバルデータはリソースをあまり消費しないため、後続の層はより計算効率の高い方法でグローバルデータを利用できる。機械学習は計算的でデータ集約型であり得るため、様々な段階で様々な画像コンポーネントを利用するデータパイプラインは、深層学習計算の効率を高め、分析に必要なデータリソース要件を削減するために利用される。一部の実施形態では、
図3のプロセスは、
図1および/または
図2のプロセスを実行するために使用される。一部の実施形態では、ステップ301は、
図1の101および/または
図2の201で実行され、ステップ303は、
図1の103および/または
図2の203で実行され、ステップ311および/または321は、
図1の103および/または
図2の205で実行され、ステップ313、323、および/または325は、
図1の103および/または
図2の207および209で実行され、ステップ315および/または335は、
図1の105および/または
図2の211で実行され、および/またはステップ337は、
図1の107および/または
図2の211で実行される。
【0037】
301で、センサデータが受け取られる。様々な実施形態では、センサデータは、車両の1つ以上のセンサによってキャプチャされたデータである。一部の実施形態では、センサデータは、
図1のステップ101および/または
図2のステップ201に関して説明したように受け取られる。
【0038】
303で、データの前処理が実行される。例えば、センサデータは、データを前処理することによって拡張される。一部の実施形態では、データは、例えば、ノイズ除去、位置合わせ、または他の適切なフィルタを実行することによってクリーンアップされる。様々な実施形態では、データは、
図1のステップ103および/または
図2のステップ203に関して説明したように前処理される。示される例では、処理はステップ311および321に続く。一部の実施形態では、311および321での処理は、センサデータの異なるコンポーネントを抽出および処理するために並行して実行される。一部の実施形態では、処理の各分岐(例えば、311で始まる分岐および321で始まる分岐)は、順次実行されるか、またはパイプライン化される。例えば、ネットワークの初期層のためのデータを準備するために、ステップ311から開始して処理が実行される。一部の実施形態では、前処理ステップは任意である。
【0039】
311で、特徴および/またはエッジデータがセンサデータから抽出される。例えば、特徴データおよび/またはエッジデータは、キャプチャされたセンサデータからコンポーネントデータに抽出される。一部の実施形態では、コンポーネントデータは、特徴および/またはエッジを識別するために、センサデータからの関連する信号情報を保持する。様々な実施形態では、抽出プロセスは、特徴および/またはエッジを識別および検出するために重要な信号情報を保存し、センサデータから特徴またはエッジを実際に識別または検出しない。様々な実施形態では、特徴および/またはエッジは、315および/または335での1つ以上の分析ステップ中に検出される。一部の実施形態では、抽出された特徴および/またはエッジデータは、元のキャプチャされたデータと同じビット深度を有する。一部の実施形態では、抽出されたデータは、特徴データ、エッジデータ、または特徴およびエッジデータの組み合わせである。一部の実施形態では、センサデータから特徴および/またはエッジデータを抽出するためにハイパスフィルタが使用される。様々な実施形態では、センサデータから特徴および/またはエッジデータを抽出するために、トーンマッパプロセッサが較正される。
【0040】
313で、前処理が特徴および/またはエッジデータに対して実行される。例えば、信号品質を改善するために、ノイズ除去フィルタがデータに適用され得る。別の例として、深層学習分析の前に特徴およびエッジデータを強調するために、局所コントラスト強調、ゲイン調整、閾値処理、ノイズフィルタリングなどの異なる前処理技術が適用され得る。様々な実施形態では、前処理は、より一般的な前処理技術をセンサデータ全体に適用するのではなく、データの特徴およびエッジ特性を強化するようにカスタマイズされる。一部の実施形態では、前処理は、抽出されたデータに対して圧縮および/またはダウンサンプリングを実行することを含む。一部の実施形態では、313での前処理ステップは任意である。
【0041】
315で、初期分析が、特徴および/またはエッジデータを使用して実行される。一部の実施形態では、初期分析は、ニューラルネットワークなどの機械学習モデルを使用する深層学習分析である。様々な実施形態では、初期分析は、ネットワークの第1の層への入力として特徴およびエッジデータを受け取る。一部の実施形態では、ネットワークの初期層は、キャプチャされた画像内の特徴および/またはエッジの検出を優先する。様々な実施形態では、深層学習分析は、畳み込みニューラルネットワークなどの人工ニューラルネットワークを使用して実行される。一部の実施形態では、分析は、人工知能(AI)プロセッサ上で実行される。
【0042】
321で、センサデータからグローバルデータが抽出される。例えば、グローバルデータは、キャプチャされたセンサデータからコンポーネントデータに抽出される。一部の実施形態では、グローバルデータは、グローバルイルミネーションデータに対応する。一部の実施形態では、抽出されたグローバルデータは、元のキャプチャされたデータと同じビット深度を有する。一部の実施形態では、センサデータからグローバルデータを抽出するためにローパスフィルタが使用される。様々な実施形態では、センサデータからグローバルデータを抽出するために、トーンマッパプロセッサが較正される。グローバルデータを抽出するために、ビニング、リサンプリング、ダウンサンプリングなどの他の手法も使用され得る。様々な実施形態では、抽出プロセスは、グローバルに関連する可能性が高いデータを保持し、センサデータからグローバルな特徴を識別および検出しない。様々な実施形態では、グローバルな特徴は、335で実行される分析によって検出される。
【0043】
323で、前処理がグローバルデータに対して実行される。例えば、信号品質を改善するために、ノイズ除去フィルタがデータに適用され得る。別の例として、深層学習分析の前にグローバルデータを強化するために、局所コントラスト強調、ゲイン調整、閾値処理、ノイズフィルタリングなどの異なる前処理技術が適用され得る。様々な実施形態では、前処理は、より一般的な前処理技術をセンサデータ全体に適用するのではなく、グローバルデータの特性を強化するようにカスタマイズされる。一部の実施形態では、グローバルデータの前処理は、データを圧縮することを含む。一部の実施形態では、323での前処理ステップは任意である。
【0044】
325で、グローバルデータがダウンサンプリングされる。例えば、グローバルデータの解像度が下げられる。一部の実施形態では、グローバルデータは、データを分析する計算効率を改善し、グローバルデータを深層学習ネットワークの後の方の層への入力として構成するためにサイズが縮小される。一部の実施形態では、グローバルデータは、ビニング、リサンプリング、または別の適切な技術によってダウンサンプリングされる。一部の実施形態では、ダウンサンプリングは、グラフィカル処理ユニット(GPU)または画像信号プロセッサを使用して実行される。様々な実施形態では、グローバルデータは特徴および/またはエッジデータと同じ解像度要件を有さないので、ダウンサンプリングはグローバルデータに適切である。一部の実施形態では、325で実行されるダウンサンプリングは、321でグローバルデータが抽出されるときに実行される。
【0045】
335で、特徴および/またはエッジデータとグローバルデータの深層学習分析の結果を入力として使用して、追加の深層学習分析が実行される。様々な実施形態では、深層学習分析は、深層学習ネットワークの後の方の層でグローバルデータを入力として受け取る。様々な実施形態では、グローバルデータを受け取る層での予想される入力データサイズは、初期の入力層の予想される入力データサイズよりも小さい。例えば、グローバルデータ入力層の入力サイズは、深層学習ネットワークの初期層の入力サイズの半分または4分の1であり得る。一部の実施形態では、ネットワークの後の方の層は、初期層の結果を強化するためにグローバルデータを利用する。様々な実施形態では、深層学習分析が実行され、車両制御結果が決定される。例えば、車両制御の結果は、畳み込みニューラルネットワークを使用して決定される。一部の実施形態では、分析は、人工知能(AI)プロセッサ上で実行される。
【0046】
337で、深層学習分析の結果が車両制御に提供される。例えば、抽出および処理された画像コンポーネントを使用する機械学習結果は、車両の動きを制御するために利用される。一部の実施形態では、結果は、車両制御動作に対応する。一部の実施形態では、結果は、
図1のステップ107および/または
図2のステップ211に関して説明したように提供される。
【0047】
図4は、ハイパスおよびローパスコンポーネントデータを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。示される例では、
図4のプロセスは、センサデータから2つのデータコンポーネントを抽出し、人工ニューラルネットワークなどの深層学習ネットワークの様々な層にコンポーネントを提供するために使用される。2つのコンポーネントは、ハイパスおよびローパスフィルタを使用して抽出される。様々な実施形態では、結果は、改善された精度、安全性、および/または快適性の結果を伴う自動運転を実施するために使用される。一部の実施形態では、
図4のプロセスは、
図1、2、および/または3のプロセスを実行するために使用される。一部の実施形態では、ステップ401は、
図1の103、
図2の203、および/または
図3の303で実行され、ステップ403は、
図1の103、
図2の205、および/または
図3の311で実行され、ステップ413は、
図1の103、
図2の205、および/または
図3の321で実行され、ステップ405は、
図1の103、
図2の207および209、および/または
図3の313で実行され、ステップ415および417は、
図1の103、
図2の207および209、および/または
図3の323および325で実行され、ステップ407は、
図1の105、
図2の211、および/または
図3の315で実行され、および/またはステップ421は、
図1の105、
図2の211、および/または
図3の335で実行される。
【0048】
401で、データが前処理される。一部の実施形態では、データは、高ダイナミックレンジカメラ、レーダ、超音波、および/またはLiDARセンサなどの1つ以上のセンサからキャプチャされたセンサデータである。様々な実施形態では、データは、
図1の103、
図2の203、および/または
図3の303に関して説明したように前処理される。データが前処理されると、処理は403および413に進む。一部の実施形態では、ステップ403および413は並行して実行される。
【0049】
403で、ハイパスフィルタがデータに対して実行される。例えば、ハイパスコンポーネントデータを抽出するために、キャプチャされたセンサデータに対してハイパスフィルタが実行される。一部の実施形態では、ハイパスフィルタは、グラフィックス処理ユニット(GPU)、トーンマッパプロセッサ、画像信号プロセッサ、または他の画像プリプロセッサを使用して実行される。一部の実施形態では、ハイパスデータコンポーネントは、キャプチャされたセンサデータの特徴および/またはエッジを表す。様々な実施形態では、ハイパスフィルタは、深層学習プロセスの第1の層の応答を保存するように構築される。例えば、ハイパスフィルタは、機械学習ネットワークの上部にある小さなフィルタへの応答を保持するように構築されている。第1の層の後にハイパスコンポーネントに対して実行される分析の結果が、第1の層の後にフィルタリングされていないデータに対して実行される分析と同様になるように、第1の層に関連する信号情報が保存される。様々な実施形態では、結果は、5x5マトリックスフィルタと同じくらい小さいフィルタについて保存される。
【0050】
413で、ローパスフィルタがデータに対して実行される。例えば、ローパスコンポーネントデータを抽出するために、キャプチャされたセンサデータに対してローパスフィルタが実行される。一部の実施形態では、ローパスフィルタは、グラフィックス処理ユニット(GPU)、トーンマッパプロセッサ、画像信号プロセッサ、または他の画像プリプロセッサを使用して実行される。一部の実施形態では、ローパスデータコンポーネントは、グローバルイルミネーションデータなどのキャプチャされたセンサデータのグローバルデータを表す。
【0051】
様々な実施形態では、403および413で実行されるフィルタリングは、同じまたは異なる画像プリプロセッサを使用することができる。例えば、トーンマッパプロセッサは、ハイパスデータコンポーネントを抽出するために使用され、グラフィックス処理ユニット(GPU)は、ローパスデータコンポーネントを抽出するために使用される。一部の実施形態では、ハイパスまたはローパスデータは、元のキャプチャされたデータからデータコンポーネントの1つを差し引くことによって抽出される。
【0052】
405および415で、それぞれのハイパスおよびローパスデータコンポーネントに対して後処理が実行される。様々な実施形態では、信号品質を向上させるため、および/またはデータを表すために必要なデータの量を減らすために、異なる後処理技術が利用される。例えば、とりわけ、ノイズ除去、デモザイキング、局所コントラスト強調、ゲイン調整、および/または閾値化プロセスは、それぞれのハイパスおよび/またはローパスデータコンポーネントに対して実行され得る。一部の実施形態では、データコンポーネントは、圧縮および/またはダウンサンプリングされる。例えば、ハイパスおよび/またはローパスデータが抽出されると、それぞれのデータコンポーネントは、ビット深度範囲全体をより効率的に利用するために圧縮され得る。一部の実施形態では、それぞれのデータコンポーネントは、センサによってキャプチャされたより高いビット深度から、深層学習ネットワークと互換性のあるより低いビット深度まで圧縮または量子化される。例えば、12ビット、16ビット、20ビット、32ビット、またはチャネルあたりの別の適切なビット深度でキャプチャされたセンサデータは、チャネルあたり8ビットなどのより低いビット深度に圧縮または量子化され得る。一部の実施形態では、405および/または415での後処理ステップは任意である。
【0053】
417で、ローパスデータコンポーネントがダウンサンプリングされる。様々な実施形態では、ローパスデータコンポーネントは、ネットワークの後の方の段階でネットワークに供給され、より効率的なリソースサイズにダウンサンプリングされ得る。例えば、ローパスデータコンポーネントは、フルセンササイズで抽出され、元のサイズの半分または4分の1に縮小され得る。他の割合の削減も可能である。様々な実施形態では、ローパスデータはダウンサンプリングされるが、関連する信号情報を保持する。多くのシナリオでは、ローパスデータは、信号情報を失うことなく簡単にダウンサンプリングされ得る。データをダウンサンプリングすることにより、データはディープラーニングネットワークの後の方の層でより簡単かつ迅速に分析される。
【0054】
407で、ディープラーニング分析がハイパスデータコンポーネントで実行される。一部の実施形態では、ハイパスデータコンポーネントは、深層学習ネットワークの初期層に供給され、特徴およびエッジ検出のための最も重要なデータを表す。様々な実施形態では、ハイパスデータコンポーネントを使用する第1の層での深層学習分析の結果は、ネットワークの後続の層に供給される。例えば、ニューラルネットワークは、複数の層、例えば、5つ以上の層を含み得る。第1の層はハイパスデータコンポーネントを入力として受け取り、第2の層は第1の層によって実行された深層学習分析の結果を受け取る。様々な実施形態では、第2以降の層は、追加の深層学習分析を実行するための追加の入力としてローパスデータコンポーネントを受け取る。
【0055】
421で、407で実行された分析の結果と、417でダウンサンプリングされたローパスデータコンポーネントとを使用して、追加の深層学習分析が実行される。様々な実施形態では、深層学習分析は、車両制御結果を推測する。例えば、407および421での深層学習分析の結果は、自動運転用の車両を制御するために使用される。
【0056】
図5は、ハイパス、バンドパス、およびローパスコンポーネントデータを使用して機械学習処理を実行するためのプロセスの実施形態を示すフロー図である。示される例では、
図5のプロセスは、センサデータから3つのデータコンポーネントを抽出し、人工ニューラルネットワークなどの深層学習ネットワークの様々な層でコンポーネントを提供するために使用される。
図4のプロセスと同様に、ハイパスおよびローパスコンポーネントが抽出される。さらに、
図5のプロセスは、1つ以上のバンドパスデータコンポーネントを抽出する。様々な実施形態では、深層学習ネットワークの異なる層に提供される複数のコンポーネントへのセンサデータの分解により、深層学習分析は、ネットワークの異なる層で異なるデータセットを強調することができる。
【0057】
一部の実施形態では、
図5のプロセスは、
図1、2、3、および/または4のプロセスを実行するために使用される。一部の実施形態では、ステップ501は、
図1の103で、
図2の203、
図3の303、および/または
図4の401で実行される。一部の実施形態では、ステップ503は、
図1の103、
図2の205、
図3の311、および/または
図4の403で実行され、ステップ513は、
図1の103、
図2の205、および/または
図3の311または321で実行され、および/またはステップ523は、
図1の103、
図2の205、
図3の321、および/または
図4の413で実行される。一部の実施形態では、ステップ505は、
図1の103で、
図2の207および209、
図3の313、および/または
図4のステップ405で実行され、ステップ515は、
図1の103、
図2の207および209、
図3の313、323、および/または325、および/または
図4の405、415、および/または417で実行され、および/またはステップ525は、
図1の103、
図2の207および209、
図3の323および325、および/または
図4の415および417で実行される。一部の実施形態では、ステップ537は、
図1の105、
図2の211、
図3の315および335、および/または
図4の407および421で実行される。
【0058】
501で、データが前処理される。一部の実施形態では、データは、高ダイナミックレンジカメラ、レーダ、超音波、および/またはLiDARセンサなどの1つ以上のセンサからキャプチャされたセンサデータである。様々な実施形態では、データは、
図1の103、
図2の203、
図3の303、および/または
図4の401に関して説明されるように前処理される。データが前処理されると、処理は503、513、および523に進む。一部の実施形態では、ステップ503、513、および523は、並行して実行される。
【0059】
503で、ハイパスフィルタがデータに対して実行される。例えば、ハイパスコンポーネントデータを抽出するために、キャプチャされたセンサデータに対してハイパスフィルタが実行される。一部の実施形態では、ハイパスフィルタは、グラフィックス処理ユニット(GPU)、トーンマッパプロセッサ、画像信号プロセッサ、または他の画像プリプロセッサを使用して実行される。一部の実施形態では、ハイパスデータコンポーネントは、キャプチャされたセンサデータの特徴および/またはエッジを表す。
【0060】
513で、1つ以上のバンドパスコンポーネントを抽出するために、1つ以上のバンドパスフィルタがデータに対して実行される。例えば、特徴、エッジ、中間、および/またはグローバルデータの混合を含むコンポーネントデータを抽出するために、キャプチャされたセンサデータに対してバンドパスフィルタが実行される。様々な実施形態では、1つ以上のバンドパスコンポーネントが抽出され得る。一部の実施形態では、ローパスフィルタは、グラフィックス処理ユニット(GPU)、トーンマッパプロセッサ、画像信号プロセッサ、または他の画像プリプロセッサを使用して実行される。一部の実施形態では、バンドパスデータコンポーネントは、主にエッジ/特徴データでも、主にキャプチャされたセンサデータのグローバルデータでもないデータを表す。一部の実施形態では、バンドパスデータは、ハイパスデータコンポーネントおよびローパスデータコンポーネントのみを使用して失われる可能性があるデータ忠実度を維持するために利用される。
【0061】
523で、ローパスフィルタがデータに対して実行される。例えば、ローパスコンポーネントデータを抽出するために、キャプチャされたセンサデータに対してローパスフィルタが実行される。一部の実施形態では、ローパスフィルタは、グラフィックス処理ユニット(GPU)、トーンマッパプロセッサ、画像信号プロセッサ、または他の画像プリプロセッサを使用して実行される。一部の実施形態では、ローパスデータコンポーネントは、グローバルイルミネーションデータなどのキャプチャされたセンサデータのグローバルデータを表す。
【0062】
様々な実施形態では、503、513、および523で実行されるフィルタリングは、同じまたは異なる画像プリプロセッサを使用することができる。例えば、トーンマッパプロセッサは、ハイパスデータコンポーネントを抽出するために使用され、グラフィックス処理ユニット(GPU)は、バンドパスおよび/またはローパスデータコンポーネントを抽出するために使用される。一部の実施形態では、データコンポーネントは、元のキャプチャされたデータから1つ以上のデータコンポーネントを差し引くことによって抽出される。
【0063】
505、515、および525で、それぞれのハイパス、バンドパス、およびローパスデータコンポーネントに対して後処理が実行される。様々な実施形態では、信号品質を向上させるため、および/またはデータを表すために必要なデータの量を減らすために、異なる後処理技術が利用される。一部の実施形態では、異なるコンポーネントは、データコンポーネントを受け取るネットワーク層に適切なサイズに圧縮および/またはダウンサンプリングされる。様々な実施形態では、ハイパスデータは、バンドパスデータよりも高い解像度を有し、バンドパスデータは、ローパスデータよりも高い解像度を有するであろう。一部の実施形態では、異なるバンドパスデータコンポーネントはまた、それぞれが入力として提供されるネットワーク層に適切な異なる解像度を有するであろう。一部の実施形態では、それぞれのデータコンポーネントは、センサによってキャプチャされたより高いビット深度から、深層学習ネットワークと互換性のあるより低いビット深度まで圧縮または量子化される。例えば、チャネルあたり12ビットでキャプチャされたセンサデータは、チャネルあたり8ビットに圧縮または量子化され得る。様々な実施形態では、前処理フィルタは、
図2の207および/または
図4の405、415、および/または417に関して説明したように適用される。
【0064】
537で、505、515、および525のデータコンポーネントの結果を使用して深層学習分析が実行される。一部の実施形態では、ハイパスデータコンポーネントは、深層学習ネットワークの初期層に供給され、特徴およびエッジ検出のための最も重要なデータを表す。1つ以上のバンドパスデータコンポーネントは、ネットワークの中間層に供給され、特徴/エッジおよび/または有益な中間またはグローバル情報を識別するための追加のデータを含む。ローパスデータコンポーネントはネットワークの後の方の層に供給され、深層学習ネットワークの分析結果を改善するためのグローバル情報を含む。深層学習分析の実行では、分析が進むにつれて、結果の精度を向上させるために、様々なセンサデータを表す追加のデータコンポーネントが様々な層に供給される。様々な実施形態では、深層学習分析は、車両制御結果を推測する。例えば、深層学習分析の結果は、自動運転用の車両を制御するために使用される。一部の実施形態では、少なくとも部分的に車両を自律的に操作するために、機械学習結果が車両制御モジュールに提供される。
【0065】
図6は、自動運転のための深層学習システムの実施形態を示すブロック図である。一部の実施形態では、
図6の深層学習システムは、自動運転および運転者支援自動車の自動運転機能を実施するために使用され得る。例えば、車両に取り付けられたセンサを使用して、センサデータがキャプチャされ、様々な入力コンポーネントとして処理され、深層学習ネットワークの様々な段階に供給される。深層学習分析の結果は、車両の操作を支援するために車両制御モジュールによって使用される。一部の実施形態では、車両制御モジュールは、車両の自動運転または運転者支援操作のために利用される。様々な実施形態では、
図1~5のプロセスは、
図6に記載されているような深層学習システムを利用する。
【0066】
示される例では、深層学習システム600は、センサ601、画像プリプロセッサ603、深層学習ネットワーク605、人工知能(AI)プロセッサ607、車両制御モジュール609、およびネットワークインターフェース611を含む深層学習ネットワークである。様々な実施形態では、異なるコンポーネントは、通信可能に接続されている。例えば、センサ601からのセンサデータは、画像プリプロセッサ603に供給される。画像プリプロセッサ603の処理されたセンサデータコンポーネントは、AIプロセッサ607上で実行されている深層学習ネットワーク605に供給される。AIプロセッサ607上で実行されている深層学習ネットワーク605の出力は、車両制御モジュール609に供給される。様々な実施形態では、ネットワークインターフェース611は、車両の自律動作に基づいて、リモートサーバと通信するため、電話をかけるため、テキストメッセージを送信および/または受信するためなどに使用される。
【0067】
一部の実施形態では、センサ601は、1つ以上のセンサを含む。様々な実施形態では、センサ601は、車両の異なる位置で、および/または1つ以上の異なる方向に向けられて、車両に取り付けられ得る。例えば、センサ601は、前向き、後向き、横向きなどの方向で、車両の前部、側面、後部、および/または屋根などに取り付けられ得る。一部の実施形態では、センサ610は、高ダイナミックレンジカメラなどの画像センサであり得る。一部の実施形態では、センサ601は、非視覚的センサを含む。一部の実施形態では、センサ601は、とりわけ、レーダ、LiDAR、および/または超音波センサを含む。一部の実施形態では、センサ601は、車両制御モジュール609を備えた車両に取り付けられていない。例えば、センサ601は、隣接する車両に取り付けられ得、および/または道路または環境に取り付けられ得、センサデータをキャプチャするための深層学習システムの一部として含まれる。
【0068】
一部の実施形態では、画像プリプロセッサ603は、センサ601のセンサデータを前処理するために使用される。例えば、画像プリプロセッサ603は、センサデータを前処理し、センサデータを1つ以上のコンポーネントに分割し、および/または1つ以上のコンポーネントを後処理するために使用され得る。一部の実施形態では、画像プリプロセッサ603は、グラフィックス処理ユニット(GPU)、中央処理装置(CPU)、画像信号プロセッサ、または特殊な画像プロセッサである。様々な実施形態では、画像プリプロセッサ603は、高ダイナミックレンジデータを処理するためのトーンマッパプロセッサである。一部の実施形態では、画像プリプロセッサ603は、人工知能(AI)プロセッサ607の一部として実装される。例えば、画像プリプロセッサ603は、AIプロセッサ607のコンポーネントであり得る。
【0069】
一部の実施形態では、深層学習ネットワーク605は、自律的な車両制御を実施するための深層学習ネットワークである。例えば、深層学習ネットワーク605は、センサデータを使用して訓練され、車両制御結果を車両制御モジュール609に出力するために使用される畳み込みニューラルネットワーク(CNN)などの人工ニューラルネットワークであり得る。様々な実施形態では、深層学習ネットワーク605は、多段階学習ネットワークであり、ネットワークの2つ以上の異なる段階で入力データを受け取ることができる。例えば、深層学習ネットワーク605は、深層学習ネットワーク605の第1の層で特徴および/またはエッジデータを受け取ることができ、深層学習ネットワーク605の後の方の層(例えば、第2または第3などの層)でグローバルデータを受け取ることができる。様々な実施形態では、深層学習ネットワーク605は、ネットワークの2つ以上の異なる層でデータを受け取り、異なる層を介して処理されるときにデータを圧縮および/または縮小することができる。例えば、層1でのデータサイズは、後続の段階でのデータよりも高い解像度である。一部の実施形態では、層1でのデータサイズは、キャプチャされた画像データのフル解像度であり、後続の層でのデータは、キャプチャされた画像データより低い解像度(例えば、サイズの4分の1)である。様々な実施形態では、深層学習ネットワーク605の後続の層で画像プリプロセッサ603から受け取られた入力データは、1つ以上の前の層を介して処理されるデータの内部データ解像度と一致する。
【0070】
一部の実施形態では、人工知能(AI)プロセッサ607は、深層学習ネットワーク605を実行するためのハードウェアプロセッサである。一部の実施形態では、AIプロセッサ607は、センサデータに対して畳み込みニューラルネットワーク(CNN)を使用して推測を実行するための特殊なAIプロセッサである。一部の実施形態では、AIプロセッサ607は、センサデータのビット深度に対して最適化されている。一部の実施形態では、AIプロセッサ607は、とりわけ、畳み込み、ドット積、ベクトル、および/または行列演算を含むニューラルネットワーク演算などの深層学習演算用に最適化されている。一部の実施形態では、AIプロセッサ607は、グラフィックス処理ユニット(GPU)を使用して実装される。様々な実施形態では、AIプロセッサ607は、実行されるとAIプロセッサに、受け取られた入力センサデータに対して深層学習分析を実行させ、少なくとも部分的に車両を自律的に操作するために使用される機械学習結果を決定させる命令をAIプロセッサに提供するように構成されるメモリに結合されている。
【0071】
一部の実施形態では、車両制御モジュール609は、人工知能(AI)プロセッサ607の出力を処理し、出力を車両制御操作に変換するために利用される。一部の実施形態では、車両制御モジュール609は、自動運転のために車両を制御するために利用される。一部の実施形態では、車両制御モジュール609は、車両の速度および/またはステアリングを調整することができる。例えば、車両制御モジュール609は、ブレーキング、ステアリング、車線変更、加速および別の車線への合流などによって車両を制御するために使用され得る。一部の実施形態では、車両制御モジュール609は、ブレーキライト、方向指示器、ヘッドライトなどのような車両照明を制御するために使用される。一部の実施形態では、車両制御モジュール609は、車両のサウンドシステム、音声アラートの再生、マイクロフォンの有効化、ホーンの有効化などの車両のオーディオ状態を制御するために使用される。一部の実施形態では、車両制御モジュール609は、起こり得る衝突または意図された目的地への接近などの運転イベントを運転者および/または乗客に通知する警告システムを含む通知システムを制御するために使用される。一部の実施形態では、車両制御モジュール609は、車両のセンサ601などのセンサを調整するために使用される。例えば、車両制御モジュール609は、向きの変更、出力解像度および/またはフォーマットタイプの変更、キャプチャ率の増減、キャプチャされたダイナミックレンジの調整、カメラの焦点の調整、センサの有効化および/または無効化など、1つ以上のセンサのパラメータを変更するために使用され得る。一部の実施形態では、車両制御モジュール609は、フィルタの周波数範囲の変更、特徴および/またはエッジ検出パラメータの調整、チャネルおよびビット深度の調整など、画像プリプロセッサ603のパラメータを変更するために使用され得る。様々な実施形態では、車両制御モジュール609は、車両の自動運転および/または運転者支援制御を実施するために使用される。
【0072】
一部の実施形態では、ネットワークインターフェース611は、音声データを含むデータを送信および/または受信するための通信インターフェースである。様々な実施形態では、ネットワークインターフェース611は、リモートサーバとインターフェースするため、音声通話を接続および発信するため、テキストメッセージを送信および/または受信するためなどのためのセルラまたはワイヤレスインターフェースを含む。例えば、ネットワークインターフェース611は、センサ601、画像プリプロセッサ603、深層学習ネットワーク605、AIプロセッサ607、および/または車両制御モジュール609のための命令および/または動作パラメータの更新を受け取るために使用され得る。例えば、深層学習ネットワーク605の機械学習モデルは、ネットワークインターフェース611を使用して更新され得る。別の例として、ネットワークインターフェース611は、センサ601のファームウェアおよび/または画像処理パラメータなどの画像プリプロセッサ603の動作パラメータを更新するために使用され得る。一部の実施形態では、ネットワークインターフェース611は、事故または事故に近い場合に緊急サービスと緊急連絡をとるために使用される。例えば、衝突の場合、ネットワークインターフェース611は、助けを求めて緊急サービスに連絡するために使用され得、車両の位置および衝突の詳細を緊急サービスに通知し得る。様々な実施形態では、ネットワークインターフェース611は、目的地の場所および/または予想到着時間を取得および/または更新するためにカレンダー情報にアクセスするなどの自動運転機能を実施するために使用される。
【0073】
前述の実施形態は、理解を明確にするためにいくらか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実施する多くの代替方法が存在する。開示された実施形態は例示的なものであり、限定的なものではない。