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

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

▶ ウェイモ エルエルシーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-13
(45)【発行日】2024-09-25
(54)【発明の名称】点群からの効率的な三次元物体検出
(51)【国際特許分類】
   G06V 10/82 20220101AFI20240917BHJP
   G06T 7/00 20170101ALI20240917BHJP
【FI】
G06V10/82
G06T7/00 350C
【請求項の数】 13
(21)【出願番号】P 2023521330
(86)(22)【出願日】2021-11-16
(65)【公表番号】
(43)【公表日】2023-11-22
(86)【国際出願番号】 US2021059503
(87)【国際公開番号】W WO2022104254
(87)【国際公開日】2022-05-19
【審査請求日】2023-06-02
(31)【優先権主張番号】63/114,506
(32)【優先日】2020-11-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】317015065
【氏名又は名称】ウェイモ エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】サン,ペイ
(72)【発明者】
【氏名】ワン,ウェイユエ
(72)【発明者】
【氏名】チャイ,ユーニン
(72)【発明者】
【氏名】チャン,シャオ
(72)【発明者】
【氏名】アングエロフ,ドラゴミール
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2019-106034(JP,A)
【文献】米国特許出願公開第2019/0279368(US,A1)
【文献】鈴木貴大 外4名,1D-CNNによる全方位LiDARデータのセマンティックセグメンテーション,SSII2020 第26回 画像センシングシンポジウム 講演資料集 [USB],画像センシング技術研究会 ,2020年06月10日
【文献】長場景子 外1名,フィンランド発の深層学習技術が産廃処理に革新 AI搭載ロボで省人化と速度向上実現したシタラ興産,NIKKEI Robotics 第19号 ,日本,日経BP社,2017年01月10日,pp.3~11
【文献】Lang Alex H. et al.,“PointPillars: Fast Encoders for Object Detection From Point Clouds”,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[online],米国,IEEE,2019年06月15日,pp.12689-12697,[検索日 2024.8.9], インターネット:<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8954311>,DOI: 10.1109/CVPR.2019.01298
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
一つ以上のコンピュータによって実施される方法であって、前記方法が、
一つ以上のセンサによって取り込まれた点群の集合の各点群に対応するそれぞれの距離画像を取得することであって、
各点群が、それぞれの複数個の三次元点を含み、
各距離画像が、複数個のピクセルを含み、前記距離画像内の各ピクセルが、(i)対応する前記点群中の一つ以上の点に対応し、(ii)前記対応する点群中の前記ピクセルに対する対応する前記一つ以上の点の、前記一つ以上のセンサまでの距離を示す距離値を少なくとも有する、取得することと、
各距離画像について、(i)前記距離画像内の前記ピクセルについての距離画像特徴、および(ii)前記ピクセルが前景ピクセルまたは背景ピクセルであるかを前記距離画像内の前記ピクセルのそれぞれに対して示す、セグメンテーション出力を、生成するように構成されているセグメンテーションニューラルネットワークを使用して各距離画像を処理することと、
前記点群の集合内の各前景点について、前記前景点に対応する前記ピクセルに対する少なくとも前記距離画像特徴から、前記前景点の特徴表現を生成することであって、前景点が、ピクセルであって、前記ピクセルが前景ピクセルであることを対応する前記セグメンテーション出力が示す、ピクセルに対応する点である、生成することと、
前記前景点の前記特徴表現のみから、前記点群の集合の特徴表現を生成することと、
予測ニューラルネットワークを使用して前記点群の集合の前記特徴表現を処理して、前記点群の集合を特徴付ける予測を生成することと、を含む、方法。
【請求項2】
前記予測が、物体の測定値である可能性が高い前記点群の集合の領域を識別する、物体検出予測である、請求項1に記載の方法。
【請求項3】
前記物体検出予測が、(i)前記点群内の位置全体のヒートマップ、および(ii)複数個のバウンディングボックスのパラメータを含む、請求項2に記載の方法。
【請求項4】
前記セグメンテーションニューラルネットワークが、高い再現率および許容可能な適合率を有するセグメンテーション出力を生成するように訓練されている、請求項1~3のいずれかに記載の方法。
【請求項5】
前記セグメンテーションニューラルネットワークが、前記セグメンテーション出力を生成するために、1×1畳み込みを前記距離画像特徴に適用するように構成される、請求項1~4のいずれかに記載の方法。
【請求項6】
前記セグメンテーション出力が、前記ピクセルのそれぞれに対するそれぞれの前景スコアを含み、前景ピクセルとして示されるピクセルが、閾値を超える前景スコアを有するピクセルである、請求項1~5のいずれかに記載の方法。
【請求項7】
前記前景点の前記特徴表現のみから、前記点群の集合の特徴表現を生成することが、
前記前景点を複数個のボクセルにボクセル化するためにボクセル化を行うことと、
前記ボクセルに割り当てられた前記点の前記特徴表現から、各前記ボクセルのそれぞれの表現を生成することと、
前記点群の集合の前記特徴表現を生成するために、スパース畳み込みニューラルネットワークを使用して前記ボクセルの前記表現を処理することと、を含む、請求項1~6のいずれかに記載の方法。
【請求項8】
前記ボクセル化がピラースタイルのボクセル化であり、前記スパース畳み込みニューラルネットワークが2Dスパース畳み込みニューラルネットワークである、請求項7に記載の方法。
【請求項9】
前記ボクセル化が3Dボクセル化であり、前記スパース畳み込みニューラルネットワークが3Dスパース畳み込みニューラルネットワークである、請求項7に記載の方法。
【請求項10】
前記点群の集合が、異なる時点で取り込まれた複数個の点群を含み、前記前景点の前記特徴表現のみから前記点群の集合の特徴表現を生成することが、
ボクセル化を実施する前に、最新の時点での前記点群以外の各点群について、前記点群内の各前景点を、最新の時点での前記点群に変換することによって、変換された点群を生成することと、
前記変換された点群上でボクセル化を実行することと、を含む、請求項7~9のいずれかに記載の方法。
【請求項11】
各点群について、前記点群が取り込まれた前記時点についての識別子を、前記点群内の前記前景点の前記特徴表現に付加することと、をさらに含む、
請求項10に記載の方法。
【請求項12】
システムであって、
一つ以上のコンピュータと、
前記一つ以上のコンピュータによって実行されるとき、前記一つ以上のコンピュータに、請求項1~11のいずれか一項に記載のそれぞれの演算を実行させる命令を格納する、一つ以上の記憶装置と、を備えるシステム。
【請求項13】
一つ以上のコンピュータによって実行されるとき、前記一つ以上のコンピュータに、請求項1~11のいずれか一項に記載の方法のそれぞれの演算を実行させる命令を格納する、一つ以上のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年11月16日に出願された米国仮特許出願第63/114,506号に対する優先権を主張するものであり、その開示はここに、参照によりその全体が組み込まれる。
背景
【0002】
本明細書は、ニューラルネットワークを使用して点群を処理し、環境中の物体を検出することに関する。
【背景技術】
【0003】
環境内の物体の検出は、例えば、自律車両によって、動作計画のために必要とされるタスクである。
【0004】
自律車両には、自走式の自動車、ボート、航空機などがある。自律車両は、様々な車載センサおよびコンピュータシステムを使用して近くの物体を検出し、こうした検出を使用して制御およびナビゲーションの決定を行う。
【0005】
一部の自律車両は、例えば画像内の物体分類といった様々な予測タスクのために、ニューラルネットワーク、他のタイプの機械学習モデル、または両方を実装する車載コンピュータシステムを有する。例えば、ニューラルネットワークは、車載カメラによって取り込まれた画像が、すぐ近くの車の画像である可能性が高いと判断するために使用されることができる。ニューラルネットワーク、または略して、ネットワークは、一つ以上の入力から一つ以上の出力を予測するための複数層の演算を用いる機械学習モデルである。ニューラルネットワークは、典型的には、入力層と出力層の間に位置する、一つ以上の隠れ層を含む。各層の出力は、ネットワーク内の別の層、例えば、次の隠れ層または出力層への、入力として使用される。
【0006】
ニューラルネットワークの各層は、層への入力に対して実行される一つ以上の変換演算を指定する。一部のニューラルネットワーク層は、ニューロンと呼ばれる演算を有する。各ニューロンは、一つ以上の入力を受信し、別のニューラルネットワーク層によって受信される出力を生成する。多くの場合、各ニューロンは他のニューロンから入力を受信し、各ニューロンは一つ以上の他のニューロンに出力を提供する。
【0007】
ニューラルネットワークのアーキテクチャは、どのような層がネットワークに含まれるか、およびその特性、ならびにネットワークの各層のニューロンがどのように接続されているかを指定する。言い換えれば、アーキテクチャは、どの層がそれらの出力を他のどの層への入力として提供するか、および出力がどのように提供されるかを指定する。
【0008】
各層の変換演算は、変換演算を実装するソフトウェアモジュールがインストールされた、コンピュータによって実行される。したがって、演算を実行するものとして層が記述されることは、層の変換演算を実装するコンピュータが演算を実行することを意味する。
【0009】
各層は、層についてのパラメータセットの現在の値を使用して、一つ以上の出力を生成する。したがって、ニューラルネットワークを訓練することには、入力に対してフォワードパスを継続的に実行すること、勾配値を計算すること、および、計算された勾配値を使用(例えば、勾配降下を使用)して、各層のパラメータのセットについて現在の値を更新することが関与する。ニューラルネットワークがいったん訓練されると、パラメータ値の最終セットは、生産システムで予測を行うために使用することができる。
【発明の概要】
【0010】
本明細書は、一つ以上の点群の集合から三次元(3D)物体検出を実行するための、コンピュータ記憶媒体にコードされたコンピュータプログラムを含む、方法、コンピュータシステム、および装置について記載する。
【0011】
一つの革新的な態様では、本明細書は、物体検出を行うための方法を記述する。方法は、一つ以上のコンピュータを含むシステムによって実装される。システムは、一つ以上のセンサによって取り込まれた点群の集合内の各点群に対応するそれぞれの距離画像を取得する。各点群は、それぞれの複数個の三次元点を含む。各距離画像が、複数個のピクセルを含み、ここで、距離画像内の各ピクセルは、(i)対応する点群中の一つ以上の点に対応し、(ii)対応する点群中のピクセルに対する対応する一つ以上の点の、一つ以上のセンサまでの距離を示す距離値を少なくとも有する。システムは、各距離画像について、(i)距離画像内のピクセルについての距離画像特徴、および(ii)ピクセルが前景ピクセルまたは背景ピクセルであるかを距離画像内のピクセルのそれぞれに対して示す、セグメンテーション出力を、生成するように構成されているセグメンテーションニューラルネットワークを使用して各距離画像を処理する。システムは、点群の集合内の各前景点について、前景点に対応するピクセルについての少なくとも距離画像特徴から、前景点の特徴表現を生成する。前景点は、ピクセルであって、当該ピクセルが前景ピクセルであることを対応するセグメンテーション出力が示す、ピクセルに対応する点である。システムは、前景点の特徴表現のみから、点群の集合の特徴表現を生成する。システムは、予測ニューラルネットワークを使用して点群の集合の特徴表現を処理し、点群の集合を特徴付ける予測を生成する。
【0012】
方法の一部の実装では、予測は、物体の測定値である可能性が高い点群の集合の領域を識別する、物体検出予測である。物体検出予測は、(i)点群内の位置全体のヒートマップ、および(ii)複数個のバウンディングボックスのパラメータを含むことができる。
【0013】
方法の一部の実装では、セグメンテーションニューラルネットワークは、高い再現率および許容可能な適合率を有するセグメンテーション出力を生成するように訓練されている。
【0014】
方法の一部の実装では、セグメンテーションニューラルネットワークは、セグメンテーション出力を生成するために、1×1畳み込みを距離画像特徴に適用するように構成されている。
【0015】
方法の一部の実装では、セグメンテーション出力は、ピクセルのそれぞれについてそれぞれの前景スコアを含み、前景ピクセルとして示されるピクセルは、閾値を超える前景スコアを有するピクセルである。
【0016】
方法の一部の実装では、点群の集合の特徴表現を生成するために、システムは、ボクセル化を実行して、前景点を複数個のボクセルにボクセル化し、ボクセルに割り当てられた点の特徴表現から各ボクセルのそれぞれの表現を生成し、および、点群の集合の特徴表現を生成するために、スパース畳み込みニューラルネットワークを使用して、ボクセルの表現を処理する。ボクセル化は、ピラースタイルのボクセル化とすることができ、スパース畳み込みニューラルネットワークは、2Dスパース畳み込みニューラルネットワークである。あるいは、ボクセル化は3Dボクセル化とすることができ、スパース畳み込みニューラルネットワークは、3Dスパース畳み込みニューラルネットワークである。
【0017】
方法の一部の実装では、点群の集合は、異なる時点で取り込まれた複数個の点群を含み、ボクセル化を実施する前に、システムは、最新の時点での点群以外の各点群に対して、点群中の各前景点を最新の時点での点群に変換することによって、変換された点群を生成し、変換された点群に対してボクセル化を実行する。各点群について、システムは、点群が取り込まれた時点の識別子を、点群内の前景点の特徴表現に付加することができる。
【0018】
本明細書はまた、一つ以上のコンピュータと、一つ以上のコンピュータによって実行された時に、一つ以上のコンピュータに上述の方法を実行させる命令を格納する一つ以上の記憶装置とを含むシステムを提供する。
【0019】
本明細書はまた、一つ以上のコンピュータによって実行される時に、一つ以上のコンピュータに上述の方法を実行させる命令を格納する一つ以上のコンピュータ記憶媒体を提供する。
【0020】
本明細書に記述される主題は、以下の利点のうちの一つ以上を実現するように、特定の実施形態で実装されることができる。
【0021】
環境内の物体の検出は、例えば、自律車両によって、動作計画のために必要とされるタスクである。センサ測定データから、例えばLiDARデータから、他の車両、歩行者、自転車に乗る人などの物体を検出するための多数の技術が開発されてきた。
【0022】
一般に、グリッドベースの方法は、3D空間をボクセルまたはピラーに分割する。高密度畳み込みをグリッドに適用して特徴を抽出することができる。しかしながら、このアプローチは、長距離感知または小さな物体検出に必要とされる大型グリッドでは非効率的である。スパース畳み込みは、大きな検出範囲まで、より良くスケーリングされるが、畳み込みをすべての点に適用するという非効率のために、通常は遅い。距離画像ベースの方法は、点群特徴を抽出するために、距離画像全体に直接畳み込みを実行する。このようなモデルは距離と共に良好にスケーリングされるが、遮蔽の取り扱い、正確な物体の局在化、およびサイズ推定においては、あまり良好に機能しない傾向がある。
【0023】
既存のアプローチの欠点に対処するために、本明細書は、物体予測の効率および正解率を改善する技術について説明する。
【0024】
例えば、処理の初期段階は、背景点から前景点を迅速に識別するように最適化され、軽量の2D画像バックボーンを最大解像度で距離画像に適用することが可能となる。別の例として、下流のスパース畳み込み処理は、前景物体に属する可能性が高い点にのみ適用され、これは計算における追加的な著しい節約につながる。さらに、システムは、前景セグメンテーションネットワークを使用して、ストリーミング方式で距離画像の時系列の各フレームを独立して処理し、フレームからセグメント化された前景点を時間枠内に融合して、物体検出の効率および正解率をさらに改善することができる。
【0025】
本明細書の主題についての一つ以上の実施の詳細は、添付図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【0026】
図1A図1Aは、例示的な物体検出システムを示す。
図1B図1Bは、前景セグメンテーションニューラルネットワークの例を示す。
図1C図1Cは、スパース畳み込みニューラルネットワークの例を示す。
図2A図2Aは、点群データから物体検出を行うための例示的なプロセスを示す流れ図である。
図2B図2Bは、点群の特徴表現を生成するための例示的なプロセスを示す流れ図である。
【発明を実施するための形態】
【0027】
様々な図面内で同様の参照番号および名称は、同様の要素を示す。
詳細な説明
【0028】
図1Aは、物体検出システム100の例を示す。システム100は、以下に記載されるシステム、構成要素、および技術を実装できる、一つ以上の位置にある一つ以上のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【0029】
一般に、システム100は、一つ以上の点群の集合上で三次元(3D)物体検出を実行する。例えば、物体検出は、環境をナビゲートする自律車両の車載コンピュータシステムによって実行されてもよく、点群は、自律車両の一つ以上のセンサ、例えば、Lidarセンサによって生成されてもよい。車両の計画システムは、物体検出を使用して、例えば、任意の検出された物体との衝突を避けるために、将来の軌道を生成または修正することによって、車両の将来の軌道を計画するための計画決定を行うことができる。
【0030】
入力として、システム100は、点群の集合について距離画像データ110を取得する。距離画像データは、点群の集合内の各点群に対応するそれぞれの距離画像を含む。
【0031】
集合内の各点群は、一つ以上のセンサによって取り込まれた環境内のシーンのセンサ測定を表す複数の点を含む。例えば、一つ以上のセンサは、例えば陸、空、または海の車両である、ロボットエージェントまたは自律車両の、レーザー光の反射を検出すると考えられる、例えばLiDARセンサまたは他のセンサである、センサでありえ、シーンは、自律車両の近くにあるシーンでありうる。
【0032】
集合内に複数の点群がある場合、点群は、時系列で配置されることができる。点群は、対応するセンサ測定値が生成された、順序に従って配置されるため、この配列は、時系列と呼ばれる。
【0033】
距離画像は、3D点群の高密度表現である。各距離画像は、複数個のピクセルを含む。距離画像内の各ピクセルは、対応する点群内の一つ以上の点に対応する。各距離画像ピクセルは、対応する点群内のピクセルについての対応する一つ以上の点の、一つ以上のセンサまでの距離を示す、距離値を少なくとも有する。
【0034】
各距離画像のピクセルは、二次元(2D)グリッドに配置されることができる。一つの特定の実施例では、2Dグリッドの一方の寸法は、点群内の対応する点の方位角(φ's)に対応し、2Dグリッドの他方の寸法は、対応する点の傾斜(θ's)に対応する。各距離画像ピクセルは、対応する点の距離rを示す、距離値を少なくとも有する。距離画像内のピクセルはまた、対応する点についてセンサによって取り込まれた他の特性を表す各ピクセルについて、他の値、例えば、強度もしくは伸長または両方を含むことができる。
【0035】
システム100によって実行される物体検出の目標は、測定データから、例えば、LiDARデータから、検出された物体を示すデータを含む、予測出力170を生成することである。
【0036】
システム100は、最初にセグメンテーションニューラルネットワーク120(例えば、軽量の2D畳み込みネットワーク)を適用して、距離画像から特徴を効率的に抽出し、予備的物体セグメンテーションを実施する。後続の段階では、システムは、3D物体ラベルを正確に予測するために、スパース畳み込みニューラルネットワーク150を使用して、(セグメンテーションニューラルネットワーク120によって予測されるように)前景ボクセルのみの画像特徴に対してスパース畳み込みを適用する。
【0037】
セグメンテーションニューラルネットワーク120は、各距離画像について、距離画像内のピクセルについての距離画像特徴132と、距離画像の中のピクセルのそれぞれについて、そのピクセルが前景ピクセルまたは背景ピクセルであるかを示すセグメンテーション出力134とを生成するように構成される。例えば、一部の実装では、セグメンテーションニューラルネットワーク120は、畳み込み層(例えば、1×1畳み込み)を距離画像特徴132に適用して、セグメンテーション出力134を生成することにより、距離画像特徴132からセグメンテーション出力134を生成するように構成される。
【0038】
一部の実装では、セグメンテーション出力134は、距離画像内のピクセルのそれぞれに対するそれぞれの前景スコアを含む。閾値を超える前景スコアを有するピクセルは、距離画像内の前景ピクセルとして示すことができる。それぞれの距離画像内の前景ピクセルは、前景点、すなわち、それぞれの距離画像に対応する点群内にある、検出された物体に対応する点に対応する。
【0039】
上述のように、システム100は、セグメンテーションニューラルネットワーク120を距離画像に適用して特徴を抽出し、前景ピクセルを識別する。次に、システムは、後続のステップで、学習した特徴および識別された前景ピクセルを処理して、例えば、点群に基づいて検出された物体の物体ラベルを生成するなど、点群を特徴付ける予測出力を生成する。
【0040】
本明細書によって提供される技術の一部の実装では、従来のセマンティックセグメンテーション方法とは異なり、偽陽性は後続の処理で除去できるが偽陰性は容易に回復することができないため、セグメンテーションニューラルネットワーク120の訓練において、再現率は高い適合率よりも強調される。すなわち、セグメンテーションニューラルネットワーク120は、高い再現率および許容可能な適合率を有するセグメンテーション出力134を生成するように訓練されて、グラウンドトゥルースの物体位置がセグメンテーション出力134によって予測される可能性がより高いことを保証する。
【0041】
セグメンテーションニューラルネットワークは、2D畳み込みニューラルネットワークなど、任意の適切なアーキテクチャを用いることができる。セグメンテーションニューラルネットワーク120の例示的なネットワークアーキテクチャについては、図1Bを参照しながら詳しく考察する。
【0042】
距離画像特徴132およびセグメンテーション出力134に基づいて、システム100は、前景特徴140、すなわち、点群内の前景点の特徴表現を、生成することができる。すなわち、システム100は、点群の集合内の各前景点について、前景点に対応するピクセルについての少なくとも距離画像特徴から、前景点の特徴表現を生成する。
【0043】
各距離画像について、システム100は、例えば、距離画像のピクセルに対する前景スコアに基づいてなど、セグメンテーション出力134に基づいて、距離画像内の前景点を識別できる。システム100は、閾値を超える前景スコアを備えるピクセルを、前景ピクセルとして識別できる。前景点は、センサデータに従って、シーン内の車両、歩行者、自転車に乗る人など、検出された物体に対応する点群内の点である。
【0044】
対応する前景点の各特徴表現は、セグメンテーションニューラルネットワーク120によって生成される距離画像特徴を含む。一部の実装では、点群の時系列がある場合、特徴表現は、フレームの時点情報も含むことができる。一部の実装では、特徴表現は、点群の統計も含むことができる。
【0045】
一部の実装では、点群の集合は、異なる時点で取り込まれた複数個の点群を含み、点群は、移動センサ(例えば、移動する車両上に構成されたLiDAR)によって実行される測定によって取り込まれる。システム100は、下流処理前の前景点の特徴表現から、センサのエゴモーションの影響を除去することができる。一般に、異なるフレームにおける距離再構成は、些細ではない量子化誤差をもたらすため、距離画像からエゴモーションを直接除去することは最適ではない。代わりに、本明細書のシステム100は、点群内の前景点からエゴモーションの影響を除去する。具体的には、システム100は、最新の時点での点群以外の各点群について、点群内の各前景点を、最新の時点での点群に変換することによって、変換された点群を生成することができる。
【0046】
一部の実装では、物体検出システム100は、時間枠内の複数の時点で収集される、距離画像の複数のそれぞれのフレームの集合を処理するための、複数の並列分岐としての複数のセグメンテーションニューラルネットワーク120を含む。複数のセグメンテーションニューラルネットワーク120は、ネットワークパラメータの同じセットを共有し、ニューラルネットワークの訓練中に共同して訓練される。推論中、距離画像の複数のフレームの集合の最後のフレームのみが、セグメンテーションニューラルネットワーク120の単一の分岐によって処理され、システムは、集合内の他のフレームに対しては以前の結果を再利用する。セグメンテーション分岐後、システム100は、セグメント化された前景点の異なるフレームからセンサのエゴモーションを除去するために変換を実行し、異なるフレームから変換された前景点を点の複数の集合に収集する。セグメンテーションネットワークを使用して、ストリーミング方式で距離画像の時系列の各フレームを独立して処理し、フレームからセグメント化された前景点を時間枠内に融合することによって、システムは、物体検出の効率および正解率をさらに向上させることができる。
【0047】
一つの特定の実装では、抽出された特徴132と、セグメンテーションニューラルネットワーク120によって生成されるセグメンテーション出力134とに基づいて、システムは、点を、点の複数の集合Pδiに収集することができ、ここで、δiは、フレーム0(最新、すなわち、最も最近取り込まれた点群)とフレームiとの間のフレーム時間差である。Pδiにおける各点pの特徴表現は、セグメンテーションニューラルネットワーク120によって抽出された特徴を含み、p-m、var、p-c、およびδiで拡張され、ここで、pは、点の位置ベクトルであり、mおよびvarは、点群内のすべての点の位置ベクトルの算術平均および共分散であり、cは、点群内の中心点の位置ベクトルである。
【0048】
セグメンテーションニューラルネットワークによって予測された前景点のみに対して特徴表現を生成することによって、システム100は、点群データを、後続の処理のために物体に属する可能性が最も高い点にのみ減少させる。
【0049】
スパース畳み込みに備えるために、システムは、ボクセル化を実行して、前景点を複数個のボクセルにボクセル化し、ボクセルに割り当てられた点の特徴表現から各ボクセルのそれぞれの表現を生成することができる。
【0050】
一般に、ボクセル化は、点群をボクセルのグリッド内にマッピングする。一部の実装では、ボクセル化は、点群をボクセルの3Dグリッド内にマッピングする、3Dボクセル化である。例えば、システムは、ボクセルサイズΔx,y,zを有する等間隔のボクセルのグリッドに点群をマッピングすることができる。
【0051】
一部の実装では、ボクセル化は、点群をボクセルの2Dグリッドにマッピングする、ピラースタイルのボクセル化である。ピラースタイルのボクセル化については、「PointPillars: Fast Encoders for Object Detection from Point Clouds」(arXiv:1812.05784 [cs.LG], 2018)に記載がある。ピラースタイルのボクセル化では、z寸法のボクセルサイズΔzは+∞に設定される。
【0052】
次に、システム100は、点群の集合の特徴表現を生成するために、スパース畳み込みニューラルネットワーク150を使用して、ボクセルの表現を処理する。
【0053】
スパース畳み込みニューラルネットワーク150は、ボクセル化がピラースタイルのボクセル化である場合、2Dスパース畳み込みニューラルネットワークとすることができ、または、ボクセル化が3Dボクセル化である場合、3Dスパース畳み込みニューラルネットワークとすることができる。
【0054】
スパース畳み込みニューラルネットワーク150は、特定用途に対して任意の適切なネットワークアーキテクチャを用いることができる。スパース畳み込みニューラルネットワークの例は、図1Cを参照しながら、詳しく説明する。
【0055】
次に、システム100は、スパース畳み込みニューラルネットワーク150からの出力特徴を使用して、3D物体ラベルを正確に生成する。特に、システムは、予測ニューラルネットワーク160を使用して点群の集合の特徴表現を処理して、点群の集合を特徴付ける予測出力170を生成する。
【0056】
一部の実装では、予測出力170は、物体の測定値である可能性が高い点群の集合の領域を識別する、物体検出予測である。一つの特定の実施例では、物体検出予測は、点群内の位置全体のヒートマップ、および検出された物体の位置および幾何学形状に対応する複数個のバウンディングボックスのパラメータを含む。
【0057】
一つの特定の実施例では、点群に対して生成された特徴表現に基づいて、システムは、ボクセル化された座標
【数1】

