(57)【要約】システムは、環境を表す複数の画像を受信するように構成された１つまたは複数のプロセッサーを含むことがあり得る。画像は、画像取り込みデバイスにより生成された画像データを含むことがあり得る。さらにプロセッサーは、画像をセグメント化するように構成された画像セグメンテーションネットワークに画像データを送信するように構成されることがあり得る。さらにプロセッサーは、画像取り込みデバイスとは異なるタイプのセンサーにより生成されたセンサーデータを含む環境に関連付けられたセンサーデータを受信するように構成されることがあり得る。プロセッサーは、トレーニングデータセットを作成するためにセグメント化された画像にセンサーデータを関連付けるように構成されることがあり得る。プロセッサーは、センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信し、センサーデータセグメンテーションモデルがセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングするように構成されることがあり得る。
2021504796.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサーと、
前記１つまたは複数のプロセッサーに通信可能に結合され、前記１つまたは複数のプロセッサーによって、
環境を表す複数の画像を受信し、前記複数の画像は、１つまたは複数の画像取り込みデバイスによって生成された画像データを含み、
前記複数の画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに前記画像データを送信し、
前記環境に関連付けられた第１のセンサーデータを受信し、前記第１のセンサーデータは、ＬＩＤＡＲ（light detection and ranging）センサーから受信され、
前記セグメント化された画像に前記第１のセンサーデータを関連付けて、トレーニングデータセットを作成し、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークに前記トレーニングデータセットを送信し、
ＬＩＤＡＲセンサーから受信した第２のセンサーデータをセグメント化するように前記センサーデータセグメンテーションモデルが構成されるように、前記トレーニングデータセットを使用して前記センサーデータセグメンテーションモデルをトレーニングする
実行可能な命令を格納する１つまたは複数のコンピューター読み取り可能な記録媒体と
を備えたことを特徴とするシステム。
【請求項２】
前記命令は、前記１つまたは複数のプロセッサーによって、
前記セグメント化された画像のうちの第１のセグメント化された画像上に前記第１のセンサーデータの少なくとも第１の部分を投影し、
前記セグメント化された画像のうちの第２のセグメント化された画像上に前記第１のセンサーデータの少なくとも第２の部分を投影する
ようにさらに実行可能であることを特徴とする請求項１に記載のシステム。
【請求項３】
前記複数の画像のうちの第１の画像は、第１の画像時間において取り込まれ、
前記複数の画像のうちの第２の画像は、第２の画像時間において取り込まれ、
前記第１のセンサーデータの第１の部分は、第１のセンサー時間に関連付けられ、
前記第１のセンサーデータの第２の部分は、第２のセンサー時間に関連付けられ、
前記命令は、前記１つまたは複数のプロセッサーによって、
前記第１の画像時間と前記第１のセンサー時間との間における第１の時間の差を決定し、
前記第２の画像時間と前記第１のセンサー時間との間における第２の時間の差を決定し、
前記第１の時間の差が前記第２の時間の差未満であると決定し、
前記第１の時間の差が前記第２の時間の差未満であることに少なくとも部分的に基づいて、前記第１のセンサーデータの前記第１の部分に前記第１の画像を関連付ける
ようにさらに実行可能であることを特徴とする請求項１に記載のシステム。
【請求項４】
前記命令は、前記１つまたは複数のプロセッサーによって、前記第１のセンサーから第２のセンサーデータを受信し、前記トレーニングされたセンサーデータセグメンテーションモデルに少なくとも部分的に基づいて、第２のセンサーデータをセグメント化するようにさらに実行可能であることを特徴とする請求項１に記載のシステム。
【請求項５】
前記センサーデータセグメンテーションモデルは、１つまたは複数のカーネルを含み、前記１つまたは複数のカーネルは、非対称ストライドに関連付けられ、
前記センサーデータセグメンテーションモデルをトレーニングすることは、損失関数を算出することを含み、前記損失関数は、前記センサーデータセグメンテーションモデルの出力および前記トレーニングデータセットに少なくとも部分的に基づき、前記損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、またはロジスティック回帰の損失のうちの１つまたは複数を含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記命令は、前記１つまたは複数のプロセッサーによって、
前記センサーデータにおいて不連続性を識別し、
前記不連続性に関連付けられたセンサーデータを削除する
ようにさらに実行可能であることを特徴とする請求項１に記載のシステム。
【請求項７】
前記命令は、前記１つまたは複数のプロセッサーによって、
ＬＩＤＡＲセンサーからセンサーデータを受信し、
前記センサーデータセグメンテーションモデルを使用して、前記ＬＩＤＡＲセンサーから受信された前記センサーデータをセグメント化し、セグメント化されたセンサーデータを生成する
ようにさらに実行可能であることを特徴とする請求項１に記載のシステム。
【請求項８】
前記命令は、前記１つまたは複数のプロセッサーによって、前記セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両に対して軌跡を生成するようにさらに実行可能である請求項７に記載のシステム。
【請求項９】
環境を表す複数の画像を受信するステップであって、前記複数の画像は、画像取り込みデバイスによって生成された画像データを含む、ステップと、
前記複数の画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに前記画像データを送信するステップと、
前記画像セグメンテーションネットワークから、セグメント化された画像を受信するステップと、
第１のセンサーによって生成された第１のセンサーデータを受信するステップであって、前記第１のセンサーデータは、前記環境を表すデータを含む、ステップと、
前記セグメント化された画像に前記第１のセンサーデータを関連付けて、トレーニングデータセットを作成するステップと、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークに前記トレーニングデータセットを送信するステップと、
前記第１のセンサーから取得された第２のセンサーデータをセグメント化するように前記センサーデータセグメンテーションモデルが構成されるように、前記トレーニングデータセットを使用して前記センサーデータセグメンテーションモデルをトレーニングするステップと
を備えることを特徴とする方法。
【請求項１０】
前記第１のセンサーによって生成された前記第１のセンサーデータを受信するステップは、ＬＩＤＡＲ（light detection and ranging）センサーによって生成されたセンサーデータを受信するステップを含み、前記センサーデータセグメンテーションモデルをトレーニングするステップは、前記センサーデータセグメンテーションモデルをトレーニングするステップを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記セグメント化された画像のうちの第１のセグメント化された画像上に前記第１のセンサーデータの少なくとも第１の部分を投影するステップと、
前記セグメント化された画像のうちの第２のセグメント化された画像上に前記第１のセンサーデータの少なくとも第２の部分を投影するステップと
をさらに備えることを特徴とする請求項９に記載の方法。
【請求項１２】
前記複数の画像のうちの第１の画像は、第１の画像時間において取り込まれ、
前記複数の画像のうちの第２の画像は、第２の画像時間において取り込まれ、
前記第１のセンサーデータの第１の部分は、前記第１のセンサー時間に関連付けられ、
前記第１のセンサーデータの第２の部分は、第２のセンサー時間に関連付けられ、
前記方法は、
前記第１の画像時間と前記第１のセンサー時間との間における第１の時間の差を決定するステップと、
前記第２の画像時間と前記第１のセンサー時間との間における第２の時間の差を決定するステップと、
前記第１の時間の差が前記第２の時間の差未満であると決定するステップと、
前記第１の時間の差が前記第２の時間の差未満であることに少なくとも部分的に基づいて、前記第１のセンサーデータの前記第１の部分に前記第１の画像を関連付けるステップと
をさらに備えることを特徴とする請求項９に記載の方法。
【請求項１３】
第２のセンサーデータを受信するステップと、
前記トレーニングされたセンサーデータセグメンテーションモデルに少なくとも部分的に基づいて、前記第２のセンサーデータをセグメント化するステップと、
前記セグメント化された第２のセンサーデータに少なくとも部分的に基づいて、自律車両に対して軌跡を生成するステップと
をさらに備えることを特徴とする請求項９に記載の方法。
【請求項１４】
前記センサーデータセグメンテーションモデルは、１つまたは複数のカーネルを含み、前記１つまたは複数のカーネルは、非対称ストライドに関連付けられ、
前記センサーデータセグメンテーションモデルをトレーニングするステップは、損失関数を算出するステップであって、前記損失関数は、前記センサーデータセグメンテーションモデルの出力および前記トレーニングデータセットに少なくとも部分的に基づき、前記損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、またはロジスティック回帰の損失のうちの１つまたは複数を含む、ステップを含むことを特徴とする請求項９に記載の方法。
【請求項１５】
１つまたは複数のプロセッサーにより実行されると、前記１つまたは複数のプロセッサーに、請求項９ないし１４のいずれか一項に記載の方法を行わせる命令を格納して有することを特徴とする非一時的なコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサーデータセグメンテーションに関し、より詳細には、センサーデータをセグメント化するための方法、装置、およびシステムに向けられるセンサーデータセグメンテーションに関する。
【背景技術】
【０００２】
センサーは、環境におけるオブジェクトを示すセンサーデータを生成するために使用され得る。しかしながら、センサーによって生成されたセンサーデータの生の形は、データを使用するまたは分析することを困難にすることがあり得る。したがって、センサーデータは、それを、（たとえば、データにおける個別のオブジェクト、走行可能である（すなわち、その上を走行されることが可能である）センサーデータにおけるエリアなどを識別する）より有用な形へと変形するためにセグメント化され得る。一般に、データをセグメント化することは、たとえば、センサーデータにおいて取り込まれたデータのエリアが識別されるまたは分類されることがあり得るために、センサーデータをより意味のあるまたは整理された形へと区分することまたは整理することを含む。データセグメンテーションは、人間によって手動により行われることがあり得る。しかしながら、手動のセグメンテーションは、とてつもない時間の消費であり費用がかかることがあり得り、しばしば多くの用途にとって適さなくなる。画像データは、画像を別個のセグメントへと区分して、画像のさらに意味のあるまたは使用可能な表現を提供するコンピューターを使用して、自動的にセグメント化されることがあり得る。たとえば、画像は、画像内のオブジェクトを一意に識別するためにセグメント化されることがあり得り、たとえば、自律車両の操作などのような、いくつかの用途において有用であることがあり得る。しかしながら、他のタイプのセンサーから取得されたセンサーデータを自動的にセグメント化することが困難であることがあり得る。上記の例において、人間による手動のセグメンテーションが必要であることがあり得り、上記のセンサータイプから取得されたセンサーデータは、とてつもなく高額になる、またはいくつかの用途に対して使用するのを難しくする。
【０００３】
詳細な説明は、添付の図面を参照しながら説明される。図面において、参照符号の最も左の数字（複数可）は、参照符号が最初に現れる図面を識別する。別個の図面における同一の参照符号は、同様のまたは同じアイテムを示す。
【図面の簡単な説明】
【０００４】
【図１】画像データおよびセンサーデータを取り込み、取り込まれた画像をセグメント化し、セグメント化された画像上にセンサーデータを投影し、トレーニングデータセットを生成するための例示的な処理の絵のフロー図である。
【図２】例示的な車両が進みながら画像データおよびセンサーデータを取り込んでいる例示的な環境である。
【図３】セグメント化された画像を生成し、例示的なセンサーデータセグメンテーションモデル（sensor data segmentation model）をトレーニングし、センサーデータをセグメント化するための例示的なアーキテクチャーである。
【図４Ａ】複数の画像取り込みデバイス（image capture device）およびセンサーを有する例示的な車両の側面図を表す。
【図４Ｂ】図４Ａに示す例示的な車両の上面図を表す。
【図５Ａ】画像データを含む例示的な画像とオブジェクトに対してセグメント化された例示的な画像のセグメント化されたバージョンとを表す。
【図５Ｂ】図５Ａに示す例示的な画像と走行可能な表面に対してセグメント化された例示的な画像のセグメント化されたバージョンとを表す。
【図６】画像データおよびセンサーデータを取り込むための例示的な処理の絵のフロー図である。
【図７】図６に示す画像をセグメント化し、図６において取り込まれたセンサーデータを、セグメント化された画像上に投影し、トレーニングデータセットを生成するための例示的な処理の絵のフロー図である。
【図８】センサーデータを取り込み、例示的なセンサーデータセグメンテーションネットワークを使用してセンサーデータをセグメント化して車両軌跡（vehicle trajectory）を生成する軌跡モジュールによって使用するためのセグメント化されたセンサーデータを生成するための例示的な処理の絵のフロー図である。
【図９】セグメント化された画像およびセンサーデータを含む例示的なトレーニングデータセットを使用して例示的なセンサーデータセグメンテーションモデルをトレーニングするための例示的な処理のフロー図である。
【図１０】例示的なセンサーデータセグメンテーションモデルを使用してセンサーデータをセグメント化するための例示的な処理のフロー図である。
【図１１】本明細書において説明される処理を実装するための例示的なコンピューターアーキテクチャーのブロック図を表す。
【発明を実施するための形態】
【０００５】
一般に、本開示は、センサーデータをセグメント化するための方法、装置、およびシステムに向けられる。センサーデータの上記のセグメンテーションは、より容易にセグメント化される他のタイプのセンサーデータのセグメンテーションによって支援されることがあり得る。たとえば、システムは、１つまたは複数の画像取り込みデバイス（image capture device）を使用して画像データを、および画像取り込みデバイスとは異なるタイプの１つまたは複数のセンサーを使用してセンサーデータを同時に、または実質的に同時に取り込むことがあり得る。画像データのセグメンテーションが、（画像データ以外の）センサーデータのセグメンテーションよりも、より正確な結果を生み出すことができるので、画像データは、センサーデータのセグメンテーションを支援またはトレーニングするために使用され得る。システムは、画像をセグメントし、センサーデータを、セグメント化された画像に関連付けて、センサーデータセグメンテーションモデル（sensor data segmentation model）をトレーニングするのに使用され得るトレーニングデータセットを作成することがあり得る。たとえば、センサーデータ（たとえば、本明細書において説明されるようなＬＩＤＡＲセンサーによって取り込まれたセンサーデータ）は、セグメント化された画像上に投影されることが可能であり、セグメント化された画像に関連付けられたセグメンテーション情報は、センサーデータに変換または適用されて、トレーニングデータセットを作成することがあり得る。トレーニングされたセンサーデータセグメンテーションモデルが使用されて、その他のタイプのセンサーから取得されたセンサーデータを自動的にセグメント化し、それによってセンサーデータを、たとえば、自律車両の操作などのような多くの用途に対して、より有用にすることがあり得る。他の用途が考えられる。同様にして、いくつかの例において、センサーデータのどの１つのタイプをとっても、センサーデータの別のタイプについてのセグメンテーションを支援およびまたはトレーニングするために使用され得る。
【０００６】
一般に、本開示は、環境を表す複数の画像を受信するように構成されるシステムに向けられる。画像は、画像取り込みデバイスによって生成される画像データを含むことがあり得る。システムは、画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワーク（image segmentation network）に画像データを送信するように構成されることがあり得る。さらに、システムは、環境に関連付けられたセンサーデータを受信することもあり得る。センサーデータは、画像取り込みデバイス以外のセンサータイプによって生成されたセンサーデータを含むことがあり得る。たとえば、画像取り込みデバイスおよびセンサーは、環境に関連付けられたデータを、同時にまたは実質的に同時に（技術的な性能内で）取り込むことができる。たとえば、画像取り込みデバイスは、１つまたは複数のカメラ（たとえば、ＲＧＢカメラ、モノクロカメラ、強度（グレースケール）カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラなど）を含むことがあり得る。たとえば、センサーは、１つまたは複数のＬＩＤＡＲ（light detection and ranging）センサー、１つまたは複数のＲＡＤＡＲ（radio detection and ranging）センサー、１つまたは複数のＳＯＮＡＲ（sound navigation and ranging）センサー、および他のセンサーを含むことがあり得る。さらに、システムは、セグメント化された画像にセンサーデータを関連付けて、トレーニングデータセットを作成するように構成されることもあり得る。トレーニングデータセットは、センサーデータセグメンテーションモデルとして構成される機械学習ネットワークに送信されることがあり得る。さらに、システムは、センサータイプから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用して、センサーデータセグメンテーションモデルをトレーニングするように構成されることもあり得る。
【０００７】
いくつかの例において、システムは、センサーデータを、セグメント化された画像上に投影して、センサーデータを、セグメント化された画像のクラス（または分類）に関連付けるように構成されることがあり得る。画像取り込みデバイスによって取り込まれた画像の各々は、それぞれの画像時間において取り込まれることがあり得り、センサーデータのさまざまな部分は、さまざまなセンサー時間において取り込まれることがあり得る。いくつかの例において、システムは、画像時間と、センサーデータの一部分に関連付けられたセンサー時間との間における差を最小化する画像時間において取り込まれた画像を選択し、センサーデータの部分を、選択された画像または画像の部分に関連付けるように構成されることがあり得る。今までに述べた例示的なやり方において、画像データの取り込みとセンサーデータの取り込みとのタイミングにおける差が最小化されることがあり得り、それによって、セグメント化されたセンサーデータにおける潜在的なエラーの可能性を減らす。いくつかの例において、複数の画像取り込みデバイスが画像データを取り込むことができ、センサーデータが、セグメント化された画像に関連付けられる前に、画像データが整列させられて融合されることがあり得る。
【０００８】
いくつかの例においては、システムは、セグメント化された画像によりセンサーデータを整列させるように構成されることがあり得る。画像データは、その他のセンサーのビューと比べて、異なる角度から取り込まれることがあり得り、および／または環境の異なるビューに関連付けられることがあり得る。たとえば、画像データは、センサーデータによって包含されているビューとは異なる幅、高さ、および／または縦横比を有するビューを包含することがあり得る。いくつかの例においては、システムは、センサーデータによりセグメント化された画像を時間的におよび／または空間的に整列させるように構成されることがあり得る。加えて、画像取り込みデバイスの視野およびその他のセンサーの視野は、少なくとも部分的に重なることがあり得り、画像データおよびセンサーデータが、画像取り込みデバイスの視野およびその他のセンサーの視野の両方に共通する環境の部分に関連付けられているデータを含む。
【０００９】
いくつかの例において、システムは、画像におけるオブジェクトの部分的な表現に関連付けられた画像データを識別し、センサーデータを、セグメント化された画像に関連付けてトレーニングデータセットを作成するときに、部分的な表現に関連付けられたセグメント化された画像データを無視するあるいはマスクするように構成されることがあり得る。部分的な表現は、トレーニングデータにおけるエラーの源であることがあり得り、したがって、システムのいくつかの例は、エラーがトレーニングデータセットにおいて作成される可能性を減らすために上記のデータを無視するように構成されることがあり得る。いくつかの例においては、システムは、センサーデータにおける不連続性に関連付けられているセンサーデータを削除するように構成されることがあり得る。たとえば、センサーデータにおける不連続性は、センサーが、たとえば、人、および例えば、壁などの、人の後ろのオブジェクトなどの、単一のオブジェクトよりも多く検出したことのインディケーションであることがあり得る。不連続性に関連付けられているデータを削除すること、マスクすること、または無視することは、エラーがトレーニングデータセットにおいて作成される可能性を減らすことがあり得る。エラーの可能性を減らすための他の技術が考えられる。たとえば、不連続性を識別することは、単一のオブジェクトに関連付けられたＬＩＤＡＲデータポイントが距離の異常に広いレンジを表すと決定することを含むことがあり得る。たとえば、人が、１枚壁の１０フィート前に立っているかもしれない。関連付けられている画像をセグメント化するときに、背景は、「歩行者オブジェクト（pedestrian object）」に取り込まれる可能性がある。しかしながら、ＬＩＤＡＲデータを「歩行者オブジェクト」に投影するときに、ＬＩＤＡＲデータのうちのいくつかは、実際に人に関連付けられているデータよりも、センサーから１０フィート遠いであろう。上記の例において、距離がしきい値を上回るならば、今述べたことは不連続性を示すことになり、いくつかの例において、データは、トレーニングデータにおける、および機械学習ネットワークにおける不正確さを作成することを回避するために、マスクされる、無視される、または削除されることがあり得る。
【００１０】
いくつかの例において、機械学習ネットワークをトレーニングするためのトレーニングデータセットを生成する、セグメント化された画像を使用することよりもむしろ、センサーデータセグメンテーションモデルをトレーニングするためのトレーニングデータセットを生成するために、センサーからの以前に習得されてセグメント化されたデータが使用され得る。
【００１１】
さらに、本開示は、一般に、画像取り込みデバイス以外のセンサーによって生成されたセンサーデータをセグメント化するように構成されているシステムにも向けられている。たとえば、システムは、そのようなセンサー、たとえば、１つまたは複数のＬＩＤＡＲセンサー、１つまたは複数のＲＡＤＡＲセンサー、１つまたは複数のＳＯＮＡＲセンサー、および他のセンサーからデータを受信するように構成されることがあり得る。たとえば、システムは、センサーデータセグメンテーションモデルを使用して、ＬＩＤＡＲセンサーから受信されたセンサーデータをセグメント化し、セグメント化されたＬＩＤＡＲデータを生成するように構成されることがあり得る。たとえば、システムは、セグメント化されたセンサーデータを生成するためにセンサーデータセグメンテーションモデルを走らせるように（たとえば、ニューラルネットワークに対して、センサーデータをセグメント化するために推論モードにおいてトレーニングされたネットワークを使用するように）構成された機械学習モデル（たとえば、ニューラルネットワーク）を使用することがあり得る。この例示的なやり方においては、システムは、センサーデータを自動的にセグメント化することがあり得る。センサーデータをセグメント化することによって、セグメント化されたセンサーデータは、より有用である形を有することがあり得る。たとえば、セグメント化されたセンサーデータは、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両の操作のために軌跡（trajectory）を生成する１つまたは複数のシステムに情報提供することがあり得る、自律車両の認知システムによって、使用されることがあり得る。セグメント化されたセンサーデータの他の使用が考えられる。
【００１２】
さらに、本開示は、一般に、センサーデータをセグメント化するための方法にも向けられる。方法は、環境を表す１つまたは複数の画像を受信することを含むことがあり得る。画像は、１つまたは複数の画像取り込みデバイスによって生成された画像データを含むことがあり得る。さらに、方法は、画像をセグメント化するように構成された画像セグメンテーションネットワークに画像データを送信することを含むこともあり得る。さらに、方法は、画像取り込みデバイス以外のセンサーによって生成されたセンサーデータを受信することを含むこともあり得る。センサーデータは、環境を表すデータを含むことがあり得る。さらに、方法は、画像をセグメント化して、セグメント化された画像を生成することと、センサーデータを、セグメント化された画像に関連付けて、トレーニングデータセットを作成することとを含むこともあり得る。さらに、方法は、センサーデータセグメンテーションモデルを走らせるように（すなわち、センサーデータをセグメント化するためのセグメンテーションモデルを使用するように）構成された機械学習ネットワークにトレーニングデータセットを送信することと、センサーから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるようにトレーニングデータセットを使用して、センサーデータセグメンテーションモデルをトレーニングすることとを含むことがあり得る。
【００１３】
さらに、本開示は、一般に、自律車両に対して軌跡を生成するための方法にも向けられる。方法は、画像取り込みデバイス以外のセンサーからセンサーデータを受信することと、センサーデータセグメンテーションモデルを使用して、センサーから受信されたセンサーデータをセグメント化することとを含むことがあり得る。さらに、方法は、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両のための１つまたは複数の軌跡を生成することを含むこともあり得る。
【００１４】
本明細書において説明されるトレーニングデータの生成および機械学習モデルのトレーニングは、センサーデータに表されるオブジェクトのセグメンテーションおよび／または分類のパフォーマンスを改善する、より正確な信頼できるやり方においてトレーニングデータを生成することによって、コンピューティングデバイスの機能を改善することが可能である。いくつかの例において、改善されたトレーニングデータ生成および関連するシステムは、センサーデータの改善された自動的なセグメンテーションおよび／または分類のために機械学習ネットワークおよび／またはアルゴリズムをトレーニングすることによって、より正確なおよび／または、より速いセグメンテーションを提供することがあり得る。本明細書において記述されているトレーニングデータ生成およびトレーニング動作を使用して、画像セグメンテーションに基づいてセグメンテーション情報を自動的に決定することは、追加のデータを機械学習アルゴリズムにさらすことによって、オブジェクトの、より正確なおよび／または、より速い分類を導く。さらに、本明細書において説明されるトレーニングデータおよびトレーニング技術は、改善された処理を提供する深層学習技術を考慮に入れることができる。いくつかの例において、より速くおよび／またはより正確なセグメンテーションおよび／または分類は、自律車両の乗員に対する安全を改善することがあり得る、自律車両の軌跡を生成するときに利用されることがあり得る。いくつかの例において、本明細書において記述されているトレーニングデータ生成およびトレーニング動作は、機械学習動作（たとえば、人工ニューラルネットワーク）を、簡略化された（たとえば、セグメント化された）データに適用することによって、メモリ要件を減らす、または処理の量を減らすことがあり得る。さらなる例において、そのような方法は、複数のセンサータイプおよびサブタイプを組み入れるように容易に拡張されることがあり得り、さもなければ、複数のトレーニングセットを作成することを必要とすることがあり得るだろう。コンピューターの機能に対する今までに述べたおよび他の改善が、本明細書において論じられる。
【００１５】
本明細書において記述されている技術およびシステムは、複数の形において実装されることがあり得る。例示的な実装は、図面を参照して以下に提供される。
【００１６】
図１は、画像およびセンサーデータを取り込み、取り込まれた画像をセグメント化し、センサーデータを、セグメント化された画像上に投影し、センサーデータセグメンテーションモデルをトレーニングするためのトレーニングデータセットを生成する例示的な処理の絵のフロー図１００である。示す例において、例示的な車両１０２は、環境１０４を通過して進んでいる。たとえば、車両１０２は、図２に関して本明細書において説明される例示的な車両などのような、自律車両であることがあり得る。車両１０２は、１つまたは複数の画像取り込みデバイス１０６および１つまたは複数のセンサー１０８が提供する環境１０４に関連付けられた画像データ１１０およびセンサーデータ１１２をそれぞれ取り込むように構成される１つまたは複数の画像取り込みデバイス１０６および１つまたは複数のセンサー１０８（たとえば、１つまたは複数のＬＩＤＡＲセンサー、レーダーセンサー、超音波トランスデューサーなど）を含むことがあり得る。図１は、単一の画像取り込みデバイス１０６および単一のセンサー１０８を特定するが、たとえば、図４Ａおよび図４Ｂに関して本明細書において説明されるように、より多くの画像取り込みデバイス１０６および／またはより多くのセンサー１０８が考えられる。画像取り込みデバイス１０６は、たとえば、１つまたは複数のカメラ（たとえば、ＲＧＢカメラ、モノクロカメラ、強度（グレースケール）カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラ等）などのような、環境を表す画像を取り込むように構成される画像取り込みデバイスのどんなタイプでもあり得る。センサー１０８は、画像取り込みデバイス以外の、環境を表すデータを生成するように構成されるセンサーのどんなタイプでもあり得る。たとえば、センサー１０８は、１つまたは複数のＬＩＤＡＲセンサー、１つまたは複数のＲＡＤＡＲセンサー、１つまたは複数のＳＯＮＡＲセンサー、および他のセンサーであることがあり得る。
【００１７】
図１において示される例において、画像取り込みデバイス１０６は、３つの連続した時間ｔ１、ｔ２、およびｔ３における３つのそれぞれの視野に対応する画像１１４Ａ〜１１４Ｃの形において、画像データ１１０を取り込むものとして示される。たとえば、概略的に示すように、画像取り込みデバイス１０６は、時間ｔ１における視野に関連付けられた画像１１４Ａ、時間ｔ２における視野に関連付けられた画像１１４Ｂ、およびｔ３における視野に関連付けられた画像１１４Ｃを取り込む。画像１１４Ａ〜１１４Ｃの各々は、画像取り込みデバイス１０６が環境１０４を通過して進むにつれて、わずかに異なる視野を有することがあり得る。上記の例において、各画像１１４Ａ〜１１４Ｃは、環境１０４の別個の部分を包含する、異なるそれぞれの視点を有する。いくつかの例において、画像１１４Ａ〜１１４Ｃの各々によって取り込まれた画像データ１１０が融合されて、環境１０４について、より完全なまたは正確な表現を生成することがあり得る。
【００１８】
例示の目的のために、図１に示す例示的なセンサー１０８は、ＬＩＤＡＲセンサーデータの形においてセンサーデータ１１２を取り込むように構成されるＬＩＤＡＲセンサーである。他のタイプのセンサーが考えられる。ＬＩＤＡＲセンサーは、発光素子および光センサーを有することがあり得て、発光素子が、高度に集束された光をオブジェクトまたは表面に向ける１つまたは複数のレーザーを含み、オブジェクトまたは表面が、光を光センサーに反射する。ＬＩＤＡＲセンサーの測定値は、ＬＩＤＡＲセンサーによって取り込まれた位置または距離に対応する座標（たとえば、デカルト座標、極座標など）を有する３次元のＬＩＤＡＲデータとして表されることがあり得る。いくつかの例においては、変換演算は、３次元のＬＩＤＡＲデータをマルチチャネルの２次元のデータに変換するために使用されることがあり得り、方位および高度がＸ−Ｙ座標にマップされ、一方のチャネルがレンジを含み、他方のチャネルが強度を含む。いくつかの例においては、ＬＩＤＡＲデータは、本明細書に説明されるように自動的にセグメント化されることがあり得り、たとえば、セグメント化されたＬＩＤＡＲデータは、自律車両に対して軌跡を決定するための入力として使用され得る。
【００１９】
いくつかの例において、ＬＩＤＡＲセンサーは、１つまたは複数のレーザーが、（たとえば、実質的に垂直な軸の周りを）回転するように取り付けられ、それによって、たとえば、環境に関連付けられたＬＩＤＡＲデータを取り込むように、レーザーに、３６０度のスウィープをさせるように構成されることがあり得る。たとえば、図１に示すように、１つまたは複数のレーザーは、時間ｔ０において１つまたは複数のレーザーが垂直の位置ｐ０に沿って環境１０４に向けられるように、角度αのスウィープをすることがあり得る。同様にして、時間ｔ１において、１つまたは複数のレーザーは、垂直の位置ｐ１に沿って環境に向けられ、時間ｔ２において、１つまたは複数のレーザーは、垂直の位置ｐ２に沿って環境に向けられ、時間ｔ３において、１つまたは複数のレーザーは、垂直の位置ｐ３に沿って環境に向けられる。
【００２０】
いくつかの例において、例示的なセンサー１０８は、画像取り込みデバイス１０６によって取り込まれたそれぞれの画像１１４Ａ〜１１４Ｃの各々に関連付けられた視野とは異なることがあり得る視野１１６を取り込むように構成される。例示的な目的のために図１に示されるが、そのような視野は、たとえば、３６０度を含むそれ以下であることがあり得る。示される例において、さらに、センサー１０８の例示的な視野１１６は、画像取り込みデバイス１０６によって取り込まれるそれぞれの画像１１４Ａ〜１１４Ｃに関連付けられた視野とは異なる縦横比を有する。たとえば、ＬＩＤＡＲセンサーの視野１１６は、画像１１４Ａ〜１１４Ｃに関連付けられているそれぞれの視野よりも、より広いおよびより狭い（たとえば、高さ方向に短い）ことがあり得る。いくつかの例においては、視野１１６は、画像取り込みデバイス１０６によって取り込まれる画像に関連付けられている視野のうちの１つまたは複数と同じであることがあり得ると考えられる。センサー１０４の視野１１６が、画像取り込みデバイス１０６によって取り込まれる画像に関連付けられている視野のうちの１つまたは複数とは異なる例においては、本明細書においてさらに詳細に説明されているように、本明細書において記述されているシステムは、上記の差を考慮してセンサーデータ１１２により画像を整列させるように構成されることがあり得る。加えて、センサー１０４（たとえば、ＬＩＤＡＲセンサー）は、複数のチャネルにおいて、および／またはビームスプレッド（beam spread）に応じて、センサーデータを生成するように構成されることがあり得り、システムは、画像データ１１０とセンサーデータ１１２との間における上記の差を考慮し、センサーデータ１１２により画像を整列させるように構成されることがあり得る。
【００２１】
図１に示すように、例示的なプロセス１００は、たとえば、セグメント化された画像を入力画像から予測することがあり得るアルゴリズムおよび／または機械学習を介して、セグメント化された画像１２０Ａ〜１２０Ｃを生成するために、画像１１４Ａ〜１１４Ｃを自動的にセグメント化するように構成された画像セグメンテーションネットワーク１１８に、画像１１４Ａ〜１１４Ｃを含む画像データ１１０を送信することを含むことがあり得る。一般に、機械学習は、出力が、学習されたパラメーターに基づいて生成される上記のアルゴリズムの幅広いクラスをいい、以下に詳細に説明されるだろう。いくつかの実施形態において、セグメント化された画像１２０Ａ〜１２０Ｃを生成するために使用されることがあり得る例示的な機械学習アルゴリズムは、人工ニューラルネットワーク（ＡＮＮ）である。ＡＮＮは、生物学的にインスパイアされたアルゴリズムであり、入力されたデータを、一連の接続されたレイヤーを通じて渡して、出力を生成する。ＡＮＮにおける各レイヤーは、レイヤーをいくつでも含むことがあり得り、さらに、別のＡＮＮを含むこともあり得る。一般に、ＡＮＮのさまざまなレイヤーが互いに接続されるやり方は、ＡＮＮのアーキテクチャーと呼ばれる。画像をセグメント化するための他のタイプの画像セグメンテーションネットワークが考えられる。
【００２２】
画像セグメンテーションは、画像を別個のセグメント、またはスーパーピクセルへと区分して、画像のさらに意味のある表現を提供するために使用され得る。たとえば、画像は、画像内のオブジェクトを一意的に識別するためにセグメント化されることがあり得り、各オブジェクトが一意の識別子を有する。画像セグメンテーションは、複数の異なる用途において使用され得る。たとえば、環境における場面に関連付けられたセグメント化された画像は、環境に配置された１つまたは複数のオブジェクトの表現を含むことがあり得る。セグメント化された画像に含まれているオブジェクトの存在および／またはロケーションは、次に、たとえば、マシンビジョンのいくつかの側面を使用するシステムにおいて、障害物回避、オブジェクト検出およびトラッキングなどのために使用されることがあり得る。たとえば、本明細書において説明されているように、セグメント化された画像および／またはセグメント化されたセンサーデータは、環境を通じて自律車両を動かすための車両軌跡を生成するために自律車両の認知システムによって使用されることがあり得る。いくつかの例において、画像は、走行可能な表面を提供するためにセグメント化されることがあり得る。上記の例において、ピクセルは、走行可能な表面に属するか否かとして広く分類されることがあり得る。上記のセグメント化された画像は、どの軌跡が実現可能であるかを自律車両に知らせるために使用されることがあり得る。
【００２３】
図１において示されているように、センサー１０８は、センサー１０８が存在している環境１０４を表すセンサーデータ１１２を生成することがあり得る。１２２において、センサーデータ１１２は、（たとえば、変形および非投影を介して、）セグメント化された画像１２０Ａ〜１２０Ｃ上に投影されることがあり得る。本明細書において説明されているように、センサーデータ１１２は、センサーデータ１１２およびセグメント化された画像１２０Ａ〜１２０Ｃが、（技術的な能力の範囲内で）実質的に時間的に整列させられるように、セグメント化された画像１２０Ａ〜１２０Ｃ上に投影されることがあり得る。加えて、本明細書において説明されているように、センサーデータ１１２は、環境１０４におけるオブジェクトに関連付けられたセンサーデータ１１２が、（技術的な能力の範囲内で）セグメント化された画像１２０Ａ〜１２０Ｃにおけるオブジェクトにより空間的に整列させられるように、セグメント化された画像１２０Ａ〜１２０Ｃ上に投影されることがあり得る。
【００２４】
たとえば、センサー１０８は、上に述べたような、たとえば、軸（たとえば、実質的に垂直な軸）の周りを回転する１つまたは複数のレーザーを含むＬＩＤＡＲセンサーであり、１つまたは複数のレーザーが回転するにつれてＬＩＤＡＲセンサーデータを取り込むことがあり得る。レーザーが回転するにつれて、時間ｔ０、ｔ１、ｔ２、およびｔ３において、それらは、垂直のラインｐ０、ｐ１、ｐ２、およびｐ３に対応するセンサーデータ１１２を取り込む。いくつかの例においては、ＬＩＤＡＲセンサーは、ＬＩＤＡＲデータが（技術的な許容範囲内で）単一の画像または画像のグループにマップされることがあり得る頻度において、ＬＩＤＡＲセンサーデータを提供することがあり得る。いくつかの例において、画像取り込みデバイス１０６は、レーザーが環境上のスウィープを完了するよりも、より速い速度において画像を取り込むように構成されることがあり得る。したがって、いくつかの例において、センサーデータ１１２は、画像データ１１０により時間的に整列させられることがあり得る。たとえば、与えられた時間（たとえば、センサー時間）において取り込まれたセンサーデータ１１２は、たとえば、センサーデータ１１２が（たとえば、センサー時間において）取り込まれた時間に最も近い時間に取り込まれた画像を選択することによって、センサーデータ１１２とほぼ同じ時間（たとえば、画像時間）において取り込まれた画像により時間的に整列させられることがあり得る。
【００２５】
たとえば、図１に示すように、ＬＩＤＡＲセンサーは、ｔ０において環境１０４にわたるそのスウィープを開始し、そのスウィープをｔ１まで継続する。Ｔ１において、画像取り込みデバイス１０６は、画像１１４Ａを取り込む。したがって、今述べた例において、センサー時間ｔ１は、画像１１４Ａが取り込まれた画像時間ｔ１により時間的に整列させられる。加えて、センサー時間ｔ１において、ＬＩＤＡＲセンサーは、感知されている環境１０４にわたって部分的に（たとえば、感知されている環境１０４にわたる道の約１／３に）のみスウィープをしていて、示される例において、今述べたことは、画像１１４Ａの右端の約１／３に相関する。ＬＩＤＡＲセンサーがそのスウィープをセンサー時間ｔ１からｔ２へと継続するにつれて、画像時間ｔ２における画像取り込みデバイス１０６は、画像１１４Ｂを取り込む。したがって、時間ｔ１とｔ２との間におけるセンサー時間中に取り込まれたＬＩＤＡＲデータは、画像時間ｔ２に最も近く時間的に対応する。加えて、センサー時間ｔ１とｔ２との間において、ＬＩＤＡＲセンサーは、感知されている環境１０４にわたって部分的に（たとえば、感知されている環境１０４にわたる道の約１／３から、感知されている環境１０４にわたる道の約２／３までに）スウィープをしていて、示される例において、今述べたことは、画像１１４Ｂの真ん中の約１／３に相関する。ＬＩＤＡＲセンサーがそのスウィープをセンサー時間ｔ２からｔ３へと継続するにつれて、画像時間ｔ３における画像取り込みデバイス１０６は、画像１１４Ｃを取り込む。したがって、時間ｔ２とｔ３との間におけるセンサー時間中に取り込まれたＬＩＤＡＲデータは、画像時間ｔ３に最も近く時間的に対応する。加えて、センサー時間ｔ２とｔ３との間において、ＬＩＤＡＲセンサーは、感知されている環境１０４にわたって部分的にから（たとえば、感知されている環境１０４にわたる道の約２／３から、感知されている環境１０４にわたるほぼ全体までに）スウィープをしていて、示される例において、今述べたことは、画像１１４Ｃの左端の約１／３に相関する。この例示的なやり方においては、画像取り込みデバイス１０６によって取り込まれた画像のうちの少なくともいくつかは、センサー１０８（たとえば、ＬＩＤＡＲセンサー）によって取り込まれたセンサーデータ１１２の少なくとも一部分に相関付けられることがあり得る。
【００２６】
いくつかの例において、ＬＩＤＡＲセンサーは、取り込まれたデータのうちのいくつかが、感知された環境に対応しない間、３６０度のスウィープを継続することがあり得る。いくつかの例においては、感知されている環境に対応していない取り込まれたデータは、無視されること、または、たとえば、ＬＩＤＡＲセンサーを較正することなど、他の目的のために使用され得る。
【００２７】
センサーデータ１１２が、セグメント化された画像データ１２０へと空間的に投影される場合に、上記の投影は、センサー（複数可）および画像デバイス（複数可）の相対的な外因性を使用して決定された変形を、画像デバイス（複数可）のカメラマトリックスを使用する非均質化（dehomogenization）も同様に含むことがあり得る。
【００２８】
図１に示すように、センサーデータ１１２の少なくとも一部分を、セグメント化された画像１２０Ａ〜１２０Ｃ上に投影することは、本明細書において説明されているように、画像取り込みデバイス以外のタイプのセンサーによって生成されたセンサーデータを自動的にセグメント化するためのセンサーデータセグメンテーションモデル１２６をトレーニングするために使用されることがあり得るトレーニングデータセット１２４を作成する。たとえば、セグメント化された画像１２０Ａ〜１２０Ｃにおいて識別された環境１０４におけるオブジェクトは、センサーデータ１１２に相関付けられることがあり得り、したがってセンサーデータ１１２における特徴は、画像取り込みデバイス以外のタイプのセンサーを使用して、今後の同様のオブジェクトを識別するために使用され得る。いくつかの例においては、センサーデータ１１２は、センサーデータセグメンテーションモデル１２６をトレーニングするための追加のトレーニングデータとして使用されることがあり得る。
【００２９】
図２は、例示的な車両２０２が通過して進んでいる例示的な環境２００を例示する。例示的な車両２０２は、例えば、ドライバー（または乗員）がいかなる時点においても車両を制御することが期待されない、全行程にすべてのセーフティクリティカルの機能を実行する性能がある車両を記述する、米国連邦道路交通安全局によって発行されるレベル５分類に応じて、動作するように構成された自律車両などのような無人運転車両であることがあり得る。そのような例においては、車両２０２が、すべての駐車機能を含む、行程の開始から完了までのすべての機能を制御するように構成されることがあり得るので、それは、ドライバー、ならびに／または、ハンドル、アクセルペダル、および／もしくはブレーキペダルなど、車両２０２を運転するための制御を含まないことがあり得る。今述べたことは、単に例であり、本明細書において説明されるシステムおよび方法は、常にドライバーによって手動により制御される必要がある車両から、部分的にまたは完全に自律的に制御される車両までに及ぶ車両を含む、陸上輸送の、航空輸送の、または水上輸送のどんな車両にでも組み入れられることがあり得る。
【００３０】
例示的な車両２０２は、たとえば、バン、スポーツユーティリティービークル、クロスオーバービークル、トラック、バス、農業車両、および建設車両など、どんな構成の車両でもあり得る。車両２０２は、１つもしくは複数の内燃機関、１つもしくは複数の電気モーター、水素動力、それらのどんな組合せでも、および／または他の適したどんな動力源によってでも、動力供給されることがあり得る。例示的な車両２０２が４つの車輪２０４を有するが、本明細書において説明されるシステムおよび方法は、より少ないまたはより多い数の車輪、タイヤ、および／またはトラックを有する車両に組み入れられることがあり得る。例示的な車両２０２は、四輪操舵を有することがあり得り、一般に、たとえば、車両２０２の第１の端部２０６が、第１の方向２０８に進むと車両２０２の前方端部であるような、および第１の端部２０６が、図２に示すように、反対の第２の方向２１０に進むと車両２０２の後方端部になるような、すべての方向において等しい性能特性を有して動作することがあり得る。同様にして、車両２０２の第２の端部２１２は、第２の方向２１０に進むと車両２０２の前方端部であり、および反対の第１の方向２０８に進むと、第２の端部２１２が、車両２０２の後方端部になるようである。今までに述べた例示的な特性は、たとえば、駐車場および都市エリアなど、狭いスペースまたは混雑した環境において、より高い操縦性を容易にすることがあり得る。
【００３１】
例えば、例示的な車両２０２などの車両は、環境２００を通過して進み、センサーデータセグメンテーションモデル１２６をトレーニングするためのトレーニングデータセット１２４を生成するためにデータを収集するのに使用されることがあり得る。たとえば、車両は、１つまたは複数の画像取り込みデバイス１０２と、画像取り込みデバイス１０２とは異なるタイプの１つまたは複数のセンサー１０４とを含むことがあり得る。例示の目的のために、１つまたは複数のセンサー１０４は、１つまたは複数のＬＩＤＡＲセンサーであることがあり得る。他のセンサータイプが考えられる。いくつかの例においては、画像取り込みデバイス１０２のうちの１つまたは複数、およびセンサー１０４のうちの１つまたは複数は、たとえば、画像取り込みデバイス１０２およびセンサー１０４の視点および／または視野における差を減らすために、車両２０２上に互いにごく近接して取り付けられることがあり得る。これは、画像取り込みデバイス１０２およびセンサー１０４によって環境２００において検出されたオブジェクト間における食い違いを減らすことがあり得る。
【００３２】
車両２０２が環境２００を通過して進むにつれて、画像取り込みデバイス１０２およびセンサー１０４ーは、画像取り込みデバイスおよびセンサー１０４のうちの１つまたは複数の視野２１６内において、（技術的な能力の範囲内で）同時にまたは実質的に同時に、検出されたオブジェクト２１４（たとえば、車両、歩行者、建物、障害物など）に関連付けられたデータを取り込む。取り込まれたデータは、たとえば、図１、図６、および図７に関して記述されているように、トレーニングデータセット１２４を作成するために使用され得る。
【００３３】
図３は、本明細書において説明される例示的なプロセスのうちの１つまたは複数を実装するための例示的なアーキテクチャー３００を示す。たとえば、アーキテクチャー３００は、本明細書において記述されているシステム、方法、および装置の側面を実装するためのさまざまなハードウェアおよび／またはソフトウェアを含む１つまたは複数のコンピューターシステム３０２を含むことがあり得る。たとえば、コンピューターシステム（複数可）３０２は、センサーモジュール３０４（たとえば、ＬＩＤＡＲモジュール）、画像取り込みモジュール３０６、次元変換モジュール３０８、セグメンテーションモジュール３１０、分類モジュール３１２、および軌跡モジュール３１４を含むことがあり得る。
【００３４】
いくつかの例においては、コンピューターシステム（複数可）３０２は、たとえば、図２に示す例示的な車両２０２などのような自律車両において具体化されることがあり得る。いくつかの例においては、コンピューターシステム（複数可）３０２は、自律車両のための認知およびプランニング機能を提供することがあり得る。一般には、コンピューターシステム（複数可）３０２は、ＬＩＤＡＲ認知、視覚（カメラ）認知、セグメンテーションおよび分類、トラッキングおよび融合、ならびに予測／プランニングを含むことがあり得る。
【００３５】
センサーモジュール３０４は、本明細書において記述されているように、データ、セグメンテーション、および／または分類をトレーニングするためにセンサーデータ１１４を取り込むための、たとえば、ＬＩＤＡＲセンサーなどの１つまたは複数のセンサー１０４を含むことがあり得る。たとえば、センサーモジュール３０４は、複数のＬＩＤＡＲセンサーからのＬＩＤＡＲデータを結合してまたは合成して、ＬＩＤＡＲデータのメタスピン（meta spin）を生成するように構成されることがあり得り、複数のＬＩＤＡＲセンサーによって生成されたＬＩＤＡＲデータを参照することがあり得る。ＬＩＤＡＲデータのメタスピンのケースにおいては、センサーモジュール３０４は、（たとえば、センサーデータのすべてを共通の原点にマップすることによって）メタスピンデータ（meta spin data）の仮想の原点を決定するように構成されることがあり得る。いくつかの例においては、センサーモジュール３０４は、ＬＩＤＡＲセンサーと、オブジェクトまたは表面のポイントとの間におけるレンジを決定するように構成されることがあり得り、いくつかの例においては、センサーモジュール３０４は、センサーモジュール３０４によって取り込まれたおよび／または感知された各ポイントに対して表面法線ベクトルを決定するように構成されることがあり得る。制限でない例として、そのような表面法線の決定は、ポイントから、そのポインの最も近い近傍の２つのポイントへの方向を示すベクトルの外積の法線を計算することによって行われることがあり得る。本開示のコンテキストにおいて理解され得るように、センサーモジュール３０４は、データを取り込むことができ、後続の処理のためにデータセットをコンピューターシステム３０２（複数可）に送信することがあり得る。
【００３６】
画像取り込みモジュール３０６は、たとえば、本明細書において記述されているように、画像セグメンテーションおよび／または分類のために画像データ１０８を取り込むように構成されている１つまたは複数の画像取り込みデバイス１０２を含むことがあり得る。画像取り込みモジュール３０６は、画像取り込みセンサーをいくつでもどのタイプでも含むことがあり得る。たとえば、画像取り込みモジュール３０６は、画像取り込みデバイスを、例えば、どんなカメラ（たとえば、ＲＧＢカメラ、モノクロカメラ、強度（グレースケール）カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラ等）でも、含むことがあり得る。本開示のコンテキストにおいて理解され得るように、画像取り込みモジュール３０６は、画像データ１０８を取り込むことがあり得り、後続の処理のためにデータセットをコンピューターシステム３０２（複数可）に送信することがあり得る。たとえば、画像取り込みモジュール３０６からのデータは、マルチチャネル画像の１つまたは複数のチャネルとして含まれることがあり得る。
【００３７】
コンピューターシステム（複数可）３０２は、たとえば、自律車両における使用に適した他のセンサーをいくつでもどのタイプでも含むことがあり得る。さまざまなセンサーは、制限しないが、１つまたは複数のＬＩＤＡＲセンサー、１つまたは複数のＲＡＤＡＲセンサー、１つまたは複数のＳＯＮＡＲセンサー、超音波トランスデューサー、ホイールエンコーダー、マイクロフォン、ＩＭＵ（inertial measurement unit）（複数可）、加速度計、ジャイロスコープ、磁力計、温度センサー、湿度センサー、光センサー、全地球測位システム（ＧＰＳ）、ＩＮＳ（inertial navigation system）などを含むことがあり得る。
【００３８】
いくつかの例においては、センサーモジュール３０４および画像取り込みモジュール３０６は、改善された画像セグメンテーションおよび／もしくは分類を提供する、トレーニングデータセットを生成する、ならびに／またはセンサーデータセグメンテーションおよび／もしくは分類を提供するためにデータを結合および／または合成するための１つまたは複数のデータセットをコンピューターシステム３０２に提供することがあり得る。いくつかの例においては、コンピューターシステム（複数可）３０２は、本明細書において記述されているようにセンサーデータセットを受信するおよび格納するように構成されることがあり得る。いくつかの例において、コンピューターシステム（複数可）３０２は、格納されたデータに注釈を付けるように構成されることがあり得り、データを、検出すること、識別すること、分類すること、セグメント化すること、ラベル付けすることなどを含むことがあり得る。
【００３９】
いくつかの例においては、さらに、コンピューターシステム（複数可）３０２は、テストするときに部分的に使用するために、コンピューターシミュレーションアルゴリズムによって生成されたシミュレートされたデータを含むこともあり得る。いくつかの例において、シミュレートされたデータは、例えば、画像データ、センサーデータ（たとえば、ＬＩＤＡＲデータ）、ＧＰＳデータ等のような、シミュレートされたデータのどのタイプでも含むことがあり得る。いくつかの例においては、コンピューターシステム（複数可）３０２は、動作を検証するために、および／または機械学習ネットワークによって実行可能なモデルをトレーニングするために、シミュレートされたデータ上の変換動作を修正、変形、および／または行うように構成されることがあり得る。
【００４０】
次元変換モジュール３０８のいくつかの例は、第１の次元を有するデータを、第２の次元を有するデータに変換する、変形する、またはマップするように構成されることがあり得る。たとえば、次元変換モジュール３０８は、１つまたは複数の３次元のデータセットを、１つまたは複数のマルチチャネルの２次元画像に変換するように構成されることがあり得る。たとえば、次元変換モジュール３０８は、３次元で格納されているデータを異なる次元表現に変換するおよび／またはマップするように構成されることがあり得る。そのような変換は、たとえば、円筒座標または球座標において記述されるセンサーデータを平面座標に関連付けることを含むことがあり得る。いくつかの例において、円筒座標から平面座標へのそのような変換は、円筒座標を「広げること（unrolling）」として想像することがあり得る。次元変換モジュール３０８は、いくつかの例においては、制限しないが、球投影（たとえば、ステレオ投影および円筒投影）、メルカトル投影、直接極変換（たとえば、球投影または正距円筒図法）などを含む、３次元データを２次元データに変換するためのどんな変換動作でも行うように構成されることがあり得る。そのような表現のチャネルは、レンジ（または距離）および強度に関連付けられることがあり得る。
【００４１】
例示的なセグメンテーションモジュール３１０は、１つまたは複数のマルチチャネルの２次元画像にセグメンテーションを行うように構成されることがあり得る。たとえば、セグメンテーションモジュール３１０は、１つまたは複数のマルチチャネルの２次元画像を１つまたは複数の機械学習アルゴリズムに入力するように構成されることがあり得る。たとえば、セグメンテーションモジュール３１０は、後続の画像分類のために、データにおいて表されるオブジェクトをセグメント化する画像セグメンテーションを行うことがあり得る。いくつかの例においては、データ上でセグメンテーションの動作を実行するように構成されているハードウェアおよび／またはソフトウェアは、「セグメンタ（segmenter）」であると考えられることがあり得る。いくつかの例においては、セグメンテーションモジュール３１０は、２次元画像に関連付けられたいくつものチャネル上に動作するように構成されることがあり得る。たとえば、セグメンテーションモジュール３１０は、制限しないが、レンジチャネル、ｘ軸チャネル、ｙ軸チャネル、ｚ軸チャネル、表面法線ベクトルチャネル、反射率チャネル、時間チャネルなどを含む、１つまたは複数のチャネルを入力として受信することがあり得る。いくつかの例においては、セグメンテーションモジュール３１０は、セグメンテーションを実行するために１つまたは複数の機械学習アルゴリズムのうちのいずれかを使用することがあり得る。たとえば、セグメンテーションモジュール３１０は、例えば、マルチチャネルの２次元データをセグメント化するようにトレーニングされた１つまたは複数の畳み込みニューラルネットワーク（ＣＮＮ）などの人工ニューラルネットワークを利用することがあり得る。いくつかの例においては、セグメンテーションモジュール３１０は、本明細書においてさらに詳細に論じられているようにデータのピラミッディングに帰着する非対称カーネルを使用するように構成されることがあり得る。いくつかの例において、カーネルの非対称ストライド（たとえば、ｙ方向と比較してｘ方向にさらに高いストライドを有すること）は、より高い抽象化（すなわち、ピラミッドのより高いレベル）におけるデータ表現がｘ方向およびｙ方向の両方においてより均一であるように、例えば、チャネルの数（ビームの数）、回転あたりのポイントの数などに基づいて、適用されるおよび選択されることがあり得る。
【００４２】
例示的な分類モジュール３１２は、セグメント化されたデータを受信し、データによって表されているオブジェクトのタイプを識別するように構成されることがあり得る。たとえば、分類モジュール３１２は、制限しないが、車、建物、歩行者、自転車、木、空きスペース、占められているスペース、道路標識、レーンマーキングなどを含む、１つまたは複数のオブジェクトを分類することがあり得る。分類モジュール３１２および／またはセグメンテーションモジュール３１０は、例えば、セグメンテーションおよび分類の動作を行うために、たとえばニューラルネットワークなどのような、どんな機械学習アルゴリズムでも含むことがあり得る。
【００４３】
ニューラルネットワークのコンテキストにおいて説明されるが、機械学習のどのタイプでも、本開示と矛盾することなく使用されることがあり得る。たとえば、機械学習アルゴリズムは、制限しないが、回帰アルゴリズム（たとえば、通常の最小二乗回帰（ＯＬＳＲ）、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応型回帰スプライン（ＭＡＲＳ）、局所推定スキャッタープロット平滑化法（ＬＯＥＳＳ））、インスタンスベースのアルゴリズム（たとえば、リッジ回帰、最小絶対収縮および選択演算子（ＬＡＳＳＯ）、弾性ネット、最小角度回帰（ＬＡＲＳ））、ディシジョンツリーアルゴリズム（たとえば、分類および回帰ツリー（ＣＡＲＴ）、反復二分法３（ＩＤ３）、カイ二乗自動相互作用検出（ＣＨＡＩＤ）、決定断端、条件付きディシジョンツリー））、ベイジアンアルゴリズム（たとえば、ナイーブベイズ、ガウスナイーブベイズ、多項式ナイーブベイズ、アベレージワンディペンデンスエスティメータズ（ＡＯＤＥ）、ベイジアンビリーフネットワーク（ＢＮＮ）、ベイジアンネットワーク）、クラスタリングアルゴリズム（たとえば、ｋ平均法、ｋメジアン、期待値最大化（ＥＭ）、階層クラスタリング）、相関ルール学習アルゴリズム（たとえば、パーセプトロン、逆伝搬、ホップフィールドネットワーク、動径基底関数ネットワーク（ＲＢＦＮ））、深層学習アルゴリズム（たとえば、ディープボルツマンマシン（ＤＢＭ）、ディープビリーフネットワーク（ＤＢＮ）、畳み込みニューラルネットワーク（ＣＮＮ）、スタックドオートエンコーダ）、次元縮退アルゴリズム（たとえば、主成分分析（ＰＣＡ）、主成分回帰（ＰＣＲ）、部分的最小二乗回帰（ＰＬＳＲ）、サモンマッピング、多次元尺度構成法（ＭＤＳ）、投影追跡、線形判別分析（ＬＤＡ）、混合判別分析（ＭＤＡ）、二次判別分析（ＱＤＡ）、柔軟判別分析（ＦＤＡ））、アンサンブルアルゴリズム（たとえば、ブースティング、ブートストラップアグリゲーション（バギング）、アダブースト、スタックドジェネラリゼーション（ブレンディング）、勾配ブースティングマシン（ＧＢＭ）、勾配ブースト回帰ツリー（ＧＢＲＴ）、ランダムフォレスト）、ＳＶＭ（サポートベクターマシン））、教師あり学習、教師なし学習、準教師あり学習など含むことがあり得る。
【００４４】
いくつかの例においては、複数のタイプの機械学習が使用されて、使用されている機械学習のタイプの各々にそれぞれの結果を提供することがあり得る。いくつかの例において、信頼スコアは、結果の各々に関連付けられることがあり得り、信頼される結果は、結果に関連付けられた信頼スコアに少なくとも部分的に基づくことがあり得る。たとえば、最も高い信頼スコアに関連付けられている結果は、他の結果に優先して選択されることがあり得り、または結果は、信頼スコアに基づいて、たとえば、加重平均等などのような統計的な方法に基づいて、結合されることがあり得る。
【００４５】
いくつかの例においては、軌跡モジュール３１４は、セグメント化されたおよび／または分類されたデータを受信して、たとえば、例示的な車両２０２などのような、自律車両の操作のための軌跡を決定するように構成されることがあり得る。たとえば、軌跡モジュール３１４は、セグメント化された画像データ、セグメント化されたセンサーデータ、および／または関連した分類情報を受信して、自律車両が進むための道路上の空きスペースを識別し、自律車両がたどるための軌跡を生成するように構成されることがあり得る。いくつかの例においては、軌跡モジュール３１４は、本明細書において論じられているように、セグメント化されたおよび／または分類されたオブジェクトを入力として受信することがあり得り、オブジェクトをトラッキングして、上記のオブジェクトに少なくとも部分的に基づいて、軌跡を生成することがあり得る。
【００４６】
図４Ａは、例示的な車両２０２に取り付けられたまたは例示的な車両２０２によって運ばれる複数のセンサーアセンブリを有する車両２０２の側面図４００である。いくつかの例において、複数のセンサーアセンブリからのデータセットは、メタスピン（たとえば、複数のＬＩＤＡＲセンサーを表すＬＩＤＡＲデータ）を形成するために結合もしくは合成されることがあり得り、またはセグメンテーション、分類、予測、プランニング、軌跡生成などに対して精度もしくは処理を改善するためにセンサー融合技術を使用して、結合されるもしくは融合されることがあり得る。
【００４７】
側面図４００に示すように、例示的な車両２０２は、センサーをいくつでもどんな組合せまたは構成でも含むことがあり得る。たとえば、示される例示的な車両２０２は、センサー４０４、４０６、および４０８を含む。いくつかの例においては、センサー４０４は、θ１として例示される垂直の視野を有するＲＡＤＡＲセンサーを含むことがあり得る。例示的なセンサー４０６は、車両２０２のルーフ上に取り付けられるＬＩＤＡＲセンサーを含むことがあり得り、θ２として例示される垂直の視野を有することがあり得る。いくつかの例においては、センサー４０８は、垂直の視野θ３を有する、例えば、カメラなどの画像取り込みデバイスを含むことがあり得る。車両２０２は、センサーをいくつでもどのタイプでも含むことがあり得り、図４Ａに関して示されるおよび説明される例に制限されない。
【００４８】
図４Ｂは、図４Ａに示す例示的な車両２０２の上面図４１０である。図４Ｂに示すように、さらに、例示的な車両２０２は、センサー４１２、４１４、４１６、および４１８も含む。たとえば、センサー４０８および４１８は、同一場所に配置されるまたは互いに近接して配置されることがあり得るが、さまざまな視野を有する別個のセンサータイプまたは様相を含むことがあり得る。いくつかの例においては、センサー４１２、４１４、４１６、および４１８は、ＬＩＤＡＲセンサー、ＲＡＤＡＲセンサー、および／または画像取り込みデバイスを含むことがあり得る。
【００４９】
図４Ｂにおいて示されているように、センサー４０４は、水平の視野θ４を有することがあり得り、センサー４０６は、水平の視野θ５を有することがあり得り、センサー４０８は、水平の視野θ６を有することがあり得り、センサー４１２は、水平の視野θ７を有することがあり得り、センサー４１４は、水平の視野θ８を有することがあり得り、センサー４１６は、水平の視野θ９を有することがあり得り、センサー４１８は、水平の視野θ１０を有することがあり得る。センサーの取り付けロケーションおよび／または視野は、構成をいくつでも有することがあり得る。
【００５０】
図５Ａおよび図５Ｂは、入力画像および対応するセグメント化された画像の例を示す。図５Ａにおいて示されている例示的な入力画像５００は、例示的なオブジェクトセグメント化（object-segmented）画像５１０に対応することがあり得る。画像５００のセグメンテーションは、画像のいくつかの意味ある表現を決定することを行うことがあり得る。たとえば、入力画像５００に存在するオブジェクトに基づいて入力画像５００をセグメント化することは、示されるようなオブジェクトセグメント化画像５１０に帰着することがあり得る。図５Ａにおいて示されているように、オブジェクトセグメント化画像５１０の各異なる陰影は、異なるオブジェクト（たとえば、車、建物、歩行者、ロードマーカーなど）に対応する。示されるようなセグメント化された形において、入力画像５００における特定のオブジェクトのロケーション、分類、および／または有無を決定することが可能であることがあり得る。
【００５１】
図５Ｂは、入力画像５００をセグメント化するための別の可能なセグメンテーションスキーマの例を示す。図５Ａにおいて示されている入力画像５００のセグメンテーションとは対照的に、入力画像５００は、「空きスペース（free space）」、または車両が進むことがあり得る潜在的な領域に基づいて、セグメント化されることがあり得る。図５Ｂは、空きスペースセグメント化画像５２０の例示的な表現を示す。空きスペースセグメント化画像５２０は、走行可能な経路の信頼性に関する情報（たとえば、さまざまな陰影）を提供することがあり得る。示される例において示されているように、空きスペースセグメント化画像５２０の、より薄い陰影は、たとえば、他の車両、建物、または歩行者などのオブジェクトによって塞がれていない道路表面に対応する。そのようなセグメンテーションは、車両が、環境におけるオブジェクトとの衝突を回避することがあり得るような、自律車両用の軌跡を展開するために有用であることがあり得る。
【００５２】
図６は、画像およびセンサーデータを取り込むための例示的な処理の絵のフロー図６００である。示されている例において、３つの画像取り込みデバイス１０２Ａ〜１０２Ｃおよび例示的なＬＩＤＡＲセンサー６０２は、画像取り込みデバイス１０２Ａ〜１０２ＣおよびＬＩＤＡＲセンサー６０２が存在する場面６０４に関連付けられたデータを取り込む。図６は、３つの画像取り込みデバイス１０２Ａ〜１０２Ｃおよび単一のＬＩＤＡＲセンサー６０２を示しているが、より少ないまたはより多い画像取り込みデバイスが考えられ、複数のＬＩＤＡＲセンサーが考えられる。画像取り込みデバイス１０２Ａ〜１０２Ｃは、たとえば、どんなカメラ（たとえば、ＲＧＢカメラ、モノクロカメラ、強度（グレースケール）カメラ、赤外線カメラ、紫外線カメラ、深度カメラ、ステレオカメラ等）でも、環境を表す画像を取り込むように構成される画像取り込みデバイスのどんなタイプでもあり得る。
【００５３】
図６に示す例において、３つの例示的な画像取り込みデバイス１０２Ａ〜１０２Ｃは、画像取り込みデバイス１０２Ａ〜１０２Ｃのそれぞれの視野６１０Ａ〜６１０Ｃに対応する画像６０８の形において画像データ６０６を取り込むとして示されている。たとえば、概略的に示されているように、画像取り込みデバイス１０２Ａは、視野６１０Ａに関連付けられている画像を取り込み、画像取り込みデバイス１０２Ｂは、視野６１０Ｂに関連付けられている画像を取り込み、画像取り込みデバイス１０２Ｃは、視野６１０Ｃに関連付けられている画像を取り込む。画像６０８Ａ〜６０８Ｃが、図面に内在する限界に起因して、図６において同じであるとして概略的に示されるが、画像６０８Ａ〜６０８Ｃの１つまたは複数（たとえば、各々）は、たとえば、画像６０８Ａ〜６０８Ｃが取り込まれたわずかに異なるビューおよび時間に起因して、わずかに異なるであろう。示される例において、画像取り込みデバイス１０２Ａ〜１０２Ｃの各々は、その他の画像取り込みデバイス１０２とはわずかに異なる視野６１０を有する。上記の例において、各画像取り込みデバイス１０２Ａ〜１０２Ｃは、場面６０４の別個の部分を包含する、異なるそれぞれの視点を有するそれぞれの画像６０８Ａ〜６０８Ｃを提供することがあり得る。たとえば、画像６０８Ａは、それぞれの画像時間ｔ１、ｔ２、およびｔ３において画像取り込みデバイス１０２Ａによって取り込まれた３つの画像に対応することあり得り、画像６０８Ｂは、それぞれの画像時間ｔ１、ｔ２、およびｔ３において画像取り込みデバイス１０２Ｂによって取り込まれた３つの画像に対応することがあり得り、画像６０８Ｃは、それぞれの画像時間ｔ１、ｔ２、およびｔ３において画像取り込みデバイス１０２Ｃによって取り込まれた３つの画像に対応することがあり得る。いくつかの例においては、画像取り込みデバイス１０２Ａ〜１０２Ｃの各々によって取り込まれた画像データ６０６は、融合されて、場面６０４の、より完全な表現を生成することがあり得る。
【００５４】
図６に示すように、例示的なＬＩＤＡＲセンサー６０２は、たとえば、図６に示すように、画像取り込みデバイス１０２Ａ〜１０２Ｃに関連付けられた視野６１０Ａ〜６１０Ｃとは異なることがあり得る、視野６１４からＬＩＤＡＲセンサーデータ６１２を取り込むように構成される。示される例において、さらに、ＬＩＤＡＲセンサー６０２の例示的な視野６１４は、画像取り込みデバイス１０２Ａ〜１０２Ｃに関連付けられた視野６１０Ａ〜６１０Ｃとは異なる縦横比を有する。たとえば、ＬＩＤＡＲセンサー６０２の視野６１４は、画像取り込みデバイス１０２Ａ〜１０２Ｃのそれぞれの視野６１０Ａ〜６１０Ｃよりも、より広いおよびより狭い（すなわち、高さ方向に短い）。これは、たとえば、ビームスプレッド、チャネルの数等などのような、センサーの物理的なパラメーターに起因することがあり得る。ＬＩＤＡＲ１０４の視野６１４が、画像取り込みデバイス１０２Ａ〜１０２Ｃの視野６１０Ａ〜６１０Ｃのうちの１つまたは複数とは異なる例において、本明細書にて説明されるシステムは、上記の差を考慮するように構成されることがあり得る。
【００５５】
図７は、画像をセグメント化し、ＬＩＤＡＲセンサーデータを、セグメント化された画像上に投影して、センサーデータセグメンテーションネットワークのセンサーデータセグメンテーションモデルをトレーニングするトレーニングデータセットを作成するための例示的な処理の絵のフロー図７００である。図７に示すように、画像６０８（図６参照）を含む画像データ６０６は、たとえば、本明細書において説明されるような、たとえば、セグメント化された画像を入力画像から予測することがあり得るアルゴリズムおよび／または機械学習を介して、画像６０８を自動的にセグメント化して、セグメント化された画像７０４を生成するように構成される画像セグメンテーションネットワーク７０２に送信される。
【００５６】
図７に示すように、ＬＩＤＡＲセンサー６０２（図６参照）は、ＬＩＤＡＲセンサー６０２が存在する場面６０４を表すＬＩＤＡＲセンサーデータ６１２を生成する。７０６において、ＬＩＤＡＲセンサーデータ６１２は、セグメント化された画像７０４Ａ〜７０４Ｃ上に投影される。ＬＩＤＡＲセンサーデータ６１２は、ＬＩＤＡＲセンサーデータ６１２およびセグメント化された画像７０４Ａ〜７０４Ｃが、たとえば、図１に関して上に述べたように、（技術的な能力の範囲内で）実質的に時間的に整列させられるように、セグメント化された画像７０４Ａ〜７０４Ｃ上に投影される。加えて、ＬＩＤＡＲセンサーデータ６１２は、セグメント化された画像７０４Ａ〜７０４Ｃ上に投影されることがあり得り、それによって、場面６０４におけるオブジェクトに関連付けられたＬＩＤＡＲセンサーデータ６１２が、たとえば、図１に関して上に述べたように、（技術的な能力の範囲内で、）セグメント化された画像７０４Ａ〜７０４Ｃにおけるオブジェクトにより実質的に空間的に整列させられる。
【００５７】
図７において示されているように、ＬＩＤＡＲセンサーデータ６１２を、セグメント化された画像７０４Ａ〜７０４Ｃ上に投影することは、ＬＩＤＡＲセンサーによって生成されたＬＩＤＡＲセンサーデータを自動的にセグメント化するためのセンサーデータセグメンテーションネットワーク７１２のセンサーデータセグメンテーションモデル７１０をトレーニングするために使用されることがあり得るトレーニングデータセット７０８を作成する。たとえば、いったんトレーニングされると、そのようなセグメンテーションモデル７１０は、今後にＬＩＤＡＲセンサーを使用してオブジェクトをセグメント化するための入力として生のセンサーデータ（たとえば、ＬＩＤＡＲセンサーデータ６１２）を取ることがあり得る。いくつかの例においては、ＬＩＤＡＲセンサーによって取り込まれたセンサーデータは、センサーデータセグメンテーションネットワーク７１２のセンサーデータセグメンテーションモデル７１０をトレーニングするために、追加のトレーニングデータとして使用されることがあり得る。
【００５８】
センサーデータセグメンテーションネットワーク７１２は、本明細書において記述されている任意のタイプの機械学習モデルを含むことがあり得る。たとえば、センサーデータセグメンテーションネットワーク７１２は、ＣＮＮであることがあり得る。いくつかの例においては、センサーデータセグメンテーションネットワーク７１２は、複数の機械学習ネットワークを含むことがあり得る。本明細書において説明されているように、複数のタイプの機械学習が使用されて、使用されている機械学習のタイプの各々にそれぞれの結果を提供することがあり得る。いくつかの例において、信頼スコアは、結果の各々に関連付けられることがあり得り、信頼される結果は、結果に関連付けられた信頼スコアに少なくとも部分的に基づくことがあり得る。たとえば、最も高い信頼スコアに関連付けられている結果は、他の結果に優先して選択されることがあり得り、または結果は、信頼スコアに基づいて、たとえば、加重平均等などのような統計的な方法に基づいて、結合されることがあり得る。
【００５９】
いくつかの例（たとえば、ＣＮＮが使用される例）において、センサーデータセグメンテーションネットワーク７１２は、ストライドが非対称である（すなわち、長さ次元に沿ったカーネルアプリケーション（kernel application）の間におけるステップが、高さ次元におけるステップよりも高いことがあり得る）ような、やり方により、センサーデータ（たとえば、ＬＩＤＡＲセンサーデータ６１２）をセグメンテーションするために対称および／または非対称のカーネル（たとえば、二乗または非二乗であるカーネル）を含むことがあり得る。いくつかのそのような例においては、非対称ストライドを使用したカーネルの連続した適用は、レセプターフィールド（receptor field）を増大させるやり方でのデータのピラミッディングに帰着することがあり得る。そのようなストライドは、たとえば、制限しないが、チャネルの数、チャネル間の幅、回転あたりのデータリターンの数等のような、センサーデータの物理的なパラメーターに基づいて選択されることがあり得る。今述べたことは、上記のピラミッディングが、ネットワークの受容可能なフィールド（receptive field）を増大させて、それらの投影を行うときのデータおよびコンピューティングパワーの、より効率的な使用に帰着することがあり得るように、センサーデータ（たとえば、ＬＩＤＡＲセンサーデータ６１２）をセグメント化することを容易にすることがあり得る。
【００６０】
有効な出力を生成するために、機械学習ネットワークは、たとえば、ＣＮＮなどは、はじめにパラメーターのセットを学習しなければならない、または「トレーニングされ（trained）」なければならない。トレーニングは、データセットをネットワークへと入力することによって達成され、データセットが、期待される出力値に関連付けられる。これらの期待される出力値は一般に、「グラウンドトゥルース（ground truth）」ということがあり得る。たとえば、グラウンドトゥルースは、画像内の特定のオブジェクトの識別を、そのオブジェクトに関連付けられている（たとえば、オブジェクトを車または建物として識別およびラベル付けする）意味論的分類またはラベルも同様に、含むことがあり得る。ネットワークの精度は、トレーニングデータセットにおいて提供されるデータの量および／または精度に基づくことがあり得る。結果として、セグメント化されたセンサーデータを出力するようにネットワークをトレーニングするための適切なデータセットは、センサーデータが既知のまたは以前に決定されたセグメントを含むことになるだろう。いくつかの例において、トレーニングデータセットは、現実世界の場面を表す１つまたは複数のセンサーデータセットに相関する現実世界の場面を表す１つまたは複数のセグメント化された画像を含むことがあり得て、手作業によって、または、センサーデータセットにおけるオブジェクトをセグメント化する、検出する、分類する、および／もしくはラベル付けするように構成される１つもしくは複数のアルゴリズムを介して、注釈を付けられることがあり得る。制限でない例として、生のＬＩＤＡＲセンサーデータがネットワークに入力されることがあり得り、その出力が、以降で詳細に論じられているように、ＬＩＤＡＲデータの対応するセグメント化されたセット（すなわち、グラウンドトゥルース）と比較されて、内部パラメーターを更新することがあり得る。例として、そのようなグラウンドトゥルースは、対応する画像データによって提供された関連付けられたセグメンテーションを伴うＬＩＤＡＲデータであることがあり得る。いくつかの例においては、トレーニングデータセットは、注釈を付けられたオブジェクトを含む、またはコンピューターアルゴリズムによって注釈を付けられた、（たとえば、コンピューターによって生成された）合成のデータを含むことがあり得る。トレーニングは、オフラインデータおよび／またはオンラインデータを使用して行われることが可能である。
【００６１】
損失関数は、トレーニング中にネットワークの内部パラメーターを調整するために使用されることがあり得る。損失関数は、ネットワークによって出力されるデータセットおよび値に対して期待される出力（またはグラウンドトゥルース）の値の関数である。損失関数に含まれた情報は、内部パラメーターを調整するために逆伝搬としてネットワークを通じて送られ、それによって、ネットワークを調節して有効な出力を提供することがあり得る。ほかのすべてが等しいなら、ネットワークをトレーニングするために使用されるデータが多ければ多いほど、（たとえば、正確なセグメンテーションおよび／または分類を提供するときに）より信頼できるネットワークであることがあり得る。
【００６２】
ＬＩＤＡＲデータなどのセンサーデータをセグメント化するようにネットワークをトレーニングするために使用され得るそのような損失関数の一例は、ソフトマックス関数であるが、予想される、またはグラウンドトゥルースの、セグメント化されたデータを有する入力データの他のどんな関数でも考えられる。他の例示的な損失関数は、制限しないが、サポートベクターマシン（ＳＶＭ）損失、ヒンジ損失などを含む。
【００６３】
いくつかの例においては、センサーデータセグメンテーションネットワーク７１２に関するグラウンドトゥルースは、セグメント化された画像７０４によって提供されることがあり得る。いくつかの例において、画像は、画像セグメンテーションネットワーク７０２（たとえば、ＣＮＮ）を使用して自動的にセグメント化されて、セグメント化された画像７０４を取得することがあり得り、セグメント化された画像７０４に関連付けられているセンサーデータは、画像取り込みデバイスではないセンサーから取得されたセンサーデータを自動的にセグメント化するようにセンサーデータセグメンテーションネットワーク７１２のセンサーデータセグメンテーションモデル７１０をトレーニングするためのグラウンドトゥルースとして使用され得る。たとえば、セグメント化された画像７０４に関連付けられているＬＩＤＡＲセンサーデータ６１２は、ＬＩＤＡＲセンサーから取得されたＬＩＤＡＲセンサーデータに関するグラウンドトゥルースとして使用され得る。図７において概略的に示すように、画像データ６０６が取り込まれセグメント化される間に取得されたＬＩＤＡＲセンサーデータ６１２は、セグメント化された画像７０４上に投影されて、トレーニングデータセット７０８を取得することがあり得て、トレーニングデータセット７０８は、ＣＮＮ、または本明細書において説明されるどんなタイプのネットワークでもあり得るセンサーデータセグメンテーションネットワーク７１２が走らせるセンサーデータセグメンテーションモデル７１０をトレーニングするために使用されることがあり得る。上で説明されているように、生のセンサーデータは、ネットワークに入力されることがあり得る。次に、結果として生じる出力は、セグメント化された画像７０４によって提供されるような、関連付けられたセグメンテーション（たとえば、グラウンドトゥルース）を有するセンサーデータと比較されることがあり得る。そのような比較は、損失関数（またはコスト関数）によって決定されることがあり得て、ネットワークパラメータの変動を推進する。いくつかの例において、損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、ロジスティック回帰の損失などであることがあり得る。
【００６４】
いくつかの例においては、センサーデータセグメンテーションネットワーク７１２は、たとえば、入力データに含まれているオブジェクトに基づいて入力データをセグメント化することによって、オブジェクトセグメンテーションのためにトレーニングされることがあり得る。他のセグメンテーションタイプも考えられる。たとえば、センサーデータセグメンテーションネットワーク７１２は、「空きスペース（free space）」、または、たとえば、図５Ｂに示す空きスペースのセグメンテーションと同様、自律車両用の軌跡をプランニングするのに適した経路を提供するだろうセンサーデータにおけるエリアを識別するように、トレーニングされることがあり得る。そのような例において、セグメント化されたセンサーデータにおいて定義される空きスペースは、自律車両の操作のための軌跡を生成するために使用されることがあり得る。加えて、センサーデータセグメンテーションネットワーク７１２は、占められているスペース、または、自律車両の軌跡に適した経路を提供しないであろう、センサーによって包含されたエリアを見つけ出すように、トレーニングされることがあり得る。
【００６５】
図８は、センサーデータを取り込み、例示的なセンサーデータセグメンテーションネットワークを使用してセンサーデータをセグメント化して、自律車両に対して車両軌跡を生成するように構成された軌跡モジュールによる使用のためのセグメント化されたセンサーデータを生成するための例示的なプロセスの絵のフロー図８００を概略的に示している。示される例において、例示的な車両２０２は、道路８０４上の環境８０２を通過して自律的に進む。例示的なセンサー８０６は、環境８０２におけるオブジェクト８０８を検出するために、車両２０２上に取り付けられる。センサー８０６は、たとえば、画像取り込みデバイス、および／またはＬＩＤＡＲセンサーを含む、本明細書において記述されている他のセンサータイプなど、複数のセンサータイプを含むことがあり得る。センサー８０６は、環境８０２におけるオブジェクト８０８を感知し、オブジェクト８０８を示す信号という形においてセンサーデータ８１０を生成する。
【００６６】
いくつかの例においては、センサー８０６は、画像取り込みデバイスと、たとえば、ＬＩＤＡＲセンサーなど、画像取り込みデバイス以外の第２のセンサータイプとを含むことがあり得る。そのような例においては、１つまたは複数のＬＩＤＡＲセンサーは、ＬＩＤＡＲセンサーデータ８１０を生成するように構成されることがあり得る。ＬＩＤＡＲセンサーデータ８１０は、センサーデータセグメンテーションモデル８１４を使用してＬＩＤＡＲセンサーデータ８１０をセグメント化する（たとえば、ＬＩＤＡＲセンサーデータ８１０を自動的にセグメント化する）ように構成されるセンサーデータセグメンテーションネットワーク８１２に伝達されることがあり得る。ある例においては、センサーデータセグメンテーションモデル８１４は、１つまたは複数のＬＩＤＡＲセンサーによって感知されたオブジェクト８０８および／または空きスペースを識別および／または分類して、セグメント化されたセンサーデータ８１６（たとえば、セグメント化されたＬＩＤＡＲセンサーデータ）を提供するように構成されることがあり得る。セグメント化されたセンサーデータ８１６は、車両２０２が環境８０２を通過して進む際にたどるための車両軌道８２０を生成するように構成された軌道モジュール８１８に伝達されることがあり得る。
【００６７】
さまざまな実装においては、本明細書において示されているパラメーター値およびその他のデータは、１つまたは複数のデータストアに含まれることがあり得り、説明されない他の情報と結合されることがあり得り、またはより多くの、より少ない、もしくは別個のデータ構造へと別個に区分されることがあり得る。いくつかの実装においては、データストアは、１つのメモリに物理的に配置されることがあり得り、または２つ以上のメモリ間に分散されることがあり得る。
【００６８】
当業者は、例示的なアーキテクチャー３００（図３参照）が単に例示的であり、本開示の範囲を制限することを意図されないということを理解するだろう。特に、コンピューティングシステムおよびデバイスは、コンピューター、ネットワークデバイス、インターネットアプライアンス、タブレットコンピューター、ＰＤＡ、ワイヤレス電話、ページャーなどを含む、示される機能を実行することが可能であるハードウェアまたはソフトウェアのどんな組合せでも含むことがあり得る。さらに、アーキテクチャー３００は、例示されない他のデバイスに接続されることもあり得り、または代わりにスタンドアロンのシステムとして動作することがあり得る。加えて、例示されるコンポーネントによって提供される機能性は、いくつかの実装において、より少ないコンポーネントにおいて結合されること、または追加のコンポーネントに分散されることがあり得る。同様にして、いくつかの実装においては、示されているコンポーネントのうちのいくつかの機能性が提供されないことがあり得り、および／または他の追加の機能性が利用可能であり得る。
【００６９】
さらに、当業者は、さまざまなアイテムが、使用される間にメモリまたはストレージに格納されているとして示されているが、これらのアイテムまたはそれらの部分は、メモリ管理およびデータインテグリティーの目的のためにメモリと他のストレージデバイスとの間において転送されることがあり得ることも理解するだろう。代替として、他の実装において、ソフトウェアコンポーネントのうちのいくつかまたはすべては、別のデバイス上のメモリにおいて実行して、例示されるアーキテクチャー３００と通信することがあり得る。さらに、いくつかのまたはすべてのシステムコンポーネントまたはデータ構造は、非一時的な、コンピューターアクセス可能なメディア、または、適切なドライブによって読み取られる携帯物に（たとえば、命令または構造化されたデータとして）格納されることもあり得り、そのさまざまな例が、上に述べられる。いくつかの実装において、アーキテクチャー３００から分離したコンピューターアクセス可能なメディアに格納された命令は、伝送メディア、または、例えば、ワイヤレスリンクなどの通信メディアを介して伝達される電気信号、電磁信号、もしくはデジタル信号などの信号を介してアーキテクチャー３００に送信されることがあり得る。さまざまな実装は、前述の説明に従って実装される命令および／またはデータを受信する、送信する、またはコンピューターアクセス可能なメディア上に格納することをさらに含むことがあり得る。したがって、本明細書において記述されている技術は、他の制御システム構成とともに実施されることがあり得る。車両２０２（図２参照）のモジュールの動作に関する追加の情報は、以下に論じられる。
【００７０】
図９および図１０は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実装されることが可能である動作のシーケンスを表す、ロジカルフローグラフにおけるブロックの集まりとして例示される例示的なプロセスのフロー図である。ソフトウェアのコンテキストにおいては、ブロックは、１つまたは複数のコンピューター読み取り可能な記録媒体に格納されたコンピューター実行可能な命令を表し、１つまたは複数のプロセッサーによって実行されると、引用される動作を実行する。一般に、コンピューター実行可能な命令は、特定の機能を実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記述されている順序は、制限として解釈されることを意図せず、プロセスを実装するために、記述されているブロックをいくつでも、どんな順序でもおよび／または並列に組み合わされることが可能である。
【００７１】
図９は、セグメント化された画像およびセンサーデータを含む例示的なトレーニングデータセットを使用して例示的なセンサーデータセグメンテーションモデルをトレーニングするための例示的なプロセス９００のフロー図である。９０２において、例示的なプロセスは、環境を表す１つまたは複数の画像を受信することを含むことがあり得り、ここで、画像は、画像取り込みデバイスによって生成された画像データを含む。
【００７２】
９０４において、さらに、例示的なプロセス９００は、画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信することを含むこともあり得る。たとえば、画像は、たとえば、ＣＮＮなどのような機械学習ネットワークを使用して自動的にセグメント化されることがあり得る。本明細書において説明されているように、他のタイプの機械学習モデルまたはコンピュータービジョン技術による画像セグメンテーションが考えられる。
【００７３】
例示的なプロセス９００は、９０６において、画像データをセグメント化して、セグメント化された画像を生成することを含むことがあり得る。たとえば、画像は、ＣＮＮなどの機械学習ネットワークによって自動的にセグメント化されることがあり得る。たとえば、上記のセグメンテーションは、検出されたオブジェクトに基づいて、空きスペースの決定に基づいてなど、画像を分割することがあり得る。
【００７４】
９０８において、さらに、例示的なプロセス９００は、環境を表すデータを生成するように構成されたセンサーによって生成されたセンサーデータを受信することを含むこともあり得る。いくつかの例においては、センサーは、画像取り込みデバイス以外のタイプのセンサーであることがあり得る。たとえば、センサーは、ＬＩＤＡＲセンサーであることがあり得り、センサーデータは、ＬＩＤＡＲセンサーデータであることがあり得る。例えば、制限しないが、ＲＡＤＡＲ（複数可）、超音波トランスデューサー（複数可）等などの他のセンサータイプおよび上記のセンサーからのデータが、考えられる。
【００７５】
９１０において、さらに、例示的なプロセス９００は、センサーデータを、セグメント化された画像に関連付けて、トレーニングデータセット（たとえば、生のセンサーデータを含むセット、および対応するセグメンテーション情報を伴うセンサーデータの関連したセット）を作成することを含むこともあり得る。たとえば、センサーデータを、セグメント化された画像に関連付けることは、センサーデータを、セグメント化された画像上に投影することと、セグメント化された画像からのセグメンテーション情報をセンサーデータに関連付けることとを含むことがあり得る。いくつかの例においては、画像の各々は、それぞれの画像時間において取り込まれ、センサーデータは、センサー時間において取り込まれる。センサーデータを、セグメント化された画像に関連付けることは、画像時間とセンサー時間との間における差を最小化する、画像時間において取り込まれた画像データを選択し、センサーデータを、選択された画像に関連付けることを含むことがあり得る。いくつかの例において、センサーデータを、セグメント化された画像に関連付けることは、セグメント化された画像によりセンサーデータを整列させることを含むことがあり得る。いくつかの例において、セグメント化された画像によりセンサーデータを整列させることは、セグメント化された画像によりセンサーデータを時間的におよび／または空間的に整列させることを含むことがあり得る。いくつかの例において、センサーデータを、セグメント化された画像に関連付けることは、センサーデータを、セグメント化された画像に関連付けてトレーニングデータセットを作成するときに、大きな深度の不連続性に関連付けられた画像データを識別し、セグメント化された画像の上記の不連続性に関連付けられた画像データを無視することを含むこともあり得る。これは、トレーニングデータセットにおいてエラーを作成する可能性を減らすことができる。
【００７６】
さらに、９１２において、例示的なプロセス９００は、センサーデータセグメンテーションモデルを走らせる（すなわち、センサーデータセグメンテーションモデルを使用してセンサーデータセグメンテーションを決定する）ように構成された機械学習ネットワークにトレーニングデータセットを送信することを含むこともあり得る。
【００７７】
９１４において、さらに、例示的なプロセス９００は、センサーから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることを含むことがあり得る。たとえば、センサーによって生成されたセンサーデータを受信することは、ＬＩＤＡＲセンサーによって生成されたセンサーデータを受信することを含むことがあり得り、センサーデータセグメンテーションモデルをトレーニングすることは、ＬＩＤＡＲから取得されたセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用して（たとえば、セグメント化された画像データに関連付けられたセンサーデータおよびネットワークの出力の損失関数において算出されたエラーを逆伝搬することによって）センサーデータセグメンテーションモデルをトレーニングすることを含むことがあり得る。
【００７８】
図１０は、例示的なセンサーデータセグメンテーションモデルを使用してセンサーデータをセグメント化するための例示的なプロセス１０００のフロー図である。１００２において、例示的なプロセスは、センサーが配置される環境を示す信号を生成するように構成されたセンサーから、センサーデータを受信することを含むことがあり得る。たとえば、センサーは、画像取り込みデバイス以外のタイプのセンサーであることがあり得る。たとえば、センサーは、センサーが配置されている環境を表すＬＩＤＡＲセンサーデータを生成するように構成されているＬＩＤＡＲセンサーであることがあり得るが、他のどのセンサータイプでも考えられる。
【００７９】
１００４において、さらに、例示的なプロセス１０００は、たとえば、本明細書において説明されるセンサーデータセグメンテーションモデルなどのセンサーデータセグメンテーションモデルを使用して、センサーから受信されたセンサーデータをセグメント化することを含むこともあり得る。たとえば、センサーデータセグメンテーションモデルは、センサーによって検出された環境内のオブジェクトの識別および／または分類を容易にするように構成されることがあり得る。いくつかの例においては、センサーデータセグメンテーションモデルは、環境内の空きスペースの識別を容易にするように構成されることがあり得る。いくつかの例においては、センサーデータセグメンテーションモデルは、たとえば、本明細書において記述されているように、グラウンドトゥルースを提供するように、セグメント化された画像データを使用してトレーニングされることがあり得る。いくつかの例においては、センサーデータセグメンテーションモデルは、センサー、ならびに／または同じタイプおよび／もしくは別個のタイプの他のセンサーによって取り込まれた追加のデータによってトレーニングされることがあり得る。
【００８０】
１００６において、さらに、例示的なプロセス１０００は、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両に対して１つまたは複数の軌跡を生成することを含むこともあり得る。たとえば、認知システムの軌跡モジュールは、セグメント化されたセンサーデータを受信し、セグメント化されたセンサーデータに少なくとも部分的に基づいて、１つまたは複数の軌跡を生成するように構成されることがあり得る。
【００８１】
１００８において、さらに、例示的なプロセス１０００は、軌跡のうちの１つまたは複数に応じて、自律車両を動かすことを含むことがあり得る。
【００８２】
図１１は、本明細書において説明されるプロセスを実装するための例示的なコンピューターアーキテクチャー１１００のブロック図である。例示的なアーキテクチャー１１００は、ストレージ１１０４と、１つまたは複数のプロセッサー（複数可）１１０６と、オペレーティングシステム１１１０を含むメモリ１１０８とを含むことがあり得る１つまたは複数のコンピューターシステム１１０２を含む。ストレージ１１０４、プロセッサー（複数可）１１０６、メモリ１１０８、およびオペレーティングシステム１１１０は、通信インフラストラクチャー１１１２を介して通信可能に結合されることがあり得る。いくつかの例において、コンピューターシステム（複数可）１１０２は、入力／出力（Ｉ／Ｏ）デバイス（複数可）１１１４を介して、通信インフラストラクチャー１１１２を使って１つまたは複数のネットワーク１１１６を介した１つまたは複数の他のコンピューティングデバイスも同様に、ユーザーまたは環境と対話することがあり得る。オペレーティングシステム１１１０は、他のコンポーネントと対話して、メモリ１１０８において１つまたは複数のアプリケーション１１１８を制御することがあり得る。
【００８３】
いくつかの例においては、コンピューターシステム（複数可）１１０２は、図３のコンピューターシステム（複数可）３０２に対応することがあり得る。コンピューターシステム（複数可）３０２は、本明細書において論じられている画像分析および／またはセンサーデータ分析を行うモジュール３０４、３０６、３０８、３１０、３１２、および３１４を実装するために、どんなハードウェアおよび／またはソフトウェアでも実装することができる。
【００８４】
本明細書において記述されているシステムおよび方法は、ソフトウェアまたはハードウェアまたはそれらのどんな組合せでも実装されることがあり得る。本明細書において説明されるシステムおよび方法は、物理的にもしくは論理的に互いに分離することがあり得るまたはそうでないことがあり得る、１つまたは複数のコンピューティングデバイスを使用して、実装されることがあり得る。方法は、オンプレミスのハードウェアか、オンプレミスの仮想システムか、またはホステッドプライベートインスタンスかのいずれかとして、配列されるコンポーネントによって行われることがあり得る。加えて、本明細書において記述されている方法のさまざまな側面が結合または統合されて、他の機能にマージされることがあり得る。
【００８５】
特に、プロセッサーまたはコンピューターシステムは、本明細書において記述されている方法のうちのいくつかまたはすべてを行うように構成されることがあり得る。いくつかの例においては、方法は、１つまたは複数のコンピューターまたはプロセッサーによって部分的にまたは完全に自動化されることがあり得る。本明細書において記述されているシステムおよび方法（またはその任意の部分（複数可）もしくは機能（複数可））は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを使用して実装されることがあり得り、１つまたは複数のコンピューターシステムまたはその他の処理システムにおいて実装されることがあり得る。いくつかの例においては、例示されるシステム要素は、単一のハードウェアデバイスへと結合されるか、複数のハードウェアデバイスへと分割されるかがあり得る。複数のハードウェアデバイスが使用されるならば、ハードウェアデバイスは、互いに対して近接してまたは離れて物理的に配置されることがあり得る。記述されるおよび図示される方法の例は、例示的であり、制限することを意図されない。たとえば、方法のステップのうちのいくつかまたはすべては、別個の例において結合される、再配列される、および／または省略されることがあり得る。
【００８６】
いくつかの例においては、本明細書において記述されているシステムおよび方法は、本明細書において記述されている機能性を実行する性能がある１つまたは複数のコンピューターシステムに向けられることがあり得る。制限しないが、例示的なコンピューティングデバイスは、例えば、制限しないが、ＯＳ  Ｘ（商標）、ｉＯＳ（商標）、Ｌｉｎｕｘ（商標）、Ａｎｄｒｏｉｄ（商標）、およびＭｉｃｒｏｓｏｆｔ（商標）  Ｗｉｎｄｏｗｓ（商標）などのどんなオペレーティングシステムでも走らせるパーソナルコンピューター（ＰＣ）システムであることがあり得る。しかしながら、本明細書において記述されているシステムおよび方法は、今までに述べたプラットフォームに制限されないことがあり得る。代わりに、本明細書において説明されるシステムおよび方法は、適切な、どのオペレーティングシステムでも走らせる適切な、どのコンピューターシステムでも実装されることがあり得る。さらに、本明細書において記述されているシステムおよび方法の他のコンポーネント、例えば、制限しないが、コンピューティングデバイス、通信デバイス、モバイル電話、スマートフォン、テレフォニーデバイス、電話、ＰＤＡ（パーソナルデジタルアシスタント）、パーソナルコンピューター（ＰＣ）、ハンドヘルドＰＣ、インタラクティブテレビジョン（ｉＴＶ）、デジタルビデオレコーダー（ＤＶＤ）、クライアントワークステーション、シンクライアント、シッククライアント、プロキシサーバー、ネットワーク通信サーバー、リモートアクセスデバイス、クライアントコンピューター、サーバコンピューター、ルータ、ウェブサーバー、データ、メディア、オーディオ、ビデオ、テレフォニーまたはストリーミングテクノロジーサーバー等は、コンピューティングデバイスを使用して実装することがあり得る。サービスは、たとえば、制限しないが、インタラクティブテレビジョン（ｉＴＶ）、ビデオオンデマンドシステム（ＶＯＤ）を使用して、およびデジタルビデオレコーダー（ＤＶＲ）、または他のオンデマンド視聴システムを介して、オンデマンドにより提供されることがあり得る。
【００８７】
本明細書において記述されているシステムは、１つまたは複数のプロセッサーを含むことがあり得る。プロセッサー（複数可）は、例えば、制限しないが、通信バス、クロスオーバーバー、またはネットワーク等のような、通信インフラストラクチャーに接続されることがあり得る。プロセスおよびプロセッサーは、同じ物理的なロケーションに配置される必要はない。言い換えれば、プロセスは、たとえばＬＡＮまたはＷＡＮ接続を介して、１つまたは複数の地理的に遠隔のプロセッサーにおいて実行されることがあり得る。コンピューティングデバイスは、ディスプレイユニット上に表示するために、通信インフラストラクチャーからグラフィックス、テキスト、および他のデータを転送することがあり得るディスプレイインターフェイスを含むことがあり得る。
【００８８】
いくつかの例において、さらに、コンピューターシステムは、制限しないが、メインメモリ、ランダムアクセスメモリ（ＲＡＭ）、およびセカンダリーメモリなどを含むこともあり得る。セカンダリーメモリは、たとえば、ハードディスクドライブ、および／または例えば、コンパクトディスクドライブＣＤ−ＲＯＭなどのような取り外し可能なストレージドライブを含むことがあり得る。取り外し可能なストレージドライブは、取り外し可能なストレージユニットとの間で読み取りおよび／または書き込みを行うことがあり得る。理解されるように、取り外し可能なストレージユニットは、コンピューターソフトウェアおよび／またはデータを格納しているコンピューター使用可能なストレージメディアを含むことがあり得る。いくつかの例において、マシンアクセス可能な媒体（machine-accessible medium）は、コンピューターによりアクセス可能なデータを格納するために使用されるどんなストレージデバイスでもいうことがあり得る。マシンアクセス可能な媒体の例は、制限しないが、磁気ハードディスク、フロッピーディスク、少なくともコンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）もしくはデジタル多用途ディスク（ＤＶＤ）と同様の光ディスク、磁気テープ、および／またはメモリチップなどを含むことがあり得る。
【００８９】
さらに、プロセッサーは、データを格納するための１つまたは複数のデータストレージデバイスを含む、または１つまたは複数のデータストレージデバイスと通信するように動作可能に結合されることもあり得る。上記のデータストレージデバイスは、制限しない例として、磁気ディスク（内蔵ハードディスクおよび取り外し可能なディスクを含む）、光磁気ディスク、光ディスク、読み取り専用メモリ、ランダムアクセスメモリ、および／またはフラッシュストレージを含むことがあり得る。さらに、コンピュータープログラム命令およびデータを有形に具体化するのに適しているストレージデバイスは、たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイスと、例えば、内蔵ハードディスクおよび取り外し可能なディスクなどの磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭのディスクとを含むすべての形の不揮発性メモリを含むこともあり得る。プロセッサーおよびメモリは、ＡＳＩＣ（特定用途向け集積回路）により補完される、またはＡＳＩＣに組み入れることがあり得る。
【００９０】
処理システムは、コンピューター化されたデータストレージシステムと通信状態にあることがあり得る。データストレージシステムは、ＭｙＳＱＬ（商標）または他のリレーショナルデータベースなど、非リレーショナルまたはリレーショナルなデータストアを含むことがあり得る。他の物理的なおよび論理的なデータベースタイプが使用されることがあり得る。データストアは、リレーショナルであるかまたはそうでないかを問わず、例えば、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ（商標）、Ｏｒａｃｌｅ（商標）、ＩＢＭ  ＤＢ２（商標）、ＳＱＬＩＴＥ（商標）、または他のどんなデータベースソフトウェアでもなどのデータベースサーバーであることがあり得る。データストアは、構文タグを識別する情報、および構文タグ上で動作するのに必要などんな情報でも、格納することがあり得る。いくつかの例においては、処理システムは、オブジェクト指向プログラミングを使用することがあり得り、データをオブジェクトに格納することがあり得る。上記の例において、処理システムは、オブジェクトリレーショナルマッパー（ＯＲＭ）を使用して、データオブジェクトをリレーショナルデータベースに格納することがあり得る。本明細書において記述されているシステムおよび方法は、物理データモデルをいくつでも使用して実装されることがあり得る。いくつかの例においては、リレーショナルデータベース管理システム（ＲＤＢＭＳ）が使用されることがあり得る。上記の例において、ＲＤＢＭＳ内のテーブルは、座標を表す列を含むことがあり得る。データは、ＲＤＢＭＳ内のテーブルに格納されることがあり得る。テーブルは、それらの間において予め定義された関係を有することがあり得る。さらに、テーブルは、座標に関連付けられた付属を有することもあり得る。
【００９１】
いくつかの例においては、セカンダリーメモリは、コンピュータープログラムまたは他の命令を、コンピューターシステムにロードされることを可能にする他の類似のデバイスを含むことがあり得る。たとえば、上記のデバイスは、取り外し可能なストレージユニットおよびインターフェイスを含むことがあり得る。上記の例は、（たとえば、制限しないが、ビデオゲームデバイスにおいて見受けられるなどの）プログラムカートリッジおよびカートリッジインターフェイスと、（たとえば、制限しないが、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、またはプログラム可能読み取り専用メモリ（ＰＲＯＭ）および関連付けられているソケットなどのような）取り外し可能なメモリチップと、他の取り外し可能なストレージユニットと、ソフトウェアおよびデータを、取り外し可能なストレージユニットからコンピューターシステムに転送するのを可能にすることがあり得るインターフェイスと、を含むことがあり得る。
【００９２】
さらに、コンピューティングシステムは、例えば、制限しないが、例えばマイクロフォンなどの音声入力デバイス、タッチスクリーン、例えばカメラなどのジェスチャー認識デバイス、他のナチュラルユーザインターフェイス、マウスまたは例えばデジタイザーなどの他のポインティングデバイス、およびキーボード、または他のデータエントリーデバイスなど、入力デバイスを含むこともあり得る。さらに、コンピューターシステムは、例えば、制限しないが、ディスプレイおよびディスプレイインターフェイスなど、出力デバイスを含むこともあり得る。コンピューティングシステムは、例えば、制限しないが、通信インターフェイス、ケーブル、および通信経路等のような、入力／出力（Ｉ／Ｏ）デバイスを含むことがあり得る。今までに述べたデバイスは、制限しないが、ネットワークインターフェイスカードおよびモデムを含むことがあり得る。通信インターフェイス（複数可）は、ソフトウェアおよびデータを、コンピューターシステムと１つまたは複数の外部デバイスとの間において転送されることを可能にすることがあり得る。
【００９３】
いくつかの例においては、コンピューターシステムは、自動車システムに動作可能に結合されることがあり得る。そのような自動車システムは、手動で操作されるか、準自律的であるか、または完全に自律的であるかいずれかであり得る。上記の例においては、入力および出力デバイスは、１つまたは複数の画像取り込みデバイス、コントローラー、マイクロコントローラー、ならびに／または、例えば、制限しないが、加速、制動、および操舵などの自動車機能を制御するための他のプロセッサーを含むことがあり得る。さらに、上記の例における通信インフラストラクチャーは、コントローラエリアネットワーク（ＣＡＮ）バスを含むこともあり得る。
【００９４】
いくつかの例においては、コンピューターシステムは、どんなマシンビジョンベースのシステムにでも動作可能に結合されることがあり得る。たとえば、上記のマシンビジョンベースのシステムは、制限しないが、手動で操作される、準自律的な、または完全に自律的な、工業用または農業用のロボット、家庭用ロボット、検査システム、セキュリティーシステムなどを含むことがあり得る。たとえば、本明細書において記述されている例は、１つの特定のコンテキストに制限されず、マシンビジョンを利用するどんなアプリケーションにでも適用可能であることがあり得る。
【００９５】
いくつかの例は、１つまたは複数のコンピューターネットワークの環境において実施されることがあり得る。ネットワークは、プライベートネットワークもしくはパブリックネットワーク（たとえば、インターネット）、または両方の組合せを含むことがあり得る。ネットワークは、ハードウェア、ソフトウェア、または両方の組合せを含むことがあり得る。
【００９６】
テレコミュニケーション指向の観点から、ネットワークは、１つまたは複数のプロセス（ハードウェア、ソフトウェア、またはそれらの組合せ）が、各ノードにおいて機能する通信設備によって相互接続されるハードウェアノードのセットとして説明されることがあり得る。プロセスは、プロセス間の通信経路を使用して、それらの間における通信経路を介して互いに情報を相互通信し、やり取りすることがあり得る。これらの経路上では、適切な通信プロトコルが使用され得る。
【００９７】
例示的なコンピューターおよび／または遠隔通信ネットワーク環境は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せを含むことがあり得るノードを含むことがあり得る。ノードは、通信ネットワークを介して相互接続されることがあり得る。各ノードは、ノードに組み入れられるプロセッサーによって実行可能な１つまたは複数のプロセスを含むことがあり得る。たとえば、単一のプロセスは、複数のプロセッサーが走らせることがあり得り、または複数のプロセスは、単一のプロセッサーが走らせることがあり得る。加えて、ノードの各々は、ネットワークと外の世界との間におけるインターフェイスポイントを提供することあり得り、サブネットワークの集合を組み入れることがあり得る。
【００９８】
いくつかの例においては、プロセスは、どんな通信プロトコルを通じてでも通信をサポートするプロセス間の通信経路を通じて互いに通信することがあり得る。経路は、順にまたは並列に、継続的にまたは断続的に機能することがあり得る。経路は、多くのコンピューターによって使用される標準的な並列命令セットに加えて、通信ネットワークに関して本明細書において記述されている通信標準、プロトコル、またはテクノロジーのうちのいずれかを使用することがあり得る。
【００９９】
ノードは、処理機能を実行する性能があるどんなエンティティーでも含むことがあり得る。本明細書における例とともに使用されることがあり得る上記のノードの例は、コンピューター（例えば、パーソナルコンピューター、ワークステーション、サーバー、もしくはメインフレームなど）、ハンドヘルドワイヤレスデバイスおよび有線デバイス（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、処理能力を有するモデム携帯電話、制限しないが、ＢｌａｃｋＢｅｒｒｙ（商標）デバイスを含むワイヤレスＥメールデバイスなど）、ドキュメント処理デバイス（例えば、スキャナー、プリンター、ファクシミリマシン、もしくは多機能ドキュメントマシンなど）、または記述されているような、プロセッサーの集まりに接続された複合のエンティティー（例えば、ローカルエリアネットワークもしくはワイドエリアネットワークなど）を含むことがあり得る。たとえば、ノードそのものが、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、プライベートネットワーク（例えば、仮想プライベートネットワーク（ＶＰＮ）など）、またはネットワークの集まりであることがあり得る。
【０１００】
ノードの間における通信は、通信ネットワークによって可能にされることがあり得る。ノードは、通信ネットワークと継続的にまたは断続的に接続されることがあり得る。例として、通信ネットワークは、適切なバンド幅および情報セキュリティーを提供するデジタル通信インフラストラクチャーであることがあり得る。
【０１０１】
通信ネットワークは、標準、プロトコル、またはテクノロジーのどのタイプでも使用して、どんな周波数においてでも、有線通信能力、ワイヤレス通信能力、または両方の組合せを含むことがあり得る。加えて、いくつかの例においては、通信ネットワークは、プライベートネットワーク（たとえば、ＶＰＮ）またはパブリックネットワーク（たとえば、インターネット）であることがあり得る。
【０１０２】
通信ネットワークによって使用される例示的なワイヤレスプロトコルおよびテクノロジーの非網羅的なリストは、Ｂｌｕｅｔｏｏｔｈ（商標）、ジェネラルパケットラジオサービス（ＧＰＲＳ）、セルラーデジタルパケットデータ（ＣＤＰＤ）、モバイルソリューションプラットフォーム（ＭＳＰ）、マルチメディアメッセージング（ＭＭＳ）、ワイヤレスアプリケーションプロトコル（ＷＡＰ）、符号分割多元接続（ＣＤＭＡ）、ショートメッセージサービス（ＳＭＳ）、ワイヤレスマークアップ言語（ＷＭＬ）、ハンドヘルドデバイスマークアップ言語（ＨＤＭＬ）、ＢＲＥＷ（binary runtime environment for wireless）、無線アクセスネットワーク（ＲＡＮ）、およびパケット交換コアネットワーク（ＰＳ−ＣＮ）を含むことがあり得る。さらに、さまざまな世代のワイヤレステクノロジーも含まれる。通信ネットワークによって使用される主に有線のプロトコルおよびテクノロジーの例示的な非網羅的なリストは、非同期転送モード（ＡＴＭ）、拡張内部ゲートウェイルーティングプロトコル（ＥＩＧＲＰ）、フレームリレー（ＦＲ）、ハイレベルデータリンク制御（ＨＤＬＣ）、インターネット制御メッセージプロトコル（ＩＣＭＰ）、内部ゲートウェイルーティングプロトコル（ＩＧＲＰ）、インターネットワークパケット交換（ＩＰＸ）、ＩＳＤＮ、ＰＰＰ（point-to-point protocol）、ＴＣＰ／ＩＰ（transmission control protocol/internet protocol）、ルーティング情報プロトコル（ＲＩＰ）、およびユーザデータグラムプロトコル（ＵＤＰ）を含む。他の知られているまたは予想されるどんなワイヤレスまたは有線のプロトコルおよびテクノロジーでも使用されることがあり得る。
【０１０３】
本明細書において開示されている例は、本明細書において記述されている動作を実行するための装置を含むことがあり得る。装置は、望まれる目的のために特別に構築されることがあり得り、またはそれは、デバイスに格納されるプログラムによって選択的にアクティベートされるもしくは再構成される汎用デバイスを含むことがあり得る。
【０１０４】
いくつかの例は、マシン実行可能な命令において具体化されることがあり得る。命令は、処理デバイス、たとえば、命令によりプログラムされる汎用または専用のプロセッサーに、本明細書において説明される処理のステップを実行させるために使用されることがあり得る。あるいは、本明細書において記述されているステップは、ステップを実行するためのハードワイヤードのロジックを含む特定のハードウェアコンポーネントによって、またはプログラムされたコンピューターコンポーネントおよびカスタムハードウェアコンポーネントのどんな組合せでも行われることがあり得る。たとえば、本明細書において記述されているシステムおよびプロセスは、上で概説されているようなコンピュータープログラム製品として提供されることがあり得る。いくつかの例は、その上に命令が格納されているマシン読み取り可能なメディアを含むことがあり得る。命令は、本明細書において説明される例によるプロセスまたは方法を実行するように、１つまたは複数のどんなプロセッサー（またはその他の電子デバイス）でもプログラムするのに使用されることがあり得る。加えて、いくつかの例は、コンピュータープログラム製品上にダウンロードされて格納されることがあり得る。上記の例においては、プログラムは、通信リンク（たとえば、モデムまたはネットワーク接続）を介して、搬送波または他の伝搬メディアにおいて具体化されるデータ信号を経由してリモートコンピューター（たとえば、サーバー）から要求側コンピューター（たとえば、クライアント）へ転送されることがあり得り、最終的には、上記の信号は、後続の実行のためにコンピューターシステム上に格納されることがあり得る。
【０１０５】
プロセスは、コンピューターまたは任意の命令実行システムによって、またはそれらに関連して使用するためのプログラムコードを提供するコンピューター使用可能なまたはコンピューター読み取り可能なストレージメディアからアクセス可能なコンピュータープログラム製品において実装されることがあり得る。コンピューター使用可能な、またはコンピューター読み取り可能なストレージメディアは、コンピューターまたは命令実行システム、装置、もしくはデバイスによって、またはそれらに関連して使用するためのプログラムを含むことまたは格納することができるどんな装置でもあり得る。
【０１０６】
対応するプログラムコードを格納するおよび／または実行するのに適しているデータ処理システムは、例えば、メモリ要素などのコンピューター化されたデータストレージデバイスに、直接的にまたは間接的に結合されている少なくとも１つのプロセッサーを含むことがあり得る。制限しないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む入力／出力（Ｉ／Ｏ）デバイスは、システムに結合されることがあり得る。さらに、ネットワークアダプタをシステムに結合して、データ処理システムが、介在するプライベートまたはパブリックネットワークを通じて他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに結合されるようになることを可能にすることもあり得る。ユーザーとの対話を提供するために、特徴は、例えば、ＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）、または情報をユーザーに表示するための別のタイプのモニターなどのディスプレイデバイスと、キーボードおよび例えば、ユーザーがーコンピューターに入力を提供することがあり得るマウスまたはトラックボールなどの入力デバイスとを有するコンピューター上に、実装されることがあり得る。
【０１０７】
コンピュータープログラムは、コンピューターにおいて直接または間接的に使用されることがあり得る命令のセットであることがあり得る。  本明細書において記述されているシステムおよび方法は、たとえば、ＣＵＤＡ、ＯｐｅｎＣＬ、Ｆｌａｓｈ（商標）、ＪＡＶＡ（商標）、Ｃ＋＋、Ｃ、Ｃ＃、Ｐｙｔｈｏｎ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（商標）、ＪａｖａＳｃｒｉｐｔ（商標）ＰＨＰ、ＸＭＬ、ＨＴＭＬ等などのようなプログラミング言語、またはコンパイラ型もしくはインタープリタ型言語を含むプログラミング言語の組合せを使用して実装されることがあり得り、スタンドアロンのプログラムとして、またはコンピューティング環境において使用するのに適しているモジュール、コンポーネント、サブルーチン、もしくはその他のユニットとしてなど、どんな形においてでも展開されることがあり得る。ソフトウェアは、制限しないが、ファームウェア、常駐のソフトウェア、マイクロコードなどを含むことがあり得る。例えば、ＳＯＡＰ／ＨＴＴＰなどのプロトコルは、プログラミングモジュール間のインターフェイスを実装するときに使用されることがあり得る。本明細書において記述されているコンポーネントおよび機能性は、制限しないが、さまざまなバージョンのＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）、Ａｐｐｌｅ（商標）  Ｍａｃ（商標）、ｉＯＳ（商標）、Ｕｎｉｘ（商標）／Ｘ−Ｗｉｎｄｏｗｓ（商標）、Ｌｉｎｕｘ（商標）などを含むソフトウェア開発に適しているどんなプログラミング言語でも使用して、仮想化されたまたは仮想化されていない環境において実行するどんなデスクトップオペレーティングシステム上にでも実装されることがあり得る。システムは、例えば、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓなどのウェブアプリケーションフレームワークを使用して実装されることがあり得る。
【０１０８】
命令のプログラムの実行に適したプロセッサーは、制限しないが、どんな種類のコンピューターについてでも、汎用および専用のマイクロプロセッサー、および単独のプロセッサーまたは複数のプロセッサーもしくはコアのうちの１つを含む。プロセッサーは、例えば、読み取り専用メモリ、ランダムアクセスメモリ、両方、または、本明細書において記述されているデータストレージデバイスの任意の組合せなど、コンピューター化されたデータストレージデバイスから命令およびデータを受信して格納することがあり得る。プロセッサーは、電子デバイスの動作およびパフォーマンスを制御するように動作する任意の処理回路または制御回路を含むことがあり得る。
【０１０９】
本明細書において記述されているシステム、モジュール、および方法は、ソフトウェアまたはハードウェアの要素の任意の組合せを使用して実装されることがあり得る。本明細書において記述されているシステム、モジュール、および方法は、単独において、または他のひとつとの組合せにおいて動作する１つまたは複数の仮想マシンを使用して実装されることがあり得る。任意の適用可能な仮想化ソリューションは、物理コンピューティングマシンプラットフォームを、ハードウェアコンピューティングプラットフォームまたはホスト上に走らせる仮想化ソフトウェアの制御の下に実行される仮想マシンへとカプセル化するために、使用されることがあり得る。仮想マシンは、仮想システムハードウェアおよびゲストオペレーティングシステムソフトウェアの両方を有することがあり得る。
【０１１０】
本明細書において記述されているシステムおよび方法は、例えば、データサーバーなどのバックエンドコンポーネントを含む、または例えば、アプリケーションサーバーもしくはインターネットサーバーなどのミドルウェアコンポーネントを含む、または例えば、グラフィカルユーザインターフェイスもしくはインターネットブラウザを有するクライアントコンピューターなどのフロントエンドコンポーネント、またはそれらの任意の組合せを含むコンピューターシステムにおいて実装されることがあり得る。システムのコンポーネントは、例えば、通信ネットワークなど、デジタルデータ通信のどの形またはメディアによっても接続されることがあり得る。通信ネットワークの例は、たとえば、ＬＡＮ、ＷＡＮ、ならびに、インターネットを形成しているコンピューターおよびネットワークを含む。
【０１１１】
本開示の１つまたは複数の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピューター、メインフレームコンピューターなどを含む他のコンピューターシステム構成とともに実施されることがあり得る。さらに、本明細書において説明されるシステムおよび方法は、ネットワークを通じてリンクされるリモート処理デバイスによってタスクが行われる分散コンピューティング環境において実施されることもあり得る。
【０１１２】
本明細書において提示される主題は、コンピュータープロセス、コンピューター制御の装置、コンピューティングシステム、または例えば、コンピューター読み取り可能な記録媒体などの製品として実装されることがあり得ることを理解すべきである。 本明細書において記述されている主題が、１つまたは複数のコンピューティングデバイス上で実行するプログラムモジュールの一般的なコンテキストにおいて提示される一方、当業者は、他の実装が、他のタイプのプログラムモジュールと組み合わせて行われることがあり得ることを認めるであろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行するまたは特定の抽象データ型を実装する他のタイプの構造を含む。
【０１１３】
さらに、当業者は、本明細書において記述されている主題の側面が、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピューター、メインフレームコンピューター、ハンドヘルドコンピューター、モバイル電話デバイス、タブレットコンピューティングデバイス、専用ハードウェアデバイス、ネットワークアプライアンスなどを含む、本明細書において記述されているもの以外の他のコンピューターシステム構成上で、または他のコンピューターシステム構成とともに実施されることがあり得るということも理解するであろう。
【０１１４】
前述に基づいて、システムを動作させるおよびプロセスを実装するためのテクノロジーが本明細書において提示されたということを理解すべきである。さらにその上、本明細書において提示されている主題が、コンピューターの構造的な特徴、方法論的な行為、およびコンピューター読み取り可能なメディアに特有の言葉において説明されたが、添付の特許請求の範囲において定義される発明は、本明細書において説明される特定の特徴、行為、またはメディアに必ずしも制限されないということは、理解されることである。むしろ、それらの特定の特徴、行為、およびメディアは、特許請求の範囲において引用される主題を実装することの例示的な形として開示される。
【０１１５】
上の主題は、例示のみとして提供され、制限するとして解釈されるべきではない。さらにその上、特許請求される主題は、本開示のいずれかの部分において言及されるありとあらゆる不利な点を解決する実装に制限されない。種々の修正および変更は、例示されるおよび説明される例および適用に従うことなく、次の特許請求の範囲において示される本発明の精神および範囲から逸脱することなく、本明細書において説明される主題に対して行われることがあり得る。
【０１１６】
例示的な条項
Ａ．１つまたは複数のプロセッサーと、
１つまたは複数のプロセッサーに通信可能に結合され、１つまたは複数のプロセッサーによって、
環境を表す複数の画像を受信し、複数の画像は、１つまたは複数の画像取り込みデバイスによって生成された画像データを含み、
複数の画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信し、
環境に関連付けられた第１のセンサーデータを受信し、第１のセンサーデータは、ＬＩＤＡＲ（light detection and ranging）センサーから受信され、
セグメント化された画像に第１のセンサーデータを関連付けて、トレーニングデータセットを作成し、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信し、
センサーデータセグメンテーションモデルが、ＬＩＤＡＲセンサーから受信された第２のセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングする
実行可能な命令を格納する１つまたは複数のコンピューター読み取り可能な記録媒体と
を含んだ例示的なシステム。
【０１１７】
Ｂ．命令は、１つまたは複数のプロセッサーによって、
セグメント化された画像のうちの第１のセグメント化された画像上に第１のセンサーデータの少なくとも第１の部分を投影し、
セグメント化された画像のうちの第２のセグメント化された画像上に第１のセンサーデータの少なくとも第２の部分を投影する
ようにさらに実行可能である例Ａのシステム。
【０１１８】
Ｃ．複数の画像のうちの第１の画像が、第１の画像時間において取り込まれ、
複数の画像のうちの第２の画像が、第２の画像時間において取り込まれ、
第１のセンサーデータの第１の部分が、第１のセンサー時間に関連付けられ、
第１のセンサーデータの第２の部分が、第２のセンサー時間に関連付けられ、
命令は、１つまたは複数のプロセッサーによって、
第１の画像時間と第１のセンサー時間との間における第１の時間差を決定し、
第２の画像時間と第１のセンサー時間との間における第２の時間差を決定し、
第１の時間差が第２の時間差未満であると決定し、
第１の時間差が第２の時間差未満であることに少なくとも部分的に基づいて、第１のセンサーデータの第１の部分に第１の画像を関連付ける
ようにさらに実行可能である例Ａまたは例Ｂのシステム。
Ｄ．命令は、１つまたは複数のプロセッサーによって、第１のセンサーから第２のセンサーデータを受信し、トレーニングされたセンサーデータセグメンテーションモデルに少なくとも部分的に基づいて第２のセンサーデータをセグメント化するようにさらに実行可能である例Ａから例Ｃのいずれか１つのシステム。
【０１１９】
Ｅ．センサーデータセグメンテーションモデルは、１つまたは複数のカーネルを含み、１つまたは複数のカーネルは、非対称ストライドに関連付けられ、
センサーデータセグメンテーションモデルをトレーニングすることは、損失関数を算出することを含み、損失関数は、センサーデータセグメンテーションモデルの出力およびトレーニングデータセットに少なくとも部分的に基づき、損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、またはロジスティック回帰の損失のうちの１つまたは複数を含む例Ａから例Ｄのいずれか１つのシステム。
【０１２０】
Ｆ．命令は、１つまたは複数のプロセッサーによって、
センサーデータにおいて不連続性を識別し、
不連続性に関連付けられたセンサーデータを削除する
ようにさらに実行可能である例Ａから例Ｅのいずれか１つのシステム。
【０１２１】
Ｇ．命令は、１つまたは複数のプロセッサーによって
ＬＩＤＡＲセンサーからセンサーデータを受信し、
センサーデータセグメンテーションモデルを使用して、ＬＩＤＡＲセンサーから受信されたセンサーデータをセグメント化し、セグメント化されたセンサーデータを生成する
ようにさらに実行可能である例Ａから例Ｆのいずれか１つのシステム。
【０１２２】
Ｈ．命令は、１つまたは複数のプロセッサーによって、セグメント化されたセンサーデータに少なくとも部分的に基づいて、自律車両に対して軌跡を生成するようにさらに実行可能である例Ａから例Ｇのいずれか１つのシステム。
【０１２３】
Ｉ．環境を表す複数の画像を受信することと、複数の画像が、画像取り込みデバイスによって生成された画像データを含み、
複数の画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信することと、
第１のセンサーによって生成された第１のセンサーデータを受信することと、第１のセンサーデータが、環境を表すデータを含み、
画像データをセグメント化して、セグメント化された画像を生成することと、
セグメント化された画像に第１のセンサーデータを関連付けて、トレーニングデータセットを作成することと、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信することと、
第１のセンサーから取得された第２のセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることと
を含む例示的な方法。
【０１２４】
Ｊ．第１のセンサーによって生成された第１のセンサーデータを受信することは、ＬＩＤＡＲ（light detection and ranging）センサーによって生成されたセンサーデータを受信することを含み、センサーデータセグメンテーションモデルをトレーニングすることは、ＬＩＤＡＲセンサーから取得された第２のセンサーデータをセグメント化するようにセンサーデータセグメンテーションモデルが構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることを含む例Ｉの方法。
【０１２５】
Ｋ．セグメント化された画像のうちの第１のセグメント化された画像上に第１のセンサーデータの少なくとも第１の部分を投影することをさらに含む例Ｉまたは例Ｊの方法。
【０１２６】
Ｌ．複数の画像のうちの第１の画像が、第１の画像時間において取り込まれ、
複数の画像のうちの第２の画像が、第２の画像時間において取り込まれ、
第１のセンサーデータの第１の部分が、第１のセンサー時間に関連付けられ、
第１のセンサーデータの第２の部分が、第２のセンサー時間に関連付けられ、
方法は
第１の画像時間と第１のセンサー時間との間における第１の時間差を決定することと、
第２の画像時間と第１のセンサー時間との間における第２の時間差を決定することと、
第１の時間差が第２の時間差未満であると決定することと、
第１の時間差が第２の時間差未満であることに少なくとも部分的に基づいて、第１のセンサーデータの第１の部分に第１の画像を関連付けることと
をさらに含む例Ｉから例Ｋのいずれか１つの方法。
【０１２７】
Ｍ．第１のセンサーから第２のセンサーデータを受信し、トレーニングされたセンサーデータセグメンテーションモデルに少なくとも部分的に基づいて、第２のセンサーデータをセグメント化することをさらに含む例Ｉから例Ｌのいずれか１つの方法。
【０１２８】
Ｎ．センサーデータセグメンテーションモデルは、１つまたは複数のカーネルを含み、１つまたは複数のカーネルは、非対称ストライドに関連付けられ、
センサーデータセグメンテーションモデルをトレーニングすることは、損失関数を算出することを含み、損失関数は、センサーデータセグメンテーションモデルの出力およびトレーニングデータセットに少なくとも部分的に基づき、損失関数は、クロスエントロピーのソフトマックスの損失、焦点の損失、またはロジスティック回帰の損失のうちの１つまたは複数を含む例Ｉから例Ｍのいずれか１つの方法。
【０１２９】
Ｏ．第１のセンサーデータにおける不連続性を識別することと、
不連続性に関連付けられた第１のセンサーデータを削除することと
をさらに含む例Ｉから例Ｎのいずれか１つの方法。
【０１３０】
Ｐ．センサーから第２のセンサーデータを受信することと、
センサーデータセグメンテーションモデルを使用して、センサーから受信された第２のセンサーデータをセグメント化することと
をさらに含む例Ｉから例Ｏのいずれか１つの方法。
【０１３１】
Ｑ．セグメント化された第２のセンサーデータに少なくとも部分的に基づいて、自律車両に対して軌跡を生成することをさらに含む例Ｉから例Ｐのいずれか１つの方法。
【０１３２】
Ｒ．コンピューターにより実行されると、コンピューターに、
環境を表す複数の画像を受信し、複数の画像は、画像取り込みデバイスによって生成された画像データを含み、
画像をセグメント化し、セグメント化された画像を生成するように構成された画像セグメンテーションネットワークに画像データを送信し、
第１のセンサーによって生成された第１のセンサーデータを受信し、第１のセンサーデータは、環境を表すデータを含み、
画像をセグメント化して、セグメント化された画像を生成し、
セグメント化された画像に第１のセンサーデータを関連付けて、トレーニングデータセットを作成し、
センサーデータセグメンテーションモデルを走らせるように構成された機械学習ネットワークにトレーニングデータセットを送信し、
センサーデータセグメンテーションモデルが、センサーから取得された第２のセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングする
ようにさせるコンピューター実行可能な命令を格納して有する例示的なコンピューター読み取り可能な記録媒体
Ｓ．第１のセンサーデータは、ＬＩＤＡＲ（light detection and ranging）センサーによって生成され、センサーデータセグメンテーションモデルをトレーニングすることは、センサーデータセグメンテーションモデルが、ＬＩＤＡＲセンサーから取得された第２のセンサーデータをセグメント化するように構成されるような、トレーニングデータセットを使用してセンサーデータセグメンテーションモデルをトレーニングすることを含む例Ｒのコンピューター読み取り可能な記録媒体。
【０１３３】
Ｔ．複数の画像のうちの第１の画像が、第１の画像時間において取り込まれ、
複数の画像のうちの第２の画像が、第２の画像時間において取り込まれ、
第１のセンサーデータの第１の部分が、第１のセンサー時間に関連付けられ、
第１のセンサーデータの第２の部分が、第２のセンサー時間に関連付けられ、
コンピューター実行可能な命令は、コンピューターに、
第１の画像時間と第１のセンサー時間との間における第１の時間差を決定し、
第２の画像時間と第１のセンサー時間との間における第２の時間差を決定し、
第１の時間差が第２の時間差未満であると決定し、
第１の時間差が第２の時間差未満であることに少なくとも部分的に基づいて、第１の画像を第１のセンサーデータの第１の部分に関連付ける
ようにさせる例Ｒまたは例Ｓのコンピューター読み取り可能な記録媒体。
【図１】
2021504796.tif 000003
【図２】
2021504796.tif 000004
【図３】
2021504796.tif 000005
【図４Ａ】
2021504796.tif 000006
【図４Ｂ】
2021504796.tif 000007
【図５Ａ】
2021504796.tif 000008
【図５Ｂ】
2021504796.tif 000009
【図６】
2021504796.tif 000010
【図７】
2021504796.tif 000011
【図８】
2021504796.tif 000012
【図９】
2021504796.tif 000013
【図１０】
2021504796.tif 000014
【図１１】
2021504796.tif 000015
【国際調査報告】
2021504796.tif 000016
2021504796.tif 000017
2021504796.tif 000018
2021504796.tif 000019
2021504796.tif 000020