(57)【要約】映像データストリームにおいて画像フレームを安定させるための装置・方法である。映像データストリーム中の基準フレームについて、加重平均、すなわち各画素の横位置および縦位置に対する、各画素に関連する明暗度または色調の重心を計算する。ストリーム中の後続フレームについて対応する重心を計算する。この画像フレームを、後続フレームの重心と基準フレームの重心とが一致するように平行移動し、映像キャプチャ機器の振動によるアーチファクトを低減する。ビデオストリームフレームをタイルに分割し、各タイルについて重心を計算してもよい。後続フレームのタイルの重心を基準フレームのタイルの重心にカーブフィッティングし、アファイン変換を行い、映像キャプチャ機器の動きによる画像のアーチファクトを低減する。
2008511258.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータストリームにおいて画像を安定化させるための方法であって、
ａ．該画像の重心を計算することであって、該重心が、該画像のうちの少なくとも一部分に対する、該画像中の画素の位置の関数としての各画素に関連する値の、重みづけした平均値から構成される、ことと、
ｂ．該画像の重心と基準画像のうちの同一部分の重心とがほぼ一致するように、該画像を平行移動させることと
を包含する、方法。
【請求項２】
前記各画素に関連する値が色調および明暗度のうちの一方である、請求項１に記載の方法。
【請求項３】
前記各画素に関連する値が、各画素に関連する値の範囲の一部分から選択される、請求項１に記載の方法。
【請求項４】
ｃ．前記基準画像を前記ビデオデータストリームにおけるその後の画像に更新すること
をさらに包含する、請求項１に記載の方法。
【請求項５】
前記画像が平行移動された距離が前記基準画像を更新することを決定する、請求項４に記載の方法。
【請求項６】
前記画像のうちの前記部分が画像フレーム全体にほぼ等しい、請求項１に記載の方法。
【請求項７】
ビデオデータストリームにおいて画像を安定化させるための方法であって、該方法は、
ａ．該画像を少なくとも２つの領域に分割することと、
ｂ．該画像の各領域の重心を計算することであって、該重心が、該領域中の画素の位置の関数としての該領域の各画素に関連する値の、重みづけした平均値から構成される、ことと、
ｃ．該画像の重心と基準画像の重心とがほぼ一致するように該画像を変換することと
を包含する、方法。
【請求項８】
前記画像を変換することが、前記画像領域の重心の位置を、前記基準画像の重心の位置へ最もよく近づけるような曲線を計算することを含む、請求項７に記載の方法。
【請求項９】
ｄ．前記基準画像を前記ビデオデータストリームにおけるその後の画像に更新すること
をさらに包含する、請求項８に記載の方法。
【請求項１０】
ビデオデータストリームにおいて画像を安定化させるコンピュータシステム上で使用するためのコンピュータプログラム製品であって、該コンピュータプログラム製品は、コンピュータ可読プログラムコードを有するコンピュータ使用可能な媒体を備え、該コンピュータ可読プログラムコードは、
ａ．該画像の重心を計算するためのプログラムコードであって、該重心が、該画像のうちの少なくとも一部分に対する、該画像中の画素の位置の関数としての各画素に関連する値の、重みづけした平均値から構成される、プログラムコードと、
ｂ．該画像の重心と基準画像のうちの同一部分の重心とがほぼ一致するように、該画像を平行移動させるためのプログラムコードと
を含む、コンピュータプログラム製品。
【請求項１１】
前記各画素に関連する値が色調および明暗度のうちの一方である、請求項１０に記載のコンピュータプログラム製品。
【請求項１２】
前記各画素に関連する値が、各画素に関連する値の範囲の一部分から選択される、請求項１０に記載のコンピュータプログラム製品。
【請求項１３】
ｃ．前記基準画像を前記ビデオデータストリームにおけるその後の画像に更新するためのプログラムコード
をさらに含む、請求項１０に記載のコンピュータプログラム製品。
【請求項１４】
前記画像が平行移動された距離が前記基準画像を更新することを決定する、請求項１０に記載のコンピュータプログラム製品。
【請求項１５】
前記画像のうちの前記部分が画像フレーム全体にほぼ等しい、請求項１０に記載のコンピュータプログラム製品。
【請求項１６】
ビデオデータストリームにおいて画像を安定化させるコンピュータシステム上で使用するためのコンピュータプログラム製品であって、該コンピュータプログラム製品は、コンピュータ可読プログラムコードを有するコンピュータ使用可能な媒体を備え、該コンピュータ可読プログラムコードは、
ａ．該画像を少なくとも２つの領域に分割するためのプログラムコードと、
ｂ．該画像の各領域の重心を計算するためのプログラムコードであって、該重心が、該領域中の画素の位置の関数としての該領域の各画素に関連する値の、重みづけした平均値から構成される、プログラムコードと、
ｃ．該画像の重心と基準画像の重心とがほぼ一致するように該画像を変換するためのプログラムコードと
を含む、コンピュータプログラム製品。
【請求項１７】
前記画像を変換するためのプログラムコードが、前記画像領域の重心の位置を、前記基準画像の重心の位置へ最もよく近づけるような曲線を計算するためのプログラムコードを含む、請求項１０に記載のコンピュータプログラム製品。
【請求項１８】
ｄ．前記基準画像を前記ビデオデータストリームにおけるその後の画像に更新するためのプログラムコード
をさらに含む、請求項１０に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には画像処理に関する。より詳細には、本発明は画像安定化に関する。
【背景技術】
【０００２】
ビデオ画像ストリーム等の画像データは、データキャプチャ機器（たとえばビデオカメラ）が画像を記録するか、または画像をキャプチャリングする際に振動した場合に導入されるアーチファクトをしばしば有し得る。このようなアーチファクトを除去することによって画像忠実度が向上される。
【発明の開示】
【課題を解決するための手段】
【０００３】
本発明の多様な実施形態において、装置および方法はリアルタイムに映像を安定化させる。本発明の一実施形態では、ビデオ画像中の画素に関連する明暗度または色調の位置の関数としての加重平均が計算される。水平および垂直方向における加重平均は画像中の重心と呼ばれる位置を決定する。重心は、まずビデオデータストリームの基準フレームについて計算される。次いで、映像のうちの後続のフレームが、その重心が基準フレームの重心と一致するように平行移動される。このようにして、カメラの「振動」に起因する画像のアーチファクトが除去される。本発明の別の実施形態では、ビデオ画像フレームは領域またはタイルに分割される。前述のように、基準ビデオ画像フレーム中のタイルの重心が計算され、後続するフレームのタイルの重心が計算される。単純なカーブフィッティング技術を利用し、画像を基準画像と一致させるアファイン変換が決定される。本発明のこの実施形態によって、複数の方向へ同時に並進および回転を伴う映像キャプチャ機器またはカメラの動きに効果的に対処することが可能である。
【０００４】
本発明の例示的な実施形態は、コンピュータ可読プログラムコードを有するコンピュータ使用可能な媒体を有する、コンピュータプログラム製品としてインプリメントされる。コンピュータ可読なコードは、従来のプロセスに従ってコンピュータシステムによって読み取られ、使用され得る。
【０００５】
本発明の前述の特徴は、添付の図面を参照しながら以下の詳細な説明を参照することによってより容易に理解されよう。
【発明を実施するための最良の形態】
【０００６】
本発明の多様な実施形態において、装置および方法はリアルタイムに映像を安定させる。本発明の一実施形態では、ビデオ画像中の画素に関連する明暗度または色調の位置の関数としての加重平均が計算される。水平および垂直方向における加重平均は画像中の重心と呼ばれる位置を決定する。重心は、まずビデオデータストリームの基準フレームについて計算される。次いで、映像のうちの後続のフレームが、その重心が基準フレームの重心と一致するように平行移動される。このようにして、カメラの「振動」に起因する画像のアーチファクトが除去される。本発明の別の実施形態では、ビデオ画像フレームは領域またはタイルに分割される。前述のように、基準ビデオ画像フレーム中のタイルの重心が計算され、後続するフレームのタイルの重心が計算される。単純なカーブフィッティング技術を利用し、画像を基準画像と一致させるアファイン変換が決定される。本発明のこの実施形態によって、複数の方向へ同時に並進および回転を伴う映像キャプチャ機器またはカメラの動きに効果的に対処することが可能である。
【０００７】
本発明の例示的な実施形態は、コンピュータ可読プログラムコードを有するコンピュータ使用可能な媒体を有する、コンピュータプログラム製品としてインプリメントされる。コンピュータ可読なコードは、従来のプロセスに従ったコンピュータシステムによって読み取られ、使用され得る。例示的な実施形態の詳細を以下に示す。
【０００８】
（システムオペレーション）
本発明の一実施形態では、重心安定化モジュールがキャプチャ機器またはストリーミング機器から映像を受信する。各フレームは処理され、ビューイングまたは記録のために出力機器へ渡される。重心安定化ルーチンの前後いずれかにその他のルーチンが映像を処理してもよい。一部の実施形態では、重心安定化モジュールは、ユーザが安定化処理を適用するべき映像フレームの領域を選択できるようにするパラメータを含む。たとえば、ユーザは、重心ルーチンが計算を実行する行および列を示す矩形をビューイングスクリーン上に特定することができる。ユーザは、画像を安定させるために明暗度または色調を利用するかを特定することもできる。（明暗度や色調でなく、その他にも各画素に関連し得る画像の性質を利用し得るという点に留意されたい。したがって、明暗度や色調について述べることは例示のためのものであり、本発明の多様な実施形態を限定するように意図するものではない。）特定の実施形態において、ユーザは計算を実行する値の範囲を特定し得る。明暗度については、ユーザは一般的に０〜２５５の任意の範囲を特定できる。同様に、色調は全範囲の色であってもよいし、あるいは特定の範囲の色を選択してもよい。色調値も一般的に０〜２５５であり、０〜３６０度の角度を表す。
【０００９】
（重心計算）
重心は加重平均を用いて計算される。以下のように重心を定義する。
【００１０】
【数１】
2008511258.tif 000003
画素値は、画素の明暗度または色調、あるいは各画素の適切な属性から計算した別の値であり得る。ユーザが定義した対象領域にわたって加重を行う。対象領域は映像フレームの全部であっても一部分のみであってもよい。次いで画像の重心を、予め計算した基準フレームの重心と比較する。次いで、画像の重心と基準画像の重心とが一致するように、必要に応じて画像をＸ方向およびＹ方向へ平行移動させる。ビデオストリーム中の後続する画像に対してもこれらの操作を繰り返す。
【００１１】
図１は、本発明の一実施形態のフローチャートである。ここでは各フレームにつき１つの重心を計算する。その実施形態の実際のコードから、フローチャート作成ツールがこのフローチャートを作成した。フローチャートは、明暗度の重心を計算するフローとシフトメカニズムとを図示している。したがって、当業者はソフトウェアにおいてこのフローチャートを再現できるはずである。
【００１２】
（カーブフィッティング）
映像キャプチャソースの複雑な動きに対処するために、画像をタイルに分割する。次いで、上記のとおりに各タイルの重心を計算する。各タイルの重心の移動を基準フレーム中にある対応する重心と比較する。これらの値を、アファイン変換の値を決定するカーブフィッティングルーチンへ入力する。変換は、並進、スケール、回転、偏揺れおよびピッチを考慮する。これらの各値の計算が成功である場合、映像フレームを変換ルーチンへ渡す。変換ルーチンは、画像を適切に回転させ、スケーリングし、平行移動させる。カーブフィッティングの解が見られない場合、基準フレームのポイントを現在のフレームのポイントに関連づける。「Ｎ」と「Ｎ」との相関によって、ポイントの最も高い相関性が生じる。ユーザが閾値を選択した上記のポイントは、全てカーブフィッティングを確立するために利用される。カーブフィッティングを確立する試みが全て失敗した場合、新たな基準フレームを構築し、プロセスをやり直す。
【００１３】
ビデオデータストリームについての記載は例示的なものであり、全実施形態の範囲を限定するよう意図するものではないという点に留意されたい。むしろ、一部の媒体でグラフィカルに表示し記録することが可能な画像データに対して多様な実施形態が適応する。例示的な実施形態において、画像データは二次元で記録可能である。さらに、本発明の多様な実施形態において、システムは新たな基準フレームを周期的に指定させ、その重心が計算される。このことは時間パラメータ、起こる画像フレームの平行移動量、または一部のその他の基準に基づいて実行され得る。
【００１４】
本発明の多様な実施形態は、少なくとも部分的には、任意の従来のコンピュータプログラミング言語においてインプリメントされ得る。たとえば、一部の実施形態は、手順型言語（たとえば「Ｃ」）、またはオブジェクト指向プログラミング言語（たとえば「Ｃ＋＋」）においてインプリメントされ得る。本発明のその他の実施形態は、予めプログラミングされたハードウェア要素（たとえば、特定用途向け集積回路、ＦＰＧＡおよびデジタルシグナルプロセッサ）、あるいはその他の関連コンポーネントとしてインプリメントされ得る。
【００１５】
一部の実施形態において、開示した装置および方法はコンピュータシステムと共に使用するためのコンピュータプログラム製品としてインプリメントされ得る。このようなインプリメンテーションは、一連のコンピュータ命令を含み得る。一連のコンピュータ命令は、コンピュータ可読媒体（たとえばフロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ，ＲＯＭまたは固定ディスク）等の有形の媒体に固定されていてもよいし、媒体を介してネットワークへ接続された、モデムあるいは通信アダプタ等のその他のインタフェース機器を介して、ネットワークコンピュータシステムへ送信可能である。媒体は、有形の媒体（たとえばアナログ通信ライン）であってもよいし、無線技術（たとえばＷＩＦＩ、電磁波、赤外線、またはその他の送信技術）を用いてインプリメントされる媒体であってもよい。一連のコンピュータ命令は、システムに関して本明細書中で前述した機能性の全てまたは一部を具体化することができる。
【００１６】
当業者は、このようなコンピュータ命令が、多くのコンピュータアーキテクチャまたはオペレーティングシステムと共に用いるための多数のプログラミング言語で書かれ得るという点を認識すべきである。さらに、このような命令は、半導体デバイス、磁気デバイス、光デバイス、またはその他のメモリデバイス等の任意のメモリデバイスに格納され得、光学、赤外線、電磁波またはその他の送信技術等の任意の通信技術を用いて送信され得る。
【００１７】
他の方法の間で、このようなコンピュータプログラム製品は、プリントされたドキュメンテーションまたは電子的なドキュメンテーションを伴うリムーバルな媒体（たとえばシュリンクラップされたソフトウェア）として頒布されてもよいし、コンピュータシステム（たとえばオンシステムＲＯＭまたは固定ディスク）と共に予めローディングされていてもよいし、あるいはサーバからネットワーク（たとえばインターネットまたはワールドワイドウェブ）を介して電子掲示板へ頒布されてもよい。当然、本発明の一部の実施形態は、ソフトウェア（たとえば、コンピュータプログラム製品）およびハードウェアの双方の組み合わせとしてもインプリメントされ得る。本発明のさらなる他の実施形態は、全体的にハードウェアとして、あるいは全体的にソフトウェアとしてインプリメントされる。
【００１８】
以上の記載によって本発明の多様な例示の実施形態を開示したが、本発明の真の範囲から逸脱することなく、本発明の利点の一部を達成する様々な修正を当業者が行い得るということは明白であるはずである。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の例示的な実施形態に従って動画を安定させるプロセスの例を示す。
【図１】
2008511258.tif 000004
【国際調査報告】
2008511258.tif 000005
2008511258.tif 000006
2008511258.tif 000007