上に特徴マップを形成することができ、ここでd∈{2,3}は、2Dまたは3Dの特徴抽出が実行されたかどうかに依存する。システムは、予測ニューラルネットワーク150を用いて特徴マップを入力として処理して、点群のヒートマップを生成することができる。ヒートマップは、車両、歩行者、および自転車に乗る人などの物体がその位置で検出される可能性の、空間的分布に対応する。予測ニューラルネットワーク150はまた、例えば、中心位置{x,y,z}、寸法{l,w,h}、および進行方向θを含む、予測された各バウンディングボックスについてのパラメータを生成するように構成されることができる。
【0058】
予測ニューラルネットワークは、任意の適切なネットワークアーキテクチャを用いることができる。一つの特定の実施例では、「Objects as points」(arXiv: 1904.07850, 2019)に記載のあるものと類似した改変CenterNetを、予測ニューラルネットワークとして使用することができる。
【0059】
システム100または別のシステムは、訓練例に基づいて、セグメンテーションニューラルネットワーク120、スパース畳み込みニューラルネットワーク150、および予測ネットワーク160の訓練を実施することができる。一例では、システムは、次式の合計損失に基づいてエンドツーエンドの訓練を実施することができ、
【数2】

式中、Lsegは、セグメンテーションニューラルネットワーク120の出力時に計算されるセグメンテーション損失であり、LhmおよびLboxはそれぞれ、予測ニューラルネットワーク160の出力時に計算されるヒートマップ損失およびバウンディングボックス損失である。
【0060】
セグメンテーション損失は、対応するピクセル点が任意のボックス内にあるかどうかをチェックすることによって、3Dバウンディングボックスから誘導されたグラウンドトゥルースラベルを持つ焦点損失として計算でき、ここで、
【数3】
【0061】
Pは、有効な距離画像ピクセルの総数である。Liは、点iについての焦点損失である。閾値γを超える前景スコアsiを有する点が選択される。前景閾値γは、高い再現率および許容可能な適合率を達成するために選択される。
【0062】
一部の実装では、訓練例においてグラウンドトゥルースバウンディングボックスのみが利用可能な場合、グラウンドトゥルースヒートマップは、例えば、次式を使用して、
【数4】

