(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-20
(45)【発行日】2024-06-28
(54)【発明の名称】ボクセルベースのグランド平面推定及びオブジェクト区分化
(51)【国際特許分類】
G06T 7/136 20170101AFI20240621BHJP
G06T 7/64 20170101ALI20240621BHJP
G06T 7/00 20170101ALI20240621BHJP
G05D 1/43 20240101ALI20240621BHJP
【FI】
G06T7/136
G06T7/64
G06T7/00 650A
G05D1/43
(21)【出願番号】P 2022209911
(22)【出願日】2022-12-27
(62)【分割の表示】P 2019567592の分割
【原出願日】2018-06-07
【審査請求日】2023-01-19
(32)【優先日】2017-06-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】バートランド ロバート ドゥイヤール
(72)【発明者】
【氏名】スブハシス ダス
(72)【発明者】
【氏名】ズン ワン
(72)【発明者】
【氏名】ドラゴミール ディミトロフ アンゲロフ
(72)【発明者】
【氏名】ジェシー ソル レヴィンソン
【審査官】高野 美帆子
(56)【参考文献】
【文献】欧州特許出願公開第03078935(EP,A1)
【文献】特開2017-045148(JP,A)
【文献】Matti Lehtomaeki et al.,Object Classification and Recognition From Mobile Laser Scanning Point Clouds in a Road Environment,IEEE Transactions on Geoscience and Remote Sensing,IEEE,2015年10月02日,Vol.54, No.2,pp.1226-1239,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7287763
【文献】Asma Azim et al.,Detection, Classification and Tracking of Moving Objects in a 3D Environment,2012 IEEE Intelligent Vehicles Symposium,IEEE,2012年06月03日,pp.802-807,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6232303
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/136
G06T 7/64
G06T 7/00
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
システムであって、
1つ以上のプロセッサと、
実行されたときに、前記システムに、
環境を表すLIDARデータセットを受信するステップと、
ボクセル空間に前記LIDARデータセットを関連付けるステップであって、前記ボクセル空間は、ボクセルを含む、ステップと、
前記ボクセルに関連付けられた前記LIDARデータセットのLIDARデータに基づいて統計データを決定するステップと、
前記ボクセル空間の前記ボクセルに対し、前記ボクセルによって表される
統計データと関連付けられた法線ベクトルを決定するステップと、
自律車両の方位に少なくとも部分的に基づいて基準方位を決定するステップと、
前記法線ベクトルと前記基準方位との間の角度が閾値より小さいと決定するステップと、
前記ボクセルに関連付けられた前記法線ベクトル
と、前記角度が前記閾値より小さいこととに少なくとも部分的に基づいて、前記ボクセルがグランドボクセルであると決定するステップと、
グランドボクセルのセットを含むグランドクラスタを決定するステップであって、
前記グランドクラスタは、前記自律車両が運転可能な面を表し、前記グランドボクセルのセットは、前記グランドボクセルを含む、ステップと、
を含む動作を実行させるコンピュータ実行可能命令を記憶する1つ以上の非一時的なコンピュータ可読媒体と、
を備える、システム。
【請求項2】
前記動作は、
前記ボクセル空間のサブセットを識別するように前記グランドクラスタと関連付けられたボクセルのセットを前記ボクセル空間から抽出するステップと、
ボクセルのクラスタを決定するように前記ボクセルのセットをクラスタ化するステップであって、前記ボクセルのセットのうちの第1のボクセルは、前記ボクセルのセットのうちの少なくとも1つの第2のボクセルに隣接している、ステップと、
前記ボクセルのクラスタに関連付けられたボクセルの数
が、ボクセルの閾値数より小さいとき、前記ボクセルのクラスタに対応するオブジェクトを除去するステップと
、
をさらに含む、
請求項1に記載のシステム。
【請求項3】
前記動作は、
第1のグランドボクセルの第1のクラスタを決定するステップと、
第2のグランドボクセルの第2のクラスタを決定するステップと、
前記第1のクラスタと前記第2のクラスタとの間の勾配を決定するステップと、
前記勾配が勾配閾値より小さいと決定するステップと、
前記勾配が前記勾配閾値より小さいことに少なくとも部分的に基づいて、前記グランドクラスタとして、前記第1のクラスタと前記第2のクラスタとを決定するステップと、
をさらに含む、
請求項1に記載のシステム。
【請求項4】
前記動作は、
前記グランドクラスタに少なくとも部分的に基づいて、前記自律車両のための軌道を生成するステップと、
前記軌道に少なくとも部分的に基づいて、前記自律車両を制御するステップと、
をさらに含む、
請求項1に記載のシステム。
【請求項5】
前記動作は、
前記ボクセル空間において表される動的オブジェクトを決定するように経時的にボクセルの占有を決定するステップをさらに含み、
前記軌道を生成するステップは、さらに、前記動的オブジェクトに少なくとも部分的に基づく、
請求項
4に記載のシステム。
【請求項6】
環境を表すセンサデータを受信するステップと、
ボクセル空間に前記センサデータを関連付けるステップであって、前記ボクセル空間は、ボクセルを含む、ステップと、
前記ボクセルに関連付けられた前記センサデータのサブセットに基づいて統計データを決定するステップと、
前記ボクセル空間の前記ボクセルに対し、前記ボクセルによって表される
前記統計データと関連付けられた法線ベクトルを決定するステップと、
車両の方位に少なくとも部分的に基づいて基準方位を決定するステップと、
前記法線ベクトルと前記基準方位との間の角度が閾値より小さいと決定するステップと、
前記ボクセルに関連付けられた前記法線ベクトル
と、前記角度が前記閾値より小さいこととに少なくとも部分的に基づいて、前記ボクセルがグランドボクセルであると決定するステップと、
グランドボクセルのセットを含むグランドクラスタを決定するステップであって、
前記グランドクラスタは、前記車両が運転可能な面を表し、前記グランドボクセルのセットは、前記グランドボクセルを含む、ステップと、
を含む、方法。
【請求項7】
前記グランドクラスタに少なくとも部分的に基づいて、前記車両のための軌道を生成するステップ
をさらに含む、
請求項
6に記載の方法。
【請求項8】
前記グランドボクセルは、第1のグランドボクセルであり、前記グランドクラスタを決定するステップは、
前記第1のグランドボクセルをシードボクセルとして選択するステップと、
前記シードボクセルに隣接している第2のグランドボクセルを決定するステップと、
前記シードボクセルと前記第2のグランドボクセルとを前記グランドクラスタに関連付けるステップと、
を含む、
請求項
6に記載の方法。
【請求項9】
前記ボクセル空間のサブセットを識別するように、前記ボクセル空間から、前記グランドクラスタに関連付けられたボクセルのセットを決定するステップと、
第1のオブジェクトを決定するように前記ボクセルのセットのうちの、ボクセルの第1のグループをクラスタ化するステップであって、前記第1のグループのうちの第1のボクセルは、前記第1のグループのうちの第2のボクセルに隣接している、ステップと、
第2のオブジェクトを決定するように前記ボクセルのセットのうちの、ボクセルの第2のグループをクラスタ化するステップであって、前記第2のグループのうちの第3のボクセルは、前記第2のグループのうちの第4のボクセルと隣接している、ステップと、
をさらに含み、
第1のグループのうちの個々の第1のボクセルは、前記第2のグループのうちの個々の第2のボクセルとは隣接していない、
請求項
6に記載の方法。
【請求項10】
第1のグランドボクセルの第1のクラスタを決定するステップと、
第2のグランドボクセルの第2のクラスタを決定するステップと、
前記第1のクラスタと前記第2のクラスタとの間の勾配を決定するステップと、
前記勾配が勾配閾値より小さいと決定するステップと、
前記勾配が前記勾配閾値より小さいことに少なくとも部分的に基づいて、前記グランドクラスタを表すために前記第1のクラスタを前記第2のクラスタに結合するステップと、
をさらに含む、
請求項
6に記載の方法。
【請求項11】
前記ボクセル空間において表される動的オブジェクトを決定するように経時的にボクセルの占有を決定するステップと、
前記ボクセル空間において表される前記動的オブジェクトに少なくとも部分的に基づいて、車両のための軌道を生成するステップと
をさらに含む、
請求項
6に記載の方法。
【請求項12】
プロセッサによって実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、実行されるとき、前記プロセッサに、
環境を表すセンサデータを受信するステップと、
複数のボクセルとして区分化された三次元空間に前記センサデータを関連付けるステップと、
前記ボクセルに関連付けられた前記センサデータのサブセットに基づいて統計データを決定するステップと、
前記複数のボクセルのうちのボクセルについて、前記ボクセルに関連付けられた前記
統計データに関連付けられた面法線を決定するステップと、
基準方位を決定するステップであって、前記基準方位は、車両の方位に対応する、ステップと、
前記面法線と前記基準方位との間の角度が閾値より小さいと決定するステップと、
前記ボクセルに関連付けられた前記面法線
と、前記角度が前記閾値より小さいこととに少なくとも部分的に基づいて、前記ボクセルがグランドボクセルであると決定するステップと、
前記グランドボクセルを含むグランドボクセルのセットをグランドクラスタとして決定するステップと
を含む動作を実行させる、非一時的なコンピュータ可読媒体。
【請求項13】
前記グランドクラスタは、グランドボクセルの第1のクラスタであり、前記動作は、
前記第1のクラスタにおいて表される第1のデータの第1の平均高さを決定するステップと、
グランドボクセルの第2のクラスタにおいて表される第2のデータの第2の平均高さを決定するステップと、
前記第1のクラスタの第1のボクセルに関連付けられた第1の代表点と、前記第2のクラスタの第2のボクセルに関連付けられた第2の代表点との間の距離を決定するステップと、
前記第1の平均高さと前記第2の平均高さとの間の差を決定するステップと、
前記距離と前記差とに少なくとも部分的に基づいて勾配を決定するステップと、
前記勾配が勾配閾値より小さいことに少なくとも部分的に基づいて、前記第1のクラスタと、前記第2のクラスタの少なくとも一部とを含む、更新されたグランドクラスタを決定するステップと、
をさらに含む、
請求項
12に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記センサデータは、第1の時間における前記環境を表す第1のセンサデータであり、前記動作は、
第2の時間における前記環境を表す第2のセンサデータを受信するステップと、
前記第2のセンサデータを前記三次元空間に関連付けるステップと、
前記第1のセンサデータの少なくとも第1の部分において表されるオブジェクトを決定するステップと、
前記第2のセンサデータの少なくとも第2の部分において表される前記オブジェクトを決定するステップと、
差として、前記第2のセンサデータの前記少なくとも第2の部分が、前記第1の時間において前記オブジェクトによって以前に占有されていなかった1つ以上のボクセルに、前記第2の時間においてマッピングされることを決定するステップと、
前記差に少なくとも部分的に基づいて、前記オブジェクトが動的オブジェクトであると決定するステップと
をさらに含む、
請求項
12に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記センサデータは、第1の時間において受信される第1のセンサデータであり、前記動作は、
前記センサデータの少なくとも一部において表されるオブジェクトを決定するステップと、
前記オブジェクトが、前記第1の時間において、前記複数のボクセルのうちのボクセルの第1のサブセットを占有すると決定するステップと、
第2の時間において第2のセンサデータを受信するステップと、
原点と、前記第2のセンサデータの少なくとも1つのセンサデータ点とに関連付けられたベクトルが、前記第2の時間においてボクセルの前記第1のサブセットの少なくとも一部を通って移動すると決定するステップと、
前記ボクセルの第1のサブセットの前記少なくとも一部が、前記第2の時間において占有されていないと決定するステップと、
前記ボクセルの第1のサブセットの前記少なくとも一部が前記第2の時間において占有されていないことに少なくとも部分的に基づいて、前記オブジェクトが動的オブジェクトであると決定するステップと
をさらに含む、
請求項
12に記載の非一時的なコンピュータ可読媒体。
【請求項16】
前記動作は、
前記センサデータの少なくとも一部において表されるオブジェクトを決定するステップと、
オブジェクト識別子を、前記オブジェクトを表すボクセルに関連付けるステップと
をさらに含む、
請求項
12に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記動作は、
前記ボクセルに関連付けられた前記三次元空間に少なくとも部分的に基づいて、前記ボクセルに関連付けられた前記面法線を決定するように共分散行列に関連付けられた固有値分解を実行するステップをさらに含む、
請求項
12に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記グランドクラスタは、前記グランドクラスタを成長させるためのシード点として少なくとも1つのボクセルを含む、
請求項
12に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本願は、2017年6月14日に出願された米国特許出願第15/622905号に基づく優先権を主張し、その全体が参照によって本明細書に組み込まれる。
【0002】
画像区分化は、画像を異なるセグメントに区分化して、画像のより意味のある表現を提供するためにしばしば使用される、画像解析の1つのタイプである。一例として、画像は、画像内のオブジェクトを一意的に識別するために、区分化されてよい。画像区分化とは対照的に、3次元データの区分化は、区分化を困難にする特有の難題を提示することがある。
【図面の簡単な説明】
【0003】
添付の図面を参照して、詳細な説明が行われる。図において、参照番号の左端の数字は、その参照番号が初めて出現した図を識別する。異なる図における同じ参照番号の使用は、類似又は同一の構成要素又は特徴を示す。
【0004】
【
図1】静的及び/又は動的オブジェクト区分化のための例示的なプロセスのフローチャートを示す。
【
図2】本明細書において説明されるような、オブジェクト区分化を実施するための、例示的なアーキテクチャを示す。
【
図3】ボクセル空間(voxel space)内に表されたグランド領域(ground region)を区分化するための、例示的なプロセスのフローチャートを示す。
【
図4】グランドクラスタ(ground cluster)を拡張(grow)するために、ボクセル空間にわたって補間を行うための、例示的なプロセスのフローチャートを示す。
【
図5】レイキャスティング(ray casting)及び動的オブジェクト区分化と関連付けられた例示的な図を示す。
【
図6】本明細書において説明されるような、オブジェクト区分化に基づいて自律車両のための軌道を生成するための、例示的なプロセスを示す。
【
図7】経時的なボクセルデータの表現に基づいて、ボクセルマップ(voxel map)をクリアするための、例示的なプロセスを示す図である。
【
図8】経時的なボクセルデータの表現に基づいて、オブジェクトが動的オブジェクトであると決定するための、例示的なプロセスを示す図である。
【
図9】ボクセル表現に基づいたオブジェクトの区分化に基づいて、マップ生成及び/又はセンサ較正を実行するための、例示的なプロセスを示す図である。
【
図10】ボクセル表現に基づいたオブジェクトの区分化に基づいて、オブジェクトに注釈を施すための、例示的なプロセスを示す図である。
【
図11】本明細書において説明される技法を実施するための、例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0005】
本開示は、ボクセル空間内に表された3次元データに対して区分化を実行して、環境内においてグランド平面(ground plane)、静的オブジェクト、及び動的オブジェクトを決定するための、方法、装置、及びシステムについて説明する。例えば、3次元データセットは、自律車両用の知覚システムと併用されるLIDARシステムによって捕捉されたデータを含んでよい。LIDARシステムは、光エミッタと、光センサとを有してよく、光エミッタは、オブジェクト又は面に向かって高度に集束された光を方向付ける1つ又は複数のレーザを含み、オブジェクト又は面は、光を光センサに再度反射させる。LIDARシステムの測定結果は、LIDARシステムによって捕捉された、位置及び/又は距離に対応する(例えば、直交座標、極座標などの)座標を有する、3次元LIDARデータとして表されてよい。LIDARシステムによって捕捉されたデータは、ボクセル空間内に表されてよく、それは、3次元空間内において、体積要素(「ボクセル」)からなるグリッド内にデータを表すことを含んでよい。
【0006】
いくつかの例においては、LIDARデータは、ボクセル空間内において、(例えば、データ点と関連付けられた個々の<x、y、z、範囲、時間などの>値を有する)未処理(raw)センサデータとして表されてよく、又はデータの統計的蓄積として表されてよい。例えば、LIDARデータは、ボクセル空間内に蓄積されてよく、個々のボクセルは、データ点の数、平均強度、個々のボクセルと関連付けられたLIDARデータの平均x値、個々のボクセルと関連付けられたLIDARデータの平均y値、個々のボクセルと関連付けられたLIDARデータの平均z値、及びボクセルと関連付けられたLIDARデータに基づいた共分散行列など、処理されたデータを含んでよい。
【0007】
ボクセル空間内に表されたLIDARデータを用いる場合、処理は、グランド平面(例えば、自律車両が(drivable surface))と関連付けられたボクセルを決定することを含むことができ、それは、局所的にフラットなボクセルを決定することを含んでよい。いくつかの例においては、局所的にフラットなボクセルを決定することは、面をボクセル内のデータ(例えば、個々のLIDARデータ点)に適合させること(及び/又は共分散行列に対する計算(例えば、固有値分解(Eigenvalue decomposition)もしくは主成分分析(principle component analysis))を実行すること)と、面の法線ベクトルを決定することと、法線ベクトルが、自律車両の方位に対応することができる基準方向の閾値方向以内にあるかどうかを決定することとを含むことができる。いくつかの例においては、局所的にフラットなボクセルを決定することは、ボクセル空間内においてメッシュを生成することと、メッシュがボクセルの少なくとも一部を占有すると決定することと、ボクセルと関連付けられたメッシュの面法線ベクトルを決定することと、面法線が基準方向の閾値方向以内にあるかどうかを決定することとを含む、マーチングキューブタイプのアルゴリズムを含むことができる。局所的にフラットなボクセルが決定された後、領域拡張などのクラスタリング技法が、フラット又は運転可能な面を表すグランドボクセル又はグランド平面を識別するために使用されてもよい。さらに、データ内にギャップが存在して、ボクセル空間内に多数のパッチ又はクラスタをもたらすことができるので、処理は、隣接クラスタがグランド平面として含まれるべきかどうかを決定するために、隣接クラスタ内のボクセル内の様々な点の間を補間することを含むことができる。グランド平面を識別した後、グランド平面は、ボクセル空間から除去されること、又は除外されることができ、残りのデータに対して、オペレーションが実行されることができる。
【0008】
領域拡張などのクラスタリング技法が、残りのボクセルに適用されて、ボクセル空間内に表されたオブジェクトを決定することができる。個々のオブジェクトは、隣接ボクセルをグループ化することによって識別されることができ、各オブジェクトは、一意的なオブジェクト識別子と関連付けられる。非限定的な例として、単一のオブジェクトと関連付けられる全てのLIDAR点は、全て、同じオブジェクト識別子を有してよく、一方、異なるオブジェクトと関連付けられるLIDAR点は、異なるオブジェクト識別子を有してよい。いくつかの例においては、オブジェクト識別子は、ボクセルと関連付けられ、及び/又はLIDARデータに伝搬されてよい。LIDARデータは、経時的に捕捉又は受信されるので、静的オブジェクトと動的オブジェクトとを区別するために、ボクセルの占有時間が、評価されることができる。例えば、壁などの背景オブジェクトの近くを歩く人など、空間内において接近した関係にあるオブジェクトを区別して、静的オブジェクトと動的オブジェクトとを区別するために、レイキャスティングが使用されることができる。さらに、オブジェクトの運動を示してよい、第1の時間に占有されていたボクセルが、第2の後続する時間に占有されていないときを、及びそれとは反対のときを決定するために、レイキャスティングが使用されることができる。データは、経時的に蓄積されるので、マップをクリアするために、又はオブジェクトの解像度を高めるために、やはり、レイキャスティング技法が使用されてよい。動的オブジェクトであるオブジェクトは、さらに、動的オブジェクト識別子を用いてタグ付けされて、又はそれと関連付けられてよい。
【0009】
処理が実行され、オブジェクトが識別されるにつれて、静的及び/又は動的オブジェクトのリストが、自律車両用の軌道を生成するための基礎として、トラッキングシステム及び/又はプランニングシステムに提供されてよい。さらに、例えば、他のセンサが時間につれてドリフトするとき、車両の決定された位置の正確性を高めるために、自律車両の1つ又は複数のセンサを較正するように、オペレーションが拡張されることができる。さらに、LIDARデータが捕捉され、局所マップを生成するために使用されるとき、全体マップに関して自律車両を位置特定するために、LIDARデータが使用されることができる。オペレーションは、局所マップと全体マップとの間の差を決定することを含むことができ、差は、中央サーバにアップロードされて、全体マップに組み込まれること、及び/又は他の車両に配信することができる。
【0010】
いくつかの例においては、LIDARデータが捕捉された後、及び/又はデータが、中央サーバなどのコンピューティングデバイスにダウンロードされた、もしくは他の方法で提供された後、マップを生成し、既存のマップをクリーンアップするために、オブジェクトの区分化が使用されることができ、及び/又は後続する注釈オペレーションのために、それが使用されることができる。例えば、識別された静的オブジェクトは、自律車両のナビゲーションを支援するために、全体マップに組み込まれることができる。別の例においては、レイキャスティングを使用して動的オブジェクトを全体マップから除去し、全体マップ内のオブジェクトを純化することによって、全体マップをクリーンアップするために、捕捉されたデータが使用されることができる。別の例においては、静止オブジェクト(例えば、静的オブジェクト)であるが、非永続的なオブジェクト(例えば、駐車中の車両)について、そのような非永続的オブジェクトを全体マップから除去して、全体マップが環境の静的オブジェクトを反映することをさらに確かにするために、区分化情報が使用されることができる。別の例においては、静的及び/又は動的オブジェクトが、人手の又は自動注釈サービスに提供されることができ、それは、オブジェクトの分類を実行して、例えば、機械学習のためのトレーニングデータセットを生成してよい。ボクセル区分化技法の上記及び他のオペレーション及び応用が、本明細書において論じられる。
【0011】
本明細書において説明される区分化技法は、オブジェクトトラッキング及び/又は自律車両のナビゲーションのために、データを効率的に区分化するためのフレームワークを提供することによって、コンピューティングデバイスの機能を改善することができる。いくつかの例においては、LIDARデータなどの複雑な多次元データは、データの効率的な評価及び処理を考慮して、データを区分化することができる、ボクセル空間内に表されることができる。いくつかの例においては、ボクセル空間は、処理のためのデータの量を減らした、疎らなボクセル空間を表すことができる。いくつかの例においては、技法は、例えば、軌道生成のために、グランド平面を迅速に区分化するための、ロバストなプロセスを提供する。グランド平面と関連付けられた情報は、省かれること、又は除外されることができ、減らされたデータセットに対して、オブジェクト識別が実行されることができ、オペレーションのために必要とされるメモリ及び処理の量を減らす。静的及び動的オブジェクトは、例えば、動的オブジェクトのトラッキングオペレーションに集中することによって処理をさらに単純化した、ロバストなクラスタリング技法を使用して識別されることができる。さらに、本明細書において説明されるオペレーションは、オンライン及びオフライン状況において利用されることができ、様々な状況において区分化データを利用するための、柔軟なフレームワークを提供する。いくつかの例においては、自律車両の軌道を生成する際に、より迅速及び/又はより正確な区分化が利用されてよく、それが、自律車両の乗員の安全性を改善してよい。いくつかの例においては、本明細書において説明されるオペレーションは、メモリ要件を減らしてよく、又はデータを効率的に単純化するようにボクセル化されたデータを演算することによって、処理の量を減らしてよい。コンピュータの機能に対する上記及び他の改善が、本明細書において論じられる。
【0012】
本明細書において説明される方法、装置、及びシステムは、数々の方法で実施されることができる。例示的な実施が、下記の図を参照して、以下で提供される。LIDARデータとの関連において、及び/又は自律車両との関連において説明されるが、本明細書において説明される方法、装置、及びシステムは、マシンビジョンを利用する様々なシステムに適用されることができる。さらに、3次元LIDARデータとの関連において説明されるが、本明細書において説明される方法、装置、及びシステムは、3次元データに限定されず、またLIDARデータに限定されない。一例においては、方法、装置、及びシステムは、RADARデータを用いる2次元状況において利用されてよく、又は水平LIDARデータとともに使用されてよい。例えば、方法、装置、及びシステムは、製造組立ライン状況において、又は航空測量状況において利用されてよい。さらに、データセットは、立体視カメラ、深度カメラ、RADARセンサ、音響センサなどからのデータを含んでよく、任意の数の次元に対応してよい、任意の数のレイヤ又はチャネルを含んでよい。加えて、本明細書において説明される技法は、(例えば、センサを使用して捕捉された)実データ、(例えば、シミュレータによって生成された)シミュレートされたデータ、又は2つの任意の組み合わせとともに使用されてよい。
【0013】
図1は、ボクセル空間におけるLIDARデータセットを表し、グランドと関連付けられたボクセルを決定し、静的及び動的オブジェクトを決定し、後続する処理のために静的及び/又は動的オブジェクトを利用するための例示的なプロセス100のフローチャートを示している。
【0014】
オペレーション102において、プロセスは、LIDARデータセットを受信することを含むことができる。
図1においては、LIDARデータセットとして示されているが、そのようなデータセットは、上で詳細に説明されたような任意の1つ又は複数のセンサからの任意の形態の深度データを含んでよい。いくつかの例においては、オペレーション102は、自律車両の知覚システムとの関連において動作する複数のLIDARセンサから、複数のLIDARデータセットを受信することを含んでよい。いくつかの例においては、オペレーション102は、2つ以上のLIDARセンサからのデータを組み合わせて、又は融合させて、(「メタスピン(meta spin)」とも呼ばれる)単一のLIDARデータセットにすることを含んでよい。いくつかの例においては、オペレーション102は、時間の期間にわたって、LIDARデータの一部を処理のために抽出することを含んでよい。いくつかの例においては、オペレーション102は、RADARデータ(又は他のセンサデータ)を受信し、RADARデータをLIDARデータと関連付けて、環境のより詳細な表現を生成することを含んでよい。LIDARデータセットの例は、例104において示されており、それは、自動車、トラック、道路、ビルディング、バイク、歩行者など、都市環境における様々なオブジェクトと関連付けられた、LIDARデータ(例えば、点群)を含んでよい。
【0015】
オペレーション106において、プロセスは、LIDARデータセットをボクセル空間と関連付けることを含むことができる。例108は、各次元(例えば、x、y、z)において5つのボクセルを含むボクセル空間を示しているが、ボクセル空間には、任意の数のボクセルが含まれてよい。いくつかの例においては、ボクセル空間は、LIDARデータセットの起点又は仮想起点の周りのエリアなど、物理的環境に対応してよい。例えば、ボクセル空間は、幅100メートル、長さ100メートル、高さ20メートルのエリアを表してよい。さらに、ボクセル空間内の各ボクセル(例えば、ボクセル110)は、各次元が25センチメートルなどの、物理的エリアを表してよい。本開示との関連において理解されてよいように、ボクセル空間は、環境の任意のエリアを表してよく、個々のボクセルも、同様に、任意の体積を表してよい。いくつかの例においては、ボクセルは、ボクセル空間の全体を通して均一のサイズであってよいが、いくつかの例においては、ボクセルの体積は、データの起点に関するボクセルの位置に基づいて、変化してよい。例えば、LIDARセンサからの距離が増大するにつれて、LIDARデータの密度は減少してよいので、ボクセル空間内のボクセルのサイズは、ボクセルからLIDARセンサ(又は複数のLIDARセンサを代表する起点)までの距離に比例して、増大してよい。
【0016】
一例においては、データは、経時的に蓄積されるので、オペレーション106は、メタスピン(例えば、LIDARデータセット)をボクセル空間と合わせることを含んでよい。例えば、オペレーション106は、メタスピンをボクセル空間に合わせるために、メタスピンに適用する変換を決定することを含んでよい。特に、オペレーション106は、観測された点の、データの既存の蓄積に適合させられた平面までの距離を決定することによって、捕捉されたLIDARデータを、ボクセル空間内に蓄積されたデータと照合することを含んでよい。いくつかの例においては、この変換は、全体マップ上の位置に関する車両の位置の誤差を減らすことができる。
【0017】
一例においては、ボクセル空間は、空の空間として初期化されてよく、LIDARデータは、それが捕捉されたときに、ボクセル空間に追加されてよく、別の例においては、ボクセル空間は、以前に捕捉されたデータからなる全体マップを表すデータを用いて、初期化されてよい。全体マップデータを使用するケースにおいては、オペレーションは、局所的に捕捉されたLIDARデータを全体データと比較して、全体マップ空間内において自律車両を位置特定することを含んでよい。
【0018】
いくつかの例においては、オペレーション106は、点群の個々の点を個々のボクセルにマッピングすることを含むことができる。いくつかの例においては、オペレーション106は、例えば、LIDARデータが、自律車両など、動いているプラットフォームによって捕捉された場合に、例えば、LIDARデータを静止した基準点に変換するために、LIDARデータと関連付けられた動きベクトルを減算することを含むことができる。即ち、いくつかの例においては、LIDARデータは、(例えば、動いている車両に関して固定されたボクセル空間とは対照的に)例えば、全体マップに関して固定されたボクセル空間と関連付けられてよい。いくつかの例においては、オペレーション106は、疎らなボクセル空間を生成するために、データを含まない、又は閾値数を下回る数の点しか含まないボクセルを廃棄すること、又は省くことを含むことができる。さらに、いくつかの例においては、オペレーション106は、例えば、ボクセル空間に関する車両の位置と関連付けられたいずれの誤差も補償又は調整するために、車両の体勢(例えば、車両の方位)及び関連付けられたLIDARデータをボクセルマップと合わせることを含むことができる。
【0019】
さらに、いくつかの例においては、オペレーション106は、LIDARデータを統計的に蓄積し、それが個々のボクセルに追加されるときに、データを処理することを含むことができる。例えば、個々のボクセルは、データ点の数、平均強度、データの平均x値、データの平均y値、データの平均z値、及び/又は個々のボクセルと関連付けられたLIDARデータに基づいた共分散行列を表すデータを含んでよい。従って、いくつかの例においては、個々のボクセルと関連付けられたデータは、一部には、システムの処理性能を改善するための処理されたデータを表してよい。
【0020】
オペレーション112において、プロセスは、グランドと関連付けられた1つ又は複数のボクセルを決定することを含むことができる。いくつかの例においては、グランドは、自律車両によって運転可能な面に対応してよい。例114においては、LIDARデータ116を含む単一のボクセル、例えば、ボクセル110が、示されている。上で論じられたように、いくつかの例においては、LIDARデータ116は、データ点の数、平均強度、平均x値、平均y値、平均z値、及びLIDARデータに基づいた共分散行列を含む、データの統計的蓄積を表してよい。そのような例においては、LIDARデータ116は、
図1においては、説明の目的で、多数の点として示されているが、各ボクセル110は、それらの点の統計的蓄積だけを記憶してよい。いくつかの例においては、オペレーション112は、平面118をLIDARデータ116に適合させることを含むことができ、それは、(例えば、固有値分解又は主成分分析を共分散行列に対して実行することによって、例えば、共分散行列に少なくとも部分的に基づいて)LIDARデータ116の平面近似を決定することを含んでよい。例えば、オペレーション112は、平面118をデータ116に適合させるために、固有値分解又は主成分分析をボクセル110内に表されたLIDARデータ116に対して実行することを含んでよい。いくつかの例においては、オペレーション112は、ボクセル110内に表されたLIDARデータ116の平面近似を、少なくとも部分的に、ボクセル110の近隣ボクセルと関連付けられたデータ上において決定することを含んでよい。オペレーション112は、平面118と関連付けられた法線ベクトル120を決定することも含むことができる。さらに、オペレーション112は、自律車両の方位に対応してよい、基準方向を決定することを含むことができ、法線ベクトル120が、基準方向に関して、閾値量又は方位内にあるかどうかを決定することを含んでよい。
【0021】
非限定的な例として、オペレーション112においてグランド平面を決定することは、共通の座標系において表現された、そのようなLIDARシステムを搭載した装置の高さ次元(例えば、基準方向)におけるベクトルと、法線ベクトル120との間の内積を決定することを含んでよい。そのような例においては、15度の閾値を超える内積は、ボクセル110がグランドを含まないことを示してよい。
【0022】
さらに、オペレーション112は、グランドに対応する面を拡張するために、局所的にフラットなボクセルであると決定されたボクセルをクラスタ化することを含んでよい。グランドを決定する追加の詳細が、
図2、
図3、及び
図4との関連において提供され、本開示の全体を通しても提供される。
【0023】
オペレーション122において、プロセスは、オブジェクトと関連付けられたボクセルを決定することを含むことができる。いくつかの例においては、オペレーション112に続いて、オペレーション122は、グランドの表示、グランド平面、及び/又はグランドに対応するボクセルを受信することと、グランドと関連付けられたボクセルのサブセットを除去することとを含むことができる。この除去オペレーションの後、ボクセル空間内に残存するボクセルは、オブジェクトを表してよい。例124は、例108に示されたボクセル空間に対応してよい、ボクセル空間108’の上面図表現を示している。いくつかの例においては、ボクセル空間108’は、環境内のオブジェクトを表すLIDARデータ126、128を含む。いくつかの例においては、オペレーション122は、LIDARデータ点126がオブジェクト130と関連付けられると決定し、LIDARデータ点128がオブジェクト132と関連付けられると決定するための、クラスタリングを含むことができる。いくつかの例においては、オペレーション122は、閾値を下回る数のボクセルと関連付けられたオブジェクトを除去すること、又はさもなければ、オブジェクトと関連付けられたボクセルの数、個々のボクセルと関連付けられたLIDARデータ点の数、もしくは2つの任意の組み合わせに少なくとも部分的に基づいて、オブジェクトを分類することを含んでよい。いくつかの例においては、オペレーション122は、他の占有されたボクセルに隣接する占有されたボクセルに少なくとも部分的に基づいて、オブジェクトを決定してよい。理解されてよいように、グランドをボクセル空間108’から除去することによって、オブジェクト130、132は、グランドボクセルによって接続されずに隔離されてよく、オブジェクト130、132の効率的な識別及び区分化をもたらす。
【0024】
オペレーション134において、プロセスは、環境内の動的オブジェクトを決定することを含んでよい。例えば、LIDARデータは、経時的に蓄積されるので、オペレーション134は、第1の時間に占有されていないボクセルを決定し、そのボクセルが第2の時間に占有されていると決定することによって、動きを決定することを含んでよい。例136においては、オブジェクト138は、第1の時間に対応するT1において、ボクセル空間内に表されることができ、オブジェクト138’は、第1の時間と異なる、第1の時間に後続する時間に対応してよいT2において、ボクセル空間内に表されることができる。従って、オペレーション134は、オブジェクト138が、(例えば、オブジェクト138’として)時間につれて動いており、動的オブジェクトに対応してよいことを決定するために、ボクセルの占有を経時的にトラッキングすることを含んでよい。
【0025】
さらに、オペレーション134は、第1の時間T
1において占有されていたボクセルが、第2の時間T
2において占有されていないと決定するために、レイキャスティングオペレーションを含んでよい。例えば、LIDARセンサ140は、オブジェクト138を識別及び区分化するために、ベクトル142によって表されるLIDARデータを捕捉してよい。その後、第2の時間T
2において、LIDARセンサ140は、例えば、壁又はビルディングに対応してよいオブジェクト146を識別及び区分化するために、ベクトル144として表されるLIDARデータを捕捉してよい。いくつかの例においては、
図5との関連において論じられるように、例えば、オペレーション134は、LIDARセンサ140とオブジェクト146との間のボクセルが占有されていないことを決定するために、ベクトル144が通過するボクセルを決定することを含んでよい。いくつかの例においては、これらのレイキャスティングオペレーションは、例えば、オブジェクト138が動的オブジェクトであると決定するために、使用されることができる。さらに、例136において示されるレイキャスティングオペレーションは、経時的に蓄積するLIDARデータを表すマップをクリアするために、使用されることができ、それは、オブジェクトトラッキング、軌道プランニングなどの正確性を改善することができる。別の例として、レイキャスティングオペレーションは、局所的に捕捉されたLIDARデータと、以前に捕捉されたLIDARデータを表す全体マップとの間の差を決定するために、使用されることができる。
【0026】
オペレーション148において、プロセスは、トラッキング及び/又は軌道プランニングのために、静的及び/又は動的オブジェクトのリストを提供することを含んでよい。例えば、プロセス100は、グランド、静的オブジェクト、及び/又は動的オブジェクトに対応する、環境の部分を識別及び区分化してよい。いくつかの例においては、動的オブジェクトのリストは、各動的オブジェクトの軌道を経時的にトラッキング及び/又は予測するために、トラッキングシステムに提供されることができる。いくつかの例においては、静的オブジェクトのリスト、及び/又はグランドの識別は、運転可能な面を辿り、本明細書において識別される静的オブジェクトを回避し、又はさもなければ考慮する、自律車両のための軌道を生成するために、プランナシステムに提供されてよい。上記及び他のオペレーションは、本明細書において説明される識別及び区分化オペレーションの一部として、可能である。
【0027】
図2は、本明細書において説明されるような、オブジェクト識別を実施するための例示的なアーキテクチャを示している。例えば、アーキテクチャ200は、本明細書において説明されるシステム、方法、及び装置の態様を実施するための、様々なハードウェア及び/又はソフトウェアを含む、1つ又は複数のコンピュータシステム202を含んでよい。例えば、コンピュータシステム202は、LIDARモジュール204と、カメラモジュール206と、RADARモジュール208と、SONARモジュール210と、ボクセル空間モジュール212と、グランド決定モジュール214と、クラスタリングモジュール216と、補間モジュール218と、オブジェクト決定モジュール220と、動的オブジェクト決定モジュール222と、レイキャスティングモジュール224と、トラッキングモジュール226と、プランニングモジュール228と、センサ較正モジュール230と、注釈モジュール232とを含んでよい。
【0028】
いくつかの例においては、コンピュータシステム202は、自律車両内において具体化されてよい。いくつかの例においては、コンピュータシステム202は、自律車両用の知覚及びプランニング機能性を提供してよい。一般に、コンピュータシステム202は、LIDAR知覚と、RADAR知覚と、ビジョン(カメラ)知覚と、音響知覚と、区分化及び分類と、トラッキング及び融合と、予測/プランニングとを含んでよい。
【0029】
LIDARモジュール204を参照すると、LIDARモジュール204は、本明細書において説明されるように、区分化のためにLIDARデータを捕捉する、1つ又は複数のLIDARセンサを含んでよい。
図2においては、LIDARデータとして示されているが、そのようなLIDARモジュール204は、本明細書において詳細に説明されるような、いずれか1つ又は複数の深度センサを備えてよい。いくつかの例においては、LIDARモジュール204は、複数のLIDARセンサからのLIDARデータを組み合わせて、又は合成して、複数のLIDARセンサに基づいたLIDARデータのことを指してよい、LIDARデータのメタスピンを生成するための機能性を含んでよい。LIDARデータのメタスピンの場合、LIDARモジュール204は、メタスピンデータの仮想起点(virtual origin)(例えば、全てのLIDARセンサに共通する基準座標系)を決定し、1つ又は複数のLIDARセンサの各々からのLIDARデータが、仮想起点に関して表現されるように、データ変換を実行するための機能性を含んでよい。本開示との関連において理解されてよいように、LIDARモジュール204は、データを捕捉してよく、後続する処理のために、データセットをコンピュータシステム202に送信してよい。
【0030】
カメラモジュール206は、画像区分化及び/又は分類のためにビジョンデータを捕捉する、1つ又は複数のカメラセンサを含んでよい。カメラモジュール206は、任意の数及びタイプのカメラセンサを含んでよい。例えば、カメラモジュール206は、任意のカラーカメラ、モノクロームカメラ、深度カメラ、RGB-Dカメラ、ステレオカメラ、赤外線(IR)カメラ、紫外線(UV)カメラなどを含んでよい。本開示との関連において理解されてよいように、カメラモジュール206は、データを捕捉してよく、後続する処理のために、データセットをコンピュータシステム202に送信してよい。例えば、カメラモジュール206からのデータは、マルチチャネル画像の1つ又は複数のチャネルとして含まれてよい。
【0031】
RADARモジュール208は、環境内のオブジェクトの範囲、角度、及び/又は速度を捕捉する、1つ又は複数のRADARセンサを含んでよい。本開示との関連において理解されてよいように、RADARモジュール208は、データを捕捉してよく、後続する処理のために、データセットをコンピュータシステム202に送信してよい。例えば、RADARモジュール208からのデータは、マルチチャネル画像の1つ又は複数のチャネルとして含まれてよい。
【0032】
SONARモジュール210は、環境内のオブジェクトの音響情報を捕捉するための、1つ又は複数のスピーカ又は音エミッタと、(マイクロフォンアレイなどの)1つ又は複数のマイクロフォンとを含んでよい。加えて、又は代わりに、そのようなSONARモジュール210は、様々な超音波トランスデューサを備えてよい。例えば、SONARモジュール210は、音のパルスを発してよく、エコーを聴き取って、環境内のオブジェクトと関連付けられた位置及び/又は動き情報を決定してよい。本開示との関連において理解されてよいように、SONARモジュール210は、データを捕捉してよく、後続する処理のために、データセットをコンピュータシステム202に送信してよい。例えば、SONARモジュール210からのデータは、オブジェクトをより正確に区分化するために、及び/又はオブジェクトについての情報を決定するために、LIDARモジュール204からのデータと融合されてよい。
【0033】
コンピュータシステム202は、例えば、自律車両における使用に適した、任意の数又はタイプの他のセンサを含んでよい。様々なセンサは、超音波トランスデューサ、ホイールエンコーダ、マイクロフォン、慣性測定ユニット(IMU)、加速度計、ジャイロスコープ、磁力計、温度センサ、湿度センサ、光センサ、全地球測位システム(GPS)センサなどを含んでよいが、それらに限定されない。
【0034】
いくつかの例においては、LIDARモジュール204、カメラモジュール206、RADARモジュール208、及び/又はSONARモジュール210は、改善された区分化のための、データの組み合わせ及び/又は合成を行うために、1つ又は複数のデータセットをコンピュータシステム202に提供してよい。
【0035】
コンピュータシステム202は、一部はテストにおける使用のために、コンピュータシミュレーションアルゴリズムによって生成された、シミュレートされたデータをさらに含んでよい。いくつかの例においては、シミュレートされたデータは、カメラデータ、LIDARデータ、RADARデータ、SONARデータ、慣性データ、GPSデータなど、任意のタイプのシミュレートされたデータを含んでよい。いくつかの例においては、コンピュータシステム202は、本明細書において説明されるように、オペレーションを検証するために、及び/又は機械学習アルゴリズムをトレーニングするために、シミュレートされたデータに対する本明細書において説明される変換オペレーションを変更し、変換し、及び/又は実行することができる。
【0036】
ボクセル空間モジュール212は、マップデータをボクセル空間に変換するための機能性を含んでよい。例えば、ボクセル空間モジュール212は、LIDARデータ、カメラデータ、RADARデータ、SONARデータなどを受信し、個々のデータ点を、環境内の3次元空間を表すボクセルにマップし、変換し、又は関連付けることができる。いくつかの例においては、ボクセル空間モジュール212は、ボクセル空間の長さ、幅、及び高さを含む、ボクセル空間の次元を定義することができる。さらに、ボクセル空間モジュール212は、個々のボクセルのサイズを決定してよい。いくつかの例においては、ボクセルは、ボクセル空間の全体を通して均一のサイズ及び形状であってよく、一方、いくつかの例においては、ボクセルのサイズ及び/又は密度は、ボクセル空間内の相対位置に基づいて、変化してよい。例えば、ボクセルのサイズは、ボクセル空間の起点又は中心からのボクセルの距離に比例して、増大又は減少してよい。加えて、又は代わりに、そのようなボクセル空間モジュール212は、仮想起点とボクセル空間の起点との間の変換を含んでよい。いくつかの例においては、ボクセル空間モジュール212は、疎らなボクセル空間を生成するための機能性を含んでよく、それは、データを含まない、又はデータ閾値を下回る量のデータしか含まないボクセルを廃棄することを含んでよい。そのような例においては、ボクセル空間は、オクトマップ、又はボクセルハッシングなどを含んでよい。いくつかの例においては、ボクセル空間モジュール212は、データを、それがボクセル空間にマップされるときにフィルタリングすることによって、データ内のノイズの量を低減させるための機能性を含んでよい。例えば、フィルタリングは、ボクセル当たりのデータの閾値量(例えば、ボクセルと関連付けられたLIDARデータ点の数)を下回るデータ、又は事前決定されたボクセルの数(例えば、近接ボクセルの数と関連付けられたLIDARデータ点の数)を超えるデータを除去することを含んでよい。いくつかの例においては、ボクセル空間モジュール212は、データが経時的に集められたときに、及び/又はボクセル空間内を運行する自律車両に応答して、ボクセル空間を更新することができる。例えば、ボクセル空間モジュール212は、自律車両が環境内を運行するときに、ボクセル空間にデータを追加してよく、及び/又はボクセル空間からデータを廃棄してよい。
【0037】
いくつかの例においては、ボクセル空間モジュール212は、ボクセル空間を空の空間として初期化することができ、LIDARデータが経時的に捕捉されるにつれて、オブジェクトの表現を構築することができる。他の例においては、ボクセル空間モジュール212は、局所的に捕捉されたLIDARデータが、全体マップ空間内において自律車両を位置特定するために使用されることができ、全体マップのボクセルをクリーンアップする、又はクリアするために使用されることができるように、全体マップデータを用いてボクセル空間を初期化することができる。
【0038】
グランド決定モジュール214は、ボクセル空間の個々のボクセルを解析して、ボクセル空間内において環境と関連付けられたグランドを決定するための機能性を含んでよい。例えば、グランド決定モジュール214は、特定のボクセルと関連付けられたデータを代表する平面を推定し、その平面の法線ベクトルを決定することによって、局所的にフラットなボクセルを決定してよい。例えば、グランド決定モジュール214は、ボクセルに対して主成分分析を実行して、ボクセルと関連付けられたデータと関連付けられた最小主成分を決定してよい。いくつかの例においては、主成分分析の場合、最小固有ベクトルは、平面の法線ベクトルに対応してよく、一方、固有ベクトルと関連付けられた固有値は、最小固有ベクトルの方向における特定のボクセルと関連付けられたデータの拡散のスプレッド又はレベルに対応してよい。別の例として、限定することなく、そのような面法線決定は、ボクセル内の点PからPの最も近い2つの近隣点までの方向を示すベクトルの外積の法線を計算することによって行われてよい。別の例として、限定することなく、そのような面法線決定は、個々のボクセルと関連付けられた共分散行列に対する固有値分解を実行することによって、行われてよい。いくつかの例においては、グランド決定モジュール214は、近隣ボクセルと関連付けられた値に基づいて、ターゲットボクセルと関連付けられた面を決定することによって、ターゲットボクセルが局所的にフラットなボクセルであるかどうかを決定してよい。さらに、いくつかの例においては、グランド決定モジュール214は、面を生成する少なくとも3つの点を含む三角形を決定するために、マーチングキューブタイプのアルゴリズムを利用して、ボクセルと関連付けられた平均点値に基づいてメッシュを生成してよい。さらに、グランド決定モジュール214は、自律車両の方向又は方位に対応してよい、基準方位を受信してよい。グランド決定モジュール214は、上で説明されたように、ボクセルと関連付けられた法線ベクトルが、基準方位の閾値量内にある場合、ボクセルは局所的にフラットなボクセルであると決定してよい。
【0039】
クラスタリングモジュール216は、LIDARデータの起点に最も近い面から開始して、又は自律車両の下の面から開始して、グランド領域を拡張するために、グランド決定モジュール214と連携して動作してよい。即ち、自律車両に近接したボクセルが、クラスタリングモジュール216のためのシードボクセル(seed voxel)として使用されてよい。クラスタリングモジュール216は、隣接する局所的にフラットなボクセルが同じクラスタに属すると決定してよく、グランド平面を取り囲むように、領域を拡張してよい。さらに、クラスタリングモジュール216は、ボクセルが特定のオブジェクトと関連付けられていると決定するために、以下で論じられるオブジェクト決定モジュール220と連携して動作してよい。クラスタリングモジュール216は、領域拡張、階層的クラスタリング、分割クラスタリング(partitional clustering)、平方誤差クラスタリング、グラフ理論クラスタリング、混合-分解クラスタリング(mixture-resolving clustering)、平均シーククラスタリング(mean-seeking clustering)、k平均クラスタリング、Nカットクラスタリング(N-cut clustering)、近接クラスタリングなどを含むが、それらに限定されない、様々なクラスタリングアルゴリズムを利用してよい。
【0040】
補間モジュール218は、様々なクラスタを一緒に組み合わせて、又は関連付けて、グランド平面を拡大するために、グランド決定モジュール214及び/又はクラスタリングモジュール216と連携して動作してよい。例えば、局所的にフラットなボクセルは、自律車両と関連付けられたグランド領域を決定するとき、単一のクラスタを形成しなくてよく、その場合、補間モジュール218は、グランド平面クラスタを拡張するために、点の間を補間して、勾配が閾値勾配を上回るか、それとも下回るかを決定してよい。グランド決定モジュール214、クラスタリングモジュール216、及び補間モジュール218の追加の態様が、
図3及び
図4との関連において以下で提供され、本開示の全体を通しても提供される。
【0041】
オブジェクト決定モジュール220は、ボクセル空間内に表されたオブジェクトを決定するための機能性を含んでよい。例えば、オブジェクト決定モジュール220は、グランド決定モジュール214からグランド平面の表示を受信し、及び/又は局所的にフラットなボクセルのいくつかもしくは全ての表示を受信してよく、グランドと関連付けられたボクセルをボクセル空間から除去してよい。次に、オブジェクト決定モジュール220は、残存するボクセルを解析して、ボクセルの接続性に基づいてオブジェクトを決定してよい。例えば、オブジェクト決定モジュール220は、隣接ボクセルが同じオブジェクトの一部であると見なされるべきであると決定することによって、オブジェクトに対応するボクセル空間内の領域を拡張するために、クラスタリングモジュール216と連携して動作してよい。オブジェクト決定モジュール220は、特定のオブジェクトと関連付けられた全てのボクセルに、オブジェクト識別子を割り当ててよく、いくつかの例においては、オブジェクト決定モジュール220によって割り当てられた、又は決定されたオブジェクト識別子は、特定のオブジェクトを含むボクセルと関連付けられたLIDARデータに伝搬されてよい。オブジェクト決定モジュール220の追加の態様が、
図3との関連において以下で提供され、本開示の全体を通しても提供される。
【0042】
動的オブジェクト決定モジュール222は、静的オブジェクトと動的オブジェクトとを区別するための機能性を含んでよい。例えば、動的オブジェクト決定モジュール222は、データを経時的に蓄積して、第1の時間におけるボクセルを第2の時間におけるボクセルと比較して、ボクセルの占有が時間につれて変化したかどうかを決定することによって、オブジェクトの動きを決定してよい。例えば、第1の時間にオブジェクトによって占有されていたボクセルが、第2の時間にそのオブジェクトによって占有されていない場合、動的オブジェクト決定モジュール222は、オブジェクトが動的オブジェクトであると決定することができる。どのボクセルが時間につれて占有されるようになり、又は占有されなくなるかに基づいて、動的オブジェクト決定モジュール222は、運動のスピード及び方向など、動的オブジェクトの運動を決定することができる。いくつかの例においては、動的オブジェクト決定モジュール222は、動的オブジェクトの運動を決定するための表示を提供することができる。動的オブジェクト決定モジュール222の追加の態様が、
図5との関連において以下で提供され、本開示の全体を通しても提供される。
【0043】
レイキャスティングモジュール224は、静的オブジェクトと動的オブジェクトとを区別するために、動的オブジェクト決定モジュール222と連携して動作してよい。さらに、レイキャスティングモジュール224は、データがボクセル空間内に蓄積されるので、ボクセル空間を経時的にクリアするための機能性を含んでよい。例えば、オブジェクトは、時間につれてボクセル空間の全体にわたって動くので、動的オブジェクトによって占有されるボクセルは、時間につれてデータで満たされてよい。しかしながら、レイキャスティングモジュール224は、LIDARデータと関連付けられた光線の経路を分析して、例えば、光線がその中を伝わるボクセルがクリアされるべきであると決定してよい。従って、レイキャスティングモジュール224は、第1の時間に占有されていたボクセルが第2の時間に占有されていないとの決定を行うための追加の機能性を提供してよく、それは、例えば、オブジェクトが動的オブジェクトであると決定するために、様々なモジュールに提供されてよい。いくつかの例においては、ボクセル空間は、(例えば、占有されているボクセルを表し、占有されていないボクセルを無視する)疎方式で、又は(例えば、廃棄ボクセルのない)密方式で表されてよい。いくつかの例においては、レイキャスティングモジュール224は、密方式においては、レイキャスティング情報を記憶してよく、即ち、(例えば、ボクセルが、関連付けられたLIDARデータを有さないために)疎ボクセル表現において存在しないボクセルが、そのようなボクセルと関連付けられたレイキャスティング情報を有することができる。例えば、関連付けられたLIDARデータを有さないボクセルは、それにもかかわらず、ボクセルと関連付けられたレイキャスティング情報を含むために、密ボクセル空間において表されることができる。いくつかの例においては、密ボクセル表現は、本明細書において論じられるレイキャスティングオペレーションに少なくとも部分的に応答して、ボクセルが占有されていないという積極的な情報をボクセルと関連付けてよい。さらに、LIDARデータが個々のボクセル内に蓄積されるので、例えば、それらが静的オブジェクトで占有されているという消極的な情報が、個々のボクセルと関連付けられてよい。データが経時的に蓄積されるので、情報が集約されて、一部は、例えば、ボクセルが空き空間を表すか、それとも静的オブジェクトを表すかを決定することができる。さらに、レイキャスティングモジュール224は、局所的に捕捉されたLIDARデータを全体マップデータと比較することによって、全体マップをクリーンアップするために使用されてよい。レイキャスティングモジュール224の追加の態様が、
図5との関連において以下で提供され、本開示の全体を通しても提供される。
【0044】
トラッキングモジュール226は、オブジェクトをトラッキングするために、1つ又は複数の動的オブジェクトの表示を受信し、追加の処理を実行するための機能性を含んでよい。例えば、トラッキングモジュール226は、動的オブジェクトの速度を決定してよく、及び/又は経時的に動的オブジェクトの軌道を決定し、記憶してよい。いくつかの例においては、トラッキングモジュール226は、オブジェクトの以前の動きに基づいて、トラッキングされるオブジェクトの経路を予測してよい、予測アルゴリズムを含んでよい。
【0045】
プランニングモジュール228は、区分化されたデータ、ならびに/又はグランド平面、静的オブジェクト、及び/もしくは動的オブジェクトの表示を受信して、自律車両の軌道を決定するための機能性を含んでよい。例えば、プランニングモジュール228は、グランド平面を識別する区分化情報を受信してよく、自律車両が辿る軌道を生成してよい。
【0046】
センサ較正モジュール230は、環境に関して決定された区分化情報に少なくとも部分的に基づいて、1つ又は複数のセンサを較正するための機能性を含んでよい。例えば、LIDARモジュール204、カメラモジュール206、RADARモジュール208、及び/又はSONARモジュール210からのセンサデータは、(例えば、SLAM(同時位置特定及びマッピング(simultaneous localization and mapping))を使用して、位置及び/又は方位を推定するために使用されてよいが、自律車両は、環境における自律車両の位置を決定するための、慣性測定ユニット(IMU)及び/又はGPSユニットなどの、追加のセンサも含んでよい。いくつかの例においては、IMUは、自律車両が第1の位置にあることを示してよく、一方で、本明細書において論じられるLIDARデータの分析は、車両が第1の位置とは異なる第2の位置にあることを示す。センサ較正モジュール230は、位置の差を決定してよく、自律車両の位置、又は1つもしくは複数のセンサ内的特性もしくは外的特性を更新するために、1つ又は複数のセンサを調整又は較正してよい。
【0047】
注釈モジュール232は、本明細書において論じられる区分化情報を受信するための機能性を含んでよく、オブジェクトと関連付けられた情報を用いて、グランド平面、静的オブジェクト、及び/又は動的オブジェクトに注釈を施してよい。いくつかの例においては、注釈モジュール232は、例えば、技術者による人手の検証及び/又は調整のために、区分化情報をグラフィカルユーザインターフェース内に提供してよい。いくつかの例においては、注釈モジュール232は、本明細書において論じられるオブジェクトの分類を決定及び適用するための機能性を含んでよい。注釈モジュール232は、区分化及び分類のオペレーションを実行するために、ニューラルネットワークなど、任意の機械学習アルゴリズムを含んでよい。
【0048】
本明細書において説明されるように、例示的なニューラルネットワークは、生物学から発想を得たアルゴリズムであり、それは、入力データが一連の接続されたレイヤを通過するようにして、出力を生成する。ニューラルネットワークの一例は、畳み込みニューラルネットワーク(CNN)を含んでよい。CNNの各レイヤは、別のCNNを含んでよく、又は任意の数のレイヤを含んでよい。本開示との関連において理解されてよいように、ニューラルネットワークは、出力が学習されたパラメータに基づいて生成されるようなアルゴリズムの広範なクラスのことを指してよい、機械学習を利用してよい。
【0049】
ニューラルネットワークとの関連において論じられるが。本開示と矛盾しない任意のタイプの機械学習が、使用されてよい。例えば、機械学習アルゴリズムは、回帰アルゴリズム(例えば、最小2乗回帰(OLSR)、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応型回帰スプライン(MARS:multivariate adaptive regression splines)、局所的に推定された散布図平滑化(LOESS:locally estimated scatterplot smoothing))、インスタンスベースのアルゴリズム(例えば、リッジ回帰(ridge regression)最小絶対収縮及び選択演算子(LASSO:least absolute shrinkage and selection operator)、弾性ネット(elastic net)、最小角回帰(LARS:least-angle regression))、決定木アルゴリズム(例えば、分類回帰木(CART:classification and regression tree)、反復二分器3(ID3:iterative dichotomiser 3)、カイ2乗自動相互作用検出(CHAID:Chi-squared automatic interaction detection)、決定株(decision stump)、条件付き決定木)、ベイジアンアルゴリズム(例えば、ナイーブベイズ、ガウシアンナイーブベイズ、多項ナイーブベイズ(multinomial naive Bayes)、平均一依存エスティメータ(AODE:average one-dependence estimators)、ベイジアン信念ネットワーク(BNN:Bayesian belief network)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k平均法、kメジアン法、期待値最大化(EM)、階層的クラスタリング)、相関ルール学習アルゴリズム(association rule learning algorithm)(例えば、パーセプトロン(perceptron)、バックプロパゲーション(back-propagation)、ホップフィールドネットワーク(hopfield network)、放射基底関数ネットワーク(RBFN:Radial Basis Function Network))、深層学習アルゴリズム(例えば、深層ボルツマンマシン(DBM:Deep Boltzmann Machin)、深層信念ネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層オートエンコーダ(Stacked Auto-Encoder))、次元削減アルゴリズム(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小2乗回帰(PLSR)、サモンマッピング(Sammon Mapping)、多次元スケーリング(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、2次判別分析(QDA)、柔軟判別分析(FDA))、アンサンブルアルゴリズム(例えば、ブースティング、ブートストラップアグリゲーション(Bootstrapped Aggregation)((バギング(Bagging))、アダブースト(AdaBoost)、スタック汎化(Stacked Generalization)(ブレンディング(blending))、勾配ブースティングマシン(GBM:Gradient Boosting Machines)、勾配ブースト回帰木(GBRT:Gradient Boosted Regression Trees)、ランダムフォレスト)、SVM(サポートベクトルマシン)、教師あり学習、教師なし学習、半教師あり学習などを含んでよいが、それらに限定されない。
【0050】
コンピュータシステム202の追加の詳細が、
図11との関連において以下で提供される。
【0051】
図3は、ボクセル空間において表されたグランド領域を識別するための例示的なプロセス300のフローチャートを示している。
【0052】
オペレーション302において、プロセスは、データと関連付けられたボクセルを受信することを含むことができる。例えば、オペレーション302は、
図1との関連において上で論じられたように、ボクセル空間にマッピング又は変換されたLIDARデータを含む、1つ又は複数のボクセルを受信することを含むことができる。いくつかの例においては、オペレーション302は、ボクセル空間を受信することと、ボクセル空間の各ボクセルを解析することとを含むことができる。いくつかの例においては、ボクセルと関連付けられたデータは、LIDARデータ、カメラデータ、RADARデータ、SONARデータ、全体マップデータ、及びそれらの任意の組み合わせを含んでよい。例304は、例えば、LIDARデータ308を含む)ボクセル306を示している。
【0053】
オペレーション310において、プロセスは、面を1つ又は複数のボクセルと関連付けられたデータに適合させることを含むことができる。例312において、面314は、ボクセル306と関連付けられたLIDARデータ308に適合させられる。いくつかの例においては、オペレーション310は、面314と関連付けられた法線ベクトル316を決定することをさらに含んでよい。いくつかの例においては、オペレーション310は、LIDARデータ308の主成分分析を実行して、法線316に対応してよい、最小主成分を決定することを含んでよい。いくつかの例においては、概念的には、面314は、法線ベクトル316を決定することの一部として決定されてよいが、オペレーション310は、面314をLIDARデータ308に明確に適合させなくてよい。いくつかの例においては、オペレーション310は、ターゲットボクセルと関連付けられた近隣ボクセルに基づいて、ターゲットボクセルと関連付けられた面を決定することを含んでよい。いくつかの例においては、オペレーション310は、ボクセルと関連付けられたメッシュを決定することと、特定のボクセル(例えば、ボクセル306)と関連付けられた面を決定することとを含んでよい。
【0054】
オペレーション318において、プロセスは、基準方向を決定することを含むことができる。例320において、基準方向322は、自律車両324の方位に対応してよい。非限定的な例として、基準方向322は、自律車両324の高さ方向に沿った単位ベクトルを含んでよい。従って、自律車両324は、様々な面上(フラットな面、上り/下りする坂、傾斜面上など)を運行するので、基準方向322は、変化してよい。加えて、又は代わりに、オペレーション318は、自律車両324を中心とする座標系からボクセル空間306の座標系への座標変換を含んでよい。
【0055】
オペレーション326において、プロセスは、面法線ベクトルが基準方向の閾値内にあると決定することを含むことができる。例えば、閾値は、あらかじめ決定されてよく、又は自律車両324の位置、路面のタイプ、自律車両324の速度などに基づいて、変化してよい。例328において、面法線ベクトル316は、2つのベクトルが角度Θを形成する、面法線ベクトル316と基準方向322との間の内積を取ることによって、基準方向322と比較される。いくつかの例においては、閾値は、15度など、任意の角度になるように設定されてよく、Θが15度よりも大きい場合、ボクセルは、局所的にフラットなボクセルに対応しないと決定される。
【0056】
オペレーション330において、面法線ベクトル316が、基準方向の閾値内にある場合、プロセスは、ボクセルが局所的にフラットなボクセルであると決定することを含むことができる。オペレーション330は、ボクセルが局所的にフラットなボクセルであることを示すために、タグ又は識別子をボクセルと関連付けることを含んでよい。いくつかの例においては、タグ又は識別子は、特定のボクセルと関連付けられたLIDARデータに伝搬させることができる。
【0057】
オペレーション332において、プロセスは、クラスタリングを実行して、自律車両324のための運転可能な面に対応してよい、フラットな領域を決定することを含むことができる。例334は、ボクセル306を含んでよい、ボクセル空間336の代表的な上面図(例えば、x-y平面におけるボクセル空間336の単一のレイヤ)を示している。いくつかの例においては、ボクセル空間336は、本明細書において論じられるような、局所的にフラットなボクセルに対応すると決定された複数のボクセルを含む。領域拡張技法を使用して、オペレーション322は、局所的にフラットなボクセルと関連付けられたLIDARデータ338、340を含むように、クラスタを拡張してよい。いくつかの例においては、クラスタは、互いに隣接する、又は別の局所的にフラットなボクセルまでの距離が閾値距離内にある、局所的にフラットなボクセルを決定することによって拡張されて、第1のクラスタ342及び第2のクラスタ344を生成してよい。いくつかの例においては、オペレーション332は、自律車両324’に近接したクラスタが、1次グランドクラスタであると見なされるべきであると決定してよい。従って、1次グランドクラスタを拡張するとき、自律車両324’の位置が、シード点(seed point)に対応してよい。
【0058】
オペレーション346において、プロセスは、グランドクラスタを拡張するために、ボクセル空間において補間を行うことを含むことができる。いくつかの例においては、オペレーション346において拡張されるグランドクラスタは、1次グランドクラスタに対応することができ、それは、自律車両324’に近接したクラスタに対応してよい。オペレーション346の追加の詳細は、
図4との関連において提供される。
【0059】
図4は、グランドクラスタを拡張するために、ボクセル空間において補間を行うための、例示的なプロセス400のフローチャートを示している。
【0060】
オペレーション402において、プロセスは、グリッドにおけるグランドセルの平均高さを決定することを含むことができる。例404において、ボクセル空間336は、局所的にフラットなボクセルからなるクラスタを表す、上で論じられたような、第1のクラスタ342と、第2のクラスタ334とを含む。いくつかの例においては、プロセス400は、第1のクラスタ342と第2のクラスタ344が結合されて、単一のクラスタを形成すべきかどうかを決定するために、使用されることができる。いくつかの例においては、オペレーション402は、第1のクラスタ342における個々のボクセル内の点の平均高さを決定することを含むことができ、いくつかの例においては、オペレーション402は、クラスタ342におけるいくつか又は全てのボクセルの平均高さを決定することを含むことができる。いくつかの例においては、オペレーション402は、例えば、張り出しを表すオブジェクトを区別するために、グランドセルの高さを決定することを含むことができる。例404には、以下で論じられる細部406が含まれる。
【0061】
オペレーション408において、プロセスは、グランドセル内の点と、潜在的なグランドボクセルと関連付けられた点とについての平均高さ間の勾配を決定することを含むことができる。例410において、細部406は、第1のクラスタ342に含まれる第1のボクセル412と、第2のクラスタ344に含まれる第2のボクセル414とを示している。理解されてよいように、第1のボクセル412は、グランドボクセルに対応し、第2のボクセル414は、潜在的なグランドボクセルに対応する。第1のボクセル412と関連付けられた点416は、第1のボクセル412と関連付けられたLIDARデータの平均<x,y,z>座標と関連付けられてよい。いくつかの例においては、点416は、第1のボクセル412と関連付けられたLIDARデータの平均<x,y,z>座標に対応してよく、平均z値は、少なくとも部分的に、クラスタ342におけるボクセルのいくつか又は全ての平均高さ(例えば、平均z値)を計算するために、使用されてよい。いくつかの例においては、第2のボクセル414(例えば、潜在的なグランドボクセル)と関連付けられた点418は、第2のボクセル414と関連付けられたLIDARデータの平均<x,y,z>座標と関連付けられてよい。オペレーション408は、クラスタ342における点、又は全ての点の平均と、クラスタ344における点、又は点の平均との間の勾配を決定することを含む。いくつかの例においては、オペレーション408は、(例えば、本明細書において論じられるように、勾配を決定することに加えて、又はそれの代わりに)クラスタ344の平均z値が、クラスタ342の平均z値についての閾値内にあるかどうかを決定するために、クラスタ342及びクラスタ344の平均z値を決定することを含むことができる。
【0062】
オペレーション420において、プロセスは、勾配の成分が閾値を下回るかどうかを決定することを含むことができる。例422は、点416と点418との間の勾配又は傾斜を示す。例422に示される図は、例410に示される上面図の側面図に対応してよい。いくつかの例においては、傾斜は、点416と点418との間の水平距離426によって除算された高さの変化424(Δz)として、決定されることができる。従って、いくつかの例においては、傾斜は、第1のクラスタ342と関連付けられた平均<x,y,z>値と、第2のクラスタ344と関連付けられた平均<x,y,z>値とに少なくとも部分的に基づくことができる。
【0063】
オペレーション428において、プロセスは、グランドクラスタを拡張するために、点をグランドと関連付けることを含むことができる。例430は、例404における第1のクラスタ342から、例430における更新されたグランドクラスタ432への、グランドクラスタの拡張を示している。従って、プロセス400は、グランドクラスタを拡張してよく、それは、自律車両324’によって運転可能な領域のサイズを増大させる。さらに、グランドクラスタのサイズを増大させることは、オブジェクト区分化の間に無視されるデータの量を増加させてよく、それは、オブジェクトと見なされるボクセルの量を減少させることによって、処理を改善する。さらに、いくつかの例においては、グランドクラスタ内のセルの高さは、関心オブジェクトを識別して、静的オブジェクト及び動的オブジェクトをさらに識別するために、使用されることができる。即ち、グランドに近接した(例えば、グランド上に位置特定された)オブジェクトについては、オブジェクトの下限は、グランドの高さに対応してよい。
【0064】
図5は、レイキャスティング及び動的オブジェクト識別と関連付けられた例を示している。例502は、
図1に示された例136に対応する。いくつかの例においては、時間T
1におけるオブジェクト138、及び時間T
2におけるオブジェクト138’に対応する動きは、第1の時間に占有されており、第2の時間に占有されていないボクセル、及びそれとは反対のボクセルを決定することによって、識別されることができる。さらに、例504は、本明細書において説明されるレイキャスティングの詳細を示している。
【0065】
例504において、ベクトル144は、LIDARセンサ140から発し、様々なボクセルを通過して、オブジェクト146と関連付けられたデータを捕捉するように示されている。理解されてよいように、ベクトル144は、第2の時間T2と関連付けられ、それによって、オブジェクト138は、時間T1における第1の位置から、オブジェクト138’と関連付けられた、時間T2における第2の位置に移動している。従って、ベクトル144は、以前、時間T1においてはオブジェクト138を表すデータによって占有されていた、ボクセル506、508、510、512、514を通過する。さらに、本明細書において説明されるオペレーションは、ベクトル144が通過するボクセルのいくつか又は全てを決定して、以前は占有されていたボクセル506、508、510、512、514が、第2の時間T2においては占有されていないと決定することを含んでよい。従って、例504において示されるレイキャスティングは、オブジェクト138及び138’が動的オブジェクトであると決定するための追加の技法を提供する。
【0066】
さらに、本明細書において示されるレイキャスティング技法は、第2の時間T2において、ボクセル506、508、510、512、514をクリアするために、使用されることができる。従って、本明細書において説明される技法は、時間的な瞬間に維持されるべきデータの量を減少させるために、ならびにボクセル空間内において動的オブジェクトを検出及び区分化するためのオペレーションを改善するために、経時的にボクセル空間の状態を更新することができる。
【0067】
別の例においては、レイキャスティング技法は、局所的に捕捉されたLIDARデータを、以前に捕捉された全体マップデータと比較するために、使用されることができる。例えば、オブジェクト138は、全体マップデータ内に表されたオブジェクトに対応してよい。しかしながら、ベクトル144が、オブジェクト138を表すボクセルを通過する場合、ベクトル144が、局所的に捕捉されたLIDARデータを表すとき、オペレーションは、全体マップと局所マップとの間に差が存在すると決定することができる。いくつかの例においては、差は、全体マップが不正確であること、又は環境の状態が変化した(例えば、樹木を除去したことによって、物理的世界が変化した)ことを示してよい。この方式においては、全体マップと局所LIDARデータとの間の差が決定されるので、(差が、意見の一致によって(例えば、同じもしくは似たイベント又はデータの繰り返される観測によって)検証された場合、又はデータの信頼水準が、閾値量を上回る場合)差は、中央サーバにアップロードされて、全体マップデータに組み込まれ、他の車両に配送されることができる。
【0068】
図1、
図3、
図4、及び
図6~
図10は、本開示の実施形態に従った、例示的なプロセスを示している。これらのプロセスは、論理フローグラフとして示され、それの各オペレーションは、ハードウェア、ソフトウェア、又はそれらの組み合わせで実施されることができるオペレーションのシーケンスを表す。ソフトウェアとの関連において、オペレーションは、1つ又は複数のプロセッサによって実行されたとき、述べられたオペレーションを実行する、1つ又は複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行する、又は特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、及びデータ構造などを含む。オペレーションが説明される順序は、限定として解釈されることは意図されておらず、プロセスを実施するために、任意の数の説明されるオペレーションが、任意の順序で、及び/又は並列して、組み合わされることができる。
【0069】
図6は、本明細書において説明されるような、オブジェクト識別及び区分化に基づいて自律車両のための軌道を生成するための例示的なプロセス600を示している。例えば、プロセス600の一部又は全部は、本明細書において説明されるような、アーキテクチャ200内の、又は環境1100内の1つ又は複数の構成要素によって実行されることができる。
【0070】
オペレーション602において、プロセスは、環境と関連付けられたグランドボクセルを決定することを含むことができる。いくつかの例においては、このオペレーション602は、本明細書において論じられるように、局所的にフラットなボクセルを決定することと、グランドクラスタを拡張することと、処理を簡略化するために、グランドクラスタをボクセル空間から除去することとを含むことができる。
【0071】
オペレーション604において、プロセスは、環境と関連付けられたオブジェクトボクセルを決定することを含むことができる。いくつかの例においては、このオペレーション604は、本明細書において論じられるように、静的及び/又は動的オブジェクトを決定することを含むことができる。いくつかの例においては、このオペレーション604は、オブジェクトを区分化することと、オブジェクト分類又はタイプを決定するために、区分化されたオブジェクトを、畳み込みニューラルネットワークなどの、クラシファイヤに提供することとを含んでよい。
【0072】
オペレーション606において、プロセスは、グランド及び/又はオブジェクトに少なくとも部分的に基づいて、自律車両のための軌道を生成することを含むことができる。例えば、オペレーション606において生成された軌道は、自律車両によって運転可能な領域に対応してよい、グランドボクセル内に制約されてよい。さらに、オペレーション606において生成された軌道は、識別されたオブジェクトを回避してよい。いくつかの例においては、オペレーション606は、オペレーション604において決定された動的オブジェクトを追跡すること、及び/又は動的オブジェクトの軌道を予測することを含んでよい。さらに、オペレーション606において生成される軌道は、動的オブジェクトの予測される軌道に少なくとも部分的に基づいてよい。例えば、そのような予測される軌道は、オブジェクトを追跡すること、及びオブジェクトの挙動分類などに少なくとも部分的に基づいて、生成されてよい。
【0073】
オペレーション608において、プロセスは、オペレーション606において生成された軌道に沿って運転するように自律車両に命令するコマンドのシーケンスを生成することを含むことができる。いくつかの例においては、オペレーション608において生成されたコマンドは、軌道を運転するように自律車両を制御するために、自律車両に搭載されたコントローラに中継されることができる。自律車両との関連において論じられたが、プロセス600、ならびに本明細書において説明される技法及びシステムは、マシンビジョンを利用する様々なシステムに適用されることができる。
【0074】
図7は、経時的なボクセルデータの表現に基づいて、ボクセルマップをクリアするための例示的なプロセスを示している。例えば、プロセス700の一部又は全部は、本明細書において説明されるような、アーキテクチャ200内の、又は環境1100内の1つ又は複数の構成要素によって実行されることができる。
【0075】
オペレーション702において、プロセスは、第1の時間に、環境のLIDARデータを捕捉することを含むことができる。本明細書において論じられるように、環境のLIDARデータは、環境内に位置付けられた1つ又は多数のLIDARセンサからのLIDARデータを含んでよい。いくつかの例においては、このオペレーション702は、ノイズを除去するために、LIDARデータをフィルタリングすることを含んでよい。さらに、オペレーション702は、本明細書において論じられるように、LIDARデータをマッピングすること、変換すること、割り当てること、又は環境を表すボクセル空間と関連付けることを含んでよい。
【0076】
オペレーション704において、プロセスは、第1のLIDARデータと関連付けられたボクセルの第1のサブセットが、オブジェクトと関連付けられると決定することを含むことができる。上で論じられたように、このオペレーションは、グランドと関連付けられたボクセルを決定することと、潜在的なオブジェクトボクセルを隔離するために、グランドボクセルを区分化すること、除去すること、及び/又は除外することと、ボクセル空間内に表されたオブジェクトを決定するために、領域拡張技法を利用することとを含んでよい。上で論じられたように、個々のオブジェクトは、一意的なオブジェクト識別子と関連付けられてよく、それは、個々のオブジェクトと関連付けられた個々のボクセル及び/又はLIDARデータに関連付けられて、及び/又は割り当てられてよい。
【0077】
オペレーション706において、プロセスは、第2の時間に、環境の第2のLIDARデータを捕捉することを含むことができる。いくつかの例においては、オペレーション706は、オペレーション702において利用されたのと同じボクセル空間内において、第2の時間に捕捉されたLIDARデータを関連付けることを含んでよい。いくつかの例においては、LIDARデータは、捕捉の異なる時間と関連付けられたデータを効率的にフィルタリング及び/又はソートするために、次元として時間を含むことができる。いくつかの例においては、オペレーション706は、本明細書において論じられるように、グランドボクセル及びオブジェクトボクセルを決定することを含むことができる。
【0078】
オペレーション708において、プロセスは、第2のLIDARデータと関連付けられたベクトルが、ボクセルの第1のサブセットを通じてトラバース(traverse)すると決定することを含むことができる。例えば、
図5に示されるように、オペレーション708は、LIDARデータ点を捕捉することと関連付けられた、ボクセル空間を通るベクトルをトレースして、ベクトルが通過するボクセルを決定することを含むことができる。いくつかの例においては、オペレーション708は、ベクトルと関連付けられたボクセルが、オペレーション704において識別されたオブジェクトと関連付けられたボクセルと関連付けられると決定することを含むことができる。
【0079】
オペレーション710において、プロセスは、第2のLIDARデータと関連付けられたボクセルの第1のサブセットが占有されていないと決定することを含むことができる。例えば、このオペレーションは、ボクセルの第1のサブセットを通過するベクトルに基づいて、第2の時間におけるボクセルの第1のサブセットの占有を決定することを含むことができる。
【0080】
オペレーション712において、プロセスは、ボクセルの第1のサブセットを通じてトラバースする、第2のLIDARデータと関連付けられたベクトルに少なくとも部分的に基づいて、第2のLIDARデータを表すデータのボクセル空間をクリアすることを含むことができる。即ち、オペレーション712は、第2の時間に、ボクセルの第1のサブセットを占有されていないボクセルとして表すことを含むことができる。いくつかの例においては、クリアされたボクセルと関連付けられた情報は、オペレーション704において決定されたオブジェクトが動的オブジェクトであると決定するために、使用されることができる。
【0081】
図8は、経時的なボクセルデータの表現に基づいて、オブジェクトが動的オブジェクトであると決定するための例示的なプロセスを示している。例えば、プロセス800の一部又は全部は、本明細書において説明されるような、アーキテクチャ200内の、又は環境1100内の1つ又は複数の構成要素によって実行されることができる。
【0082】
オペレーション802において、プロセスは、オブジェクトが、第1の時間に、ボクセルの第1のサブセットと関連付けられると決定することを含むことができる。いくつかの例においては、オペレーション802は、本明細書において論じられるように、1つ又は複数のオブジェクトを識別することを含むことができる。いくつかの例においては、オペレーション802は、オブジェクトを識別するオブジェクト識別子を受信することと、オブジェクト識別子と関連付けられたボクセルを識別することとを含むことができる。同様に、オペレーション804において、プロセスは、オブジェクトが、第2の時間に、ボクセルの第2のサブセットと関連付けられると決定することを含むことができる。
【0083】
オペレーション806において、プロセスは、ボクセルの第1のサブセットの少なくとも一部の位置が、ボクセルの第2のサブセットの少なくとも一部の位置と異なると決定することを含むことができる。即ち、オブジェクトが、空間を通って移動するにつれて、従って、(例えば)オブジェクトを表すLIDARデータが、時間につれてボクセル空間の全体にわたって更新されるにつれて、オブジェクトと関連付けられたボクセルの占有が、時間につれて変化する。例えば、第1の時間にオブジェクトによって占有されておらず、第2の時間にオブジェクトによって占有されている(又はその反対である)ボクセルは、オブジェクトの動きを表してよい。このオペレーション806は、ボクセルの第1のサブセットの位置及び/又は占有をボクセルの第2のサブセットと比較して、ボクセルのサブセット間で共通しないボクセルを識別することを含むことができる。
【0084】
オペレーション808において、プロセスは、オブジェクトが動的オブジェクトであると決定することを含むことができる。例えば、オブジェクトと関連付けられたボクセルの占有及び/又は位置を経時的に決定することによって、オペレーション808は、ボクセル占有の変化が、例えば、動きに対応し、オブジェクトが動的オブジェクトであると決定することができる。即ち、いくつかの例においては、ボクセルの第1のサブセットとボクセルの第2のサブセットとの間における、ボクセル空間内のボクセルの位置及び/又は場所の差は、オブジェクトの運動に対応することができる。いくつかの例においては、データ捕捉又は処理におけるジッタ、ノイズ、又は誤差が、オブジェクトが動的オブジェクトであるとの識別をトリガすることを防止するために、オペレーション808は、差が閾値量を上回ると決定することを含む。いくつかの例においては、オブジェクトは、オペレーション806において決定された差に少なくとも部分的に基づいて、動的オブジェクトであると決定される。いくつかの例においては、オペレーション808は、オブジェクトが動的オブジェクトであると決定するために、占有情報及び/又はレイキャスティングと組み合わせて利用されてよい、例えば、オブジェクトのタイプ(例えば、自動車、ビルディング、樹木)を決定するために、オブジェクトを表すデータをニューラルネットワークに適用することをさらに含んでよい。
【0085】
オペレーション810において、プロセスは、動的オブジェクトの表示をトラッカ及び/又はプランナに提供することを含むことができる。例えば、本明細書において論じられるように、動的オブジェクトと関連付けられたオブジェクト識別子が、後続するオペレーションのために、トラッカ及び/又はプランナに提供されることができる。例えば、オペレーションは、追跡されるオブジェクトのスピード、位置、速度などを決定するために、様々なオブジェクトと関連付けられたボクセルの占有を、経時的に追跡することができる。
【0086】
図9は、マップ生成及び/又はセンサ較正を実行するための例示的なプロセスを示している。例えば、プロセス900の一部又は全部は、本明細書において説明されるような、アーキテクチャ200内の、又は環境1100内の1つ又は複数の構成要素によって実行されることができる。
【0087】
オペレーション902において、プロセスは、LIDARデータセットを受信することを含むことができる。いくつかの例においては、オペレーション902は、オペレーション102、302、及び/又は702に類似した、又はそれらと同じオペレーションを含んでよい。
【0088】
オペレーション904において、プロセスは、LIDARデータセットと関連付けられた静的ボクセルを決定することを含むことができる。いくつかの例においては、オペレーション904は、例えば、オペレーション112、122などにおいて説明されたオペレーションに類似した、又はそれらと同じオペレーションを含んでよい。いくつかの例においては、グランド面は、オペレーション904の目的で、静的オブジェクトのタイプと見なされてよい。
【0089】
オペレーション906において、プロセスは、マップ生成及び/又はセンサ較正のために、静的ボクセルの表示を提供することを含むことができる。例えば、オペレーション906は、環境の特徴を識別するために、経時的にデータを収集することを含むことができる。マップ生成の場合、環境のマップを生成するために、静的オブジェクトと関連付けられた情報が、提供されることができる。センサ較正の場合、オペレーション906は、GPSセンサ、慣性測定ユニット(IMU)、ホイールスピードセンサなどの、第1のセンサから位置を決定することを含むことができる。さらに、オペレーションは、全体マップ上における自律車両の位置を決定するために、静的オブジェクトの相対位置を静的オブジェクトの知られた位置と比較することによって、(例えば、LIDARデータセットを捕捉している)自律車両の第2の位置を決定することを含んでよい。非限定的な例として、LIDARセンサデータを含む、様々なセンサデータは、いくつか名前を挙げると、SLAM、バンドル調整、ベイジアンフィルタリング、バッグオブワード、又はループ閉鎖アルゴリズムなどの技法を使用して、位置特定を実行するために使用されてよい。第1の位置と第2の位置との間の差に基づいて、オペレーションは、自律車両の場所のより正確な決定を提供するために、センサを較正すること、又は場所の位置を調整することを含むことができる。
【0090】
さらに、本明細書において論じられるオペレーションは、全体マップに関して自律車両を位置特定するために使用されることができる。例えば、ボクセル空間は、以前に捕捉されたセンサデータを表すことができる、全体マップに対応するLIDARデータを用いて、初期化されることができる。自律車両が、LIDARデータを捕捉しながら、空間を通って運行するとき、オペレーションは、局所的に捕捉された特徴を、全体マップ上に存在する特徴と比較することによって、全体マップ内において自律車両を位置特定することができる。そのようなプロセスは、上で論じられたもの(例えば、SLAM、ベイジアンフィルタリング、及びバンドル調整などの形態)に類似してよい。いくつかの例においては、オペレーションは、局所マップと全体マップとの間の差を決定することができる。非限定的な例として、全体マップが、占有されているボクセルによって決定されるような、局所マップ内に存在しないオブジェクトの存在を示す場合について考える。そのような場合においては、差は、異なる状態(例えば、占有された状態又は占有されていない状態)を有する、多数のボクセルを含んでよい。差の量が、第1の閾値を上回るが、第2の閾値を下回る場合、差は、駐車していた自動車が移動した、樹木の除去、ごみ収集日にごみ箱が出されているなど、環境の変化であると見なされてよく、差は、マークされ、全体マップに組み込まれるように、中央サーバにアップロードされることができる。さらに、レイキャスティングオペレーションが、実行されるとき、より詳細なデータが、中央サーバにアップロードされ、全体マップに組み込まれることができる。いくつかの例においては、差の数が、第2の閾値を上回る場合、オペレーションは、位置特定が失敗したと決定することができ、全体マップデータを無視し、局所的に捕捉されたLIDARデータだけを使用してオペレーションしてよい。
【0091】
図10は、ボクセル表現に基づいたオブジェクトの識別に基づいて、オブジェクトに注釈を施すための例示的なプロセスを示している。例えば、プロセス1000の一部又は全部は、本明細書において説明されるような、アーキテクチャ200内の、又は環境1100内の1つ又は複数の構成要素によって実行されることができる。
【0092】
オペレーション1002において、プロセスは、LIDARデータセットを受信することを含むことができる。このオペレーションは、本明細書において論じられるように、LIDARデータセットをボクセル空間にマッピングすることを含んでよい。
【0093】
オペレーション1004において、プロセスは、LIDARデータセットと関連付けられたグランドボクセルを決定することを含むことができる。このオペレーションは、本明細書において論じられるオペレーションに従って、グランドボクセルを決定することを含んでよい。
【0094】
オペレーション1006において、プロセスは、LIDARデータセットと関連付けられたオブジェクトボクセルを決定することを含むことができる。本明細書において論じられるように、オペレーション1006は、静的及び動的オブジェクトを決定することと、本明細書において論じられるように、オブジェクト識別子を、ボクセル空間内にオブジェクトを表すボクセルと関連付けることとを含んでよい。
【0095】
オペレーション1008において、プロセスは、オブジェクトボクセルに対して区分化を実行することを含むことができる。いくつかの例においては、オペレーション1008は、各個別オブジェクトの境界を画定する3次元境界ボックスを生成することを含んでよい。いくつかの例においては、境界ボックスは、例えば、オブジェクト識別子と関連付けられたボクセルと関連付けられた、ボクセル空間内の空間の体積を決定することによって、生成されることができる。
【0096】
オペレーション1010において、プロセスは、後続する注釈のために、区分化されたオブジェクトボクセルを提供することを含むことができる。いくつかの例においては、オペレーション1010は、区分化されたオブジェクトボクセル(及び例えば、関連付けられた3次元境界ボックス)を、人手の注釈サービスに提供することを含むことができ、それによって、区分化されたオブジェクトは、再検討のために、グラフィカルユーザインターフェース上に提示される。ユーザは、例えば、区分化情報又は境界ボックスの1つ又は複数の態様を調整してよい。いくつかの例においては、区分化されたオブジェクトボクセルは、分類タイプを含むことができ、注釈サービスは、区分化されたボクセルと関連付けられた分類タイプを確認又は編集してよい。いくつかの例においては、オペレーション1010は、区分化されたオブジェクトボクセルを、自動分類及び注釈のために、深層学習ネットワークに提供することを含んでよい。
【0097】
図11は、本開示が全体的又は部分的に実施されてよい、環境1100を示している。環境1100は、記憶装置1104と、1つ又は複数のプロセッサ1106と、メモリ1108と、オペレーティングシステム1110とを備える、1つ又は複数のコンピュータシステム1102を示している。記憶装置1104、プロセッサ1106、メモリ1108、及びオペレーティングシステム1110は、通信インフラストラクチャ1112上において、通信可能に結合されてよい。任意選択で、コンピュータシステム1102は、入力/出力(I/O)デバイス1114を介して、ユーザ又は環境と相互作用してよく、通信インフラストラクチャ1112を介して、ネットワーク1116上の1つ又は複数の他のコンピューティングデバイスとも相互作用してよい。オペレーティングシステム1110は、1つ又は複数のアプリケーション1118を制御するために、他の構成要素と相互作用してよい。
【0098】
いくつかの例においては、コンピュータシステム1102は、
図2のコンピュータシステム202に対応してよい。さらに、コンピュータシステム202は、本明細書において論じられるような、ボクセルベースの区分化を実行するために、任意のハードウェア及び/又はソフトウェアを実施して、モジュール204、206、208、210、212、214、216、218、220、222、224、226、228、232を実施してよい。
【0099】
本明細書において説明されるシステム及び方法は、ソフトウェアもしくはハードウェア、又はそれらの任意の組み合わせで、実施されることができる。本明細書において説明されるシステム及び方法は、物理的又は論理的に互いに別々であってよく、又は別々でなくてよい、1つ又は複数のコンピューティングデバイスを使用して、実施されることができる。方法は、オンプレミスハードウェア、オンプレミス仮想システム、又はホステッドプライベートインスタンスとして配置された構成要素によって実行されてよい。加えて、本明細書において説明される方法の様々な態様は、他の機能と組み合わされてよく、又は他の機能に合併されてよい。
【0100】
本明細書において説明されるシステム及び方法を実施するための、例示的な環境及びコンピュータ化されたシステムが、
図11に示されている。プロセッサ又はコンピュータシステムは、特に、本明細書において説明される方法のうちのいくつか又は全てを実行するように構成されることができる。いくつかの実施形態においては、方法は、1つ又は複数のコンピュータ又はプロセッサによって、部分的又は全体的に自動化されることができる。本明細書において説明されるシステム及び方法は、ハードウェア、ファームウェア、及び/又はソフトウェアのいずれかの組み合わせを使用して実施されてよい。本明細書において説明される本システム及び方法(又はそれらのいずれかの部分もしくは機能)は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを使用して実施されてよく、1つ又は複数のコンピュータシステム又は他の処理システムで実施されてよい。いくつかの実施形態においては、示されたシステム要素は、単一のハードウェアデバイスに組み合わされること、又は複数のハードウェアデバイスに分割されることができる。多数のハードウェアデバイスが、使用される場合、ハードウェアデバイスは、物理的に互いに近接して、又は遠く離れて配置されることができる。説明され、示される方法の実施形態は、説明的であることが意図されており、限定的であることは意図されていない。例えば、方法のステップのうちのいくつか又は全ては、異なる実施形態においては、組み合わされること、再配置されること、及び/又は省かれることができる。
【0101】
例示的な一実施形態においては、本明細書において説明されるシステム及び方法は、本明細書において説明される機能性を実施することが可能な1つ又は複数のコンピュータシステムを対象としてよい。例示的なコンピューティングデバイスは、OS X(商標)、iOS(商標)、Linux(商標)、Android(商標)、及びMicrosoft(商標) Windows(商標)などの、しかし、それらに限定されない、任意のオペレーティングシステムを動作させる、パーソナルコンピュータ(PC)システムであってよいが、それに限定されない。しかしながら、本明細書において説明されるシステム及び方法は、これらのプラットフォームに限定されなくてよい。代わりに、本明細書において説明されるシステム及び方法は、任意の適切なオペレーティングシステムを動作させる、任意の適切なコンピュータシステム上において実施されてよい。コンピューティングデバイス、通信デバイス、モバイルフォン、スマートフォン、テレフォニデバイス、電話、パーソナルデジタルアシスタント(PDA)、パーソナルコンピュータ(PC)、ハンドヘルドPC、双方向テレビ(iTV)、デジタルビデオレコーダ(DVD)、クライアントワークステーション、シンクライアント、シッククライアント、プロキシサーバ、ネットワーク通信サーバ、リモートアクセスデバイス、クライアントコンピュータ、サーバコンピュータ、ルータ、ウェブサーバ、データ、メディア、オーディオ、ビデオ、テレフォニ、又はストリーミング技術サーバなどの、しかし、それらに限定されない、本明細書において説明されるシステム及び方法の他の構成要素も、コンピューティングデバイスを使用して実施されてよい。サービスは、例えば、限定されることなく、双方向テレビ(iTV)、ビデオオンデマンドシステム(VOD)を使用して、またデジタルビデオレコーダ(DVR)又は他のオンデマンド視聴システムを介して、オンデマンドで提供されてよい。
【0102】
システムは、1つ又は複数のプロセッサを含んでよい。プロセッサは、通信バス、クロスオーバーバー、又はネットワークなどの、しかし、それらに限定されない、通信インフラストラクチャに接続されてよい。プロセスとプロセッサは、同じ物理的ロケーションに配置される必要はない。言い換えると、プロセスは、例えば、LAN又はWAN接続上において、1つ又は複数の地理的に遠いプロセッサにおいて、実行されることができる。コンピューティングデバイスは、ディスプレイユニット上に表示するために、グラフィックス、テキスト、及び他のデータを通信インフラストラクチャから転送してよい、ディスプレイインターフェースを含んでよい。
【0103】
コンピュータシステムは、メインメモリ、ランダムアクセスメモリ(RAM)、及び2次メモリなどを含んでもよいが、それらに限定されない。2次メモリは、例えば、ハードディスクドライブ、及び/又はコンパクトディスクドライブCD-ROMなどのリムーバブル記憶ドライブなどを含んでよい。リムーバブル記憶ドライブは、リムーバブル記憶ユニットから読み取ってよく、及び/又はリムーバブル記憶ユニットに書き込んでよい。理解されてよいように、リムーバブル記憶ユニットは、コンピュータソフトウェア及び/又はデータをそこに記憶した、コンピュータ使用可能記憶媒体を含んでよい。いくつかの実施形態においては、マシンアクセス可能媒体とは、コンピュータによってアクセス可能なデータを記憶するために使用される任意の記憶デバイスのことであってよい。マシンアクセス可能媒体の例は、例えば、限定されることなく、磁気ハードディスク、フロッピディスク、コンパクトディスクリードオンリメモリ(CD-ROM)もしくはデジタル多用途ディスク(DVD)などの光ディスク、磁気テープ、及び/又はメモリチップなどを含んでよい。
【0104】
プロセッサは、データを記憶するための1つもしくは複数のデータ記憶デバイスを含んでもよく、又はそれらと通信するように動作可能に結合されてよい。そのようなデータ記憶デバイスは、非限定的な例として、(内臓ハードディスク及びリムーバブルディスクを含む)磁気ディスク、光磁気ディスク、光ディスク、リードオンリメモリ、ランダムアクセスメモリ、ならびに/又はフラッシュストレージを含むことができる。コンピュータプログラム命令及びデータを有形に具体化するのに適した記憶デバイスも、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスなどの、半導体メモリデバイス、内臓ハードディスク及びリムーバブルディスクなどの、磁気ディスク、光磁気ディスク、ならびにCD-ROM及びDVD-ROMディスクを含む、不揮発性メモリの全ての形態を含むことができる。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)によって補足されること、又はASIC内に組み込まれることができる。
【0105】
処理システムは、コンピュータ化されたデータ記憶システムと通信することができる。データ記憶システムは、非リレーショナルデータストア、又はMySQL(商標)もしくは他のリレーショナルデータベースなどのリレーショナルデータストアを含むことができる。他の物理的及び論理的データベースタイプが、使用されることができる。データストアは、Microsoft SQL Server(商標)、Oracle(商標)、IBM DB2(商標)、SQLITE(商標)、又はリレーショナルもしくは他の方式の他の任意のデータベースソフトウェアなどの、データベースサーバであってよい。データストアは、構文タグを識別する情報と、構文タグを演算するのに必要とされる任意の情報とを記憶してよい。いくつかの実施形態においては、処理システムは、オブジェクト指向プログラミングを使用してよく、データをオブジェクト内に記憶してよい。これらの実施形態においては、処理システムは、オブジェクトリレーショナルマッパ(ORM)を使用して、データオブジェクトをリレーショナルデータベース内に記憶してよい。本明細書において説明されるシステム及び方法は、任意の数の物理データモデルを使用して、実施されることができる。例示的な一実施形態においては、リレーショナルデータベース管理システム(RDBMS)が、使用されることができる。それらの実施形態においては、RDBMSにおけるテーブルは、座標を表す列を含むことができる。経済的システムの場合、会社、製品などを表すデータが、RDBMSにおけるテーブル内に記憶されることができる。テーブルは、それらの間の事前定義された関係を有することができる。テーブルは、座標と関連付けられた付加物も有することができる。
【0106】
例示的な代替実施形態においては、2次メモリは、コンピュータプログラム又は他の命令が、コンピュータシステムにロードされることを可能にするための、他の類似のデバイスを含んでよい。そのようなデバイスは、例えば、リムーバブル記憶ユニット及びインターフェースを含んでよい。そのようなものの例は、(例えば、ビデオゲームデバイスに見出されるものなどの、しかし、それらに限定されない)プログラムカートリッジ及びカートリッジインターフェース、(例えば、消去可能プログラマブルリードオンリメモリ(EPROM)、又はプログラマブルリードオンリメモリ(PROM)及び関連付けられたソケットなどの、しかし、それらに限定されない)リムーバブルメモリチップ、ならびにソフトウェア及びデータがリムーバブル記憶ユニットからコンピュータシステムに転送されることを可能にしてよい、他のリムーバブル記憶ユニット及びインターフェースを含んでよい。
【0107】
コンピューティングデバイスは、マイクロフォンなどの音声入力デバイス、タッチスクリーン、カメラなどのジェスチャ認識デバイス、他の自然なユーザインターフェース、マウス、又はデジタイザなどの他のポインティングデバイス、キーボード、又は他のデータ入力デバイスなどの、しかし、それらに限定されない、入力デバイスも含んでよい。コンピューティングデバイスは、ディスプレイ、及びディスプレイインターフェースなどの、しかし、それらに限定されない、出力デバイスも含んでよい。コンピューティングデバイスは、通信インターフェース、ケーブル、及び通信経路などの、しかし、それらに限定されない、入力/出力(I/O)デバイスを含んでよい。これらのデバイスは、ネットワークインターフェースカード、及びモデムを含むが、それらに限定されない。通信インターフェースは、ソフトウェア及びデータが、コンピュータシステムと1つ又は複数の外部デバイスとの間で転送されることを可能にしてよい。
【0108】
1つ又は複数の実施形態においては、コンピューティングデバイスは、自動車システムに動作可能に結合されてよい。そのような自動車システムは、人手でオペレーションされてよく、半自律的であってよく、又は完全に自律的であってよい。そのような実施形態においては、入力及び出力デバイスは、加速、制動、及びステアリングなどの、しかし、それらに限定されない、自動車機能を制御するための、1つ又は複数の画像捕捉デバイス、コントローラ、マイクロコントローラ、及び/又は他のプロセッサを含んでよい。さらに、そのような実施形態における通信インフラストラクチャは、コントローラエリアネットワーク(CAN)バスも含んでよい。
【0109】
1つ又は複数の実施形態においては、コンピューティングデバイスは、任意のマシンビジョンベースのシステムに動作可能に結合されてよい。例えば、そのようなマシンベースのビジョンシステムは、人手でオペレーションされる、半自律的な、又は完全に自律的な産業用又は農業用ロボット、家庭用ロボット、検査システム、セキュリティシステムなどを含むが、それらに限定されない。即ち、本明細書において説明される実施形態は、1つの特定の状況に限定されず、マシンビジョンを利用する任意のアプリケーションに適用可能であってよい。
【0110】
1つ又は複数の実施形態においては、本実施形態は、1つ又は複数のコンピュータネットワークの環境において実践されることができる。ネットワークは、プライベートネットワーク、もしくはパブリックネットワーク(例えば、以下で説明されるような、インターネット)、又は両方の組み合わせを含むことができる。ネットワークは、ハードウェア、ソフトウェア、又は両方の組み合わせを含んでよい。
【0111】
遠隔通信指向の観点からは、ネットワークは、通信施設によって相互接続されたハードウェアノードのセットとして説明されることができ、1つ又は複数のプロセス(ハードウェア、ソフトウェア、又はそれらの組み合わせ)が、そのような各ノードにおいて機能する。プロセスは、プロセス間通信経路を使用する、それらの間の通信経路を介して、互いに情報を相互通信し、交換することができる。これらの経路上においては、適切な通信プロトコルが、使用される。
【0112】
本実施形態に従った例示的なコンピュータ及び/又は遠隔通信ネットワーク環境は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせを含んでよい、ノードを含んでよい。ノードは、通信ネットワークを介して、相互接続されてよい。各ノードは、ノードに組み込まれたプロセッサによって実行可能な1つ又は複数のプロセスを含んでよい。例えば、単一のプロセスが、多数のプロセッサによって実行されてよく、又は多数のプロセスが、単一のプロセッサによって実行されてよい。加えて、ノードの各々は、ネットワークと外部世界との間のインターフェースポイントを提供してよく、サブネットワークの集まりを含んでよい。
【0113】
例示的な実施形態においては、プロセスは、任意の通信プロトコルを通して通信をサポートするプロセス間通信経路を通して、互いに通信してよい。経路は、順次的又は並列的に、連続的又は断続的に機能してよい。経路は、多くのコンピュータによって使用される標準的な並列命令セットに加えて、通信ネットワークに関して本明細書において説明される、通信規格、プロトコル、又は技術のいずれかを使用することができる。
【0114】
ノードは、処理機能を実行することが可能な任意のエンティティを含んでよい。実施形態とともに使用されることができるそのようなノードの例は、(パーソナルコンピュータ、ワークステーション、サーバ、もしくはメインフレームなどの)コンピュータ、(パーソナルデジタルアシスタント(PDA)、処理能力を有するモデムセルフォン、BlackBerry(商標)デバイスを含む無線電子メールデバイスなどの)ハンドヘルド無線デバイス及び有線デバイス、(スキャナ、プリンタ、ファクシミリマシン、もしくは多機能文書マシンなどの)文書処理デバイス、又は説明されたように、プロセッサの集まりがそれに接続される(ローカルエリアネットワークもしくはワイドエリアネットワークなどの)複合エンティティを含む。例えば、本開示との関連において、ノード自体が、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、(仮想プライベートネットワーク(VPN)などの)プライベートネットワーク、又はネットワークの集まりであることができる。
【0115】
ノード間の通信は、通信ネットワークによって可能にされてよい。ノードは、通信ネットワークを用いて、連続的又は断続的に接続されてよい。例として、本開示との関連において、通信ネットワークは、適切な帯域幅及び情報セキュリティを提供する、デジタル通信インフラストラクチャであることができる。
【0116】
通信ネットワークは、任意のタイプの規格、プロトコル、又は技術を使用する、任意の周波数における、有線通信能力、無線通信能力、又は両方の組み合わせを含むことができる。加えて、本実施形態においては、通信ネットワークは、プライベートネットワーク(例えば、VPN)、又はパブリックネットワーク(例えば、インターネット)であることができる。
【0117】
通信ネットワークによって使用される例示的な無線プロトコル及び技術の非包括的リストは、Bluetooth(商標)、汎用パケット無線サービス(GPRS)、セルラデジタルパケットデータ(CDPD)、モバイルソリューションプラットフォーム(MSP)、マルチメディアメッセージング(MMS)、無線アプリケーションプロトコル(WAP)、符号分割多元接続(CDMA)、ショートメッセージサービス(SMS)、無線マークアップ言語(WML)、ハンドヘルドデバイスマークアップ言語(HDML)、無線用バイナリランタイム環境(BREW)、無線アクセスネットワーク(RAN)、及びパケット交換コアネットワーク(PS-CN)を含んでよい。また、様々な世代の無線技術が含まれる。通信ネットワークによって使用される主に無線プロトコル及び技術の例示的な非包括的リストは、非同期転送モード(ATM)、高度化された内部ゲートウェイルーティングプロトコル(EIGRP:enhanced interior gateway routing protocol)、フレームリレー(FR)、高レベルデータリンク制御(HDLC)、インターネット制御メッセージプロトコル(ICMP)、内部ゲートウェイルーティングプロトコル(IGRP)、ネットワーク間パケット交換(IPX)、ISDN、ポイントツーポイントプロトコル(PPP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ルーティング情報プロトコル(RIP)、及びユーザデータグラムプロトコル(UDP)を含む。当業者が認識するように、他の任意の知られた、又は予想される無線又は有線プロトコル及び技術が、使用されることができる。
【0118】
本開示の実施形態は、本明細書におけるオペレーションを実行するための装置を含んでよい。装置は、所望の目的のために特別に構築されてよく、又はそれは、デバイス内に記憶されたプログラムによって選択的に活性化又は再構成される、汎用デバイスを備えてよい。
【0119】
1つ又は複数の実施形態においては、本実施形態は、マシン実行可能命令で具体化される。命令は、命令を用いてプログラムされる処理デバイス、例えば、汎用又は専用プロセッサに、本開示のステップを実行させるために、使用されることができる。あるいは、本開示のステップは、ステップを実行するための配線論理を含む特定のハードウェア構成要素によって、又はプログラムされたコンピュータ構成要素とカスタムハードウェア構成要素の任意の組み合わせによって、実行されることができる。例えば、本開示は、上で概要説明されたような、コンピュータプログラム製品として、提供されることができる。この実施形態においては、実施形態は、命令がその上に記憶されたマシン可読媒体を含むことができる。命令は、例示的な本実施形態に従って、プロセス又は方法を実行するように、1つ又は複数の任意のプロセッサ(又は他の電子デバイス)をプログラムするために、使用されることができる。加えて、本開示は、ダウンロードされ、コンピュータプログラム製品上に記憶されることもできる。ここでは、プログラムは、通信リンク(例えば、モデム又はネットワーク接続)を介して、搬送波又は他の伝搬媒体内に具体化されたデータ信号を用いて、リモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に転送されることができ、最終的に、そのような信号は、後続する実行のために、コンピュータシステム上に記憶されてよい。
【0120】
方法は、コンピュータ又は任意の命令実行システムによる使用のために、又はそれらとの関連において、プログラムコードを提供する、コンピュータ使用可能又は可読記憶媒体から取得可能な、コンピュータプログラム製品において実施されることができる。コンピュータ使用可能又は可読記憶媒体は、コンピュータ、もしくは命令実行システム、装置、もしくはデバイスによる使用のために、又はそれらとの関連において、プログラムを含むこと、又は記憶することができる、任意の装置であることができる。
【0121】
対応するプログラムコードを記憶及び/又は実行するのに適したデータ処理システムは、メモリ要素などのコンピュータ化されたデータ記憶デバイスに直接的又は間接的に結合された、少なくとも1つのプロセッサを含むことができる。(キーボード、ディスプレイ、ポインティングデバイスなどを含むが、それらに限定されない)入力/出力(I/O)デバイスが、システムに結合されることができる。データ処理システムが、介在するプライベート又はパブリックネットワークを通して、他のデータ処理システム、又はリモートプリンタもしくは記憶デバイスに結合されることを可能にするために、ネットワークアダプタも、システムに結合されてよい。ユーザとの相互作用を提供するために、LCD(液晶ディスプレイ)などの表示デバイス、又は情報をユーザに表示するための別のタイプのモニタ、ならびにユーザがそれによって入力をコンピュータに提供することができる、キーボード、及びマウス又はトラックボールなどの入力デバイスを備えるコンピュータ上において、特徴が実施されることができる。
【0122】
コンピュータプログラムは、コンピュータにおいて直接的又は間接的に使用されることができる、命令のセットであることができる。本明細書において説明されるシステム及び方法は、コンパイル言語又はインタープリタ言語を含む、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)などの、ウェブアプリケーションフレームワークを使用して、実施されることができる。
【0123】
命令からなるプログラムの実行に適したプロセッサは、任意の種類のコンピュータの、汎用及び専用マイクロプロセッサ、ならびに単独のプロセッサ、又は多数のプロセッサもしくはコアのうちの1つを含むが、それらに限定されない。プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、両方、又は本明細書において説明されるデータ記憶デバイスの任意の組み合わせなどの、コンピュータ化されたデータ記憶デバイスから、命令及びデータを受信し、記憶してよい。プロセッサは、電子デバイスの動作及び実行を制御するように動作する、任意の処理回路又は制御回路を含んでよい。
【0124】
本明細書において説明されるシステム、モジュール、及び方法は、ソフトウェア要素又はハードウェア要素の任意の組み合わせを使用して、実施されることができる。本明細書において説明されるシステム、モジュール、及び方法は、単独で、又は互いに組み合わさって動作する、1つ又は複数の仮想マシンを使用して、実施されることができる。物理的コンピューティングマシンプラットフォームを、ハードウェアコンピューティングプラットフォーム又はホスト上において動作する仮想化ソフトウェアの制御下で実行される、仮想マシンにカプセル化するために、任意の適用可能な仮想化ソリューションが、使用されることができる。仮想マシンは、仮想システムハードウェアとゲストオペレーティングシステムソフトウェアの両方を有することができる。
【0125】
本明細書において説明されるシステム及び方法は、データサーバなどのバックエンドコンポーネントを含む、又はアプリケーションサーバもしくはインターネットサーバなどのミドルウェアコンポーネントを含む、又はグラフィカルユーザインターフェースもしくはインターネットブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含む、又はそれらの任意の組み合わせを含む、コンピュータシステムにおいて実施されることができる。システムの構成要素は、通信ネットワークなど、デジタルデータ通信の任意の形態又は媒体によって接続されることができる。通信ネットワークの例は、例えば、LAN、WAN、ならびにインターネットを形成するコンピュータ及びネットワークを含む。
【0126】
本開示の1つ又は複数の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース又はプログラマブル家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成を用いて実践されてよい。本明細書において説明されるシステム及び方法は、ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境において実践されてもよい。
【0127】
「コンピュータプログラム媒体」及び「コンピュータ可読媒体」という用語は、リムーバブル記憶ドライブ、ハードディスクドライブ内に設置されたハードディスクなどの、しかし、それらに限定されない、媒体を一般に指すために、使用されてよい。これらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステムに提供してよい。本明細書において説明されるシステム及び方法は、そのようなコンピュータプログラム製品を対象としてよい。
【0128】
「一実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」などに対する言及は、本開示の実施形態が、特定の特徴、構造、又は特性を含んでよいが、あらゆる実施形態が、特定の特徴、構造、又は特性を必ずしも含むわけではないことを示してよい。さらに、「一実施形態においては」又は「例示的な実施形態においては」という句の繰り返される使用は、同じ実施形態を必ずしも指しているわけではないが、同じ実施形態を指してもよい。同様に、「例」に対する言及は、本開示の様々な例が、特定の特徴、構造、又は特性を含んでよいが、あらゆる例が、特定の特徴、構造、又は特性を必ずしも含むわけではないことを示してよい。さらに、「いくつかの例においては」という句の繰り返される使用は、同じ例を必ずしも指しているわけではないが、同じ例を指してもよい。
【0129】
説明及び特許請求の範囲において、「結合される」及び「接続される」という用語が、それらの派生形とともに、使用されてよい。これらの用語は、互いに同義語として意図されていなくてよいことが、理解されるべきである。むしろ、特定の実施形態においては、「接続される」は、2つ以上の要素が、互いに物理的又は電気的に直接接触していることを示すために、使用されてよい。「結合される」は、2つ以上の要素が、物理的又は電気的に直接接触していることを意味してよい。しかしながら、「結合される」は、2つ以上の要素が、互いに直接接触しておらず、それでもなお、互いに協力し、又は相互作用することを意味してもよい。
【0130】
ここでは、また一般に、アルゴリズムは、所望の結果にいたる、行為又はオペレーションの自己矛盾のないシーケンスであると見なされてよい。これらは、物理量の物理的オペレーションを含む。必ずではないが、通常、これらの量は、記憶され、転送され、組み合わされ、比較され、他の方法でオペレーションされることが可能な、電気又は磁気信号の形態を取る。主として、共通使用の理由で、これらの信号を、ビット、値、要素、シンボル、文字、項、又は数などと呼ぶことが、時には便利であることが分かっている。しかしながら、これら及び類似の用語の全ては、適切な物理量と関連付けられるべきであり、これらの量に適用される便利なラベルにすぎないことが、理解されるべきである。
【0131】
特に別段の指摘がない限り、本明細書全体において、「処理する」、「計算する」、「算定する」、又は「決定する」などの用語は、コンピューティングシステムのレジスタ及び/又はメモリ内の電子的などの物理量として表されるデータをオペレーション及び/又は変換して、コンピュータシステムのメモリ、レジスタ、又は他のそのような情報記憶、伝送、もしくは表示デバイス内の物理量として同様に表される他のデータにする、コンピュータもしくはコンピューティングシステム、又は類似の電子コンピューティングデバイスの、アクション及び/又はプロセスを指すことが、理解されてよい。
【0132】
同様の方式で、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理して、その電子データを、レジスタ及び/又はメモリ内に記憶されてよい他の電子データに変換する、任意のデバイス、又はデバイスの一部を指してよい。非限定的な例として、「プロセッサ」は、中央処理ユニット(CPU)、又はグラフィカル処理ユニット(GPU)であってよい。「コンピューティングプラットフォーム」は、1つ又は複数のプロセッサを備えてよい。本明細書において使用されるとき、「ソフトウェア」プロセスは、例えば、タスク、スレッド、及びインテリジェントエージェントなどの、経時的に仕事を実行するソフトウェアエンティティ及び/又はハードウェアエンティティを含んでよい。また、各プロセスは、命令を順次的又は並列的、連続的又は断続的に実施するための、多数のプロセスを指してよい。「システム」及び「方法」という用語は、システムが1つ又は複数の方法を具体化してよく、方法がシステムと見なされてよい限り、本明細書においては、交換可能に使用される。
【0133】
1つ又は複数の実施形態が、説明されたが、それらの様々な改変、追加、置換、及び均等物が、本開示の範囲内に含まれる。
【0134】
実施形態の説明において、それの一部を形成する添付の図面に対する参照が行われ、それは、特許請求される発明の特定の実施形態を実例として示している。他の実施形態が使用されてよく、構造的変更などの変更又は改変が行われてよいことが、理解されるべきである。そのような実施形態、変更又は改変は、意図された特許請求される発明に関する範囲からの逸脱であるとは限らない。ステップは、本明細書においては、ある順序で提示されてよいが、いくつかのケースにおいては、順序付けは、ある入力が、説明されるシステム及び方法の機能を変更することなく、異なる時間に、又は異なる順序で、提供されるように、変更されてよい。開示される手順も、異なる順序で実行されることができる。加えて、本明細書における様々な計算は、開示された順序で実行される必要はなく、計算の代替的な順序付けを使用する他の実施形態が、容易に実施されることができる。並べ替えられるのに加えて、計算は、同じ結果を有するサブ計算に分解されることもできる。
【0135】
上の議論は、説明される技法の例示的な実施について説明するが、他のアーキテクチャが、説明される機能性を実施するために使用されてよく、それは、本開示の範囲内にあることが意図されている。さらに、議論の目的で、上では、責務の特定の分配が定義されたが、様々な機能及び責務は、状況に応じて、異なる方法で、分配され、分割されてよい。
【0136】
さらに、本発明は、構造的特徴及び/又は方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定義される本発明は、説明された特定の特徴又は動作に必ずしも限定されないことが、理解されるべきである。むしろ、特定の特徴又は動作は、特許請求の範囲を実施する例示的な形態として開示されている。
【0137】
実施例の条項
A.1つ以上のプロセッサ及び前記1つ以上のプロセッサに通信可能に結合され、命令を記憶した1つ以上のコンピュータ可読記憶媒体を備え、前記命令は、環境を表すLIDARデータセットを受信し、前記LIDARデータセットをボクセル空間と関連付け、前記ボクセル空間は、複数のボクセルを含み、前記複数のボクセルの個々のボクセルと関連付けられた三次元データと関連付けられた面法線ベクトルを決定し、基準方向を決定し、前記基準方向は、自律車両の方位に対応し、前記面法線ベクトル及び前記基準方向に少なくとも部分的に基づいて、前記個々のボクセルが局所的にフラットであると決定し、グランドクラスタを決定し、前記グランドクラスタは、前記自律車両についての運転可能な面を表し、前記グランドクラスタは、複数の局所的にフラットなボクセルを含み、前記複数の局所的にフラットなボクセルは、前記局所的にフラットなボクセルを含み、前記ボクセル空間から前記グランドクラスタを除去して前記ボクセル空間のサブセット決定し、前記ボクセル空間の前記サブセット内の隣接するボクセルをクラスタ化して少なくとも1つのオブジェクトを決定し、前記少なくとも1つのオブジェクトに少なくとも部分的に基づいて、前記自律車両についての軌道を生成する、ように前記プロセッサによって実行可能である、システム。
【0138】
B.前記命令は、前記面法線ベクトルと前記基準方向との間で形成された角度が閾値を下回ると決定し、前記角度が前記閾値を下回ることに少なくとも部分的に基づいて、前記個々のボクセルが前記局所的にフラットなボクセルであると決定する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落Aに記載のシステム。
【0139】
C.前記グランドクラスタは、所的にフラットなボクセルの第1のクラスタであり、前記命令は、前記第1のクラスタにおいて表されるLIDARデータの平均高さを第1の高さとして決定し、局所的にフラットなボクセルの前記第1のクラスタ内の第1のボクセルを、第1の選択されたボクセルとして選択し、局所的にフラットなボクセルの第2のクラスタ内の第2のボクセルを、第2の選択されたボクセルとして選択し、前記第2の選択されたボクセルにおいて表されるデータの平均高さを第2の高さとして決定し、前記第1の選択されたボクセルと関連付けられた第1の代表点と前記第2の選択されたボクセルと関連付けられた第2の代表点との間の距離を決定し、前記第1の高さと前記第2の高さとの間の高さの差を決定し、前記距離及び前記高さの差に少なくとも部分的に基づいて、勾配を決定し、前記勾配が閾値を下回ることに少なくとも部分的に基づいて、局所的にフラットなボクセルの前記第1のクラスタ及び局所的にフラットなボクセルの前記第2のクラスタの少なくとも一部を含む更新されたグランドクラスタを決定する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落A又はBに記載のシステム。
【0140】
D.前記LIDARデータセットは、第1の時間における前記環境を表す第1のLIDARデータセットであり、前記命令は、第2の時間における前記環境を表す第2のLIDARデータセットを受信し、前記第2のLIDARデータセットを前記ボクセル空間と関連付け、前記第1のLIDARデータセットの少なくとも一部がオブジェクトを表すと決定し、前記第2のLIDARデータセットの少なくとも一部が前記オブジェクトを表すと決定し、差として、前記オブジェクトと関連付けられた前記第2のLIDARデータセットの少なくとも一部が、前記第1の時間における前記第1のオブジェクトによって前に占有されていなかった前記第2の時間における1つ以上のボクセルにマップすると決定し、前記差に少なくとも部分的に基づいて、前記第1のオブジェクトが動的オブジェクトであると決定する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落A~Cのいずれかの1つに記載のシステム。
【0141】
E.前記LIDARデータセットは、第1の時間に受信された第1のLIDARデータセットであり、前記命令は、前記少なくとも1つのオブジェクトが前記第1の時間に前記ボクセル空間のボクセルの第1のサブセットを占有していると決定し、第2の時間に第2のLIDARデータセットを受信し、前記第2のLIDARデータセットの少なくとも1つのLIDARデータ点と関連付けられたベクトルが、前記第2の時間にボクセルの前記第1のサブセットの少なくとも一部を通じてトラバースすると決定し、ボクセルの前記第1のサブセットの前記少なくとも一部が前記第2の時間に占有されていないと決定し、ボクセルの前記第1のサブセットの前記少なくとも一部が前記第2の時間に占有されていないことに少なくとも部分的に基づいて、前記少なくとも1つのオブジェクトが動的オブジェクトであると決定する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落A~Dのいずれかの1つに記載のシステム。
【0142】
F.前記命令は、オブジェクト識別子を前記少なくとも1つのオブジェクトを表すボクセルと関連付ける、ように前記1つ以上のプロセッサによってさらに実行可能である、段落A~Eのいずれかの1つに記載のシステム。
【0143】
G.前記命令は、個々のボクセルと関連付けられた前記面法線ベクトルを決定するように、前記個々のボクセルと関連付けられた前記三次元データに少なくとも部分的に基づいて、共分散行列に対して固有値分解を実行する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落A~Fのいずれかの1つに記載のシステム。
【0144】
H.前記グランドクラスタは、前記グランドクラスタを拡張するためのシード点として、前記自律車両に近接した少なくとも1つのボクセルを含む、段落A~Gのいずれかの1つに記載のシステム。
【0145】
I.環境と関連付けられたLIDARデータセットを表すボクセル空間を受信するステップと、前記ボクセル空間のボクセルに対し、前記ボクセルによって表される三次元データと関連付けられた面法線ベクトルを決定するステップと、前記ボクセルと関連付けられた前記面法線ベクトルに少なくとも部分的に基づいて、前記ボクセルが局所的にフラットなボクセルであると決定するステップと、グランドクラスタを決定するステップであって、前記グランドクラスタは、複数の局所的にフラットなボクセルを含み、前記複数の局所的にフラットなボクセルは、前記局所的にフラットなボクセルを含む、ステップと、自律車両についての運転可能な面を表す前記グランドクラスタに少なくとも部分的に基づいて、前記自律車両についての軌道を生成するステップと、を備えた方法。
【0146】
J.前記自律車両の方位に少なくとも部分的に基づいて、基準方位を決定するステップと、前記面法線ベクトルと前記基準方位と関連付けられたベクトルとの間の角度が閾値以内であると決定するステップと、前記角度が前記閾値を下回ることに少なくとも部分的に基づいて、前記ボクセルが前記局所的にフラットなボクセルであると決定するステップと、をさらに備えた段落Iに記載の方法。
【0147】
K.前記局所的にフラットなボクセルは、第1の局所的にフラットなボクセルであり、前記グランドクラスタを決定するステップは、シードボクセルとして、前記第1の局所的にフラットなボクセルを選択するステップであって、前記シードボクセルは、前記自律車両に近接している、ステップと、第2の局所的にフラットなボクセルが前記シードボクセルに隣接していると決定するステップと、前記シードボクセル及び前記第2の局所的にフラットなボクセルを前記グランドクラスタと関連付けるステップと、をさらに備えた段落I又はJに記載の方法。
【0148】
L.前記ボクセル空間のサブセットを識別するように、前記グランドクラスタと関連付けられたボクセルを前記ボクセル空間から抽出するステップと、第1のオブジェクトを決定するようにボクセルの第1のグループをクラスタ化するステップであって、ボクセルの前記第1のグループの個々の第1のボクセルは、ボクセルの前記第1のグループの少なくとも1つの他の第1のボクセルに隣接している、ステップと、第2のオブジェクトを決定するようにボクセルの第2のグループをクラスタ化するステップであって、ボクセルの前記第2のグループの個々の第2のボクセルは、ボクセルの前記第2のグループの少なくとも1つの他の第2のボクセルに隣接し、前記個々の第1のボクセルは、前記個々の第2のボクセルに隣接していない、ステップと、をさらに備えた段落I~Kのいずれかの1つに記載の方法。
【0149】
M.第1の局所的にフラットなボクセルの第1のクラスタを決定するステップと、第2の局所的にフラットなボクセルの第2のクラスタを決定するステップと、局所的にフラットなボクセルの前記第1のクラスタと局所的にフラットなボクセルの前記第2のクラスタとの間の高さ勾配を決定するステップと、前記高さ勾配が勾配閾値を下回ると決定するステップと、前記グランドクラスタを表すように、前記高さ勾配が前記勾配閾値を下回ることに少なくとも部分的に基づいて、前記第1のクラスタを前記第2のクラスタと結合するステップと、をさらに備えた段落I~Lのいずれかの1つに記載の方法。
【0150】
N.前記ボクセル空間において表される少なくとも1つの動的オブジェクトを決定するように、経時的にボクセルの占有を決定するステップと、前記ボクセル空間において表される前記少なくとも1つの動的オブジェクトに少なくとも部分的に基づいて、前記軌道を生成するステップと、をさらに備えた段落I~Mのいずれかの1つに記載の方法。
【0151】
O.1つ以上のプロセッサ及び前記1つ以上のプロセッサに通信可能に結合され、命令を記憶した1つ以上のコンピュータ可読記憶媒体を備え、前記命令は、少なくとも1つのLIDARセンサを使用して、環境を表すLIDARデータセットを捕捉し、前記LIDARデータセットをボクセル空間と関連付け、前記ボクセル空間は、複数のボクセルを含み、前記ボクセル空間のボクセルに対し、前記ボクセルによって表される三次元データと関連付けられた面法線ベクトルを決定し、前記ボクセルと関連付けられた前記面法線ベクトルに少なくとも部分的に基づいて、前記ボクセルが局所的にフラットなボクセルであると決定し、グランドクラスタを決定し、前記グランドクラスタは、複数の局所的にフラットなボクセルを含み、前記複数の局所的にフラットなボクセルは、前記局所的にフラットなボクセルを含む、ように前記プロセッサによって実行可能である、システム。
【0152】
P.前記命令は、基準方位を決定し、前記面法線ベクトルと前記基準方位と関連付けられたベクトルとの間で形成された角度が閾値を下回ると決定し、前記角度が前記閾値を下回ることに少なくとも部分的に基づいて、前記ボクセルが前記局所的にフラットなボクセルであると決定する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落Oに記載のシステム。
【0153】
Q.前記命令は、前記ボクセル空間のサブセットを識別するように、前記グランドクラスタと関連付けられたボクセルを前記ボクセル空間から抽出し、ボクセルのクラスタを決定するようにボクセルのグループをクラスタ化し、ボクセルの前記グループの個々のボクセルは、ボクセルの前記グループの少なくとも1つの他のボクセルに隣接し、ボクセルの前記クラスタと関連付けられたボクセルの数がボクセルの閾値数を下回ると決定し、ボクセルの前記クラスタがオブジェクトでないと決定する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落O又はPに記載のシステム。
【0154】
R.前記命令は、第1の局所的にフラットなボクセルの第1のクラスタを決定し、第2の局所的にフラットなボクセルの第2のクラスタを決定し、局所的にフラットなボクセルの前記第1のクラスタと局所的にフラットなボクセルの前記第2のクラスタとの間の高さ勾配を決定し、前記高さ勾配が勾配閾値を下回ると決定し、前記グランドクラスタを表すように、前記高さ勾配が前記勾配閾値を下回ることに少なくとも部分的に基づいて、前記第1のクラスタを前記第2のクラスタと結合する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落O~Qのいずれかの1つに記載のシステム。
【0155】
S.前記命令は、前記ボクセル空間において表される少なくとも1つの動的オブジェクトを決定するように、経時的にボクセルの占有を決定し、前記ボクセル空間において表される前記少なくとも1つの動的オブジェクトに少なくとも部分的に基づいて、前記軌道を生成する、ように前記1つ以上のプロセッサによってさらに実行可能である、段落O~Rのいずれかの1つに記載のシステム。
【0156】
T.前記命令は、前記自律車両についての運転可能な面を表す前記グランドクラスタに少なくとも部分的に基づいて、自律車両についての軌道を生成し、前記軌道に少なくとも部分的に基づいて、前記自律車両を制御するように前記1つ以上のプロセッサによってさらに実行可能である、段落O~Sのいずれかの1つに記載のシステム。
【0157】
上記説明された実施例の条項が1つの特定の実装態様に関して説明されてきたが、本明細書のコンテキストでは、実施例の条項の内容は、方法、デバイス、システム、コンピュータ可読媒体、及び/又は別の実装態様を介して実装されることもできることを理解されるべきである。