(57)【要約】二次元画像および点群から三次元境界ボックスが判定される。三次元境界ボックスのパラメータを判定するよう、画像と関連付けられた特徴ベクトルおよび点群と関連付けられた特徴ベクトルがニューラルネットワークに渡されてもよい。点群における点の各々と関連付けられた特徴ベクトルも判定されてもよく、三次元境界ボックスの測定値を点ごとに作成するよう検討されてもよい。
2020534617.tif 000002
【特許請求の範囲】
【請求項１】
三次元境界ボックスを推定するシステムであって、前記システムは、１つまたは複数のプロセッサによって実行されるとき、前記システムに、
画像捕捉デバイスから捕捉された画像を受信することと、
前記画像内の物体を検出することと、
前記画像を切り取って前記物体を含む切り取られた画像を形成することと、
前記物体と関連付けられた点群データを受信することと、
前記点群データと関連付けられた第１の特徴ベクトルを判定することであって、前記第１の特徴ベクトルは、幾何学的特徴ベクトルを含む、ことと、
前記切り取られた画像と関連付けられた第２の特徴ベクトルを判定することであって、前記第２の特徴ベクトルは、外観特徴ベクトルを含む、ことと、
前記第１の特徴ベクトルおよび前記第２の特徴ベクトルをニューラルネットワークに渡すことと、
前記ニューラルネットワークから、前記物体と関連付けられた三次元境界ボックスを記述した座標を受信することと、
を実行させる命令を含む非一時的コンピュータ可読媒を含むことを特徴とするシステム。
【請求項２】
前記命令は更に、前記システムに、
複数の第３の特徴ベクトルを判定することであって、前記複数の第３の特徴ベクトルの１つ目は、前記点群データにおける第１の点に対応し、前記複数の第３の特徴ベクトルの２つ目は、前記点群データにおける第２の点に対応する、ことと、
前記第１の複数の特徴ベクトルおよび前記第２の複数の特徴ベクトルと共に前記複数の第３の特徴ベクトルを前記ニューラルネットワークに渡すことと、
前記第１の点に対し、オフセットの第１の組および第１の信頼スコアを判定することであって、前記オフセットの第１の組は、前記第１の点に対する前記三次元境界ボックスの角の第１の推定された部分に対応する、ことと、
前記第２の点に対し、オフセットの第２の組および第２の信頼スコアを判定することであって、前記オフセットの第２の組は、前記第２の点に対する前記三次元境界ボックスの前記角の第２の推定された部分に対応する、ことと、を実行させ、
前記システムは、前記第１の信頼スコアが前記第２の信頼スコアよりも高いときに前記第１の推定された部分に対応する座標を受信し、前記システムは、前記第２の信頼スコアが前記第１の信頼スコアよりも高いときに前記第２の推定された部分に対応する座標を受信する、
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記命令は、前記システムに、未加工の点群データを処理するように構成された点群ニューラルネットワークの処理層から前記第１の特徴ベクトルを抽出させ、前記命令は、前記システムに、残差学習ニューラルネットワークから前記第２の特徴ベクトルを抽出させる、ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記ニューラルネットワークは、完全結合層の１つまたは複数を含み、
前記画像捕捉デバイスは、ＲＧＢ画像を捕捉するように構成されたカメラを含み、
前記センサは、ＬＩＤＡＲセンサまたはＲＡＤＡＲセンサを含み、
前記センサからの前記ＲＧＢ画像および前記点群データは、調整される、
ことを特徴とする請求項１に記載のシステム。
【請求項５】
前記命令は更に、前記システムに、前記点群データを原点に変換することによって前記点群データを正規化させる、ことを特徴とする請求項１に記載のシステム。
【請求項６】
前記座標は、８個の点を含み、前記８個の点の各々は、前記三次元境界ボックスのそれぞれの角と関連付けられている、ことを特徴とする請求項１に記載のシステム。
【請求項７】
前記第１のニューラルネットワークは、点が三次元境界ボックスの内部にあり、または前記三次元境界ボックスの外側にあるかどうかを識別するデータセットを使用して、教師あり方式において訓練される、ことを特徴とする請求項２に記載のシステム。
【請求項８】
前記第１のニューラルネットワークは、前記境界ボックスに対する回帰損失を含む境界ボックス損失関数を使用して訓練される、ことを特徴とする請求項２に記載のシステム。
【請求項９】
前記命令は更に、前記システムに、
前記第１の点と関連付けられた前記切り取られた画像の第１の部分を判定することと、
前記第２の点と関連付けられた前記切り取られた画像の第２の部分を判定することと、を実行させ、
前記第１の部分または前記第２の部分のうちの少なくとも１つは、少なくとも部分的に双線形補間を使用して判定される、
ことを特徴とする請求項２に記載のシステム。
【請求項１０】
環境内の物体の三次元境界ボックスを推定する例示的なコンピュータによって実行される方法であって、
画像捕捉デバイスから前記環境の画像を受信するステップと、
前記環境と関連付けられた点群データを受信するステップであって、前記点群データは、複数の点を含む、ステップと、
前記画像内の物体を検出するステップと、
前記画像を切り取って前記物体の画像を含む切り取られた画像を形成するステップと、
前記切り取られた画像を第１のニューラルネットワークに入力するステップと、
前記点群を第２のニューラルネットワークに入力するステップと、
前記第１のニューラルネットワークから前記切り取られた画像と関連付けられた外観特徴ベクトルを抽出するステップと、
前記第２のニューラルネットワークから前記点群データと関連付けられた全体幾何学的特徴ベクトルを抽出するステップと、
前記第２のニューラルネットワークから複数の点毎幾何学的特徴ベクトルを抽出するステップであって、前記点毎幾何学的特徴ベクトルの個々は、前記複数の点の個々と関連付けられている、ステップと、
前記外観特徴ベクトル、前記全体幾何学的特徴ベクトル、および前記複数の点毎幾何学的特徴ベクトルを第３のニューラルネットワークに入力するステップと、
前記第３のニューラルネットワークから前記物体の三次元境界ボックスと関連付けられた情報を受信するステップと、
を備えたことを特徴とするコンピュータによって実行される方法。
【請求項１１】
前記三次元境界ボックスと関連付けられた前記情報を受信する前記ステップは、前記点群における点に対する複数の変位を受信することを含み、前記変位は、前記三次元境界ボックスの角に対応する、ことを特徴とする請求項１０に記載のコンピュータによって実行される方法。
【請求項１２】
前記第３のニューラルネットワークは、前記点群における点ごとに、複数のオフセットおよび信頼スコアを判定し、前記オフセットは、それぞれの点に対する前記三次元境界ボックスの推定された角からの変位を含み、前記三次元境界ボックスを受信する前記ステップは、最高信頼スコアを有する点と関連付けられたパラメータを受信することを含む、ことを特徴とする請求項１０に記載のコンピュータによって実行される方法。
【請求項１３】
前記第３のニューラルネットワークは、前記境界ボックスに対する回帰損失を含む境界ボックス損失関数を使用して訓練される、ことを特徴とする請求項１０に記載のコンピュータによって実行される方法。
【請求項１４】
前記第３のニューラルネットワークは、点が三次元境界ボックスの内部にあり、または前記三次元境界ボックスの外側にあるかどうかのインジケーションを使用して、教師あり方式において訓練される、ことを特徴とする請求項１０に記載のコンピュータによって実行される方法。
【請求項１５】
前記画像の外観特徴ベクトル、前記全体幾何学的特徴ベクトル、および前記複数の点毎幾何学的特徴ベクトルを第３のニューラルネットワークに入力する前記ステップは、前記点毎幾何学的特徴ベクトルの各々の個々を前記全体幾何学的特徴ベクトルと連結することを含む、ことを特徴とする請求項１０に記載のコンピュータによって実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この国際出願は、参照によってその両方の開示が本明細書に組み込まれる、２０１７年１０月３０日に出願された米国特許出願第１５／７９７，５７３号および２０１７年９月２２日に出願された米国仮特許出願第６２／５６２，１９３号の利益を主張する。
【背景技術】
【０００２】
複数のアプリケーションは、環境に存在する三次元物体に関する情報を必要とする。例えば、自律車両および自律ドローンなどの様々な自律システムは、衝突および障害回避のために物体の三次元データを利用する。三次元環境を効果的にナビゲーションするために、そのような自律システムは、例えば、障害のサイズおよび位置に関する情報を含む、障害に関する情報を必要する。加えて、それらのシステムは、そのような物体が環境とどのように相互作用するかを推定することを必要とすることがある。三次元物体の１つのそのような表現は、三次元境界ボックスである。三次元境界ボックスは、８個の角によって定義され、位置、方位、長さ、幅、および高さを有する三次元物体の単純な表現であってもよい。
【図面の簡単な説明】
【０００３】
【図１】環境、環境と関連付けられた画像データおよび点群（point cloud）データ、ならびに環境内の物体の周りの三次元境界ボックスの例を示す。
【図２】三次元境界ボックスのパラメータを判定するよう二次元画像および点群がニューラルネットワークを通る（run through）処理の例のグラフィカル表現である。
【図３】三次元境界ボックスのパラメータを判定するよう二次元画像および点群がニューラルネットワークを通る処理の別の例のグラフィカル表現である。
【図４】二次元画像および点群データから三次元境界ボックスを判定する１つまたは複数の処理を表すフローチャートを示す。
【図５】二次元画像および点群データから三次元境界ボックスを判定する１つまたは複数の追加の処理を表すフローチャートを示す。
【図６】二次元画像および点群データから三次元境界ボックスを判定するために使用可能なコンピュータ制御されたシステムの例を示す。
【発明を実施するための形態】
【０００４】
以下の詳細な説明は、環境内の物体を表す三次元境界ボックスを推定する技術に向けられる。環境内に存在する物体の空間情報を必要とする様々なアプリケーションが存在する。簡易的な例として、半自律および完全自律車両および自律ドローンなどの多くの自律システムは、追跡、ナビゲーション、および衝突回避を実行するために、それらの環境内の物体の位置、方位、および寸法を必要とする。
【０００５】
自律車両システムは、物体および／または物体の属性を検出、追跡、および識別する異なるタイプのセンサのアレイを含んでもよい。例えば、ＬＩＤＡＲおよびＲＡＤＡＲ、超音波トランスデューサ、および深度カメラなどのセンサは、環境内の物体に関する三次元情報を提供することができ、従来のカメラなどのセンサは、環境に関する二次元情報を提供することができる。例えば、ＬＩＤＡＲシステムは、１つまたは複数のレーザを含む発光素子を有する発光素子および光センサを有してもよく、１つまたは複数のレーザは、物体または光センサに光を反射し返す表面に向かって高度に焦点調節された光を方向付ける。ＬＩＤＡＲシステムの測定は、ＬＩＤＡＲシステムによって捕捉された位置または距離に対応する座標（例えば、デカルト、極など）を有する三次元ＬＩＤＡＲデータとして表されてもよい。例えば、ＬＩＤＡＲデータは、環境内の複数の点を含む点群データを含んでもよい。いくつかの例では、ＬＩＤＡＲセンサは、短い時間量内の多くの量の範囲の測定値（例えば、０．１秒ごとに１０００〜１０００００の範囲の測定値）を生成することができる。同様に、ＲＡＤＡＲシステムは、環境内の３Ｄ物体または特徴に関する点群データを生成するとして知られている。対照的に、画像捕捉デバイスは、ＲＧＢ画像データ、グレースケール画像データ、またはそうでない場合、環境に関する画像データなどの２Ｄ画像データを提供することができる。
【０００６】
本開示の実装態様では、例えば、ＬＩＤＡＲシステムまたはＲＡＤＡＲシステムからの点群データまたは２Ｄ画像データは、自律車両の環境内の物体の三次元表現を作成するために使用されてもよい。１つの例示的な三次元表現は、三次元境界ボックスである。三次元境界ボックスは、物体を取り囲む最小容積の直方体（cuboid）であってもよい。三次元境界ボックスは、それが包含する物体についての空間的位置、方位と共にサイズに関する情報を提供する。例えば、自律システムは、追跡、ナビゲーション、および衝突回避のためにこの情報を使用することができる。
【０００７】
本開示の実施形態に従って、環境内の１つまたは複数の物体と関連付けられた三次元境界ボックスについてのパラメータを推定するために、機械学習アルゴリズムが画像データおよび点群データに適用される。例えば、画像データと関連付けられた、例えば、対象の物体に対応する切り取られた画像と関連付けられた第１の特徴ベクトル、および点群データと関連付けられた第２の特徴ベクトルは、機械学習アルゴリズムに入力されてもよい。機械学習アルゴリズムは、三次元境界ボックスのパラメータを出力してもよい。パラメータは、座標系における８個の点を含んでもよく、８個の点は、三次元境界ボックスの８個の角を表す。パラメータを回収する（recover）ために使用される例示的な機械学習アルゴリズムは、畳み込みニューラルネットワーク（ＣＮＮ）であってもよい、人工ニューラルネットワーク（ＡＮＮ）である。
【０００８】
いくつかの実装態様では、画像データと関連付けられた特徴ベクトルは、残差ネットワークから抽出されてもよく、および／または点群データと関連付けられた特徴ベクトルは、点群データを処理するように構成されたディープニューラルネットワークから抽出されてもよい。例えば、画像データと関連付けられた特徴ベクトルは、更なる機械学習アルゴリズムに渡される前に、点群データと関連付けられた特徴ベクトルと連結されてもよい。
【０００９】
また、本開示の実装態様では、点毎データ（per-point data）は、三次元境界ボックスを判定するために検討されてもよい。例えば、点群データを処理するために使用される既知のディープラーニングネットワークは、例えば、最大プーリング（max-pooling）または平均プーリング（average pooling）などを使用して、個々の点に関する情報を組み合わせる前に各々の点を個々に検討してもよい。しかしながら、実装態様では、特徴ベクトルは、点群における点ごとに判定され、それらの特徴ベクトルは、画像データと関連付けられた特徴ベクトルおよび（全体的な）点群と関連付けられた特徴ベクトルに従って機械学習アルゴリズムに入力されてもよい。このように、アルゴリズムは、点群における点ごとに、境界ボックスの属性を推定する複数のパラメータを判定することができる。例えば、点群における点ごとに、本開示の実装態様は、点に対する三次元境界ボックスの角ごとのオフセットを判定することができる。各々の点に対するオフセットを判定することは、簡易性、機能性、および／または信頼性を改善することができる。それらのオフセットを計算することに加え、機械学習アルゴリズムはまた、点ごとのオフセットと関連付けられた信頼値を判定することができる。いくつかの実施例では、最高信頼値と関連付けられた点およびその対応するオフセットは、三次元境界ボックスを定義するように選択されてもよい。
【００１０】
いくつかの実装態様では、機械学習アルゴリズムは、信頼値を判定するように訓練されてもよい。いくつかの実装態様では、ＡＮＮは、点が三次元境界ボックスの中または三次元境界ボックスの外側にあるかどうかを示すデータを使用して、教師あり方式（supervised manner）において訓練されてもよい。他の実装態様では、ＡＮＮは、三次元境界ボックスについての回帰損失関数を使用して、教師なし方式（unsupervised manner）において訓練されてもよい。
【００１１】
自律ドローン、完全自律車両システムもしくは半自律車両システム、または物体を追跡し、ナビゲーションを支援し、および／もしくは衝突回避のためのいくつかの他のシステムなどのシステムによって三次元境界ボックスが使用されてもよい。三次元境界ボックスについての他の使用も、本開示の利点により当業者にとって明らかであることがある。図１〜６を参照して、更なる詳細が以下で提供される。
【００１２】
図１に目を向けると、環境１００は、様々な物体を含んでもよい。例示を目的として、環境１００内の１つのそのような物体は、車両１０２である。環境１００は、座標系１０４と関連付けられる。座標系１０４は、全体または局地的のいずれかであってもよい。全体座標系では、座標系１０４において表されるいずれかの点は、絶対座標である。代わりに、局地的座標系では、点は、全体座標において動くことがある、任意に定義された原点（環境を通じて進むような自律車両の中心など）（origin）に対して表現される。
【００１３】
環境１００と関連付けられた三次元データは、ＬＩＤＡＲシステムなどの三次元センサ（図示せず）によって生成されてもよい。上述したように、ＬＩＤＡＲシステムは、環境内の物体の外部表面を表すデータ点の組を含む、ＬＩＤＡＲデータ、例えば、１つまたは複数の点群を出力してもよい。例えば、参照符号１０６によって表されるＬＩＤＡＲデータは、車両１０２と関連付けられた複数の点を含む点群１０８を含む。ＬＩＤＡＲセンサによって生成されるとして点群１０８が説明されるが、点群は、１つまたは複数のＬＩＤＡＲセンサ、ＲＡＤＡＲセンサ、および／または他の三次元センサからの点を含んでもよい。例えば、点群１０８は、それらに限定されないが、深度カメラ、超音波トランスデューサ、および位相アレイレーダなど、環境１００に関する情報を提供する１つもしくは複数のＬＩＤＡＲセンサ、１つもしくは複数のＲＡＤＡＲセンサ、および／または１つもしくは複数の他の三次元センサから組み合わされ、または融合された（fused）データを含んでもよい。点群における各々の点は、三次元座標、例えば（ｘ，ｙ，ｚ）などの画像座標系によって表されてもよい。
【００１４】
図１においても示されるように、点群情報に加えて、環境１００の画像１１０は、少なくとも１つの画像捕捉デバイス（図示せず）によって捕捉されてもよい。画像１１０は、画像データを含む。例示を目的として、画像捕捉デバイスは、カメラであってもよい。しかしながら、赤、青、緑、深度（ＲＧＢＤ）カメラおよびステレオカメラなどの他の画像捕捉デバイスが予期される。例示的な実施形態では、画像１１０内の各々の画素は、画像座標系によって二次元座標、例えば、（ｕ，ｖ）として表される。画像１１０を捕捉すると、車両１０２は、画像１１０内の車両画像１１２として表される。画像データが画像捕捉デバイスから受信されると、様々なアルゴリズム（シングルショット検出器マルチボックス（Single Shot Detector Multibox）、ファストＣＮＮ（Fast-CNN）、ファスタＲ  ＣＮＮ（Faster-R CNN）、オーバヒート（overfeat）、領域ベース完全結合ネットワーク（region based fully-connected networkなど）が画像内、いくつかの実装態様では、二次元境界ボックス内の物体を識別するために適用されてもよい。それらのアルゴリズムは、特定の物体クラスを識別するためのみに選択されてもよい。例えば、アルゴリズムは、車、歩行者、動物、またはいずれかのそれらの組み合わせのみを検出してもよいが、いずれかの数の物体クラスの検出が予期される。図１に示されるように、そのようなアルゴリズムが、物体、ここでは車両を検出しており、対応する二次元境界ボックス１１４を識別している。二次元境界ボックス１１４は、長方形であり、画像１１０内の車両画像１１２を完全に取り囲むような寸法にされ、位置付けられる。代替的な実施形態では、画像１１０は、少なくとも１つのステレオカメラ、ＲＧＢＤカメラ、および／または深度カメラによって捕捉される。複数のカメラの使用は、複数の視点幾何（view geometry）の使用を通じて深度情報の回収を可能にすることができる。そのような実施形態では、ステレオまたはＲＧＢＤカメラからの深度情報は、画像１１０をセグメント化し、二次元境界ボックス１１４を作成するために、画像１１０内の物体の検出を支援するために使用される。
【００１５】
本開示の実装態様では、点群１０８および画像１１０、より詳細には、境界ボックス１１４内の車両画像１１２は、三次元境界ボックス１１６を作成するために使用されてもよい。三次元境界ボックス１１６が最小容積を有するように、三次元境界ボックス１１６は、車両１０２を完全に取り囲むような寸法にされてもよく、位置付けられてもよく、および方位付けされてもよい。三次元境界ボックス１３０の属性は、座標系１０４に対し、点群における１つもしくは複数の点に対し、および／またはいくつかの他の座標系に対して定義されてもよい。例えば、本開示の実装態様では、三次元境界ボックスは、ｘ、ｙ、およびｚの座標を有する三次元空間内の８個の点として定義されてもよく、８個の点は、三次元境界ボックスの８個の角に対応する。三次元境界ボックス１１６のパラメータを推定する方法および技術が以下で更に詳細に説明される。
【００１６】
図２は、画像データおよび点群データを使用して三次元境界ボックスのパラメータを判定する処理２００の図的記述を示す。この実装態様では、環境を記述した三次元データ２０２は、点群２０４を含む。図１の例にあるように、点群２０４は、環境内の三次元物体と関連付けられた複数の点を含み、例示を容易にするために、点群２０４は、単一の車両の外部表面と関連付けられた点のみを含むとして示される。しかしながら、他の実装態様では、点群２０４は、環境内の車両に近接した他の特徴の外部表面に対応する点を含んでもよい。また、この例では、環境の画像２０６が提供される。画像２０６は、環境を記述した二次元データから構成される。この画像データは、二次元境界ボックス２０８を定義し、画像２０６からの車両の車両画像２１０をセグメント化するように処理される。
【００１７】
図２はまた、点群２０４を受信するように構成された第１の処理アルゴリズム２１２を示す。本開示のいくつかの実装態様では、第１の処理アルゴリズム２１２は、点群を受信し、点を分析するように構成された人工ニューラルネットワーク（例えば、畳み込みニューラルネットワーク）を含んでもよい。例えば、第１の処理アルゴリズム２１２は、ＰｏｉｎｔＮｅｔネットワークであってもよい。ＰｏｉｎｔＮｅｔは、未加工点群データを受信し、全体点特徴および局所的点特徴の両方を学習するディープネットワークアーキテクチャである。ＰｏｉｎｔＮｅｔは、分類、部分セグメント化（part segmentation）、およびセマンティックセグメント化（semantic segmentation）の目的で従来から使用されている。しかしながら、本開示の目的により、第１の処理アルゴリズム２１２は、点群と関連付けられた特徴ベクトルを作成するように構成されてもよい。例えば、ＰｏｉｎｔＮｅｔが第１の処理アルゴリズム２１２として使用されるとき、特徴ベクトルは、予測層の前のいくつかの層の１つにおいて作成されてもよい。処理２００は、２１４において示されるように、それらの特徴ベクトルのうちの１つまたは複数を抽出してもよい。特徴ベクトル２１４は、点群２０６における点の位置とのみ関連付けられた、純粋に幾何学的な特徴ベクトルであってもよい。
【００１８】
処理２００において第２の処理アルゴリズム２１６も設けられる。第２の処理アルゴリズム２１６は、車両画像２１０を受信し、車両画像２１０と関連付けられた１つまたは複数の外観特徴ベクトル２１８を作成するように構成されてもよい。本開示のいくつかの実装態様では、第２の処理アルゴリズム２１６は、ＲｅｓＮｅｔ５０またはＲｅｓＮｅｔ１０１などの残差学習ネットワークとして具体化されてもよい。第２の処理アルゴリズム２１６は、車両画像２１０と関連付けられた特徴ベクトル（複数可）２１８を作成するように構成されてもよい。いくつかの実施例では、処理２００は、予測層の前の、残差学習ネットワークのいくつかの層の１つから特徴ベクトル（複数可）２１８を抽出してもよい。例えば、第２の処理アルゴリズム２１６は、ＲｅｓＮｅｔ−１０１  ＣＮＮであってもよく、特徴ベクトル２１８は、最終残差ブロックによって作成されてもよく、特徴マップ位置（feature map locations）にわたって平均化されてもよい。特徴ベクトル２１８は、純粋な外観ベクトルであってもよく、すなわち、いずれの幾何学的情報を有さない。
【００１９】
したがって、第１の処理アルゴリズム２１２および第２の処理アルゴリズム２１８はそれぞれ、特徴ベクトル２１４、２１８を作成するように構成される。特徴ベクトル２１４、２１８は、第１の処理アルゴリズムおよび第２の処理アルゴリズムを含むニューラルネットワークの１つまたは複数の層から抽出されたニューラルネットワーク処理特徴に対応してもよい。示される実施形態では、特徴ベクトルｌ２１４は、点群２０６と関連付けられた幾何学的特徴ベクトルであり、特徴ベクトル２１８は、車両画像２１０と関連付けられた外観特徴ベクトルである。参照符号２２０によって示されるように、特徴ベクトル２１４、２１８は、組み合わされてもよく、更なる人工ニューラルネットワーク（ＡＮＮ）２２２に入力されてもよい。例えば、特徴ベクトルｌ２１４、２１８は、連結されてもよい。ＡＮＮ  ２２２は、点群２０６および画像２１２についての８個の境界ボックスの角の三次元座標を回帰させるように構成された完全結合層を有するマルチレイヤニューラルネットワークであってもよい。よって、本開示の例示的な実施形態では、境界ボックスパラメータ２２４は、８個の座標の組を含んでもよく、８個の座標の各々は、画像物体、すなわち、この例では車両に対応する三次元境界ボックスである直方体の角に対応する。８個の角２２８によって定義された例示的な三次元境界ボックス２２６が図２に示される。別の実施例では、ＡＮＮ  ２２２は、そのような境界ボックスの中心位置、方位、および三次元の広がり（three dimensional extents）を予測してもよい。このように、ＡＮＮ  ２２２は、長方形の容積形状を保持するよう出力を制約する。
【００２０】
まさに説明されるように、図２に示される処理は、境界ボックスを記述した座標を直接回帰させる全体アーキテクチャを設ける。図３は、処理２００と同様に、物体と関連付けられた点群３０２および切り取られた画像３０４を使用して、三次元境界ボックスのパラメータをも判定する、処理３００の図的記述を示す。しかしながら、処理２００とは異なり、処理３００は、点群および画像のペアについてのパラメータの単一の組の代わりに、点群３０２における点ごとの境界ボックス座標を予測する密度が増加したアーキテクチャである。
【００２１】
処理２００と同様に、処理３００は、点群３０２を受信するように構成された第１の処理アルゴリズム３０６および切り取られた画像３０４を受信するように構成された第２の処理アルゴリズム３０８を設ける。本開示の例示的な実装態様では、第１の処理アルゴリズム３０６は、順序付けられていない（unordered）三次元点の組を入力として受信するように構成されたＰｏｉｎｔＮｅｔニューラルネットワークであってもよい。ＰｏｉｎｔＮｅｔニューラルネットワークは、図２に関して上記議論されたように、点群の全体についての１つの出力を作成し、または入力点ごとに１つの出力を作成するように構成可能である。ＰｏｉｎｔＮｅｔニューラルネットワークが点を全体的におよび個々に検討することを理由に、ＰｏｉｎｔＮｅｔニューラルネットワークから、点群３０４の全体と関連付けられた第１の特徴ベクトル３１０（図２の実施形態にあるように）と共に、点毎特徴ベクトル（per-point feature vector）３１２、すなわち、点群３０４における点毎特徴ベクトル３１２を抽出することが可能である。
【００２２】
処理２００と同様に、画像処理アルゴリズム３０８は、ＲｅｓＮｅｔ１０１などの残差ニューラルネットワークであってもよく、残差ニューラルネットワークから、外観特徴ベクトル３１４が導出される。例えば、上記でも議論されたように、本開示のいくつかの実装態様では、外観特徴ベクトル３１４は、ネットワークの最終残差から抽出されてもよく、特徴マップ位置にわたって平均化されてもよい。
【００２３】
３１６において示されるように、点毎特徴ベクトル３１２、全体点群特徴ベクトル３１０、および外観特徴ベクトル３１４は、組み合わされ、例えば、連結され、ＡＮＮ  ３１８に入力されてもよい。いくつかの実装態様では、各々の点と関連付けられた特徴ベクトルは、全体点群特徴ベクトル３１０が各々の点の特徴ベクトルに連結されるように、全体点群特徴ベクトル３１０と別々に組み合わされてもよく、例えば、連結されてもよい。上記議論されたＡＮＮ  ２２２とは異なり、ＡＮＮ  ３１８は、入力点ごとに予測を行う。より詳細には、ＡＮＮ  ３１８は、点群における点ごとに、点に対する境界ボックスの８個の角の各々についての空間オフセットを予測してもよく、予測されたオフセットについての信頼スコア３２２を判定してもよい。境界ボックスの８個の角の各々についての空間オフセットの概念が３２４に示される。特に、示されるように、８個のオフセット３２０が点群における所与の点３２６に対して計算される。オフセットの各々は、推定された三次元境界ボックス３３０の異なる３２８ａ、３２８ｂ、…、３２８ｈに対応する。
【００２４】
上述したことから認識されるように、同一の境界ボックス３３０、すなわち、同一の物体についての同一の境界ボックス３３０は、点群３０２における点ごとに推定される。また、信頼値３２２は、各々の点と関連付けられる。本開示の実装態様では、点群３０２における点の１つおよびその関連付けられたオフセット値３２０は、物体を最良に表す三次元境界ボックスとして選択されてもよい。一実施例では、最高信頼スコア３２２と関連付けられた点および対応するオフセット３２０は、三次元境界ボックスであると判定される。他の実装態様では、三次元境界ボックスを判定するために、いくつかの予め定められた数の点と関連付けられた平均値が使用されてもよい。例えば、最高信頼値を有するいくつかの予め定められた数の点と関連付けられたオフセットが平均化されてもよい。
【００２５】
絶対的な目標（absolute objective）を予測するよりも相対的な目標を予測する方が全体的に容易であることを理由に、処理３００は、各々の点に対するオフセットを推定する。例えば、都市環境内の境界ボックスを推定するケースでは、車両に取り付けられたＬＩＤＡＲセンサから境界ボックスの位置は、２メートルから１００メートルまで変化することがある。三次元境界ボックスを定義する前の試みは、ネットワークに広範囲の値を予測することを学習させることを試みている。しかしながら、処理３００は代わりに、入力点に対する角の位置を予測するようにネットワークを訓練し、それによって、目標の分散を制限している。
【００２６】
本開示の実装態様では、信頼値３２２は、スコアリング関数方程式（scoring function formulation）を使用して判定されてもよい。一実装態様では、スコアリング関数方程式は、点ごとに、点が二項分類目標（binary classification objective）を有する予測された境界ボックスの内部にあるかどうか、およびスコアが予測された確率であるかどうかを予測するようにネットワークが訓練される教師あり方程式であってもよい。別の実装態様では、スコアリング関数方程式は、信頼スコアを予測すること、および回帰損失を信頼度と乗算することを含む教師なし方程式であってもよい。いくつかの実装態様では、この損失は、回帰損失を最小化する代わりに低信頼度を予測することによって最適化されてもよい。低信頼度にペナルティを科すように低信頼損失も加算されてもよい。いくつかの実施形態では、低信頼損失は、以下の式（１）によって表されるなど、一定の重み係数による対数確率であってもよい。
Ｌ＝Ｌreg×ｃｏｎ  ｆ−ｌｏｇ（ｃｏｎ  ｆ）×ｗ                          （１）
【００２７】
この損失式では、ｗは、実験に基づいた有効性を通じて判定されてもよい任意選択の重み係数を表す。そのような重み付けは、対数関数によって提供されるような、低回帰損失を出力する圧力を有する、ネットワーク圧力（networks pressure）を、高信頼度を有するように平衡を保つことができる。教師なし方程式は、どの点が正確な境界予測を生じさせる可能性が高いかをＡＮＮ  ３１８が判定することを可能にすることができる。
【００２８】
上記議論されたように、機能３１６においてＡＮＮ  ３１８に渡される前に、画像および点群特徴が組み合わされ、例えば、連結される。融合（ｆｕｓｉｏｎ）は、全体点群特徴ベクトル３１０、点毎特徴ベクトル３１２、および外観特徴ベクトル３１４の連結であってもよい。本開示のいくつかの実装態様では、局所的融合も実行されてもよい。例えば、ＰｏｉｎｔＮｅｔからの点毎特徴ベクトルは、画像処理アルゴリズム３０８の中間層から抽出された局所的外観情報と関連付けられてもよい。特に、点群３０２における点と画像３０４内の属性（例えば、画素）との間の明確な対応関係が存在しないことがある。本開示の実装態様では、点群３０２における各々の点は、既知のカメラモデルを使用して画像面に投影されてもよい。点の周りの特徴パッチは、画像処理アルゴリズム３０８の中間層から抽出されてもよく、双線形補間を使用して固定サイズの特徴ベクトルにサイズ変更されてもよい。特徴パッチは次いで、ＡＮＮ  ３１８に入力されることになる他の特徴ベクトルと連結されてもよい。
【００２９】
図２および３の処理では、画像処理アルゴリズ２１６、３０８および／または点群処理アルゴリズム２１２、３０６の層を含む、層の各々に対してバッチ正規化（batch normalization）が実行されてもよい。バッチ正規化は、入力データ／特徴における共変量シフト（covariance shift）を効果的に減少させることができることを理由に、現代のニューラルアーキテクチャ設計において必須となっている。しかしながら、いくつかのケースでは、バッチ正規化は、ネットワークの性能を阻害することがあることが発見されている。例えば、バッチ正規化は、層への入力特徴マップが通常はいくつかのバイアス（bias）により分散されること、および共変量シフトを減少させることが望ましいことを想定している。しかしながら、点群を仮定して境界ボックスを推定するとき、本開示の実装態様にあるように、入力点群の分散は、明らかにガウスではない。境界ボックスの位置を直接予測するために点位置の数値が使用される。バッチ正規化を使用することによってなど、分散を正規化することは、そのような情報を破棄し、よって、性能を阻害する。
【００３０】
本開示の実施形態に従って、ボクセル化（voxelization）もしくは投影などの特殊な前処理を必要としないことを理由に、および／またはまばらな点群に対してロバストであることを理由に、点群データを処理する処理アルゴリズムとしてＰｏｉｎｔＮｅｔアーキテクチャが使用されてもよい。しかしながら、本開示の実施形態では、いくつかのデータの前処理が望ましいことがある。例えば、入力された点群および境界ボックスの目標の両方は、Ｚ軸に沿って中心となるように回転してもよい。一実装態様では、画像捕捉デバイスによって捕捉された画像のフレームの中心などの対象の領域の中心が判定されてもよい。対象の領域の中心は次いで、光線としてカメラフレームに投影解除されもよく（unprojected）、カメラフレームのｚ軸にこの光線を回転させる剛体回転（rigid rotation）が発見されてもよい。この回転は次いで、入力された点群および境界ボックスの目標の両方に適用されてもよい。画像にある点群のそれらの点のみが検討され（すなわち、残りは検討から破棄される）、いくつかの座標系の中心にされる。同様に、画像データは、画像データの二次元境界ボックス内に位置する画素のみが保持されるように（すなわち、残りを破棄する）切り取られてもよく、切り取られた画像が別の画像座標フレームにおいて中心となるように画像が再度中心にされてもよい。したがって、入力データは、ＡＮＮ  ３１８による検討のために正規化されてもよい。
【００３１】
図４および５は、三次元境界ボックスを示すパラメータを判定する例示的な方法４００、５００を示すフローチャートである。図４および５に示される方法４００、５００は、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実装することができる一連の動作を表す、論理フローグラフにおけるブロックの集合として示される。ソフトウェアのコンテキストでは、ブロックは、１つまたは複数のプロセッサによって（例えば、１つもしくは複数のプロセッサまたはコントローラの他の構成要素によって）実行されるとき、列挙された動作を１つまたは複数のプロセッサに実行させる、１つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、処理を実装するために、いずれかの数の説明されるブロックがいずれかの順序において、および／または並列して組み合わされてもよい。
【００３２】
本明細書で提示される主題は、コンピュータ処理、コンピュータ制御装置、コンピューティングシステム、またはコンピュータ可読記憶媒体などの製品として実装されてもよい。方法４００、５００に関して説明される主題は、１つもしくは複数のコンピューティングデバイス上でおよび／または１つもしくは複数のコンピューティングデバイスと共に実行することができる動作の全体的なコンテキストにおいて提示されるが、様々なプログラム／コントローラモジュールとの組み合わせで他の実装態様が実行されてもよいことを当業者は認識するであろう。概して、そのようなモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。
【００３３】
方法４００、５００に関して説明される主題は、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能電化製品、ミニコンピュータ、メインフレームコンピュータ、ハンドヘルドコンピュータ、携帯電話装置、タブレットコンピューティングデバイス、特殊目的ハードウェアデバイス、およびネットワークアプライアンスなどを含む、本明細書で説明される主題を超えた他のコンピュータシステム構成上でまたは他のコンピュータシステム構成と共に実施されてもよい。
【００３４】
図４に示されるように、三次元境界ボックスを判定する例示的な方法４００は、４０２において、画像データを受信することと、４０４において、点群データを受信することと、を含む。上記詳述したように、画像データは、ＲＧＢカメラなどの従来の画像捕捉デバイスからの出力を含んでもよく、点群データは、ＬＩＤＡＲ、ＲＡＤＡＲセンサ、または深度カメラ（例えば、構造化された光もしくは飛行時間（time of flight）などの三次元センサからの出力を含んでもよい。本開示の実装態様では、画像データは、環境の二次元の記述を提供し、点群データは、その環境の三次元の記述を提供する。４０２において受信された画像データおよび４０４において受信された点群データが同一の環境を記述することを理由に、２つのタイプのデータは、例えば、データを取得するために使用されるカメラおよびセンサのオフセットを説明する（account for）よう相関付けられてもよい。そのようなオフセットは、相対的な姿勢変換（pose transformation）によって定義されてもよい。
【００３５】
例示的な方法４００は、４０６において、環境内の対象の領域を判定することを含む。例えば、点群データにおける画像データによって記述された環境は、いくつかの物体を含んでもよい。例えば、環境は、車、歩行者、自転車、建物、および／または道路標識を含むことができる都市環境であってもよく、４０６において、環境内の１つの物体に対応する対象の領域が識別されてもよい。上述したように、環境内の物体を識別するシステムが既知であり、そのようなシステムは、対象の領域を判定するために使用されてもよい。いくつかの例示的な実装態様では、４０６において対象の領域を定義するために二次元境界ボックスが使用されてもよい。対象の複数の領域を含むそれらの画像について、全てのそのような対象の領域に対して以下の処理が順次または並列してのいずれかで適用されてもよい。
【００３６】
４０８において、例示的な方法４００はまた、画像を対象の領域に切り取ることを含む。このように画像を切り取ることは、切り取られた画像を提供する。例えば、切り取られた画像は、環境内の対象の物体の画像を含んでもよい。
【００３７】
例示的な方法４００はまた、４１０において、点群データおよび切り取られた画像を正規化することを含む。例えば、点群および境界ボックスの目標の両方は、切り取られてもよく（またはそうでない場合、画像における二次元境界ボックスおよび点群における関連する点内のデータのみを残すように変えられてもよい（例えば、２つのセンサの間の既知の変換を使用した再投影によって））、センサの軸、例えば、ａ〜Ｚ軸に沿って中心となるように回転してもよい。
【００３８】
４１２において、点群についての特徴ベクトル（例えば、幾何学的特徴ベクトル）が取得され、４１４において、切り取られた画像についての特徴ベクトル（例えば、外観特徴ベクトル）が取得される。上記説明されたように、点群データは、ＰｏｉｎｔＮｅｔなどの処理アルゴリズムに渡されてもよく、幾何学的特徴ベクトルは、ＰｏｉｎｔＮｅｔニューラルネットワークの層から抽出されてもよい。この例示的な実施形態では、幾何学的特徴ベクトルは、点群の全体に対応する全体特徴ベクトルであってもよい。同様に、切り取られた画像は、ＲｅｓＮｅｔ１０１などの画像処理アルゴリズムに渡されてもよく、外観特徴ベクトルは、最終残差ブロックなどの残差ネットワークの層から抽出されてもよい。
【００３９】
４１６において、例示的な方法４００では、幾何学的特徴ベクトルおよび外観特徴ベクトルは、関数によって処理され、４１８において、処理された特徴ベクトルは、機械学習アルゴリズムに渡される。４１６は、例えば、外観特徴ベクトルとの幾何学的特徴ベクトルの連結を含んでもよい。機械学習アルゴリズムは、畳み込みニューラルネットワークおよび／または複数の完全結合層などの人工ニューラルネットワークを含んでもよい。
【００４０】
例示的な方法４００はまた、４２０において、対象の物体と関連付けられた三次元境界ボックスを記述したパラメータを出力することを含む。上記説明されたように、三次元境界ボックスは、対象の物体を完全に取り囲む直方体であってもよい。この例示的な方法４００では、機械学習アルゴリズムは、点群および切り取られた画像についての三次元境界ボックスの８個の角の三次元座標を直接回帰させる。
【００４１】
図５は、三次元境界ボックスを推定する別の例示的な方法５００を示す。方法５００は、いくつかの実装態様では、図３に示された処理３００に対応する。方法５００に従って、５０２において、物体の切り取られた画像が受信され、５０４において、物体と関連付けられた点群データが受信される。上記詳述したように、切り取られた画像は、物体の周りの二次元境界ボックスの特徴の識別および／または作成の結果であってもよい。点群データは、１つまたは複数のＬＩＤＡＲ、ｒａｄａｒ、および／または例えば、点群として物体の周りの三次元情報を出力するように構成された他のセンサシステムなどの三次元センサから受信されてもよい。
【００４２】
方法５００はまた、上記説明された方法４００と同様に、５０６において、点群についての特徴ベクトル（例えば、幾何学的特徴ベクトル）を取得することと、５１０において、切り取られた画像についての外観特徴ベクトルを取得することと、を含む。しかしながら、方法４００とは異なり、方法５００はまた、５０８において、点毎特徴ベクトルを取得することを含む。図３に関連して上記説明されたように、データを点ごとにおよび全体的に検討する、順序付けられていない点群データを処理するためのニューラルネットワークが既知である。そのようなニューラルネットワークの例は、ＰｏｉｎｔＮｅｔニューラルネットワークである。いくつかの実施例では、そのような点毎特徴ベクトルおよび全体特徴ベクトルは、異なる層において同一のネットワークから抽出されてもよい。
【００４３】
方法５００はまた、５１２において、切り取られた画像の一部を各々の点と関連付けることを含む。本明細書で説明されるアーキテクチャでは、画像データおよび幾何学的データは、環境内の物体についての三次元境界ボックスを判定するように共に検討される。しかしながら、アーキテクチャは、この情報がより容易にアクセス可能であることができる事実にも関わらず、モデル内の点群と画像との間の明確な対応関係を含まないことがある。よって、５１２において、点群における各々の点は、画像面に投影されてもよい。投影されると、特徴パッチは次いで、画像処理アルゴリズムの中間層において点の周りで抽出されてもよく、パッチは、双線形補間を使用して固定サイズの特徴ベクトルにサイズ変更されてもよい。この特徴は、５０６において取得された全体点群特徴、５０８において取得された点毎特徴ベクトル、および５１０において取得された外観特徴ベクトルと連結されてもよい。他の実装態様では、特徴パッチは、点群の全体についての全体幾何学的特徴ベクトルおよび切り取られた画像についての外観特徴ベクトルと共に処理する前に、５０８において取得された点毎特徴ベクトルと連結されてもよい。
【００４４】
５１４において、特徴ベクトルは、畳み込みニューラルネットワークなどの人工ニューラルネットワークであってもよい機械学習アルゴリズムに渡される。点毎特徴ベクトルを含むことを理由に、畳み込みニューラルネットワークは、点ごとに、５１６において、三次元境界ボックスの角と関連付けられた変位またはオフセットの予測を出力し、５１８において、信頼スコアを出力する。よって、この例示的な実装態様では、点群における点ごとに、畳み込みニューラルネットワークは、点ごとの８個のオフセットパラメータを作成し、８個のオフセットパラメータの各々は、三次元境界ボックスの異なる角に対応する。信頼スコアは、０〜１に番号付けされてもよく、図３と関連して上記説明されたように、ニューラルネットワークは、信頼スコアスコアを判定するように、教師あり方式または教師なし方式のいずれかにおいて訓練されてもよい。
【００４５】
方法５００はまた、５２０において、信頼スコアに基づいて三次元境界ボックスを出力することを含む。本開示の実装態様では、三次元境界ボックスは、最高信頼スコアを有する点群における点と関連付けられたオフセットパラメータに対応してもよい。他の実装態様では、三次元境界ボックスは、点群における１つよりも多い点と関連付けられたオフセットパラメータの平均値に対応してもよい。実施例を限定しない方式によって、最高信頼スコアを有する点など、いくつかの予め定められた数の点と関連付けられたオフセットパラメータは、オフセットパラメータを判定するように平均化されてもよい。
【００４６】
図６は、発明を全体的または部分的に実装することができるコンピュータ制御システム６００を示す。コンピュータ制御システム６００は、記憶装置６０４、１つまたは複数のプロセッサ６０６、メモリ６０８、およびオペレーティングシステム６１０を含む１つまたは複数のコンピュータシステム６０２を表す。記憶装置６０４、プロセッサ（複数可）６０６、メモリ６０８、およびオペレーティングシステム６１０は、通信インフラストラクチャ６１２を通じて通信可能に結合されてもよい。任意選択で、コンピュータシステム（複数可）６０２は、Ｉ／Ｏデバイス６１４を介してユーザまたは環境と対話してもよく、通信インフラストラクチャ６１２を介してネットワーク６１６を通じて１つまたは複数の他のコンピューティングデバイスと対話してもよい。オペレーティングシステム６１０は、１つまたは複数のアプリケーション６１８を制御するように他の構成要素と対話してもよい。
【００４７】
いくつかの例では、コンピュータシステム（複数可）６０２は、本明細書で議論されるような三次元境界ボックスの推定を実行するように、いずれかのハードウェアおよび／またはソフトウェアを実装してもよい。
【００４８】
本明細書で説明されるシステムおよび方法は、ソフトウェアもしくはハードウェアまたはそれらのいずれかの組み合わせにおいて実装されてもよい。本明細書で説明されるシステムおよび方法は、相互に物理的または論理的に別個であってもよく、または別個でなくてもよい、１つまたは複数のコンピューティングデバイスを使用して実装されてもよい。方法は、オンプレミスハードウェア、オンプレミス仮想システム、またはホストされたプライベートインスタンスのいずれかとして配置された構成要素によって実行されてもよい。加えて、本明細書で説明される方法の様々な態様は、他の機能に組み合わされてもよく、または融合されてもよい。
【００４９】
本明細書で説明されるシステムおよび方法を実装するための例示的な環境およびコンピュータ制御システムが図６に示される。プロセッサまたはコンピュータシステムは、本明細書で説明される方法のいくつかまたは全てを特に実行するように構成されてもよい。いくつかの実施形態では、方法は、１つまたは複数のコンピュータまたはプロセッサによって部分的にまたは完全に自動化されるように構成されてもよい。本明細書で説明されるシステムおよび方法は、ハードウェア、ファームウェア、および／またはソフトウェアのいずれかの組み合わせを使用して実装されてもよい。本明細書で説明される本システムおよび方法（または、いずれかのそれらの部分（複数可）もしくは機能（複数可））は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを使用して実装されてもよく、１つまたは複数のコンピュータシステムまたは他の処理システムにおいて実装されてもよい。いくつかの実施形態では、示されるシステム要素は、単一のハードウェアデバイスに組み合わされてもよく、または複数のハードウェアデバイスに分離されてもよい。複数のハードウェアデバイスが使用される場合、ハードウェアデバイスは、物理的に相互に近接してまたは相互に遠隔に位置してもよい。説明され、および示される方法の実施形態は、例示的であり、限定しないことを意図している。例えば、方法のステップのいくつかまたは全ては、異なる実施形態では、組み合わされてもよく、再配置されてもよく、および／または省略されてもよい。
【００５０】
１つの例示的な実施形態では、本明細書で説明されるシステムおよび方法は、本明細書で説明される機能性を実施することが可能な１つまたは複数のコンピュータシステムに向けられてもよい。例示的なコンピューティングデバイスは、それらに限定されないがＯＳ  Ｘ（登録商標）、ｉＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、およびＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）などのいずれかのオペレーティングシステムを動作させるパーソナルコンピュータ（ＰＣ）システムであってもよいが、それに限定されない。しかしながら、本明細書で説明されるシステムおよび方法は、それらのプラットフォームに限定されなくてもよい。代わりに、本明細書で説明されるシステムおよび方法は、いずれかの適切なオペレーティングシステムを動作させるいずれかの適切なコンピュータシステム上で実装されてもよい。例えば、それらに限定されないが、双方向テレビ（ｉＴＶ）、ビデオオンデマンドを使用して、およびデジタルビデオレコーダ（ＤＶＲ）または他のオンデマンド観察システムを介して、それらに限定されないが、コンピューティングデバイス、通信デバイス、携帯電話、スマートフォン、電話装置、電話、携帯情報端末（ＰＤＡ）、パーソナルコンピュータ（ＰＣ）、ハンドヘルドＰＣ、双方向テレビ（ｉＴＶ）、デジタルビデオレコーダ（ＤＶＤ）、クライアントワークステーションシンクライアント、シッククライアント、プロキシサーバ、ネットワーク通信サーバ、リモートアクセスデバイス、クライアントコンピュータ、サーバコンピュータ、ルータ、ウェブサーバ、データ、媒体、音声、ビデオ、電話、またはストリーミング技術サーバなど、本明細書で説明されるシステムおよび方法の他の構成要素が要求に応じて設けられてもよい。
【００５１】
システムは、１つまたは複数のプロセッサを含んでもよい。プロセッサ（複数可）は、それらに限定されないが、通信バス、クロスオーババー、またはネットワークなどの通信インフラストラクチャに接続されてもよい。処理およびプロセッサは、同一の物理位置に位置する必要はない。言い換えると、処理は、例えば、ＬＡＮまたはＷＡＮ接続を通じて１つまたは複数の地理的に離れたプロセッサにおいて実行されてもよい。コンピューティングデバイスは、ディスプレイユニット上で表示するために通信インフラストラクチャからグラフィック、テキスト、および他のデータを転送することができるディスプレイインタフェースを含んでもよい。
【００５２】
コンピュータシステムはまた、それらに限定されないが、メインメモリ、ランダムアクセスメモリ（ＲＡＭ）、および二次メモリなどを含んでもよい。二次メモリは、ハードディスクドライブおよび／またはコンパクトディスクドライブＣＤ−ＲＯＭなどの着脱可能記憶ドライブを含んでもよい。着脱可能記憶ドライブは、着脱可能記憶ユニットから読み出してもよく、および／または着脱可能記憶ユニットに書き込んでもよい。認識することができるように、着脱可能記憶ユニットは、コンピュータソフトウェアおよび／またはデータを記憶しているコンピュータ使用可能記憶媒体を含んでもよい。いくつかの実施形態では、機械アクセス可能媒体は、コンピュータによってアクセス可能なデータを記憶するために使用されるいずれかの記憶装置を指してもよい。機械アクセス可能媒体の例は、例えば、磁気ハードディスク、フロッピーディスク、光ディスク、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）もしくはデジタル多用途ディスク（ＤＶＤ）など、磁気テープ、および／またはメモリチップなどを含んでもよいが、それらに限定されない。
【００５３】
プロセッサデータを記憶するための１つもしくは複数のデータ記憶装置を含んでもよく、または１つもしくは複数のデータ記憶装置と通信するように動作可能に結合されてもよい。そのようなデータ記憶装置は、非限定的な例として、磁気ディスク（内蔵ハードディスクおよび着脱可能ディスクを含む）、磁気光ディスク、光ディスク、リードオンリメモリ、ランダムアクセスメモリ、ならびに／またはフラッシュ記憶装置を含むことができる。コンピュータプログラム命令およびデータを有形的に具体化するのに適切な記憶装置はまた、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、磁気光ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む、全ての形式の不揮発性メモリを含むことができる。プロセッサおよびメモリは、ＡＳＩＣ（特定用途向け集積回路）によって補足されてもよく、またはＡＳＩＣに組み込まれてもよい。
【００５４】
処理システムは、コンピュータ制御データ記憶システムと通信することができる。データ記憶システムは、ＭｙＳＱＬ（登録商標）または他の関係データベースなど、非関係または関係データ記憶装置を含むことができる。他の物理および論理データベースタイプが使用されてもよい。データ記憶装置は、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ（登録商標）、Ｏｒａｃｌｅ（登録商標）、ＩＢＭ  ＤＢ２（登録商標）、ＳＱＬＩＴＥ（登録商標）などのデータベースサーバであってもよく、またはそうでない場合、いずれかの他のデータベースソフトウェアもしくは関係データベースソフトウェアであってもよい。データ記憶装置は、構文タグを識別する情報および構文タグに関して演算するために必要ないずれかの情報を記憶してもよい。いくつかの実施形態では、処理システムは、オブジェクト指向プログラミングを使用してもよく、データをオブジェクトに記憶してもよい。それらの実施形態では、処理システムは、データオブジェクトを関係データベースに記憶するオブジェクト関係マッパ（ＯＲＭ）を使用してもよい。本明細書で説明されるシステムおよび方法は、いずれかの数の物理データモデルを使用して実装されてもよい。１つの例示的な実施形態では、関係データベース管理システム（ＲＤＢＭＳ）が使用されてもよい。それらの実施形態では、ＲＤＢＭＳにおけるテーブルは、座標を表す列を含むことができる。経済システムのケースでは、会社、製品などを表すデータが、ＲＤＢＭＳにおけるテーブルに記憶されてもよい。テーブルは、それらの間の予め定義された関係を有することができる。テーブルはまた、座標と関連付けられた付加詞（adjunct）を有することができる。
【００５５】
代替的な例示的な実施形態では、二次メモリは、コンピュータプログラムまたは他の命令がコンピュータシステムにロードされることを可能にする他の同様のデバイスを含んでもよい。そのようなデバイスは、例えば、着脱可能記憶ユニットおよびインタフェースを含んでもよい。それらの例は、ソフトウェアおよびデータが着脱可能記憶ユニットからコンピュータシステムに転送されることを可能にすることができる、プログラムカートリッジおよびカートリッジインタフェース（例えば、それらに限定されないが、ビデオゲームデバイスにおいて見出されるものなど）、着脱可能メモリチップ（例えば、それらに限定されないが、消去可能プログラム可能リードオンリメモリ（ＥＰＲＯＭ）、またはプログラム可能リードオンリメモリ（ＰＲＯＭ）および関連するソケットなど）、ならびに他の着脱可能記憶ユニットおよびインタフェースを含んでもよい。
【００５６】
コンピューティングデバイスはまた、それらに限定されないが、マイクロフォンなどの音声入力デバイス、タッチスクリーン、カメラなどのジェスチャ認識デバイス、他の自然ユーザインタフェース、マウスまたはデジタイザなどの他のポインティングデバイス、およびキーボードまたは他のデータ入力デバイスなどの入力デバイスを含んでもよい。コンピューティングデバイスはまた、それらに限定されないが、ディスプレイおよびディスプレイインタフェースなどの出力デバイスを含んでもよい。コンピューティングデバイスは、それらに限定されないが、通信インタフェース、ケーブル、および通信経路などの入力／出力（Ｉ／Ｏ）デバイスを含んでもよい。それらのデバイスは、それらに限定されないが、ネットワークインタフェースカードおよびモデムを含んでもよい。通信インタフェース（複数可）は、ソフトウェアおよびデータがコンピュータシステムと１つまたは複数の外部デバイスとの間で転送されることを可能にすることができる。
【００５７】
１つまたは複数の実施形態では、コンピューティングデバイスは、自動車システムに動作可能に結合されてもよい。そのような自動車システムは、手動で動作し、半自律的であり、または完全に自律的であるかのいずれかであってもよい。そのような実施形態では、入力および出力デバイスは、１つもしくは複数の画像捕捉デバイス、コントローラ、マイクロコントローラ、およびそれらに限定されないが、加速化、制動、および操縦などの自動車機能を制御する他のプロセッサを含んでもよい。更に、そのような実施形態における通信インフラストラクチャはまた、コントローラエリアネットワーク（ＣＡＮ）バスを含んでもよい。
【００５８】
１つまたは複数の実施形態では、コンピューティングデバイスは、いずれかの機械視覚に基づくシステムに動作可能に結合されてもよい。例えば、機械視覚に基づくシステムは、それらに限定されないが、相互動作、半自立、または完全自律産業および農業ロボット、家庭用ロボット、調査システム、セキュリティシステムなどを含む。すなわち、本明細書で説明される実施形態は、１つの特定のコンテキストに限定されず、機械視覚を利用するいずれかのアプリケーションに適用可能であってもよい。
【００５９】
１つまたは複数の実施形態では、本実施形態は、コンピュータネットワークまたはネットワークの環境において実施されてもよい。ネットワークは、プライベートネットワークもしくはパブリックネットワーク（例えば、以下で説明されるように、インターネット）、またはその両方の組み合わせを含むことができる。ネットワークは、ハードウェア、ソフトウェア、またはその両方の組み合わせを含んでもよい。
【００６０】
電気通信指向の見方から（telecommunications-oriented view）、ネットワークは、通信設備によって各々のハードウェアノードにおいて機能する１つまたは複数のプロセス（ハードウェア、ソフトウェア、またはそれらの組み合わせ）と相互接続された各々のそのようなノードのセットとして記述されてもよい。プロセスは、プロセス間通信パスウェイ（ｐａｔｈｗａｙ）を使用して、それらの間の通信パスウェイを介して相互に情報を相互通信し、情報を交換することができる。それらのパスウェイ上で、適切な通信プロトコルが使用される。
【００６１】
本実施形態に従った例示的なコンピュータおよび／または電気通信ネットワーク環境は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを含むことができる、ノードを含んでもよい。ノードは、通信ネットワークを介して相互接続されてもよい。各々のノードは、ノードに組み込まれたプロセッサによって実行可能な１つまたは複数のプロセスを含んでもよい。例えば、単一のプロセスが複数のプロセッサによって稼働してもよく、または複数のプロセスが単一のプロセッによって稼働してもよい。加えて、ノードの各々は、ネットワークの間および外部との間の接点（ｉｎｔｅｒｆａｃｅ  ｐｏｉｎｔ）を提供することができ、サブネットワークの集合を組み込むことができる。
【００６２】
例示的な実施形態では、プロセスは、いずれかの通信プロトコルを通じて通信をサポートするプロセス管通信パスウェイを通じて相互に通信してもよい。パスウェイは、直接または並列に、継続的または断続的に機能してもよい。パスウェイは、多くのコンピュータによって使用される標準的な並列命令セットに加えて、通信ネットワークに関して本明細書で説明される通信標準、プロトコル、または技術のいずれかを使用することができる。
【００６３】
ノードは、処理機能を実行することが可能ないずれかのエンティティを含んでもよい。実施形態と共に使用することができるそのようなノードの例は、コンピュータ（パーソナルコンピュータ、ワークステーション、サーバ、もしくはメインフレームなど）、ハンドヘルド無線デバイスおよび有線デバイス（携帯情報端末（ＰＤＡ）、処理能力を有するモデム携帯電話ＢｌａｃｋＢｅｒｒｙ（登録商標）デバイスを含む無線電子メールデバイスなど）、ドキュメント処理デバイス（スキャナ、プリンタ、ファクシミリ装置、もしくは多機能ドキュメント装置など）、または説明されるプロセッサの集合が接続される複合エンティティ（ローカルエリアネットワークもしくはワイドエリアネットワーク）を含む。例えば、本開示のコンテキストでは、ノード自体は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、プライベートネットワーク（仮想プライベートネットワーク（ＶＰＮ）など）、またはネットワークの集合であってもよい。
【００６４】
ノードの間の通信は、通信ネットワークによって行われることが可能である。ノードは、継続的または断続的のいずれかで通信ネットワークと接続されてもよい。例として、本開示のコンテキストでは、通信ネットワークは、適切な帯域幅および情報セキュリティをもたらすデジタル通信インフラストラクチャであってもよい。
【００６５】
通信ネットワークは、いずれかの周波数において、いずれかのタイプの標準、プロトコル、または技術を使用した、有線通信能力、無線通信能力、またはその両方の組み合わせを含むことができる。加えて、本実施形態では、通信ネットワークは、プライベートネットワーク（例えば、ＶＰＮ）またはパブリックネットワーク（例えば、インターネット）であってもよい。
【００６６】
通信ネットワークによって使用される例示的な無線プロトコルおよび技術の非包括的なリストは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、汎用パケット無線サービス（ＧＰＲＳ）、セルラデジタルパケットデータ（ＣＤＰＤ）、モバイルソリューションプラットフォーム（ＭＳＰ）、マルチメディアメッセージング（ＭＭ）、ラジオアプリケーションプロトコル（ＷＡＰ）、符号分割多重アクセス（ＣＤＭＡ）、ショートメッセージサービス（ＳＭＳ）、無線マークアップ言語（ＷＭＬ）、ハンドヘルドデバイスマークアップ言語（ＨＤＭＬ）、無線のためのバイナリランタイム環境（ＢＲＥＷ）、無線アクセスネットワーク（ＲＡＮ）、およびパケットスイッチドコアネットワーク（ＰＳ−ＣＮ）を含んでもよい。また、含まれるのは、様々な世代の無線技術である。通信ネットワークによって使用される主要な有線プロトコルおよび技術の例示的な非包括的なリストは、非同期転送モード（ＡＴＭ）、拡張内部ゲートウェイルーティングプロトコル（ＥＩＧＲＰ）、フレームリレー（ＦＲ）、高レベルデータリンク制御（ＨＤＬＣ）、インターネット制御メッセージプロトコル（ＩＣＭＰ）、内部ゲートウェイルーティングプロトコル（ＩＧＲＰ）、インターネットワークパケット交換（ＩＰＸ）、ＩＳＤＮ、ポイントツーポイントプロトコル（ＰＰＰ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ルーティング情報プロトコル（ＲＩＰ）、およびユーザデータグラムプロトコル（ＵＤＰ）を含む。当業者が理解するように、いずれかの他の既知のまたは予期された無線または有線プロトコルおよび技術が使用されてもよい。
【００６７】
本開示の実施形態は、本明細書における動作を実行する装置を含んでもよい。装置は特に、所望の目的のために構築されてもよく、またはデバイスに記憶されたプログラムによって選択的に活性化され、または再構成される汎用デバイスを含んでもよい。
【００６８】
１つまたは複数の実施形態では、本実施形態は、機械実行可能命令において具体化される。命令は、命令によりプログラムされた、処理デバイス、例えば、汎用または特殊目的プロセッサに、本開示のステップを実行させるために使用されてもよい。代わりに、本開示のステップは、本開示のステップを実行するためのハードワイヤドロジックを含む特定のハードウェア構成要素によって、またはプログラムされたコンピュータ構成要素およびカスタムハードウェア構成要素のいずれかの組み合わせによって実行されてもよい。例えば、本開示は、上記述べられたように、コンピュータプログラム製品として提供されてもよい。この環境では、実施形態は、それに記憶された命令を有する機械可読媒体を含むことができる。命令は、例示的な本実施形態に従って処理または方法を実行するよういずれかのプロセッサ（または、他の電子デバイス）をプログラムするために使用されてもよい。加えて、本開示はまた、コンピュータプログラム製品上でダウンロードおよび記憶されてもよい。ここで、プログラムは、搬送波において具体化されたデータ信号または通信リンク（例えば、モデムもしくはネットワーク接続）を介した他の伝播媒体によってリモートコンピュータ（例えば、サーバ）から要求しているコンピュータ（例えば、クライアント）に転送されてもよく、最終的にそのような信号は、後続の実行のためにコンピュータシステムに記憶されてもよい。
【００６９】
方法は、コンピュータもしくはいずれかの命令実行システムによる使用のために、またはコンピュータもしくはいずれかの命令実行システムと関連した使用のためにプログラムコードを提供するコンピュータ使用可能またはコンピュータ可読記憶媒体からアクセス可能なコンピュータプログラム製品において実装されてもよい。コンピュータ使用可能またはコンピュータ可読記憶媒体は、コンピュータ、または命令実行システム、装置、もしくはデバイスによる使用のために、またはコンピュータ、または命令実行システム、装置、もしくはデバイスと関連した使用のためにプログラムを包含または記憶することができるいずれかの装置であってもよい。
【００７０】
対応するプログラムコードを記憶および／または実行するのに適切なデータ処理システムは、メモリ要素などのコンピュータ制御されたデータ記憶装置に直接または間接的に結合された少なくとも１つのプロセッサを含むことができる。入力／出力（Ｉ／Ｏ）デバイス（それらに限定されないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む）は、システムに結合されてもよい。データ処理システムが仲介するプライベートまたはパブリックネットワークを通じて他のデータ処理システムまたはリモートプリンタもしくは記憶装置に結合されことを可能にするために、ネットワークアダプタもシステムに結合されてもよい。ユーザとの対話をもたらすために、ＬＣＤ（液晶ディスプレイ）などのディスプレイデバイスまたはユーザに情報を表示するための別のタイプモニタ、ならびにキーボード、およびそれによってユーザがコンピュータに入力を提供することができるマウスまたはトラックボールなどの入力デバイスを有する機構がコンピュータ上で実装されてもよい。
【００７１】
コンピュータプログラムは、コンピュータにおいて直接または間接的に使用することができる命令セットであってもよい。本明細書で説明されるシステムおよび方法は、ＣＵＤＡ、ＯｐｅｎＣＬ、Ｆｌａｓｈ（登録商標）、ＪＡＶＡ（登録商標）、Ｃ＋＋、Ｃ、Ｃ＃、Ｐｙｔｈｏｎ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＰＨＰ、ＸＭＬ、ＨＴＭＬなどのプログラミング言語、またはコンパイル型言語もしくはインタプリタ型言語を含むプログラミング言語の組み合わせを使用して実装されてもよく、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に適切な他のユニットとシテを含む、いずれかの形式において配列されてもよい。ソフトウェアは、それらに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができる。プログラミングモジュールの間のインタフェースを実装する際に、ＳＯＡＰ／ＨＴＴＰなどのプロトコルが使用されてもよい。本明細書で説明される構成要素および機能性は、それらに限定されないが、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ（登録商標）Ｍａｃ、ｉＯＳ（登録商標）、Ｕｎｉｘ（登録商標）／Ｘ−Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）などの異なるバージョンを含む、ソフトウェア開発に適切ないずれかのプログラミング言語を使用して仮想環境または非仮想環境において実行するいずれかのデスクトップオペレーティングシステム上で実装されてもよい。システムは、Ｒｕｂｙ  ｏｎ  Ｒａｉｌなどのウェブアプリケーションフレームワークを使用して実装されてもよい。
【００７２】
命令のプログラムの実行に適切なプロセッサは、それらに限定されないが、いずれかの種類のコンピュータの、汎用および特殊目的マイクロプロセッサ、ならびに単一のプロセッサまたは複数のプロセッサもしくはコアの１つを含む。プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、その両方、または本明細書で説明されるデータ記憶装置のいずれかの組み合わせなどのコンピュータ制御されたデータ記憶装置から命令およびデータを受信および記憶してもよい。プロセッサは、電子デバイスの動作および性能を制御するよう動作可能である処理回路または制御回路を含んでもよい。
【００７３】
本明細書で説明されるシステム、モジュール、および方法は、ソフトウェアまたはハードウェア要素のいずれかの組み合わせを使用して実装されてもよい。本明細書で説明されるシステム、モジュール、および方法は、単独または相互に組み合わせて動作する１つまたは複数の仮想マシンを使用して実装されてもよい。ハードウェアコンピューティングプラットフォームまたはホスト上で稼働する仮想化ソフトウェアの制御の下で実行される仮想マシンに物理コンピューティングマシンプラットフォームをカプセル化するために、いずれかの適用可能な仮想化ソリューションが使用されてもよい。仮想マシンは、仮想システムハードウェアおよびゲストオペレーティングシステムソフトウェアの両方を有してもよい。
【００７４】
本明細書で説明されるシステムおよび方法は、データサーバなどのバックエンドコンポーネントを含み、アプリケーションサーバもしくはインターネットサーバなどのミドルウェアコンポーネントを含み、またはグラフィカルユーザインタフェース、インターネットブラウザ、もしくはそれらのいずれかの組み合わせを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピュータシステムにおいて実装されてもよい。システムのコンポーネントは、通信ネットワークなどのデジタルデータ通信のいずれかの形式または媒体によって接続されてもよい。通信ネットワークの例は、例えば、ＬＡＮ、ＷＡＮ、ならびにインターネットを形成するコンピュータおよびネットワークを含む。
【００７５】
本開示の１つまたは複数の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースもしくはプログラム可能家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成により実施されてもよい。本明細書で説明されるシステムおよび方法はまた、ネットワークを通じてリンク付けされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施されてもよい。
【００７６】
用語「コンピュータプログラム媒体」および「コンピュータ可読媒体」は、それらに限定されないが、着脱可能記憶ドライブ、ハードディスクドライブ内に設置されたハードディスクなどの媒体を一般的に指すために使用されてよい。それらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステムに提供することができる。本明細書で説明されるシステムおよび方法は、そのようなコンピュータプログラム製品に向けられてもよい。
【００７７】
「一実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」などに対する言及は、本開示の実施形態が、特定の特徴、構造、または特性を含んでもよいが、あらゆる実施形態が、特定の特徴、構造、または特性を必ずしも含むわけではないことを示してもよい。更に、「一実施形態では」または「例示的な実施形態にでは」という句の繰り返される使用は、同一の実施形態を必ずしも指しているわけではないが、同一の実施形態を指してもよい。同様に、「例」に対する言及は、本開示の様々な例が、特定の特徴、構造、または特性を含んでもよいが、あらゆる例が、特定の特徴、構造、または特性を必ずしも含むわけではないことを示してもよい。更に、「いくつかの例では」という句の繰り返される使用は、同一の例を必ずしも指しているわけではないが、同一の例を指してもよい。
【００７８】
説明および特許請求の範囲では、用語「結合される」および「接続される」は、それらの派生形と共に使用されてよい。それらの用語は、互いに同義語として意図されていなくてよいことが理解されるべきである。むしろ、特定の実施形態においては、「接続される」は、２つ以上の要素が、互いに物理的または電気的に直接接触していることを示すために使用されてよい。「結合される」は、２つ以上の要素が、物理的または電気的に直接接触していることを意味してもよい。しかしながら、「結合される」は、２つ以上の要素が、互いに直接接触しておらず、それでもなお、互いに協働して動作し、または相互作用することを意味してもよい。
【００７９】
ここでは、また一般に、アルゴリズムは、所望の結果にいたる、動作の首尾一貫した連続であると見なされてよい。これらは、物理量の物理的動作を含む。必ずではないが、通常、これらの量は、記憶され、転送され、組み合わされ、比較され、他の方法でオペレーションされることが可能な、電気または磁気信号の形態を取る。主として、共通使用の理由で、これらの信号を、ビット、値、要素、シンボル、文字、項、または数などと呼ぶことが、時には便利であることが分かっている。しかしながら、これらおよび類似の用語のすべては、適切な物理量と関連付けられるべきであり、これらの量に適用される便利なラベルにすぎないことが、理解されるべきである。
【００８０】
特に別段の指摘がない限り、本明細書全体において、用語「処理する」、「計算する」、「算定する」、または「決定する」などは、コンピューティングシステムのレジスタおよび／またはメモリ内の電子的などの物理量として表されるデータを演算および／または変換して、コンピュータシステムのメモリ、レジスタ、または他のそのような情報記憶、伝送、もしくは表示デバイス内の物理量として同様に表される他のデータにする、コンピュータもしくはコンピューティングシステム、または類似の電子コンピューティングデバイスの、動作および／または処理を指すことが、理解されてよい。
【００８１】
同様の方式で、用語「プロセッサ」は、レジスタおよび／またはメモリからの電子データを処理して、その電子データを、レジスタおよび／またはメモリ内に記憶されてよい他の電子データに変換する、任意のデバイス、またはデバイスの一部を指してよい。非限定的な例として、「プロセッサ」は、中央処理ユニット（ＣＰＵ）、またはグラフィカル処理ユニット（ＧＰＵ）であってよい。「コンピューティングプラットフォーム」は、１つまたは複数のプロセッサを備えてよい。本明細書において使用されるとき、「ソフトウェア」プロセスは、例えば、タスク、スレッド、およびインテリジェントエージェントなどの、経時的に仕事を実行するソフトウェアエンティティおよび／またはハードウェアエンティティを含んでよい。また、各プロセスは、命令を順次的または並列的、連続的または断続的に実施するための、多数のプロセスを指してよい。「システム」および「方法」という用語は、システムが１つまたは複数の方法を具体化してよく、方法がシステムと見なされてよい限り、本明細書においては、交換可能に使用される。
【００８２】
１つまたは複数の実施形態が、説明されたが、それらの様々な改変、追加、置換、および均等物が、本開示の範囲内に含まれる。
【００８３】
実施形態の説明において、それの一部を形成する添付の図面に対する参照が行われ、それは、特許請求される発明の特定の実施形態を実例として示している。他の実施形態が使用されてよく、構造的変更などの変更または改変が行われてよいことが、理解されるべきである。そのような実施形態、変更または改変は、意図された特許請求される発明に関する範囲からの逸脱であるとは限らない。ステップは、本明細書においては、ある順序で提示されてよいが、いくつかのケースにおいては、順序付けは、ある入力が、説明されるシステムおよび方法の機能を変更することなく、異なる時間に、または異なる順序で、提供されるように、変更されてよい。開示される手順も、異なる順序で実行されることができる。加えて、本明細書における様々な計算は、開示された順序で実行される必要はなく、計算の代替的な順序付けを使用する他の実施形態が、容易に実施されることができる。並べ替えられるのに加えて、計算は、同じ結果を有するサブ計算に分解されることもできる。
【００８４】
上の議論は、説明される技法の例示的な実施について説明するが、他のアーキテクチャが、説明される機能性を実施するために使用されてよく、それは、本開示の範囲内にあることが意図されている。更に、議論の目的で、上では、責務の特定の分配が定義されたが、様々な機能および責務は、状況に応じて、異なる方法で、分配され、分割されてよい。
【００８５】
更に、本発明は、構造的特徴および／または方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定義される本発明は、説明された特定の特徴または動作に必ずしも限定されないことが、理解されるべきである。むしろ、特定の特徴または動作は、特許請求の範囲を実施する例示的な形態として開示されている。
【００８６】
例示的な条項
Ａ：三次元境界ボックスを推定するシステムであって、前記システムは、１つまたは複数のプロセッサによって実行されるとき、前記システムに、画像捕捉デバイスから捕捉された画像を受信することと、前記画像内の物体を検出することと、前記画像を切り取って前記物体を含む切り取られた画像を形成することと、前記物体と関連付けられた点群データを受信することと、前記点群データと関連付けられた第１の特徴ベクトルを判定することであって、前記第１の特徴ベクトルは、幾何学的特徴ベクトルを含む、ことと、前記切り取られた画像と関連付けられた第２の特徴ベクトルを判定することであって、前記第２の特徴ベクトルは、外観特徴ベクトルを含む、ことと、前記第１の特徴ベクトルおよび前記第２の特徴ベクトルをニューラルネットワークに渡すことと、前記ニューラルネットワークから、前記物体と関連付けられた三次元境界ボックスを記述した座標を受信することと、を実行させる命令を含む非一時的コンピュータ可読媒を含む。
【００８７】
Ｂ：前記命令は更に、前記システムに、複数の第３の特徴ベクトルを判定することであって、前記複数の第３の特徴ベクトルの１つ目は、前記点群データにおける第１の点に対応し、前記複数の第３の特徴ベクトルの２つ目は、前記点群データにおける第２の点に対応する、ことと、前記第１の複数の特徴ベクトルおよび前記第２の複数の特徴ベクトルと共に前記複数の第３の特徴ベクトルを前記ニューラルネットワークに渡すことと、前記第１の点に対し、オフセットの第１の組および第１の信頼スコアを判定することであって、前記オフセットの第１の組は、前記第１の点に対する前記三次元境界ボックスの角の第１の推定された部分に対応する、ことと、前記第２の点に対し、オフセットの第２の組および第２の信頼スコアを判定することであって、前記オフセットの第２の組は、前記第２の点に対する前記三次元境界ボックスの前記角の第２の推定された部分に対応する、ことと、を実行させ、前記システムは、前記第１の信頼スコアが前記第２の信頼スコアよりも高いときに前記第１の推定された部分に対応する座標を受信し、前記システムは、前記第２の信頼スコアが前記第１の信頼スコアよりも高いときに前記第２の推定された部分に対応する座標を受信する、段落Ａに記載のシステム。
【００８８】
Ｃ：前記命令は、前記システムに、未加工の点群データを処理するように構成された点群ニューラルネットワークの処理層から前記第１の特徴ベクトルを抽出させ、前記命令は、前記システムに、残差学習ニューラルネットワークから前記第２の特徴ベクトルを抽出させる、段落Ａまたは段落Ｂに記載のシステム。
【００８９】
Ｄ：前記ニューラルネットワークは、完全結合層の１つまたは複数を含む、段落Ａ乃至段落Ｃのいずれかの１つに記載のシステム。
【００９０】
Ｅ：前記命令は更に、前記システムに、前記点群データを原点に変換することによって前記点群データを正規化させる、段落Ａ乃至段落Ｄのいずれかの１つに記載のシステム。
【００９１】
Ｆ：前記座標は、８個の点を含み、前記８個の点の各々は、前記三次元境界ボックスのそれぞれの角と関連付けられている、段落Ａ乃至段落Ｅのいずれかの１つに記載のシステム。
【００９２】
Ｇ：前記第１のニューラルネットワークは、点が三次元境界ボックスの内部にあり、または前記三次元境界ボックスの外側にあるかどうかを識別するデータセットを使用して、教師あり方式において訓練される、段落Ａ乃至段落Ｆのいずれかの１つに記載のシステム。
【００９３】
Ｈ：前記第１のニューラルネットワークは、前記境界ボックスに対する回帰損失を含む境界ボックス損失関数を使用して訓練される、段落Ａ乃至段落Ｇのいずれかの１つに記載のシステム。
【００９４】
Ｉ：前記命令は更に、前記システムに、前記第１の点と関連付けられた前記切り取られた画像の第１の部分を判定させ、前記第２の点と関連付けられた前記切り取られた画像の第２の部分を判定させ、前記第１の部分または前記第２の部分のうちの少なくとも１つは、少なくとも部分的に双線形補間を使用して判定される、段落Ａ乃至段落Ｈのいずれかの１つに記載のシステム。
【００９５】
Ｊ：環境内の物体の三次元境界ボックスを推定する例示的なコンピュータによって実行される方法であって、画像捕捉デバイスから前記環境の画像を受信するステップと、前記環境と関連付けられた点群データを受信するステップであって、前記点群データは、複数の点を含む、ステップと、前記画像内の物体を検出するステップと、前記画像を切り取って前記物体の画像を含む切り取られた画像を形成するステップと、前記切り取られた画像を第１のニューラルネットワークに入力するステップと、前記点群を第２のニューラルネットワークに入力するステップと、前記第１のニューラルネットワークから前記切り取られた画像と関連付けられた外観特徴ベクトルを抽出するステップと、前記第２のニューラルネットワークから前記点群データと関連付けられた全体幾何学的特徴ベクトルを抽出するステップと、前記第２のニューラルネットワークから複数の点毎幾何学的特徴ベクトルを抽出するステップであって、前記点毎幾何学的特徴ベクトルの個々は、前記複数の点の個々と関連付けられている、ステップと、前記外観特徴ベクトル、前記全体幾何学的特徴ベクトル、および前記複数の点毎幾何学的特徴ベクトルを第３のニューラルネットワークに入力するステップと、前記第３のニューラルネットワークから前記物体の三次元境界ボックスと関連付けられた情報を受信するステップと、を備えたコンピュータによって実行される方法。
【００９６】
Ｋ：前記三次元境界ボックスと関連付けられた前記情報を受信する前記ステップは、前記点群における点に対する複数の変位を受信することを含み、前記変位は、前記三次元境界ボックスの角に対応する、段落Ｊに記載のコンピュータによって実行される方法。
【００９７】
Ｌ：前記第３のニューラルネットワークは、前記点群における点ごとに、複数のオフセットおよび信頼スコアを判定し、前記オフセットは、それぞれの点に対する前記三次元境界ボックスの推定された角からの変位を含み、前記三次元境界ボックスを受信する前記ステップは、最高信頼スコアを有する点と関連付けられたパラメータを受信することを含む、段落Ｊまたは段落Ｋに記載のコンピュータによって実行される方法。
【００９８】
Ｍ：前記第３のニューラルネットワークは、前記境界ボックスに対する回帰損失を含む境界ボックス損失関数を使用して訓練される、段落Ｊ乃至段落Ｌのいずれかの１つに記載のコンピュータによって実行される方法。
【００９９】
Ｎ：前記第３のニューラルネットワークは、点が三次元境界ボックスの内部にあり、または前記三次元境界ボックスの外側にあるかどうかのインジケーションを使用して、教師あり方式において訓練される、段落Ｊ乃至段落Ｍのいずれかの１つに記載のコンピュータによって実行される方法。
【０１００】
Ｏ：前記画像の外観特徴ベクトル、前記全体幾何学的特徴ベクトル、および前記複数の点毎幾何学的特徴ベクトルを第３のニューラルネットワークに入力する前記ステップは、前記点毎幾何学的特徴ベクトルの各々の個々を前記全体幾何学的特徴ベクトルと連結することを含む、段落Ｊ乃至段落Ｎのいずれかの１つに記載のコンピュータによって実行される方法。
【０１０１】
Ｐ：三次元境界ボックスを推定する例示的なシステムであって、自律車両と、前記自律車両と関連付けられ、前記自律車両の環境内の画像を捕捉するように構成された画像捕捉デバイスと、前記自律車両と関連付けられ、前記環境に対応する点群データを出力するように構成されたセンサと、１つまたは複数のプロセッサと、命令を含む非一時的コンピュータ可読媒体と、を備え、前記命令は、前記１つまたは複数のプロセッサによって実行されるとき、前記システムに、前記画像捕捉デバイスによって捕捉された画像を受信することと、前記画像内の物体を検出することと、前記画像を切り取って前記物体を含む切り取られた画像を形成することと、点群データを受信することと、前記点群データと関連付けられた第１の特徴ベクトルを判定することと、前記切り取られた画像と関連付けられた第２の特徴ベクトルを判定することと、前記第１の特徴ベクトルおよび前記第２の特徴ベクトルをニューラルネットワークに渡すことと、前記ニューラルネットワークから、前記物体についての三次元境界ボックスと関連付けられた座標を受信することと、を実行させる。
【０１０２】
Ｑ：前記命令は更に、前記システムに、複数の第３の特徴ベクトルを判定することであって、前記複数の第３の特徴ベクトルの１つ目は、前記点群データにおける第１の点に対応し、前記複数の第３の特徴ベクトルの２つ目は、前記点群データにおける第２の点に対応する、ことと、前記第１の複数の特徴ベクトルおよび前記第２の複数の特徴ベクトルと共に前記複数の第３の特徴ベクトルを前記ニューラルネットワークに渡すことと、前記第１の点に対し、オフセットの第１の組および第１の信頼スコアを判定することであって、前記オフセットの第１の組は、前記第１の点に対する前記三次元境界ボックスの角の第１の推定された部分に対応する、ことと、前記第２の点に対し、オフセットの第２の組および第２の信頼スコアを判定することであって、前記オフセットの第２の組は、前記第２の点に対する前記三次元境界ボックスの前記角の第２の推定された部分に対応する、ことと、を実行させ、前記システムは、前記第１の信頼スコアが前記第２の信頼スコアよりも高いときに前記第１の推定された部分に対応する座標を受信し、前記システムは、前記第２の信頼スコアが前記第１の信頼スコアよりも高いときに前記第２の推定された部分に対応する座標を受信する、段落Ｐに記載のシステム。
【０１０３】
Ｒ：前記画像捕捉デバイスは、ＲＧＢ画像を捕捉するように構成されたカメラを含み、前記センサは、ＬＩＤＡＲセンサまたはＲＡＤＡＲセンサを含み、前記センサからの前記ＲＧＢ画像および前記点群データは、調整される（aligned）、段落Ｐまたは段落Ｑに記載のシステム。
【０１０４】
Ｓ：前記命令は更に、前記システムに、前記第１の点と関連付けられた前記切り取られた画像の第１の部分を判定させ、前記第２の点と関連付けられた前記切り取られた画像の第２の部分を判定させる、段落Ｐ乃至段落Ｒのいずれかの１つに記載のシステム。
【０１０５】
Ｔ：前記命令は更に、前記システムに、未加工の点群データを処理するように構成された点群ニューラルネットワークから前記第１の特徴ベクトルを抽出することによって前記第１の特徴ベクトルを判定することと、残差学習ネットワークから前記第２の特徴ベクトルを抽出することによって前記第２の特徴ベクトルを判定することと、を実行させる、段落Ｐ乃至段落Ｓのいずれかの１つに記載のシステム。
【図１】
2020534617.tif 000003
【図２】
2020534617.tif 000004
【図３】
2020534617.tif 000005
【図４】
2020534617.tif 000006
【図５】
2020534617.tif 000007
【図６】
2020534617.tif 000008
【国際調査報告】
2020534617.tif 000009
2020534617.tif 000010