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

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

▶ ズークス インコーポレイテッドの特許一覧

<>
  • 特開-センサーデータセグメンテーション 図1
  • 特開-センサーデータセグメンテーション 図2
  • 特開-センサーデータセグメンテーション 図3
  • 特開-センサーデータセグメンテーション 図4A
  • 特開-センサーデータセグメンテーション 図4B
  • 特開-センサーデータセグメンテーション 図5A
  • 特開-センサーデータセグメンテーション 図5B
  • 特開-センサーデータセグメンテーション 図6
  • 特開-センサーデータセグメンテーション 図7
  • 特開-センサーデータセグメンテーション 図8
  • 特開-センサーデータセグメンテーション 図9
  • 特開-センサーデータセグメンテーション 図10
  • 特開-センサーデータセグメンテーション 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024012655
(43)【公開日】2024-01-30
(54)【発明の名称】センサーデータセグメンテーション
(51)【国際特許分類】
   G06T 7/174 20170101AFI20240123BHJP
   G06T 7/00 20170101ALI20240123BHJP
【FI】
G06T7/174
G06T7/00 650Z
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023196650
(22)【出願日】2023-11-20
(62)【分割の表示】P 2020528012の分割
【原出願日】2018-11-06
(31)【優先権主張番号】15/820,245
(32)【優先日】2017-11-21
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】デイビッド ファイファー
(57)【要約】
【課題】センサーデータをセグメント化する。
【解決手段】環境を表す複数の画像を受信するように構成され、画像をセグメント化するように構成された画像セグメンテーションネットワークに画像データを送信するように構成され、画像取り込みデバイスとは異なるタイプのセンサーにより生成されたセンサーデータを含む環境に関連付けられたセンサーデータを受信するように構成され、トレーニングデータセットを作成するためにセグメント化された画像にセンサーデータを関連付けるように構成され、センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信し、センサーデータセグメンテーションモデルがセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングするように構成される。
【選択図】図1
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサーと、
前記1つまたは複数のプロセッサーに通信接続され、
第1のセグメンテーション情報を含む画像データを受信することと、
LIDAR(light detection and ranging)センサー、RADAR(radio detection and ranging)センサー、またはSONAR(sound navigation and ranging)センサーのうちの少なくとも1つからセンサーデータを受信することと、
トレーニングデータセットの一部として、前記第1のセグメンテーション情報と前記センサーデータを関連付けることと、
追加のライダーデータ、追加のレーダーデータ、または追加のソナーデータのうちの少なくとも1つを受信することに応答して、前記トレーニングデータセットを用いてセンサーデータセグメンテーションモデルをトレーニングして、第2のセグメンテーション情報を出力することと
を含む動作を行う、前記1つまたは複数のプロセッサーによって実行可能な命令を格納する1つまたは複数の非一時的なコンピューター読取り可能記録媒体と
を備えたことを特徴とするシステム。
【請求項2】
前記第1のセグメンテーション情報と前記センサーデータを関連付けることは、
前記第1のセグメンテーション情報と前記センサーデータの一部とに少なくとも部分的に基づいて、オブジェクトのタイプに関連付けられた分類を決定することと、
前記センサーデータの前記一部と前記分類を関連付けることと
を含むことを特徴とする請求項1に記載のシステム。
【請求項3】
前記動作は、
第1の時間において前記画像データの一部を取り込むことと、
第2の時間において前記センサーデータの一部を取り込むことと、
前記第1の時間と前記第2の時間との間の時間差を決定することと、
前記時間差に少なくとも部分的に基づいて、前記センサーデータの前記一部と前記画像データの前記一部とに関連付けられた時間的な整列の情報または空間的な整列の情報のうちの少なくとも1つを決定することと
をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項4】
前記動作は、
第2の画像データを受信することと、
前記第2のセグメンテーション情報に少なくとも部分的に基づいて、前記第2の画像データにおいてオブジェクトのロケーションを決定することと
をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項5】
前記第2のセグメンテーション情報は、高さ次元に沿った前記センサーデータセグメンテーションモデルのカーネルの間のステップよりも高い、長さ次元に沿った前記センサーデータセグメンテーションモデルの前記カーネルの間のステップに基づいて出力されることを特徴とする請求項1に記載のシステム。
【請求項6】
前記動作は、
前記センサーデータに関連付けられた不連続性を識別することと、
前記不連続性に関連付けられた前記センサーデータの一部を無視することと
をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項7】
前記センサーデータは、前記LIDARセンサーから受信したLIDARセンサーデータを含み、前記動作は、
前記センサーデータセグメンテーションモデルによって、第3のセグメンテーション情報として前記LIDARセンサーデータをセグメント化することと、
前記第3のセグメンテーション情報を格納することと
をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項8】
前記動作は、
自律車両に前記センサーデータセグメンテーションモデルを送信することであって、前記自律車両は、前記センサーデータセグメンテーションモデルに少なくとも部分的に基づいて軌道を生成するように構成されている、こと
をさらに含むことを特徴とする請求項7に記載のシステム。
【請求項9】
第1のセグメンテーション情報を含む画像データを受信することと、
LIDAR(light detection and ranging)センサー、RADAR(radio detection and ranging)センサー、またはSONAR(sound navigation and ranging)センサーのうちの少なくとも1つからセンサーデータを受信することと、
トレーニングデータセットの一部として、前記第1のセグメンテーション情報と前記センサーデータを関連付けることと、
追加のライダーデータ、追加のレーダーデータ、または追加のソナーデータのうちの少なくとも1つを受信することに応答して、前記トレーニングデータセットを用いてセンサーデータセグメンテーションモデルをトレーニングして、第2のセグメンテーション情報を出力することと
を備えることを特徴とする方法。
【請求項10】
前記第1のセグメンテーション情報と前記センサーデータを関連付けることは、
前記第1のセグメンテーション情報と前記センサーデータの一部とに少なくとも部分的に基づいて、オブジェクトのタイプに関連付けられた分類を決定することと、
前記センサーデータの前記一部と前記分類を関連付けることと
を含むことを特徴とする請求項9に記載の方法。
【請求項11】
第1の時間において前記画像データの一部を取り込むことと、
第2の時間において前記センサーデータの一部を取り込むことと、
前記第1の時間と前記第2の時間との間の時間差を決定することと、
前記時間差に少なくとも部分的に基づいて、前記センサーデータの前記一部と前記画像データの前記一部とに関連付けられた時間的な整列の情報または空間的な整列の情報のうちの少なくとも1つを決定することと
をさらに備えることを特徴とする請求項9に記載の方法。
【請求項12】
第2の画像データを受信することと、
前記第2のセグメンテーション情報に少なくとも部分的に基づいて、前記第2の画像データにおいてオブジェクトのロケーションを決定することと
をさらに備えることを特徴とする請求項9に記載の方法。
【請求項13】
前記第2のセグメンテーション情報は、高さ次元に沿った前記センサーデータセグメンテーションモデルのカーネルの間のステップよりも高い、長さ次元に沿った前記センサーデータセグメンテーションモデルの前記カーネルの間のステップに基づいて出力されることを特徴とする請求項9に記載の方法。
【請求項14】
前記センサーデータに関連付けられた不連続性を識別することと、
前記不連続性に関連付けられた前記センサーデータの一部を無視することと
をさらに備えることを特徴とする請求項9に記載の方法。
【請求項15】
前記センサーデータは、前記LIDARセンサーから受信したLIDARセンサーデータを含み、前記方法は、
前記センサーデータセグメンテーションモデルによって、前記LIDARセンサーデータに基づいて、第3のセグメンテーション情報を決定することと、
前記第3のセグメンテーション情報を格納することと
をさらに備えることを特徴とする請求項9に記載の方法。
【請求項16】
前記第3のセグメンテーション情報に少なくとも部分的に基づいて、自律車両の軌道を生成することをさらに備えることを特徴とする請求項15に記載の方法。
【請求項17】
前記追加のライダーデータ、前記追加のレーダーデータ、または前記追加のソナーデータのうちの前記少なくとも1つを含む追加のセンサーデータを受信することであって、前記追加のセンサーデータは、円筒座標または球座標にて記述されている、ことと、
平面座標と前記追加のセンサーデータを関連付けることと、
前記センサーデータセグメンテーションモデルによって、セグメント化されたセンサーデータとして前記追加のセンサーデータをセグメント化することと、
センサーデータセグメンテーションモデルによって、前記セグメント化されたセンサーデータを出力することと
をさらに備えることを特徴とする請求項9に記載の方法。
【請求項18】
1つまたは複数のプロセッサーによって実行されると、前記1つまたは複数のプロセッサーに、
第1のセグメンテーション情報を含む画像データを受信することと、
LIDAR(light detection and ranging)センサー、RADAR(radio detection and ranging)センサー、またはSONAR(sound navigation and ranging)センサーのうちの少なくとも1つからセンサーデータを受信することと、
トレーニングデータセットの一部として、前記第1のセグメンテーション情報と前記センサーデータを関連付けることと、
追加のライダーデータ、追加のレーダーデータ、または追加のソナーデータのうちの少なくとも1つを受信することに応答して、前記トレーニングデータセットを用いてセンサーデータセグメンテーションモデルをトレーニングして、第2のセグメンテーション情報を出力することと
を含む動作を行わせる、格納されたコンピューター実行可能命令を有することを特徴とする1つまたは複数の非一時的なコンピューター読取り可能記録媒体。
【請求項19】
前記センサーデータは、前記LIDARセンサーから受信したLIDARセンサーデータを含み、前記動作は、
前記センサーデータセグメンテーションモデルによって、前記LIDARセンサーデータに基づいて、第3のセグメンテーション情報を決定することと、
前記第3のセグメンテーション情報を格納することと
をさらに含むことを特徴とする請求項18に記載の1つまたは複数の非一時的なコンピューター読取り可能記録媒体。
【請求項20】
前記動作は、
第1の時間において前記画像データの一部を取り込むことと、
第2の時間において前記センサーデータの一部を取り込むことと、
前記第1の時間と前記第2の時間との間の時間差を決定することと、
前記時間差に少なくとも部分的に基づいて、前記センサーデータの前記一部と前記画像データの前記一部とに関連付けられた時間的な整列の情報または空間的な整列の情報のうちの少なくとも1つを決定することと
をさらに含むことを特徴とする請求項18に記載の1つまたは複数の非一時的なコンピューター読取り可能記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、センサーデータセグメンテーションに関し、より詳細には、センサーデータをセグメント化するための方法、装置、およびシステムに向けられるセンサーデータセグメンテーションに関する。
【背景技術】
【0002】
センサーは、環境におけるオブジェクトを示すセンサーデータを生成するために使用され得る。しかしながら、センサーによって生成されたセンサーデータの生の形は、データを使用するまたは分析することを困難にすることがあり得る。したがって、センサーデータは、それを、(たとえば、データにおける個別のオブジェクト、走行可能である(すなわち、その上を走行されることが可能である)センサーデータにおけるエリアなどを識別する)より有用な形へと変形するためにセグメント化され得る。一般に、データをセグメント化することは、たとえば、センサーデータにおいて取り込まれたデータのエリアが識別されるまたは分類されることがあり得るために、センサーデータをより意味のあるまたは整理された形へと区分することまたは整理することを含む。データセグメンテーションは、人間によって手動により行われることがあり得る。しかしながら、手動のセグメンテーションは、とてつもない時間の消費であり費用がかかることがあり得り、しばしば多くの用途にとって適さなくなる。画像データは、画像を別個のセグメントへと区分して、画像のさらに意味のあるまたは使用可能な表現を提供するコンピューターを使用して、自動的にセグメント化されることがあり得る。たとえば、画像は、画像内のオブジェクトを一意に識別するためにセグメント化されることがあり得り、たとえば、自律車両の操作などのような、いくつかの用途において有用であることがあり得る。しかしながら、他のタイプのセンサーから取得されたセンサーデータを自動的にセグメント化することが困難であることがあり得る。上記の例において、人間による手動のセグメンテーションが必要であることがあり得り、上記のセンサータイプから取得されたセンサーデータは、とてつもなく高額になる、またはいくつかの用途に対して使用するのを難しくする。
【0003】
詳細な説明は、添付の図面を参照しながら説明される。図面において、参照符号の最も左の数字(複数可)は、参照符号が最初に現れる図面を識別する。別個の図面における同一の参照符号は、同様のまたは同じアイテムを示す。
【図面の簡単な説明】
【0004】
図1】画像データおよびセンサーデータを取り込み、取り込まれた画像をセグメント化し、セグメント化された画像上にセンサーデータを投影し、トレーニングデータセットを生成するための例示的な処理の絵のフロー図である。
図2】例示的な車両が進みながら画像データおよびセンサーデータを取り込んでいる例示的な環境である。
図3】セグメント化された画像を生成し、例示的なセンサーデータセグメンテーションモデル(sensor data segmentation model)をトレーニングし、センサーデータをセグメント化するための例示的なアーキテクチャーである。
図4A】複数の画像取り込みデバイス(image capture device)およびセンサーを有する例示的な車両の側面図を表す。
図4B図4Aに示す例示的な車両の上面図を表す。
図5A】画像データを含む例示的な画像とオブジェクトに対してセグメント化された例示的な画像のセグメント化されたバージョンとを表す。
図5B図5Aに示す例示的な画像と走行可能な表面に対してセグメント化された例示的な画像のセグメント化されたバージョンとを表す。
図6】画像データおよびセンサーデータを取り込むための例示的な処理の絵のフロー図である。
図7図6に示す画像をセグメント化し、図6において取り込まれたセンサーデータを、セグメント化された画像上に投影し、トレーニングデータセットを生成するための例示的な処理の絵のフロー図である。
図8】センサーデータを取り込み、例示的なセンサーデータセグメンテーションネットワークを使用してセンサーデータをセグメント化して車両軌跡(vehicle trajectory)を生成する軌跡モジュールによって使用するためのセグメント化されたセンサーデータを生成するための例示的な処理の絵のフロー図である。
図9】セグメント化された画像およびセンサーデータを含む例示的なトレーニングデータセットを使用して例示的なセンサーデータセグメンテーションモデルをトレーニングするための例示的な処理のフロー図である。
図10】例示的なセンサーデータセグメンテーションモデルを使用してセンサーデータをセグメント化するための例示的な処理のフロー図である。
図11】本明細書において説明される処理を実装するための例示的なコンピューターアーキテクチャーのブロック図を表す。
【発明を実施するための形態】
【0005】
一般に、本開示は、センサーデータをセグメント化するための方法、装置、およびシステムに向けられる。センサーデータの上記のセグメンテーションは、より容易にセグメント化される他のタイプのセンサーデータのセグメンテーションによって支援されることがあり得る。たとえば、システムは、1つまたは複数の画像取り込みデバイス(image capture device)を使用して画像データを、および画像取り込みデバイスとは異なるタイプの1つまたは複数のセンサーを使用してセンサーデータを同時に、または実質的に同時に取り込むことがあり得る。画像データのセグメンテーションが、(画像データ以外の)センサーデータのセグメンテーションよりも、より正確な結果を生み出すことができるので、画像データは、センサーデータのセグメンテーションを支援またはトレーニングするために使用され得る。システムは、画像をセグメントし、センサーデータを、セグメント化された画像に関連付けて、センサーデータセグメンテーションモデル(sensor data segmentation model)をトレーニングするのに使用され得るトレーニングデータセットを作成することがあり得る。たとえば、センサーデータ(たとえば、本明細書において説明されるようなLIDARセンサーによって取り込まれたセンサーデータ)は、セグメント化された画像上に投影されることが可能であり、セグメント化された画像に関連付けられたセグメンテーション情報は、センサーデータに変換または適用されて、トレーニングデータセットを作成することがあり得る。トレーニングされたセンサーデータセグメンテーションモデルが使用されて、その他のタイプのセンサーから取得されたセンサーデータを自動的にセグメント化し、それによってセンサーデータを、たとえば、自律車両の操作などのような多くの用途に対して、より有用にすることがあり得る。他の用途が考えられる。同様にして、いくつかの例において、センサーデータのどの1つのタイプをとっても、センサーデータの別のタイプについてのセグメンテーションを支援およびまたはトレーニングするために使用され得る。
【0006】
一般に、本開示は、環境を表す複数の画像を受信するように構成されるシステムに向けられる。画像は、画像取り込みデバイスによって生成される画像データを含むことがあり得る。システムは、画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワーク(image segmentation network)に画像データを送信するように構成されることがあり得る。さらに、システムは、環境に関連付けられたセンサーデータを受信することもあり得る。センサーデータは、画像取り込みデバイス以外のセンサータイプによって生成されたセンサーデータを含むことがあり得る。たとえば、画像取り込みデバイスおよびセンサーは、環境に関連付けられたデータを、同時にまたは実質的に同時に(技術的な性能内で)取り込むことができる。たとえば、画像取り込みデバイスは、1つまたは複数のカメラ(たとえば、RGBカメラ、モノクロカメラ、強度(グレースケール)カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラなど)を含むことがあり得る。たとえば、センサーは、1つまたは複数のLIDAR(light detection and ranging)センサー、1つまたは複数のRADAR(radio detection and ranging)センサー、1つまたは複数のSONAR(sound navigation and ranging)センサー、および他のセンサーを含むことがあり得る。さらに、システムは、セグメント化された画像にセンサーデータを関連付けて、トレーニングデータセットを作成するように構成されることもあり得る。トレーニングデータセットは、センサーデータセグメンテーションモデルとして構成される機械学習ネットワークに送信されることがあり得る。さらに、システムは、センサータイプから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用して、センサーデータセグメンテーションモデルをトレーニングするように構成されることもあり得る。
【0007】
いくつかの例において、システムは、センサーデータを、セグメント化された画像上に投影して、センサーデータを、セグメント化された画像のクラス(または分類)に関連付けるように構成されることがあり得る。画像取り込みデバイスによって取り込まれた画像の各々は、それぞれの画像時間において取り込まれることがあり得り、センサーデータのさまざまな部分は、さまざまなセンサー時間において取り込まれることがあり得る。いくつかの例において、システムは、画像時間と、センサーデータの一部分に関連付けられたセンサー時間との間における差を最小化する画像時間において取り込まれた画像を選択し、センサーデータの部分を、選択された画像または画像の部分に関連付けるように構成されることがあり得る。今までに述べた例示的なやり方において、画像データの取り込みとセンサーデータの取り込みとのタイミングにおける差が最小化されることがあり得り、それによって、セグメント化されたセンサーデータにおける潜在的なエラーの可能性を減らす。いくつかの例において、複数の画像取り込みデバイスが画像データを取り込むことができ、センサーデータが、セグメント化された画像に関連付けられる前に、画像データが整列させられて融合されることがあり得る。
【0008】
いくつかの例においては、システムは、セグメント化された画像によりセンサーデータを整列させるように構成されることがあり得る。画像データは、その他のセンサーのビューと比べて、異なる角度から取り込まれることがあり得り、および/または環境の異なるビューに関連付けられることがあり得る。たとえば、画像データは、センサーデータによって包含されているビューとは異なる幅、高さ、および/または縦横比を有するビューを包含することがあり得る。いくつかの例においては、システムは、センサーデータによりセグメント化された画像を時間的におよび/または空間的に整列させるように構成されることがあり得る。加えて、画像取り込みデバイスの視野およびその他のセンサーの視野は、少なくとも部分的に重なることがあり得り、画像データおよびセンサーデータが、画像取り込みデバイスの視野およびその他のセンサーの視野の両方に共通する環境の部分に関連付けられているデータを含む。
【0009】
いくつかの例において、システムは、画像におけるオブジェクトの部分的な表現に関連付けられた画像データを識別し、センサーデータを、セグメント化された画像に関連付けてトレーニングデータセットを作成するときに、部分的な表現に関連付けられたセグメント化された画像データを無視するあるいはマスクするように構成されることがあり得る。部分的な表現は、トレーニングデータにおけるエラーの源であることがあり得り、したがって、システムのいくつかの例は、エラーがトレーニングデータセットにおいて作成される可能性を減らすために上記のデータを無視するように構成されることがあり得る。いくつかの例においては、システムは、センサーデータにおける不連続性に関連付けられているセンサーデータを削除するように構成されることがあり得る。たとえば、センサーデータにおける不連続性は、センサーが、たとえば、人、および例えば、壁などの、人の後ろのオブジェクトなどの、単一のオブジェクトよりも多く検出したことのインディケーションであることがあり得る。不連続性に関連付けられているデータを削除すること、マスクすること、または無視することは、エラーがトレーニングデータセットにおいて作成される可能性を減らすことがあり得る。エラーの可能性を減らすための他の技術が考えられる。たとえば、不連続性を識別することは、単一のオブジェクトに関連付けられたLIDARデータポイントが距離の異常に広いレンジを表すと決定することを含むことがあり得る。たとえば、人が、1枚壁の10フィート前に立っているかもしれない。関連付けられている画像をセグメント化するときに、背景は、「歩行者オブジェクト(pedestrian object)」に取り込まれる可能性がある。しかしながら、LIDARデータを「歩行者オブジェクト」に投影するときに、LIDARデータのうちのいくつかは、実際に人に関連付けられているデータよりも、センサーから10フィート遠いであろう。上記の例において、距離がしきい値を上回るならば、今述べたことは不連続性を示すことになり、いくつかの例において、データは、トレーニングデータにおける、および機械学習ネットワークにおける不正確さを作成することを回避するために、マスクされる、無視される、または削除されることがあり得る。
【0010】
いくつかの例において、機械学習ネットワークをトレーニングするためのトレーニングデータセットを生成する、セグメント化された画像を使用することよりもむしろ、センサーデータセグメンテーションモデルをトレーニングするためのトレーニングデータセットを生成するために、センサーからの以前に習得されてセグメント化されたデータが使用され得る。
【0011】
さらに、本開示は、一般に、画像取り込みデバイス以外のセンサーによって生成されたセンサーデータをセグメント化するように構成されているシステムにも向けられている。たとえば、システムは、そのようなセンサー、たとえば、1つまたは複数のLIDARセンサー、1つまたは複数のRADARセンサー、1つまたは複数のSONARセンサー、および他のセンサーからデータを受信するように構成されることがあり得る。たとえば、システムは、センサーデータセグメンテーションモデルを使用して、LIDARセンサーから受信されたセンサーデータをセグメント化し、セグメント化されたLIDARデータを生成するように構成されることがあり得る。たとえば、システムは、セグメント化されたセンサーデータを生成するためにセンサーデータセグメンテーションモデルを走らせるように(たとえば、ニューラルネットワークに対して、センサーデータをセグメント化するために推論モードにおいてトレーニングされたネットワークを使用するように)構成された機械学習モデル(たとえば、ニューラルネットワーク)を使用することがあり得る。この例示的なやり方においては、システムは、センサーデータを自動的にセグメント化することがあり得る。センサーデータをセグメント化することによって、セグメント化されたセンサーデータは、より有用である形を有することがあり得る。たとえば、セグメント化されたセンサーデータは、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両の操作のために軌跡(trajectory)を生成する1つまたは複数のシステムに情報提供することがあり得る、自律車両の認知システムによって、使用されることがあり得る。セグメント化されたセンサーデータの他の使用が考えられる。
【0012】
さらに、本開示は、一般に、センサーデータをセグメント化するための方法にも向けられる。方法は、環境を表す1つまたは複数の画像を受信することを含むことがあり得る。画像は、1つまたは複数の画像取り込みデバイスによって生成された画像データを含むことがあり得る。さらに、方法は、画像をセグメント化するように構成された画像セグメンテーションネットワークに画像データを送信することを含むこともあり得る。さらに、方法は、画像取り込みデバイス以外のセンサーによって生成されたセンサーデータを受信することを含むこともあり得る。センサーデータは、環境を表すデータを含むことがあり得る。さらに、方法は、画像をセグメント化して、セグメント化された画像を生成することと、センサーデータを、セグメント化された画像に関連付けて、トレーニングデータセットを作成することとを含むこともあり得る。さらに、方法は、センサーデータセグメンテーションモデルを走らせるように(すなわち、センサーデータをセグメント化するためのセグメンテーションモデルを使用するように)構成された機械学習ネットワークにトレーニングデータセットを送信することと、センサーから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるようにトレーニングデータセットを使用して、センサーデータセグメンテーションモデルをトレーニングすることとを含むことがあり得る。
【0013】
さらに、本開示は、一般に、自律車両に対して軌跡を生成するための方法にも向けられる。方法は、画像取り込みデバイス以外のセンサーからセンサーデータを受信することと、センサーデータセグメンテーションモデルを使用して、センサーから受信されたセンサーデータをセグメント化することとを含むことがあり得る。さらに、方法は、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両のための1つまたは複数の軌跡を生成することを含むこともあり得る。
【0014】
本明細書において説明されるトレーニングデータの生成および機械学習モデルのトレーニングは、センサーデータに表されるオブジェクトのセグメンテーションおよび/または分類のパフォーマンスを改善する、より正確な信頼できるやり方においてトレーニングデータを生成することによって、コンピューティングデバイスの機能を改善することが可能である。いくつかの例において、改善されたトレーニングデータ生成および関連するシステムは、センサーデータの改善された自動的なセグメンテーションおよび/または分類のために機械学習ネットワークおよび/またはアルゴリズムをトレーニングすることによって、より正確なおよび/または、より速いセグメンテーションを提供することがあり得る。本明細書において記述されているトレーニングデータ生成およびトレーニング動作を使用して、画像セグメンテーションに基づいてセグメンテーション情報を自動的に決定することは、追加のデータを機械学習アルゴリズムにさらすことによって、オブジェクトの、より正確なおよび/または、より速い分類を導く。さらに、本明細書において説明されるトレーニングデータおよびトレーニング技術は、改善された処理を提供する深層学習技術を考慮に入れることができる。いくつかの例において、より速くおよび/またはより正確なセグメンテーションおよび/または分類は、自律車両の乗員に対する安全を改善することがあり得る、自律車両の軌跡を生成するときに利用されることがあり得る。いくつかの例において、本明細書において記述されているトレーニングデータ生成およびトレーニング動作は、機械学習動作(たとえば、人工ニューラルネットワーク)を、簡略化された(たとえば、セグメント化された)データに適用することによって、メモリ要件を減らす、または処理の量を減らすことがあり得る。さらなる例において、そのような方法は、複数のセンサータイプおよびサブタイプを組み入れるように容易に拡張されることがあり得り、さもなければ、複数のトレーニングセットを作成することを必要とすることがあり得るだろう。コンピューターの機能に対する今までに述べたおよび他の改善が、本明細書において論じられる。
【0015】
本明細書において記述されている技術およびシステムは、複数の形において実装されることがあり得る。例示的な実装は、図面を参照して以下に提供される。
【0016】
図1は、画像およびセンサーデータを取り込み、取り込まれた画像をセグメント化し、センサーデータを、セグメント化された画像上に投影し、センサーデータセグメンテーションモデルをトレーニングするためのトレーニングデータセットを生成する例示的な処理の絵のフロー図100である。示す例において、例示的な車両102は、環境104を通過して進んでいる。たとえば、車両102は、図2に関して本明細書において説明される例示的な車両などのような、自律車両であることがあり得る。車両102は、1つまたは複数の画像取り込みデバイス106および1つまたは複数のセンサー108が提供する環境104に関連付けられた画像データ110およびセンサーデータ112をそれぞれ取り込むように構成される1つまたは複数の画像取り込みデバイス106および1つまたは複数のセンサー108(たとえば、1つまたは複数のLIDARセンサー、レーダーセンサー、超音波トランスデューサーなど)を含むことがあり得る。図1は、単一の画像取り込みデバイス106および単一のセンサー108を特定するが、たとえば、図4Aおよび図4Bに関して本明細書において説明されるように、より多くの画像取り込みデバイス106および/またはより多くのセンサー108が考えられる。画像取り込みデバイス106は、たとえば、1つまたは複数のカメラ(たとえば、RGBカメラ、モノクロカメラ、強度(グレースケール)カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラ等)などのような、環境を表す画像を取り込むように構成される画像取り込みデバイスのどんなタイプでもあり得る。センサー108は、画像取り込みデバイス以外の、環境を表すデータを生成するように構成されるセンサーのどんなタイプでもあり得る。たとえば、センサー108は、1つまたは複数のLIDARセンサー、1つまたは複数のRADARセンサー、1つまたは複数のSONARセンサー、および他のセンサーであることがあり得る。
【0017】
図1において示される例において、画像取り込みデバイス106は、3つの連続した時間t1、t2、およびt3における3つのそれぞれの視野に対応する画像114A~114Cの形において、画像データ110を取り込むものとして示される。たとえば、概略的に示すように、画像取り込みデバイス106は、時間t1における視野に関連付けられた画像114A、時間t2における視野に関連付けられた画像114B、およびt3における視野に関連付けられた画像114Cを取り込む。画像114A~114Cの各々は、画像取り込みデバイス106が環境104を通過して進むにつれて、わずかに異なる視野を有することがあり得る。上記の例において、各画像114A~114Cは、環境104の別個の部分を包含する、異なるそれぞれの視点を有する。いくつかの例において、画像114A~114Cの各々によって取り込まれた画像データ110が融合されて、環境104について、より完全なまたは正確な表現を生成することがあり得る。
【0018】
例示の目的のために、図1に示す例示的なセンサー108は、LIDARセンサーデータの形においてセンサーデータ112を取り込むように構成されるLIDARセンサーである。他のタイプのセンサーが考えられる。LIDARセンサーは、発光素子および光センサーを有することがあり得て、発光素子が、高度に集束された光をオブジェクトまたは表面に向ける1つまたは複数のレーザーを含み、オブジェクトまたは表面が、光を光センサーに反射する。LIDARセンサーの測定値は、LIDARセンサーによって取り込まれた位置または距離に対応する座標(たとえば、デカルト座標、極座標など)を有する3次元のLIDARデータとして表されることがあり得る。いくつかの例においては、変換演算は、3次元のLIDARデータをマルチチャネルの2次元のデータに変換するために使用されることがあり得り、方位および高度がX-Y座標にマップされ、一方のチャネルがレンジを含み、他方のチャネルが強度を含む。いくつかの例においては、LIDARデータは、本明細書に説明されるように自動的にセグメント化されることがあり得り、たとえば、セグメント化されたLIDARデータは、自律車両に対して軌跡を決定するための入力として使用され得る。
【0019】
いくつかの例において、LIDARセンサーは、1つまたは複数のレーザーが、(たとえば、実質的に垂直な軸の周りを)回転するように取り付けられ、それによって、たとえば、環境に関連付けられたLIDARデータを取り込むように、レーザーに、360度のスウィープをさせるように構成されることがあり得る。たとえば、図1に示すように、1つまたは複数のレーザーは、時間t0において1つまたは複数のレーザーが垂直の位置p0に沿って環境104に向けられるように、角度αのスウィープをすることがあり得る。同様にして、時間t1において、1つまたは複数のレーザーは、垂直の位置p1に沿って環境に向けられ、時間t2において、1つまたは複数のレーザーは、垂直の位置p2に沿って環境に向けられ、時間t3において、1つまたは複数のレーザーは、垂直の位置p3に沿って環境に向けられる。
【0020】
いくつかの例において、例示的なセンサー108は、画像取り込みデバイス106によって取り込まれたそれぞれの画像114A~114Cの各々に関連付けられた視野とは異なることがあり得る視野116を取り込むように構成される。例示的な目的のために図1に示されるが、そのような視野は、たとえば、360度を含むそれ以下であることがあり得る。示される例において、さらに、センサー108の例示的な視野116は、画像取り込みデバイス106によって取り込まれるそれぞれの画像114A~114Cに関連付けられた視野とは異なる縦横比を有する。たとえば、LIDARセンサーの視野116は、画像114A~114Cに関連付けられているそれぞれの視野よりも、より広いおよびより狭い(たとえば、高さ方向に短い)ことがあり得る。いくつかの例においては、視野116は、画像取り込みデバイス106によって取り込まれる画像に関連付けられている視野のうちの1つまたは複数と同じであることがあり得ると考えられる。センサー104の視野116が、画像取り込みデバイス106によって取り込まれる画像に関連付けられている視野のうちの1つまたは複数とは異なる例においては、本明細書においてさらに詳細に説明されているように、本明細書において記述されているシステムは、上記の差を考慮してセンサーデータ112により画像を整列させるように構成されることがあり得る。加えて、センサー104(たとえば、LIDARセンサー)は、複数のチャネルにおいて、および/またはビームスプレッド(beam spread)に応じて、センサーデータを生成するように構成されることがあり得り、システムは、画像データ110とセンサーデータ112との間における上記の差を考慮し、センサーデータ112により画像を整列させるように構成されることがあり得る。
【0021】
図1に示すように、例示的なプロセス100は、たとえば、セグメント化された画像を入力画像から予測することがあり得るアルゴリズムおよび/または機械学習を介して、セグメント化された画像120A~120Cを生成するために、画像114A~114Cを自動的にセグメント化するように構成された画像セグメンテーションネットワーク118に、画像114A~114Cを含む画像データ110を送信することを含むことがあり得る。一般に、機械学習は、出力が、学習されたパラメーターに基づいて生成される上記のアルゴリズムの幅広いクラスをいい、以下に詳細に説明されるだろう。いくつかの実施形態において、セグメント化された画像120A~120Cを生成するために使用されることがあり得る例示的な機械学習アルゴリズムは、人工ニューラルネットワーク(ANN)である。ANNは、生物学的にインスパイアされたアルゴリズムであり、入力されたデータを、一連の接続されたレイヤーを通じて渡して、出力を生成する。ANNにおける各レイヤーは、レイヤーをいくつでも含むことがあり得り、さらに、別のANNを含むこともあり得る。一般に、ANNのさまざまなレイヤーが互いに接続されるやり方は、ANNのアーキテクチャーと呼ばれる。画像をセグメント化するための他のタイプの画像セグメンテーションネットワークが考えられる。
【0022】
画像セグメンテーションは、画像を別個のセグメント、またはスーパーピクセルへと区分して、画像のさらに意味のある表現を提供するために使用され得る。たとえば、画像は、画像内のオブジェクトを一意的に識別するためにセグメント化されることがあり得り、各オブジェクトが一意の識別子を有する。画像セグメンテーションは、複数の異なる用途において使用され得る。たとえば、環境における場面に関連付けられたセグメント化された画像は、環境に配置された1つまたは複数のオブジェクトの表現を含むことがあり得る。セグメント化された画像に含まれているオブジェクトの存在および/またはロケーションは、次に、たとえば、マシンビジョンのいくつかの側面を使用するシステムにおいて、障害物回避、オブジェクト検出およびトラッキングなどのために使用されることがあり得る。たとえば、本明細書において説明されているように、セグメント化された画像および/またはセグメント化されたセンサーデータは、環境を通じて自律車両を動かすための車両軌跡を生成するために自律車両の認知システムによって使用されることがあり得る。いくつかの例において、画像は、走行可能な表面を提供するためにセグメント化されることがあり得る。上記の例において、ピクセルは、走行可能な表面に属するか否かとして広く分類されることがあり得る。上記のセグメント化された画像は、どの軌跡が実現可能であるかを自律車両に知らせるために使用されることがあり得る。
【0023】
図1において示されているように、センサー108は、センサー108が存在している環境104を表すセンサーデータ112を生成することがあり得る。122において、センサーデータ112は、(たとえば、変形および非投影を介して、)セグメント化された画像120A~120C上に投影されることがあり得る。本明細書において説明されているように、センサーデータ112は、センサーデータ112およびセグメント化された画像120A~120Cが、(技術的な能力の範囲内で)実質的に時間的に整列させられるように、セグメント化された画像120A~120C上に投影されることがあり得る。加えて、本明細書において説明されているように、センサーデータ112は、環境104におけるオブジェクトに関連付けられたセンサーデータ112が、(技術的な能力の範囲内で)セグメント化された画像120A~120Cにおけるオブジェクトにより空間的に整列させられるように、セグメント化された画像120A~120C上に投影されることがあり得る。
【0024】
たとえば、センサー108は、上に述べたような、たとえば、軸(たとえば、実質的に垂直な軸)の周りを回転する1つまたは複数のレーザーを含むLIDARセンサーであり、1つまたは複数のレーザーが回転するにつれてLIDARセンサーデータを取り込むことがあり得る。レーザーが回転するにつれて、時間t0、t1、t2、およびt3において、それらは、垂直のラインp0、p1、p2、およびp3に対応するセンサーデータ112を取り込む。いくつかの例においては、LIDARセンサーは、LIDARデータが(技術的な許容範囲内で)単一の画像または画像のグループにマップされることがあり得る頻度において、LIDARセンサーデータを提供することがあり得る。いくつかの例において、画像取り込みデバイス106は、レーザーが環境上のスウィープを完了するよりも、より速い速度において画像を取り込むように構成されることがあり得る。したがって、いくつかの例において、センサーデータ112は、画像データ110により時間的に整列させられることがあり得る。たとえば、与えられた時間(たとえば、センサー時間)において取り込まれたセンサーデータ112は、たとえば、センサーデータ112が(たとえば、センサー時間において)取り込まれた時間に最も近い時間に取り込まれた画像を選択することによって、センサーデータ112とほぼ同じ時間(たとえば、画像時間)において取り込まれた画像により時間的に整列させられることがあり得る。
【0025】
たとえば、図1に示すように、LIDARセンサーは、t0において環境104にわたるそのスウィープを開始し、そのスウィープをt1まで継続する。T1において、画像取り込みデバイス106は、画像114Aを取り込む。したがって、今述べた例において、センサー時間t1は、画像114Aが取り込まれた画像時間t1により時間的に整列させられる。加えて、センサー時間t1において、LIDARセンサーは、感知されている環境104にわたって部分的に(たとえば、感知されている環境104にわたる道の約1/3に)のみスウィープをしていて、示される例において、今述べたことは、画像114Aの右端の約1/3に相関する。LIDARセンサーがそのスウィープをセンサー時間t1からt2へと継続するにつれて、画像時間t2における画像取り込みデバイス106は、画像114Bを取り込む。したがって、時間t1とt2との間におけるセンサー時間中に取り込まれたLIDARデータは、画像時間t2に最も近く時間的に対応する。加えて、センサー時間t1とt2との間において、LIDARセンサーは、感知されている環境104にわたって部分的に(たとえば、感知されている環境104にわたる道の約1/3から、感知されている環境104にわたる道の約2/3までに)スウィープをしていて、示される例において、今述べたことは、画像114Bの真ん中の約1/3に相関する。LIDARセンサーがそのスウィープをセンサー時間t2からt3へと継続するにつれて、画像時間t3における画像取り込みデバイス106は、画像114Cを取り込む。したがって、時間t2とt3との間におけるセンサー時間中に取り込まれたLIDARデータは、画像時間t3に最も近く時間的に対応する。加えて、センサー時間t2とt3との間において、LIDARセンサーは、感知されている環境104にわたって部分的にから(たとえば、感知されている環境104にわたる道の約2/3から、感知されている環境104にわたるほぼ全体までに)スウィープをしていて、示される例において、今述べたことは、画像114Cの左端の約1/3に相関する。この例示的なやり方においては、画像取り込みデバイス106によって取り込まれた画像のうちの少なくともいくつかは、センサー108(たとえば、LIDARセンサー)によって取り込まれたセンサーデータ112の少なくとも一部分に相関付けられることがあり得る。
【0026】
いくつかの例において、LIDARセンサーは、取り込まれたデータのうちのいくつかが、感知された環境に対応しない間、360度のスウィープを継続することがあり得る。いくつかの例においては、感知されている環境に対応していない取り込まれたデータは、無視されること、または、たとえば、LIDARセンサーを較正することなど、他の目的のために使用され得る。
【0027】
センサーデータ112が、セグメント化された画像データ120へと空間的に投影される場合に、上記の投影は、センサー(複数可)および画像デバイス(複数可)の相対的な外因性を使用して決定された変形を、画像デバイス(複数可)のカメラマトリックスを使用する非均質化(dehomogenization)も同様に含むことがあり得る。
【0028】
図1に示すように、センサーデータ112の少なくとも一部分を、セグメント化された画像120A~120C上に投影することは、本明細書において説明されているように、画像取り込みデバイス以外のタイプのセンサーによって生成されたセンサーデータを自動的にセグメント化するためのセンサーデータセグメンテーションモデル126をトレーニングするために使用されることがあり得るトレーニングデータセット124を作成する。たとえば、セグメント化された画像120A~120Cにおいて識別された環境104におけるオブジェクトは、センサーデータ112に相関付けられることがあり得り、したがってセンサーデータ112における特徴は、画像取り込みデバイス以外のタイプのセンサーを使用して、今後の同様のオブジェクトを識別するために使用され得る。いくつかの例においては、センサーデータ112は、センサーデータセグメンテーションモデル126をトレーニングするための追加のトレーニングデータとして使用されることがあり得る。
【0029】
図2は、例示的な車両202が通過して進んでいる例示的な環境200を例示する。例示的な車両202は、例えば、ドライバー(または乗員)がいかなる時点においても車両を制御することが期待されない、全行程にすべてのセーフティクリティカルの機能を実行する性能がある車両を記述する、米国連邦道路交通安全局によって発行されるレベル5分類に応じて、動作するように構成された自律車両などのような無人運転車両であることがあり得る。そのような例においては、車両202が、すべての駐車機能を含む、行程の開始から完了までのすべての機能を制御するように構成されることがあり得るので、それは、ドライバー、ならびに/または、ハンドル、アクセルペダル、および/もしくはブレーキペダルなど、車両202を運転するための制御を含まないことがあり得る。今述べたことは、単に例であり、本明細書において説明されるシステムおよび方法は、常にドライバーによって手動により制御される必要がある車両から、部分的にまたは完全に自律的に制御される車両までに及ぶ車両を含む、陸上輸送の、航空輸送の、または水上輸送のどんな車両にでも組み入れられることがあり得る。
【0030】
例示的な車両202は、たとえば、バン、スポーツユーティリティービークル、クロスオーバービークル、トラック、バス、農業車両、および建設車両など、どんな構成の車両でもあり得る。車両202は、1つもしくは複数の内燃機関、1つもしくは複数の電気モーター、水素動力、それらのどんな組合せでも、および/または他の適したどんな動力源によってでも、動力供給されることがあり得る。例示的な車両202が4つの車輪204を有するが、本明細書において説明されるシステムおよび方法は、より少ないまたはより多い数の車輪、タイヤ、および/またはトラックを有する車両に組み入れられることがあり得る。例示的な車両202は、四輪操舵を有することがあり得り、一般に、たとえば、車両202の第1の端部206が、第1の方向208に進むと車両202の前方端部であるような、および第1の端部206が、図2に示すように、反対の第2の方向210に進むと車両202の後方端部になるような、すべての方向において等しい性能特性を有して動作することがあり得る。同様にして、車両202の第2の端部212は、第2の方向210に進むと車両202の前方端部であり、および反対の第1の方向208に進むと、第2の端部212が、車両202の後方端部になるようである。今までに述べた例示的な特性は、たとえば、駐車場および都市エリアなど、狭いスペースまたは混雑した環境において、より高い操縦性を容易にすることがあり得る。
【0031】
例えば、例示的な車両202などの車両は、環境200を通過して進み、センサーデータセグメンテーションモデル126をトレーニングするためのトレーニングデータセット124を生成するためにデータを収集するのに使用されることがあり得る。たとえば、車両は、1つまたは複数の画像取り込みデバイス102と、画像取り込みデバイス102とは異なるタイプの1つまたは複数のセンサー104とを含むことがあり得る。例示の目的のために、1つまたは複数のセンサー104は、1つまたは複数のLIDARセンサーであることがあり得る。他のセンサータイプが考えられる。いくつかの例においては、画像取り込みデバイス102のうちの1つまたは複数、およびセンサー104のうちの1つまたは複数は、たとえば、画像取り込みデバイス102およびセンサー104の視点および/または視野における差を減らすために、車両202上に互いにごく近接して取り付けられることがあり得る。これは、画像取り込みデバイス102およびセンサー104によって環境200において検出されたオブジェクト間における食い違いを減らすことがあり得る。
【0032】
車両202が環境200を通過して進むにつれて、画像取り込みデバイス102およびセンサー104ーは、画像取り込みデバイスおよびセンサー104のうちの1つまたは複数の視野216内において、(技術的な能力の範囲内で)同時にまたは実質的に同時に、検出されたオブジェクト214(たとえば、車両、歩行者、建物、障害物など)に関連付けられたデータを取り込む。取り込まれたデータは、たとえば、図1図6、および図7に関して記述されているように、トレーニングデータセット124を作成するために使用され得る。
【0033】
図3は、本明細書において説明される例示的なプロセスのうちの1つまたは複数を実装するための例示的なアーキテクチャー300を示す。たとえば、アーキテクチャー300は、本明細書において記述されているシステム、方法、および装置の側面を実装するためのさまざまなハードウェアおよび/またはソフトウェアを含む1つまたは複数のコンピューターシステム302を含むことがあり得る。たとえば、コンピューターシステム(複数可)302は、センサーモジュール304(たとえば、LIDARモジュール)、画像取り込みモジュール306、次元変換モジュール308、セグメンテーションモジュール310、分類モジュール312、および軌跡モジュール314を含むことがあり得る。
【0034】
いくつかの例においては、コンピューターシステム(複数可)302は、たとえば、図2に示す例示的な車両202などのような自律車両において具体化されることがあり得る。いくつかの例においては、コンピューターシステム(複数可)302は、自律車両のための認知およびプランニング機能を提供することがあり得る。一般には、コンピューターシステム(複数可)302は、LIDAR認知、視覚(カメラ)認知、セグメンテーションおよび分類、トラッキングおよび融合、ならびに予測/プランニングを含むことがあり得る。
【0035】
センサーモジュール304は、本明細書において記述されているように、データ、セグメンテーション、および/または分類をトレーニングするためにセンサーデータ114を取り込むための、たとえば、LIDARセンサーなどの1つまたは複数のセンサー104を含むことがあり得る。たとえば、センサーモジュール304は、複数のLIDARセンサーからのLIDARデータを結合してまたは合成して、LIDARデータのメタスピン(meta spin)を生成するように構成されることがあり得り、複数のLIDARセンサーによって生成されたLIDARデータを参照することがあり得る。LIDARデータのメタスピンのケースにおいては、センサーモジュール304は、(たとえば、センサーデータのすべてを共通の原点にマップすることによって)メタスピンデータ(meta spin data)の仮想の原点を決定するように構成されることがあり得る。いくつかの例においては、センサーモジュール304は、LIDARセンサーと、オブジェクトまたは表面のポイントとの間におけるレンジを決定するように構成されることがあり得り、いくつかの例においては、センサーモジュール304は、センサーモジュール304によって取り込まれたおよび/または感知された各ポイントに対して表面法線ベクトルを決定するように構成されることがあり得る。制限でない例として、そのような表面法線の決定は、ポイントから、そのポイントの最も近い近傍の2つのポイントへの方向を示すベクトルの外積の法線を計算することによって行われることがあり得る。本開示のコンテキストにおいて理解され得るように、センサーモジュール304は、データを取り込むことができ、後続の処理のためにデータセットをコンピューターシステム302(複数可)に送信することがあり得る。
【0036】
画像取り込みモジュール306は、たとえば、本明細書において記述されているように、画像セグメンテーションおよび/または分類のために画像データ108を取り込むように構成されている1つまたは複数の画像取り込みデバイス102を含むことがあり得る。画像取り込みモジュール306は、画像取り込みセンサーをいくつでもどのタイプでも含むことがあり得る。たとえば、画像取り込みモジュール306は、画像取り込みデバイスを、例えば、どんなカメラ(たとえば、RGBカメラ、モノクロカメラ、強度(グレースケール)カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラ等)でも、含むことがあり得る。本開示のコンテキストにおいて理解され得るように、画像取り込みモジュール306は、画像データ108を取り込むことがあり得り、後続の処理のためにデータセットをコンピューターシステム302(複数可)に送信することがあり得る。たとえば、画像取り込みモジュール306からのデータは、マルチチャネル画像の1つまたは複数のチャネルとして含まれることがあり得る。
【0037】
コンピューターシステム(複数可)302は、たとえば、自律車両における使用に適した他のセンサーをいくつでもどのタイプでも含むことがあり得る。さまざまなセンサーは、制限しないが、1つまたは複数のLIDARセンサー、1つまたは複数のRADARセンサー、1つまたは複数のSONARセンサー、超音波トランスデューサー、ホイールエンコーダー、マイクロフォン、IMU(inertial measurement unit)(複数可)、加速度計、ジャイロスコープ、磁力計、温度センサー、湿度センサー、光センサー、全地球測位システム(GPS)、INS(inertial navigation system)などを含むことがあり得る。
【0038】
いくつかの例においては、センサーモジュール304および画像取り込みモジュール306は、改善された画像セグメンテーションおよび/もしくは分類を提供する、トレーニングデータセットを生成する、ならびに/またはセンサーデータセグメンテーションおよび/もしくは分類を提供するためにデータを結合および/または合成するための1つまたは複数のデータセットをコンピューターシステム302に提供することがあり得る。いくつかの例においては、コンピューターシステム(複数可)302は、本明細書において記述されているようにセンサーデータセットを受信するおよび格納するように構成されることがあり得る。いくつかの例において、コンピューターシステム(複数可)302は、格納されたデータに注釈を付けるように構成されることがあり得り、データを、検出すること、識別すること、分類すること、セグメント化すること、ラベル付けすることなどを含むことがあり得る。
【0039】
いくつかの例においては、さらに、コンピューターシステム(複数可)302は、テストするときに部分的に使用するために、コンピューターシミュレーションアルゴリズムによって生成されたシミュレートされたデータを含むこともあり得る。いくつかの例において、シミュレートされたデータは、例えば、画像データ、センサーデータ(たとえば、LIDARデータ)、GPSデータ等のような、シミュレートされたデータのどのタイプでも含むことがあり得る。いくつかの例においては、コンピューターシステム(複数可)302は、動作を検証するために、および/または機械学習ネットワークによって実行可能なモデルをトレーニングするために、シミュレートされたデータ上の変換動作を修正、変形、および/または行うように構成されることがあり得る。
【0040】
次元変換モジュール308のいくつかの例は、第1の次元を有するデータを、第2の次元を有するデータに変換する、変形する、またはマップするように構成されることがあり得る。たとえば、次元変換モジュール308は、1つまたは複数の3次元のデータセットを、1つまたは複数のマルチチャネルの2次元画像に変換するように構成されることがあり得る。たとえば、次元変換モジュール308は、3次元で格納されているデータを異なる次元表現に変換するおよび/またはマップするように構成されることがあり得る。そのような変換は、たとえば、円筒座標または球座標において記述されるセンサーデータを平面座標に関連付けることを含むことがあり得る。いくつかの例において、円筒座標から平面座標へのそのような変換は、円筒座標を「広げること(unrolling)」として想像することがあり得る。次元変換モジュール308は、いくつかの例においては、制限しないが、球投影(たとえば、ステレオ投影および円筒投影)、メルカトル投影、直接極変換(たとえば、球投影または正距円筒図法)などを含む、3次元データを2次元データに変換するためのどんな変換動作でも行うように構成されることがあり得る。そのような表現のチャネルは、レンジ(または距離)および強度に関連付けられることがあり得る。
【0041】
例示的なセグメンテーションモジュール310は、1つまたは複数のマルチチャネルの2次元画像にセグメンテーションを行うように構成されることがあり得る。たとえば、セグメンテーションモジュール310は、1つまたは複数のマルチチャネルの2次元画像を1つまたは複数の機械学習アルゴリズムに入力するように構成されることがあり得る。たとえば、セグメンテーションモジュール310は、後続の画像分類のために、データにおいて表されるオブジェクトをセグメント化する画像セグメンテーションを行うことがあり得る。いくつかの例においては、データ上でセグメンテーションの動作を実行するように構成されているハードウェアおよび/またはソフトウェアは、「セグメンタ(segmenter)」であると考えられることがあり得る。いくつかの例においては、セグメンテーションモジュール310は、2次元画像に関連付けられたいくつものチャネル上に動作するように構成されることがあり得る。たとえば、セグメンテーションモジュール310は、制限しないが、レンジチャネル、x軸チャネル、y軸チャネル、z軸チャネル、表面法線ベクトルチャネル、反射率チャネル、時間チャネルなどを含む、1つまたは複数のチャネルを入力として受信することがあり得る。いくつかの例においては、セグメンテーションモジュール310は、セグメンテーションを実行するために1つまたは複数の機械学習アルゴリズムのうちのいずれかを使用することがあり得る。たとえば、セグメンテーションモジュール310は、例えば、マルチチャネルの2次元データをセグメント化するようにトレーニングされた1つまたは複数の畳み込みニューラルネットワーク(CNN)などの人工ニューラルネットワークを利用することがあり得る。いくつかの例においては、セグメンテーションモジュール310は、本明細書においてさらに詳細に論じられているようにデータのピラミッディングに帰着する非対称カーネルを使用するように構成されることがあり得る。いくつかの例において、カーネルの非対称ストライド(たとえば、y方向と比較してx方向にさらに高いストライドを有すること)は、より高い抽象化(すなわち、ピラミッドのより高いレベル)におけるデータ表現がx方向およびy方向の両方においてより均一であるように、例えば、チャネルの数(ビームの数)、回転あたりのポイントの数などに基づいて、適用されるおよび選択されることがあり得る。
【0042】
例示的な分類モジュール312は、セグメント化されたデータを受信し、データによって表されているオブジェクトのタイプを識別するように構成されることがあり得る。たとえば、分類モジュール312は、制限しないが、車、建物、歩行者、自転車、木、空きスペース、占められているスペース、道路標識、レーンマーキングなどを含む、1つまたは複数のオブジェクトを分類することがあり得る。分類モジュール312および/またはセグメンテーションモジュール310は、例えば、セグメンテーションおよび分類の動作を行うために、たとえばニューラルネットワークなどのような、どんな機械学習アルゴリズムでも含むことがあり得る。
【0043】
ニューラルネットワークのコンテキストにおいて説明されるが、機械学習のどのタイプでも、本開示と矛盾することなく使用されることがあり得る。たとえば、機械学習アルゴリズムは、制限しないが、回帰アルゴリズム(たとえば、通常の最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応型回帰スプライン(MARS)、局所推定スキャッタープロット平滑化法(LOESS))、インスタンスベースのアルゴリズム(たとえば、リッジ回帰、最小絶対収縮および選択演算子(LASSO)、弾性ネット、最小角度回帰(LARS))、ディシジョンツリーアルゴリズム(たとえば、分類および回帰ツリー(CART)、反復二分法3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定断端、条件付きディシジョンツリー))、ベイジアンアルゴリズム(たとえば、ナイーブベイズ、ガウスナイーブベイズ、多項式ナイーブベイズ、アベレージワンディペンデンスエスティメータズ(AODE)、ベイジアンビリーフネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(たとえば、k平均法、kメジアン、期待値最大化(EM)、階層クラスタリング)、相関ルール学習アルゴリズム(たとえば、パーセプトロン、逆伝搬、ホップフィールドネットワーク、動径基底関数ネットワーク(RBFN))、深層学習アルゴリズム(たとえば、ディープボルツマンマシン(DBM)、ディープビリーフネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、スタックドオートエンコーダ)、次元縮退アルゴリズム(たとえば、主成分分析(PCA)、主成分回帰(PCR)、部分的最小二乗回帰(PLSR)、サモンマッピング、多次元尺度構成法(MDS)、投影追跡、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、柔軟判別分析(FDA))、アンサンブルアルゴリズム(たとえば、ブースティング、ブートストラップアグリゲーション(バギング)、アダブースト、スタックドジェネラリゼーション(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰ツリー(GBRT)、ランダムフォレスト)、SVM(サポートベクターマシン))、教師あり学習、教師なし学習、準教師あり学習など含むことがあり得る。
【0044】
いくつかの例においては、複数のタイプの機械学習が使用されて、使用されている機械学習のタイプの各々にそれぞれの結果を提供することがあり得る。いくつかの例において、信頼スコアは、結果の各々に関連付けられることがあり得り、信頼される結果は、結果に関連付けられた信頼スコアに少なくとも部分的に基づくことがあり得る。たとえば、最も高い信頼スコアに関連付けられている結果は、他の結果に優先して選択されることがあり得り、または結果は、信頼スコアに基づいて、たとえば、加重平均等などのような統計的な方法に基づいて、結合されることがあり得る。
【0045】
いくつかの例においては、軌跡モジュール314は、セグメント化されたおよび/または分類されたデータを受信して、たとえば、例示的な車両202などのような、自律車両の操作のための軌跡を決定するように構成されることがあり得る。たとえば、軌跡モジュール314は、セグメント化された画像データ、セグメント化されたセンサーデータ、および/または関連した分類情報を受信して、自律車両が進むための道路上の空きスペースを識別し、自律車両がたどるための軌跡を生成するように構成されることがあり得る。いくつかの例においては、軌跡モジュール314は、本明細書において論じられているように、セグメント化されたおよび/または分類されたオブジェクトを入力として受信することがあり得り、オブジェクトをトラッキングして、上記のオブジェクトに少なくとも部分的に基づいて、軌跡を生成することがあり得る。
【0046】
図4Aは、例示的な車両202に取り付けられたまたは例示的な車両202によって運ばれる複数のセンサーアセンブリを有する車両202の側面図400である。いくつかの例において、複数のセンサーアセンブリからのデータセットは、メタスピン(たとえば、複数のLIDARセンサーを表すLIDARデータ)を形成するために結合もしくは合成されることがあり得り、またはセグメンテーション、分類、予測、プランニング、軌跡生成などに対して精度もしくは処理を改善するためにセンサー融合技術を使用して、結合されるもしくは融合されることがあり得る。
【0047】
側面図400に示すように、例示的な車両202は、センサーをいくつでもどんな組合せまたは構成でも含むことがあり得る。たとえば、示される例示的な車両202は、センサー404、406、および408を含む。いくつかの例においては、センサー404は、θ1として例示される垂直の視野を有するRADARセンサーを含むことがあり得る。例示的なセンサー406は、車両202のルーフ上に取り付けられるLIDARセンサーを含むことがあり得り、θ2として例示される垂直の視野を有することがあり得る。いくつかの例においては、センサー408は、垂直の視野θ3を有する、例えば、カメラなどの画像取り込みデバイスを含むことがあり得る。車両202は、センサーをいくつでもどのタイプでも含むことがあり得り、図4Aに関して示されるおよび説明される例に制限されない。
【0048】
図4Bは、図4Aに示す例示的な車両202の上面図410である。図4Bに示すように、さらに、例示的な車両202は、センサー412、414、416、および418も含む。たとえば、センサー408および418は、同一場所に配置されるまたは互いに近接して配置されることがあり得るが、さまざまな視野を有する別個のセンサータイプまたは様相を含むことがあり得る。いくつかの例においては、センサー412、414、416、および418は、LIDARセンサー、RADARセンサー、および/または画像取り込みデバイスを含むことがあり得る。
【0049】
図4Bにおいて示されているように、センサー404は、水平の視野θ4を有することがあり得り、センサー406は、水平の視野θ5を有することがあり得り、センサー408は、水平の視野θ6を有することがあり得り、センサー412は、水平の視野θ7を有することがあり得り、センサー414は、水平の視野θ8を有することがあり得り、センサー416は、水平の視野θ9を有することがあり得り、センサー418は、水平の視野θ10を有することがあり得る。センサーの取り付けロケーションおよび/または視野は、構成をいくつでも有することがあり得る。
【0050】
図5Aおよび図5Bは、入力画像および対応するセグメント化された画像の例を示す。図5Aにおいて示されている例示的な入力画像500は、例示的なオブジェクトセグメント化(object-segmented)画像510に対応することがあり得る。画像500のセグメンテーションは、画像のいくつかの意味ある表現を決定することを行うことがあり得る。たとえば、入力画像500に存在するオブジェクトに基づいて入力画像500をセグメント化することは、示されるようなオブジェクトセグメント化画像510に帰着することがあり得る。図5Aにおいて示されているように、オブジェクトセグメント化画像510の各異なる陰影は、異なるオブジェクト(たとえば、車、建物、歩行者、ロードマーカーなど)に対応する。示されるようなセグメント化された形において、入力画像500における特定のオブジェクトのロケーション、分類、および/または有無を決定することが可能であることがあり得る。
【0051】
図5Bは、入力画像500をセグメント化するための別の可能なセグメンテーションスキーマの例を示す。図5Aにおいて示されている入力画像500のセグメンテーションとは対照的に、入力画像500は、「空きスペース(free space)」、または車両が進むことがあり得る潜在的な領域に基づいて、セグメント化されることがあり得る。図5Bは、空きスペースセグメント化画像520の例示的な表現を示す。空きスペースセグメント化画像520は、走行可能な経路の信頼性に関する情報(たとえば、さまざまな陰影)を提供することがあり得る。示される例において示されているように、空きスペースセグメント化画像520の、より薄い陰影は、たとえば、他の車両、建物、または歩行者などのオブジェクトによって塞がれていない道路表面に対応する。そのようなセグメンテーションは、車両が、環境におけるオブジェクトとの衝突を回避することがあり得るような、自律車両用の軌跡を展開するために有用であることがあり得る。
【0052】
図6は、画像およびセンサーデータを取り込むための例示的な処理の絵のフロー図600である。示されている例において、3つの画像取り込みデバイス102A~102Cおよび例示的なLIDARセンサー602は、画像取り込みデバイス102A~102CおよびLIDARセンサー602が存在する場面604に関連付けられたデータを取り込む。図6は、3つの画像取り込みデバイス102A~102Cおよび単一のLIDARセンサー602を示しているが、より少ないまたはより多い画像取り込みデバイスが考えられ、複数のLIDARセンサーが考えられる。画像取り込みデバイス102A~102Cは、たとえば、どんなカメラ(たとえば、RGBカメラ、モノクロカメラ、強度(グレースケール)カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラ等)でも、環境を表す画像を取り込むように構成される画像取り込みデバイスのどんなタイプでもあり得る。
【0053】
図6に示す例において、3つの例示的な画像取り込みデバイス102A~102Cは、画像取り込みデバイス102A~102Cのそれぞれの視野610A~610Cに対応する画像608の形において画像データ606を取り込むとして示されている。たとえば、概略的に示されているように、画像取り込みデバイス102Aは、視野610Aに関連付けられている画像を取り込み、画像取り込みデバイス102Bは、視野610Bに関連付けられている画像を取り込み、画像取り込みデバイス102Cは、視野610Cに関連付けられている画像を取り込む。画像608A~608Cが、図面に内在する限界に起因して、図6において同じであるとして概略的に示されるが、画像608A~608Cの1つまたは複数(たとえば、各々)は、たとえば、画像608A~608Cが取り込まれたわずかに異なるビューおよび時間に起因して、わずかに異なるであろう。示される例において、画像取り込みデバイス102A~102Cの各々は、その他の画像取り込みデバイス102とはわずかに異なる視野610を有する。上記の例において、各画像取り込みデバイス102A~102Cは、場面604の別個の部分を包含する、異なるそれぞれの視点を有するそれぞれの画像608A~608Cを提供することがあり得る。たとえば、画像608Aは、それぞれの画像時間t1、t2、およびt3において画像取り込みデバイス102Aによって取り込まれた3つの画像に対応することあり得り、画像608Bは、それぞれの画像時間t1、t2、およびt3において画像取り込みデバイス102Bによって取り込まれた3つの画像に対応することがあり得り、画像608Cは、それぞれの画像時間t1、t2、およびt3において画像取り込みデバイス102Cによって取り込まれた3つの画像に対応することがあり得る。いくつかの例においては、画像取り込みデバイス102A~102Cの各々によって取り込まれた画像データ606は、融合されて、場面604の、より完全な表現を生成することがあり得る。
【0054】
図6に示すように、例示的なLIDARセンサー602は、たとえば、図6に示すように、画像取り込みデバイス102A~102Cに関連付けられた視野610A~610Cとは異なることがあり得る、視野614からLIDARセンサーデータ612を取り込むように構成される。示される例において、さらに、LIDARセンサー602の例示的な視野614は、画像取り込みデバイス102A~102Cに関連付けられた視野610A~610Cとは異なる縦横比を有する。たとえば、LIDARセンサー602の視野614は、画像取り込みデバイス102A~102Cのそれぞれの視野610A~610Cよりも、より広いおよびより狭い(すなわち、高さ方向に短い)。これは、たとえば、ビームスプレッド、チャネルの数等などのような、センサーの物理的なパラメーターに起因することがあり得る。LIDAR104の視野614が、画像取り込みデバイス102A~102Cの視野610A~610Cのうちの1つまたは複数とは異なる例において、本明細書にて説明されるシステムは、上記の差を考慮するように構成されることがあり得る。
【0055】
図7は、画像をセグメント化し、LIDARセンサーデータを、セグメント化された画像上に投影して、センサーデータセグメンテーションネットワークのセンサーデータセグメンテーションモデルをトレーニングするトレーニングデータセットを作成するための例示的な処理の絵のフロー図700である。図7に示すように、画像608(図6参照)を含む画像データ606は、たとえば、本明細書において説明されるような、たとえば、セグメント化された画像を入力画像から予測することがあり得るアルゴリズムおよび/または機械学習を介して、画像608を自動的にセグメント化して、セグメント化された画像704を生成するように構成される画像セグメンテーションネットワーク702に送信される。
【0056】
図7に示すように、LIDARセンサー602(図6参照)は、LIDARセンサー602が存在する場面604を表すLIDARセンサーデータ612を生成する。706において、LIDARセンサーデータ612は、セグメント化された画像704A~704C上に投影される。LIDARセンサーデータ612は、LIDARセンサーデータ612およびセグメント化された画像704A~704Cが、たとえば、図1に関して上に述べたように、(技術的な能力の範囲内で)実質的に時間的に整列させられるように、セグメント化された画像704A~704C上に投影される。加えて、LIDARセンサーデータ612は、セグメント化された画像704A~704C上に投影されることがあり得り、それによって、場面604におけるオブジェクトに関連付けられたLIDARセンサーデータ612が、たとえば、図1に関して上に述べたように、(技術的な能力の範囲内で、)セグメント化された画像704A~704Cにおけるオブジェクトにより実質的に空間的に整列させられる。
【0057】
図7において示されているように、LIDARセンサーデータ612を、セグメント化された画像704A~704C上に投影することは、LIDARセンサーによって生成されたLIDARセンサーデータを自動的にセグメント化するためのセンサーデータセグメンテーションネットワーク712のセンサーデータセグメンテーションモデル710をトレーニングするために使用されることがあり得るトレーニングデータセット708を作成する。たとえば、いったんトレーニングされると、そのようなセグメンテーションモデル710は、今後にLIDARセンサーを使用してオブジェクトをセグメント化するための入力として生のセンサーデータ(たとえば、LIDARセンサーデータ612)を取ることがあり得る。いくつかの例においては、LIDARセンサーによって取り込まれたセンサーデータは、センサーデータセグメンテーションネットワーク712のセンサーデータセグメンテーションモデル710をトレーニングするために、追加のトレーニングデータとして使用されることがあり得る。
【0058】
センサーデータセグメンテーションネットワーク712は、本明細書において記述されている任意のタイプの機械学習モデルを含むことがあり得る。たとえば、センサーデータセグメンテーションネットワーク712は、CNNであることがあり得る。いくつかの例においては、センサーデータセグメンテーションネットワーク712は、複数の機械学習ネットワークを含むことがあり得る。本明細書において説明されているように、複数のタイプの機械学習が使用されて、使用されている機械学習のタイプの各々にそれぞれの結果を提供することがあり得る。いくつかの例において、信頼スコアは、結果の各々に関連付けられることがあり得り、信頼される結果は、結果に関連付けられた信頼スコアに少なくとも部分的に基づくことがあり得る。たとえば、最も高い信頼スコアに関連付けられている結果は、他の結果に優先して選択されることがあり得り、または結果は、信頼スコアに基づいて、たとえば、加重平均等などのような統計的な方法に基づいて、結合されることがあり得る。
【0059】
いくつかの例(たとえば、CNNが使用される例)において、センサーデータセグメンテーションネットワーク712は、ストライドが非対称である(すなわち、長さ次元に沿ったカーネルアプリケーション(kernel application)の間におけるステップが、高さ次元におけるステップよりも高いことがあり得る)ような、やり方により、センサーデータ(たとえば、LIDARセンサーデータ612)をセグメンテーションするために対称および/または非対称のカーネル(たとえば、二乗または非二乗であるカーネル)を含むことがあり得る。いくつかのそのような例においては、非対称ストライドを使用したカーネルの連続した適用は、レセプターフィールド(receptor field)を増大させるやり方でのデータのピラミッディングに帰着することがあり得る。そのようなストライドは、たとえば、制限しないが、チャネルの数、チャネル間の幅、回転あたりのデータリターンの数等のような、センサーデータの物理的なパラメーターに基づいて選択されることがあり得る。今述べたことは、上記のピラミッディングが、ネットワークの受容可能なフィールド(receptive field)を増大させて、それらの投影を行うときのデータおよびコンピューティングパワーの、より効率的な使用に帰着することがあり得るように、センサーデータ(たとえば、LIDARセンサーデータ612)をセグメント化することを容易にすることがあり得る。
【0060】
有効な出力を生成するために、機械学習ネットワークは、たとえば、CNNなどは、はじめにパラメーターのセットを学習しなければならない、または「トレーニングされ(trained)」なければならない。トレーニングは、データセットをネットワークへと入力することによって達成され、データセットが、期待される出力値に関連付けられる。これらの期待される出力値は一般に、「グラウンドトゥルース(ground truth)」ということがあり得る。たとえば、グラウンドトゥルースは、画像内の特定のオブジェクトの識別を、そのオブジェクトに関連付けられている(たとえば、オブジェクトを車または建物として識別およびラベル付けする)意味論的分類またはラベルも同様に、含むことがあり得る。ネットワークの精度は、トレーニングデータセットにおいて提供されるデータの量および/または精度に基づくことがあり得る。結果として、セグメント化されたセンサーデータを出力するようにネットワークをトレーニングするための適切なデータセットは、センサーデータが既知のまたは以前に決定されたセグメントを含むことになるだろう。いくつかの例において、トレーニングデータセットは、現実世界の場面を表す1つまたは複数のセンサーデータセットに相関する現実世界の場面を表す1つまたは複数のセグメント化された画像を含むことがあり得て、手作業によって、または、センサーデータセットにおけるオブジェクトをセグメント化する、検出する、分類する、および/もしくはラベル付けするように構成される1つもしくは複数のアルゴリズムを介して、注釈を付けられることがあり得る。制限でない例として、生のLIDARセンサーデータがネットワークに入力されることがあり得り、その出力が、以降で詳細に論じられているように、LIDARデータの対応するセグメント化されたセット(すなわち、グラウンドトゥルース)と比較されて、内部パラメーターを更新することがあり得る。例として、そのようなグラウンドトゥルースは、対応する画像データによって提供された関連付けられたセグメンテーションを伴うLIDARデータであることがあり得る。いくつかの例においては、トレーニングデータセットは、注釈を付けられたオブジェクトを含む、またはコンピューターアルゴリズムによって注釈を付けられた、(たとえば、コンピューターによって生成された)合成のデータを含むことがあり得る。トレーニングは、オフラインデータおよび/またはオンラインデータを使用して行われることが可能である。
【0061】
損失関数は、トレーニング中にネットワークの内部パラメーターを調整するために使用されることがあり得る。損失関数は、ネットワークによって出力されるデータセットおよび値に対して期待される出力(またはグラウンドトゥルース)の値の関数である。損失関数に含まれた情報は、内部パラメーターを調整するために逆伝搬としてネットワークを通じて送られ、それによって、ネットワークを調節して有効な出力を提供することがあり得る。ほかのすべてが等しいなら、ネットワークをトレーニングするために使用されるデータが多ければ多いほど、(たとえば、正確なセグメンテーションおよび/または分類を提供するときに)より信頼できるネットワークであることがあり得る。
【0062】
LIDARデータなどのセンサーデータをセグメント化するようにネットワークをトレーニングするために使用され得るそのような損失関数の一例は、ソフトマックス関数であるが、予想される、またはグラウンドトゥルースの、セグメント化されたデータを有する入力データの他のどんな関数でも考えられる。他の例示的な損失関数は、制限しないが、サポートベクターマシン(SVM)損失、ヒンジ損失などを含む。
【0063】
いくつかの例においては、センサーデータセグメンテーションネットワーク712に関するグラウンドトゥルースは、セグメント化された画像704によって提供されることがあり得る。いくつかの例において、画像は、画像セグメンテーションネットワーク702(たとえば、CNN)を使用して自動的にセグメント化されて、セグメント化された画像704を取得することがあり得り、セグメント化された画像704に関連付けられているセンサーデータは、画像取り込みデバイスではないセンサーから取得されたセンサーデータを自動的にセグメント化するようにセンサーデータセグメンテーションネットワーク712のセンサーデータセグメンテーションモデル710をトレーニングするためのグラウンドトゥルースとして使用され得る。たとえば、セグメント化された画像704に関連付けられているLIDARセンサーデータ612は、LIDARセンサーから取得されたLIDARセンサーデータに関するグラウンドトゥルースとして使用され得る。図7において概略的に示すように、画像データ606が取り込まれセグメント化される間に取得されたLIDARセンサーデータ612は、セグメント化された画像704上に投影されて、トレーニングデータセット708を取得することがあり得て、トレーニングデータセット708は、CNN、または本明細書において説明されるどんなタイプのネットワークでもあり得るセンサーデータセグメンテーションネットワーク712が走らせるセンサーデータセグメンテーションモデル710をトレーニングするために使用されることがあり得る。上で説明されているように、生のセンサーデータは、ネットワークに入力されることがあり得る。次に、結果として生じる出力は、セグメント化された画像704によって提供されるような、関連付けられたセグメンテーション(たとえば、グラウンドトゥルース)を有するセンサーデータと比較されることがあり得る。そのような比較は、損失関数(またはコスト関数)によって決定されることがあり得て、ネットワークパラメータの変動を推進する。いくつかの例において、損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、ロジスティック回帰の損失などであることがあり得る。
【0064】
いくつかの例においては、センサーデータセグメンテーションネットワーク712は、たとえば、入力データに含まれているオブジェクトに基づいて入力データをセグメント化することによって、オブジェクトセグメンテーションのためにトレーニングされることがあり得る。他のセグメンテーションタイプも考えられる。たとえば、センサーデータセグメンテーションネットワーク712は、「空きスペース(free space)」、または、たとえば、図5Bに示す空きスペースのセグメンテーションと同様、自律車両用の軌跡をプランニングするのに適した経路を提供するだろうセンサーデータにおけるエリアを識別するように、トレーニングされることがあり得る。そのような例において、セグメント化されたセンサーデータにおいて定義される空きスペースは、自律車両の操作のための軌跡を生成するために使用されることがあり得る。加えて、センサーデータセグメンテーションネットワーク712は、占められているスペース、または、自律車両の軌跡に適した経路を提供しないであろう、センサーによって包含されたエリアを見つけ出すように、トレーニングされることがあり得る。
【0065】
図8は、センサーデータを取り込み、例示的なセンサーデータセグメンテーションネットワークを使用してセンサーデータをセグメント化して、自律車両に対して車両軌跡を生成するように構成された軌跡モジュールによる使用のためのセグメント化されたセンサーデータを生成するための例示的なプロセスの絵のフロー図800を概略的に示している。示される例において、例示的な車両202は、道路804上の環境802を通過して自律的に進む。例示的なセンサー806は、環境802におけるオブジェクト808を検出するために、車両202上に取り付けられる。センサー806は、たとえば、画像取り込みデバイス、および/またはLIDARセンサーを含む、本明細書において記述されている他のセンサータイプなど、複数のセンサータイプを含むことがあり得る。センサー806は、環境802におけるオブジェクト808を感知し、オブジェクト808を示す信号という形においてセンサーデータ810を生成する。
【0066】
いくつかの例においては、センサー806は、画像取り込みデバイスと、たとえば、LIDARセンサーなど、画像取り込みデバイス以外の第2のセンサータイプとを含むことがあり得る。そのような例においては、1つまたは複数のLIDARセンサーは、LIDARセンサーデータ810を生成するように構成されることがあり得る。LIDARセンサーデータ810は、センサーデータセグメンテーションモデル814を使用してLIDARセンサーデータ810をセグメント化する(たとえば、LIDARセンサーデータ810を自動的にセグメント化する)ように構成されるセンサーデータセグメンテーションネットワーク812に伝達されることがあり得る。ある例においては、センサーデータセグメンテーションモデル814は、1つまたは複数のLIDARセンサーによって感知されたオブジェクト808および/または空きスペースを識別および/または分類して、セグメント化されたセンサーデータ816(たとえば、セグメント化されたLIDARセンサーデータ)を提供するように構成されることがあり得る。セグメント化されたセンサーデータ816は、車両202が環境802を通過して進む際にたどるための車両軌道820を生成するように構成された軌道モジュール818に伝達されることがあり得る。
【0067】
さまざまな実装においては、本明細書において示されているパラメーター値およびその他のデータは、1つまたは複数のデータストアに含まれることがあり得り、説明されない他の情報と結合されることがあり得り、またはより多くの、より少ない、もしくは別個のデータ構造へと別個に区分されることがあり得る。いくつかの実装においては、データストアは、1つのメモリに物理的に配置されることがあり得り、または2つ以上のメモリ間に分散されることがあり得る。
【0068】
当業者は、例示的なアーキテクチャー300(図3参照)が単に例示的であり、本開示の範囲を制限することを意図されないということを理解するだろう。特に、コンピューティングシステムおよびデバイスは、コンピューター、ネットワークデバイス、インターネットアプライアンス、タブレットコンピューター、PDA、ワイヤレス電話、ページャーなどを含む、示される機能を実行することが可能であるハードウェアまたはソフトウェアのどんな組合せでも含むことがあり得る。さらに、アーキテクチャー300は、例示されない他のデバイスに接続されることもあり得り、または代わりにスタンドアロンのシステムとして動作することがあり得る。加えて、例示されるコンポーネントによって提供される機能性は、いくつかの実装において、より少ないコンポーネントにおいて結合されること、または追加のコンポーネントに分散されることがあり得る。同様にして、いくつかの実装においては、示されているコンポーネントのうちのいくつかの機能性が提供されないことがあり得り、および/または他の追加の機能性が利用可能であり得る。
【0069】
さらに、当業者は、さまざまなアイテムが、使用される間にメモリまたはストレージに格納されているとして示されているが、これらのアイテムまたはそれらの部分は、メモリ管理およびデータインテグリティーの目的のためにメモリと他のストレージデバイスとの間において転送されることがあり得ることも理解するだろう。代替として、他の実装において、ソフトウェアコンポーネントのうちのいくつかまたはすべては、別のデバイス上のメモリにおいて実行して、例示されるアーキテクチャー300と通信することがあり得る。さらに、いくつかのまたはすべてのシステムコンポーネントまたはデータ構造は、非一時的な、コンピューターアクセス可能なメディア、または、適切なドライブによって読み取られる携帯物に(たとえば、命令または構造化されたデータとして)格納されることもあり得り、そのさまざまな例が、上に述べられる。いくつかの実装において、アーキテクチャー300から分離したコンピューターアクセス可能なメディアに格納された命令は、伝送メディア、または、例えば、ワイヤレスリンクなどの通信メディアを介して伝達される電気信号、電磁信号、もしくはデジタル信号などの信号を介してアーキテクチャー300に送信されることがあり得る。さまざまな実装は、前述の説明に従って実装される命令および/またはデータを受信する、送信する、またはコンピューターアクセス可能なメディア上に格納することをさらに含むことがあり得る。したがって、本明細書において記述されている技術は、他の制御システム構成とともに実施されることがあり得る。車両202(図2参照)のモジュールの動作に関する追加の情報は、以下に論じられる。
【0070】
図9および図10は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実装されることが可能である動作のシーケンスを表す、ロジカルフローグラフにおけるブロックの集まりとして例示される例示的なプロセスのフロー図である。ソフトウェアのコンテキストにおいては、ブロックは、1つまたは複数のコンピューター読み取り可能な記録媒体に格納されたコンピューター実行可能な命令を表し、1つまたは複数のプロセッサーによって実行されると、引用される動作を実行する。一般に、コンピューター実行可能な命令は、特定の機能を実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記述されている順序は、制限として解釈されることを意図せず、プロセスを実装するために、記述されているブロックをいくつでも、どんな順序でもおよび/または並列に組み合わされることが可能である。
【0071】
図9は、セグメント化された画像およびセンサーデータを含む例示的なトレーニングデータセットを使用して例示的なセンサーデータセグメンテーションモデルをトレーニングするための例示的なプロセス900のフロー図である。902において、例示的なプロセスは、環境を表す1つまたは複数の画像を受信することを含むことがあり得り、ここで、画像は、画像取り込みデバイスによって生成された画像データを含む。
【0072】
904において、さらに、例示的なプロセス900は、画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信することを含むこともあり得る。たとえば、画像は、たとえば、CNNなどのような機械学習ネットワークを使用して自動的にセグメント化されることがあり得る。本明細書において説明されているように、他のタイプの機械学習モデルまたはコンピュータービジョン技術による画像セグメンテーションが考えられる。
【0073】
例示的なプロセス900は、906において、画像データをセグメント化して、セグメント化された画像を生成することを含むことがあり得る。たとえば、画像は、CNNなどの機械学習ネットワークによって自動的にセグメント化されることがあり得る。たとえば、上記のセグメンテーションは、検出されたオブジェクトに基づいて、空きスペースの決定に基づいてなど、画像を分割することがあり得る。
【0074】
908において、さらに、例示的なプロセス900は、環境を表すデータを生成するように構成されたセンサーによって生成されたセンサーデータを受信することを含むこともあり得る。いくつかの例においては、センサーは、画像取り込みデバイス以外のタイプのセンサーであることがあり得る。たとえば、センサーは、LIDARセンサーであることがあり得り、センサーデータは、LIDARセンサーデータであることがあり得る。例えば、制限しないが、RADAR(複数可)、超音波トランスデューサー(複数可)等などの他のセンサータイプおよび上記のセンサーからのデータが、考えられる。
【0075】
910において、さらに、例示的なプロセス900は、センサーデータを、セグメント化された画像に関連付けて、トレーニングデータセット(たとえば、生のセンサーデータを含むセット、および対応するセグメンテーション情報を伴うセンサーデータの関連したセット)を作成することを含むこともあり得る。たとえば、センサーデータを、セグメント化された画像に関連付けることは、センサーデータを、セグメント化された画像上に投影することと、セグメント化された画像からのセグメンテーション情報をセンサーデータに関連付けることとを含むことがあり得る。いくつかの例においては、画像の各々は、それぞれの画像時間において取り込まれ、センサーデータは、センサー時間において取り込まれる。センサーデータを、セグメント化された画像に関連付けることは、画像時間とセンサー時間との間における差を最小化する、画像時間において取り込まれた画像データを選択し、センサーデータを、選択された画像に関連付けることを含むことがあり得る。いくつかの例において、センサーデータを、セグメント化された画像に関連付けることは、セグメント化された画像によりセンサーデータを整列させることを含むことがあり得る。いくつかの例において、セグメント化された画像によりセンサーデータを整列させることは、セグメント化された画像によりセンサーデータを時間的におよび/または空間的に整列させることを含むことがあり得る。いくつかの例において、センサーデータを、セグメント化された画像に関連付けることは、センサーデータを、セグメント化された画像に関連付けてトレーニングデータセットを作成するときに、大きな深度の不連続性に関連付けられた画像データを識別し、セグメント化された画像の上記の不連続性に関連付けられた画像データを無視することを含むこともあり得る。これは、トレーニングデータセットにおいてエラーを作成する可能性を減らすことができる。
【0076】
さらに、912において、例示的なプロセス900は、センサーデータセグメンテーションモデルを走らせる(すなわち、センサーデータセグメンテーションモデルを使用してセンサーデータセグメンテーションを決定する)ように構成された機械学習ネットワークにトレーニングデータセットを送信することを含むこともあり得る。
【0077】
914において、さらに、例示的なプロセス900は、センサーから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることを含むことがあり得る。たとえば、センサーによって生成されたセンサーデータを受信することは、LIDARセンサーによって生成されたセンサーデータを受信することを含むことがあり得り、センサーデータセグメンテーションモデルをトレーニングすることは、LIDARから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用して(たとえば、セグメント化された画像データに関連付けられたセンサーデータおよびネットワークの出力の損失関数において算出されたエラーを逆伝搬することによって)センサーデータセグメンテーションモデルをトレーニングすることを含むことがあり得る。
【0078】
図10は、例示的なセンサーデータセグメンテーションモデルを使用してセンサーデータをセグメント化するための例示的なプロセス1000のフロー図である。1002において、例示的なプロセスは、センサーが配置される環境を示す信号を生成するように構成されたセンサーから、センサーデータを受信することを含むことがあり得る。たとえば、センサーは、画像取り込みデバイス以外のタイプのセンサーであることがあり得る。たとえば、センサーは、センサーが配置されている環境を表すLIDARセンサーデータを生成するように構成されているLIDARセンサーであることがあり得るが、他のどのセンサータイプでも考えられる。
【0079】
1004において、さらに、例示的なプロセス1000は、たとえば、本明細書において説明されるセンサーデータセグメンテーションモデルなどのセンサーデータセグメンテーションモデルを使用して、センサーから受信されたセンサーデータをセグメント化することを含むこともあり得る。たとえば、センサーデータセグメンテーションモデルは、センサーによって検出された環境内のオブジェクトの識別および/または分類を容易にするように構成されることがあり得る。いくつかの例においては、センサーデータセグメンテーションモデルは、環境内の空きスペースの識別を容易にするように構成されることがあり得る。いくつかの例においては、センサーデータセグメンテーションモデルは、たとえば、本明細書において記述されているように、グラウンドトゥルースを提供するように、セグメント化された画像データを使用してトレーニングされることがあり得る。いくつかの例においては、センサーデータセグメンテーションモデルは、センサー、ならびに/または同じタイプおよび/もしくは別個のタイプの他のセンサーによって取り込まれた追加のデータによってトレーニングされることがあり得る。
【0080】
1006において、さらに、例示的なプロセス1000は、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両に対して1つまたは複数の軌跡を生成することを含むこともあり得る。たとえば、認知システムの軌跡モジュールは、セグメント化されたセンサーデータを受信し、セグメント化されたセンサーデータに少なくとも部分的に基づいて、1つまたは複数の軌跡を生成するように構成されることがあり得る。
【0081】
1008において、さらに、例示的なプロセス1000は、軌跡のうちの1つまたは複数に応じて、自律車両を動かすことを含むことがあり得る。
【0082】
図11は、本明細書において説明されるプロセスを実装するための例示的なコンピューターアーキテクチャー1100のブロック図である。例示的なアーキテクチャー1100は、ストレージ1104と、1つまたは複数のプロセッサー(複数可)1106と、オペレーティングシステム1110を含むメモリ1108とを含むことがあり得る1つまたは複数のコンピューターシステム1102を含む。ストレージ1104、プロセッサー(複数可)1106、メモリ1108、およびオペレーティングシステム1110は、通信インフラストラクチャー1112を介して通信可能に結合されることがあり得る。いくつかの例において、コンピューターシステム(複数可)1102は、入力/出力(I/O)デバイス(複数可)1114を介して、通信インフラストラクチャー1112を使って1つまたは複数のネットワーク1116を介した1つまたは複数の他のコンピューティングデバイスも同様に、ユーザーまたは環境と対話することがあり得る。オペレーティングシステム1110は、他のコンポーネントと対話して、メモリ1108において1つまたは複数のアプリケーション1118を制御することがあり得る。
【0083】
いくつかの例においては、コンピューターシステム(複数可)1102は、図3のコンピューターシステム(複数可)302に対応することがあり得る。コンピューターシステム(複数可)302は、本明細書において論じられている画像分析および/またはセンサーデータ分析を行うモジュール304、306、308、310、312、および314を実装するために、どんなハードウェアおよび/またはソフトウェアでも実装することができる。
【0084】
本明細書において記述されているシステムおよび方法は、ソフトウェアまたはハードウェアまたはそれらのどんな組合せでも実装されることがあり得る。本明細書において説明されるシステムおよび方法は、物理的にもしくは論理的に互いに分離することがあり得るまたはそうでないことがあり得る、1つまたは複数のコンピューティングデバイスを使用して、実装されることがあり得る。方法は、オンプレミスのハードウェアか、オンプレミスの仮想システムか、またはホステッドプライベートインスタンスかのいずれかとして、配列されるコンポーネントによって行われることがあり得る。加えて、本明細書において記述されている方法のさまざまな側面が結合または統合されて、他の機能にマージされることがあり得る。
【0085】
特に、プロセッサーまたはコンピューターシステムは、本明細書において記述されている方法のうちのいくつかまたはすべてを行うように構成されることがあり得る。いくつかの例においては、方法は、1つまたは複数のコンピューターまたはプロセッサーによって部分的にまたは完全に自動化されることがあり得る。本明細書において記述されているシステムおよび方法(またはその任意の部分(複数可)もしくは機能(複数可))は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを使用して実装されることがあり得り、1つまたは複数のコンピューターシステムまたはその他の処理システムにおいて実装されることがあり得る。いくつかの例においては、例示されるシステム要素は、単一のハードウェアデバイスへと結合されるか、複数のハードウェアデバイスへと分割されるかがあり得る。複数のハードウェアデバイスが使用されるならば、ハードウェアデバイスは、互いに対して近接してまたは離れて物理的に配置されることがあり得る。記述されるおよび図示される方法の例は、例示的であり、制限することを意図されない。たとえば、方法のステップのうちのいくつかまたはすべては、別個の例において結合される、再配列される、および/または省略されることがあり得る。
【0086】
いくつかの例においては、本明細書において記述されているシステムおよび方法は、本明細書において記述されている機能性を実行する性能がある1つまたは複数のコンピューターシステムに向けられることがあり得る。制限しないが、例示的なコンピューティングデバイスは、例えば、制限しないが、OS X(商標)、iOS(商標)、Linux(商標)、Android(商標)、およびMicrosoft(商標) Windows(商標)などのどんなオペレーティングシステムでも走らせるパーソナルコンピューター(PC)システムであることがあり得る。しかしながら、本明細書において記述されているシステムおよび方法は、今までに述べたプラットフォームに制限されないことがあり得る。代わりに、本明細書において説明されるシステムおよび方法は、適切な、どのオペレーティングシステムでも走らせる適切な、どのコンピューターシステムでも実装されることがあり得る。さらに、本明細書において記述されているシステムおよび方法の他のコンポーネント、例えば、制限しないが、コンピューティングデバイス、通信デバイス、モバイル電話、スマートフォン、テレフォニーデバイス、電話、PDA(パーソナルデジタルアシスタント)、パーソナルコンピューター(PC)、ハンドヘルドPC、インタラクティブテレビジョン(iTV)、デジタルビデオレコーダー(DVD)、クライアントワークステーション、シンクライアント、シッククライアント、プロキシサーバー、ネットワーク通信サーバー、リモートアクセスデバイス、クライアントコンピューター、サーバコンピューター、ルータ、ウェブサーバー、データ、メディア、オーディオ、ビデオ、テレフォニーまたはストリーミングテクノロジーサーバー等は、コンピューティングデバイスを使用して実装することがあり得る。サービスは、たとえば、制限しないが、インタラクティブテレビジョン(iTV)、ビデオオンデマンドシステム(VOD)を使用して、およびデジタルビデオレコーダー(DVR)、または他のオンデマンド視聴システムを介して、オンデマンドにより提供されることがあり得る。
【0087】
本明細書において記述されているシステムは、1つまたは複数のプロセッサーを含むことがあり得る。プロセッサー(複数可)は、例えば、制限しないが、通信バス、クロスオーバーバー、またはネットワーク等のような、通信インフラストラクチャーに接続されることがあり得る。プロセスおよびプロセッサーは、同じ物理的なロケーションに配置される必要はない。言い換えれば、プロセスは、たとえばLANまたはWAN接続を介して、1つまたは複数の地理的に遠隔のプロセッサーにおいて実行されることがあり得る。コンピューティングデバイスは、ディスプレイユニット上に表示するために、通信インフラストラクチャーからグラフィックス、テキスト、および他のデータを転送することがあり得るディスプレイインターフェイスを含むことがあり得る。
【0088】
いくつかの例において、さらに、コンピューターシステムは、制限しないが、メインメモリ、ランダムアクセスメモリ(RAM)、およびセカンダリーメモリなどを含むこともあり得る。セカンダリーメモリは、たとえば、ハードディスクドライブ、および/または例えば、コンパクトディスクドライブCD-ROMなどのような取り外し可能なストレージドライブを含むことがあり得る。取り外し可能なストレージドライブは、取り外し可能なストレージユニットとの間で読み取りおよび/または書き込みを行うことがあり得る。理解されるように、取り外し可能なストレージユニットは、コンピューターソフトウェアおよび/またはデータを格納しているコンピューター使用可能なストレージメディアを含むことがあり得る。いくつかの例において、マシンアクセス可能な媒体(machine-accessible medium)は、コンピューターによりアクセス可能なデータを格納するために使用されるどんなストレージデバイスでもいうことがあり得る。マシンアクセス可能な媒体の例は、制限しないが、磁気ハードディスク、フロッピーディスク、少なくともコンパクトディスク読み取り専用メモリ(CD-ROM)もしくはデジタル多用途ディスク(DVD)と同様の光ディスク、磁気テープ、および/またはメモリチップなどを含むことがあり得る。
【0089】
さらに、プロセッサーは、データを格納するための1つまたは複数のデータストレージデバイスを含む、または1つまたは複数のデータストレージデバイスと通信するように動作可能に結合されることもあり得る。上記のデータストレージデバイスは、制限しない例として、磁気ディスク(内蔵ハードディスクおよび取り外し可能なディスクを含む)、光磁気ディスク、光ディスク、読み取り専用メモリ、ランダムアクセスメモリ、および/またはフラッシュストレージを含むことがあり得る。さらに、コンピュータープログラム命令およびデータを有形に具体化するのに適しているストレージデバイスは、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイスと、例えば、内蔵ハードディスクおよび取り外し可能なディスクなどの磁気ディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMのディスクとを含むすべての形の不揮発性メモリを含むこともあり得る。プロセッサーおよびメモリは、ASIC(特定用途向け集積回路)により補完される、またはASICに組み入れることがあり得る。
【0090】
処理システムは、コンピューター化されたデータストレージシステムと通信状態にあることがあり得る。データストレージシステムは、MySQL(商標)または他のリレーショナルデータベースなど、非リレーショナルまたはリレーショナルなデータストアを含むことがあり得る。他の物理的なおよび論理的なデータベースタイプが使用されることがあり得る。データストアは、リレーショナルであるかまたはそうでないかを問わず、例えば、Microsoft SQL Server(商標)、Oracle(商標)、IBM DB2(商標)、SQLITE(商標)、または他のどんなデータベースソフトウェアでもなどのデータベースサーバーであることがあり得る。データストアは、構文タグを識別する情報、および構文タグ上で動作するのに必要などんな情報でも、格納することがあり得る。いくつかの例においては、処理システムは、オブジェクト指向プログラミングを使用することがあり得り、データをオブジェクトに格納することがあり得る。上記の例において、処理システムは、オブジェクトリレーショナルマッパー(ORM)を使用して、データオブジェクトをリレーショナルデータベースに格納することがあり得る。本明細書において記述されているシステムおよび方法は、物理データモデルをいくつでも使用して実装されることがあり得る。いくつかの例においては、リレーショナルデータベース管理システム(RDBMS)が使用されることがあり得る。上記の例において、RDBMS内のテーブルは、座標を表す列を含むことがあり得る。データは、RDBMS内のテーブルに格納されることがあり得る。テーブルは、それらの間において予め定義された関係を有することがあり得る。さらに、テーブルは、座標に関連付けられた付属を有することもあり得る。
【0091】
いくつかの例においては、セカンダリーメモリは、コンピュータープログラムまたは他の命令を、コンピューターシステムにロードされることを可能にする他の類似のデバイスを含むことがあり得る。たとえば、上記のデバイスは、取り外し可能なストレージユニットおよびインターフェイスを含むことがあり得る。上記の例は、(たとえば、制限しないが、ビデオゲームデバイスにおいて見受けられるなどの)プログラムカートリッジおよびカートリッジインターフェイスと、(たとえば、制限しないが、消去可能プログラム可能読み取り専用メモリ(EPROM)、またはプログラム可能読み取り専用メモリ(PROM)および関連付けられているソケットなどのような)取り外し可能なメモリチップと、他の取り外し可能なストレージユニットと、ソフトウェアおよびデータを、取り外し可能なストレージユニットからコンピューターシステムに転送するのを可能にすることがあり得るインターフェイスと、を含むことがあり得る。
【0092】
さらに、コンピューティングシステムは、例えば、制限しないが、例えばマイクロフォンなどの音声入力デバイス、タッチスクリーン、例えばカメラなどのジェスチャー認識デバイス、他のナチュラルユーザインターフェイス、マウスまたは例えばデジタイザーなどの他のポインティングデバイス、およびキーボード、または他のデータエントリーデバイスなど、入力デバイスを含むこともあり得る。さらに、コンピューターシステムは、例えば、制限しないが、ディスプレイおよびディスプレイインターフェイスなど、出力デバイスを含むこともあり得る。コンピューティングシステムは、例えば、制限しないが、通信インターフェイス、ケーブル、および通信経路等のような、入力/出力(I/O)デバイスを含むことがあり得る。今までに述べたデバイスは、制限しないが、ネットワークインターフェイスカードおよびモデムを含むことがあり得る。通信インターフェイス(複数可)は、ソフトウェアおよびデータを、コンピューターシステムと1つまたは複数の外部デバイスとの間において転送されることを可能にすることがあり得る。
【0093】
いくつかの例においては、コンピューターシステムは、自動車システムに動作可能に結合されることがあり得る。そのような自動車システムは、手動で操作されるか、準自律的であるか、または完全に自律的であるかいずれかであり得る。上記の例においては、入力および出力デバイスは、1つまたは複数の画像取り込みデバイス、コントローラー、マイクロコントローラー、ならびに/または、例えば、制限しないが、加速、制動、および操舵などの自動車機能を制御するための他のプロセッサーを含むことがあり得る。さらに、上記の例における通信インフラストラクチャーは、コントローラエリアネットワーク(CAN)バスを含むこともあり得る。
【0094】
いくつかの例においては、コンピューターシステムは、どんなマシンビジョンベースのシステムにでも動作可能に結合されることがあり得る。たとえば、上記のマシンビジョンベースのシステムは、制限しないが、手動で操作される、準自律的な、または完全に自律的な、工業用または農業用のロボット、家庭用ロボット、検査システム、セキュリティーシステムなどを含むことがあり得る。たとえば、本明細書において記述されている例は、1つの特定のコンテキストに制限されず、マシンビジョンを利用するどんなアプリケーションにでも適用可能であることがあり得る。
【0095】
いくつかの例は、1つまたは複数のコンピューターネットワークの環境において実施されることがあり得る。ネットワークは、プライベートネットワークもしくはパブリックネットワーク(たとえば、インターネット)、または両方の組合せを含むことがあり得る。ネットワークは、ハードウェア、ソフトウェア、または両方の組合せを含むことがあり得る。
【0096】
テレコミュニケーション指向の観点から、ネットワークは、1つまたは複数のプロセス(ハードウェア、ソフトウェア、またはそれらの組合せ)が、各ノードにおいて機能する通信設備によって相互接続されるハードウェアノードのセットとして説明されることがあり得る。プロセスは、プロセス間の通信経路を使用して、それらの間における通信経路を介して互いに情報を相互通信し、やり取りすることがあり得る。これらの経路上では、適切な通信プロトコルが使用され得る。
【0097】
例示的なコンピューターおよび/または遠隔通信ネットワーク環境は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せを含むことがあり得るノードを含むことがあり得る。ノードは、通信ネットワークを介して相互接続されることがあり得る。各ノードは、ノードに組み入れられるプロセッサーによって実行可能な1つまたは複数のプロセスを含むことがあり得る。たとえば、単一のプロセスは、複数のプロセッサーが走らせることがあり得り、または複数のプロセスは、単一のプロセッサーが走らせることがあり得る。加えて、ノードの各々は、ネットワークと外の世界との間におけるインターフェイスポイントを提供することあり得り、サブネットワークの集合を組み入れることがあり得る。
【0098】
いくつかの例においては、プロセスは、どんな通信プロトコルを通じてでも通信をサポートするプロセス間の通信経路を通じて互いに通信することがあり得る。経路は、順にまたは並列に、継続的にまたは断続的に機能することがあり得る。経路は、多くのコンピューターによって使用される標準的な並列命令セットに加えて、通信ネットワークに関して本明細書において記述されている通信標準、プロトコル、またはテクノロジーのうちのいずれかを使用することがあり得る。
【0099】
ノードは、処理機能を実行する性能があるどんなエンティティーでも含むことがあり得る。本明細書における例とともに使用されることがあり得る上記のノードの例は、コンピューター(例えば、パーソナルコンピューター、ワークステーション、サーバー、もしくはメインフレームなど)、ハンドヘルドワイヤレスデバイスおよび有線デバイス(例えば、パーソナルデジタルアシスタント(PDA)、処理能力を有するモデム携帯電話、制限しないが、BlackBerry(商標)デバイスを含むワイヤレスEメールデバイスなど)、ドキュメント処理デバイス(例えば、スキャナー、プリンター、ファクシミリマシン、もしくは多機能ドキュメントマシンなど)、または記述されているような、プロセッサーの集まりに接続された複合のエンティティー(例えば、ローカルエリアネットワークもしくはワイドエリアネットワークなど)を含むことがあり得る。たとえば、ノードそのものが、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、プライベートネットワーク(例えば、仮想プライベートネットワーク(VPN)など)、またはネットワークの集まりであることがあり得る。
【0100】
ノードの間における通信は、通信ネットワークによって可能にされることがあり得る。ノードは、通信ネットワークと継続的にまたは断続的に接続されることがあり得る。例として、通信ネットワークは、適切なバンド幅および情報セキュリティーを提供するデジタル通信インフラストラクチャーであることがあり得る。
【0101】
通信ネットワークは、標準、プロトコル、またはテクノロジーのどのタイプでも使用して、どんな周波数においてでも、有線通信能力、ワイヤレス通信能力、または両方の組合せを含むことがあり得る。加えて、いくつかの例においては、通信ネットワークは、プライベートネットワーク(たとえば、VPN)またはパブリックネットワーク(たとえば、インターネット)であることがあり得る。
【0102】
通信ネットワークによって使用される例示的なワイヤレスプロトコルおよびテクノロジーの非網羅的なリストは、Bluetooth(商標)、ジェネラルパケットラジオサービス(GPRS)、セルラーデジタルパケットデータ(CDPD)、モバイルソリューションプラットフォーム(MSP)、マルチメディアメッセージング(MMS)、ワイヤレスアプリケーションプロトコル(WAP)、符号分割多元接続(CDMA)、ショートメッセージサービス(SMS)、ワイヤレスマークアップ言語(WML)、ハンドヘルドデバイスマークアップ言語(HDML)、BREW(binary runtime environment for wireless)、無線アクセスネットワーク(RAN)、およびパケット交換コアネットワーク(PS-CN)を含むことがあり得る。さらに、さまざまな世代のワイヤレステクノロジーも含まれる。通信ネットワークによって使用される主に有線のプロトコルおよびテクノロジーの例示的な非網羅的なリストは、非同期転送モード(ATM)、拡張内部ゲートウェイルーティングプロトコル(EIGRP)、フレームリレー(FR)、ハイレベルデータリンク制御(HDLC)、インターネット制御メッセージプロトコル(ICMP)、内部ゲートウェイルーティングプロトコル(IGRP)、インターネットワークパケット交換(IPX)、ISDN、PPP(point-to-point protocol)、TCP/IP(transmission control protocol/internet protocol)、ルーティング情報プロトコル(RIP)、およびユーザデータグラムプロトコル(UDP)を含む。他の知られているまたは予想されるどんなワイヤレスまたは有線のプロトコルおよびテクノロジーでも使用されることがあり得る。
【0103】
本明細書において開示されている例は、本明細書において記述されている動作を実行するための装置を含むことがあり得る。装置は、望まれる目的のために特別に構築されることがあり得り、またはそれは、デバイスに格納されるプログラムによって選択的にアクティベートされるもしくは再構成される汎用デバイスを含むことがあり得る。
【0104】
いくつかの例は、マシン実行可能な命令において具体化されることがあり得る。命令は、処理デバイス、たとえば、命令によりプログラムされる汎用または専用のプロセッサーに、本明細書において説明される処理のステップを実行させるために使用されることがあり得る。あるいは、本明細書において記述されているステップは、ステップを実行するためのハードワイヤードのロジックを含む特定のハードウェアコンポーネントによって、またはプログラムされたコンピューターコンポーネントおよびカスタムハードウェアコンポーネントのどんな組合せでも行われることがあり得る。たとえば、本明細書において記述されているシステムおよびプロセスは、上で概説されているようなコンピュータープログラム製品として提供されることがあり得る。いくつかの例は、その上に命令が格納されているマシン読み取り可能なメディアを含むことがあり得る。命令は、本明細書において説明される例によるプロセスまたは方法を実行するように、1つまたは複数のどんなプロセッサー(またはその他の電子デバイス)でもプログラムするのに使用されることがあり得る。加えて、いくつかの例は、コンピュータープログラム製品上にダウンロードされて格納されることがあり得る。上記の例においては、プログラムは、通信リンク(たとえば、モデムまたはネットワーク接続)を介して、搬送波または他の伝搬メディアにおいて具体化されるデータ信号を経由してリモートコンピューター(たとえば、サーバー)から要求側コンピューター(たとえば、クライアント)へ転送されることがあり得り、最終的には、上記の信号は、後続の実行のためにコンピューターシステム上に格納されることがあり得る。
【0105】
プロセスは、コンピューターまたは任意の命令実行システムによって、またはそれらに関連して使用するためのプログラムコードを提供するコンピューター使用可能なまたはコンピューター読み取り可能なストレージメディアからアクセス可能なコンピュータープログラム製品において実装されることがあり得る。コンピューター使用可能な、またはコンピューター読み取り可能なストレージメディアは、コンピューターまたは命令実行システム、装置、もしくはデバイスによって、またはそれらに関連して使用するためのプログラムを含むことまたは格納することができるどんな装置でもあり得る。
【0106】
対応するプログラムコードを格納するおよび/または実行するのに適しているデータ処理システムは、例えば、メモリ要素などのコンピューター化されたデータストレージデバイスに、直接的にまたは間接的に結合されている少なくとも1つのプロセッサーを含むことがあり得る。制限しないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む入力/出力(I/O)デバイスは、システムに結合されることがあり得る。さらに、ネットワークアダプタをシステムに結合して、データ処理システムが、介在するプライベートまたはパブリックネットワークを通じて他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに結合されるようになることを可能にすることもあり得る。ユーザーとの対話を提供するために、特徴は、例えば、LCD(liquid crystal display)、または情報をユーザーに表示するための別のタイプのモニターなどのディスプレイデバイスと、キーボードおよび例えば、ユーザーがーコンピューターに入力を提供することがあり得るマウスまたはトラックボールなどの入力デバイスとを有するコンピューター上に、実装されることがあり得る。
【0107】
コンピュータープログラムは、コンピューターにおいて直接または間接的に使用されることがあり得る命令のセットであることがあり得る。 本明細書において記述されているシステムおよび方法は、たとえば、CUDA、OpenCL、Flash(商標)、JAVA(商標)、C++、C、C#、Python、Visual Basic(商標)、JavaScript(商標)PHP、XML、HTML等などのようなプログラミング言語、またはコンパイラ型もしくはインタープリタ型言語を含むプログラミング言語の組合せを使用して実装されることがあり得り、スタンドアロンのプログラムとして、またはコンピューティング環境において使用するのに適しているモジュール、コンポーネント、サブルーチン、もしくはその他のユニットとしてなど、どんな形においてでも展開されることがあり得る。ソフトウェアは、制限しないが、ファームウェア、常駐のソフトウェア、マイクロコードなどを含むことがあり得る。例えば、SOAP/HTTPなどのプロトコルは、プログラミングモジュール間のインターフェイスを実装するときに使用されることがあり得る。本明細書において記述されているコンポーネントおよび機能性は、制限しないが、さまざまなバージョンのMicrosoft Windows(商標)、Apple(商標) Mac(商標)、iOS(商標)、Unix(商標)/X-Windows(商標)、Linux(商標)などを含むソフトウェア開発に適しているどんなプログラミング言語でも使用して、仮想化されたまたは仮想化されていない環境において実行するどんなデスクトップオペレーティングシステム上にでも実装されることがあり得る。システムは、例えば、Ruby on Railsなどのウェブアプリケーションフレームワークを使用して実装されることがあり得る。
【0108】
命令のプログラムの実行に適したプロセッサーは、制限しないが、どんな種類のコンピューターについてでも、汎用および専用のマイクロプロセッサー、および単独のプロセッサーまたは複数のプロセッサーもしくはコアのうちの1つを含む。プロセッサーは、例えば、読み取り専用メモリ、ランダムアクセスメモリ、両方、または、本明細書において記述されているデータストレージデバイスの任意の組合せなど、コンピューター化されたデータストレージデバイスから命令およびデータを受信して格納することがあり得る。プロセッサーは、電子デバイスの動作およびパフォーマンスを制御するように動作する任意の処理回路または制御回路を含むことがあり得る。
【0109】
本明細書において記述されているシステム、モジュール、および方法は、ソフトウェアまたはハードウェアの要素の任意の組合せを使用して実装されることがあり得る。本明細書において記述されているシステム、モジュール、および方法は、単独において、または他のひとつとの組合せにおいて動作する1つまたは複数の仮想マシンを使用して実装されることがあり得る。任意の適用可能な仮想化ソリューションは、物理コンピューティングマシンプラットフォームを、ハードウェアコンピューティングプラットフォームまたはホスト上に走らせる仮想化ソフトウェアの制御の下に実行される仮想マシンへとカプセル化するために、使用されることがあり得る。仮想マシンは、仮想システムハードウェアおよびゲストオペレーティングシステムソフトウェアの両方を有することがあり得る。
【0110】
本明細書において記述されているシステムおよび方法は、例えば、データサーバーなどのバックエンドコンポーネントを含む、または例えば、アプリケーションサーバーもしくはインターネットサーバーなどのミドルウェアコンポーネントを含む、または例えば、グラフィカルユーザインターフェイスもしくはインターネットブラウザを有するクライアントコンピューターなどのフロントエンドコンポーネント、またはそれらの任意の組合せを含むコンピューターシステムにおいて実装されることがあり得る。システムのコンポーネントは、例えば、通信ネットワークなど、デジタルデータ通信のどの形またはメディアによっても接続されることがあり得る。通信ネットワークの例は、たとえば、LAN、WAN、ならびに、インターネットを形成しているコンピューターおよびネットワークを含む。
【0111】
本開示の1つまたは複数の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピューター、メインフレームコンピューターなどを含む他のコンピューターシステム構成とともに実施されることがあり得る。さらに、本明細書において説明されるシステムおよび方法は、ネットワークを通じてリンクされるリモート処理デバイスによってタスクが行われる分散コンピューティング環境において実施されることもあり得る。
【0112】
本明細書において提示される主題は、コンピュータープロセス、コンピューター制御の装置、コンピューティングシステム、または例えば、コンピューター読み取り可能な記録媒体などの製品として実装されることがあり得ることを理解すべきである。 本明細書において記述されている主題が、1つまたは複数のコンピューティングデバイス上で実行するプログラムモジュールの一般的なコンテキストにおいて提示される一方、当業者は、他の実装が、他のタイプのプログラムモジュールと組み合わせて行われることがあり得ることを認めるであろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行するまたは特定の抽象データ型を実装する他のタイプの構造を含む。
【0113】
さらに、当業者は、本明細書において記述されている主題の側面が、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピューター、メインフレームコンピューター、ハンドヘルドコンピューター、モバイル電話デバイス、タブレットコンピューティングデバイス、専用ハードウェアデバイス、ネットワークアプライアンスなどを含む、本明細書において記述されているもの以外の他のコンピューターシステム構成上で、または他のコンピューターシステム構成とともに実施されることがあり得るということも理解するであろう。
【0114】
前述に基づいて、システムを動作させるおよびプロセスを実装するためのテクノロジーが本明細書において提示されたということを理解すべきである。さらにその上、本明細書において提示されている主題が、コンピューターの構造的な特徴、方法論的な行為、およびコンピューター読み取り可能なメディアに特有の言葉において説明されたが、添付の特許請求の範囲において定義される発明は、本明細書において説明される特定の特徴、行為、またはメディアに必ずしも制限されないということは、理解されることである。むしろ、それらの特定の特徴、行為、およびメディアは、特許請求の範囲において引用される主題を実装することの例示的な形として開示される。
【0115】
上の主題は、例示のみとして提供され、制限するとして解釈されるべきではない。さらにその上、特許請求される主題は、本開示のいずれかの部分において言及されるありとあらゆる不利な点を解決する実装に制限されない。種々の修正および変更は、例示されるおよび説明される例および適用に従うことなく、次の特許請求の範囲において示される本発明の精神および範囲から逸脱することなく、本明細書において説明される主題に対して行われることがあり得る。
【0116】
例示的な条項
A.1つまたは複数のプロセッサーと、
1つまたは複数のプロセッサーに通信可能に結合され、1つまたは複数のプロセッサーによって、
環境を表す複数の画像を受信し、複数の画像は、1つまたは複数の画像取り込みデバイスによって生成された画像データを含み、
複数の画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信し、
環境に関連付けられた第1のセンサーデータを受信し、第1のセンサーデータは、LIDAR(light detection and ranging)センサーから受信され、
セグメント化された画像に第1のセンサーデータを関連付けて、トレーニングデータセットを作成し、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信し、
センサーデータセグメンテーションモデルが、LIDARセンサーから受信された第2のセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングする
実行可能な命令を格納する1つまたは複数のコンピューター読み取り可能な記録媒体と
を含んだ例示的なシステム。
【0117】
B.命令は、1つまたは複数のプロセッサーによって、
セグメント化された画像のうちの第1のセグメント化された画像上に第1のセンサーデータの少なくとも第1の部分を投影し、
セグメント化された画像のうちの第2のセグメント化された画像上に第1のセンサーデータの少なくとも第2の部分を投影する
ようにさらに実行可能である例Aのシステム。
【0118】
C.複数の画像のうちの第1の画像が、第1の画像時間において取り込まれ、
複数の画像のうちの第2の画像が、第2の画像時間において取り込まれ、
第1のセンサーデータの第1の部分が、第1のセンサー時間に関連付けられ、
第1のセンサーデータの第2の部分が、第2のセンサー時間に関連付けられ、
命令は、1つまたは複数のプロセッサーによって、
第1の画像時間と第1のセンサー時間との間における第1の時間差を決定し、
第2の画像時間と第1のセンサー時間との間における第2の時間差を決定し、
第1の時間差が第2の時間差未満であると決定し、
第1の時間差が第2の時間差未満であることに少なくとも部分的に基づいて、第1のセンサーデータの第1の部分に第1の画像を関連付ける
ようにさらに実行可能である例Aまたは例Bのシステム。
D.命令は、1つまたは複数のプロセッサーによって、第1のセンサーから第2のセンサーデータを受信し、トレーニングされたセンサーデータセグメンテーションモデルに少なくとも部分的に基づいて第2のセンサーデータをセグメント化するようにさらに実行可能である例Aから例Cのいずれか1つのシステム。
【0119】
E.センサーデータセグメンテーションモデルは、1つまたは複数のカーネルを含み、1つまたは複数のカーネルは、非対称ストライドに関連付けられ、
センサーデータセグメンテーションモデルをトレーニングすることは、損失関数を算出することを含み、損失関数は、センサーデータセグメンテーションモデルの出力およびトレーニングデータセットに少なくとも部分的に基づき、損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、またはロジスティック回帰の損失のうちの1つまたは複数を含む例Aから例Dのいずれか1つのシステム。
【0120】
F.命令は、1つまたは複数のプロセッサーによって、
センサーデータにおいて不連続性を識別し、
不連続性に関連付けられたセンサーデータを削除する
ようにさらに実行可能である例Aから例Eのいずれか1つのシステム。
【0121】
G.命令は、1つまたは複数のプロセッサーによって
LIDARセンサーからセンサーデータを受信し、
センサーデータセグメンテーションモデルを使用して、LIDARセンサーから受信されたセンサーデータをセグメント化し、セグメント化されたセンサーデータを生成する
ようにさらに実行可能である例Aから例Fのいずれか1つのシステム。
【0122】
H.命令は、1つまたは複数のプロセッサーによって、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両に対して軌跡を生成するようにさらに実行可能である例Aから例Gのいずれか1つのシステム。
【0123】
I.環境を表す複数の画像を受信することと、複数の画像が、画像取り込みデバイスによって生成された画像データを含み、
複数の画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信することと、
第1のセンサーによって生成された第1のセンサーデータを受信することと、第1のセンサーデータが、環境を表すデータを含み、
画像データをセグメント化して、セグメント化された画像を生成することと、
セグメント化された画像に第1のセンサーデータを関連付けて、トレーニングデータセットを作成することと、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信することと、
第1のセンサーから取得された第2のセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることと
を含む例示的な方法。
【0124】
J.第1のセンサーによって生成された第1のセンサーデータを受信することは、LIDAR(light detection and ranging)センサーによって生成されたセンサーデータを受信することを含み、センサーデータセグメンテーションモデルをトレーニングすることは、LIDARセンサーから取得された第2のセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることを含む例Iの方法。
【0125】
K.セグメント化された画像のうちの第1のセグメント化された画像上に第1のセンサーデータの少なくとも第1の部分を投影することをさらに含む例Iまたは例Jの方法。
【0126】
L.複数の画像のうちの第1の画像が、第1の画像時間において取り込まれ、
複数の画像のうちの第2の画像が、第2の画像時間において取り込まれ、
第1のセンサーデータの第1の部分が、第1のセンサー時間に関連付けられ、
第1のセンサーデータの第2の部分が、第2のセンサー時間に関連付けられ、
方法は
第1の画像時間と第1のセンサー時間との間における第1の時間差を決定することと、
第2の画像時間と第1のセンサー時間との間における第2の時間差を決定することと、
第1の時間差が第2の時間差未満であると決定することと、
第1の時間差が第2の時間差未満であることに少なくとも部分的に基づいて、第1のセンサーデータの第1の部分に第1の画像を関連付けることと
をさらに含む例Iから例Kのいずれか1つの方法。
【0127】
M.第1のセンサーから第2のセンサーデータを受信し、トレーニングされたセンサーデータセグメンテーションモデルに少なくとも部分的に基づいて、第2のセンサーデータをセグメント化することをさらに含む例Iから例Lのいずれか1つの方法。
【0128】
N.センサーデータセグメンテーションモデルは、1つまたは複数のカーネルを含み、1つまたは複数のカーネルは、非対称ストライドに関連付けられ、
センサーデータセグメンテーションモデルをトレーニングすることは、損失関数を算出することを含み、損失関数は、センサーデータセグメンテーションモデルの出力およびトレーニングデータセットに少なくとも部分的に基づき、損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、またはロジスティック回帰の損失のうちの1つまたは複数を含む例Iから例Mのいずれか1つの方法。
【0129】
O.第1のセンサーデータにおける不連続性を識別することと、
不連続性に関連付けられた第1のセンサーデータを削除することと
をさらに含む例Iから例Nのいずれか1つの方法。
【0130】
P.センサーから第2のセンサーデータを受信することと、
センサーデータセグメンテーションモデルを使用して、センサーから受信された第2のセンサーデータをセグメント化することと
をさらに含む例Iから例Oのいずれか1つの方法。
【0131】
Q.セグメント化された第2のセンサーデータに少なくとも部分的に基づいて、自律車両に対して軌跡を生成することをさらに含む例Iから例Pのいずれか1つの方法。
【0132】
R.コンピューターにより実行されると、コンピューターに、
環境を表す複数の画像を受信し、複数の画像は、画像取り込みデバイスによって生成された画像データを含み、
画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信し、
第1のセンサーによって生成された第1のセンサーデータを受信し、第1のセンサーデータは、環境を表すデータを含み、
画像をセグメント化して、セグメント化された画像を生成し、
セグメント化された画像に第1のセンサーデータを関連付けて、トレーニングデータセットを作成し、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信し、
センサーデータセグメンテーションモデルが、センサーから取得された第2のセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングする
ようにさせるコンピューター実行可能な命令を格納して有する例示的なコンピューター読み取り可能な記録媒体
S.第1のセンサーデータは、LIDAR(light detection and ranging)センサーによって生成され、センサーデータセグメンテーションモデルをトレーニングすることは、センサーデータセグメンテーションモデルが、LIDARセンサーから取得された第2のセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることを含む例Rのコンピューター読み取り可能な記録媒体。
【0133】
T.複数の画像のうちの第1の画像が、第1の画像時間において取り込まれ、
複数の画像のうちの第2の画像が、第2の画像時間において取り込まれ、
第1のセンサーデータの第1の部分が、第1のセンサー時間に関連付けられ、
第1のセンサーデータの第2の部分が、第2のセンサー時間に関連付けられ、
コンピューター実行可能な命令は、コンピューターに、
第1の画像時間と第1のセンサー時間との間における第1の時間差を決定し、
第2の画像時間と第1のセンサー時間との間における第2の時間差を決定し、
第1の時間差が第2の時間差未満であると決定し、
第1の時間差が第2の時間差未満であることに少なくとも部分的に基づいて、第1の画像を第1のセンサーデータの第1の部分に関連付ける
ようにさせる例Rまたは例Sのコンピューター読み取り可能な記録媒体。
【符号の説明】
【0134】
100 フロー図
102 車両
104 環境
106 デバイス
108 センサー
110 画像データ
112 センサーデータ
114A 画像
114B 画像
114C 画像
116 LIDAR視野
118 画像セグメンテーションネットワーク
120 セグメント化された画像データ
120A 画像
120B 画像
120C 画像
122 セグメント化された画像データ上への投影
124 トレーニングデータセット
126 センサーデータセグメンテーションモデル
図1
図2
図3
図4A
図4B
図5A
図5B
図6
図7
図8
図9
図10
図11