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

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

▶ テスラ モーターズ,インコーポレーテッドの特許一覧

特許7227358トレーニングデータを取得するためのシステム及び方法
<>
  • 特許-トレーニングデータを取得するためのシステム及び方法 図1A
  • 特許-トレーニングデータを取得するためのシステム及び方法 図1B
  • 特許-トレーニングデータを取得するためのシステム及び方法 図2
  • 特許-トレーニングデータを取得するためのシステム及び方法 図3
  • 特許-トレーニングデータを取得するためのシステム及び方法 図4
  • 特許-トレーニングデータを取得するためのシステム及び方法 図5
  • 特許-トレーニングデータを取得するためのシステム及び方法 図6
  • 特許-トレーニングデータを取得するためのシステム及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-13
(45)【発行日】2023-02-21
(54)【発明の名称】トレーニングデータを取得するためのシステム及び方法
(51)【国際特許分類】
   G06N 3/08 20230101AFI20230214BHJP
   G06N 20/00 20190101ALI20230214BHJP
   G06T 7/00 20170101ALI20230214BHJP
【FI】
G06N3/08
G06N20/00 130
G06T7/00 350C
【請求項の数】 20
(21)【出願番号】P 2021513897
(86)(22)【出願日】2019-09-13
(65)【公表番号】
(43)【公表日】2021-12-23
(86)【国際出願番号】 US2019051121
(87)【国際公開番号】W WO2020056331
(87)【国際公開日】2020-03-19
【審査請求日】2021-04-26
(31)【優先権主張番号】62/731,651
(32)【優先日】2018-09-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】510192916
【氏名又は名称】テスラ,インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】カーパシー,アンドレイ
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2018-125777(JP,A)
【文献】国際公開第2017/175282(WO,A1)
【文献】特開2018-55259(JP,A)
【文献】特開2018-60268(JP,A)
【文献】米国特許第9875440(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 7/00- 7/90
(57)【特許請求の範囲】
【請求項1】
車両のフリートの複数の車両に含まれるプロセッサシステムを介して実行される方法であって、
前記車両の周りに配置された複数のセンサからセンサデータを受信することであって、前記センサデータは画像を含む、受信することと、
ニューラルネットワークを前記センサデータに適用することと、
前記センサデータについての分類器スコアを決定するために、トリガ分類器を前記ニューラルネットワークの中間結果に適用することであって、前記トリガ分類器は、前記ニューラルネットワークへの画像のグループの入力に基づいて外部システムを介してトレーニングされたものであり、前記画像のグループは、対象となる1または複数の特徴を描写し、前記ニューラルネットワークの中間結果は、前記トリガ分類器をトレーニングすることに使用され、前記トリガ分類器は、前記車両のフリートの複数の車両に提供されるとともに、前記1または複数の特徴を描写する新しい画像を識別するように構成され、前記車両は、複数のトリガ分類器を前記中間結果に適用するように構成されている、適用することと、
前記分類器スコアに少なくとも部分的に基づいて、前記センサデータの少なくとも一部を前記外部システムにコンピュータネットワークを介して送信するかどうかを決定することと、
を含む方法。
【請求項2】
前記中間結果は前記ニューラルネットワークの中間層の出力である、請求項1に記載の方法。
【請求項3】
前記中間結果は、前記ニューラルネットワークの最後から2番目の層の出力である、請求項2に記載の方法。
【請求項4】
前記ニューラルネットワークは畳み込みニューラルネットワークである、請求項1に記載の方法。
【請求項5】
前記トリガ分類器は、入力ベクトルを使用してトレーニングされ、該入力ベクトルは、前記ニューラルネットワークの層の出力である、請求項に記載の方法。
【請求項6】
記ニューラルネットワークの前記層は動的に選択される、請求項に記載の方法。
【請求項7】
前記外部システムは、前記トリガ分類器車両に無線で送信る、請求項に記載の方法。
【請求項8】
前記トリガ分類器は、前記ニューラルネットワークについての識別された改善の必要性に基づいて生成されている、請求項1に記載の方法。
【請求項9】
前記トリガ分類器は、以下、すなわち、トンネルの入口、トンネルの出口、道路の分岐点、道路の障害物、道路の車線のライン、又は運転可能なスペースのうちの、1又は複数を識別するために使用される、請求項1に記載の方法。
【請求項10】
前記分類器スコアに少なくとも部分的に基づいて、前記センサデータの少なくとも前記一部を前記コンピュータネットワークを介して送信するかどうかを前記決定することは、前記分類器スコアを閾値と比較することを含む、請求項1に記載の方法。
【請求項11】
1又は複数の必要な条件に基づいて前記トリガ分類器を適用するかどうかを決定することをさらに含む、請求項1に記載の方法。
【請求項12】
前記1又は複数の必要な条件は、以下、すなわち、走行時間、前記トリガ分類器の最後に保持されたセンサデータからの最小時間、自動運転機能に関連付けられた解除イベント、車種、ステアリング角度の閾値、又は道路タイプの要件のうちの、1又は複数に基づく、請求項11に記載の方法。
【請求項13】
前記トリガ分類器は、そこから前記中間結果を受信する、前記ニューラルネットワークの特定の層を指定する、請求項1に記載の方法。
【請求項14】
前記センサデータの少なくとも前記一部、及び以下、すなわち、分類器スコア、位置、タイムスタンプ、道路タイプ、以前に送信されたセンサデータからの時間の長さ、又は車種のうちの、1又は複数を識別するメタデータ、を送信することをさらに含む、請求項1に記載の方法。
【請求項15】
前記センサデータの少なくとも前記一部、及び以下、すなわち、車両の速度、車両の加速度、車両のブレーキング、又は車両のステアリング角度のうちの、1又は複数を識別する、前記車両の動作条件、を送信することをさらに含む、請求項1に記載の方法。
【請求項16】
前記コンピュータネットワークを介して、重みベクトルによって表される前記トリガ分類器を受信することをさらに含む、請求項1に記載の方法。
【請求項17】
前記トリガ分類器は、前記重みベクトル及びバイアスによって表される、請求項16に記載の方法。
【請求項18】
車両のフリートの複数の車両に提供されるコンピュータプログラム製品であって、該コンピュータプログラム製品は、非一時的なコンピュータ可読記憶媒体において具現化され、
車両の周りに配置された複数のセンサから、画像を含むセンサデータを受信し、
ニューラルネットワークを前記センサデータに適用し、
前記センサデータについての分類器スコアを決定するために、トリガ分類器を前記ニューラルネットワークの中間結果に適用し、
前記トリガ分類器は、前記ニューラルネットワークへの画像のグループの入力に基づいて外部システムを介してトレーニングされたものであり、前記画像のグループは、対象となる1または複数の特徴を描写し、前記ニューラルネットワークの中間結果は、前記トリガ分類器をトレーニングすることに使用され、前記トリガ分類器は、前記車両のフリートの複数の車両に提供されるとともに、前記1または複数の特徴を描写する新しい画像を識別するように構成され、前記車両は、複数のトリガ分類器を前記中間結果に適用するように構成され、及び、
前記分類器スコアに少なくとも部分的に基づいて、前記センサデータの少なくとも一部を前記外部システムにコンピュータネットワークを介して送信するかどうかを決定する、
ためのコンピュータ命令を含む、コンピュータプログラム製品。
【請求項19】
車両のフリートの複数の車両に組み込まれたシステムであって、
車両上のセンサと、
人工知能プロセッサと、
車両制御モジュールと、
画像信号プロセッサであって、
前記センサを使用してキャプチャされた画像を受信し、
該キャプチャされた画像を処理し、
該処理された画像をニューラルネットワークに提供する、ように構成された画像信号プロセッサと、
前記人工知能プロセッサと連結されたメモリであって、該メモリは、実行されたときに前記人工知能プロセッサに対して、
前記処理された画像を受信させ、
前記処理された画像に対して前記ニューラルネットワークを使用して推論を実行させ、
前記ニューラルネットワークの中間結果をトリガ分類器に提供させ、該トリガ分類器は前記キャプチャされた画像に対応する分類器スコアを決定するために使用され、及び、
前記車両を少なくとも部分的に自律的に操作するために、前記ニューラルネットワークの干渉結果を前記車両制御モジュールに提供させる、命令を前記人工知能プロセッサに提供するように構成され
前記トリガ分類器は、前記ニューラルネットワークへの画像のグループの入力に基づいて外部システムを介してトレーニングされたものであり、前記画像のグループは、対象となる1または複数の特徴を描写し、前記ニューラルネットワークの中間結果は、前記トリガ分類器をトレーニングすることに使用され、前記トリガ分類器は、前記車両のフリートの複数の車両の前記システムに提供されるとともに、前記1または複数の特徴を描写する新しい画像を識別するように構成され、前記システムは、複数のトリガ分類器を前記中間結果に適用するように構成されている、メモリと、
前記分類器スコアに少なくとも部分的に基づいて、前記キャプチャされた画像の少なくとも一部を前記外部システムにコンピュータネットワークを介して送信するように構成されたネットワークインタフェースと、
を備える、システム。
【請求項20】
前記システムは、前記1又は複数の特徴が現実世界の位置に配置されていることを決定し、前記決定は、前記1又は複数の特徴を描写する画像を送信した前記車両のフリートの複数の車両の位置に基づいており、前記車両は、前記現実世界の位置の閾値距離内にある前記車両の位置に応答して前記トリガ分類器を適用する、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、参照によってその全体が本明細書に組み込まれる、2018年9月14日に出願され、「NEURAL NETWORK TRAINING」と題された、米国仮特許出願第62/731,651号の全体を参照によって本明細書に組み込む。
【0002】
外国又は国内の優先権主張が本出願と共に提出されたものとして出願データシートで特定されているありとあらゆる出願は、米国特許法施行規則第1.57に基づいてその全体が参照により本明細書に組み込まれる。
【0003】
本開示は、機械学習のためのシステム及び手法に関する。より詳細には、本開示は、トレーニングデータの生成のための手法に関する。
【背景技術】
【0004】
自動運転などのアプリケーションに使用されるディープラーニングシステムは、機械学習モデルをトレーニングすることによって開発される。通常、ディープラーニングシステムのパフォーマンスは、モデルをトレーニングするために使用されるトレーニングセットの品質によって少なくとも部分的に制限される。多くの場合、トレーニングデータの収集、キュレーション、及びアノテーションに多大なリソースが投資される。トレーニングセットを作成するために必要とされる労力は多大なものになり得、多くの場合面倒である。さらには、機械学習モデルが改善を必要とする特定のユースケースについてのデータを収集するのは困難な場合が多い。
【図面の簡単な説明】
【0005】
以下の図面及び関連する説明は、本開示の実施形態を示すために提供されており、特許請求の範囲を限定するものではない。本開示の態様及び付随する利点の多くは、添付の図面と併せて解釈されると、以下の詳細な説明を参照することによって同じことがよりよく理解されるようになるので、より容易に理解されるようになる。
【0006】
図1A】道路を走行し、道路上に配置されたタイヤを検出する自動車を示す概略図である。
【0007】
図1B】トレーニングデータを生成するためのシステムの一実施形態を示すブロック図である。
【0008】
図2】機械学習モデルの中間結果にトリガ分類器を適用するためのプロセスの実施形態を示すフロー図である。
【0009】
図3】機械学習モデルの中間結果を使用してトリガ分類器を作成するためのプロセスの実施形態を示すフロー図である。
【0010】
図4】トリガ分類器を使用して潜在的なトレーニングデータを識別し、センサデータを送信するためのプロセスの実施形態を示すフロー図である。
【0011】
図5】トリガ分類器によって識別されたユースケースに対応するデータからトレーニングデータをデプロイするためのプロセスの実施形態を示すフロー図である。
【0012】
図6】車両上で分類器の選択を実行し、センサデータを送信するためのプロセスの実施形態を示すフロー図である。
【0013】
図7】潜在的なトレーニングデータを識別するためのディープラーニングシステムの実施形態を示すブロック図である。
【発明を実施するための形態】
【0014】
本明細書では、1又は複数のイノベーションが説明されており、これらは、プロセスとして、装置として、システムとして、合成物として、コンピュータ可読記憶媒体上に具現化されたコンピュータプログラム製品として、及び/又は、プロセッサに連結されたメモリ上に格納され及び/又はそれによって提供される、命令を実行するように構成されたプロセッサなどのプロセッサとして、を含む多くの方法で実施されることができる。本明細書では、これらの実施態様、又は、イノベーションがとり得る任意の他の形式は、手法と称され得る。一般に、開示されたプロセスのステップの順序は、イノベーションの範囲内で変更され得る。別途明記されない限り、タスクを実行するように構成されていると説明されるプロセッサ又はメモリなどのコンポーネントは、所与の時間においてそのタスクを実行するように一時的に構成される汎用コンポーネント、又はそのタスクを実行するように製造された特定のコンポーネント、として実施され得る。本明細書において使用される場合、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1又は複数のデバイス、回路、及び/又は処理コアを指す。
【0015】
1又は複数のイノベーションの1又は複数の実施形態の詳細な説明が、イノベーションの原理を示す添付の図と共に以下に提供される。イノベーションは、こうした実施形態に関連して説明されるが、イノベーションは、いかなる実施形態にも限定されない。イノベーションの範囲は特許請求の範囲によってのみ制限され、イノベーションには多数の代替形態、修正形態、及び等価形態を含む。イノベーションの完全な理解を提供するために、以下の説明において多くの具体的な詳細が述べられる。これらの詳細は例示の目的で提供されており、イノベーションは、これらの特定の詳細の一部又はすべてがなしに、特許請求の範囲に従って実践され得る。分かりやすくするために、イノベーションが不必要に不明瞭になることがないように、イノベーションに関連する技術分野において知られている技術資料は詳細に説明されていない。
【0016】
導入
本明細書は、少なくとも、以下の技術的問題に対処するイノベーションについて説明する。効果的な機械学習手法は、基礎となる機械学習モデルに情報を提供するために使用されるトレーニングデータセットに依存する。たとえば、ニューラルネットワークは、数千、数十万、数百万などの例を使用してトレーニングされ得る。トレーニング中、これらの例は、ニューラルネットワークのパラメータ(たとえば、重み、バイアスなど)を調整するために使用され得る。さらに、これらの例は、ニューラルネットワークのハイパーパラメータ(たとえば、いくつかの層)を調整するために使用され得る。このように、トレーニングデータへのアクセスは、こうした機械学習手法の使用に対する制約である。
【0017】
より深いニューラルネットワークなど、機械学習モデルがより複雑になるにつれて、それに応じて大規模なトレーニングデータセットの必要性が高まる。これらのより深いニューラルネットワークは、それらの一般化可能性が高いことを確実にするために、より浅いニューラルネットワークと比較してより多くのトレーニング例を必要とし得る。たとえば、ニューラルネットワークはトレーニングデータに関して高精度になるようにトレーニングされ得るが、一方、ニューラルネットワークは目に見えない将来の例に対してうまく一般化されない場合がある。この例では、ニューラルネットワークはトレーニングデータに含まれる追加の例から恩恵を受け得る。
【0018】
トレーニングデータを取得することは非常に大きな技術的ハードルを提示し得ることが理解され得る。たとえば、画像に含まれる特徴又は物体を分類するために、ある特定の機械学習モデルが使用され得る。この例では、機械学習モデルは、第2の物体(たとえば、一時停止標識)から第1の物体(たとえば、自動車)を認識することを学習し得る。これらの機械学習モデルの有効性は、特徴又は物体の例の数に応じて制約され得る。たとえば、エンティティは、路上で乗られているバイクを認識するための機械学習モデルを要望し得る。別の例として、エンティティは、車の後ろで運ばれているバイクを認識するための機械学習モデルを要望し得る。これらの例の十分なトレーニング例がない場合、機械学習モデルは、その認識において、使用可能であるほど十分正確でない場合がある。一般に、エンティティは、ある特定の特徴又は物体を含めるために、人に画像をラベル付けさせるのに多大な労力を費やすことを必要とされ得る。たとえば、人は手動で画像を再検討し、次いで、ある特定の特徴又は物体に対応するように画像の一部にラベルを割り当てなければならない場合がある。
【0019】
一実施形態は、トレーニングデータを迅速に生成することによってこの問題に対処するシステム及び方法である。一実施形態では、トレーニングデータは、任意の所望のラーニング可能な特徴の例を含み得る。コンピュータビジョンに関しては、画像内の任意の所望の物体又は特徴の例を含むトレーニングデータが迅速に生成され得る。これらの物体又は特徴は、通常、識別するのが難しい「エッジケース」を表し得る。たとえば、エンティティによって要望される複雑なシーンの画像を含むトレーニングデータが生成され得る。この例では、エンティティは、車両の後ろ又は前にあるバイク(たとえば、公共バスのフロントラックで運ばれているバイク)を描写している画像を取得することを好み得る。
【0020】
上記のエンティティは、世界のさまざまな道路又はその他の方法でナビゲート可能な領域を移動している多数(たとえば、数千、数百万)の車両を活用し得る。これらの車両は、センサ(たとえば、カメラ)を含み得るか、又はその他の方法でそれにアクセスでき得る。これらの車両が移動するとき、それらはセンサ情報をキャプチャし得る。たとえば、センサ情報は、車両の通常の動作過程でキャプチャされ得る。センサ情報は、車線ナビゲーションなどの、ある特定の自動運転機能のために車両によって使用され得る。しかしながら、一実施形態では、システムは、車両が、機械学習システムのためのトレーニングデータとして使用されるために、エンティティによって要望される画像特徴又は物体の例を収集することを可能にする、回路及びソフトウェアを含む。
【0021】
たとえば、分類器(たとえば、小さい又は浅いニューラルネットワーク、サポートベクタマシンなど)が、車両の少なくとも一部にアップロードされ得る。車両は、通常の動作中にセンサ情報(たとえば、画像、映像)を取得し得、分類器は、センサ情報内に表された特定の特徴又は物体を識別するように構成され得る。車両に提供される前に、これらの分類器は、特定の画像特徴又は物体を含むように画像を分類するようにトレーニングされ得る。たとえば、これらの分類器をトレーニングするために、限られた数の、特定の画像特徴又は物体の例(たとえば、百、千など)が使用され得る。説明されるように、分類器は、次いで、車両上で実行される機械学習モデルの一中間層からの情報を使用してセンサデータを分類し得る。例示的な機械学習モデルは、畳み込みネットワークを含み得る。この例示的な機械学習モデルは、少なくとも部分的に、上記の自動運転機能のために使用され得る。このように、分類器は、既存の例示的な機械学習モデルを活用し得る。
【0022】
多数のこれらの分類器は、分類器が、分類器に関連付けられた特定の画像特徴又は物体を認識するために使用され得るように、車両内のコンピュータシステムにアップロードされ得る。特定の特徴又は物体を含むものとして分類器によって指定されたキャプチャされた画像は、次いで、中央サーバシステムに送信され、ニューラルネットワークシステムのためのトレーニングデータとして使用されることができる。分類器は、通常の動作において車両によってすでに実行されている既存の機械学習モデルを活用し得るため、分類器は処理要件の点で効率的であり得る。さらに、異種環境において運転されている多数の車両が存在し得、そのことがある特定の特徴の「エッジケース」を見つけるのが難しい例を取得する可能性を増加させる。このようにして、エンティティは、エンティティにとって関心のある特定の画像特徴又は物体を表すセンサ情報(たとえば、画像)を迅速に取得し得る。
【0023】
本明細書では、学習されるべき物体又は特徴は、センサデータ内にキャプチャされることができる任意の現実世界の物体、シナリオ、特徴などを表し得る。例示的な物体又は特徴は、道路内のタイヤ、トンネルの出口、バイク、道路に伸びる枝のある木、車両が特定の方向に向けられているか又は特定のアクション又は操作を実行しているシーン、などを含み得る。さらに、ここでは、ユースケース又は目的のためにトレーニングデータを識別することに触れる。例示的なユースケース又は目的は、1又は複数の物体、特徴などを識別することを含み得る。さらに、本明細書は、画像などのセンサ情報を取得する車両を説明しているが、本明細書に記載されている特徴は、広く適用可能であり得ることが理解され得る。たとえば、分類器は、ユーザデバイス(たとえば、スマートフォン)に提供され得、特定の画像特徴又は物体を認識するために使用され得る。別の例として、分類器は、飛行機、無人航空機、無人車両などで使用され得る。
【0024】
トレーニングデータの生成
特定のユースケースに関連する追加のトレーニングデータを識別するためのニューラルネットワークトレーニング手法が開示される。追加のトレーニングデータ、特に、正しく分析するのが難しいユースケースについてのデータ、を識別及び収集することにより、ディープラーニングシステムが、そのパフォーマンスを改善するように再トレーニングされることができる。たとえば、難しいユースケースが識別されることができ、そのユースケースに基づいてデータが収集されることができる。次いで、古いモデルよりもパフォーマンスがすぐれている新しい機械学習モデルが、新しく収集されたデータを使用してトレーニングされることができる。さまざまな実施形態において、既存の機械学習モデルが、関連するトレーニングデータを識別するためにトリガ分類器と共に利用される。次いで、新しいトレーニングデータを作成するための処理のために、関連するトレーニングデータが返送される。いくつかの実施形態では、ターゲットユースケースを代表する初期データセットが作成され、トリガ分類器を作成するために使用される。
【0025】
たとえば、自動運転のためのディープラーニングシステムは、トンネルの出口を分析及び識別しにくい場合がある。トレーニングデータセットは、トンネルの出口の正及び負の例を使用して作成される。いくつかの実施形態では、トリガ分類器は、既存の機械学習モデルの層の中間出力を使用して、初期トレーニングデータセットでトレーニングされる。いくつかの実施形態では、その層は中間層である。たとえば、トレーニングセットからのデータが既存の機械学習モデルに供給され、モデルの、最後から2番目の層の出力が、トリガ分類器をトレーニングするための入力として使用される。いくつかの実施形態では、トリガ分類器は、デプロイされるディープラーニングアプリケーションからオフラインでトレーニングされたサポートベクタマシンである。トレーニングされた時点で、トリガ分類器は、車両の自動運転システム内ですでに使用されているディープラーニングシステムと一緒に実行されるために、インストール又はデプロイされ得る。たとえば、トリガ分類器は、トリガ分類器を車両にダウンロード及びインストールする無線ネットワークを介してデプロイされ得る。トリガ分類器は、分類器スコアを決定するために、デプロイされたディープラーニングシステムの同じ層の中間出力に適用される。いくつかの実施形態では、トリガ分類器への入力は、自律車両によってキャプチャされたセンサデータ、たとえば、車両上のカメラによってキャプチャされた画像データに適用される畳み込みニューラルネットワーク(CNN)の層の中間出力である。
【0026】
いくつかの実施形態では、単一のサポートベクタマシン、小さなニューラルネットワーク、又は別の適切な分類器を使用して実施されるトリガ分類器が、キャプチャされた画像全体及び/又は画像の特定の位置に適用され得る。たとえば、トリガ分類器は、画像のありとあらゆる位置又は位置のサブセットに適用されることができる。トリガ分類器は、ショッピングカート、動物などの小さな部分を識別するためにニューラルネットワークの特徴を空間的に効果的にスキャンするために適用されることができる。適用された時点で、トリガ分類器は分類器スコアを決定し、スコアに応じて、センサデータが識別され、潜在的に有用なトレーニングデータとして保持される。一例として、トリガ分類器は、データがトンネルの出口を表す可能性がどの程度かに基づいて、カメラからのセンサデータをスコアリングする。スコアが高く、トンネルの出口を表す可能性が高いセンサデータは保持され、トレーニングデータとして使用されるためにフラグが付けられる。いくつかの実施形態では、分類器スコアの決定を進めるために満たされなければならない条件、分類器スコアが閾値を超える状況、及び/又はセンサデータを保持するために必要な条件を決定するために、フィルタなどのトリガ特性がトリガ分類器に適用される。たとえば、いくつかの実施形態では、センサデータは、30分ごとに1回だけなど、間隔ごとに最大1回スコアリング及び収集される。いくつかの実施形態では、分類器スコアは、センサデータが収集及び保持されるために閾値を超えなければならない。センサデータが設定された閾値を満たしている場合、センサデータは保持され、潜在的な新しいトレーニングデータとして使用される。一実施形態では、センサデータは、トレーニングデータシステムを管理しているサーバに無線でアップロードされる。
【0027】
いくつかの実施形態では、位置、道路タイプ、車種、車両が左ハンドルか右ハンドルかどうか、時刻、分類器スコア、最後に送信されたセンサデータからの時間の長さ、及び/又は速度、加速、ステアリング、ブレーキング、ステアリング角度などの車両制御パラメータ/動作条件、などの追加のメタデータが収集され、センサデータと共に保持される。さまざまな実施形態において、データ及びメタデータが、コンピュータデータサーバに送信され、特定のユースケースのためのディープラーニングシステムのアプリケーションを改善するために新しいトレーニングデータセットを作成するために使用される。たとえば、識別されたトンネルの出口に関連付けられた保持されたセンサデータは、トリガ分類器によって識別され、トンネルの出口を識別するための追加のトレーニングデータを作成するために使用される。
【0028】
いくつかの実施形態では、アップロードした後、センサデータは、車両の自動運転機能を改善するために使用される新しいトレーニングデータセットを作成するために再検討され、アノテーションされる。たとえば、データはトンネルの出口の正のサンプルとしてアノテーションされ得、さらに多くのユースケースを含む元のトレーニングデータセットを補足するために使用され得る。新しい機械学習モデルは、自律車両のニューラルネットワークを改善するために、新しくキュレーションされたデータセットを使用してトレーニングされ、次いで、自律車両システムへの更新として車両にデプロイされる。新しくデプロイされた機械学習モデルは、トリガ分類器によってターゲットとされる特定のユースケース(たとえば、トンネルの出口)を検出するための改善された能力を有している。一例として、改善されたモデルは、トンネルの出口を識別することにおいて、改善された精度及びパフォーマンスを有することになる。ユースケースのさらなる例は、特定の物体(たとえば、ショッピングカート、動物など)、道路状況、天候、運転パターン、ハザードなどを識別するためにトレーニングされたトリガ分類器を含む。
【0029】
さまざまな実施形態において、トリガ分類器は、自動運転のために使用されるディープラーニングシステムのコンポーネントなど、車両のコアソフトウェアを更新することなく、開発され、車両のフリートにデプロイされることができる。車両の既存のニューラルネットワークソフトウェアにリンクし、及び関連付けられている、新規及び更新されたトリガ分類器は、はるかに頻繁に、そして、とりわけ、走行、安全システム、ナビゲーションなどのコアの車両機能性にほとんど又はまったく影響を与えることなく、車両に対して強要されることができる。たとえば、トリガ分類器は、石畳の道路を識別するようにトレーニングされ、車両のフリートにデプロイされ、数分以内に石畳の道路の画像及び関連データの収集を開始することができる。開示された手法を使用して、進行中の車両動作又は車両の運転者又は同乗者にほとんど又はまったく影響を与えることなく、特定のユースケースについて関連するトレーニングデータを収集する速度が大幅に改善される。新しいトリガ分類器が、長くて面倒なインストールプロセスなしでデプロイされることができる。このプロセスは、車両がサービス位置に運ばれることを必要とすることなく、たとえば無線更新を使用して、リモートで動的に実行されることができる。こうした更新の後、トリガ分類器は、キャプチャされた画像のスキャンを開始して、トリガ条件を満たす画像を探し得、次いで、それらの条件を満たす画像を将来のトレーニングデータ対象としてアップロードし得る。
【0030】
いくつかの実施形態では、センサデータは、異なるデバイスによって送信及び受信される。たとえば、その周囲に関連する情報を収集するセンサを含む、自動運転技術を備えた車両は、そのセンサからセンサデータを受信する。いくつかの実施形態では、車両は、自動運転に関連するデータをキャプチャするために、カメラ、超音波センサ、レーダセンサ、LiDAR、及び/又は他の適切なセンサなどのセンサを備えている。いくつかの実施形態では、ニューラルネットワークがセンサデータに適用される。たとえば、畳み込みニューラルネットワーク(CNN)が、車両の前の道路の画像など、受信されたセンサデータに適用される。CNNは、キャプチャされたセンサデータ内の物体を識別するために使用され得、ニューラルネットワークを適用した結果が車両の制御に使用される。一例として、道路車線のラインが識別され、識別された車線のラインの間に車両を維持するために使用される。
【0031】
いくつかの実施形態では、トリガ分類器が、センサデータについての分類器スコアを決定するために、ニューラルネットワークの中間出力に適用される。たとえば、層の中間出力が、センサデータについての分類器スコアを決定するトリガ分類器に供給される。いくつかの実施形態では、ニューラルネットワークは、複数の中間層を含み、トリガ分類器への入力をそこから受信すべき特定の中間出力(及び対応する層)が設定可能である。たとえば、最後から2番目、最後から3番目、最後から4番目などの層の出力を受信するようにトリガ分類器が構成されることができる。いくつかの実施形態では、中間出力は、ニューラルネットワークの中間層のいずれかからの出力である。いくつかの実施形態では、中間出力は、ニューラルネットワークの1番目の層の出力であり得る。いくつかの実施形態では、分類器スコアに少なくとも部分的に基づいて、センサデータの少なくとも一部をコンピュータネットワークを介して送信するかどうかの決定が行われる。たとえば、センサデータを保持してさらなる使用のためにデータを送信するために必要とされる閾値を分類器スコアが超えているかどうかに基づいて決定が行われる。いくつかの実施形態では、分類器スコア、及び追加のトリガ分類器条件が満たされているかどうか、に基づいて決定が行われる。必要な条件の例は、車両の位置、車両が走行している時間、車種、自動運転機能が最近解除されたかどうか、などに基づいて、キャプチャされたセンサデータをフィルタリングするために使用され得る。さまざまな実施形態において、必要な条件及びスコア閾値を満たすセンサデータは、さらなる処理のために、WiFi又はセルラネットワークなどのコンピュータネットワークを介してコンピュータサーバに送信される。いくつかの実施形態では、データは、新しい又は追加のトレーニングデータセットを作成するために処理される。さまざまな実施形態において、トレーニングデータは、トレーニングデータ及び検証データの両方を含む。
【0032】
ブロック図の例
図1Aは、道路に沿って移動し、周囲状況からトレーニングデータを収集する、車両を示す概略図である。例示的なブロック図では、車両102が道路を走行している。車両102は、センサが車両102に関するセンサボリューム104に関する情報をキャプチャするように、カメラ、レーダなどのセンサを含み得る。例示的なセンサ107が図1Aに示されている。たとえば、車両102は、車両102の周囲状況の画像を取得し得る。次いで、これらの取得された画像は、周囲状況を理解しようと分析され得る。たとえば、画像に表されている物体を分類するために画像が分析され得る。この例では、他の車両、道路標示、樹木又は他の植物、道路の障害物、歩行者、標識などを識別するために画像が分析され得る。以下でより詳細に説明されるように、車両102は、センサ情報を分析するために機械学習手法を活用し得る。たとえば、例示的なセンサボリューム104に含まれる物体を分類するために、1又は複数の畳み込みニューラルネットワークが使用され得る。図1B及び図7に関して、車両102によって使用され得るディープラーニングシステム700の例示的な説明が以下に含まれている。
【0033】
センサ情報を分析するために上記の機械学習手法が使用され得るが、ある特定の現実世界の物体又はシナリオは、車両102が正確に理解又は分類するのが難しい場合があることが理解されるべきである。たとえば、タイヤ106が、車両102が走行している道路上に配置されて示されている。このタイヤ106を認識できることは、車両102の安全性及びパフォーマンスを向上させ得る。一例として、車両102は、タイヤ106が車両102の経路内にある場合、タイヤ106を避けてナビゲートするために自動運転手法を実行し得る。さらに、タイヤが車両102の経路内にない場合でも、タイヤ102を認識することは、車両102の自動運転になお影響を与え得る。たとえば、他の車両が、タイヤ106を回避するために、車両102の車線に突然入り込んでくるかもしれない。このように、この例では、タイヤ106を識別できることは、車両102の将来の予測される動きを知らせ得る(たとえば、別の車両がタイヤ106に近づくにつれて先制して減速する)。
【0034】
このように、センサボリューム104に含まれているものとしてタイヤ106を正確に識別することは車両102にとって有益であり得る。しかしながら、そして上記のように、タイヤ106を識別できることは、かなりのトレーニングデータを必要とし得る。トレーニングデータは、さまざまな道路上のすべての構成の多数のタイヤの画像を含み得る。トレーニングデータは、異なる道路上の異なるタイヤの画像を含めることで強化され得る。さらに、トレーニングデータは、異なる走行環境における異なる道路上の異なるタイヤの画像によって強化され得る。たとえば、異なる道路上で雪に部分的に含まれているタイヤの画像を有することは有利であり得る。別の例として、ほこりっぽい道路に含まれている空気の抜けたタイヤの画像を有することは有利であり得る。こうした画像へのアクセスを獲得することは、大きな技術的課題を示し得る。
【0035】
説明されるように、タイヤを認識するように1又は複数の分類器がトレーニングされ得る。たとえば、限られた、トレーニング例のセットを使用して、分類器がトレーニングされ得る。次いで、これらの分類器は、無線(OTA:over the air)更新を介して車両102に提供され得る。たとえば、OTA更新は、車両102を介して無線で(たとえば、Wi-Fiを介して、LTEネットワークなどのセルラ信号を介して、など)受信され得る。次いで、分類器は、車両102によって取得されたセンサ情報を分析し得る。分類器が、タイヤがセンサ情報(たとえば、画像)内に描写されていることを検出した場合、車両102は、処理のためにセンサ情報を外部システムに送信し得る。この外部システムは、タイヤのトレーニングデータセットを作成するために、こうした受信されたセンサ情報を集約し得る。説明されるように、これらのトレーニングデータセットは、次いで、車両102上で実行される複雑な機械学習モデル(たとえば、畳み込みニューラルネットワーク)をトレーニングするために使用され得る。このようにして、自動運転タスクを実行するために、機械学習モデル、したがって車両102の能力が強化され得る。
【0036】
図1Bは、トレーニングデータの生成を示すブロック図である。この図示例では、センサデータ108が車両102によって受信されている。センサデータ108は、図1に示されるタイヤ106を描写する1又は複数の画像又は映像を含み得る。このセンサデータ108は、車両102に含まれる、1又は複数のプロセッサのディープラーニングシステム700に提供され得る。ディープラーニングシステム700の態様の一例が図1Bに示されている。
【0037】
示されるように、ディープラーニングシステム700は、受信されたセンサデータ108を分析するために、畳み込みニューラルネットワークなどの例示的な機械学習手法を使用し得る。図2に説明されるように、センサデータ108は、前処理され得る(たとえば、正規化され、フィルタを通されるなど)。畳み込みニューラルネットワークは、多数の畳み込み層を含み得ることが理解され得る。これらの畳み込み層は、出力ボリュームが作成されるように畳み込みフィルタを適用し得る。いくつかの実施形態では、センサデータ108に含まれる特徴又は物体を分類するために、最終層として、1又は複数の全結合層又は密層が使用され得る。一例として、1又は複数のソフトマックス層又は独立したロジスティック分類器が、特徴又は物体を分類するために使用され得る。このようにして、ディープラーニングシステム700は、車両102周囲のセンサボリューム104に含まれる、現実世界の物体、シナリオなどを識別し得る。これらの現実世界の物体、シナリオなどを識別することに基づいて、車両102は、自動運転タスクを実行し得る。このように、車両102は、その典型的な動作において畳み込みニューラルネットワークを実施し得る。
【0038】
ディープラーニングシステム700は、1又は複数の分類器を含む。たとえば、分類器A~N 110A~110Nが図1Bに示されている。これらの分類器110A~110Nは、車両102に対するOTA更新(たとえば、車両に提供される定期的な更新)を介して受信された可能性がある。分類器110A~110Nを受信する前に、エンティティは、センサデータ内に表されるそれぞれの特徴又は物体を識別するようにそれらをトレーニングした可能性がある。たとえば、分類器A 110Aは、雪景色を識別するようにトレーニングされた可能性がある。別の例として、分類器N 110Nは、タイヤ、道路上のバイクなどを識別するようにトレーニングされた可能性がある。エンティティは、限られたトレーニングデータを使用して分類器110A~110Nをトレーニングした可能性がある。たとえば、分類器N 110Nは、100、500、1000の、道路上のタイヤの例、又は特定のタイプの道路上の特定のタイプのタイヤを使用してトレーニングされた可能性がある。
【0039】
示されるように、分類器110A~110Nは、例示的な機械学習モデル(たとえば、畳み込みニューラルネットワーク)の一中間層から取得された情報を使用し得る。たとえば、畳み込みニューラルネットワークの一中間層から特徴112が取得され得る。畳み込みニューラルネットワークが、センサデータ内の特徴又は物体を分類又はその他の方法で識別するようにトレーニングされ得るので、分類器はこの既存の能力を活用し得る。一例として、畳み込みニューラルネットワークは、現実世界の物体を示す特徴を学習するために畳み込みフィルタを適用することを学習し得る。次いで、畳み込みニューラルネットワークは、現実世界の物体の特定のカテゴリ又はクラスに対応するように特徴を分類し得る。
【0040】
したがって、分類器110A~110Nをトレーニングするとき、それらは、畳み込みニューラルネットワークの一中間層から取得された情報を使用してトレーニングされ得る。たとえば、分類器110Nは、タイヤを描写している画像の限定されたトレーニングデータセットを使用してトレーニングされ得る。この例では、画像が例示的な畳み込みニューラルネットワークに提供され得る。畳み込みニューラルネットワークの特定の中間層で、特徴112が分類器110Nに提供され得る。次いで、分類器110Nは、タイヤを描写している画像について高い分類器スコアを割り当てるようにトレーニングされ得る。分類器110Nは、随意選択的に、タイヤを描写していない画像について低い分類器スコアを割り当てるようにトレーニングされ得る。このようにして、分類器110Nは、畳み込みニューラルネットワークを活用し得、これは、上記のように、車両102の典型的な動作で使用され得る。
【0041】
図1Bに示されるように、分類器110A~110Nは、畳み込みニューラルネットワークの一中間層から特徴112を受信している。随意選択的に、分類器110A~110Nは、異なる中間層からの特徴を使用し得る。たとえば、分類器N 110Nは、第1の層(たとえば、層4、5など)からの特徴を使用し得、一方、分類器A 110Nは、第2の層(たとえば、6、7など)からの特徴を使用し得る。トレーニングの間、そこから特徴を受信すべき特定の層が分類器ごとに識別され得る。たとえば、特定の層は、バリデーションデータセットに関する対応するトレーニング分類器の精度に基づいて識別され得る。
【0042】
図1Aに示されるタイヤ106に関して、分類器110A~110Nのうちの1つは、タイヤを識別するようにトレーニングされ得る。たとえば、分類器N 110Nが、タイヤを識別するようにトレーニングされ得る。この例では、分類器N 110Nは、分類器スコアをセンサデータ108に割り当て得る。示された例では、分類器N 110Nは、閾値よりも大きい分類器スコア(たとえば、0.5、0.7など)を割り当てている。したがって、車両102は、センサデータ108を外部システム(たとえば、トレーニングデータ生成システム120)に送信し得る。たとえば、車両は、Wi-Fi、セルラサービスなどを介して、ネットワーク(たとえば、インターネット)を介してセンサデータ108を送信し得る。
【0043】
このように、外部システム120は、多数の車両からセンサデータ108を受信し得る。たとえば、外部システム120は、通常の動作の途中に、たまたまタイヤの近くを通過し得る車両から、タイヤを描写している画像を受信し得る。有利には、これらのタイヤは、異なるタイプのものであり得、空気を抜かれているか又は朽ちた状態にあり得、異なる道路状況で表され得、部分的に閉塞され得る、などである。分類器110A~110Nは、一例として、多数のセンサデータ108の外部システム120への送信を引き起こす分類器スコアを使用し得る。たとえば、システム120に送信される画像の一部は、タイヤを含まない場合がある。このように、いくつかの実施形態では、エンティティは、画像のいくつかを迅速に再検討され得及び破棄し得る。残りの画像は、大きなトレーニングデータセットに集約され得、車両上で実行されている機械学習モデルを更新するために使用され得る。たとえば、畳み込みニューラルネットワークが、タイヤを識別するようにトレーニングされ得る。随意選択的に、バウンディングボックス又は他のラベル情報が、集約されたトレーニングデータセットに含まれる画像に割り当てられ得る。
【0044】
いくつかの実施形態では、車両102は、車両102によって現在実行されているよりも多くの分類器を有し得る。たとえば、車両102は、50、75、100の分類器を有し得る。しかしながら、車両102の動作の間、車両102は、20、30、40、又はそれ以上の分類器が実行され得る。たとえば、車両102は、車両102によって格納された全分類器のサブセットについてそれぞれの分類器スコアを決定し得る。随意選択的に、各分類器は、別の分類器と交換される前に、特定の期間実行され得る。
【0045】
さらに、車両102は、1又は複数のトリガに応じてある特定の分類器が実行され得る。一例として、車両102は、ある特定の現実世界の物体、特徴を有するか、又はある特定のシナリオを示す、ということが知られている位置、又はおおよその位置を識別する情報を受信し得る。たとえば、車両102は、ある特定のエリアにトンネルの出口があることを識別する地図情報にアクセスし得る。この例では、車両102は、車両102がトンネルの出口に近接しているときに、トンネルの出口の識別に関連付けられた分類器が実行されていることを確実にし得る。
【0046】
別の例として、外部システム120は、随意選択的に、受信されたセンサデータと共に位置情報を受信し得る。このように、外部システム120は、閾値数の車両が、特定の現実世界のエリアについて同じ分類器に基づいてセンサデータを送信したことを識別し得る。一例として、外部システム120は、特定のオンランプが道路に障害物を有することを識別し得る。別の例として、外部システム120は、特定のオンランプが道路にある特定のタイプの障害物を有することを識別し得る。次いで、システム120は、その特定の現実世界のエリアに近接しているときに同じ分類器を実行するために、車両の一部に情報を送信し得る。このようにして、システム120は、この同じセンサに基づいて、より大量のトレーニングデータを取得できることを確実にし得る。
【0047】
さらに、システム120は、上記の分類器が閾値を超える分類器スコアを割り当てない場合でも、センサデータを送信するように車両に指示し得る。一例として、システム120は、現実世界の位置に近接する閾値数の車両からセンサデータを受信し得る。この例では、システム120は、当該の現実世界の位置の閾値距離内の任意の車両に、それらの分類器が閾値を超える分類器スコアを生成しない場合でも、センサデータ(たとえば、画像)を送信するように指示し得る。分類器は、限られた数の例(たとえば、上記のように100、1000)のトレーニングセット上でトレーニングされ得るので、物体に対する特定の車両の角度に応じて、その特定の車両の分類器は、物体を識別しない場合がある。しかしながら、センサデータは、物体についてのロバストなトレーニングセットの生成に有用であり得る。たとえば、物体は、特定の車両によって取得された画像内で部分的に可視であり得、したがって、物体を識別するために大規模なトレーニングセットで有用であり得る。このようにして、外部システム120は、分類器をオーバライドし、特定の車両にセンサデータを送信させ得る。
【0048】
外部システム120が位置情報又は任意の識別情報を受信するすべての状況において、情報は匿名にされ得ることが理解されるべきである。さらに、こうした手法は、肯定的なユーザの許諾(たとえば、オプトイン)を必要とし得る。
【0049】
例示的なフロー図
図2は、機械学習モデルの中間結果にトリガ分類器を適用するためのプロセスの実施形態を示すフロー図である。いくつかの実施形態では、図2のプロセスは、自動運転のための機械学習モデルのためにセンサによってキャプチャされ、特定のユースケースを満たす、センサデータを収集及び保持するために利用される。たとえば、特定のユースケースは、特定の特徴、物体、シナリオなど、の識別に関連付けられ得る。いくつかの実施形態では、図2のプロセスは、自動運転制御がイネーブルにされているか否かにかかわらず、自動運転が可能である車両上で実施される。たとえば、センサデータは、自動運転が解除された直後、又は車両が人間の運転者によって運転されているときに収集されることができる。いくつかの実施形態では、図2によって説明される手法は、特に、分析が困難なユースケースについて、トレーニングデータセットを改善するために、自動運転のコンテキスト外の他のディープラーニングシステムに適用されることができる。さまざまな実施形態において、トリガ分類器は、機械学習の層の中間出力、及びユースケースのために設計されたトレーニングデータを使用してトレーニングされている。
【0050】
いくつかの実施形態では、複数のユースケースについてセンサデータを識別するために、複数のトリガ及び/又は複数の分類器が一緒に使用され得る。たとえば、トンネルを識別するために1つのトリガが使用され得、マンホールのために別のトリガが使用され得、道路の分岐点のために別のトリガが使用され得る、などである。いくつかの実施形態では、分類器スコアを決定するため、及び/又は必要な条件を適用するためのトリガ分類器の機能コンポーネントが、異なるトリガ間で共有される。いくつかの実施形態では、各トリガは、重み付きベクトル、オプションのバイアス、及び分類器スコアを比較するための1又は複数の閾値の基準値を使用して指定される。いくつかの実施形態では、時刻、車両の位置、道路タイプなどの追加の必要な条件が、特定のトリガについて指定される。たとえば、トリガは、トンネルのセンサデータが夜明けと夕暮れにのみキャプチャされることを必要とし得る。別の例として、及び重複データを減らすのに役立つため、トリガは、センサデータが、最大で30分ごとで、かつ、車両が少なくとも20分間運転された後にのみ、キャプチャされることを必要とし得る。さまざまな実施形態において、トリガ閾値及び必要な条件は、トリガ分類器に対して指定された特性である。
【0051】
201において、センサデータが受信される。たとえば、センサを備えた車両がセンサデータをキャプチャし、車両上で動作しているニューラルネットワークにそのセンサデータを提供する。いくつかの実施形態では、センサデータは、視覚データ、超音波データ、LiDARデータ、又は他の適切なセンサデータであり得る。たとえば、画像はハイダイナミックレンジの前向きのカメラからキャプチャされる。別の例として、超音波データは横向きの超音波センサからキャプチャされる。いくつかの実施形態では、車両には、データをキャプチャするための複数のセンサが取り付けられている。たとえば、いくつかの実施形態では、8つのサラウンドカメラが車両に取り付けられ、最大250メートルの範囲で車両の周囲に360度の視界を提供する。いくつかの実施形態では、カメラセンサは、広角の前方カメラ、挟角の前方カメラ、リアビューカメラ、前方を向いたサイドカメラ、及び/又は後方を向いたサイドカメラを含む。いくつかの実施形態では、周囲の詳細をキャプチャするために超音波及び/又はレーダセンサが使用される。たとえば、硬い物体及び柔らかい物体の両方を検出するために12個の超音波センサが車両に取り付けられ得る。いくつかの実施形態では、周囲環境のデータをキャプチャするために前向きのレーダが利用される。さまざまな実施形態において、レーダセンサは、大雨、霧、ほこり、及び他の車両にもかかわらず、周囲の詳細をキャプチャすることができる。車両周囲の環境をキャプチャするためにさまざまなセンサが使用され、キャプチャされた画像はディープラーニング分析のために提供される。
【0052】
203において、センサデータが前処理される。いくつかの実施形態では、1又は複数の前処理パスが、センサデータに対して実行され得る。たとえば、データは、位置合わせの問題及び/又はぼやけを修正するために、ノイズを除去するために前処理され得る。いくつかの実施形態では、1又は複数の異なるフィルタリングパスがデータに対して実行される。たとえば、センサデータの異なるコンポーネントを分離するために、ハイパスフィルタがデータに対して実行され得、及びローパスフィルタがデータに対して実行され得る。さまざまな実施形態において、203で実行される前処理ステップは、オプションであり、及び/又はニューラルネットワークに組み込まれ得る。
【0053】
205において、センサデータのディープラーニング分析が開始される。いくつかの実施形態では、ディープラーニング分析が、203で随意選択的に前処理されたセンサデータに対して実行される。さまざまな実施形態において、ディープラーニング分析は、畳み込みニューラルネットワーク(CNN)などのニューラルネットワークを使用して実行される。さまざまな実施形態において、機械学習モデルはオフラインでトレーニングされ、センサデータに対して推論を実行するために車両にインストールされる。たとえば、モデルは、必要に応じて、道路車線のライン、障害物、歩行者、移動車両、駐車車両、運転可能なスペースなどを識別するようにトレーニングされ得る。さまざまな実施形態において、ニューラルネットワークは、1又は複数の中間層を含む複数の層を含む。
【0054】
207において、潜在的なトレーニングデータが識別される。たとえば、機械学習モデルをトレーニングするために使用され得るセンサデータが、ディープラーニング分析を使用して分析されたセンサデータから識別される。いくつかの実施形態では、識別されたトレーニングデータは、特定のユースケースに関連付けられたデータである。たとえば、可能なユースケースは、カーブした道路、オンランプ、オフランプ、トンネルの入口、トンネルの出口、道路の障害物、道路の分岐点、道路車線のライン又はマーカ、運転可能なスペース、道路標識、標識の内容(例えば、単語、数字、記号など)、及び/又は必要に応じて自動運転のための他の特徴、を識別することに関与し得る。さまざまな実施形態において、センサデータ内に描写されるユースケースは、ディープラーニング分析に使用されるニューラルネットワークの層の中間出力、及びトリガ分類器を使用することによって識別される。たとえば、トリガ分類器は、ニューラルネットワークの中間層の出力を使用して分類器スコアを決定する。閾値を超え、トリガと共に指定された必要な条件に合格する分類器スコアは、潜在的なトレーニングデータとして識別される。さまざまな実施形態において、閾値は、ユースケースの正の例を識別するために利用される。たとえば、分類されたスコアが高いほど、センサデータがユースケースを代表する可能性が高いことを示す。いくつかの実施形態では、分類器スコアは、負の数と正の数との間の数である。正の数に近いスコアは、ターゲットユースケースを代表する可能性がより高い。さまざまな実施形態において、時刻、車種、位置などの追加のフィルタによって指定された条件が、ターゲットユースケースについてセンサデータを識別するために使用される。
【0055】
209において、識別されたセンサデータが送信される。たとえば、207で識別されたセンサデータが、さらなる処理のためにコンピュータサーバに送信される。いくつかの実施形態では、さらなる処理は、識別されたセンサデータを使用してトレーニングセットを作成することを含む。さまざまな実施形態において、センサデータは、たとえば、WiFi又はセルラ接続を介して、車両からデータセンタに無線で送信される。いくつかの実施形態では、センサデータと共にメタデータが送信される。たとえば、メタデータは、速度、加速、ブレーキング、自動運転がイネーブルにされていたかどうか、ステアリング角度などの車両の制御及び/又は動作パラメータ、分類器スコア、時刻、タイムスタンプ、位置、車種などを含み得る。さらなるメタデータは、前回最終のセンサデータが送信されてからの時間、車種、天候状況、道路状況などを含む。
【0056】
211において、データの後処理が実行される。いくつかの実施形態では、品質を向上させるため、及び/又はデータを表すために必要とされるデータの量を削減するために、異なる後処理手法が利用される。いくつかの実施形態では、ディープラーニング分析の出力は、他のセンサに適用されたディープラーニングの結果とマージされる。いくつかの実施形態では、後処理は、異なるセンサデータに対して実行される分析を円滑にするために使用される。処理されたデータは、車両を制御するために使用され得る。データに関連する追加情報も211で処理され得る。たとえば、どの自動運転機能がイネーブルにされているかなどを含んで、自動運転システムの設定などの情報が、ディープラーニング分析と組み合わせられ得る。他の情報は、車両の動作及び/又は制御パラメータ、及び/又は、地図、地形及び/又はGPSデータなどの環境データ、を含み得る。いくつかの実施形態では、後処理は、車両の周囲環境の統一された表現を作成するために、他のセンサからのデータに対して実行されたディープラーニング分析の結果を組み合わせることを含み得る。いくつかの実施形態では、211での後処理ステップは、オプションのステップである。
【0057】
213において、ディープラーニング分析の結果が車両の制御に提供される。たとえば、結果は、自動運転のために車両を制御するために車両制御モジュールによって使用される。いくつかの実施形態では、車両制御は、車両の速度及び/又はステアリングを調節することができる。さまざまな実施形態において、車両制御はディセーブルにされ得るが、205でのディープラーニング分析の中間結果は、207でトレーニングデータを識別し、識別されたセンサデータを209で送信する、ために利用される。このようにして、車両が自動運転システムの制御下にないときでも、適切なトレーニングデータを識別及び保持するために、ディープラーニング分析が利用されることができる。さまざまな実施形態において、自動運転システムがアクティブであるとき、センサデータが識別及び保持される。
【0058】
図3は、機械学習モデルの中間結果を使用してトリガ分類器を作成するためのプロセスの実施形態を示すフロー図である。いくつかの実施形態では、特定のユースケースについて関連するセンサデータを識別及び保持するためのトリガ分類器をトレーニングするために、図3のプロセスが利用される。たとえば、その通常の使用中にディープラーニングシステムによって処理されるセンサデータは、トレーニングデータとして有用なデータのサブセットを含む。トリガ分類器は、自動運転についてのディープラーニングシステムの中間結果を使用して、トンネルの入口、トンネルの出口、道路の分岐点、曲がった道路、オンランプ、及び、自動運転に有用な他の適切な特徴、などのユースケースを識別するようにトレーニングされることができる。ディープラーニングシステムの中間結果をトリガ分類器と共に利用することにより、識別と収集の効率が大幅に改善される。さまざまな実施形態において、トレーニングされたトリガ分類器は、関連するユースケースについての潜在的なトレーニングデータを収集及び保持するために、デプロイされたディープラーニングシステムにトリガ特性と共にインストールされる。いくつかの実施形態では、他の適切な分類器が使用され得るものの、トリガ分類器はサポートベクタマシンである。たとえば、いくつかの実施形態では、トリガ分類器はニューラルネットワークであり、1又は複数の中間層を含み得る。いくつかの実施形態では、デプロイされたディープラーニングシステムは、図2のプロセスを利用する。
【0059】
301において、トレーニングデータが準備される。たとえば、特定のユースケースの正及び負の例がトレーニングデータとして用意される。一例として、トンネルの出口の正及び負の例が収集及びアノテーションされる。キュレーション及びアノテーションされたデータセットが、トレーニングセットを作成するために使用される。いくつかの実施形態では、アノテーションは、データをラベル付けすることを含み、人間のキュレータによって実行され得る。いくつかの実施形態では、データのフォーマットは、デプロイされたディープラーニングアプリケーションで使用される機械学習モデルと互換性がある。さまざまな実施形態において、トレーニングデータは、トレーニングされたモデルの正確さをテストするためのバリデーションデータを含む。
【0060】
303において、ディープラーニング分析がトレーニングデータに適用される。たとえば、ディープラーニングプロセスを開始するために、既存の機械学習モデルが使用される。いくつかの実施形態では、ディープラーニングモデルは、複数の層を有する畳み込みニューラルネットワーク(CNN)などのニューラルネットワークである。いくつかの実施形態では、CNNは、3つ以上の中間層を含み得る。ディープラーニング分析の例は、自動運転のためのニューラルネットワークを含む。さまざまな実施形態において、ディープラーニング分析は、中間層の結果を生成するために、301で準備されたトレーニングデータ
【0061】
305において、トリガ分類器がトレーニングされる。いくつかの実施形態では、トリガ分類器は、サポートベクタマシン又は小さなニューラルネットワークである。さまざまな実施形態において、トリガ分類器への入力は、ディープラーニングシステムの機械学習モデルの1番目の層又は一中間層の出力である。入力に使用される特定の層は設定可能であり得る。たとえば、最後から2番目の層、最後から3番目の層、最後から4番目の層など、1番目の層までの出力が、トリガ分類器をトレーニングするための入力として利用され得る。さまざまな実施形態において、トレーニングデータのアノテーションされた結果が、RAWデータ(画像データなど)と共に、トリガ分類器をトレーニングするために使用される。正及び負の例を使用することにより、トリガ分類器は、入力(たとえば、センサデータからの入力)がトンネルの出口などの特定のユースケースに一致する可能性を識別するようにトレーニングされる。いくつかの実施形態では、トレーニングされたトリガ分類器の結果は、301で作成されたバリデーションデータセットを使用してバリデーションされる。いくつかの実施形態では、トリガ分類器は、車両にデプロイされたニューラルネットワークと一致するオフラインのニューラルネットワークを使用してトレーニングされる。
【0062】
いくつかの実施形態では、ニューラルネットワーク出力の出力は、入力データ(RAW画像など)の特徴を識別する特徴ベクトルである。特徴は、RAWデータ内の、車両数、標識数、車線数などを含み得る。層、たとえば、最終層の前に処理された層の、中間出力は、RAW入力データの意味情報を含む。いくつかの実施形態では、層の中間出力はベクトル形式で表され得、ベクトルは最終層のベクトル出力よりも多くの要素を有する。たとえば、ニューラルネットワークの最終出力は32要素のベクトルであり、一方、最後から2番目の層の出力は64要素のベクトルであり得る。さまざまな実施形態において、ニューラルネットワークの1番目及び中間層の出力(たとえば、64要素のベクトルなど)は、ニューラルネットワークの最終層の出力(たとえば、32要素のベクトルなど)よりも大量の、RAW入力データに関連付けられた意味情報を含み、したがって、トリガ分類器をトレーニングするために使用される。いくつかの実施形態では、トリガ分類器をトレーニングするために選択される特定の層は、動的に選択され得る。たとえば、特定の中間層(より前の層など)は、別の層(最終層に近い層など)と比較した当該の特定の層の正確さにおける改善に基づいて選択され得る。いくつかの実施形態では、特定の層は、層を利用する際の効率に基づいて選択される。たとえば、層を使用した結果が正確さの要求を満たす場合、より小さな出力ベクトルを有する層が選択され得る。
【0063】
いくつかの実施形態では、2つ以上のトリガ分類器をトレーニングするために異なる中間層からの入力が使用され、トレーニングされた異なる分類器が互いに比較される。複数の分類器のどれを使用するべきかを決定するために、正確さとパフォーマンスとの間のバランスが使用される。たとえば、いくつかのユースケースについては、より前の中間層の出力が必要であり、一方、他のユースケースについては、より後の中間層の出力で十分である。最適な中間層の出力は、複数のトレーニングされたトリガ分類器を比較することによって決定され得る。さまざまな実施形態において、中間結果を受信するべきはニューラルネットワークのどの層かが、トリガ分類器トレーニングプロセスの一部として動的に選択される。
【0064】
いくつかの実施形態では、トレーニングされた分類器は、ベクトル及びバイアス要因によって指定され得る。たとえば、トレーニングされた分類器は、分類器スコアを決定するためにバイアス要因によってオフセットされた重みのベクトルであり得る。いくつかの実施形態では、ベクトルの要素の数は、使用される中間層の出力の要素の数、及び分類器をトレーニングするための入力の要素の数、と同じである。たとえば、分類器をトレーニングするために使用される中間層の出力が1024要素である場合、トリガ分類器をトレーニングするために使用される入力データは1024要素であり、結果のトリガ分類器は1024の重み付きベクトル及びバイアスとして表されることができる。いくつかの実施形態では、バイアスはオプションであり、重み付きベクトルの要素によって考慮に入れられ得る。
【0065】
307において、305でトレーニングされた分類器についてトリガ特性が決定される。たとえば、トレーニングされたトリガ分類器によって決定された分類器スコアと比較される閾値が決定され得る。たとえば、閾値を超える分類器スコアは、スコアに関連付けられたRAW入力がターゲットユースケースの正の例である可能性が高いことを示す。たとえば、トンネルの出口を識別するようにトレーニングされたトリガ分類器が分類器スコアを決定する。0.5の閾値を使用すると、0.7の分類器スコアは、データがトンネルの出口を代表する可能性が高いことを示す。いくつかの実施形態では、-1.0のスコアは負の例であり、1.0のスコアは正の例である。分類器スコアは-1.0から1.0の間にあり、RAW入力がターゲットユースケースの正又は負の例である可能性がどの程度かを示す。
【0066】
いくつかの実施形態では、トリガ特性は、トリガフィルタなどの必要な条件を含む。トリガフィルタは、センサデータの保持を、記載された条件に制限するために使用されるフィルタである。たとえば、センサデータは、データに関連付けられた位置に基づいて保持のためにトリガされ得る。他の例は、最後のセンサデータがトリガされ正の識別からの時間の長さ、ドライブが開始されてからの時間の長さ、時刻、位置、道路タイプなどを含む。さまざまな実施形態において、1又は複数のトリガ特性が、トリガ分類器がセンサデータを収集及び保持するために使用される条件を制限するために指定されることができる。
【0067】
309において、トリガ分類器及びトリガ特性がデプロイされる。たとえば、トリガ分類器、及びセンサデータを保持するために分類器をトリガするために使用される特性が、ディープラーニングシステムと一緒にインストールされる。たとえば、トリガ分類器及び特性は、車両に無線で送信される小さなバイナリとしてパッケージ化され得る。いくつかの実施形態では、パッケージ化されたトリガ分類器及び特性は、WiFi又はセルラネットワーク接続などの無線技術を使用して、無線更新として送信される。車両で受信された時点で、トリガ分類器及び特性は自動運転システムの一部としてインストールされる。いくつかの実施形態では、トリガ分類器のみがインストールされる。いくつかの実施形態では、トリガ分類器、及び自動運転のためのディープラーニングモデルが一緒にインストールされる。さまざまな実施形態において、自動運転システムの機械学習モデルは、トリガ分類
【0068】
図4は、トリガ分類器を使用して潜在的なトレーニングデータを識別するためのプロセスの実施形態を示すフロー図である。いくつかの実施形態では、トリガ分類器は、ディープラーニングシステムと組み合わせて実行される。たとえば、トリガ分類器をトレーニングするために使用されるものと一致する機械学習モデルを使用するディープラーニングシステムが、自動運転システムの一部としてトリガ分類器と共に利用される。トリガ分類器は、センサデータを保持することを保証する特定のユースケースをセンサデータが満たしているかどうかを識別するために、ディープラーニングシステムによって少なくとも部分的に分析されたセンサデータを分析する。次いで、センサデータはコンピュータサーバに送信され、特定のユースケースを識別することにおいて改善されたパフォーマンスを有する改訂された機械学習モデル、についてのトレーニングデータを作成するために使用され得る。ユースケースの例は、オンランプ、トンネルの出口、道路の障害物、道路の分岐点、特定の車種などを識別することを含む。いくつかの実施形態では、トリガパラメータが、関連する結果をトリガ分類器が識別する条件を設定するために使用される。いくつかの実施形態では、1又は複数の異なるユースケースを識別するために、1又は複数のトリガ分類器及びパラメータが使用される。いくつかの実施形態では、図4のプロセスが、図2の205、207、209、211、及び/又は213で実行される。いくつかの実施形態では、図4のプロセスで使用されるトリガ分類器が、図3のプロセスを使用してトレーニングされる。
【0069】
401において、ディープラーニング分析が開始される。たとえば、自動運転システムのディープラーニング分析が、車両に取り付けられたセンサによってキャプチャされたセンサデータで開始される。いくつかの実施形態では、開始されたディープラーニング分析は、センサデータを前処理することを含む。さまざまな実施形態において、ディープラーニング分析は、1又は複数の中間層を含む複数の層を有するトレーニングされた機械学習モデルを利用する。いくつかの実施形態では、1番目の層及び任意の中間層の出力は、中間出力と見なされる。さまざまな実施形態において、中間出力は、最終出力(たとえば、モデルの最終層の出力)以外の、機械学習モデルの層の出力である。
【0070】
403において、ディープラーニング分析の1つの層を使用した推論が完了する。たとえば、ニューラルネットワークは、その後に最終層が続く中間層を含む複数の層を含む。各層の出力(たとえば、中間結果)は、入力として次の層に供給される。いくつかの実施形態では、1番目の層及び各中間層の出力は、中間結果と見なされる。さまざまな実施形態において、単一の層の出力の決定結果は、次の層への入力として使用され得るベクトルである。いくつかの実施形態では、ニューラルネットワークの1番目の層への入力は、画像データなどのセンサデータである。いくつかの実施形態では、ニューラルネットワークは畳み込みニューラルネットワークである。
【0071】
405において、403で実行された層分析の出力がニューラルネットワークの最終層の結果であるかどうかの判断がなされる。出力が最終層の結果ではなく、たとえば、出力が中間結果である場合、処理は409に続く。出力がニューラルネットワークの最終層の結果である場合、機械学習モデルを使用して実行された推論が完了し、処理は407に続く。いくつかの実施形態では、407に提供される405での出力は、特徴ベクトルである。
【0072】
407において、センサデータに対してディープラーニング分析を実行した結果が車両制御に提供される。いくつかの実施形態では、結果は後処理される。たとえば、1又は複数の異なるセンサからの入力についての1又は複数の異なるニューラルネットワークの結果が組み合わされ得る。いくつかの実施形態では、車両制御は、車両の動作を制御するために車両制御モジュールを使用して実施される。たとえば、車両制御は、自動運転のために車両の速度、ステアリング、加速、ブレーキングなどを変更することができる。いくつかの実施形態では、車両制御は、方向指示器、ブレーキライト、ヘッドライトをイネーブル又はディセーブルにし得、及び/又は、WiFi又はセルラネットワークなどの無線ネットワークを介してネットワークメッセージを送信することなどのネットワーク制御を含む車両の他の制御/信号を操作し得る。さまざまな実施形態において、たとえば、自動運転機能がディセーブルにされているとき、車両を能動的に制御するために車両制御がイネーブルにされない場合がある。たとえば、自動運転システムが車両を能動的に制御していないときでも、潜在的なトレーニングデータを識別するために、トリガ分類器への入力として結果を提供するために、401及び403でのディープラーニング分析が実行される。
【0073】
409において、ニューラルネットワークの層及びトリガ条件がトリガ分類器を適用するのに適切であるかどうかの判断がなされる。たとえば、トリガ特性は、トリガ分類器を適用するために必要とされる条件を示す。条件の例は、最後のキャプチャからの時間の長さが最小時間を超えたかどうか、運転の最小の時間の長さが経過したかどうか、時刻がある特定の範囲内にあるかどうかなどを含む。異なる時刻の例は、夜明け、夕暮れ、昼間、夜間などを含み得る。さらなる条件要件は、位置、天候、道路状況、道路タイプ、車種、自動運転機能の解除、ステアリング角度(たとえば、ステアリング角度の閾値を超える)、加速の変化、ブレーキの起動、又は他の適切な特徴に基づき得る。異なる天候状況の例は、雪、雹、みぞれ、雨、大雨、どんよりした曇り、晴れ、曇り、霧などを含み得る。トリガ特性によって、異なる条件が指定され得る。いくつかの実施形態では、異なるユースケースは、異なるトリガ特性、及びニューラルネットワークの異なる層の中間結果を利用し得る。たとえば、いくつかのユースケースは、より効率的であり得、ニューラルネットワークのより後の層の中間結果を使用して、高品質の結果を生成し得る。他のユースケースは、ユースケースを満たすセンサデータの有用な例を識別するために、より前の中間結果を必要とし得る。場合によっては、トリガ分類器を適用する条件を指定するために使用されるトリガ特性は、複数の条件付きチェック、及び/又は、AND演算子及びOR演算子などの論理演算子を使用してネスティングされることができる。
【0074】
411において、トリガ分類器スコアが決定される。たとえば、トリガ分類器スコアは、ニューラルネットワークの中間結果にトリガ分類器を適用することによって決定される。いくつかの実施形態では、トリガ分類器のアプリケーションは、センサデータに関連付けられた分類器スコアを決定するために、重み付きベクトル及びオプションのバイアスを利用する。いくつかの実施形態では、トリガ分類器は、サポートベクタマシン又はニューラルネットワークである。いくつかの実施形態では、トリガ分類器のパフォーマンスは、カスタマイズされた人工知能(AI)プロセッサ上で分類器を動作させることによって改善される。たとえば、AIプロセッサは、非常に少ないサイクルで2つのベクトルに対してドット積演算を実行、及び/又は無駄なサイクルを制限して複数のドット積を実行することができる。いくつかの実施形態では、決定された分類器スコアは、センサデータがターゲットユースケースの正(又は負)の例である可能性を表す浮動小数点数である。たとえば、センサデータがターゲットユースケースの負又は正の例である可能性を表すために、-1~+1の間などの特定の範囲が使用され得る。
【0075】
413において、分類器スコアが閾値を超えるかどうか、及び必要なトリガ条件が満たされるかどうかの判断が行われる。たとえば、いくつかの実施形態では、分類器スコアが閾値と比較される。分類器スコアが閾値を超える場合、処理は415に続く。分類器スコアが閾値を超えない場合、処理は403に続く。いくつかの実施形態では、分類器スコアが決定された後、追加のトリガ必要条件が適用され得る。たとえば、決定された分類器スコアは、ある特定の時間枠内で以前に決定された分類器スコアと比較され得る。別の例として、決定された分類器スコアは、同じ位置からの以前に決定されたスコアと比較され得る。別の例として、センサデータは、時間条件及び位置条件の両方を満たすことを要求され得る。たとえば、過去10分以内の同じ位置からの最も高いスコアのセンサデータのみが潜在的なデータとして保持され得る。さまざまな実施形態において、条件は、センサデータを送信するか又は送信しないかのいずれかのためのフィルタとして機能するトリガ特性を含み得る。いくつかの実施形態では、413での条件はオプションであり、分類器スコアのみが閾値と比較される。
【0076】
いくつかの実施形態では、正及び負の例の両方について別個の閾値が存在する。たとえば、正及び負のセンサデータを潜在的なトレーニングデータとして識別するために、+0.5及び-0.5の閾値が利用され得る。正の例を識別するために+0.5~1.0の間の分類器スコアが使用され、負の例を識別するために-1.0~-0.5の間の分類器スコアが使用される。いくつかの実施形態では、正の例のみが送信のために保持される。
【0077】
415において、識別されたセンサデータが送信される。たとえば、識別されたセンサデータは、コンピュータサーバ(たとえば、トレーニングデータ生成システム120)に送信され、そこで、トレーニングデータを作成するために使用され得る。さまざまな実施形態において、トレーニングデータは、トレーニングデータセット及びバリデーションデータセットを含む。いくつかの実施形態では、送信されるセンサデータはメタデータを含む。メタデータの例は、データの時刻、タイムスタンプ、道路状況、天候状況、位置、車種、車両が左ハンドル車両かそれとも右ハンドル車両か、分類器スコア、ユースケース、ニューラルネットワークの識別子、トリガ分類器の識別子、自動運転システムに関連付けられたファームウェアバージョン、又は、センサデータ及び/又は車両に関連付けられた他の適切なメタデータを含み得る。いくつかの実施形態では、時刻は、夕暮れ、夜明け、夜、昼光、満月、日食などの期間を示し得る。たとえば、トリガ分類器をトレーニングするために使用され、分類器スコアを決定する際に使用される、特定のトレーニングされた機械学習モデルを識別するために、ニューラルネットワーク及び/又はトリガ分類器の識別子が送信され得る。いくつかの実施形態では、センサデータ及び/又はメタデータは、送信される前に先ず圧縮される。いくつかの実施形態では、センサデータは、センサデータをより効率的に転送するためにバッチで送信される。たとえば、センサデータの複数の画像の圧縮が実行され、一連のセンサデータが一緒に送信される。
【0078】
図5は、トリガ分類器によって識別されたユースケースに対応するデータからトレーニングデータを作成するためのプロセスの実施形態を示すフロー図である。たとえば、機械学習モデルをトレーニングするためのトレーニングデータを作成するために、受信されたセンサデータが処理される。いくつかの実施形態では、センサデータは、トリガ分類器を利用する自動運転システムを介してキャプチャされた走行データに対応する。いくつかの実施形態では、センサデータは、図3のプロセスを使用してトレーニングされたトリガ分類器によって、図4のプロセスを使用して受信される。いくつかの実施形態では、センサデータは、道路の分岐点、オンランプ、オフランプ、トンネルの入口などの識別など、特定のユースケースに基づいてキャプチャされたセンサデータに対応する。いくつかの実施形態では、受信されたセンサデータは、ユースケースの正の例のみに対応する。いくつかの実施形態では、センサデータは、正及び負の例の両方を含む。さまざまな実施形態において、センサデータは、分類器スコア、位置、時刻、又は他の適切なメタデータなどのメタデータを含む。
【0079】
501において、トリガ条件を満たすセンサデータが受信される。たとえば、特定のターゲットユースケースに対応するセンサデータが受信され、潜在的なトレーニングデータとして使用され得る。さまざまな実施形態において、センサデータは、機械学習モデルが入力として使用する形式である。たとえば、センサデータは、RAW画像データ、又は処理された画像データであり得る。いくつかの実施形態では、データは、超音波センサ、レーダ、LiDARセンサ、又は他の適切な技術からキャプチャされたデータである。さまざまな実施形態において、トリガ条件は、図2から図4に関して説明されるように、トリガ分類器及びトリガ特性を使用して指定される。
【0080】
503において、センサデータがトレーニングデータに変換される。たとえば、501で受信されたセンサデータは、潜在的に有用なトレーニングデータとして識別されたデータを含む。いくつかの実施形態では、受信されたセンサデータは、離れた位置にある車両からデータを送信するための効率を改善するために圧縮され、最初に解凍される。いくつかの実施形態では、データは、センサデータがターゲットユースケースを正確に表すかどうかを判断するために再検討される。たとえば、RAWセンサデータが実際にトンネルの出口のデータであるかどうかを判断するために、トンネルの出口の例を識別するためのターゲットユースケースが再検討される。いくつかの実施形態では、センサデータがターゲットユースケースを表すかどうかを確認するために、高度に正確な機械学習モデルが使用される。いくつかの実施形態では、センサデータがターゲットユースケースを表すかどうかを人間が再検討及び確認する。いくつかの実施形態では、トレーニングのための有用なデータがアノテーションされる。たとえば、データが、正又は負の例のいずれかとしてマークされ得る。いくつかの実施形態では、データが、ターゲット物体についてアノテーションされ、ラベル付けされ得る。たとえば、ターゲットユースケースに応じて、車線マーカ、標識、信号機などがアノテーションされ得る。さまざまな実施形態において、アノテーションは、トレーニングされた機械学習モデルのトレーニング及び/又は検証のために使用され得る。
【0081】
505において、503で変換されたトレーニングデータが、トレーニング及びバリデーションデータセットとして準備される。さまざまな実施形態において、503で変換されたセンサデータが、トレーニングのためのデータセット、及び機械学習モデルをバリデーションするためのバリデーションデータセットに準備される。いくつかの実施形態では、503のトレーニングデータは、既存のトレーニングデータセットにマージされる。たとえば、ほとんどのユースケースに適用可能な既存のトレーニングデータセットが、特定のユースケースのカバレッジを改善するために、新しく変換されたトレーニングデータとマージされる。新しく変換されたトレーニングデータは、特定のユースケースを識別する際に、モデルの正確さを改善するのに有用である。いくつかの実施形態では、既存のトレーニングデータのいくつかの部分が破棄され、及び/又は新しいトレーニングデータで置き換えられる。
【0082】
507において、機械学習モデルがトレーニングされる。たとえば、機械学習モデルが、505で準備されたデータを使用してトレーニングされる。いくつかの実施形態では、モデルは、畳み込みニューラルネットワーク(CNN)などのニューラルネットワークである。さまざまな実施形態において、モデルは、複数の中間層を含む。いくつかの実施形態では、ニューラルネットワークは、複数の畳み込み層及びプーリング層を含む複数の層を含み得る。いくつかの実施形態では、トレーニングモデルは、受信されたセンサデータから作成されたバリデーションデータセットを使用してバリデーションされる。
【0083】
509において、トレーニングされた機械学習モデルがデプロイされる。たとえば、トレーニングされた機械学習モデルが、自律学習システムの更新として車両にインストールされる。たとえば、新しいモデルをインストールするために無線更新が使用されることができる。いくつかの実施形態では、更新は、WiFi又はセルラネットワークなどの無線ネットワークを使用して送信されるファームウェア更新である。いくつかの実施形態では、新しいモデルが、新しいトリガ分類器をトレーニングするために利用される。さまざまな実施形態において、古いモデルに基づく既存のトリガ分類器は期限切れになり、新しくトレーニングされたモデルに基づいて新しいトリガ分類器がデプロイされる。いくつかの実施形態では、車両が点検されるときに新しい機械学習モデルがインストールされる。
【0084】
図6は、車両上で分類器の選択を引き起こすためのプロセスの実施形態を示すフロー図である。このプロセスは、1又は複数のプロセッサの車両などの車両によって随意選択的に実施され得る。たとえば、車両は多数の分類器を格納した可能性がある。この例では、車両は、処理リソースを節約するために分類器のサブセットを実行し得る。たとえば、車両はサブセットのみについて分類器スコアを決定し得る。図1Bで説明されるように、車両はサブセットを定期的に更新し得る(たとえば、閾値時間後に新しい分類器を選択する)。いくつかの実施形態では、車両は、車両が1又は複数の特定の分類器を実行することになることを識別する外部システム(たとえば、システム120)からの情報を受信し得る。
【0085】
ブロック601において、車両が分類器を実行する。上記のように、車両は、センサデータを取得し得、センサデータに基づいて分類器スコアを決定し得る。
【0086】
ブロック603において、車両は、新しい分類器を選択するためのトリガを受信する。車両は、少なくともグローバルナビゲーション衛星システム(GNSS)レシーバを介してその位置をモニタリングし得る。いくつかの実施形態では、車両は、地図情報にアクセスすることができ得る。地図情報は、トレーニングデータを取得することが好都合であり得るある特定の特徴又はユースケースを識別し得る。一例として、地図情報はトンネルの出口を識別し得る。別の例として、地図情報は、部分的に塞がれているか又は隠された脇道を識別し得る。別の例として、地図情報は、特定のスタイル又は形態のバイクレーン(たとえば、レイズされたか又はオフセットされたバイクレーン)の位置を識別し得る。車両は、特定の特徴又はユースケースにいつ近接しているとき(たとえば、閾値距離で)を判断し得る。次いで、車両は、特定の特徴又はユースケースに関連付けられた新しい分類器を識別する情報を取得し得る。次いで、この新しい分類器が、受信されたセンサデータについての分類器スコアを決定するために車両によって実行され得る。
【0087】
さらに、車両は位置情報を外部システムに送信し得る。次いで、外部システムは、車両が実行すべき1又は複数の新しい分類器に関して車両に情報を送信し得る。たとえば、外部システムは、各分類器に関連付けられたユニークな識別子を送信し得る。図1Bに説明されるように、外部システムは、少なくとも特定の数の車両(たとえば、1、3、10、20)上で実行されている同じ分類器から情報を受信した可能性がある。これらの車両は、外部システムがそれらの位置に近接する特徴又はユースケースの存在を判断するように、互いに閾値距離(たとえば、半径)内に存在していた可能性がある。このように、外部システムは、それが位置の閾値距離内にある場合、同じ分類器を実行するように車両に指示し得る。このようにして、外部システムはこの分類器に関連付けられたセンサデータを取得することができる。
【0088】
ブロック605において、車両は新しい分類器を実行する。本明細書で説明されるように、新しい分類器は、機械学習モデルの中間層(たとえば、畳み込みニューラルネットワーク)から情報を取得し得る。次いで、ブロック607において、車両は分類器スコアを決定する。次いで、ブロック609において、車両は、閾値を超える分類器スコアに基づいてセンサデータ(たとえば、画像)を送信する。上記のように、センサデータはメタデータと共に送信され得る。
【0089】
図7は、潜在的なトレーニングデータを識別するためのディープラーニングシステムの実施形態を示すブロック図である。たとえば、ブロック図は、自動運転のためにキャプチャされたセンサデータのサブセットが潜在的なトレーニングデータとして識別される、自動運転のためのトリガ分類器に接続されたディープラーニングシステムの異なるコンポーネントを含む。いくつかの実施形態では、ディープラーニングシステムは、センサデータを受動的に分析し得、ディープラーニングシステムの層の中間出力は、トリガ分類器への入力として使用される。いくつかの実施形態では、ディープラーニングシステムは、車両の動作を積極的に分析及び制御し、一方、追加のトレーニングデータを作成するための潜在的に有用なセンサデータを識別及び保持もする。いくつかの実施形態では、自動運転システムは、車両の自動運転又は運転者支援での動作のために利用される。さまざまな実施形態において、図2図6のプロセスは、ディープラーニングシステム、及び/又は図7に説明されたものなどのシステムのコンポーネントを利用する。
【0090】
示される例では、ディープラーニングシステム700は、センサ701、画像プリプロセッサ703、ディープラーニングネットワーク705、人工知能(AI)プロセッサ707、車両制御モジュール709、ネットワークインタフェース711、及びトリガ分類器モジュール713を含むディープラーニングネットワークである。さまざまな実施形態において、異なるコンポーネントが、通信可能に接続されている。たとえば、センサ701からのセンサデータは、画像プリプロセッサ703に供給される。画像プリプロセッサ703の処理されたセンサデータは、AIプロセッサ707上で動作しているディープラーニングネットワーク705に供給される。AIプロセッサ707上で動作しているディープラーニングネットワーク705の出力は、車両制御モジュール709に供給される。AIプロセッサ707上で動作しているディープラーニングネットワーク705の中間結果は、トリガ分類器モジュール713に供給される。トリガ分類器モジュール713による送信のための保持をトリガするセンサデータは、ネットワークインタフェース711を介して送信される。いくつかの実施形態では、トリガ分類器モジュール713は、AIプロセッサ707上で動作する。さまざまな実施形態において、ネットワークインタフェース711は、車両の自律動作及び/又はトリガ分類器モジュール713の結果に基づいて、リモートサーバと通信するため、電話をするため、テキストメッセージを送信及び/又は受信するため、トリガ分類器モジュール713によって識別されたセンサデータを送信するため、などに使用される。いくつかの実施形態では、ディープラーニングシステム700は、必要に応じて、さらなる又はより少ないコンポーネントを含み得る。たとえば、いくつかの実施形態では、画像プリプロセッサ703はオプションのコンポーネントである。別の例として、いくつかの実施形態では、出力が車両制御モジュール709に提供される前に、ディープラーニングネットワーク705の出力に対して後処理を実行するために、後処理コンポーネント(図示されていない)が使用される。
【0091】
いくつかの実施形態では、センサ701は、1又は複数のセンサを含む。さまざまな実施形態において、センサ701は、車両の異なる位置で、及び/又は1又は複数の異なる向きで車両に取り付けられ得る。たとえば、センサ701は、前向き、後向き、横向きなどの方向で、車両の前部、側面、後部、及び/又は屋根などに取り付けられ得る。いくつかの実施形態では、センサ701は、高ダイナミックレンジカメラなどの画像センサであり得る。いくつかの実施形態では、センサ701は、非視覚的センサを含む。いくつかの実施形態では、センサ701は、とりわけ、レーダ、LiDAR、及び/又は超音波センサを含む。いくつかの実施形態では、センサ701は、車両制御モジュール709を有する車両に取り付けられていない。たとえば、センサ701は、隣接する車両に取り付けられ、及び/又は道路又は環境に取り付けられ得、センサデータをキャプチャするためのディープラーニングシステムの一部として含まれ得る。
【0092】
いくつかの実施形態では、画像プリプロセッサ703が、センサ701のセンサデータを前処理するために使用される。たとえば、画像プリプロセッサ703は、センサデータを前処理し、センサデータを1又は複数のコンポーネントに分割し、及び/又は1又は複数のコンポーネントを後処理するために使用され得る。いくつかの実施形態では、画像プリプロセッサ703は、グラフィックス処理ユニット(GPU)、中央処理装置(CPU)、画像シグナルプロセッサ、又は専門の画像プロセッサである。さまざまな実施形態において、画像プリプロセッサ703は、高ダイナミックレンジデータを処理するためのトーンマッパプロセッサである。いくつかの実施形態では、画像プリプロセッサ703は、人工知能(AI)プロセッサ707の一部として実施される。たとえば、画像プリプロセッサ703は、AIプロセッサ707のコンポーネントであり得る。
【0093】
いくつかの実施形態では、ディープラーニングネットワーク705は、自律車両制御を実施するためのディープラーニングネットワークである。たとえば、ディープラーニングネットワーク705は、センサデータを使用してトレーニングされる畳み込みニューラルネットワーク(CNN)などの人工ニューラルネットワークであり得、その出力が車両制御モジュール709に提供される。いくつかの実施形態では、ディープラーニングネットワーク705のニューラルネットワークの複製が、トリガ分類器モジュール713のトリガ分類器を作成するために利用される。
【0094】
いくつかの実施形態では、人工知能(AI)プロセッサ707は、ディープラーニングネットワーク705及び/又はトリガ分類器モジュール713を実行するためのハードウェアプロセッサである。いくつかの実施形態では、AIプロセッサ707は、センサデータに対して畳み込みニューラルネットワーク(CNN)を使用して推論を実行するための専門のAIプロセッサである。いくつかの実施形態では、AIプロセッサ707は、センサデータのビット深度に対して最適化されている。いくつかの実施形態では、AIプロセッサ707は、とりわけ、畳み込み演算、ドット積演算、ベクトル演算、及び/又は行列演算を含む、ニューラルネットワーク演算などのディープラーニング演算用に最適化されている。いくつかの実施形態では、AIプロセッサ707は、グラフィックス処理ユニット(GPU)を使用して実施される。さまざまな実施形態において、AIプロセッサ707は、実行されたときにAIプロセッサに、受信された入力センサデータに対してディープラーニング分析を実行させ、少なくとも部分的には自律的に車両を操作するために使用される機械学習結果を決定させる、命令をAIプロセッサに提供するように構成されるメモリに連結されている。いくつかの実施形態では、AIプロセッサ707は、分類器スコアを決定するために、ディープラーニングネットワーク705の1又は複数の層の中間結果をトリガ分類器モジュール713に出力するように構成される。
【0095】
いくつかの実施形態では、車両制御モジュール709は、人工知能(AI)プロセッサ707の出力を処理し、出力を車両制御操作に変換するために利用される。いくつかの実施形態では、車両制御モジュール709は、自動運転のために車両を制御するために利用される。いくつかの実施形態では、車両制御モジュール709は、車両の速度及び/又はステアリングを調整することができる。たとえば、車両制御モジュール709は、ブレーキング、ステアリング、車線変更、加速、及び別の車線への合流などによって車両を制御するために使用され得る。いくつかの実施形態では、車両制御モジュール709は、ブレーキライト、方向指示器、ヘッドライトなどのような車両用照明を制御するために使用される。いくつかの実施形態では、車両制御モジュール709は、オーディオアラートを再生する、マイクロフォンをイネーブルにする、ホーンをイネーブルにする、などする車両のサウンドシステムなどの車両のオーディオ状況を制御するために使用される。いくつかの実施形態では、車両制御モジュール709は、衝突の可能性又は意図された目的地への接近などの走行イベントを運転者及び/又は同乗者に通知する警告システムを含む通知システムを制御するために使用される。いくつかの実施形態では、車両制御モジュール709は、車両のセンサ701などのセンサを調整するために使用される。たとえば、車両制御モジュール709は、向きを変更する、出力解像度及び/又はフォーマットタイプを変更する、キャプチャレートを増減させる、キャプチャされるダイナミックレンジを調整する、カメラのフォーカスを調整する、センサをイネーブル及び/又はディセーブルにするなど、1又は複数のセンサのパラメータを変更するために使用され得る。いくつかの実施形態では、車両制御モジュール709は、フィルタの周波数範囲を変更する、特徴及び/又はエッジ検出パラメータを調整する、チャネル及びビット深度を調整するなど、画像プリプロセッサ703のパラメータを変更するために使用され得る。さまざまな実施形態において、車両制御モジュール709は、車両の自動運転及び/又は運転者支援での制御を実施するために使用される。
【0096】
いくつかの実施形態では、ネットワークインタフェース711は、音声データを含むデータを送信及び/又は受信するための通信インタフェースである。さまざまな実施形態において、ネットワークインタフェース711は、音声通話を接続及び発信するため、テキストメッセージを送信及び/又は受信するため、センサデータを送信するため、トリガ分類器及び特性を含む、自動運転システムへの更新を受信するためになど、リモートサーバとインタフェースするためのセルラ又は無線インタフェースを含む。たとえば、ネットワークインタフェース711は、センサ701、画像プリプロセッサ703、ディープラーニングネットワーク705、AIプロセッサ707、車両制御モジュール709、及び/又はトリガ分類器モジュール713についての命令及び/又は動作パラメータの更新を受信するために使用され得る。たとえば、ディープラーニングネットワーク705の機械学習モデルが、ネットワークインタフェース711を使用して更新され得る。別の例として、ネットワークインタフェース711は、センサ701のファームウェア、及び/又は画像処理パラメータなどの画像プリプロセッサ703の動作パラメータを更新するために使用され得る。
【0097】
いくつかの実施形態では、ネットワークインタフェース711は、トリガ分類器モジュール713によって識別されたセンサデータを送信するために使用される。たとえば、トリガ分類器によって識別され、関連するトリガ特性の条件を満たす特定のユースケースに対応するセンサデータが、ネットワークインタフェース711を介して、リモートコンピュータサーバなどのコンピュータサーバに送信される。いくつかの実施形態では、トリガ分類器及びトリガ特性が、ネットワークインタフェース711を介して更新される。更新されたトリガ分類器及びトリガ特性は、トリガ分類器モジュール713にインストールされ、特定のユースケースに対応するセンサデータを識別及び保持するために使用される。
【0098】
いくつかの実施形態では、ネットワークインタフェース711は、事故又はほぼ事故の場合に緊急サービスと緊急連絡をとるために使用される。たとえば、衝突の場合、ネットワークインタフェース711は、助けを求めて緊急サービスに連絡をとるために使用され得、車両の位置及び衝突の詳細を緊急サービスに通知し得る。さまざまな実施形態において、ネットワークインタフェース711は、目的地の位置及び/又は予想される到着時間を検索及び/又は更新するためにカレンダ情報にアクセスするなど、自動運転機能を実施するために使用される。
【0099】
いくつかの実施形態では、トリガ分類器モジュール713は、特定のユースケースに対応するセンサデータを識別及び保持するために利用される。たとえば、トリガ分類器モジュール713は、センサ701の1又は複数のセンサによってキャプチャされたデータについての分類器スコアを決定する。分類器スコアは閾値と比較され、保持、及びネットワークインタフェース711を介してリモートコンピュータサーバに送信され得る。いくつかの実施形態では、トリガ分類器モジュール713は、分類器スコアを決定するため、及び/又は分類器スコア閾値を満たすセンサデータを保持するために、適切な条件が満たされるかどうかを決定するためにトリガ特性を利用する。いくつかの実施形態では、トリガ分類器モジュールは、サポートベクタマシンであり、センサ701のセンサデータを代表する入力としてディープラーニングネットワーク705の中間出力を受信する。いくつかの実施形態では、トリガ分類器モジュール713は、ディープラーニングネットワーク705の1又は複数の層の中間結果を受信するように構成される。特定の層の出力は、トリガ分類器及び/又はトリガ特性に依存し得る。たとえば、いくつかのユースケースは、より前の中間結果を使用し、他のユースケースは、より後の中間結果を利用し得る。いくつかの実施形態では、AIプロセッサ707が、トリガ分類器モジュール713の処理を実行するために利用され得る。さまざまな実施形態において、トリガ分類器モジュール713によって識別されたセンサデータは、特定のユースケースを識別するための新しいトレーニングデータセットを作成するために使用される。
【0100】
説明された実施形態のさまざまな態様、実施形態、実施態様又は特徴は、別々に又は任意の組合せで使用されることができる。説明された実施形態のさまざまな態様は、ソフトウェア、ハードウェア、又はハードウェアとソフトウェアとの組合せによって実施されることができる。説明された実施形態はまた、製造作業を制御するためのコンピュータ可読媒体上のコンピュータ可読コードとして、又は製造ラインを制御するためのコンピュータ可読媒体上のコンピュータ可読コードとして具現化されることもできる。コンピュータ可読媒体は、データを格納することができる任意のデータ記憶デバイスであり、その後、コンピュータシステムによって読み取られることができる。コンピュータ可読媒体の例は、リードオンリメモリ、ランダムアクセスメモリ、CD-ROM、HDD、DVD、磁気テープ、及び光データ記憶デバイスを含む。コンピュータ可読媒体はまた、コンピュータ可読コードが分散記憶及び分散実行されるように、ネットワーク連結されたコンピュータシステムにわたって分散されることもできる。
【0101】
前述の説明は、説明の目的で、説明される実施形態の完全な理解を提供するために特定の命名法を使用した。しかしながら、説明された実施形態を実践するために特定の詳細が必要とされないことは当業者には明らかであろう。このように、特定の実施形態の前述の説明は、例示及び説明の目的で提示されている。それらは、網羅的であること、又は説明された実施形態を開示されるそのままの形態に限定することが意図されるものではない。上記の教示を考慮すると、多くの修正及び変形が可能であることは当業者には明らかであろう。
【0102】
本明細書に説明され及び/又は図に示されているプロセス、方法、及びアルゴリズムのそれぞれは、1又は複数の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、アプリケーション固有の回路、及び/又は固有かつ特定のコンピュータ命令を実行するように構成された電子ハードウェア、によって実行されるコードモジュールで具体化され、及びそれによって完全に又は部分的に自動化され得ることも理解されよう。たとえば、コンピューティングシステムは、固有のコンピュータ命令でプログラムされた汎用コンピュータ(たとえば、サーバ)又は専用コンピュータ、専用回路などを含み得る。コードモジュールは、コンパイルされて実行可能プログラムにリンクされ、ダイナミックリンクライブラリにインストールされ得るか、又はインタプリタ型プログラミング言語で記述され得る。いくつかの実施形態では、特定の動作及び方法は、所与の機能に固有の回路によって実行され得る。
【0103】
さらに、本開示の機能性のある特定の実施形態は、十分に数学的、計算的、又は技術的に複雑であるため、機能性を実行するために、たとえば、関与する計算の量又は複雑さに起因して、又は実質的にリアルタイムで結果を提供するために、アプリケーション固有のハードウェア、又は、1又は複数の物理的コンピューティングデバイス(適切な専用の実行可能命令を利用する)が必要であり得る。たとえば、映像は、各フレームが数百万ピクセルを有する多くのフレームを含み得、商業的に妥当な時間で所望の画像処理タスク又はアプリケーションを提供するために映像データを処理するために、固有にプログラムされたコンピュータハードウェアが必要である。
【0104】
コードモジュール又は任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、光ディスク、揮発性又は不揮発性記憶、それらの組合せ及び/又は同様のもの、を含む物理的コンピュータ記憶など、任意のタイプの非一時的なコンピュータ可読媒体上に格納され得る。いくつかの実施形態では、非一時的なコンピュータ可読媒体は、ローカル処理及びデータモジュール、リモート処理モジュール、及びリモートデータリポジトリのうちの、1又は複数のうちの一部であり得る。方法及びモジュール(又はデータ)はまた、無線ベース及び有線/ケーブルベースの媒体を含むさまざまなコンピュータ可読伝送媒体上で、生成されたデータ信号として(たとえば、搬送波又は他のアナログ又はデジタル伝搬信号の一部として)送信され得、さまざまな形態をとり得る(たとえば、単一又は多重化されたアナログ信号の一部として、又は複数の個別のデジタルパケット又はフレームとして)。開示されたプロセス又はプロセスステップの結果は、永続的に又はその他の方法で、任意のタイプの非一時的な有形のコンピュータ記憶に格納され得るか、又はコンピュータ可読伝送媒体を介して通信され得る。
【0105】
本明細書に説明され及び/又は添付の図に示されているフロー図のプロセス、ブロック、ステート、ステップ、又は機能性は、特定の機能(たとえば、論理的又は算術的)又はプロセスのステップを実施するための1又は複数の実行可能命令を含むコードモジュール、セグメント、又はコードの一部を潜在的に表すものとして理解されるべきである。さまざまなプロセス、ブロック、ステート、ステップ、又は機能性は、本明細書で提供される例示的な例から、組み合わされ、再配置され、追加され、削除され、修正され、又は他の方法で変更され得る。いくつかの実施形態では、追加の又は異なるコンピューティングシステム又はコードモジュールが、本明細書で説明される機能性のうちのいくつか又はすべてを実行し得る。本明細書に説明される方法及びプロセスはまた、特定のいかなるシーケンスにも限定されず、それに関連するブロック、ステップ、又はステートは、適切な他のシーケンス、たとえば、シリアル、パラレル、又は他の何らかの方法で実行され得る。タスク又はイベントは、開示された例示的な実施形態に追加又は削除され得る。さらに、本明細書に説明される実施形態におけるさまざまなシステムコンポーネントの分離は、例示の目的のためであり、すべての実施形態においてこうした分離を必要とするものとして理解されるべきではない。説明されているプログラムコンポーネント、方法、及びシステムは、一般に、単一のコンピュータ製品に一緒に統合され得るか、又は複数のコンピュータ製品にパッケージ化され得ることが理解されるべきである。
【0106】
前述の明細書において、1又は複数のイノベーションが、その特定の実施形態を参照しつつ説明されてきた。しかしながら、イノベーションのより広い精神及び範囲から逸脱することなく、さまざまな修正及び変更がそれに加えられ得ることは明らかであろう。それに応じて、本明細書及び図面は、限定的な意味ではなく例示的な意味と見なされるべきである。
【0107】
実際、本開示のシステム及び方法はそれぞれ、いくつかのイノベーション的な態様を有し、その単一の態様だけが、本明細書に開示される望ましい属性を担うわけではなく、又は必要とされるわけではないことが理解されよう。上記のさまざまな特徴及びプロセスは、互いに独立して使用されてもよく、さまざまな方法で組み合わされてもよい。すべての可能な組合せ及び部分的組合せは、本開示の範囲内に含まれることが意図されている。
【0108】
別々の実施形態のコンテキストにおいて本明細書に説明されているある特定の特徴もまた、単一の実施形態において組み合わせて実施され得る。逆に、単一の実施形態のコンテキストで説明されるさまざまな特徴もまた、複数の実施形態において別々に、又は任意の適切な部分的組合せで実施され得る。さらに、特徴は、ある特定の組合せで役割を果たすものとして上記され得、最初はそのように主張されても、主張された組合せからの1又は複数の特徴は、場合によっては組合せから削除され得、主張された組合せは、部分的組合せ、又は部分的組合せの変形を対象とし得る。単一の特徴又は特徴のグループが、ありとあらゆる実施形態に必要又は不可欠というわけではない。
【0109】
とりわけ、「~できる(can)」、「~し得る(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「~してもよい(may)」、「~の場合がある(may)」、「~かもしれない(may)」、「たとえば(e.g.)」及び同様のものなどの、本明細書で使用される条件付きの文言は、別途明記されない限り、又は使用されるコンテキスト内で他の方法で理解されない限り、一般に、ある特定の実施形態がある特定の特徴、要素、及び/又はステップを含む一方、他の実施形態は含まないことを伝えることが意図される。このように、こうした条件付きの文言は、一般に、特徴、要素、及び/又はステップが1又は複数の実施形態に何らかの形で必要とされるということ、又は、1又は複数の実施形態が、著者の入力又は促しの有無にかかわらず、これらの特徴、要素及び/又はステップが、任意の特定の実施形態に含まれるか、又はその中で実行されるべきであるかどうかを決定するためのロジックを必然的に含むということを、暗示することが意図されるものではない。用語の「含む(comprising)」、「含む(including)」、「有する(having)」及び同様のものは同義であり、オープンエンド様式で包括的に使用され、追加の要素、特徴、作用、動作などを除外するものではない。また、用語の「又は」は、その包括的な意味で(排他的な意味ではなく)使用されるため、たとえば、要素のリストを接続するために使用されたとき、用語「又は」は、リスト内の要素のうちの1つ、いくつか、又はすべてを意味する。さらに、本出願及び添付の特許請求の範囲で使用される冠詞「a」、「an」、及び「the」、は、別途指定されない限り、「1又は複数」又は「少なくとも1つ」を意味すると解釈されるべきである。同様に、動作は特定の順序で図面に描かれ得るが、こうした動作は、望ましい結果を達成するために、示された特定の順序又は連続した順序で実行される必要はないこと、又は、図示されたすべての動作が実行される必要はないことが、認識されるべきである。さらに、図面は、フローチャートの形でもう1つの例示的なプロセスを概略的に描写し得る。しかしながら、描写されていない他の動作が、概略的に示されている例示的な方法及びプロセスに組み込まれ得る。たとえば、1又は複数の追加の動作が、示された動作のいずれかの前、後、同時に、又はそれらの間で実行され得る。さらに、他の実施形態では、動作が再配置又は並べ替えされ得る。ある特定の状況において、マルチタスク及び並列処理が有利であり得る。さらに、上記の実施形態におけるさまざまなシステムコンポーネントの分離は、すべての実施形態においてこうした分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネント及びシステムは、一般に、単一のソフトウェア製品に一緒に統合され得るか、又は複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。さらに、他の実施形態は、以下の特許請求の範囲内である。場合によっては、特許請求の範囲に記載されているアクションは、異なる順序で実行され得、依然として望ましい結果を達成し得る。
【0110】
それに応じて、特許請求の範囲は、本明細書に示される実施形態に限定されることが意図されるものではなく、本開示、原理、及び本明細書に開示される新規の特徴と一致する、最も広い範囲を認められるべきである。
図1A
図1B
図2
図3
図4
図5
図6
図7