【解決手段】本発明は、都市環境における単眼位置特定のための方法及びシステムに関する。該方法では、ある姿勢におけるカメラから画像が生成され、予め作製された地図が受け取られ、エッジ検出に基づいて、生成された画像から特徴が決定され、少なくとも予め作製された地図に基づいて、カメラの姿勢が予測され、予測されたカメラの姿勢から特徴が決定される。該方法ではさらに、画像及び予測されたカメラの姿勢から決定された特徴に基づいて、チャンファー距離が決定され、オドメトリ情報及びエピポーラ幾何に基づいて、決定されたチャンファー距離が最適化される。最適化に基づいて、推定されたカメラ姿勢が決定される。
非一過性コンピュータ可読記録媒体であって、該非一過性コンピュータ可読記録媒体はプログラムを記憶し、前記プログラムが、システムの回路によって実行される場合、前記システムは、
ある姿勢におけるカメラから画像を生成し、
予め作製された地図を受け取り、
エッジ検出に基づいて、生成された前記画像から特徴を決定し、
少なくとも前記予め作製された地図に基づいて前記カメラの姿勢を予測し、前記予測されたカメラの姿勢から特徴を決定し、
前記画像及び前記予測されたカメラの姿勢から決定された前記特徴に基づいて、チャンファー距離(Chamfer distance)を決定し、
オドメトリ情報とエピポーラ幾何に基づいて、前記決定された前記チャンファー距離を最適化し、
前記最適化されたデータに基づいて、カメラ姿勢推定値を生成する
ことを特徴とする非一過性コンピュータ可読記録媒体。
請求項15記載の非一過性コンピュータ可読記録媒体において、前記予め作製された地図は、LiDAR検知に基づいて作製されることを特徴とする非一過性コンピュータ可読記録媒体。
請求項15記載の非一過性コンピュータ可読記録媒体において、前記エッジ検出は、ランダムフォレストに基づくエッジ検出器によって行われることを特徴とする非一過性コンピュータ可読記録媒体。
【発明を実施するための形態】
【0013】
以下において、本明細書で使用される選択された用語の定義が示される。それら定義には、用語の範囲内にあり且つ実施するために使用され得る様々な例及び/又は構成要素の形態が含まれる。これらの例に、限定されるものではない。
【0014】
本明細書で使用される「プロセッサ」は、信号を処理し、一般的な計算及び算術機能を実行する。プロセッサによって処理される信号は、受信、送信、及び/又は検出される、デジタル信号、データ信号、コンピュータ命令、プロセッサ命令、メッセージ、ビット、ビットストリーム、又は他の演算結果を含むことができる。
【0015】
本明細書で使用される「バス」は、単数又は複数のシステム内のコンピュータ構成要素間でデータを転送するように動作可能に接続された、相互接続アーキテクチャを指す。バスは、特に、メモリバス、メモリコントローラ、周辺バス、外部バス、クロスバースイッチ、及び/又はローカルバスとすることができる。バスは、特に、コントローラエリアネットワーク(CAN)、ローカル相互接続ネットワーク(LIN)等のプロトコルを使用して車両内の要素を相互接続する車両バスであってもよい。
【0016】
本明細書で使用される「メモリ」は、揮発性メモリ及び/又は不揮発性メモリを含むことができる。不揮発性メモリは、例えば、ROM(読み出し専用メモリ)、PROM(プログラム可能な読み出し専用メモリ)、EPROM(消去可能なPROM)及びEEPROM(電気的に消去可能なPROM)を含み得る。揮発性メモリは、例えば、RAM(ランダムアクセスメモリ)、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)及び/又はダイレクトラムバスRAM(DRRAM)を含み得る。
【0017】
本明細書で使用される「動作可能な接続」は、実体的なものが「動作可能に接続される」接続であり、該接続においては、信号、物理的通信、及び/又は論理的通信を送信及び/又は受信することができる。動作可能な接続は、物理インターフェース、データインターフェース及び/又は電気インターフェースを含むことができる。
【0018】
本明細書で使用される「車両」は、任意の形態のエネルギーによって動力が与えられる任意の移動車両を指す。車両は、人間の乗員又は貨物を運ぶことができる。用語「車両」には、以下に限定されないが、例えば、車、トラック、バン、ミニバン、SUV、オートバイ、スクーター、ボート、水上バイク、航空機が含まれる。場合によっては、自動車は、1つ又は複数のエンジンを含む。
【0019】
位置特定は、自動運転車の自律航法において行われる。位置特定プロセスの本質は、センサ測定値を所定の地図と照合することにある。地図は、人間による測量又は異なるセンサを用いたロボットによるマッピングによって生成することができる。言い換えれば、位置特定技術は、測定方式と地図表現とによって分類されてもよい。
【0020】
位置特定技術の第1のタイプは、位置特定と地図作製の両方に同じタイプのセンサを利用することである。両方のプロセスに同じタイプのセンサを使用することによって、マッチングの問題を大幅に簡単化することができる。例えば、3D−LiDAR(例えば、ベロダイン(Velodyne))は、両方のプロセスに使用することができる。3D−LiDARは、高精度の距離測定を行うからである。3D−LiDARは、最初に路面の地図を作製するために実行され、そして、地面反射率を相関させることによって車両の位置特定を行うことができる。別の例では、3D−LiDARを使用して、ガウス混合によって表される3Dマップを生成することができ、位置特定は、3Dポイントクラウド(point clouds)を地図に登録することによって行われる。
【0021】
第2のタイプの位置特定技術は、低コストで軽量のカメラを利用することで、視認可能なランドマークを用いて視覚的に位置特定を行う。例えば、視認可能なランドマークのデータベースは、スケール不変特徴変換(「SIFT」)点から作成することができる。そして、カメラは、SIFTマッチングによって位置特定されてもよい。別の例は、bag−of−words技術を使用して、現在の画像を画像データベースと照合することによってカメラを位置特定するものである。
【0022】
位置特定と地図作製の両方にカメラを使用することには短所がある。第1に、カメラが距離情報を見る能力を持たないので、ビジュアルマッピング、同時に位置特定及び地図作製を行う技術(SLAM)において高い精度を得ることは困難である。第2に、位置特定における視覚的一致の質は、時間、視点及び照明の変化によって容易に影響され得る。
【0023】
位置特定及び地図作製において、異なる検知方式を使用することによって、上述の制限を克服することができる。例えば、位置特定には低コストのセンサ(例えば、カメラ)を採用し、地図作製には高コストのセンサ(例えば、LiDAR)を採用することによって、カメラ姿勢の推定を改善することができる。
【0024】
位置特定と地図作製で異なる検知方式を使用する根拠は、地図は非常に正確である必要があるが、位置特定ほど頻繁に生成/更新する必要はないということに基づく。従って、単眼カメラを使用して、高精度なLiDARによって生成された地図内にカメラ自身を位置特定させることができる。
【0025】
図1は、本開示の一実施形態に係る、路面標示を使用して、都市環境における位置特定を行うための位置特定システム110の例示的な動作環境100の概略図である。位置特定システム110は、車両102内に常駐させることができる。位置特定システム110の構成要素、並びに本明細書で記載される他のシステム、ハードウェアアーキテクチャ、及びソフトウェアアーキテクチャの構成要素は、組み合わせたり、省略したり、又は様々な形態で構成することができる。
【0026】
車両102は一般に、複数の車両システムを動作制御する電子制御ユニット(ECU)112を有する。車両システムは、制限するものではないが、例えば、単眼位置特定システム140を含む位置特定システム110、又特に車両HVACシステム、車両オーディオシステム、車両ビデオシステム、車両インフォテインメントシステム、車両電話システム等を含む。単眼位置特定システム140は、単眼カメラ120、又は以下で詳細に記載される車両102を取り囲む環境の画像を提供するためにECU112に接続することができる他の撮像装置(例えば、スキャナ)を含むことができる。
【0027】
単眼位置特定システム140はまた、地図作製会社によってキャプチャーされ、路面標示、縁石、交通標識等の様々な要素から構成されたLiDARセンサデータユニット122を含むことができる。さらに、以下でより詳細に説明するように、エピポーラ幾何ユニット(epipolar geometry unit)146、オドメトリデータユニット(odometry data unit)144、及びチャンファー距離ユニット(Chamfer distance unit)142を最適化のために利用することもできる。
【0028】
単眼位置特定システム140はまた、エピポーラ幾何ユニット146、オドメトリデータユニット144及びチャンファー距離ユニット142の入力に基づいてカメラ姿勢を推定・評価するための、以下で詳細に説明するが、最適化ユニット148を含むことができる。
【0029】
位置特定システム110はまた、カメラ120、LiDARセンサデータユニット122、通信装置130、及び自動運転システム132と通信するプロセッサ114及びメモリ116を含むことができる。
【0030】
ECU112は、内部処理メモリ、インターフェース回路、及びデータを転送し、コマンドを送信し、車両システムと通信するためのバスラインを含む。ECU112は、内部プロセッサ及びメモリ(図示せず)を含むことができる。車両102はまた、位置特定システム110の様々な構成要素の間において内部でデータを送信するためのバスを含むこともできる。
【0031】
車両102は、車両102内の特徴及びシステム並びに外部装置に対して内部的に電子信号を送信/受信するために様々なプロトコルを利用して、有線又は無線コンピュータ通信を提供するための通信装置130(例えば、無線モデム)をさらに含む。これらのプロトコルは、無線周波数(RF)通信(例えば、IEEE802.11(Wi−Fi)、IEEE802.15.1(ブルートゥース(登録商標)))、近距離通信システム(NFC)(例えば、ISO13157)、ローカルエリアネットワーク(LAN)、ワイヤレスワイドエリアネットワーク(WWAN)(例えば、セルラー)及び/又はポイントツーポイントシステムを含むことができる。さらに、車両102の通信装置130は、電子制御ユニット112と車両の特徴及びシステムとの間のデータ入力及び出力を容易にするために、バス(例えば、CAN又はLINプロトコルバス)を介して内部コンピュータ通信のために動作可能に接続されてもよい。一実施形態では、通信装置130は、車車間(V2V)通信用に構成されてもよい。例えば、V2V通信は、予約された周波数スペクトルにわたる無線通信を含むことができる。別の例として、V2V通信は、Wi−Fi又はブルートゥース(登録商標)を使用して設定された車両間のアドホックネットワークを含むことができる。
【0032】
車両102は、少なくとも1つのカメラ120を有する。カメラ120は、1つ又は複数の画像又は画像ストリームを取り込むことができるデジタルカメラであってもよく、又はスキャナ等の他の画像取り込み装置であってもよい。カメラ120は、車両102の真正面の空間の画像を提供することができる。他のカメラは、車両102を取り囲む別の空間の画像を提供することができる。例えば、後方カメラは、車両のバンパーの上に配置され得る。カメラ120は、単眼カメラであってもよく、2Dで画像を提供してもよい。
【0033】
車両102は、車両102を制御するための自動運転システム132を含む。自動運転システム132は、特に、車線維持支援システム、衝突警告システム、又は完全自律走行システムを含むことができる。自動運転システム132は、位置特定システム140から対象物位置及び方向情報を受信することができる。一実施形態では、位置特定システム140は、自動運転システム132の構成要素であってもよい。
【0034】
図2は、位置特定のために使用される地図から生成された地図要素の例を示す。地図は、地図作製会社(例えば、Google)によって提供されてもよく、路面標示、縁石、交通標識等を含む様々な地図要素から構成される。例えば、簡略化のために、2つのタイプの地図要素が決定され、路面標示として使用される(実線及び破線(「路面標示」))。さらに別のタイプの地図要素を路面標示として使用することもできる。本開示は2種類の地図要素のみに限定されない。
【0035】
図2に示すように、路面標示を決定する場合、実線は、レーン又は横断歩道の境界線等の地図要素から生じ、破線は、通常、レーン間に存在する。例えば、路面標示としてこの地図要素のサブセット(例えば、実線及び破線)を選択することは、様々な理由でシステムにとって有益な場合がある。第1に、この地図要素のサブセットは、他のマップ要素(例えば、速度制限標識や方向矢印等)よりも頻繁に観察される。第2に、この地図要素のサブセットは、(縁石とは対照的に)特徴的な外観と(交通標識と比較して)大きなサイズにより画像から検出するのが比較的容易である。
【0036】
図2に示すように、地図は、車両102に位置するカメラによって生成されるのではなく、他の検知装置(例えば、3D−LiDAR)によって生成される。車両102によって得られたLiDARセンサデータは、
図1に示すように、LiDARセンサデータユニット122に記憶されてもよい。地図は、3D−LiDARポイントクラウドを記録することによって作成された3D環境内においてランドマークを手動でラベリングすることによって構築することができる。
図2に示すように、地図は、路面標示を表す、疎らな3D点からなる。
【0037】
図3は、テキストとして記憶された路面標示の例を示す。
図2に示すように、疎らな点としての路面標示は、テキストファイルに簡潔に保存され、地理的位置によってグループ化される。
図3に示すように、路面標示は、センターラインに沿ってサンプリングされた1セットの3Dの疎らな点によって、幅や色等の他の情報と共に表される。これらテキストファイルは、
図1に示すように、LiDARセンサデータユニット122に保存される。
【0038】
図4は、位置特定システム110の全体のアーキテクチャを示す概念図である。以下で詳細に説明されるように、
図4は、カメラ120によって検出されたカメラビューと、検出装置によって取得され、LiDARセンサデータユニット122に記憶された3Dマップとを示す。単眼位置特定システム140は、カメラビューからエッジ及び特徴(feature)を検出し、カメラ姿勢予測は、3Dマップから決定される。
【0039】
上述したように、路面標示が疎らな点のセットとして表される軽量3Dマップに対して、カメラビューから検出されたエッジ及び地図要素を登録するためにチャンファーマッチング(chamfer matching)が実行される。さらに、車両オドメトリ及びエピポーラ幾何の制約が考慮されてもよい。さらに、6自由度(「DoF」)カメラの姿勢を推定・評価するために、非線形最適化問題が定式化されてもよい。
【0040】
さらに、位置特定システム110は、以下で詳細に説明するように、マッチング失敗を検出し、マッチングが失敗した後にシステムをリセットすることもできる。
【0041】
図5は、本開示の実施形態による位置特定の方法の例を示すフローチャートである。ステップ502において、システム初期化が以下に詳細に説明されるように、位置特定システム110は初期化される。ステップ504において(時間k)、マップ要素のエッジは、カメラ120から得られた画像I
kにおいて検出される。同時に(時間k)、ステップ505において、カメラ姿勢P´
kは、最後のフレームP
k-1の情報及びオドメトリデータD
kを使用して、推測/予測される。
【0042】
ステップ506において、カメラビューから得られた輪郭を抽出することによって、エッジが検出される。しかしながら、一般的なエッジ検出器は、無関係なエッジ(すなわち、誤検出)が多すぎるため、カメラビューに基づいて、ランダムフォレストベースのエッジ検出器に学習させる。
【0043】
ランダムフォレストは、独立した決定木の1群である。各ツリーには、同じ入力サンプルが与えられ、該入力サンプルは、ルートノードからリーフノードまでツリーを伝播することによって分類される。初期の未学習の決定木に対して多数の入力及び出力マッピングを与えることにより、その内部分割関数のパラメータは徐々に進化し、類似の入力−出力マッピングが生成される。この学習プロセスは、情報獲得基準(information gain criterion)を定義することによって可能になる。最大の情報獲得をもたらすパラメータに報酬が与えられる。このように、
図4に示すように、ランダムフォレストに基づく特徴検出を介して、カメラビューから路面標示が検出される。
【0044】
ステップ509において、3Dマップに基づいてマッチングが実行される。上述のように、路面標示は、3D点の小集合で表される。時間kにおいて、オドメトリ情報から、カメラ姿勢P´
kが予測される。
図4に示すように、路面標示の3D点の小集合が、画像空間上に射影される。
【0045】
ステップ510で、ステップ509において決定された射影点が、ステップ506で検出された特徴と、どれほど良好にマッチングしているかを評価するためにチャンファーマッチングが行われ、カメラ姿勢が評価される。
【0046】
チャンファーマッチングは基本的に、各射影点を最も近いエッジピクセルに関連付ける。以下に説明するように、チャンファー距離(Chamfer distance)は以下のチャンファー距離変換(1)から効率的に計算できる。方位を考慮に入れるために、エッジピクセルは、それらの勾配方向によって異なるグループに分割され、それに応じて距離変換が計算される。
【0048】
C
kは、画像のエッジから計算された距離変換である。I
k上の任意の点xに対して、チャンファー距離C
k(x)は、C
kから補完によって、クエリが行われる(queried)。π(P,X)は、3D点Xをフレームから姿勢Pの画像へ射影する射影関数である。M
kは、予想されるカメラ姿勢P´
kによるカメラビューにおける路面標示点の集合である。
【0049】
また、例えば、ビュー内に直線実線がある場合、路面標示は、カメラ姿勢の評価に対して、十分な制約を必ずしも課すとは限らない。従って、最適化は必要な場合がある。
【0050】
ステップ512において、エピポーラ制約は、以下に記載の式(2)によって、決定される。x
i,k-1←→x
i,kは、I
k-1からI
kへの画像点のペアである。それらは、同じ3D点に対応する。エピポーラ制約は以下である。
【数2】
ただし、Fは、基礎行列であり、チルダ(〜)付きxは、xの同次座標である。キャリブレーションされたカメラ120に対して、Fは、以下のように、2つのビュー間の相対姿勢によって決定される。
【数3】
【0051】
照合(verification)は、{
k-1R
k,
k-1t
k}がP
k-1とP
kとの間の相対剛体変換となるように、行われる。基礎行列は以下のように計算される。
【数4】
ただし、[
k-1t
k]× は、
k-1t
kとの外積の行列表示である。
【0052】
I
k-1とI
kとの間の点相関の集合{x
i,k-1⇔x
i,k,i=1,・・・}が与えられると、エピポーラ制約は以下のように定義される。
【数5】
【0053】
高速化された頑強な特徴(SURF)点は、エピポーラ制約において使用される。上述のように、物理的尺度は単眼カメラでは観察不可であるので、式(5)は、カメラ姿勢の5次元に制約を課すだけである。従って、オドメトリは、追加の制約のために使用される。
【0054】
ステップ514において、オドメトリ制約が決定される。D
kは、オドメータによって測定されたI
k-1とI
kとの間の剛体変換である。エピポーラ制約は既に5次元をカバーしているので、上述のように、D
kの並進移動の大きさを制約として使用するだけでよい。d
kは、D
kの並進移動成分の大きさを示す。オドメトリ制約は以下のように定義される。
【数6】
【0055】
ステップ516において、最適条件の定式化が行われる。与えられたP
k-1,P
kは、以下のコスト関数を最小化することによって評価される。
【数7】
【0056】
コスト関数(7)は、最適条件を決定し、レーベンバーグ・マーカートアルゴリズムを用いて、解かれる。
【0057】
ステップ518において、最適化されたデータを利用して、カメラ姿勢の評価を決定する。カメラ姿勢の評価は、地図に対して行われる。
【0058】
図5Aは、本発明の実施形態に係る、最適化によって得られたカメラ姿勢の推定を実行する、カメラビューに射影されたマップの一例を示す。
【0059】
単眼位置特定システム140を初期化するために、カメラ姿勢の初期推定値が決定される。推定されたカメラ姿勢は、GPS又は別のタイプのソースから取得される。初期のカメラ姿勢推定値は、適切に実行されるべき最適化における真の位置から遠い場合がある。従って、徹底的な探索を利用して、より正確な推定値が決定される。そうするために、単眼位置特定システム140は、パラメータ空間内の初期推定値周辺の候補姿勢の大集合を無作為にサンプリングする。単眼位置特定システム140は、C(P
k)を最小化する更新カメラ姿勢推定値を見つける。
【0060】
最適候補を初期解として、単眼位置特定システム140が初期化されると、システムは、上述のように、さらにC(P
k)を最小にする。
【0061】
また、単眼位置特定システム140は、チャンファー距離をチェックすることによって位置特定性能をモニターしてもよい。大きなチャンファー距離は、位置特定の評価を表す。連続的に大きなチャンファー距離が生成されると、単眼位置特定システム140は失敗したと判定される(例えば、カメラ姿勢の不適切な決定)。決定された単眼位置特定システムが失敗の場合、システムは初期化のために上述したものと同じ戦略を用いてリセットを実行する。
【0062】
上述したように、リセットと初期化との違いは、単眼位置特定システム140が、未知の状態から開始するのではなく、現在の姿勢推定値周辺の候補をサンプリングすることにある。
【0063】
本開示の実施形態は、ハードウェア、ソフトウェア、又はそれらの組み合わせを使用して実行することができ、1つ又は複数のコンピュータシステム又は他の処理システムで実行することができる。一実施形態では、本開示は、本明細書に記載の機能を実行することができる1つ又は複数のコンピュータシステムで行われる。
図6は、本開示の実施形態に従って使用するための様々なハードウェア構成要素及び他の特徴の例示的なシステム図を示す。本開示の実施形態は、ハードウェア、ソフトウェア、又はそれらの組み合わせを使用して実行することができ、1つ又は複数のコンピュータシステム又は他の処理システムで実行することができる。一変形例では、本開示の実施形態は、本明細書に記載の機能を実行することができる1つ又は複数のコンピュータシステム向けになっている。そのようなコンピュータシステム600の一例を
図6に示す。
【0064】
コンピュータシステム600は、1つ又は複数のプロセッサ(例えば、プロセッサ604)を含む。プロセッサ604は、通信インフラストラクチャ606(例えば、通信バス、クロスオーバーバー、又はネットワーク)に接続される。この例示的なコンピュータシステムの観点から、様々なソフトウェアの態様が説明される。この説明を読めば、他のコンピュータシステム及び/又はアーキテクチャを使用して本開示の実施形態を実行する方法は、当業者には明らかになるであろう。
【0065】
コンピュータシステム600は、ディスプレイユニット630上に表示するために、通信インフラストラクチャ606(又は、図示されていないフレームバッファ)からグラフィックス、テキスト、及び他のデータを転送するディスプレイインターフェース602を含む。コンピュータシステム600はまた、メインメモリ608、好ましくはランダムアクセスメモリ(RAM)を含み、また、2次メモリ610を含んでもよい。2次メモリ610は、例えば、ハードディスクドライブ612及び/又はリムーバブルストレージドライブ614(フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ等)を含む。リムーバブルストレージドライブ614は、周知の方法で、リムーバブルストレージユニット618から読み取り、及び/又はリムーバブルストレージユニット618に書き込む。リムーバブルストレージユニット618は、フロッピーディスク、磁気テープ、光ディスク等であり、リムーバブルストレージドライブ614によって読み出され、またリムーバブルストレージドライブ614に書き込まれる。理解されるように、リムーバブルストレージユニット618は、コンピュータソフトウェア及び/又はデータを記憶したコンピュータ使用可能記憶(記録)媒体を含む。
【0066】
別の態様では、2次メモリ610は、コンピュータプログラム又は他の命令がコンピュータシステム600にロードされることを可能にするための他の同様のデバイスを含むことができる。そのようなデバイスは、例えば、リムーバブルストレージユニット622及びインターフェース620を含むことができる。そのような例には、プログラムカートリッジ及びカートリッジインターフェース(ビデオゲーム装置に見られるもの等)、リムーバブルメモリチップ(消去可能なプログラム可能読み取り専用メモリ(EPROM)、又はプログラム可能読み取り専用メモリ(PROM)等)、対応するソケット、及び他のリムーバブルストレージユニット622及び、リムーバブルストレージユニット622からコンピュータシステム600にソフトウェア及びデータを転送することを可能にするインターフェース620を含む。
【0067】
コンピュータシステム600はまた、通信インターフェース624を含んでもよい。通信インターフェース624は、ソフトウェア及びデータがコンピュータシステム600と外部装置との間で転送されることを可能にする。通信インターフェース624の例には、モデム、ネットワークインターフェース(イーサネットカード等)、通信ポート、パーソナルコンピュータメモリカード国際協会(PCMCIA)スロット及びカード等が含まれる。通信インターフェース624を介して転送されるソフトウェア及びデータは、通信インターフェース624によって受信可能な電子信号、電磁信号、光学信号又は他の信号等の信号628の形態をとる。これらの信号628は、通信経路(例えば、チャネル)626を介して通信インターフェース624に供給される。この経路626は、信号628を搬送し、ワイヤ又はケーブル、光ファイバ、電話回線、セルラーリンク、無線周波数(RF)リンク及び/又は他の通信チャネルを使用して実行される。この明細書では、「コンピュータプログラム媒体」及び「コンピュータ使用可能記録媒体」という用語は、リムーバブルストレージドライブ680やハードディスクドライブ670にインストールされたハードディスクや信号628等のメディアを総称するために使用される。これらのコンピュータプログラム製品は、コンピュータシステム600にソフトウェアを提供する。本発明の実施形態は、そのようなコンピュータプログラム製品を対象にしている。
【0068】
コンピュータプログラムは(コンピュータ制御論理とも呼ばれる)は、メインメモリ608及び/又は2次メモリ610に格納される。コンピュータプログラムは、通信インターフェース624を介して受信することもできる。このようなコンピュータプログラムが実行されると、コンピュータシステム600は、本明細書で説明されるように、本発明の実施形態に係る様々な特徴を実行する。特に、コンピュータプログラムは、実行されると、プロセッサ604にそのような特徴を実行させる。従って、そのようなコンピュータプログラムは、コンピュータシステム600のコントローラに対応する。
【0069】
本発明の実施形態がソフトウェアを使用して実施される変形形態では、ソフトウェアは、コンピュータプログラム製品に格納され、リムーバブルストレージドライブ614、ハードドライブ612、又は通信インターフェース620を使用して、コンピュータシステム600にロードされる。制御ロジック(ソフトウェア)は、プロセッサ604によって実行されると、プロセッサ604に、本明細書に記載される本発明の実施形態に係る機能を実行させる。別の変形形態では、例えば、特定用途向け集積回路(ASIC)等のハードウェア構成要素を使用して、主にハードウェアで実施される。本明細書で説明された機能を実行するためのハードウェア状態機械の実施は、当業者には明らかであろう。
【0070】
さらに別の変形例では、ハードウェアとソフトウェアの両方の組み合わせを使用して実施される。
【0071】
図7は、本発明の実施形態に従って使用され得る様々な例示的なシステム構成要素のブロック図である。例えば、様々な構成要素が車両102内に存在してもよく、又は構成要素のうちのいくつかのみが車両102内にある一方、他の構成要素は車両102から離れていてもよい。システム700は、1つ又は複数のアクセスする人760、762(本明細書では1つ又は複数の「ユーザ」とも呼ぶ)と、1つ又は複数の端末742、766(このような端末は、例えば、オブジェクト検出システム110の様々な特徴であってもよいし或いは含んでもよい)とを含む。一実施形態では、本発明の実施形態に従って使用するためのデータは、ネットワーク744(例えば、インターネット又はイントラネット等)及び結合装置745、746、764を介して、プロセッサ及びデータ保存場所及び/又はデータ保存場所への接続を有するサーバ743(例えば、PC、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータ、又は他のデバイス等)に結合された端末742、766(例えば、パーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータ、電話装置、パーソナルデジタルアシスタント(「PDA」)やハンドヘルド無線デバイス等の無線デバイス等)を介して、アクセスする人760、762によって、例えば、入力及び/又はアクセスされる。結合装置745、746、764としては、例えば、有線、無線、又は光ファイバのリンク等が挙げられる。他の変形例では、本発明の実施形態による方法及びシステムは、単一の端末のようなスタンドアロン環境で動作する。
【0072】
本明細書で説明される態様は、コンピュータ実行可能命令を格納するコンピュータ可読記憶(記録)媒体との関連において、説明され実施されてもよい。コンピュータ可読記憶媒体は、コンピュータ記憶媒体及び通信媒体を含む。例えば、フラッシュメモリドライブ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、フロッピーディスク、テープカセット等である。コンピュータ可読記憶媒体としては、コンピュータ可読命令、データ構造、モジュール又は他のデータのような情報を記憶するための任意の方法又は技術で実施される揮発性及び不揮発性、取り外し可能な媒体及び取り外し不可能な媒体が挙げられる。
【0073】
上記に開示された特徴及び機能、及び他の特徴及び機能、又はその代替形態又は変形形態の様々な実施形態を望ましいように組み合わせて、多くの他の異なるシステム又はアプリケーションとして構成してもよいことは理解されよう。 また、以下の請求項に包含されることが意図されるが、現在は予測されていない、又は予想されていない種々の代替、変形、変更、又は改良は、当業者であれば、引き続き行うことができる。