図12A及び図12Bは、説明されるシフト推定の種々の構成が実施されうる汎用コンピュータシステム2200を示す。
図12Aに示されるように、コンピュータシステム2200は、コンピュータモジュール2201、キーボード2202、マウスポインタデバイス2203、スキャナ2226、カメラ2227及びマイク2280等の入力デバイス、並びにプリンタ2215、表示装置2214及びスピーカ2217を含む出力デバイスを備える。カメラ2227は、説明される方法で処理される画像の発信源であってもよい。外部変復調器(モデム)送受信機デバイス2216は、接続2221を介して通信ネットワーク2220と通信するためにコンピュータモジュール2201により使用されてもよい。通信ネットワーク2220は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク(WAN)又は専用WANであってもよい。接続2221が電話線である場合、モデム2216は従来の「ダイヤルアップ」モデムであってもよい。あるいは、接続2221が大容量(例えば、ケーブル)接続である場合、モデム2216はブロードバンドモデムであってもよい。無線モデムは、通信ネットワーク2220に無線接続するために更に使用されてもよい。
コンピュータモジュール2201は、一般に、少なくとも1つのプロセッサユニット2205及びメモリユニット2206を含む。例えばメモリユニット2206は、半導体ランダムアクセスメモリ(RAM)及び半導体読み出し専用メモリ(ROM)を有してもよい。コンピュータモジュール2201は、ビデオディスプレイ2214、スピーカ2217及びマイク2280に結合するオーディオ/ビデオインタフェース2207、キーボード2202、マウス2203、スキャナ2226、カメラ2227及び必要に応じてジョイスティック又はヒューマンインタフェースデバイス(不図示)に結合する入出力(I/O)インタフェース2213、並びに外部モデム2216及びプリンタ2215用のインタフェース2208を含む複数のI/Oインタフェースを更に備える。ある実装において、モデム2216は、インタフェース2208等のコンピュータモジュール2201内に組み込まれてもよい。コンピュータモジュール2201は、接続2223を介してコンピュータシステム2200がローカルエリアネットワーク(LAN)として既知であるローカルエリア通信ネットワーク2222に接続できるようにするローカルネットワークインタフェース2211を更に有する。図12Aに示されるように、ローカル通信ネットワーク2222は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク2220に接続2224を介して更に結合してもよい。ローカルネットワークインタフェース2211は、イーサネット(登録商標)回路カード、Bluetooth(登録商標)無線装置又はIEEE802.11無線装置を備えてもよいが、多数の他の種類のインタフェースがインタフェース2211に対して実施されてもよい。ネットワーク2220及び2222は、説明される方法で処理される画像の発信源であってもよい。
I/Oインタフェース2208及び2213は、直列接続性及び並列接続性のいずれか一方又は双方を提供してもよい。一般に直列接続性は、USB(Universal Serial Bus)規格に従って実現され、対応するUSBコネクタ(不図示)を有する。記憶装置2209が提供され、一般に記憶装置2209は、ハードディスクドライブ(HDD)2210を含む。フロッピディスクドライブ及び磁気テープドライブ(不図示)等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ2212は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD、ブルーレイディスク(登録商標)、USB−RAM、取り外し可能な外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム2200に対する適切なデータソースとして使用されてもよい。
コンピュータモジュール2201の構成要素2205〜2213は、一般に、当業者に既知であるコンピュータシステム2200の動作の従来のモードをもたらす方法で相互接続バス2204を介して通信する。例えばプロセッサ2205は、接続2218を使用してシステムバス2204に結合される。同様に、メモリ2206及び光ディスクドライブ2212は、接続2219によりシステムバス2204に結合される。説明する構成が実装可能なコンピュータの例には、IBMのPC及び互換性のあるもの、Sun Sparcstations、Apple Mac(登録商標)又は同様のコンピュータシステムが含まれる。
変位及び空間歪みの測定の方法は、コンピュータシステム2200を使用して実現されてもよい。説明する図1〜図11及び図13〜図20の処理は、コンピュータシステム2200内で実行可能な1つ以上のソフトウェアアプリケーションプログラム2233として実現されてもよい。特に、シフト推定の方法のステップは、コンピュータシステム2200内で実行されるソフトウェア2233で命令2231(図12Bを参照)により実施される。ソフトウェア命令2231は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成されてもよい。ソフトウェアは2つの別個の部分に更に分割されてもよく、第1の部分及び対応するコードモジュールはシフト推定方法を実行し、第2の部分及び対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納されてもよい。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム2200にロードされ、コンピュータシステム2200により実行される。そのようなソフトウェアを有するコンピュータ可読媒体又はコンピュータ可読媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム2200においてコンピュータプログラムを使用することにより、画像におけるシフト推定に有利な装置を実施することが好ましい。
一般にソフトウェア2233は、HDD2210又はメモリ2206に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム2200にロードされ、コンピュータシステム2200により実行される。従って、例えばソフトウェア2233は、光ディスクドライブ2212により読み出される光学的に読み出し可能なディスク記憶媒体(例えば、CD−ROM)2225上に格納されてもよい。
いくつかの例において、アプリケーションプログラム2233は、1つ以上のCD−ROM2225にエンコードしてユーザに供給されて対応するドライブ2212を介して読み出されてもよいか、あるいはユーザによりネットワーク2220又は2222から読み出されてもよい。さらに、ソフトウェアはまた、他のコンピュータ可読媒体からコンピュータシステム2200にロードできる。コンピュータ可読記憶媒体は、実行及び処理又はそのいずれかをするために記録された命令及びデータ又はそのいずれかをコンピュータシステム2200に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、CD−ROM、DVD、ブルーレイ(登録商標)ディスク、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、あるいは例えばPCMCIAカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール2201の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及びデータ又はそれらの少なくともいずれかをコンピュータモジュール2201に提供することに更に関係してもよい一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
上述したアプリケーションプログラム2233の第2の部分及び対応するコードモジュールは、ディスプレイ2214上にレンダリングされるかあるいは表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行されてもよい。一般にキーボード2202及びマウス2203を操作することにより、コンピュータシステム2200及びアプリケーションのユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び入力又はそのいずれかを提供するように機能的に適応可能な方法でインタフェースを操作してもよい。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ2217を介して出力された音声プロンプト及びマイク2280を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
図12Bは、プロセッサ2205及び「メモリ」2234を示す詳細な概略ブロック図である。メモリ2234は、図12Aのコンピュータモジュール2201によりアクセスされうる全てのメモリモジュール(HDD2210及び半導体メモリ2206を含む)の論理的な集約を示す。
コンピュータモジュール2201の電源が最初に投入される場合、自己診断(POST)プログラム2250が実行する。一般にPOSTプログラム2250は、図12Aの半導体メモリ2206のROM2249に格納される。ソフトウェアを格納するROM2249等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。POSTプログラム2250は、コンピュータモジュール2201内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するためにROM2249に更に格納されたプロセッサ2205、メモリ2234(2209、2206)及び基本入出力システム(BIOS)ソフトウェアモジュール2251をチェックする。POSTプログラム2250が正常に実行したら、BIOS2251は図12Aのハードディスクドライブ2210を起動する。ハードディスクドライブ2210を起動することにより、ハードディスクドライブ2210上に常駐するブートストラップローダプログラム2252がプロセッサ2205を介して実行する。これにより、オペレーティングシステム2253は、RAMメモリ2206にロードされると動作を開始する。オペレーティングシステム2253は、プロセッサ2205により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
オペレーティングシステム2253は、メモリ2234(2209、2206)を管理し、コンピュータモジュール2201上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図12Aのシステム2200で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用されなければならない。従って、集約メモリ2234は、メモリの特定の部分が割り当てられる方法を示すことを意図せず(特に記載されない限り)、コンピュータシステム2200によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
図12Bに示されるように、プロセッサ2205は、制御ユニット2239、演算論理装置(ALU)2240及びキャッシュメモリと呼ばれる場合もあるローカルメモリ又は内部メモリ2248を含む多数の機能モジュールを含む。一般にキャッシュメモリ2248は、レジスタ部に複数の記憶レジスタ2244〜2246を含む。1つ以上の内部バス2241は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ2205は、接続2218を使用してシステムバス2204を介して外部デバイスと通信する1つ以上のインタフェース2242を更に有する。メモリ2234は、接続2219を使用してバス2204に結合される。
アプリケーションプログラム2233は、条件付き分岐命令及びループ命令を含んでもよい一連の命令2231を含む。プログラム2233は、プログラム2233を実行するために使用されるデータ2232を更に含んでもよい。命令2231及びデータ2232は、それぞれ、記憶場所2228、2229、2230及び2235、2236、2237に格納される。命令2231及び記憶場所2228〜2230の相対的なサイズに依存して、特定の命令は、記憶場所2230に示された命令により示されたように単一の記憶場所に格納されてもよい。あるいは、命令は、記憶場所2228及び2229に示された命令部分により示されたように、各々が別個の記憶場所に格納される多数の部分にセグメント化されてもよい。
一般にプロセッサ2205は、そこで実行される命令の集合を与えられる。プロセッサ2205は、命令の別の集合を実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス2202、2203の1つ以上により生成されたデータ、ネットワーク2220、2202のうちの一方を介して外部ソースから受信したデータ、記憶装置2206、2209のうちの一方から検索したデータ又は対応する読み取り装置2212に挿入された記憶媒体2225から検索したデータを含む多数のソースのうちの1つ以上から提供されてもよく、その全てが図12Aに示される。いくつかの例において、命令の集合を実行した結果、データが出力される。実行することは、データ又は変数をメモリ2234に格納することを更に含んでもよい。
開示されるシフト推定の構成は、対応する記憶場所2255、2256、2257においてメモリ2234に格納される入力変数2254を使用する。シフト推定の構成は、対応する記憶場所2262、2263、2264においてメモリ2234に格納される出力変数2261を生成する。中間変数2258は、記憶場所2259、2260、2266及び2267に格納されてもよい。
図12Bのプロセッサ2205を参照すると、レジスタ2244、2245、2246、演算論理装置(ALU)2240及び制御ユニット2239は、プログラム2233を構成する命令集合において命令毎に「フェッチ、デコード及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。フェッチ、デコード及び実行サイクルの各々は、以下を含む。
(a)記憶場所2228、2229、2230からの命令2231をフェッチする、すなわち読み取るフェッチ動作
(b)制御ユニット2239がフェッチされた命令を判定するデコード動作
(c)制御ユニット2239及びALU2240又はそのいずれかが命令を実行する実行動作
その後、次の命令に対する更なるフェッチ、デコード及び実行サイクルが実行されてもよい。同様に、制御ユニット2239が値を記憶場所2232に格納するかあるいは書き込むことにより、格納サイクルが実行されてもよい。
図1〜図11及び図13〜図20の処理におけるステップ又はサブプロセスの各々は、プログラム2233の1つ以上の部分と関連付けられ、プログラム2233の示された部分に対して命令集合において命令毎にフェッチ、デコード及び実行サイクルを実行するようにプロセッサ2205のレジスタ部2244、2245、2247、ALU2240及び制御ユニット2239が共に動作することで実行される。
シフト推定の方法は、シフト推定の機能又はサブ機能を実行する1つ以上の集積回路等の専用ハードウェアで代わりに実現されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は1つ以上のマイクロプロセッサ及び連想メモリを備えてもよい。
変倍及び回転がシフト推定の劣化をもたらしている根本的な理由は、画像の2つのタイルが互いに対して回転している場合に、比較されている2つのタイルにわたり多数の個別のマルチ画素シフトが存在することである。
相関方法を使用する場合、これらの多数のシフトは、相関画像において多数の相関ピークとして現れる。各ピークは、タイルについて対応する位置の各々における細部の量に依存して強度が異なる。比較されているタイルの内容が最適な相関挙動のために選択可能であるとは限らないため、最強の相関ピークに反映されたようなシフト推定の実際の測定位置は、タイルのどこであってもよい。
勾配に基づいたシフト推定方法を使用する場合、シフト推定は1画素より小さいシフトに対してのみ作用する。1画素よりも大きく変位されるタイルの領域のシフト推定への影響は未知であり、シフト推定を損なう可能性が高い。
上述したように、シフト推定中に単に32×32サイズ等の非常に小さなタイルを使用することで、1つのタイル中に多数の変位を有することの影響を制限できる。しかし、そのようなタイルを使用することにより、シフト推定を特徴づける画像情報の量を制限し、ダウンサンプリングが使用されない限り、この例において測定可能な最大変位は16画素に制限される。
本発明において、先に識別されたシフト推定に関する問題を改善する好適な方法を開示する。2つの比較的単純な方法は、最大可能変位測定を制限せずに回転に対するロバスト性を持つ測定を提供し、2つのいくらかより複雑な方法は、回転に対する優れたロバスト性を提供し、他の利点を更に有する。
最初の2つの方法は、何らかの回転及び変倍への耐性も取り入れつつ、大きな変位を測定する機能を提供する。双方の方法は、シフト推定を基準タイルの中心の狭い領域の情報に限定することに依存する。
提示される全ての方法において、ロバスト性は、シフト推定を開始する前に基準タイルを処理することで実現される。基準タイルを処理することはいくつかの利点を有する。例えば、タイルがデジタル方式で生成される場合、タイルは雑音を免れることができ、そのタイルの処理は、ターゲット画像が取得される前に実行できる。使用可能な基準画像と使用可能なターゲット画像との間に実質的な時間遅延がある場合、基準タイルの処理は遅延時間内に実行でき、実行されているどのタスクにもいかなる実時間を追加する必要もない。しかし、代わりにターゲットタイルを処理するのが望ましいアプリケーションがあってもよい。
第1の技術において、基準タイルにおける所定の半径を持つ中心ディスクの外側の画素は、特定の範囲の角度内の回転(例えば±2°)が、いかなる非ゼロ画素もひとつの画素より大きくシフトしないようにゼロにされる。小さな角度の場合、このディスクの半径は、回転角度範囲の正弦に反比例する。2°の回転において、28画素の直径を持つディスクに対して良好な結果が本発明者により得られた。128タイル×128タイルに対するRMSシフト推定誤差は、元の基準タイルに対して約1.24画素であり、中心ディスクすなわち所定の半径の外側でゼロにされた基準タイルに対して約0.09画素であった。尚、離散フーリエ変換のラップアラウンド特性のために発生する、反対側で重複するタイルからの相関信号を回避するために、相関の前に最大75%の領域までタイルを埋め込むことは一般的である。
適切な回転ロバスト性及び大きな最大シフト推定の双方を提供するために、一般にそのようなディスクは、75%より大きな領域に埋め込まれる。
第2の技術において、基準タイルは、タイルの中心に近接する画素を強調し且つタイルのエッジに接近する画素の振幅をゼロにするように減少する窓関数を乗ぜられる。ガウス窓又はハニング窓等の異なる窓関数が使用されてもよく、窓関数に対して最適な幅は、所望の範囲を含む回転角度の異なる画像コンテンツを含む場合にシフト推定を実行することで実験的に判定されうる。2°の回転において、この第2の技術に対するRMSシフト推定誤差は、再度128タイル×128タイルに対して約0.10画素であった。
これら双方の技術は、狭い範囲の倍率及びある範囲のアスペクト比、更には恒等変換に十分に近い任意の空間変換の連続に対しても有効である。
これらの方法は、空間変換の下でシフト推定の正確度を向上させる一方で、基準タイルの中心の外側の画素情報を除去又は軽視する望ましくない特徴を有する。雑音がある状態で空間変換が純粋な平行移動である場合、シフト推定誤差がタイルの幅に反比例してよいため、より大きな基準タイルはより高度なシフト推定の正確度を提供する。しかし、基準タイルの画素をゼロにするかあるいはそれに窓を付けることにより、窓のサイズが基準タイルの幅ではなく角度範囲により制限されるために実現可能な正確度は制限される。従って、基準タイルを拡大してもシフト推定の正確度は向上しない。
ターゲットタイルのある回転が正確度に悪影響を及ぼしていない状態で基準タイル全体にわたり位置合わせ情報を保持できる方法を有することが好ましいだろう。
本発明において、基準タイルの中心の外側で実質的に画像情報を更に保持する小さな空間変換の下でロバストシフト推定を提供する更なる手法を開示する。この技術は、本明細書において「最適な回転又は変倍」の省略形である「brosc」法と呼ばれ、実broscフィルタ及び複素broscフィルタによりそれぞれ形成された2つの方法として提示される。
brosc法は、タイルの回転の中心に近接する画素が広域的なシフト以外の回転中に実質的に移動しないが、この中心から遠く離れた更なる画素が更に比例して移動して小さな回転角度でも1画素よりも大きくシフトするという事実に依存する。この方法は、ある角度の範囲にわたり作用でき、2α°の全角度範囲を与える回転角度の特定の範囲±α内で動作するように最初に較正される。例えば、この方法の一例は、α=3であり、6°の範囲を与える±3°間の全ての角度θに対して動作する。
ある角度の範囲にわたる回転中、タイルの各画素は、その画素を含む円の弧に沿って且つ回転の中心における原点と共に移動する。各画素の中心において、この弧は、その画素を通る円の半径に直交し、弧の長さは、回転の中心からの画素の距離に比例する。回転の中心(0、0)に対する位置(x、y)における画素の場合、半径ベクトルはvr=(x、y)であり、この半径に直交する2つの単位ベクトルは以下の通りである。
v~ 1=(−y,x)/√(x2+y2) 及び v~ 2=(y,−x)/√(x2+y2)
回転中の各画素の運動のこのような知識を使用して、フィルタリング済基準タイルは、シフト推定の下でより適切な正確度を提供するテンプレートとして元の基準タイルから作成できる。フィルタの目的は、所望の範囲内の全ての回転角度において強い相関を有する画像を作成することである。従って、フィルタが適用されるタイルの確立した又は仮定した寸法と揃わない方向にフィルタが適用される可能性があるとしても、フィルタは1つの寸法を逸脱するだけである。
この効果を実現するために、実broscフィルタのアプリケーションにおいて、フィルタリング済画像の各画素は、角度範囲による回転、判定を実数領域に限定する平均値の使用を通して、その画素すなわち画素位置に交差する画素の平均値により置換される。回転したターゲット画像との相関中、フィルタリング済基準画像の画素は、ターゲット画像の全ての重複画素との部分的な一致を含む。この実broscフィルタの影響は、フィルタリング済画像との相関精度が0°においてフィルタリングされていない画像との相関精度より低いが、回転範囲内の回転角度に対してフィルタリングされていない画像よりはるかに高いことである。フィルタリング済基準タイルとターゲットタイルとの間の相関によりシフトが測定される場合、相関ピークの幅は、範囲全体にわたり一貫して狭いままであり、フィルタリング済基準タイルの回転の中心とターゲット画像中の対応する場所との間のシフトを適切に推定する。フィルタのために使用された回転の中心がタイルの中心にある場合、相関は、フィルタリング済基準タイルの中心とターゲット画像中の対応する場所との間の距離を正確に測定する。
狭い角度範囲(例えば10°未満)の場合、各画素を通る弧は、その画素を通り、半径に直交し且つ長さが2r sin αである直線又は線分により近似されうる。より良い弧への近似は、曲率の中心に少しでも近接する位置を中心とすることであるが、この効果を原因として提供される改善はごく僅かである。
ナイキスト周波数の周期が0°又は90°以外の角度において2画素より短いため、ナイキスト標本抽出率はこれらの角度において1画素未満であり、適切な標本抽出を実現するための画素間の所望の間隔はベクトル(-y/(|x|+|y|), x/(|x|+|y|))である。所望の長さを実現するためのフィルタの画素数は、(|x|+|y|).2sin αである。これらのベクトルは、全ての画素位置に対して算出されなければならないが、幸いこれらの算出は、タイル全体にわたり一定である長さの倍率sin α以外の単純な演算のみを必要とする。
フィルタを評価するために線分に沿って進んでいる間、一般に所望のサンプリング位置は厳密な画素位置ではない。この場合、最近接画素が代わりに使用される。最近接画素値ではなく補間画素値を使用するより複雑なフィルタが使用可能であるが、実質的にフィルタの有効性は向上せず、実質的にフィルタを算出するのにかかる時間が長くなる。
尚、broscフィルタは、1次元であるために各タイル位置において1方向にのみ高周波数を減衰し、入力タイル上の全ての位置において何らかの高周波エネルギーが残るため、適切なシフト推定に必要な情報を保持する。
図1は、1画素のフィルタリングに対する幾何学構成を示す。図1は、フィルタの回転の中心1102を有するフィルタリングされる基準タイル1101を示す。この例において、回転の中心1102は基準タイル1101の中心に対応する。一般に基準タイル1101は、例えばコンピュータ2201のメモリ2206に一時的に格納された画像の構成要素である。図1は、フィルタリングされる画素の位置1103及びフィルタ角度範囲を設定する半角α1104を更に示す。回転の中心から画素への半径1105、画素1103を通る半径1105を含む円1108、画素が角度範囲だけ回転中に移動する弧106を更に示し、1107は、弧1106への近似である線分1107を示す。
要約すると、回転に対する1次元空間変動フィルタ(spatially-varying filter)は、HDD2210等に格納され且つメモリ2206の中間記憶装置を含むプロセッサ2205により実行可能なソフトウェアアプリケーションとして実現されることが好ましい以下のステップを使用して算出されうる。
1.入力は、角度範囲の半分α1104、回転の中心(0、0)1102を含むタイルt(x、y)1101である、
2.一辺に対する長さの倍率s=sin αとする、
3.入力タイルの画素t(x、y)1103毎に、
a.開始位置p~=(x,y)1103とする、
b.サンプリングステップd~ = (-y/(|x|+|y|), x/(|x|+|y|))とする
c.フィルタの片側のサンプル数n=round(s.(|x|+|y|))とする、
d.線に沿う画素の合計a=Σk=-1 n t(p~+k.d~)とする、
e.出力画素u(x,y)=a/(2n+1)とする、
4.出力は、入力タイルと同一のサイズのフィルタリング済タイルu(x,y)である。
出力フィルタリング済タイルは、フィルタリング済画像の一部としてメモリ2206に格納されてもよい。尚、各出力画素を評価する場合、フィルタは、前にフィルタリングされた画素の位置の画素を使用する。従って、入力タイルtを格納するために使用されたメモリ2206のメモリバッファとは別個の、メモリ2206内のメモリバッファに出力タイルuを格納する必要がある。あるいはメモリ2206は、処理されている現在の行又は列を含むストリップバッファとして部分的に動作するように構成されてもよい。これにより、u及びtに対して別個のタイルバッファを割り当てることなくフィルタを評価できる。
4°の合計角度範囲である±2°間の角度の場合、このフィルタは、α=4°のより広範な半角度範囲と共に使用される場合に非常に有効である。
この空間変動1次元フィルタを使用することにより、相関を使用するシフト推定のためにより正確な基準を提供する変形された基準タイルを作成する。しかし、この空間変動1次元フィルタを使用することにより、基準タイルに対するターゲットタイルの回転を同時に測定する手段を全く提供しない。
特定のフィルタが更に向上することにより、回転角度を推定する方法を提供できる。その結果、上述の複素broscフィルタが得られる。尚、フィルタリング済基準タイルを−2°だけ回転しているターゲットタイルと相関させる場合、相関は、ターゲットタイルと−2°の回転を示すフィルタのこれらの構成要素との間で最強となる。これは、フィルタの合計範囲が±2°である場合には、フィルタの最端部のひとつにおける画素である。フィルタにおける各画素は、複素位相により符号化された回転の角度を示す。例えば、フィルタの合計範囲が±2°である場合、−2°回転した画素に対してφ=−90°すなわち(0+i)、−1°に対してφ=−45°、0°に対してφ=0°、1°に対してφ=45°、あるいは2°に対してφ=90°を割り当ててよい。特定の画素におけるフィルタが1度毎に1カーネル画素である場合、このフィルタカーネルは、画素毎の周波数の線形位相45°であり、±2°間の回転角度に対して180°の位相範囲を含む。1度毎の画素数がフィルタの現在の半径に従って変化するため、カーネルの周波数は半径に反比例し、カーネルの位相は半径に正比例する。
フィルタカーネルが複素数であるため、フィルタリング済基準画像も複素数である。従って、シフト推定相関は実数ではなく複素数である。しかし、相関が高速フーリエ変換(FFT)を使用して実現される場合、FFTがいずれの場合においても複素変換であるため、複素相関は容易に実現できる。
相関の後、ターゲットタイルの回転角度は、相関ピークの複素位相において符号化される。上述の例において、−2°だけのターゲットタイルの回転の結果、名目上−90°の複素位相の複素数の相関ピークが得られるはずであり、−2°〜2°の角度θの場合、θだけの回転の結果、名目上45θ°の複素位相の複素数の相関ピークが得られるはずである。例えば、ターゲットタイルが−1.5°だけ回転した場合、相関ピークの位相φは、おおよそφ=−67.5°となる。
いくつかの理由から、回転角度と相関ピークの位相との間で期待される相関は厳密ではない。第1に、複素数フィルタカーネルの周波数が半径に反比例するため、フィルタカーネルの未補正周波数はタイルの中心付近でエイリアスを生じる。エイリアスの発生を防止するため、フィルタカーネルの最大周波数は、dφ/dx=90°に設定される。第2に、タイルの回転の中心付近では、カーネル幅が狭すぎるためにいかなるフィルタリングも全く実行できず、純粋な実数値、すなわち0°の位相に対してバイアスが生じる。
角度推定に対するこれらの問題は概ね推定修正角の線形尺度に帰着することが実験的観察で示されるため、それらの問題の影響は容易に打ち消すことができる。経験値は、特定のタイルサイズに対する位相からの角度推定を補正するために導出されてもよい。例えば、128×128タイルの場合、本発明者は、位相推定に1.175を掛けることで理論値を使用するより正確な結果が得られると判定した。
フィルタの位相範囲は、更に注意深く選択されなければならない。雑音が位相推定を乱すため、位相範囲は、信号対雑音比(SNR)を高く維持するように広く選択されなければならない。しかし、不明確さが生じるため、360°と大きい位相範囲は使用できず、+2°の角度は+180°の位相に対応し、−2°の角度は−180°の位相に対応するが、これらの2つの位相は区別不可能である。
最大周波数が画素毎に90°に制限され、且つフィルタカーネルの位相範囲が215°に設定される最適な結果が得られている。
表1は、他の方法と比較された複素broscフィルタ及び実broscフィルタを含むいくつかの結果の例を示す。テストは、異なる種類の5つの128×128サンプルタイル、すなわち大きなテキスト、密なテキスト、平滑な画像、詳細な画像及び画像/テキストの組合せを使用した。タイルは、最大±25画素及び±2°間の角度のいくつかのシフトを含むように処理された。
結果は、複素brosc法が角度範囲全体にわたり最も正確であることを示す。
複素broscは更に、他の方法より大きなピーク値を有するため、雑音及び他の画像歪みがある状態で他の方法よりロバスト性が高い可能性が高い。
角度推定もまた、複素法において非常に正確であり、±2°の範囲の角度に対して0.04°のRMS推定誤差である。複素brosc法のみが角度推定を与えるため、表1において他の技術を「X」として示す。
複素broscフィルタリング済パッチとターゲットパッチとの位置合わせが既知である場合、回転の角度を推定する別の有利な方法は、複素broscフィルタリング済パッチの、適切なターゲットパッチとの要素単位の乗算を合計する、又は複素broscフィルタリング済パッチのサブ領域の、適切なターゲットパッチのサブ領域との要素単位の乗算を合計する方法である。結果として得られる複素数値の位相は、上述の複素相関方法を用いるのと同一の方法で回転推定を提供する。
乗算及び加算に適したターゲットパッチは、broscフィルタリング済パッチを作成するために入手したのと同一のデータ又は同様のデータを含むターゲットパッチであるが、データは潜在的に回転されている。データの一部のみがbroscフィルタリング済パッチのデータに対応するターゲットパッチは、乗算及び加算を同一のデータ又は同様のデータを含むか或いはそれらから入手されたターゲットパッチ及びbroscフィルタリング済パッチのサブ領域に制限することで更に使用されてよい。尚、サブ領域は2つのパッチ内の種々のオフセットにあってもよい。また、要素単位の演算について対応する要素は、各サブ領域内において同一の相対オフセット(しかし、必ずしも全てのパッチ内の同一のオフセットではない)を含む要素である。同様に、対応するデータがターゲットパッチ及びbroscフィルタリング済パッチの双方のパッチ内の同一のオフセット又は同様のオフセットに配置される場合、角度は、データの一部のみがbroscフィルタリング済パッチのデータに対応するターゲットパッチの要素単位の乗算を合計することで推定できる。この場合、対応しないデータは、ターゲットパッチ又はbroscフィルタリング済パッチにおいてゼロであるのが理想であるが、必ずしもそうではない。図15、図17及び図18を参照して、適切なbroscフィルタリング済データ及びターゲットデータを取得することを後で更に詳細に説明する。
回転推定のために複素相関を介してこの技術を使用する利点は、計算速度である。2つのパッチの要素単位の乗算の合計を算出することは、実相関又は複素相関を使用して同一のサイズのパッチの相関を算出することより何倍も速い。
画像間のシフトが予期されないアプリケーションの場合、回転は、各画像内の同一の場所から抽出されたパッチを乗算及び合計することで推定できる。画像間に既知のシフトがあるアプリケーションの場合、回転は、そのシフトで又は概ねそのシフトで互いからオフセットした場所において画像から抽出されたパッチを乗算及び合計することで推定されうる。
画像間のシフトが他に知られていないアプリケーションの場合、シフト推定技術は、画像回転を推定するために乗算及び合計技術を適用する適切なパッチを見つけるために使用されてよい。本発明の他の場所で説明したシフト推定技術が使用されてよい。適切な別のシフト推定技術も従来技術において既知である。
1つの有用な手法は、broscフィルタリング済パッチの実数バージョンの相関によりシフトを推定する手法である。2つの実数値化されたパッチ間の相関は、約半数の演算を複素数値化されたパッチとの相関として使用して実現されてよいため、約半分の時間で算出されうる。2つのパッチの要素単位の乗算の合計を算出するための時間が、一般に相関の時間の一部であるため、複素数値化された要素単位の乗算及び合計(回転推定のための)が後続する実数値化された相関(シフト推定のための)は、複素相関である時間のおおよそ半分で算出されうる。図16を参照して、この手法を本発明において後で説明する。
この手法の欠点は、実数値化されたシフト推定が複素数値化された推定より正確でない可能性があることである。また、シフトが画素より小さい(サブ画素)要素を含む場合、乗算及び加算回転推定は、複素相関により算出されたものより正確でない可能性がある。後者の不正確さを改善する方法は、複素broscフィルタリング済パッチのサブ画素シフトバージョンを予め算出して回転推定のために最近接パッチを選択することによるものである。図15を参照して、この技術を後で補足説明する。
本開示の他の場所において、変倍、せん断及び樽型歪み等を含む回転以外の変換を推定するbrosc法を説明する。上述の乗算及び合計方法は、回転推定の際に他の種類の変換のパラメータを推定するために更に使用されてよい。例えば、X方向の変倍を符号化するbroscフィルタリング済パッチが作成される場合、そのパッチの適切なターゲットパッチとの要素単位の乗算を合計する結果得られる複素位相は、X変倍推定を提供する。
変換パラメータ推定に対する乗算及び合計技術の本明細書における説明は、複素位相が特定の変換を符号化する複素数値化されたタイルを使用するが、2次元ベクトル要素のパッチにおける変換又は2つの別個の実数値化されたパッチにわたる変換の符号化等の他の同様の符号化又は同等の符号化が使用されてよいことは、当業者には明らかなはずである。同様に、乗算された要素を集約するために合計が使用されることが好ましいが、他の集約方法により有用な結果を更に得られてもよい。
多くの場合、brosc法は、シフト推定の正確度を向上し且つ回転角度を推定するように作用するが、broscフィルタを適用した後に補正又は角度推定が失敗する可能性がある場合もある。2つの非常に一般的な例には、タイルの3/4がひとつの色かつ残りの1/4が異なるひとつの色を持つ角部と、90°で交わる2つの線の角部とが含まれる。双方の例において、タイル内の全ての勾配は、タイルに適用された1次元(1d)フィルタに平行であり、そのため強度にフィルタリングされ、フィルタに直交する勾配はない。broscフィルタは1次元であるが、タイルに関して種々の向きで適用されてもよく、適用した1次元でのみぼける。
この場合、タイルの高周波数成分の殆どがフィルタにより破壊された結果、相関の障害が発生する可能性がある。
このような場合、broscフィルタが適用される前に、基準タイルの半径に平行方向および直交(垂直)方向の両方向の勾配のエネルギーを算出することにより検出されうる。エネルギーの算出は、半径に平行な単位ベクトルと半径に直交する単位ベクトルの両方を用いて各勾配ベクトルのドット積の平方の合計を算出することで行える。直交エネルギーと平行エネルギーの比率が所定の閾値より小さく且つ/あるいは大きい場合、タイルは問題となる可能性が高い。本発明者による実験を通して判定されたように比の閾値に対して提案された値は、最小許容率として0.33、最大許容率として3.00である。
潜在的に問題となるタイルが検出される場合、タイルの中心について新しい場所が選択されるべきである。1つの手法は、タイルの測定位置を、殆どの勾配エネルギーを含む半平面に向かう方向でタイルの幅の1/4シフトする手法であり、その半平面は、その範囲の8個の点において評価される。
このシフトに影響を及ぼしうる方法を示す一例を図2に示す。
図2は、ターゲット画像と比較するために準備中の処理される基準画像1201を示す。基準画像1201は、白の領域又は背景に黒の輪郭1202を持つ空の矩形を含む。パッチ選択処理は、基準画像1201に適用され、シフト推定のために使用できる適切な2次元位置合わせ機能を含むタイル1203、1204、1205及び1206の選択を識別する。
しかし、タイル1203、1204、1205及び1206の各々は、対応する中心において矩形1202の角部を含む。従って、broscフィルタカーネルに平行する方向に殆ど勾配エネルギーを含まないため、潜在的な問題となる。
タイル1203、1204、1205及び1206の各々の位置は、望ましくは新しい測定位置を得るようにシフトされるべきである。
タイル1203は、タイル1203の中心に対応する測定位置1207を含むタイル1208として別個に示される。最大勾配エネルギーを含む半平面が南東の半平面にあるため、測定位置を、タイルの幅の1/4南東にシフトして、中心1209を含み且つタイル1210として示された新しいタイル位置1208を得るべきである。
タイル1203、1204、1205及び1206の各々は、角部の特徴を含むために全て同様に処理されるべきである。その結果、各タイルは、それぞれ南東、南西、北東及び北西にシフトされる。
broscフィルタは、ターゲットタイルが回転される代わりに±2%等の狭い範囲内で変倍される場合に更に使用されてもよい。しかし、回転の中心周りの円の接線方向にフィルタを適用する代わりに、フィルタは、変倍の固定点から半径に平行する方向に適用される。
図4は、変倍ロバスト性のための1画素のフィルタリングに対する幾何学構成を示す。図4において、変倍の中心1402を有するフィルタリングされる基準タイル1401が示される。この例において、変倍の中心1402は基準タイル1401の中心である。画素1403の位置は、それぞれ最小倍率及び最大倍率に対応する最小位置1404及び最大位置1405と共にフィルタリングされ、円1406はフィルタリングされる画素1403を通過する。線分1408は、画素1403が変倍中に移動する点を示すように示される。
変倍に対する1次元空間変動フィルタは、上述したようにコンピュータ2201で実行可能なソフトウェアで実現されることが好ましい以下のステップを使用して算出されうる。
1.入力は、倍率範囲s%、および回転の中心(0、0)1402を含むタイルt(x、y)1401である、
2.入力タイルの画素t(x、y)1403毎に、
a.開始位置p~=(x-s%,y-s%)1405とする、
b.終了位置q~=(x+s%,y+s%)1406とする、
c.サンプリングステップd~ = (y/(|x|+|y|), x/(|x|+|y|))とする、
d.a=Σk:p~<= p~+kd~<=q~ t(p~+k.d~)とする、
e.出力画素u(x,y)=a/MAX(k+1)とする、
3.出力は、入力タイルと同一のサイズのフィルタリング済タイルu(x、y)である。
回転の例に対するフィルタと同様に、線形位相関数はカーネル係数として使用されてよく、結果として得られる相関ピークの位相は倍率の関数である。接線勾配と半径方向の勾配の比率を算出することにより、角部又は円の特徴を含むタイルをチェックする必要があることもある。
回転及び変倍以外では、brosc法は、シフト推定を改善し且つ画素が実質的に線に沿って局所的に移動する空間変換のあらゆる集合に対して変換パラメータを推定するように変形されうる。そのような変換の他の例は、ひとつの軸周りの回転を組み込む透視投影、アスペクト比変更、樽型歪み及び糸巻き型歪みまたはそのいずれか、あるいは画像せん断である。
1つのパラメータのみにおいて変化し且つ個々の画素の移動がおおよそ線に沿っているあらゆる空間変換に対してbroscフィルタを算出するための一般的な方法が説明できる。この変倍方法及び回転方法の双方は、他の多くの方法と共にこの形態で表されうる。
この一般的なbrosc方法に対する動作は、コンピュータ2201で実行可能なソフトウェアで更に実現されてもよい図6の方法1699により示され、4つの入力1600で開始する。
1.入力1 1601は、単一の実数パラメータvを取る変換を使用して位置x~を位置y~にマッピングする空間変換f(x~,v)→y~であり、v=0の場合、変換は恒等変換f(x~,0)→x~である
例えばfは、点x~を回転角度vだけ回転してもよく、点x~を倍率(1+v)で変倍してもよく、あるいは回転角度vだけx軸周りに回転した後に観測面に点を投影することで透視投影を適用してもよい。変換がおおよそ対称である、すなわち、
f(x~,v)−x~≒x~−f(x~,−v)
であるなら一層よい。
2.入力2 1602は、タイル又は画像t(x
~)→wである、
3.入力3 1603は、パラメータに対するパラメータ範囲vであり、v>0である、
4.入力4 1604は、カーネルに対する位相範囲φであり、0≦φ<πである、
5.方法1699は、ステップ1605で入力タイルの次の位置x
~を処理する準備をする、
6.ステップ1606は、broscフィルタに対するパラメータを算出する、
a.ステップ1607は、開始位置p
0 ~=f(x
~,−v)及び終了位置p
1 ~=f(x
~,+v)を設定する、
b.ステップ1608は、方向ベクトルr
~=(p
1 ~−p
0 ~)/2を設定する、
c.ステップ1609は、サンプリングd
~=r
~/(|r
x ~|+|r
y ~|)を設定する
d.ステップ1610は、位相δ=(φ|r
~|)/|d
~|を設定する、
e.ステップ1611は、半カーネルの点の数
を設定する、
7.ステップ1612は、累算器値をa=t(x
~)に設定する
8.1≦k≦nの場合、ステップ1613は、フィルタリング済値を累算器に加算する(複素数)
a←a+Σ
k=1 nt(x
~+k.d
~).e
kiδ+Σ
k=1 nt(x
~−k.d
~).e
-kiδ、
9.ステップ1614は、画素(複素数)u(x
~)=a/(2n+1)を出力する、
10.ステップ1615において、より多くの位置がある場合(1616)、方法1699はステップ1605(上述の5.)に戻る、
11.より多くの位置がない場合(1617)、ステップ1618において、方法1699はフィルタリング済タイルu.を出力する、
12.方法1699はステップ1619で終了する。
図5A〜図5Dは、2つの画像の例、すなわち図5Aの点のグリッド1501及び図3の恐竜の画像からの図5Cのタイル1507でbroscフィルタを実行した結果を示す。尚、この例は、一般にbroscフィルタと共に適用されるウインドウ化及びハイパスフィルタを含まない。
図5Bは、broscフィルタを点のグリッド1501に適用した結果1502を示す。尚、フィルタカーネルは線に沿って適用されるが、フィルタリング済画像は点を弧に変換する。これは、所与の画素と交差するカーネルを含む画素が、それ自体が弧である所望のカーネル形状に近似する弧上で発生するために生じる。タイルの中心の近くでは、フィルタが短いために弧は短く、タイルのエッジの近くでは、フィルタはより長く、それに対応して弧はより長い。
図5Dは、broscフィルタを恐竜の画像からのタイル1507に適用した結果1508を示す。ここでも、タイルの中心の近くでは、フィルタは短くて実質的に画像を変更せず、タイルのエッジの近くでは、フィルタはより長くて実質的にタイルを変更する。しかし、画像はフィルタの方向でぼやけるが、フィルタの方向に直交する方向に依然として高周波数の位置合わせ情報が存在する。
複素broscフィルタが使用される場合、カーネル値は複素数となる。図5A及び図5Bのグリッド点の例において、位置1503の点は、点1505と1506との間の複素フィルタカーネルにより拡散される。フィルタリング済位置1504は、位相がゼロであり且つカーネル値が正の実数である複素フィルタの中心を乗ぜられたほぼ位置1503からの寄与を含む。位置1505は、位相が最小である複素カーネルの一方の端からの寄与を含み、位置1506は、位相が最大であり且つ位置1505における符号とは逆である複素カーネルの他方の端を乗ぜられた位置1503からの寄与を含む。
次に、図19を参照して、broscフィルタリング済タイルを生成する別の方法を説明する。方法1699及び図6において説明したように、タイルの各位置において空間変動1Dフィルタを適用するのではなく、各々が単一の実数パラメータを取る空間変換により開始タイルから変換されたタイルの集合が作成される。これらのタイルは、好ましくはそれらを平均化することでオーバレイされ、broscフィルタリング済タイルを作成する。
適切な空間変換は、単一の実数パラメータvを取る変換を使用して位置x~を位置y~にマッピングするf(x~,v)→y~として説明されうる変換であり、v=0の場合、変換は恒等変換f(x~,0)→x~である。上述したように、fは、点x~を回転角度vだけ回転し且つ点x~を倍率(1+v)で変倍することを含む種々の動作を説明できる。
空間変換されたタイルの集合を作成する処理は、コンピュータ2201で実行可能なソフトウェアで実現されることが好ましい。実現例が所定の空間変換f(x~,v)→y~に従ってタイルを変換してよいいくつかの方法がある。1つの方法は、空間変換を使用して供給元タイルの全ての画素を供給先タイルの場所にマッピングし、その結果を補間する方法である。別の方法は、供給先タイルの全ての画素が空間変換の逆を使用して供給元タイルの場所からマッピングされる逆マッピングを使用する方法である。複数のステップの手法は、いくつかの変換に適していてもよい。例えば回転は、Y方向のせん断が後続するX方向のせん断として実現されうる。
図19は、空間変換されたタイルの集合19020から作成されたbroscフィルタリング済タイル1940の一例を示す。開始タイル19010は、そのパラメータvのn個の個別のステップで空間変換fに従って変換される。vmaxは変換範囲の半分、すなわち−vmax≦v≦+vmaxである。この結果、n個の変換されたタイルの集合1920(元のタイル19010を含み、恒等変換に対応する)が得られる。broscフィルタリング済タイル19040は、タイルの集合19020の要素単位の平均によりオーバレイステップ19030で算出される。個別の変換ステップの数nは、変換するタイル19010のサイズ及び空間変換fの種類に基づいてエイリアスの発生を回避するように選択されることが好ましい。
変換されたタイルが全て実数値化される場合、変換されたタイルを平均化する結果、実数値化されたbroscフィルタリング済タイルが得られる。複素数値化されたbroscフィルタリング済タイルを作成するために、変換パラメータは、各タイルに位相φの異なる単位複素数を掛けることで符号化される。ここで、φは、変換パラメータvのステップに対応するn個の個別のステップで変動し、φmaxは位相範囲の半分、すなわち−φmax≦φ≦+φmaxである。このようなパラメータ符号化は、オーバレイステップ19030の前又は最中に行われてよい。尚、この方法により生成されたタイルは、方法1699により生成されたタイルに類似するが、一般的に同一ではない。これは、方法1699により戻されたタイルの各画素を作成するのに使用するサンプルの数を変更することに大いに起因する。
図7は、broscフィルタがタイルのシフト推定でどのように使用されてよいかを示し且つ空間変換の1つのパラメータを測定する方法1799を示す。方法1799は、画像を測定することに等しく適用可能であり、上述したようにコンピュータ2201で実行可能なソフトウェアとして実現されることが好ましい。
1.図7において、1701は入力基準タイルであり、1702は入力ターゲットタイルである。
2.上述したように、タイル1701及び1702の双方は、低周波数を除去し且つタイルのエッジをヘッジすることでそれぞれフィルタリングされる(1703及び1704)。
3.次に、broscフィルタは、ステップ1705でフィルタリング済基準タイルに適用される。
4.2つのフィルタリング済タイルは、直接相関、位相相関及び効率性のために適宜高速フーリエ変換を使用してステップ1706で相関され、原点o~1708を含む相関画像1707を得る。
5.相関ピーク1709は、その最大値を見つけることで相関画像1707において識別される。
6.次に、相関ピークの構造は、相関ピーク1709の近傍を調査し、ピーク位置x~を推定するように補間し、且つそのピーク位置で複素位相φを推定することにより、画素より小さい位置に対してステップ1710で推定される。
7.測定されたピーク位置x~及び複素位相φから、ステップ1711は、推定シフト1712s~=x~−o~及び1次元変換のパラメータ1713v=K.φを算出する。Kは、タイルサイズ、位相範囲、パラメータ範囲及び空間変換の種類を含むbroscフィルタを算出するために使用されたパラメータに対するvの誤差を最小限にするように算出された定数である。
図13〜図18は、タイルのシフト推定及び空間変換の1つのパラメータの測定のためにbroscフィルタを使用する別の方法を示す。
図13は、タイルのシフト推定のために実数値化されたbroscフィルタを使用する方法13000を示す。方法13000は方法1799に類似するが、方法13000において、実数相関は、方法1799で使用された複素相関の代わりに使用される。従って、方法13000は、単独ではシフト推定のみに適している。パラメータ推定は、方法14000及び15000のステップ等の更なるステップを必要とする。方法13000は、画像を測定することに等しく適用可能であり、上述したようにコンピュータ2201で実行可能なソフトウェアとして実現されることが好ましい。
1.図13において、13001は入力基準タイルであり、13002は入力ターゲットタイルである。
2.上述したように、タイル13001及び13002の双方は、低周波数を除去し且つタイルのエッジをヘッジすることでそれぞれフィルタリングされる(13003及び13004)。
3.次に、実数broscフィルタは、ステップ13005でフィルタリング済基準タイルに適用され、実数値化されたbroscフィルタリング済タイルを作成する。ステップ13005の一部、あるいはフィルタリングステップ13003又は13004の一部として、タイルのいくつかの領域を他の領域よりも強調するように更なるフィルタリングが適用されてもよい。例えばbroscフィルタリングは、各画素におけるbroscフィルタの長さに基づいてその画素の振幅を減少することを含んでもよく、最長の長さは、結果として最大の減少をもたらす(最長の長さが最も少ない相関情報を搬送するため)。
4.2つのフィルタリング済タイルは、位相相関等の相関方法及び効率性のために適宜高速フーリエ変換を使用してステップ13006で相関され、原点o~13008を含む相関画像13007を得る。
5.相関ピーク13009は、その最大値を見つけることで相関画像13007において識別される。
6.次に、相関ピークの構造は、相関ピーク13009の近傍を調査し、且つピーク位置x~を推定するように補間することにより、サブ画素位置に対してステップ13010で推定される。
7.測定されたピーク位置x~から、ステップ13011は、推定シフト13012s~=x~−o~を算出する。
図14は、broscフィルタリング済タイルを生成する方法14000又は図15の方法15000等のパラメータ推定方法に使用するのに適したタイルの集合を示す。方法14000は、コンピュータ2201で実行可能なソフトウェアとして実現されることが好ましい。
1.図14において、14010は入力基準タイルである。
2.上述したように、タイル14010は、低周波数を除去し且つタイルのエッジをヘッジすることで必要に応じてフィルタリングされる(14020)。尚、ここで適用されたフィルタリングは、相関のために使用されることを意図したタイルに対するフィルタリングと同一でなくてもよい。
3.次に、複素broscフィルタは、ステップ14030でフィルタリング済基準タイルに適用され、複素数値化されたbroscフィルタリング済タイルを作成する。このステップ14030の一部又はフィルタリングステップ14010の一部として、タイルのいくつかの領域を他の領域よりも強調するように更なるフィルタリングが適用されてもよい。例えばbroscフィルタリングは、各画素におけるbroscフィルタの長さに基づいてその画素の振幅を減少することを含んでもよく、最短の長さは、最も少ないパラメータ符号化情報を搬送するため、結果として最大の減少をもたらす。
4.ステップ14040はオプションである。ステップ14040は、各タイルが1つ又は双方の次元でサブ画素(半端な)シフトを被ったステップ14030で生成されたbroscフィルタリング済タイルの多くのコピーを作成する。例えば、各次元及び全ての組合せの集合{0.0、+0.25、−0.25、−0.5}からのサブ画素シフトを範囲に含むために、ステップ14040において、結果として16個のタイルを得る。一般に、使用されたサブ画素ステップサイズが小さいほど(すなわち、生成されたタイルの数が多いほど)、図15の方法15000等のより正確な方法は、ステップ14040により生成されたタイルを供給される場合に符号化空間パラメータを推定できる。高品質のサブ画素シフトされたbroscフィルタリング済タイルのコピーは、適用された線形位相と組み合わせてフーリエ変換を使用するか又は空間領域において高品質のsincフィルタを使用して生成されうる。ステップ14040により生成されたタイルは、必要に応じてトリミングされてもよい。それにより、方法14000の前のステップでより大きなタイルを使用でき、適切にシフトされたタイルを生成するためにより多くのデータを提供できる。
5.14050は方法14000の出力、すなわちオプションのステップ14040又はステップ14030により直接(ステップ14040が実行されない場合)生成された複素broscフィルタリング済タイルの集合である。集合の各タイルは、実質的に同一のbroscフィルタリング済タイルであるが、各々が異なるサブ画素量(ゼロを含む)だけシフトされる。各タイルは、それを生成したシフトの量と更に関連付けられる。ステップ14040がスキップされた場合、14050は、黙示的にゼロサブ画素シフトと関連付けられた単一のbroscフィルタリング済タイルとなる。
図15は、タイルの空間変換の1つのパラメータを測定するためにbroscフィルタを使用する方法15000を示す。方法15000は、画像を測定することに等しく適用可能であり、上述したようにコンピュータ2201で実行可能なソフトウェアとして実現されることが好ましい。
1.方法15000への入力は、各々がサブ画素シフトと関連付けられる1つ以上の複素broscフィルタリング済タイル15010である。そのようなタイル又はタイルの集合は、図14に示された方法14000により生成されることが好ましい。
2.方法15000への別の入力は、ターゲットタイル15020である。方法15000が画像間のシフトを推定するために使用される場合、この入力は、代わりにターゲット画像内の領域になりうる。
3.方法15000への別の入力は、入力broscフィルタリング済タイル15010(一般に、ゼロサブ画素シフトと関連付けられたbroscフィルタリング済タイル)の1つからターゲットタイル15020への期待シフト15030又は同様にターゲット画像内の領域である。いくつかのアプリケーションにおいて、期待シフト15030は、ゼロ等の既知の値であってもよい。他のアプリケーションにおいて、期待シフト15030は、図13の13000等の方法により推定されていてもよい。
4.ステップ15040において、期待シフト15030の整数バージョンが算出される。これは、期待シフト15030及びbroscフィルタリング済タイル15010と関連付けられたサブ画素シフトに関する情報の双方を使用して算出されることが好ましい。サブ画素シフトが一定の間隔をあけて配置される場合、この情報は、隣接サブ画素シフト間のステップサイズ(距離)又は各次元のサブ画素シフトの数を含んでもよい。
整数シフトと期待シフト15030との差がbroscフィルタリング済タイル15010と関連付けられたサブ画素シフトの1つとできるだけ近い整数シフトが算出されることが好ましい。一様に間隔が空いたサブ画素シフトについては、これは、各次元のシフトに同一の次元のサブ画素シフトの数を掛け、その結果を最も近い整数に丸め、丸められた結果を同じサブ画素シフトの数で割り、割られた結果を最も近い整数に丸めることで算出されうる。例えば、broscフィルタリング済タイルが各次元及び全ての組合せ(各次元で一様の間隔が空いた4つのシフト)の集合{0.0、+0.25、−0.25、−0.5}からのサブ画素シフトと関連付けられ、且つ予想シフトが(+7.4、−2.2)である場合、好適な整数シフトは(+8、−2)であり、整数シフトと期待シフトとの差は(−0.6、+0.2)であり、最も近い関連サブ画素シフトは(−0.5、+0.25)である。1つのbroscフィルタリング済タイル15010だけが供給される場合(暗黙裡にゼロのサブ画素シフトと関連付けられている)、整数値は丸めにより算出されることが好ましい。
5.ステップ15050において、適切なタイル及び必要に応じてそのタイルのサブ領域は、broscフィルタリング済タイル15010から選択される。ステップ15040で算出された整数シフトと予想シフト15030との差に最も近いサブ画素シフトと関連付けられたbroscフィルタリング済タイルが最初に選択される。ターゲットタイルが使用可能であるアプリケーションの場合、そのタイルのサブ領域が更に算出されてもよい。適切なサブ領域は、選択されたbroscフィルタリング済タイルをターゲットタイル15020と同一のサイズの矩形と交差させることで算出されうる。この矩形は、ステップ15040で算出された整数シフトの反転によりオフセットされている。broscフィルタリング済タイル18005を使用して、サブ領域算出の一例を図18に示す。
6.ステップ15060において、適切なタイル又はタイルのサブ領域は、ターゲットタイル15020又はターゲット画像から取得される。
ターゲットタイル15020が使用される特徴部分の場合、これは、そのタイルのサブ領域を算出することを含んでもよい。適切なサブ領域は、ターゲットタイル15020をターゲットタイル15020と同一のサイズの矩形と交差することで算出されうる。矩形は、ステップ15040で算出された整数シフトによりオフセットされている。ターゲットタイル18000を使用して、サブ領域算出の一例を図18に示す。
ターゲット画像内の領域が使用されるアプリケーションの場合、これは、画像から新しいタイルを抽出すること又は画像内の新しい領域を算出することを含んでもよい。適切なタイル又は領域は、ターゲット画像を画像内の既存の領域と同一のサイズの矩形と交差させることで算出されうる。矩形は、ステップ15040で算出された整数シフトにより既存の領域からオフセットされている。新しいタイルを抽出することは、必要に応じて例えば高周波数又は低周波数を除去するフィルタリングを含んでもよい。ターゲット画像17000を使用して、タイル抽出算出の一例を図17に示す。
7.次に、ステップ15070において、ステップ15050により選択されたbroscフィルタリング済タイルは、ステップ15060で取得されたタイルにより要素単位で乗算される。ステップ15050及び15060がそれぞれのタイルについてサブ領域を算出した場合、要素単位の乗算はこれらのサブ領域に制限される。
8.次に、ステップ15070から乗算された要素は、好ましくはそれらを加算することによりステップ15080で集約される。
9.ステップ15090は、1次元変換v=K.φのパラメータvを算出する。式中、φは、ステップ15080で算出された値の複素位相であり(±πラジアン間に包含される)、Kは、タイルサイズ、位相範囲、パラメータ範囲、期待画像コンテンツ及び空間変換の種類を含むbroscフィルタを算出するために使用されたパラメータに対するパラメータvの誤差を最小限にするように算出された定数である。パラメータvは、判定されるのが望ましい1パラメータ空間変換のパラメータであり、例えば画像間の回転に対して判定されるのが望ましい実際の回転の量であるため、画像中の空間歪みを示す。
図16は、図13、図14及び図15の処理13000、14000及び15000を使用してタイルのシフト推定及び空間変換の1つのパラメータを測定する処理16000を示す。
処理14000において、1つ以上の複素数値化されたbroscフィルタリング済タイル14050は、図14に示されるように基準タイル14010から作成される。これらのbroscフィルタリング済タイル14050は、パラメータ推定のために後で使用される。
次に、処理13000において、図13に示されるように、実数値化されたbroscフィルタリング済タイルは、ステップ13005で基準タイル13001から作成される。処理13000の残りの部分は、ターゲットタイル13002を受信し、基準タイル13001とターゲットタイル13002との間のシフトを推定する。いくつかのアプリケーションにおいて、ターゲットタイル13002を受信する前に複素数値化されたbroscフィルタリング済タイル14050と共にステップ13005から実数値化されたbroscフィルタリング済タイルを事前に算出する利点がある。
次に、処理15000において、処理13000により推定されたシフト15030、1つ以上の複素数値化されたbroscフィルタリング済タイル15010及びターゲットタイル15002を使用して、空間変換パラメータが算出される。
処理16000はステップ16099で終了し、処理13000により測定されたシフト及び処理15000により測定されたパラメータを返送する。
処理16000に関連して、基準タイル13001及び14010は同一のタイルであることが好ましい。同様に、ターゲットタイル13002及び15020は同一のタイルであることが好ましく、broscフィルタリング済タイル15010は、処理14000により作成されたbroscフィルタリング済タイル14050である。
図17及び図18は、broscフィルタリング済基準タイルからターゲットタイルへのシフトが与えられたとすると、新しいターゲットタイルが選択されてよい方法又は既存のターゲットタイル及びbroscフィルタリング済基準タイルのサブ領域が算出されうる方法を示す。結果として得られるタイル又はタイルサブ領域は、broscフィルタリング済タイルを作成するように入手されたデータと同一のデータ又は同様のデータを含むはずである。
図17において、新しいターゲットタイルが抽出されうる新しい領域17020は、より大きな画像17000内で算出される。既存の領域17010はターゲットデータを含む。新しい領域17020は、基準タイルからターゲットタイルへのシフト(好ましくは整数値化された)による既存の領域17010からのオフセット17030である。新しい領域17020は、既存の領域17030と同一のサイズである。新しい領域17020から抽出され、必要に応じてフィルタリングされたタイルは、broscフィルタリング済基準タイルとの抽出されたタイルの要素単位の乗算を合計することで空間変換を測定するために使用されてよい。
図18において、ターゲットタイル18000のサブ領域18010及びbroscフィルタリング済基準タイルのサブ領域18015が算出される。サブ領域18010は、ターゲットタイル18000と同一のサイズの矩形をターゲットタイル18000からオフセットし(18020)、且つ矩形をターゲットタイル18000と交差させることで算出される。このオフセット18020は、基準タイルからターゲットタイルへのシフト(好ましくは整数値化された)である。サブ領域18015は、broscフィルタリング済基準タイル18005と同一のサイズの矩形をbroscフィルタリング済基準タイル18005からオフセットし(18025)、且つ矩形をbroscフィルタリング済基準タイル18005と交差させることで算出される。このオフセット18025は、ターゲットタイルから基準タイルへのシフト(好ましくは整数値化された)であるため、オフセット18020の否定である。2つのサブ領域18010及び18015は、互いの要素単位の乗算を加算することで空間変換を測定するために使用されてよい。
いくつかのアプリケーション及びいくつかの空間変換の場合、本明細書において開示された方法は、多数のパラメータ空間変換、すなわち多数の単一のパラメータ空間変換を測定するために使用されてよい。これは、各々が異なる空間変換を符号化する2つ以上のbroscフィルタを合成することで実現しうる。フィルタを合成する好適な方法は、第1のフィルタを使用してbroscフィルタリング済タイルを作成し、次に第2のフィルタを用いて第1のbroscフィルタリング済タイルをフィルタリングすることで第2のbroscフィルタリング済タイルを作成する方法である。実数値化されたタイルを作成するために、双方のフィルタは実数値化されることが好ましい。複素数値化されたタイルの場合、好ましくは1つの実数値化されたフィルタ及び1つの複素数値化されたフィルタを使用することにより、変換の1つのみが複素位相で符号化される。この場合、更なるbroscフィルタリング済タイルが同様の画素値により作成されうるが、複素位相で異なる変換を符号化する。
図20は、X及びYの個々の変倍を測定するのに適した複素数値化されたbroscフィルタリング済タイルの作成を示す。開始タイル20010がX変倍のために実数値化されたbroscフィルタによりステップ20020でフィルタリングされる結果、実数値化されたタイル20030が得られる。タイル20010がY変倍のために実数値化されたbroscフィルタによりステップ20025で更にフィルタリングされる結果、実数値化されたタイル20035が得られる。タイル20030がY変倍のために複素数値化されたbroscフィルタによりステップ20040でフィルタリングされる結果、複素数値化されたbroscフィルタリング済タイル20050が得られる。タイル20035がX変倍のために複素数値化されたbroscフィルタによりステップ20045でフィルタリングされる結果、複素数値化されたbroscフィルタリング済タイル20055が得られる。タイル20050における画素の複素位相はY変倍係数を符号化し、タイル20055における画素の複素位相はX変倍係数を符号化する。
タイル20050及び20055は、2度(タイル毎に1度ずつ)方法15000を適用することにより、図15の15000等の方法で使用されてよい。タイル20050はY変倍を測定するために使用されてよく、タイル20055は、X及びYで個々に変倍されたターゲットタイルのX変倍を測定するために使用されてよい。
尚、複素数に対する別の符号化方式は、1つのタイル内で2つ以上の空間変換を符号化するために使用されてよい。例えば、3次元ベクトル又は四元数は、単一のタイル内でX変倍及びY変倍の双方を符号化するために使用されてよい。ここでは、第1のフィルタリングステップ(例えば、X変倍の場合)は、符号化方式の1つの次元で第1の変換のパラメータを符号化し、第2のフィルタリングステップ(例えば、Y変倍の場合)は、符号化方式の別の次元で第2の変換のパラメータを符号化する。結果として得られるタイルは、同時に2つの空間変換を測定するために15000等の方法で使用されてよい。
改善されたシフト方法及び角度推定方法は、種々のアプリケーションにおいて使用されてよい。1つのアプリケーションは出力チェッカ内にある。出力チェッカは、プリンタにより出力された全てのページに欠陥がないことを保証するシステムである。出力チェッカは、多くの構成を有してよいが、本明細書のために1つの構成のみを説明する。
図8は、出力チェッカ1899の例を示す概略図であり、それを用いて1つのページを印刷し且つ出力チェックする処理を説明する。出力チェッカ1899は、図12のコンピュータシステム2200内及び場合によってはプリンタ2215内全体に形成されてもよい。
1枚の用紙印刷媒体1801がデジタル印刷機構1807に供給される(1806)間、レンダリングシステム1802は、デジタルメモリ1803から媒体1801に印刷されるページを記述する印刷記述言語(PDL)を読み出す(1804)。レンダリングシステム1802は、PDLをレンダリング画像としてデジタルメモリ1803に再度格納する(1805)画素に変換する。
デジタル印刷機構1807は、デジタルメモリ1803からレンダリング画素を読み出し(1808)、電子写真印刷又はインクジェット印刷等のいくつかの物理的な複写処理を使用して画像を用紙1810に作成する。用紙1801は、デジタル印刷機構からデジタルスキャナ1810に供給される(1809)。印刷ページの画像は、全ての歪み及び印刷誤差と共にデジタル化され、デジタル化された画素は、走査画像としてデジタルメモリ1803に再度書き込まれる(1811)。
レンダリングされた画像1805及びスキャンされた画像1811は、比較システム1812により読み出され、関連する印刷欠陥を見つけるように比較される。比較システム1812は2つの構成要素を含む。2つの画像を比較するには、第1に、比較できるように、近接画素を正確に対応づけて位置合わせすることが必要である。位置合わせ部1818は、レンダリングされた画像1805とスキャンされた画像1811との間の空間歪みを測定し、空間変換を発生させて2つを関連づける。比較部1819は、発生させた空間変換を使用して、存在するあらゆる印刷欠陥の程度及び範囲を示す、2つの画像の対応する画素を調査する。欠陥重大度の何らかの閾値に基づいて、印刷ページが「良好である」か又は「不良である」かに関して判断が行われる。この判断は、制御信号1817として用紙ハンドラ及びレンダリングシステム1802に伝達される。用紙がデジタルスキャナ1810から用紙ハンドラ1815に供給される(1816)とき、用紙ハンドラ1815は、用紙を誘導する場所を判断するために制御信号1817を使用する。信号が「良好である」場合、用紙ハンドラ1815は、用紙を出力容器1820に誘導し、そうでなければ廃棄用紙容器1821に誘導する。「良好な」制御信号がレンダリングシステム1802に送信される場合、レンダリングシステム1802は、次のページの印刷に進むか、あるいは印刷欠陥を回避しようと再度同一のページの再レンダリングを開始するように構成されてもよい。
本発明は、特に、比較システム1812の位置合わせ部1818のみに関する。
走査処理中の光学効果及び機械効果、加熱及び押下による用紙の引伸し、並びに用紙が印刷経路を介して移動する時のページの回転及び平行移動を含む印刷処理中に生じた多くの空間歪みがあるため、そのような位置合わせを計算することは難しい。
次のページが印刷される前に欠陥のあるページが検出されるならば、この比較は、印刷システムに適用されるものとしてリアルタイムで(通常実質的に1秒未満で)実行されなければならない。
印刷ページの空間歪みを推定する1つの方法は、印刷ページ全域にわたる適当な点でいくつかのタイルにおいてシフト推定を実行する方法である。ページを印刷する前の比較のために使用されるページ全域にわたりこれらのタイルを選択することが好都合であり、これらのタイルが位置合わせ測定の可能性のために選択され、且つ基準画像全域にわたり可能な限り一様に更に分散されるならば、位置合わせはより正確になる。この処理を「パッチ選択」と呼ぶ。
小さな回転により基準画像に対するターゲット画像のタイルを実質的にシフトできるため、後続の推定のシフトを予測するために初期のシフト推定を使用することに大きな価値がある。それにより、ターゲット画像のタイルの位置をより正確に予測できる。初期のシフト推定を使用する1つの方法は、ターゲット画像と基準画像との間の最適なアフィン変換を見つけるために最小二乗法を使用する方法である。
しかし、最小二乗法を使用して完全なアフィン変換を予想することは、最低3つのシフト推定を必要とし、RST(回転/変倍/平行移動)変換を予想することは、少なくとも2つのシフト推定を必要とする。正確な予想を実現するため、より多くの推定が行われるべきである。
本発明で開示されたbroscフィルタを使用すると、平行移動及び回転角度の両方が、一対のタイルから予測されうる。出力チェッカ1899の適用において、変倍又は変化による歪みが殆どない可能性が高いため、broscフィルタを使用する一回の測定で、ターゲット画像と基準画像との間のあらゆる広域的な変換を実質的に予測できる。
広域的なアフィン推定が良好になる際には、より高速なシフト推定方法が使用できるため、広域的な変換を判定するために使用されるタイルはより少ないことが好ましい。相関は、一対のタイル間の実質的なシフトを測定するために使用できるが、相関は非常に低速である。勾配を利用したシフト推定は、より一層高速であるが、シフトが1画素〜4画素を下回る場合にのみ使用できる。
この位置合わせは、アフィン変換等の広域的な画像変換と、基準画像とターゲット画像との間の画素の画像に基づいたマッピング等の局所的な残差変換との組合せの形態をとる。
図9は、出力チェッカ1899の一部として実現し得る位置合わせシステムの一例の動作の方法1999を示す。位置合わせシステム及び方法1999は、出力チェッカ1899内に格納され且つその種々の構成要素により実行されたソフトウェアとして実現されることが好ましい。
位置合わせシステムの方法1999は、入力としてターゲット画像1901及び基準画像1902を使用する。通常、基準画像1902は、ターゲット画像1901の生成前に生成され、雑音及び欠陥がない可能性が高い。例えば、基準画像1902はコンピュータにより生成された「理想」の画像であってもよいが、その一方でターゲット画像1901は、基準画像1902の印刷であってもよいために印刷誤差を受けやすい。あるいはターゲット画像は、写真複写処理又はスキャン処理から取得されたコピー画像であってもよい。いずれの場合においても、2つの画像1901及び1902は、何らかの方法で劣化する可能性の高い画像コンテンツを共有するように関連する。しかし、コンテンツは同一でなくてもよい。例えば画像は、一般に映像系列からの隣接フレームであってもよい。基準画像1902は、シフト推定が実行されるステップ1903でパッチ候補を選択するために使用される。パッチ候補は、ハリスのコーナー検出器の局所最大値を選ぶことで選択されてよく、実行可能な限り多くのページにわたり分散されるように選択されてよい。
最適なパッチ候補は、基準画像1902から、以下において基準タイルと呼ぶタイルとしてステップ1904で選択され、ステップ1905を介して、基準画像1902の最適なパッチ候補の場所は、ターゲット画像1901から同様に配置されたターゲットパッチを選択するために使用される。
broscフィルタは、ステップ1906で基準タイルに適用され、シフト推定のために基準タイルを準備する。
最適なパッチ候補の位置におけるシフト及び回転角度の双方が推定され、初期の空間変換は、ステップ1907でシフト及び回転角度を使用して初期化される。図7に示されるように、これは、複素相関等を使用して実行されることが好ましい。この手法の利点は、相対的に計算に手間のかかる単一の相関演算が実質的に同時に且つ別個の判定より確実に迅速に変位シフト及び回転の双方に対する値を判定することである。
次に、位置合わせ推定アルゴリズムのメインループ1998に入り、最初にステップ1908において、次のパッチ候補が基準画像1902から選択される。ステップ1909において、対応するターゲットパッチは、現在の空間変換を基準画像のパッチ候補の位置に適用することで選択される。ステップ1910において、シフト推定は、相関、GBSE又は期待されたシフト量に対して適切であるような他のシフト判定方法により実行されうる基準タイル及びターゲットの場合に対して実行される。
ステップ1911で判定されるように処理されるより多くのパッチがある場合、アルゴリズムは、ステップ1908でより多くのパッチを処理するようにループし、さもなければ測定されたシフト推定は、あらゆる残差シフトと共に2つの画像1901及び1902に対して広域的な変換としてステップ1912で出力される。これらの構成要素は、画像比較のために基準画像1902とターゲット画像1901との間の画素対画素の対応を形成するために使用できる空間変換を生じるように組み合わされて、出力チェッカ1899の動作を完了する。
恐竜(漫画の)2つの画像1301及び1302の概略的な比較を図3に示す。
基準画像1301は、この例において−2°だけ(すなわち2°だけ時計方向に)回転されているターゲット画像1302と比較される。上述したようなパッチ選択処理は、空間歪みを判定するために使用される基準画像1301の3つのタイル1303、1304及び1305を選択した。空間歪みの知識が全くない状態で、恒等変換を仮定し、ターゲット画像1302の選択された3つのタイルの期待される位置は、タイル1306、1307及び1308により示されたそれぞれの位置にある。尚、ターゲット画像1302のタイル1307及び1308は、基準画像1301のマッチングの特徴部分から実質的に変位され、画像1301の黒の境界の部分が欠落している結果、シフト推定誤差が生じるだろう。
基準画像1301から抽出されたタイル1303が複素broscフィルタにより処理されるならば、平行移動及び回転角度の双方は、複素数ピーク位置及びターゲット画像1302のマッチングタイル1306との相関後の位相を調査することで判定されてもよい。シフト及び回転角度の双方が既知であることにより、ターゲット画像1302のタイル1307及び1308の位置を再度推定できる結果、タイル1309及び1310が代わりに抽出される。正確な位置を含むこれらのタイル1309及び1310が基準画像1301の対応するタイル1304及び1305により適切に一致するため、タイル1309及び1310は、より適切なシフト推定をもたらす可能性が高い。精度と速度との間の妥協に応じて、brosc法は、測定の精度を向上するために相関の前にタイル1304及び1305に対して使用されてよく、あるいはタイル1304及び1305は直接回転されてよく、あるいは結果として得られる測定誤差が許容可能であった場合には補正を実行する必要はない。
十分なシフト及び回転又はそのいずれかの推定が行われた後、広域的なアフィン変換又は歪み(ワープ)が導出されて基準画像1301とターゲット画像1302との間の画素を比較するために使用されてもよい。
brosc法に対する別のアプリケーションは、システムの構成要素としてデジタルカメラにより撮像されたオブジェクトの距離又は深度を推定することである。
種々の焦点位置又は種々の絞り設定で撮像された少なくとも2つの画像を使用することにより、センサにより撮像されたオブジェクトの深度に関する情報が収集できる。この技術を焦点ぼけからの深度(depth from defocus)と呼ぶ。
よく知られているように、レンズによりカメラ2227のセンサに撮像されたオブジェクトの焦点のシャープネスは、そのレンズの焦点位置に依存する。あまり知られていないが、撮像オブジェクトの倍率は、多くの場合レンズの焦点位置に従って予測可能に変化する。
矢継ぎ早にカメラにより撮像されたシーンのいくつかの関連画像を比較することにより、局所的な画像のぼけ及び局所的な画像の倍率の双方は、シーンのいくつかの位置において推定でき、これらの2つの量の関数として、これらの各位置に対して深度が推定される。
いくつかのカメラレンズにおいては、焦点機構が焦点位置決めパルスをスキップできることで結果として未知の焦点位置が得られるため、焦点位置を変更することは信頼できない。この場合、真の焦点位置を算出するために局所的な倍率の測定が使用できる。
推定位置は、シーン全体にわたり深度の推定を発生させるために補間し得る。この補間は、深度のマップを別個のオブジェクトにセグメント化する推定画像境界において不連続性を含む可能性がある。
2つの画像の対応する位置間の相対的なぼけの変化は、ガウシアンとしてモデル化された点広がり関数を推定することで推定されうる。局所的な倍率は、いくつかの点における画像の特徴の局所的な変位を測定してそれらの変位をアフィン変換に適合させることで推定されうる。
しかし、いくつかの理由により、焦点ぼけからの深さを算出することは難しい。
第1に、いくつかの要因から、収集した画像に運動がある可能性が高い。カメラ2227自体が動いている可能性があり、シーン全体にわたり全体的な線運動を発生させるか、あるいはシーンのオブジェクト自体が動いている可能性もあり、シーンの一部において局所的な線運動を発生させる。
第2に、焦点ぼけによりいくつかの画像周波数においてコントラスト反転が発生する可能性があるため、各タイルが種々の量のシャープネスを有するタイル対間のシフト推定は失敗する可能性がある。暗い値及び明るい値が実際にいくつかの空間周波数において反転されるレンズを使用する場合、コントラスト反転は一般にぼやけた画像において発生する。焦点ぼけがタイル対において異なるため、コントラスト反転周波数は各タイルにおいて異なっている可能性もある。タイルの一部が反相関される結果、これらの周波数が真のシフト位置におけるピークに悪影響を与えるため、タイル間のこのコントラスト反転のばらつきは、実質的に相関ピークを劣化させる可能性がある。この劣化は、相関ピークの拡大又は引伸しとして反映される可能性があり、あるいは環状にゆがむ可能性があり、あるいは結果として多数の最大値を有する相関ピークが発生する可能性がある。
第3に、変位及びシャープネスの測定は、必ずタイル又は領域に基づく動作でなければならないが、単一のタイルの深度がそのタイルにわたり非常に顕著に変わるであろう可能性が非常に高い。
第4に、変位及びシャープネスの測定は著しく画像に依存し、種々の結果は、画像の一意の領域又は鋭いエッジの近く、あるいは高度なテクスチャ領域で得られる。
組み合わせで、これらの影響により多くの不正確さが生じる。出力チェッカ1899に対するアプリケーション1999と同様に、倍率の僅かな変化により、シフト推定の誤差及びタイル対間の大きな変位の双方が生じ、シフト推定が更に劣化する。一般的な重複領域が更に狭くなるにつれ、タイル対間の大きな変位は鋭度推定が更に劣化する。
相関の前にタイル対の1つをフィルタリングして結果として得られる相関ピークの位相から倍率(相対変倍である)を推定するために複素brosc法を使用することにより、これらの影響の多くを実質的に改善できる。
相関が小さな倍率に対してロバスト性が高いため、タイル間の相対運動は、brosc法を使用してより正確に推定されうる。
brosc法はコントラスト反転による影響を被りやすいが、方法(「修正brosc法」)の小さな倍率によりこの問題を解決できる。相関画像の計算中、最後から2番目の段階は相関ピークのフーリエ変換を含む。コントラスト反転が存在する場合、このフーリエ変換のいくつかの周波数は無効とされる。修正brosc方法によれば、全ての周波数の位相を2倍にすることで無効とされた周波数の符号(サイン)を訂正できる。このような位相の2倍化により、原点からの相関ピークの変位も2倍化して測定可能な最大変位を制限し、位相雑音の大きさも2倍化して方法の耐雑音性は低下する。複素brosc法が使用される場合、修正brosc法が相関ピークの位相を更に2倍にするため、broscカーネルの周波数は、変倍測定を示す位相の周囲のラッピングを回避するように半減されるべきである。
実質的に単一のタイルにわたり深度が変動する場合、brosc法は、依然として直接相関より正確な結果をもたらすが、broscカーネルの周波数の範囲が180°未満であるようにbroscカーネルの周波数を減少させる必要がある可能性があるため、種々の深度からの相関ピークへの寄与が反相関されない。
組み合わせて、これらの影響の全てがより正確な変位推定、すなわちより適切な画像位置合わせに寄与する結果、より正確な焦点ぼけからの深さの測定につながる。
単一のタイル相関に基づいて倍率が推定できるという、brosc法を焦点ぼけからの深さの測定に対して望ましくする更なる効果もある。brosc法を使用しない場合、倍率は、多数の変位推定に変倍パラメータを適合させることで推定され、それによって単一のタイルに局所化された推定は決して与えられない。タイルのシャープネス及びタイルの倍率の双方が同時に且つ局所的に測定及び合成されうるため、タイルに基づく倍率推定は焦点ぼけからの深さのアルゴリズムに非常に適している。
図10は、broscアルゴリズムのサポートによって1つの焦点ぼけからの深さの方法2099の動作を示す。
方法2099は、図12Aのデジタルカメラ2227の焦点がステップ2003で異なる焦点位置に変更され且つ第2の画像2004が撮像される第1の焦点位置において第1の画像2002を撮像するためにカメラ2227を使用する。画像2002及び2004は、共通又は実質的に共通のシーンコンテンツを共有するが、2つの画像間の差が焦点の変化により大きな影響を受けるという点で関連する。
第1の撮像画像2002から、焦点ぼけからの深さの測定に対して十分な細部を含むパッチ候補がステップ2005で選択される。選択されたパッチ候補は、ステップ2006で第1の撮像画像2002からタイルとして抽出される。複素変倍broscフィルタは、ステップ2008で各パッチに適用される。
対応するパッチは、ステップ2007で第2の撮像画像2004からタイルとして更に抽出される。
第1の画像2002からのbroscフィルタリング済タイルは、ステップ2009で第2の画像2004からの対応するタイルに対して相関される。ステップ2009において、シフトは、複素数のピークの位置を測定することで推定され、変倍係数又は相対倍率は、複素数のピークの複素位相を測定することで更に推定される。この手法の利点は、相対的に計算に手間のかかる単一の相関演算が実質的に同時に且つ別個の判定より確実に迅速に変位シフト及び変倍係数の双方に対する値を判定することである。
第2の画像2004の各パッチの位置は、ステップ2009から測定されたシフトを使用してステップ2010で補正され、タイルは、それらの補正された位置を使用してステップ2007で第2の画像2004から抽出される。
ステップ2009からの倍率推定を使用し、ステップ2006から取得された第1の撮像画像2002からの対応するパッチとステップ2010から取得された第2の撮像画像2004からの対応するパッチとの差を解析することにより、画像の深度は、ステップ2011でパッチ候補位置において推定される。
broscフィルタに対する別のアプリケーションは、ラスタ走査取得処理中に運動により歪められた画像からのフレームを位置合わせするのを支援することである。そのような画像取得デバイスの一例は、補償光学走査型レーザ検眼鏡(AO−SLO)である。このデバイスは、レーザ光の非常に小さなスポットを患者の網膜に集束させ、且つ光の振幅を測定するようにこの光を画素センサに更に誘導するために補償光学系を使用する。振動機械システムを使用して、レーザスポットがラスタ走査方式で矩形領域を描くようにしてよく、それにより網膜の高解像度画像を生成する。レーザを連続的に走査して光を取得することにより、眼の狭い領域の2次元映像系列を取得できる。
この映像系列のフレームレートは非常に高く、一般に60Hzであるが、眼が継続的に動いている結果、周囲をシフトする視野が一連のフレームとして収集される。映像系列のフレームを位置合わせすることにより、一般的な視野は、画像を互いに又は単一の共通の画像に位置合わせすることで多くのフレームに対して取得されうる。これは、相関型シフト推定により実現されうる。
しかし、眼は、サッケードと呼ばれる非常に急速な移動を更に示すことがある。その結果、画像が収集されている間に眼がラスタ走査の下に移動する時に、非常に強い画像歪みが生じうる。
この結果、いずれの方向であってもよいが一般に説明のために殆どのビデオ表示と一致する、X方向であると仮定されうるラスタ走査の低速な走査方向(すなわち、走査線に沿う)と同一の方向に眼が偶然移動する場合、非常に強い画像歪みが生じうる。そのような一例において、相補的な高速走査方向はY方向(すなわち、走査線間の方向)である。歪みは低速走査方向に生じる。例えば、低速ラスタ走査が毎秒10ラジアンである場合、サッケードは毎秒20ラジアンで眼を移動し、走査された画像は、サッケードがラスタ走査の方向と同方向に、あるいはそれと反対方向にそれぞれ移動するかに依存して50%倍又は150%倍だけ変倍される。
そのような大きな歪みは、フレーム間のシフト推定に非常に悪影響を及ぼす。回転又は2次元変倍と同様に、僅か5〜10%の1次元変倍がシフト推定を害する可能性がある。
シフト推定に対する回転及び変倍の影響と同様に、シフト推定に対する低速走査(X方向)の変倍の影響は、broscフィルタを使用することで緩和されうる。回転及び変倍の場合、空間変動フィルタは、それぞれ画像半径に対して接線方向又は半径方向に適用され、フィルタの長さは半径の長さに比例する。X方向の変倍の場合、空間変動フィルタは、X軸に平行する方向に適用され、フィルタの長さは、画像の中心位置からX方向の距離に比例する。位相がカーネル内で直線的に変動し且つカーネルの長さに比例する複素カーネルを使用し、且つ画像の中心からの方向を変更することにより、相関型シフト推定の前にbroscフィルタを使用する結果、ターゲット画像におけるX変倍の量に比例して変動するピークの複素位相を含む振幅ピークが得られる。回転及び変倍の例と同様に、複素位相カーネルを使用する結果、直接相関又は実broscフィルタを使用する相関と比較してロバスト性の高いシフト推定が得られる。
変倍係数を推定するために相関ピークの複素位相を使用することにより、画像内の空間歪み測定の精度を向上させる更なるシフト推定の前に、多数のサブ画像に対してより正確な位置が推定されうる。
図11は、AO−SLOデバイスから取得されたターゲットフレームを基準フレームに登録するために複素Xbroscフィルタを使用する方法2199を示す。HDD2210に格納され且つコンピュータ2201のプロセッサ2205により実行された方法2199は、例えばネットワーク2220又は2222のうちの1つを介してAO−SLOデバイス2101から画像を受信している。
方法2199において、AO−SLOデバイス2101は、適切な画質及び少ない歪みを有するように選択される基準フレーム2102を撮像するために使用される。
複素Xbroscフィルタは、ステップ2103で基準フレーム2102に適用され、X変倍に対してロバスト性があり且つX変倍推定を更に提供できるテンプレートを作成する。
基準Xフレーム2102に位置合わせされるターゲットフレーム2104は、AO−SLOデバイス2101により更に取得される。フレーム2102及び2104は、関連ビデオフレームであってもよく、一般にビデオフレームに隣接する。
ターゲットフレーム2104及びステップ2103からのフィルタリング済基準フレームは、ステップ2105で相関される。ステップ2105内において、相関ピークの位置及び位相は、フレーム間の相対シフト及び相対X変倍の双方を推定するために使用される。このように推定されたシフト及びX変倍は、フレーム2012及び2104の対応するパッチ間で「粗位置合わせ」を構成する。
この相対シフト及びX変倍係数は、ターゲットフレーム2014と基準フレーム2102との間の重複領域を判定するために使用され、パッチの6×6グリッドは、ステップ2107でターゲットフレーム2104のパッチから抽出され、且つステップ2106で基準フレーム2102のパッチから抽出される。
対応するパッチの各々に対するシフト推定は、ステップ2108で実行され、ターゲット画像及び基準画像の双方における重複領域に6×6グリッドに対するシフトの推定を与え、シフト推定のこの6×6グリッドは、基準画像2102とターゲット画像2104との間で「精細な位置合わせ」を構成する。
ステップ2105から取得した粗位置合わせ及びステップ2108から取得した精細な位置合わせは、ステップ2109で組み合わされて基準フレーム2102を介してターゲットフレーム2104を登録できるようにターゲットフレーム2104を曲げるために使用される。
ステップ2109のワープ処理の出力は、HDD2210に格納され且つその後基準フレーム2102とより簡単に比較されうる補正ターゲットフレーム2110である。
説明した構成は、コンピュータ産業及びデータ処理産業、並びに特に画像間のシフト及び小さな歪みの推定に対して適用可能である。この構成は、多くの分野に適用される。最初に、シフト、回転及び変倍を判定することにより、焦点及び被写界深度等の撮像パラメータを関連画像から判定できる。上述したように、構成は、印刷処理の出力チェック及び眼の測定のために使用されてもよい。これらの例の各々において、基準画像及びサンプル画像は既知である。
この構成は、2つの画像が関連するかを判定するために更に使用されてもよい。例えば構成は、ソース画像と関連してもよい画像を画像のデータベースで検索するために使用されてもよい。これらの例において、ソース画像のみが既知である。全く関連しないデータベースの画像の場合、大きな変位が判定され、相関は、判定されないかあるいはせいぜい不十分に判定される。しかし、より密接に関連する画像の場合、比較すると変位及び相関又はそのいずれかの程度が顕著であるため、少なくともソース画像に一致する可能性が最も高い短いリストが可能になる。
更なる実施例において、例えば図14及び図15を参照して説明した実施例に基づいて、変位を測定する説明した方法は、変更されてもよく、あるいは空間歪みパラメータを判定するために使用されてもよい。特に、空間歪みパラメータは、複素位相を使用して且つフィルタリング済基準タイルが作成された方法を認識せずに判定されてもよい。説明した乗算及び集約(加算)の手法は、シフト推定を与えられて歪みを判定するために更に使用されてよい。この手法は、シフトが測定されるのではなく既知である場合及びシフトがゼロである場合に適用可能である。また、乗算及び加算の手法は、最近接パッチを選択することを含むサブ画素シフトパッチの集合と共に実行されてもよい。
図16の開示から導出された更なる実現例は、シフト推定のために実broscフィルタを使用するステップと、歪みパラメータ判定のために乗算して加算する手法を使用するステップとを組み合わせること(図16)に関連する。
図20と関連付けられた別の実施例は、2つ以上のパラメータを用いた空間変換の使用を示す。ここで、特定の実施例において、変換は多数の単一のパラメータ変換に分解されうる。
説明した構成は、シフト及び歪みパラメータに対する符号化として複素位相を使用する。他のパラメータ符号化が使用されてもよい。特に、乗算及び加算の手法を使用する場合(そのような手法はFFT相関に依存しないため)、例えば2次元以上のベクトル又はベクトル/複素数を使用する他の符号化は、多数の実数値化された画像を介して分裂している。
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び変更またはそのいずれかがいくつかの実施形態に対して行なわれてもよい。実施形態は、限定するものではなく例示するものである。