(57)【特許請求の範囲】
【請求項１】
３次元高密度データセットを表し、対象物の走査された画像フレームを有するスキャナ出力のためにカメラ位置を決定する方法であって、
前のフレーム群のロバストな記述子を使用して、前記前のフレーム群と現在のフレームとの一致があるか否かを決定することによって、逐次的に撮影された複数の画像フレームから暫定的なカメラ位置を決定する工程と、
前記暫定的なカメラ位置を使用して、前記現在のフレームと発見されたフレームとを相互相関させることによってラフなカメラ位置を決定する工程と、
を含み、
前記画像フレームは、少なくとも２つの異なるチャネルから取得され、前記少なくとも２つの異なるチャネルは、（ａ）マスク中のレンズおよび第１の開口を通して光が透過する第１のチャネルと、（ｂ）前記マスク中の前記レンズおよび第２の開口を通して光が透過する第２のチャネルとを含む、方法。
【請求項２】
前記３次元高密度データセットは、関連する３次元キーポイントデータセットを有し、前記暫定的なカメラ位置が決定されない場合は、前記関連する３次元キーポイントデータセットに基づきフレームをマッチングすることによって前記暫定的なカメラ位置を決定する、請求項１に記載の方法。
【請求項３】
前記ラフなカメラ位置の決定を用いて、単なる表示用の前記高密度データセット集合を生成する工程をさらに含む、請求項１に記載の方法。
【請求項４】
前記暫定的なカメラ位置およびラフなカメラ位置の決定を、コンピュータプロセッサでリアルタイムに決定する、請求項１に記載の方法。
【請求項５】
前記ラフなカメラ位置を用いて詳細なカメラ位置を決定する工程をさらに含む、請求項１に記載の方法。
【請求項６】
前記詳細なカメラ位置の決定を後処理で行う、請求項５に記載の方法。
【請求項７】
前記詳細なカメラ位置を決定する工程は、
第１の閾値距離で複数の前記３次元高密度データセットのマッチングを行う工程と、
別の複数の３次元高密度データセットを前記第１の閾値距離でマッチングした前記複数のうちの１つとマッチングする工程と、
全ての対象のフレームがそのようにマッチングされるまで、別の複数の３次元高密度データセットを前記第１の閾値距離でマッチングした前記複数の別の一つとマッチングする工程と、
前記マッチングしたセットの相対位置を決定する工程と、
を含む、請求項５に記載の方法。
【請求項８】
前記詳細なカメラ位置の決定を用いて前記高密度データセット集合から物理的なモデルを生成するためにコンピュータ可読走査出力を生成する工程をさらに含む、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
それぞれが発明者としてＧｈａｒｉｂを含み、かつカリフォルニア工科大学に譲渡された複数の特許は、単一のイメージャレンズおよび１つ以上のカメラ／イメージャに関連して、多開口デフォーカスを用いたプロフィロメトリを行うのに有用なハードウェア構成を包含している。これらの特許としては、米国特許第６，２７８，８４７号、第７，００６，１３２号、第７，６１２，８６９号および第７，６１２，８７０号が挙げられ、その全てのライセンスが本明細書の譲受人に与えられており、その内容全体が参照により本明細書に組み込まれる。２次元走査データを用いて３次元座標情報を生成するデフォーカス原理は、これらの特許を参照して理解することができる。これらのデフォーカス原理を適用するためにさらに改良されたハードウェアが本明細書に記載されている。
【背景技術】
【０００２】
ハードウェアのそのような改良に関わらず、対象物の表面をマッピングするために、デフォーカスによって決定される３次元情報を集めるには、鋭い位置情報が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多くの場合カメラ「姿勢」と呼ばれるそのような位置情報は、様々な方法で取得することができる。Ｚｈａｎｇに付与され（３Ｍ社に譲渡された）米国特許第７，６０５，８１７号明細書には１つの手法が記載されており、Ｇｈａｒｉｂに付与され（カリフォルニア工科大学に譲渡された）米国特許出願公開第２００９／０２９５９０８号明細書には、別の手法が記載されている。どちらの手法にも、本明細書に記載されている姿勢技術の利点は示されていない。
【課題を解決するための手段】
【０００４】
従って、任意に対象物のプロフィロメトリを行うためのハードウェアおよびソフトウェア構成を開示する。有利な撮像装置（すなわち、イメージャ、カメラまたはスキャナ）について記載する。イメージャ位置を決定する有利な手法についても記載する。一緒に使用すると有利であるが、記載されている各態様を互いに独立して使用してもよい。さらに、本教示を、速度測定などを含む他の分野に応用してもよい。
【０００５】
ハンドヘルドイメージャ／カメラ／スキャナを用いて３次元情報を取得してもよい。時として、走査される対象は、スキャナの視野よりも大きく、かつ／または、当該対象は異なる有利な地点から走査される。そのような情報を取り込むために、スキャナ装置の姿勢は、異なる時間で変化する。そこで、任意の数の画像シーンにわたって空間的に関連した基準でカメラ姿勢を決定することに関連して、組み合わせられたか集められた画像シーンを用意してもよい。カメラ姿勢決定の忠実性から、以下、それをカメラの「真の姿勢」という。
【０００６】
カメラ位置を決定するためのこの実施は、潜在的にマッチング可能であることを示す情報が既に決定されているシーンを比較することによって開始する（ここでは、以下にさらに詳しく述べる相互相関、最小二乗平均、超解像ＰＩＶまたは歪み処理／歪み補正処理手法などの様々な技術によって、マッチングを行ってもよい）。最終的もしくは実際の（すなわち、システム出力のためにデータセットを組み合わせるための）カメラ位置の真の姿勢の決定は、画像の取り込み後の後処理設定で行う。
【０００７】
シーンは、画像の取り込みの間に（すなわち「リアルタイム」などで）行われるおよそ正確なカメラ位置決定（すなわち「ラフな姿勢」）に基づいて潜在的にマッチング可能なものとして示されている。「リアルタイム」で実行される処理および他の動作は、ユーザがシステム性能の遅れを認識しないように実行される。可能であれば、データセットに基づく所与の暫定的な姿勢情報を（上記のように）マッチングすることによって、ラフな姿勢を生成する。
【０００８】
ラフな姿勢を決定する際に使用される（もはや信頼されない）最初のカメラ位置情報（すなわち「暫定的な姿勢」）は、複数の方法で生成することができる。一般に、ロバストな処理を用いて暫定的な姿勢を見つける。１つの手法は、１つのフレームに由来する容易に認識可能な特徴に関する減少したデータセットを、その後のフレームに由来する容易に認識可能な特徴に関する減少したデータセットと比較するという標準的な方法を使用することである。米国特許出願公開第２００８／０２０１１０１号明細書の００１０段落（本出願の優先日前の最先端技術の状態を記載している）を参照されたい。但し、そのような手法は、前の（例えば、２０〜１００）フレームから蓄積されたか集められたものから現在のフレーム中のそのような特徴を比較することによって、変更および強化することができる。
【０００９】
いずれの場合も、暫定的な姿勢それ自体は、対象データを組み合わせてスキャナ出力を生成するための上記任意の方法では使用されない。その解決法は、本システムの要件を全く満たさないため、歯冠の製造および／または他の高精度のプロフィロメトリ用途にとって望ましい実行可能な画像ファイル出力を提供することができない。但し、いくつかの状況では、暫定的な姿勢データは、空間的／グローバルマッチングによって真の姿勢の決定を実行する際に、ラフな姿勢データの代役を務めることができる。
【００１０】
類似性を使用すると、暫定的な姿勢により、米国の郵便配達の状態を示すのに類似した位置データが得られる。地域の郵便番号に類似したより近い位置は、ラフな姿勢手順によって決定される。特定の私書箱位置に類似した真の姿勢を単独で使用して、最終的に提供可能なものが得られる。
【００１１】
従って、画像集合のために真の姿勢を使用することにより、不正確なアドレス情報に関連する誤差の累積およびデータ／パッケージの喪失を回避する。暫定的もしくはラフな姿勢を使用することにより、計算時間の面から実行可能な真の姿勢の発見を行う（これは、特に、ラフな姿勢の空間的な精度の向上がより明白である完全な顎の走査のようなより長い走査の際にラフな姿勢を用いる場合に当てはまる）。
【００１２】
より直接的には、「暫定的な姿勢」は、とりあえず使用される位置情報であるが、非常に不確かで予備的である。「ラフな姿勢」は、まだ不確かであるが、カメラ位置について言えば、より正確であり、およそ正確である。「真の姿勢」は、意図された目的のためにシステム仕様を満たすのに必要な程度に正確なカメラ位置決定である。一例として、この精度は、それが以下の仕様（１本の歯に対して約３５ミクロン以下のＲＭＳ誤差、３本の歯に対して約４０ミクロン以下のＲＭＳ誤差）を有するプロフィロメトリ出力ファイルを提供することができるような精度である。
【００１３】
そのような結果を提供する際に、本明細書の発明者らは、順次／経時的に生成された位置情報（すなわち暫定的な姿勢）に対する信頼により、誤差の累積または集積が生じるため、暫定的な姿勢を精密化して、可能であれば真の姿勢を決定する際にさらに使用されるラフな姿勢を生成することが重要であることを見出した。重要な／関連した領域を走査する際は（歯冠の製造のために走査する場合など）、生成される誤差があまりに大きいために、正確に情報を集めて関連したモデルを生成することができない。
【００１４】
本明細書で検討される別の態様は、マッチングそのものを行う方法である。様々な技術が用いられる。そのような技術としては、以下に記載する相互相関技術ならびに「姿勢に基づくマッチング」処理全体に回転要素を任意に組み込むことが挙げられる。１つのフレームを回転させて、いくらか知られている（すなわち、暫定的もしくは大まかに知られている）空間的な関係を有する別のフレームにより密接に一致させることにより、そうしなければ行うことができない相互相関を可能にする。
【００１５】
有利なハードウェアの実装に関しては、参照されている手法と同様に、それは多開口を有する単レンズを用いる。好ましい実施形態は、市販のセンサの異なるカラーチャネルを用いて、簡易ハードウェアで、（任意にＬＥＤなどの単一のカラー光源によって発光された）光の異なる波長を取り込む。従って、さらなるビームスプリッタ、ロックダウンを有する位置合わせ制御装置または他の扱いにくいハードウェアは必要ではないため、非常に小型かつ（衝撃、熱循環などに対して）ロバストなイメージャハンドピースの製造が可能になる。
【００１６】
本発明は、それを具体化するハードウェアおよびソフトウェアを含む主題の装置および方法を含む。より詳細な考察を、以下の図に関連して示す。
【００１７】
本願は、２０１０年９月３日に出願された「複数の決定を有する３次元画像システム（Three-Dimensional
Image System with Multiple Determinations）」という発明の名称の米国仮特許出願第６１／３８００９４号の優先権を主張するものであり、上記出願の開示内容全体が参照により本明細書に組み込まれる。
【００１８】
本明細書で提供されている図は必ずしも縮尺どおりではなく、いくつかの構成要素および特徴は、明確性のために誇張されている。図示されている実施形態からの本発明の変形も想定されている。従って、図中の本発明の態様および要素の描写は、本発明の範囲を限定するものではない。
【図面の簡単な説明】
【００１９】
【図１Ａ】一実施形態のハードウェアのブロック図である。
【図１Ｂ】市販のカラーセンサに関連するフィルタ特性を示す。
【図２】要約フローチャートである。
【図３Ａ】図３Ａ〜図３Ｃは、図２のリアルタイム動作のより詳細なフローチャートである。
【図３Ｂ】図３Ａ〜図３Ｃは、図２のリアルタイム動作のより詳細なフローチャートである。
【図３Ｃ】図３Ａ〜図３Ｃは、図２のリアルタイム動作のより詳細なフローチャートである。
【図４Ａ】図４Ａおよび図４Ｂは、相互相関マッチングを詳述する。
【図４Ｂ】図４Ａおよび図４Ｂは、相互相関マッチングを詳述する。
【図４Ｃ】３次元点位置の決定を示すフローチャートである。
【図５】走査手順を概略的に示す。
【図６】対象の歯の画像を取得することに関連して、複数の異なるライブラリの使用を示す。
【図７】グローバルマッチングを行う方法を示す。
【図８】フレームの発見と、図３Ｃおよび図７で言及されている姿勢に基づく歪み処理における平行移動を示す。
【図９】姿勢に基づく歪み処理の技術を関数で詳述する。
【発明を実施するための形態】
【００２０】
本発明の様々な例示的な実施形態について以下に記載する。非限定的な意味でこれらの例は参照されている。より広く適用可能な本発明の態様を例示するためにそれらは提供されている。本発明の真の趣旨および範囲を逸脱しない範囲で、記載されている本発明に様々な変更をなしてもよく、かつ均等物を代わりに用いてもよい。さらに、本発明の趣旨または範囲を逸脱しない範囲で、特定の状況、材料、化合物、方法、処理行為または工程を目的に合わせるために、多くの修正を行ってもよい。そのような修正は、本明細書に記載されている特許請求の範囲に含まれるものとする。
【００２１】
（撮像ハードウェア）
図１Ａは、ハードウェアの実施形態のブロック図である。ハンドヘルドスキャナ１００を使用して対象物９９を撮像する。スキャナ１００は、複数の光学および電気部材を保持する外側ハウジング１０２を有する。スキャナは、任意の種類のカメラ１４０、または光学情報を受け取ってその光学情報を電気情報に変換する任意の他の装置を備えることができる。例えば、スキャナは、ＣＣＤカメラ、ＣＭＯＳイメージセンサ、または光量子を電気信号に変換する任意の他の種類の光センサを備えていてもよい。カメラ１４０は、２次元情報および／または３次元情報のうちの一方または両方を示す出力情報を生成する。２次元情報を、撮像装置と撮像される対象物との間のｚ軸方向１１１に垂直な座標として定義されるｘおよびｙ座標と称してもよい。３次元情報は、カメラ１１０と撮像される対象物との距離を示す、ｘおよびｙ座標に直交するｚ軸座標を含んでいてもよい。この特定の座標配置に限度されるものではないため、従来どおりに、軸を傾けたり反転させたりすることもできる。
【００２２】
画像情報は、ｘ，ｙおよびｚ座標として格納されていてもよく、３次元点群、３次元メッシュ、または２次元および／または３次元情報を表すことができる任意の他の形態などの任意の他の形態で格納されていてもよい。
【００２３】
ウィンドウ１０５は、３次元対象物９９の走査を可能にするスキャナ１００の一部に形成されている。一実施形態では、これを、歯などの歯科対象物を走査して歯のマップを形成するために使用してもよい。本実施形態は歯の走査について記載しているが、撮像される対象物９９は、任意の対象物、対象物の集合体、対象物の一部または他の対象であってもよい。例えば、歯科撮像用途では、対象物９９としては、１本の歯、歯の四半部、または仮想的な歯科印象が望まれる歯の完全な集合体が挙げられる。他の実施形態では、対象物は、いくつかの他の医用対象、例えば、目、鼻、頭または耳などであってもよい。
【００２４】
異なるカラー光要素１１５、１１６を含む照明器は、歯９９に光を与える。また、照明された対象物の画像は、ウィンドウ１０５によって受け取られる。コーナー反射鏡１２０は、受け取った照り返し(radiation)を光学系１２５に反射させる。他の実施形態では、光学系を、コーナー反射鏡なしで動作させてもよい。
【００２５】
光学系は、レンズ１３０と、多開口１３５を有するマスクとを備えていてもよい。開口１３５は、色分けされた開口であってもよく、すなわち、一方の開口が唯一または主に青い色を透過させてもよく、他方の開口は、赤い色を有する光のみを透過させてもよい。照明１１５、１１６は、マスクの色に一致する色（ここでは、１１５から青い照明、１１６から赤い照明）を与えてもよい。これにより、２つの異なるチャネル、すなわち２つの開口のそれぞれから１つのチャネルの情報が生成される。本明細書に記載されている処理は、これらの２つの異なるチャネルを識別して２つのチャネルから異なる情報を入手する。
【００２６】
開口１３５からの光は、電子カメラ１４０に提供され、電子カメラ１４０は、開口から受け取った光を示す電子出力を生成する。上記カメラは、ケーブル１４５によって、上記カメラを駆動しかつ情報を分析するためのソフトウェアを備えた計算装置１５０に接続されている。ワイヤ１４５は、上記カメラを駆動するための電力を含んでいてもよく、上記カメラから情報を受け取ってもよい。
【００２７】
計算装置１５０は、本出願の技術に従って記述された内部プログラムに従って動作するマイクロプロセッサ１５３を有する汎用プロセッサであってもよい。上記計算装置は、これに加えて、あるいはこれに代えて、例えば、表示装置１６０を駆動するビデオカード内にグラフィック処理装置またはＧＰＵ１５５を備えていてもよい。ＧＰＵ１５５は、例えばＡＴＩまたはＮｖｉｄｉａビデオカードであってもよい。上記計算装置は、これに加えて、あるいはこれに代えて、フィールドプログラマブルメモリ（例えばゲートアレイ）または任意のカスタムハードウェアもしくはカスタムロジックを備えていてもよい。
【００２８】
一実施形態では、図１Ａの携帯型ハンドヘルドスキャナを移動しながら、走査領域に関する情報をなお入手ことができる。カメラが複数の異なる時間でそれぞれ移動すると、その新しいカメラ位置に関する新しい情報が得られる。これにより、最終的に撮像される対象物９９全体をウィンドウ１０５よりも大きいものにすることができる。
【００２９】
カメラ１４０は、既にカメラ１４０内のイメージセンサの一部である色を分離するためのカラーフィルタアレイを使用する標準的なカラーカメラ（例えば、Micron Technology社製の1/3-Inch SOC Megapixel
CMOS Digital Image Sensor）であってもよい。カメラ１４０のカラーフィルタアレイ部分のフィルタは、カラー光線（ここでは赤および青のチャネル）を分離して情報を入手し、かつ開口１３５のカラーフィルタを透過したカラー光線を識別する。各カラーフィルタ付開口からの情報は、カメラ１４０の適当なフィルタ部分によってのみ受け取られる。
【００３０】
カラーフィルタアレイは、米国特許第３，９７１，０６５号明細書に記載されているようなベイヤーフィルタであってもよく、あるいは、これに代えて、ＣＹＧＭフィルタおよびＲＧＢＥフィルタなどの異なる種類のカラーフィルタまたはカスタムフィルタアレイであってもよい（例えば、青および赤として色分けされた２つの開口がある場合、フィルタアレイは青および赤の交互フィルタを有する）。カスタム二色フィルタが組み込まれたカメラであれば、二色二開口システムに関連して利用可能なセンサ域の全てを使用するという利点を有するであろう。
【００３１】
しかし、そのような標準的なイメージャを使用する際は、利用可能な３チャネルカラー（ＲＧＢ）のうちの２つ（Ｒ，Ｂ）のみが使用される。これは、光センサの不動産の一部、すなわち使用されないカラーが配置されている領域が本質的に無駄になることを意味している。理論では、そのような手法では、使用することができない光センサ表面の量に等しい比率だけ、システムのダイナミックレンジが低下する。従来のベイヤーフィルタを用いた場合、これは、センサ領域のおよそ半分になる。
【００３２】
驚くべきことに、そのような手法は、なお有利に実施されている。最適以下のデータセットが記録されるという従来からの懸念により、システムユーティリティが妨げられるという問題は生じない。実際には、赤および青のチャネルのみを選択することによって、処理の観点からは、第３の緑の色分けされた開口および緑のチャネルが記録される場合よりもノイズの導入は少ない。この事実は、図１Ｂに関連して示されている。すなわち、センサについて例示されている赤（Ｒ）および青（Ｂ）のフィルタの分離により、本質的に（所与の強度のカットオフまたは閾値で）赤で色分けされた開口を透過する光をセンサの赤のチャネルのみに確実に記録することができ、青についても同様である。緑のチャネルが導入される場合、透過範囲の重複により、緑の開口からの光は、赤および青のセンサチャネルのそれぞれによってより容易に吸収され、また、緑のセンサチャネル（Ｇ）は、赤および青で色分けされた開口のそれぞれからの（ここでも所与の閾値の）光をより容易に吸収するであろう。
【００３３】
よりクリーンなセンサデータのためにそのような「クロストーク」を回避することにより、画素数の（効果的な）減少を十二分に補償することが見出された。本質的には、チャネルの下位選択により、低コスト（それらは既製品として入手可能なため）のセンサ部品を有する高品質の画像システムを製造することができる。
【００３４】
本発明のハードウェアの態様は上記に焦点を当てているが、本発明のソフトウェアおよび関連する方法論は異なる数の開口および／または色を用い得ることを理解されたい。いずれの場合も、控えめながら色のついたエミッタについて上に記載しているが、合成色（琥珀色または白色など）を用いることができる。特に、最終的に使用されるカラーチャネル間のさらなる分離を達成するために緑のチャネルの使用を省くと、この最後の状況でさらにより顕著な利点が得られることがある。
【００３５】
（デフォーカス）
本明細書で全体として参照されている複数の参考文献（Ｇｈａｒｉｂに付与された上記特許を含む）は、「デフォーカス」の概念について述べている。最も広い意味で、「デフォーカス」は、公知の空間的関係を有する複数のピンホールカメラ型の開口による撮像を必要とする。上記開口により、カメラのセンサシステムによって受け取られる画像が制限される。単一のセンサまたは複数の協働センサを使用するか否かに関わらず、各開口から受け取られた画像から特定された特徴のｘ，ｙ座標の差を比較して、それらの特徴のｚ座標値を決定する。
【００３６】
走査対象物からある距離で記録された特徴間のスカラ差を、別の距離で記録された特徴間のスカラ差と比較する。例えば、開口の千鳥形配列で撮像して得られた三角パターン間の差を使用してｚ軸差を決定する。さらに、較正セットを使用して、その結果の精度を高めることができる。公知の格子パターンを撮像し、較正表を格納することによって、記録された画像データの非線形性を画像特徴位置の「歪み補正」によって補うことができる。
【００３７】
（マージンの定義）
３次元データ出力ファイル（例えば、歯冠の製造で使用されるＳＴＬファイル）を生成するために不規則な物体（例えば１つ以上の歯）を走査する際は、３次元走査データがデータベースに追加される境界を定義すると有用である。そのような境界（すなわち「マージン」）の定義は、ユーザが走査活動を完全な走査を生成する領域に集中するように指示されている範囲を定義するのに有用となり得る。また、走査は完了していないがマージンが定義されている場合、走査されてない領域の近似値は、代わりに補間によって補うことができる。なおさらに、明確に定義された境界は、点の外れ値のフィルタリングに有用である（すなわち、マージンの視野から外れた点は、内側表面の計算では考慮されない）。
【００３８】
マージンのユーザによる定義により、特定の利点が得られる。走査されるか走査された対象物のデジタル表現に関して、（ワンド、タッチスクリーンインタフェースまたは他の手段を用いて）線または線分をデジタル的に描画することによって行う場合、ユーザは、観察および経験に基づいて主観的判断を行うことができる。このように人間の能力を利用することにより、高コストまたは複雑なプログラミングの埋め込みの必要性および／またはそれがない場合にユーザの定性的な「目」で避けることができる誤差の導入を回避する手助けをしてもよい。
【００３９】
上に記載されているユーザによって生成されるマージンの定義に対する手法では、ｘおよびｙ座標情報は、表示画面の基準面に記録される。これを行う際は、表示される（走査したか走査される）物体の画像上にユーザによって線または曲線が描かれる。従って、この平面の各（例えば青のチャネルの）ｘ，ｙ点は、複数の可能なｚ値と交わる。次いで、走査からの高密度点群／情報集合および較正セットに関連して、真のｘ，ｙ，ｚを決定することができる。従って、この行為により、ユーザが入力した２次元情報に基づいて、３次元特徴が生成される。
【００４０】
（画像決定ソフトウェアの概要）
図２は、画像の決定および処理の演算の概要フローチャートである。２００では、本システムは、第１の時間ｔ１で画像情報を取得する。
【００４１】
一実施形態では、この情報は、開口を識別することができる方法で取り込まれた多開口からの複数画像である。上に例示されている実施形態では、カラーフィルタを使用してチャネルを分離する。開口のうちの一方は、唯一もしくは主に赤い光を透過させる赤のフィルタに関連づけることができ、他方の開口は、唯一もしくは主に青い光を透過させること青のフィルタに関連づけることができる。この手法では、１つの情報が２つの分離した開口のそれぞれを透過したものである２つのチャネルの情報が生成される。別の実施形態によれば、色によってチャネルを分離するのではなく、開口が正三角形などの指定された配列で配置されており、プロセッサ１５３は、最終画像中でその正三角形を認識して、開口に由来する画像の一部を見つける。別の実施形態によれば、異なる開口およびカメラセンサに異なる偏光を与えることにより開口およびカメラの両方に偏光を使用することによって異なるチャネルの偏光を修正して、異なるチャネルを形成することができる。本実施形態は、異なるチャネルとしてそれらの異なる偏光を使用する。異なる物理的なマスク形状（成形された開口）を与えることによって、あるいは開口を変更する時分割によって（例えば、それを至るところに移動させることによって）、チャネルを異なる方法で形成することができる。
【００４２】
実施の有無に関係なく、２０５では、ロバストな特徴検出器（例えば、ロバストな特徴検出器は、既製の「ＳＩＦＴ」ソフトウェアまたは簡単に実装されるカスタムソフトウェアを使用することができる）を使用して、この例では青のチャネルからの減少したデータセットを用いて現在の画像フレームに対する基準を決定する。任意のある時間で取得された画像フレームは、画像フレーム全体よりも小さなものであることに留意されたい。本明細書では基準を「キーポイント」と称するが、異なる画像で認識することができる任意の基準を使用することができる。ロバストな特徴検出器は、キーポイントの位置の２次元情報（ｘ，ｙ）ならびにそれらのキーポイントの特徴ベクトル式記述子を見つける。その特徴ベクトル式記述子は、点のあらゆるスケール回転および照明において一定のままである。
【００４３】
特徴ベクトル式記述子は、対象物に関する興味深い点を抽出して対象物の「特徴記述」を得ることによって取得することができる。この記述は、他の対象物を含む他の画像中に当該対象物を配置することを試みる場合および／または異なる視点／有利な地点から撮像する場合に、当該対象物を特定するのに使用することができる十分な情報を有する。トレーニング画像から抽出される特徴は、確実な認識を行うために画像スケール、ノイズ、照明および局所的な幾何学的歪みの変化にロバストであるように選択する。これは、例えば、米国特許第６，７１１，２９３号明細書に記載されている技術を使用してもよい。この検出のために、市販のスケール不変特徴量変換（ＳＩＦＴ：Scale Invariant Feature Transform）ソフトウェアを使用することができる。また、キーポイントのそれぞれに関する３次元点情報を、デフォーカス原理および本明細書に記載されているか米国特許第６，２７８，８４７号明細書および米国特許第７，００６，１３２号明細書に記載されている種類の方程式を用いて決定する。
【００４４】
２１０では、次のフレームを取得し、ここでは、次のフレームは、時間ｔ２のフレーム番号２とすることができる。一般に、フレームを１つずつ増加させて次のフレームを得ることができる。
【００４５】
２１５では、異なるｔｓから暫定的な姿勢マップを形成する。それにより、ｔｓ間の変換Ｔ（平行移動および回転）を取得するために、キーポイントに対応する３次元情報の異なる部分のマッチングを行う。これは、コア時間ｔと任意の他の時間ｔｎとの間の変換を表し、組み合わせられた情報によって、複数のｎｓ例えば、（ｔｎ１、ｔｎ２．．．）を含むことができる。
【００４６】
２２０では、各取得されたフレームｔｎの高密度点群を取得する。高密度点群により、上に記載されている技術を適用したデフォーカスを用いて、３次元画像情報を取得することができる。高密度集合（点およびそれらの位置）の発見およびロバストな特徴の特定を同時に行うことができる。他の情報を既に決定した後に、ロバストな特徴の３次元座標の発見を行ってもよい。
【００４７】
２２５では、異なる時間の間の暫定的な姿勢に関連する線形変換Ｔを使用して、異なる時間に取得された高密度点群を取り囲む画像の１６×１６画素のウィンドウ間で変換および／または相互相関させて、ラフな姿勢を取得する。現在の高密度点集合（例えば、中心点の周囲の１６×１６画素のウィンドウ）を前の高密度点集合と相互相関させるか、あるいは、前の低密度点集合（例えば青のチャネル）に対するロバストな特徴検出を使用して、前のフレームセットに対してマッチングを行って一致を見つけることにより、これを行う。従って、２２５では、３次元情報およびラフな姿勢の両方を取得する。
【００４８】
そのラフな姿勢に基づいて、２３０では、現在の情報が２つのフレームを相互相関させるのに十分な程に基準フレームに近いか否かを決定する。基準フレームに近い場合、相互相関を行う。フレームが十分に近くない場合、現在のフレームは拒絶される。現在の情報が、２つのフレームを相互相関させるのに十分な程に基準フレームに近いが、新しいフレームが２３５でいくらか閾値距離の外側にある場合、それは拒絶もされるが、新しい基準フレームとして追加される。次いで、姿勢復元演算を使用して、暫定的な姿勢を決定または精密化してもよい。
【００４９】
演算中、プロセッサは、デフォーカス方程式と共に点集合を処理して、３次元画像を取得するようにプログラムされている。赤および青のチャネルを、本明細書に記載されているように多重格子と相互相関させる。２２６では、フレームを位置によって編成する。
【００５０】
２２７では、異なるより正確な位置情報（すなわち「真の姿勢」）を取得するために、スキャナのラフな姿勢を表す変換情報を後処理によって決定する。後処理では、前の姿勢決定のいずれかを用いた技術よりもロバストではないが、より正確な技術を使用してもよい。例えば、よりロバストでない技術では、特定の量を超える画素差のマッチングを行うのに計算コストがより高くなることがあるが、そのマッチングに関するより多くの情報が提供されることがある。
【００５１】
本発明者らは、相互相関技術が極めてロバストであり、異なる変換の間で非常に正確な値を提供し得ることを見出した。しかし、このよりロバストな技術を使用して、姿勢間に大きな画素シフトを有する姿勢を復元することは、計算時間の面から実行不可能である（従って、単なる暫定的な姿勢に対するラフな姿勢を使用するのが有用である）。現在のＮｖｉｄｉａＧＰＵを用いる場合、姿勢間で６４もしくは１２８画素を超えるシフトは、計算時間の面からリアルタイムでは実行不可能である。
【００５２】
２２７の後処理では、これらのフレームが「変換」されて、画素シフトがより少なくなるようにシフトされると、後処理のためにより正確な技術を使用できることが分かる。従って、一実施形態では、工程２００〜２２５をリアルタイムで行い、２２６および２２７を非リアルタイムで行い、リアルタイム後に、ラフな姿勢を計算する。従って、演算の第１の部分はリアルタイムで暫定的な姿勢およびラフな姿勢を計算し、次の部分はそれらの姿勢評価を精密化する。
【００５３】
（相互相関）
本明細書の全体にわたって言及されている相互相関すなわち「ＣＣ」演算が図４Ａに示されている。これは、ロバストな相互相関演算であってもよく（例えば、ロバストな特徴を使用する場合）、あるいは、これを点群データのマッチングを行うために使用してもよい。例えば、マイクロプロセッサ１５３またはＧＰＵ１５５などのプロセッサで、図４Ａの演算を実行してもよい。
【００５４】
アイテム４００が、４１５では第１の時間／姿勢で、４１６では第２の時間／姿勢で示されている。例えば、異なる時間／姿勢は、同じフレームの異なるカラーチャネルであってもよく、あるいは他のチャネル分離技術を使用することができる。点は、自然な点であっても、例えば固定された照明器によって照射されたものであってもよく、あるいは、造影剤を用いて塗布されたものであってもよい。これにより、特定の輝度、コントラストまたは外観を有する表面領域である任意の位置を調べることもできる。
【００５５】
各フレーム４１５、４１６を、４０１などの複数の小部分に細分する。４１５中の小部分４０１は、４１６中の別の小部分４１１と比較して示されている。図４Ａでは、これらの２つの小部分４０１／４１１が比較されるものとして示されているが、この演算は、複数の小部分のそれぞれに対して実行するものであることを理解されたい。
【００５６】
４２０では、２つの小部分４０１、４１１を相関させる。各相関は、画像の複数の異なるシフトを表す。４２５では、各相関により、複数の画素を含む相関画像を生成する。相関画像中の各画素は、１つの相関シフトの結果を表す。例えば、４０１と４１１を相互相関させると、全シフトを表す単一のＣＣ画像４２５が得られる。なお、使用される相互相関技術は、循環、ゼロパディング、高速フーリエ変換（ＦＦＴ）系または任意の他の種類などの任意の種類の相互相関型であってもよい。
【００５７】
例えば、画素４２７は、ｘ方向にゼロだけシフトされ、下に向かって（ｙ方向に）３だけシフトされた画素を表す。相関画像中の各画素値は、１つのシフト全体と、相関画像中の画素の位置の量を掛けた１つの乗算全体を表す。例えば、ＧＰＵのシェーダ、またはプロセッサ、あるいはゲートアレイもしくはカスタムハードウェアなどの専用のロジックで、これらの値をそれぞれ計算することができる。
【００５８】
相関平面中の最も明るい画素を見つける。画素を調べることによってこれを行い、周囲の画素を使用して副画素位置のピークを見つける。このように、複数の異なるピークフィッティング技術のいずれかを使用することができる。最も一般的なピークフィッティングは、ガウス形状を取る。
【００５９】
副画素のガウスピークフィッティングを使用することができる。図４Ｂは、青のチャネル中の点格子と第２のチャネル中のそれらの対応点との一致を見つけるためのこの技術の使用方法を示す。
【００６０】
４４５では、相関画像の格子中の最も明るい画素は、画像間で最良の一致を有する位置を表す。この一致を使用して、画像間のオフセットを表す。バイキュービックス（登録商標）プラインを使用して、格子点間を補完することができる。
【００６１】
４５０では、粗いオフセット群を見つける（４４５で）。次いで、４５０では、オフセットに基づいて、画像のうちの１つ（例えば赤）を他の画像（例えば青）に近似するように歪ませる。これにより、合成画像４５５を生成する。
【００６２】
４６０では、画像を互いにより近づけるように歪ませる。より細かい小部分の格子を取得する。次いで、相関演算４２０、４２５を繰り返して、より細かい格子に対して画像間に新しい歪みを生じさせる。
【００６３】
次いで、より細かい小部分を表す新しい格子を再度形成する。この手順を数回（例えば４回）行い、本実施形態の４６５で入手可能な計算精度に釣り合った所望の精度を反映させる。あるいは、繰返しを他のある回数で（例えば、１６×１６の画素サイズに到達するまで）続けてもよい。この時点すなわち４７０で、最終画像情報を取得する。最終画像情報は、ｘ，ｙ（または、青のチャネル情報のための位置情報として表現される「ｂｘ，ｂｙ」）およびｄｘ，ｄｙ（青と赤のチャネル間での位置のシフト）を含む。
【００６４】
（３次元点位置の決定）
一実施形態では、相互相関技術に関連して（図３Ａの３２５に従って）３次元点群を生成する。一般に、相互相関を青と赤のチャネル間に用いて、これらのチャネル間に多数の対応する画像画素を見つける。相互相関によって（例えば上記のとおりに）取得した点位置情報を用いて、対応する３次元点位置を、スキャナ較正情報に関連して取得することができる。
【００６５】
較正手順のために、較正格子に基づいて較正セットもしくは表を定義するために、最初の演算を行う。より具体的には、複数の「ｚ値」のそれぞれで撮像された較正格子のために、青のチャネル中の値を赤のチャネル中の値と比較する。例えば、青のチャネル中の０，０位置は、赤のチャネル中の対応する位置を有するであろう。この較正セット／表は、青のチャネルから赤のチャネルまでのオフセットを表す。
【００６６】
４７５では、これらのオフセットｄｘおよびｄｙ（それらは赤のチャネルに対するオフセットである）を知る。各値について、ｘ，ｙ，ｚ位置への平行移動も較正手順から知る。従って、任意のｂｘ，ｂｙ（すなわち、青のチャネル中のｘおよびｙ）およびｄｘ，ｄｙのために、較正表を用い、線形代数を適用して、対応するｘ，ｙ，ｚ値を決定することができる。別の言い方をすれば、（ｂｘ，ｂｙ，ｄｘ，ｄｙ）を用いて、図４Ｂの４８０に従って、青および赤の画像を一致させるために使用された変形分だけ後に辿って、ｚを決定することができる。
【００６７】
すなわち、図４Ｂでは、各歪み／変形の繰返し（４５０〜４６５）は、前の画像から次の変形までの差を表す。これらの変形を互いに追加して、４７０で最終画像情報を取得する（任意に、ｘ，ｙ，ｄｘ，ｄｙに換算して表現される）。４８０では、較正セットをこの情報に適用される関数として使用して、高密度点群を定義する際のｘ，ｙおよびｚ位置情報を取得する。それにより、特定のカメラに対して個別の較正情報を用いて４次元から３次元に減少させて精度を向上させる。
【００６８】
（姿勢に基づく歪み処理）
相互相関技術により、「投影面」特徴に関連する手段も得られる。「姿勢に基づく歪み処理」は、平面を投影した後に相互相関させる機能と見なしてもよい。
【００６９】
大きな移動（例えば、大きな中／外への平面回転および／または平行移動）により、画像を直接に相互相関させることができない場合、相互相関または他の同様の画像マッチングアルゴリズムを用いて姿勢を復元することは、計算時間の面からみて実行不可能である。ＲおよびＴ（例えば、現在の方法では実施の点に応じた暫定的もしくはラフな姿勢）に関する知識によって、オフセットが６４画素よりも大きい場合であっても、相互相関される画像のうちの１つを調整した後に相互相関は可能となる。
【００７０】
調整を行うために使用される投影面特徴が図８に関連して記載されている。８００では、すぐ近くのベクトルを特定する。８０２では、相互相関のために、可能な限り離れたベクトルを特定する。８０５では、より詳細でない姿勢情報に基づいて１つのフレームをシフト（平行移動／回転）させて、より詳細な姿勢情報を決定する途中で他のフレームに近似させる。
【００７１】
より具体的には、第１および第２の画像（１１，１２）のために、１２が１１の平面でどのように見えるかという予測として画像１２’を生成する。そこで、１２’中の代表点を選び、それを（較正セット、利用可能な姿勢情報および高密度点群情報を用いて）３次元で平行移動および回転（すなわち投影）させて、１２中のその位置を見つける。検討される整数点の全てについて、ｆ（ｘ，ｙ）は、連続関数のような動作を表す。
【００７２】
最終的に、任意にラフな姿勢および真の姿勢を決定する際に使用される姿勢に基づく歪み処理における投影面演算は、相互相関のために互いにより近似している複数の異なる画像からデータを生成することを目的としている。例えば、図６を見てみると、異なる姿勢のカメラは、同じアイテムおよび、さらにはそのアイテム上の同じ場所を見ていても、異なる視点から見ているもしれない。例えば、姿勢１の画像１（Ｒ１，Ｔ１）は、６５０で発見されたものかもしれない。しかし、姿勢２の画像２（Ｒ２，Ｔ２）は、６５２で発見されたものかもしれない。これら両方が同じ実際のアイテムを見ていても、６５０は６５１に示すように見えるが、６５２は６５３に示すように見えるかもしれない。この時点で、これらの値は、あまりに異なり、かつあまりにかけ離れているため、相互相関させることができない。
【００７３】
図９に従って、関数ｆ（ｘ，ｙ）を使用して、画像２’が画像１に類似した姿勢パラメータを有するように（投影面プロセス８００に表されているように）、画像２’を画像２にマッピングする。次いで、相互相関プロセス４００によって、フローチャート要素９００は、画像２’を画像１の座標系まで歪ませる関数を見つけて、同じ座標系で画像１および画像２’の両方を得る。
【００７４】
要素９０５に係る記述では、画像１を画像２’に相互相関させる際に、画像２’は既に反転させられているため、この関数のために反転を求める必要はない。これにより、簡易な歪みが生成される。そのような歪みは、Ｚ値の全てがゼロであると仮定している。
【００７５】
但し、これは典型的な事例ではないため、９００のｆ（ｘ，ｙ）の計算は、最小二乗平面を変換ｆ（ｘ，ｙ）→（ｘ’，ｙ’，ｚ’）に当てはめることによって、異なるｚ軸深さを補うこともできる
（式中、
ｘ’ｉ；＝ａｘＸｉ；＋ｂｘｙｉ；＋ｃｘ
ｙ’ｉ；＝ａｙＸｉ；＋ｂｙｙｉ；＋ｃｙ
ｚ’１＝．．．
である）
これを行列形式で書くことができる。
【００７６】
次いで、新しいｘ，ｙ，ｚの一致を用いて新しい点格子を生成して、この形状を滑らかにすることができる。新しい点格子により、スプライン（「Ｓｐ」）解釈に基づいて、ｆ（ｘ，ｙ）と（ｘ，ｙ，ｚ）との関係を生成する。ここでは、以下の関係：
（ｘ，ｙ）→ｘＳｐｘ
（ｘ，ｙ）→ｙＳｐｙ
（ｘ，ｙ）→ｚＳｐｚ
を使用し、よって、平面を３次元の滑らかなスプラインにマッピングする。
【００７７】
上で言及したように、カメラのために取得された較正セットを用いて、青のチャネルのための点を、ｘ，ｙ，ｚに変換することができる。ｘ，ｙおよびｚが変化するにつれて姿勢は倍率を変えるため、変換は完全な一次関数ではない。これらの値を行列形式で計算することによって、非線形性の量をこのようにして補償することができる。
【００７８】
（画像の取り込みおよびリアルタイムの姿勢決定の詳細）
図３Ａ〜図３Ｃは、プロセッサ１５３および／またはＧＰＵ１５５上で実行されるプログラムの実施におけるフローチャートまたはリアルタイム動作を定めている。３００では、時間フレームｔ０において、本システムは、その１回の時間フレームｔ０で２つの画像を取り込む。これらの２つの画像は、本明細書に使用されている２つのチャネルを形成する。２つの画像（この場合、色分けされている）を取得した後、２つの平行な処理経路３０５、３０６を実行する。経路３０５を使用して（図３Ｂに従って）、カメラ姿勢を決定し、かつカメラ情報の粗い決定を行い、よって、予備的な平行移動情報（すなわち、暫定的な姿勢）を見つける。経路３０６を使用して、高密度３次元情報を決定する。本出願は、これらを平行して実行するものとして記載しているが、これらの計算は任意の時間に実行することができることを理解されたい。
【００７９】
３１０では、スケール不変特徴量変換「ＳＩＦＴ」ソフトウェアまたは上記のような他の手段などの、よりロバストであるが、より正確でない技術を用いて、キーポイントを取得する。いずれの場合も、典型的に、複数のキーポイントのそれぞれに対して特徴ベクトル記述子を決定する。その特徴ベクトル記述子は、キーポイントがどのように見えるかについて記述している。選択される特徴は、画像の平行移動、拡大縮小および回転に対して不変であり、部分的に照明変化に対して不変であり、かつ局所的幾何学的歪みに対してロバストである。例えば、繰り返しサンプリングした一連の滑らかな画像に対して、スケール空間に適用されるガウス関数の差の結果の最大値および最小値を用いて、これを行ってもよい。
【００８０】
一実施形態では、ペインテッドオン特徴、例えばコントラストを用いて塗布された特徴を用いて、撮像を行ってもよい。一実施形態では、エアロゾルで吹き付けられた白色および黒色粒子からなるコントラストを使用してもよい。
【００８１】
一実施形態では、青のチャネル画像に対してキーポイントの抽出を行う。次いで、３１５では、他のカラーチャネル（ここでは赤のチャネル）からの情報を使用して、対応する特徴を見つけることができる。そのような特徴発見では、本明細書に記載されているように、相互相関を用いることができる。
【００８２】
３２０では、このようにして取得されたキーポイントは、デフォーカスを用いて現在の時間フレームで決定されたそれらの３次元位置に関する情報を有する。従って、各キーポイントを処理して、そのキーポイントに対応する３次元情報ならびにその関連する記述子を取得する。この情報は、時間フレームｔ０に関する記述子と共に１組の低密度キーポイントを形成する。
【００８３】
暫定的な姿勢の決定経路３０５と平行して、高密度点群経路３０６を実行して、高密度３次元情報（但し記述子はない）を決定する。時間間隔ｔ０のために、デフォーカスされた情報を用いて点の高密度３次元群を決定することによって、工程３２５は開始する。青と赤のチャネルを３３０で相互相関させて、これらのチャネル間に多くの対応する点もしくは画像画素を見つけることによって、これを行ってもよい。３３５では、これらの点の３次元位置を取得する。２つのチャネルからのデフォーカスされた情報を使用して、この３次元情報を決定する。
【００８４】
３４０では、姿勢および３次元点群の両方の決定を行う。時間フレームｔ０では、その時点で、記述子を有する低密度集合（経路３０５から）と記述子のない高密度群（経路３０６から）の２組の３次元点群が存在する。
【００８５】
３４５では、ｔ１と呼ばれる次のｔを見つける演算の次の部分が進行する。このプロセスを繰り返し続けて、複数の異なる時間フレームで複数の異なる値を見つける。
【００８６】
上記演算によれば、対象物全体に関する高密度および低密度点集合の複数の異なるライブラリが存在する。例えば、図６は、これをどのように使用して６００、６０２、６０４および６０６などの走査対象の歯の画像を取得するのかを示す。６１０の第１のライブラリ１は、単一走査によりスキャナから取得することができる視野を表す。これは、画像、例えば、歯６００、６０２であってもよい。しかし、歯６０４は、ライブラリ１（６１０）ではスキャナの視野の中にはない。従って、６２０として示されているライブラリ２を使用して、歯６０４、６０６の画像を取り込んでもよい。異なるライブラリはそれぞれ、異なる基準を表してもよい。
【００８７】
（姿勢方法論の概要）
最初のカメラ位置決定（「暫定的な姿勢」の生成）により、ｔ次元で一致したリアルタイムの回転および平行移動ＲおよびＴが得られる。ここでは、点間の差を受け入れる１つ以上のロバストなマッチング技術を用いる（例えば、上記のような相互相関および／またはキーポイントを比較することによって行われる）。この動作の後で、任意に姿勢に基づく歪み処理による特徴マッチングにより、マッチング可能なフレーム間で姿勢を精密化する（ラフな姿勢を得る）。後処理では典型的に、そのラフな姿勢情報を使用する。ラフな姿勢により、選択されたフレームに関するより多くの情報が得られ、ここでも任意に姿勢に基づく歪み処理により、空間的に関連したフレームに対する完全なマッチングを可能にして、さらなる先験的な知識を利用することによって、より正確な姿勢点を決定する（「真の姿勢」を得る）。
【００８８】
（暫定的な姿勢の決定）
図３Ｂでは、暫定的な姿勢を決定する演算を開始する。３５０では、相互相関技術により、現在の点集合を前の点集合と比較する。３５５では、点集合間に相互相関すなわち「ＣＣ」の一致があるか否かの決定を行う。一致がある場合、３６０は、２つの一致した高密度点群が存在することを決定し、制御は、ノード３Ｃ（工程３９０）に移動して、ライブラリの比較および形成を表す図３Ｃに示されている処理演算を実行する。
【００８９】
３５５でＣＣの一致が存在しない場合、制御は、３６５で前のフレーム群のロバストな記述子（例えばＳＩＦＴ記述子）を使用するように移動し、そこでは、フレーム群は、例えば、２０フレーム〜１００フレームであってもよい。３７０では、前の２０〜１００フレームと現在のフレームとの一致があるか否かを決定する。一致がある場合、これは、３７５で低密度点群の間に一致を確立し、制御は、ライブラリノード３Ｃ（図３Ｃ）に移動する。
【００９０】
現在のフレームと前の２０〜１００フレームとの間に一致が存在しない場合、３８０では、キーポイントの格納されたライブラリに関する記述子を用いて姿勢復元を行う。ここでは、ロバストな記述子を、生成されているキーポイントの全ライブラリと比較する。一致が存在する場合、これは暫定的な姿勢とみなされ、制御は３Ｃのライブラリ決定に移動する。３８５で一致が存在しない場合、これは、３８６では、全ての基準フレームが現在のフレームから非常にかけ離れていることを意味する。この時点で、現在のフレームは拒絶される（すなわち破棄される）。
【００９１】
（ラフな姿勢の決定）
図３Ｃは、図３Ｂで発見された暫定的な姿勢を用いて、姿勢決定を続ける。これは、工程３９１で開始し、暫定的な姿勢情報を取得した後、３９２で近いＣＣフレームがあるか否かを決定する。３９２の動作の結果が、十分に近いＣＣフレームが存在しないとなった場合、全てのフレームは非常にかけ離れているため、フレームは破棄される。あるいは、それを、今後のＣＣ動作のためのライブラリ基準として追加してもよい。但し、十分に近いＣＣフレームが存在する場合、それを３９３で取得し、新しいフレームをより古いフレームに対して歪ませる（すなわち、３９３でフレームを投影し、３９４で相互相関させる）。
【００９２】
一般に、本演算は、最も近い複数の異なるベクトル（シーン位置の値）を発見する試みである。本目的は、なお相互相関可能である限り、可能な限り離れたベクトルを相互相関させることである。図８は、フレーム発見と、上で言及した平面の投影を伴う平行移動を視覚的に詳述する。
【００９３】
図３Ｃに戻ると、３９３での投影後に、Ｒ０，Ｔ０を使用して、現在のフレームを発見されたフレームと相互相関させる。これを使用して、新しい姿勢（ラフな姿勢）のためのＲおよびＴを見つける。３９５でＲおよびＴを見つけることができた場合、３９９では、ユーザインタフェース装置（例えば、コンピュータモニタ）に表示するために、このより詳細な姿勢を、３次元点群データを集めるために使用することができる。そうでない場合、３９６では、現在のフレームをＳＩＦＴ基準と比較する。ＲおよびＴがこの段階３９７で発見されない場合、３９８では、それをＳＩＦＴ基準として追加する。それ以外の場合は、処理は完全であり、工程３Ａで次の点を得るために演算は進行する。
【００９４】
なお、上記では、記述子によって、現在のフレーム内の３次元点およびキーポイントを、複数の異なる前の時間フレーム内のキーポイントとマッチングさせる。すなわち、各コアフレームｔｎについて、各キーポイントを、複数の前のフレームｔ（ｎ−ｘ）（ここで、ｘは設定数であってもよい）のそれぞれとマッチングさせる。例えば、利用可能な処理電力およびメモリに応じて、ｘを０〜１００００の任意の数に設定してもよい。本実施形態では、これを２０〜１００フレームとしている。そのため、ここでは、複数のフレームのそれぞれをコアフレームとマッチングさせる。
【００９５】
３５０では、一致を使用して、現在のフレームから前のフレームまでの変換を見つける。この演算により、フレームｎと、フレームｎと比較する予定の全ての他のフレームとの間の変換Ｔｎ（平行移動および回転）を決定する。この同じ情報は、高密度点に関する変換も表す。このようにして、フレームの全てが、最終的に基準座標系と呼ばれる単一の座標系になる。基準座標系は任意であるが、一般に全ての基準フレームにわたって同じままである。本明細書に記載されているように、カメラの動きにより対象の画像が最初の位置から非常に離れて移動してしまった場合、基準フレームは時には変わる可能性がある。
【００９６】
別の実施形態によれば、多くの異なるフレームをベース／基準フレームとして使用することができるため、多くの異なる変換が存在する。例えば、指定された時間毎に新しいベースフレームが存在する可能性がある。さらに別の実施形態では、変換を見つけることができることから、中間フレームが存在する可能性がある。さらに別の実施形態では、変換を組み合わせる代わりに、変換の平均を使用してもよい。
【００９７】
３６０（図３Ｂ）では、基準フレームと任意の他のフレームｔｎとの間で変換がなされる。これにより、同じ座標系内に全てが存在するデータライブラリが形成される。データの全てが単一の座標系に存在し、ここでは、その座標系は本質的に無作為に選択される。
【００９８】
この連続的な変換は、任意の所与のフレームのために組み合わせられる変換数を最小限に抑え、それにより誤り伝播を最小限に抑えてもよい。
【００９９】
図３Ａ〜図３Ｃで最大解像度での画像の生成を可能にするように高密度集合を変換した後に（例えば、処理中にユーザフィードバックとして走査時にのみ表示するため）、図７に示すように姿勢の後処理を行う。この後処理では、ＣＮＣまたは他の生成技術によって代表的なデータから物理的な対象物を提供するために、「グローバルマッチング技術」を使用して、誤り伝播を最小限に抑えながら、より良好なフレームマッチングを可能にして、上に定義されている真の姿勢を見つけ、かつ最終走査出力生成物（例えば、コンピュータ可読媒体内に具体化されるＳＴＬファイル）を生成してもよい。
【０１００】
（さらに詳細な／真の姿勢の決定）
このグローバルマッチング手法を記載する前置きとして、図５は、より大きな領域を撮像する際に、カメラがどのように異なる位置間を移動し得るかについて示す。図５の上部は方向５００に移動しているカメラを示し、下部は方向５０５への移動を示す。図示されている１、２、３．．．２５４、２５５、２５６の順序でフレームが取得される。カメラが順次に画像を通過すると、カメラは、１秒につき１０回画像を撮影する。フレーム１および２は時間的に近いが、実際にはフレーム１と２５６との間により多くの類似点が存在するかもしれない。例えば、カメラは、１／２よりも１／２５６において空間的に近いかもしれない。
【０１０１】
本手法は、画像データを比較する際に最良の空間的一致を追求して、画像を組み合わせるために使用されるカメラ姿勢情報を決定することによって、この可能性を補償している。他のシステム（例えば、Ｚｈａｎｇ）は、姿勢を決定する際に、最も近い時間の一致（すなわち順次フレーム）に焦点を当てる。
【０１０２】
実際には、本発明者らは、異なるフレームのうちのどれが最良の空間的一致を生成するのかについて事前に予測する方法が実際には存在しないことを見出した。実際には、暫定的な／仮の一致を発見した後に異なるフレームの集合体に対してその暫定的な一致を精密化することによって、最良の情報が取得される。
【０１０３】
この問題を認めて、言及されている後処理をグローバルに行う。１つのフレームを次のフレームと自動的に比較するのではなく、本実施形態の処理は、異なるフレームのライブラリ全体を調べる。例えば、空間的により近いという理由から、古いフレームから現在のフレームに関するより多くの情報が得られるかもしれない。
【０１０４】
本発明者らは、複数のフレームに対して同時にマッチングを行うと、連続フレームに対するマッチングよりも良好な結果が得られるという予想外の結果を見出した。このグローバルマッチングシステムは、本質的に点ライブラリ全体を調べて、実行可能な限り複数のフレームにわたって同じ点を追跡し続け、その情報を平均化する。そのライブラリ全体の全ての記述子を比較して「最良の記述子」を見つけ、それらの最良の記述子を有する点を比較することができる。その点は撮像されるアイテムにあるため、複数のフレームにわたるその点を平均化することで、その点に関するより多くの情報が得られる。平均化することにより、複数のフレームのそれぞれが、他の空間的に近いフレームに姿勢情報を与える。また、平均化を使用して、様々な種類の統計的ノイズを除去することによってそれらの真の位置をより正確に見つけてもよい。
【０１０５】
後処理では、可能な限り離れた異なるフレーム間にグローバルマッチングを使用する。同じ点の異なる視点を含む異なるフレームは、その同じ点を表す。それらの点が常に同じであるため、それらを平均化することにより精度が高まる。本システムによれば、フレーム間の点位置の誤差を累積することなく、点を平均化する。
【０１０６】
図７のフローチャートを参照しながら、そのような後処理を詳細に示す。７００では、最良の既存の回転および平行移動Ｒ，Ｔ（典型的にはラフな姿勢）を取得する。これにより、全ての時間でカメラが存在する全ての場所のマップを生成する。各時間の各場所は、特定の３次元姿勢に対応している。
【０１０７】
７０５では、このライブラリのためのルートノードとして姿勢を選択する。例えば、リストで第１の姿勢を選択することによって、これを本質的に無作為に選択することができる。あるいは、例えば、ルートノード姿勢として重心点を選ぶことによって、判定基準を選択することができる。
【０１０８】
７１０では、選択された姿勢に近い全ての隣接姿勢を見つけることによって演算を継続させる。演算により、近接さに基づいて全ての３次元姿勢のグラフを表す情報が生成される。
【０１０９】
最初に、７０６で姿勢に基づく歪み処理を行って、互いにより近似するように姿勢を歪ませる。本明細書では、図９を参照しながら、姿勢に基づく歪み処理について詳細に説明する。
【０１１０】
歪み処理後に、７１０では、出発姿勢のＴ１内にある全ての隣接姿勢を見つける。これらの隣接姿勢のそれぞれを取り除き、ラベルをつける。Ｔ１は、誤り伝播を減少させるのに最大で実行可能な距離であるように選択されている値であるが、計算の実行可能性によってなお制限されている。
【０１１１】
７１５では、隣接姿勢を取り除いた後に、第２の閾値Ｔ２を使用して子姿勢を見つける。残されている全ての姿勢が、ルートノードに対する隣接姿勢ではない。閾値Ｔ２は、異なる基準面の画像間において最小の重なりがあるか全く重なりがないような閾値である。Ｔ２は、Ｔ１よりも大きく、姿勢に基づく歪み処理により姿勢を見つけることができる最大距離として選択される。ルートノードに対してＴ２内にある点を子ノードと呼ぶ。Ｔ１＋Ｔ２を超えるものはいずれもルートノードから非常にかけ離れているため、子ノードのＴ１は、親ノードによる影響を受けない。
【０１１２】
全ての点をこのようにして分析する。フローチャート要素７２０は、全ての子ノードが見つかるまでこの演算を続けることを表す。７２５では、ライブラリ内の全てのノードは、子もしくは隣接ノードのいずれか一方である。この時点で、このサブプロセスは「完了している」と呼ばれる。
【０１１３】
７３０では、ルートノードに対する隣接ノードをそれぞれ、ルートノードと共に平均化する。子ノードに対する隣接ノードをそれぞれ、その子ノードの全てと共に平均化する。これにより、平均姿勢値を形成する複数の異なる隣接ノードと共に平均化された重量なノードが生成される。
【０１１４】
この時点で、子ノードとルートノードと間の平行移動を決定する。子ノードを平行移動させて、子ノードが親ノード内のどこにあるか決定する。次いで、重量な子ノードを平行移動させて、親ノードと共に平均化する。そのような動作により、多くの異なる姿勢に基づく非常に重量なノードが形成される。このようにして平均化された姿勢により、平均化によって向上したルートノードの非常に正確な描写が得られる。７３５で取得された新しいＲ，Ｔは、７０５として選択されたルートノードとその全ての隣接および子ノードと間の重量平均である。
【０１１５】
この新しいＲおよびＴを、後処理された姿勢（最も詳細な真の姿勢）として使用して、より大きな精度で３次元値を再計算する。
【０１１６】
本システムの利点は、時間的手法から生じ得るような誤差を累積することなく複数のフレームからの同じ点を互いに平均化することができる点である。また、演算を１つの層深さのみで実行するため、誤差は層を通って伝播しない。これは、相互相関点の識別誤差が伝播しないことを意味している。
【０１１７】
（変形例）
一実施形態は、バイキュービックス（登録商標）プライン関数を用いた値間の補間を含む画像処理の特定の部分を行う。一実施形態によれば、バイキュービックス（登録商標）プライン関数は、１組のスプライン係数を形成する。各係数を使用して次の係数を計算する。係数の一覧は、１つの係数が他の係数の値に影響を与える因果関係を表す。
【０１１８】
一実施形態によれば、スプライン係数全体のスライディングウィンドウとして、いくつか前の数の係数のみを用いて、バイキュービックス（登録商標）プライン関数を単純化する。本発明者らは、このスライディングウィンドウをバイキュービックス（登録商標）プライン計算を達成しない値まで（ここでは１６ブロックだけ）選択することができることを見出した。例えば１６ブロックを用いることによって、係数における誤差を、浮動小数点の変数の精度よりも小さくすることができる。しかし、このようにして結果を減少させることによって、各アイテムをＧＰＵのシェーダで同時に計算することができる。これにより、超並列処理が可能になり、その結果、各単一のシェーダは、このようにして１６個の係数のみを用いて一部を計算することができ、従って、各シェーダに１つの画素の値を計算させることができる。
【０１１９】
重要なことに、本発明者らは、このような処理をＧＰＵで行う場合、全ての値をシェーダ内に維持することが重要であることを見出した。例えば、バイキュービックス（登録商標）プラインなどの計算の中にはシェーダでより高速に実行することができるものもあるが、ソートや比較などの他の計算は、プロセッサでより高速に実行することができる。しかし、本発明者らは、シェーダとメインプロセッサと間の書込みでは、より多くの時間を要するため、シェーダでより非効率的に実行されるものでさえ、全てをシェーダ内で実行するとより高速となることを見出した。姿勢に基づく歪み処理では、上記のようにバイキュービックス（登録商標）プライン計算を使用し、また、この計算の一部または全てを、一実施形態に従ってＧＰＵでより効率的に実行することができる。
【０１２０】
ＣＣ演算の前に実行される別の演算では、他の値よりも中心、左および右の値に重み付けしてもよい。
【０１２１】
別の演算では、相互相関演算の一部として実行される最終的な１６×１６の正方形中の全ての値の標準偏差を利用してもよい。画像の指定されたピークよりも高い任意の標準偏差値は、それらのピークがデータを偏らせないように切り捨てられる。これにより、異常に明るい画素を取り除いて、データを偏らせることを回避する。
【０１２２】
別の演算では、青／赤の開口が１次元のみシフトされるように公知の値を利用してもよい。従って、相互相関細分のために、この１次元シフトは、生じ得る最大の変形を表してもよい。これよりも大きいあらゆる変形を相互相関細分で検出し、これを使用して最終値に重み付けすることができる。
【０１２３】
以上、実施形態のほんの数例について詳細に開示してきたが、他の実施形態も可能であり、本発明者らは、これらも本明細書に包含することを意図している。本明細書は、別の方法で達成され得るより一般的な目的を達成するための具体例について記載している。本開示は、例示のためのものであり、特許請求の範囲は、当業者には予測可能であり得るあらゆる修正または他の形態を含むことが意図されている。例えば、相互相関以外のマッチングの他の形態を使用することができる。
【０１２４】
当業者であれば、本明細書に開示されている実施形態に関連して記載されている様々な例示的な論理ブロック、モジュール、回路およびアルゴリズム工程が、電子ハードウェア、コンピュータソフトウェアまたはその両方の組み合わせとして実装され得ることをさらに理解しているであろう。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、概してそれらの機能性に関して、様々な例示的な構成要素、ブロック、モジュール、回路および工程について上に記載してきた。そのような機能性がハードウェアまたはソフトウェアとして実装されるか否かは、特定用途およびシステム全体に課される設計制約によって決まる。当業者は、各特定用途のために様々な方法で上記機能を実装することができるが、そのような実装の決定は、本発明の例示的な実施形態の範囲から逸脱するものとして解釈されてはならない。
【０１２５】
本明細書に開示されている実施形態に関連して記載されている様々な例示的な論理ブロック、モジュールおよび回路を、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブルロジックデバイス、個別ゲートもしくはトランジスターロジック、個別ハードウェア構成要素、または本明細書に記載されている機能を実行するように設計されたそれらの任意の組み合わせと共に実装または実行してもよい。汎用プロセッサはマイクロプロセッサであってもよいが、これに代えて、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロコントローラまたは状態機械であってもよい。プロセッサは、ユーザインタフェースと通信するユーザインタフェースポートも有しかつユーザによって入力された命令を受け取るコンピュータシステムの一部であってもよく、上記コンピュータシステムは、プロセッサの制御下で、ユーザインタフェースポートを介して通信可能に動作するプログラムなどの電子情報を格納する少なくとも１つのメモリ（例えば、ハードドライブまたは他の相当する記憶装置およびランダムアクセスメモリ）と、任意の種類のビデオ出力フォーマット（例えば、ＶＧＡ、ＤＶＩ、ＨＤＭＩ（登録商標）、ディスプレイポートまたは任意の他の形態）でその出力を生成するビデオ出力部とを有する。
【０１２６】
プロセッサは、計算装置の組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、ＤＳＰコアと複数のマイクロプロセッサすなわち１つ以上のマイクロプロセッサとの組み合わせ、または任意のそのような他の構成として実装されていてもよい。また、これらの装置を使用して、本明細書に記載されている装置のための値を選択してもよい。
【０１２７】
本明細書に開示される実施形態に関連して記載されている方法またはアルゴリズムの工程を、ハードウェアに、プロセッサによって実行されるソフトウェアモジュールに、あるいはこれらの２つの組み合わせに、直接具体化してもよい。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読取り専用メモリ（ＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、レジスタ、ハードディスク、取り外し可能なディスク、ＣＤ−ＲＯＭ、または当該技術分野で知られている任意の他の形態の記憶媒体中に存在していてもよい。例示的な記憶媒体は、プロセッサが記憶媒体からの情報を読み込み、かつそこに情報を書き込むことができるように、プロセッサに接続されている。あるいは、記憶媒体は、プロセッサに一体化されていてもよい。プロセッサおよび記憶媒体は、ＡＳＩＣ内に存在していてもよい。ＡＳＩＣは、ユーザ端末内に存在していてもよい。あるいは、プロセッサおよび記憶媒体は、ユーザ端末内の個別の構成要素として存在していてもよい。
【０１２８】
１つ以上の例示的な実施形態では、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装されていてもよい。ソフトウェア内に実装されている場合、当該機能は、コンピュータ可読媒体に格納されているか、１つ以上の命令もしくはコードとしてそこに伝送されてもよい。コンピュータ可読媒体としては、１つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含むコンピュータ記憶媒体および通信媒体の両方が挙げられる。記憶媒体は、コンピュータによってアクセスすることができる任意の利用可能な媒体でもあってもよい。一例であって、限定されるものではないが、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光学ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、命令もしくはデータ構造の形態で所望のプログラムコードを保持もしくは格納するために使用することができ、かつコンピュータによってアクセスすることができる任意の他の媒体を含むことができる。メモリ記憶装置は、回転磁気ハードディスクドライブ、光学ディスクドライブまたはフラッシュメモリ系記憶装置ドライブ、あるいは他のそのようなソリッドステート、磁気もしくは光学記憶装置であってもよい。また、任意の接続は、コンピュータ可読媒体と適切に称される。例えば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）または赤外線、無線およびマイクロ波などの無線技術を用いて、ウェブサイト、サーバまたは他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬまたは赤外線、無線およびマイクロ波などの無線技術は媒体の定義に含まれる。本明細書に使用されているディスク（ｄｉｓｋ）およびディスク（ｄｉｓｃ）としては、コンパクトディスク（ＣＤ）、レーザディスク、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスクおよびブルーレイディスクが挙げられ、ここでは、ディスク（ｄｉｓｋ）は通常、磁気的にデータを再生するが、ディスク（ｄｉｓｃ）は、レーザで光学的にデータを再生する。上記組み合わせも、コンピュータ可読媒体の範囲に含まれるものとする。
【０１２９】
本明細書に記載されている演算を、ウェブサイト上またはウェブサイトを通じて行うことができる。ウェブサイトは、サーバコンピュータで動作させるか、例えば、クライアントコンピュータにダウンロードすることによって、ローカルで動作させるか、あるいは、サーバファームを介して動作させることができる。ウェブサイトには、携帯電話またはＰＤＡによって、あるいは任意の他のクライアント上でアクセスすることができる。ウェブサイトは、例えば、ＭＨＴＭＬまたはＸＭＬなどの任意の形態のＨＴＭＬコードをカスケーディングスタイルシート（「ＣＳＳ」）などの任意の形態で使用することができる。
【０１３０】
また、本発明者らは、「〜のための手段」という言葉を使用するそれらの特許請求の範囲のみが米国特許法第１１２条第６段落の下で解釈されることを意図している。さらに、本明細書からの限定は、それらの限定が特許請求の範囲に明示的に含まれていない限り、いずれの請求項にも読み込まれないものとする。本明細書に記載されているコンピュータは、任意の種類のコンピュータ、すなわち、汎用コンピュータまたはワークステーションなどのいくつかの特定の目的のコンピュータのうちのいずれか一方であってもよい。プログラムは、ＣもしくはＪａｖａ（登録商標）、Ｂｒｅｗまたは任意の他のプログラミング言語で書かれていてもよい。プログラムは、例えば、磁気もしくは光学の記憶媒体、例えば、コンピュータハードディスク、メモリースティックもしくはＳＤ媒体などの取り外し可能なディスクもしくは媒体、または他の取り外し可能な媒体に常駐していてもよい。また、プログラムを、例えば、本明細書に記載されている演算を行わせることができるローカル機械に信号を送信するサーバまたは他の機械を用いて、ネットワーク上で実行してもよい。
【０１３１】
本明細書において具体的な数値が言及されている場合、本出願の教示の範囲内になお留まっており、異なる範囲が具体的に言及されていない限り、その値は２０％で増減し得るものとみなす。これらの実施形態の多くが６４ビットについて述べているが、１２８もしくは２５６ビットのプロセッサもしくは処理を代わりに使用することができる。特定の論理的意味が使用されている場合、反対の論理的意味も含まれるものとする。
【０１３２】
開示されている例示的な実施形態の先の記述は、任意の当業者が本発明を製造または利用できるように提供されている。当業者には、これらの例示的な実施形態に対する様々な修正は容易に明らかであり、本明細書に定義されている一般的な原理は、本発明の趣旨または範囲を逸脱しない限り、他の実施形態に適用してもよい。従って、本発明は、本明細書に示されている実施形態に限定されるものではなく、本明細書に開示されている原理および新しい特徴と矛盾しない最も広い範囲を認めるものとする。
【図１Ａ】
0006007178.tif 000002
【図１Ｂ】
0006007178.tif 000003
【図２】
0006007178.tif 000004
【図３Ａ】
0006007178.tif 000005
【図３Ｂ】
0006007178.tif 000006
【図３Ｃ】
0006007178.tif 000007
【図４Ａ】
0006007178.tif 000008
【図４Ｂ】
0006007178.tif 000009
【図４Ｃ】
0006007178.tif 000010
【図５】
0006007178.tif 000011
【図６】
0006007178.tif 000012
【図７】
0006007178.tif 000013
【図８】
0006007178.tif 000014
【図９】
0006007178.tif 000015