(57)【特許請求の範囲】
【請求項１】
画像キャリブレーションのためのシステムであって、
処理デバイスと、
前記処理デバイスによって実装されるモジュールと
を備え、前記モジュールが、
画像のセットの複数の特徴を検出し、
前記画像のセットの複数の特徴を記述し、
前記画像のセットの複数の特徴の間のマッチングを判断する、
ための特徴モジュールと、
関連する複数のカメラ位置に基づいて前記マッチングした特徴でのシフトを決定し、
前記複数のカメラ位置と前記決定したシフトとの間の第１のホモグラフィを決定し、
三次元特徴の複数のカメラへの再投影に基づいて第２のホモグラフィを決定する、
ためのホモグラフィモジュールと、
を備える、システム。
【請求項２】
製造におけるキャリブレーションからのオリジナルのホモグラフィで前記画像のセットを修正するよう構成される修正機モジュールをさらに備え、前記修正は、前記特徴モジュールによる特徴の前記検出の前に実行される、請求項１に記載のシステム。
【請求項３】
画像のセットの前記画像は、それぞれが少なくとも３つのカメラを備える異なるカメラで取り込まれた複数の画像を含む、請求項１または２に記載のシステム。
【請求項４】
前記画像のセットの複数の前記画像が、異なる位置に配置される単一のカメラで取り込まれた画像を含む、請求項１または２に記載のシステム。
【請求項５】
所定の閾値を超える特徴マッチング角度に基づいて外れ値を破棄し、
所定の閾値を超える特徴マッチングサイズに基づいて外れ値を破棄する、よう構成される外れ値モジュールをさらに備える、
請求項１または２に記載のシステム。
【請求項６】
前記外れ値モジュールは、特徴のマッチングが３つ未満のカメラで生じた場合に外れ値を破棄するようさらに構成される、請求項５に記載のシステム。
【請求項７】
前記外れ値モジュールは、画像のセット同士の間の特徴座標の差を、取り込んだ各画像と関連する変位で割ったものを示す前記シフトのスケールを決定するようさらに構成される、請求項５に記載のシステム。
【請求項８】
前記検出された特徴を三次元で再構築するよう構成される再構築モジュールをさらに備え、前記第２のホモグラフィが、製造者によるキャリブレーションからのオリジナルの特徴座標と、前記三次元での再構築の１つまたは複数のカメラへの前記再投影に基づく特徴座標との間のホモグラフィである、請求項１または２に記載のシステム。
【請求項９】
前記三次元での再構築が、シーン深さを推定する、請求項８に記載のシステム。
【請求項１０】
前記モジュールが、画像を取り込む場合に、アドホックとして動作可能である、請求項１または２に記載のシステム。
【請求項１１】
画像キャリブレーションのための方法であって、
画像のセットの複数の特徴を検出するステップと、
前記画像のセットの複数の特徴を記述するステップと、
前記画像のセットの複数の特徴の間のマッチングを判断するステップと、
前記マッチングした特徴と関連する複数のカメラ位置に基づいて前記マッチングした特徴でのシフトを決定するステップと、
前記複数のカメラ位置と前記決定したシフトとの間の第１のホモグラフィを決定するステップと、
三次元特徴の複数のカメラへの再投影に基づいて第２のホモグラフィを決定するステップと、
を備える、方法。
【請求項１２】
製造におけるキャリブレーションからのオリジナルのホモグラフィで前記画像のセットを修正するステップをさらに備え、前記修正は、特徴を前記検出するステップの前に実行される、請求項１１に記載の方法。
【請求項１３】
画像のセットの前記画像は、それぞれが少なくとも３つのカメラを備える異なるカメラで取り込まれた複数の画像を含む、請求項１１または１２に記載の方法。
【請求項１４】
前記画像のセットの複数の前記画像が、異なる位置に配置される単一のカメラで取り込まれた画像を含む、請求項１１または１２に記載の方法。
【請求項１５】
所定の閾値を超える特徴マッチング角度に基づいて外れ値を破棄するステップと、
所定の閾値を超える特徴マッチングサイズに基づいて外れ値を破棄するステップと、
をさらに備える、請求項１１または１２に記載の方法。
【請求項１６】
特徴のマッチングが３つ未満のカメラで生じる外れ値を破棄するステップをさらに備える、請求項１１または１２に記載の方法。
【請求項１７】
画像のセット同士の間の特徴座標の差を、取り込んだ各画像と関連する変位で割ったものを示す前記シフトのスケールを決定するステップをさらに備える、請求項１１または１２に記載の方法。
【請求項１８】
前記検出された特徴を三次元で再構築するステップをさらに備え、前記第２のホモグラフィが、製造者によるキャリブレーションからのオリジナルの特徴座標と、前記三次元での再構築の１つまたは複数のカメラへの前記再投影に基づく特徴座標との間のホモグラフィである、請求項１１または１２に記載の方法。
【請求項１９】
前記三次元での再構築が、シーン深さを推定する、請求項１８に記載の方法。
【請求項２０】
前記方法が、画像を取り込む場合に、アドホックとして動作可能である、請求項１１または１２に記載の方法。
【請求項２１】
実行されると、処理デバイスに、請求項１１または１２に記載の前記方法を実行させる、コンピュータプログラム。
【請求項２２】
実行されると、処理デバイスに、
画像のセットの複数の特徴を検出させ、
前記画像のセットの複数の特徴を記述させ、
前記画像のセットの複数の特徴の間のマッチングを判断させ、
前記マッチングした特徴に関連する複数のカメラ位置に基づいて前記マッチングした特徴でのシフトを決定させ、
前記複数のカメラ位置と前記決定したシフトとの間の第１のホモグラフィを決定させ、
三次元特徴の複数のカメラへの再投影に基づいて第２のホモグラフィを決定させる、
コンピュータプログラム。
【請求項２３】
実行されると、さらに前記処理デバイスに、製造におけるキャリブレーションからのオリジナルのホモグラフィで前記画像のセットを修正させ、前記修正が、特徴の前記検出の前に実行される、請求項２２に記載のコンピュータプログラム。
【請求項２４】
画像のセットの前記画像は、それぞれが少なくとも３つのカメラを備える異なるカメラで取り込まれた複数の画像を含む、請求項２２または２３に記載のコンピュータプログラム。
【請求項２５】
実行されると、さらに前記処理デバイスに、
所定の閾値を超える特徴マッチング角度に基づいて外れ値を破棄させ、
所定の閾値を超える特徴マッチングサイズに基づいて外れ値を破棄させる、
請求項２２または２３に記載のコンピュータプログラム。
【請求項２６】
請求項２２から２５のいずれか一項に記載のコンピュータプログラムを格納したコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年９月５日に出願され、参照により本明細書に組み込まれる、米国仮特許出願第６２／０４６，７８８号の利益を主張し、２０１４年９月２６日に出願され、参照により本明細書に組み込まれる、米国特許出願第１４／４９８，８０１号の利益を主張する。
【０００２】
本開示は、一般に、カメラキャリブレーションに関する。より具体的には、本開示は、画像が取り込まれるときに実行されるアドホックキャリブレーション処理について説明する。
【背景技術】
【０００３】
コンピューティングデバイスは、ユーザが画像を取り込むことを可能にするために、１つまたは複数のカメラ、または他のタイプの画像取り込み装置をさらに含む。例えば、多くのスマートフォンおよびタブレット型コンピューティングデバイスは、さまざまな状況で画像を取り込むよう動作可能なカメラを含む。多くのカメラシステムは、製造中にキャリブレーションされ得る。しかし、シフト、ノイズ、および他の画質要因などのカメラシステムの許容差のために、通常の使用中に画像が取り込まれると、オンザフライまたはアドホックキャリブレーションが、日々の使用に対する消費者製品の回復機能を維持するのに役立つであろう。
【図面の簡単な説明】
【０００４】
【図１】コンピューティングデバイスで画像をキャリブレーションするためのキャリブレーションアプリケーションを有するコンピューティングデバイスのブロック図である。
【０００５】
【図２】コンピューティングデバイスで実行されるキャリブレーションを示す処理フロー図である。
【０００６】
【図３】カメラデバイスのキャリブレーションの前に、取り込まれた画像に存在する特徴を示すグラフである。
【０００７】
【図４】カメラデバイスのキャリブレーション後に、取り込まれた画像に存在する特徴を示すグラフである。
【０００８】
【図５】キャリブレーション中に生じる可能性のある位置合わせ補正を示す写真である。
【０００９】
【図６】画像取り込み装置をキャリブレーションするよう構成されるコンピュータ可読媒体の一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
本明細書で開示する発明の主題は、深度カメラシステムがコンピューティングデバイスで使用されている場合はいつでも実行されるアクティブ画像補正処理の一部として工場でのキャリブレーションデータを使用するための技術に関する。オンボードキャリブレーションは、多くの利益をもたらす。例えば、キャリブレーションは、視差が使用可能画像となるように、実際の状況に基づいて工場設定から精緻化することができる。いくつかの態様において、画像を修正するように、画像から抽出した特徴を使用して画像の位置合わせを補正することができる。いくつかの態様において、シーン深さ推定を提供し、視差に対するパラメータ選択を自動化することができる。少量のノイズと良好な照明とを有する状況では、アドホックキャリブレーションは、カメラが回転する場合の小さな変化および変化する可能性のある所与のカメラの本質的な特性に対する補正を高めることができる。
【００１１】
図１は、コンピューティングデバイスで画像をキャリブレーションするためのキャリブレーションアプリケーションを有するコンピューティングデバイスのブロック図である。コンピューティングデバイス１００は、プロセッサ１０２、非一時的コンピュータ可読媒体を含むストレージデバイス１０４、およびメモリデバイス１０６を含むことができる。コンピューティングデバイス１００は、グラフィカル・ユーザ・インターフェイス（ＧＵＩ）で画像をレンダリングするためにディスプレイデバイス１１０を動作させるよう構成されるディスプレイドライバ１０８と、マルチカメラシステム１１５の１つまたは複数のカメラデバイス１１４を動作させるよう構成されるカメラドライバ１１２とを含むことができる。
【００１２】
コンピューティングデバイス１００は、カメラデバイス１１４の１つまたは複数によって取り込まれる画像をキャリブレーションするよう構成されるキャリブレーションアプリケーション１１６のモジュールを含む。図１に示すように、本モジュールは、特徴モジュール１１８およびホモグラフィモジュール１２０を含む。いくつかの実施形態において、キャリブレーションアプリケーション１１６は、修正機モジュール１２２、外れ値モジュール１２４、および再構築モジュール１２６を含む。モジュール１１８、１２０、１２２、１２４、および１２６は、ロジックであり、少なくとも部分的にハードウェアロジックを備えることができる。いくつかの例において、モジュール１１８、１２０、１２２、１２４、および１２６は、プロセッサ１０２などの処理デバイスによって実行されるよう構成されるストレージ媒体に格納される命令とすることができる。さらに他の例において、モジュール１１８、１２０、１２２、１２４、および１２６は、ハードウェア、ソフトウェア、およびファームウェアの組み合わせとすることができる。モジュール１１８、１２０、１２２、１２４、および１２６は、独立して、並列に、分散して、またはより広範囲の処理の一部として、動作するよう構成することができる。モジュール１２０、１２２、および１２４は、親モジュールとは別個のモジュールまたは親モジュールのサブモジュールとみなしてもよい。追加モジュールを含むこともできる。いずれの場合においても、モジュール１１８、１２０、１２２、１２４、および１２６は、動作を実行するよう構成される。
【００１３】
特徴モジュール１１８は、画像のセットでの複数の特徴を検出するよう構成される。画像のセットは、異なるカメラデバイス１１４から取り込まれた少なくとも２つの画像とすることができる。実施形態において、画像のセットは、少なくとも３つの異なるカメラデバイス１１４から取り込まれた少なくとも３つの画像としてもよい。特徴モジュール１１８は、特徴検出アルゴリズムを使用して特徴を検出することができる。例えば、特徴モジュール１１８は、Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  Ａｃｃｅｌｅｒａｔｅｄ  Ｓｅｇｍｅｎｔ  Ｔｅｓｔ（ＦＡＳＴ）方法などの、コーナー検出方法を実施することができる。特徴モジュール１１８はまた、画像のセットでの複数の特徴を記述するよう構成される。１つの特徴は、各画像の情報の１つの項目である。各特徴の記述は、Ｆａｓｔ  Ｒｅｔｉｎａ  Ｋｅｙｐｏｉｎｔ（ＦＲＥＡＫ）方法などの特徴記述方法を使用して実施することができる。複数の特徴が検出され、記述されると、取り込まれた画像のすべて、すなわち、画像のセットに共通の特徴同士がマッチングされる。実施形態において、マッチングは、総当たりマッチングおよび単純な制約を使用して実行される。
【００１４】
ホモグラフィモジュール１２０は、画像のセット内の画像を取り込むために使用される各カメラのカメラ位置に基づいてマッチングした特徴に関連したシフトを決定するよう構成される。射影幾何では、ホモグラフィは、射影空間が導出される元であるベクトル空間の同型写像によって誘導される射影空間の同型写像とすることができる。ホモグラフィモジュール１２０は、カメラ位置と決定されたシフトとの間の第１のホモグラフィを決定することができる。ホモグラフィモジュール１２０はまた、三次元（３Ｄ）特徴をカメラデバイス１１４に再投影することに基づいて、第２のホモグラフィを決定することができる。
【００１５】
いくつかの実施形態において、キャリブレーションアプリケーション１１６は、修正機モジュール１２２を含む。修正機モジュール１２２は、工場でのキャリブレーションデータを使用するよう構成される。例えば、修正機モジュール１２２は、製造者が提供するオリジナルのホモグラフィで画像のセットを修正することができる。オリジナルのホモグラフィは、ストレージデバイス１０４に格納することができる。キャリブレーションの結果を向上するために特徴モジュール１１８の特徴検出の前に修正を行ってもよい。
【００１６】
いくつかの実施形態において、キャリブレーションアプリケーション１１６は、外れ値モジュール１２４をさらに含む。外れ値モジュール１２４は、所定の閾値を超える特徴マッチング角度に基づいて、外れ値を破棄するよう構成される。外れ値モジュール１２４は、所定の閾値を超える特徴マッチングサイズに基づいて、外れ値を破棄してもよい。画像のセットを取り込むために少なくとも３つのカメラデバイス１１４が使用される場合、外れ値モジュール１２４は、カメラデバイス１１４の少なくとも３つからの画像で発生しない特徴のマッチングを破棄するよう構成される。外れ値モジュール１２４はまた、画像のセット同士の間の特徴座標の差を、取得した取り込まれた各画像と関連する変位で割ったものを示すシフトのスケールを決定するようさらに構成することができる。上記、および／または以下のモジュールは、単一のアプリケーションとして実現することができ、２つ以上のモジュールを、任意の所与の動作を実行するために組み合わせることができることに注意することが重要であろう。
【００１７】
いくつかの実施形態において、キャリブレーションアプリケーション１１６は、再構築モジュール１２６を含む。再構築モジュール１２６は、検出された特徴を３Ｄで再構築するよう構成することができ、第２のホモグラフィが、製造者によるキャリブレーションからのオリジナルの特徴座標と、１つまたは複数のカメラへの３Ｄ再構築の再投影に基づく特徴座標との間のホモグラフィである。場合によっては、３Ｄ再構築は、シーン深さを推定する。
【００１８】
上記したキャリブレーションは、本明細書では、アドホックキャリブレーションまたはオンザフライキャリブレーションと称することができる。これは、単に製造者によって行われるキャリブレーションに頼るのではなく、画像がコンピューティングデバイス１００で取り込まれる場合のキャリブレーションの実施を指す。
【００１９】
実施形態において、コンピューティングデバイス１００は、ネットワーク１３２を介して遠隔コンピューティングデバイス１３０にコンピューティングデバイス１００を接続するよう構成されるネットワークインターフェイス制御器１２８コンポーネントを含む。場合によっては、ネットワークインターフェイス制御器１２８は、システムバス１３４に通信可能に結合するよう構成される拡張カードである。他の場合において、ネットワークインターフェイス制御器１２８は、コンピューティングデバイス１００などのコンピューティングデバイスのマザーボードと一体化させることができる。実施形態において、キャリブレーションアプリケーション１１６を、遠隔コンピューティングデバイス１３０の１つなどの、遠隔コンピューティングデバイスで、実行および／または格納することができる。例えば、取り込まれた画像を、キャリブレーションアプリケーション１１６と同様のキャリブレーションアプリケーションを有するサーバなどの、遠隔コンピューティングデバイス１３０に送信することができる。キャリブレーションは、ネットワーク１３２を介して遠隔コンピューティングデバイス１３０の１つまたは複数からコンピューティングデバイス１００に行われてもよい。
【００２０】
コンピューティングデバイス１００は、本明細書で言及する場合、処理デバイス、ストレージデバイス、および表示デバイスなどのコンポーネントが単一のハウジング内に配置されるモバイルコンピューティングデバイスとすることができる。例えば、コンピューティングデバイス１００は、タブレットコンピュータ、スマートフォン、ハンドヘルド・ビデオゲーム・システム、携帯電話、オールインワンのスレート・コンピューティング・デバイス、またはコンピューティングデバイスのハウジングが、ディスプレイ、ならびにストレージコンポーネントおよび処理コンポーネントなどのコンポーネントを収容するオールインワン機能を有する他の任意のコンピューティングデバイスとすることができる。
【００２１】
プロセッサ１０２は、格納された命令を実行するよう適合されたメインプロセッサとすることができる。プロセッサ１０２は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成とすることができる。プロセッサ１０２は、複合命令セットコンピュータ（ＣＩＳＣ）または縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコア、または他の任意のマイクロプロセッサ、または中央処理装置（ＣＰＵ）として実現することができる。
【００２２】
メモリデバイス１０６は、ランダム・アクセス・メモリ（ＲＡＭ）（例えば、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、ゼロキャパシタＲＡＭ、シリコン−酸化物−窒化物−酸化物−シリコンＳＯＮＯＳ、混載ＤＲＡＭ、拡張データ出力ＲＡＭ、ダブル・データ・レート（ＤＤＲ）ＲＡＭ、抵抗ランダム・アクセス・メモリ（ＲＲＡＭ（登録商標））、パラメータ・ランダム・アクセス・メモリ（ＰＲＡＭ）など）、リード・オンリ・メモリ（ＲＯＭ）（例えば、マスクＲＯＭ、プログラマブル・リード・オンリ・メモリ（ＰＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル・リード・オンリ・メモリ（ＥＥＰＲＯＭ）など）、フラッシュメモリ、または任意の他の適切なメモリシステムを含むことができる。メインプロセッサ１０２は、メモリ１０６およびストレージデバイス１０４を含むコンポーネントに、システムバス１３４（例えば、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）、ＰＣＩエキスプレス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（登録商標）、ＮｕＢｕｓなど）を介して接続することができる。
【００２３】
カメラドライバ１１２は、視覚情報、すなわち、言い換えると、カメラデバイス１１４をキャリブレーションするために使用される画像のセットの画像を取り込むよう、１つまたは複数のカメラデバイス１１４に指示するよう構成される。製造後のキャリブレーションを提供することによって、キャリブレーションは実世界画像を利用してキャリブレーションを強化することができる。いくつかの例において、キャリブレーションは、製造中に既に実行されたキャリブレーションデータを強化する。しかし、キャリブレーションはまた、製造者によるキャリブレーションデータを参照することなく実行してもよい。カメラデバイス１１４は、リアルタイムビデオまたは静止画像を取り込むよう構成された複数のビデオカメラとしてもよい。いくつかの実施形態において、キャリブレーションは、単一のカメラデバイス１１４に対して使用してもよく、キャリブレーションは、異なる位置で取り込まれた画像に対して実行される。いくつかの態様において、コンピューティングデバイス１００は、コンピューティングデバイス１００と１つまたは複数の物理的表面との間の距離を判断するよう構成される、カメラデバイス１１４の追加コンポーネントまたは一体型コンポーネントとしての、深度感知カメラを含む。
【００２４】
図１のブロック図は、コンピューティングデバイス１００が図１に示したすべてのコンポーネントを含むべきであることを示すことは意図していない。さらに、コンピューティングデバイス１００は、特定の実装態様の詳細に応じて、図１に示していない任意の数の追加コンポーネントを含むことができる。
【００２５】
図２は、コンピューティングデバイスで実行されるキャリブレーションを示す処理フロー図である。２０２において、画像のセットは、オリジナルのホモグラフィ「Ｈ」で修正される。上記のように、オリジナルのホモグラフィは、製造中に実行されるキャリブレーションによってもたらされるデータとすることができる。オリジナルのホモグラフィデータは、図１のコンピューティングデバイス１００などの、コンピューティングデバイスに格納することができる。２０４において、特徴検出が実行され、２０６において、特徴記述が実行される。上記のように、２０４における特徴検出は、ＦＡＳＴを使用して実行することができ、特徴記述は、ＦＲＥＡＫを使用して実行することができる。２０８において、画像のセットの２つ以上の画像で生じる特徴同士がマッチングされる。２１０において、閾値と一致するか、または超過する特徴として、外れ値が識別される。図１に関して上記したように、閾値は、サイズおよび角度などをもとにすることができる。図２には示していないが、外れ値はまた、所定の特徴が少なくとも３つのカメラで生じるか否かに基づいて識別してもよい。マッチングされた特徴が閾値を超える場合、それらの特徴は、外れ値として識別され、２１２において破棄される。２１０において閾値を超過しないマッチングされた特徴は、２１４においてカメラデバイスをキャリブレーションするために使用されるべきシフトを決定するために使用される。シフトは、カメラ位置、または互いからの相対的な変位に基づくことができる。カメラデバイスの現在位置と２１４において決定されたシフトとの間のホモグラフィは、２１６において生成される。いくつかの場合において、ホモグラフィは、ランダム・サンプル・コンセンサス（ＲＡＮＳＡＣ）などの反復方法に基づいて生成される。特徴は、２１８において３Ｄで再構築することができ、現在位置と、３Ｄ特徴のカメラデバイスへの再投影に基づく最適位置との間の別のホモグラフィが発見される。
【００２６】
いくつかの実施形態において、本特徴は、基準カメラと他のカメラとの間でマッチングされる。すべての対応する特徴セットで、シフトのスケールが決定される。シフトのスケールは、カメラと基準カメラとの間の特徴の座標の差を、２つのカメラの距離で割ったものとすることができる。ある特徴を利用可能とするためには、その特徴は、少なくとも３つのカメラでマッチングする必要があるであろう。言い換えると、それらのシフトのスケールは、すべてのカメラ１１４でマッチングする必要があるであろう。この場合、平均スケールを決定することができ、理想座標は、基準カメラでの特徴の座標に、基準カメラから他のカメラへの方向を加えたものとして、非基準カメラにマークすることができる。したがって、平均スケール、すなわちこれらの理想座標と現在座標との間の差、または言い換えると、誤差を、以下の図３で示すグラフなどのグラフにプロットすることができる。
【００２７】
発見された第１のホモグラフィは、ＲＡＮＳＡＣが各カメラで個別に実行されるような、すべてのカメラにおいて、ＲＡＮＳＡＣを使用して外れ値を破棄することで、発見された第一のホモグラフィはすべての特徴に対して現在座標と理想座標との間にある。基準カメラがアラインメントされていない場合などには、アラインメント自体が修正されるので、時差の共通コンポーネントが除去されることに留意することが重要であろう。
【００２８】
新しく発見されたホモグラフィは、すべてのカメラで検出された特徴に適用される。これにより、推定修正されたカメラマトリクスをもたらすことができる。特徴は、３Ｄで再構築され、３Ｄ再構築誤差からもたらされる誤差を破棄することができる。３Ｄで再構築された特徴は、カメラに再投影され、ホモグラフィが、それらの現在座標と、再投影から得られた座標との間で決定される。この場合も、ＲＡＮＳＡＣはカメラマトリクスを改善し、一度にすべてのカメラで動作するので、ＲＡＮＳＡＣを用いて行うことができる。ホモグラフィ修正マトリクスＨ２は、オリジナルの特徴座標と３Ｄ再構築のカメラへの再投影に基づく特徴座標との間のホモグラフィとして決定される。図４に関して以下で説明する、緑色ドットのセンターグラフは、Ｈ２が適用された場合に対応関係がどのように変化したかを示す。
【００２９】
アドホック、オンザフライ、キャリブレーションの出力は、シーン深さを推定する３Ｄ再構築特徴、およびホモグラフィ修正マトリクスＨ２を含むことができる。Ｈ２ホモグラフィ修正マトリクスは、以下で説明する式に基づいて導出することができる。例えば、修正されたカメラマトリクスは、ＫＰとすることができ、式１に示す。
ＫＰ＝Ｈ×Ｋ×Ｒ    式１
【００３０】
しかし、キャリブレーションが経時的に変化する場合、もはやＫおよびＲを有さないが、わずかに修正されたＫＯおよびＰＯを有する。そのため、再びＫＰを得るために、新しいホモグラフィマトリクスＨＯを、式２に示すように、新しいＫＰを得るために生成する必要がある可能性がある。
ＫＰ＝ＨＯ×ＫＯ×ＲＯ    式２
【００３１】
しかし、ＨＯは、分からない可能性がある。画像のセットからの画像が、オリジナルＨで修正された場合、式３によって示されるように、未知のマトリクスＫＰＯに対する画像が生成される。
ＫＰＯ＝Ｈ×ＫＯ×ＲＯ    式３
【００３２】
ＫＰＯとＫＰとの間の差は、式４で示すようにＨ２をもたらすことができる特徴の位置合わせに基づいて観測可能である。
ＫＰ〜Ｈ２×Ｈ×ＫＯ×ＲＯ    式４
【００３３】
これは近似である可能性がある。結果的に、ＫＰは、式５で示される。
ＫＰ＝Ｈ×Ｋ×Ｒ〜Ｈ２×Ｈ×ＫＯ×ＲＯ    式５
【００３４】
式５において、ＫＯおよびＲＯは、未知のマトリクスである。しかし、これらは、Ｈ２を決定するために必ずしも必要ではなく、オリジナルＫは、一定のままであると仮定されてもよい。
【００３５】
図３は、カメラデバイスのキャリブレーションの前に、取り込まれた画像に存在する特徴を示すグラフである。図３では、カメラは、画像を取り込むために使用された。理想は、３０２で示される。理想ドット３０２は、マルチカメラシステム１１５がキャリブレーションされた場合のベクトルの位置である。外れ値が、ドット３０４として示され、対応する誤差を示す。
【００３６】
図４は、カメラデバイスのキャリブレーション後に、取り込まれた画像に存在する特徴を示すグラフである。図３と同様に、理想ドット３０２が示されるが、図３とは対照的に、外れ値４０４は、理想ドット３０２に非常に近い。図３および図４を参照すると、キャリブレーションにより、対応関係の改善をもたらすことができる。
【００３７】
図５は、キャリブレーション中に生じる可能性のある位置合わせ補正を示す写真である。５０２では、カメラは、適切に位置合わせされておらず、一方、５０４では、カメラは、適切に位置合わせされている。
【００３８】
図６は、画像取り込み装置をキャリブレーションするよう構成されるコンピュータ可読媒体の一例を示すブロック図である。コンピュータ可読媒体６００は、コンピュータバス６０４を介してプロセッサ６０２によりアクセスされることができる。いくつかの例において、コンピュータ可読媒体６００は、非一時的コンピュータ可読媒体とすることができる。いくつかの例において、コンピュータ可読媒体は、ストレージ媒体とすることができるが、搬送波および信号などを含まない。さらに、コンピュータ可読媒体６００は、プロセッサ６０２に現在の方法のステップを実行するよう指示するためのコンピュータ実行可能命令を含むことができる。
【００３９】
本明細書で説明するさまざまなソフトウェアコンポーネントは、図６に示すような、有形の、非一時的、コンピュータ可読媒体６００に格納することができる。例えば、キャリブレーションアプリケーション６０６は、画像のセットの複数の特徴を検出し、画像のセットの複数の特徴を記述し、画像のセットの複数の特徴の間のマッチングを判断し、関連するカメラ位置に基づいてマッチングした特徴でシフトを決定し、カメラ位置と決定されたシフトとの間の第１のホモグラフィを決定し、三次元特徴のカメラへの再投影に基づいて第２のホモグラフィを決定するよう構成することができる。
【００４０】
例示には、方法、本方法の動作を実行するための手段、機械によって実行された場合に、本方法の、または本明細書で説明する実施形態および例に従って仮想画像を投影する装置もしくはシステムの動作を機械に実行させる命令を含む少なくとも１つの機械可読媒体などの発明の主題を含むことができる。
【００４１】
実施例１は、画像キャリブレーションのためのシステムを含む。本システムは、処理デバイス、および処理デバイスによって実施されるモジュールを含む。モジュールは、特徴モジュールおよびホモグラフィモジュールを含む。
【００４２】
特徴モジュールは、画像のセットの特徴を検出し、画像のセットにおける特徴を記述する。特徴モジュールはまた、画像のセットの複数の特徴の間のマッチングを判断するよう構成することができる。
【００４３】
ホモグラフィモジュールは、カメラ位置に基づいて、マッチングした特徴でのシフトを決定するよう構成される。ホモグラフィモジュールは、カメラ位置と決定されたシフトとの間の第１のホモグラフィを決定するようさらに構成される。ホモグラフィモジュールは、三次元特徴のカメラへの再投影に基づいて、第２のホモグラフィを決定するようさらに構成される。
【００４４】
実施例２は、画像キャリブレーションのための方法を含む。本方法は、画像のセットの複数の特徴を検出するステップと、画像のセットの複数の特徴を記述するステップと、画像のセットの複数の特徴の間のマッチングを判断するステップと、マッチングした特徴と関連したカメラ位置に基づいてマッチングした特徴でのシフトを決定するステップとを含む。
【００４５】
実施例２の方法はまた、カメラ位置と決定されたシフトとの間の第１のホモグラフィを決定するステップを含むことができる。本方法は、三次元特徴のカメラへの再投影に基づいて、第２のホモグラフィを決定するステップをさらに含むことができる。
【００４６】
場合によっては、実施例２の方法は、キャリブレーションのための適切な手段によって実行してもよい。場合によっては、本手段は、実施例２の方法を実行するよう構成されるコンピュータ可読媒体を含む。
【００４７】
実施例３は、画像キャリブレーションのための装置を含む。本装置は、画像のセットの複数の特徴を検出し、画像のセットの複数の特徴を記述し、画像のセットの複数の特徴の間のマッチングを判断し、マッチングした特徴と関連したカメラ位置に基づいてマッチングした特徴でのシフトを決定するための手段を含むことができる。
【００４８】
実施例３の装置はまた、カメラ位置と決定されたシフトとの間の第１のホモグラフィを決定する手段を含むことができる。本手段はまた、三次元特徴をカメラに再投影することに基づいて、第２のホモグラフィを決定するよう構成することができる。
【００４９】
実施例４は、処理デバイスによって実行される場合に処理デバイスに画像のセットの複数の特徴を検出させるコードを有するコンピュータ可読媒体を含む。本コードはまた、処理デバイスに、画像のセットの複数の特徴を記述させ、画像のセットの複数の特徴の間のマッチングを判断させ、マッチングした特徴と関連したカメラ位置に基づいてマッチングした特徴でのシフトを決定させることができる。本コードはさらに、処理デバイスに、カメラ位置と、決定したシフトとの間の第１のホモグラフィを決定させ、三次元特徴をカメラに再投影することに基づいて第２のホモグラフィを決定させることができる。
【００５０】
実施例５は、ロジックを有する画像キャリブレーションのための装置を含む。本ロジックは、ハードウェアロジックを少なくとも部分的に含んでいてもよい。本ロジックは、画像のセットの複数の特徴を検出するステップと、画像のセットの複数の特徴を記述するステップと、画像のセットの複数の特徴の間のマッチングを判断するステップと、マッチングした特徴と関連したカメラ位置に基づいてマッチングした特徴でのシフトを決定するステップとを含む方法を実行するよう構成することができる。
【００５１】
実施例５の装置はまた、カメラ位置と決定されたシフトとの間の第１のホモグラフィを決定するロジックを含むことができる。本ロジックはまた、三次元特徴をカメラに再投影することに基づいて、第２のホモグラフィを決定するよう構成することができる。
【００５２】
実施形態は、実装態様または実施例である。「一実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「１つの実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「いくつかの実施形態」、「さまざまな実施形態」、または「他の実施形態」への明細書における参照は、その実施形態に関連して説明された特定の特徴、構造、または特性が、本技術の少なくともいくつかの実施形態に含まれるが、必ずしもすべての実施形態には含まれないことを意味する。「一実施形態」、「１つの実施形態」、または「いくつかの実施形態」がさまざまなところで記載されていても、必ずしもすべてが同じ実施形態を参照しているわけではない。
【００５３】
本明細書に記載され図示されたすべての構成要素、特徴、構造、特性などは、必ず特定の１つまたは複数の実施形態に含まれる必要はない。本明細書で、構成要素、特徴、構造、または特性を含む「可能性がある（ｍａｙ）」、「かもしれない（ｍｉｇｈｔ）」、「ことができる（ｃａｎ）」、または「であろう（ｃｏｕｌｄ）」と例えば記載された場合、その特定の構成要素、特徴、構造、または特性が必ずしも含まれる必要はない。本明細書または特許請求の範囲が単数形の表現（ａまたはａｎ）」を付した要素に言及する場合、その要素がただ１つであるということを意味しない。本明細書または特許明細の範囲が「追加」要素に言及する場合、その追加要素が２つ以上ある可能性を除外しない。
【００５４】
いくつかの実施形態が特定の実装態様を参照して記述されてきたが、いくつかの実施形態によれば、他の実装態様も可能であることに留意されたい。さらに、図面に示され、および／または本明細書に記載されている、回路要素または他の特徴の配置および／または順序は、図示され記載された特定の方法に配置される必要はない。他の多くの配置が、いくつかの実施形態により可能である。
【００５５】
図面に示す各システムにおいて、いくつかの場合における要素は、それぞれ、示された要素が異なる、および／または同じであることを示すために、同じ参照符号または異なる参照符号を有する。しかし、要素は、異なる実装態様を有し、本明細書に示し、または記載したシステムのいくつかまたはすべてと共に動作するのに、充分な柔軟性を有することができる。図面に示すさまざまな要素は、同じでも、異なっていてもよい。どの要素が第１の要素と呼ばれ、どの要素が第２の要素と呼ばれるかは、任意である。
【００５６】
上述の例における詳細は、１つまたは複数の実施形態のどこでも使用できることが理解されよう。例えば、上述したコンピューティングデバイスのすべての任意選択の機能はまた、本明細書に記載の方法またはコンピュータ可読媒体のいずれかに関して実装することもできる。さらに、本明細書では、実施形態を説明するためにフロー図および／または状態図を使用したかもしれないが、本技術は、それらの図または本明細書の対応する記述に限定されるものではない。例えば、フローは、図示された各ボックス、または状態、または本明細書で図示されて記述されたのと全く同じ順序で進める必要はない。
【００５７】
本技術は、本明細書に記載した特定の詳細に限定されない。実際、本開示の利益を受ける当業者は、前述の記述および図面からの多くの他の変形が本技術の範囲内でなされ得ることを理解するであろう。したがって、本技術の範囲を定義するものは、添付の特許請求の範囲であって、添付の特許請求の範囲に対する任意の修正を含む。
（項目１）
画像キャリブレーションのためのシステムであって、
処理デバイスと、
上記処理デバイスによって実装されるモジュールと
を備え、上記モジュールが、
画像のセットの複数の特徴を検出し、
上記画像のセットの複数の特徴を記述し、
上記画像のセットの複数の特徴の間のマッチングを判断する、
ための特徴モジュールと、
関連するカメラ位置に基づいて上記マッチングした特徴でのシフトを決定し、
上記カメラ位置と上記決定したシフトとの間の第１のホモグラフィを決定し、
三次元特徴の上記カメラへの再投影に基づいて第２のホモグラフィを決定する、
ためのホモグラフィモジュールと、
を備える、システム。
（項目２）
製造におけるキャリブレーションからのオリジナルのホモグラフィで上記画像のセットを修正するよう構成される修正機モジュールをさらに備え、上記修正は、上記特徴モジュールによる特徴の上記検出の前に実行される、項目１に記載のシステム。
（項目３）
画像のセットの上記画像は、それぞれが少なくとも３つのカメラを備える異なるカメラで取り込まれた複数の画像を含む、項目１から２の任意の組み合わせに記載のシステム。
（項目４）
上記画像のセットの複数の上記画像が、異なる位置に配置される単一のカメラで取り込まれた画像を含む、項目１から２の任意の組み合わせに記載のシステム。
（項目５）
所定の閾値を超える特徴マッチング角度に基づいて外れ値を破棄し、
所定の閾値を超える特徴マッチングサイズに基づいて外れ値を破棄する、よう構成される外れ値モジュールをさらに備える、
項目１から２の任意の組み合わせに記載のシステム。
（項目６）
上記外れ値モジュールは、特徴のマッチングが３つ未満のカメラで生じた場合に外れ値を破棄するようさらに構成される、項目５に記載のシステム。
（項目７）
上記外れ値モジュールは、画像のセット同士の間の特徴座標の差を、取り込んだ各画像と関連する変位で割ったものを示す上記シフトのスケールを決定するようさらに構成される、項目５に記載のシステム。
（項目８）
上記検出された特徴を三次元で再構築するよう構成される再構築モジュールをさらに備え、上記第２のホモグラフィが、製造者によるキャリブレーションからのオリジナルの特徴座標と、上記三次元での再構築の１つまたは複数のカメラへの上記再投影に基づく特徴座標との間のホモグラフィである、項目１から２の任意の組み合わせに記載のシステム。
（項目９）
上記三次元での再構築が、シーン深さを推定する、項目８に記載のシステム。
（項目１０）
上記モジュールが、画像を取り込む場合に、アドホックとして動作可能である、項目１から２の任意の組み合わせに記載のシステム。
（項目１１）
画像キャリブレーションのための方法であって、
画像のセットの複数の特徴を検出するステップと、
上記画像のセットの複数の特徴を記述するステップと、
上記画像のセットの複数の特徴の間のマッチングを判断するステップと、
上記マッチングした特徴と関連するカメラ位置に基づいて上記マッチングした特徴でのシフトを決定するステップと、
上記カメラ位置と上記決定したシフトとの間の第１のホモグラフィを決定するステップと、
三次元特徴の上記カメラへの再投影に基づいて第２のホモグラフィを決定するステップと、
を備える、方法。
（項目１２）
製造におけるキャリブレーションからのオリジナルのホモグラフィで上記画像のセットを修正するステップをさらに備え、上記修正は、上記特徴モジュールの特徴を上記検出するステップの前に実行される、項目１１に記載の方法。
（項目１３）
画像のセットの上記画像は、それぞれが少なくとも３つのカメラを備える異なるカメラで取り込まれた複数の画像を含む、項目１１から１２の任意の組み合わせに記載の方法。
（項目１４）
上記画像のセットの複数の上記画像が、異なる位置に配置される単一のカメラで取り込まれた画像を含む、項目１１から１２の任意の組み合わせに記載の方法。
（項目１５）
所定の閾値を超える特徴マッチング角度に基づいて外れ値を破棄するステップと、
所定の閾値を超える特徴マッチングサイズに基づいて外れ値を破棄するステップと、
をさらに備える、項目１１から１２の任意の組み合わせに記載の方法。
（項目１６）
特徴のマッチングが３つ未満のカメラで生じる外れ値を破棄するステップをさらに備える、項目１１から１２の任意の組み合わせに記載の方法。
（項目１７）
画像のセット同士の間の特徴座標の差を、取り込んだ各画像と関連する変位で割ったものを示す上記シフトのスケールを決定するステップをさらに備える、項目１１から１２の任意の組み合わせに記載の方法。
（項目１８）
上記検出された特徴を三次元で再構築するステップをさらに備え、上記第２のホモグラフィが、製造者によるキャリブレーションからのオリジナルの特徴座標と、上記三次元での再構築の１つまたは複数のカメラへの上記再投影に基づく特徴座標との間のホモグラフィである、項目１１から１２の任意の組み合わせに記載の方法。
（項目１９）
上記三次元での再構築が、シーン深さを推定する、項目１８に記載の方法。
（項目２０）
上記方法が、画像を取り込む場合に、アドホックとして動作可能である、項目１１から１２の任意の組み合わせに記載の方法。
（項目２１）
実行されると、処理デバイスに、項目１１から１２の任意の組み合わせに記載の上記方法を実行させるためのコードを含む、コンピュータ可読媒体。
（項目２２）
実行されると、処理デバイスに、
画像のセットの複数の特徴を検出させ、
上記画像のセットの複数の特徴を記述させ、
上記画像のセットの複数の特徴の間のマッチングを判断させ、
上記マッチングした特徴に関連するカメラ位置に基づいて上記マッチングした特徴でのシフトを決定させ、
上記カメラ位置と上記決定したシフトとの間の第１のホモグラフィを決定させ、
三次元特徴の上記カメラへの再投影に基づいて第２のホモグラフィを決定させる、
ためのコードを含む、コンピュータ可読媒体。
（項目２３）
実行されると、上記処理デバイスに、製造におけるキャリブレーションからのオリジナルのホモグラフィで上記画像のセットを修正させるためのコードをさらに備え、上記修正が、上記特徴モジュールの特徴の上記検出の前に実行される、項目２２に記載のコンピュータ可読媒体。
（項目２４）
画像のセットの上記画像は、それぞれが少なくとも３つのカメラを備える異なるカメラで取り込まれた複数の画像を含む、項目２２から２３の任意の組み合わせに記載のコンピュータ可読媒体。
（項目２５）
実行されると、上記処理デバイスに、
所定の閾値を超える特徴マッチング角度に基づいて外れ値を破棄させ、
所定の閾値を超える特徴マッチングサイズに基づいて外れ値を破棄させる、
ためのコードをさらに備える、項目２２から２３の任意の組み合わせに記載のコンピュータ可読媒体。
【図１】
0006391130.tif 000002
【図２】
0006391130.tif 000003
【図３】
0006391130.tif 000004
【図４】
0006391130.tif 000005
【図５】
0006391130.tif 000006
【図６】
0006391130.tif 000007