について計算することができ、
【数5】

式中、
【数6】

は、
【数7】

を含むボックスの中心の集合である。
【数8】

である場合、h=0である。点
【数9】

のヒートマップ値hは、
【数10】

に応じて計算され、これは、点
【数11】

と、ボックス中心bcに配置された円との距離であり、円の半径は、ボックス中心bcから、
【数12】

内の最も近い点までの距離である。
【0063】
ヒートマップ損失Lhmは、次式の焦点損失とすることができ、
【数13】

式中、
【数14】

およびhは、それぞれ予測ヒートマップ値およびグラウンドトゥルースヒートマップ値である。εは、数値安定性のために追加されるのであり、小さな値(例えば1e-3)に設定することができる。
【0064】
3Dバウンディングボックスは、b={dx,du,dz,l,w,h,θ}としてパラメータ化することができ、式中、dx,du,dzは、ボクセル中心に対するボックス中心オフセットである。2Dスパース畳み込みニューラルネットワークを使用する場合、dzは、絶対ボックスz中心として設定することができる。l,w,h,θは、ボックスの長さ、幅、高さ、およびボックスの向きである。ビン損失は、回帰の向きθに適用できる。他のボックスのパラメータは、滑らかなL1損失下で直接回帰することができる。IoU損失を追加することで、ボックス回帰正解率をさらに高めることができる。ボックス回帰損失は、閾値δ1より大きいグラウンドトゥルースヒートマップ値を持つ特徴マップピクセルでのみアクティブであり、
【数15】

