添付の図面に関連して以下に記載される詳細な説明は、様々な構成の説明として意図されており、本明細書で説明される概念が実施され得る唯一の構成を表すことを意図されていない。詳細な説明は、様々な概念の完全な理解を提供する目的のための特定の項目要素を含む。しかしながら、これらの概念がこれらの具体的な項目要素なしに実施されてもよいことは当業者には明らかであろう。いくつかの事例では、そのような概念を曖昧にすることを避けるために、よく知られている構成要素がブロック図形式で示される。
自律走行車両の位置推定及び地図生成は、画像入力(例えばカメラから)及び光センサ入力(例えば光検出及び距離測定(LIDAR)装置から)等の複数の入力ソースからの入力を使用して行われる。例えば、複数の入力ソースは、入力を同時に分析することができるように、同様の時点、場所等における入力をキャプチャし、及び/又はキャプチャした入力を関連付ける。一例では、車両等の試験装置は、カメラ及びLIDAR装置を備え、車両が経路に沿って移動しながら、画像及びポイントクラウドをキャプチャすることができる。画像及びポイントクラウドは同時に解析されて、ポイントクラウドマップ及び/又は自律走行車両の移動軌跡/オドメトリを生成することができる。例えば、画像及びポイントクラウドを分析して、ポイントクラウドマップ及び/又は自律走行車両の移動軌跡/オドメトリを生成することができる。画像及びポイントクラウドを分析しながら、ポイントクラウド内の自動車、歩行者、自転車、又は動物等の動的な交通参加者の特定及びラベル付けが、画像からのラベルに基づいて、実行される。さらに、動的な交通参加者は、ポイントクラウドから削除され、位置推定と地図生成の同時実行(SLAM)からより正確な結果が得られる。
以下は、本明細書中で使用される選択用語の定義を含む。定義は、用語の範囲に入ると共に実施のために使用され得る構成要素の様々な例及び/又は形態を含む。これらの例は限定しようとするものではない。
本明細書中で使用される「バス」という用語は、単一又は複数のシステム内のコンピュータ構成要素間でデータを転送するために動作可能に接続される相互接続アーキテクチャを指すことができる。バスは、数ある中でもとりわけ、メモリバス、メモリコントローラ、ペリフェラルバス、外部バス、クロスバースイッチ、及び/又は、ローカルバスであってもよい。また、バスは、とりわけ、コントローラ・エリア・ネットワーク(CAN)、ローカル相互接続ネットワーク(LIN)等のプロトコルを使用して車両内の構成要素を相互接続する車両バスであってもよい。
本明細書中で使用される「メモリ」という用語は、揮発性メモリ及び/又は不揮発性メモリを含むことができる。不揮発性メモリとしては、例えば、リードオンリーメモリ(ROM)、プログラマブルリードオンリーメモリ(PROM)、消去可能PROM(EPROM)、及び、電気的消去可能PROM(EEPROM)を挙げることができる。揮発性メモリとしては、例えば、ランダムアクセスメモリ(RAM)、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、及び、ダイレクトRAMバスRAM(DRRAM)を挙げることができる。
本明細書中で使用される「動作可能接続」という用語は、それによって実在物(entity)が「動作可能に接続される」接続を含むことができ、信号、物理的通信、及び/又は、論理的通信を送る及び/又は受けることができるものである。動作可能接続としては、物理インターフェース、データインターフェース、及び/又は、電気インターフェースを挙げることができる。
本明細書中で使用される「プロセッサ」という用語は、信号を処理して一般的なコンピューティング機能及び演算機能を果たすデバイスを指すことができる。プロセッサにより処理される信号としては、デジタル信号、データ信号、コンピュータ命令、プロセッサ命令、メッセージ、ビット、ビットストリーム、又は、受信され、送信され、及び/又は、検出され得る他のコンピューティングを挙げることができる。プロセッサとしては、例えば、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、ゲーテッドロジック、ディスクリートハードウェア回路、システムオンチップ(SoC)及び、本明細書中に記載される様々な機能を果たすように構成される他の適したハードウェアを挙げることができる。
システムのいくつかの態様が、種々の装置及び方法を参照して提示される。これらの装置及び方法は、以下の詳細な説明で説明され、様々なブロック、モジュール、構成要素、回路、ステップ、プロセス、アルゴリズム等(まとめて「要素」と呼ばれる)によって添付の図面に示される。これらの要素は、電子ハードウェア、コンピュータソフトウェア、又はそれらの任意の組み合わせを使用して実装することができる。そのような要素がハードウェア又はソフトウェアとして実装されるかどうかは、特定の用途及びシステム全体に課される設計上の制約に依存する。
例として、要素、要素の任意の部分、又は要素の任意の組み合わせは、1又は複数のプロセッサを含む「処理システム」を用いて実装することができる。処理システム内の1又は複数のプロセッサがソフトウェアを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語等と呼ばれるかどうかとは関係なく、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行のスレッド、手順、機能等を意味するように広く解釈される。
従って、1つ又は複数の態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装することができる。ソフトウェアで実施される場合、これらの機能は、コンピュータ可読媒体上の1又は複数の命令又はコード上に格納されるか、又はコード化される。コンピュータ可読媒体は、コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスすることができる任意の利用可能な媒体とすることができる。限定はされないが、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、又は所望のプログラムコードを命令又はデータ構造の形で保持又は記憶するために使用することが可能であり、コンピュータによってアクセスすることができる任意の他の媒体を含む。
図1は、本明細書に記載の実施形態による、自律走行車両の位置推定及び地図生成のためのシステム100の一例の概略図を示す。システム100の構成要素、並びに本明細書で説明される他のシステムの構成要素、ハードウェアアーキテクチャ及びソフトウェアアーキテクチャは、本開示の様々な態様のために、組み合わせる、省略する、又は編成することによって、異なるアーキテクチャを構成することができる。しかしながら、本明細書で説明される例示的な態様及び構成は、対応するシステム構成要素及び関連する方法と共に、図1に示されるようなシステム100に焦点を合わせる。
図1に示されるように、システム100は、本明細書で説明される特定の動作を実行するために通信する1又は複数のプロセッサ102及び1又は複数のメモリ104を含むか又はそれらと動作可能に結合される(或いは該プロセッサ及び該メモリによって実行される)。例えば、1又は複数のプロセッサ102及び/又は1又は複数のメモリ104は、3次元(3D)ポイントクラウドマップ及び自律走行車両運動軌跡/オドメトリ等の位置推定/地図生成情報を生成するための位置推定・地図生成部106、1又は複数の画像を(例えばカメラ110から)受信するための画像部108、(例えば、LIDAR114装置から)1又は複数のポイントクラウドを受信するためのポイントクラウド部112、及び/又は、システム100の位置に関連する(例えば、及び/又は画像及び/又はポイントクラウド入力に対応する)1又は複数のパラメータを受け取るための位置推定部116、を実現するために、命令パラメータ等を実行及び/又は記憶する。プロセッサ102、メモリ104、上記機能部106、108、112、116等の様々なものは、バス118を介して動作可能に結合される。他の例では、プロセッサ102は、本明細書に記載の機能を実行するために様々な機能部106、108、112、116のうちの1又は複数を実行することができ、バス118を介して、メモリ104及び/又は他の構成要素に動作可能に結合される。
一例では、位置推定・地図生成部106は、画像入力及びポイントクラウド入力に基づいてポイントクラウド内のオブジェクトを検出するための3D検出部120、ポイントクラウドから動的な交通参加者を除去するための動的交通参加者除去部122、及び/又は動的な交通参加者が除去された状態のポイントクラウドに対して、SLAMオペレーションを実行するためのSLAM部124、を含む。
一態様では、システム100は、その全部又は一部が、経路を走行する車両内で使用される。他の例では、システム100は、車両と1又は複数の遠隔装置との間に分散されてもよい(例えば、カメラ110又はLIDAR114は、車両上に配置し、一方、位置推定・地図生成部106等の1又は複数の機能部は、1又は複数の遠隔配置されたコンピュータに分散配置されてもよい)。これに関して、例えば、カメラ110、LIDAR114等からの入力の処理は、車両で行ってもよいし、或いは、位置推定及び地図生成を実行する遠隔配置された装置で行ってもよい。一態様では、いずれの場合も、位置推定・地図生成部106は、表示及び/又はさらなる処理のために、3Dポイントクラウドマップ及び/又は自律走行車両の軌跡/オドメトリ等の位置推定・地図生成情報を、ネットワーク140を介して、1又は複数の他の装置に提供することができる。
ここで、図1で例示されるシステム100と併せて図2を参照して、位置推定及び地図生成のための例示的方法200が説明される。一態様では、方法200は、システム100の1又は複数のプロセッサ102及び/又はメモリ104によって実行することができ、これらは、上述のように、車両に配置されるか、又は、種々の場所に分散配置される。これに関して、1又は複数のブロックは、位置推定・地図生成情報を生成するために、車両において又は離れた場所において(例えば、全体が又は一部が)実行される。
ブロック202において、本方法は、画像を取得することを含む。一態様では、画像部108が、カメラ(例えばカメラ110)を介して画像を取得する。例えば、カメラ110は、経路に沿って移動する車両に配置されてもよく、周期的に画像をキャプチャするように及び/又は毎秒一定フレーム数(FPS)でビデオをキャプチャするように構成される。カメラ110は、画像/ビデオをローカルに及び/又はメモリ104に保存し、及び/又は画像/ビデオを遠隔装置に提供することができ、そこから画像部108は、画像を受け取ることができる。さらに、例えば、位置推定部116は、画像に関連する位置を決定する。この決定は、画像がカメラ110で撮影された時点で又はその時点近傍で、該カメラ110を有する車両の全地球測位システム(GPS)座標を取得することを含む。一態様では、位置推定部116は、画像を処理する際に該画像に対して位置を決定することができるように、(例えば、画像メタデータ又はリレーショナルストレージ(relational storage)で)GPS座標を画像に関連付ける。
ブロック204において、本方法200は、画像に対してセマンティックセグメンテーション(semantic segmentation)を実行することを含む。一態様では、位置推定・地図生成部106が、画像に対してセマンティックセグメンテーションを実行する。例えば、3D検出部120は、拡張された畳み込み(dilated convolutional)セマンティックセグメンテーションニューラルネットワークを画像に適用して、画素の少なくとも一部を1又は複数のセマンティックな予測と関連付けることによって、画像に対して、セマンティックセグメンテーションを実行する。一態様では、3D検出部120が、拡張された畳み込みセマンティックセグメンテーションニューラルネットワークを適用する。物体(オブジェクト)認識は、シーンのより正確な視覚的表現に基づいた(例えば、ポイントクラウドドメインとは対照的に)画像ドメインにおいて、より正確になる。従って、3D検出部120は、拡張された畳み込みセマンティックセグメンテーションニューラルネットワークを画像に適用して、密な画素単位のセマンティックカテゴリ予測を出力することができる。例えば、セマンティックセグメンテーションを適用することからの出力は、画素に対する色値を、セマンティックセグメンテーションにおけるオブジェクト定義に基づいて検出オブジェクトに対応させて色値で置き換えた画像と、類似の形状及び輪郭を有するように見える。従って、例えば、画素の一群に対応するセマンティックカテゴリは、画素色値に基づいて決定され、オブジェクトの特定のサイズパラメータ(sizing parameters)は、与えられた方向における画素色値に対応するいくつかの隣接画素に基づいて決定又は推測される。セマンティックセグメンテーションによって、セマンティックカテゴリに従ってラベル付けされた画素を有する画像が生成される。
一態様では、セマンティックカテゴリは、特に、道路、空、歩道、植物、人、車両、及び建物を含む。一例では、3D検出部120が、セマンティックカテゴリを決定するが、セマンティックセグメンテーションにおける情報の不正確さによって、エッジ画素がオブジェクトの一部かどうかが不確かとなるため、画像におけるオブジェクトの境界部分では正確でない場合がある。さらに、例えば、セマンティックセグメンテーションを適用することは、インスタンス特有(instance specific)ではないセマンティックカテゴリ化をもたらす(例えば、同じセマンティックカテゴリを有する複数のオブジェクトは、同じ画素値に関連付けられる)。
ブロック206において、本方法200は、ポイントクラウドを取得することを含む。一態様では、ポイントクラウド部112は、光検出器(例えば、LIDAR114)を介して、ポイントクラウドを取得する。例えば、LIDAR114は、経路に沿って移動する車両に配置されてもよく、経路に沿った領域のポイントクラウド走査を周期的にキャプチャするように構成されてもよい。LIDAR114は、ポイントクラウドをローカルに及び/又はメモリ104に保存することができ、及び/又はポイントクラウドを遠隔装置に提供することができ、そこからポイントクラウド部112がポイントクラウドを受け取ることができる。また、例えば、位置推定部116は、ポイントクラウドに関連する位置を決定する。この決定は、ポイントクラウドの少なくとも一部がLIDAR114でキャプチャされた時点で又はその時点近傍で、該LIDAR114を有する車両の全地球測位システム(GPS)座標を取得することを含む。一例では、位置推定部116は、位置推定・地図生成のためにポイントクラウドを処理する際に該ポイントクラウドに対して位置を決定することができるように、(例えば、ポイントクラウドメタデータ又はリレーショナルストレージで)GPS座標をポイントクラウドに関連付ける。
一態様では、位置推定部116は、類似の時点でキャプチャされた画像及びポイントクラウドを互いに及び/又は対応する位置に関連付ける。さらに、本明細書でさらに説明されるように、位置推定・地図生成部106は、画像及びポイントクラウドの入力を取得し、これら入力は、特に、画像及びポイントクラウドのキャプチャが行われた関連する時点に基づいて、及び関連する位置に基づいて同期されてもよい。
ブロック208において、本方法200は、ポイントクラウド内の複数のオブジェクトクラスタを決定することを含む。例えば、3D検出部120は、ポイントクラウドをより小さな部分に組織化し、ポイントクラウドの異なる部分を分類することによって、オブジェクトクラスタを決定する。一態様では、3D検出部120は、例えば、径方向有界最短距離(radially bounded nearest neighbor)(RBNN)クラスタ法、ユークリッドセンス法(Euclidean sense method)、又は領域拡張セグメンテーション法(region growing segmentation method)を使用することによってクラスタリングを実行することができる。
ブロック210において、本方法200は、ポイントクラウドから地表面を除去することを含む。一態様では、3D検出部120は、クラスタ化されて地表面として特定された点を除去することによって地表面を除去することができる。例えば、3D検出部120は、地表面を、ポイントクラウド内の最大の平面構成要素であると決定する。さらに、オブジェクトクラスタリング部120は、大きな平面(例えば、閾値ポイントサイズよりも大きい平面)がなくなるまで、平面インライア(plane inlier)であると判定されたポイントクラウド内の点を除去、無視、又はそうでなければ回避する。例えば、3D検出部120は、RANSAC(random sample consensus)を使用して、閾値ポイントサイズを達成する平面インライアを決定することによって、平面インライアを除去、無視、又は回避することができる。
ブロック212において、本方法は、画像からポイントクラウドへラベルを転送することを含む。一態様では、3D検出部120は、セマンティックセグメンテーションを実行した後の画像と、オブジェクトをクラスタ化して地表面を除去した後のポイントクラウドとを受け取る。一態様では、3D検出部120は、少なくとも画素の一部に対応する点の少なくとも一部を、関連付けられた1又は複数のセマンティック予測(semantic prediction)と関連付ける。画素と点との関連付けに基づいて、3D検出部120は、画像の画素からポイントクラウドの関連する点にラベルを転送する。
ブロック214において、本方法200は、ポイントクラウドから動的な交通参加者を除去することを含む。一態様では、動的交通参加者除去部122は、ラベル付けされたポイントクラウドを受け取り、そのラベルに基づいて、動的な交通参加者をポイントクラウドから除去することができる。例えば、動的交通参加者除去部122は、人、車両、又動的な交通参加者と見なされる別のオブジェクトとしてラベル付けされたポイントを除去する。
ブロック216において、本方法200は、SLAMオペレーションを実行することを含む。一態様では、SLAM部124は、動的な交通参加者が除去されたポイントクラウドを受け取り、動的な交通参加者が除去されたポイントクラウドに対してSLAMオペレーションを実行する。一例では、SLAM部124は、正規分布変換(NDT)、反復最近接ポイント(Iterative Closest Point)(ICP)、確率的反復対応(Probabilistic Iterative Correspondence)(pIC)、条件付き確率場(CRF)、局所幾何学的特徴登録(Local Geometric Features registration)、及び分枝限定法等の1又は複数のSLAMアルゴリズムを使用して、SLAMオペレーションを実行する。
ブロック218において、本方法200は、実行されたSLAMアルゴリズムに基づいて、位置推定及び地図生成を出力する。一態様では、SLAM部124は、SLAMアルゴリズムに基づいて、3Dポイントクラウドマップデータ及び/又は自律走行車両の移動軌跡/オドメトリデータを出力する。
一例では、位置推定・地図生成部106は、ネットワーク140を介して、3Dポイントクラウドマップデータ及び/又は自律走行車両運動軌跡/オドメトリデータを1又は複数の他の装置に提供する。例えば、位置推定・地図生成部106は、ネットワーク140を介して、3Dポイントクラウドマップデータ及び/又は自律走行車両の移動軌跡/オドメトリデータをアップロードし、他の車両、パーソナルデバイス(例えば、携帯電話、タブレット等)は、ナビゲーションシステムのディスプレイに表示するため、3D地図生成及び/又は自律走行車両の移動軌跡/オドメトリデータ等を増強又は更新するために、3次元ポイントクラウドマップデータ及び/又は自律走行車両の走行軌跡/オドメトリデータをダウンロードする。
図3〜図8は、上述の態様に係る、画像及び/又はスキャンの例を示している。図3は、カメラ110によってキャプチャされた画像300の一例を示しており、カメラ110は、経路を走行する車両302に取り付けられている。画像300は、経路に沿ってカメラ110によってキャプチャされたシーンを示し、シーンは、上述のように、場所(例えば、画像300がキャプチャされたときの車両302の場所)に関連付けられている。画像300は、通り304と、通り304に沿った様々な建物306と、通り304を又は近くを歩いている複数の人々308、310、312と、駐車している及び/又は通り304に沿って移動している複数の車両314、316、318とを含む。この画像300は、位置推定・地図生成部106に提供される画像の一例である。図4は、画像300から生成されたセマンティック予測画像400の一例を示している。例えば、3D検出部120は、画像300内の通り304を検出し、通り304として特定された画素の画素値を1つの色となるように修正して、セマンティック予測画像400内の通り404を生成する。同様に、3D検出部120は、画像300内の建物306を検出し、建物306として特定された画素の画素値を1つの色となるように修正し、セマンティック予測画像400内の建物406を生成する。さらに、3D検出部120は、画像300内の人308、310、312を検出し、人308、310、312として特定された画素の画素値を1つの色となるように修正して、セマンティック予測画像内に人408を生成する。さらに、例えば、3D検出部120は、画像300内の車両314、316、318を検出し、車両として特定された画素の画素値を1つの色となるように修正し、セマンティック予測画像内の車両410を生成する。説明したように、同じセマンティッククラス(例えば、車両)で特定されたオブジェクトは、同じ色となるように修正されるので、同じラベルを含むことになる。
図5は、LIDAR114から得られたポイントクラウド500の一例を示す。LIDAR114もまた、経路を移動する車両502に搭載されている。ポイントクラウド500は、経路に沿ってLIDAR114によってキャプチャされたLIDARスキャンを示しており、画像300及びポイントクラウド500がキャプチャされた時間、ポイントクラウド500がキャプチャされたときの車両の位置等に基づいて、ポイントクラウド50もまた画像300の位置に関連付けられる。ポイントクラウド500は、(画像300内の通り304である)通り504、(画像300内の建物306である)1又は複数の建物506、(画像300内の複数の人308〜312である)複数の人508、510、512、及び(画像300内の1又は複数の車両314〜318である)複数の車両514、516、518、を定義する複数の点を含む。ポイントクラウド500はまた、位置推定・地図生成部106に提供される。
図6は、オブジェクトクラスタリングが行われ、地表面が除去されたポイントクラウド600の一例を示す。一態様では、3D検出部120は、上記の1又は複数の方法に基づいて、オブジェクトクラスタを決定する。例えば、3D検出部120は、通り504(図6には示されていない)、(ポイントクラウド500の建物506である)建物606、(ポイントクラウド500の複数の人508〜512である)人608、610、612、及び(ポイントクラウド500の複数の車両514〜518である)車両614、616、618をクラスタ化する。3D検出部120は、例えば、地表面はポイントクラウド600内の最大の平面構成要素であると判断することによって、ポイントクラウド600から地表面を除去することができる。
図7は、ラベリングされた画像400から、クラスタリングが実行されて地表面が除去されたポイントクラウド600にラベルが転送されたポイントクラウド700の一例を示す。一態様では、3D検出部120は、画像300のラベルをポイントクラウド600の点と関連付け、そのラベルに基づいて動的な交通参加者を決定する。図7に示すように、(ポイントクラウド500の人508〜512である)ポイントクラウド600の人608〜612は、人としてラベル付けされ、(ポイントクラウド500の車両514〜518である)車両614〜618も同様であり、従って、動的な交通参加者702であると決定される。しかしながら、ポイントクラウド700の(ポイントクラウド500の建物506である)建物706は、動的な交通参加者であると決定された建物としてラベル付けされている。
図8は、動的な交通参加者が除去されたポイントクラウド800の一例を示す。一態様では、動的交通参加者除去部122は、ラベル付けされたポイントクラウドに基づいて、動的な交通参加者を除去することができる。一例では、動的な交通参加者は、人508〜512及び車両514〜518を含む。図5と比較して、動的な交通参加者がポイントクラウド800から取り除かれているので、図8は、人508〜512及び車両514〜518を含まない。しかしながら、図8に示されるように、(ポイントクラウド500の建物506である)建物808はポイントクラウド800内に残る。動的な交通参加者が取り除かれると、SLAM部は、動的な交通参加者が除去されたポイントクラウド800からのデータを使用して、上述のようにSLAMオペレーションを実行することができる。
本開示の実施形態は、ハードウェア、ソフトウェア、又はそれらの組み合わせを使用して実行することができ、1つ又は複数のコンピュータシステム又は他の処理システムで実行することができる。一変形例では、本開示の実施形態は、本明細書に記載の機能を実行することができる1つ又は複数のコンピュータシステム向けになっている。そのようなコンピュータシステム900の一例を図9に示す。
コンピュータシステム900は、1つ又は複数のプロセッサ(例えば、プロセッサ904)を含む。プロセッサ904は、通信インフラストラクチャ906(例えば、通信バス、クロスオーバーバー、又はネットワーク)に接続される。この例示的なコンピュータシステムの観点から、様々なソフトウェアの態様が説明される。この説明を読めば、他のコンピュータシステム及び/又はアーキテクチャを使用して本開示の実施形態を実行する方法は、当業者には明らかになるであろう。
コンピュータシステム900は、ディスプレイユニット930上に表示するために、通信インフラストラクチャ906(又は、図示されていないフレームバッファ)からグラフィックス、テキスト、及び他のデータを転送するディスプレイインターフェース902を含む。コンピュータシステム900はまた、主メモリ908、好ましくはランダムアクセスメモリ(RAM)を含み、また、2次メモリ910を含んでもよい。2次メモリ910は、例えば、ハードディスクドライブ912及び/又はリムーバブル記憶ドライブ914(フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ等)を含む。リムーバブル記憶ドライブ914は、周知の方法で、リムーバブル記憶ユニット918から読み取り、及び/又はリムーバブル記憶ユニット918に書き込む。リムーバブル記憶ユニット918は、フロッピーディスク、磁気テープ、光ディスク等であり、リムーバブル記憶ドライブ914によって読み出され、またリムーバブル記憶ドライブ914に書き込まれる。理解されるように、リムーバブル記憶ユニット918は、コンピュータソフトウェア及び/又はデータを記憶したコンピュータ使用可能記憶媒体を含む。
他の態様では、2次メモリ910は、コンピュータプログラム又は他の命令がコンピュータシステム900にロードされることを可能にするための他の同様のデバイスを含むことができる。そのようなデバイスは、例えば、リムーバブル記憶ユニット922及びインターフェース920を含むことができる。そのような例には、プログラムカートリッジ及びカートリッジインターフェース(ビデオゲーム装置に見られるもの等)、リムーバブルメモリチップ(消去可能なプログラム可能読み取り専用メモリ(EPROM)、又はプログラム可能読み取り専用メモリ(PROM)等)、対応するソケット、及び他のリムーバブル記憶ユニット922及び、リムーバブル記憶ユニット922からコンピュータシステム900にソフトウェア及びデータを転送することを可能にするインターフェース920を含む。
コンピュータシステム900はまた、通信インターフェース924を含んでもよい。通信インターフェース924は、ソフトウェア及びデータがコンピュータシステム900と外部装置との間で転送されることを可能にする。通信インターフェース924の例には、モデム、ネットワークインターフェース(イーサネットカード等)、通信ポート、パーソナルコンピュータメモリカード国際協会(PCMCIA)スロット及びカード等が含まれる。通信インターフェース924を介して転送されるソフトウェア及びデータは、通信インターフェース924によって受信可能な電子信号、電磁信号、光学信号又は他の信号等の信号928の形態をとる。これらの信号928は、通信パス(例えば、チャネル)926を介して通信インターフェース924に供給される。このパス926は、信号928を搬送し、ワイヤ又はケーブル、光ファイバ、電話回線、セルラーリンク、無線周波数(RF)リンク及び/又は他の通信チャネルを使用して実行される。この明細書では、「コンピュータプログラム媒体」及び「コンピュータ使用可能媒体」という用語は、リムーバブル記憶ドライブ980やハードディスクドライブ970にインストールされたハードディスクや信号928等のメディアを総称するために使用される。これらのコンピュータプログラム製品は、コンピュータシステム900にソフトウェアを提供する。本発明の実施形態は、そのようなコンピュータプログラム製品を対象にしている。
コンピュータプログラム(コンピュータ制御論理とも呼ばれる)は、主メモリ908及び/又は2次メモリ910に格納される。コンピュータプログラムは、通信インターフェース924を介して受信することもできる。このようなコンピュータプログラムが実行されると、コンピュータシステム900は、本明細書で説明されるように、本発明の実施形態に係る様々な特徴を実行する。特に、コンピュータプログラムは、実行されると、プロセッサ904にそのような特徴を実行させる。従って、そのようなコンピュータプログラムは、コンピュータシステム900のコントローラに対応する。コンピュータプログラムは、本明細書で記載されたように、位置推定・地図生成部106、1又は複数のカメラ110から画像を受け取るための画像部108、ポイントクラウドを受け取るためのポイントクラウド部112、プロセッサ904に関連する1又は複数のエンティティ(entitiy)の位置を決定するための位置推定部116等を含む。
本発明の実施形態がソフトウェアを使用して実施される変形形態では、ソフトウェアは、コンピュータプログラム製品に格納され、リムーバブル記憶ドライブ914、ハードドライブ912、又は通信インターフェース920を使用して、コンピュータシステム900にロードされる。制御ロジック(ソフトウェア)は、プロセッサ904によって実行されると、プロセッサ904に、本明細書に記載される本発明の実施形態に係る機能を実行させる。他の変形形態では、例えば、特定用途向け集積回路(ASIC)等のハードウェア構成要素を使用して、主にハードウェアで実施される。本明細書で説明された機能を実行するためのハードウェア状態機械の実施は、当業者には明らかであろう。
さらに他の変形例では、ハードウェアとソフトウェアの両方の組み合わせを使用して実施される。
図10は、本発明の実施形態に従って使用され得る様々な例示的なシステム構成要素のブロック図である。例えば、様々な構成要素が車両102内に存在してもよく、又は構成要素のうちのいくつかのみが車両102内にある一方、他の構成要素は車両102から離れていてもよい。システム1000は、1つ又は複数のアクセスする人1060、1062(本明細書では1つ又は複数の「ユーザ」とも呼ぶ)と、1つ又は複数の端末1042、1066(このような端末は、例えば、オブジェクト検出システム110の様々な特徴であってもよいし或いは含んでもよい)とを含む。一実施形態では、本発明の実施形態に従って使用するためのデータは、ネットワーク1044(例えば、インターネット又はイントラネット等)及び結合装置1045、1046、1064を介して、プロセッサ及びデータ保存場所及び/又はデータ保存場所への接続を有するサーバ1043(例えば、PC、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータ、又は他のデバイス等)に結合された端末1042、1066(例えば、パーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータ、電話装置、パーソナルデジタルアシスタント(「PDA」)やハンドヘルド無線デバイス等の無線デバイス等)を介して、アクセスする人1060、1062によって、例えば、入力及び/又はアクセスされる。結合装置1045、1046、1064としては、例えば、有線、無線、又は光ファイバのリンク等が挙げられる。他の変形例では、本発明の実施形態による方法及びシステムは、単一の端末のようなスタンドアロン環境で動作する。
本明細書で説明される態様は、コンピュータ実行可能命令を格納するコンピュータ可読記憶媒体との関連において、説明され実施されてもよい。コンピュータ可読記憶媒体は、コンピュータ記憶媒体及び通信媒体を含む。例えば、フラッシュメモリドライブ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、フロッピーディスク、テープカセット等である。コンピュータ可読記憶媒体としては、コンピュータ可読命令、データ構造、モジュール又は他のデータのような情報を記憶するための任意の方法又は技術で実施される揮発性及び不揮発性、取り外し可能な媒体及び取り外し不可能な媒体が挙げられる。
上記に開示された特徴及び機能、及び他の特徴及び機能、又はその代替形態又は変形形態の様々な実施形態を望ましいように組み合わせて、多くの他の異なるシステム又はアプリケーションとして構成してもよいことは理解されよう。 また、以下の請求項に包含されることが意図されるが、現在は予測されていない、又は予想されていない種々の代替、変形、変更、又は改良は、当業者であれば、引き続き行うことができる。