(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-26
(45)【発行日】2024-02-05
(54)【発明の名称】センサ較正
(51)【国際特許分類】
G06T 7/80 20170101AFI20240129BHJP
G06T 7/00 20170101ALI20240129BHJP
B60W 60/00 20200101ALI20240129BHJP
B60W 40/02 20060101ALI20240129BHJP
【FI】
G06T7/80
G06T7/00 300F
B60W60/00
B60W40/02
(21)【出願番号】P 2020573182
(86)(22)【出願日】2019-06-28
(86)【国際出願番号】 US2019039763
(87)【国際公開番号】W WO2020006378
(87)【国際公開日】2020-01-02
【審査請求日】2022-06-10
(32)【優先日】2018-06-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-06-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ティル クルーガー
【審査官】淀川 滉也
(56)【参考文献】
【文献】米国特許出願公開第2015/0145965(US,A1)
【文献】国際公開第2017/079236(WO,A1)
【文献】特開2011-022062(JP,A)
【文献】特開2018-022360(JP,A)
【文献】Bianca-Cerasela-Zelia BLAGA et al.,Online cross-calibration of camera and LIDAR,2017 13th IEEE International Conference on Intelligent Computer Communication and Processing (ICCP),2017年09月
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/80
G06T 7/00
B60W 60/00
B60W 40/02
(57)【特許請求の範囲】
【請求項1】
環境中を横断するように構成された車両であって、
前記車両は、
少なくとも2つのカメラの視野が少なくとも部分的に重複するように前記車両の本体上に配設された複数のカメラ
を含む
、車両と、
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行可能な命令を記憶するコンピュータ可読媒体と、
を備え、
前記命令は、
前記複数のカメラから画像のセットを受信することであって
、画像の
前記セットは、実質的に第1の時間における前記環境を表し、前記複数のカメラによってキャプチャされた画像を含む、ことと、
画像の
前記セットについて、複数の点ペアを決定することであって、前記点ペアの各々は
、画像の
前記セットのうちの
前記画像の1つ
における第1の点、およ
び画像の
前記セットのうちの
前記画像の
もう1つにおける第2の点を含み、前記第1の点および前記第2の点は、同じ画像特徴に対応する、ことと、
前記複数の点ペアに関連付けられた誤差を決定することであって、前記誤差は、少なくとも部分的に、前記第1の点と、前記第2の点に対応するエピポーラ線との間の距離を含む、ことと、
前記誤差に少なくとも部分的に基づいて、前記複数の点ペアのサブセットを決定することと、
前記複数の点ペアの前記サブセットから、前記カメラの推定された相対的体勢の不整合を表す補正関数を決定することと、
前記補正関数に少なくとも部分的に基づいて、前記複数のカメラを較正することと、
を含む動作をシステムに実施させること
を特徴とするシステム。
【請求項2】
前記補正関数は第1の補正関数であり、前記システムは、
前記本体上に配設され、前記カメラのうちの1つまたは複数の視野中の前記環境の部分について点群データを生成するように構成された少なくとも1つのセンサ
をさらに備え
、
前記動作は、
前記第1の時間においてキャプチャされた点群データを
、画像の
前記セットのうちの少なくとも1つの画像中で決定されたエッジと比較することと、
前記比較することに基づいて、前記車両に対する前記カメラの不整合を表す第2の補正関数を決定することと、
をさらに含み、
さらに、前記複数のカメラを較正することは、前記第2の補正関数に少なくとも部分的に基づいて前記複数のカメラを較正することを含むこと
を特徴とする請求項1に記載のシステム。
【請求項3】
前記誤差を決定することは、
前記画像のうちの前記1つ
と、前
記画像
のうちの他方との間の関係を記述する基本行列を決定することと、
前記複数の点ペアのうちの個々の点ペアについて、および前記基本行列に少なくとも部分的に基づいて
、第1の画像中の前記第2の点に対応する前記エピポーラ線を決定することと、
前記第1の点を前記第1の画像中の前記エピポーラ線と比較することと、
を含むこと
を特徴とする請求項1又
は2に記載のシステム。
【請求項4】
前記誤差は第1の誤差であり、前記補正関数は第1の補正関数であり、
前記動作は、
前記複数の点ペアに関連付けられた第2の誤差を決定することであって、前記第2の誤差は、少なくとも部分的に、前記第1の点と、点深度を推定する前記第2の点の再射影との間の第2の距離を含む、ことと、
前記第2の誤差に少なくとも部分的に基づいて、前記複数の点ペアの第2のサブセットを決定することと、
前記複数の点ペアの前記第2のサブセットから
、第1のカメラまた
は第2のカメラの推定されたカメラ内在性を表す第2の補正関数を決定することと、
をさらに含み、
前記複数のカメラを
前記較正することは、前記第2の補正関数に少なくとも部分的にさらに基づくこと
を特徴とする請求項1
乃至3のいずれか1項に記載のシステム。
【請求項5】
前記複数の点ペアの第1のサブセットを決定することまたは前記複数の点ペアの第2のサブセットを決定することのうちの少なくとも1つは、
前記第1の点と、前記エピポーラ線また
は再射影のうちの少なくとも1つとを含んでい
る画像の
前記セットのうちの画像を複数の領域に分割することと、
前記複数の領域のうちの個々について点ペアのサブセットを決定することと、
を含み、
前記複数の点ペアの前記第1のサブセットまたは前記複数の点ペアの前記第2のサブセットは、前記複数の領域についての前記点ペアのサブセットを含むこと
を特徴とする請求項1
乃至4のいずれか1項に記載のシステム。
【請求項6】
第2の誤差を決定することは、カメラ内在性に従って前記第1の点をひずませないことを含むこと
を特徴とする請求項5に記載のシステム。
【請求項7】
前記車両は自律車両であり、1つまたは複数の前記コンピュータ可読媒体は、1つまたは複数の前記プロセッサによって実行可能なさらなる命令を記憶し、
前記さらなる命令は、
較正関数に少なくとも部分的に基づいて、較正されたデータとして、前記複数のカメラから受信された追加の画像データを較正することと、
前記較正されたデータに少なくとも部分的に基づいて、前記自律車両を制御するための軌道を生成することと、
前記軌道に少なくとも部分的に基づいて前記自律車両を制御することと、
を含む動作を
前記システムに実施させること
を特徴とする請求項1
乃至6のいずれか1項に記載のシステム。
【請求項8】
システム上に配設された第1のカメラによってキャプチャされた環境の第1の画像を含む第1の画像データを受信することであって、前記第1のカメラは、第1の視野を有する、ことと、
前記システム上に配設された第2のカメラによってキャプチャされた前記環境の第2の画像を含む第2の画像データを受信することであって、前記第2のカメラは、前記第1の視野と少なくとも部分的に重複する第2の視野を有する、ことと、
複数の点ペアを決定することであって、前記点ペアの各々は、前記第1の画像中の第1の点、および前記第1の点に対応する前記第2の画像中の第2の点を含む、ことと、
前記複数の点ペアのうちの個々の点ペアについて射影誤差を決定することであって、前記誤差は、少なくとも部分的に、前記第1の点と、前記第1の画像中の前記第2の点に対応するエピポーラ線との間の距離を含む、ことと、
前記射影誤差に少なくとも部分的に基づいて、前記複数の点ペアのサブセットを決定することと、
前記複数の点ペアの前記サブセットから、前記第1のカメラおよび前記第2のカメラの推定された相対的体勢を表す較正関数を決定することと、
を備えたこと
を特徴とする方法。
【請求項9】
前記射影誤差を決定することは、
基本行列を決定することと、
前記複数の点ペアのうちの個々について、および前記基本行列に少なくとも部分的に基づいて、前記第2の点に対応する前記エピポーラ線を決定することと、
前記第1の画像中に前記エピポーラ線を射影することと、
前記第1の点と前記第1の画像中の前記エピポーラ線との間の距離を決定することと、
を含むこと
を特徴とする請求項8に記載の方法。
【請求項10】
前記複数の点ペアを決定することは、
前記第1の画像から複数の第1の特徴を抽出することと、
前記第2の画像から複数の第2の特徴を抽出することと、
一致した特徴として、前記複数の第1の特徴からの第1の特徴と、前記複数の第2の特徴のうちの第2の特徴とを一致させることと、
前記複数の点ペアとして、
前記一致した特徴に関連付けられた複数のピクセルを決定することと、
を含み、
前記複数の第1の特徴および前記複数の第2の特徴は、FREAK、AKAZE、FAST、SURF、SIFT、ORB、またはBRIEF特徴のうちの1つまたは複数を含むこと
を特徴とする請求項8又
は9に記載の方法。
【請求項11】
前記射影誤差は第1の誤差であり、前記方法は、
前記複数の点ペアのうちの個々の点ペアについて第2の誤差を決定することであって、前記第2の誤差は、少なくとも部分的に、前記第1の点と、対応する前記第2の点の再射影との間の距離を含み、前記再射影は、前記第1の点の推定された深度に少なくとも部分的に基づく、こと
をさらに備え、
前記複数の点ペアの前記サブセットは、前記第2の誤差に少なくとも部分的に基づいてさらに決定され、
前記較正関数は、前記第1のカメラまたは前記第2のカメラの推定されたカメラ内在性をさらに表すこと
を特徴とする請求項8に記載の方法。
【請求項12】
自律車両上に配設されたlidarセンサによってキャプチャされた前記環境の点群を含むlidarデータを受信することであって、前記点群は、前記第1の視野と重複する前記第2の視野の部分に関するデータを含む、ことと、
前記点群を前記第1の画像または前記第2の画像と比較することと、
前記比較することに少なくとも部分的に基づいて、前記第1のカメラまたは前記第2のカメラのうちの少なくとも1つと前記lidarセンサとの不整合を表す補正関数を決定することと、
をさらに備えたこと
を特徴とする請求項8
乃至11のいずれか1項に記載の方法。
【請求項13】
前記第1の画像または前記第2の画像中のエッジを検出することと、
前記lidarデータ中の複数の深度不連続性を決定することと、
複数の射影点として前記複数の深度不連続性を前記第1の画像または前記第2の画像中に射影することによって前記複数の深度不連続性を前記エッジと比較することと、
前記エッジと前記複数の射影点との間の距離を決定することと、
をさらに備え、
前記補正関数は、前記距離に少なくとも部分的に基づいて決定されること
を特徴とする請求項12に記載の方法。
【請求項14】
前記複数の点ペア
の第1のサブセットを決定することまたは前記複数の点ペア
の第2のサブセットを決定することのうちの少なくとも1つは、
前記第1の点と、前記エピポーラ線また
は再射影のうちの少なくとも1つとを含んでいる画像
のセットのうちの画像を複数の領域に分割することと、
前記複数の領域のうちの個々について点ペアのサブセットを決定することと、
を含み、
前記複数の点ペアの前記第1のサブセットまたは前記複数の点ペアの前記第2のサブセットは、前記点ペアのサブセットを含み、
前記較正関数を決定することは、前記点ペアと前記複数の領域との間の関連付けに基づいて、前記複数の点ペアのうちの個々に重み係数を適用することを含むこと
を特徴とする請求項8
乃至13のいずれか1項に記載の方法。
【請求項15】
1つまたは複数のプロセッサによって実行されたとき、請求項8
乃至14のいずれか1項に記載の方法を前記1つまたは複数のプロセッサに実行させる命令が格納された非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、センサ較正に関する。
【背景技術】
【0002】
本PCT国際出願は、2018年6月29日に出願された米国特許出願第16/023,571号明細書、および2018年6月29日に出願された米国特許出願第16/023,507号明細書の優先権の利益を主張し、それらの両方の開示は参照により本明細書に組み込まれる。
様々なシステムによるセンサの使用は、正確な較正が有効であることを要求する。たとえば、自律車両は、オブジェクト、たとえば、車両に接近しているオブジェクトおよび/または車両が接近しているオブジェクトを検出するために、多様なカメラ、LIDARセンサ、radarセンサなどを有することがあり、それらのオブジェクトに対してナビゲートするためにそれらのオブジェクトに関するセンサデータが必要である可能性がある。他の歩行者、自転車に乗る人、および他の車両が存在し得るものを含む、いくつかの環境では、そのようなセンサが適切に較正されない場合、潜在的に致命的な衝突が発生し得る。現在の較正技法は、センサを較正するために、基準マーカなどのインフラストラクチャを使用する。たとえば、基準マーカのデータをキャプチャすることによって、補正項が決定され、その後にキャプチャされたデータに適用されることが可能である。インフラストラクチャは、システムが製造される場所または他の場所では容易に利用可能であり得るが、後の較正は、インフラストラクチャを有する場所にシステム(たとえば自律車両)を持ってくることを要求し、システムにとって望ましくないダウンタイムを生じ、および/または、ナビゲーションのためにセンサに依拠する例では、その場所への潜在的に安全でない移動を生じる。さらに、現在の較正技法は、人間の操作者を必要とすることがあり、それにより、処理は手作業で、遅く、潜在的に不正確になり得る。これらの欠点を緩和することを試みる既存の較正技法は、しばしば計算コストが高い。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許出願第15/674,853号明細書
【文献】米国特許出願第15/675,487号明細書
【図面の簡単な説明】
【0004】
詳細な説明について、添付の図を参照しながら説明する。図では、参照番号の最も左の数字は、その参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、同様または同等の構成要素または特徴を示す。
【0005】
【
図1】本明細書で説明される自律車両上に取り付けられたセンサの外在性特性を較正するための例示的な方法を示す、テキストの視覚的なフローチャートである。
【
図2】本明細書で説明される自律車両上に取り付けられたセンサの内在性特性を較正するための例示的な方法を示す、テキストの視覚的なフローチャートである。
【
図3】本明細書で説明される画像中のデータをフィルタ処理するための例示的な方法を示す、テキストの視覚的なフローチャートである。
【
図4】例示的な車両上に取り付けられた多様なセンサを示す例示的な車両の平面図である。
【
図5】本明細書で説明される、センサ較正の実施形態を実装するための例示的なシステムのブロック図である。
【
図6】本明細書で説明される実装による、カメラ対カメラ較正およびカメラ対センサ較正を使用してセンサを較正するための例示的な処理を示す図である。
【
図7】本明細書で説明される実装による、センサの内在性特性を較正するための例示的な処理を示す図である。
【
図8】本明細書で説明される実装による、較正されたセンサデータに少なくとも部分的に基づいて自律車両を制御するための別の例示的な処理を示す図である。
【発明を実施するための形態】
【0006】
本明細書で説明される技法は、インフラストラクチャなしに、たとえば基準マーカなしに、システムのセンサを較正することを対象とする。概して、そのような較正は、(何らかの原点、たとえば別のセンサ、システムの原点などに対して、センサの場所もしくは配向のうちの1つもしくは複数を決定することである)「外在性」較正、または(センサ自体に関する1つもしくは複数のパラメータ、たとえば、焦点距離、中心点、レンズひずみモデルなどを決定することである)「内在性」較正のいずれかを指し得る。本明細書全体にわたって、そのようなシステムの例は、(様々な様式の)多様なセンサを有する自律車両であるが、任意の他のシステム(たとえば、多様な画像センサを有するスマートフォン、様々なセンサ様式を有するロボットマニピュレータなど)が企図される。そのような(すなわち、システムが自律車両である)一例では、自律車両は、重複する視野を表すことが可能な(同じまたは異なる様式の)多様なセンサを含むことが可能である。第1のセンサ、たとえば、第1のカメラは、環境の第1のデータ、たとえば、第1の画像をキャプチャすることが可能であり、第2のセンサ、たとえば、第2のカメラは、環境の第2のデータ、たとえば、第2の画像をキャプチャすることが可能である。第1および第2のセンサが(互いに対して、車両に対して、および/または内部で)正しく較正されるとき、第1のデータと第2のデータとを組み合わせて環境の整合された表現を生成することが可能である。しかしながら、センサが不適切に較正されるときには、センサデータを組み合わせると、環境の不正確な、または「ぼやけた」表現が生じ得る。現実世界の例では、自律車両に適用されるとき、および極めて正確な較正の要求の実施のとき、0.5度程度のセンサの不整合により、100メートル離れているオブジェクトが進んでいるレーンを確実に決定することができなくなり得る。しかしながら、手動で較正されるとき、車両、センサ、およびマウントの物理的公差は、約2.0度程度の確実さしか位置公差に提供し得ない。したがって、センサは、設置時に不整合になる可能性を有する。
【0007】
本明細書で説明される例では、較正技法は、車両上に取り付けられたカメラのアレイを較正するために使用されることが可能である。いくつかの実装では、カメラは、自律車両の周りの360度をカバーする画像をキャプチャするために取り付けられ得る。較正技法は、較正データを決定するためにエピポーラ幾何を使用することを含むことが可能である。より詳細には、技法は、重複する視野をもつ2つのカメラによって実質的に同時にキャプチャされた画像中の点ペアを決定することを含むことが可能である。たとえば、点ペア中の第1の点は、第1の画像中の特徴に対応することがあり、点ペア中の第2の点は、異なるカメラによってキャプチャされた第2の画像中の同じ特徴に対応することがある。点ペアが決定されると、各点ペアについて誤差の量が決定されることが可能であり、誤差に基づいて点ペアのサブセットが選択され得る。いくつかの実装では、誤差の量は、第1の画像または第2の画像上の点に関連付けられたエピポーラ線を、第1の画像および第2の画像のうちの他方の上に射影し、それらのエピポーラ線を、以前に識別された点と比較することによって決定される、射影誤差に対応し得る。点ペアに関連付けられた較正データが決定され、次いで、点がエピポーラ線に沿って存在するように制約されるように、互いに対してカメラを較正するために使用されることが可能である。
【0008】
いくつかの事例では、較正技法はまた、車両に対して、較正されたカメラを制約することを含むことが可能である。たとえば、本明細書で説明される技法は、車両に対してカメラを較正するために、うまく較正されているlidarデータ(たとえば、点群データ)を使用し得る。いくつかの実装では、本明細書で説明される技法は、たとえば、キャニーエッジ検出アルゴリズムを使用して、画像データを分析して特徴エッジを決定し、深度不連続性を示すlidarデータ中の点をこれらの特徴エッジと比較し得る。
【0009】
したがって、いくつかの実装では、エピポーラ幾何を使用して、対応する画像を分析し、複数のカメラを互いに対して整合させ得る。しかしながら、エピポーラ幾何は、環境の3次元態様を考慮しないので、この分析は、カメラを互いに対して整合させることしかできないことがある(たとえば、センサのグループとしてのカメラは、正しいスケールを欠くことがあるか、または場合によっては、x方向、y方向、z方向、ロール、ピッチ、もしくはヨーのいずれか1つまたは複数に対してオフセットされることがある)。環境の3次元特性(たとえば、特徴エッジ)を考慮するlidarデータを使用してカメラセンサをさらに制約し、それにより、どのようなスケールあいまいさおよび/または並進/回転オフセットをも除去し得る。これらの2つの較正は、画像データおよびlidarデータの大きいセットにわたって、同時に、たとえば、並列に実施され、自律車両上のカメラの外在性特性、たとえば、物理的不整合を較正するのに有用な較正データを決定し得る。いくつかの事例では、較正データは、いくつかのカメラの各々からの多様な画像を、およびいくつかの事例では、lidarデータを検討することによって、最適な解において収束し得る、期待値最大化アルゴリズムを適用することによって決定され得る。
【0010】
いくつかの事例では、本明細書で説明される較正技法はまた、1つまたは複数の内在性特性についての較正を実施するために使用されることが可能である。内在性特性の例は、限定はされないが、レンズひずみ、焦点距離、中心点、伝達媒体などを含む。追加の較正特性は、限定はされないが、(たとえば、1つまたは複数のセンサから受信されるデータの)時間遅延、温度、圧縮などを含み得る。
【0011】
本明細書で論じられる較正技法は、自律車両上のセンサ、たとえば、カメラのアレイにとって最適な較正を決定するためのフレームワークを提供することによって、コンピューティングデバイスの機能を改善することが可能である。本明細書で説明される較正技法を使用して1つまたは複数のカメラを較正することによって、カメラは、環境に関して高い正確度および精度で環境を表すデータを生成することが可能である。たとえば、このようにして較正されたカメラは、セグメント化、分類、ルートプランニングなどのためにより正確なデータを提供することが可能であり、それは、最終的に、運転中のより良い安全結果に導くことが可能である。さらに、カメラのそのような改善された較正は、たとえば、セグメント化、分類などのためのより正確な開始点およびより良好に融合されたデータを提供することによって、処理および知覚システムを改善し得る。コンピューティングデバイスの機能に対するこれらおよび他の改善が論じられる。
【0012】
本明細書で論じられる較正技法はまた、従来の較正に対する改善を表す。たとえば、過去において、較正技法は、基準マーカまたは他のインフラストラクチャをしばしば必要とした。たとえば、いくつかの技法は、車両をターンテーブル上に取り付け、車両上のセンサによってキャプチャされるデータを監視しながら車両を物理的に回転させることを含んでいた。他のシステムは、人間の操作者がそのような車両のセンサ中のそのような基準を振ることを必要とした。そのような従来の較正技法は、限られた柔軟性という欠点があり、追加のおよび/または特殊な較正機器をしばしば必要とし、および/または、次善の較正センサをもたらす。対照的に、本明細書で説明される技法は、インフラストラクチャなしの較正を許可し得る。たとえば、本明細書で説明される技法は、車両が環境中を横断するときの較正の変更について、たとえば、新しいデータが記録されるとそれを検討することによって、自動的に調整することが可能であり得る。その上、説明される技法は、多様なカメラによって同時にキャプチャされた画像を含む画像データのみを必要とするので、較正センサは、履歴データ上でおよび/またはシミュレートデータ上で行われ得る。このようにして、本明細書で論じられる技法は、従来の較正に対する有意な改善を表す。
【0013】
本明細書で説明される方法、装置およびシステムは、いくつかの仕方で実装されることが可能である。例示的な実装が、以下の図を参照しながら以下で提供される。自律車両のコンテキストにおいて論じられるが、本明細書で説明される方法、装置、およびシステムは、使用前および/または使用中にセンサの較正を必要とする様々なシステムに適用されることが可能であり、自律車両に限定されない。別の例では、本方法、装置、およびシステムは、航空コンテキストにおいて利用され得る。さらに、本明細書で説明される技法は、(たとえば、1つもしくは複数のセンサを使用してキャプチャされた)現実のデータ、(たとえば、シミュレータによって生成された)シミュレートデータ、またはこれらの2つの任意の組合せとともに使用され得る。
【0014】
図1は、本開示の実装による、自律車両上に配設されたカメラを較正するための例示的な処理100の絵入りの流れ図を示す。この例では、処理100は、エピポーラ幾何を使用して、自律車両上のカメラの不整合、たとえば、物理的不整合を補正する。
【0015】
動作102において、処理は、多様なカメラにおいて環境の画像をキャプチャすることを含むことが可能である。一例では、動作102は、自律車両上に配設された複数のカメラから画像をキャプチャすることを含むことが可能である。本明細書の開示から諒解されるように、各カメラが別のカメラと重複している視野を有する任意数のカメラが、本明細書で説明される較正技法を使用することが可能である。動作102に付随する例は、車両104上に配設された第1のカメラ106(1)および第2のカメラ106(2)を有する車両104を示している。図示の例では、車両104は、概して矢印108によって示される方向に環境中を横断しているが、他の実施形態では、車両は、静止しているかまたは異なる方向に移動していてよい。また図示のように、第1のカメラ106(1)は、画像110(1)などの画像データをキャプチャし、第2のカメラ106(2)は、第2の画像110(2)などの画像データをキャプチャする。図示の実施形態では、カメラ106(1)、106(2)は、概して隣り合わせに構成され、両方とも進行方向を向き、それらの視野は有意に重複している。少なくともいくつかの例では、各カメラからの多様な画像(たとえば2)が使用されてよい。以下で詳細に説明されるように、カメラにわたって複数の画像で一致している特徴は、より良い(たとえばよりロバストな)特徴選択をもたらし得る。
【0016】
画像110(1)と画像110(2)が実質的に同じ時間にキャプチャされた場合、カメラ106(1)、106(2)が適切に整合されているとき、画像110(1)を画像110(2)上に射影すると、たとえば、カメラ106(1)とカメラ106(2)との間で変換を実施すること(すなわち並進または回転のうちの1つまたは複数を実施すること)によって、画像の整合が生じるはずである。しかしながら、上記で論じられたように、多くの要因が、互いに対するカメラ106(1)、106(2)の実際の並進および/または配向に影響を及ぼす可能性があり、各々が全体的な不整合に寄与する。たとえば、カメラ106(1)、106(2)、車両104、車両104上にカメラ106(1)、106(2)を保持するカメラマウント(不図示)などに関連付けられた製造および/またはアセンブリの公差は、互いに対して(および期待値に対して)カメラ106(1)、106(2)の不整合をもたらし得る。さらに、そのようなカメラ106(1)、106(2)は、通常の運転を通して不整合になることがある。本明細書で説明される技法は、これらおよび他の原因によって引き起こされる不整合を補正する際に有用である。
【0017】
動作112において、処理は、点ペアを識別することを含むことが可能である。より詳細には、動作112は、重複する第1の画像110(1)および第2の画像110(2)の部分について、第1の画像110(1)中の第1の点114a、116a、118b、120a、122a、124a、126a、128a、130a、132a、および第2の画像110(2)中の第2の点114b、116b、118b、120b、122b、124b、126b、128b、130b、132bを識別し得る。この例では、第1の点および第2の点は画像特徴であってよく、たとえば、第1の点114aは、第1の画像110(1)中の画像特徴または部分に対応し、第2の点114bは、第2の画像110(2)中の同じ画像特徴または部分に対応し、第1の点116aは、第1の画像110(1)中の別の画像特徴または部分に対応し、第2の点116bは、第2の画像110(2)中の同じ別の画像特徴または部分に対応し、以下同様である。このようにして、カメラが適切に整合されているとき、較正関数は、第1の点114aおよび第2の点114bを整合させる。本明細書で使用されるとき、第1の点114aおよび第2の点114bは第1の点ペアを構成し、第1の点116aおよび第2の点116bは第2の点ペアを構成し、以下同様である。そのような画像特徴は、たとえば、AKAZE、BRISK、SURF、SIFT、ORB、BRIEF、FAST、FREAK、埋め込みなどに対応し得る。カメラごとに多様なフレームを使用する例では、そのような特徴一致は、フレーム間でおよび/またはカメラ間で実施され得る。
【0018】
動作112は、特徴一致を使用して、点の間の対応を決定し、たとえば、点ペアを識別し得る。たとえば、部分的に重複しているビューを仮定すると、本明細書で説明される技法は、対応する画像から画像特徴、たとえば、局所的特徴を抽出し、一致させ得る。いくつかの実装では、一致は、たとえば、第1の画像110(1)および第2の画像110(2)など、実質的に同じ時間に露光された2つのカメラフレームからの画像の2つのセットの間で前後に一貫性のある一致に基づいて選択され得る。いくつかの実装では、点ペアは、さらに、いくつかの画像特徴をフィルタ除去することによって決定され得る。たとえば、点は、一致スコア、ネイバー比しきい値(たとえば、Loweの第1対第2のネイバー比しきい値)に基づいて、および/または初期較正とのカメラ-カメラ制約の違反に基づいてフィルタ処理されることが可能である。本明細書で説明される例は、カメラ-カメラ制約のためのすべての画像の痕跡にひずみがないときに生じ得る良好な内在性較正を仮定し得、最適化は、線形の(または他の方法で修正された/ひずみのない)カメラモデル上で動作する。例示的な付随する動作112には10個の点ペアが示されているが、本明細書で説明される特徴一致技法は、点ペアのより小さいまたはより大きいセットを提供し得る。非限定的な一例では、2つの画像110(1)、110(2)間で数百個の点ペア、たとえば、最高約300個の点ペアが決定され得る。その上、明確にするために
図1の例は画像の単一のペア、すなわち、第1の画像110(1)および第2の画像110(2)のみを示しているが、他の実装では、一致は、限定はされないが、ビデオストリーム中のフレームなどを含む一連の画像を見て、フレーム間での特徴の一致を決定することによって行われてよい。
【0019】
動作134において、処理は、点ペアに関連付けられた誤差を決定することを含むことが可能である。たとえば、本明細書で説明される技法は、エピポーラ形状を利用して、一方の画像中の点(たとえば、画像特徴)と、他方の画像中の点ペアに対応するエピポーラ線との間の射影誤差に基づいて誤差を決定し得る。少なくとも1つの例では、そのような誤差は、点とエピポーラ線との間の距離を含み得る。
図1の動作134に付随する図式例は、この技法の可視化を提供する。特に、この例は、第2の画像110(2)、および明確にするために、第2の画像110(2)の拡大された部分136を示している。第2の点を含むことに加えて、動作134の実装では、(線分として可視化されている)エピポーラ線が第2の画像110(2)に追加されている(とはいえ、そのような線は、説明のために示されており、較正中に必ずしも示されない)。拡大された部分136において最も良く示されているように、エピポーラ線は、線138、140、142、144として可視化される。線138は、第2の画像110(2)中の(第1の画像110(1)からの)点114aに関連付けられたエピポーラ線の部分を表し、線140は、第2の画像110(2)中の(第1の画像110(1)からの)点118aに関連付けられたエピポーラ線の部分を表し、線142は、点120aに関連付けられたエピポーラ線の部分を表し、線144は、第2の画像110(2)中の点130aに関連付けられたエピポーラ線の部分を表す。カメラが適切に較正されたとき、線138、140、142、144の各々は、画像中の対応する点と合致すべきである。点と線とが合致しない箇所はセンサ不整合を示す。
【0020】
エピポーラ線は、エピポーラ幾何の原理を使用して計算され得る。エピポーラ幾何では、基本行列が、2つの位置、たとえば2つのカメラ、からキャプチャされた3次元環境中の点の間の幾何学的な関係を概して記述する。
図1の例では、基本行列は、エピポーラ線を計算するために使用されることが可能である。本開示の実装では、基本行列は、1つもしくは複数のセンサ(たとえば、カメラ196(1)、106(2))に対する自律車両の体勢(pose)に基づいて、カメラの内在性較正に関係する行列に基づいて、および/またはカメラの外在性較正に関連付けられた6の自由度に基づいて計算される変換を使用して決定され得る。たとえば、本開示の実装は、外在性不整合、たとえば、物理的不整合、および車両の体勢について較正するために使用されてよく、カメラに関連付けられた内在性較正を記述する行列は、基本行列の計算中に固定であってよく、外在性較正に関連付けられた6の自由度は自由パラメータである。
【0021】
動作150において、処理は、点ペアのサブセットを決定することを含むことが可能である。動作134は、たとえば、線140と点118bとの間の距離、線144と点130bとの間の距離などとして、個々の点について射影誤差を計算することを含み得る。いくつかの実装では、しきい値距離だけまたはしきい値距離を超えて離間された点と線との組合せは、点ペアのサブセットから除外されることが可能である。いくつかの例では、点の位置または場所をも使用して、動作150において決定されたサブセット中に点が含まれるかどうかを決定し得る。たとえば、たとえば、画像の一部分中にのみクラスタリングされた点の代わりに、画像全体にわたって分散されたサブセット中の点を保持することが望ましいことがある。したがって、たとえば、点ペアのサブセットを決定するために、画像中の点の間の距離、および/または各点と(画像エッジまたは画像中心などの)何らかの基準点との間の距離も使用されてよい。他の実装は、これらの点特性の組合せを考慮し得る。たとえば、いくつかの実装では、第1のしきい値距離以上の距離を有する点と線との組合せは、サブセットから除外され得るが、第2のしきい値距離以上で第1のしきい値距離未満の距離を有する点と線との組合せは、それらが、画像エッジのしきい値距離内にあるかまたは近隣点からのしきい値距離を上回る場合にのみ、保持される。その上、
図3は、画像にわたって良好な点密度を維持する例を示している。点ペアのサブセットを決定するために他の要因も考慮されてよい。
【0022】
サブセットが決定されると、2つのカメラ106(1)、106(2)の間の相対的変換のための新しい推定値を決定するための最適化が実施されてよい。少なくともいくつかの事例では、最適化は、各画像の各走査線に一意の体勢に関連付けられ得る。たとえば、ローリングシャッターカメラを使用するとき、各走査線は、一意のタイムスタンプおよび一意の体勢に関連付けられてよく、したがって、最適化は、各走査線の相対的体勢のために、更新された推定値をもたらし得る。更新された推定値に基づいて、処理100は、再び、すなわち、動作134において、誤差を決定し得る。このように、処理は、点ペアのセットが間引きされて、外れ値、たとえば、特徴一致から生じる外れ値が除去され、基本行列が最適化される、繰り返し処理であってよい。実装では、最適化は、好ましい解に到達するために、期待値最大化アルゴリズムを使用して実施されることが可能である。繰り返しの数は、固定であってもまたは適応的であってもよい。たとえば、点ペアのサブセット全体についての点と線との組合せの各々に関連付けられた誤差がしきい値距離以下であるか、または点のサブセットが点のしきい値数以下であるとき、処理100は動作152に進み得る。
【0023】
動作152において、処理は、カメラ間の不整合(たとえば、物理的不整合)を補正するための補正関数を生成することを含むことが可能である。本明細書で説明される例はエピポーラ幾何を使用して画像間の整合を決定するので、較正関数は、互いに対してカメラを制約するにすぎないことがあり、スケールあいまいさを含んでいることがある。たとえば、処理100は3D形状および/または深度を推定しないので、各カメラについて6の自由度(すなわち、x並進、y並進、z並進、ロール、ピッチ、ヨー)のうちの5のみが完全に制約される。これらの制約を用いて両方のカメラ106a、106bを最適化すると、スケール、位置および回転が未決定であり、各カメラについて1の並進自由度がある、カメラの自己矛盾のない整合が生じる。
【0024】
処理100は、たとえば、基準マーカまたは他のインフラストラクチャにではなく、実質的に同時にキャプチャされた画像を備える画像データにのみ依拠するので、処理100は、時間または場所に関係なく実装されることが可能である。いくつかの実装では、処理100は、自律車両104が動作している間に、リアルタイムに実装されることが可能である。このようにして、本明細書で説明される実装は、センサ不整合が発生すると、その不整合を補正して、改善されたセンサ精度を促進し得る。
【0025】
本明細書でさらに説明されるように、処理100は、第6の自由度をも制約する1つまたは複数の処理とともに実装され、それにより、完全な較正関数がカメラに提供され得る。たとえば、
図6に関してさらに説明されるように、lidarセンサによってキャプチャされた点群データの形式の深度情報が、深度不連続性を決定するために使用されてよく、この深度不連続性は、画像中で検出されたエッジにマッピングされることが可能である。期待値最大化アルゴリズムを使用して、処理100におけるように、エピポーラ幾何、ならびに3次元深度および位置を考慮して、カメラペアにとって最適化された較正関数に到達し得る。
【0026】
その上、
図1は、2つのカメラ106(1)、106(2)がその上に取り付けられた車両104を示し、処理100は、2つのカメラ106(1)、106(2)を較正するために使用されるものとして説明されているが、処理100は、1つのカメラのペアよりも多くを較正するために有用であり得る。特に、処理100は、各カメラが別のカメラの視野と重複する視野を有する限り、任意の数のカメラを較正するために使用されることが可能である。
【0027】
処理100は、互いに対してカメラ106(1)、106(2)を較正するためには有用であり得るが、処理100は、カメラの内在性を較正するためには有用でないことがある(実際、
図1の処理では、カメラ内在性に関係するパラメータは、固定であり(すなわち、正しいと仮定され)得る)。しかしながら、
図2は、内在性特性、たとえば、環境条件の変化から生じるレンズひずみ、焦点距離、中心点などを較正するために本開示の実装において使用され得る処理200を示す。
【0028】
より詳細には、
図2は、本開示の実装による、自律車両上に配設されたカメラを較正するための例示的な処理200の絵入りの流れ図を示す。この例では、処理100は、自律車両上のカメラの不整合、たとえば、内在性不整合を補正するための技法を使用する。
【0029】
動作202において、処理は、多様なカメラにおいて環境の画像をキャプチャすることを含むことが可能である。動作202に付随する例は、車両204上に配設された第1のカメラ206(1)および第2のカメラ206(2)を有する車両204を示している。また図示のように、第1のカメラ206(1)は、画像208(1)などの画像データをキャプチャし、第2のカメラ206(2)は、第2の画像208(2)などの画像データをキャプチャする。図示の実施形態では、カメラ206(1)、206(2)は、概して隣り合わせに構成され、両方とも進行方向を向き、それらの視野は有意に重複しているが、(実質的に同時にまたは異なる時間にわたってキャプチャされる)観測される環境中に何らかの重複がある限り、カメラ206の任意の相対的配置が企図される。動作202は、動作102と実質的に同じであってよく、したがって、本明細書でさらに詳述されない。
【0030】
画像208(1)と画像208(2)が実質的に同じ時間にキャプチャされた場合、カメラ206(1)、206(2)が適切に整合されているとき、画像208(1)を画像208(2)上に射影すると、たとえば、カメラ206(1)とカメラ206(2)との間で変換を実施すること(すなわち並進または回転のうちの1つまたは複数を実施すること)によって、画像の整合が生じるはずである。しかしながら、上記で論じられたように、多くの要因が、互いに対するカメラ206(1)、206(2)の実際の較正に影響を及ぼすことがあり、各々が全体的な不整合に寄与する。たとえば、限定はされないが、焦点距離、レンズ形状、中心点、対応する係数をもつカメラモデル(線形、多項式など)などのひずみパラメータを含む、カメラ206(1)、206(2)に関連付けられた製造および/またはアセンブリ公差が、誤差の導入をもたらし得る。たとえば、初期の内在性較正が正しいことがあるが、カメラレンズは、たとえば、温度変動、定期保守などを通して、時間とともにひずみ得る。本明細書で説明される技法は、これらおよび他の原因によって引き起こされ得るカメラ内在性の誤差を補正する際に有用である。
【0031】
動作210において、処理は、点ペアを識別することを含むことが可能である。より詳細には、動作210は、重複する第1の画像208(1)および第2の画像208(2)の部分について、第1の画像208(1)中の第1の点212a、214a、216a、218a、220a、222a、224a、226a、228a、230a、および第2の画像208(2)中の第2の点212b、214b、216b、218b、220b、222b、224b、226b、228b、230bを識別し得る。この例では、第1の点および第2の点は画像特徴であってよく、たとえば、第1の点212aは、第1の画像208(1)中の画像特徴または部分に対応し、第2の点212bは、第2の画像208(2)中の同じ画像特徴または部分に対応し、第1の点214aは、第1の画像208(1)中の別の画像特徴または部分に対応し、第2の点214bは、第2の画像208(2)中の同じ別の画像特徴または部分に対応し、以下同様である。このようにして、カメラが適切に整合され、正しい内在性が既知であるとき、較正関数は、(たとえば、無ひずみ、移転などについて較正された内在性および外在性を使用して)一方の画像から他方にマッピングしたとき、整合している第1の点212aおよび第2の点212bをもたらす。本明細書で使用されるとき、第1の点212aおよび第2の点212bは第1の点ペアを構成し、第1の点214aおよび第2の点214bは第2の点ペアを構成し、以下同様である。そのような画像特徴は、たとえば、AKAZE、BRISK、SURF、SIFT、ORB、BRIEF、FAST、FREAKなどに対応し得る(ただし、任意の埋め込みまたはそれ以外も企図される)。
【0032】
動作210は、上記で説明された動作112と実質的に同じであってよい。たとえば、動作210は、上記で説明されたように、特徴一致を使用して、点の間の対応を決定し、たとえば、点ペアを識別し得る。追加の詳細はここで繰り返されない。また上記で説明されたように、例示的な付随する動作210には10個の点ペアが示されているが、本明細書で説明される特徴一致技法は、点ペアのより小さいまたはより大きいセットを提供し得る。非限定的な一例では、2つの画像208(1)、208(2)間で数百個の点ペア、たとえば、最高約300個の点ペアが決定され得る。その上、明確にするために
図1の例は画像の単一のペア、すなわち、第1の画像110(1)および第2の画像110(2)のみを示しているが、他の実装では、一致は、限定はされないが、ビデオストリーム中のフレームなどを含む一連の画像を見て、フレーム間で特徴が一致すると決定することによって行われてよい。たとえば、特徴は、第1のカメラ206(1)および第2のカメラ206(2)からの複数の画像にわたって一致させられ得る。非限定的な一例では、画像208(1)は、第1のカメラ206(1)からの1つまたは複数の追加の画像とともに使用されてよく、画像208(2)は、第2のカメラ206(2)からの1つまたは複数の追加の画像とともに使用されてよい。部分的に重複しているビューを仮定すると、本明細書で説明される技法は、それらの特徴を示す多様な画像から、画像特徴、たとえば、局所的な特徴を抽出し、一致させ得る。いくつかの実装では、一致は、たとえば、第1の画像208(1)および第2の画像208(2)など、実質的に同じ時間に露光された2つのカメラフレームからの画像の2つのセットの間で前後に一貫性のある一致に基づいて選択され得る。
【0033】
良好な内在性較正を仮定し得る例示的な処理100とは異なり、処理200は、内在性較正に関連付けられたパラメータについて解くために使用され得る。たとえば、処理200は、点ペアを利用して、(ひずみパラメータ、焦点、画像中心点などの)カメラ内在性、カメラのための点の深度、および/またはカメラ間の相対的体勢を決定し得る。その上、本明細書で説明される技法は、レンズひずみ特性についてデータを較正し得る。レンズひずみを補正することは、たとえば、非線形カメラにとって特に有用であり得る。
【0034】
動作232において、処理200は、点ペアに関連付けられた誤差を決定することが可能である。より詳細には、点ペアを使用して、処理200は、たとえば、内在性特性の推定値を決定するために、それらの内在性特性について最適化を実施し得る。そのような最適化の早期の繰り返しが、動作232に付随する可視化234に示されている。特に、可視化234は、第2の画像208(2)、および明確にするために、第2の画像208(2)の拡大された部分236を示している。第2の点を含むことに加えて、可視化234は、第2の点の各々について、白抜きの円および「x」を含む(ただし、そのようなシンボルは、説明のために示されており、必ずしも較正中に示されない)。
【0035】
拡大された部分236において最も良く示されているように、点212bは、関連付けられた白抜きの円238を有し、点216bは、関連付けられた白抜きの円240を有し、点228bは、関連付けられた白抜きの円242を有する。上記で論じられたように、点212b、216b、228bは、特徴(たとえば、ひずんだ場所)の検出された場所を概して表し、この例では、白抜きの円238、240、242は、環境中の関連付けられた特徴の再射影を表す。たとえば、各白抜きの円238、240、242は、点212b、216b、228bに対応する第1の点の再射影を表す。より詳細には、白抜きの円238は、第1の画像208(a)から第2の画像208(b)への点212aの再射影を表し得、白抜きの円240は、第1の画像208(a)から第2の画像208(b)への点216aの再射影を表し得、白抜きの円242は、第1の画像208(a)から第2の画像208(b)への点228aの再射影を表し得、各々は、点の関連付けられた深度を仮定している。たとえば、射影された白抜きの円238、240、242は、関連付けられた点212b、216b、228bの推定された深度に少なくとも部分的に基づき得る。したがって、可視化において、点212bの再射影最適化に関連付けられた誤差は、点212bと白抜きの円238との間の距離、たとえば、ピクセルで測定されたユークリッド距離であり得る。同様に、点216bに関連付けられた誤差は、点216bと白抜きの円240との間の距離であり得、点228bに関連付けられた誤差は、点228bと白抜きの円242との間の距離であり得る。したがって、可視化において、カメラが適切に較正されたとき、白抜きの円は、関連付けられた点と同心になる。点と白抜きの円とが同心でない場合には、誤差が依然として存在する。
【0036】
既知の内在性を有するカメラおよび/または線形カメラでは、たとえば、焦点距離、中心点、およびひずみ特性を制約することによって、点の深度についてのみ解くことが可能である。しかしながら、いくつかの実装では、処理200はまた(または代替として)、これらの他の内在性特性について解いてよい。上述されたように、画像の各々の中の点は、検出された点(たとえば、特徴)である。いくつかの事例では、たとえば、カメラが線形カメラでないとき、点は、ひずんだ画像中に検出されることがある。可視化234中の各「x」は、(たとえば、カメラ内在性を使用して無ひずみを実施することによって)検出された特徴に対応するひずみのない点を示す。拡大された部分236において最も良く示されているように、点212bは、関連付けられた「x」244を有し、点216bは、関連付けられた「x」246を有し、点228bは、関連付けられた「x」248を有する。この例では、各「x」244、246、248は、点212b、216b、228bの各々のひずみのない場所を表し、線によって対応する点212b、216b、228bに接続される。たとえば、図示のように、最大のひずみが画像のエッジにある一方で、ひずみは、画像の中心では可能性が低くなり得ることが予想され得る。本開示の実装は、このひずみに関連付けられた誤差を補正し得、たとえば、点ペアにわたって内在性誤差最適化を実施することによって内在性誤差を補正し得る。図示されていないが、最適化に関連付けられた誤差は、再射影されたひずみのない点と、対応する「x」との間の距離、たとえば、「x」246と、点216aに対応するひずみのない点の再射影との間の距離、または再射影されたひずんだ点と、測定された点との間の距離、たとえば、点216bと、両方のカメラのカメラ内在性を考慮した点216aの再射影との間の距離であり得る。
【0037】
動作250において、処理は、点ペアのサブセットを決定することを含むことが可能である。いくつかの実装では、しきい値距離だけまたはしきい値距離を超えて離間された可視化234中の点と白抜きの点との組合せは、点ペアのサブセットから除外されることが可能である。他のフィルタ処理技法は、動作150に関して上記で論じられ、本明細書では繰り返されない。その上、
図3は、画像にわたって良好な点密度を維持する例を示しており、これは、動作250において点のサブセットを決定するために使用され得る。
【0038】
サブセットが決定されると、最適化が実施され得る。そのような最適化は、上記で定義された誤差に基づいて、カメラ206(1)、206(2)の内在性パラメータの新しい推定値、および/または選択された点に関連付けられた深度の新しい推定値を決定するために使用され得る。そのような最適化は、一緒に実施され(すなわち、深度および内在性が単一の最適化で解かれ)てもよく、または繰り返し実施され(すなわち、内在性を固定に保ち、深度について最適化することと、深度を固定に保ち、内在性について最適化することとの間で交替し)てもよい。
【0039】
更新された推定値に基づいて、処理200は、再び、すなわち、動作232において、誤差を決定し得る。このように、処理は、点ペアのセットが間引きされて、外れ値、たとえば、特徴一致から生じる外れ値が除去され、内在性較正行列が最適化される、繰り返し処理であってよい。実装では、最適化は、好ましい解に到達するために、期待値最大化アルゴリズムを使用して実施されることが可能である。繰り返しの数は、固定であってもまたは適応的であってもよい。たとえば、点ペアのサブセット全体についての点と白抜きの点との組合せの各々に関連付けられた誤差がしきい値距離以下であり、点のサブセットが点のしきい値数以下であり、および/または誤差の変化がしきい値を下回るとき、処理200は動作252に進み得る。
【0040】
動作252において、処理は、カメラに関連付けられた誤差(たとえば、実際のパラメータと推定されたパラメータとの間の差)を補正するための補正関数を生成することを含むことが可能である。別個の動作(ここでは動作252)として示されているが、そのような補正関数は、上記の動作250において実施される最適化の出力を含んでよい。追加または代替として、少なくともいくつかの例では、そのような内在性および/または深度最適化は、本明細書で概して論じられるように、外在性最適化とともに一緒にまたは繰り返し実施されてよい。したがって、たとえば、処理100および処理200は、ロバストなセンサ較正を提供するために、同時に、および同じ画像/点ペアに対して実施されてよい。その上、処理100の外在性較正、深度最適化および/または推定された内在性パラメータの何らかのサブセットが、同時におよび/または繰り返し実施されてよい。
【0041】
処理200は、処理100のように、たとえば、基準マーカまたは他のインフラストラクチャにではなく、実質的に同時にキャプチャされた画像を備える画像データにのみ依拠するので、処理200は、時間または場所に関係なく実装されることが可能である。いくつかの実装では、処理200は、自律車両204が動作している間に、リアルタイムに実装されることが可能である。このようにして、本明細書で説明される実装は、動作中に内在性パラメータが変化すると起こり得るセンサ較正誤差を補正して、改善されたセンサ精度を促進し得る。
【0042】
説明されたように、処理100と処理200の両方は、繰り返し処理であってよく、すなわち、この繰り返し処理では、点のセットについて関数が最適化され、セットから点が除去され、サブセットについて関数が最適化されるなどする。サブセットを決定する例は本明細書で論じられ、
図3によって特定の例が示されている。より詳細には、
図3は、たとえば、点に関連付けられた誤差に基づいて、それらの点をフィルタ処理するための処理300を示す。たとえば、処理300は、たとえば、
図1に示されている処理100の動作150におけるように、点のサブセットを決定するために実装され得る。たとえば、本明細書で説明される技法は、たとえば、検討される点が全画像を表すことを保証することによって、画像全体にわたって最適化されることから恩恵を受け得る。たとえば、非線形カメラは画像周縁において増加したひずみ誤差を有することがあるので、および/または一致は画像の中心においてより優勢であり得るので、これは、線形カメラ以外のカメラを較正するときに特に有用であり得る。
【0043】
動作302において、処理300は、画像中の点およびそれらの点に関連付けられた誤差を含むデータを受信することを含む。
図3の動作302に付随する可視化は、
図1からの第1の画像110(2)であり得る画像304を示す。(
図3の例の部分は
図1の例に関して示されているが、処理300は、
図2の例に等しく適用可能であり得る。たとえば、画像304は、たとえば、
図2からの第1の画像208(1)(または第2の画像208(2)であり得る。)画像304はまた、点とエピポーラ線分とのペアとして可視化された、点および関連付けられた誤差の表現を含む。いくつかのペアが示されており、特定のペアが、306a、306b、306c、306d、306e、306f、306g、306h、306i、および306jと番号付けされている。より詳細には、第1のペア306aは、本明細書で説明されるように、第1の点と、第1の点に対応するエピポーラ線とを含み、第2のペア306bは、第2の点と、第2の点に対応するエピポーラ線とを含み、以下同様である。本明細書では、これらの複数のペアは、ラベリングされているか否かにかかわらず、ペア306と呼ばれることがある。
【0044】
動作308において、処理300は、画像を領域にセグメント化することを含むことが可能である。たとえば、動作308に付随する可視化310に示されているように、画像304は、1つまたは複数の区分線312によって複数の領域314a、314b、314c、314d(以下では、領域314と総称される)に区分され得る。したがって、図示の例では、区分線312は、画像304を4つの等しい象限にセグメント化するグリッドを形成し得る。より多いまたはより少ない領域314が形成されてもよいので、図示の区分は例のためにすぎない。その上、領域314は同じ面積を有するものとして示されているが、他の実装では、領域314は異なるサイズを有し得る。本明細書でさらに説明されるように、領域314は、たとえば、画像のエリアにわたって点の完全な表現を考慮するために、データ点をフィルタ処理するときに独立して検討されてよい。
【0045】
動作316において、処理300は、領域ごとに点のサブセットを決定することを含むことが可能である。たとえば、領域312の各々内の点は、他の領域とは別個に検討されてよい。可視化310と比較して動作316に付随する可視化318を閲覧することにより、この概念が示される。より詳細には、可視化310では、領域314a、314bの各々は、6つの点/誤差ペア306を含み、領域314c、314dの各々は、3つの点/誤差ペア306を含む。可視化318では、領域314a、314bの各々から2つの点が除去されており、領域314c、314dの各々から1つの点が除去されている。この例では、除去された点は、領域内の最も大きい誤差の痕跡となるペアであり得る。図示のように、領域314ごとに点の33%がフィルタ除去されている。少なくともいくつかの例では、領域ごとにフィルタ処理された(除去された)点の数は、領域ごとにほぼ同数の点を保持するように、異なることがある。そのような例では、各領域の最も高い誤差に関連付けられた点は、領域ごとに最も低い数の点をもつ領域と同じ総数の点を有するように、除去されることがある。諒解されるように、画像全体304からペア306の上部33%をフィルタ処理することにより、点の極めて異なるサブセットが生じ得る。たとえば、最も大きい誤差をもつ点の33%が、領域314a中の6つのペア306に対応することが可能であり得る。それらの点をフィルタ除去した場合、画像304の左上象限に関する情報は残らない。
【0046】
したがって、処理300によって例示されるセグメント化技法は、画像304のエリア全体の良好な断面を提供する点を保持することをもたらし得る。たとえば、処理300は、画像全体にわたって同種のカバレージを提供し得、これは、(たとえば、画像の中心部分と比較してより大きいひずみに関連付けられた画像の外側部分において同数の点を保持することによって)内在性較正を実施するときに特に有用であり得る。その上、本明細書で説明されるように可視化318に示されている点のサブセットを使用してカメラ較正を決定するとき、領域314の各々の中の点は別様に重み付けされ得る。たとえば、領域314a、314bは領域314c、314dの2倍の数の点を有するので、領域314a、314b中の点は、それらの領域に関連付けられた誤差が他の領域の半分程度の大きさだけ寄与するように、0.5倍に重み付けされてよい。そのような重み係数は、(たとえば、点の数などに基づいて)内在性、外在性、または点深度のうちの1つまたは複数を決定する際に考慮される情報を最適化するように選定されてよい。可視化310、318は例のためにすぎない。上述されたように、本明細書で説明される技法は、数千個ではないにしても、数百個の点および関連付けられた誤差を含み得る。重み係数および除去されるべき点の割合は、適用例および他の要因に従って変動し得る。その上、本開示は、割合の点を除去することに限定されない。たとえば、いくつかの事例では、誤差しきい値を上回る点は除去されてよく、このしきい値は、より少ない点を有する領域ではより低くてよい。その上、多くの適用例ではより多くの領域が提供されるので、4つの領域314の使用は例のためにすぎない。
【0047】
図4は、本開示の例において使用され得る自律車両402の例示的な平面
図400を示す。より詳細には、車両402は、車両402のルーフ上に取り付けられた8つのカメラ404(1)、404(2)、404(3)、404(4)、404(5)、404(6)、404(7)、404(8)(まとめて、カメラ404)を含む。カメラ404(1)は水平視野Θ
1を含み得、カメラ404(2)は水平視野Θ
2を含み得、カメラ404(3)は水平視野Θ
3を含み得、カメラ404(4)は水平視野Θ
4を含み得、カメラ404(5)は水平視野Θ
5を含み得、カメラ404(6)は水平視野Θ
6を含み得、カメラ404(7)は水平視野Θ
7を含み得、カメラ404(8)は水平視野Θ
8を含み得る。構成されるとき、カメラ404は、隣接するカメラが重複する視野を有するように取り付け位置に配置され、全体としてカメラ404は、車両402の周りの全360度の視覚を提供する。カメラ404のこの配置のために、処理100の態様は、カメラ404のアレイ全体にわたって適用されて、互いに対する(および車両に対するすべての8つのカメラ404の相対的整合が決定されることが可能である。より詳細には、カメラ404(1)の視野Θ
1は、カメラ404(2)の視野Θ
2と重複し、カメラ404(8)の視野Θ
8と重複する。したがって、第1の点ペアは、カメラ404(1)およびカメラ404(2)によってキャプチャされた画像について、ならびにカメラ404(1)およびカメラ404(8)によってキャプチャされた画像について決定されることが可能である。諒解されるように、カメラ404(1)は、次いで、カメラ404(2)とカメラ404(12)の両方に対して制約され得る。同様に、カメラ404(2)は、(視野Θ
2が視野Θ
1と重複するので)カメラ404(1)に対して、および(視野Θ
2が視野Θ
3と重複するので)カメラ404(3)に対して制約され得る。(その上、視野Θ
2は少なくとも視野Θ
4とも重複するので、カメラ404(2)は、カメラ404(4)に対して固定されてもよい。)いくつかの実装では、本明細書で説明される技法は、車両上の点、たとえば、車両の中心軸上の点に対してカメラの較正関数を決定するために使用され得る。理解され得るように、カメラ404の例示的な配置は一例にすぎず、同様のまたは異なる配置をもつより多いまたはより少ないカメラも、本明細書で説明される技法から恩恵を受け得る。その上、平面
図400は水平視野のみを示しているが、カメラ404の各々は垂直視野をも有し、上記で説明されたように、本明細書で説明される技法は、6の自由度に従って不整合を加味するために使用されることが可能であることが理解されよう。さらに、カメラ404は実質的に同等であるものとして示されているが、カメラは、たとえば、シャッタータイプ、レンズタイプ、視野などが異なる、異なるタイプであってよい。
【0048】
また
図4に示されているように、車両402は、追加のセンサアセンブリを含み得る。いくつかの事例では、センサアセンブリは、限定はされないが、1つまたは複数のLIDARセンサ、radarセンサ、画像センサ、SONARセンサなどを含み得る。センサの追加の例は、(たとえば、
図5に関連して)本明細書で論じられる。この例では、車両402は、センサ406、408(1)、408(2)、408(3)、408(4)(センサ408(1)、408(2)、408(3)、408(4)はセンサ408と総称される)をも含み得る。センサ406は、車両402のルーフ上に取り付けられたLIDARセンサを含み得、センサ406は、Θ
13として示されている水平視野を有し得る。したがって、図示のように、センサ406は、カメラ404の視野と重複する360度視野を有し得る。本明細書でより詳細に論じられるように、センサ406からのlidarデータ(たとえば、点群データ)は、画像110(1)、110(2)などの画像データとともに使用されて、車両402に対してカメラ404が制約され得る。センサ408は、車両のコーナーに取り付けられた(たとえば、異なるまたは同じ様式の)他のセンサであってよい。たとえば、センサ408は、環境に関する追加の情報を提供するように構成されたradarセンサであってよく、この情報は、本明細書で説明される実装において使用されても使用されなくてもよい。本開示のコンテキストにおいて理解され得るように、取付け場所および視野は、それぞれ、外在性特性および内在性特性に対応し得、これらは、本明細書で説明されるように較正され得る。もちろん、任意の数および/またはタイプのセンサが車両402に取り付けられるかまたは設置されてよい。
【0049】
図5は、本明細書で説明される技法を実装するための例示的なシステム500のブロック図を示す。少なくとも1つの例では、システム500は、それぞれ、
図1および
図2を参照しながら上記で説明された車両104または車両202と同じ車両であることが可能な、車両502を含むことが可能である。
【0050】
車両502は、車両コンピューティングデバイス504、1つまたは複数のセンサシステム506、1つまたは複数のエミッタ508、1つまたは複数の通信接続510、少なくとも1つの直接接続512、および1つまたは複数の駆動モジュール514を含むことが可能である。
【0051】
車両コンピューティングデバイス504は、1つまたは複数のプロセッサ516と、1つまたは複数のプロセッサ516に通信可能に結合されたメモリ518とを含むことが可能である。図示の例では、車両502は自律車両であるが、車両502は任意の他のタイプの車両であることが可能である。図示の例では、車両コンピューティングデバイス504のメモリ518は、位置特定構成要素520、知覚構成要素522、プランニング構成要素524、1つまたは複数のシステムコントローラ526、および較正構成要素528を記憶する。さらに、較正構成要素528は、特徴抽出構成要素530、エッジ検出構成要素532、較正データ構成要素534、外在性較正構成要素536、および内在性較正構成要素538を含むことが可能である。
図5では説明の目的でメモリ518中に常駐するものとして示されているが、較正構成要素528は、追加または代替として、車両502にとってアクセス可能であり(たとえば、リモートで記憶され)得ることが企図される。
【0052】
少なくとも1つの例では、位置特定構成要素520は、車両502の位置を決定するためのデータをセンサシステム506から受信するための機能を含むことが可能である。たとえば、位置特定構成要素520は、環境の3次元マップを含み、要求し、および/または受信することが可能であり、マップ内の自律車両の場所を連続的に決定することが可能である。いくつかの事例では、位置特定構成要素520は、自律車両502の場所を正確に決定するために、SLAM(Simultaneous Localization and Mapping)またはCLAMS(Calibrating, Localizing, and Mapping, Simultaneously)を利用して、画像データ、LIDARデータ、radarデータ、SONARデータ、IMUデータ、GPSデータ、ホイールエンコーダデータなどを受信することが可能である。いくつかの事例では、位置特定構成要素520は、本明細書で論じられるように、車両502の様々な構成要素にデータを提供して、車両502の初期位置を決定して、候補軌道を生成するか、または較正動作を相関させることが可能である。
【0053】
いくつかの事例では、知覚構成要素522は、オブジェクトの検出、セグメント化および/または分類を実施するための機能を含むことが可能である。いくつかの例では、知覚構成要素522は、車両502に近接しているエンティティの存在、および/またはエンティティタイプ(たとえば、車、歩行者、サイクリスト、動物、不明など)としてのエンティティの分類を示す、処理されたセンサデータを提供することが可能である。追加および/または代替の例では、知覚構成要素522は、検出されたエンティティに関連付けられた1つもしくは複数の特性、および/またはエンティティが配置された環境を示す、処理されたセンサデータを提供することが可能である。いくつかの例では、エンティティに関連付けられた特性は、限定はされないが、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、配向、エンティティタイプ(たとえば、分類)、エンティティの速度、エンティティの広がり(たとえば、サイズ)などを含むことが可能である。環境に関連付けられた特性は、限定はされないが、環境中の別のエンティティの存在、環境中の別のエンティティの状態、時刻、曜日、季節、気象条件、暗さ/明るさのインジケーションなどを含むことが可能である。
【0054】
概して、プランニング構成要素524は、車両502が環境中を横断するために従うべき経路を決定することが可能である。たとえば、プランニング構成要素524は、様々なルートおよび軌道ならびに様々な詳細レベルを決定することが可能である。たとえば、プランニング構成要素524は、第1の場所(たとえば、現在の場所)から第2の場所(たとえば、目的場所)に進むためのルートを決定することが可能である。この議論の目的のために、ルートは、2つの場所間を進むための中間地点のシーケンスであることが可能である。非限定的な例として、中間地点は、街路、交差点、全地球測位システム(GPS)座標などを含む。さらに、プランニング構成要素524は、第1の場所から第2の場所までのルートの少なくとも一部に沿って自律車両を案内するための命令を生成することが可能である。少なくとも1つの例では、プランニング構成要素524は、中間地点のシーケンス中の第1の中間地点から中間地点のシーケンス中の第2の中間地点まで自律車両をどのように案内すべきかを決定することが可能である。いくつかの例では、命令は、軌道、または軌道の部分であることが可能である。いくつかの例では、多様な軌道が、後退ホライズン技法に従って(たとえば、技術公差内で)実質的に同時に生成されることが可能である。
【0055】
少なくとも1つの例では、車両コンピューティングデバイス504は、車両502のステアリング、推進、制動、安全性、エミッタ、通信、および他のシステムを制御するように構成されることが可能である、1つまたは複数のシステムコントローラ526を含むことが可能である。システムコントローラ526は、車両502の駆動モジュール514および/または他の構成要素の対応するシステムと通信しおよび/またはそれを制御することが可能である。
【0056】
概して、較正構成要素528は、車両502に関連して動作する1つまたは複数のセンサを較正するための機能を含むことが可能である。たとえば、較正構成要素528は、不適切に較正されたセンサを検出し、較正ルーチンをスケジュールし、車両502の1つまたは複数の他の構成要素に較正データを送ることが可能であり、これらの構成要素は、1つまたは複数のセンサによって発生されたデータを利用する。
【0057】
特徴一致構成要素530は、対応する画像、たとえば、重複する視野を有するカメラによって実質的に同時にキャプチャされた画像を分析して、画像中の対応する特徴を決定することが可能である。いくつかの事例では、対応する画像の分析は、たとえば、特徴抽出技法を含み得る。そのような特徴は、たとえば、SURF、SIFT、AKAZE、ORB、BRIEF、FAST、FREAKなどの特徴を備え得るが、任意の他の特徴が企図される。特徴一致構成要素は、上記で説明された処理100に関連して説明したように点ペアを識別することが可能である。点ペアは、本明細書でさらに説明されるように、次いで、外在性較正構成要素536または内在性較正構成要素538によって使用され得る。
【0058】
エッジ検出構成要素532は、画像データを分析して特徴エッジを決定することが可能である。たとえば、エッジ検出構成要素532は、車両502上に取り付けられたカメラによってキャプチャされた画像中のエッジを検出するためにキャニーエッジ検出アルゴリズムを適用することが可能である。たとえば、本明細書で説明される実装では、
図5を参照しながら以下で論じるように、エッジ検出構成要素によって検出されたエッジを点群データと比較して較正情報を取得して、たとえば、車両502に対して、較正されたカメラを制約することが可能である。
【0059】
較正データ構成要素534は、車両502の1つまたは複数のセンサに関連付けられた較正データを記憶するための機能を含むことが可能である。いくつかの事例では、較正データ構成要素534は、
図1に関して上記で論じられたように、カメラのアレイに関する較正変換など、センサに関連付けられた1つまたは複数の較正角度(または、概して、較正特性)を記憶することが可能である。いくつかの事例では、較正データは、限定はされないが、較正角度、取付け場所、高さ、方向、ヨー、傾き、パン、タイミング情報、レンズひずみパラメータ、伝達媒体パラメータなどを含む、センサの取付け角度および/もしくは位置ならびに/または1つもしくは複数のセンサに関連付けられた何らかの外在性および/もしくは内在性情報を記憶することが可能である。さらに、較正データ構成要素534は、直近の較正から経過した時間など、実施された較正動作の一部または全部のログを記憶することが可能である。
【0060】
外在性較正構成要素536は、互いに対してセンサシステム506のカメラを較正するための補正関数を決定するための機能を含むことが可能である。いくつかの例では、外在性較正構成要素536は、エピポーラ幾何を利用して、対応する(たとえば、重複しているおよび/または実質的に同じ時間にキャプチャされた)画像中の点を比較して、対応する画像の間の関係を記述する基本行列を計算することが可能である。いくつかの事例では、外在性較正構成要素536はまた、たとえば、基本行列から、エピポーラ線を決定し、第1の画像中の点と対応するエピポーラ線を第2の画像上に射影して、たとえば、点が整合するかどうかを決定することが可能である。
【0061】
外在性較正構成要素536はまた、たとえば、外れ値およびノイズを除去することによって、検討されるべき点ペアのセットを低減することが可能である。いくつかの例では、外在性較正構成要素536は、エピポーラ線を使用して射影誤差を決定してよく、しきい値誤差以上の誤差(たとえば、点とエピポーラ線との間の距離)を有する点ペアは、点ペアのセットから除外されてよい。外在性較正構成要素536は、次いで、点ペアのサブセットに基づいて補正関数を決定することが可能である。
【0062】
画像対画像の比較を実施することに加えて、たとえば、カメラ間の不整合を補正するための補正関数を決定するために、外在性較正構成要素536はまた、lidar対カメラ分析を実施することが可能である。上記で論じられたように、本明細書で説明されるエピポーラ幾何ベースの較正技法は、互いに対してカメラを較正するために使用され得るが、カメラが取り付けられた車両に対してそれらを制約するために追加の技法が必要であり得る。
図5と併せて以下でより詳細に論じられる1つの技法は、LIDARデータを画像データと比較して、処理100単独では制約し得ない最後の自由度を制約することを含み得る。
【0063】
内在性較正構成要素538は、センサシステム506のカメラの内在性特性、たとえば、焦点距離、点深度、中心点およびひずみパラメータを較正するための補正関数を決定するための機能を含むことが可能である。いくつかの例では、内在性較正構成要素538は、対応する(たとえば、重複している、実質的に同じ時間にキャプチャされた、および/または後続の時間において環境の同じ領域をキャプチャしている)画像中の点を、対応する画像間の推定点深度に再射影し得る。いくつかの事例では、外在性較正構成要素536も、実際の測定された点をひずみのない点と比較して、たとえば、ひずみパラメータを加味することが可能である。
【0064】
内在性較正構成要素538はまた、たとえば、外れ値およびノイズを除去することによって、検討されるべき点ペアのセットを低減することが可能である。いくつかの例では、内在性較正構成要素538は、再射影された点および点深度の推定値を使用して再射影誤差を決定してよく、しきい値誤差以上の誤差(たとえば、点と再射影された点との間の距離)を有する点ペアは、点ペアのセットから除外されてよい。内在性較正構成要素534は、次いで、たとえば、点ペアのサブセットを使用して補正行列を最適化することによって、点ペアのサブセットに基づいて補正関数を決定することが可能である。
【0065】
いくつかの事例では、外在性較正構成要素536および内在性較正構成要素538は、並列に動作を実施することが可能である。たとえば、本明細書で論じられる較正動作の処理時間の量を低減するために、カメラ対カメラ整合に関連付けられた第1の補正関数は、エピポーラ幾何の原理を使用して決定されることが可能であり、カメラ対車両整合に関連付けられた第2の補正関数は、LIDAR対画像データ原理を使用して決定されることが可能であり、および/または1つもしくは複数のカメラの内在性整合に関連付けられた第3の補正関数は、GPUなどのプロセッサを使用して並列に決定されることが可能である。
【0066】
いくつかの事例では、本明細書で論じられる構成要素の一部または全部の態様は、任意のモデル、アルゴリズム、および/または機械学習アルゴリズムを含み得る。たとえば、いくつかの事例では、メモリ518(および、以下で論じられるメモリ546)中の構成要素は、ニューラルネットワークとして実装されてよい。
【0067】
本明細書で説明されるように、例示的なニューラルネットワークは、入力データを一連の接続されたレイヤを通過させて出力を発生する、生物学に発想を受けたアルゴリズムである。ニューラルネットワーク中の各レイヤはまた、(畳み込みであるか否かにかかわらず)別のニューラルネットワークを備え得るか、または任意の数のレイヤを備え得る。本開示のコンテキストにおいて理解され得るように、ニューラルネットワークは、学習されたパラメータに基づいて出力が生成されるそのようなアルゴリズムの広いクラスを指し得る、機械学習を利用してよい。
【0068】
ニューラルネットワークのコンテキストにおいて論じられているが、本開示に合致する任意のタイプの機械学習が使用されてよい。たとえば、機械学習アルゴリズムは、限定はされないが、回帰アルゴリズム(たとえば、通常の最小2乗回帰(OLSR)、線形回帰、ロジスティック回帰、段階的回帰、多変量適応回帰スプライン(MARS)、局所推定散布図平滑化(LOESS))、インスタンスベースドアルゴリズム(たとえば、リッジ回帰、最小絶対収縮および選択演算子(LASSO)、弾性ネット、最小角度回帰(LARS))、決定ツリーアルゴリズム(たとえば、分類および回帰ツリー(CART)、反復ダイコトマイザ3(ID3)、カイ2乗自動相互作用検出(CHAID)、決定スタンプ、条件付き決定ツリー)、ベイジアンアルゴリズム(たとえば、単純ベイズ、ガウシアン単純ベイズ、多項単純ベイズ、平均1依存エスティメータ(AODE)、ベイジアン信念ネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(たとえば、k平均、k中央値、期待値最大化(EM)、階層クラスタリング)、関連付けルール学習アルゴリズム(たとえば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、放射基底関数ネットワーク(RBFN))、深層学習アルゴリズム(たとえば、深層ボルツマンマシン(DBM)、深層信念ネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層自動エンコーダ)、次元削減アルゴリズム(たとえば、主成分分析(PCA)、主成分回帰(PCR)、部分最小2乗回帰(PLSR)、サモンマッピング、多次元尺度構成法(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、2次判別分析(QDA)、フレキシブル判別分析(FDA))、アンサンブルアルゴリズム(たとえば、ブースティング、ブートストラップアグリゲーション(バギング)、アダブースト、積層一般化(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰ツリー(GBRT)、ランダムフォレスト)、SVM(サポートベクターマシン)、教師あり学習、教師なし学習、半教師あり学習などを含み得る。
【0069】
アーキテクチャの追加の例は、ResNet50、ResNet101、VGG、DenseNet、PointNetなどのニューラルネットワークを含む。
【0070】
少なくとも1つの例では、センサシステム506は、LIDARセンサ、radarセンサ、超音波トランスデューサ、SONARセンサ、位置センサ(たとえば、GPS、コンパスなど)、慣性センサ(たとえば、慣性測定ユニット、加速度計、磁力計、ジャイロスコープなど)、カメラ(たとえば、RGB、IR、強度、深度、飛行時間など)、マイクロフォン、ホイールエンコーダ、環境センサ(たとえば、温度センサ、湿度センサ、光センサ、圧力センサなど)などを含むことが可能である。センサシステム506は、これらまたは他のタイプのセンサの各々の複数のインスタンスを含むことが可能である。たとえば、LIDARセンサ(および/またはradarセンサ)は、車両502のコーナー、前部、背部、側部、および/または上部に位置する個々のLIDARセンサ(またはradarセンサ)を含むことが可能である。別の例として、カメラセンサは、車両502の外部および/または内部に関する様々な場所に配設された多様なカメラ(カメラ206など)を含むことが可能である。センサシステム506は、車両コンピューティングデバイス504に入力を提供することが可能である。追加または代替として、センサシステム506は、特定の頻度で、所定の時間期間の経過後に、ほぼリアルタイムに、など、1つまたは複数のコンピューティングデバイスに、1つまたは複数のネットワーク540を介して、センサデータを送ることが可能である。
【0071】
車両502はまた、光および/または音を放出するための1つまたは複数のエミッタ508を含むことが可能である。この例におけるエミッタ508は、車両502の搭乗者と通信するための内部オーディオおよび視覚的エミッタを含む。限定ではなく例として、内部エミッタは、スピーカ、ライト、サイン、ディスプレイスクリーン、タッチスクリーン、ハプティックエミッタ(たとえば、振動および/または力フィードバック)、機械アクチュエータ(たとえば、シートベルトテンショナ、シートポジショナ、ヘッドレストポジショナなど)などを含むことが可能である。この例におけるエミッタ508はまた、外部エミッタを含む。限定ではなく例として、この例における外部エミッタは、車両アクションの進行方向または他のインジケータ(たとえば、インジケータライト、サイン、ライトアレイなど)をシグナリングするためのライト、および歩行者または他の近くの車両と可聴的に通信するための1つまたは複数のオーディオエミッタ(たとえば、スピーカ、スピーカアレイ、ホーンなど)を含み、それらのうちの1つまたは複数は音響ビームステアリング技術を備える。
【0072】
車両502はまた、車両502と1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの間の通信を可能にする1つまたは複数の通信接続510を含むことが可能である。たとえば、通信接続510は、車両502および/または駆動モジュール514上の他のローカルコンピューティングデバイスとの通信を容易にすることが可能である。また、通信接続510は、車両が他の近くのコンピューティングデバイス(たとえば、他の近くの車両、交通信号など)と通信することを可能にすることが可能である。通信接続510はまた、車両502がリモート遠隔動作コンピューティングデバイスまたは他のリモートサービスと通信することを可能にする。
【0073】
通信接続510は、車両コンピューティングデバイス504を別のコンピューティングデバイスまたは(ネットワーク538などの)ネットワークに接続するための物理および/または論理インターフェースを含むことが可能である。たとえば、通信接続510は、IEEE802.11規格によって定義された周波数などを介したWi-Fiベースの通信、Bluetooth、セルラー通信(たとえば、2G、3G、4G、4G LTE、5Gなど)などの短距離ワイヤレス周波数、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースすることを可能にする任意の好適なワイヤードもしくはワイヤレス通信プロトコルを可能にすることが可能である。
【0074】
少なくとも1つの例では、車両502は、1つまたは複数の駆動モジュール514を含むことが可能である。いくつかの例では、車両502は、単一の駆動モジュール514を有することが可能である。少なくとも1つの例では、車両502が多様な駆動モジュール514を有する場合、個々の駆動モジュール514は、車両502の反対端部(たとえば、前部および後部など)上に配置されることが可能である。少なくとも1つの例では、駆動モジュール514は、車両502の駆動モジュール514および/または周囲の状況を検出するための1つまたは複数のセンサシステムを含むことが可能である。限定ではなく例として、センサシステム506は、駆動モジュールのホイールの回転を感知するための1つまたは複数のホイールエンコーダ(たとえば、ロータリエンコーダ)、駆動モジュールの配向および加速度を測定するための慣性センサ(たとえば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラまたは他の画像センサ、駆動モジュールの周囲におけるオブジェクトを音響的に検出するための超音波センサ、LIDARセンサ、radarセンサなどを含むことが可能である。ホイールエンコーダなど、いくつかのセンサは、駆動モジュール514に対して一意であることが可能である。いくつかの場合には、駆動モジュール514上のセンサシステムは、車両502の対応するシステム(たとえば、センサシステム506)と重複するかまたはそれを補足することが可能である。
【0075】
駆動モジュール514は、高電圧バッテリー、車両502を推進するモーター、他の車両システムが使用するためにバッテリーからの直流を交流にコンバートするインバータ、(電気であり得る)ステアリングモーターおよびステアリングラックを含むステアリングシステム、油圧もしくは電気アクチュエータを含む制動システム、油圧および/もしくは空気構成要素を含む懸架システム、牽引の損失を緩和し制御を維持するための制動力を分配するための安定性制御システム、HVACシステム、照明(たとえば、車両の外部周囲を照明するヘッド/テールライトなどの照明)、ならびに1つまたは複数の他のシステム(たとえば、冷却システム、安全性システム、オンボード充電システム、DC/DCコンバータ、高電圧接合、高圧電ケーブル、充電システム、充電ポートなど他の電気的構成要素)を含む、車両システムの多くを含むことが可能である。さらに、駆動モジュール514は、センサシステムからデータを受信し前処理して様々な車両システムの動作を制御することが可能である駆動モジュールコントローラを含むことが可能である。いくつかの例では、駆動モジュールコントローラは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに通信可能に結合されたメモリとを含むことが可能である。メモリは、駆動モジュール514の様々な機能を実施するための1つまたは複数のモジュールを記憶することが可能である。さらに、駆動モジュール514はまた、それぞれの駆動モジュールによる1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続を含む。
【0076】
車両502のプロセッサ516は、本明細書で説明されるようにデータを処理し動作を実施するための命令を実行することが可能な任意の好適なプロセッサであることが可能である。限定ではなく例として、プロセッサ516は、1つもしくは複数の中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、または電子データをレジスタおよび/もしくはメモリに記憶されることが可能な他の電子データに変換するようにその電子データを処理する任意の他のデバイスもしくはデバイスの部分を備えることが可能である。いくつかの例では、集積回路(たとえば、ASICなど)、ゲートアレイ(たとえば、FPGAなど)、および他のハードウェアデバイスも、符号化された命令をそれらが実装するように構成されている限り、プロセッサと見なされることが可能である。
【0077】
メモリ518は、非一時的コンピュータ可読媒体の例である。メモリ518は、本明細書で説明される方法および様々なシステムに帰する機能を実装するためのオペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを記憶することが可能である。様々な実装では、メモリは、静的ランダムアクセスメモリ(SRAM)、同期ダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を記憶することが可能な任意の他のタイプのメモリなど、任意の好適なメモリ技術を使用して実装されることが可能である。本明細書で説明されるアーキテクチャ、システム、および個々の要素は、多くの他の論理的、プログラム的、および物理的構成要素を含むことが可能であり、それらのうち、添付の図に示されているものは、本明細書の議論に関係する例にすぎない。
【0078】
図5は分散システムとして示されているが、代替例では、車両502の構成要素は、ネットワーク540を介してアクセス可能なリモートコンピューティングデバイスに関連付けられることが可能であることに留意されたい。
【0079】
たとえば、車両502は、ネットワーク540を介して、1つまたは複数のコンピューティングデバイス542にセンサデータを送ることが可能である。いくつかの例では、車両502は、コンピューティングデバイス542に生センサデータを送ることが可能である。他の例では、車両502は、コンピューティングデバイス542に処理済みセンサデータおよび/またはセンサデータの表現を送ることが可能である。いくつかの例では、車両502は、特定の頻度で、所定の時間期間の経過後に、ほぼリアルタイムに、など、コンピューティングデバイス542にセンサデータを送ることが可能である。いくつかの場合には、車両502は、コンピューティングデバイス542に(生または処理済み)センサデータを1つまたは複数のログファイルとして送ることが可能である。
【0080】
コンピューティングデバイス542は、(生または処理済み)センサデータを受信することが可能であり、データに対して較正動作を実施することが可能である。少なくとも1つの例では、コンピューティングデバイス542は、1つまたは複数のプロセッサ544と、1つまたは複数のプロセッサ544に通信可能に結合されたメモリ546とを含むことが可能である。図示の例では、コンピューティングデバイス542のメモリ546は較正構成要素548を記憶し、較正構成要素548は、較正構成要素528のコンテキストにおいて上記で論じられたものと同様の動作を実施するための機能を含むことが可能である。いくつかの事例では、プロセッサ544およびメモリ546は、プロセッサ516およびメモリ518に関して上記で論じられたものと同様の機能および/または構造を含むことが可能である。
【0081】
図1、
図2、
図3、
図6、
図7、および
図8は、本開示の実施形態による例示的な処理を示す。これらの処理は論理フローグラフとして示されており、それらの各動作は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実装されることが可能な動作のシーケンスを表す。ソフトウェアのコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、具陳された動作を実施する1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作について説明される順序は、限定として解釈されることを意図されず、任意の数の説明される動作は、処理を実装するために任意の順序でおよび/または並列に組み合わされることが可能である。
【0082】
図6は、1つまたは複数のカメラの外在性特性を較正するための例示的な処理500を示す。たとえば、処理500の一部または全部は、本明細書で説明されるように、
図5の1つまたは複数の構成要素によって実施されることが可能である。たとえば、処理500の一部または全部は、較正構成要素528および/または548によって実施されることが可能である。
【0083】
動作602において、処理は、自律車両上に取り付けられたカメラによってキャプチャされた画像を備える画像データを受信することを含むことが可能である。いくつかの例では、画像は、重複する視野を有するカメラによってキャプチャされてよく、画像は、車両が環境中を移動するにつれて収集されてよい。いくつかの例では、データは、離散時間においてキャプチャされた画像をそれぞれ備える一連のフレームを備えるビデオフィードを備え得る。いくつかの例では、カメラは、車両の周りの全360度について環境の画像をキャプチャするように車両上に配置され得る。これらの例では、隣接するカメラは重複する視野を有し得る。
【0084】
動作604において、処理は、画像データ中の画像のペアについて対応する点ペアを決定することを含むことが可能である。たとえば、処理は、画像データを分析して画像特徴を識別し、画像にわたってそれらの特徴を一致させ得る。いくつかの事例では、動作604は、特徴抽出および/または特徴一致技法を使用して対応する点ペアを決定することが可能である。より詳細には、動作604は、第1のカメラによってキャプチャされた第1の画像中の点、および第1の画像と実質的に同じ時間に第2のカメラによってキャプチャされた第2の画像中の第2の点(ならびに/または1つまたは複数のセンサによってキャプチャされた後続の画像データ中の第1および第2の点)を識別し得る。第1の点および第2の点は、これらの2つの画像中の同じ画像特徴を識別し得る。たとえば、動作604は、第1のカメラおよび第2のカメラによってキャプチャされた各画像ペアについて数百個の点ペアを識別し得る。その上、動作604は、数千個の画像ペアについて数百個の点ペアを決定し得る。いくつかの実装では、重複する視野をもつカメラの各ペアについて、各カメラの最高約20000個のフレーム(たとえば、個別画像)が検討されてよく、画像の各ペアについて最高約300個の点ペアが決定されてよい。
【0085】
動作606において、処理は、点ペアの各々について誤差(たとえば、射影誤差)を決定することを含むことが可能である。いくつかの事例では、動作606は、カメラ間で、および相対的体勢の初期仮定に基づいて関係を記述する基本行列を決定することが可能である。基本行列を使用して、動作606は、点ペア中の第1の点についてエピポーラ線を決定し、それらのエピポーラ線を第2の画像に射影し得る。誤差は、エピポーラ線と第2の点との間の距離として決定され得る。
【0086】
動作608において、処理600は、点ペアのサブセットを決定し得る。たとえば、点ペアのサブセットは、しきい値誤差以上の誤差を有する点を除外し得る。いくつかの実装では、サブセットは、画像中の点の位置に基づいて決定されてもよい。たとえば、動作608は、重複する視野の全体の完全な表現を提供する点を保持するためのバイアスを含んでよい。したがって、たとえば、より比較的高い誤差を有する第1の点は、第1の点が、隣接する点、たとえば、より高い誤差を有する隣接する点からより遠いとき、より比較的低い誤差を有する第2の点にわたって保持されてよい。少なくともいくつかの例では、そのようなサブセットは、逆、すなわち、第1の画像中の第2の点のエピポーラ線を決定し、第2の点の射影に対して第1の点の誤差を決定することに基づいてさらに決定されてよい。そのような左右一貫性チェックは、外れ値の量をさらに低減し得る。
【0087】
動作608から、処理600は動作606に戻ることが可能である。たとえば、処理600は、基本行列について繰り返し解き、点ペアに関連付けられた誤差を決定し、次いで、点ペアのセットを改良し得る。いくつかの実装では、繰り返しの数はあらかじめ確定されてよい。他の実装では、処理600は、点ペアのセットが点ペアのしきい値数以下である、たとえば、20個未満の点ペアであるとき、動作610に進むことが可能であり、ここで、点の総誤差は、減少するのを止めるか、しきい値量だけ減少するなどする。
【0088】
動作610は、第1の補正関数を生成することを含むことが可能である。たとえば、すべてのカメラについてエピポーラ幾何を使用して解かれた第1の補正関数は、互いに対するすべてのカメラの較正を生じることが可能である。しかしながら、上記で論じられたように、エピポーラ幾何を利用する技法は点ペア中の点の深度を考慮しないので、カメラは、6の自由度すべてにおいて制約されるのではない。
【0089】
したがって、処理600はまた、第6の自由度を制約しおよび/またはスケールのインジケーションを提供するための動作を含み得る。たとえば、動作612、614、616、および618は、車両(たとえば、車両上の点)に対してカメラを制約するために、lidarデータ、たとえば、lidarセンサによって生成された点群データを、カメラによってキャプチャされた画像データと比較し得る。
【0090】
たとえば、動作612は、画像データ中の画像についてオブジェクトエッジを決定し得る。たとえば、(動作604において分析される画像の各々を含む)各画像について、キャニーエッジ検出アルゴリズムなどのエッジ検出アルゴリズムが適用されて、画像中のエッジが決定され得る。エッジ検出はまた、たとえば、画像中の各ピクセルについて、最も近いエッジピクセルまでの直線距離(すなわちユークリッド距離)を定量化するために、画像中でピクセルへの距離変換を適用することを含んでよい。
【0091】
動作614は、自律車両上に取り付けられた1つまたは複数のlidarセンサによってキャプチャされた点群データを受信する。たとえば、lidarデータは、カメラのうちの少なくとも1つの視野と重複する視野についてキャプチャされ得る。いくつかの例、すなわち多様なlidarセンサが使用される例では、多様なlidarセンサの組み合わされた出力は、多様なlidarセンサが単一のlidarセンサとして効果的に扱われ得るように、「メタスピン」を備え得る。多様なlidarセンサが使用されるそれらの例では、lidarセンサが互いにうまく較正されるように、lidarセンサ自体に対して追加の較正ステップが実施されてよい。そのような較正は、たとえば、「Vehicle Sensor Calibration and Localization」と題する2017年8月11日に出願された米国特許出願第15/674,853号である特許文献1、および「Sensor Perturbation」と題する2017年8月11日に出願された米国特許出願第15/675,487号である特許文献2において説明されており、それらの内容全体は参照により本明細書に組み込まれる。上記で説明されたように、うまく較正されたシステムでは、lidarデータは画像データと整合しなければならない。そのような情報は、lidarセンサを用いて画像センサ(カメラ)を較正するために、以下で詳細に説明される後続の動作において使用される。
【0092】
動作616において、処理600は、lidar点群データ中の点とオブジェクトエッジとの間の距離を決定し得る。たとえば、時間に対応するlidar応答が、その時間にキャプチャされたカメラ画像上に射影されたとき、点群近傍において強い深度不連続性をもつlidar点は、確実に画像エッジ上に来るはずである。点群中の点とオブジェクトエッジとの間の距離は、カメラに対するlidarセンサの較正の誤差に関連付けられ得る。
【0093】
より詳細には、本明細書で説明される技法は、単純なフィルタを使用して、たとえば、水平lidarビームごとに深度測定値に対して[1 0 -1]フィルタを使用して、深度不連続性におけるlidar点を選択し得る。この結果にしきい値が適用され得る(たとえば、深度不連続性は、少なくとも10cm、1m、10mなどでなければならない)。また、例示的な実装によれば、本明細書で説明される技法は、各選択されたlidar点を画像上に射影し、それが来る(たとえば、双一次補間され得る、動作614に関して上記で論じられた)変換されたエッジ画像のピクセル値に基づいて、射影された点の各々をスコアリングし得る。このようにして、スコアは、各点が、最も近い画像エッジからどの程度遠くにあるかを示し得る。いくつかの実装では、フォールスポジティブ(たとえば、路面標示および街路標識上の書込みを含む、深度不連続性を表さない強い画像エッジ)ならびに/またはフォールスネガティブ(たとえば、画像エッジとして現れない深度不連続性の影響を限定するために、距離変換マップは打ち切られてもよい。本明細書で説明される技法では、lidarの外在性較正、lidar時間における車両体勢、カメラ時間における車両体勢、および/またはカメラ内在性は、固定パラメータであり、カメラ外在性が唯一の自由パラメータであってよい。
【0094】
動作618において、処理600は、第2の補正関数を生成する。たとえば、動作618は、点群中の点と画像エッジとの間の距離によって例示される誤差を使用して、(たとえば、較正行列として)補正関数を決定して、車両に対して、画像データをキャプチャするカメラを制約する。このようにして、本明細書で説明されるようにlidarデータをカメラ画像と比較することは、カメラの第6の自由度が制約し、カメラのアレイに完全な較正関数が提供し得る。本開示の実装は、lidarデータがうまく較正される、たとえば、lidarセンサが車両に対して正しく較正されると仮定し得る。
【0095】
動作620において、処理は、第1の補正関数および第2の補正関数に少なくとも部分的に基づいて、1つまたは複数のカメラに関連付けられた較正データを決定することを含むことが可能である。たとえば、第1の補正関数は、車両上のカメラのアレイの6の自由度のうちの5を制約し得、第2の補正関数は、第6の自由度を制約することが可能である。議論の明確さのために、処理600は、動作610において第1の補正関数を生成することと、618において第2の補正関数を生成することと、次いで、動作620においてこれらの2つの補正関数から較正データを生成することとについて説明しているが、実装では、処理600は、たとえば、画像データおよびlidarデータから較正データについて解くために、動作のうちのいくつかを並列に実施し得る。較正データは、カメラにおいてその後にキャプチャされた画像データに適用されることが可能な較正変換または行列を含み得る。いくつかの事例では、動作620は、たとえば、基準角度から調整角度を加算または減算して最適な較正データを決定することによって、1つまたは複数の較正角度(または、概して、較正特性)を決定することを含むことが可能である。
【0096】
たとえば、本開示の実装では、技法は、すべての(たとえば、動作604、606、608、610による)カメラ対カメラ制約および(たとえば、動作612、614、616、618による)lidar対カメラ制約にわたって一緒にすべてのカメラの正しい体勢(すなわち、位置および配向)について最適化し得る。たとえば、Ceresフレームワークが使用され得る。その上、本明細書で説明される技法は、外れ値およびノイズを加味するように最適化され得る。たとえば、画像特徴一致は外れ値を生じることがあり、カメラ画像処理におけるそのような外れ値に対して結果を最適化するために期待値最大化フレームワークが使用され得る。たとえば、期待値最大化フレームワークは、データサポートが与えられて、最良のカメラ体勢について最適化することと、カメラ体勢の最良の推定値が与えられて、データサポートを限定することとの間で繰り返され得る。lidar応答は深度不連続性上に正確には来ないので、Lidarデータはノイズが多いことがある。代わりに、そのような応答は、平均して、そのような不連続性から水平ビーム角度差の半分離れて来る。このノイズは、体系的ではなくランダムなことがあり、本明細書で使用される技法は、追加のロバスト性のために、Huber損失関数などの損失関数を採用し得る。
【0097】
カメラ対カメラ技法とlidar対カメラ技法とに関して、両方のコスト関数はピクセルで誤差を測定し得るが、データ、たとえば、特徴一致およびlidar点の量は異なることがあり得る。いくつかの実装では、両方のコスト関数の間で線形スケーリング係数が適用され得る。
【0098】
動作622において、処理は、較正データに少なくとも部分的に基づいて1つまたは複数のセンサを較正することを含むことが可能である。たとえば、動作622は、位置特定システム(たとえば、位置特定構成要素520)、知覚システム(たとえば、知覚構成要素522)などのうちの1つまたは複数に較正データを送ることを含むことが可能である。いくつかの事例では、較正データは、車両の1つまたは複数のシステムによって使用されて、1つまたは複数のセンサによってキャプチャされたデータが、正確な方式で環境を表すことが可能であるように、データが整合されるかまたは他の方法で調整されることが可能である。
【0099】
図7は、1つまたは複数のカメラの外在性特性と内在性特性の両方を較正するための例示的な処理700を示す。たとえば、処理700の一部または全部は、本明細書で説明されるように、
図5の1つまたは複数の構成要素によって実施されることが可能である。たとえば、処理700の一部または全部は、較正構成要素528および/または548によって実施されることが可能である。
【0100】
動作702において、処理は、自律車両上に取り付けられたカメラによってキャプチャされた画像を備える画像データを受信することを含むことが可能である。いくつかの例では、画像は、(少なくとも部分的に)重複する視野を有するカメラによってキャプチャされてよく、画像は、車両が環境中を移動するにつれて収集されてよい。いくつかの例では、データは、離散時間においてキャプチャされた画像をそれぞれから成る一連のフレームを備えるビデオフィードを含み得る。いくつかの例では、カメラは、車両の周りの全360度について環境の画像をキャプチャするように車両上に配置され得る。これらの例では、隣接するカメラは重複する視野を有し得る。追加の例では、画像は、単一のカメラによってキャプチャされてよく、たとえば、それらは、様々な時間においてカメラによってキャプチャされた画像であり得る。本明細書で説明される実装は、同じ特徴を有する任意の画像、たとえば、対応する特徴がそれについて決定され得る画像上で使用され得る。同様に、画像が同じ特徴を示す限り、たとえば、ロバスト性を向上させるために、3つ以上の画像が使用され得る。
【0101】
動作704において、処理は、画像データ中の画像について対応する点ペアを決定することを含むことが可能である。たとえば、処理は、画像データを分析して画像特徴を識別し、2つ以上の画像にわたってそれらの特徴を一致させ得る。非限定的な例として、特徴は、各カメラの(たとえば、2つのカメラの各々の)2つのフレームについて決定されてよく、すべての(この例では、4つの)フレームにわたって特徴一致が実施されてよいが、任意の数のフレームが企図される。そのような例では、ビデオシーケンスからの多様なフレームにわたる特徴一致は、よりロバストな特徴を提供して、より良い較正を生じ得る。以下で詳細に説明される動作のいずれかにおいて、特徴は、キャプチャされた様々なフレームの特徴のいずれかに対応し得る。いくつかの事例では、動作704は、動作604と実質的に同じであることが可能であり、本明細書ではさらに詳述されない。
【0102】
動作706において、処理は、点ペアの各々について誤差(たとえば、射影誤差)を決定することを含むことが可能である。いくつかの事例では、動作706は、カメラ間で、および相対的体勢の初期仮定に基づいて関係を記述する基本行列を決定することが可能である。(たとえば推定された基本行列を用いて初期化することによって)基本行列を使用して、動作706は、点ペア中の第1の点についてエピポーラ線を決定し、それらのエピポーラ線を第2の画像に射影し得る。誤差は、エピポーラ線と第2の点との間の距離として決定され得る。
【0103】
動作708において、処理700は、点ペアのサブセットを決定し得る。たとえば、点ペアのサブセットは、しきい値誤差以上の誤差を有する点を除外し得る。いくつかの実装では、サブセットは、画像中の点の位置に基づいて決定されてもよい。たとえば、サブセットは、動作608において上記で論じられた技法を使用しておよび/または
図3に示されている技法に基づいて決定されてよい。
【0104】
動作710は、第1の補正関数を生成することを含むことが可能である。たとえば、すべてのカメラに関してエピポーラ幾何を使用して解かれた第1の補正関数は、(たとえば、外在性較正の初期推定値に対する補正として)互いに対するすべてのカメラの較正を生じることが可能である。しかしながら、上記で論じられたように、エピポーラ幾何を利用する技法は点ペア中の点の深度を考慮しないので、カメラは、6の自由度すべてにおいて制約されるのではない。その上、エピポーラ幾何を利用する技法は、内在性パラメータを加味しない。
【0105】
動作710から、処理700は動作706に戻ることが可能である。たとえば、処理700は、基本行列について繰り返し解き、点ペアに関連付けられた誤差を決定し、次いで、点ペアのセットを改良し得る。いくつかの実装では、繰り返しの数はあらかじめ確定されてよい。他の実装では、処理700は、点ペアのセットが点ペアのしきい値数以下である、たとえば、20個未満の点ペアであるとき、動作718に進むことが可能であり、ここで、点の総誤差は、減少するのを止めるか、誤差の変化(導関数)がしきい値量よりも少ない場合にしきい値量だけ減少するなどする。
【0106】
したがって、処理700はまた、第6の自由度を制約し、スケールのインジケーションを提供し、および/または内在性パラメータに関連付けられた不整合について解くための動作を含み得る。たとえば、動作712、714、および716は、内在性パラメータに関連付けられた補正関数を生成し得る。
【0107】
さらに、少なくともいくつかの例では、そのようなシステムは、独立して(たとえば独立した相対的体勢を有して)画像の各走査線を取り扱ってよく、各走査線は、異なる相対的タイムスタンプに関連付けられる。非限定的な例として、そのような取扱いは、得られる補正が各走査線に関連付けられた体勢に基づくように、そのようなカメラがローリングシャッターカメラである(すなわち各走査線が連続的にキャプチャされる)場合に使用されてよい。
【0108】
たとえば、動作712は、点深度推定値および/または内在性(たとえば、ひずみパラメータ)に関連付けられた誤差を決定し得る。たとえば、
図2に関して上記で詳述されたように、第1の画像からの点は第2の画像に再射影されて、たとえば、深度を推定し、複数の点からの情報を使用して最適化された深度に収束することによって、点の深度が決定され得る。この例では、深度に関連付けられた誤差は、測定された点と再射影された点との間のユークリッド距離であり得る。動作712はまた、たとえば、各測定された点に関連付けられたひずみのない点を決定することによって、他の内在性特性、たとえば、ひずみパラメータ、焦点距離、および中心点について解き得る。
【0109】
動作714において、処理700は、点ペアのサブセットを決定し得る。たとえば、点ペアのサブセットは、しきい値誤差以上の誤差を有する点を除外し得る。いくつかの実装では、サブセットは、画像中の点の位置に基づいて決定されてもよい。たとえば、サブセットは、動作608、708において上記で論じられた技法を使用しておよび/または
図3に示されている技法に基づいて決定されてよい。
【0110】
動作716は、第2の補正関数(たとえば、カメラ内在性の初期仮定を補正するための関数)を生成することを含むことが可能である。たとえば、点深度を決定するための点の再射影を使用しておよび/またはひずみのない点を使用して解かれた第2の補正関数は、個々のカメラの内在性関数の較正を生じることが可能である。したがって、第1の補正関数は、たとえば、エピポーラ幾何を利用する技法は点ペア中の点の深度を考慮しないので、カメラの6の自由度すべては制約しないことがあるが、第2の補正関数は、点の深度について最適化しながら、すべての自由度を制約し得る。その上、第2の補正関数は、他の内在性パラメータについて最適化されてよい。動作710の場合と同様に、少なくともいくつかの例では、(たとえば、カメラがローリングカメラであるときの)各走査線は、最適化のために一意の体勢および/またはタイムスタンプに関連付けられてよい。
【0111】
動作716から、処理700は動作712に戻ることが可能である。たとえば、処理700は、内在性パラメータについて繰り返し解き、点ペアに関連付けられた誤差を決定し、次いで、点ペアのセットを改良し得る。いくつかの実装では、繰り返しの数はあらかじめ確定されてよい。他の実装では、処理700は、点ペアのセットが点ペアのしきい値数以下である、たとえば、20個未満の点ペアであるとき、動作716に進むことが可能であり、ここで、点の総誤差は、減少するのを止めるか、誤差の変化率がしきい値量を下回るときにしきい値量だけ減少するなどする。
【0112】
動作720において、処理は、第1の補正関数および/または第2の補正関数に少なくとも部分的に基づいて、1つまたは複数のカメラに関連付けられた較正データを決定することを含むことが可能である。たとえば、第1の補正関数は、車両上のカメラのアレイの6の自由度のうちの5つを制約し得、第2の補正関数は、第6の自由度を制約することが可能である。その上、第2の補正関数は、内在性パラメータを制約することが可能である。議論の明確さのために、処理700は、動作710において第1の補正関数を生成することと、716において第2の補正関数を生成することと、次いで、動作718においてこれらの2つの補正関数から較正データを生成することとについて説明しているが、実装では、処理700は、たとえば、同じ画像データからおよび同じ時間において外在性較正データおよび内在性較正データについて解くために(たとえば、ジョイント最適化)、動作のうちのいくつかを並列に実施し得る。較正データは、カメラにおいてその後にキャプチャされた画像データに適用されることが可能な較正変換または行列を含み得る。いくつかの事例では、動作718は、たとえば、基準角度から調整角度を加算または減算して最適な較正データを決定することによって、1つまたは複数の較正角度(または、概して、較正特性)を決定することを含むことが可能である。いくつかの事例では、動作は繰り返し実施されてよい。たとえば、処理は、収束まで、内在性を解くことと外在性を解くこととの間で交替してよい。
【0113】
たとえば、本開示の実装では、技法は、すべての制約にわたって一緒にすべてのカメラの正しい体勢(すなわち、位置および配向)についてならびに内在性パラメータについて最適化し得る。その上、本明細書で説明される技法は、外れ値およびノイズを加味するように最適化され得る。たとえば、画像特徴一致は外れ値を生じることがあり、カメラ画像処理におけるそのような外れ値に対して結果を最適化するために期待値最大化フレームワークが使用され得る。たとえば、期待値最大化フレームワークは、データサポートが与えられて、最良のカメラ体勢について最適化することと、カメラ体勢の最良の推定値が与えられて、データサポートを限定することとの間で繰り返され得る。
【0114】
動作720において、処理は、較正データに少なくとも部分的に基づいて1つまたは複数のセンサを較正することを含むことが可能である。たとえば、動作720は、位置特定システム(たとえば、位置特定構成要素520)、知覚システム(たとえば、知覚構成要素522)などのうちの1つまたは複数に較正データを送ることを含むことが可能である。いくつかの事例では、較正データは、車両の1つまたは複数のシステムによって使用されて、1つまたは複数のセンサによってキャプチャされたデータが、正確な方式で環境を表すことが可能であるように、データが整合されるかまたは他の方法で調整されることが可能である。
【0115】
図8は、本明細書で説明されるように、較正されたセンサデータに少なくとも部分的に基づいて自律車両を制御するための例示的な処理800を示す。たとえば、処理800の一部または全部は、本明細書で説明されるように、
図5の1つまたは複数の構成要素によって実施されることが可能である。たとえば、処理800の一部または全部は、位置特定構成要素520、知覚構成要素522、プランニング構成要素524、および/または1つもしくは複数のシステムコントローラ526によって実施されることが可能である。
【0116】
動作802において、処理は、更新された較正データを受信することを含むことが可能である。いくつかの事例では、較正データは、本明細書で説明される較正技法を使用して決定されることが可能である。
【0117】
動作804において、処理は、更新された較正データに少なくとも部分的に基づいて軌道を生成することを含むことが可能である。たとえば、動作804において生成される軌道は、較正データを使用して較正された1つまたは複数のセンサから受信されたセンサデータに少なくとも部分的に基づき得る。いくつかの事例では、軌道は、環境中の自律車両の外部にあるオブジェクトまたはエージェントの存在に基づくことが可能である。
【0118】
動作806において、処理は、軌道に追従するように自律車両を制御することを含むことが可能である。いくつかの事例では、動作806において生成されるコマンドは、軌道を走らせるように自律車両を制御するために、自律車両に搭載されたコントローラに中継されることが可能である。自律車両のコンテキストにおいて論じられたが、処理800、ならびに本明細書で説明される技法およびシステムは、マシンビジョンを利用する様々なシステムに適用されることが可能である。
【0119】
例示的な条項
A:例示的なシステムは、環境中を横断するように構成された車両を含み、車両は、カメラのうちの少なくとも2つの視野が少なくとも部分的に重複するように車両の本体上に配設された複数のカメラと、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶するコンピュータ可読媒体とを備え、命令は、複数のカメラから画像のセットを受信することであって、画像のセットは、実質的に第1の時間における環境を表し、複数のカメラによってキャプチャされた画像を含む、ことと、画像のセットについて、複数の点ペアを決定することであって、点ペアの各々は、画像のセットのうちの1つの画像中の第1の点、および画像のセットのうちの別の画像中の第2の点を含み、第1の点および第2の点は、同じ画像特徴に対応する、ことと、複数の点ペアに関連付けられた誤差を決定することであって、誤差は、少なくとも部分的に、第1の点と、第2の点に対応するエピポーラ線との間の距離を含む、ことと、誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、カメラの推定された相対的体勢の不整合を表す補正関数を決定することと、補正関数に少なくとも部分的に基づいて、複数のカメラを較正することとを含む動作をシステムに実施させる。
【0120】
B:補正関数は第1の補正関数であり、本システムは、本体上に配設され、カメラのうちの1つまたは複数の視野中の環境の部分について点群データを生成するように構成された少なくとも1つのセンサをさらに備え、動作は、第1の時間においてキャプチャされた点群データを、画像のセットのうちの少なくとも1つの画像中で決定されたエッジと比較することと、比較することに基づいて、車両に対するカメラの不整合を表す第2の補正関数を決定することとをさらに含み、さらに、複数のカメラを較正することは、第2の補正関数に少なくとも部分的に基づいて複数のカメラを較正することを含む例Aのシステム。
【0121】
C:誤差を決定することは、1つの画像と、別の画像との間の関係を記述する基本行列を決定することと、複数の点ペアのうちの個々の点ペアについて、および基本行列に少なくとも部分的に基づいて、第1の画像中の第2の点に対応するエピポーラ線を決定することと、第1の点を第1の画像中のエピポーラ線と比較することとを含む例Aまたは例Bのシステム。
【0122】
D:車両は自律車両であり、1つまたは複数のコンピュータ可読媒体は、1つまたは複数のプロセッサによって実行可能なさらなる命令を記憶し、さらなる命令は、較正関数に少なくとも部分的に基づいて、較正されたデータとして、複数のカメラから受信された追加の画像データを較正することと、較正されたデータに少なくとも部分的に基づいて、自律車両を制御するための軌道を生成することと、軌道に少なくとも部分的に基づいて自律車両を制御することとを含む動作をシステムに実施させる例Aから例Cのいずれか1つのシステム。
【0123】
E:例示的な方法は、システム上に配設された第1のカメラによってキャプチャされた環境の第1の画像を含む第1の画像データを受信することであって、第1のカメラは、第1の視野を有する、ことと、システム上に配設された第2のカメラによってキャプチャされた環境の第2の画像を含む第2の画像データを受信することであって、第2のカメラは、第1の視野と少なくとも部分的に重複する第2の視野を有する、ことと、複数の点ペアを決定することであって、点ペアの各々は、第1の画像中の第1の点、および第1の点に対応する第2の画像中の第2の点を含む、ことと、複数の点ペアのうちの個々の点ペアについて射影誤差を決定することであって、誤差は、少なくとも部分的に、第1の点と、第1の画像中の第2の点に対応するエピポーラ線との間の距離を含む、ことと、射影誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第1のカメラおよび第2のカメラの推定された相対的体勢を表す較正関数を決定することとを備える。
【0124】
F:射影誤差を決定することは、基本行列を決定することと、複数の点ペアのうちの個々について、および基本行列に少なくとも部分的に基づいて、第2の点に対応するエピポーラ線を決定することと、第1の画像中にエピポーラ線を射影することと、第1の点と第1の画像中のエピポーラ線との間の距離を決定することとを含む例Eの方法。
【0125】
G:複数の点ペアを決定することは、第1の画像から複数の第1の特徴を抽出することと、第2の画像から複数の第2の特徴を抽出することと、一致した特徴として、複数の第1の特徴からの第1の特徴と、複数の第2の特徴のうちの第2の特徴とを一致させることと、複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することとを含み、複数の第1の特徴および複数の第2の特徴は、FREAK、AKAZE、FAST、SURF、SIFT、ORB、またはBRIEF特徴のうちの1つまたは複数を含む例Eまたは例Fの方法。
【0126】
H:複数の点ペアのサブセットを決定することは、しきい値誤差以下の射影誤差を有する点ペアを決定することを含む例Eから例Gのいずれか1つの方法。
【0127】
I:較正関数を決定することは、第1の画像を複数の領域に分割することと、第1の点を複数の領域に関連付けることと、第1の点と複数の領域との間の関連付けに基づいて、複数の点ペアのうちの個々に重み係数を適用することとを含む例Eから例Hのいずれか1つの方法。
【0128】
J:自律車両上に配設されたlidarセンサによってキャプチャされた環境の点群を含むlidarデータを受信することであって、点群は、第1の視野と重複する第2の視野の部分に関するデータを含む、ことと、点群を第1の画像または第2の画像と比較することと、比較することに少なくとも部分的に基づいて、第1のカメラまたは第2のカメラのうちの少なくとも1つとlidarセンサとの不整合を表す補正関数を決定することとをさらに備える例Eから例Iのいずれか1つの方法。
【0129】
K:第1の画像または第2の画像中のエッジを検出することと、lidarデータ中の複数の深度不連続性を決定することと、複数の射影点として複数の深度不連続性を第1の画像または第2の画像中に射影することによって複数の深度不連続性をエッジと比較することと、エッジと複数の射影点との間の距離を決定することとをさらに備える例Eから例Jのいずれか1つの方法。
【0130】
L:命令を記憶する例示的な非一時的コンピュータ可読媒体であって、命令は、実行されたとき、第1のカメラによってキャプチャされた環境の第1の画像を含む第1の画像データを受信することであって、第1のカメラは、第1の視野を有する、ことと、第2のカメラによってキャプチャされた環境の第2の画像を含む第2の画像データを受信することであって、第2のカメラは、第1の視野と少なくとも部分的に重複する第2の視野を有する、ことと、複数の点ペアを決定することであって、点ペアの各々は、第1の画像中の第1の点、および第1の点に対応する第2の画像中の第2の点を含む、ことと、複数の点ペアについて射影誤差を決定することと、射影誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第2のカメラに対する第1のカメラの不整合を表す較正関数を決定することとを含む動作を1つまたは複数のプロセッサに実施させる、非一時的コンピュータ可読媒体。
【0131】
M:射影誤差を決定することは、複数の点ペアの第1の画像中の第1の点について、第2の画像中の第1の点に対応するエピポーラ線を決定することと、第2の点を第2の画像中のエピポーラ線と比較することとを含む例Lの非一時的コンピュータ可読媒体。
【0132】
N:複数の点ペアを決定することは、コンピュータビジョン技法を使用して、第1の画像から抽出された第1の特徴を第2の画像から抽出された第2の特徴と一致させることを含む例Lまたは例Mの非一時的コンピュータ可読媒体。
【0133】
O:複数の点ペアのサブセットを決定することは、しきい値誤差以下の射影誤差を有する点ペアを決定することを含む例Lから例Nのいずれか1つの非一時的コンピュータ可読媒体。
【0134】
P:複数の点ペアのサブセットを決定することは、第1の画像を複数の領域に分割することと、複数の領域に対する複数の点ペアの位置を決定することと、位置および射影誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを除去することを決定することとを含む例Lから例Oのいずれか1つの非一時的コンピュータ可読媒体。
【0135】
Q:サブセットを除去することを決定することは、各領域中で同数の点を保持することを含む例Lから例Pのいずれか1つの非一時的コンピュータ可読媒体。
【0136】
R:実行されたとき、第1の視野および第2の視野と重複する第3の視野を有するlidarセンサによってキャプチャされた環境の点群を含むlidarデータを受信することと、点群を第1の画像または第2の画像と比較することと、比較することに少なくとも部分的に基づいて、第1のカメラまたは第2のカメラのうちの少なくとも1つとlidarセンサとの不整合を表す補正関数を決定することとをさらに含む動作を1つまたは複数のプロセッサに実施させるさらなる命令を記憶する例Lから例Qのいずれか1つの非一時的コンピュータ可読媒体。
【0137】
S:実行されたとき、第1の画像または第2の画像中のエッジを検出することと、点群データ中の複数の深度不連続性を検出することと、複数の射影点として、複数の深度不連続性を第1の画像または第2の画像のいずれかの中に射影することと、複数の射影点をエッジと比較することと、エッジと複数の点との間の距離を決定することとをさらに含む動作を1つまたは複数のプロセッサに実施させるさらなる命令を記憶する例Lから例Rのいずれか1つの非一時的コンピュータ可読媒体。
【0138】
T:エッジを検出することは、画像にキャニーエッジディテクタを適用することを含む例Lから例Sのいずれか1つの非一時的コンピュータ可読媒体。
【0139】
AA:例示的なシステムは、環境中を横断するように構成された車両を含み、車両は、カメラのうちの少なくとも2つの視野が少なくとも部分的に重複するように車両の本体上に配設された複数のカメラと、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶するコンピュータ可読媒体とを備え、命令は、複数のカメラから画像のセットを受信することであって、画像のセットは、実質的に第1の時間における環境を表し、複数のカメラによってキャプチャされた画像を含む、ことと、画像のセットについて、複数の点ペアを決定することであって、点ペアの各々は、画像のセットのうちの1つの画像中の第1の点、および画像のセットのうちの別の画像中の第2の点を含む、第1の点および第2の点は、同じ画像特徴に対応する、ことと、複数の点ペアに関連付けられた第1の誤差を決定することであって、第1の誤差は、少なくとも部分的に、第1の点と、第2の点に対応するエピポーラ線との間の第1の距離を含む、ことと、第1の誤差に少なくとも部分的に基づいて、複数の点ペアの第1のサブセットを決定することと、複数の点ペアの第1のサブセットから、カメラの推定された相対的体勢の不整合を表す第1の補正関数を決定することと、複数の点ペアに関連付けられた第2の誤差を決定することであって、第2の誤差は、少なくとも部分的に、第1の点と、点深度を推定する第2の点の再射影との間の第2の距離を含む、ことと、第2の誤差に少なくとも部分的に基づいて、複数の点ペアの第2のサブセットを決定することと、複数の点ペアの第2のサブセットから、カメラの推定された相対的体勢の不整合を表す第2の補正関数を決定することと、第1の補正関数および第2の補正関数に少なくとも部分的に基づいて、複数のカメラを較正することと、を含む動作をシステムに実施させる。
【0140】
BB:第1の誤差を決定することは、1つの画像と、別の画像との間の関係を記述する基本行列を決定することと、複数の点ペアのうちの個々の点ペアについて、および基本行列に少なくとも部分的に基づいて、第1の画像中の第2の点に対応するエピポーラ線を決定することであって、第1の点を第1の画像中のエピポーラ線と比較する、こととを含む例AAのシステム。
【0141】
CC:第2の誤差を決定することは、カメラ内在性に従って第1の点をひずませないことを含む例AAまたは例BBのシステム。
【0142】
DD:複数の点ペアの第1のサブセットを決定することまたは複数の点ペアの第2のサブセットを決定することのうちの少なくとも1つは、第1の点と、エピポーラ線または再射影のうちの少なくとも1つとを含んでいる画像のセットのうちの画像を複数の領域に分割することと、複数の領域のうちの個々について点ペアのサブセットを決定することとを含み、複数の点ペアの第1のサブセットまたは複数の点ペアの第2のサブセットは、複数の領域についての点ペアのサブセットを含む例AAから例CCのいずれか1つのシステム。
【0143】
EE:車両は自律車両であり、1つまたは複数のコンピュータ可読媒体は、1つまたは複数のプロセッサによって実行可能なさらなる命令を記憶し、さらなる命令は、較正関数に少なくとも部分的に基づいて、較正されたデータとして、複数のカメラから受信された追加の画像データを較正することと、較正されたデータに少なくとも部分的に基づいて、自律車両を制御するための軌道を生成することと、軌道に少なくとも部分的に基づいて自律車両を制御することとを含む動作をシステムに実施させる例AAから例DDのいずれか1つのシステム。
【0144】
FF:例示的な方法は、システム上に配設された第1のカメラによってキャプチャされた環境の第1の画像を含む第1の画像データを受信することであって、第1のカメラは、第1の視野を有する、ことと、システム上に配設された第2のカメラによってキャプチャされた環境の第2の画像を含む第2の画像データを受信することであって、第2のカメラは、第1の視野と少なくとも部分的に重複する第2の視野を有する、ことと、複数の点ペアを決定することであって、複数の点ペアのうちの点ペアは、第1の画像中の第1の点、および第1の点に対応する第2の画像中の第2の点を含む、ことと、複数の点ペアのうちの個々の点ペアについて第1の誤差を決定することであって、第1の誤差は、少なくとも部分的に、第1の点と、第1の画像中の第2の点に対応するエピポーラ線との間の距離を含む、ことと、複数の点ペアのうちの個々の点ペアについて第2の誤差を決定することであって、第2の誤差は、少なくとも部分的に、第1の点と、対応する第2の点の再射影との間の距離を含み、再射影は、第1の点の推定された深度に少なくとも部分的に基づく、ことと、第1の誤差または第2の誤差のうちの少なくとも1つに少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第1のカメラおよび第2のカメラの推定された相対的体勢、または第1のカメラもしくは第2のカメラの推定されたカメラ内在性のうちの少なくとも1つを表す較正関数を決定することとを含む。
【0145】
GG:第1の誤差を決定することは、基本行列を決定することと、複数の点ペアのうちの点ペアについて、および基本行列に少なくとも部分的に基づいて、第2の点に対応するエピポーラ線を決定することと、第1の画像中にエピポーラ線を射影することと、第1の点と第1の画像中のエピポーラ線との間の距離を決定することとを含む例FFの方法。
【0146】
HH:複数の点ペアを決定することは、第1の画像から複数の第1の特徴を抽出することと、第2の画像から複数の第2の特徴を抽出することと、一致した特徴として、複数の第1の特徴からの第1の特徴と、複数の第2の特徴のうちの第2の特徴とを一致させることと、複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することとを含み、複数の第1の特徴および複数の第2の特徴は、FREAK、AKAZE、FAST、SURF、SIFT、ORB、またはBRIEF特徴のうちの1つまたは複数を含む例FFまたは例GGの方法。
【0147】
II:再射影は、第1のカメラの推定されたカメラ内在性に少なくとも部分的に基づいて第1の点をひずませないことにさらに基づく例FFから例HHのいずれか1つの方法。
【0148】
JJ:複数の点ペアのサブセットを決定することは、第1の点を含んでいる第1の画像を複数の領域に分割することと、第1の誤差または第2の誤差に少なくとも部分的に基づいて、複数の領域のうちの領域について点ペアのサブセットを決定することとを含み、複数の点ペアの第1のサブセットまたは複数の点ペアの第2のサブセットは、複数の領域についての点ペアのサブセットを含む例FFから例IIのいずれか1つの方法。
【0149】
KK:較正関数を決定することは、第1の点と複数の領域との間の関連付けに基づいて、複数の点ペアのうちの個々に重み係数を適用することを含む例FFから例JJのいずれか1つの方法。
【0150】
LL:複数の領域のうちの第1の領域中の第1の点は、第1の領域中の第1の点の数に基づいて第1の重みを割り当てられる例FFから例KKのいずれか1つの方法。
【0151】
MM:第1の画像データのうちの少なくとも1つは、第1のカメラによってキャプチャされた環境の第3の画像を含むか、または第2の画像データは、第2のカメラによってキャプチャされた環境の第4の画像を含み、点ペアは、第3の画像中の第3の点または第4の画像中の第4の点のうちの少なくとも1つをさらに含む例FFから例LLのいずれか1つの方法。
【0152】
NN:第1の画像または第2の画像中のエッジを検出することと、システム上に配設されたlidarセンサによってキャプチャされた環境の点群を含むlidarデータを受信することであって、点群は、第1の視野と重複する第2の視野の部分に関するデータを含む、ことと、lidarデータ中の複数の深度不連続性を決定することと、複数の射影点として複数の深度不連続性を第1の画像または第2の画像中に射影することによって複数の深度不連続性をエッジと比較することと、エッジと複数の射影点との間の距離を決定することと、距離に少なくとも部分的に基づいて、第1のカメラまたは第2のカメラのうちの少なくとも1つとlidarセンサとの不整合を表す補正関数を決定することとをさらに備える例FFから例MMのいずれか1つの方法。
【0153】
OO:命令を記憶する例示的な非一時的コンピュータ可読媒体であって、命令は、実行されたとき、システム上に配設された第1のカメラによってキャプチャされた環境の第1の画像を含む第1の画像データを受信することであって、第1のカメラは、第1の視野を有する、ことと、システム上に配設された第2のカメラによってキャプチャされた環境の第2の画像を含む第2の画像データを受信することであって、第2のカメラは、第1の視野と少なくとも部分的に重複する第2の視野を有する、ことと、複数の点ペアを決定することであって、点ペアのうちの個々は、第1の画像中の第1の点、および第1の点に対応する第2の画像中の第2の点を含む、ことと、複数の点ペアのうちの個々の点ペアについて第1の誤差を決定することであって、第1の誤差は、少なくとも部分的に、第1の点と、第1の画像中の第2の点に対応するエピポーラ線との間の距離を含む、ことと、複数の点ペアのうちの個々の点ペアについて第2の誤差を決定することであって、第2の誤差は、少なくとも部分的に、第1の点と、第1の点の深度を推定する、対応する第2の点の再射影との間の距離を含む、ことと、第1の誤差または第2の誤差のうちの少なくとも1つに少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第1のカメラおよび第2のカメラの推定された相対的体勢、または推定されたカメラ内在性のうちの少なくとも1つを表す較正関数を決定することとを含む動作を1つまたは複数のプロセッサに実施させる、非一時的コンピュータ可読媒体。
【0154】
PP:複数の点ペアを決定することは、第1の画像から複数の第1の特徴を抽出することと、第2の画像から複数の第2の特徴を抽出することと、一致した特徴として、複数の第1の特徴からの第1の特徴と、複数の第2の特徴のうちの第2の特徴とを一致させることと、複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することとを含み、複数の第1の特徴および複数の第2の特徴は、FREAK、AKAZE、FAST、SURF、SIFT、ORB、またはBRIEF特徴のうちの1つまたは複数を含む例OOの非一時的コンピュータ可読媒体。
【0155】
QQ:複数の点ペアのサブセットを決定することは、しきい値誤差以下の射影誤差を有する点ペアを決定することを含む例OOまたは例PPの非一時的コンピュータ可読媒体。
【0156】
RR:複数の点ペアのサブセットを決定することは、第1の点を含んでいる第1の画像を複数の領域に分割することと、第1の誤差または第2の誤差に少なくとも部分的に基づいて、複数の領域の点ペアのサブセットを決定することとを含み、複数の点ペアのサブセットは、複数の領域についての点ペアのサブセットを含む例OOから例QQのいずれか1つの非一時的コンピュータ可読媒体。
【0157】
SS:較正関数を決定することは、第1の点と複数の領域との間の関連付けに基づいて、複数の点ペアのうちの個々に重み係数を適用することを含む例OOから例RRのいずれか1つの方法。
【0158】
TT:複数の領域のうちの第1の領域中の第1の点は、第1の領域中の第1の点の数に基づいて第1の重みを割り当てられる例OOから例SSのいずれか1つの方法。
【0159】
結論
本明細書で説明される技法の1つまたは複数の例について説明されたが、それらの様々な改変、追加、置換および均等物は、本明細書で説明される技法の範囲内に含まれる。
【0160】
例の説明では、本出願の一部を形成する添付の図面への参照が行われ、これは、例として、請求される主題の特定の例を示している。他の例が使用されることが可能であること、および構造的変更などの変更または改変が行われることが可能であることを理解されたい。そのような例、変更または改変は、意図された請求される主題に関する範囲からの逸脱では必ずしもない。本明細書におけるステップはある順序で提示されることが可能であるが、いくつかの場合には、順序付けは、説明されるシステムおよび方法の機能を変更することなしに、いくつかの入力が、異なる時間においてまたは異なる順序で提供されるように、変更されることが可能である。開示される手順も、異なる順序で実行され得る。さらに、本明細書で説明される様々な計算は、開示される順序で実施される必要はなく、計算の代替的な順序付けを使用する他の例が容易に実装され得る。並べ替えられることに加えて、いくつかの事例では、計算はまた、同じ結果を伴うサブ計算に分解され得る。