式中、
【数16】

はそれぞれ、予測およびグラウンドトゥルースボックスのパラメータであり、
【数17】

はそれぞれ、予測およびグラウンドトゥルースボックスの向きである。hiは、特徴マップピクセルiにおいて計算される、グラウンドトゥルースヒートマップ値である。システムは、閾値δ2より大きいヒートマップ予測を有するスパース特徴マップボクセル上でのスパース部分多様体最大プーリング演算の実行、および局所最大ヒートマップ予測に対応するボックスの選択ができる。
【0065】
図1Bは、セグメンテーションニューラルネットワーク120のアーキテクチャの例を示す。この例では、システムは、「U-Net: Convolutional Networks for Biomedical Image Segmentation」(arXiv: 1505.04597 [cs.CV], 2015)に記載のあるものと類似した一般的な形状を有するU字型のアーキテクチャを用いる。
【0066】
図1Bに示すように、U字型セグメンテーションニューラルネットワーク120は、縮小経路(左側)および拡張経路(右側)を含む。縮小経路は、ダウンサンプリングブロック120aを含む。各ダウンサンプリングブロック120a(D(L,C)によって表される)は、L個のResNetブロックを含み、それぞれC個の出力チャネルを有する。
【0067】
拡張経路は、アップサンプリングブロック120bを含む。各アップサンプリングブロック120b((L,C)によって表される)は、アップサンプリング層およびL個のResNetブロックを含む。一つの特定の実装では、アップサンプリング層は、1×1畳み込みと、それに続く二重線形補間を含む。
【0068】
図1Cは、スパース畳み込みニューラルネットワーク150のネットワークアーキテクチャの例を示す。特に、150aは、前景特徴から歩行者を検出するための特徴表現を生成するための例示的なネットワークアーキテクチャを示し、150bは、前景特徴から車両を検出するための特徴表現を生成するための例示的なネットワークアーキテクチャを示す。
【0069】
ネットワーク150aおよび150bは両方とも、ブロックB0およびB1で構成されている。B0およびB1の各々は、いくつかのSC層およびSSC層を含む。SC層は、ストライド1または2で3×3または3×3×3のスパース畳み込みを実行する。SSC層は、3×3または3×3×3の部分多様体スパース畳み込みを実行する。「/2」は、ストライド2を示す。
【0070】
図2Aは、点群データから物体検出を実行するための例示的なプロセス200を示す流れ図である。便宜上、プロセス200は、一つ以上の位置に位置する一つ以上のコンピュータのシステムによって実行されるものとして記述される。例えば、本明細書に従って適切にプログラムされた物体検出システム(例えば、図1Aの物体検出システム100)は、プロセス200を実施することができる。
【0071】
ステップ210では、システムは、点群の集合の距離画像データを取得する。距離画像データは、点群の集合内の各点群に対応するそれぞれの距離画像を含む。
【0072】
集合内の各点群は、一つ以上のセンサによって取り込まれた環境内のシーンのセンサ測定を表す複数の点を含む。例えば、一つ以上のセンサは、例えば陸、空、または海の車両である、自律車両の、レーザー光の反射を検出すると考えられる、例えばLiDARセンサまたは他のセンサである、センサでありえ、シーンは、自律車両の近くにあるシーンでありうる。
【0073】
各距離画像は、複数個のピクセルを含む。距離画像内の各ピクセルは、対応する点群内の一つ以上の点に対応する。各距離画像ピクセルは、対応する点群内のピクセルについての対応する一つ以上の点の、一つ以上のセンサまでの距離を示す、距離値を少なくとも有する。
【0074】
集合内に複数の点群がある場合、点群は、時系列で配置されることができる。点群は、対応するセンサ測定値が生成された、順序に従って配置されるため、この配列は、時系列と呼ばれる。
【0075】
距離画像内のピクセルはまた、対応する点についてセンサによって取り込まれた他の特性を表す各ピクセルについて、他の値、例えば、強度もしくは伸長または両方を含むことができる。
【0076】
ステップ220では、システムは、画像特徴、および距離画像データからのセグメンテーション出力を生成する。具体的には、システムは、各距離画像について、距離画像内のピクセルについての距離画像特徴、およびピクセルが前景ピクセルまたは背景ピクセルであるかを距離画像内のピクセルのそれぞれに対して示す、セグメンテーション出力を、生成するように構成されているセグメンテーションニューラルネットワークを使用して各距離画像を処理する。
【0077】
一部の実装では、セグメンテーションニューラルネットワークは、例えば、1×1畳み込みを距離画像特徴に適用してセグメンテーション出力を生成することによって、距離画像特徴からセグメンテーション出力を生成するように構成される。
【0078】
一部の実装では、セグメンテーション出力は、距離画像内のピクセルのそれぞれに対するそれぞれの前景スコアを含む。閾値を超える前景スコアを有するピクセルは、距離画像内の前景ピクセルとして示すことができる。それぞれの距離画像内の前景ピクセルは、前景点、すなわち、それぞれの距離画像に対応する点群内にある、検出された物体に対応する点に対応する。
【0079】
ステップ230では、システムは、点群内の前景点についての特徴表現を生成する。すなわち、システムは、点群の集合内の各前景点について、前景点に対応するピクセルについての少なくとも距離画像特徴から、前景点の特徴表現を生成する。
【0080】
対応する前景点の各特徴表現は、セグメンテーションニューラルネットワークによって生成される距離画像特徴を含む。一部の実装では、点群の時系列がある場合、特徴表現は、フレームの時点情報も含むことができる。一部の実装では、特徴表現は、点群についてのボクセルの静力学も含むことができる。
【0081】
ステップ240では、システムは、点群の集合についての特徴表現を生成する。具体的には、システムは、前景点の特徴表現のみから、点群の集合の特徴表現を生成する。
【0082】
点群特徴を生成するための例示的なプロセスは、図2Bを参照しながら詳細に説明する。一般に、システムは、ニューラルネットワーク、例えば、スパース畳み込みニューラルネットワークを使用して、予測される前景ボクセルおよびそれらの学習された距離画像特徴に基づいて入力を処理することができる。ニューラルネットワークからの出力特徴は、3D物体ラベルを正確に生成するために、下流処理で使用することができる。
【0083】
ステップ250では、システムは、予測ニューラルネットワークを使用して点群の集合の特徴表現を処理し、点群の集合を特徴付ける予測を生成する。
【0084】
一部の実装では、予測は、物体の測定である可能性が高い点群の集合の領域を識別する、物体検出予測である。一つの特定の実施例では、物体検出予測は、点群内の位置全体のヒートマップ、および検出された物体の位置および幾何学形状に対応する複数個のバウンディングボックスのパラメータを含む。
【0085】
図2Bは、点群の特徴表現を生成するための例示的なプロセス240を示す流れ図である。便宜上、プロセス240は、一つ以上の位置に位置する一つ以上のコンピュータのシステムによって実行されるものとして記述される。例えば、本明細書に従って適切にプログラムされた物体検出システム(例えば、図1Aの物体検出システム100)は、プロセス240を実施することができる。
【0086】
距離画像は、例えば、移動する車両上に構成されたLiDARなどの移動センサによって実行される測定に基づいて生成されることができる。これらのシナリオでは、エゴモーションを考慮せずに複数の距離画像を積み重ねることは、予測モデルの性能にマイナスの影響を与えうる。したがって、システムは、任意選択的に、ステップ242を実行して、点群内の前景点からセンサのエゴモーションの影響を除去することができる。
【0087】
具体的には、ステップ242で、点群の集合が、異なる時点で取り込まれた複数個の点群を含むとき、システムは、最新の時点での点群以外の各点群について、点群内の各前景点を最新の時点での点群に変換することによって、変換された点群を生成する。
【0088】
ステップ244では、システムは、前景点を複数個のボクセルにボクセル化するためにボクセル化を行う。一部の実装では、ボクセル化は、点群をボクセルの3Dグリッド内にマッピングする、3Dボクセル化である。一部の実装では、ボクセル化は、点群をボクセルの2Dグリッドにマッピングする、ピラースタイルのボクセル化である。
【0089】
ステップ246では、システムは、ボクセルに割り当てられた点の特徴表現から、各ボクセルのそれぞれの表現を生成する。
【0090】
ステップ248では、システムは、点群の集合の特徴表現を生成するために、スパース畳み込みニューラルネットワークを使用して、ボクセルの表現を処理する。
【0091】
スパース畳み込みニューラルネットワークは、ボクセル化がピラースタイルのボクセル化である場合、2Dスパース畳み込みニューラルネットワークとすることができる。ボクセル化が3Dボクセル化である場合、3Dスパース畳み込みニューラルネットワークである。
【0092】
スパース畳み込みニューラルネットワークは、特定用途に対して任意の適切なネットワークアーキテクチャを用いることができる。スパース畳み込みニューラルネットワークの例は、図1Cを参照しながら、詳しく説明する。
【0093】
本明細書は、システムおよびコンピュータプログラム構成要素との関連において、「構成された」という用語を使用する。一つ以上のコンピュータのシステムが、特定の演算またはアクションを実行するように構成されているということは、動作中にシステムに演算またはアクションを実行させる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを、システムがそのシステムにインストールしていることを意味する。一つ以上のコンピュータプログラムが、特定の演算またはアクションを実行するように構成されているということは、データ処理装置によって実行されるとき、装置に演算またはアクションを実行させる命令を、一つ以上のプログラムが含むことを意味する。本明細書に記述される主題および関数演算の実施形態は、デジタル電子回路に、有形に具現化されたコンピュータソフトウェアもしくはファームウェアに、本明細書に開示された構造およびそれらの構造的等価物を含むコンピュータハードウェアに、またはそれらの一つ以上の組み合わせに、実装されることができる。本明細書に記述される主題の実施形態は、一つ以上のコンピュータプログラム、すなわち、データ処理装置によって実行されるか、またはデータ処理装置の演算を制御するために、有形の非一時的記憶媒体上にコードされるコンピュータプログラム命令の一つ以上のモジュールとして実装されることができる。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダムアクセスメモリ装置もしくはシリアルアクセスメモリ装置、またはそれらの一つ以上の組み合わせであることができる。別の方法として、または追加的に、プログラム命令は、データ処理装置によって実行されるための適切な受信装置への送信のための情報をコードするために生成される、人工的に生成された伝搬信号、例えば、機械生成された電気信号、光信号、または電磁信号上にコードされることができる。
【0094】
「データ処理装置」という用語は、データ処理ハードウェアを指し、データ処理のためのあらゆる種類の装置、デバイス、および機械を包含し、これは一例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。装置はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの特殊用途論理回路でありうるか、またはさらにそれを含みうる。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの一つ以上の組み合わせを構成するコードなど、コンピュータプログラムの実行環境を生成するコードも随意に含むことができる。
【0095】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれまたは描写されうるが、これは、コンパイル型言語もしくはインタープリタ型言語 、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述されることができ、かつそれは、スタンドアローンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてを含めて、任意の形態で展開されることができる。プログラムは、ファイルシステム内のファイルに対応しうるが、そうする必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部、例えば、マークアップ言語文書に格納された一つ以上のスクリプト、問題のプログラム専用の単一のファイル、または複数の連携されたファイル、例えば、一つ以上のモジュール、サブプログラム、もしくはコードの一部を保存するファイルに格納することができる。コンピュータプログラムは、一つのコンピュータ上、または一つのサイトに位置するか、または複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように導入されることができる。
【0096】
本明細書において、「データベース」という用語は、データの任意のコレクションを指すために広く使用され、データは、いかなる特定の方法で構造化される必要も、または全く構造化される必要もなく、一つ以上の位置の記憶装置上に格納されることができる。したがって、例えば、索引データベースは、データの複数のコレクションを含むことができ、その各々は異なって整理されアクセスされてもよい。
【0097】
同様に、本明細書において、「エンジン」という用語は、一つ以上の特定の関数を実行するようにプログラムされる、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。一般に、エンジンは、一つ以上の位置にある一つ以上のコンピュータ上にインストールされる、一つ以上のソフトウェアモジュールまたは構成要素として実装される。一部の事例では、一つ以上のコンピュータは、特定のエンジン専用となり、他の事例では、複数のエンジンは、同じコンピュータまたは複数のコンピュータ上でインストールされ実行されうる。
【0098】
本明細書に記述されるプロセスおよび論理フローは、入力データに対して演算し、出力を生成することによって、関数を実行する、一つ以上のコンピュータプログラムを実行する一つ以上のプログラム可能なコンピュータによって実行されることができる。プロセスおよび論理フローはまた、特殊用途論理回路(例えば、FPGAもしくはASIC)によって、または特殊用途論理回路と一つ以上のプログラムされたコンピュータとの組み合わせによって実施することができる。
【0099】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊用途マイクロプロセッサ、またはその両方、または任意の他の種類の中央処理装置に基づくものであることができる。一般に、中央処理装置は、読み出し専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの不可欠な要素は、命令を遂行または実行するための中央処理装置、ならびに命令およびデータを格納するための一つ以上の記憶装置である。中央処理装置およびメモリは、特殊用途論理回路によって補完されるか、または特殊用途論理回路に組み込まれることができる。概して、コンピュータはまた、データを格納するための、例えば、磁気ディスク、光磁気ディスク、または光ディスクなど、一つ以上の大容量記憶装置を含むか、またはそこからのデータを受信する、もしくはそこへデータを送信する、もしくはその両方を行うように動作可能に結合されている。しかしながら、コンピュータはこうしたデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ほんの少しを挙げると、移動電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球位置把握システム(GPS)受信機、またはポータブルストレージデバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込むことができる。
【0100】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体および記憶装置を含み、これは一例として、半導体メモリデバイス(例えば、EPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(例えば、内蔵ハードディスクまたはリムーバブルディスク)、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。
【0101】
ユーザーとの対話を提供するために、本明細書に記述された主題の実施形態は、ユーザーに対して情報を表示するための表示装置(例えば、CRT(陰極線管)またはLCD(液晶表示装置)モニター)と、それによってユーザーが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを有するコンピュータ上に実装されることができる。他の種類のデバイスを使用して、ユーザーとの対話を提供することもでき、例えば、ユーザーに提供されたフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックでありえ、ユーザーからの入力は、音響、発話、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、ユーザーが使用する装置に文書を送受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザーの装置のウェブブラウザにウェブページを送信することによって、ユーザーと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、例えば、メッセージングアプリケーションを実行中のスマートフォンに送信し、それに対するユーザーから応答メッセージを受信することによって、ユーザーと対話することができる。
【0102】
機械学習モデルを実装するためのデータ処理装置には、例えば、機械学習訓練または生産(すなわち、推論)作業負荷の共通部分および計算集約的な部分を処理するための特殊用途のハードウェア加速装置も含まれうる。
【0103】
機械学習モデルは、機械学習フレームワーク、例えば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および導入することができる。
【0104】
本明細書に記述される主題の実施形態は、バックエンド構成要素(例えば、データサーバーとして)を含むコンピューティングシステムに、またはミドルウェア構成要素(例えば、アプリケーションサーバー)を含むコンピューティングシステムに、または、フロントエンド構成要素(例えば、それを通してユーザーが本明細書に記載される主題の実装と対話できるグラフィカルユーザーインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータ)、もしくは一つ以上のこうしたバックエンド、ミドルウェア、もしくはフロントエンドの構成要素の任意の組み合わせを含むコンピューティングシステムに、実装されることができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続されることができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットが含まれる。
【0105】
コンピューティングシステムは、クライアントおよびサーバーを含むことができる。クライアントおよびサーバーは、概して互いに遠隔であり、典型的には通信ネットワークを介して相互作用する。クライアントとサーバーとの関係は、それぞれのコンピュータ上で実行され、互いに対してクライアント・サーバーの関係を有するコンピュータプログラムによって生じる。一部の実施形態では、サーバーは、例えば、クライアントとして機能するデバイスと相互作用するユーザーにデータを表示すること、およびそのユーザーからユーザー入力を受け取ることを目的として、例えば、HTMLページなどのデータを、ユーザーデバイスに送信する。ユーザーデバイスで生成されるデータ、例えば、ユーザー対話の結果は、デバイスからサーバーで受信されることができる。
【0106】
本明細書には多くの具体的な実装の詳細が含まれるが、これらは、任意の発明の範囲または請求されうるものの範囲の制限としてではなく、特定の発明の特定の実施形態に特有でありうる特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書に記載される特定の特徴は、単一の実施形態において組み合わせて実装されることもできる。逆に、単一の実施形態の文脈で記述される様々な特徴は、複数の実施形態で別々に、または任意の適切な部分的組み合せで実装されることもできる。さらに、特徴は、上記では特定の組み合わせで作用するものとして記載されている場合があり、さらには最初にそのようなものとして請求されてもよいが、請求された組み合わせからの一つ以上の特徴は、場合によっては、その組み合わせから除去されえ、請求された組み合わせは、部分的組み合せ、または部分的組み合せの変形を対象としうる。
【0107】
同様に、演算は、特定の順序で、図面に示され特許請求の範囲に記載されているが、これは、望ましい結果を達成するために、そのような演算が、示された特定の順序で、もしくは連続的な順序で実行されること、または示されたすべての演算が実行されることを、要求するものと理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利でありうる。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態でこのような分離を必要とするものと理解されるべきではなく、記述されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に統合されえ、または複数のソフトウェア製品にパッケージ化されうることが理解されるべきである。
【0108】
主題の特定の実施形態を説明してきた。他の実施形態は、以下の請求項の範囲内である。例えば、請求項に記載されたアクションは、異なる順序で実行されることができ、なおも望ましい結果を達成することができる。一例として、添付図面で描写されるプロセスは、望ましい結果を達成するために、必ずしも示される特定の順序、または連続的な順序である必要はない。一部の事例では、マルチタスキングおよび並列処理が有利でありうる。
図1A
図1B
図1C
図2A
図2B