(57)【要約】本開示は自律車両に取り付けられたセンサ較正を対象とする。環境を表す第１及び第２の画像データを第１及び第２のカメラでキャプチャ可能である。第１の画像データの第１の点と第２の画像データの第２の点とを含む点ペアを決定して点に関連付けられた射影誤差を決定可能である。特徴一致を用いて点の間の対応を決定して点ペアを識別し得る。点ペアのサブセットを決定可能である。点のサブセットに関連付けられた較正データを決定して較正インフラストラクチャを必要なしにカメラを較正するのに使用可能である。エピポーラ幾何を用いて自律車両のカメラの不整合を補正する。環境の３次元特性を考慮するｌｉｄａｒデータを用いてカメラセンサをさらに制約し、スケールあいまいさ及び／又は並進／回転オフセットを除去可能である。いくつかの動作を並列に実施して同じ画像データから及び同じ時間において外在性較正データ及び内在性較正データについて解き得る。
2021530049.tif 000002
【特許請求の範囲】
【請求項１】
環境中を横断するように構成された車両であって、少なくとも２つのカメラの視野が少なくとも部分的に重複するように前記車両の本体上に配設された複数のカメラを含む前記車両と、
１つまたは複数のプロセッサと、
１つまたは複数の前記プロセッサによって実行可能な命令を記憶するコンピュータ可読媒体と、
を備え、
前記命令は、
前記複数のカメラから画像のセットを受信することであって、前記画像のセットは、実質的に第１の時間における前記環境を表し、前記複数のカメラによってキャプチャされた画像を含む、ことと、
前記画像のセットについて、複数の点ペアを決定することであって、前記点ペアの各々は、前記画像のセットのうちの１つの画像中の第１の点、および前記画像のセットのうちの別の画像の中の第２の点を含み、前記第１の点および前記第２の点は、同じ画像特徴に対応する、ことと、
前記複数の点ペアに関連付けられた誤差を決定することであって、前記誤差は、少なくとも部分的に、前記第１の点と、前記第２の点に対応するエピポーラ線との間の距離を含む、ことと、
前記誤差に少なくとも部分的に基づいて、前記複数の点ペアのサブセットを決定することと、
前記複数の点ペアの前記サブセットから、前記カメラの推定された相対的体勢の不整合を表す補正関数を決定することと、
前記補正関数に少なくとも部分的に基づいて、前記複数のカメラを較正することと、
を含む動作をシステムに実施させること
を特徴とするシステム。
【請求項２】
前記補正関数は第１の補正関数であり、前記システムは、
前記本体上に配設され、前記カメラのうちの１つまたは複数の視野中の前記環境の部分について点群データを生成するように構成された少なくとも１つのセンサをさらに備えたシステムであって、
前記動作は、
前記第１の時間においてキャプチャされた点群データを、前記画像のセットのうちの少なくとも１つの画像中で決定されたエッジと比較することと、
前記比較することに基づいて、前記車両に対する前記カメラの不整合を表す第２の補正関数を決定することと、
をさらに含み、
さらに、前記複数のカメラを較正することは、前記第２の補正関数に少なくとも部分的に基づいて前記複数のカメラを較正することを含むこと
を特徴とする請求項１に記載のシステム。
【請求項３】
前記誤差を決定することは、
前記１つの画像と、前記別の画像との間の関係を記述する基本行列を決定することと、
前記複数の点ペアのうちの個々の点ペアについて、および前記基本行列に少なくとも部分的に基づいて、前記第１の画像中の前記第２の点に対応する前記エピポーラ線を決定することと、
前記第１の点を前記第１の画像中の前記エピポーラ線と比較することと、
を含むこと
を特徴とする請求項１又は請求項２に記載のシステム。
【請求項４】
前記誤差は第１の誤差であり、前記補正関数は第１の補正関数であり、
前記動作は、
前記複数の点ペアに関連付けられた第２の誤差を決定することであって、前記第２の誤差は、少なくとも部分的に、前記第１の点と、点深度を推定する前記第２の点の再射影との間の第２の距離を含む、ことと、
前記第２の誤差に少なくとも部分的に基づいて、前記複数の点ペアの第２のサブセットを決定することと、
前記複数の点ペアの前記第２のサブセットから、前記第１のカメラまたは前記第２のカメラの推定されたカメラ内在性を表す第２の補正関数を決定することと、
をさらに含み、
前記複数のカメラを較正することは、前記第２の補正関数に少なくとも部分的にさらに基づくこと
を特徴とする請求項１から請求項３のいずれか１項に記載のシステム。
【請求項５】
前記複数の点ペアの第１のサブセットを決定することまたは前記複数の点ペアの第２のサブセットを決定することのうちの少なくとも１つは、
前記第１の点と、前記エピポーラ線または前記再射影のうちの少なくとも１つとを含んでいる前記画像のセットのうちの画像を複数の領域に分割することと、
前記複数の領域のうちの個々について点ペアのサブセットを決定することと、
を含み、
前記複数の点ペアの前記第１のサブセットまたは前記複数の点ペアの前記第２のサブセットは、前記複数の領域についての前記点ペアのサブセットを含むこと
を特徴とする請求項１から請求項４のいずれか１項に記載のシステム。
【請求項６】
前記第２の誤差を決定することは、カメラ内在性に従って前記第１の点をひずませないことを含むこと
を特徴とする請求項５に記載のシステム。
【請求項７】
前記車両は自律車両であり、１つまたは複数の前記コンピュータ可読媒体は、１つまたは複数の前記プロセッサによって実行可能なさらなる命令を記憶し、
前記さらなる命令は、
前記較正関数に少なくとも部分的に基づいて、較正されたデータとして、前記複数のカメラから受信された追加の画像データを較正することと、
前記較正されたデータに少なくとも部分的に基づいて、前記自律車両を制御するための軌道を生成することと、
前記軌道に少なくとも部分的に基づいて前記自律車両を制御することと、
を含む動作をシステムに実施させること
を特徴とする請求項１から請求項６のいずれか１項に記載のシステム。
【請求項８】
システム上に配設された第１のカメラによってキャプチャされた環境の第１の画像を含む第１の画像データを受信することであって、前記第１のカメラは、第１の視野を有する、ことと、
前記システム上に配設された第２のカメラによってキャプチャされた前記環境の第２の画像を含む第２の画像データを受信することであって、前記第２のカメラは、前記第１の視野と少なくとも部分的に重複する第２の視野を有する、ことと、
複数の点ペアを決定することであって、前記点ペアの各々は、前記第１の画像中の第１の点、および前記第１の点に対応する前記第２の画像中の第２の点を含む、ことと、
前記複数の点ペアのうちの個々の点ペアについて射影誤差を決定することであって、前記誤差は、少なくとも部分的に、前記第１の点と、前記第１の画像中の前記第２の点に対応するエピポーラ線との間の距離を含む、ことと、
前記射影誤差に少なくとも部分的に基づいて、前記複数の点ペアのサブセットを決定することと、
前記複数の点ペアの前記サブセットから、前記第１のカメラおよび前記第２のカメラの推定された相対的体勢を表す較正関数を決定することと、
を備えたこと
を特徴とする方法。
【請求項９】
前記射影誤差を決定することは、
基本行列を決定することと、
前記複数の点ペアのうちの個々について、および前記基本行列に少なくとも部分的に基づいて、前記第２の点に対応する前記エピポーラ線を決定することと、
前記第１の画像中に前記エピポーラ線を射影することと、
前記第１の点と前記第１の画像中の前記エピポーラ線との間の距離を決定することと、
を含むこと
を特徴とする請求項８に記載の方法。
【請求項１０】
前記複数の点ペアを決定することは、
前記第１の画像から複数の第１の特徴を抽出することと、
前記第２の画像から複数の第２の特徴を抽出することと、
一致した特徴として、前記複数の第１の特徴からの第１の特徴と、前記複数の第２の特徴のうちの第２の特徴とを一致させることと、
前記複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することと、
を含み、
前記複数の第１の特徴および前記複数の第２の特徴は、ＦＲＥＡＫ、ＡＫＡＺＥ、ＦＡＳＴ、ＳＵＲＦ、ＳＩＦＴ、ＯＲＢ、またはＢＲＩＥＦ特徴のうちの１つまたは複数を含むこと
を特徴とする請求項８又は請求項９に記載の方法。
【請求項１１】
前記射影誤差は第１の誤差であり、前記方法は、
前記複数の点ペアのうちの個々の点ペアについて第２の誤差を決定することであって、前記第２の誤差は、少なくとも部分的に、前記第１の点と、対応する前記第２の点の再射影との間の距離を含み、前記再射影は、前記第１の点の推定された深度に少なくとも部分的に基づく、ことをさらに備え、
前記複数の点ペアの前記サブセットは、前記第２の誤差に少なくとも部分的に基づいてさらに決定され、
前記較正関数は、前記第１のカメラまたは前記第２のカメラの推定されたカメラ内在性をさらに表すこと
を特徴とする請求項８に記載の方法。
【請求項１２】
前記自律車両上に配設されたｌｉｄａｒセンサによってキャプチャされた前記環境の点群を含むｌｉｄａｒデータを受信することであって、前記点群は、前記第１の視野と重複する前記第２の視野の部分に関するデータを含む、ことと、
前記点群を前記第１の画像または前記第２の画像と比較することと、
前記比較することに少なくとも部分的に基づいて、前記第１のカメラまたは前記第２のカメラのうちの少なくとも１つと前記ｌｉｄａｒセンサとの不整合を表す補正関数を決定することと、
をさらに備えたこと
を特徴とする請求項８から請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記第１の画像または前記第２の画像中のエッジを検出することと、
前記ｌｉｄａｒデータ中の複数の深度不連続性を決定することと、
複数の射影点として前記複数の深度不連続性を前記第１の画像または前記第２の画像中に射影することによって前記複数の深度不連続性を前記エッジと比較することと、
前記エッジと前記複数の射影点との間の距離を決定することと、
をさらに備え、
前記補正関数は、前記距離に少なくとも部分的に基づいて決定されること
を特徴とする請求項１２に記載の方法。
【請求項１４】
前記複数の点ペアの前記第１のサブセットを決定することまたは前記複数の点ペアの前記第２のサブセットを決定することのうちの少なくとも１つは、
前記第１の点と、前記エピポーラ線または前記再射影のうちの少なくとも１つとを含んでいる画像の前記セットのうちの画像を複数の領域に分割することと、
前記複数の領域のうちの個々について点ペアのサブセットを決定することと、
を含み、
前記複数の点ペアの前記第１のサブセットまたは前記複数の点ペアの前記第２のサブセットは、前記点ペアのサブセットを含み、
前記較正関数を決定することは、前記点ペアと前記複数の領域との間の関連付けに基づいて、前記複数の点ペアのうちの個々に重み係数を適用することを含むこと
を特徴とする請求項８から請求項１３のいずれか１項に記載の方法。
【請求項１５】
１つまたは複数のプロセッサによって実行されたとき、請求項８から請求項１４のいずれか１項に記載の方法を前記１つまたは複数のプロセッサに実行させる命令が格納された非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、センサ較正に関する。
【背景技術】
【０００２】
本ＰＣＴ国際出願は、２０１８年６月２９日に出願された米国特許出願第１６／０２３，５７１号明細書、および２０１８年６月２９日に出願された米国特許出願第１６／０２３，５０７号明細書の優先権の利益を主張し、それらの両方の開示は参照により本明細書に組み込まれる。
様々なシステムによるセンサの使用は、正確な較正が有効であることを要求する。たとえば、自律車両は、オブジェクト、たとえば、車両に接近しているオブジェクトおよび／または車両が接近しているオブジェクトを検出するために、多様なカメラ、ＬＩＤＡＲセンサ、ｒａｄａｒセンサなどを有することがあり、それらのオブジェクトに対してナビゲートするためにそれらのオブジェクトに関するセンサデータが必要である可能性がある。他の歩行者、自転車に乗る人、および他の車両が存在し得るものを含む、いくつかの環境では、そのようなセンサが適切に較正されない場合、潜在的に致命的な衝突が発生し得る。現在の較正技法は、センサを較正するために、基準マーカなどのインフラストラクチャを使用する。たとえば、基準マーカのデータをキャプチャすることによって、補正項が決定され、その後にキャプチャされたデータに適用されることが可能である。インフラストラクチャは、システムが製造される場所または他の場所では容易に利用可能であり得るが、後の較正は、インフラストラクチャを有する場所にシステム（たとえば自律車両）を持ってくることを要求し、システムにとって望ましくないダウンタイムを生じ、および／または、ナビゲーションのためにセンサに依拠する例では、その場所への潜在的に安全でない移動を生じる。さらに、現在の較正技法は、人間の操作者を必要とすることがあり、それにより、処理は手作業で、遅く、潜在的に不正確になり得る。これらの欠点を緩和することを試みる既存の較正技法は、しばしば計算コストが高い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願第１５／６７４，８５３号明細書
【特許文献２】米国特許出願第１５／６７５，４８７号明細書
【図面の簡単な説明】
【０００４】
詳細な説明について、添付の図を参照しながら説明する。図では、参照番号の最も左の数字は、その参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、同様または同等の構成要素または特徴を示す。
【０００５】
【図１】本明細書で説明される自律車両上に取り付けられたセンサの外在性特性を較正するための例示的な方法を示す、テキストの視覚的なフローチャートである。
【図２】本明細書で説明される自律車両上に取り付けられたセンサの内在性特性を較正するための例示的な方法を示す、テキストの視覚的なフローチャートである。
【図３】本明細書で説明される画像中のデータをフィルタ処理するための例示的な方法を示す、テキストの視覚的なフローチャートである。
【図４】例示的な車両上に取り付けられた多様なセンサを示す例示的な車両の平面図である。
【図５】本明細書で説明される、センサ較正の実施形態を実装するための例示的なシステムのブロック図である。
【図６】本明細書で説明される実装による、カメラ対カメラ較正およびカメラ対センサ較正を使用してセンサを較正するための例示的な処理を示す図である。
【図７】本明細書で説明される実装による、センサの内在性特性を較正するための例示的な処理を示す図である。
【図８】本明細書で説明される実装による、較正されたセンサデータに少なくとも部分的に基づいて自律車両を制御するための別の例示的な処理を示す図である。
【発明を実施するための形態】
【０００６】
本明細書で説明される技法は、インフラストラクチャなしに、たとえば基準マーカなしに、システムのセンサを較正することを対象とする。概して、そのような較正は、（何らかの原点、たとえば別のセンサ、システムの原点などに対して、センサの場所もしくは配向のうちの１つもしくは複数を決定することである）「外在性」較正、または（センサ自体に関する１つもしくは複数のパラメータ、たとえば、焦点距離、中心点、レンズひずみモデルなどを決定することである）「内在性」較正のいずれかを指し得る。本明細書全体にわたって、そのようなシステムの例は、（様々な様式の）多様なセンサを有する自律車両であるが、任意の他のシステム（たとえば、多様な画像センサを有するスマートフォン、様々なセンサ様式を有するロボットマニピュレータなど）が企図される。そのような（すなわち、システムが自律車両である）一例では、自律車両は、重複する視野を表すことが可能な（同じまたは異なる様式の）多様なセンサを含むことが可能である。第１のセンサ、たとえば、第１のカメラは、環境の第１のデータ、たとえば、第１の画像をキャプチャすることが可能であり、第２のセンサ、たとえば、第２のカメラは、環境の第２のデータ、たとえば、第２の画像をキャプチャすることが可能である。第１および第２のセンサが（互いに対して、車両に対して、および／または内部で）正しく較正されるとき、第１のデータと第２のデータとを組み合わせて環境の整合された表現を生成することが可能である。しかしながら、センサが不適切に較正されるときには、センサデータを組み合わせると、環境の不正確な、または「ぼやけた」表現が生じ得る。現実世界の例では、自律車両に適用されるとき、および極めて正確な較正の要求の実施のとき、０．５度程度のセンサの不整合により、１００メートル離れているオブジェクトが進んでいるレーンを確実に決定することができなくなり得る。しかしながら、手動で較正されるとき、車両、センサ、およびマウントの物理的公差は、約２．０度程度の確実さしか位置公差に提供し得ない。したがって、センサは、設置時に不整合になる可能性を有する。
【０００７】
本明細書で説明される例では、較正技法は、車両上に取り付けられたカメラのアレイを較正するために使用されることが可能である。いくつかの実装では、カメラは、自律車両の周りの３６０度をカバーする画像をキャプチャするために取り付けられ得る。較正技法は、較正データを決定するためにエピポーラ幾何を使用することを含むことが可能である。より詳細には、技法は、重複する視野をもつ２つのカメラによって実質的に同時にキャプチャされた画像中の点ペアを決定することを含むことが可能である。たとえば、点ペア中の第１の点は、第１の画像中の特徴に対応することがあり、点ペア中の第２の点は、異なるカメラによってキャプチャされた第２の画像中の同じ特徴に対応することがある。点ペアが決定されると、各点ペアについて誤差の量が決定されることが可能であり、誤差に基づいて点ペアのサブセットが選択され得る。いくつかの実装では、誤差の量は、第１の画像または第２の画像上の点に関連付けられたエピポーラ線を、第１の画像および第２の画像のうちの他方の上に射影し、それらのエピポーラ線を、以前に識別された点と比較することによって決定される、射影誤差に対応し得る。点ペアに関連付けられた較正データが決定され、次いで、点がエピポーラ線に沿って存在するように制約されるように、互いに対してカメラを較正するために使用されることが可能である。
【０００８】
いくつかの事例では、較正技法はまた、車両に対して、較正されたカメラを制約することを含むことが可能である。たとえば、本明細書で説明される技法は、車両に対してカメラを較正するために、うまく較正されているｌｉｄａｒデータ（たとえば、点群データ）を使用し得る。いくつかの実装では、本明細書で説明される技法は、たとえば、キャニーエッジ検出アルゴリズムを使用して、画像データを分析して特徴エッジを決定し、深度不連続性を示すｌｉｄａｒデータ中の点をこれらの特徴エッジと比較し得る。
【０００９】
したがって、いくつかの実装では、エピポーラ幾何を使用して、対応する画像を分析し、複数のカメラを互いに対して整合させ得る。しかしながら、エピポーラ幾何は、環境の３次元態様を考慮しないので、この分析は、カメラを互いに対して整合させることしかできないことがある（たとえば、センサのグループとしてのカメラは、正しいスケールを欠くことがあるか、または場合によっては、ｘ方向、ｙ方向、ｚ方向、ロール、ピッチ、もしくはヨーのいずれか１つまたは複数に対してオフセットされることがある）。環境の３次元特性（たとえば、特徴エッジ）を考慮するｌｉｄａｒデータを使用してカメラセンサをさらに制約し、それにより、どのようなスケールあいまいさおよび／または並進／回転オフセットをも除去し得る。これらの２つの較正は、画像データおよびｌｉｄａｒデータの大きいセットにわたって、同時に、たとえば、並列に実施され、自律車両上のカメラの外在性特性、たとえば、物理的不整合を較正するのに有用な較正データを決定し得る。いくつかの事例では、較正データは、いくつかのカメラの各々からの多様な画像を、およびいくつかの事例では、ｌｉｄａｒデータを検討することによって、最適な解において収束し得る、期待値最大化アルゴリズムを適用することによって決定され得る。
【００１０】
いくつかの事例では、本明細書で説明される較正技法はまた、１つまたは複数の内在性特性についての較正を実施するために使用されることが可能である。内在性特性の例は、限定はされないが、レンズひずみ、焦点距離、中心点、伝達媒体などを含む。追加の較正特性は、限定はされないが、（たとえば、１つまたは複数のセンサから受信されるデータの）時間遅延、温度、圧縮などを含み得る。
【００１１】
本明細書で論じられる較正技法は、自律車両上のセンサ、たとえば、カメラのアレイにとって最適な較正を決定するためのフレームワークを提供することによって、コンピューティングデバイスの機能を改善することが可能である。本明細書で説明される較正技法を使用して１つまたは複数のカメラを較正することによって、カメラは、環境に関して高い正確度および精度で環境を表すデータを生成することが可能である。たとえば、このようにして較正されたカメラは、セグメント化、分類、ルートプランニングなどのためにより正確なデータを提供することが可能であり、それは、最終的に、運転中のより良い安全結果に導くことが可能である。さらに、カメラのそのような改善された較正は、たとえば、セグメント化、分類などのためのより正確な開始点およびより良好に融合されたデータを提供することによって、処理および知覚システムを改善し得る。コンピューティングデバイスの機能に対するこれらおよび他の改善が論じられる。
【００１２】
本明細書で論じられる較正技法はまた、従来の較正に対する改善を表す。たとえば、過去において、較正技法は、基準マーカまたは他のインフラストラクチャをしばしば必要とした。たとえば、いくつかの技法は、車両をターンテーブル上に取り付け、車両上のセンサによってキャプチャされるデータを監視しながら車両を物理的に回転させることを含んでいた。他のシステムは、人間の操作者がそのような車両のセンサ中のそのような基準を振ることを必要とした。そのような従来の較正技法は、限られた柔軟性という欠点があり、追加のおよび／または特殊な較正機器をしばしば必要とし、および／または、次善の較正センサをもたらす。対照的に、本明細書で説明される技法は、インフラストラクチャなしの較正を許可し得る。たとえば、本明細書で説明される技法は、車両が環境中を横断するときの較正の変更について、たとえば、新しいデータが記録されるとそれを検討することによって、自動的に調整することが可能であり得る。その上、説明される技法は、多様なカメラによって同時にキャプチャされた画像を含む画像データのみを必要とするので、較正センサは、履歴データ上でおよび／またはシミュレートデータ上で行われ得る。このようにして、本明細書で論じられる技法は、従来の較正に対する有意な改善を表す。
【００１３】
本明細書で説明される方法、装置およびシステムは、いくつかの仕方で実装されることが可能である。例示的な実装が、以下の図を参照しながら以下で提供される。自律車両のコンテキストにおいて論じられるが、本明細書で説明される方法、装置、およびシステムは、使用前および／または使用中にセンサの較正を必要とする様々なシステムに適用されることが可能であり、自律車両に限定されない。別の例では、本方法、装置、およびシステムは、航空コンテキストにおいて利用され得る。さらに、本明細書で説明される技法は、（たとえば、１つもしくは複数のセンサを使用してキャプチャされた）現実のデータ、（たとえば、シミュレータによって生成された）シミュレートデータ、またはこれらの２つの任意の組合せとともに使用され得る。
【００１４】
図１は、本開示の実装による、自律車両上に配設されたカメラを較正するための例示的な処理１００の絵入りの流れ図を示す。この例では、処理１００は、エピポーラ幾何を使用して、自律車両上のカメラの不整合、たとえば、物理的不整合を補正する。
【００１５】
動作１０２において、処理は、多様なカメラにおいて環境の画像をキャプチャすることを含むことが可能である。一例では、動作１０２は、自律車両上に配設された複数のカメラから画像をキャプチャすることを含むことが可能である。本明細書の開示から諒解されるように、各カメラが別のカメラと重複している視野を有する任意数のカメラが、本明細書で説明される較正技法を使用することが可能である。動作１０２に付随する例は、車両１０４上に配設された第１のカメラ１０６（１）および第２のカメラ１０６（２）を有する車両１０４を示している。図示の例では、車両１０４は、概して矢印１０８によって示される方向に環境中を横断しているが、他の実施形態では、車両は、静止しているかまたは異なる方向に移動していてよい。また図示のように、第１のカメラ１０６（１）は、画像１１０（１）などの画像データをキャプチャし、第２のカメラ１０６（２）は、第２の画像１１０（２）などの画像データをキャプチャする。図示の実施形態では、カメラ１０６（１）、１０６（２）は、概して隣り合わせに構成され、両方とも進行方向を向き、それらの視野は有意に重複している。少なくともいくつかの例では、各カメラからの多様な画像（たとえば２）が使用されてよい。以下で詳細に説明されるように、カメラにわたって複数の画像で一致している特徴は、より良い（たとえばよりロバストな）特徴選択をもたらし得る。
【００１６】
画像１１０（１）と画像１１０（２）が実質的に同じ時間にキャプチャされた場合、カメラ１０６（１）、１０６（２）が適切に整合されているとき、画像１１０（１）を画像１１０（２）上に射影すると、たとえば、カメラ１０６（１）とカメラ１０６（２）との間で変換を実施すること（すなわち並進または回転のうちの１つまたは複数を実施すること）によって、画像の整合が生じるはずである。しかしながら、上記で論じられたように、多くの要因が、互いに対するカメラ１０６（１）、１０６（２）の実際の並進および／または配向に影響を及ぼす可能性があり、各々が全体的な不整合に寄与する。たとえば、カメラ１０６（１）、１０６（２）、車両１０４、車両１０４上にカメラ１０６（１）、１０６（２）を保持するカメラマウント（不図示）などに関連付けられた製造および／またはアセンブリの公差は、互いに対して（および期待値に対して）カメラ１０６（１）、１０６（２）の不整合をもたらし得る。さらに、そのようなカメラ１０６（１）、１０６（２）は、通常の運転を通して不整合になることがある。本明細書で説明される技法は、これらおよび他の原因によって引き起こされる不整合を補正する際に有用である。
【００１７】
動作１１２において、処理は、点ペアを識別することを含むことが可能である。より詳細には、動作１１２は、重複する第１の画像１１０（１）および第２の画像１１０（２）の部分について、第１の画像１１０（１）中の第１の点１１４ａ、１１６ａ、１１８ｂ、１２０ａ、１２２ａ、１２４ａ、１２６ａ、１２８ａ、１３０ａ、１３２ａ、および第２の画像１１０（２）中の第２の点１１４ｂ、１１６ｂ、１１８ｂ、１２０ｂ、１２２ｂ、１２４ｂ、１２６ｂ、１２８ｂ、１３０ｂ、１３２ｂを識別し得る。この例では、第１の点および第２の点は画像特徴であってよく、たとえば、第１の点１１４ａは、第１の画像１１０（１）中の画像特徴または部分に対応し、第２の点１１４ｂは、第２の画像１１０（２）中の同じ画像特徴または部分に対応し、第１の点１１６ａは、第１の画像１１０（１）中の別の画像特徴または部分に対応し、第２の点１１６ｂは、第２の画像１１０（２）中の同じ別の画像特徴または部分に対応し、以下同様である。このようにして、カメラが適切に整合されているとき、較正関数は、第１の点１１４ａおよび第２の点１１４ｂを整合させる。本明細書で使用されるとき、第１の点１１４ａおよび第２の点１１４ｂは第１の点ペアを構成し、第１の点１１６ａおよび第２の点１１６ｂは第２の点ペアを構成し、以下同様である。そのような画像特徴は、たとえば、ＡＫＡＺＥ、ＢＲＩＳＫ、ＳＵＲＦ、ＳＩＦＴ、ＯＲＢ、ＢＲＩＥＦ、ＦＡＳＴ、ＦＲＥＡＫ、埋め込みなどに対応し得る。カメラごとに多様なフレームを使用する例では、そのような特徴一致は、フレーム間でおよび／またはカメラ間で実施され得る。
【００１８】
動作１１２は、特徴一致を使用して、点の間の対応を決定し、たとえば、点ペアを識別し得る。たとえば、部分的に重複しているビューを仮定すると、本明細書で説明される技法は、対応する画像から画像特徴、たとえば、局所的特徴を抽出し、一致させ得る。いくつかの実装では、一致は、たとえば、第１の画像１１０（１）および第２の画像１１０（２）など、実質的に同じ時間に露光された２つのカメラフレームからの画像の２つのセットの間で前後に一貫性のある一致に基づいて選択され得る。いくつかの実装では、点ペアは、さらに、いくつかの画像特徴をフィルタ除去することによって決定され得る。たとえば、点は、一致スコア、ネイバー比しきい値（たとえば、Ｌｏｗｅの第１対第２のネイバー比しきい値）に基づいて、および／または初期較正とのカメラ−カメラ制約の違反に基づいてフィルタ処理されることが可能である。本明細書で説明される例は、カメラ−カメラ制約のためのすべての画像の痕跡にひずみがないときに生じ得る良好な内在性較正を仮定し得、最適化は、線形の（または他の方法で修正された／ひずみのない）カメラモデル上で動作する。例示的な付随する動作１１２には１０個の点ペアが示されているが、本明細書で説明される特徴一致技法は、点ペアのより小さいまたはより大きいセットを提供し得る。非限定的な一例では、２つの画像１１０（１）、１１０（２）間で数百個の点ペア、たとえば、最高約３００個の点ペアが決定され得る。その上、明確にするために図１の例は画像の単一のペア、すなわち、第１の画像１１０（１）および第２の画像１１０（２）のみを示しているが、他の実装では、一致は、限定はされないが、ビデオストリーム中のフレームなどを含む一連の画像を見て、フレーム間での特徴の一致を決定することによって行われてよい。
【００１９】
動作１３４において、処理は、点ペアに関連付けられた誤差を決定することを含むことが可能である。たとえば、本明細書で説明される技法は、エピポーラ形状を利用して、一方の画像中の点（たとえば、画像特徴）と、他方の画像中の点ペアに対応するエピポーラ線との間の射影誤差に基づいて誤差を決定し得る。少なくとも１つの例では、そのような誤差は、点とエピポーラ線との間の距離を含み得る。図１の動作１３４に付随する図式例は、この技法の可視化を提供する。特に、この例は、第２の画像１１０（２）、および明確にするために、第２の画像１１０（２）の拡大された部分１３６を示している。第２の点を含むことに加えて、動作１３４の実装では、（線分として可視化されている）エピポーラ線が第２の画像１１０（２）に追加されている（とはいえ、そのような線は、説明のために示されており、較正中に必ずしも示されない）。拡大された部分１３６において最も良く示されているように、エピポーラ線は、線１３８、１４０、１４２、１４４として可視化される。線１３８は、第２の画像１１０（２）中の（第１の画像１１０（１）からの）点１１４ａに関連付けられたエピポーラ線の部分を表し、線１４０は、第２の画像１１０（２）中の（第１の画像１１０（１）からの）点１１８ａに関連付けられたエピポーラ線の部分を表し、線１４２は、点１２０ａに関連付けられたエピポーラ線の部分を表し、線１４４は、第２の画像１１０（２）中の点１３０ａに関連付けられたエピポーラ線の部分を表す。カメラが適切に較正されたとき、線１３８、１４０、１４２、１４４の各々は、画像中の対応する点と合致すべきである。点と線とが合致しない箇所はセンサ不整合を示す。
【００２０】
エピポーラ線は、エピポーラ幾何の原理を使用して計算され得る。エピポーラ幾何では、基本行列が、２つの位置、たとえば２つのカメラ、からキャプチャされた３次元環境中の点の間の幾何学的な関係を概して記述する。図１の例では、基本行列は、エピポーラ線を計算するために使用されることが可能である。本開示の実装では、基本行列は、１つもしくは複数のセンサ（たとえば、カメラ１９６（１）、１０６（２））に対する自律車両の体勢（ｐｏｓｅ）に基づいて、カメラの内在性較正に関係する行列に基づいて、および／またはカメラの外在性較正に関連付けられた６の自由度に基づいて計算される変換を使用して決定され得る。たとえば、本開示の実装は、外在性不整合、たとえば、物理的不整合、および車両の体勢について較正するために使用されてよく、カメラに関連付けられた内在性較正を記述する行列は、基本行列の計算中に固定であってよく、外在性較正に関連付けられた６の自由度は自由パラメータである。
【００２１】
動作１５０において、処理は、点ペアのサブセットを決定することを含むことが可能である。動作１３４は、たとえば、線１４０と点１１８ｂとの間の距離、線１４４と点１３０ｂとの間の距離などとして、個々の点について射影誤差を計算することを含み得る。いくつかの実装では、しきい値距離だけまたはしきい値距離を超えて離間された点と線との組合せは、点ペアのサブセットから除外されることが可能である。いくつかの例では、点の位置または場所をも使用して、動作１５０において決定されたサブセット中に点が含まれるかどうかを決定し得る。たとえば、たとえば、画像の一部分中にのみクラスタリングされた点の代わりに、画像全体にわたって分散されたサブセット中の点を保持することが望ましいことがある。したがって、たとえば、点ペアのサブセットを決定するために、画像中の点の間の距離、および／または各点と（画像エッジまたは画像中心などの）何らかの基準点との間の距離も使用されてよい。他の実装は、これらの点特性の組合せを考慮し得る。たとえば、いくつかの実装では、第１のしきい値距離以上の距離を有する点と線との組合せは、サブセットから除外され得るが、第２のしきい値距離以上で第１のしきい値距離未満の距離を有する点と線との組合せは、それらが、画像エッジのしきい値距離内にあるかまたは近隣点からのしきい値距離を上回る場合にのみ、保持される。その上、図３は、画像にわたって良好な点密度を維持する例を示している。点ペアのサブセットを決定するために他の要因も考慮されてよい。
【００２２】
サブセットが決定されると、２つのカメラ１０６（１）、１０６（２）の間の相対的変換のための新しい推定値を決定するための最適化が実施されてよい。少なくともいくつかの事例では、最適化は、各画像の各走査線に一意の体勢に関連付けられ得る。たとえば、ローリングシャッターカメラを使用するとき、各走査線は、一意のタイムスタンプおよび一意の体勢に関連付けられてよく、したがって、最適化は、各走査線の相対的体勢のために、更新された推定値をもたらし得る。更新された推定値に基づいて、処理１００は、再び、すなわち、動作１３４において、誤差を決定し得る。このように、処理は、点ペアのセットが間引きされて、外れ値、たとえば、特徴一致から生じる外れ値が除去され、基本行列が最適化される、繰り返し処理であってよい。実装では、最適化は、好ましい解に到達するために、期待値最大化アルゴリズムを使用して実施されることが可能である。繰り返しの数は、固定であってもまたは適応的であってもよい。たとえば、点ペアのサブセット全体についての点と線との組合せの各々に関連付けられた誤差がしきい値距離以下であるか、または点のサブセットが点のしきい値数以下であるとき、処理１００は動作１５２に進み得る。
【００２３】
動作１５２において、処理は、カメラ間の不整合（たとえば、物理的不整合）を補正するための補正関数を生成することを含むことが可能である。本明細書で説明される例はエピポーラ幾何を使用して画像間の整合を決定するので、較正関数は、互いに対してカメラを制約するにすぎないことがあり、スケールあいまいさを含んでいることがある。たとえば、処理１００は３Ｄ形状および／または深度を推定しないので、各カメラについて６の自由度（すなわち、ｘ並進、ｙ並進、ｚ並進、ロール、ピッチ、ヨー）のうちの５のみが完全に制約される。これらの制約を用いて両方のカメラ１０６ａ、１０６ｂを最適化すると、スケール、位置および回転が未決定であり、各カメラについて１の並進自由度がある、カメラの自己矛盾のない整合が生じる。
【００２４】
処理１００は、たとえば、基準マーカまたは他のインフラストラクチャにではなく、実質的に同時にキャプチャされた画像を備える画像データにのみ依拠するので、処理１００は、時間または場所に関係なく実装されることが可能である。いくつかの実装では、処理１００は、自律車両１０４が動作している間に、リアルタイムに実装されることが可能である。このようにして、本明細書で説明される実装は、センサ不整合が発生すると、その不整合を補正して、改善されたセンサ精度を促進し得る。
【００２５】
本明細書でさらに説明されるように、処理１００は、第６の自由度をも制約する１つまたは複数の処理とともに実装され、それにより、完全な較正関数がカメラに提供され得る。たとえば、図６に関してさらに説明されるように、ｌｉｄａｒセンサによってキャプチャされた点群データの形式の深度情報が、深度不連続性を決定するために使用されてよく、この深度不連続性は、画像中で検出されたエッジにマッピングされることが可能である。期待値最大化アルゴリズムを使用して、処理１００におけるように、エピポーラ幾何、ならびに３次元深度および位置を考慮して、カメラペアにとって最適化された較正関数に到達し得る。
【００２６】
その上、図１は、２つのカメラ１０６（１）、１０６（２）がその上に取り付けられた車両１０４を示し、処理１００は、２つのカメラ１０６（１）、１０６（２）を較正するために使用されるものとして説明されているが、処理１００は、１つのカメラのペアよりも多くを較正するために有用であり得る。特に、処理１００は、各カメラが別のカメラの視野と重複する視野を有する限り、任意の数のカメラを較正するために使用されることが可能である。
【００２７】
処理１００は、互いに対してカメラ１０６（１）、１０６（２）を較正するためには有用であり得るが、処理１００は、カメラの内在性を較正するためには有用でないことがある（実際、図１の処理では、カメラ内在性に関係するパラメータは、固定であり（すなわち、正しいと仮定され）得る）。しかしながら、図２は、内在性特性、たとえば、環境条件の変化から生じるレンズひずみ、焦点距離、中心点などを較正するために本開示の実装において使用され得る処理２００を示す。
【００２８】
より詳細には、図２は、本開示の実装による、自律車両上に配設されたカメラを較正するための例示的な処理２００の絵入りの流れ図を示す。この例では、処理１００は、自律車両上のカメラの不整合、たとえば、内在性不整合を補正するための技法を使用する。
【００２９】
動作２０２において、処理は、多様なカメラにおいて環境の画像をキャプチャすることを含むことが可能である。動作２０２に付随する例は、車両２０４上に配設された第１のカメラ２０６（１）および第２のカメラ２０６（２）を有する車両２０４を示している。また図示のように、第１のカメラ２０６（１）は、画像２０８（１）などの画像データをキャプチャし、第２のカメラ２０６（２）は、第２の画像２０８（２）などの画像データをキャプチャする。図示の実施形態では、カメラ２０６（１）、２０６（２）は、概して隣り合わせに構成され、両方とも進行方向を向き、それらの視野は有意に重複しているが、（実質的に同時にまたは異なる時間にわたってキャプチャされる）観測される環境中に何らかの重複がある限り、カメラ２０６の任意の相対的配置が企図される。動作２０２は、動作１０２と実質的に同じであってよく、したがって、本明細書でさらに詳述されない。
【００３０】
画像２０８（１）と画像２０８（２）が実質的に同じ時間にキャプチャされた場合、カメラ２０６（１）、２０６（２）が適切に整合されているとき、画像２０８（１）を画像２０８（２）上に射影すると、たとえば、カメラ２０６（１）とカメラ２０６（２）との間で変換を実施すること（すなわち並進または回転のうちの１つまたは複数を実施すること）によって、画像の整合が生じるはずである。しかしながら、上記で論じられたように、多くの要因が、互いに対するカメラ２０６（１）、２０６（２）の実際の較正に影響を及ぼすことがあり、各々が全体的な不整合に寄与する。たとえば、限定はされないが、焦点距離、レンズ形状、中心点、対応する係数をもつカメラモデル（線形、多項式など）などのひずみパラメータを含む、カメラ２０６（１）、２０６（２）に関連付けられた製造および／またはアセンブリ公差が、誤差の導入をもたらし得る。たとえば、初期の内在性較正が正しいことがあるが、カメラレンズは、たとえば、温度変動、定期保守などを通して、時間とともにひずみ得る。本明細書で説明される技法は、これらおよび他の原因によって引き起こされ得るカメラ内在性の誤差を補正する際に有用である。
【００３１】
動作２１０において、処理は、点ペアを識別することを含むことが可能である。より詳細には、動作２１０は、重複する第１の画像２０８（１）および第２の画像２０８（２）の部分について、第１の画像２０８（１）中の第１の点２１２ａ、２１４ａ、２１６ａ、２１８ａ、２２０ａ、２２２ａ、２２４ａ、２２６ａ、２２８ａ、２３０ａ、および第２の画像２０８（２）中の第２の点２１２ｂ、２１４ｂ、２１６ｂ、２１８ｂ、２２０ｂ、２２２ｂ、２２４ｂ、２２６ｂ、２２８ｂ、２３０ｂを識別し得る。この例では、第１の点および第２の点は画像特徴であってよく、たとえば、第１の点２１２ａは、第１の画像２０８（１）中の画像特徴または部分に対応し、第２の点２１２ｂは、第２の画像２０８（２）中の同じ画像特徴または部分に対応し、第１の点２１４ａは、第１の画像２０８（１）中の別の画像特徴または部分に対応し、第２の点２１４ｂは、第２の画像２０８（２）中の同じ別の画像特徴または部分に対応し、以下同様である。このようにして、カメラが適切に整合され、正しい内在性が既知であるとき、較正関数は、（たとえば、無ひずみ、移転などについて較正された内在性および外在性を使用して）一方の画像から他方にマッピングしたとき、整合している第１の点２１２ａおよび第２の点２１２ｂをもたらす。本明細書で使用されるとき、第１の点２１２ａおよび第２の点２１２ｂは第１の点ペアを構成し、第１の点２１４ａおよび第２の点２１４ｂは第２の点ペアを構成し、以下同様である。そのような画像特徴は、たとえば、ＡＫＡＺＥ、ＢＲＩＳＫ、ＳＵＲＦ、ＳＩＦＴ、ＯＲＢ、ＢＲＩＥＦ、ＦＡＳＴ、ＦＲＥＡＫなどに対応し得る（ただし、任意の埋め込みまたはそれ以外も企図される）。
【００３２】
動作２１０は、上記で説明された動作１１２と実質的に同じであってよい。たとえば、動作２１０は、上記で説明されたように、特徴一致を使用して、点の間の対応を決定し、たとえば、点ペアを識別し得る。追加の詳細はここで繰り返されない。また上記で説明されたように、例示的な付随する動作２１０には１０個の点ペアが示されているが、本明細書で説明される特徴一致技法は、点ペアのより小さいまたはより大きいセットを提供し得る。非限定的な一例では、２つの画像２０８（１）、２０８（２）間で数百個の点ペア、たとえば、最高約３００個の点ペアが決定され得る。その上、明確にするために図１の例は画像の単一のペア、すなわち、第１の画像１１０（１）および第２の画像１１０（２）のみを示しているが、他の実装では、一致は、限定はされないが、ビデオストリーム中のフレームなどを含む一連の画像を見て、フレーム間で特徴が一致すると決定することによって行われてよい。たとえば、特徴は、第１のカメラ２０６（１）および第２のカメラ２０６（２）からの複数の画像にわたって一致させられ得る。非限定的な一例では、画像２０８（１）は、第１のカメラ２０６（１）からの１つまたは複数の追加の画像とともに使用されてよく、画像２０８（２）は、第２のカメラ２０６（２）からの１つまたは複数の追加の画像とともに使用されてよい。部分的に重複しているビューを仮定すると、本明細書で説明される技法は、それらの特徴を示す多様な画像から、画像特徴、たとえば、局所的な特徴を抽出し、一致させ得る。いくつかの実装では、一致は、たとえば、第１の画像２０８（１）および第２の画像２０８（２）など、実質的に同じ時間に露光された２つのカメラフレームからの画像の２つのセットの間で前後に一貫性のある一致に基づいて選択され得る。
【００３３】
良好な内在性較正を仮定し得る例示的な処理１００とは異なり、処理２００は、内在性較正に関連付けられたパラメータについて解くために使用され得る。たとえば、処理２００は、点ペアを利用して、（ひずみパラメータ、焦点、画像中心点などの）カメラ内在性、カメラのための点の深度、および／またはカメラ間の相対的体勢を決定し得る。その上、本明細書で説明される技法は、レンズひずみ特性についてデータを較正し得る。レンズひずみを補正することは、たとえば、非線形カメラにとって特に有用であり得る。
【００３４】
動作２３２において、処理２００は、点ペアに関連付けられた誤差を決定することが可能である。より詳細には、点ペアを使用して、処理２００は、たとえば、内在性特性の推定値を決定するために、それらの内在性特性について最適化を実施し得る。そのような最適化の早期の繰り返しが、動作２３２に付随する可視化２３４に示されている。特に、可視化２３４は、第２の画像２０８（２）、および明確にするために、第２の画像２０８（２）の拡大された部分２３６を示している。第２の点を含むことに加えて、可視化２３４は、第２の点の各々について、白抜きの円および「ｘ」を含む（ただし、そのようなシンボルは、説明のために示されており、必ずしも較正中に示されない）。
【００３５】
拡大された部分２３６において最も良く示されているように、点２１２ｂは、関連付けられた白抜きの円２３８を有し、点２１６ｂは、関連付けられた白抜きの円２４０を有し、点２２８ｂは、関連付けられた白抜きの円２４２を有する。上記で論じられたように、点２１２ｂ、２１６ｂ、２２８ｂは、特徴（たとえば、ひずんだ場所）の検出された場所を概して表し、この例では、白抜きの円２３８、２４０、２４２は、環境中の関連付けられた特徴の再射影を表す。たとえば、各白抜きの円２３８、２４０、２４２は、点２１２ｂ、２１６ｂ、２２８ｂに対応する第１の点の再射影を表す。より詳細には、白抜きの円２３８は、第１の画像２０８（ａ）から第２の画像２０８（ｂ）への点２１２ａの再射影を表し得、白抜きの円２４０は、第１の画像２０８（ａ）から第２の画像２０８（ｂ）への点２１６ａの再射影を表し得、白抜きの円２４２は、第１の画像２０８（ａ）から第２の画像２０８（ｂ）への点２２８ａの再射影を表し得、各々は、点の関連付けられた深度を仮定している。たとえば、射影された白抜きの円２３８、２４０、２４２は、関連付けられた点２１２ｂ、２１６ｂ、２２８ｂの推定された深度に少なくとも部分的に基づき得る。したがって、可視化において、点２１２ｂの再射影最適化に関連付けられた誤差は、点２１２ｂと白抜きの円２３８との間の距離、たとえば、ピクセルで測定されたユークリッド距離であり得る。同様に、点２１６ｂに関連付けられた誤差は、点２１６ｂと白抜きの円２４０との間の距離であり得、点２２８ｂに関連付けられた誤差は、点２２８ｂと白抜きの円２４２との間の距離であり得る。したがって、可視化において、カメラが適切に較正されたとき、白抜きの円は、関連付けられた点と同心になる。点と白抜きの円とが同心でない場合には、誤差が依然として存在する。
【００３６】
既知の内在性を有するカメラおよび／または線形カメラでは、たとえば、焦点距離、中心点、およびひずみ特性を制約することによって、点の深度についてのみ解くことが可能である。しかしながら、いくつかの実装では、処理２００はまた（または代替として）、これらの他の内在性特性について解いてよい。上述されたように、画像の各々の中の点は、検出された点（たとえば、特徴）である。いくつかの事例では、たとえば、カメラが線形カメラでないとき、点は、ひずんだ画像中に検出されることがある。可視化２３４中の各「ｘ」は、（たとえば、カメラ内在性を使用して無ひずみを実施することによって）検出された特徴に対応するひずみのない点を示す。拡大された部分２３６において最も良く示されているように、点２１２ｂは、関連付けられた「ｘ」２４４を有し、点２１６ｂは、関連付けられた「ｘ」２４６を有し、点２２８ｂは、関連付けられた「ｘ」２４８を有する。この例では、各「ｘ」２４４、２４６、２４８は、点２１２ｂ、２１６ｂ、２２８ｂの各々のひずみのない場所を表し、線によって対応する点２１２ｂ、２１６ｂ、２２８ｂに接続される。たとえば、図示のように、最大のひずみが画像のエッジにある一方で、ひずみは、画像の中心では可能性が低くなり得ることが予想され得る。本開示の実装は、このひずみに関連付けられた誤差を補正し得、たとえば、点ペアにわたって内在性誤差最適化を実施することによって内在性誤差を補正し得る。図示されていないが、最適化に関連付けられた誤差は、再射影されたひずみのない点と、対応する「ｘ」との間の距離、たとえば、「ｘ」２４６と、点２１６ａに対応するひずみのない点の再射影との間の距離、または再射影されたひずんだ点と、測定された点との間の距離、たとえば、点２１６ｂと、両方のカメラのカメラ内在性を考慮した点２１６ａの再射影との間の距離であり得る。
【００３７】
動作２５０において、処理は、点ペアのサブセットを決定することを含むことが可能である。いくつかの実装では、しきい値距離だけまたはしきい値距離を超えて離間された可視化２３４中の点と白抜きの点との組合せは、点ペアのサブセットから除外されることが可能である。他のフィルタ処理技法は、動作１５０に関して上記で論じられ、本明細書では繰り返されない。その上、図３は、画像にわたって良好な点密度を維持する例を示しており、これは、動作２５０において点のサブセットを決定するために使用され得る。
【００３８】
サブセットが決定されると、最適化が実施され得る。そのような最適化は、上記で定義された誤差に基づいて、カメラ２０６（１）、２０６（２）の内在性パラメータの新しい推定値、および／または選択された点に関連付けられた深度の新しい推定値を決定するために使用され得る。そのような最適化は、一緒に実施され（すなわち、深度および内在性が単一の最適化で解かれ）てもよく、または繰り返し実施され（すなわち、内在性を固定に保ち、深度について最適化することと、深度を固定に保ち、内在性について最適化することとの間で交替し）てもよい。
【００３９】
更新された推定値に基づいて、処理２００は、再び、すなわち、動作２３２において、誤差を決定し得る。このように、処理は、点ペアのセットが間引きされて、外れ値、たとえば、特徴一致から生じる外れ値が除去され、内在性較正行列が最適化される、繰り返し処理であってよい。実装では、最適化は、好ましい解に到達するために、期待値最大化アルゴリズムを使用して実施されることが可能である。繰り返しの数は、固定であってもまたは適応的であってもよい。たとえば、点ペアのサブセット全体についての点と白抜きの点との組合せの各々に関連付けられた誤差がしきい値距離以下であり、点のサブセットが点のしきい値数以下であり、および／または誤差の変化がしきい値を下回るとき、処理２００は動作２５２に進み得る。
【００４０】
動作２５２において、処理は、カメラに関連付けられた誤差（たとえば、実際のパラメータと推定されたパラメータとの間の差）を補正するための補正関数を生成することを含むことが可能である。別個の動作（ここでは動作２５２）として示されているが、そのような補正関数は、上記の動作２５０において実施される最適化の出力を含んでよい。追加または代替として、少なくともいくつかの例では、そのような内在性および／または深度最適化は、本明細書で概して論じられるように、外在性最適化とともに一緒にまたは繰り返し実施されてよい。したがって、たとえば、処理１００および処理２００は、ロバストなセンサ較正を提供するために、同時に、および同じ画像／点ペアに対して実施されてよい。その上、処理１００の外在性較正、深度最適化および／または推定された内在性パラメータの何らかのサブセットが、同時におよび／または繰り返し実施されてよい。
【００４１】
処理２００は、処理１００のように、たとえば、基準マーカまたは他のインフラストラクチャにではなく、実質的に同時にキャプチャされた画像を備える画像データにのみ依拠するので、処理２００は、時間または場所に関係なく実装されることが可能である。いくつかの実装では、処理２００は、自律車両２０４が動作している間に、リアルタイムに実装されることが可能である。このようにして、本明細書で説明される実装は、動作中に内在性パラメータが変化すると起こり得るセンサ較正誤差を補正して、改善されたセンサ精度を促進し得る。
【００４２】
説明されたように、処理１００と処理２００の両方は、繰り返し処理であってよく、すなわち、この繰り返し処理では、点のセットについて関数が最適化され、セットから点が除去され、サブセットについて関数が最適化されるなどする。サブセットを決定する例は本明細書で論じられ、図３によって特定の例が示されている。より詳細には、図３は、たとえば、点に関連付けられた誤差に基づいて、それらの点をフィルタ処理するための処理３００を示す。たとえば、処理３００は、たとえば、図１に示されている処理１００の動作１５０におけるように、点のサブセットを決定するために実装され得る。たとえば、本明細書で説明される技法は、たとえば、検討される点が全画像を表すことを保証することによって、画像全体にわたって最適化されることから恩恵を受け得る。たとえば、非線形カメラは画像周縁において増加したひずみ誤差を有することがあるので、および／または一致は画像の中心においてより優勢であり得るので、これは、線形カメラ以外のカメラを較正するときに特に有用であり得る。
【００４３】
動作３０２において、処理３００は、画像中の点およびそれらの点に関連付けられた誤差を含むデータを受信することを含む。図３の動作３０２に付随する可視化は、図１からの第１の画像１１０（２）であり得る画像３０４を示す。（図３の例の部分は図１の例に関して示されているが、処理３００は、図２の例に等しく適用可能であり得る。たとえば、画像３０４は、たとえば、図２からの第１の画像２０８（１）（または第２の画像２０８（２）であり得る。）画像３０４はまた、点とエピポーラ線分とのペアとして可視化された、点および関連付けられた誤差の表現を含む。いくつかのペアが示されており、特定のペアが、３０６ａ、３０６ｂ、３０６ｃ、３０６ｄ、３０６ｅ、３０６ｆ、３０６ｇ、３０６ｈ、３０６ｉ、および３０６ｊと番号付けされている。より詳細には、第１のペア３０６ａは、本明細書で説明されるように、第１の点と、第１の点に対応するエピポーラ線とを含み、第２のペア３０６ｂは、第２の点と、第２の点に対応するエピポーラ線とを含み、以下同様である。本明細書では、これらの複数のペアは、ラベリングされているか否かにかかわらず、ペア３０６と呼ばれることがある。
【００４４】
動作３０８において、処理３００は、画像を領域にセグメント化することを含むことが可能である。たとえば、動作３０８に付随する可視化３１０に示されているように、画像３０４は、１つまたは複数の区分線３１２によって複数の領域３１４ａ、３１４ｂ、３１４ｃ、３１４ｄ（以下では、領域３１４と総称される）に区分され得る。したがって、図示の例では、区分線３１２は、画像３０４を４つの等しい象限にセグメント化するグリッドを形成し得る。より多いまたはより少ない領域３１４が形成されてもよいので、図示の区分は例のためにすぎない。その上、領域３１４は同じ面積を有するものとして示されているが、他の実装では、領域３１４は異なるサイズを有し得る。本明細書でさらに説明されるように、領域３１４は、たとえば、画像のエリアにわたって点の完全な表現を考慮するために、データ点をフィルタ処理するときに独立して検討されてよい。
【００４５】
動作３１６において、処理３００は、領域ごとに点のサブセットを決定することを含むことが可能である。たとえば、領域３１２の各々内の点は、他の領域とは別個に検討されてよい。可視化３１０と比較して動作３１６に付随する可視化３１８を閲覧することにより、この概念が示される。より詳細には、可視化３１０では、領域３１４ａ、３１４ｂの各々は、６つの点／誤差ペア３０６を含み、領域３１４ｃ、３１４ｄの各々は、３つの点／誤差ペア３０６を含む。可視化３１８では、領域３１４ａ、３１４ｂの各々から２つの点が除去されており、領域３１４ｃ、３１４ｄの各々から１つの点が除去されている。この例では、除去された点は、領域内の最も大きい誤差の痕跡となるペアであり得る。図示のように、領域３１４ごとに点の３３％がフィルタ除去されている。少なくともいくつかの例では、領域ごとにフィルタ処理された（除去された）点の数は、領域ごとにほぼ同数の点を保持するように、異なることがある。そのような例では、各領域の最も高い誤差に関連付けられた点は、領域ごとに最も低い数の点をもつ領域と同じ総数の点を有するように、除去されることがある。諒解されるように、画像全体３０４からペア３０６の上部３３％をフィルタ処理することにより、点の極めて異なるサブセットが生じ得る。たとえば、最も大きい誤差をもつ点の３３％が、領域３１４ａ中の６つのペア３０６に対応することが可能であり得る。それらの点をフィルタ除去した場合、画像３０４の左上象限に関する情報は残らない。
【００４６】
したがって、処理３００によって例示されるセグメント化技法は、画像３０４のエリア全体の良好な断面を提供する点を保持することをもたらし得る。たとえば、処理３００は、画像全体にわたって同種のカバレージを提供し得、これは、（たとえば、画像の中心部分と比較してより大きいひずみに関連付けられた画像の外側部分において同数の点を保持することによって）内在性較正を実施するときに特に有用であり得る。その上、本明細書で説明されるように可視化３１８に示されている点のサブセットを使用してカメラ較正を決定するとき、領域３１４の各々の中の点は別様に重み付けされ得る。たとえば、領域３１４ａ、３１４ｂは領域３１４ｃ、３１４ｄの２倍の数の点を有するので、領域３１４ａ、３１４ｂ中の点は、それらの領域に関連付けられた誤差が他の領域の半分程度の大きさだけ寄与するように、０．５倍に重み付けされてよい。そのような重み係数は、（たとえば、点の数などに基づいて）内在性、外在性、または点深度のうちの１つまたは複数を決定する際に考慮される情報を最適化するように選定されてよい。可視化３１０、３１８は例のためにすぎない。上述されたように、本明細書で説明される技法は、数千個ではないにしても、数百個の点および関連付けられた誤差を含み得る。重み係数および除去されるべき点の割合は、適用例および他の要因に従って変動し得る。その上、本開示は、割合の点を除去することに限定されない。たとえば、いくつかの事例では、誤差しきい値を上回る点は除去されてよく、このしきい値は、より少ない点を有する領域ではより低くてよい。その上、多くの適用例ではより多くの領域が提供されるので、４つの領域３１４の使用は例のためにすぎない。
【００４７】
図４は、本開示の例において使用され得る自律車両４０２の例示的な平面図４００を示す。より詳細には、車両４０２は、車両４０２のルーフ上に取り付けられた８つのカメラ４０４（１）、４０４（２）、４０４（３）、４０４（４）、４０４（５）、４０４（６）、４０４（７）、４０４（８）（まとめて、カメラ４０４）を含む。カメラ４０４（１）は水平視野Θ1を含み得、カメラ４０４（２）は水平視野Θ2を含み得、カメラ４０４（３）は水平視野Θ3を含み得、カメラ４０４（４）は水平視野Θ4を含み得、カメラ４０４（５）は水平視野Θ5を含み得、カメラ４０４（６）は水平視野Θ6を含み得、カメラ４０４（７）は水平視野Θ7を含み得、カメラ４０４（８）は水平視野Θ8を含み得る。構成されるとき、カメラ４０４は、隣接するカメラが重複する視野を有するように取り付け位置に配置され、全体としてカメラ４０４は、車両４０２の周りの全３６０度の視覚を提供する。カメラ４０４のこの配置のために、処理１００の態様は、カメラ４０４のアレイ全体にわたって適用されて、互いに対する（および車両に対するすべての８つのカメラ４０４の相対的整合が決定されることが可能である。より詳細には、カメラ４０４（１）の視野Θ1は、カメラ４０４（２）の視野Θ2と重複し、カメラ４０４（８）の視野Θ8と重複する。したがって、第１の点ペアは、カメラ４０４（１）およびカメラ４０４（２）によってキャプチャされた画像について、ならびにカメラ４０４（１）およびカメラ４０４（８）によってキャプチャされた画像について決定されることが可能である。諒解されるように、カメラ４０４（１）は、次いで、カメラ４０４（２）とカメラ４０４（１２）の両方に対して制約され得る。同様に、カメラ４０４（２）は、（視野Θ2が視野Θ1と重複するので）カメラ４０４（１）に対して、および（視野Θ2が視野Θ3と重複するので）カメラ４０４（３）に対して制約され得る。（その上、視野Θ2は少なくとも視野Θ4とも重複するので、カメラ４０４（２）は、カメラ４０４（４）に対して固定されてもよい。）いくつかの実装では、本明細書で説明される技法は、車両上の点、たとえば、車両の中心軸上の点に対してカメラの較正関数を決定するために使用され得る。理解され得るように、カメラ４０４の例示的な配置は一例にすぎず、同様のまたは異なる配置をもつより多いまたはより少ないカメラも、本明細書で説明される技法から恩恵を受け得る。その上、平面図４００は水平視野のみを示しているが、カメラ４０４の各々は垂直視野をも有し、上記で説明されたように、本明細書で説明される技法は、６の自由度に従って不整合を加味するために使用されることが可能であることが理解されよう。さらに、カメラ４０４は実質的に同等であるものとして示されているが、カメラは、たとえば、シャッタータイプ、レンズタイプ、視野などが異なる、異なるタイプであってよい。
【００４８】
また図４に示されているように、車両４０２は、追加のセンサアセンブリを含み得る。いくつかの事例では、センサアセンブリは、限定はされないが、１つまたは複数のＬＩＤＡＲセンサ、ｒａｄａｒセンサ、画像センサ、ＳＯＮＡＲセンサなどを含み得る。センサの追加の例は、（たとえば、図５に関連して）本明細書で論じられる。この例では、車両４０２は、センサ４０６、４０８（１）、４０８（２）、４０８（３）、４０８（４）（センサ４０８（１）、４０８（２）、４０８（３）、４０８（４）はセンサ４０８と総称される）をも含み得る。センサ４０６は、車両４０２のルーフ上に取り付けられたＬＩＤＡＲセンサを含み得、センサ４０６は、Θ13として示されている水平視野を有し得る。したがって、図示のように、センサ４０６は、カメラ４０４の視野と重複する３６０度視野を有し得る。本明細書でより詳細に論じられるように、センサ４０６からのｌｉｄａｒデータ（たとえば、点群データ）は、画像１１０（１）、１１０（２）などの画像データとともに使用されて、車両４０２に対してカメラ４０４が制約され得る。センサ４０８は、車両のコーナーに取り付けられた（たとえば、異なるまたは同じ様式の）他のセンサであってよい。たとえば、センサ４０８は、環境に関する追加の情報を提供するように構成されたｒａｄａｒセンサであってよく、この情報は、本明細書で説明される実装において使用されても使用されなくてもよい。本開示のコンテキストにおいて理解され得るように、取付け場所および視野は、それぞれ、外在性特性および内在性特性に対応し得、これらは、本明細書で説明されるように較正され得る。もちろん、任意の数および／またはタイプのセンサが車両４０２に取り付けられるかまたは設置されてよい。
【００４９】
図５は、本明細書で説明される技法を実装するための例示的なシステム５００のブロック図を示す。少なくとも１つの例では、システム５００は、それぞれ、図１および図２を参照しながら上記で説明された車両１０４または車両２０２と同じ車両であることが可能な、車両５０２を含むことが可能である。
【００５０】
車両５０２は、車両コンピューティングデバイス５０４、１つまたは複数のセンサシステム５０６、１つまたは複数のエミッタ５０８、１つまたは複数の通信接続５１０、少なくとも１つの直接接続５１２、および１つまたは複数の駆動モジュール５１４を含むことが可能である。
【００５１】
車両コンピューティングデバイス５０４は、１つまたは複数のプロセッサ５１６と、１つまたは複数のプロセッサ５１６に通信可能に結合されたメモリ５１８とを含むことが可能である。図示の例では、車両５０２は自律車両であるが、車両５０２は任意の他のタイプの車両であることが可能である。図示の例では、車両コンピューティングデバイス５０４のメモリ５１８は、位置特定構成要素５２０、知覚構成要素５２２、プランニング構成要素５２４、１つまたは複数のシステムコントローラ５２６、および較正構成要素５２８を記憶する。さらに、較正構成要素５２８は、特徴抽出構成要素５３０、エッジ検出構成要素５３２、較正データ構成要素５３４、外在性較正構成要素５３６、および内在性較正構成要素５３８を含むことが可能である。図５では説明の目的でメモリ５１８中に常駐するものとして示されているが、較正構成要素５２８は、追加または代替として、車両５０２にとってアクセス可能であり（たとえば、リモートで記憶され）得ることが企図される。
【００５２】
少なくとも１つの例では、位置特定構成要素５２０は、車両５０２の位置を決定するためのデータをセンサシステム５０６から受信するための機能を含むことが可能である。たとえば、位置特定構成要素５２０は、環境の３次元マップを含み、要求し、および／または受信することが可能であり、マップ内の自律車両の場所を連続的に決定することが可能である。いくつかの事例では、位置特定構成要素５２０は、自律車両５０２の場所を正確に決定するために、ＳＬＡＭ（Simultaneous Localization and Mapping）またはＣＬＡＭＳ（Calibrating, Localizing, and Mapping, Simultaneously）を利用して、画像データ、ＬＩＤＡＲデータ、ｒａｄａｒデータ、ＳＯＮＡＲデータ、ＩＭＵデータ、ＧＰＳデータ、ホイールエンコーダデータなどを受信することが可能である。いくつかの事例では、位置特定構成要素５２０は、本明細書で論じられるように、車両５０２の様々な構成要素にデータを提供して、車両５０２の初期位置を決定して、候補軌道を生成するか、または較正動作を相関させることが可能である。
【００５３】
いくつかの事例では、知覚構成要素５２２は、オブジェクトの検出、セグメント化および／または分類を実施するための機能を含むことが可能である。いくつかの例では、知覚構成要素５２２は、車両５０２に近接しているエンティティの存在、および／またはエンティティタイプ（たとえば、車、歩行者、サイクリスト、動物、不明など）としてのエンティティの分類を示す、処理されたセンサデータを提供することが可能である。追加および／または代替の例では、知覚構成要素５２２は、検出されたエンティティに関連付けられた１つもしくは複数の特性、および／またはエンティティが配置された環境を示す、処理されたセンサデータを提供することが可能である。いくつかの例では、エンティティに関連付けられた特性は、限定はされないが、ｘ位置（グローバル位置）、ｙ位置（グローバル位置）、ｚ位置（グローバル位置）、配向、エンティティタイプ（たとえば、分類）、エンティティの速度、エンティティの広がり（たとえば、サイズ）などを含むことが可能である。環境に関連付けられた特性は、限定はされないが、環境中の別のエンティティの存在、環境中の別のエンティティの状態、時刻、曜日、季節、気象条件、暗さ／明るさのインジケーションなどを含むことが可能である。
【００５４】
概して、プランニング構成要素５２４は、車両５０２が環境中を横断するために従うべき経路を決定することが可能である。たとえば、プランニング構成要素５２４は、様々なルートおよび軌道ならびに様々な詳細レベルを決定することが可能である。たとえば、プランニング構成要素５２４は、第１の場所（たとえば、現在の場所）から第２の場所（たとえば、目的場所）に進むためのルートを決定することが可能である。この議論の目的のために、ルートは、２つの場所間を進むための中間地点のシーケンスであることが可能である。非限定的な例として、中間地点は、街路、交差点、全地球測位システム（ＧＰＳ）座標などを含む。さらに、プランニング構成要素５２４は、第１の場所から第２の場所までのルートの少なくとも一部に沿って自律車両を案内するための命令を生成することが可能である。少なくとも１つの例では、プランニング構成要素５２４は、中間地点のシーケンス中の第１の中間地点から中間地点のシーケンス中の第２の中間地点まで自律車両をどのように案内すべきかを決定することが可能である。いくつかの例では、命令は、軌道、または軌道の部分であることが可能である。いくつかの例では、多様な軌道が、後退ホライズン技法に従って（たとえば、技術公差内で）実質的に同時に生成されることが可能である。
【００５５】
少なくとも１つの例では、車両コンピューティングデバイス５０４は、車両５０２のステアリング、推進、制動、安全性、エミッタ、通信、および他のシステムを制御するように構成されることが可能である、１つまたは複数のシステムコントローラ５２６を含むことが可能である。システムコントローラ５２６は、車両５０２の駆動モジュール５１４および／または他の構成要素の対応するシステムと通信しおよび／またはそれを制御することが可能である。
【００５６】
概して、較正構成要素５２８は、車両５０２に関連して動作する１つまたは複数のセンサを較正するための機能を含むことが可能である。たとえば、較正構成要素５２８は、不適切に較正されたセンサを検出し、較正ルーチンをスケジュールし、車両５０２の１つまたは複数の他の構成要素に較正データを送ることが可能であり、これらの構成要素は、１つまたは複数のセンサによって発生されたデータを利用する。
【００５７】
特徴一致構成要素５３０は、対応する画像、たとえば、重複する視野を有するカメラによって実質的に同時にキャプチャされた画像を分析して、画像中の対応する特徴を決定することが可能である。いくつかの事例では、対応する画像の分析は、たとえば、特徴抽出技法を含み得る。そのような特徴は、たとえば、ＳＵＲＦ、ＳＩＦＴ、ＡＫＡＺＥ、ＯＲＢ、ＢＲＩＥＦ、ＦＡＳＴ、ＦＲＥＡＫなどの特徴を備え得るが、任意の他の特徴が企図される。特徴一致構成要素は、上記で説明された処理１００に関連して説明したように点ペアを識別することが可能である。点ペアは、本明細書でさらに説明されるように、次いで、外在性較正構成要素５３６または内在性較正構成要素５３８によって使用され得る。
【００５８】
エッジ検出構成要素５３２は、画像データを分析して特徴エッジを決定することが可能である。たとえば、エッジ検出構成要素５３２は、車両５０２上に取り付けられたカメラによってキャプチャされた画像中のエッジを検出するためにキャニーエッジ検出アルゴリズムを適用することが可能である。たとえば、本明細書で説明される実装では、図５を参照しながら以下で論じるように、エッジ検出構成要素によって検出されたエッジを点群データと比較して較正情報を取得して、たとえば、車両５０２に対して、較正されたカメラを制約することが可能である。
【００５９】
較正データ構成要素５３４は、車両５０２の１つまたは複数のセンサに関連付けられた較正データを記憶するための機能を含むことが可能である。いくつかの事例では、較正データ構成要素５３４は、図１に関して上記で論じられたように、カメラのアレイに関する較正変換など、センサに関連付けられた１つまたは複数の較正角度（または、概して、較正特性）を記憶することが可能である。いくつかの事例では、較正データは、限定はされないが、較正角度、取付け場所、高さ、方向、ヨー、傾き、パン、タイミング情報、レンズひずみパラメータ、伝達媒体パラメータなどを含む、センサの取付け角度および／もしくは位置ならびに／または１つもしくは複数のセンサに関連付けられた何らかの外在性および／もしくは内在性情報を記憶することが可能である。さらに、較正データ構成要素５３４は、直近の較正から経過した時間など、実施された較正動作の一部または全部のログを記憶することが可能である。
【００６０】
外在性較正構成要素５３６は、互いに対してセンサシステム５０６のカメラを較正するための補正関数を決定するための機能を含むことが可能である。いくつかの例では、外在性較正構成要素５３６は、エピポーラ幾何を利用して、対応する（たとえば、重複しているおよび／または実質的に同じ時間にキャプチャされた）画像中の点を比較して、対応する画像の間の関係を記述する基本行列を計算することが可能である。いくつかの事例では、外在性較正構成要素５３６はまた、たとえば、基本行列から、エピポーラ線を決定し、第１の画像中の点と対応するエピポーラ線を第２の画像上に射影して、たとえば、点が整合するかどうかを決定することが可能である。
【００６１】
外在性較正構成要素５３６はまた、たとえば、外れ値およびノイズを除去することによって、検討されるべき点ペアのセットを低減することが可能である。いくつかの例では、外在性較正構成要素５３６は、エピポーラ線を使用して射影誤差を決定してよく、しきい値誤差以上の誤差（たとえば、点とエピポーラ線との間の距離）を有する点ペアは、点ペアのセットから除外されてよい。外在性較正構成要素５３６は、次いで、点ペアのサブセットに基づいて補正関数を決定することが可能である。
【００６２】
画像対画像の比較を実施することに加えて、たとえば、カメラ間の不整合を補正するための補正関数を決定するために、外在性較正構成要素５３６はまた、ｌｉｄａｒ対カメラ分析を実施することが可能である。上記で論じられたように、本明細書で説明されるエピポーラ幾何ベースの較正技法は、互いに対してカメラを較正するために使用され得るが、カメラが取り付けられた車両に対してそれらを制約するために追加の技法が必要であり得る。図５と併せて以下でより詳細に論じられる１つの技法は、ＬＩＤＡＲデータを画像データと比較して、処理１００単独では制約し得ない最後の自由度を制約することを含み得る。
【００６３】
内在性較正構成要素５３８は、センサシステム５０６のカメラの内在性特性、たとえば、焦点距離、点深度、中心点およびひずみパラメータを較正するための補正関数を決定するための機能を含むことが可能である。いくつかの例では、内在性較正構成要素５３８は、対応する（たとえば、重複している、実質的に同じ時間にキャプチャされた、および／または後続の時間において環境の同じ領域をキャプチャしている）画像中の点を、対応する画像間の推定点深度に再射影し得る。いくつかの事例では、外在性較正構成要素５３６も、実際の測定された点をひずみのない点と比較して、たとえば、ひずみパラメータを加味することが可能である。
【００６４】
内在性較正構成要素５３８はまた、たとえば、外れ値およびノイズを除去することによって、検討されるべき点ペアのセットを低減することが可能である。いくつかの例では、内在性較正構成要素５３８は、再射影された点および点深度の推定値を使用して再射影誤差を決定してよく、しきい値誤差以上の誤差（たとえば、点と再射影された点との間の距離）を有する点ペアは、点ペアのセットから除外されてよい。内在性較正構成要素５３４は、次いで、たとえば、点ペアのサブセットを使用して補正行列を最適化することによって、点ペアのサブセットに基づいて補正関数を決定することが可能である。
【００６５】
いくつかの事例では、外在性較正構成要素５３６および内在性較正構成要素５３８は、並列に動作を実施することが可能である。たとえば、本明細書で論じられる較正動作の処理時間の量を低減するために、カメラ対カメラ整合に関連付けられた第１の補正関数は、エピポーラ幾何の原理を使用して決定されることが可能であり、カメラ対車両整合に関連付けられた第２の補正関数は、ＬＩＤＡＲ対画像データ原理を使用して決定されることが可能であり、および／または１つもしくは複数のカメラの内在性整合に関連付けられた第３の補正関数は、ＧＰＵなどのプロセッサを使用して並列に決定されることが可能である。
【００６６】
いくつかの事例では、本明細書で論じられる構成要素の一部または全部の態様は、任意のモデル、アルゴリズム、および／または機械学習アルゴリズムを含み得る。たとえば、いくつかの事例では、メモリ５１８（および、以下で論じられるメモリ５４６）中の構成要素は、ニューラルネットワークとして実装されてよい。
【００６７】
本明細書で説明されるように、例示的なニューラルネットワークは、入力データを一連の接続されたレイヤを通過させて出力を発生する、生物学に発想を受けたアルゴリズムである。ニューラルネットワーク中の各レイヤはまた、（畳み込みであるか否かにかかわらず）別のニューラルネットワークを備え得るか、または任意の数のレイヤを備え得る。本開示のコンテキストにおいて理解され得るように、ニューラルネットワークは、学習されたパラメータに基づいて出力が生成されるそのようなアルゴリズムの広いクラスを指し得る、機械学習を利用してよい。
【００６８】
ニューラルネットワークのコンテキストにおいて論じられているが、本開示に合致する任意のタイプの機械学習が使用されてよい。たとえば、機械学習アルゴリズムは、限定はされないが、回帰アルゴリズム（たとえば、通常の最小２乗回帰（ＯＬＳＲ）、線形回帰、ロジスティック回帰、段階的回帰、多変量適応回帰スプライン（ＭＡＲＳ）、局所推定散布図平滑化（ＬＯＥＳＳ））、インスタンスベースドアルゴリズム（たとえば、リッジ回帰、最小絶対収縮および選択演算子（ＬＡＳＳＯ）、弾性ネット、最小角度回帰（ＬＡＲＳ））、決定ツリーアルゴリズム（たとえば、分類および回帰ツリー（ＣＡＲＴ）、反復ダイコトマイザ３（ＩＤ３）、カイ２乗自動相互作用検出（ＣＨＡＩＤ）、決定スタンプ、条件付き決定ツリー）、ベイジアンアルゴリズム（たとえば、単純ベイズ、ガウシアン単純ベイズ、多項単純ベイズ、平均１依存エスティメータ（ＡＯＤＥ）、ベイジアン信念ネットワーク（ＢＮＮ）、ベイジアンネットワーク）、クラスタリングアルゴリズム（たとえば、ｋ平均、ｋ中央値、期待値最大化（ＥＭ）、階層クラスタリング）、関連付けルール学習アルゴリズム（たとえば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、放射基底関数ネットワーク（ＲＢＦＮ））、深層学習アルゴリズム（たとえば、深層ボルツマンマシン（ＤＢＭ）、深層信念ネットワーク（ＤＢＮ）、畳み込みニューラルネットワーク（ＣＮＮ）、積層自動エンコーダ）、次元削減アルゴリズム（たとえば、主成分分析（ＰＣＡ）、主成分回帰（ＰＣＲ）、部分最小２乗回帰（ＰＬＳＲ）、サモンマッピング、多次元尺度構成法（ＭＤＳ）、射影追跡、線形判別分析（ＬＤＡ）、混合判別分析（ＭＤＡ）、２次判別分析（ＱＤＡ）、フレキシブル判別分析（ＦＤＡ））、アンサンブルアルゴリズム（たとえば、ブースティング、ブートストラップアグリゲーション（バギング）、アダブースト、積層一般化（ブレンディング）、勾配ブースティングマシン（ＧＢＭ）、勾配ブースト回帰ツリー（ＧＢＲＴ）、ランダムフォレスト）、ＳＶＭ（サポートベクターマシン）、教師あり学習、教師なし学習、半教師あり学習などを含み得る。
【００６９】
アーキテクチャの追加の例は、ＲｅｓＮｅｔ５０、ＲｅｓＮｅｔ１０１、ＶＧＧ、ＤｅｎｓｅＮｅｔ、ＰｏｉｎｔＮｅｔなどのニューラルネットワークを含む。
【００７０】
少なくとも１つの例では、センサシステム５０６は、ＬＩＤＡＲセンサ、ｒａｄａｒセンサ、超音波トランスデューサ、ＳＯＮＡＲセンサ、位置センサ（たとえば、ＧＰＳ、コンパスなど）、慣性センサ（たとえば、慣性測定ユニット、加速度計、磁力計、ジャイロスコープなど）、カメラ（たとえば、ＲＧＢ、ＩＲ、強度、深度、飛行時間など）、マイクロフォン、ホイールエンコーダ、環境センサ（たとえば、温度センサ、湿度センサ、光センサ、圧力センサなど）などを含むことが可能である。センサシステム５０６は、これらまたは他のタイプのセンサの各々の複数のインスタンスを含むことが可能である。たとえば、ＬＩＤＡＲセンサ（および／またはｒａｄａｒセンサ）は、車両５０２のコーナー、前部、背部、側部、および／または上部に位置する個々のＬＩＤＡＲセンサ（またはｒａｄａｒセンサ）を含むことが可能である。別の例として、カメラセンサは、車両５０２の外部および／または内部に関する様々な場所に配設された多様なカメラ（カメラ２０６など）を含むことが可能である。センサシステム５０６は、車両コンピューティングデバイス５０４に入力を提供することが可能である。追加または代替として、センサシステム５０６は、特定の頻度で、所定の時間期間の経過後に、ほぼリアルタイムに、など、１つまたは複数のコンピューティングデバイスに、１つまたは複数のネットワーク５４０を介して、センサデータを送ることが可能である。
【００７１】
車両５０２はまた、光および／または音を放出するための１つまたは複数のエミッタ５０８を含むことが可能である。この例におけるエミッタ５０８は、車両５０２の搭乗者と通信するための内部オーディオおよび視覚的エミッタを含む。限定ではなく例として、内部エミッタは、スピーカ、ライト、サイン、ディスプレイスクリーン、タッチスクリーン、ハプティックエミッタ（たとえば、振動および／または力フィードバック）、機械アクチュエータ（たとえば、シートベルトテンショナ、シートポジショナ、ヘッドレストポジショナなど）などを含むことが可能である。この例におけるエミッタ５０８はまた、外部エミッタを含む。限定ではなく例として、この例における外部エミッタは、車両アクションの進行方向または他のインジケータ（たとえば、インジケータライト、サイン、ライトアレイなど）をシグナリングするためのライト、および歩行者または他の近くの車両と可聴的に通信するための１つまたは複数のオーディオエミッタ（たとえば、スピーカ、スピーカアレイ、ホーンなど）を含み、それらのうちの１つまたは複数は音響ビームステアリング技術を備える。
【００７２】
車両５０２はまた、車両５０２と１つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの間の通信を可能にする１つまたは複数の通信接続５１０を含むことが可能である。たとえば、通信接続５１０は、車両５０２および／または駆動モジュール５１４上の他のローカルコンピューティングデバイスとの通信を容易にすることが可能である。また、通信接続５１０は、車両が他の近くのコンピューティングデバイス（たとえば、他の近くの車両、交通信号など）と通信することを可能にすることが可能である。通信接続５１０はまた、車両５０２がリモート遠隔動作コンピューティングデバイスまたは他のリモートサービスと通信することを可能にする。
【００７３】
通信接続５１０は、車両コンピューティングデバイス５０４を別のコンピューティングデバイスまたは（ネットワーク５３８などの）ネットワークに接続するための物理および／または論理インターフェースを含むことが可能である。たとえば、通信接続５１０は、ＩＥＥＥ８０２．１１規格によって定義された周波数などを介したＷｉ−Ｆｉベースの通信、Ｂｌｕｅｔｏｏｔｈ、セルラー通信（たとえば、２Ｇ、３Ｇ、４Ｇ、４Ｇ  ＬＴＥ、５Ｇなど）などの短距離ワイヤレス周波数、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースすることを可能にする任意の好適なワイヤードもしくはワイヤレス通信プロトコルを可能にすることが可能である。
【００７４】
少なくとも１つの例では、車両５０２は、１つまたは複数の駆動モジュール５１４を含むことが可能である。いくつかの例では、車両５０２は、単一の駆動モジュール５１４を有することが可能である。少なくとも１つの例では、車両５０２が多様な駆動モジュール５１４を有する場合、個々の駆動モジュール５１４は、車両５０２の反対端部（たとえば、前部および後部など）上に配置されることが可能である。少なくとも１つの例では、駆動モジュール５１４は、車両５０２の駆動モジュール５１４および／または周囲の状況を検出するための１つまたは複数のセンサシステムを含むことが可能である。限定ではなく例として、センサシステム５０６は、駆動モジュールのホイールの回転を感知するための１つまたは複数のホイールエンコーダ（たとえば、ロータリエンコーダ）、駆動モジュールの配向および加速度を測定するための慣性センサ（たとえば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など）、カメラまたは他の画像センサ、駆動モジュールの周囲におけるオブジェクトを音響的に検出するための超音波センサ、ＬＩＤＡＲセンサ、ｒａｄａｒセンサなどを含むことが可能である。ホイールエンコーダなど、いくつかのセンサは、駆動モジュール５１４に対して一意であることが可能である。いくつかの場合には、駆動モジュール５１４上のセンサシステムは、車両５０２の対応するシステム（たとえば、センサシステム５０６）と重複するかまたはそれを補足することが可能である。
【００７５】
駆動モジュール５１４は、高電圧バッテリー、車両５０２を推進するモーター、他の車両システムが使用するためにバッテリーからの直流を交流にコンバートするインバータ、（電気であり得る）ステアリングモーターおよびステアリングラックを含むステアリングシステム、油圧もしくは電気アクチュエータを含む制動システム、油圧および／もしくは空気構成要素を含む懸架システム、牽引の損失を緩和し制御を維持するための制動力を分配するための安定性制御システム、ＨＶＡＣシステム、照明（たとえば、車両の外部周囲を照明するヘッド／テールライトなどの照明）、ならびに１つまたは複数の他のシステム（たとえば、冷却システム、安全性システム、オンボード充電システム、ＤＣ／ＤＣコンバータ、高電圧接合、高圧電ケーブル、充電システム、充電ポートなど他の電気的構成要素）を含む、車両システムの多くを含むことが可能である。さらに、駆動モジュール５１４は、センサシステムからデータを受信し前処理して様々な車両システムの動作を制御することが可能である駆動モジュールコントローラを含むことが可能である。いくつかの例では、駆動モジュールコントローラは、１つまたは複数のプロセッサと、１つまたは複数のプロセッサに通信可能に結合されたメモリとを含むことが可能である。メモリは、駆動モジュール５１４の様々な機能を実施するための１つまたは複数のモジュールを記憶することが可能である。さらに、駆動モジュール５１４はまた、それぞれの駆動モジュールによる１つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする１つまたは複数の通信接続を含む。
【００７６】
車両５０２のプロセッサ５１６は、本明細書で説明されるようにデータを処理し動作を実施するための命令を実行することが可能な任意の好適なプロセッサであることが可能である。限定ではなく例として、プロセッサ５１６は、１つもしくは複数の中央処理ユニット（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、または電子データをレジスタおよび／もしくはメモリに記憶されることが可能な他の電子データに変換するようにその電子データを処理する任意の他のデバイスもしくはデバイスの部分を備えることが可能である。いくつかの例では、集積回路（たとえば、ＡＳＩＣなど）、ゲートアレイ（たとえば、ＦＰＧＡなど）、および他のハードウェアデバイスも、符号化された命令をそれらが実装するように構成されている限り、プロセッサと見なされることが可能である。
【００７７】
メモリ５１８は、非一時的コンピュータ可読媒体の例である。メモリ５１８は、本明細書で説明される方法および様々なシステムに帰する機能を実装するためのオペレーティングシステムおよび１つまたは複数のソフトウェアアプリケーション、命令、プログラム、および／またはデータを記憶することが可能である。様々な実装では、メモリは、静的ランダムアクセスメモリ（ＳＲＡＭ）、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、不揮発性／フラッシュタイプメモリ、または情報を記憶することが可能な任意の他のタイプのメモリなど、任意の好適なメモリ技術を使用して実装されることが可能である。本明細書で説明されるアーキテクチャ、システム、および個々の要素は、多くの他の論理的、プログラム的、および物理的構成要素を含むことが可能であり、それらのうち、添付の図に示されているものは、本明細書の議論に関係する例にすぎない。
【００７８】
図５は分散システムとして示されているが、代替例では、車両５０２の構成要素は、ネットワーク５４０を介してアクセス可能なリモートコンピューティングデバイスに関連付けられることが可能であることに留意されたい。
【００７９】
たとえば、車両５０２は、ネットワーク５４０を介して、１つまたは複数のコンピューティングデバイス５４２にセンサデータを送ることが可能である。いくつかの例では、車両５０２は、コンピューティングデバイス５４２に生センサデータを送ることが可能である。他の例では、車両５０２は、コンピューティングデバイス５４２に処理済みセンサデータおよび／またはセンサデータの表現を送ることが可能である。いくつかの例では、車両５０２は、特定の頻度で、所定の時間期間の経過後に、ほぼリアルタイムに、など、コンピューティングデバイス５４２にセンサデータを送ることが可能である。いくつかの場合には、車両５０２は、コンピューティングデバイス５４２に（生または処理済み）センサデータを１つまたは複数のログファイルとして送ることが可能である。
【００８０】
コンピューティングデバイス５４２は、（生または処理済み）センサデータを受信することが可能であり、データに対して較正動作を実施することが可能である。少なくとも１つの例では、コンピューティングデバイス５４２は、１つまたは複数のプロセッサ５４４と、１つまたは複数のプロセッサ５４４に通信可能に結合されたメモリ５４６とを含むことが可能である。図示の例では、コンピューティングデバイス５４２のメモリ５４６は較正構成要素５４８を記憶し、較正構成要素５４８は、較正構成要素５２８のコンテキストにおいて上記で論じられたものと同様の動作を実施するための機能を含むことが可能である。いくつかの事例では、プロセッサ５４４およびメモリ５４６は、プロセッサ５１６およびメモリ５１８に関して上記で論じられたものと同様の機能および／または構造を含むことが可能である。
【００８１】
図１、図２、図３、図６、図７、および図８は、本開示の実施形態による例示的な処理を示す。これらの処理は論理フローグラフとして示されており、それらの各動作は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実装されることが可能な動作のシーケンスを表す。ソフトウェアのコンテキストでは、動作は、１つまたは複数のプロセッサによって実行されたとき、具陳された動作を実施する１つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作について説明される順序は、限定として解釈されることを意図されず、任意の数の説明される動作は、処理を実装するために任意の順序でおよび／または並列に組み合わされることが可能である。
【００８２】
図６は、１つまたは複数のカメラの外在性特性を較正するための例示的な処理５００を示す。たとえば、処理５００の一部または全部は、本明細書で説明されるように、図５の１つまたは複数の構成要素によって実施されることが可能である。たとえば、処理５００の一部または全部は、較正構成要素５２８および／または５４８によって実施されることが可能である。
【００８３】
動作６０２において、処理は、自律車両上に取り付けられたカメラによってキャプチャされた画像を備える画像データを受信することを含むことが可能である。いくつかの例では、画像は、重複する視野を有するカメラによってキャプチャされてよく、画像は、車両が環境中を移動するにつれて収集されてよい。いくつかの例では、データは、離散時間においてキャプチャされた画像をそれぞれ備える一連のフレームを備えるビデオフィードを備え得る。いくつかの例では、カメラは、車両の周りの全３６０度について環境の画像をキャプチャするように車両上に配置され得る。これらの例では、隣接するカメラは重複する視野を有し得る。
【００８４】
動作６０４において、処理は、画像データ中の画像のペアについて対応する点ペアを決定することを含むことが可能である。たとえば、処理は、画像データを分析して画像特徴を識別し、画像にわたってそれらの特徴を一致させ得る。いくつかの事例では、動作６０４は、特徴抽出および／または特徴一致技法を使用して対応する点ペアを決定することが可能である。より詳細には、動作６０４は、第１のカメラによってキャプチャされた第１の画像中の点、および第１の画像と実質的に同じ時間に第２のカメラによってキャプチャされた第２の画像中の第２の点（ならびに／または１つまたは複数のセンサによってキャプチャされた後続の画像データ中の第１および第２の点）を識別し得る。第１の点および第２の点は、これらの２つの画像中の同じ画像特徴を識別し得る。たとえば、動作６０４は、第１のカメラおよび第２のカメラによってキャプチャされた各画像ペアについて数百個の点ペアを識別し得る。その上、動作６０４は、数千個の画像ペアについて数百個の点ペアを決定し得る。いくつかの実装では、重複する視野をもつカメラの各ペアについて、各カメラの最高約２００００個のフレーム（たとえば、個別画像）が検討されてよく、画像の各ペアについて最高約３００個の点ペアが決定されてよい。
【００８５】
動作６０６において、処理は、点ペアの各々について誤差（たとえば、射影誤差）を決定することを含むことが可能である。いくつかの事例では、動作６０６は、カメラ間で、および相対的体勢の初期仮定に基づいて関係を記述する基本行列を決定することが可能である。基本行列を使用して、動作６０６は、点ペア中の第１の点についてエピポーラ線を決定し、それらのエピポーラ線を第２の画像に射影し得る。誤差は、エピポーラ線と第２の点との間の距離として決定され得る。
【００８６】
動作６０８において、処理６００は、点ペアのサブセットを決定し得る。たとえば、点ペアのサブセットは、しきい値誤差以上の誤差を有する点を除外し得る。いくつかの実装では、サブセットは、画像中の点の位置に基づいて決定されてもよい。たとえば、動作６０８は、重複する視野の全体の完全な表現を提供する点を保持するためのバイアスを含んでよい。したがって、たとえば、より比較的高い誤差を有する第１の点は、第１の点が、隣接する点、たとえば、より高い誤差を有する隣接する点からより遠いとき、より比較的低い誤差を有する第２の点にわたって保持されてよい。少なくともいくつかの例では、そのようなサブセットは、逆、すなわち、第１の画像中の第２の点のエピポーラ線を決定し、第２の点の射影に対して第１の点の誤差を決定することに基づいてさらに決定されてよい。そのような左右一貫性チェックは、外れ値の量をさらに低減し得る。
【００８７】
動作６０８から、処理６００は動作６０６に戻ることが可能である。たとえば、処理６００は、基本行列について繰り返し解き、点ペアに関連付けられた誤差を決定し、次いで、点ペアのセットを改良し得る。いくつかの実装では、繰り返しの数はあらかじめ確定されてよい。他の実装では、処理６００は、点ペアのセットが点ペアのしきい値数以下である、たとえば、２０個未満の点ペアであるとき、動作６１０に進むことが可能であり、ここで、点の総誤差は、減少するのを止めるか、しきい値量だけ減少するなどする。
【００８８】
動作６１０は、第１の補正関数を生成することを含むことが可能である。たとえば、すべてのカメラについてエピポーラ幾何を使用して解かれた第１の補正関数は、互いに対するすべてのカメラの較正を生じることが可能である。しかしながら、上記で論じられたように、エピポーラ幾何を利用する技法は点ペア中の点の深度を考慮しないので、カメラは、６の自由度すべてにおいて制約されるのではない。
【００８９】
したがって、処理６００はまた、第６の自由度を制約しおよび／またはスケールのインジケーションを提供するための動作を含み得る。たとえば、動作６１２、６１４、６１６、および６１８は、車両（たとえば、車両上の点）に対してカメラを制約するために、ｌｉｄａｒデータ、たとえば、ｌｉｄａｒセンサによって生成された点群データを、カメラによってキャプチャされた画像データと比較し得る。
【００９０】
たとえば、動作６１２は、画像データ中の画像についてオブジェクトエッジを決定し得る。たとえば、（動作６０４において分析される画像の各々を含む）各画像について、キャニーエッジ検出アルゴリズムなどのエッジ検出アルゴリズムが適用されて、画像中のエッジが決定され得る。エッジ検出はまた、たとえば、画像中の各ピクセルについて、最も近いエッジピクセルまでの直線距離（すなわちユークリッド距離）を定量化するために、画像中でピクセルへの距離変換を適用することを含んでよい。
【００９１】
動作６１４は、自律車両上に取り付けられた１つまたは複数のｌｉｄａｒセンサによってキャプチャされた点群データを受信する。たとえば、ｌｉｄａｒデータは、カメラのうちの少なくとも１つの視野と重複する視野についてキャプチャされ得る。いくつかの例、すなわち多様なｌｉｄａｒセンサが使用される例では、多様なｌｉｄａｒセンサの組み合わされた出力は、多様なｌｉｄａｒセンサが単一のｌｉｄａｒセンサとして効果的に扱われ得るように、「メタスピン」を備え得る。多様なｌｉｄａｒセンサが使用されるそれらの例では、ｌｉｄａｒセンサが互いにうまく較正されるように、ｌｉｄａｒセンサ自体に対して追加の較正ステップが実施されてよい。そのような較正は、たとえば、「Ｖｅｈｉｃｌｅ  Ｓｅｎｓｏｒ  Ｃａｌｉｂｒａｔｉｏｎ  ａｎｄ  Ｌｏｃａｌｉｚａｔｉｏｎ」と題する２０１７年８月１１日に出願された米国特許出願第１５／６７４，８５３号である特許文献１、および「Ｓｅｎｓｏｒ  Ｐｅｒｔｕｒｂａｔｉｏｎ」と題する２０１７年８月１１日に出願された米国特許出願第１５／６７５，４８７号である特許文献２において説明されており、それらの内容全体は参照により本明細書に組み込まれる。上記で説明されたように、うまく較正されたシステムでは、ｌｉｄａｒデータは画像データと整合しなければならない。そのような情報は、ｌｉｄａｒセンサを用いて画像センサ（カメラ）を較正するために、以下で詳細に説明される後続の動作において使用される。
【００９２】
動作６１６において、処理６００は、ｌｉｄａｒ点群データ中の点とオブジェクトエッジとの間の距離を決定し得る。たとえば、時間に対応するｌｉｄａｒ応答が、その時間にキャプチャされたカメラ画像上に射影されたとき、点群近傍において強い深度不連続性をもつｌｉｄａｒ点は、確実に画像エッジ上に来るはずである。点群中の点とオブジェクトエッジとの間の距離は、カメラに対するｌｉｄａｒセンサの較正の誤差に関連付けられ得る。
【００９３】
より詳細には、本明細書で説明される技法は、単純なフィルタを使用して、たとえば、水平ｌｉｄａｒビームごとに深度測定値に対して［１  ０  −１］フィルタを使用して、深度不連続性におけるｌｉｄａｒ点を選択し得る。この結果にしきい値が適用され得る（たとえば、深度不連続性は、少なくとも１０ｃｍ、１ｍ、１０ｍなどでなければならない）。また、例示的な実装によれば、本明細書で説明される技法は、各選択されたｌｉｄａｒ点を画像上に射影し、それが来る（たとえば、双一次補間され得る、動作６１４に関して上記で論じられた）変換されたエッジ画像のピクセル値に基づいて、射影された点の各々をスコアリングし得る。このようにして、スコアは、各点が、最も近い画像エッジからどの程度遠くにあるかを示し得る。いくつかの実装では、フォールスポジティブ（たとえば、路面標示および街路標識上の書込みを含む、深度不連続性を表さない強い画像エッジ）ならびに／またはフォールスネガティブ（たとえば、画像エッジとして現れない深度不連続性の影響を限定するために、距離変換マップは打ち切られてもよい。本明細書で説明される技法では、ｌｉｄａｒの外在性較正、ｌｉｄａｒ時間における車両体勢、カメラ時間における車両体勢、および／またはカメラ内在性は、固定パラメータであり、カメラ外在性が唯一の自由パラメータであってよい。
【００９４】
動作６１８において、処理６００は、第２の補正関数を生成する。たとえば、動作６１８は、点群中の点と画像エッジとの間の距離によって例示される誤差を使用して、（たとえば、較正行列として）補正関数を決定して、車両に対して、画像データをキャプチャするカメラを制約する。このようにして、本明細書で説明されるようにｌｉｄａｒデータをカメラ画像と比較することは、カメラの第６の自由度が制約し、カメラのアレイに完全な較正関数が提供し得る。本開示の実装は、ｌｉｄａｒデータがうまく較正される、たとえば、ｌｉｄａｒセンサが車両に対して正しく較正されると仮定し得る。
【００９５】
動作６２０において、処理は、第１の補正関数および第２の補正関数に少なくとも部分的に基づいて、１つまたは複数のカメラに関連付けられた較正データを決定することを含むことが可能である。たとえば、第１の補正関数は、車両上のカメラのアレイの６の自由度のうちの５を制約し得、第２の補正関数は、第６の自由度を制約することが可能である。議論の明確さのために、処理６００は、動作６１０において第１の補正関数を生成することと、６１８において第２の補正関数を生成することと、次いで、動作６２０においてこれらの２つの補正関数から較正データを生成することとについて説明しているが、実装では、処理６００は、たとえば、画像データおよびｌｉｄａｒデータから較正データについて解くために、動作のうちのいくつかを並列に実施し得る。較正データは、カメラにおいてその後にキャプチャされた画像データに適用されることが可能な較正変換または行列を含み得る。いくつかの事例では、動作６２０は、たとえば、基準角度から調整角度を加算または減算して最適な較正データを決定することによって、１つまたは複数の較正角度（または、概して、較正特性）を決定することを含むことが可能である。
【００９６】
たとえば、本開示の実装では、技法は、すべての（たとえば、動作６０４、６０６、６０８、６１０による）カメラ対カメラ制約および（たとえば、動作６１２、６１４、６１６、６１８による）ｌｉｄａｒ対カメラ制約にわたって一緒にすべてのカメラの正しい体勢（すなわち、位置および配向）について最適化し得る。たとえば、Ｃｅｒｅｓフレームワークが使用され得る。その上、本明細書で説明される技法は、外れ値およびノイズを加味するように最適化され得る。たとえば、画像特徴一致は外れ値を生じることがあり、カメラ画像処理におけるそのような外れ値に対して結果を最適化するために期待値最大化フレームワークが使用され得る。たとえば、期待値最大化フレームワークは、データサポートが与えられて、最良のカメラ体勢について最適化することと、カメラ体勢の最良の推定値が与えられて、データサポートを限定することとの間で繰り返され得る。ｌｉｄａｒ応答は深度不連続性上に正確には来ないので、Ｌｉｄａｒデータはノイズが多いことがある。代わりに、そのような応答は、平均して、そのような不連続性から水平ビーム角度差の半分離れて来る。このノイズは、体系的ではなくランダムなことがあり、本明細書で使用される技法は、追加のロバスト性のために、Ｈｕｂｅｒ損失関数などの損失関数を採用し得る。
【００９７】
カメラ対カメラ技法とｌｉｄａｒ対カメラ技法とに関して、両方のコスト関数はピクセルで誤差を測定し得るが、データ、たとえば、特徴一致およびｌｉｄａｒ点の量は異なることがあり得る。いくつかの実装では、両方のコスト関数の間で線形スケーリング係数が適用され得る。
【００９８】
動作６２２において、処理は、較正データに少なくとも部分的に基づいて１つまたは複数のセンサを較正することを含むことが可能である。たとえば、動作６２２は、位置特定システム（たとえば、位置特定構成要素５２０）、知覚システム（たとえば、知覚構成要素５２２）などのうちの１つまたは複数に較正データを送ることを含むことが可能である。いくつかの事例では、較正データは、車両の１つまたは複数のシステムによって使用されて、１つまたは複数のセンサによってキャプチャされたデータが、正確な方式で環境を表すことが可能であるように、データが整合されるかまたは他の方法で調整されることが可能である。
【００９９】
図７は、１つまたは複数のカメラの外在性特性と内在性特性の両方を較正するための例示的な処理７００を示す。たとえば、処理７００の一部または全部は、本明細書で説明されるように、図５の１つまたは複数の構成要素によって実施されることが可能である。たとえば、処理７００の一部または全部は、較正構成要素５２８および／または５４８によって実施されることが可能である。
【０１００】
動作７０２において、処理は、自律車両上に取り付けられたカメラによってキャプチャされた画像を備える画像データを受信することを含むことが可能である。いくつかの例では、画像は、（少なくとも部分的に）重複する視野を有するカメラによってキャプチャされてよく、画像は、車両が環境中を移動するにつれて収集されてよい。いくつかの例では、データは、離散時間においてキャプチャされた画像をそれぞれから成る一連のフレームを備えるビデオフィードを含み得る。いくつかの例では、カメラは、車両の周りの全３６０度について環境の画像をキャプチャするように車両上に配置され得る。これらの例では、隣接するカメラは重複する視野を有し得る。追加の例では、画像は、単一のカメラによってキャプチャされてよく、たとえば、それらは、様々な時間においてカメラによってキャプチャされた画像であり得る。本明細書で説明される実装は、同じ特徴を有する任意の画像、たとえば、対応する特徴がそれについて決定され得る画像上で使用され得る。同様に、画像が同じ特徴を示す限り、たとえば、ロバスト性を向上させるために、３つ以上の画像が使用され得る。
【０１０１】
動作７０４において、処理は、画像データ中の画像について対応する点ペアを決定することを含むことが可能である。たとえば、処理は、画像データを分析して画像特徴を識別し、２つ以上の画像にわたってそれらの特徴を一致させ得る。非限定的な例として、特徴は、各カメラの（たとえば、２つのカメラの各々の）２つのフレームについて決定されてよく、すべての（この例では、４つの）フレームにわたって特徴一致が実施されてよいが、任意の数のフレームが企図される。そのような例では、ビデオシーケンスからの多様なフレームにわたる特徴一致は、よりロバストな特徴を提供して、より良い較正を生じ得る。以下で詳細に説明される動作のいずれかにおいて、特徴は、キャプチャされた様々なフレームの特徴のいずれかに対応し得る。いくつかの事例では、動作７０４は、動作６０４と実質的に同じであることが可能であり、本明細書ではさらに詳述されない。
【０１０２】
動作７０６において、処理は、点ペアの各々について誤差（たとえば、射影誤差）を決定することを含むことが可能である。いくつかの事例では、動作７０６は、カメラ間で、および相対的体勢の初期仮定に基づいて関係を記述する基本行列を決定することが可能である。（たとえば推定された基本行列を用いて初期化することによって）基本行列を使用して、動作７０６は、点ペア中の第１の点についてエピポーラ線を決定し、それらのエピポーラ線を第２の画像に射影し得る。誤差は、エピポーラ線と第２の点との間の距離として決定され得る。
【０１０３】
動作７０８において、処理７００は、点ペアのサブセットを決定し得る。たとえば、点ペアのサブセットは、しきい値誤差以上の誤差を有する点を除外し得る。いくつかの実装では、サブセットは、画像中の点の位置に基づいて決定されてもよい。たとえば、サブセットは、動作６０８において上記で論じられた技法を使用しておよび／または図３に示されている技法に基づいて決定されてよい。
【０１０４】
動作７１０は、第１の補正関数を生成することを含むことが可能である。たとえば、すべてのカメラに関してエピポーラ幾何を使用して解かれた第１の補正関数は、（たとえば、外在性較正の初期推定値に対する補正として）互いに対するすべてのカメラの較正を生じることが可能である。しかしながら、上記で論じられたように、エピポーラ幾何を利用する技法は点ペア中の点の深度を考慮しないので、カメラは、６の自由度すべてにおいて制約されるのではない。その上、エピポーラ幾何を利用する技法は、内在性パラメータを加味しない。
【０１０５】
動作７１０から、処理７００は動作７０６に戻ることが可能である。たとえば、処理７００は、基本行列について繰り返し解き、点ペアに関連付けられた誤差を決定し、次いで、点ペアのセットを改良し得る。いくつかの実装では、繰り返しの数はあらかじめ確定されてよい。他の実装では、処理７００は、点ペアのセットが点ペアのしきい値数以下である、たとえば、２０個未満の点ペアであるとき、動作７１８に進むことが可能であり、ここで、点の総誤差は、減少するのを止めるか、誤差の変化（導関数）がしきい値量よりも少ない場合にしきい値量だけ減少するなどする。
【０１０６】
したがって、処理７００はまた、第６の自由度を制約し、スケールのインジケーションを提供し、および／または内在性パラメータに関連付けられた不整合について解くための動作を含み得る。たとえば、動作７１２、７１４、および７１６は、内在性パラメータに関連付けられた補正関数を生成し得る。
【０１０７】
さらに、少なくともいくつかの例では、そのようなシステムは、独立して（たとえば独立した相対的体勢を有して）画像の各走査線を取り扱ってよく、各走査線は、異なる相対的タイムスタンプに関連付けられる。非限定的な例として、そのような取扱いは、得られる補正が各走査線に関連付けられた体勢に基づくように、そのようなカメラがローリングシャッターカメラである（すなわち各走査線が連続的にキャプチャされる）場合に使用されてよい。
【０１０８】
たとえば、動作７１２は、点深度推定値および／または内在性（たとえば、ひずみパラメータ）に関連付けられた誤差を決定し得る。たとえば、図２に関して上記で詳述されたように、第１の画像からの点は第２の画像に再射影されて、たとえば、深度を推定し、複数の点からの情報を使用して最適化された深度に収束することによって、点の深度が決定され得る。この例では、深度に関連付けられた誤差は、測定された点と再射影された点との間のユークリッド距離であり得る。動作７１２はまた、たとえば、各測定された点に関連付けられたひずみのない点を決定することによって、他の内在性特性、たとえば、ひずみパラメータ、焦点距離、および中心点について解き得る。
【０１０９】
動作７１４において、処理７００は、点ペアのサブセットを決定し得る。たとえば、点ペアのサブセットは、しきい値誤差以上の誤差を有する点を除外し得る。いくつかの実装では、サブセットは、画像中の点の位置に基づいて決定されてもよい。たとえば、サブセットは、動作６０８、７０８において上記で論じられた技法を使用しておよび／または図３に示されている技法に基づいて決定されてよい。
【０１１０】
動作７１６は、第２の補正関数（たとえば、カメラ内在性の初期仮定を補正するための関数）を生成することを含むことが可能である。たとえば、点深度を決定するための点の再射影を使用しておよび／またはひずみのない点を使用して解かれた第２の補正関数は、個々のカメラの内在性関数の較正を生じることが可能である。したがって、第１の補正関数は、たとえば、エピポーラ幾何を利用する技法は点ペア中の点の深度を考慮しないので、カメラの６の自由度すべては制約しないことがあるが、第２の補正関数は、点の深度について最適化しながら、すべての自由度を制約し得る。その上、第２の補正関数は、他の内在性パラメータについて最適化されてよい。動作７１０の場合と同様に、少なくともいくつかの例では、（たとえば、カメラがローリングカメラであるときの）各走査線は、最適化のために一意の体勢および／またはタイムスタンプに関連付けられてよい。
【０１１１】
動作７１６から、処理７００は動作７１２に戻ることが可能である。たとえば、処理７００は、内在性パラメータについて繰り返し解き、点ペアに関連付けられた誤差を決定し、次いで、点ペアのセットを改良し得る。いくつかの実装では、繰り返しの数はあらかじめ確定されてよい。他の実装では、処理７００は、点ペアのセットが点ペアのしきい値数以下である、たとえば、２０個未満の点ペアであるとき、動作７１６に進むことが可能であり、ここで、点の総誤差は、減少するのを止めるか、誤差の変化率がしきい値量を下回るときにしきい値量だけ減少するなどする。
【０１１２】
動作７２０において、処理は、第１の補正関数および／または第２の補正関数に少なくとも部分的に基づいて、１つまたは複数のカメラに関連付けられた較正データを決定することを含むことが可能である。たとえば、第１の補正関数は、車両上のカメラのアレイの６の自由度のうちの５つを制約し得、第２の補正関数は、第６の自由度を制約することが可能である。その上、第２の補正関数は、内在性パラメータを制約することが可能である。議論の明確さのために、処理７００は、動作７１０において第１の補正関数を生成することと、７１６において第２の補正関数を生成することと、次いで、動作７１８においてこれらの２つの補正関数から較正データを生成することとについて説明しているが、実装では、処理７００は、たとえば、同じ画像データからおよび同じ時間において外在性較正データおよび内在性較正データについて解くために（たとえば、ジョイント最適化）、動作のうちのいくつかを並列に実施し得る。較正データは、カメラにおいてその後にキャプチャされた画像データに適用されることが可能な較正変換または行列を含み得る。いくつかの事例では、動作７１８は、たとえば、基準角度から調整角度を加算または減算して最適な較正データを決定することによって、１つまたは複数の較正角度（または、概して、較正特性）を決定することを含むことが可能である。いくつかの事例では、動作は繰り返し実施されてよい。たとえば、処理は、収束まで、内在性を解くことと外在性を解くこととの間で交替してよい。
【０１１３】
たとえば、本開示の実装では、技法は、すべての制約にわたって一緒にすべてのカメラの正しい体勢（すなわち、位置および配向）についてならびに内在性パラメータについて最適化し得る。その上、本明細書で説明される技法は、外れ値およびノイズを加味するように最適化され得る。たとえば、画像特徴一致は外れ値を生じることがあり、カメラ画像処理におけるそのような外れ値に対して結果を最適化するために期待値最大化フレームワークが使用され得る。たとえば、期待値最大化フレームワークは、データサポートが与えられて、最良のカメラ体勢について最適化することと、カメラ体勢の最良の推定値が与えられて、データサポートを限定することとの間で繰り返され得る。
【０１１４】
動作７２０において、処理は、較正データに少なくとも部分的に基づいて１つまたは複数のセンサを較正することを含むことが可能である。たとえば、動作７２０は、位置特定システム（たとえば、位置特定構成要素５２０）、知覚システム（たとえば、知覚構成要素５２２）などのうちの１つまたは複数に較正データを送ることを含むことが可能である。いくつかの事例では、較正データは、車両の１つまたは複数のシステムによって使用されて、１つまたは複数のセンサによってキャプチャされたデータが、正確な方式で環境を表すことが可能であるように、データが整合されるかまたは他の方法で調整されることが可能である。
【０１１５】
図８は、本明細書で説明されるように、較正されたセンサデータに少なくとも部分的に基づいて自律車両を制御するための例示的な処理８００を示す。たとえば、処理８００の一部または全部は、本明細書で説明されるように、図５の１つまたは複数の構成要素によって実施されることが可能である。たとえば、処理８００の一部または全部は、位置特定構成要素５２０、知覚構成要素５２２、プランニング構成要素５２４、および／または１つもしくは複数のシステムコントローラ５２６によって実施されることが可能である。
【０１１６】
動作８０２において、処理は、更新された較正データを受信することを含むことが可能である。いくつかの事例では、較正データは、本明細書で説明される較正技法を使用して決定されることが可能である。
【０１１７】
動作８０４において、処理は、更新された較正データに少なくとも部分的に基づいて軌道を生成することを含むことが可能である。たとえば、動作８０４において生成される軌道は、較正データを使用して較正された１つまたは複数のセンサから受信されたセンサデータに少なくとも部分的に基づき得る。いくつかの事例では、軌道は、環境中の自律車両の外部にあるオブジェクトまたはエージェントの存在に基づくことが可能である。
【０１１８】
動作８０６において、処理は、軌道に追従するように自律車両を制御することを含むことが可能である。いくつかの事例では、動作８０６において生成されるコマンドは、軌道を走らせるように自律車両を制御するために、自律車両に搭載されたコントローラに中継されることが可能である。自律車両のコンテキストにおいて論じられたが、処理８００、ならびに本明細書で説明される技法およびシステムは、マシンビジョンを利用する様々なシステムに適用されることが可能である。
【０１１９】
例示的な条項
Ａ：例示的なシステムは、環境中を横断するように構成された車両を含み、車両は、カメラのうちの少なくとも２つの視野が少なくとも部分的に重複するように車両の本体上に配設された複数のカメラと、１つまたは複数のプロセッサと、１つまたは複数のプロセッサによって実行可能な命令を記憶するコンピュータ可読媒体とを備え、命令は、複数のカメラから画像のセットを受信することであって、画像のセットは、実質的に第１の時間における環境を表し、複数のカメラによってキャプチャされた画像を含む、ことと、画像のセットについて、複数の点ペアを決定することであって、点ペアの各々は、画像のセットのうちの１つの画像中の第１の点、および画像のセットのうちの別の画像中の第２の点を含み、第１の点および第２の点は、同じ画像特徴に対応する、ことと、複数の点ペアに関連付けられた誤差を決定することであって、誤差は、少なくとも部分的に、第１の点と、第２の点に対応するエピポーラ線との間の距離を含む、ことと、誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、カメラの推定された相対的体勢の不整合を表す補正関数を決定することと、補正関数に少なくとも部分的に基づいて、複数のカメラを較正することとを含む動作をシステムに実施させる。
【０１２０】
Ｂ：補正関数は第１の補正関数であり、本システムは、本体上に配設され、カメラのうちの１つまたは複数の視野中の環境の部分について点群データを生成するように構成された少なくとも１つのセンサをさらに備え、動作は、第１の時間においてキャプチャされた点群データを、画像のセットのうちの少なくとも１つの画像中で決定されたエッジと比較することと、比較することに基づいて、車両に対するカメラの不整合を表す第２の補正関数を決定することとをさらに含み、さらに、複数のカメラを較正することは、第２の補正関数に少なくとも部分的に基づいて複数のカメラを較正することを含む例Ａのシステム。
【０１２１】
Ｃ：誤差を決定することは、１つの画像と、別の画像との間の関係を記述する基本行列を決定することと、複数の点ペアのうちの個々の点ペアについて、および基本行列に少なくとも部分的に基づいて、第１の画像中の第２の点に対応するエピポーラ線を決定することと、第１の点を第１の画像中のエピポーラ線と比較することとを含む例Ａまたは例Ｂのシステム。
【０１２２】
Ｄ：車両は自律車両であり、１つまたは複数のコンピュータ可読媒体は、１つまたは複数のプロセッサによって実行可能なさらなる命令を記憶し、さらなる命令は、較正関数に少なくとも部分的に基づいて、較正されたデータとして、複数のカメラから受信された追加の画像データを較正することと、較正されたデータに少なくとも部分的に基づいて、自律車両を制御するための軌道を生成することと、軌道に少なくとも部分的に基づいて自律車両を制御することとを含む動作をシステムに実施させる例Ａから例Ｃのいずれか１つのシステム。
【０１２３】
Ｅ：例示的な方法は、システム上に配設された第１のカメラによってキャプチャされた環境の第１の画像を含む第１の画像データを受信することであって、第１のカメラは、第１の視野を有する、ことと、システム上に配設された第２のカメラによってキャプチャされた環境の第２の画像を含む第２の画像データを受信することであって、第２のカメラは、第１の視野と少なくとも部分的に重複する第２の視野を有する、ことと、複数の点ペアを決定することであって、点ペアの各々は、第１の画像中の第１の点、および第１の点に対応する第２の画像中の第２の点を含む、ことと、複数の点ペアのうちの個々の点ペアについて射影誤差を決定することであって、誤差は、少なくとも部分的に、第１の点と、第１の画像中の第２の点に対応するエピポーラ線との間の距離を含む、ことと、射影誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第１のカメラおよび第２のカメラの推定された相対的体勢を表す較正関数を決定することとを備える。
【０１２４】
Ｆ：射影誤差を決定することは、基本行列を決定することと、複数の点ペアのうちの個々について、および基本行列に少なくとも部分的に基づいて、第２の点に対応するエピポーラ線を決定することと、第１の画像中にエピポーラ線を射影することと、第１の点と第１の画像中のエピポーラ線との間の距離を決定することとを含む例Ｅの方法。
【０１２５】
Ｇ：複数の点ペアを決定することは、第１の画像から複数の第１の特徴を抽出することと、第２の画像から複数の第２の特徴を抽出することと、一致した特徴として、複数の第１の特徴からの第１の特徴と、複数の第２の特徴のうちの第２の特徴とを一致させることと、複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することとを含み、複数の第１の特徴および複数の第２の特徴は、ＦＲＥＡＫ、ＡＫＡＺＥ、ＦＡＳＴ、ＳＵＲＦ、ＳＩＦＴ、ＯＲＢ、またはＢＲＩＥＦ特徴のうちの１つまたは複数を含む例Ｅまたは例Ｆの方法。
【０１２６】
Ｈ：複数の点ペアのサブセットを決定することは、しきい値誤差以下の射影誤差を有する点ペアを決定することを含む例Ｅから例Ｇのいずれか１つの方法。
【０１２７】
Ｉ：較正関数を決定することは、第１の画像を複数の領域に分割することと、第１の点を複数の領域に関連付けることと、第１の点と複数の領域との間の関連付けに基づいて、複数の点ペアのうちの個々に重み係数を適用することとを含む例Ｅから例Ｈのいずれか１つの方法。
【０１２８】
Ｊ：自律車両上に配設されたｌｉｄａｒセンサによってキャプチャされた環境の点群を含むｌｉｄａｒデータを受信することであって、点群は、第１の視野と重複する第２の視野の部分に関するデータを含む、ことと、点群を第１の画像または第２の画像と比較することと、比較することに少なくとも部分的に基づいて、第１のカメラまたは第２のカメラのうちの少なくとも１つとｌｉｄａｒセンサとの不整合を表す補正関数を決定することとをさらに備える例Ｅから例Ｉのいずれか１つの方法。
【０１２９】
Ｋ：第１の画像または第２の画像中のエッジを検出することと、ｌｉｄａｒデータ中の複数の深度不連続性を決定することと、複数の射影点として複数の深度不連続性を第１の画像または第２の画像中に射影することによって複数の深度不連続性をエッジと比較することと、エッジと複数の射影点との間の距離を決定することとをさらに備える例Ｅから例Ｊのいずれか１つの方法。
【０１３０】
Ｌ：命令を記憶する例示的な非一時的コンピュータ可読媒体であって、命令は、実行されたとき、第１のカメラによってキャプチャされた環境の第１の画像を含む第１の画像データを受信することであって、第１のカメラは、第１の視野を有する、ことと、第２のカメラによってキャプチャされた環境の第２の画像を含む第２の画像データを受信することであって、第２のカメラは、第１の視野と少なくとも部分的に重複する第２の視野を有する、ことと、複数の点ペアを決定することであって、点ペアの各々は、第１の画像中の第１の点、および第１の点に対応する第２の画像中の第２の点を含む、ことと、複数の点ペアについて射影誤差を決定することと、射影誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第２のカメラに対する第１のカメラの不整合を表す較正関数を決定することとを含む動作を１つまたは複数のプロセッサに実施させる、非一時的コンピュータ可読媒体。
【０１３１】
Ｍ：射影誤差を決定することは、複数の点ペアの第１の画像中の第１の点について、第２の画像中の第１の点に対応するエピポーラ線を決定することと、第２の点を第２の画像中のエピポーラ線と比較することとを含む例Ｌの非一時的コンピュータ可読媒体。
【０１３２】
Ｎ：複数の点ペアを決定することは、コンピュータビジョン技法を使用して、第１の画像から抽出された第１の特徴を第２の画像から抽出された第２の特徴と一致させることを含む例Ｌまたは例Ｍの非一時的コンピュータ可読媒体。
【０１３３】
Ｏ：複数の点ペアのサブセットを決定することは、しきい値誤差以下の射影誤差を有する点ペアを決定することを含む例Ｌから例Ｎのいずれか１つの非一時的コンピュータ可読媒体。
【０１３４】
Ｐ：複数の点ペアのサブセットを決定することは、第１の画像を複数の領域に分割することと、複数の領域に対する複数の点ペアの位置を決定することと、位置および射影誤差に少なくとも部分的に基づいて、複数の点ペアのサブセットを除去することを決定することとを含む例Ｌから例Ｏのいずれか１つの非一時的コンピュータ可読媒体。
【０１３５】
Ｑ：サブセットを除去することを決定することは、各領域中で同数の点を保持することを含む例Ｌから例Ｐのいずれか１つの非一時的コンピュータ可読媒体。
【０１３６】
Ｒ：実行されたとき、第１の視野および第２の視野と重複する第３の視野を有するｌｉｄａｒセンサによってキャプチャされた環境の点群を含むｌｉｄａｒデータを受信することと、点群を第１の画像または第２の画像と比較することと、比較することに少なくとも部分的に基づいて、第１のカメラまたは第２のカメラのうちの少なくとも１つとｌｉｄａｒセンサとの不整合を表す補正関数を決定することとをさらに含む動作を１つまたは複数のプロセッサに実施させるさらなる命令を記憶する例Ｌから例Ｑのいずれか１つの非一時的コンピュータ可読媒体。
【０１３７】
Ｓ：実行されたとき、第１の画像または第２の画像中のエッジを検出することと、点群データ中の複数の深度不連続性を検出することと、複数の射影点として、複数の深度不連続性を第１の画像または第２の画像のいずれかの中に射影することと、複数の射影点をエッジと比較することと、エッジと複数の点との間の距離を決定することとをさらに含む動作を１つまたは複数のプロセッサに実施させるさらなる命令を記憶する例Ｌから例Ｒのいずれか１つの非一時的コンピュータ可読媒体。
【０１３８】
Ｔ：エッジを検出することは、画像にキャニーエッジディテクタを適用することを含む例Ｌから例Ｓのいずれか１つの非一時的コンピュータ可読媒体。
【０１３９】
ＡＡ：例示的なシステムは、環境中を横断するように構成された車両を含み、車両は、カメラのうちの少なくとも２つの視野が少なくとも部分的に重複するように車両の本体上に配設された複数のカメラと、１つまたは複数のプロセッサと、１つまたは複数のプロセッサによって実行可能な命令を記憶するコンピュータ可読媒体とを備え、命令は、複数のカメラから画像のセットを受信することであって、画像のセットは、実質的に第１の時間における環境を表し、複数のカメラによってキャプチャされた画像を含む、ことと、画像のセットについて、複数の点ペアを決定することであって、点ペアの各々は、画像のセットのうちの１つの画像中の第１の点、および画像のセットのうちの別の画像中の第２の点を含む、第１の点および第２の点は、同じ画像特徴に対応する、ことと、複数の点ペアに関連付けられた第１の誤差を決定することであって、第１の誤差は、少なくとも部分的に、第１の点と、第２の点に対応するエピポーラ線との間の第１の距離を含む、ことと、第１の誤差に少なくとも部分的に基づいて、複数の点ペアの第１のサブセットを決定することと、複数の点ペアの第１のサブセットから、カメラの推定された相対的体勢の不整合を表す第１の補正関数を決定することと、複数の点ペアに関連付けられた第２の誤差を決定することであって、第２の誤差は、少なくとも部分的に、第１の点と、点深度を推定する第２の点の再射影との間の第２の距離を含む、ことと、第２の誤差に少なくとも部分的に基づいて、複数の点ペアの第２のサブセットを決定することと、複数の点ペアの第２のサブセットから、カメラの推定された相対的体勢の不整合を表す第２の補正関数を決定することと、第１の補正関数および第２の補正関数に少なくとも部分的に基づいて、複数のカメラを較正することと、を含む動作をシステムに実施させる。
【０１４０】
ＢＢ：第１の誤差を決定することは、１つの画像と、別の画像との間の関係を記述する基本行列を決定することと、複数の点ペアのうちの個々の点ペアについて、および基本行列に少なくとも部分的に基づいて、第１の画像中の第２の点に対応するエピポーラ線を決定することであって、第１の点を第１の画像中のエピポーラ線と比較する、こととを含む例ＡＡのシステム。
【０１４１】
ＣＣ：第２の誤差を決定することは、カメラ内在性に従って第１の点をひずませないことを含む例ＡＡまたは例ＢＢのシステム。
【０１４２】
ＤＤ：複数の点ペアの第１のサブセットを決定することまたは複数の点ペアの第２のサブセットを決定することのうちの少なくとも１つは、第１の点と、エピポーラ線または再射影のうちの少なくとも１つとを含んでいる画像のセットのうちの画像を複数の領域に分割することと、複数の領域のうちの個々について点ペアのサブセットを決定することとを含み、複数の点ペアの第１のサブセットまたは複数の点ペアの第２のサブセットは、複数の領域についての点ペアのサブセットを含む例ＡＡから例ＣＣのいずれか１つのシステム。
【０１４３】
ＥＥ：車両は自律車両であり、１つまたは複数のコンピュータ可読媒体は、１つまたは複数のプロセッサによって実行可能なさらなる命令を記憶し、さらなる命令は、較正関数に少なくとも部分的に基づいて、較正されたデータとして、複数のカメラから受信された追加の画像データを較正することと、較正されたデータに少なくとも部分的に基づいて、自律車両を制御するための軌道を生成することと、軌道に少なくとも部分的に基づいて自律車両を制御することとを含む動作をシステムに実施させる例ＡＡから例ＤＤのいずれか１つのシステム。
【０１４４】
ＦＦ：例示的な方法は、システム上に配設された第１のカメラによってキャプチャされた環境の第１の画像を含む第１の画像データを受信することであって、第１のカメラは、第１の視野を有する、ことと、システム上に配設された第２のカメラによってキャプチャされた環境の第２の画像を含む第２の画像データを受信することであって、第２のカメラは、第１の視野と少なくとも部分的に重複する第２の視野を有する、ことと、複数の点ペアを決定することであって、複数の点ペアのうちの点ペアは、第１の画像中の第１の点、および第１の点に対応する第２の画像中の第２の点を含む、ことと、複数の点ペアのうちの個々の点ペアについて第１の誤差を決定することであって、第１の誤差は、少なくとも部分的に、第１の点と、第１の画像中の第２の点に対応するエピポーラ線との間の距離を含む、ことと、複数の点ペアのうちの個々の点ペアについて第２の誤差を決定することであって、第２の誤差は、少なくとも部分的に、第１の点と、対応する第２の点の再射影との間の距離を含み、再射影は、第１の点の推定された深度に少なくとも部分的に基づく、ことと、第１の誤差または第２の誤差のうちの少なくとも１つに少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第１のカメラおよび第２のカメラの推定された相対的体勢、または第１のカメラもしくは第２のカメラの推定されたカメラ内在性のうちの少なくとも１つを表す較正関数を決定することとを含む。
【０１４５】
ＧＧ：第１の誤差を決定することは、基本行列を決定することと、複数の点ペアのうちの点ペアについて、および基本行列に少なくとも部分的に基づいて、第２の点に対応するエピポーラ線を決定することと、第１の画像中にエピポーラ線を射影することと、第１の点と第１の画像中のエピポーラ線との間の距離を決定することとを含む例ＦＦの方法。
【０１４６】
ＨＨ：複数の点ペアを決定することは、第１の画像から複数の第１の特徴を抽出することと、第２の画像から複数の第２の特徴を抽出することと、一致した特徴として、複数の第１の特徴からの第１の特徴と、複数の第２の特徴のうちの第２の特徴とを一致させることと、複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することとを含み、複数の第１の特徴および複数の第２の特徴は、ＦＲＥＡＫ、ＡＫＡＺＥ、ＦＡＳＴ、ＳＵＲＦ、ＳＩＦＴ、ＯＲＢ、またはＢＲＩＥＦ特徴のうちの１つまたは複数を含む例ＦＦまたは例ＧＧの方法。
【０１４７】
ＩＩ：再射影は、第１のカメラの推定されたカメラ内在性に少なくとも部分的に基づいて第１の点をひずませないことにさらに基づく例ＦＦから例ＨＨのいずれか１つの方法。
【０１４８】
ＪＪ：複数の点ペアのサブセットを決定することは、第１の点を含んでいる第１の画像を複数の領域に分割することと、第１の誤差または第２の誤差に少なくとも部分的に基づいて、複数の領域のうちの領域について点ペアのサブセットを決定することとを含み、複数の点ペアの第１のサブセットまたは複数の点ペアの第２のサブセットは、複数の領域についての点ペアのサブセットを含む例ＦＦから例ＩＩのいずれか１つの方法。
【０１４９】
ＫＫ：較正関数を決定することは、第１の点と複数の領域との間の関連付けに基づいて、複数の点ペアのうちの個々に重み係数を適用することを含む例ＦＦから例ＪＪのいずれか１つの方法。
【０１５０】
ＬＬ：複数の領域のうちの第１の領域中の第１の点は、第１の領域中の第１の点の数に基づいて第１の重みを割り当てられる例ＦＦから例ＫＫのいずれか１つの方法。
【０１５１】
ＭＭ：第１の画像データのうちの少なくとも１つは、第１のカメラによってキャプチャされた環境の第３の画像を含むか、または第２の画像データは、第２のカメラによってキャプチャされた環境の第４の画像を含み、点ペアは、第３の画像中の第３の点または第４の画像中の第４の点のうちの少なくとも１つをさらに含む例ＦＦから例ＬＬのいずれか１つの方法。
【０１５２】
ＮＮ：第１の画像または第２の画像中のエッジを検出することと、システム上に配設されたｌｉｄａｒセンサによってキャプチャされた環境の点群を含むｌｉｄａｒデータを受信することであって、点群は、第１の視野と重複する第２の視野の部分に関するデータを含む、ことと、ｌｉｄａｒデータ中の複数の深度不連続性を決定することと、複数の射影点として複数の深度不連続性を第１の画像または第２の画像中に射影することによって複数の深度不連続性をエッジと比較することと、エッジと複数の射影点との間の距離を決定することと、距離に少なくとも部分的に基づいて、第１のカメラまたは第２のカメラのうちの少なくとも１つとｌｉｄａｒセンサとの不整合を表す補正関数を決定することとをさらに備える例ＦＦから例ＭＭのいずれか１つの方法。
【０１５３】
ＯＯ：命令を記憶する例示的な非一時的コンピュータ可読媒体であって、命令は、実行されたとき、システム上に配設された第１のカメラによってキャプチャされた環境の第１の画像を含む第１の画像データを受信することであって、第１のカメラは、第１の視野を有する、ことと、システム上に配設された第２のカメラによってキャプチャされた環境の第２の画像を含む第２の画像データを受信することであって、第２のカメラは、第１の視野と少なくとも部分的に重複する第２の視野を有する、ことと、複数の点ペアを決定することであって、点ペアのうちの個々は、第１の画像中の第１の点、および第１の点に対応する第２の画像中の第２の点を含む、ことと、複数の点ペアのうちの個々の点ペアについて第１の誤差を決定することであって、第１の誤差は、少なくとも部分的に、第１の点と、第１の画像中の第２の点に対応するエピポーラ線との間の距離を含む、ことと、複数の点ペアのうちの個々の点ペアについて第２の誤差を決定することであって、第２の誤差は、少なくとも部分的に、第１の点と、第１の点の深度を推定する、対応する第２の点の再射影との間の距離を含む、ことと、第１の誤差または第２の誤差のうちの少なくとも１つに少なくとも部分的に基づいて、複数の点ペアのサブセットを決定することと、複数の点ペアのサブセットから、第１のカメラおよび第２のカメラの推定された相対的体勢、または推定されたカメラ内在性のうちの少なくとも１つを表す較正関数を決定することとを含む動作を１つまたは複数のプロセッサに実施させる、非一時的コンピュータ可読媒体。
【０１５４】
ＰＰ：複数の点ペアを決定することは、第１の画像から複数の第１の特徴を抽出することと、第２の画像から複数の第２の特徴を抽出することと、一致した特徴として、複数の第１の特徴からの第１の特徴と、複数の第２の特徴のうちの第２の特徴とを一致させることと、複数の点ペアとして、一致した特徴に関連付けられた複数のピクセルを決定することとを含み、複数の第１の特徴および複数の第２の特徴は、ＦＲＥＡＫ、ＡＫＡＺＥ、ＦＡＳＴ、ＳＵＲＦ、ＳＩＦＴ、ＯＲＢ、またはＢＲＩＥＦ特徴のうちの１つまたは複数を含む例ＯＯの非一時的コンピュータ可読媒体。
【０１５５】
ＱＱ：複数の点ペアのサブセットを決定することは、しきい値誤差以下の射影誤差を有する点ペアを決定することを含む例ＯＯまたは例ＰＰの非一時的コンピュータ可読媒体。
【０１５６】
ＲＲ：複数の点ペアのサブセットを決定することは、第１の点を含んでいる第１の画像を複数の領域に分割することと、第１の誤差または第２の誤差に少なくとも部分的に基づいて、複数の領域の点ペアのサブセットを決定することとを含み、複数の点ペアのサブセットは、複数の領域についての点ペアのサブセットを含む例ＯＯから例ＱＱのいずれか１つの非一時的コンピュータ可読媒体。
【０１５７】
ＳＳ：較正関数を決定することは、第１の点と複数の領域との間の関連付けに基づいて、複数の点ペアのうちの個々に重み係数を適用することを含む例ＯＯから例ＲＲのいずれか１つの方法。
【０１５８】
ＴＴ：複数の領域のうちの第１の領域中の第１の点は、第１の領域中の第１の点の数に基づいて第１の重みを割り当てられる例ＯＯから例ＳＳのいずれか１つの方法。
【０１５９】
結論
本明細書で説明される技法の１つまたは複数の例について説明されたが、それらの様々な改変、追加、置換および均等物は、本明細書で説明される技法の範囲内に含まれる。
【０１６０】
例の説明では、本出願の一部を形成する添付の図面への参照が行われ、これは、例として、請求される主題の特定の例を示している。他の例が使用されることが可能であること、および構造的変更などの変更または改変が行われることが可能であることを理解されたい。そのような例、変更または改変は、意図された請求される主題に関する範囲からの逸脱では必ずしもない。本明細書におけるステップはある順序で提示されることが可能であるが、いくつかの場合には、順序付けは、説明されるシステムおよび方法の機能を変更することなしに、いくつかの入力が、異なる時間においてまたは異なる順序で提供されるように、変更されることが可能である。開示される手順も、異なる順序で実行され得る。さらに、本明細書で説明される様々な計算は、開示される順序で実施される必要はなく、計算の代替的な順序付けを使用する他の例が容易に実装され得る。並べ替えられることに加えて、いくつかの事例では、計算はまた、同じ結果を伴うサブ計算に分解され得る。
【図１】
2021530049.tif 000003
【図２】
2021530049.tif 000004
【図３】
2021530049.tif 000005
【図４】
2021530049.tif 000006
【図５】
2021530049.tif 000007
【図６】
2021530049.tif 000008
【図７】
2021530049.tif 000009
【図８】
2021530049.tif 000010
【国際調査報告】
2021530049.tif 000011
2021530049.tif 000012
2021530049.tif 000013