JP6857224B2 - 画像内の乱流の影響を減少させるシステム及び方法 - Google Patents

画像内の乱流の影響を減少させるシステム及び方法 Download PDF

Info

Publication number
JP6857224B2
JP6857224B2 JP2019187955A JP2019187955A JP6857224B2 JP 6857224 B2 JP6857224 B2 JP 6857224B2 JP 2019187955 A JP2019187955 A JP 2019187955A JP 2019187955 A JP2019187955 A JP 2019187955A JP 6857224 B2 JP6857224 B2 JP 6857224B2
Authority
JP
Japan
Prior art keywords
image
iterations
turbulence
frames
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019187955A
Other languages
English (en)
Other versions
JP2020144835A (ja
Inventor
パン ルーミン
パン ルーミン
ジョン コックス フィリップ
ジョン コックス フィリップ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2020144835A publication Critical patent/JP2020144835A/ja
Application granted granted Critical
Publication of JP6857224B2 publication Critical patent/JP6857224B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration using non-spatial domain filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20182Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Description

本発明は、長距離撮像における乱流の影響を補償するのためのビデオ安定化及びアーチファクト除去の方法に関する。
長距離監視のような長距離撮像用途においては、カメラの動き、大気の乱れ、または他の外乱により、キャプチャされたビデオはボケたり、幾何学的に歪んだり、不安定に見えたりすることがある。
多くの場合、長距離画像キャプチャの解像度のボトルネックは、レンズの品質やセンサのサイズではない。 代わりに、通常、大気の乱流が、キャプチャされたビデオに幾何学的な歪みとボケ(blur)が存在する主な理由となる。 水上または高温の表面上での長距離監視は、そのイメージングパスに沿った屈折率が強くランダムに変化するため、特に困難となる。
大気乱流は、主に大気の屈折率の変動によるものである。大気の屈折率変化は、風速、温度勾配、および高度を含む多くの要因を含む。
星のような、遠い光源から大気に近づく狭いスペクトル帯域の光は、平面波によってよくモデル化される。この波の平面的な性質は、その波が均一な屈折率を有する自由空間を通って伝播する限り、変化しないままである。しかしながら、大気は、乱流渦と呼ばれる、均一な屈折率の多数のランダムに分布した領域を含む。屈折率は渦から渦まで変化する。その結果、遠く離れたシーンから大気中を進行する光波は、光がカメラに到達するまでもはや平面とはならない。
図1は、地球の大気が、遠点源の波面に及ぼす影響を示している。図1では、平面波が大気中の乱流層を通過した後、波面が乱れる。平面波からの波の偏位は、画像捕捉システムにおいてランダムな収差として現れる。光学収差の一般的な効果には、点広がり関数の広がりおよび解像度の低下が含まれる。レンズの設計において、固定された光学系によって、いくらかのボケ効果を補正することができるが、空間的にランダムで時間的に変化する大気乱流の性質は補正することを困難にしている。
従来の長距離画像キャプチャでは、乱流の影響を除去するために複数のフレームが必要とされる。1つの既知の例は、空間的及び時間的拡散方法を使用することであり、この方法は各キャプチャされたフレームにおける幾何学的歪みを低減し、同時にフレームにわたってビデオを安定化するものである。バイスペクトラム法のような他の公知方法は多数のフレームから大気乱流の長露出の点広がり関数(PSF)を抽出し、各フレームをボケ修正(deblur)するためにPSFを適用することを試みる。
近年の監視装置の進歩に伴い、長距離監視映像のフレーム解像度は急速に高まっている。乱流の影響を受けたビデオを高いフレーム解像度で処理するには、計算能力を向上させるため、比較的大きな記憶容量と最新の技術を有する高価な装置が必要となることが多い。さらに、いくつかの将来のフレームを含む複数のフレームが、現在のフレームにおける乱流の影響を補正するために必要とされるので、ある量の遅延が処理されたビデオに導入される。より多くのフレームが必要とされるほど、遅延(レイテンシ:待ち時間)はより長くなっていく。
幾何学的歪みおよびボケ(blur)を短いレイテンシで補償するためには、厳しい乱流の影響を有する長距離監視の特殊な場合を処理するために、効率的なリアルタイムマルチフレームビデオ安定化方法が必要とされる。
本発明の目的は、既存の構成の1つ以上の欠点を実質的に克服するか、または少なくとも改善することである。
本開示の1つの態様は、画像フレームの時間的に順序付けられたシーケンスの画像から乱流の影響を除去する方法を提供する。この方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシ及び前記利用可能なメモリの容量は、乱流除去を実施するコンピューティングシステムに関連される;
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレー、乱流除去の中間反復にて生成される画像フレー、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレー、及び前記初期の補正された画像フレームを含む;
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
を含む。
他の態様によれば、前記方法は、前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含む。
他の態様によれば、前記方法は、前記補正された後続の画像を用いて、乱流除去の反復の追加が必要であること、及び、当該乱流除去の反復の追加が前記レイテンシ制約および利用可能なメモリの容量を満たすことを決定することをさらに含む。
他の態様によれば、前記方法は、前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含む、
ここで、前記参照フレーム数は前の反復からの前のフレームの補正されたバージョンを追加するように更新される。
他の態様によれば、前記反復回数を決定することは、前記レイテンシ制約および前記利用可能なメモリの容量を満たす、最大反復回数を決定することを含む。
他の態様によれば、前記反復回数を決定することは、所望の量の乱流除去を提供するための最小反復回数を決定することを含む。
他の態様によれば、前記最小反復数は、前記時間順序付けされたシーケンスのフレーム数の幾何学的類似性に基づいて決定される。
他の態様によれば、前記方法は、前記補正された後続する画像を使用して、追加の乱流除去が必要であることを決定することをさらに含む。
他の態様によれば、前記反復回数を決定することは、
前記レイテンシ制約および前記利用可能なメモリの容量を満たすために最大反復回数を決定すること、
前記所望の量の乱流除去を提供するために最小反復回数を決定することと、
前記最大反復回数および最小反復回数の平均値を決定することを含む。
他の態様によれば、前記決定された反復数の平均値は、時間順序付けされたシーケンスの各フレームに使用される。
他の態様によれば、前記必要とされる反復数は、前記時間順序付けされたシーケンスの各画像フレームに対して別々に決定される。
他の態様によれば、前記乱流除去は、前記メモリに格納された前記フレームの最小セットを使用した、空間的なボケの除去、続く幾何学的歪みの除去を含む。
他の態様によれば、前記方法は、前記時間順序付けされた画像フレームのシーケンスがキャプチャされるに応じてリアルタイムで実施される。
他の態様によれば、前記乱流除去の前記所望のレベルは、勾配ベースの構造類似性指数(G−SSIM)方法と、前記時間順序シーケンスの前記画像フレームの数とを用いて決定される。
他の態様によれば、前記後続の画像から乱流を除去することは、(i)前記初期の補正された画像、(ii)前記現在の反復の直前の中間反復からの前記後続するフレームの補正画像と、(ii)前記前の反復において補正された前記シーケンスにおける次の後続の画像の画像フレームとを組み合わせることを含む。
本開示の他の態様は、画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するためのプログラムが記憶された、非一時的なコンピュータが読取可能な記憶媒体を提供する。ここで、前記プログラムは、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去するコードと、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定するコードと、
ここで、前記レイテンシ及び前記利用可能なメモリの容量は、乱流除去を実施するコンピューティングシステムに関連される;
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定するコードと、
ここで、前記画像フレームの最小セットは、利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む;
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力するコードとを含む。
本開示の他の態様は、画像キャプチャ装置を提供する。この画像キャプチャ装置は、
メモリと、
画像キャプチャ装置によってキャプチャされた、画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための、前記メモリに格納されたプログラムを実行するプロセッサとを有し、
前記方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシは、前記画像キャプチャ装置に関連される;
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む;
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
こと含む。
本開示の他の態様は、システムを提供する。このシステムは、
メモリと、
画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための、前記メモリに格納されたコードを実行するように構成されているプロセッサとを有し、
前記方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシは、乱流除去を実施する算出システムに関連される;
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレー、乱流除去の中間反復にて生成される画像フレー、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレー、及び前記初期の補正された画像フレームを含む;
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
こと含む。
本発明の他の態様も開示される。
以下の図面を参照して、本発明の1以上の例示的な実施形態を説明する。
平面波の波面に対する大気乱流の影響を示す図。 乱流画像捕捉装置のための適応画像品質改善プロセスの方法を示す図。 ビデオフレームの反復構造および反復数を示す図。 乱気流ビデオ改善処理がブートストラップされた後の、後続のフレームのメモリ要件および反復構造を示す図。 反復ビデオ品質改善方法において必要とされる反復回数と必要とされるフレーム数との間の関係を示す図。 乱流効果除去方法の反復構造を示す図。 最小反復数を決定する方法を示す図。 最大反復数を決定する方法を示す図。 空間的ボケ修正および時間拡散を含む反復ボケ修正の方法を示す図。 図9で実施される時間拡散の方法を示す図。 隣接フレームが異なる数の必要な反復を有する場合のメモリ使用の流れ図を示す図。 現在のフレームに対するトータル反復が増加される必要があるかどうかを決定するための適応評価の方法を示す図。 隣接フレームの空間解像度向上および時間的組合せを利用する、1つのフレームに対する乱流補正の例を示す。 トータル反復回数がフレームごとに変化しない乱流画像捕捉装置のための適応画像品質改善の方法を示す図。 図14の方法で使用される反復数を決定する方法を示す図。 トータル反復数はフレームごとに変化するものの、単一フレームの反復中には変化しない、乱流画像キャプチャ装置のための適応画像品質改善の方法を示す図。 集合的に、説明された構成を実施することができる電子装置の概略ブロック形成図。
添付の図面のいずれか1つまたは複数において、同じ参照番号を有するステップおよび/または特徴が参照される場合、これらのステップおよび/または特徴は反対の意図が現れない限り、本説明の目的のために、同じ機能または操作を有する。
説明される構成は、リアルタイムで実施することができる乱流画像を補正する方法に関する。マルチフレームビデオ安定化法を用いて、激しい乱流の影響を有する長距離監視の特殊な場合を扱われる。
本開示の文脈において、画像から「乱流を除去すること」(画像を補正することとも呼ばれる)は、乱流によって引き起こされる幾何学的歪みおよびボケを補償するために画像処理を適用することに関する。説明される例示的な構成では、画像またはビデオが1以上の画像キャプチャデバイスによってキャプチャされる。画像キャプチャ装置のプロセッサまたはGPUは、乱流の影響を除去するために、画像処理装置として説明した方法を実行する。他の構成では、キャプチャされた画像を、ここで説明される方法を実施することができるリモートコンピューティングデバイスに送信させることができる。
上述したように、画像内の乱流の影響を低減するためにより多くのフレームが必要とされるほど、補正された画像フレームを生成する際のレイテンシが長くなる。したがって、リアルタイムで実施できる乱流補正技術が必要である。説明される構成はレイテンシおよび演算処理を低減し、したがって、ハードウェアコストを低減し、速度を向上させるために、可能な限り少ないフレームをメモリにロードすることを可能にする方法に関する。一方、マルチフレーム乱流除去方式では、乱流補正の品質を保証するために、特定の数のフレームが必要である。より多くのフレームが必ずしも良好な出力品質を保証するとは限らないが、フレームが少なすぎると、典型的には不十分な乱流補正または不安定な前景移動物体抽出につながる。
図17A及び図17Bは、まとめて、組み込まれた要素を含む汎用電子デバイス1701の概略ブロック図を形成し、その上で、説明される方法が望ましく実施される。説明される例では、電子デバイス1701がデジタルビデオカメラ、または、デジタル画像シーケンスを取り込むのに適した別の画像取り込みデバイスである。しかし、電子デバイス1701は例えば、携帯電話、ポータブルメディアプレーヤ、または処理リソースが制限される別のデバイスであってもよい。それにもかかわらず、説明される方法はまた、デスクトップコンピュータ、サーバコンピュータ、および著しく大きな処理リソースを有する他のそのような装置などのより高レベルの装置上で実行されてもよい。
図17Aに見られるように、電子デバイス1701は、組み込みコントローラ1702を備える。したがって、電子デバイス1701は、「組み込みデバイス」と呼ぶことができる。この例では、コントローラ1702が内部記憶モジュール1709に双方向に結合された処理ユニット(またはプロセッサ)1705を有する。記憶モジュール1709は、図17Bに見られるように、不揮発性半導体読み出し専用メモリ(ROM)1760および半導体ランダムアクセスメモリ(RAM)1770から形成されてもよい。RAM1770は、揮発性、不揮発性、または揮発性メモリと不揮発性メモリとの組み合わせであってもよい。
電子デバイス1701は、液晶ディスプレイ(LCD)パネルなどのビデオディスプレイ1714に接続されたディスプレイコントローラ1707を含む。ディスプレイコントローラ1707は、ディスプレイコントローラ1704が接続されたエンベデッドコントローラ1702から受信した指示に従って、ビデオディスプレイ1714上にグラフィック画像を表示するように構成される。
電子デバイス1701はまた、キー、キーパッドまたは同様の制御装置によって典型的に形成されるユーザ入力デバイス1713を含む。いくつかの実装では、ユーザ入力デバイス1713が表示部1714に物理的に関連付けられたタッチセンシティブパネルを含み、集合的にタッチスクリーンを形成することができる。したがって、そのようなタッチスクリーンはキーパッド-ディスプレイの組み合わせで典型的に使用されるプロンプトまたはメニュー駆動GUIとは対照的に、グラフィカルユーザインタフェース(GUI)の1つの形成として動作することができる。音声コマンドのためのマイクロフォン(図示せず)またはメニューの周りのナビゲーションを容易にするためのジョイスティック/サムホイール(図示せず)など、他の形態のユーザ入力デバイスも使用することができる。
図17Aに見られるように、電子デバイス1701はまた、接続1719を介してプロセッサ1705に結合されるポータブルメモリインタフェース1706を備える。ポータブルメモリインタフェース1706は、相補型ポータブル・メモリ・デバイス1725を電子デバイス1701に結合して、データのソースまたは宛先として機能させるか、または内部記憶モジュール1709を補足することを可能にする。そのようなインタフェースの例は、ユニバーサルシリアルバス(USB)メモリ装置、セキュアデジタル(SD)カード、パーソナルコンピュータメモリカード国際協会(PCMIA)カード、光ディスク、および磁気ディスクなどのポータブルメモリ装置との結合を可能にする。
電子デバイス1701はまた、接続1721を介してデバイス1701をコンピュータまたは通信ネットワーク1720に結合することを可能にする通信インタフェース1708を有する。接続1721は、有線であっても無線であってもよい。例えば、接続1721は、無線周波数または光学であってもよい。有線接続の例には、イーサネット(登録商標)が含まれる。また、無線接続としては、ブルートゥース(登録商標)方式のローカル相互接続、Wi−Fi(IEEE 802.11ファミリの規格に準拠したプロトコルを含む)、IrDa(Infrared Data Association)等がある。
典型的には、電子デバイス1701が何らかの特別な機能を実行するように構成される。組み込みコントローラ1702は、おそらくさらなる特殊機能要素分1710と共に、その特殊機能を実行するために提供される。説明した例では装置1701がデジタルビデオカメラである場合、要素1710はカメラのレンズ、焦点制御、および撮像素子を表すことができる。特殊機能要素1710は、組み込みコントローラ1702に接続される。別の例として、デバイス1701は、携帯電話ハンドセットであってもよい。この例では、要素1710がセルラー電話環境における通信に必要な要素を表すことができる。デバイス1701がポータブルデバイスである場合、特殊機能要素1710は、Joint Photographic Experts Group(JPEG)、(Moving Picture Experts Group)MPEG、MPEG−1 Audio Layer 3 (MP3)などを含むタイプのいくつかのエンコーダおよびデコーダを表すことができる。
以下に説明する方法は、組み込みコントローラ1702を使用して実施することができ、図2、図7〜図10、図12、および、図14〜図16プロセスは、組み込みコントローラ1702内で実行可能な1以上のソフトウェアアプリケーションプログラム1733として実施することができる。図17Aの電子デバイス1701は、説明される方法を実施する。特に、図17Bを参照すると、説明される方法のステップは、コントローラ1702内で実行されるソフトウェア1733内の命令によって実行される。ソフトウェア命令は、各々が1つ以上の特定のタスクを実行するための1つ以上のコードモジュールとして形成されてもよい。ソフトウェアはまた、2つの別個の部分に分割されてもよく、第1の部分および対応するコードモジュールは説明される方法を実行し、第2の部分および対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
組み込みコントローラ1702のソフトウェア1733は、典型的には内部記憶モジュール1709の不揮発性ROM1760に格納される。ROM1760に格納されたソフトウェア1733は、必要に応じて、コンピュータ読み取り可能な媒体から更新することができる。ソフトウェア1733は、プロセッサ1705にロードして実行することができる。場合によっては、プロセッサ1705がRAM1770内に位置するソフトウェア命令を実行することができる。ソフトウェア命令は、ROM1760からRAM1770への1つ以上のコードモジュールのコピーを開始するプロセッサ1705によって、RAM1770にロードされ得る。あるいは、1以上のコードモジュールのソフトウェア命令が製造業者によってRAM1770の不揮発性領域にプリインストールされてもよい。1以上のコードモジュールがRAM1770に配置された後、プロセッサ1705は、1以上のコードモジュールのソフトウェア命令を実行することができる。
アプリケーションプログラム1733は、典型的には電子デバイス1701の配布の前に、製造業者によってROM1760にプリインストールされ、格納される。しかし、場合によっては、アプリケーションプログラム1733が1以上のCD−ROM(図示せず)上に符号化されてユーザに供給され、内部記憶モジュール1709またはポータブルメモリ1725に格納する前に、図17Aのポータブルメモリインタフェース1706を介して読み取ることができる。別の代替例では、ソフトウェアアプリケーションプログラム1733がプロセッサ1705によってネットワーク1720から読み取られるか、または他のコンピュータ可読媒体からコントローラ1702またはポータブルメモリ媒体1725にロードされ得る。コンピュータ可読記憶媒体は、実行および/または処理のためにコントローラ1702に命令および/またはデータを提供することに関与する任意の非一時的有形記憶媒体を指す。そのような記憶媒体の例には、フロッピー(登録商標)ディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROMまたは集積回路、USBメモリ、光磁気ディスク、フラッシュメモリ、またはPCMCIAカードなどのコンピュータ可読カードが含まれ、そのようなデバイスがデバイス1701の内部にあるか外部にあるかは問わない。ソフトウェア、アプリケーションプログラム、命令、および/またはデータのデバイス1701への提供にも関与し得る一時的または非有形のコンピュータ可読伝送媒体の例には、無線または赤外線伝送チャネル、ならびに別のコンピュータまたはネットワーク化された装置へのネットワーク接続、ならびに電子メール伝送およびウェブサイト上に記録された情報などを含むインターネットまたはイントラネットが含まれる。そのようなソフトウェアまたはコンピュータプログラムが記録されたコンピュータ可読媒体は、コンピュータプログラム製品である。
アプリケーションプログラム1733の第2の部分、および、上述の対応するコードモジュールは、図17Aの表示部1714上にレンダリングされる、または他の方法で表される1以上のグラフィカルユーザインタフェース(GUI)を実装するために、実行することができる。ユーザ入力デバイス1713(例えば、キーパッド)の操作を通じて、デバイス1701のユーザおよびアプリケーションプログラム1733はGUIに関連するアプリケーションに制御コマンドおよび/または入力を提供するために、機能的に適応可能な方法でインタフェースを操作することができる。スピーカ(図示せず)を介して出力されるスピーチプロンプト、およびマイクロフォン(図示せず)を介して入力されるユーザ音声コマンドを利用するオーディオインタフェースなど、機能的に適応可能なユーザインタフェースの他の形態も実装され得る。
図17Bは、アプリケーションプログラム1733および内部記憶1709を実行するためのプロセッサ1705を有する組み込みコントローラ1702を詳細に示す。内部記憶1709は、読み取り専用メモリ(ROM)1760およびランダムアクセスメモリ(RAM)1770を含む。プロセッサ1705は、接続されたメモリ1760および1770の一方または両方に格納されたアプリケーションプログラム1733を実行することができる。電子デバイス1701が最初に電源投入されると、ROM1760に常駐するシステムプログラムが実行される。ROM1760に永続的に格納されるアプリケーションプログラム1733は、「ファームウェア」と呼ばれることもある。プロセッサ1705によるファームウェアの実行は、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、およびユーザインタフェースを含む様々な機能を実行することができる。
プロセッサ1705は、典型的には制御ユニット(CU)1751、算術論理ユニット(ALU)1752、デジタル信号プロセッサ(DSP)1753、および、典型的にはアトミック・データ要素1756、1757を内部バッファまたはキャッシュ・メモリ1755と共に含む1組のレジスタ1754を含むローカルまたは内部メモリを含む、いくつかの機能モジュールを含む。1以上の内部バス1759は、これらの機能モジュールを相互接続する。プロセッサ1705はまた、典型的には、接続1761を使用して、システムバス1781を介して外部デバイスと通信するための1以上のインタフェース1758を有する。
アプリケーションプログラム1733は、条件付き分岐およびループ命令を含むことができる一連の命令1762〜1763を含む。プログラム1733は、プログラム1733の実行に使用されるデータを含むこともできる。このデータは、命令の一部として、またはROM1760またはRAM1770内の別個の位置1764に格納することができる。
一般に、プロセッサ1705には、その中で実行される命令のセットが与えられる。この命令セットは、特定のタスクを実行するか、または電子デバイス171内で発生する特定のイベントを処理するブロックに編成することができる。典型的には、アプリケーションプログラム1733がイベントを待ち、その後、そのイベントに関連するコードのブロックを実行する。イベントはプロセッサ1705によって検出されるように、図17Aのユーザ入力デバイス1713を介して、ユーザからの入力に応答してトリガされ得る。イベントはまた、電子デバイス1701内の他のセンサおよびインタフェースに応答してトリガされてもよい。
命令のセットの実行は、読み出され、修正される数値変数を必要とし得る。このような数値変数はRAM1770に記憶される。開示される方法は、メモリ1770内の既知の位置1772、1773に格納された入力変数1771を使用する。入力変数1771は、メモリ1770内の既知の位置1778,1779に記憶される出力変数1777を生成するために処理される。中間変数1774は、メモリ1770の位置1775、1776内の追加のメモリ位置に格納することができる。あるいは、いくつかの中間変数がプロセッサ1705のレジスタ1754にのみ存在してもよい。
一連の命令の実行は、フェッチ−実行サイクルを繰り返し適用することによって、プロセッサ1705において達成される。プロセッサ1705の制御部1751は、ROM1760またはRAM1770内の次に実行される命令のアドレスを含む、プログラムカウンタと呼ばれるレジスタを維持する。フェッチ実行サイクルの開始時に、プログラムカウンタによってインデックスされたメモリアドレスの内容が制御部1751にロードされる。このようにロードされた命令はプロセッサ1705の後続の動作を制御し、例えば、データがROMメモリ1760からプロセッサレジスタ1754にロードされ、レジスタの内容が別のレジスタの内容と算術的に結合され、レジスタの内容が別のレジスタに格納された位置に書き込まれ、以下同様である。フェッチ実行サイクルの終わりに、プログラムカウンタは、システムプログラムコード内の次の命令を指すように更新される。実行されたばかりの指示に応じて、これは分岐動作を達成するために、プログラムカウンタに含まれるアドレスを増分すること、またはプログラムカウンタに新しいアドレスをロードすることを含むことができる。
以下に説明する方法のプロセスにおける各ステップまたはサブプロセスは、アプリケーションプログラム1733の1以上のセグメントに関連付けられ、プロセッサ1705におけるフェッチ-実行サイクルの繰り返し実行、または電子デバイス1701における他の独立したプロセッサブロックの同様のプログラム動作によって実行される。
図2は、デバイス1701によってキャプチャされた所与の画像フレームに対してビデオ安定化を実行する方法200を示している。この方法200は、ビデオの画像フレームの時間順序シーケンスにおける乱流を除去または補正するために実行される。方法200は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。
方法200は、受信ステップ205で開始する。ステップ205は、要素1710の撮像素子によってキャプチャされた、m枚の初期画像フレームを受信することを実行する。ステップ205は、電子デバイス1701のメモリから画像を取り出すことにも関することができる。ステップ205でロードされるフレーム数は、初期推定値である。例えば、アプリケーションおよびシステムハードウェアに応じるが、mの典型的な値は5〜8とすることができる。初期推定値mは、実験または以前の結果に基づくことができる。
方法200は、ステップ205から決定ステップ210に続く。ステップ210の実行において、最大トータル反復数(maximum number of total iteration)n2の最大数が決定される。最大反復回数n2は、モジュール1701のハードウェア限界およびシステム性能要件に基づいて決定される。
方法200は、ステップ210から決定ステップ215に続く。ステップ215は、最小反復数n1を決定するために実行される。反復数n1は、必要な量の乱流補正の推定値に基づいて決定される。最大および最小反復数を決定する際に、ステップ210および215は、レイテンシ制約および乱流除去を実施するデバイス1701の利用可能なメモリ容量のための所望の量の乱流除去を達成するために必要とされる反復の数を決定するように動作する。
トータル反復の最小および最大数が決定されると、方法200は、ステップ215から乱流除去ステップ220に続く。ステップ220の実行は、空間的なボケ及び幾何学的な歪みを除去することによって乱流の影響を補正(除去)するため、反復的なボケ修正アルゴリズムを適用する。ステップ220によって開始される反復ループは、トータル反復数nとして、ステップ215からの最小トータル反復数n1を実施することに基づいて開始し、各反復について対応する画像フレームをロードする。現在の反復数は、乱流補正された(乱流除去された)フレームを生成するために使用されるフレームの最小セットを決定するために使用される。反復に依存して、フレームの最小セットは、典型的にはビデオのキャプチャされた画像フレームの最小数、中間反復において生成された補正された画像フレームの数、及び、前の又は初期の補正された画像フレームを含む。補正のために必要とされる画像フレームのセットは、図3及び図4に関連して更に説明される。ステップ220で始まる反復ループは、n1反復の実施に基づいて開始するが、トータル反復補正が実行される間、トータル反復数nは更新され得る。
ステップ220は、ボケ修正の1回の反復を表す。ステップ220は、RAM1770またはメモリ1709のキャッシュのような、デバイス1701の利用可能なメモリの高速部分にフレームの最小セットを記憶するように動作する。ステップ220は図9に関連して説明するように、フレームに対して乱流除去方法を実行するためにさらに実行される。
ステップ220の各反復の後、方法200はチェックステップ260に進む。ステップ260は、設定されたトータル反復回数nに達したかどうかをチェックする。設定されたトータル反復数nは、最初時はn1に設定される。設定されたトータル反復回数nに既に達している場合(ステップ260にて“Yes”の場合)、反復は現在のフレームについて終了し、方法200はチェックステップ270に進む。ステップ270は、次のフレームがボケ修正に利用可能であるかどうかをチェックする。ビデオシーケンスの次の(後続の)フレームが利用可能である場合(ステップ270にて“Yes”の場合)、方法200はステップ205に戻る。また、次のフレームが利用可能でない場合(ステップ270で“No”の場合)、方法200は終了する。
ステップ260の説明に戻って、反復が終了しない場合(ステップ260で“No”の場合)、方法200はチェックステップ250に進む。ステップ250は、反復回数の増加が必要であるかどうかをチェックする。ステップ205で実施されるように、より多くの反復が必要であるかどうかを決定する方法は、図12に関連して説明される。ステップ250での評価が、より多くの反復が必要であることを示す場合(ステップ250で“Yes”の場合)、トータル反復数nは1だけ増加され、方法200はチェックステップ240に進む。ステップ240は、現在のトータル反復数nが最大反復数n2よりも大きいかどうかをチェックする。n<n2の場合(ステップ240で“Yes”の場合)、方法200は方法ステップ230に進む。ステップ230は反復に必要な次のフレームをロードし、方法200はステップ220に進む。ステップ220は、最新にロードしたフレームに乱流除去を適用するために繰り返される。
ステップ250での評価が、トータル反復回数nを更新する必要がないことを示す場合(ステップ250で“No”の場合)、方法200はステップ220に戻り、乱流除去ステップを繰り返す。同様に、ステップ240で、現在のトータル反復回数n≧n2である場合(ステップ240で“No”の場合)、余分なフレームはロードされず、方法200はステップ220に戻る。
ステップ250は、トータル反復回数を増加させる必要がある場合を考慮する。ステップ250では、トータル反復回数は減らされない。各フレームに対するトータル反復回数は最小反復回数n1より開始し、反復ステップ250ごとに、その回数が1だけ増加するかどうかを決定し、トータル反復回数は、最大回数n2を超えることはない。
図2のプロセスは、ステップ270で処理すべきフレームもはや存在しないこと、またはリアルタイム長距離画像キャプチャシステムがオフにされているかどうかを判定した後に終了する。
反復映像品質向上法では、現フレームが隣接フレームを使用して補正、もしくは改善される場合、反復が多いほど、より多くの隣接フレームが含まれることを意味する。トータル反復数は、補正アルゴリズムに含まれる過去または将来のフレームの数に正比例する。したがって、トータル反復回数が多いと、過去または将来の多数のフレームの処理およびローディングにつながる。
図5は、使用されるフレームの数と、以前に知られている解決策におけるトータル反復数との間の関係ダイアグラム500を示している。ダイアグラム500は、オリジナルのフレームf(−3)〜f(3)を示す。オリジナルのフレームは、反復1を形成するために組み合わされる。反復1の結果は、反復2を形成するために組み合わされる。反復2の結果は、補正されたフレームf’(0)を有する反復3を提供するために組み合わされる。1つの過去のフレーム、現在のフレーム、および1つの将来のフレームを利用する各反復で3回の反復で、補正された現在のフレームf’(0)を生成するため、合計7つのオリジナルのフレームが最初にロードされる。図5では、各フレームがそのフレームの隣接フレームの特定の組合せで更新される。例えば、反復1でのf’(−2)は、f(−3)、f(−2)及びf(−1)の組み合わせを使用して更新される。フレームをどのように組み合わせることができるかについての更なる詳細は、図9を参照して後述する。
図5に示されるように、使用される反復方法に応じて、必要とされるフレーム数とトータル反復数nとの間には、直接的かつ比例的な関係があり得る。説明される例では、収束へのスピードアップとメモリ要件を低減するために、新しい反復スキームが使用される。
図3は、4回の反復で説明される反復方法の例を示す構造300を示す。現在の乱流フレームf00を補正するために、4つの将来のフレームf10、f20、f30、f40がロードされる。図3および図4の例では、フレームの添え字はすべて2桁である。最初の数字はフレーム番号を示し、2番目の数字は反復数を表す。例えば、f21は第1の反復の後の2番目のフレームであり、f00はゼロ番目のオリジナルのフレームを示す。現在のフレームは、第1の反復で更新されて、f10,f00、及び、前に更新されたフレームとの組合せを使用してf01が生成される。次いで、この方法はf11,f21及びf31を、f01と同じ公式を使用して更新する。4回の反復の後の、f04が、ここで補正後の乱流フレームである。フレームf01−f31、f02−f22、及びf03−f13は、乱流補正された中間反復フレームを表す。反復が中間フレームとみなされるかどうかは、現在のフレーム番号に依存する。
図3において、矢印320はオリジナルのフレームf30から更新後のフレームf31への寄与を表し、矢印330は、オリジナルのフレームf40から更新後のフレームf31への寄与を表す。同様に、矢印310は、更新された前のフレームから補正後の乱流フレームf04への寄与を表す。図5と図3に示す反復方式の違いは、以前に補正されたフレームからの情報を使用することである。図5で使用される方法は最後の反復からのフレームを使用して現在のフレームを更新するのに対し、一方、図3の方法は新しく更新されたフレームが利用可能になるとすぐに、新しく更新された(乱流除去された)前のフレームを適用する。図3に示すように、新たに更新された前のフレームを使用することにより、収束速度が改善され、最終的な補正された出力フレームが生成される。
さらに、リアルタイムビデオ監視システムでは、メモリ効率が非常に重要であることが多い。図3の反復スキームが開始されると、次の補正後のフレームを生成するために高速コアメモリに格納される必要があるフレームは比較的少なく、したがって、複雑な計算を必要とするリアルタイムシステムのための効率的な解決策を提供する。ブートストラッピングステップとして、補正後の現在のフレームf04は、図3のビデオシーケンスの「前のフレーム」を含む代わりに、ちょうど更新された現在のフレームf00、f01、f02、f03、および将来のフレームf10,f11,f12及びf13を使用して更新することができる。
図4は、いくつかの補正後のフレームが既に利用可能である場合の、次の補正されるフレームを生成する例示的な方法400を示す。図4の例はまた、4回の反復に関連し、図3の拡張を反映する。補正後フレームf04が生成されると、次の補正後のフレームf14は、もう1つのオリジナルフレームf50だけをロードし、図4の網点長方形(フレーム410など)で示されるフレームのセット440を使用して示されるフレームに同じ更新スキームを適用することによって決定することができる。換言すれば、補正された現在のフレームf04が一旦生成されると、単に、次の乱流除去演算のために新しいオリジナルのフレームf50をロードする前に、f40,f31,f22,f13及びf04のみがコアメモリ内への保持が必要となるだけである。4回の反復を伴う図4の例では、合計10フレームだけが、次の補正フレームを生成するために記憶されることが必要となる。結果として、記憶されるフレームの総数は、s=2(n+1)である。ここでnは、トータル反復数である。
上述のフレーム結合方法をブートストラップするために、より多くのフレームが最初に必要とされる。例えば、図3の三角形構造300は、乱流除去を開始するために必要である。しかし、ブートストラップ工程はビデオ監視タスクで一度だけ実行されるので、ブートストラップ工程は、コアメモリ内で迅速に実行されるか、または、システムの高速コアメモリの外部で実施されれば良いので、コアメモリ内の比較的大量の余地を占有することを回避することができる。後続の反復は、領域440のフレームのようなフレームのサブセットを使用することができる。
したがって、乱流除去の反復ごとに、所望の量の乱流除去を達成するために必要な反復回数nに基づいて、フレームの最小セットを決定することができる。フレームの最小セットは、現在の反復数(例えば、最初の反復は、上述のブートストラップ方法を使用する)、ならびに決定された反復数(反復の最小数n1、または反復がステップ250で追加される場合)に関連する。最小限のフレームセットは、最初の補正されたフレーム、中間反復で補正されたフレーム、および、映像シーケンスの将来または後続のフレーム(図4のf50など)を含むことができる。ブートストラッピングシナリオでは、初期フレームは利用可能でなくてもよく、中間訂正フレームの数はゼロであってもよい。最初の補正されたフレームは、時間順序付けされたビデオシーケンス(現在のフレームがシーケンスの次または正味のフレーム)において現在のフレームに先行するフレームに関連する、現在の反復の乱流補正された画像フレームに関連する。初期補正フレームの例は、図4の第4の反復においてフレーム1の補正に使用されるフレーム310である。
中間反復において補正されるフレームの一例は、図4の第4の反復と比べて中間となる、図4のフレームf13 およびf23である。つまり、中間反復で補正された画像フレームは、現在のフレームに対する現在の反復の前の反復で補正されたフレームである。
図4に示すように、第4の反復のための結果として生じる補正されたフレームは、(i)最初の補正された画像(f04)、(ii)現反復の直前の中間反復からの後続フレームの補正された画像(f13)、および(ii)前の反復(f23)で補正されたような次のシーケンスに続く画像フレームである。
図3の三角形構造300の重要な利点の1つは、その構造がリアルタイムシステムにおいて柔軟性および効率を提供することである。構造300または400に基づいて、最大反復数n2内でフレームを使用する際に、方法200は、リアルタイムもしくはニアリアルタイムで実施することができる。
従来の後処理ビデオ品質改善方法は、多数のフレームを取り込み、すべてのフレームを一度に処理することを含むことができる。図6は、従来の後処理反復方法の一例を示す構造600を示す。4回の反復を仮定すると、図6で使用される方法は、多くのフレームをメモリにロードし、ロードされたすべてのフレームにわたって反復する。第1の反復が完了すると、第1の反復における結果のみが保存される。オリジナルのフレームは廃棄される。第2の反復の後は、第1の反復からの全ての結果は廃棄され、以下同様である。例えば、200フレームを処理する場合、200フレームを同時にメモリに保持しなければならない。構造600で使用される方法は単純であるが、この方法は比較的大量のメモリを使用する必要があり、したがって、通常、リアルタイムシステムには適していない。構造300および400は、このような大量のフレームを格納する必要はない。
重要なことは、乱流の影響がランダムに変化することである。監視ビデオに対する結果として生じる空間的なボケ、および幾何学的な歪みの影響は、フレームごとに迅速に変化し得る。その結果、長距離監視ビデオに必要とされる乱流補正の量は、新しいフレームがまだ捕捉されている間にも変化する。図3に示される三角形構造300および図4に示される対角線構造440(網点長方形)を使用して、反復が実施されている間に、トータル反復数を更新することができる。
図11は、変数であるトータル反復数nの例を示す構造1100を示しているす。図11の例では、フレーム1に対する4回目の反復f14を決定する間に、適応評価方法200がステップ250において、フレーム1における乱流強度の過小評価のために、より多くの乱流補正が必要であることを見出している。したがって、1回以上の反復が必要である。1回以上の反復を加えるため、方法200はステップ230にて、1つの余分なフレームf60をロードし、網点長方形で示される対角構造1150を使用して、更新されたフレームf15を生成するために第5の反復を決定する。図11に示す適応評価方法について、図12を参照して詳細に説明する。
反復数の増加は、フレームf10の決定のために導入され、フレームf00の決定の後に起こるので、利用可能なf50はない。図11に示されるように、フレームf10の第5の反復結果は、f14とf24との組み合わせのf05代わりにf04が使用される。実際には、構造100は、現在の反復(反復5)からの現在のフレーム(フレーム1)の以前に補正されたバージョンの代わりに、以前の反復(フレームf04は反復5ではなく反復4に関連する)からのビデオシーケンスの以前の画像フレーム(フレームf04はフレーム0の補正に関連する)の補正されたバージョンを使用する。現在の反復における現在のフレームの補正としてのフレームf04の使用は、反復結果に影響を及ぼすが、メモリに記憶されたデーターに対する影響は、f04がf05から1回だけ離れた反復であるので、最小化される。
図4は、次のフレームf10がフレームf00と同じ反復数を必要とする例を示している。一方、図11では、次のフレームf10がf00よりも多くの反復回数を必要としている例を示している。図11において、コアメモリに必要なフレーム数は、s=3(n+1)+1である。ここでnは、4の例において、は前回設定した反復回数となる。一般に、一度に1回の反復の増加に基づいて、コアメモリにおいて必要とされるフレームは、最小値の2(n+1)から、最大値の2(n1+1)+{(n2−n1)(2n1+3+n2−n1)}/2まで変化することができる。したがって、反復が追加される場合には、必要とされる最小フレームセットを増加させることができる。
例えば、ステップ210で決定された最大反復回数n2が8であり、ステップ215で決定された最小反復回数n1が4であり、フレームf00に対する以前に設定された反復回数nが最小回数n1と同じである場合、f10を補正するために、コアメモリは、少なくとも10フレーム、最大で40フレームを保持しなければならない。隣接するフレームのビデオ品質は、典型的には比較的ゆっくりと変化するので、特にフレームレートが速いビデオでは、1つのフレームが最小反復数を必要とし、次のフレームが最大反復数を必要とする可能性は比較的低い。連続する2つフレーム間で必要とされる反復数のより典型的な差は、ほぼ1または2である。説明される例では、フレームf00に対する前に設定された反復数nが4である場合、16〜23フレームだけが必要とされる。
次のフレームf10が現在のフレームf00よりも少ない反復を必要とする場合には、コアメモリに記憶されるフレームの数は、上記のf10がf00よりも多い反復を必要とする場合と同じパターンに従う。
リアルタイム監視システムでは、予期しない事象に迅速に反応するために、レイテンシ要件がしばしば存在する。言い換えれば、任意のビデオ品質改善処理ステップは、遅延(レイテンシ)の上限にてリアルタイムで行われるべきである。例えば、カメラ1701上に実装される長距離監視システムのレイテンシ要件が1秒とすることができる。1秒のレイテンシ要件は、処理時間およびフレーム検索時間を含む。処理時間は乱流補正アルゴリズムを適用するためにシステム1701によって費やされる時間であり、フレーム検索時間はフレームを捕捉し、ロードするために費やされる時間である。例えば、乱流除去を伴う特定の長距離監視システムのフレームレートが、1秒のレイテンシ要件を伴う、10フレーム/秒(FPS)である場合、乱流補正アルゴリズムは、将来の10フレームを使用することに限定される。アルゴリズムが乱流補正を決定するために11番目の将来のフレームを待つ場合、補正されたフレームは、オリジナルのフレームが捕捉された時間よりも1秒より後に生成される。したがって、レイテンシ要件は満たされない。要約すると、レイテンシ要件とシステムフレーム率との組合せ効果はシステムが使用できるフレームの最大数を制限し、その結果、最大反復数n2を制限する。
さらに、システムにロードされるフレームの最大数、したがって最大反復数n2も、システム1701内の利用可能な高速ストレージ(RAM1770またはメモリ1709のキャッシュなど)によって制限される。例えば、ビデオの各ピクセルがRGBチャネルで表現され、且つ、倍精度浮動小数点値を有する場合、2GBのグローバルメモリを有するGPU(グラフィックス処理ユニット)は、1920×1080の解像度のHD(高精細度)ビデオにおける最大21フレームをロードすることができる。
図8は、図2のステップ210で実施される、最大反復数n2を決定する方法800を示している。方法800は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。
方法800は、受信ステップ810から始まる。ステップ810は、プロセッサ1705に送信されたクエリを介してレイテンシ要件を受信する。方法800は、ステップ810から受信ステップ820に続く。ステップ820は、プロセッサ1705に送信されたクエリを介してシステム1701のメモリ制限を受信する。
方法800は、ステップ800から決定ステップ830に続く。ステップ830の実行は、システムにロードすることができ、乱流補正計算に使用することができるフレームの最大数に基づいて、最大反復数n2を決定する。810におけるレイテンシ要件および820におけるメモリ制限の両方によって許容されるフレームの最大数は、最大反復数n2を決定する。解像度およびサイズなどのフレームのパラメータも、最大反復数n2に影響を及ぼすことができる。上記の例を使用して、システム1701が1秒のレイテンシ要件および10FPS(フレーム/秒)のフレームレートを有し、システムメモリ1709が一度に21フレームをロードすることを可能にする場合、反復乱流補正アルゴリズムは、おそらく、演算のために過去の10フレーム、現在のフレーム、および将来の10フレームを使用することができる。乱流補正アルゴリズムの反復実施形態に応じて、フレームの数は、異なるトータル反復数につながり得る。しかし、上述したように、任意の反復マルチフレーム乱流補正アルゴリズムのトータル反復数は、図3および図5に示すように、伝統的に、プロセスで使用されるフレーム数に比例する。
ステップ830において、決定された最大反復数n2が、最初にロードされたフレームの数よりも小さい場合、余分なフレームは廃棄される。
ステップ215で実施されるように、最小のトータル反復回数n1を決定する方法700が図7に示されている。方法700は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1706に格納され、プロセッサ1705の実行下で制御される。
方法700は、決定ステップ710で開始する。ステップ710は、m個の初期画像にわたる平均画像を決定する。上述したように、mの典型的な値は5〜8である。ステップ710の実行において決定された平均画像は、高周波の詳細を平滑化しながら、平均化動作がオリジナルのシーンの乱流のない幾何学的形状を維持するので、構造的基準フレームとして機能する。平均画像は、最小反復数n1を決定するために、ランダムに選択された乱流フレーム、例えば、m個のロードされた初期のフレームの最初と比較され得る。
方法700は、ステップ710から決定ステップ720に続く。最小反復数n1を推定するための多くの異なる方法がある。この方法の共通の目的は、乱流強度を評価し、乱流フレームに対する対応する補正量を決定するのを助けることである。ステップ720では、構造類似性インデックス(structual similarity index:SSIM)を用いて、ステップ710からの平均画像と、ランダムに選択された乱流フレーム、例えば、m個のロードされた初期のフレームの最初との間の幾何学的類似性をチェックする。このチェックは、乱流フレームにおける幾何学的歪みの尺度を提供し、したがって乱流強度の大まかな推定を提供する。構造類似性インデックス(SSIM)スコアは、計算を最小にするためにフレームの輝度チャネルを使用して決定される。
ステップ720では、構造類似性インデックス(SSIM)の異なる変形を使用することができる。例えば、勾配ベースの構造類似性インデックス(gradient-based structure similarity index(G-SSIM))方法の適用が適切であり得る。これは、構造類似性インデックスの輝度成分がオリジナルのフレームを使用して決定され、コントラスト成分および構造成分がフレームの階調マップを用いて計算されるものである。
方法700は、ステップ720から決定ステップ730に続く。ステップ730は、ステップ720からの構造類似性インデックススコアに基づいて最小反復数n1を決定する。n1の値は、閾値を用いて決定することができる。例えば、構造類似性指標スコアが0.7より低い場合はn1=5にセットし、構造類似性指標スコアが0.8より高い場合にはn1=3にセットする。この閾値は、実験によって決定することができる。代替的に、特定のタイプの画像に対する許容可能な構造類似性インデックス(SSIM)スコアに関連するルックアップテーブルなどの他の方法を使用することもできる。
最小反復数n1は、ステップ210において、代替技術を用いて決定することもできる。n1が選択されたフレームからの乱流強度と相関される限り、n1は、必要とされる乱流補正の量の適切な推定を提供することができる。例えば、SLODAR(SLOpe Detection And Ranging)技法を使用して、乱流強度を測定し、最小反復数n1を決定することができる。SLODARが使用される場合、乱流強度Cn 2を反復回数にマッピングするためにルックアップテーブルが使用される必要があり得る。
方法700および800によってそれぞれ実施されるステップ210および215は、システム1701の所与の制約に対して所望の量の乱流除去を達成するために反復が必要とされるかどうかの数を決定するように動作する。方法200は、ステップ260、250、240、および230の実行を介して、リアルタイム乱流除去中の反復回数をさらに適応させるように動作する。
図2に戻って参照すると、210において反復の最大数および最小数が決定された後、ステップ220は乱流補正技術の反復を実行する。ステップ200は、反復数に従って決定された最小フレームセットを格納した。反復乱流除去方法の詳細は、図9に関連して説明される。なぜならば、乱流イメージング方法は、各フレームのための空間的ボケ修正プロセスおよび時間ボケ修正プロセスを含む、幾何学的歪みおよび空間的ボケの両方を除去しようと試みるからである。
図9は、ステップ220で実施される、画像から歪みを除去する方法900を示す。方法900は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。方法900は、ボケ修正ステップ910で開始する。ステップ910は、各フレームに対して空間的ボケ修正処理を適用する。
方法900は、ステップ910から拡散ステップ920に続く。ステップ920は、最小フレームセットのフレームを使用して、複数のフレームで幾何学的歪みを相殺するために、時間ボケ修正(拡散)プロセスを適用する。いくつかの乱流除去アルゴリズムでは、フレーム毎のボケ修正と時間的ボケ修正は別々の操作である。他の方法では、空間フレーム毎のボケ修正および時間的ボケ修正が単一の動作で完了する。
図13は、例1300を示す。例1300は、11個のオリジナルのフレーム1310と、11個のボケ修正済みフレーム1320、現在のフレーム1311、及び、現在の補正後のフレーム1330を含む。11個のフレーム1310(フレームf(−5)〜フレームf(5))のそれぞれは、フレーム1320を提供するために、個別に空間的に画質改善(enhance)され、次いで、乱流のない現在のフレーム1330を生成するために一緒に結合される。他の実装では、ボケ修正と、ボケ修正済みフレームの結合の2つのステップが、収束を改善するために組み合わせることができる。一例として図3を使用すると、第1の反復の後の現在のフレーム1311は式(1)に従って更新される。
01=(fs1+2f'00+f10)/4 …(1)
式(1)において、fs1は、最初の反復の後の前のフレームを表し、f'00は空間的ボケ修正910の後の現在のフレームを表し、f10はオリジナルの将来のフレームを表す。
図10は、処理ステップ920で実施され、式(1)を使用する、時間拡散の方法1000を示す。方法1000は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。方法1000は、受信ステップ1010で開始する。ステップ1010は、更新された前のフレームfs1を受信する。方法1000は、ステップ1010から受信ステップ1020に続く。ステップ1020は、空間的に画質改善された現在のフレームf'00を受信する。方法1000は、ステップ1020から受信ステップ1030に続く。ステップ1030は、オリジナルの未来フレームf10を受信する。方法1000は、ステップ1030から結合ステップ1040に続く。ステップ1040において、3つのフレームfs1、f'00、f10は、式(1)を使用して結合され、更新された現在のフレームf01を生成する。
ステップ920では、フレームの時間的組合せのための多くの技法を使用することができる。例えば、空間的に画質改善された現在のフレームf'10が、時間ラプラシアンフィルタリングと組み合わされて、隣接するフレームからの情報を含む方法を使用することができる。式(1)を置き換えるために、異なる式を使用することができる。空間的画質改善(spatial enhancement)ステップ910および時間拡(temporal diffusion)ステップ920が含まれる限り、ステップ220における反復ボケ修正スキームは空間解像度を改善し、現在のフレームにおける幾何学的歪みを補正することができる。
図2に戻って参照すると、適応評価ステップ250は、ステップ215と同様の方法を使用して、トータル反復回数を増加させる必要があるかどうかを決定する。ステップ250で実施される、反復数を増加させる必要があるかどうかを決定する方法1200が図12に示されている。方法1200は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。
方法1200は、決定ステップ1210で開始する。ステップ1210は、現在のフレームの周りのいくつかの隣接フレームを使用して平均画像を決定する。隣接するフレームの数は、実験によって決定することができるが、典型的には5〜8フレームの領域である。ステップ250は現在のフレームに対する反復の中間で起こるので、ステップ215におけるように、使用すべき初期フレームは存在しない。平均画像を使用して幾何学的に正しいシーンの妥当な推定値を提供するため、ステップ1210は、現在の反復において現在のフレーム、及び、現在の反復においていくつかの将来のフレームを使用して、平均画像を計算する。あるいは、ステップ1210は、数個のオリジナルフレーム、例えば、f00、f01、f02、f03にわたる平均画像を決定することができる。ただし、平均値を決定するには、オリジナルフレームを余分に記憶する必要がある。あるいは、平均決定が過度のメモリアドレス指定および計算を回避するために、数秒毎に1回だけシステムコアメモリの外部で行うことができる。
方法1200は、ステップ1210から決定ステップ1220に続く。ステップ1210で平均画像が作成されると、ステップ1220は、ステップ720と同様の方法で、構造類似性インデックス(SSIM)スコアを決定する。方法1200は、ステップ1220からステップ1230に続く。トータル反復数を更新するために、ステップ1230は、ステップ730と同様に、ルックアップテーブルを使用することができる。例えば、0.7以下のSSIMスコアを閾値として使用して、トータル反復数を1だけ増加させる必要があることを意味することができ、または0.8以上の構造類似性指数(SSIM)スコアを使用して、トータル反復数を変更する必要がないことを意味することができる。上述したように、ステップ250はトータル反復数を増加させるだけであり、トータル反復数を決して減少させない。好ましくは、ステップ250がメモリの浪費を回避するために、全ての評価において、トータル反復回数を1だけ増加させる。
図7の方法700と同様に、図12の方法1200は、トータル反復数を推定するためにSSIM以外の方法を使用することもできる。例えば、SLODARを用いて乱流強度を測定することができる。SLODARが使用される場合、乱流強度Cn 2を反復回数にマッピングするためにルックアップテーブルが使用される必要があり得る。
代替実施形態では、画像改善の反復中に、トータル反復回数は更新されない。代わりに、反復を開始する前に、固定されたトータル反復数が推定される。固定数は、全てのフレームの反復を通して使用される。
図14は、固定数の実行を使用する反復ビデオ品質改善の方法1400を示す。方法1400は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。
方法1400は、受信ステップ1405で開始する。ステップ1405は、最初のm個の初期フレームを受信する。ステップ1405でロードされるフレームの数は、初期推定値である。例えば、アプリケーションおよびシステムハードウェアに応じて、ステップ205と同様に、mの典型的な値は5〜8とすることができる。
方法1400は、ステップ1405から決定ステップ1410に続く。ステップ1410は、トータル反復数nを決定する。一旦、トータル反復数nが決定されると、方法1400は、ボケ修正ステップ1420に続く。ステップ1420は、ステップ220と同様に反復乱流除去を実行する。ステップ1420は、図9の方法900を参照して説明したように実施することができる。
方法1400は、ステップ1420からチェックステップ1460に続く。ステップ1460は、トータル反復数nに達したかどうかをチェックする。そうである場合(ステップ1460で“Yes”の場合)、方法1400はチェックステップ1470に進む。チェックステップ1470は、別のフレームが利用可能であるかどうかをチェックする。別のフレームが利用可能である場合(ステップ1470で“Yes”の場合)、方法1400は次のフレームをロードするように動作し、ステップ1420に戻り、n回の反復の間、新たにロードされたフレームのためのボケ修正を実行する。
ステップ1460で、反復が現在のフレームについて終了していない場合(ステップ1460で“No”の場合)、方法1400はステップ1420に戻り、現在のフレームについて反復的なボケ修正を継続する。
ステップ1470に戻って、それ以上のフレームが利用可能でない場合(“No”の場合)、方法1400は終了する。
反復が開始すると、トータル反復数は変化しないので、方法1400は、方法200よりも少ないコアメモリ容量しか必要としない。図4に示すように、4回の反復の場合には、高速アクセスのためにコアメモリ内に保持する必要があるのは10フレームだけとなる。
次に、ステップ1410で実施される、反復数nを決定する方法1500を、図15を参照して説明する。方法1500は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。
方法1500は、決定ステップ1510で開始する。ステップ1510は、ハードウェアおよびレイテンシ要件によって許容される最大反復回数を決定する。ステップ1510は、図8を参照して説明した方法800を使用して実施することができる。
方法1500は、ステップ1510から決定ステップ1515に続く。ステップ1515は、キャプチャされたビデオの効果的な乱流補正を提供するための最小反復回数を決定するように処理を進める。ステップ1515は、図7を参照して説明した方法700に従って実施することができる。
方法1500は、ステップ1515から選択ステップ1520に続く。ステップ1520は、最小値n1および最大値n2に基づいて、トータル反復数nを選択する。例えば、トータル反復回数nは、n1とn2の平均であってもよい。あるいは、アプリケーションのタイプなどの余分な情報を考慮しても良い。例えば、乱流撮像システムがセキュリティ監視のために使用される場合、高速応答が重要であり、n1とn2の重みづけ平均を用いても良い。ここで、式(2)に示されるように、n1により多くの重みが与えることができる。
n=(2n1+n2)/3 …(2)
一方、例えば気象データ収集のようなアプリケーションのために、短いレイテンシがシステムにとって重要でない場合には、より多くの重みをn2に与えることができる。
別の代替実施形態では、すべてのフレームのトータル反復回数が反復中に更新されない。代わりに、固定されたトータル反復数が、反復を開始する前に推定され、各フレームの反復全体にわたって使用される。この実施形態では、トータル反復回数が各フレームについて個別に更新され、決定される。したがって、各フレームは、異なるトータル反復数nを有することができる。
図16は、各フレームに対して異なるトータル反復数を使用して反復ビデオ品質改善を実行する方法1600を示す。方法1600は、通常、アプリケーション1733の1以上のモジュールとして実装され、メモリ1709に格納され、プロセッサ1705の実行下で制御される。
方法1600は、受信ステップ1605で開始する。ステップ1605は、ステップ205と同様に、最初のm個の初期フレームを受信する。ステップ1605でロードされるフレーム数mは、初期推定値である。例えば、アプリケーションおよびシステムハードウェアによるが、典型的な値は5〜8とすることができる。
方法1600は、ステップ1605から決定ステップ1610に続く。ステップ1610は、反復数nを決定する。ステップ1610は、方法200のステップ210および215と同じ方法で実施することができる。あるいは、方法1500がステップ1610で実施することができる。トータル反復回数nが決定されると、方法1600は、ボケ修正ステップ1620に続く。ステップ1620は、ステップ220と同じ反復的なボケ修正技術を実行する。ステップ1620は、図9を参照して説明した方法900を使用して実施することができる。
方法1600は、ステップ1620からチェックステップ1660に続く。ステップ1660は、現在のフレームのトータル反復数nに達したかどうかをチェックする。トータル反復回数に達した場合(ステップ1660で“Yes”の場合)、方法1600はチェックステップ1670に進む。ステップ1670は、ロードすべき別のフレームがあるかどうかをチェックする。別のフレームがある場合(ステップ1670で“Yes”の場合)、ステップ1670は次のフレームをロードし、方法1600はステップ1605に戻り、新たにロードされたフレームに関連するm個のフレームを受信する。現在のフレームについて反復が終了していない場合(ステップ1660で“No”の場合)、方法1600は、現在のフレームについてステップ1620でのボケ修正の別の反復を実施し続ける。ステップ1670で、さらなるフレームが利用可能でないと判定された場合(ステップ1670で“No”の場合)、方法1600は終了する。
方法1600では、トータル反復数はフレームごとに変化する可能性があるので、メモリ要件は、一般に、2(n+1)より大きい。ここで、nは反復回数を示している。上述したように、隣接するフレームの実際の反復数に応じて、メモリ内に保持する必要があるフレームの数は、2(n+1)と2(n+1)+(ns−n)(ns+n+3)/2の間で変化することができる。ここで、nは現在のフレームの反復数であり、nsは前のフレームの反復数である。
反復数推定ステップ(1610)の詳細は、図15を参照して説明した。反復的なボケ修正ステップ(1620)の詳細は、図9を参照して説明した。
記載された構成は、コンピュータおよびデータ処理産業、特に画像処理に適用可能である。記載された構成は、リアルタイムでの長距離乱流除去に特に適している。上述した方式で反復回数及び対応する最小フレームセットを決定する際に、訂正されたフレームを生成するために記憶するのに必要なフレーム数を低減することができ、本方式をリアルタイムで実施することができる。
実用的な実施例では、説明した構成は、デバイス1701によって捕捉された自動車の画像を長距離から改善またはボケ修正に使用される。方法200は自動車のキャプチャされた画像から乱流の影響を除去するために、デバイス1701のメモリ要件に従って決定されるいくつかの反復を使用して実施される。
上記は本発明のいくつかの実施形態のみを説明しており、本発明の範囲および精神から逸脱することなく、本発明に修正および/または変更を加えることができ、実施形態は例示であり、限定ではない。
本明細書の文脈では「含む」という語が「主に含むが、必ずしも単独ではない」または「有する」または「含む」を手段し、「のみからなる」ではない。「備える」および「備える」などの単語「備える」の変形は、対応して変化する意味を有する。

Claims (19)

  1. 画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法であって、
    初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去し、
    乱流除去の反復回数を決定し、
    前記反復回数に基づいて、後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
    ここで、前記画像フレームの最小セットは、利用可能なメモリに格納されるものであって、前記時間順序付けられたシーケンスの画像フレームの画像フレー、乱流除去の中間反復にて生成される画像フレー、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレー、及び前記初期の補正された画像フレームを含む;
    前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
    ことを特徴とする方法。
  2. 前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記反復回数はレイテンシ制約および利用可能なメモリ容量を満たすために必要な回数であり、前記レイテンシ制約および前記利用可能なメモリの容量は、乱流除去を実施するコンピューティングシステムに関連されることを特徴とする請求項1に記載の方法。
  4. 前記補正された後続の画像を用いて、乱流除去の反復の追加が必要であること、及び、当該乱流除去の反復の追加がレイテンシ制約および利用可能なメモリの容量を満たすことを決定することをさらに含むことを特徴する請求項1に記載の方法。
  5. 前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含む、
    ここで、最小のフレーム数は前の反復からの前のフレームの補正されたバージョンを追加するように更新される、
    ことを特徴とする請求項1に記載の方法。
  6. 前記反復回数を決定することは、レイテンシ制約および前記利用可能なメモリの容量を満たす、最大反復回数を決定することを含む
    ことを特徴とする請求項1に記載の方法。
  7. 前記反復回数を決定することは、乱流除去を提供するための最小反復回数を決定することを含む
    ことを特徴とする請求項1に記載の方法。
  8. 最小の反復数は、前記時間順序付けされたシーケンスのフレーム数の幾何学的類似性に基づいて決定される
    ことを特徴とする請求項7に記載の方法。
  9. 前記補正された後続する画像を使用して、追加の乱流除去が必要であることを決定することをさらに含む、
    ここで、前記反復回数は、最大1回の繰り返しだけ増加される、
    ことを特徴とする請求項1に記載の方法。
  10. 前記反復回数を決定することは、
    レイテンシ制約および前記利用可能なメモリの容量を満たすために最大反復回数を決定すること、
    前記乱流除去を提供するために最小反復回数を決定することと、
    前記最大反復回数および最小反復回数の平均値を決定することを含む、
    ことを特徴とする請求項1に記載の方法。
  11. 前記決定された反復数の平均値は、時間順序付けされたシーケンスの各フレームに使用されることを特徴とする請求項10に記載の方法。
  12. 前記必要とされる反復数は、前記時間順序付けされたシーケンスの各画像フレームに対して別々に決定されることを特徴とする請求項1に記載の方法。
  13. 前記乱流除去は、前記メモリに格納された前記フレームの最小セットを使用した、空間的なボケの除去、続く幾何学的歪みの除去を含むことを特徴とする請求項1に記載の方法。
  14. 前記方法は、前記時間順序付けされた画像フレームのシーケンスがキャプチャされるに応じてリアルタイムで実施されることを特徴とする請求項1に記載の方法。
  15. 前記乱流除去の除去するレベルは、勾配ベースの構造類似性指数(G−SSIM)方法と、前記時間順序付けられたシーケンスの前記画像フレームの数とを用いて決定されることを特徴とする請求項7に記載の方法。
  16. 前記後続の画像から乱流を除去することは、(i)前記初期の補正された画像、(ii)現在の反復の直前の中間反復からの前記後続するフレームの補正画像と、(ii)前記前の反復において補正された前記シーケンスにおける次の後続の画像の画像フレームとを組み合わせることを含むことを特徴とする請求項1に記載の方法。
  17. 画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための画像処理装置であって、
    前記方法は、
    初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去し、
    前記シーケンス内の後続の画像の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
    ここで、前記レイテンシ制約は、画像のキャプチャに関連される;
    必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
    ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間順序付けられたシーケンスの画像フレームの画像フレー、乱流除去の中間反復にて生成される画像フレー、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレー、及び前記初期の補正された画像フレームを含む;
    前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
    こと含む
    ことを特徴とする画像処理装置。
  18. コンピュータを請求項17に記載の画像処理装置として機能させるためのプログラム。
  19. システムであって、
    メモリと、
    画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための、前記メモリに格納されたコードを実行するように構成されているプロセッサとを有し、
    前記方法は、
    初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第1の画像から乱流の影響を除去し、
    前記シーケンス内の後続の画像の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
    ここで、前記レイテンシ制約は、乱流除去を実施する算出システムに関連される;
    必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
    ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間順序付けられたシーケンスの画像フレームの画像フレー、乱流除去の中間反復にて生成される画像フレー、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレー、及び前記初期の補正された画像フレームを含む;
    前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
    こと含む
    ことを特徴とするシステム。
JP2019187955A 2019-03-04 2019-10-11 画像内の乱流の影響を減少させるシステム及び方法 Active JP6857224B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2019201467A AU2019201467A1 (en) 2019-03-04 2019-03-04 System and method of reducing effects of turbulence in an image
AU2019201467 2019-03-04

Publications (2)

Publication Number Publication Date
JP2020144835A JP2020144835A (ja) 2020-09-10
JP6857224B2 true JP6857224B2 (ja) 2021-04-14

Family

ID=72335384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019187955A Active JP6857224B2 (ja) 2019-03-04 2019-10-11 画像内の乱流の影響を減少させるシステム及び方法

Country Status (3)

Country Link
US (1) US11069032B2 (ja)
JP (1) JP6857224B2 (ja)
AU (1) AU2019201467A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113643220B (zh) * 2021-08-11 2023-07-14 北京航空航天大学 一种物理信息驱动的红外图像湍流效应抑制方法及系统
CN114841977B (zh) * 2022-05-17 2023-04-25 南京信息工程大学 一种基于Swin Transformer结构结合SSIM和GMSD的疵点检测方法
CN115016035B (zh) * 2022-05-31 2023-12-22 中国科学院光电技术研究所 一种基于波前探测的实时大气湍流分层强度测量方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8315426B2 (en) 2010-03-12 2012-11-20 Mitsubishi Electric Research Laboratories, Inc. Method for handling pixel occlusions in stereo images using iterative support and decision processes
JP2012182625A (ja) * 2011-03-01 2012-09-20 Nikon Corp 撮像装置
EP3116213A4 (en) * 2014-03-05 2017-06-07 Panasonic Intellectual Property Management Co., Ltd. Image processing apparatus, monitor camera, and image processing method
WO2016175751A1 (en) * 2015-04-27 2016-11-03 Raytheon Company Full motion color video atmospheric turbulence correction processing

Also Published As

Publication number Publication date
JP2020144835A (ja) 2020-09-10
AU2019201467A1 (en) 2020-09-24
US11069032B2 (en) 2021-07-20
US20200286209A1 (en) 2020-09-10

Similar Documents

Publication Publication Date Title
JP6857224B2 (ja) 画像内の乱流の影響を減少させるシステム及び方法
JP6469678B2 (ja) 画像アーティファクトを補正するシステム及び方法
JP4640508B2 (ja) 画像処理装置、画像処理方法、プログラム、及び撮像装置
WO2021179826A1 (zh) 图像处理方法及相关产品
WO2023123927A1 (zh) 图像增强方法、装置、设备和存储介质
US9413951B2 (en) Dynamic motion estimation and compensation for temporal filtering
US8659679B2 (en) Hardware-constrained transforms for video stabilization processes
US9386234B2 (en) Auto filter extent management
JP4641704B2 (ja) ノイズ低減化方法、ノイズ低減化装置、記録媒体、及びプログラム
AU2017254859A1 (en) Method, system and apparatus for stabilising frames of a captured video sequence
US20150036943A1 (en) Patch-Based, Locally Content-Adaptive Image and Video Sharpening
US11436440B2 (en) Method and system for DNN based imaging
US10121262B2 (en) Method, system and apparatus for determining alignment data
EP4089625A1 (en) Method and apparatus for generating super night scene image, and electronic device and storage medium
JP5388072B2 (ja) モーションブラー制御装置、方法、及びプログラム
US20090074318A1 (en) Noise-reduction method and apparatus
CN113315884A (zh) 一种实时视频降噪方法、装置、终端及存储介质
JP2009177332A (ja) ぶれ検出装置、ぶれ補正装置及び撮像装置
Tan et al. A real-time video denoising algorithm with FPGA implementation for Poisson–Gaussian noise
US9350916B2 (en) Interleaving image processing and image capture operations
JPWO2010007777A1 (ja) 画像処理装置、画像処理方法、プログラム、記録媒体および集積回路
US9374526B2 (en) Providing frame delay using a temporal filter
US20240013350A1 (en) Systems, Apparatus, and Methods for Removing Blur in an Image
CN116418932A (zh) 一种视频帧内插方法及装置
JP3890219B2 (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201222

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210319

R151 Written notification of patent or utility model registration

Ref document number: 6857224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151