(57)【特許請求の範囲】
【請求項１】
立体視撮像デバイスを較正する方法であって、
第１の撮像センサーにより、インタレストのシーンの第１の画像をキャプチャすることと、
第２の撮像センサーにより、前記インタレストのシーンの第２の画像をキャプチャすることであって、前記第１の画像および第２の画像は立体視画像の対を備えることと、
キーポイントコンステレーションを形成するキーポイントマッチスの組を前記第１の画像および前記第２の画像に基づいて決定することと、
キーポイント座標におけるランダムノイズに対する前記立体視画像の対に関する不整合推定量の感度に基づいてキーポイントコンステレーション品質レベルを決定するために、前記キーポイントコンステレーションの品質を評価することと、
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定することであって、前記しきい値を上回る場合、前記キーポイントコンステレーションに基づいて較正データを生成し、前記較正データを不揮発性記憶デバイスに記憶することとを備える、方法。
【請求項２】
前記キーポイントコンステレーションに基づいて較正データを生成することは、
キーポイントマッチスの前記組内の１つまたは複数のキーポイントマッチスにおけるキーポイント間の１つまたは複数の垂直視差ベクトルを決定することと、
前記１つまたは複数の垂直視差ベクトルに基づいて垂直視差メトリックを決定することと、
前記垂直視差メトリックをしきい値と比較することと、
前記垂直視差メトリックが前記しきい値を上回る場合、キーポイントマッチスの前記組に少なくとも部分的に基づいてキーポイントマッチス調整を決定することと
を備える、請求項１に記載の方法。
【請求項３】
キーポイントマッチス調整を決定することは、
キーポイントマッチスの前記組に基づいてアフィンフィットを決定することと、
キーポイントマッチスの前記組に基づいて射影フィット(a projective fit)を決定することと、
前記アフィンフィットおよび前記射影フィット(the projective fit)に基づいて射影行列を生成することと、
前記射影行列に基づいてキーポイントマッチスの前記組を調整することと
を備える、請求項２に記載の方法。
【請求項４】
前記較正データは、前記射影行列を含む、請求項３に記載の方法。
【請求項５】
キーポイントマッチスの前記組に基づいてアフィンフィットを決定することは、ロール推定量、ピッチ推定量、およびスケール推定量を決定する、請求項３に記載の方法。
【請求項６】
前記射影フィットを決定することは、ヨー推定量を決定する、請求項３に記載の方法。
【請求項７】
キーポイントマッチスの前記調整された組に基づいて前記立体視画像の対を調整することをさらに備える、請求項３に記載の方法。
【請求項８】
キーポイントマッチスの前記調整された組に基づいて新しい垂直視差ベクトルを決定することと、前記新しい垂直視差ベクトルがしきい値を上回る視差を示す場合に、キーポイントマッチスの前記組をさらに調整することとをさらに備える、請求項３に記載の方法。
【請求項９】
キーポイントマッチスの前記組を調整すること、および新しい垂直視差ベクトルを決定することは、前記新しい垂直視差ベクトルがしきい値未満の視差を示すまで、反復的に実行される、請求項８に記載の方法。
【請求項１０】
しきい値を上回る加速度計の出力に応答して実行される、請求項１に記載の方法。
【請求項１１】
オートフォーカスイベントに応答して実行される、請求項１に記載の方法。
【請求項１２】
前記キーポイントコンステレーションの品質を評価することは、キーポイント間の距離を決定することを含む、請求項１に記載の方法。
【請求項１３】
前記キーポイントコンステレーションの品質を評価することは、各キーポイントの画像コーナーまでの距離を決定することを備える、請求項１に記載の方法。
【請求項１４】
前記キーポイントコンステレーションの品質を評価することは、キーポイントマッチスの数を決定することを備える、請求項１に記載の方法。
【請求項１５】
キーポイントマッチスの前記組から１つまたは複数のキーポイントマッチスを除去するために各キーポイントマッチスの位置に基づいてキーポイントマッチスの前記組をプルーニングすることをさらに備える、請求項１に記載の方法。
【請求項１６】
第１の撮像センサーと、
第２の撮像センサーと、
前記第１の撮像センサーからの第１の立体視画像の対の第１の画像をキャプチャし、前記第２の撮像センサーからの前記第１の立体視画像の対の第２の画像をキャプチャするように構成されたセンサー制御モジュールと、
前記第１の画像と前記第２の画像との間のキーポイントマッチスの組を決定するように構成されたキーポイントモジュールであって、キーポイントマッチスの前記組はキーポイントコンステレーションを形成する、キーポイントモジュールと、
キーポイント座標におけるランダムノイズに対する前記立体視画像の対に関する不整合推定量の感度に基づいてキーポイントコンステレーション品質レベルを決定するためにキーポイントマッチスの前記組の品質を評価するように構成されたキーポイント品質モジュールと、
前記キーポイントコンステレーション品質レベルを所定のしきい値と比較し、前記キーポイントコンステレーション品質レベルが前記所定のしきい値を上回る場合、前記キーポイントコンステレーションに基づいて前記立体視画像の対を調整するように構成されたマスター制御モジュールとを備える、撮像装置。
【請求項１７】
前記キーポイント品質モジュールは、前記第１の画像および前記第２の画像内の前記キーポイントコンステレーションにおけるキーポイントマッチスの位置に少なくとも部分的に基づいて、前記キーポイントコンステレーション品質レベルを決定する、請求項１６に記載の撮像装置。
【請求項１８】
前記キーポイント品質モジュールは、前記キーポイントコンステレーションに基づいて生成された角度推定量の変化と前記キーポイントコンステレーションに基づくノイズの多いキーポイントコンステレーションとに少なくとも部分的に基づいて、前記キーポイントコンステレーション品質レベルを決定する、請求項１６に記載の撮像装置。
【請求項１９】
前記マスター制御モジュールは、しきい値を上回る加速度計の出力に応答して、前記キーポイントコンステレーション品質レベルを所定のしきい値と比較するように構成される、請求項１６に記載の撮像装置。
【請求項２０】
前記マスター制御モジュールは、オートフォーカスイベントに応答して、前記キーポイントコンステレーション品質レベルを所定のしきい値と比較するように構成される、請求項１６に記載の撮像装置。
【請求項２１】
立体視画像の対の第１の画像をキャプチャするように構成された第１の撮像センサーと、
前記立体視画像の対の第２の画像をキャプチャするように構成された第２の撮像センサーと、
キーポイントコンステレーションを形成するキーポイントマッチスの組を前記第１の画像および前記第２の画像に基づいて決定するための手段と、
キーポイント座標におけるランダムノイズに対する前記立体視画像の対に関する不整合推定量の感度に基づいてキーポイントコンステレーション品質レベルを決定するために、前記キーポイントコンステレーションの品質を評価するための手段と、
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定するための手段と、
前記しきい値を上回る場合、前記キーポイントコンステレーションに基づいて較正データを生成するための手段と、
前記較正データを不揮発性記憶デバイスに記憶するための手段と
を備える、立体視撮像デバイス。
【請求項２２】
前記キーポイントコンステレーションに基づいて較正データを生成するための前記手段は、
キーポイントマッチスの前記組内の前記１つまたは複数のキーポイントマッチスにおけるキーポイント間の１つまたは複数の垂直視差ベクトルを決定し、
前記１つまたは複数の垂直視差ベクトルに基づいて垂直視差メトリックを決定し、
前記垂直視差メトリックをしきい値と比較し、
前記垂直視差メトリックが前記しきい値を上回る場合、キーポイントマッチスの前記組に少なくとも部分的に基づいてキーポイントマッチス調整を決定する
ことによって前記較正データを生成する、請求項２１に記載のデバイス。
【請求項２３】
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを決定するための前記手段は、キーポイント間の距離を決定するための手段を含む、請求項２１に記載のデバイス。
【請求項２４】
前記キーポイントコンステレーションの品質を評価するための前記手段は、各キーポイントの画像コーナーまでの距離を決定するための手段を備える、請求項２１に記載のデバイス。
【請求項２５】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されるとき前記プロセッサに、
第１の撮像センサーにより、インタレストのシーンの第１の画像をキャプチャすることと、
第２の撮像センサーにより、インタレストの前記シーンの第２の画像をキャプチャすることであって、前記第１の画像および第２の画像は立体視画像の対を備えることと、
キーポイントコンステレーションを形成するキーポイントマッチスの組を前記第１の画像および前記第２の画像に基づいて決定することと、
キーポイント座標におけるランダムノイズに対する前記立体視画像の対に関する不整合推定量の感度に基づいてキーポイントコンステレーション品質レベルを決定するために、前記キーポイントコンステレーションの品質を評価することと、
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定することであって、前記しきい値を上回る場合、前記キーポイントコンステレーションに基づいて較正データを生成し、前記較正データを不揮発性記憶デバイスに記憶することと
の方法を実行させる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、撮像デバイスに関し、詳細には、撮像デバイスの自動較正のための方法および装置に関する。
【背景技術】
【０００２】
過去１０年間で、デジタルカメラおよびモバイルフォンを含む、広範囲のデバイスにデジタル撮像機能が内蔵されてきた。最近では、これらのデバイスにより立体視画像をキャプチャする機能が、技術的に可能になってきた。デバイスメーカーは、複数のデジタル撮像センサーを内蔵するデバイスを導入することにより対応してきた。ワイヤレス通信デバイス、携帯情報端末（ＰＤＡ）、個人用音楽システム、デジタルカメラ、デジタル記録デバイス、ビデオ会議システムなどを含む、広範囲の電子デバイスは、そのユーザに様々な機能および特徴を提供するために、複数の撮像センサーを利用する。これらは、３Ｄ写真および映像または映画などの立体視（３Ｄ）撮像用途だけでなく、より大きいダイナミックレンジの撮像およびパノラマ撮像も含む。
【０００３】
この機能を含むデバイスは、複数の撮像センサーを含むことができる。たとえば、いくつかの製品は、デジタル撮像デバイス内に２つの撮像センサーを内蔵する。これらのセンサーは、立体視画像がキャプチャされるとき、水平軸に沿って整合される可能性がある。各カメラは、デジタル撮像デバイスの位置だけでなく、カメラ上の撮像センサーの物理的位置および方向にも基づいてシーンの画像をキャプチャすることができる。いくつかの実装形態が水平にオフセットしている可能性がある２つのセンサーを提供するので、各センサーによってキャプチャされる画像は、２つのセンサー間の水平方向の差を反映する可能性もある。センサーによってキャプチャされる２つの画像間の水平方向のこの差は、２つの画像間の視差（parallax）を与える。２つの画像から構成された立体視画像の対をユーザが見るとき、人間の脳は、２つの画像間の視差に基づいて画像内の奥行きを知覚する。
【０００４】
立体視撮像デバイスは、２つの画像間の水平方向のオフセットまたは視差の所与の量を有する立体視画像の対をもたらすように設計され得るが、２つの画像間の方向の他の差も導入され得る。たとえば、デジタル撮像デバイスの製造公差は、２つの撮像センサー間の方向の差をもたらす可能性がある。１つのデバイス内の撮像センサーは、同じデバイス内の別の撮像センサーよりもわずかに高く配置される可能性がある。別のデバイスでは、撮像センサーは、そのデバイス内の第２の撮像センサーよりもさらに前方（キャプチャされるシーンのより近く）にある可能性がある。撮像センサーは、回転軸の周りの様々な方向を有することもできる。たとえば、ピッチ、ヨー(yaw)、またはロールの方向の差が、撮像センサー間に存在する可能性がある。これらの撮像センサーによってキャプチャされる画像は、これらの差を反映する可能性がある。立体視画像の対の２つの画像間の方向のこれらの差は、望ましくない影響を有する可能性がある。たとえば、「垂直視差（vertical disparity）」として知られている、２つの画像間の垂直方向の差は、立体視映画の視聴者の頭痛を引き起こすように示されてきた。
【０００５】
正確に整合される立体視画像の対を達成するために、複数の撮像センサーを有するデバイスは、しばしば、製造プロセス中に較正される。このデバイスは、製造ライン上で特別な「較正モード」に配置することができ、撮像センサーは、各センサーの相対位置をはっきりと特定するのを助けるように設計されたターゲット画像に向けられる。次いで、このデバイスの各カメラは、ターゲット画像およびキャプチャされる画像に焦点を合わせられ得る。次いで、各キャプチャされた画像は、カメラの相対方向を抽出するために分析され得る。
【０００６】
いくつかのカメラは、２つのカメラの位置をより十分に整合させるために、各カメラの相対位置に対する細かい調整(adjustments)を工業の現場で行うことができるように設計され得る。たとえば、各カメラは、その位置に対する細かい調整を行う機能を提供する調整可能なプラットフォーム内に搭載され得る。そうでない場合、各カメラによってキャプチャされた画像は、各カメラの他のカメラに対する相対位置を決定するために、画像処理ソフトウェアによって分析され得る。次いで、この相対位置データは、カメラ上の不揮発性メモリに記憶される。後に製品が購入され使用されるとき、オンボード画像処理は、高品質の立体視画像を生成するために各カメラによってキャプチャされた画像を電子的に調整するのに相対位置情報を利用する。
【０００７】
これらの較正プロセスは、いくつかの欠点を有する。第１に、正確な製造中較正は、製造プロセス中の時間を消費し、デバイスのコストを増加させる。第２に、製造中に生成された任意の較正データは、本質的に静的である。したがって、この較正データは、デバイスがその寿命中に使用されるので、カメラ位置の変化を説明することができない。たとえば、複数のレンズの較正は、カメラが販売される際には極めて正確である可能性があるが、カメラは、購入後まもなく落とされる可能性がある。落下の衝撃により、カメラは較正が台無しになる可能性がある。それにもかかわらず、ユーザは、カメラが落下を切り抜け、高品質の立体視画像を生成し続けることを期待する可能性がある。
【０００８】
さらに、温度によるカメラのパーツの伸び縮みは、各カメラの相対位置のわずかな変化をもたらす可能性がある。工場較正は、典型的には、室温で行われ、温度によるレンズ位置の変化の補償はない。したがって、特に寒い、または暑い日に立体視撮像機能が利用される場合、カメラによってもたらされる立体視画像の対の品質に影響を及ぼす可能性がある。
【０００９】
したがって、マルチカメラデバイスの静的な工場較正は、その限界を有する。定期的な較正は、これらの問題のうちのいくつかを緩和するが、カメラの寿命中にそのカメラの定期的な立体視カメラ較正を行うことをユーザに期待するのは現実的でない可能性がある。多くのユーザは、較正手順をうまく完了することを望みもせず、技術的技能を有することもあまりない。
【発明の概要】
【００１０】
本実施形態のうちのいくつかは、立体視画像の対を調整する方法を含むことができる。本方法は、第１の撮像センサーにより立体視画像の対の第１の画像をキャプチャすることと、第２の撮像センサーにより立体視画像の対の第２の画像をキャプチャすることとを含むことができる。次いで、第１の画像と第２の画像との間のキーポイントマッチス(keypoint matches)の組を決定することができる。キーポイント品質レベルを決定するために、キーポイントマッチスの品質が評価される。キーポイント品質レベルがしきい値よりも大きい場合、立体視画像の対は、キーポイントに基づいて調整され得る。
【００１１】
開示される１つの発明的実装形態は、立体視撮像デバイスを較正する方法である。本方法は、第１の撮像センサーにより、インタレスト(interest)のシーンの第１の画像をキャプチャすることと、第２の撮像センサーにより、インタレストのシーンの第２の画像をキャプチャすることとを含む。第１の画像および第２の画像は、立体視画像の対の一部分である可能性がある。本方法は、第１の画像および第２の画像に基づいてキーポイントマッチスの組を決定することも含む。キーポイントマッチスの組は、キーポイントコンステレーションを形成する。本方法は、キーポイントコンステレーション品質レベルを決定するためにキーポイントコンステレーションの品質を評価することと、キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定することであって、しきい値を上回る場合、キーポイントコンステレーションに基づいて較正データを生成し、較正データを不揮発性記憶デバイスに記憶することとをさらに含む。
【００１２】
いくつかの実装形態では、本方法は、また、キーポイントマッチスの組内の１つまたは複数のキーポイントマッチスにおけるキーポイント間で１つまたは複数の垂直視差ベクトルを決定することと、１つまたは複数の垂直視差ベクトルに基づいて垂直視差メトリック(vertical disparity metric)を決定することと、垂直視差メトリックをしきい値と比較することとを含む。垂直視差メトリックがしきい値を上回る場合、本方法は、キーポイントマッチスの組に少なくとも部分的に基づいてキーポイントマッチス調整を決定する。
【００１３】
いくつかの実装形態では、キーポイントマッチス調整を決定することは、キーポイントマッチスの組に基づいてアフィンフィット（affine fit）を決定することと、キーポイントマッチスの組に基づいて保護フィット(a protective fit)を決定することと、アフィンフィットおよび射影フィット(the projective fit)に基づいて射影行列を生成することと、射影行列に基づいてキーポイントマッチスの組を調整することとを含む。
【００１４】
本方法のいくつかの実装形態では、較正データは、射影行列を含む。本方法のいくつかの実装形態では、キーポイントマッチスの組に基づいてアフィンフィットを決定することは、ロール推定量、ピッチ推定量、およびスケール推定量を決定し、いくつかの他の実装形態では、射影フィット(projective fit)を決定することは、ヨー推定量を決定する。いくつかの実装形態では、本方法は、キーポイントマッチスの調整された組に基づいて立体視画像の対を調整することも含む。いくつかの実装形態では、本方法は、キーポイントマッチスの調整された組に基づいて新しい垂直視差ベクトルを決定することと、新しい垂直視差ベクトルがしきい値を上回る視差を示す場合に、キーポイントマッチスをさらに調整することとを含む。
【００１５】
いくつかの実装形態では、キーポイントマッチスの組を調整すること、および新しい垂直視差ベクトルを決定することは、新しい垂直視差ベクトルがしきい値未満の視差を示すまで、反復的に実行される。いくつかの実装形態では、本方法は、しきい値を上回る、加速度計の出力に応答して実行される。いくつかの実装形態では、本方法は、オートフォーカスイベントに応答して実行される。いくつかの実装形態では、キーポイントコンステレーションの品質を評価することは、キーポイント間の距離を決定することを含む。
【００１６】
いくつかの実装形態では、キーポイントコンステレーションの品質を評価することは、各キーポイントの画像コーナーまでの距離を決定すること、またはキーポイントマッチスの数を決定することを備える。いくつかの実装形態は、キーポイントコンステレーションの品質を評価することは、キーポイント位置における摂動(perturbations)に対するキーポイントコンステレーションから導出された１つまたは複数の推定量の感度を決定することを備える。いくつかの実装形態では、本方法は、キーポイントマッチスの組から１つまたは複数のキーポイントマッチスを除去するために各キーポイントマッチスの位置に基づいてキーポイントマッチスの組をプルーニングすることを含む。
【００１７】
別の発明的態様の開示は、撮像装置である。撮像装置は、第１の撮像センサーと、第２の撮像センサーと、第１の撮像センサーおよび第２の撮像センサーに動作可能に結合されるプロセッサと、第１の撮像センサーから第１の立体視画像の対の第１の画像をキャプチャし、第２の撮像センサーから第１の立体視画像の対の第２の画像をキャプチャするように構成されたセンサー制御モジュールと、第１の画像と第２の画像との間のキーポイントマッチスの組を決定するように構成されたキーポイントモジュールと、キーポイントコンステレーション品質レベルを決定するためにキーポイントマッチスの組の品質を評価するように構成されたキーポイント品質モジュールと、キーポイントコンステレーション品質レベルを所定のしきい値と比較し、キーポイントコンステレーション品質レベルが所定のしきい値を上回る場合、キーポイントコンステレーションに基づいて立体視画像の対を調整するように構成されたマスター制御モジュールとを含む。本装置のいくつかの実装形態では、キーポイント品質モジュールは、第１の画像および第２の画像内のキーポイントコンステレーションにおけるキーポイントマッチスの位置に少なくとも部分的に基づいて、キーポイントコンステレーション品質レベルを決定する。本装置のいくつかの他の実装形態では、キーポイント品質モジュールは、キーポイントコンステレーションに基づいて生成された角度推定量の変化とキーポイントコンステレーションに基づくノイズを伴うキーポイントコンステレーションとに少なくとも部分的に基づいて、キーポイントコンステレーション品質レベルを決定する。いくつかの実装形態では、ノイズを伴うキーポイントコンステレーションは、キーポイントコンステレーション内のキーポイントに関するキーポイント位置の一部分に少なくともランダムノイズを加えることによって、少なくてもある程度には、基づいて生成される。
【００１８】
開示される別の発明的態様は、立体視撮像デバイスである。本デバイスは、第１の撮像センサーにより、インタレストのシーンの第１の画像をキャプチャするための手段と、第２の撮像センサーにより、インタレストのシーンの第２の画像をキャプチャするための手段とを含む。第１の画像および第２の画像は、立体視画像の対の一部分である可能性がある。また、本デバイスは、第１の画像および第２の画像に基づいて、キーポイントコンステレーションを備えるキーポイントマッチスの組を決定するための手段と、キーポイントコンステレーション品質レベルを決定するためにキーポイントコンステレーションの品質を評価するための手段と、キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定するための手段と、しきい値を上回る場合、キーポイントコンステレーションに基づいて較正データを生成するための手段と、較正データを不揮発性記憶デバイスに記憶するための手段とを含む。
【００１９】
開示される別の発明的態様は、命令を記憶する非一時的コンピュータ可読媒体であり、命令は、プロセッサによって実行されるとき、第１の撮像センサーにより、インタレストのシーンの第１の画像をキャプチャする方法と、第２の撮像センサーにより、インタレストのシーンの第２の画像をキャプチャする方法とをプロセッサに実行させる。第１の画像および第２の画像は立体視画像の対を備える。また、プロセッサによって実行される方法は、キーポイントコンステレーションを備えるキーポイントマッチスの組を第１の画像および第２の画像に基づいて決定することと、キーポイントコンステレーション品質レベルを決定するためにキーポイントコンステレーションの品質を評価することと、キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定することであって、しきい値を上回る場合、キーポイントコンステレーションに基づいて較正データを生成し、較正データを不揮発性記憶デバイスに記憶することとを含む。
【００２０】
開示する態様は、以下で、開示する態様を限定するためではなく、開示する態様を例示するために与えられる、同様の記号が同様の要素を示す、添付の図面に関して説明される。
【図面の簡単な説明】
【００２１】
【図１】２つの撮像センサーを含む、立体視撮像デバイスを含む撮像環境を示す図。
【図２Ａ】ｘ軸、ｙ軸、およびｚ軸に関する２つの撮像センサーの相対位置を示す図。
【図２Ｂ】１つのセンサーがｘ軸の周りに回転する際の２つの撮像センサーの相対位置を示す図。
【図２Ｃ】１つのセンサーがｙ軸の周りに回転する際の２つの撮像センサーの相対位置を示す図。
【図２Ｄ】１つのセンサーがｚ軸の周りに回転する際の２つの撮像センサーの相対位置を示す図。
【図３】少なくとも１つの動作可能な実施形態を実施する撮像デバイスのブロック図。
【図４】ｙ軸およびｚ軸の不整合を有するキーポイントを含む立体視画像の対の例。ｚ軸の周りの回転方向の不整合を見ることもできる。
【図５】キーポイントマッチスの組が十分な品質である場合、立体視画像の対をキャプチャし、整合させるためのプロセスのフローチャート。
【図６】立体視画像の対を調整するためのプロセスのフローチャート。
【図７Ａ】キーポイントコンステレーションの品質を検証するためのプロセスを示すフローチャート。
【図７Ｂ】キーポイントコンステレーションにおけるランダムノイズに対する立体視画像の対の不整合推定量の感度を決定するためのプロセスを示すフローチャート。
【図８Ａ】立体視画像の対の左の画像を示す図。
【図８Ｂ】立体視画像の対の右の画像を示す図。
【図９Ａ】図８Ａおよび図８Ｂの画像に関するキーポイントコンステレーションを示す図。
【図９Ｂ】キーポイントコンステレーションがプルーニングされた後のキーポイントコンステレーションを示す図。
【図１０】図８Ａの画像８０５と図８Ｂの画像８１０の両方から構成された画像１００５を示す図。
【発明を実施するための形態】
【００２２】
上述のように、２つ以上の撮像センサー間の相対的な不整合は、撮像デバイスによってもたらされる立体視画像の対の品質に影響を及ぼす可能性がある。いくつかの場合には、この不整合は、より低品質の立体視画像をもたらすだけでなく、画像を見る人の頭痛などの肉体的な影響も引き起こす可能性がある。したがって、高品質の立体視画像の対および高い顧客満足を確保するために、この不整合を低減または除去することが望ましい。
【００２３】
一実施形態は、撮像センサーの対を較正するための、電子デバイス内のシステムおよび方法である。開示される装置および方法は、デバイスの通常使用の間に連続的かつトランスペアレントに動作することができる。したがって、これらの方法および装置は、ユーザが明示的な較正プロセスを起動するか、または場合によっては、そのプロセスを容易にする必要性を低減または除去することができる。これらの実施形態が、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得ることを当業者は認識するであろう。
【００２４】
一実装形態では、システムは、ターゲットオブジェクトの立体視画像を形成するために、第１の撮像センサーによるターゲットオブジェクトの第１の画像と、第２の撮像センサーによるターゲットオブジェクトの第２の画像とをキャプチャするように構成され得る。次いで、システムは、キーポイントコンステレーションを形成するために、第１の画像と第２の画像との間のキーポイントマッチングを実行することができる。キーポイントは、特に一意の特徴を示す、画像上の特徴的な領域である可能性がある。たとえば、特定のパターンまたは端部を示す領域が、キーポイントとして特定され得る。キーポイントマッチスには、第１の画像内で特定された１つのポイントと第２の画像内で特定された第２のポイントとを含む、１対のポイントが含まれ得る。キーポイントマッチスには、第１の画像からのある領域と第２の画像からのある領域とを含む、領域の対も含まれ得る。各画像のこれらのポイントまたは領域は、高度の類似性を示す可能性がある。立体視画像の対に関して特定されるキーポイントマッチスの組は、キーポイントコンステレーションと呼ばれ得る。
【００２５】
次いで、システムまたは装置により、キーポイントコンステレーションの品質レベルが評価される。キーポイントコンステレーションの品質レベルが品質しきい値を上回る場合、立体視画像の対は、キーポイントコンステレーションに基づいて調整され得る。また、キーポイントコンステレーションから導出された較正データは、不揮発性記憶装置に記憶され得る。次いで、追加の立体視画像の対は、較正データに基づいて調整され得る。これらの画像の対は、上述の品質しきい値を上回らないキーポイントコンステレーションを有する画像を含むことができる。この方法は、立体視画像の対の整合を改善することができる。
【００２６】
上述のように、立体視画像の対を調整するためにキーポイントコンステレーションが使用される前に、キーポイントコンステレーションの品質は、それが品質しきい値を上回るかどうかを判定するために評価される。キーポイントコンステレーションの品質が品質しきい値を上回る場合、これは、キーポイントコンステレーションがキーポイントコンステレーションに含まれるキーポイントマッチスに基づいて、立体視画像の対の正確かつ完全な調整を決定することができるようになることを示すことができる。キーポイントコンステレーションが十分な品質であるかどうかは、いくつかの基準に基づいて決定され得る。たとえば、コンステレーションに含まれるキーポイントの数および位置は検討されることができる。たとえば、画像の端部により近いキーポイントは、画像の中心により近いキーポイントと比較されるとき、ｚ軸の周りの撮像センサーの相対的回転に関するより正確な調整を与えることができる。１つの撮像センサーが別の撮像センサーに対してｚ軸の周りに回転するとき、第１の画像の端部により近いキーポイントの位置は、画像の中心により近いキーポイントの位置よりもより大きい相対変位を経る可能性がある。同様に、第１の撮像センサーが第２の撮像センサーに対してｙ軸すなわち垂直軸の周りで不整合であるとき、第１の画像の左または右の端部により近いキーポイントの位置は、画像の中心により近いキーポイントと比較するとき、よりも大きい相対変位を示す可能性がある。頂部または底部の画像端部により近いキーポイントは、ｘ軸すなわち水平軸の周りの回転の不整合があるとき、より大きい変位を経る可能性がある。
【００２７】
いくつかの実装形態は、キーポイントコンステレーションが画像の各コーナーに対する最小の近接度内に十分なキーポイントマッチスを含むかどうかに基づいて、キーポイントコンステレーションの品質を評価することができる。たとえば、コンステレーションの各キーポイントは、画像の各コーナーからのキーポイントの距離に反比例する４つのスコアが与えられる可能性がある。次いで、それぞれのコーナーに関するキーポイントのスコアは、コーナー近接度スコアを生成するために加えられ得る。次いで、このスコアは、キーポイントコンステレーションが画像の各コーナーに対する近接度内に十分なキーポイントマッチスを含むかどうかを判定するために品質しきい値に対して評価され得る。画像の各コーナーに対する近接度内に十分な数のキーポイントを確保することにより、キーポイントコンステレーションの品質は、立体視画像の対の正確かつ完全な調整を可能にするコンステレーションの能力に関して評価され得る。
【００２８】
いくつかの実装形態は、コンステレーション内のキーポイントに基づく射影行列のキーポイント位置における小さい摂動に対する感度に部分的に基づいてキーポイントコンステレーションの品質を評価することができる。これらの小さい摂動は、推定されるキーポイント位置にランダムノイズを加えることによって生成され得る。推定されるキーポイント位置に加えられるノイズが、射影行列の比較的小さい変化のみをもたらす場合、射影行列の安定度は、キーポイントコンステレーションに基づいて立体視画像を調整するのに十分である可能性がある。
【００２９】
いくつかの実装形態は、キーポイントコンステレーションの品質がコンステレーションの品質しきい値を上回るかどうかを判定するために上述の基準を組み合わせることができる。たとえば、一実装形態は、キーポイントコンステレーション品質基準が品質しきい値を上回るかどうかを判定するために、キーポイントの数および立体視画像の対の画像のコーナーまたは端部に対するその近接度と、キーポイントの推定される位置における小さい摂動に対するキーポイントから導出される射影行列の感度とを評価することができる。
【００３０】
立体視画像の対のキーポイントコンステレーションが十分な品質であると判定されると、いくつかの実装形態は、コンステレーション内のキーポイントマッチスに基づいて垂直視差ベクトルを決定することができる。これらの垂直視差ベクトルは、第２の画像内の対応キーポイント(matching keypoints)と比較するときの、第１の画像内のキーポイントの垂直変位を表すことができる。
【００３１】
いくつかの実装形態では、垂直視差ベクトルに基づいて、垂直視差メトリックが決定される。たとえば、いくつかの実装形態では、垂直視差ベクトルの最大サイズを決定することができる。垂直視差メトリックは、最大サイズに設定され得る。いくつかの他の実装形態は、垂直視差ベクトルの長さすなわちサイズを平均化し、垂直視差メトリックを平均値に設定することができる。次いで、垂直視差メトリックは、垂直視差しきい値と比較され得る。垂直視差メトリックがしきい値を下回る場合、これは、立体視画像の対の画像が十分に整合されることを示す可能性がある。垂直視差しきい値は、画像の高さのパーセンテージに等しい可能性がある。たとえば、いくつかの実装形態では、垂直視差しきい値は、画像の高さの２パーセントである。他の実装形態では、垂直視差しきい値は、画像の高さの１パーセントである。垂直視差ベクトルまたは平均値がしきい値を上回る場合、これは、立体視画像の対の画像間の不整合を示す可能性があり、したがって、立体視画像の調整が実行されるべきである。
【００３２】
立体視画像の対を調整するために、キーポイントマッチス間のアフィンフィットが実行され得る。このアフィンフィットは、立体視画像の対の画像間のロール、ピッチ、およびスケールの差を近似することができる。次いで、ロール、ピッチ、およびスケールの差を補正するために、キーポイントマッチスに関して、アフィンフィットに基づく補正が実行され得る。次いで、立体視画像の対の画像間に存在する可能性がある任意のヨーの差を決定するために、調整されたキーポイントに関して、射影フィットが実行され得る。そうでない場合、調整されていないキーポイントに関して、射影フィットが実行され得る。推定されたロール、ヨー、ピッチ、およびスケール値に基づいて、射影行列が決定され得る。次いで、キーポイントは、射影行列に基づいて調整され得る。いくつかの場合には、立体視画像の対も、射影行列に基づいて調整され得る。
【００３３】
キーポイントが調整された後、調整されるキーポイントコンステレーション内の各キーポイントマッチスに関して、新しい垂直視差ベクトルが決定され得る。新しい垂直視差メトリックは、上述のように決定することもできる。垂直視差メトリックが垂直視差しきい値を下回る場合、調整プロセスは、完了した可能性がある。上述の射影行列は、不揮発性記憶装置に記憶され得る。記憶された射影行列は、キーポイントコンステレーションが導出される立体視画像の対の後にキャプチャされる追加の立体視画像の対を調整するために使用され得る。たとえば、撮像デバイスによってキャプチャされた画像の対の各新しい組は、射影行列を使用して調整され得る。この調整は、立体視画像がユーザに見られるために適切に整合されることを確実にすることができる。
【００３４】
垂直視差メトリックが垂直視差しきい値を上回る場合、キーポイント位置を調整するために使用される上述の射影行列は、十分な観察経験を確保するには、キーポイントおよびその後の立体視画像の対の十分な調整をまだ与えることができない。上述され、そしてキーポイント位置を調整するために使用された射影行列は、キーポイント、およびその後の立体視画像の対、の十分な調整を、満足な観察経験を確保するためには、まだ提供することができない。したがって、いくつかの実装形態では、キーポイントコンステレーションに対する追加の調整が実行され得る。たとえば、調整されたキーポイントに基づいて、新しい追加のアフィンフィット演算が実行され得る。このアフィンフィットは、調整されたキーポイントコンステレーションのロール、ピッチ、およびスケールの調整に関する新しい推定量を生成することができる。ヨー推定量を生成するために、射影フィットは実行されることもできる。得られる射影行列は、キーポイントコンステレーションをさらに調整するために使用され得る。このプロセスは、調整されたキーポイントコンステレーションに関する垂直視差メトリックが所定の品質しきい値を下回るまで反復する可能性がある。
【００３５】
以下の説明において、実施例の十分な理解が得られるように具体的な詳細を与える。しかしながら、これらの実施例は、これらの具体的な詳細を伴わずに実施され得ることを、当業者は理解されよう。たとえば、これらの実施例を不必要な詳細において不明瞭にしないために、電気コンポーネント／デバイスをブロック図で示すことがある。他の例では、そのようなコンポーネント、他の構造および技法が、実施例をさらに説明するために詳しく示され得る。
【００３６】
また、実施例は、フローチャート、流れ図、有限状態図、構造図、またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くを並行してまたは同時に実行することができ、プロセスを繰り返すことができる。加えて、動作の順序を並び替えることができる。プロセスは、その動作が完了すると終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスがソフトウェア関数に対応する場合、その終了は呼出し側関数またはメイン関数への関数の復帰に対応する。
【００３７】
情報および信号は、種々の異なる技術および技法のいずれかを使用して表され得ることを当業者は理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００３８】
図１は、２つの撮像センサー１１０と１２０とを含む、立体視撮像デバイス１００を含む撮像環境を示す。撮像デバイス１００がシーン１３０をキャプチャすることが示される。カメラの各撮像センサーは、暗線１６０ａ〜１６０ｄによって示される視野を含む。左のカメラ１１０は、線１６０ａおよび１６０ｃによって境界をつけられた視野１４０を含む。右のカメラ１２０は、線１６０ｂおよび１６０ｄによって境界をつけられた視野１５０を含む。視野１４０および１５０は、領域１７０において重なる。左のカメラの視野１４０は、カメラ１２０の視野内にないシーンの一部分を含む。これは、領域１８０として示される。右のカメラの視野１５０は、カメラ１１０の視野内にないシーンの一部分を含む。これは、領域１９０として示される。２つのカメラ１１０および１２０の視野のこれらの差は、説明のために誇張される場合がある。
【００３９】
各カメラ１１０および１２０の視野の差は、画像間の視差を作り出すことができる。図１は２つのカメラ１１０と１２０との間の水平変位１０５も示す。この水平変位は、奥行きの知覚をもたらすため立体視画像に使用される視差を与える。２つの撮像センサー間のこの変位は撮像デバイスの設計の意図的な部分である可能性があるが、２つの撮像センサー１１０と１２０との間の他の意図しない変位または不整合が存在する可能性もある。
【００４０】
図２Ａは、ｘ（水平の）軸、ｙ（垂直の）軸、およびｚ（図に出入りする方向の）軸に関する２つの撮像センサーの相対位置を示す。２つの撮像センサー１１０および１２０は、撮像デバイス１００に含まれる。撮像センサー１１０と１２０との間の所定の距離１０５が、撮像デバイス１００内に設計され得る。図示のように、左の撮像センサー１１０は、垂直のｙ軸２４０に関して撮像センサー１２０に対し、上または下にシフトされる可能性がある。撮像センサー１１０は、ｘ軸２３０に関して撮像センサー１２０に対し、右または左にシフトされる可能性もある。撮像センサー１１０は、ｚ軸２５０に関して右の撮像センサー１２０に対し、図「に入る」または図「から出る」方向にシフトされる可能性もある。撮像センサー１１０と１２０との間のこれらの不整合は、撮像デバイス１００によって生成される立体視画像の対に対する調整により補償される可能性がある。
【００４１】
図２Ｂ〜図２Ｄは、撮像センサー１１０が撮像センサー１２０に対して軸の周りに回転する、２つの撮像センサーの相対位置を示す。図２Ｂは、撮像センサー１２０に対するピッチにおける不整合を引き起こす、水平軸の周りに回転する撮像センサー１１０を示す。図２Ｃは、撮像センサー１２０に対するヨーにおける不整合を引き起こす、垂直軸の周りの撮像センサー１１０の回転を示す。図２Ｄは、図の内側および外側に延びる「ｚ」軸の周りの撮像センサー１１０の回転を示す。この回転は、撮像センサー１２０に対するロールにおける不整合を引き起こす。図２Ａ〜図２Ｄに示される不整合は、撮像デバイス１００によって生成される立体視画像の対に対する調整により補償される可能性がある。
【００４２】
図３は、少なくとも１つの動作可能な実施形態を実施する撮像デバイスのブロック図である。撮像デバイス１００は、メモリ３３０と、第１の撮像センサー３１５と、第２の撮像センサー３１６と、作業メモリ３０５と、記憶装置３１０と、ディスプレイ３２５と、入力デバイス３９０とを含む、いくつかの構成要素に動作可能に結合されたプロセッサ３２０を含む。
【００４３】
撮像デバイス１００は、入力デバイス３９０を介して入力を受け取ることができる。たとえば、入力デバイス３９０は、撮像デバイス１００に含まれる１つまたは複数の入力キーから構成され得る。これらのキーは、電子ディスプレイ３２５上に表示されるユーザインターフェースを制御することができる。そうでない場合、これらのキーは、ユーザインターフェースに関係しない専用の機能を有する可能性がある。たとえば、入力デバイス３９０には、シャッターリリースキー(shutter release key)が含まれ得る。撮像デバイス１００は、キャプチャされた画像を記憶装置３１０に記憶することができる。これらの画像には、撮像センサー３１５および３１６によってキャプチャされた立体視画像の対が含まれ得る。作業メモリ３０５は、撮像デバイス１００の通常動作中に作成された動的なランタイムデータを記憶するためにプロセッサ３２０によって使用され得る。
【００４４】
メモリ３３０は、いくつかのソフトウェアまたはファームウェアコードモジュールを記憶するように構成され得る。これらのモジュールは、以下で説明するように、いくつかの機能を実行するようにプロセッサ３２０を設定する命令を含む。たとえば、オペレーティングシステムモジュール３８０は、デバイス１００のハードウェアおよびソフトウェア資源を管理するようにプロセッサ３２０を設定する命令を含む。センサー制御モジュール３３５は、撮像センサー３１５および３１６を制御するようにプロセッサ３２０を設定する命令を含む。たとえば、センサー制御モジュール３３５内のいくつかの命令は、撮像センサー３１５または撮像センサー３１６により画像をキャプチャするようにプロセッサ３２０を設定することができる。したがって、センサー制御モジュール３３５内の命令は、撮像センサーにより画像をキャプチャするための１つの手段を表すことができる。センサー制御モジュール３３５内の他の命令は、撮像センサー３１５の設定値を制御することができる。たとえば、シャッタースピード、開口、または撮像センサー感度は、センサー制御モジュール３３５内の命令によって設定され得る。
【００４５】
キーポイントモジュール３４０は、第１の撮像センサー３１５および第２の撮像センサー３１６によってキャプチャされた画像内のキーポイントを特定するようにプロセッサ３２０を設定する命令を含む。先に述べたように、一実施形態では、キーポイントは、特に一意の特徴を示す、画像上の特徴的な領域である。たとえば、特定のパターンまたは端部を示す領域が、キーポイントとして特定され得る。最初に、キーポイントモジュール３４０は、撮像センサー３１５によりキャプチャされたターゲットシーンの第１の画像を分析し、第１の画像内のシーンのキーポイントを特定することができる。次いで、キーポイントモジュール３４０は、撮像センサー３１６によりキャプチャされた同じターゲットシーンの第２の画像を分析し、第２の画像内のシーンのキーポイントを特定することができる。次いで、キーポイントモジュール３４０は、第１の画像と第２の画像との間のキーポイントマッチスを特定するために、第１の画像内に見出されるキーポイントと、第２の画像内に見出されるキーポイントとを比較することができる。キーポイントマッチスには、第１の画像内で特定された１つのポイントと第２の画像内で特定された第２のポイントとを含む、１対のポイントが含まれ得る。ポイントは、画像内の単一のピクセル、または２個、４個、８個、１６個、もしくはそれより多い隣接ピクセルの群である可能性がある。キーポイントマッチスには、第１の画像からのある領域と第２の画像からのある領域とを含む、領域の対も含まれ得る。各画像のこれらのポイントまたは領域は、高度の類似性を示す可能性がある。立体視画像の対に関して特定されるキーポイントマッチスの組は、キーポイントコンステレーションと呼ばれ得る。したがって、キーポイントモジュール内の命令は、立体視画像の対の第１の画像と第２の画像との間のキーポイントマッチスを判定するための１つの手段を表すことができる。
【００４６】
キーポイント品質モジュール３５０は、キーポイントモジュール３４０によって判定されたキーポイントコンステレーションの品質を評価するようにプロセッサ３２０を設定する命令を含むことができる。たとえば、キーポイント品質モジュール内の命令は、キーポイントコンステレーション内のキーポイントマッチスの数または相対位置を評価することができる。キーポイントコンステレーションの品質は、複数のスコアから構成され得るか、または、いくつかのスコアの加重和もしくは加重平均とすることができる。たとえば、キーポイントコンステレーションは、画像の端部からの第１のしきい値距離内のキーポイントマッチスの数に基づいてスコア化され得る。同様に、キーポイントコンステレーションは、キーポイントマッチスの数に基づくスコアを受け取ることもできる。キーポイントコンステレーションは、画像のコーナーに対する各キーポイントの近接度に基づいて評価することもできる。先に述べたように、各キーポイントは、１つまたは複数のコーナー近接度スコアを割り当てられ得る。スコアは、画像のコーナーからのキーポイントの距離に反比例する可能性がある。次いで、キーポイントコンステレーションに関する１つまたは複数のコーナー近接度スコアを決定するために、各コーナーに関するコーナー近接度スコアが加えられ得る。これらの近接度スコアは、キーポイントコンステレーションの品質が品質しきい値を上回るかどうかを判定するとき、キーポイントコーナー近接度品質しきい値と比較され得る。
【００４７】
また、キーポイントコンステレーション品質スコア全体を少なくとも部分的に決定するために、キーポイントから導出された射影フィットの感度が評価され得る。たとえば、キーポイントコンステレーションを使用して、第１のアフィンフィットおよび第１の射影フィットが得られ得る。これは、キーポイントコンステレーションに関する角度推定量の第１の組をもたらすことができる。次に、キーポイント位置に、ランダムノイズが加えられ得る。キーポイント位置がランダムノイズの追加によって変更された後、ノイズの多いキーポイントコンステレーションに基づいて、第２のアフィンフィットおよび第２の射影フィットが実行され得る。
【００４８】
次に、テストポイントの組が決定され得る。テストポイントは、角度推定量の第１の組に基づいて調整され、角度推定量の第２の組にも基づいて調整され得る。次いで、角度推定量の第１の組と第２の組との間の各テストポイントの位置の差が決定され得る。次いで、テストポイント位置の差の絶対値が、射影フィット感度しきい値と比較され得る。テストポイント位置の差が射影フィット感度しきい値を上回る場合、キーポイントコンステレーション品質レベルは、キーポイントコンステレーションおよび立体視画像の対に対する調整を行う際に使用されるには不十分である可能性がある。感度がしきい値を下回る場合、このことは、キーポイントコンステレーションが立体視画像の対に対する調整のためのベースとして使用されるのに十分な品質であることを示す可能性がある。
【００４９】
キーポイント品質レベルを決定するために、上述のスコアが組み合わせられ得る。たとえば、上述のスコアの加重和または加重平均が行われ得る。次いで、この組み合わせられたキーポイント品質レベルは、キーポイント品質しきい値と比較され得る。キーポイント品質レベルがしきい値を上回る場合、立体視画像の対の画像間の不整合を判定するために、キーポイントコンステレーションが使用され得る。
【００５０】
垂直視差決定モジュール３５２は、キーポイントコンステレーション内の立体視画像の対の対応キーポイント間の垂直視差ベクトルを決定するようにプロセッサ３２０を設定する命令を含むことができる。キーポイントコンステレーションは、キーポイントモジュール３４０によって決定された可能性がある。垂直視差ベクトルのサイズは、立体視画像の対の画像をキャプチャするために利用される撮像センサー間のどんな不整合の程度も表すことができる。したがって、垂直視差決定モジュール内の命令は、キーポイントマッチス間の垂直視差を決定するための１つの手段を表すことができる。
【００５１】
アフィンフィットモジュール３５５は、立体視画像の対のキーポイント対応コンステレーションにアフィンフィットを行うようにプロセッサ３２０を設定する命令を含む。アフィンフィットモジュール３５５は、立体視画像の対の画像の各々におけるキーポイント位置を入力として受け取ることができる。キーポイントコンステレーションにアフィンフィットを行うことにより、アフィンフィットモジュールは、２つの画像間の垂直視差の推定量を生成することができる。垂直視差推定量は、２つの画像間のピッチにおける誤差を近似するために使用され得る。立体視画像の対の第１の画像のキーポイントと、立体視画像の対の第２の画像のキーポイントとの間のロール、ピッチ、およびスケールにおける不整合を推定するために、アフィンフィットモジュールによって行われるアフィンフィットも使用され得る。
【００５２】
アフィン補正モジュール３６０は、アフィンフィットモジュール３５５によって生成されたアフィンフィットに基づくキーポイント位置を調整するようにプロセッサ３２０を設定する命令を含むことができる。アフィン補正モジュールは、画像内のキーポイントの位置を調整することにより、立体視画像の対からの２つの組のキーポイント間のロール、ピッチ、またはスケールにおける不整合を補正することができる。
【００５３】
射影フィットモジュール３６５は、立体視画像の対のキーポイントコンステレーションに基づいて射影行列を生成するようにプロセッサ３２０を設定する命令を含む。射影フィットは、ヨー角度調整推定量を生成することもできる。射影フィットモジュール３６５によって生成された射影行列は、立体視画像の対の１つの画像における１組のキーポイントの位置を、立体視画像の対の別の画像における第２の組のキーポイントの位置に基づいて調整するために使用され得る。射影行列を生成するために、射影フィットモジュール３６５は、立体視画像の対のキーポイントコンステレーションを入力として受け取る。射影補正モジュール３７０は、射影行列に基づいて、キーポイントコンステレーション、または立体視画像の対の一方もしくは両方の画像に関する射影補正を行うようにプロセッサ３２０を設定する命令を含む。
【００５４】
マスター制御モジュール３７５は、撮像デバイス１００の機能全体を制御するための命令を含む。たとえば、マスター制御モジュール３７５は、最初に撮像センサー３１５を使用して第１の画像をキャプチャし、次いで撮像センサー３１６を使用して第２の画像をキャプチャすることにより、立体視画像の対をキャプチャするためにセンサー制御モジュール３３５内のサブルーチンを呼び出すことができる。次いで、マスター制御モジュールは、立体視画像の対の画像内のキーポイントマッチスを特定するためにキーポイントモジュール３４０内のサブルーチンを呼び出すことができる。キーポイントモジュール３４０は、第１の画像と第２の画像との間のキーポイントマッチスを含むキーポイントコンステレーションを生成することができる。次いで、マスター制御モジュール３７５は、キーポイントモジュール３４０によって特定されたキーポイントコンステレーションの品質を評価するためにキーポイント品質モジュール内のサブルーチンを呼び出すことができる。キーポイントコンステレーションの品質がしきい値を上回る場合、マスター制御モジュールは、キーポイントモジュール３４０によって決定されたキーポイントコンステレーション内の対応キーポイント間の垂直視差ベクトルを決定するために垂直視差決定モジュール内のサブルーチンを呼び出すことができる。垂直視差の量が立体視画像の対の調整のために必要であることを示す場合、マスター制御モジュールは、キーポイントコンステレーションを調整するために、アフィンフィットモジュール３５５、アフィン補正モジュール３６０、射影フィットモジュール３６５、および射影補正モジュール３７０内のサブルーチンを呼び出すことができる。立体視画像の対を調整することもできる。
【００５５】
マスター制御モジュール３７５は、記憶装置３１０などの安定した不揮発性記憶装置内に射影フィットモジュール３６５によって生成された射影行列などの較正データを記憶することもできる。この較正データは、追加の立体視画像の対を調整するために使用され得る。
【００５６】
図４は、ｙ軸およびｚ軸の不整合を有するキーポイントを含む立体視画像４００の例である。ｚ軸の周りの回転方向の不整合を見ることもできる。立体視画像４００は、２つの画像４００ａおよび４００ｂを含む。本開示では、左の画像４００ａと右の画像４００ｂとの間の誇張された不整合が示される。右の画像４００ｂは、左の画像４００ａと比較して、画像４００ａの見え方よりもいくぶん車に近い見え方を表す。画像４００ｂをキャプチャした撮像センサーは、画像４００ａをキャプチャした撮像センサーよりも車４９０の近くに位置する可能性がある。
【００５７】
画像４００ｂをキャプチャした撮像センサーは、画像４００ａをキャプチャした撮像センサーと比較してｚ軸の周りの回転も有した。その結果、画像４００ａの左側のキーポイントは、画像４００ｂの対応キーポイントよりも画像がより高く現れる。たとえば、反射部４３５ａおよび４４５ａは、画像４００ａにおいて、反射部４３５ｂおよび４４５ｂの画像４００ｂにおける高さよりも高い。画像４００ａの右側のキーポイントは、画像４００ｂの対応キーポイントよりも低い。たとえば、影キーポイント４２０ａの端部は、画像において、画像４００ｂ内のその対応キーポイント４２０ｂよりも低い。同様に、後部のラリーＩＩホイールの中心、すなわちキーポイント４１５ａは、画像４００ａにおいて、対応キーポイント４１５ｂの画像４００ｂにおける高さよりも高い。画像４００ａおよび４００ｂの対応キーポイントの相対位置は、立体視画像の対４００を調整するために、開示された方法および装置によって使用され得る。
【００５８】
図５は、キーポイントマッチスの組が十分な品質である場合、立体視画像の対をキャプチャし、整合させるためのプロセス５００のフローチャートである。プロセス５００は、図３に示される、デバイス１００のメモリ３３０内で実施され得る。プロセス５００は、開始ブロック５０５において開始し、次いでブロック５１０に移動し、第１の画像が第１の撮像センサーによりキャプチャされる。次いで、プロセス５００は、ブロック５１５に移動し、第２の画像が第２の撮像センサーによりキャプチャされる。諒解され得るように、第１の画像および第２の画像のキャプチャは、インタレストのシーンの立体視画像を適切に記録するために実質的に同時に起こる可能性がある。処理ブロック５１０および５１５は、図３に示されるセンサー制御モジュール３３５に含まれる命令によって実施され得る。
【００５９】
次いで、プロセス５００は、ブロック５２０に移動し、キーポイントコンステレーションが決定される。キーポイントコンステレーションは、第１の画像と第２の画像との間の対応キーポイントを含むことができる。処理ブロック５２０は、図３に示されるキーポイントモジュール３４０に含まれる命令によって実施され得る。次いで、プロセス５００は、ブロック５２５に移動し、キーポイントコンステレーション品質レベルを決定するために、キーポイントコンステレーションの品質が評価される。処理ブロック５２５は、図３に示されるキーポイント品質モジュール３５０に含まれる命令によって実行され得る。次いで、プロセス５００は、判定ブロック５３０に移動し、キーポイントコンステレーション品質レベルが品質しきい値と比較される。キーポイントコンステレーション品質レベルがしきい値を下回る場合、プロセス５００は、判定ブロック５５０に移動する。
【００６０】
キーポイント品質レベルがしきい値よりも大きい場合、プロセス５００は、処理ブロック５４０に移動し、第１の画像および第２の画像を含む立体視画像の対がキーポイントに基づいて調整される。次いで、プロセス５００は、判定ブロック５５０に移動し、画像をさらにキャプチャすべきかどうかが判定される。たとえば、いくつかの実装形態では、プロセス５００は、立体視撮像デバイスの今の較正を維持するために連続的に動作することができる。たとえば、これらの実装形態では、プロセス５００は、判定ブロック５５０から処理ブロック５１０に戻ることができ、プロセス５００は反復する。いくつかの他の実装形態では、プロセス５００は、終了ブロック５４５に遷移することができる。
【００６１】
図６は、立体視画像の対を調整するための、図５のプロセス５４０のフローチャートである。プロセス５４０は、図３に示される、デバイス１００のメモリ３３０に含まれるモジュールによって実施され得る。プロセス５４０は、開始ブロック６０５において開始し、次いで処理ブロック６１０に移動し、キーポイントマッチス間の垂直視差が決定される。処理ブロック６１０は、図３に示される垂直視差決定モジュール３５２に含まれる命令によって実施され得る。いくつかの実装形態では、各キーポイントマッチスに関して、垂直視差ベクトルが決定され得る。垂直視差ベクトルは、立体視画像の対の第１の画像のキーポイントの垂直位置が、立体視画像の対の第２の画像の対応キーポイントの垂直位置にどのように対応するかを示すことができる。
【００６２】
各キーポイントマッチスの垂直視差が決定された後、プロセス５４０は、判定ブロック６１５に移動する。判定ブロック６１５は、立体視画像の対の２つの画像間の垂直視差がしきい値よりも小さいかどうかを決定する。いくつかの実装形態では、ブロック６１０で生成される各垂直視差ベクトルのサイズが、しきい値と比較され得る。任意のベクトルサイズがしきい値を上回る場合、プロセス５４０は、垂直視差がしきい値以上であると見なすことができ、プロセス５４０は、ブロック６８０に移動することができる。他の実装形態は、処理ブロック６１０で生成されたすべての垂直視差ベクトルの長さを平均化することができる。次いで、その平均値は、垂直視差しきい値と比較され得る。これらの実装形態では、平均垂直視差がしきい値以上である場合、プロセス５４０は、垂直視差がしきい値以上であると見なすことができ、プロセス５４０は、処理ブロック６２０に移動する。
【００６３】
処理ブロック６２０は、図３に示されるアフィンフィットモジュール３５５に含まれる命令によって実行され得る。処理ブロック６２０では、立体視画像の対の第１の画像と第２の画像との間のロール、ピッチ、およびスケールの差を近似するために、キーポイントマッチスのアフィンフィットが決定される。次いで、プロセス５４０は、処理ブロック６２５に移動し、キーポイントの射影フィットに基づいて、ヨーの推定量が決定される。ブロック６２５は、図３に示される射影フィットモジュール３６５に含まれる命令によって実行され得る。
【００６４】
次いで、プロセス５４０は、ブロック６３０に移動し、射影行列が構築される。いくつかの実装形態では、処理ブロック６３０は、ブロック６２０で生成されたアフィン変換によって生成されたスケール補正値および推定された角度と、ブロック６２５で実行された射影フィットによって生成されたヨー推定量とを入力として受け取る。ブロック６３０は、立体視画像の対の１つの画像内のデータの座標を、立体視画像の対の第２の画像内の対応するデータの座標にマッピングする射影行列を生成することができる。
【００６５】
次いで、プロセス５４０は、ブロック６３５に移動し、立体視画像の対のキーポイントが、射影行列を使用して調整される。次いで、プロセス５４０は、ブロック６１０に戻り、プロセス５４０は反復する。
【００６６】
判定ブロック６１５において、垂直視差がしきい値未満であると判定される場合、立体視画像の対のキーポイントは、十分に整合され得る。次いで、プロセス５４０は、ブロック６４５に移動し、立体視画像の対は、ブロック６３０で構築された射影行列を使用して調整される。次いで、プロセス５４０は、ブロック６８０に移動し、射影補正のための行列が記憶される。いくつかの実装形態では、この行列が不揮発性メモリに記憶され得る。たとえば、この行列は、図３に示されるデバイス１００の記憶装置３１０に記憶され得る。立体視画像の処理および射影行列の記憶が完了した後、プロセス５４０は、終了ブロック６９０に移動する。
【００６７】
図７Ａは、キーポイントコンステレーションの品質を検証するためのプロセスの一実装形態を示すフローチャートである。プロセス７５０は、図３に示されるキーポイント品質モジュール３５０に含まれる命令によって実施され得る。プロセス７５０は、開始ブロック７５５において開始し、次いでブロック７６０に移動し、各画像のコーナーの第１のしきい値距離内のキーポイントマッチスの数が決定される。次いで、プロセス７５０は、判定ブロック７６５に移動し、ブロック７６０で決定された各コーナーに関するキーポイントの数が第１の品質しきい値と比較される。各コーナーに関するキーポイントの数が第１の品質しきい値を下回る場合、プロセス７５０は、以下で説明するブロック７９６に移動する。各コーナーに関するキーポイントの数が第１の品質しきい値を上回る場合、プロセス７５０は、ブロック７７０に移動するが、ブロック７７０は、画像の垂直方向端部からの第２のしきい値距離内のキーポイントマッチスの数を決定する。次いで、プロセス７５０は、ブロック７７５に移動するが、ブロック７７５は、ブロック７７０で決定されたキーポイントの数が第２の品質しきい値を上回るかどうかを判定する。ブロック７７０で決定されたキーポイントの数が第２の品質しきい値を下回る場合、プロセス７５０は、以下で説明するブロック７９９に移動する。キーポイントの数が第２の品質しきい値を上回る場合、プロセス７５０は、ブロック７８０に移動する。ブロック７８０では、画像の水平端部からの第３のしきい値距離内のキーポイントマッチスの数が決定される。次いで、プロセス７５０は、ブロック７８５に移動するが、そこでブロック７８０で決定されたキーポイントマッチスの数が第３の品質しきい値を上回るかどうかを判定する。これがそうであれば、プロセス７５０は、ブロック７９０に移動する。
【００６８】
ブロック７９０では、プロセス７５０は、立体視画像の対の２つの画像間の不整合の推定量に関する感度測定値を決定する。たとえば、いくつかの実装形態では、立体視画像の対の２つの画像間のピッチ、ロール、スケール、またはヨーの誤差の推定量を決定することができる。これらの推定量は、キーポイントコンステレーションに少なくとも部分的に基づいている可能性がある。キーポイントコンステレーションに含まれるキーポイントの少なくとも一部分の位置にランダムノイズが加えられるとき、ロール、ピッチ、ヨー、またはスケールのこれらの推定量は変化する可能性がある。ブロック７９０は、キーポイントコンステレーションの一部分にランダムノイズが加えられるとき、角度測定値におけるこの変化に関する測定値を決定する。感度の測定値が決定された後、プロセス７５０は、ブロック７９５に移動し、感度測定値は、感度しきい値と比較される。感度測定値が感度しきい値を上回る場合、画像整合のためのキーポイントコンステレーションの使用は、信頼できない可能性がある。その場合、プロセス７５０は、ブロック７９９に移動し、キーポイントコンステレーション品質測定値は、第４の品質しきい値未満の値に設定される。
【００６９】
判定ブロック７９５では、ブロック７９０で決定された感度測定値が感度しきい値を下回る場合、プロセス７５０は、ブロック７９６に移動し、キーポイント品質測定値が第４の品質しきい値を上回る値に設定される。次いで、プロセス７５０は、終了ブロック７９８に移動する。
【００７０】
図７Ｂは、キーポイントコンステレーションにおけるランダムノイズに対する立体視画像の対の不整合推定量の感度を決定するためのプロセスを示すフローチャートである。次いで、このプロセスは、感度に基づいてキーポイントコンステレーションの品質レベルを設定する。プロセス７００は、図３に示されるキーポイント品質モジュール３５０に含まれる命令によって実施され得る。プロセス７００は、開始ブロック７０５において開始し、次いで処理ブロック７１０に移動し、立体視画像の対におけるキーポイントマッチスの組に関してロール、ピッチ、およびヨーの角度の推定量が生成される。いくつかの実装形態では、ロール、ピッチ、およびヨーの角度の推定量は、図６において説明したプロセスを使用して生成され得る。たとえば、処理ブロック６２０、６２５、６３０、および６３５は、処理ブロック７１０に含まれ得る。ブロック７１５は、立体視画像の対のキーポイントマッチスにランダムノイズを加える。ブロック７２０は、ランダムノイズを含むキーポイントマッチスに関するロール、ピッチ、およびヨーの角度を推定する。ブロック７１０の場合と同様に、ロール、ピッチ、およびヨーの推定が、図６で説明したように行われ得る。ブロック７２５では、ブロック７１０で生成された角度推定量とブロック７２０で生成された推定量との間の変化量が決定される。いくつかの実装形態では、この変化量を決定するために、各キーポイントマッチスに関する各角度推定量間の差が互いに加えられる。他の実装形態では、この変化量を決定するために、各キーポイントの角度推定量間の差が平均化され得る。いくつかの他の実装形態では、角度推定量の最大差を特定することができる。いくつかの他の実装形態は、角度推定量の差の間の統計的分散または標準偏差を決定することができる。いくつかの実装形態では、変化量の決定は、分散または標準偏差に基づいている可能性がある。
【００７１】
ブロック７３０では、ブロック７２５で決定された分散が、しきい値と比較される。分散がしきい値を上回る場合、プロセス７００は、ブロック７４５に移動し、キーポイントコンステレーションの品質が立体視画像の対を調整するのにふさわしくないと判定される。分散がしきい値を下回る場合、プロセス７００は、ブロック７４０に移動し、キーポイントコンステレーション品質レベルが立体視画像の対を調整する際に使用するのにふさわしいと判定される。次いで、プロセス７００は、終了ブロック７４０に移動する。
【００７２】
図８Ａおよび図８Ｂは、立体視画像の対の左の画像８０５および右の画像８１０を示す。開示された方法を使用すれば、画像８０５および８１０の整合を改善することができる。先に説明したように、画像８０５と画像８１０との間のキーポイントマッチスを決定することができる。
【００７３】
図９Ａは、図８Ａおよび図８Ｂの画像に関するキーポイントコンステレーションを示す。図９Ａでは、キーポイントマッチスの位置を表すために白色が使用されるが、その位置におけるキーポイントマッチスの欠如を表すために黒色が使用される。たとえば、暗い／黒い領域９４０は、元の画像８０５および８１０におけるテーブル８４０の少なくとも一部分に対応する可能性がある。テーブルは、比較的特徴がなく、一定の色であるので、画像内のテーブルの領域は、画像間のキーポイントマッチスを提供しない。同様に、暗い／黒い領域９２０は、同様の理由のために、元の画像８０５および８１０のホワイトボード８２０に対応する可能性がある。キーポイントマップの白色領域９３０は、元の画像８０５および８１０内のテーブル８３０上の列車に対応する可能性がある。列車がテーブルに対して明暗を有するので、列車は、画像間のキーポイントを提供することができる。
【００７４】
キーポイントの最初の組が確立された後、いくつかの実装形態は、基準の組に基づいて、キーポイントの数を低減するか、または「プルーニングする」ことができる。たとえば、いくつかのキーポイントマッチスが互いにしきい値距離内である場合、いくつかの実装形態は、キーポイントコンステレーション内の冗長性を低減し、より効率的な処理を行うために、キーポイントマッチスのうちの１つまたは複数を削除することができる。そのようなプルーニングプロセスの１つの結果は、図９Ｂで観測され得る。
【００７５】
図９Ｂは、キーポイントコンステレーションがプルーニングされた後のキーポイントコンステレーション９６０を示す。特に、列車８３０に対応するキーポイント９５０の一部分が残ることに留意されたい。キーポイントコンステレーションがプルーニングされると、対応するキーポイント間の垂直視差ベクトルが計算される。この計算は、たとえば、図６の処理ブロック６１０によって実行され得る。
【００７６】
図１０は、図８Ａの画像８０５と図８Ｂの画像８１０の両方から構成された画像１００５を示す。画像１００５は、キーポイントコンステレーションから選択されたキーポイント間の垂直視差ベクトル１０２０も含む。垂直視差ベクトルによって示された垂直視差がしきい値を上回る場合、画像をより十分に整合させるために、画像に対する調整が行われ得る。垂直視差がしきい値を上回るかどうかを判定するために、先に説明したように、垂直視差メトリックが決定され得る。次いで、垂直視差メトリックは、しきい値と比較される。垂直視差メトリックがしきい値を上回る場合、画像は、キーポイントコンステレーションに基づいて調整され得る。
【００７７】
立体視画像の対を調整するために、２つの画像８０５および８１０のキーポイントコンステレーションに基づいて、調整が決定され得る。一実装形態は、最初に、ピクセルにおける焦点距離を決定することができる。一実装形態におけるキーポイントコンステレーションおよび立体視画像の対に対する調整を行うために使用されるＭａｔｌａｂ（登録商標）コードの一部分が以下で提供される。Ｍａｔｌａｂ（登録商標）コードは、いくつかの変数を参照する。所与の実装形態におけるこれらの定義が最初に提供される。
【００７８】
・ｈＦＯＶは、立体視画像の対の各画像の水平視野（程度）である。
【００７９】
・ｉｍａｇｅ_ｗｉｄｔｈは、立体視画像の対の一方の画像の画像幅（ピクセル）である。
【００８０】
・ｉｍａｇｅ_ｈｅｉｇｈｔは、立体視画像の対の一方の画像の画像高さ（ピクセル）である。
【００８１】
・ベクトルｄｖは、Ｎｘ４次元ベクトルであり、Ｎはキーポイントマッチスの数である。ベクトルの列次元は、次のように定義される。
【００８２】
○第１の列は、第１の画像のキーポイントのｘ座標である。
【００８３】
○第２の列は、第１の画像のキーポイントのｙ座標である。
【００８４】
○第３の列は、第２の画像のキーポイントのｘ座標である。
【００８５】
○第４の列は、第２の画像のキーポイントのｙ座標である。
【００８６】
いくつかの実装形態では、画像の焦点距離を決定するために、以下のＭａｔｌａｂ（登録商標）コードセグメントが使用され得る。
【００８７】
コードセグメント１
【数１】
0005902297.tif 000002
【００８８】
次に、２つの画像間の垂直回転（ピッチ）、ロール回転（ｚ軸の周り）、およびスケールの差を推定するために、アフィン変換が実行され得る。アフィン変換を実行するためのＭａｔｌａｂ（登録商標）コードは、次のようになる。
【００８９】
コードセグメント２
【数２】
0005902297.tif 000003
【００９０】
次に、以下のコードセグメント３に示されるように、水平回転またはヨーに関する推定量を得るために、射影変換が実行され得る。
【００９１】
コードセグメント３
【数３】
0005902297.tif 000004
【００９２】
立体視画像の対を調整するためにキーポイントコンステレーションが使用される前に、キーポイントコンステレーションの品質は、それがしきい値を上回るかどうかを判定するために評価され得る。いくつかの実装形態では、キーポイントコンステレーション品質は、キーポイント座標に対するランダムな摂動の追加がキーポイントから導出されたヨーの角度の推定量およびロール、ピッチの推定値をしきい値レベルを超えて変化させるかどうかに基づいて決定される。いくつかの実装形態は、キーポイントコンステレーションの品質を検証するために、図７Ｂに示されるプロセス７００と同様のプロセスを利用することができる。
【００９３】
いくつかの実装形態では、角度推定量が決定され、キーポイントコンステレーションの品質が検証されると、それらの角度に基づいて、キーポイント位置が調整される。いくつかの実装形態では、第１の画像内のキーポイント位置は、それらの元の座標を維持し、第２の画像内のキーポイントは、第１の画像とより十分に整合するように調整される。他の実装形態では、両画像内のキーポイント位置が調整される。たとえば、これらの実装形態は、上記で計算された角度推定量の１／２に等しい角度推定量に基づいて各画像内のキーポイントを調整することができる。キーポイントに関する乗法因子として決定されたスケール推定量を使用することにより、スケールに基づく調整が実行され得る。たとえば、スケール推定量に基づいてキーポイントを調整するために、以下の式２が使用され得る。
【００９４】
コードセグメント４
【数４】
0005902297.tif 000005
【００９５】
そうでない場合、いくつかの実装形態は、スケール推定量に基づいてキーポイントの両方の組を調整することができる。たとえば、これらの実装形態では、コードセグメント５が利用され得る。
【００９６】
コードセグメント５
【数５】
0005902297.tif 000006
【００９７】
一実装形態では、ヨー、ピッチ、およびロールに関する角度推定量に基づいてキーポイントを調整するために、ヨー、ピッチ、およびロールの角度推定量に基づいて、射影行列が生成される。行列Ｒを構築するためのＭａｔｌａｂ（登録商標）コードが以下のコードセグメント６に示される。
【００９８】
コードセグメント６
【数６】
0005902297.tif 000007
【００９９】
射影行列Ｒが構築されると、いくつかの実装形態では、以下に提供されるＭａｔｌａｂ（登録商標）コードによりキーポイントが調整され得る。
【０１００】
コードセグメント７
【数７】
0005902297.tif 000008
【０１０１】
キーポイントが調整された後、新しい垂直視差ベクトルが計算され得る。先に説明したように、垂直視差ベクトルに基づいて、垂直視差メトリックが決定され得る。いくつかの実装形態では、垂直視差メトリックは、たとえば図６の判定ブロック６１５によって示されるように、しきい値と比較され得る。このメトリックがしきい値を下回る場合、画像全体は、上記の変換に基づいて調整され得る。いくつかの他の実装形態は、反復ごとに立体視画像の対を調整することができる。上述のプロセスから生じる射影補正は、記憶され、射影行列が生成された後にキャプチャされた追加の立体視画像の対を補正するために使用され得る。
【０１０２】
この技術は、多数の他の汎用または専用のコンピューティングシステム環境または構成で動作可能である。本発明とともに使用するのに好適である可能性がある、よく知られているコンピューティングシステム、環境、および／または構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータシステム、ハンドヘルドまたはラップトップのデバイス、マルチプロセッサシステム、プロセッサベースのシステム、プログラマブルコンシューマーエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれ得る。
【０１０３】
本明細書で使用する命令は、システム内で情報を処理するためのコンピュータ実装ステップを指す。命令は、ソフトウェア、ファームウェア、またはハードウェアに実装され、システムの構成要素によって引き受けられる任意のタイプのプログラムされたステップを含むことができる。
【０１０４】
プロセッサは、Ｐｅｎｔｉｕｍ（登録商標）プロセッサ、Ｐｅｎｔｉｕｍ（登録商標）Ｐｒｏプロセッサ、８０５１プロセッサ、ＭＩＰＳ（登録商標）プロセッサ、Ｐｏｗｅｒ  ＰＣ（登録商標）プロセッサ、またはＡｌｐｈａ（登録商標）プロセッサなどの、任意の従来の汎用のシングルチップまたはマルチチップのプロセッサである可能性がある。加えて、プロセッサは、デジタル信号プロセッサまたはグラフィックスプロセッサなどの、任意の従来の専用プロセッサである可能性がある。プロセッサは、典型的には、従来のアドレスライン、従来のデータライン、および１つまたは複数の従来の制御線を有する。
【０１０５】
このシステムは、詳細に説明されるように、様々なモジュールから構成される。当業者によって諒解され得るように、モジュールの各々は、様々なサブルーチン、手順、定義のステートメント、およびマクロを備える。モジュールの各々は、典型的には、別々にコンパイルされ、単一の実行可能プログラムにリンクされる。したがって、好ましいシステムの機能について説明するために便宜上、モジュールの各々の説明が使用される。したがって、モジュールの各々によって引き受けられるプロセスは、他のモジュールのうちの１つに任意に再分配されるか、単一のモジュール内に互いに結合されるか、または、たとえば共有可能なダイナミックリンクライブラリにおいて利用可能にされ得る。
【０１０６】
このシステムは、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、またはＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）などの、様々なオペレーティングシステムとともに使用され得る。
【０１０７】
このシステムは、Ｃ、Ｃ＋＋、ＢＡＳＩＣ、Ｐａｓｃａｌ、またはＪａｖａ（登録商標）などの任意の従来のプログラミング言語で書き込まれ、従来のオペレーティングシステムのもとで動作し得る。Ｃ、Ｃ＋＋、ＢＡＳＩＣ、Ｐａｓｃａｌ、Ｊａｖａ、およびＦＯＲＴＲＡＮは、実行可能コードを作成するために多くの商用コンパイラが使用され得る業界標準プログラミング言語である。このシステムは、Ｐｅｒｌ、Ｐｙｔｈｏｎ、またはＲｕｂｙなどのインタープリタ型言語を使用して書き込むこともできる。
【０１０８】
さらに、本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを当業者なら諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明してきた。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
【０１０９】
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装することもできる。
【０１１０】
１つまたは複数の例示的な実施形態では、説明された機能および方法は、ハードウェア、ソフトウェアもしくはプロセッサ上で実行されるファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、あるいは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、もしくは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１１１】
上記の説明は、本明細書で開示するシステム、デバイス、および方法のいくつかの実施形態を詳述する。しかしながら、上記が原文にどんなに詳細に掲載されても、システム、デバイス、および方法を多くの方法で実施することができることが諒解されよう。また、上述のように、本発明のいくつかの特徴または態様について説明する際の特定の専門用語の使用は、その専門用語が関連する技術の特徴または態様の任意の特定の特徴を含むことに限定するように、その専門用語が本明細書で再定義されることを暗示するために行われるべきでないことに留意されたい。
【０１１２】
説明された技術の範囲から逸脱することなく、様々な修正および変更を行うことができることが当業者によって諒解されよう。そのような修正および変更は、実施形態の範囲内であるものとする。一実施形態に含まれる要素は、他の実施形態と互換性があり、示された実施形態の１つまたは複数の要素は、任意の組合せで他の示された実施形態とともに含まれ得ることも当業者によって諒解されよう。たとえば、本明細書で説明された、および／または図に示された様々な構成要素のうちのいずれかは、組み合わせられ、交換され、または他の実施形態から除外され得る。
【０１１３】
本明細書における実質的に任意の複数および／または単一の用語の使用に関して、当業者は、コンテキストおよび／または用途に合わせて、複数から単数に、および／または単数から複数に変換することができる。明快のために、様々な単一／複数の並べ替えを本明細書に明確に記載することができる。
【０１１４】
一般に、本明細書で使用される用語は、「オープンな」用語（たとえば、「含む（including）」という用語は、「限定はしないが、含む」と解釈されるべきであり、「有する」という用語は、「少なくとも有する」と解釈されるべきであり、「含む（includes）」という用語は、限定はしないが、含む」と解釈されるべきである、など）として全般的に意図されることが当業者によって理解されよう。もたらされる特許請求の範囲の記載の特定の数が意図される場合、そのような意図は、特許請求の範囲に明示的に記載され、そのような記載がない場合、そのような意図はないことが当業者によってさらに理解されよう。たとえば、以下の添付の特許請求の範囲は、理解を助けるものとして、特許請求の範囲の列記を導入するのに、「少なくとも１つ」および「１つまたは複数」という前置きのフレーズの使用を含むことができる。しかしながら、そのようなフレーズの使用は、同じ特許請求の範囲が「１つまたは複数」または「少なくとも１つ」という前置きのフレーズ、および「１つ（ａ）」または「１つ（ａｎ）」などの不定冠詞（たとえば、「１つ（ａ）」および／または「１つ（ａｎ）」は、典型的には「少なくとも１つ」または「１つまたは複数」を意味するものと解釈されるべきである）を含むときでも、不定冠詞「１つ（ａ）」または「１つ（ａｎ）」による特許請求の範囲の列記の導入が、１つのそのような列記のみを含む実施形態に導入されるそのような特許請求の範囲の列記を含む任意の特定の特許請求の範囲を限定し、同じことが、特許請求の範囲の列記を導入するのに使用される定冠詞の使用に当てはまることを暗示するものと解釈されるべきでない。加えて、導入された特許請求の範囲の列記の特定の数が明示的に列記されても、そのような列記は、典型的には、少なくとも列記された数を意味する（たとえば、他の修飾子のない「２つの列記」のそのままの列記が、典型的には、少なくとも２つの列記または２つ以上の列記を意味する）ものと解釈されるべきであることを当業者は認識するであろう。さらに、「Ａ、Ｂ、およびＣのうちの少なくとも１つ、など」に類似する慣例が使用されるこれらの実例では、一般に、当業者が慣例を理解する意味で、そのような構成が意図される（たとえば、「Ａ、Ｂ、およびＣのうちの少なくとも１つを有するシステム」は、限定はしないが、Ａのみを、Ｂのみを、Ｃのみを、ＡおよびＢをともに、ＡおよびＣをともに、ＢおよびＣをともに、ならびに／またはＡ、Ｂ、およびＣをともに有するシステムを含む、など）。「Ａ、Ｂ、またはＣのうちの少なくとも１つ、など」に類似する慣例が使用されるこれらの実例では、一般に、当業者が慣例を理解する意味で、そのような構成が意図される（たとえば、「Ａ、Ｂ、またはＣのうちの少なくとも１つを有するシステム」は、限定はしないが、Ａのみを、Ｂのみを、Ｃのみを、ＡおよびＢをともに、ＡおよびＣをともに、ＢおよびＣをともに、ならびに／またはＡ、Ｂ、およびＣをともに有するシステムを含む、など）。さらに、２つ以上の選択的用語を表す、ほぼすべての選言的言葉および／またはフレーズは、明細書、特許請求の範囲、または図面を問わず、用語の１つ、用語のいずれか、または両方の用語を���む可能性を考えるものと理解されるべきであることが当業者によって理解されよう。たとえば、「ＡまたはＢ」というフレーズは、「Ａ」もしくは「Ｂ」、または「ＡおよびＢ」の可能性を含むものと理解されよう。
【０１１５】
様々な態様および実施形態が本明細書で開示されてきたが、他の態様および実施形態が当業者には明らかであろう。本明細書で開示された様々な態様および実施形態は、説明のためのものであり、限定することが意図されない。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  立体視撮像デバイスを較正する方法であって、
第１の撮像センサーにより、インタレストのシーンの第１の画像をキャプチャすることと、
第２の撮像センサーにより、前記インタレストのシーンの第２の画像をキャプチャすることであって、前記第１の画像および第２の画像は立体視画像の対を備えることと、
キーポイントコンステレーションを備えるキーポイントマッチスの組を前記第１の画像および前記第２の画像に基づいて決定することと、
キーポイントコンステレーション品質レベルを決定するために、前記キーポイントコンステレーションの品質を評価することと、
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定することであって、前記しきい値を上回る場合、前記キーポイントコンステレーションに基づいて較正データを生成し、前記較正データを不揮発性記憶デバイスに記憶することと
を備える、方法。
［Ｃ２］
前記キーポイントコンステレーションに基づいて較正データを生成することは、
キーポイントマッチスの前記組内の１つまたは複数のキーポイントマッチスにおけるキーポイント間の１つまたは複数の垂直視差ベクトルを決定することと、
前記１つまたは複数の垂直視差ベクトルに基づいて垂直視差メトリックを決定することと、
前記垂直視差メトリックをしきい値と比較することと、
前記垂直視差メトリックが前記しきい値を上回る場合、キーポイントマッチスの前記組に少なくとも部分的に基づいてキーポイントマッチス調整を決定することと
を備える、Ｃ１に記載の方法。
［Ｃ３］
キーポイントマッチス調整を決定することは、
キーポイントマッチスの前記組に基づいてアフィンフィットを決定することと、
キーポイントマッチスの前記組に基づいて保護フィット(a protective fit)を決定することと、
前記アフィンフィットおよび前記射影フィット(the projective fit)に基づいて射影行列を生成することと、
前記射影行列に基づいてキーポイントマッチスの前記組を調整することと
を備える、Ｃ２に記載の方法。
［Ｃ４］
前記較正データは、前記射影行列を含む、Ｃ３に記載の方法。
［Ｃ５］
キーポイントマッチスの前記組に基づいてアフィンフィットを決定することは、ロール推定量、ピッチ推定量、およびスケール推定量を決定する、Ｃ３に記載の方法。
［Ｃ６］
前記射影フィットを決定することは、ヨー推定量を決定する、Ｃ３に記載の方法。
［Ｃ７］
キーポイントマッチスの前記調整された組に基づいて前記立体視画像の対を調整することをさらに備える、Ｃ３に記載の方法。
［Ｃ８］
キーポイントマッチスの前記調整された組に基づいて新しい垂直視差ベクトルを決定することと、前記新しい垂直視差ベクトルがしきい値を上回る視差を示す場合に、キーポイントマッチスの前記組をさらに調整することとをさらに備える、Ｃ３に記載の方法。
［Ｃ９］
キーポイントマッチスの前記組を調整すること、および新しい垂直視差ベクトルを決定することは、前記新しい垂直視差ベクトルがしきい値未満の視差を示すまで、反復的に実行される、Ｃ８に記載の方法。
［Ｃ１０］
しきい値を上回る加速度計の出力に応答して実行される、Ｃ１に記載の方法。
［Ｃ１１］
オートフォーカスイベントに応答して実行される、Ｃ１に記載の方法。
［Ｃ１２］
前記キーポイントコンステレーションの品質を評価することは、キーポイント間の距離を決定することを含む、Ｃ１に記載の方法。
［Ｃ１３］
前記キーポイントコンステレーションの品質を評価することは、各キーポイントの画像コーナーまでの距離を決定することを備える、Ｃ１に記載の方法。
［Ｃ１４］
前記キーポイントコンステレーションの品質を評価することは、キーポイントマッチスの数を決定することを備える、Ｃ１に記載の方法。
［Ｃ１５］
前記キーポイントコンステレーションの品質を評価することは、前記キーポイント位置における摂動に対する前記キーポイントコンステレーションから導出された１つまたは複数の推定量の感度を決定することを備える、Ｃ１に記載の方法。
［Ｃ１６］
キーポイントマッチスの前記組から１つまたは複数のキーポイントマッチスを除去するために各キーポイントマッチスの位置に基づいてキーポイントマッチスの前記組をプルーニングすることをさらに備える、Ｃ１に記載の方法。
［Ｃ１７］
第１の撮像センサーと、
第２の撮像センサーと、
前記第１の撮像センサーからの第１の立体視画像の対の第１の画像をキャプチャし、前記第２の撮像センサーからの前記第１の立体視画像の対の第２の画像をキャプチャするように構成されたセンサー制御モジュールと、
前記第１の画像と前記第２の画像との間のキーポイントマッチスの組を決定するように構成されたキーポイントモジュールと、
キーポイントコンステレーション品質レベルを決定するためにキーポイントマッチスの前記組の品質を評価するように構成されたキーポイント品質モジュールと、
前記キーポイントコンステレーション品質レベルを所定のしきい値と比較し、前記キーポイントコンステレーション品質レベルが前記所定のしきい値を上回る場合、前記キーポイントコンステレーションに基づいて前記立体視画像の対を調整するように構成されたマスター制御モジュールと
を備える、撮像装置。
［Ｃ１８］
前記キーポイント品質モジュールは、前記第１の画像および前記第２の画像内の前記キーポイントコンステレーションにおけるキーポイントマッチスの位置に少なくとも部分的に基づいて、前記キーポイントコンステレーション品質レベルを決定する、Ｃ１７に記載の装置。
［Ｃ１９］
前記キーポイント品質モジュールは、前記キーポイントコンステレーションに基づいて生成された角度推定量の変化と前記キーポイントコンステレーションに基づくノイズの多いキーポイントコンステレーションとに少なくとも部分的に基づいて、前記キーポイントコンステレーション品質レベルを決定する、Ｃ１７に記載の装置。
［Ｃ２０］
前記ノイズの多いキーポイントコンステレーションは、前記キーポイントコンステレーション内のキーポイントのキーポイント位置の少なくとも一部分にランダムノイズを加えることに少なくとも部分的に基づいて生成される、Ｃ１７に記載の装置。
［Ｃ２１］
前記マスター制御モジュールは、しきい値を上回る加速度計の出力に応答して、前記キーポイントコンステレーション品質レベルを所定のしきい値と比較するように構成される、Ｃ１７に記載の方法。
［Ｃ２２］
前記マスター制御モジュールは、オートフォーカスイベントに応答して、前記キーポイントコンステレーション品質レベルを所定のしきい値と比較するように構成される、Ｃ１７に記載の方法。
［Ｃ２３］
立体視画像の対の第１の画像をキャプチャするように構成された第１の撮像センサーと、
前記立体視画像の対の第２の画像をキャプチャするように構成された第２の撮像センサーと、
キーポイントコンステレーションを備えるキーポイントマッチスの組を前記第１の画像および前記第２の画像に基づいて決定するための手段と、
キーポイントコンステレーション品質レベルを決定するために、前記キーポイントコンステレーションの品質を評価するための手段と、
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定するための手段と、
前記しきい値を上回る場合、前記キーポイントコンステレーションに基づいて較正データを生成するための手段と、
前記較正データを不揮発性記憶デバイスに記憶するための手段と
を備える、立体視撮像デバイス。
［Ｃ２４］
前記キーポイントコンステレーションに基づいて較正データを生成するための前記手段は、
キーポイントマッチスの前記組内の前記１つまたは複数のキーポイントマッチスにおけるキーポイント間の１つまたは複数の垂直視差ベクトルを決定し、
前記１つまたは複数の垂直視差ベクトルに基づいて垂直視差メトリックを決定し、
前記垂直視差メトリックをしきい値と比較し、
前記垂直視差メトリックが前記しきい値を上回る場合、キーポイントマッチスの前記組に少なくとも部分的に基づいてキーポイントマッチス調整を決定する
ことによって前記較正データを生成する、Ｃ２３に記載のデバイス。
［Ｃ２５］
前記キーポイントコンステレーション品質レベルは、前記キーポイント位置における摂動に対する前記キーポイントコンステレーションから導出された１つまたは複数の推定量の感度を決定することによって決定される、Ｃ２３に記載のデバイス。
［Ｃ２６］
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを決定するための前記手段は、キーポイント間の距離を決定するための手段を含む、Ｃ２３に記載のデバイス。
［Ｃ２７］
前記キーポイントコンステレーションの品質を評価するための前記手段は、各キーポイントの画像コーナーまでの距離を決定するための手段を備える、Ｃ２３に記載のデバイス。
［Ｃ２８］
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されるとき前記プロセッサに、
第１の撮像センサーにより、インタレストのシーンの第１の画像をキャプチャすることと、
第２の撮像センサーにより、インタレストの前記シーンの第２の画像をキャプチャすることであって、前記第１の画像および第２の画像は立体視画像の対を備えることと、
キーポイントコンステレーションを備えるキーポイントマッチスの組を前記第１の画像および前記第２の画像に基づいて決定することと、
キーポイントコンステレーション品質レベルを決定するために、前記キーポイントコンステレーションの品質を評価することと、
前記キーポイントコンステレーション品質レベルが所定のしきい値を上回るかどうかを判定することであって、前記しきい値を上回る場合、前記キーポイントコンステレーションに基づいて較正データを生成し、前記較正データを不揮発性記憶デバイスに記憶することと
の方法を実行させる、非一時的コンピュータ可読媒体。
【図１】
0005902297.tif 000009
【図２Ａ】
0005902297.tif 000010
【図２Ｂ】
0005902297.tif 000011
【図２Ｃ】
0005902297.tif 000012
【図２Ｄ】
0005902297.tif 000013
【図３】
0005902297.tif 000014
【図４】
0005902297.tif 000015
【図５】
0005902297.tif 000016
【図６】
0005902297.tif 000017
【図７Ａ】
0005902297.tif 000018
【図７Ｂ】
0005902297.tif 000019
【図８Ａ】
0005902297.tif 000020
【図８Ｂ】
0005902297.tif 000021
【図９Ａ】
0005902297.tif 000022
【図９Ｂ】
0005902297.tif 000023
【図１０】
0005902297.tif 000024