(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025003969
(43)【公開日】2025-01-14
(54)【発明の名称】体積推定のための技術
(51)【国際特許分類】
G06T 7/62 20170101AFI20250106BHJP
G05D 1/43 20240101ALI20250106BHJP
G05D 1/248 20240101ALI20250106BHJP
G05D 1/242 20240101ALI20250106BHJP
G05D 1/246 20240101ALI20250106BHJP
G05D 1/225 20240101ALI20250106BHJP
【FI】
G06T7/62
G05D1/43
G05D1/248
G05D1/242
G05D1/246
G05D1/225
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024155440
(22)【出願日】2024-09-10
(62)【分割の表示】P 2021574902の分割
【原出願日】2019-12-05
(31)【優先権主張番号】62/862,633
(32)【優先日】2019-06-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/863,211
(32)【優先日】2019-06-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/657,921
(32)【優先日】2019-10-18
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.PYTHON
3.JAVASCRIPT
(71)【出願人】
【識別番号】521195032
【氏名又は名称】セーフ エーアイ,インコーポレイテッド
(74)【代理人】
【識別番号】100137969
【弁理士】
【氏名又は名称】岡部 憲昭
(74)【代理人】
【識別番号】100104824
【弁理士】
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【弁理士】
【氏名又は名称】矢口 哲也
(72)【発明者】
【氏名】サビラパールマ,ラリン
(72)【発明者】
【氏名】ハルダー,ビブハラジット
(72)【発明者】
【氏名】バラスブラマニアン,コウシック
(57)【要約】 (修正有)
【課題】自律機械により材料の堆積物または他の物体の体積推定および寸法推定を行う方法を提供する。
【解決手段】方法は、複数のセンサから物理的環境の2D表現または3D表現を含むセンサデータを取得するステップ1302と、物体検出モジュールの1つまたは複数の機械学習モデルを使用して物理的環境内の物体の3D表現を生成するステップ1306と、生成された3D表現を使用して物体の体積を推定するステップ1308と、体積推定値に基づいて自律機械の動作を行わせるために計画サブシステムに体積推定値を伝達するステップ1310と、を含む。
【選択図】
図13
【特許請求の範囲】
【請求項1】
自律機械のコントローラシステムが、複数のセンサから、物理的環境の第1の表現および前記物理的環境の第2の表現を含むセンサデータを受信することであって、前記第1の表現および前記第2の表現の各々が、前記物理的環境内の材料の堆積物と関連付けられたデータを含む二次元(2D)表現または三次元(3D)表現である、ことと、
前記コントローラシステムが、前記材料の堆積物の3D表現を生成することであって、前記材料の堆積物の前記3D表現を生成することが、
前記第1の表現内の領域を前記材料の堆積物に対応するものとして特定することと、
前記第2の表現内の領域を前記材料の堆積物に対応するものとして特定することと、
前記第1の表現内および前記第2の表現内の特定された前記領域に基づいて、前記材料の堆積物の境界を決定することと
を含む、ことと、
前記コントローラシステムが、前記材料の堆積物の前記3D表現に基づいて前記材料の堆積物の体積を推定することと、
前記コントローラシステムが、前記自律機械の計画サブシステムまたは第2の自律機械の計画サブシステムに、前記材料の堆積物に関する情報を伝達することであって、前記材料の堆積物に関する前記情報が、推定された前記体積を含み、前記材料の堆積物に関する前記情報を伝達することが、前記自律機械または前記第2の自律機械により前記材料の堆積物に対して自律的に行われる動作をもたらす、ことと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]関連出願の相互参照
本出願は、
(a)「TECHNIQUES FOR VOLUMETRIC ESTIMATION」と題する、2019年6月17日に出願された米国仮特許出願第62/862,633号、
(b)「TECHNIQUES FOR VOLUMETRIC ESTIMATION」と題する、2019年6月18日に出願された米国仮特許出願第62/863,211号、および
(c)「TECHNIQUES FOR VOLUMETRIC ESTIMATION」と題する、2019年10月18日に出願された米国非仮特許出願第16/657,921号
の利益および優先権を主張するものである。第16/657,921号出願は、米国仮特許出願第62/862,633号および米国仮特許出願第62/863,211号の利益および優先権を主張するものである。
米国仮特許出願第62/862,633号、米国仮特許出願第62/863,211号、および米国非仮特許出願第16/657,921号の全内容は、あらゆる目的で参照により本明細書に組み込まれる。
【0002】
[0002]本開示は、一般に、様々な産業作業現場で様々な作業を行うための自律機械の動作に関し、より詳細には、材料の堆積物または他の物体の体積推定および寸法推定のための技術、ならびにそのような作業現場における材料の堆積物または他の物体の体積推定および寸法推定のためのセンサの使用に関する。
【背景技術】
【0003】
[0003]現在、建設作業現場または産業作業現場における地点間の材料の堆積物またはかたまりの移動を伴う作業は、人間の労働および/または高価な設備を要する複雑なプロセスなどの時間のかかる方法によって処理されている。一部の現場での材料を選んで選別するためのロボットアームなどのロボット設備の使用は、ある地点で材料を自律的に選び、別の地点まで自律的に操縦してそのような材料を降ろすことに関連した複雑な問題を解決することができない。そのような設備は視野によっても制限される。さらに、現在のロボット設備は、産業現場で作業を正確に行い完了するために、適時に材料を正確に感知または推定することができない。
【発明の概要】
【0004】
[0004]本開示は、一般に、様々な産業作業現場で様々な作業を行うための自律機械の動作に関し、より詳細には、材料の堆積物または他の物体の体積推定および寸法推定のための技術、ならびにそのような作業現場における材料の堆積物または他の物体の体積推定および寸法推定のためのセンサの使用に関する。建設、鉱業、製造、倉庫保管、物流、仕分け、包装、農業などといった様々な産業に適用可能な、自律機械が様々な産業作業現場環境で様々な作業を自律的に行うことを容易にするための、材料の堆積物または他の物体の体積推定および寸法推定のためのフレームワークが自律機械に提供される。
【0005】
[0005]本明細書には、方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を格納した非一時的コンピュータ可読記憶媒体などを含む、様々な実施形態が記載される。
【0006】
[0006]特定の実施形態では、自律機械に搭載された1つまたは複数のセンサを使用して材料の堆積物の体積推定を行うための技術が説明される。自律機械は、自律的に動作を行うように構成され得る。自律機械は、体積推定の実行からの出力を使用して動作を行い得る。自律機械はまた、別の自律機械が自律的に動作を行うことを可能にするために体積推定の出力を別の機械に伝達するようにも構成され得る。例えば、いくつかの実施形態では、体積推定を行う自律機械は、異なるタイプの作業を処理するために、または同じ作業の実行を迅速に処理するために作業現場に配備された自律機械群の一部であってもよく、(1つまたは複数の)作業は、自律機械群と同じ材料の堆積物との間の相互作用を伴う。
【0007】
[0007]特定の実施形態では、システムは、複数のセンサと、複数のセンサに結合されたコントローラシステムとを含む。コントローラシステムは、複数のセンサからセンサデータを受信するように構成される。センサデータは、物理的環境の第1の表現および物理的環境の第2の表現を含む。第1の表現および第2の表現の各々は、物理的環境内の材料の堆積物と関連付けられたデータを含む二次元(2D)表現または三次元(3D)表現である。コントローラシステムは、材料の堆積物の3D表現を生成するようにさらに構成される。材料の堆積物の3D表現を生成することは、第1の表現内の領域を材料の堆積物に対応するものとして特定することと、第2の表現内の領域を材料の堆積物に対応するものとして特定することと、第1の表現内および第2の表現内の特定された領域に基づいて、材料の堆積物の境界を決定することと、を含む。コントローラシステムは、材料の堆積物の3D表現に基づいて材料の堆積物の体積を推定し、材料の堆積物に関する情報を自律機械の計画サブシステムに伝達するようにさらに構成される。材料の堆積物に関する情報は、推定された体積を含む。材料の堆積物に関する情報の伝達により、自律機械によって、材料の堆積物に対して動作が自律的に行われる。動作は、推定された体積に基づいて行うことができる。
【0008】
[0008]特定の実施形態では、上述のコントローラシステムによって行われる処理における第1の表現は、少なくとも1つのカメラを使用して生成された画像であり、第1の表現の部分を材料の堆積物に対応するものとして特定することは、第1の表現を、堆積物クラスを含む複数のクラスの物体を検出するように訓練されたコントローラシステムの機械学習モデルに入力することと、機械学習モデルの出力として、堆積物クラスに対応するセグメントを含む、物理的環境のセグメント化表現を受け取ることと、を含む。
【0009】
[0009]特定の実施形態では、機械学習モデルは、コントローラシステムによるセンサデータの受信の前に訓練される。機械学習モデルの訓練は、現実世界環境の2D表現または3D表現のうちの少なくとも1つを含み、訓練データに表された物体のクラスを示す情報でラベル付けされている、訓練データセットを取得することと、訓練データセットに対して行われる画像処理によって追加の訓練データを生成すること、および機械学習モデルに増強された訓練データセットを入力することを含む、訓練データセットを増強することと、増強された訓練データセットを使用して機械学習モデルによって生成された推測と、増強された訓練データセットについての正しい推測に対応するグラウンドトゥルース情報との比較に基づいて、機械学習モデルを調整することと、を含む。
【0010】
[0010]特定の実施形態では、訓練データセットの増強は、以下のタイプの画像処理、すなわち、倍率変更、ぼかし、回転、色調整、サイズ変更、画像解像度の変更、ノイズアーチファクトの追加、またはオクルージョンもしくは気象条件をシミュレートする視覚効果の追加、のうちの少なくとも1つを含む。
【0011】
[0011]特定の実施形態では、増強された訓練データセットからの訓練データが機械学習モデルに入力される順序は、その順序が、第1のクラスの物体のインスタンス数と第2のクラスの物体のインスタンス数との間の比を維持するように決定される。
【0012】
[0012]特定の実施形態では、上述のコントローラシステムによって行われる処理における第1の表現は、1つまたは複数のカメラを使用して生成された画像であり、第2の表現は、LIDARまたはレーダーセンサを使用して生成された点群である。そのような実施形態では、第2の表現内の領域を材料の堆積物に対応するものとして特定することは、点群を、点群から堆積形状を検出するように訓練された機械学習モデルに入力することと、機械学習モデルの出力として、検出された堆積形状のボクセル表現を受け取ることと、を含み得る。さらに、材料の堆積物の3D表現を生成することは、検出された堆積形状のボクセル表現を第1の表現から生成されたセグメント化画像と組み合わせることによって、追加のボクセル表現を生成することと、ボクセル表現の上に幾何学的メッシュを適合することによって追加のボクセル表現を平滑化することと、を含み得る。
【0013】
[0013]特定の実施形態では、第2の表現内の領域を材料の堆積物に対応するものとして特定することは、第2の表現を、点群内の点の幾何学的形状に基づいて、ボクセル表現内のボクセル高さを推定することによって物理的環境のボクセル表現を生成するように構成されたボクセル推定モデルに入力すること、を含む。さらに、材料の堆積物の3D表現を生成することは、ボクセル表現を、推定されたボクセル高さごとに、深度画像である第1の表現からのデータに基づいて、推定されたボクセル高さが正しい確率を決定するように構成されたベイジアンフィルタに入力することと、ベイジアンフィルタにより、決定された確率に基づいて、材料の堆積物の3D表現を生成するために、深度画像からの情報とボクセル表現からの情報とから選択することと、を含み得る。
【0014】
[0014]特定の実施形態では、ボクセル高さを推定することによって生成されたボクセル表現を受け取るベイジアンフィルタは、推定されたボクセル高さごとに、深度画像である第1の表現からのデータに基づいて、推定されたボクセル高さが正しい確率を決定するように構成される。ベイジアンフィルタは、決定された確率に基づいて、材料の堆積物の3D表現を生成するために、深度画像からの情報とボクセル表現からの情報とから選択するようにさらに構成される。
【0015】
[0015]特定の実施形態では、ベイジアンフィルタは、ボクセル推定モデルに、推定されたボクセル高さを深度画像によって示されるボクセル高さにより近づくようボクセル推定モデルに修正させるフィードバックを伝達する。深度画像は、第1のカメラからの画像と第2のカメラからの画像との間の視差に基づいて生成することができる。さらに、深度画像は、ベイジアンフィルタに入力するために、コントローラシステムの機械学習モデルによってセグメント化され得る。
【0016】
[0016]特定の実施形態では、材料の堆積物の体積を推定することは、材料の堆積物の地面、背面、および境界によって囲まれた、材料の堆積物の約半分に対応する3D形状を決定することと、3D形状の体積を計算することと、3D形状の体積の2倍である材料の堆積物の体積を推定することと、を含む。
【0017】
[0017]特定の実施形態では、コントローラシステムは、堆積物の異なる側から見た材料の堆積物を表すセンサデータを受信し、センサデータを使用して材料の堆積物の3Dを生成する。
【0018】
[0018]特定の実施形態では、方法は、自律機械のコントローラシステムが、複数のセンサから、物理的環境の第1の表現および物理的環境の第2の表現を含むセンサデータを受信すること、を含む。第1の表現と第2の表現とは、異なるタイプのセンサを使用して生成され、第1の表現および第2の表現の各々は、物理的環境内の材料の堆積物と関連付けられたデータを含む二次元(2D)表現または三次元(3D)表現である。方法は、コントローラシステムが、材料の堆積物の体積を推定すること、をさらに含む。材料の堆積物の体積を推定することは、材料の堆積物を検出し、その体積を推測するように訓練された機械学習モデルに第1の表現および第2の表現を入力することと、機械学習モデルの出力として、第1の表現および第2の表現から推測される、材料の堆積物の体積の値を受け取ることと、を含む。方法は、コントローラシステムが、自律機械の計画サブシステムまたは第2の自律機械の計画サブシステムに、材料の堆積物に関する情報を伝達すること、をさらに含む。材料の堆積物に関する情報は、材料の堆積物の体積の値を含む。材料の堆積物に関する情報の伝達により、自律機械または第2の自律機械によって、材料の堆積物に対して動作が自律的に行われる。
【0019】
[0019]特定の実施形態では、入力として第1の表現および第2の表現を続いて受け取る機械学習モデルの訓練は、機械学習モデルに訓練表現セットを入力することと、訓練表現セットに基づいて推測された体積値を受け取ることと、推測された体積値と、訓練表現セットのグラウンドトゥルース体積値とを比較することと、グラウンドトゥルース体積値と訓練表現セットに基づいて推測された体積値との差に基づいて機械学習モデルを調整することと、を含む。機械学習モデルは、異なるセンサタイプからの表現を結合して単一の表現にすること、単一の表現内の材料の堆積物を検出すること、および材料の堆積物の体積を推定すること、のうちの異なる1つを行うように各々構成された、複数のサブシステムを含むことができる。機械学習モデルがそのような複数のサブシステムを含む場合、機械学習モデルの訓練は、機械学習モデルのエンドツーエンド訓練を全体として行う前に各サブシステムを別々に訓練することを含み得る。
【0020】
[0020]以上については、他の特徴および実施形態と共に、以下の明細書、特許請求の範囲、および添付の図面を参照すればより明らかになるであろう。
【0021】
[0021]本開示は、以下の説明を、添付の図と併せて参照すればより良く理解することができる。
【図面の簡単な説明】
【0022】
【
図1A】特定の実施形態によるコントローラシステム(本明細書では自律型ビークル管理システム(autonomous vehicle management system(AVMS))と呼ぶ)を組み込んだ自律型ビークルの高レベルの簡略化されたブロック図である。
【
図1B】いくつかの実施形態による、主にソフトウェアで実装された例示的な自律型ビークル管理システムを示す図である。
【
図2A】特定の実施形態による自律型ビークル管理システムのサブシステムを示す簡略化されたブロック図である。
【
図2B】特定の実施形態による自律型ビークル管理システムの様々なサブシステムを実装するために使用され得るソフトウェアモジュール(例えば、自律機械の1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令)を示す図である。
【
図3】特定の実施形態による自律機械の例示的なセンサセットを示す図である。
【
図4】特定の実施形態による自律機械における知覚サブシステムの簡略化されたブロック図である。
【
図5】特定の実施形態による、物体を検出するよう機械学習モデルを訓練するために使用可能な例示的な訓練画像を示す図である。
【
図6】特定の実施形態による、訓練された機械学習モデルによって生成された例示的なセグメント化画像を示す図である。
【
図7】特定の実施形態による、異なるタイプのセンサを使用して生成される、物理的環境および/または物理的環境内の物体の異種表現の融合に基づいて材料の堆積物を検出し、その特性を推定するための例示的な方法を示す図である。
【
図8】特定の実施形態による、堆積物の3D表現に基づいて材料の堆積物の体積を推定するための例示的な方法を示す図である。
【
図9】特定の実施形態による、材料の堆積物を再構成するための例示的な方法を示す図である。
【
図10】特定の実施形態による、機械学習モデルを調整するためのフィードバックを生成するベイジアンフィルタを使用して、材料の堆積物を検出し、その特性を推定するための例示的な方法を示す図である。
【
図11】特定の実施形態による、単一の機械学習モデルを使用して材料の堆積物を検出し、その特性を推定するための例示的な方法を示す図である。
【
図12】特定の実施形態による、物体を検出し、かつ/または他の物体に関連した推測を行うよう機械学習モデルを訓練するためのプロセスを示すフローチャートである。
【
図13】特定の実施形態による、体積推定を行うためのプロセスを示すフローチャートである。
【
図14】本開示に記載されるシステムおよびサブシステムのうちの1つもしくは複数を実装するために、かつ/または本明細書に記載されるプロセスもしくは方法のいずれかを行うために使用することができる例示的なコンピューティングシステムを示す簡略化されたブロック図である。
【発明を実施するための形態】
【0023】
[0038]次に、本開示の典型的な例および実施形態を、当業者が本開示を実施できるように説明例として提供される図面を参照して詳細に説明する。特に、以下の図および例は、本開示の範囲を単一の実施形態に限定するように意図されたものではなく、記載または図示された要素の一部または全部の交換または組み合わせによって他の実施形態が可能である。好都合な場合には、同じかまたは類似する部分を指すために図面全体を通して同じ参照番号が使用される。
【0024】
[0039]以下の記述では、説明を目的として、特定の発明の実施形態の十分な理解を提供するために具体的詳細が示される。しかし、これらの具体的詳細なしでも様々な実施形態が実施され得ることは明らかであろう。各図および説明は限定を意図されたものではない。「例示的」という語は、本明細書では、「例、具体例、または説明例の役割を果たすこと」を意味するために使用される。本明細書に「例示的」として記載される実施形態または設計は、必ずしも、他の実施形態または設計に優って好ましいかまたは有利であると解釈されるとは限らない。
【0025】
[0040]これらの実装形態の特定の要素を、公知の構成要素を使用して部分的または完全に実装することができる場合、本開示の理解に必要なそのような公知の構成要素の部分のみが説明され、そのような公知の構成要素の他の部分の詳細な説明は、本開示を不明瞭にしないように省略される。
【0026】
[0041]本開示は、一般に、様々な産業作業現場で様々な作業を行うための自律機械の動作に関し、より詳細には、材料の堆積物または他の物体の体積推定および寸法推定、ならびにそのような作業現場における材料の堆積物または他の物体の体積推定および寸法推定のためのセンサの使用に関する。建設、鉱業、製造、倉庫保管、物流、仕分け、包装、農業などといった様々な産業に適用可能な、様々な作業現場環境における、自律機械(例えば、ロボット機械や自律型ビークル)上での、少なくとも1つのセンサ、好ましくは複数のセンサを使用した、材料の堆積物または他の物体の体積推定および寸法推定のためのアプリケーションおよびフレームワークが開示される。
【0027】
[0042]本明細書で使用される場合、「材料の堆積物」とは、積み重ねられた、互いに重なり合う、またはそれ以外に、例えば材料の山などの塊を形成するようにまとめられた、1つまたは複数のタイプの材料または物体を指す。堆積物を構成する材料は、様々な形状およびサイズのもの、例えば、泥、岩、建設廃材などであり得る。堆積物はまた、形状、サイズ、密度などが異なる。例えば、バームは、採掘現場で一般的に見られるタイプの堆積物である。バームは、ビークルが特定の領域を超えて移動するのを防止するためのガードレールとして機能することが多く、通常、台形または三角形の断面を有する。
【0028】
[0043]本開示は、自律型ビークルの文脈でいくつかの実施形態を説明する。「ビークル」という用語の使用およびビークルに関する説明は、限定または制限を意図されたものではない。本明細書に記載される教示は、1つまたは複数の作業または動作を自動化された方法で行うように構成された、実質的に人間の介入がない自律型ビークルおよび他のタイプの自律機械を含む、任意の自律型設備に使用および適用することができる。
【0029】
[0044]
図1Aは、特定の実施形態によるコントローラシステム(本明細書では自律型ビークル管理システム(autonomous vehicle management system(AVMS)122)と呼ぶ)を組み込んだ自律型ビークル120の高レベルの簡略化されたブロック図である。本開示の目的では、自律型ビークル120などの自律型ビークルは、1つまたは複数の動作を自律的に、実質的に人間ユーザも手動入力もなしで行うことができるビークルである。例えば、特定の実施形態では、自律動作は、ビークル120がその環境を自律的に感知し、実質的に人間ユーザも手動入力もなしで自律的に経路に沿って操縦または運転する能力であり得る。他の自律動作の例には、すくい取って空ける動作、材料または物体の移動(例えば、ある領域から別の領域への土砂の移動)、材料の持ち上げ、駆動、圧延、泥の拡散、掘削、ある地点から別の地点への材料または物体の輸送などが含まれるが、これらに限定されない。
【0030】
[0045]自律型ビークル120は、様々な異なるタイプのものとすることができる。例えば、自律型ビークル120は、人および/または貨物を輸送するために使用することができる自動車または移動機械とすることができる。自律型ビークル120は、道路または経路の締め固め、圧延、掘削、持ち上げなどの特殊な動作を行うための特殊なビークルとすることができる。自律型ビークル120の例には、ワゴン車、自転車、動力車(例えば、オートバイ、自動車、トラック、バス)、鉄道車両(例えば、電車、路面電車)、船(例えば、船舶、ボート)、航空機、宇宙船、および/または重機車両(例えば、ダンプトラック、トラクタ、ブルドーザ、掘削機、フォークリフトなど)が含まれるが、これらに制限されない。自律型ビークル120の環境は、他の自律型ビークルを含む他のビークルを含む可能性があるため、明確にする目的で、自律型ビークル120をその環境内の他のビークルと区別するために、自律型ビークル120は自ビークルと呼ばれることもある。
【0031】
[0046]以下では、例として自律型ビークルを使用して様々な特徴が説明されている。しかしながら、これは限定を意図されたものではない。本明細書に記載される教示は、1つまたは複数の自律動作を行うことができる任意の機械に適用することができる。例えば、これらの教示を、ローダ、コンパクタなどによって使用することができる。機械は、製造、鉱業、建設、医療用途、包装、組立、測量、地図作成技術、物流などといった様々な産業で使用され得る。
【0032】
[0047]
図1Aに示されるように、自律型ビークル120は、自律型ビークル管理システム122に加えて、センサ110、およびビークルシステム112を含むか、またはそれらに結合され得る。自律型ビークル管理システム122は、有線リンクまたは無線リンクを介してセンサ110およびビークルシステム112と通信可能に結合され得る。自律型ビークル管理システム122とセンサ110との間、および自律型ビークル管理システム122とビークルシステム112との間の通信を容易にするために、1つまたは複数の異なる通信プロトコルが使用され得る。
【0033】
[0048]ビークルシステム112は、自律型ビークル120が特定の経路またはコースに沿って走行または操縦するなどのその意図された機能を行うことを可能にする様々な電気機械システム、構成要素、リンク機構などを含むことができる。ビークルシステム112は、例えば、自律型ビークルを運転するための操舵システム、スロットルシステム、ブレーキシステム、推進システムなど、電気系統、補助システム(例えば、自律型ビークル120の運転者または乗客に情報を出力するためのシステム)などを含み得る。ビークルシステム112は、自律型ビークル120の経路および速度を設定するために使用することができる。特殊な動作を行うように構成された自律型ビークル(例えば、持ち上げて空ける動作を行うように特化されたダンプトラック、トラクタなど)では、ビークルシステム112はまた、そのような特殊な動作を行うように構成されたシステムを含み得る。
【0034】
[0049]センサ110は、自律型ビークル120の上もしくは内部に配置され得る(「搭載センサ」)か、または自律型ビークル120からリモートに配置され得る(「リモートセンサ」)。自律型ビークル管理システム122は、無線通信プロトコルを使用して無線リンクを介してリモートセンサと通信可能に結合され得る。センサ110は、自律型ビークル120のための環境情報を取得することができる。次いでこのセンサデータを、自律型ビークル管理システム122に供給することができる。
図3に、限定はしないが、LIDAR(Light Detection and Ranging(光検出および測距))センサ302、レーダー304、カメラ306(異なる感知能力を有する異なる種類のカメラが使用され得る)、全地球測位システム(GPS)および慣性計測装置(IMU)センサ308、車車間・路車間(V2X)センサ310、オーディオセンサなどを含む、自律型ビークルのセンサセット110の例示的なセットを示す。センサ110は、自律型ビークル120の環境情報を取得(例えば、感知、取り込み)し、処理のために、感知され、または取り込まれたセンサデータを自律型ビークル管理システム122に伝達することができる。他のセンサには、近接センサ、SONARセンサ、およびその他のセンサが含まれ得る。
【0035】
[0050]レーダーセンサ304(例えば、長距離レーダー、短距離レーダー、撮像レーダーなど)の例には、自律型ビークル120の環境内の物体を検出し、検出された物体の速度を判定するために使用されるセンサが含まれ得る。LIDARセンサ302の例には、パルスレーザー光の形態の光を使用することにより目標までの距離を測定する測量技術を使用するセンサが含まれる。これは、パルスレーザー光で測定されるべき目標を照らし、センサを使用して反射パルスを測定することによって行われる。V2Xセンサの例には、V2X通信技術を使用して交通システムの移動する部分と通信するセンサが含まれる。例えば、自律型ビークル120は、ビークルから自律型ビークルの周囲または近くの別のエンティティに情報を渡し、かつ/または受信するためにV2Xセンサを使用し得る。V2X通信センサ/システムは、V2I(Vehicle-to-Infrastructure(路車間))、V2V(Vehicle-to-Vehicle(車車間))、V2P(Vehicle-to-Pedestrian(車歩行者間))、V2D(Vehicle-to-device(車デバイス間))、V2G(Vehicle-to-grid(車グリッド間))などといった、他のより特定のタイプの通信インフラストラクチャを組み込み得る。IMUセンサは、加速度計、ジャイロスコープ、磁力計などの組み合わせを使用して、ボディの特定の力、角速度、および場合によってはボディを取り囲む磁場を測定および報告する電子デバイスであり得る。GPSセンサは、地理的位置および時間情報を決定するために宇宙ベースの衛星航法システムを使用する。
【0036】
[0051]以下で説明されるように、特定の実施形態では、異なるタイプのセンサまたは同じタイプのセンサの複数のインスタンスから得られたデータが、関心対象の材料の堆積物または他の物体の三次元(3D)表現を形成するために組み合わされるかまたは融合され得、その表現から、材料の堆積物/物体の1つまたは複数の特性(例えば、堆積物の体積)を推定することができる。様々なタイプのセンサの組み合わせが、3D表現を生成するためのデータを取得する目的で使用され得る。異なるセンサタイプを組み合わせることには、特定の利点がある。例えば、カメラは、物体がその内部にある環境の非常に詳細な画像を生成することができるのに対し、LIDARおよびレーダーは、より良好な深度知覚を提供する。LIDARは、一般に、静止物体を検出する場合にレーダーよりも正確であるのに対し、レーダーは、移動物体を検出する場合により正確である。
【0037】
[0052]自律型ビークル管理システム122(コントローラシステムとも呼ばれる)は、自律型ビークル120の状態および自律型ビークルの環境の状態を記述するデータを処理し、処理に基づいて、自律型ビークル120の1つまたは複数の自律機能または自律動作を制御するように構成される。例えば、自律型ビークル管理システム122は、自律型ビークル120の推進、制動、操舵または操縦、および補助的挙動(例えば、ライトの点灯)機能などの自律型ビークルの動きの様々な側面をプログラムにより自律的に制御するために、ビークルシステム112に命令/コマンドを発行し得る。自律型ビークル管理システム122は、自律型ビークル120が自律的に1つまたは複数の動作を行うことを可能にする制御アルゴリズムおよび計画アルゴリズムを実装する。
【0038】
[0053]自律型ビークル管理システム122は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせを使用して実装され得る。ソフトウェアは、非一時的コンピュータ可読媒体上(例えば、メモリデバイス上)に格納され得、その機能を行うために1つまたは複数のプロセッサによって(例えば、コンピュータシステムによって)実行され得る。
図1Aに示される実施形態では、自律型ビークル管理システム122は、自律型ビークル120内または自律型ビークル上にあるものとして示されている。しかしながら、これは限定を意図されたものではない。代替実施形態では、自律型ビークル管理システム122は、自律型ビークル120からリモートにあることも可能である。
【0039】
[0054]自律型ビークル管理システム122は、定期的に、またはオンデマンドでセンサ110からセンサデータを受信する。自律型ビークル管理システム122は、センサ110から受信したセンサデータを使用して、自律型ビークルの周囲および環境を知覚する。自律型ビークル管理システム122は、センサ110から受信したセンサデータを使用して、自律型ビークルの状態に関する情報ならびに自律型ビークル120を取り囲む空間および環境の情報をカプセル化するデジタルモデルを生成し、最新の状態に保つ。このデジタルモデルは内部地図と呼ばれてもよく、自律型ビークル120およびその環境の現在の状態をカプセル化する。その場合、内部地図は、他の情報と共に、自律型ビークル管理システム122によって、自律型ビークル120によって行われるべき動作(例えば、操縦、制動、加速、すくい取る動作、空ける動作など)に関する判断を行うために使用される。自律型ビークル管理システム122は、動作をビークルシステム112のシステムに行わせるために、ビークルシステム112に命令またはコマンドを送信し得る。
【0040】
[0055]上記のように、自律型ビークル管理システム122は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせを使用して実装され得る。
図1Bに、いくつかの実施形態による、自律型ビークル管理システム122が主にソフトウェアで実装された例示的な自律型ビークル管理システムを示す。自律型ビークル管理システム122は、完全自律型ビークル・ソフトウェア・スタック100として実装され得る。完全自律型ビークル・ソフトウェア・スタック100は、ビークル安全マネージャ102、リモート・インターフェース・マネージャ114、アプリケーション104、ミドルウェア106、およびオペレーティングシステム108を含むことができる。完全自律型ビークル・ソフトウェア・スタック100は、上述の様々なシステムおよびサブシステムの機能を実装するために使用され得る。
【0041】
[0056]
図2Aは、特定の実施形態による自律型ビークル管理システム122のサブシステムを示す簡略化されたブロック図である。自律型ビークル管理システム122は、1つまたは複数の通信チャネルを介して互いに通信可能に結合された複数のシステムまたはサブシステムを備え得る。
図2Aに示される実施形態では、サブシステムには、センサ・インターフェース・サブシステム210、位置推定サブシステム202、知覚サブシステム204、計画サブシステム206、制御サブシステム208、および情報サブシステム212が含まれる。
【0042】
[0057]
図2Aに示される自律型ビークル管理システム122の実施形態は単なる例であり、特許請求される実施形態の範囲を過度に限定することを意図されたものではない。当業者は、多くの変形形態、代替形態、および改変形態を理解するであろう。例えば、いくつかの実装形態では、自律型ビークル管理システム122は、
図2Aに示されるものよりも多いかもしくは少ないサブシステムもしくは構成要素を有していてもよく、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成もしくは配置を有していてもよい。サブシステムは、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせを使用して実装され得る。
図2Aに示される実施形態では、自律型ビークル管理システム122およびそのすべてのサブシステムは、自律型ビークル120内または自律型ビークル上にあるものとして示されている。しかしながら、これは限定を意図されたものではない。代替実施形態では、自律型ビークル管理システム122のすべてのサブシステムまたは自律型ビークル管理システム122の特定のサブシステムが、自律型ビークル120からリモートにあることも可能である。
【0043】
[0058]センサ・インターフェース・サブシステム210は、センサ110(搭載センサおよびリモートセンサを含む)と自律型ビークル管理システム122との間の通信を可能にするインターフェースを提供する。センサ・インターフェース・サブシステム210は、センサ110からセンサデータを受信し、そのデータを自律型ビークル管理システム122の1つまたは複数の他のサブシステムに提供し得る。例えば、
図2Aに示されるように、センサデータは、さらなる処理のために位置推定サブシステム202および知覚サブシステム204に提供され得る。様々なセンサ110によって収集されたセンサデータは、自律型ビークル管理システム122が自律型ビークル120およびその周囲環境の図または画像を構築することを可能にする。
【0044】
[0059]特定の実施形態では、自律型ビークル管理システム122は、自律型ビークル管理システム122の1つまたは複数のサブシステムが、1つまたは複数のセンサの動作を制御するために、1つまたは複数のセンサ110に命令またはコマンドを送信することを可能にする。例えば、命令は、特定のセンサの挙動を変更するために、特定のセンサに送信され得る。例えば、命令は、センサによって感知もしくは収集される情報を変更し、かつ/またはセンサから自律型ビークル管理システム122に伝達されるセンサデータを変更するために、センサに送信され得る。これらの命令を使用して、自律型ビークル管理システム122は、センサ110から自律型ビークル管理システム122に伝達されるセンサデータを動的に制御することができる。これに関するさらなる詳細は、以下で計画サブシステム206によって行われる機能の文脈において示す。
【0045】
[0060]位置推定サブシステム202は、センサ110からセンサデータを受信し、センサデータに基づいて、その周囲環境における自律型ビークル120の地点を特定する(ビークル位置推定)ように構成される。位置推定サブシステム202は、その環境(例:鉱山)に対する自ビークルの現在の局所位置情報を提供する。自ビークル120の位置は、知覚サブシステム204によって生成される事前定義された地図に関して決定され得る。特定の実施形態では、位置推定サブシステム202は、自ビークルの位置情報を自律型ビークル120の他のシステムまたはサブシステムにブロードキャストするように構成される。次いで、他のシステムまたはサブシステムは、その位置情報を必要に応じてそれら自体の処理に使用し得る。
【0046】
[0061]位置推定サブシステム202は、内部地図管理、地図マッチング、視覚オドメトリ、推測航法、地点履歴管理などといった様々な機能を実装し得る。例えば、自律型ビークル120が鉱山で運転していると仮定する。位置推定サブシステム202は、入力として鉱山の地図を受け取り得る。鉱山は、通常、運転可能領域および運転不可能領域を含む設定経路と、採掘車両が鉱山の周囲を辿るための設定道路とを有する。位置推定サブシステム202は、経路に沿った自ビークルの位置を決定し得る。位置推定サブシステム202は、センサおよび環境の地図から受け取る複数の入力を利用することによって、自ビークルの位置を決定し得る。位置推定サブシステム202は、GPSセンサデータを使用して自ビークルの全地球測位を決定し得る。位置推定サブシステム202は、GPSセンサデータを受け取り、それを自律型ビークル管理システム122の1つまたは複数の他のサブシステムによって使用可能なより有用な形態に変換し得る。例えば、情報、位置推定サブシステム202は、(地図管理とも呼ばれる)鉱山地図などの環境の地図に対して自ビークルがどこに位置するかを識別し得る。
【0047】
[0062]位置推定サブシステム202はまた、位置推定サブシステム202が知覚するものが、位置推定サブシステム202が有する情報と照合される、地図マッチングを行うようにも構成され得る。地図マッチングは、(例えば、地理情報システム(GPS)などを使用して)記録された地理座標を現実世界の論理モデルと照合することができる。一例では、地図マッチングアルゴリズムは、(例えばGPSから)記録された一連の地点を取得し、それらを(例えば、ネットワークとして)既存のストリートグラフ内のエッジに関連付けることができる。これは、自律型ビークルの走行を表すソートされたリスト内にあり得る。地図マッチングの一部として、位置推定サブシステム202は、その環境内で自ビークルを追跡し、現実世界地図などの地図に対して位置推定サブシステム202が見るものに基づいてその位置を推定している。
【0048】
[0063]位置推定サブシステム202はまた、1つまたは複数のカメラによって取り込まれた画像を解析することによってなど、センサデータに基づいて自ビークルの向きおよび位置を決定することを含む、視覚オドメトリを行うようにも構成される。
【0049】
[0064]位置推定サブシステム202はまた、推測航法処理も行い得る。推測航法は、以前に決定された位置、すなわち航行位置を使用してそれ自体の現在位置を計算し、経過時間およびコースにわたる既知の速度または推定速度に基づいてその位置を前進させるプロセスである。これは、走行した方向および距離を推定することによって自ビークルの位置を計算することを含み得る。例えば、自律型ビークル管理システム122は、その車輪速度、操舵角、自律型ビークル120が1秒前にいた場所などといった、自律型ビークル120に関する特定の情報を受信し、知っている。過去の位置情報に基づき、速度/操舵角などと組み合わせて、位置推定サブシステム202は、ビークルの次の地点または現在の地点を決定することができる。これにより、自ビークルがその経路上を移動するときの自ビークルの位置の局所的な理解が提供される。経路は、様々な実施形態によれば、道路、幹線道路、鉄道システム、滑走路、航路、自転車専用道路などとすることができる。
【0050】
[0065]位置推定サブシステム202はまた、自ビークルの経路に関する履歴情報が解析され、現在の経路と比較される、局所的履歴管理追跡も行い得る。例えば、自律型ビークル120が鉱山の特定の経路の周囲を何度も運転する場合、この情報を、位置推定サブシステム202が比較および解析することができる。
【0051】
[0066]位置推定サブシステム202はまた、合理性チェック、欠陥チェック、センサデータの正規化などを行うように構成された一貫性モジュールも実装し得る。例えば、位置推定サブシステム202は、自ビークルの位置、地点などに関して異なる情報ソースから情報を受け取り得る。合理性チェックは、様々なセンサからの情報が一貫性を有し、ロバストであることを確認する妥当性チェックを行うために使用され得る。これは、誤った結果を減らすのに役立つ。合理性チェックは、センサデータ値および/または計算の結果がおそらくは真であり得るかどうかを評価するためのテストを含むことができる。また、センサ110から受信されたセンサデータを正規化し、次いで正規化されたセンサデータを位置推定サブシステム202に提供することもできる。次いで、位置推定サブシステム202は、正規化されたセンサデータを利用して、自律型ビークルの(例えば、ネットワーキングレイテンシおよび処理レイテンシなどを想定した)リアルタイム環境の一貫性を有する内部地図を生成および/または更新することができる。
【0052】
[0067]知覚サブシステム204は、定期的に、またはオンデマンドで、センサ110からセンサデータを受信し、受信した情報に基づいて一貫性を有する内部地図を構築し維持する。知覚サブシステム204はまた、位置推定サブシステム202などの他のソースからも入力を受け取り、受け取った入力を使用して内部地図を構築し維持し得る。知覚サブシステム204によって生成された内部地図は、自ビークルの情報、自ビークルおよびその環境の状態、自ビークルの環境内の物体に関する情報(例えば、自ビークルの周囲の動的物体および静的物体に関する情報)を含むすべての情報を含む。一貫性を有する内部地図は、自律型ビークルの環境内、例えば、自律型ビークルの周囲の感知されたエンティティ/物体の局所的な地図とすることができる。特定の実施形態では、これらの感知されたエンティティ/物体は、三次元(3D)で描かれる。特定の実施形態では、知覚サブシステム204は、位置推定サブシステム202から位置情報を受け取り、その位置情報を内部地図に組み込む。センサがオフラインになった場合でも、内部地図を維持することができる。
【0053】
[0068]合理性チェックおよび正規化は、知覚サブシステム204によって受け取られたセンサデータに対して行われ得る。これらのチェックは、センサデータ値および/または計算の結果がおそらくは真であり得るかどうかを評価するためのテストを含むことができる。センサ110から受信されたセンサデータを正規化し、次いで正規化されたセンサデータを知覚サブシステム204に提供することもできる。次いで、知覚サブシステム204は、正規化されたセンサデータを利用して、自律型ビークルのリアルタイム環境の一貫性を有する内部地図を生成および/または更新することができる。
【0054】
[0069]知覚サブシステム204は、人工知能(AI)および機械学習ベースの技術を含む、様々な異なるアルゴリズムおよび技術を使用してその機能を行い得る。例えば、知覚サブシステム204は、畳み込みニューラルネットワーク(CNN)を使用して、センサデータに基づいて物体検出および物体分類を行い得る。訓練段階の間、CNNは、ビークルの環境のサンプル画像および対応するグラウンドトゥルース分類を含むラベル付き訓練データを使用して訓練され得る。ラベル付きデータは、一般に、1つまたは複数のラベルでタグ付けされた一群のサンプルを含み、ラベルは、訓練入力サンプルの既知の結果(例えば、グラウンドトゥルース分類など)を表す。ラベル付けはまた、ラベル付けされていないデータのセットを取得し、そのラベル化されていないデータの各部分を参考になる意味のあるタグで増強するために使用することもできる。次いで、訓練に基づいて構築されたCNNモデルまたは他のAI/機械学習モデルは、センサ110から受信された新しいセンサデータに基づいて自律型ビークル120の環境内の物体を特定し分類するためにリアルタイムで使用され得る。
【0055】
[0070]計画サブシステム206は、自律型ビークル120の動作計画を生成するように構成される。計画は、自律型ビークル120によって行われるべき1つまたは複数の計画された動作または操作を含み得る。例えば、計画は、自律型ビークル120によって横断されるべき軌道または経路を特定する情報を含み得る。経路は、様々な実施形態によれば、道路、幹線道路、鉄道システム、滑走路、航路、自転車専用道路などとすることができる。例えば、軌道情報は、ビークルが点Aから点Bまでどのように移動すべきかを、ビークルが点Aから点Bまで辿るための軌道を記す点Aと点Bとの間の点のリストを用いて示し得る。別の例として、計画サブシステム206によって生成される計画は、方向指示器またはライトをオンまたはオフにする、1つまたは複数の音(例えば警報)を発するなど、自律型ビークル120の付属品に関する計画された動作を含み得る。自律型ビークル120が特殊な動作を行うようにカスタマイズされた特殊な構成要素を有する状況では、計画サブシステム206によって生成された計画はまた、これらの特殊な構成要素のうちの1つまたは複数によって行われるべき計画された動作も含み得る。例えば、自律型ビークルが、材料の掘削および移動を行うためのバケットおよびアームアセンブリを備えた掘削トラックである場合、計画サブシステム206によって生成された計画は、掘削を行うためにバケットおよびアームアセンブリによって行われるべき動作を含むことができる。例えば、計画は、アームが上げられるべき角度、および/またはアームに対するバケットの角度を含み得る。動作計画が生成された後、計画サブシステム206は、その動作計画を制御サブシステム208に伝達し得、次いで制御サブシステム208は、動作計画内の計画された動作を自律型ビークル120に安全な方法で行わせるようにビークルシステム112の1つまたは複数のシステムを制御し得る。
【0056】
[0071]計画サブシステム206は、知覚サブシステム204によって生成された内部地図に加えて、自律型ビークル120の動作計画を生成する際に使用する様々な他の入力も受け取り得る。これらの入力には、限定はしないが、以下が含まれ得る。(a)位置推定サブシステム202から受け取られた位置または位置推定情報。(b)自律型ビークル120の1つまたは複数の目標を特定する情報(例えば、右折するための自律型ビークル120の最終目標を識別する情報が受け取られ得る)。目標は、自律型ビークルまたは機械のエンドユーザまたはオペレータによって設定され得る。自動車の例では、ユーザは、自律型ビークル120の現在の地点から特定の最終目的地まで運転するために高いレベルを設定し得る。自律型ビークル120は、現在の地点および最終目的地点に基づき、GPSルート計画に従って現在の地点から最終目的地まで自律的に運転することを目標として、GPSルート計画を決定し得る。採掘環境の例では、オペレータによって設定される高レベルの目標は、地点Aから10トンの材料(例えば、砂、石炭など)を移動させ、地点Bで材料を空けることであり得る。一般に、1つまたは複数の異なる目標が設けられ得る。目標のカテゴリ(そのうちのいくつかは重複し得る)の例には、限定はしないが、自律型ビークルが自律動作を行うことに関連する目標(例えば、経路に沿った自律運転または操縦、すくい取って空ける動作、材料または物体の移動、材料の持ち上げ、駆動、圧延、泥の拡散、掘削、ある地点から別の地点への材料または物体の輸送など)、ビークルの操作に関連した目標、ビークルの環境におけるビークルと様々な動作主体、物体などとの相互作用に関連した目標、ビークルの一般的な動作に関連した目標などが含まれる。目標の例は、車線変更、ある地点から別の地点までの運転、目的地まで可能な限り速く運転すること、方向転換を行うこと、一連のステップを順番に行うことなどである。(c)自律型ビークル120によって取られるべき経路またはルートに関する高レベルのルート情報。これは、自律型ビークルのエンドユーザまたはオペレータによって直接的または間接的に提供され得る。(d)安全上の考慮事項を特定する情報。これらもまた、自律型ビークル120によって提供されるAPIを使用してエンドユーザ/オペレータなどによって、または自律型ビークル120用に構成されたメタデータを介して、自律型ビークルに提供され得る。これらの考慮事項の例には、限定はしないが、以下が含まれる。常に車線内にとどまる、常に任意の物体から一定の距離を保つ、ダンプトラックが30度を超える旋回をしない、ローダBが15度を超える勾配を登らないなど。(e)特定の動作が過去にどのように行われたかに関する情報。例えば、特定の自律型ビークルの場合、これは、その特定の自律型ビークルがその動作を過去にどのように行ったか、異なる自律型ビークルがその動作を過去にどのように行ったか、その操作が過去にビークルを使用してどのように手動で行われたか(例えば、運転者/オペレータが、その操作を、運転者/オペレータの制御下で動作しているビークルを用いて過去にどのように行ったか)、の過去の履歴であり得る。例えば、自律型ビークルが過去に経路を走行したこと、手動トラックがこの経路をどのように運転したか、または特定の作業をどのように完了したかなど。(f)その他の入力。
【0057】
[0072]計画サブシステム206は、1つまたは複数の入力に基づいて、自律型ビークル120の動作計画を生成する。計画サブシステム206は、自律型ビークル120の環境が変化するにつれて、自律型ビークル120によって行われるべき目標が変化するにつれて、または一般に、計画サブシステム206への入力のいずれかの変化に応答して、計画を定期的に更新し得る。
【0058】
[0073]計画サブシステム206は、動作計画を生成および更新することの一部として、安全な方法で特定の目標を達成するために、どの動作が計画に含められるべきかに関する様々な判断を行う。これらの判断を行うことの一部として計画サブシステム206によって行われる処理は、挙動計画、全体計画、経路計画、フェイルセーフ経路、経路履歴追跡などを含み得る。
【0059】
[0074]計画サブシステム206は、自律型ビークル120によって安全な方法で行われるべき機能または動作(例えば、自律運転または操縦、エリアの採掘)を行うという目標を達成するために、様々なAIベースの機械学習アルゴリズムを使用して動作計画を生成および更新し得る。例えば、特定の実施形態では、計画サブシステム206は、動作計画を生成および更新するために強化学習(RL)を使用して訓練されたモデルを使用し得る。自律型ビークル管理システム122は、RLモデルを使用して、自律型ビークル120の自律動作を制御するために行われるべき動作を選択し得る。RLモデルは、その対象範囲および精度を高めるために定期的に更新され得る。強化学習(RL)は、エージェントがある累積報酬の概念を最大化するために環境内でどのような行動を取るべきかと関係する、行動主義心理学から着想を得た機械学習の分野である。
【0060】
[0075]特定の実施形態では、計画サブシステム206は、動作計画を生成することに加えて、センサ110の挙動を動的に制御することができる。例えば、計画サブシステム206は、特定のセンサによって取り込まれるセンサデータを動的に制御するために、かつ/またはセンサから知覚サブシステム204(もしくは位置推定サブシステム202などの自律型ビークル管理システム122の他のサブシステム)に伝達されるセンサデータを制御するために、センサ110の中からの特定のセンサに命令またはコマンドを送信することができる。知覚サブシステム204によって構築される内部地図は、センサから知覚サブシステム204によって受け取られたセンサデータに基づくものであるため、センサから受信されるセンサデータを動的に制御することができることにより、内部地図を構築し維持するために知覚サブシステム204に含まれ、かつ/または知覚サブシステム204によって使用される情報を、計画サブシステム206によって動的に制御することもできる。計画サブシステム206は、特定のタイプの情報を取得するように、または指定された方法で動作するように、例えば、追加のセンサデータを提供して一貫性を有する内部地図を更新するように、動的にオンデマンドで直接センサ110に指図することができる。例えば、計画サブシステム206は、LIDARセンサに、その感知範囲を、360度(360°)の視野から、LIDARシステムによってより詳細に感知および/または追跡されるべき特定の物体を含むより狭い範囲に狭めるように命令することができる。このようにして、一貫性を有する内部地図は、計画サブシステム206からのフィードバックに基づき、計画サブシステムの制御下で更新される。
【0061】
[0076]自律型ビークル管理システム122は、計画サブシステム206(または自律型ビークル管理システム122の他のサブシステム)が、それらの1つまたは複数のセンサの挙動を制御するために1つまたは複数のセンサに1つまたは複数の命令またはコマンドを送信することを可能にするインフラストラクチャを提供する。
図2Aに示される実施形態では、センサ・インターフェース・サブシステム210は、センサ110と相互作用するためのインターフェースを提供する。計画サブシステム206は、(自律型ビークル管理システム122からセンサ方向への)アウトバウンド方向に、センサ・インターフェース・サブシステム210に命令またはコマンドを送ることができる。次いで、センサ・インターフェース・サブシステム210は、受け取った命令を意図された宛先センサに伝達するように構成される。センサ・インターフェース・サブシステム210は、(センサから自律型ビークル管理システム122への)インバウンド方向に、計画サブシステム206から送られた命令に応答してセンサからのセンサデータを受信し得る。次いで、センサ・インターフェース・サブシステム210は、受信したセンサデータを計画サブシステム206(または命令を発信した自律型ビークル管理システム122の適切なサブシステム)に伝達し得る。
【0062】
[0077]センサ・インターフェース・サブシステム210は、1つまたは複数の異なる通信プロトコルを使用して異なるセンサと通信することができてもよい。特定の実施形態では、アウトバウンド方向に、計画サブシステム206から(または自律型ビークル管理システム122の任意の他のサブシステムから)受け取られた、特定のセンサに送信されるべき命令またはコマンドについて、センサ・インターフェース・サブシステム210は、その命令を、その特定のセンサによって理解可能であり、その特定のセンサと通信するのに適したフォーマットに変換し、次いで、その特定のセンサに適用可能な特定の通信プロトコルを使用し得る。
【0063】
[0078]特定の実施形態では、自律型ビークル管理システム122は、センサ110およびそれらの能力を特定する情報にアクセスすることができる。次いで、自律型ビークル管理システム122のサブシステムは、この格納された情報にアクセスしその情報を使用して、センサの可能な能力および挙動を決定し、そのセンサに、その挙動を変更するよう求める命令を送信し得る。特定の実施形態では、センサと自律型ビークル管理システム122との間で可能にされる通信の前に、センサが自律型ビークル管理システム122に登録される必要がある。登録プロセスの一部として、登録されるセンサについて、センサに関連する情報が提供され得る。この情報は、センサを識別する情報、センサの感知能力および挙動、センサによって使用可能な(1つまたは複数の)通信プロトコル、ならびにセンサに関連した他の情報を含み得る。次いで、自律型ビークル管理システム122は、この情報を使用してセンサと通信し、センサの挙動を制御し得る。
【0064】
[0079]上記のように、計画サブシステム206は、センサに、センサの挙動を制御および変更するよう求める命令を送信し得る。センサの挙動の変更は、センサから自律型ビークル管理システム122に伝達されるセンサデータ(例えば、センサから知覚サブシステム204、もしくは自律型ビークル管理システム122の他のサブシステムに伝達されるセンサデータ)の変更、センサによって収集もしくは感知されるデータの変更、またはそれらの結合を含むことができる。例えば、センサから自律型ビークル管理システム122に伝達されるセンサデータを変更することは、命令を受信する前にセンサから自律型ビークル管理システム122に伝達されたデータよりも多いかもしくは少ないデータを伝達すること、および/またはセンサから自律型ビークル管理システム122に伝達されるセンサデータのタイプを変更することを含むことができる。ある場合には、センサによって感知または収集されるデータは同じままであり得るが、センサから自律型ビークル管理システム122に伝達されるセンサデータは変化し得る。他の場合には、センサによって感知または収集されるデータ自体が、自律型ビークル管理システム122から受信した命令に応答して変更され得る。計画サブシステム206はまた、センサに適切な命令を送信することによって、センサをオンまたはオフにすることができてもよい。
【0065】
[0080]例えば、計画サブシステム206は、知覚サブシステム204によって生成された現在の内部地図、位置推定サブシステム202からの位置情報、および自律型ビークル120が一定の時間内に旋回するという目標(例えば、次の5秒間で右折)を含む入力を受け取り得る。目標を安全な方法で達成するために自律型ビークル120によって取られるべき最良の動作セットは何かを判断することの一部として、計画サブシステム206は、自律型ビークル120の右側の環境を示す特定のセンサデータ(例えば、追加画像)が必要であると判定し得る。次いで、計画サブシステム206は、特定のセンサデータ(例えば、自律型ビークル120の右側の環境の画像)を提供することができる1つまたは複数のセンサ(例えば、カメラ)を決定し得る。次いで、計画サブシステム206は、これらの1つまたは複数のセンサに命令を送信して、それらの挙動を変更させて、1つまたは複数のセンサが特定のセンサデータを取り込み、自律型ビークル管理システム122(例えば、知覚サブシステム204へ)に伝達するようにすることができる。知覚サブシステム204は、この特定のセンサデータを使用して内部地図を更新し得る。次いで、更新された内部地図は、計画サブシステム206によって、自律型ビークル120の動作計画に含められるべき適切な動作に関する判断を行うために使用され得る。右折が自律型ビークル120によって正常に行われた後、計画サブシステム206は、自律型ビークル管理システム122に、異なる、おそらくは低減されたレベルのセンサデータの通信に戻るよう同じ(1つまたは複数の)カメラに指示する別の命令を送信し得る。このようにして、内部地図を構築するために使用されるセンサデータを動的に変更することができる。
【0066】
[0081]センサによって自律型ビークル管理システム122から受信された命令によって引き起こされるセンサの挙動の変化の例には、限定はしないが、以下が含まれ得る。
センサに、センサから自律型ビークル管理システム122に伝達されるセンサデータを低減させるか、または遮断させる。これは、例えば、自律型ビークル管理システム122によって受信される大量のセンサデータを低減させるために行われ得る。計画サブシステム206が、自律型ビークル120の目標が右折することであることを示す入力を受け取る、上記と同じ例を使用すると、計画サブシステム206は、自律型ビークル120の左環境に関して少ないセンサデータしか必要としないと判断し得る。次いで、計画サブシステム206は、低減されるべきセンサデータの伝達を担う1つまたは複数のセンサ(例えば、カメラ)を決定し得る。次いで、計画サブシステム206は、これら1つまたは複数のセンサに、これらのセンサから自律型ビークル管理システム122(例えば、知覚サブシステム204)に伝達されるセンサデータの量が低減されるようそれらの挙動を変更させるための命令を送信し得る。一例として、計画サブシステム206から送信される命令は、以下のうちの1つまたは複数を行い得る。
センサに視野を変更させる。例えば、カメラまたはLIDARセンサを狭い場所にズームインさせる。
センサに部分的な情報のみを送信させる。例えば、センサは、センサによって取り込まれたすべての情報よりも少ない情報を送信し得る。
センサに、以前よりも、または通常の速度よりも速くまたは遅く情報を送信させる。
センサをオンにする。
センサに、以前とは異なる解像度または粒度で自律型ビークル管理システム122に情報を取り込ませ、かつ/または送信させる。
【0067】
[0082]
図2Bに、特定の実施形態による自律型ビークル管理システム122の様々なサブシステムを実装するために使用され得るソフトウェアモジュール(例えば、自律型ビークル120の1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令)を示す。ソフトウェアモジュールは、非一時的コンピュータ媒体に格納され得る。必要に応じて、モジュールまたはモジュールの実行可能画像のうちの1つまたは複数が、システムメモリ(例えば、RAM)にロードされ、自律型ビークル120の1つまたは複数のプロセッサによって実行され得る。
図2Bに示される例では、位置推定サブシステム202、知覚サブシステム204、計画サブシステム206、および制御サブシステム208を実装するためのソフトウェアモジュールが示されている。
【0068】
[0083]
図4は、特定の実施形態による自律機械(例えば、自律型ビークル120)における知覚サブシステム400の簡略化されたブロック図である。知覚サブシステム400は、
図2A知覚サブシステム204を実装するために使用することができる。
図4に示されるように、知覚サブシステム400は、前処理モジュール410と、物体検出モジュール420と、推定モジュール430とを含み得る。モジュール410、420、および430の各々は、ソフトウェアのみ、ハードウェアのみ、またはそれらの組み合わせで実装することができる。
図4に示される知覚サブシステム400は、単なる例である。当業者は、多くの変形形態、代替形態、および改変形態を理解するであろう。例えば、いくつかの実装形態では、知覚サブシステム400は、
図4に示されるものよりも多いかもしくは少ないサブシステムもしくは構成要素を有してもよく、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成もしくは配置を有していてもよい。さらに、知覚サブシステムの特定の構成要素は、体積推定に関する知覚サブシステムの態様の説明を不明瞭にしないように、意図的に省略されている。
【0069】
[0084]前処理モジュール410は、物体検出モジュール420によるさらなる処理に備えて、取得されたセンサデータを調節および/または再フォーマットするように構成される。フォーマットすることは、1つのセンサによって生成されたデータおよび第2のセンサによって生成されたデータを共有フォーマットおよび/または共有参照フレームに変換することを含み得る。例えば、センサは、データを異なる速度で取り込み得る(例えば、異なる毎秒フレーム数でデータを取り込む2つのカメラや、LIDARセンサとは異なる周波数で動作するレーダーセンサ)。よって、前処理モジュール410によって行われる処理の一部として、異なる速度で動作するセンサから取り込まれたデータが、センサデータがその後首尾一貫した方法で結合されること、例えば、異なるセンサによって取り込まれたが同じ期間に対応するデータを一緒にマージまたはグループ化することを可能にするように再フォーマットされ得る。別の例として、センサは、異なる場所(例えば、自律型ビークルの本体上の異なる位置)に配置され、かつ/または異なる向き(例えば、立体画像を生成するためにわずかに異なる方向に向けられた2つのカメラ)であり得る。第1のセンサが特定の位置で物体を取り込み、第2のセンサが(例えば、第1のセンサに対する第2のセンサの視点の違いに起因して)同じ物体を異なる位置で取り込む場合、前処理モジュール410は、物体が両方のセンサからのセンサデータにおいて、2つの別個の物体ではなく単一の物体として表されるようにするために、幾何補正を行い得る。
【0070】
[0085]センサデータの調節は、センサデータの品質を改善する任意の数の操作を含み得る。調節は、センサのタイプに応じて異なり得る。例えば、カメラ前処理は、画像サイズまたは解像度の調整(例えば、より高速な下流処理のために大きな画像をより小さいサイズに縮小するため)および補正画像処理(例えば、レンズ補正、収差補正、ホワイトバランス、アパーチャ補正など)を含み得る。カメラ前処理はまた、異なる画像を合成して(例えば、画像セットの平均値としての)単一の画像にすることも含み得る。他のタイプの調節操作には、ノイズまたは不要な情報を除去するための操作(例えば、画像のトリミング、特定の視野外で取り込まれたLIDARデータの除去、関心対象ではない物体または領域(例えば、地面)に対応するデータの除去など)が含まれる。
【0071】
[0086]前処理モジュール410はまた、センサの較正を行ってセンサ挙動を変更し、かつ/または非理想のセンサ挙動を補償するようにも構成され得る。LIDARまたはレーダーセンサの挙動の変更の例には、反射率パラメータを調整してLIDAR/レーダーセンサの動作範囲を変更すること(例えば、堆積物などの関心対象の物体のビークルからの距離が特定の距離未満であることが知られている場合に、その距離を超えるデータの取り込みを防止するため)、およびLIDAR/レーダーセンサによって取り込まれる視野を(例えば、360度から270度に)変更することが含まれる。補正カメラ較正の一例が、推定されたパラメータが後続の画像取り込み中のレンズ歪みの補正に使用されることを可能にする、カメラ内のレンズおよび/またはイメージセンサのパラメータの推定である。よって、前処理は、センサデータを取り込む前に行われる操作および取り込み後の操作を含むことができる。較正は、内部較正(例えば、同じセンサによって取り込まれたデータに基づいてセンサの挙動を調整すること)および/または外部較正(例えば、別のセンサからのデータに基づいてセンサの挙動を調整すること)を含むことができる。
【0072】
[0087]特定の実施形態では、カメラの較正は、カメラの外部行列を計算することを含む。外部行列は、カメラの姿勢を表し、カメラの参照フレームを他の何らかの参照フレーム(例えば、LIDARセンサの参照フレーム)にマップするために必要な幾何変換(例えば、並進および/または回転)を示す値を含む変換行列である。外部行列は、チェッカボード較正法を使用して3×4行列として計算することができ、チェッカボード較正法では、市松模様を特徴とする3D較正装置がカメラの視野内に配置され、次いで、チェッカボード画像内の点または特徴を他方の参照フレーム内の対応する点または特徴にマップする行列パラメータを決定するために取り込まれる。例えば、チェッカボード画像に表された較正装置の角を、LIDARセンサによって生成された点群に表された較正装置の角にマップすることができる。外部行列の計算は、カメラ画像内のn個の3D点のセットおよびそれらの対応する二次元(2D)投影を考慮してカメラ姿勢を推定する透視n点(perspective-n-point(PnP))アルゴリズムの使用を含む1回のセットアップとして行うことができる。計算されると、外部行列を使用して、例えば、2Dカメラ画像を他のセンサからの3Dデータ(例えば、LIDAR点群)とマージするために、または2つの異なるカメラからの2Dカメラ画像をマージして、カメラ画像間の視差に基づく深度画像を形成するために、カメラからのデータを別のセンサからのデータと結合することができる。
【0073】
[0088]物体検出モジュール420は、前処理モジュール410から前処理されたセンサデータを受け取り、センサデータのどの部分が材料の堆積物または他の何らかのクラスの物体に対応するかを判定するように構成される。物体検出モジュール420は、センサデータをセグメントに分割し得、各セグメントは、囲まれた2D境界または3D境界によって表される。例えば、カメラによって取り込まれた2D画像をセグメント化することは、画素が同じ物体に属すると判定したことに基づいて画素のグループの周りに境界線を生成することを含み得る。セグメント化は、通常、分類(各セグメントのクラスの決定)と同時に行われる。入力表現を1つまたは複数のクラスのセグメントに分割するプロセスは、セマンティックセグメンテーションと呼ばれることがある。セマンティックセグメンテーションは、入力表現をフィルタリングするためのマスクを形成することとみなすことができ、マスクは、形状が対応する物体のタイプに従ってラベル付けされた形状を含む。LIDARまたはレーダーデータ(例えば、3D点群)もまた、例えば、物体の境界を表す3D表面(例えば、幾何学的メッシュ)を生成することによってセグメント化することができる。セグメント化は、アルゴリズム的に(例えば、幾何学的計算を行ってポリゴンの表面を幾何学的メッシュとして生成するソフトウェアアルゴリズムを使用して)、またはセンサデータから物体の境界を推測するように訓練された機械学習(ML)モデルを使用して行うことができる。
【0074】
[0089]物体検出は、必ずしもセンサデータに取り込まれたすべての物体を特定することを含まない。代わりに、物体検出モジュール420は、材料の堆積物などの関心対象の物体のみを検出するように構成することができる。特定の実施形態では、関心対象の物体の検出を、AIまたはMLモデル、例えば、堆積形状の物体を検出するように訓練されたCNNによって行うことができる。物体検出モジュール420は、検出技術を組み合わせることができ、センサデータのソースに応じて異なる検出技術が適用される。例えば、
図7および
図10の実施形態に関連して以下で説明されるように、異なるタイプのセンサを使用して取り込まれたデータから材料の堆積物を検出するために複数のMLモデルを使用することができる。
図7の実施形態では、CNNセグメント化モデル722は、セグメント化された2D画像(例えば、物理的環境における堆積物および他の物体を表す画像)を生成するために、1つまたは複数のカメラによって取り込まれた画像データのセグメント化を行い、ボクセルCNNモデル726は、LIDARデータ(例えば、CNNセグメント化モデル722によって出力されたセグメント化画像に表された同じ堆積物のボクセル表現)に基づいて関心対象の物体のボクセル表現を生成する。
【0075】
[0090]セグメント化を行うとき、物体検出モジュール420は、物体の事前設定のカテゴリまたはクラスのセットに従ってセグメントを分類し得る。異なるタイプのクラスの例を
図5に示す。物体検出モジュール420によって認識されるクラスのタイプは、自律機械が配備される環境に応じて異なり得る。例えば、採掘設備用に設計された物体検出モジュールは、泥の堆積物、地形(例えば、土や草)、空、人間、採掘車両、トラフィックコーンなどに対応するセグメントを認識するように構成または訓練され得る。
【0076】
[0091]物体検出モジュール420は、前処理モジュール410から受け取られたセンサデータを使用して、物理的環境および/または関心対象の物体の1つまたは複数の表現を生成する。例えば、物体検出モジュール420は、2Dカメラ画像の代わりとしてセグメント化された2D画像を生成し得、元の2D画像の画素は、セグメント化処理中に特定された境界線によって画定された形状に対応する画素で置き換えられる。セグメント化画像内の画素の色値は、物体のクラスに従って設定され得る。例えば、堆積物の輪郭は、堆積物クラスに一意に割り当てられた色で塗りつぶされ得る。このようにして、異なるクラスの物体をより区別しやすくしながら、無関係な視覚情報を除去することによって元の画像を単純化することができる。いくつかの実施形態では、セグメント内の画素の色は、セグメントの境界線の周りに輪郭が描かれていることを除いて、元の画像と実質的に同じに保たれ得る。置換画像は、物体を記述するラベル(例えば、物体のクラスを記述するテキストまたはメタデータ)で増強され得る。別の例として、物体検出モジュール420は、LIDAR点群を使用して堆積物のボクセル表現(例えば、点群内の点によって示される堆積物の形状に近似する立方体の3Dスタック)を生成し得る。
【0077】
[0092]推定モジュール430は、物体検出モジュール420から異種表現を受け取り、それらの異種表現を結合して、推定モジュール430による解析のための、および/または下流処理のための出力としての単一の表現にするように構成される。例えば、推定モジュール430は、セグメント化画像およびボクセル表現から堆積物の3D表現を生成し得、3D表現は、セグメント化画像またはボクセル表現のみよりも正確に堆積物の幾何学的形状を表す。特定の実施形態では、推定モジュール430によって生成された3D表現は、関心対象の物体(例えば、堆積物)の表面を表す平滑化されたボクセル表現または数値標高モデル(digital elevation model(DEM))である。3D表現は、ボックスのグリッドと、グリッド内のボックスごとに、ボックスの高さを示す情報(例えば、物体の表面に沿った特定の地点において地面と物体の頂部との間で占有されるボクセルの総数)とを含み得る。特定の実施形態では、推定モジュール430によって生成された3D表現は、自ビークルの環境内の物体に関する情報および自ビークルの状態に関する情報を含むものとして、
図2aの実施形態に関連して前述された内部地図を更新するために使用される。
【0078】
[0093]推定モジュール430は、3D表現を使用して、関心対象の物体の1つまたは複数の特性を推定し得る。特定の実施形態では、推定モジュール430によって行われる処理は、材料の堆積物の寸法を推定することと、推定された寸法に基づいて、堆積物の体積を推定することとを含む。関心対象の物体の特性を推定することの一部として、推定モジュール430は、いくつかの実施形態では、物体の品質を判定し得る。例えば、採掘現場では、バームは、安全バリアおよび/または運転可能な領域の表示として機能する(例えば、経路に沿って互いに対向して配置された2つのバーム)。バームは、通常、採掘車両の半分の高さであり、バームの頂部を丸めることなく理想的に十分に圧縮される。泥のゆるい堆積物または十分な高さではない泥の堆積物として形成されたバームは、例えば、偶発的な衝突時や、またはバームを乗り越えようとする際に、バームと接触するビークルまたは人にとって潜在的な危険となる可能性がある。したがって、推定モジュール430は、バームが(例えば、高さまたは密度に関して)最小要件を満たすかどうかに関する指示を出力することができる。別の例として、推定モジュール430は、LIDAR反射率データの差に基づいて新鮮な堆積物材料と古い堆積物材料とを区別するように訓練された機械学習モデルを含み得る。したがって、推定モジュール430は、堆積物または堆積物内の領域の経年に関する表示を出力することができる。よって、推定モジュール430は、堆積物の体積の値を決定することに加えて、任意の数の他の堆積物特性の定量的および/または定性的推定値も生成し得る。
【0079】
[0094]上記のように、材料の堆積物の体積推定および寸法推定は、自律機械による様々な作業の実行を容易にすることができる。例えば、推定モジュール430は、堆積物の推定された特性および/または堆積物の品質の指示を
図2の計画サブシステム206に伝達して、計画サブシステム206が、例えば、堆積物の周りを操縦すること、堆積物から一定量の材料をすくい取り、すくい取った材料を別の場所に移動すること、堆積物上にさらに材料を追加することなどを含み得る動作計画の生成を可能にし得る。いくつかの実施形態では、推定モジュール430は、計画サブシステム206に、堆積物特性が推定された根拠である3D表現を伝達する。3D表現は、計画サブシステムが動作計画を策定するときに堆積物の幾何学的形状および/または地点を考慮に入れることを可能にする。特定の実施形態では、推定モジュール430は、推定された特性および/または3D表現を別の自律機械(例えば、近くの別の自律型ビークルの知覚サブシステム)に伝達して、その別の自律機械がそのような情報に基づいて1つまたは複数の作業を行うことを可能にするように構成され得る。
【0080】
[0095]特定の実施形態では、物体検出モジュール420および推定モジュール430は、センサデータを高スループットで効率的に処理するための高速計算プラットフォーム上に実装され得る。例えば、センサと、物体検出モジュール420および推定モジュール430を形成する様々なコンピューティングリソース(プロセッサ、メモリなど)とは、1つまたは複数の高速通信ネットワーク(例えば、ギガビットイーサネット)によって結合され得、センサデータがリアルタイムで収集および処理されるようにパイプライン方式で処理を行い得る。
【0081】
[0096]特定の実施形態では、物体検出モジュール420は、1つまたは複数の機械学習モデルを含む。物体検出モジュール420内の各MLモデルは、前処理されたセンサデータを入力として受け取る。MLモデルは、1つまたは複数のタイプのセンサデータを受け取ることができる。例えば、
図7の実施形態では、カメラデータとLIDARデータとに別々のMLモデルが提供される。
図11の実施形態では、単一のMLモデルが、カメラデータ、LIDARデータ、およびレーダーデータを受け取る。MLモデルによって受け取られたセンサデータは、センサによって取り込まれた物理的環境の2D表現または3D表現を含む。例えば、センサデータは、カメラによって生成された2D画像またはLIDARセンサによって生成された3D点群を含み得る。MLモデルを、センサデータに基づいて推測を生成するように訓練することができる。例えば、MLモデルは、2D画像内の各画素の色値から、画像のどの領域が関心対象の堆積物または他の物体に対応するかを推測し得る。MLモデルは、物体単独または環境内の物体の追加の2D表現または3D表現の形態で推測を出力し得る。例えば、
図7および
図10の実施形態などの特定の実施形態では、MLモデルは、カメラ画像からの色情報に基づいて異なるクラスの物体の境界を推測し、MLモデルによって検出された各物体の境界を示すセグメント化画像を出力するように訓練される。訓練は、一般に、MLモデルへの入力として訓練表現セットを提供することと、得られた推測を正しい推測に対応するグラウンドトゥルース情報と比較することと、実際の推測と正しい推測との差に基づいてMLモデルの挙動を調整することとを含む。
【0082】
[0097]
図5に、特定の実施形態による、物体を検出するよう機械学習モデルを訓練するために使用可能な例示的な訓練画像500(例えば、現実世界環境の写真)を示す。訓練画像500は、二次元訓練データの一例である。しかしながら、機械学習モデルが3Dデータで動作する場合、3D訓練データ(例えば、点群)も訓練に使用できることが理解されよう。例えば、複数のタイプの物体を表す点群を使用して、それらのタイプの物体を認識するようにMLモデルを訓練することができる。またMLモデルを、単一の物体を表すデータで訓練することもできる。例えば、堆積物を検出するようにCNNを訓練するために、CNNに堆積物の形状の点群を提供することができる。
【0083】
[0098]
図5に示されるように、訓練画像500は、第1の空502、第2の空504、建物506、水508、第1の地形510(例えば、舗装または未舗装の地面)、第2の地形512、泥514(例えば、第1の泥の堆積物)、泥516(例えば、第2の泥の堆積物)、トラフィックコーン518、ポール520、および未知の物体530などの様々なクラスの物体のラベル付きインスタンスを含む。
図5の実施形態では、泥物体514および泥物体516は、堆積物であるとして明示的にラベル付けされていない。しかしながら、他の実施形態では、例えば、泥の堆積物が泥および堆積物であるとして同時にラベル付けされるように、別個の堆積物クラスがあってもよい。これにより、MLモデルが、堆積形状の泥と堆積形状ではない泥、例えば堆積物の基部の周りの固まっていない泥とを区別することが可能になる。訓練データは、機械学習モデルが展開または使用されることになる自律機械によって遭遇されると予想されるタイプの物体を含むように選択することができる。
【0084】
[0099]訓練画像500には、各物体の境界線を示す情報が付随し得る。例えば、
図5に示されるように、各物体は、その物体を囲む輪郭によって注釈が付けられている。特定の実施形態では、境界線は2Dポリゴンとして表される。3D表現では、境界線を、3D表面を画定する幾何学的メッシュ(例えば、相互接続されたポリゴンのメッシュ)として表すことができる。境界線はまた、例えば、訓練画像500を符号化したコンピュータ可読ファイル内のメタデータを使用して非視覚的に示すこともでき、メタデータは、物体の境界線に対応する画素の座標をリストする。
【0085】
[0100]訓練画像500には、各物体に物体のクラスを示すラベルでタグ付けするラベル付け情報550も付随する。
図5に示されるように、ラベル付け情報550はまた、例えば各物体クラスの数など、訓練画像500に表された物体に関する統計情報も含み得る。ラベル付け情報550は、例えば、訓練画像500のファイル内のメタデータとして、または別個のファイルとして提供され得る。特定の実施形態では、訓練データのラベル付けの粒度が調整される(例えば、画素レベルでのラベル付け対マクロブロックレベルでのラベル付け)。例えば、処理量および訓練データ量を低減するために、粗い(粒度の小さい)ラベル付けを訓練データに適用することができる。細かすぎるラベル付けは、潜在的に、機械学習モデルの過剰適合につながる可能性があるが、粗すぎるラベル付けは、過汎化、よって不十分な適合につながり得る。
【0086】
[0101]機械学習モデルは、通常、大きな訓練データセット(例えば、数千の画像)で訓練される。訓練データ(例えば、訓練画像)の各項目は、機械学習モデルによるさらなる処理のためにパースされ得る。例えば、機械学習モデルがニューラルネットワークとして実装される場合、訓練データの項目からの関連する特徴が、ニューラルネットワークの入力層に入力するための特徴セットを生成するためにニューラルネットワークまたは別個の機械学習モデルによって抽出され得る。機械学習モデルは、これらの特徴の値を処理して、特徴が表すものに関する推測を生成する。例えば、機械学習モデルは、画素の色値に基づいて、訓練画像500内の画素が特定の物体クラスに対応する確率を推測し得る。次いで、この分類結果を、グラウンドトゥルース分類(例えば、訓練画像500のためのラベル付きクラス)と比較することができ、対応するグラウンドトゥルース分類と機械学習モデルによって生成された分類結果との差に従って機械学習モデルの挙動を調整することができる。例えば、この差は、分類結果を生成するために機械学習モデルによって使用される1つまたは複数の数学関数の重みを調整するために逆伝播され得る。機械学習モデルは、この差を表す損失関数を最小化するように調整の程度を計算し得る。このようにして、機械学習モデルを、例えば、新たに観察された(非訓練)画像内の材料の堆積物の存在を認識するために、物体を分類するように訓練することができる。
【0087】
[0102]機械学習モデルによって生成された分類結果は、セグメント化表現の形態で出力され得る。例えば、機械学習モデルは、例えば
図6に示されるように各物体の周りに境界線が配置された2D画像を生成するように構成され得る。
【0088】
[0103]訓練は、機械学習モデルが展開されることになるコンピューティングデバイスまたはシステム(例えば、
図2の知覚サブシステム204を形成する1つまたは複数のプロセッサ)でローカルで行うことができる。コンピューティングデバイスまたはシステムは、複数の汎用プロセッサ(例えば、中央処理装置(CPU)のクラスタ)を含み得る。代替的または追加的に、機械学習モデルによって行われる大量のグラフィックス関連の計算のために、コンピューティングデバイスまたはシステムは、専用プロセッサ(例えば、グラフィック・プロセッシング・ユニット(GPU)のクラスタ)を含んでいてもよい。これらのプロセッサは、機械学習モデルの訓練を迅速に処理するために、例えば、訓練データの異なる部分を同時に処理することによって並行して動作し得る。いくつかの実施形態では、訓練は、リモートで、例えば、クラウドサーバ上で行われ得る。リモート訓練は、ローカルで利用可能なものを超える追加のコンピューティングリソースを活用することができ、したがって、処理すべき訓練データの量によりローカルで訓練することが非実用的である場合には有用である。
【0089】
[0104]特定の実施形態では、訓練は、機械学習モデルが事前訓練モデルに従って構成されることから始まる。これにより、機械学習モデルが、以前の訓練作業、例えば、機械学習モデルが訓練されることになる訓練データとは異なる訓練データを使用して他のコンピューティングシステムによって行われた訓練によって導出された既存の能力を活用することが可能になる。例えば、自律型ビークルの一般的な動作に関連し得る特定のクラスの物体(例えば、人々、特定のタイプのビークル、建物など)を検出するように構成された機械学習モデルが存在する。そのような既存のモデルは、本明細書に記載される物体検出および推定機能を提供するには不十分であるが、それでもなお、そのようなモデルは、訓練プロセスがより迅速に完了されるように、訓練の開始点として使用することができる。よって、事前訓練モデルを使用すると、訓練が機械学習モデルの最終状態に収束する速度が速まり得る。
【0090】
[0105]特定の実施形態では、訓練データは、物体クラスのバランスのとれた表現を達成するように構成された特定の順序で訓練されている機械学習モデルに提示される。例えば、訓練画像を、各画像内またはいくつかの画像にわたって特定のクラスの物体の少なくとも特定の数のインスタンスが存在するように選択することができる。さらに、訓練画像を、ある物体クラスと別の物体クラスとの特定の比率を維持するように選択することもできる。そのようなクラスバランスを維持することは、後の訓練データに存在する不釣り合いな量の別の物体クラスに起因して、機械学習モデルが以前に訓練されたクラスを「忘却する」の問題を回避するのに役立つ。例えば、最初にもっぱら堆積物で訓練されたニューラルネットワークは、堆積物の検出に関して良好に機能する傾向になるが、ニューラルネットワークに堆積物の訓練インスタンスがもはや提供されなくなるか、または提供される堆積物のインスタンスが過少になると、ニューラルネットワークがその挙動を後の訓練データに表された他のクラス(例えば、地形)のために構成しようと試みるにつれて、堆積物に関するニューラルネットワークの性能が低下し始める可能性がある。現実世界環境がただ1つのタイプの物体で構成されることはほとんどないため、物体クラスのバランスのとれた表現を提供することにより、機械学習モデルが様々な設定で良好に機能することが可能になる。
【0091】
[0106]訓練をいつ終了するかを決定するために、機械学習モデルに検証データを入力し、機械学習モデルによって生成された結果を検証データのグラウンドトゥルース情報と比較することによって、機械学習モデルをテストすることができる。例えば、検証データは、訓練目的ではなく検証のために確保された、訓練データのプールのサブセットを含み得る。訓練および検証は、別々の段階で行うことができる。特定の実施形態では、訓練段階および検証段階は、機械学習モデルが特定のレベルの精度に達したと判定したことに基づいて打ち切られる。例えば、特定の物体クラスまたは物体クラスのセット全体の予測/推測の精度を、閾値(例えば、平均分類誤差)として指定することができる。したがって、閾値は性能基準に対応する。検証のための閾値は、訓練のための閾値と同じとすることができるが、そうである必要はない。機械学習モデルによって生成された結果がこの性能基準を満たすと、訓練を打ち切ることができる。そうでない場合、機械学習モデルには、追加の訓練データを使用してさらなる訓練が施され得る。
【0092】
[0107]
図6に、特定の実施形態による、訓練された機械学習モデルによって生成された例示的なセグメント化画像600を示す。セグメント化画像600は、
図6に示される様々な物体クラスを表す訓練データを使用して訓練された機械学習モデルによって生成された2D画像を表す。セグメント化画像600は、入力画像(例えば、カメラによって取り込まれ、次いで画像を補正および/または再フォーマットするために前処理された画像)から生成され得る。
図6に示されるように、セグメント化画像600は、地形602、空604、泥の堆積物606、人608、泥の第2のインスタンス610(例えば、泥の穴)、および入力画像を取り込んだセンサが搭載された自律型ビークルの一部を形成するバケット612に対応する異なる領域にセグメント化されている。セグメントごとに、機械学習モデルは、そのセグメントによって表された物体が特定のクラスに属する確率(例えば、平均確率)を(例えば、推測によって)決定していてもよい。上記のように、セグメント化画像は、セグメント化画像の生成元の画像の代わりとして使用することができ、物体が容易に区別されることを可能にする特定のカラースキーム(例えば、物体クラスごとに固有の色を有する)を使用し得る。セグメント化は、(例えば、同じクラスの物体は、同じクラスの異なるインスタンスを必ずしも区別することなくラベル付けされるように)セマンティックセグメンテーションおよび/または(例えば、同じクラスの異なるインスタンスが、例えば、堆積物#1、堆積物#2などと個別にラベル付けされるように)インスタンスセグメンテーションを含み得る。
【0093】
[0108]
図7に、特定の実施形態による、異なるタイプのセンサを使用して生成される、物理的環境および/または物理的環境内の物体の異種表現の融合に基づいて材料の堆積物を検出し、その特性を推定するための例示的な方法を示す。
図7の方法は、この方法を実装することができる構成要素の特定の配置を参照して示されている。
図7に示されるように、これらの構成要素は、複数のセンサ(例えば、カメラ702、カメラ704、LIDARセンサ706、およびレーダーセンサ708)、前処理モジュール710、物体検出モジュール720、ならびに推定モジュール730を含み得る。センサの数は様々であり得る。例えば、いくつかの実施形態では、1つのカメラのみ(例えば、単一のカメラと単一のLIDARセンサがあるが、レーダーはない)があり得るか、またはカメラなし(例えば、LIDARセンサ+レーダーセンサや、LIDARセンサもカメラセンサもなしのイメージング・レーダー・センサ)でさえあり得る。
【0094】
[0109]前処理モジュール710は、
図4の前処理モジュール410に対応し得る。センサの各々は、前処理モジュール710内のそれぞれの前処理ユニットに通信可能に結合される。例えば、カメラ702は、画像データを前処理ユニット712に提供するように構成され得、カメラ704は、画像データを前処理ユニット714に提供するように構成され得、LIDARセンサ706は、LIDARデータを前処理ユニット716に提供するように構成され得、レーダーセンサ708は、レーダーデータを前処理ユニット718に提供するように構成され得る。
図4の実施形態に関連して上述されたように、前処理は、異なるセンサからのデータを調節またはフォーマットするため、およびセンサを較正するための様々な取り込み後および/または取り込み前の操作を含み得る。簡潔にするために、
図7の考察では前処理の説明を繰り返さない。
【0095】
[0110]物体検出モジュール720は、
図4の物体検出モジュール420に対応し得る。物体検出モジュール720は、CNNセグメント化モデル722と、幾何モデル724と、ボクセルCNNモデル726とを含む。CNNセグメント化モデル722およびボクセルCNNモデル726は、ニューラルネットワークとして実装された機械学習モデルの例である。しかしながら、
図7のCNNの代わりに他のタイプの機械学習モデル(例えば、異なるタイプのニューラルネットワークを使用して実装されたモデル)を使用することもできる。
【0096】
[0111]CNNセグメント化モデル722は、カメラ702からのデータを使用して前処理ユニット712によって生成された前処理データを受け取る。前処理されたカメラデータは、2D画像を含み得る。CNNセグメント化モデル722は、推定モジュール730の融合モジュール732への入力として、2D画像のセグメント化バージョンを提供するために、2D画像をセグメント化し、2D画像に含まれる物体を分類するように構成(例えば、訓練)される。例えば、CNNセグメント化モデル722は、セグメント化され、前処理ユニット712から受け取られた2D画像内で特定された各物体のクラスでラベル付けされた、RGB(赤、緑、青)フォーマットされた2D画像を出力し得る。同様に、CNNセグメント化モデル722は、カメラ704からのデータに対して前処理ユニット714によって行われた操作から導出された画像に基づいてセグメント化画像を生成し得る。
【0097】
[0112]幾何モデル724およびボクセルCNNモデル726は両方とも、LIDARセンサ706の出力を使用して前処理ユニット716によって生成された前処理データを受け取る。前処理ユニット716の出力は、例えば、3D座標系で表された点群を含み得る。幾何モデル724は、コンピュータビジョン技術を使用して前処理されたLIDARデータをセグメント化するために幾何学的処理を行うように構成される。幾何モデル724によって行われるセグメント化は、例えば、体積と関連付けられる点(例えば、3D物体)と体積と関連付けられない点(例えば、平坦な地形)とを区別する1つまたは複数のソフトウェアアルゴリズムを使用して、アルゴリズムによって実装することができる。よって、幾何モデル724は、セグメント化を行うように訓練される必要はない。代わりに、幾何モデル724は、例えば、互いに特定の幾何学的関係を有する点によって多項式フィッティングおよびポアソン表面再構成を使用してポリゴン表面を描くことによって、幾何学的メッシュを単純に生成し得る。特定の実施形態では、幾何モデル724の出力は、3D座標系内で地面に対応する2D平面を定義する幾何学的メッシュを含む。
図8に関連して以下で説明されるように、地面は、堆積物の体積が推定される根拠となる3D体積(囲まれた形状)を決定するために使用することができる。
【0098】
[0113]ボクセルCNNモデル726は、LIDARセンサ706からのデータを使用して前処理ユニット716によって生成された前処理データを受け取る。前処理されたLIDARデータは、物理的環境の3D表現(例えば、x、y、z座標系における点群)を含み得る。ボクセルCNNモデル726は、前処理されたLIDARデータに表された任意の堆積物を検出して、推定モジュール730の融合モジュール732への入力として、前処理されたLIDARデータ内で検出された各堆積物のボクセル表現を提供するように構成(例えば、訓練)される。例えば、ボクセルCNNモデル726は、堆積形状の物体を表す点群データを使用して訓練されていてもよい。この訓練に基づき、ボクセルCNNモデル726は、前処理されたLIDARデータから抽出された特徴を使用して、堆積形状の各物体の一般的な境界を推測する。よって、ボクセル表現は、3D空間における堆積物の形状の大まかな近似である。ボクセルCNNモデル726は、2つの堆積形状の物体を区別する(インスタンスセグメンテーションを行う)ことができる場合もできない場合もある。例えば、ボクセルCNNモデル726は、検出された任意の堆積形状の物体のボクセル表現を出力するように単純に訓練され得る。複数の堆積物の場合には、ボクセルCNNモデル726によって出力されるボクセル表現は、複数の堆積形状のボクセル群の合成とすることができる。
【0099】
[0114]機械学習モデルに結合されているものとして描かれてはいないが、レーダーセンサ708と関連付けられた前処理ユニット718の出力は、いくつかの実施形態では、前処理されたレーダーデータから堆積物および/または他の物体を検出するように訓練された機械学習モデルを介して処理され得る。例えば、融合モジュール732への入力として、レーダーセンサ708を使用して生成された点群に基づいて堆積物のボクセル表現を生成するための別個のボクセルCNNモデルが設けられてもよい。
【0100】
[0115]推定モジュール730は、
図4の推定モジュール430に対応し得る。推定モジュール730は、融合モジュール732に加えて、ボクセル再構成モジュール734と体積計算モジュール736とを含む。
【0101】
[0116]融合モジュール732は、CNNセグメント化モデル722、幾何モデル724、およびボクセルCNNモデル726によって供給される様々な2D情報および3D情報を結合して、物体の単一の3D表現、例えば堆積物の色付きのボクセル表現にするように構成される。融合モジュール732によって生成された3D表現は、融合モジュールに提供された入力表現のいずれよりも、物体に関するより多くの情報を提供する。例えば、融合モジュール732は、セグメント化された2D画像からの色情報をボクセル表現からの形状情報と結合し得る。融合は、例えば、LIDARセンサ706の平面からカメラ702の平面になど、2Dデータ上に3Dデータを投影し、2Dデータから3Dデータに逆に投影することによって、物体の表面全体の色を決定することを含み得る。これにより、融合モジュール732が、特定の色にマップするボクセルが堆積物/物体の一部であるとみなされるべきではないという認識に基づいて、堆積物/物体の境界をより適切に決定することが可能になる。例えば、堆積物の隣に立っている人は、LIDAR点群から導出されたボクセルのセットに一まとめにされる可能性があり、人と堆積物との間の色差に基づいて、人と関連付けられたボクセルを堆積物のボクセル表現から除外することができる。融合モジュール732はまた、幾何モデル724の出力および/または前処理されたレーダーデータを結合された3D表現に組み込むこともできる。
【0102】
[0117]融合モジュール732によって生成された3D表現は、関心対象の堆積物または他の物体のより正確な3D表現を生成するために、ボクセル再構成モジュール734によって精緻化される。特定の実施形態では、ボクセル再構成モジュール734は、融合モジュール732によって生成された3D表現に基づいて、関心対象の物体(例えば、堆積物)を、境界エッジを有する滑らかな表面、例えば
図8および
図9に示される堆積物表面として再構成する。再構成は、幾何モデル724に関連して上述されたものと同様の技法を使用して行うことができる。例えば、ボクセル再構成モジュール734は、融合モジュール732によって生成された3D表現内のボクセルの上にメッシュを適合することによって堆積物を再構成し得る。メッシュは、堆積物の表面上の隣接する地点間の移行をより緩やかにするように動作する。メッシュはまた、3D表現にある任意の穴(例えば、ノイズ、センサ誤差、CNNセグメント化モデル722またはボクセルCNNモデル726による誤った推測などによる堆積物の表面上の中空領域)を埋める。ボクセル再構成モジュール734の出力は、関心対象の物体の滑らかな、着色された3D表現である。
【0103】
[0118]
図9に、特定の実施形態による、堆積物を再構成するための例示的な方法を示す。
図9に示されるように、堆積物900の寸法および境界が、複数のボクセル902を含むボクセル表現の形態で決定されると(簡略化のために図にはボクセルの一部分のみが示されている)、上述のように、堆積物の形状をより良く近似し、ボクセル表現内の任意の穴を埋める滑らかな表面904を定義することができる。
【0104】
[0119]加えて、
図9に示されるように、特定の実施形態では、堆積物が、異なる視点から取り込まれたセンサデータに基づいて再構成される。例えば、センサデータは、堆積物の周りの異なる位置(例えば、位置P1、位置P2、および位置P3)にある自律型ビークル910から取り込まれ得る。異なる位置(例えば、270度以上にわたる範囲の位置)からセンサデータを取得することにより、堆積物900に関するより多くの情報が利用可能になるため、体積推定の精度が向上する。例えば、自律型ビークル910が位置P3にあるとき、堆積物900は、センサに面する側で、中空、非対称、または不連続であると判定され得るが、位置P1および位置P2の観点から見ると、堆積物900は、完全に中実、対称、および連続的であるように見える場合がある。異なる位置で取り込まれた堆積物900の様々なビューが、(例えば、堆積物の画像をつなぎ合わせる、点群を集約するなどによって)組み合わされ得る。
図7の実施形態などの特定の実施形態では、異なるビューの結合は、推定モジュール(例えば、推定モジュール730内の融合モジュール732)によって行われ得る。
図9に示される再構成およびマルチビューデータ取り込み技術は、
図10および
図11の実施形態に関連して以下で説明される方法を含む、本明細書に記載の推定方法のいずれかに適用され得る。特定の実施形態では、異なる視点からのセンサデータの結合は、長短期記憶(LSTM)ニューラルネットワークを使用して行われる。LSTMは、各々が特定の観点から取り込まれ、複数のセンサからのデータを含む、複数のセンサ・データ・セットを受け取る。LSTMは、堆積物/物体の3D表現を生成し、LSTMに新しいセンサ・データ・セットが入力されるたびに3D表現を更新する。
【0105】
[0120]
図7に戻って、体積計算モジュール736は、ボクセル再構成モジュール734によって生成された3D表現に基づいて関心対象の物体(例えば、
図9の堆積物900)の体積を推定するように構成される。体積計算モジュール736によって行われる体積推定は、例えば、ボクセル再構成モジュール734によって生成された3D表現をスライスして複数の3Dスライスにすること、および各スライス内に収まるボクセルの数に基づいて各スライスにわたる体積積分を計算することを含み得、各ボクセルは特定の物理的体積(例えば、2立方センチメートルの立方体)を表す。
【0106】
[0121]
図7に示されるように、体積計算モジュール736は、(例えば、
図2の計画サブシステム206に)堆積物情報750を出力し得る。堆積物情報750は、推定モジュール730によって決定された他の情報(例えば、堆積物の推定された寸法、ボクセル再構成モジュール734によって生成された3D表現など)と共に、堆積物の推定された体積を含むことができる。堆積物情報750は、例えば、堆積物の周りを運転する、堆積物から一定量の材料を除去するなど、堆積物に関する動作計画を生成するために使用され得る。
【0107】
[0122]
図8に、特定の実施形態による、堆積物の3D表現(例えば、ボクセル再構成モジュール734によって生成された3D表現)に基づいて材料の堆積物の体積を推定するための例示的な方法を示す。
図8に示される方法は、
図7の実施形態に限定されず、他の実施形態、例えば、
図10の実施形態において体積推定を実施するために使用することもできる。
図8に示されるように、堆積物の3D表現800(例えば、ボクセル再構成モジュール734によって生成された滑らかな3D表現)は、点A、B、C、およびDを通る平面を配置することによってほぼ半分に分割することができる。
図8の方法は、堆積物の後半分が(センサに面する)前半分と同じ体積を有するように、堆積物が連続しており、平面ABCDに対して対称であると仮定する。堆積物が対称であるか否か、または堆積物が一方の側に何らかの凹凸を有するか否かは、例えば
図9に示される方法に従って、異なる視点からセンサデータを収集することによって判定することができる。しかしながら、一方の側のみからのセンサデータが利用可能であると仮定して、堆積物の体積は「半分」の体積の2倍であると推定することができる。
【0108】
[0123]半分の体積の境界は、以下のように決定することができる。まず、地面を表す2D平面820が決定される。地面820は、例えば
図7の幾何モデル724によって行われる幾何学的処理によって特定することができる。
【0109】
[0124]次に、堆積物の上面に沿ったピーク810(点A)が決定される。ピーク810は、大域的最大値(例えば、最高点)または最高点のセットによって定義される点(例えば、特定の数の最高点の平均値)に対応し得る。3D表現800は堆積物の輪郭を詳細に記述するので、ピーク810を決定することは比較的簡単である。
【0110】
[0125]ピーク810は、次いで、地面820に投影される。例えば、
図8に示されるように、地面820と直交する線830を決定して、線830と地面820との交点に対応する点Bを特定することができる。
【0111】
[0126]次いで、線830が地面820と交差する点Bは、点Bがセンサ平面(例えば、カメラまたはLIDARセンサの平面)とどこで交わるかを決定するために、センサ平面に投影される。これにより、地面820に沿った線840が形成される。
【0112】
[0127]次に、センサ平面から3D表現800に逆に投影して3D表現800の内側の点Cを特定することによって、線840に平行な線850が決定される。線850は、線840に平行であり、地面820内にある。点Bと点Cとの間の距離は様々であり得る。一般に、点Cは堆積物の3D表現の囲まれた体積内にある限り、点Cの配置に制限はない。
【0113】
[0128]点Cが特定された後、点Cを上方に投影して線870を形成することによって、(点Dに対応する)別のピーク860が特定される。次いで、4つの点A、B、C、およびDのすべてを通って延在する平面が決定される。この平面は、堆積物の観測可能な半分の後側に対応する。観測可能な半分は、(1)地面820、(2)背面ABCD、および(3)3D表現800、によって囲まれた3D体積によって表される。これらの3つの要素は、観測可能な半分の外面に対応する凸包または凸シェルを画定する。次いで、例えば、凸包の輪郭およびボクセルによって表される距離の知識に基づいて、様々な地点における地面820と堆積物の頂部との間のボクセルの総数を決定し、次いで、ボクセルの総数に基づいて体積値を計算し、体積値に2をかけることによって、堆積物の部分体積を推定することができる。任意の所与の点における地面820と堆積物の頂部との間のボクセルの総数は、堆積物の高さを表し、堆積物の頂部は、堆積物の頂部に沿ったすべての地点で必ずしもボクセルのエッジと位置合わせされないため、分数または小数として表すことができる。
【0114】
[0129]
図8は、背面を4つの点ABCDによって形成されているものとして示しているが、実際には、背面は、線ABの両側の複数のC点およびD点を特定することによって決定されてもよい。例えば、線830の左に位置する点C’および対応するピークD’を特定して、堆積物の左角に向かって平面を拡大することもできる。堆積物の全長を切断する平面が特定されるまで、これを繰り返して追加の点を特定することができる。
【0115】
[0130]
図10に、特定の実施形態による、機械学習モデルを調整するためのフィードバックを生成するベイジアンフィルタを使用して、材料の堆積物を検出し、その特性を推定するための例示的な方法を示す。
図10の方法は、この方法を実装することができる構成要素の特定の配置を参照して示されている。
図10に示されるように、これらの構成要素は、複数のセンサ(例えば、カメラ1002、カメラ1004、LIDARセンサ1006、およびレーダーセンサ1008)、前処理モジュール1010、物体検出モジュール1020、ならびに推定モジュール1030を含み得る。
【0116】
[0131]カメラ1002およびカメラ1004は、それぞれ、
図7のカメラ702およびカメラ704と同様である。センサの数は様々であり得るが、
図10の実施形態には少なくとも2つのカメラセンサ(例えば、カメラ1002およびカメラ1004)がある。少なくとも2つのカメラセンサは、環境を異なる視点から同時に取り込むために、異なる地点に、おそらくは異なる角度で配置される。これにより、少なくとも2つのカメラによって取り込まれた画像が、カメラセンサの視点の差に基づいて深度情報を決定するように処理されることが可能になる。いくつかの実施形態では、立体カメラデバイスを形成するために、2つのカメラセンサが単一のカメラ本体に統合される。
【0117】
[0132]LIDARセンサ1006およびレーダーセンサ1008は、それぞれ、
図7のLIDARセンサ706およびレーダーセンサ708と同様である。
【0118】
[0133]前処理モジュール1010は、
図7の前処理モジュール710と同様であり、前処理ユニット1012、前処理ユニット1014、前処理ユニット1016、および前処理ユニット1018を含み、これらはそれぞれ前処理ユニット712、前処理ユニット714、前処理ユニット716、および前処理ユニット718と同様である。簡潔にするために、
図10に示されるセンサおよび前処理ユニットの機能および動作は説明しない。代わりに、これらのセンサおよび前処理ユニットは、
図7の対応するセンサおよび処理ユニットに関して前述されたのと同じ特徴を組み込み得ることが理解されよう。
【0119】
[0134]物体検出モジュール1020は、CNN深度モデル1022と、CNNセグメント化モデル1024と、ボクセル推定モデル1026とを含む。CNN深度モデル1022は、前処理モジュール1010から、カメラ1002によって取り込まれた第1の2D画像とカメラ1004によって取り込まれた第2の2D画像とを受け取るように構成される。CNN深度モデル1022は、第1の2D画像および第2の2D画像に基づいて3D画像を生成する。この3D画像(例えば、RGB+深度画像)は、第1の2D画像内の画素値を第2の2D画像内の対応する画素値とマッチングすることによって決定された合成画像を表す。3D画像は、CNN深度モデル1022によって推定された深度情報を含み得るか、またはその深度情報と一緒に出力され得る。深度情報は、出力画像内の画素ごとの深度値を含み得る。深度情報および3D出力画像を生成するために、CNN深度モデル1022は、1対または複数対のカメラからの訓練画像および訓練画像のグラウンドトゥルース深度情報を含む訓練データを使用して、深度値を推測するように訓練されていてもよい。
【0120】
[0135]CNNセグメント化モデル1024は、
図7のCNNセグメント化モデル722と同様である。しかしながら、CNNセグメント化モデル722とは異なり、CNNセグメント化モデル1024は、3Dデータ(CNN深度モデル1022によって出力された3D画像)に対して作用する。CNNセグメント化モデル1024は、CNN深度モデル1022によって生成された3D画像をセグメント化し、各セグメントを分類するように構成(例えば、訓練)される。よって、CNNセグメント化モデル1024は、CNNセグメント化モデル1024によって検出された物体ごとに別個のセグメントを含むセグメント化された3D画像を出力する。CNNセグメント化モデル1024の訓練は、
図7のCNNセグメント化モデル722と同様の方法で行うことができる。しかしながら、CNN深度モデル1022と同様に、CNNセグメント化モデル1024は、3Dデータを使用して訓練され得る。いくつかの実施形態では、CNNセグメント化モデル1024およびCNN深度モデル1022は、単一の機械学習モデルに組み合わされ得る。
【0121】
[0136]ボクセル推定モデル1026は、前処理ユニット1016から受け取ったLIDAR点群を、ボクセルグリッド内の点のボクセル高さの推定値に基づいてボクセルグリッドにマップする非CNNベースのアナログモデルである。ボクセル推定モデル1026は、LIDAR点群内の点の幾何学的形状に基づいてボクセル高さを推定し、物体を認識するようには構成されていない。代わりに、ボクセル推定モデル126は、グリッド点ごとに、グリッド点に位置する特徴の、ボクセル数を単位として高さを単純に推定する。特徴は、堆積物、別のタイプの物体、地面、または何らかの他の材料体に属し得る。ボクセル推定モデル1026は、ボクセル情報を、推定モジュール1030内のベイジアンフィルタ1032に出力する。ボクセル情報は、LIDARセンサ1006によって取り込まれた物理的環境のボクセル表現を含み、推定されたボクセル高さをグリッドによる空間位置の関数として示す。ボクセル推定モデル1026はまた、ベイジアンフィルタ1032からフィードバックを受け取り、受け取ったフィードバックに従って高さ推定値を補正するようそれ自体を更新する。最初に、ボクセル推定モデル1026は、特定の仮定に基づいて(例えば、特徴を含む各ボクセルがその特徴によって完全に占有されていると仮定して)高さを推定し得、次いで、その推定値がフィードバックに基づいて補正される。
【0122】
[0137]推定モジュール1030は、ベイジアンフィルタ1032と体積計算モジュール1034とを備える。ベイジアンフィルタ1032は、CNNセグメント化モデル1024からセグメント化された3D画像を、ボクセル推定モデル1026からボクセル情報を、前処理ユニット1018からレーダーデータを受け取る。ベイジアンフィルタ1032は、これらの異種の情報を選択的に組み合わせて、体積計算モジュール1034に入力するための関心対象の堆積物または他の物体の3D表現(例えば、堆積物のDEMやボクセル表現)を生成する。ベイジアンフィルタ1032は、ベイジアンフィルタのアレイを含むヒストグラムベースのベイジアンフィルタである。ベイジアンフィルタのアレイ内の各フィルタは、CNNセグメント化モデル1024、ボクセル推定モデル1026、および/またはレーダー前処理ユニット1018の出力を使用して、対応するグリッド点の正しいボクセル高さを予測するように構成される。
【0123】
[0138]例えば、特定の実施形態では、ベイジアンフィルタ1032は、ボクセル推定モデル1026によって推定された高さに基づいて堆積物の地点の事前確率分布を決定し、次いで、CNNセグメント化モデル1024の出力および/またはレーダー前処理ユニット1018の出力に基づいて事後確率分布を決定する。これら2つの確率分布は、本質的に、「センサデータから導出された観測値が与えられた場合に、この地点に材料の堆積物がある確率はどのくらいか?」という質問に対する答えを表す。事前確率分布は、補正されるべきモデル(例えば、ボクセル推定モデル1026)からの情報のみに基づく質問に対する答えを表すのに対し、事後確率分布は、CNNセグメント化モデル1024および/またはレーダーデータからのセグメント化された3D画像によって提供される追加の観測値を考慮に入れた答えを表す。よって、事後確率分布は、ボクセル推定モデル1026からの高さ推定が正しいか否かの尤度を示す。
【0124】
[0139]ボクセル推定モデル1026からの高さ値の確率が、同じグリッド点について、セグメント化された3D画像またはレーダーデータによって示される高さの確率と比較して低い場合、ベイジアンフィルタ1032は、高さ推定値の誤差の程度を示すフィードバックをボクセル推定モデル1026に伝達することができる。このフィードバックに基づき、ボクセル推定モデル1026は、その推定値を修正し、修正された推定値をベイジアンフィルタ1032に送り得る。これにより、ベイジアンフィルタ1032とボクセル推定モデル1026との間にフィードバックループが形成され、それによって、一定の精度レベルに達する(例えば、推定されたすべての高さ値の確率が閾値確率値を超える)まで、ボクセル推定モデル1026の出力が繰り返し精緻化される。推定値の精緻化が停止すると、ベイジアンフィルタ1032は、堆積物の3D表現を生成するために、3つのうちの最も正確な(例えば、正しい確率が最も高い)入力ソース(セグメント化された3D画像、ボクセル推定モデル1026からのボクセルグリッド、またはレーダーデータ)を選択することができる。
【0125】
[0140]特定の実施形態では、ベイジアンフィルタ1032は、例えば、ボクセル推定モデル1026からのボクセル情報に基づいてCNNセグメント化モデル1024を補正するために、CNNセグメント化モデル1024にフィードバックを伝達するように構成される。ベイジアンフィルタ1032からCNNセグメント化モデル1024へのフィードバック経路は、
図10から省かれている。CNNセグメント化モデル1024に伝達されるフィードバックは、セグメント化画像内の画素の分類における誤差の程度を示し得、誤差の程度は、ボクセル推定モデル1026からのボクセル情報を考慮に入れて計算された事後確率分布に基づいて決定される。CNNセグメント化モデル1024へのフィードバックは、CNNセグメント化モデル1024の初期訓練中に行われる調整と同様に、CNNセグメント化モデル1024によって使用される1つまたは複数の重みを調整するために使用され得る。
【0126】
[0141]体積計算モジュール1034は、
図7の体積計算モジュール736と同様である。
図10に示されるように、体積計算モジュール1034は、ベイジアンフィルタ1032から堆積物/物体の3D表現を受け取るために、ベイジアンフィルタ1032に直接結合することができる。体積計算モジュール1034は、ベイジアンフィルタ1032によって出力された3D表現に基づいて、関心対象の物体(例えば、
図9の堆積物900)の体積を推定するように構成される。推定された体積は、(例えば、
図8に示される方法に従って)体積計算モジュール736によって行われる体積推定と同様の方法で決定され得、堆積物情報1050の一部として出力される。
図10の実施形態では、
図8の地面820の特定を、CNNセグメント化モデル1024およびボクセル推定モデル1026の出力に基づいてベイジアンフィルタ1032が行うことができる。ベイジアンフィルタ1032は、ボクセル推定モデル1026によって生成されたボクセルグリッド内のボクセルごとに、ボクセル推定モデル1026によってボクセルについて提供された情報に基づき、CNNセグメント化モデル1024からのセグメント化された3D画像内の対応する地点について提供された情報にさらに基づいて、ボクセルが例えば堆積物ではなく地面に属するかどうかの確率を決定する。このようにして、閾値確率を超えることに基づいて地面の一部であると分類されたボクセルに2D平面を適合することによって地面を決定することができる。
【0127】
[0142]
図11に、特定の実施形態による、単一の機械学習モデルを使用して材料の堆積物を検出し、その特性を推定するための例示的な方法を示す。
図11の方法は、この方法を実装することができる構成要素の特定の配置を参照して示されている。
図11に示されるように、これらの構成要素は、複数のセンサ(例えば、カメラ1102、LIDARセンサ1104、およびレーダーセンサ1106)、前処理モジュール1110、ならびに機械学習モデル1120を含み得る。
図7および
図10に示される実施形態と同様に、前処理モジュール1110は、センサごとの前処理ユニット(例えば、カメラ1102の出力を受け取る前処理ユニット1112、LIDARセンサ1104の出力を受け取る前処理ユニット1114と、およびレーダーセンサ1106の出力を受け取る前処理ユニット1116と)を含み得る。
【0128】
[0143]
図11の実施形態では、単一の機械学習モデル(MLモデル1120)が、異なるセンサからのデータを結合するタスクと、結合されたデータに基づいて関心対象の物体の3D表現を生成するタスクと、関心対象の物体の体積を、おそらくは物体の他の特性と共に推定するタスクとを行うように構成される。MLモデル1120は、物体に関して推測された情報(例えば、材料の堆積物の推定された体積を含む堆積物情報1150)を出力する。MLモデル1120は、例えばCNNやLSTMなどのニューラルネットワークを使用して実装することができる。CNNを使用してMLモデル1120を実装すると、畳み込みカーネルの再使用のために計算の複雑度が低減されると同時に、MLモデル1120の入力がCNNの様々な層を介して処理される際に空間情報を維持するという利点も提供される。MLモデル1120をLSTMとして実装すると、時間情報(例えば、結合されるべき異なる画像が取り込まれた時刻)を維持しながら、層の総数が低減される。
【0129】
[0144]MLモデル1120は、上述のタスクの異なる部分を処理するセクション(例えば、サブネットワークやサブシステム)に分割され得る。例えば、MLモデル1120は、以下の順序で、融合を行うニューラルネットワーク層の第1のセット(異なるセンサタイプからの表現を結合して単一の表現、例えば堆積物の3D表現にする)、物体検出を行うニューラルネットワーク層の第2のセット(例えば、単一の表現における材料の堆積物を検出する)、および体積推定を行うニューラルネットワーク層の第3のセット(例えば、検出された材料の堆積物の体積を推定する)を含み得る。特定の実施形態では、MLモデル1120は、2段階で訓練される。第1段階では、MLモデル1120の各セクションが個別に訓練され、任意の特定のセクションが、そのセクションによって行われるべきタスクのタイプに適した訓練データで訓練される。第2段階では、MLモデルが、MLモデル1120によって処理されるべき入力を表す訓練データ(例えば、カメラ、LIDAR、およびレーダーデータ)と、少なくとも最後のセクション(例えば、体積推定を行うセクション)のグラウンドトゥルース情報、および、任意選択で、前のセクションの各々のグラウンドトゥルース情報とが関与するエンドツーエンド訓練を使用して、全体として訓練される。エンドツーエンド訓練は、MLモデル1120の出力が、セクションが誤った推測を生成していることを示すときに、任意の特定のセクションの挙動を調整し得る。例えば、セグメント化を行うニューラルネットワークによって用いられる重みが、MLモデル1120の出力に表されたセグメント化がグラウンドトゥルースセグメント化情報と比較して誤っていると判定したことに基づいて調整され得る。同様に、体積推定を行うニューラルネットワークによって用いられる重みが、推測された体積値とグラウンドトゥルース体積値との差に基づいて調整され得る。
【0130】
[0145]
図12は、特定の実施形態による、物体を検出し、かつ/または他の物体に関連した推測を行うよう機械学習モデルを訓練するためのプロセス1200を示すフローチャートである。
図12に示される処理は、それぞれのシステム、ハードウェア、またはそれらの組み合わせの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)において実装され得る。ソフトウェアは、非一時的記憶媒体(例えば、メモリデバイス)に格納され得る。
図12に示され、以下で説明される方法は、例示であり非限定的であることが意図されている。
図12は、特定の並びまたは順序で行われる様々な処理ステップを示しているが、これに限定を意図されたものではない。特定の代替実施形態では、ステップは、異なる順序で行われてもよく、特定のステップが省略されてもよく、またはいくつかのステップが並行して行われてもよい。
図4に示される実施形態など、特定の実施形態では、
図12に示される処理は、機械学習モデルに訓練入力を供給するように構成されたコンピューティングデバイスまたはシステムと共に、知覚サブシステム内の機械学習モデル(例えば、物体検出モジュール420や推定モジュール430を実装するMLモデル)によって行われ得る。
【0131】
[0146]1202で、1つまたは複数のクラスの物体を含む物理的環境の表現を含む訓練データが取得される。より具体的には、取得される訓練データは、物理的環境の2D表現および/または3D表現を含む。例えば、訓練データは、
図5の訓練画像500などのラベル付き訓練画像のセットを含み得る。セマンティックセグメンテーションを行うようにMLモデルを訓練するために使用される場合、訓練データは、複数のクラスの物体を含む物理的環境の表現を含む。
図5の実施形態に関連して上述されたように、訓練表現は、異なるクラスの複数の物体を含むことができる。あるいは、MLモデルは、単一のクラス(例えば、堆積物)で訓練することもでき、その場合、訓練データは、単一のクラスの物体のみを含む表現を含み得る。
【0132】
[0147]加えて、1202で、表現のグラウンドトゥルース情報が取得される。グラウンドトゥルース情報は、例えば、
図5の実施形態に示されるように異なるセグメントにラベル付けすることによって、表現自体の一部として供給することができる。あるいは、グラウンドトゥルース情報を、表現とは別個に提供することもできる。例えば、物体の体積を推測するようMLモデルを訓練する場合、グラウンドトゥルース体積値を、物体の2D表現または3D表現とは別個に物体に提供することができる。
【0133】
[0148]1204で、1202で取得された訓練データが、表現の並べ替えを生成することによって増強される。例えば、訓練画像には、(例えば、画像全体にぼかし効果を適用することによって)画像レベルで、または(例えば、画像内の物体を変更することによって)サブ画像レベルで訓練画像を操作するために、1つまたは複数のタイプの画像処理が施され得る。操作の例には、幾何変換(例えば、倍率変更、ぼかし、回転、色相、ガンマまたは他の色調整、画像または画像内の物体のサイズ変更、画像解像度の変更、ノイズアーチファクトの追加、および視覚効果の追加(例えば、カメラレンズ上のほこり、雨などの気象条件、または他のオクルージョンをシミュレートするための)が含まれる。増強により、最初に取得された訓練データを補うための追加の訓練データが生成される。
【0134】
[0149]必要であれば、1202で取得されたグラウンドトゥルース情報を使用して、1204で生成された並べ替えのための追加のグラウンドトゥルース情報を生成することもできる。例えば、画像内の物体が拡大された場合、物体クラスのラベル付けを、得られた画像が、その物体により多くの画素が対応することになった結果としての分類の変化を反映するように更新することができる。
【0135】
[0150]1206で、(1202で取得された訓練データと1204で生成された追加の訓練データとを含む)増強された訓練データが、増強された訓練データに表された物体を検出し、かつ/または該物体に対して他の物体に関連した推測を行うように構成された機械学習モデルに入力される。
図11の実施形態などの特定の実施形態では、物体に関連した推測は、物体の体積および/または他の特性の値を推測することを含む。上記のように、特定の実施形態では、訓練データは、複数のクラスで訓練するときに物体クラスのバランスのとれた表現を達成するように構成された特定の順序で機械学習モデルに提示される。物体の検出は、表現内の領域(例えば、画像内の画素または点群内の点)の分類、および同じクラスの隣接領域または近くの領域が同じ物体に属すると判定することを含み得る。検出の一部として、機械学習モデルはまた、例えば、堆積物物体と非堆積物物体との間の境界を示す出力表現を生成するために、出力表現をセグメント化し得る。
【0136】
[0151]1208で、機械学習モデルは、1206で生成された推測の誤差を最小化するように調整される。誤差の程度は、1202で取得された訓練データのグラウンドトゥルース情報と、1204の追加の訓練データのグラウンドトゥルース情報とに基づいて決定される。例えば、
図5の実施形態に示されるように、訓練表現に、どの領域が特定の物体クラスに対応するかを示すようにラベル付けすることができる。別の例として、物体の体積を推測するようにMLモデルを訓練するとき、訓練データ内で検出された物体ごとにグラウンドトゥルース体積値を与えることができる。上記のように、機械学習モデルを調整することは、損失関数を最小化するために逆伝播によって重みを変更することを含み得る。
【0137】
[0152]1210で、検証データを使用して機械学習モデルの精度が検証される。上記のように、検証データは、機械学習モデルがある程度の訓練を受けた後に機械学習モデルの精度をテストするために特別に確保された訓練データのサブセットとすることができる。機械学習モデルによって生成された結果が1つまたは複数の基準(例えば、閾値精度値)を満たす場合、機械学習モデルは十分に訓練されたとみなされ、プロセスは1212に進む。そうでない場合、1202~1208の処理が、機械学習モデルを訓練するために以前に使用されなかった追加の訓練データに対して繰り返され得る。
【0138】
[0153]1212で、機械学習モデルは、例えば、機械学習モデルを自律機械のメモリに格納することによって、自律機械上に展開される。特定の実施形態では、自律機械に、機械学習モデルの以前のバージョンが既に展開されていてもよい。そうである場合、1212における展開は、例えば、機械学習モデルの重みおよび他のパラメータを自律機械に伝達することによって、既存のモデルを更新することを含み得る。特定の実施形態では、機械学習モデルは、展開前に最適化される。最適化は、例えば、機械学習モデルを実装するニューラルネットワークの1つまたは複数の層の幅(例えば、ノードの数)を減少させることによって、機械学習モデルのサイズを縮小することを含み得る。最適化は、例えば、ニューラルネットワークの層内の重みのヒストグラムを計算することによる、機械学習モデルの状態の統計的解析によって決定され得る。
【0139】
[0154]
図13は、特定の実施形態による、体積推定を行うためのプロセス1300を示すフローチャートである。
図13に示される処理は、それぞれのシステム、ハードウェア、またはそれらの組み合わせの1つまたは複数の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)において実装され得る。ソフトウェアは、非一時的記憶媒体(例えば、メモリデバイス)に格納され得る。
図13に示され、以下で説明される方法は、例示であり非限定的であることが意図されている。
図13は、特定の並びまたは順序で行われる様々な処理ステップを示しているが、これに限定を意図されたものではない。特定の代替実施形態では、ステップは、異なる順序で行われてもよく、特定のステップが省略されてもよく、またはいくつかのステップが並行して行われてもよい。
図4に示される実施形態などの特定の実施形態では、
図13に示される処理は、知覚サブシステム(例えば、知覚サブシステム400)によって実行され得る。
【0140】
[0155]1302で、センサデータが複数のセンサから取得される。取得されたセンサデータは、物理的環境の2D表現および/または3D表現を含み得、例えば、1つまたは複数のカメラによって取り込まれた2D画像や、LIDARセンサおよび/またはレーダーセンサによって生成された点群を含み得る。
【0141】
[0156]1304で、1302で取得されたセンサデータが、1306で物体検出モジュール(例えば、物体検出モジュール420)に入力するためのセンサデータを準備するために(例えば、前処理モジュール410によって)前処理される。上記のように、前処理は、センサデータのソースに応じて異なる様々な再フォーマット動作および/または調節動作(例えば、カメラ固有の前処理、LIDAR固有、またはレーダー固有の前処理)を含み得る。
【0142】
[0157]1306で、物理的環境内の物体の3D表現(例えば、堆積物または他の物体のDEMまたはボクセル表現)が、物体検出モジュールの1つまたは複数のMLモデルを使用して生成される。
図7および
図10の実施形態などの特定の実施形態では、物体の3D表現は、異なるセンサデータのソースから導出された表現を含む、物理的環境および/または物体の複数の表現からの情報を組み合わせることによって生成される。例えば、
図10では、ベイジアンフィルタ1032は、CNNセグメント化モデル1024から受け取った環境のセグメント化された3D表現に基づき、ボクセル推定モデル1026から受け取った堆積物のボクセル表現にさらに基づいて堆積物の3D表現を生成する。したがって、物体の3D表現を生成することの一部として、1304からの前処理されたセンサデータの少なくとも一部が、異なるクラスに従って入力表現をセグメント化するように構成された、またはより一般的には、入力表現の領域を物体に対応するものとして特定するように構成されたMLモデルに入力され得る。
【0143】
[0158]1308で、1306で生成された3D表現を使用して物体の体積が推定される。体積推定は、例えば、
図7および
図10に示される推定モジュール(推定モジュール730および推定モジュール1030)のどちらかによって、または1306で3D表現を生成した機械学習モデル(例えば、
図11のMLモデル1120)によって行うことができる。物体の体積を推定することの一部として、またはこれに加えて、1308で、物体の他の特性も推定され得る。例えば、体積が
図8に示される方法に従って推定される場合には、物体の最大高さが決定される。別の例として、3D表現がLIDARデータに少なくとも部分的に基づいて生成される場合には、3D表現は、物体の材料の均一性を示すメトリックが決定される根拠となる反射率値を含み得る。
【0144】
[0159]1310で、体積推定値が、体積推定値に基づいて動作を行わせるために計画サブシステム(例えば、計画サブシステム206)に伝達される。例えば、体積推定値は、動作計画が推定された体積に基づいて生成されることを可能にするために、プロセス1300を行う同じ自律機械の計画サブシステムに、または異なる自律機械の計画サブシステムに伝達され得る。例えば、動作計画は、堆積物の体積を目標体積に向けて調整するために、堆積物からの一定量の材料を追加または除去することを含み得る。上記のように、特定の実施形態では、3D表現もまた、体積推定と共に計画サブシステムに出力され得る。
【0145】
[0160]
図14に、本開示に記載されるシステムおよびサブシステムのうちの1つもしくは複数を実装するために、かつ/または本明細書に記載されるプロセスもしくは方法のいずれかを行うために使用することができる例示的なコンピューティングシステム1400の簡略化されたブロック図を示す。例えば、自律型ビークル管理システム122がソフトウェアで実装される実施形態では、ソフトウェアは、
図14に示されるコンピューティングシステム1400などのコンピューティングシステムによって実行され得る。コンピューティングシステム1400は、例えば、プロセッサ、メモリ、ストレージ、およびI/Oデバイス(例えば、モニタ、キーボード、ディスクドライブ、インターネット接続など)を含み得る。場合によっては、コンピューティングシステム1400は、他の構成要素、回路、または特殊な機能を行うための他の特殊なハードウェアも含み得る。いくつかの動作設定では、コンピューティングシステム1400は、各々が、ソフトウェアのみ、ハードウェアのみ、またはそれらの何らかの組み合わせのいずれかでプロセスのいくつかの態様を実行するように構成された1つまたは複数のユニットを含むシステムとして構成され得る。コンピューティングシステム1400は、様々な機能を果たすために追加のシステムを含むように構成することができる。
【0146】
[0161]
図14の実施形態に示されるように、コンピューティングシステム1400は、1つまたは複数の処理ユニット1408と、メモリセット(システムメモリ1410、コンピュータ可読媒体1420、およびディスク記憶1416を含む)と、I/Oサブシステム1406とを含む。これらの構成要素は、コンピューティングシステム1400の様々なシステムおよびサブシステムが意図されたように互いに通信するための機構を提供するバスサブシステムを介して互いに通信可能に結合され得る。バスサブシステムは、メモリバスまたはメモリコントローラ、周辺バス、様々なバスアーキテクチャのいずれかを使用したローカルバスなどを含むいくつかのタイプのバス構造のいずれかとすることができる。いくつかの実施形態では、構成要素1406、構成要素1408、および構成要素1410は、マザーボード1404上に配置され得る。
【0147】
[0162]処理ユニット1408は、1つまたは複数のプロセッサを含み得る。プロセッサは、単一のプロセッサシングルまたはマルチコアプロセッサであり得る。処理ユニット1408は、特定用途向け集積回路(ASIC)やフィールド・プログラマブル・ゲート・アレイ(FPGA)などのカスタマイズされた回路を使用して実装することもできる。プロセッサは、システムメモリ1410、コンピュータ可読記憶媒体1420上や、ディスク1416上など、様々なメモリに格納された命令(例えば、プログラム、コードなど)を実行するように構成される。プログラムまたはプロセスは、順次に、または並列に実行され得る。特定の実施形態では、コンピューティングシステム1400は、1つまたは複数の仮想マシンを実行する仮想化コンピューティング環境を提供し得る。そのような実施形態では、1つもしくは複数のプロセッサまたはプロセッサのコアが各仮想マシンに割り振られ得る。いくつかの実施形態では、処理ユニット1408は、グラフィックスプロセッサ(GPU)、デジタル信号プロセッサ(DSP)などといった専用コプロセッサを含み得る。
【0148】
[0163]メモリセットは、揮発性メモリデバイスおよび不揮発性メモリデバイスを含む1つまたは複数の非一時的メモリデバイスを含むことができる。(1つまたは複数の)処理ユニット1408の1つまたは複数のプロセッサによって実行されると、本明細書に記載される機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、メモリのうちの1つまたは複数に格納され得る。特定の実施形態ではフラッシュメモリ1412も含まれ得る。システムメモリ1410は、プログラム実行中の命令およびデータを格納するための揮発性メイン・ランダム・アクセス・メモリ(RAM)(例えば、スタティック・ランダム・アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)など)と、固定命令が格納される不揮発性読み出し専用メモリ(ROM)またはフラッシュメモリとを含むいくつかのメモリを含み得る。いくつかの実装形態では、起動時などにコンピューティングシステム1400内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)が、通常、ROMに格納され得る。RAMは、通常、(1つまたは複数の)処理ユニット1408によって現在操作および実行されているデータおよび/またはプログラムモジュールを含む。
【0149】
[0164]実行可能コード、プログラム命令、アプリケーション、およびプログラムデータは、システムメモリ1410にロードされ、(1つまたは複数の)処理ユニット1408の1つまたは複数のプロセッサによって実行され得る。システムメモリ1410には、1つまたは複数のオペレーティングシステムもロードされ得る。オペレーティングシステムの例には、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、Linux(登録商標)オペレーティングシステムの様々なバージョン、および/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、Palm(登録商標)OSオペレーティングシステムなどのモバイル・オペレーティング・システムその他が含まれるが、これらに限定されない。
【0150】
[0165]特定の実施形態では、いくつかの実施形態の機能を提供するために使用されるプログラミングモジュールおよび命令、データ構造、ならびに他のデータ(まとめて1422)が、コンピュータ可読媒体1420に格納され得る。コンピューティングシステム1400に接続されたメディアドライブ1418が、コンピュータ可読媒体1420から情報を読み出し、かつ/またはコンピュータ可読媒体1420に情報を書き込むために設けられ得る。コンピュータ可読媒体1420は、磁気ディスクドライブ、CD-ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体などの光ディスクドライブ、Zip(登録商標)ドライブ、様々なタイプのメモリカードおよびドライブ(例えば、USBフラッシュドライブ、SDカード)、DVDディスク、デジタル・ビデオ・テープ、ソリッドステートドライブ(SSD)などといった不揮発性メモリを含み得る。
【0151】
[0166]I/Oサブシステム1406は、コンピューティングシステム1400に情報を入力するため、および/またはコンピューティングシステム1400から、もしくはコンピューティングシステム1400を介して情報を出力するためのデバイスおよび機構を含み得る。一般に、入力デバイスという用語の使用は、コンピューティングシステム1400に情報を入力するためのすべての可能なタイプのデバイスおよび機構を含むことを意図されている。入力機構には、例えば、キーボード、マウスやトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドやタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを備えたオーディオ入力デバイス、マイクロホン、カメラ、デジタルカムコーダ、ポータブル・メディア・プレーヤ、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダなどが含まれ得る。一般に、出力デバイスという用語の使用は、コンピューティングシステム1400からユーザまたは他のコンピュータに情報を出力するためのすべての可能なタイプのデバイスおよび機構を含むことを意図されている。そのような出力装置には、オーディオ出力デバイス、プリンタ、スピーカ、ヘッドホン、音声出力デバイスなどの1つまたは複数のタイプのディスプレイ、表示灯、または非視覚ディスプレイが含まれ得る。I/Oサブシステム1406はまた、ディスプレイ1414などのI/Oサブシステム1406の外部の入力デバイスおよび/または出力デバイスへのインターフェースも含み得る。
【0152】
[0167]コンピューティングシステム1400は、コンピューティングシステム1400が他のコンピュータシステムおよびネットワークと通信する(例えば、データを受信する、データを送信する)ためのインターフェースを提供する通信サブシステム1424を含み得る。通信サブシステム1424は、有線通信プロトコルおよび/または無線通信プロトコルの両方をサポートし得る。例えば、通信サブシステム1424は、コンピューティングシステム1400が、リモートセンサ、インターネットなどのネットワークなどと通信可能に結合されることを可能にし得る。通信には、Wi-Fi、Bluetooth(登録商標)(および/または短距離でデータを交換するための他の規格は、短波長無線伝送を使用するものを含む)、USB、イーサネット、セルラー、超音波ローカルエリア通信プロトコルなどといった、様々な異なる通信プロトコルおよびフォーマットが使用され得る。
【0153】
[0168]コンピューティングシステム1400は、モバイルデバイス(例えば、携帯電話、タブレット、PDAなど)、パーソナルコンピュータ、ワークステーション、または任意の他のデータ処理システムを含む様々なタイプのうちの1つとすることができる。コンピュータおよびネットワークの絶えず変化する性質のために、
図14に示されるコンピュータシステム1400の説明は、特定の例としてのみ意図されている。
図14に示されるシステムよりも多いまたは少ない構成要素を有する他の多くの構成が可能である。
【0154】
[0169]上述のプロセスの結果に基づく少なくともいくつかの値を、その後の使用のために保存することができる。加えて、コンピュータ可読媒体を使用して、コンピュータによって上述のプロセスのいずれか1つを行うための1つまたは複数のコンピュータプログラムを格納する(例えば、有形に具体化する)こともできる。コンピュータプログラムは、例えば、汎用プログラミング言語(例えば、Pascal、C、C++、Java、Python)および/または何らかの特殊な特定用途向け言語(PHP、JavaScript、XML)で記述され得る。JavaScriptがいくつかの実施形態で例として使用されていることに留意されたい。しかしながら、他の実施形態では、別のスクリプト言語および/またはJavaScriptバリアントも同様に利用することができる。
【0155】
[0170]本開示に記載された記載の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わされ得る。本明細書の説明では、様々な実施形態の十分な理解を提供するために、プログラミング、ソフトウェアモジュール、ユーザ選択、ネットワークトランザクション、データベースクエリ、データベース構造、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例といった、多数の具体的詳細が提供されている。しかしながら、当業者であれば、これらの具体的詳細のうちの1つもしくは複数を用いずに、または他の方法、構成要素、材料などを用いてこれらの特徴が実施され得ることを認めるであろう。他の例では、新規な態様を不明瞭にすることを避けるために、周知の構造、材料、または動作が詳細に図示または説明されていない。
【0156】
[0171]本明細書に含まれる概略的フローチャート図は、一般に、論理フローチャート図として記載されている。よって、図示の順序およびラベル付きのステップは、提示された方法の1つの実施形態を示す。例示の方法の1つもしくは複数のステップ、またはそれらの部分と機能、論理、または効果において同等である他のステップおよび方法が考えられ得る。加えて、使用されるフォーマットおよび記号は、方法の論理ステップを説明するために提供されており、方法の範囲を限定するものではないと理解されたい。フローチャート図では様々なタイプの矢印および線が使用される場合があるが、それらは対応する方法の範囲を限定するものではないと理解されたい。実際、いくつかの矢印または他のコネクタは、方法の論理フローのみを示すために使用される場合がある。例えば、矢印は、図示の方法の列挙されたステップ間の未指定の期間の待機期間または監視期間を示す場合がある。加えて、特定の方法が行われる順序は、図示された対応するステップの順序に厳密に準拠する場合もそうでない場合もある。
【0157】
[0172]特定の実施形態が説明されているが、様々な改変形態、変更形態、代替構造、および均等物が可能である。実施形態は、特定の具体的なデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。加えて、特定の実施形態が特定の一連のトランザクションおよびステップを使用して説明されているが、これは限定することを意図されたものではないことが当業者には明らかなはずである。いくつかのフローチャートは動作を順次的なプロセスとして記述しているが、動作の多くは、並列に、または同時に行うことができる。加えて、動作の順序が並べ替えられてもよい。プロセスは、図に含まれていない追加的なステップを有し得る。上述の実施形態の様々な特徴および態様は、個別に、または一緒に使用され得る。
【0158】
[0173]さらに、特定の実施形態が、ハードウェアとソフトウェアとの特定の組み合わせを使用して説明されているが、ハードウェアとソフトウェアとの他の組み合わせも可能であることを認識されたい。特定の実施形態は、ハードウェアのみで、またはソフトウェアのみで、またはそれらの組み合わせを使用して実装され得る。本明細書に記載される様々なプロセスを、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実施することができる。
【0159】
[0174]デバイス、システム、構成要素またはモジュールが特定の動作または機能を行うように構成されるものとして説明されている場合、そのような構成は、例えば、動作を行うように電子回路を設計することによって、コンピュータ命令もしくはコードを実行することなどによって動作を行うようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、または非一時的メモリ媒体に格納されたコードもしくは命令を実行するようにプログラムされたプロセッサもしくはコア、またはそれらの任意の組み合わせによって達成することができる。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されない様々な技術を使用して通信することができ、異なるプロセスの対が異なる技術を使用してもよく、または同じプロセスの対が時々に異なる技術を使用してもよい。
【0160】
[0175]本開示では実施形態の十分な理解を提供するために具体的詳細が示されている。しかしながら、実施形態は、これらの具体的詳細なしでも実施され得る。例えば、周知の回路、プロセス、アルゴリズム、構造、および技法は、これらの実施形態を不明瞭にすることを回避するために、不要な詳細なしで示されている。この説明は、例示的実施形態を提供するものにすぎず、他の実施形態の範囲、適用性、または構成を限定することを意図されたものではない。むしろ、実施形態の前述の説明は、当業者に、様々な実施形態の実施可能要件を提供するものである。要素の機能および配置には様々な変更が加えられ得る。
【0161】
[0176]したがって、本明細書および図面は、限定的な意味ではなく例示とみなされるべきである。しかしながら、特許請求の範囲に記載されるより広い趣旨および範囲から逸脱することなく、それらに追加、差し引き、削除、ならびにその他の改変および変更が加えられ得ることは明らかであろう。よって、特定の実施形態が説明されているが、これらは限定することを意図されたものではない。様々な改変形態および均等物が、以下の特許請求の範囲内にある。
【外国語明細書】