(57)【要約】  概して、本主題は、コンピューティングシステムが、映像の第１および第２フレームを用いて、これらのフレームに対するカメラの移動を示す変換を特定するための、方法、システムおよびプログラムプロダクトにおいて実現することができる。コンピューティングシステムは、最近の移動に対する上記変換の代表性が低くなるように、修正された数学的変換を生成する。コンピューティングシステムは、上記変換と上記修正された変換とを用いて第２の変換を生成する。コンピューティングシステムは、安定化された第２フレームに存在するであろう予測される歪みを特定する。コンピューティングシステムは、安定化効果の低減量を決定する。コンピューティングシステムは、第２の変換を第２フレームに適用することにより第２フレームを安定化し、安定化効果は、決定した安定化効果の低減量に基づいて低減されている。
2019502275.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
コンピューティングシステムが、カメラによって取込まれた映像の第１フレームおよび第２フレームを受信するステップと、
前記コンピューティングシステムが、前記映像の前記第１フレームおよび前記第２フレームを用いて、前記映像によって取込まれたシーンに対する、前記第１フレームが取込まれた時点から前記第２フレームが取込まれた時点までの前記カメラの移動を示す数学的変換を特定するステップと、
前記コンピューティングシステムが、最近始まった移動に対する前記数学的変換の代表性が低くなるように、前記数学的変換を修正することにより、修正された数学的変換を生成するステップと、
前記コンピューティングシステムが、前記数学的変換と前記修正された数学的変換とを用いて、前記第２フレームに適用されて前記第２フレームを安定化することができる第２の数学的変換を生成するステップと、
前記コンピューティングシステムが、前記第２の数学的変換を前記第２フレームに適用した結果得られる、安定化された前記第２フレームに存在する、予測される歪みを、
（ｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる水平方向の歪み量と、
（ｉｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる鉛直方向の歪み量との差に基づいて、
特定するステップと、
前記コンピューティングシステムが、前記第２フレームに先行する前記映像の複数のフレームにおける歪みから算出された歪みの許容可能な変化を、前記予測される歪みが超過する程度に基づいて、前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定するステップと、
前記コンピューティングシステムが、前記第２の数学的変換を前記第２フレームに適用することにより、前記安定化された前記第２フレームを生成するステップとを含み、前記第２の数学的変換を前記第２フレームに適用することによる安定化効果は、前記決定した安定化効果の低減量に基づいて低減されている、コンピュータにより実現される方法。
【請求項２】
前記第２フレームは、前記映像の前記第１フレームの直後の前記映像のフレームである、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１に記載のコンピュータにより実現される方法。
【請求項４】
前記数学的変換を修正するステップは、ローパスフィルタを前記ホモグラフィ変換行列に適用するステップを含む、請求項３に記載のコンピュータにより実現される方法。
【請求項５】
前記予測される歪みは、前記第２の数学的変換における水平ズーム値と前記第２の数学的変換における鉛直ズーム値との差に基づく、請求項３に記載のコンピュータにより実現される方法。
【請求項６】
前記数学的変換を修正するステップは、前記数学的変換を修正して、前記修正された数学的変換が、前記数学的変換よりも、長期にわたって発生した移動に対する代表性が高くなるようにするステップを含む、請求項１に記載のコンピュータにより実現される方法。
【請求項７】
前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定するステップは、前記第２フレームに先行する前記映像の複数のフレーム間の前記カメラの移動の速度に基づいて算出された、前記カメラの移動速度の許容可能な変化を超える、前記第１フレームから前記第２フレームまでの前記カメラの決定した移動速度に、さらに基づく、請求項１に記載のコンピュータにより実現される方法。
【請求項８】
前記安定化された前記第２フレームを生成するステップは、前記第２の数学的変換を前記第２フレームに適用することによって生成された前記第２フレームのバージョンをズームインするステップを含む、請求項１に記載のコンピュータにより実現される方法。
【請求項９】
前記第２フレームの前記バージョンのズームイン領域を、水平方向または鉛直方向にシフトすることにより、前記第２フレームの前記ズームイン領域が無効領域を提示しないようにするステップをさらに含む、請求項８に記載のコンピュータにより実現される方法。
【請求項１０】
１つ以上のプロセッサによって実行されると動作を実行させる命令を含む１つ以上の非一時的なコンピュータ読取可能装置であって、前記動作は、
コンピューティングシステムが、カメラによって取込まれた映像の第１フレームおよび第２フレームを受信するステップと、
前記コンピューティングシステムが、前記映像の前記第１フレームおよび前記第２フレームを用いて、前記映像によって取込まれたシーンに対する、前記第１フレームが取込まれた時点から前記第２フレームが取込まれた時点までの前記カメラの移動を示す数学的変換を特定するステップと、
前記コンピューティングシステムが、最近始まった移動に対する前記数学的変換の代表性が低くなるように、前記数学的変換を修正することにより、修正された数学的変換を生成するステップと、
前記コンピューティングシステムが、前記数学的変換と前記修正された数学的変換とを用いて、前記第２フレームに適用されて前記第２フレームを安定化することができる第２の数学的変換を生成するステップと、
前記コンピューティングシステムが、前記第２の数学的変換を前記第２フレームに適用した結果得られる、安定化された前記第２フレームに存在する、予測される歪みを、
（ｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる水平方向の歪み量と、
（ｉｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる鉛直方向の歪み量との差に基づいて、
特定するステップと、
前記コンピューティングシステムが、前記第２フレームに先行する前記映像の複数のフレームにおける歪みから算出された歪みの許容可能な変化を、前記予測される歪みが超過する程度に基づいて、前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定するステップと、
前記コンピューティングシステムが、前記第２の数学的変換を前記第２フレームに適用することにより、前記安定化された前記第２フレームを生成するステップとを含み、前記第２の数学的変換を前記第２フレームに適用することによる安定化効果は、前記決定した安定化効果の低減量に基づいて低減されている、１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１１】
前記第２フレームは、前記映像の前記第１フレームの直後の前記映像のフレームである、請求項１０に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１２】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１０に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１３】
前記数学的変換を修正するステップは、ローパスフィルタを前記ホモグラフィ変換行列に適用するステップを含む、請求項１２に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１４】
前記予測される歪みは、前記第２の数学的変換における水平ズーム値と前記第２の数学的変換における鉛直ズーム値との差に基づく、請求項１２に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１５】
前記数学的変換を修正するステップは、前記数学的変換を修正して、前記修正された数学的変換が、前記数学的変換よりも、長期にわたって発生した移動に対する代表性が高くなるようにするステップを含む、請求項１０に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１６】
前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定するステップは、前記第２フレームに先行する前記映像の複数のフレーム間の前記カメラの移動の速度に基づいて算出された、前記カメラの移動速度の許容可能な変化を超える、前記第１フレームから前記第２フレームまでの前記カメラの決定した移動速度に、さらに基づく、請求項１０に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１７】
前記安定化された前記第２フレームを生成するステップは、前記第２の数学的変換を前記第２フレームに適用することによって生成された前記第２フレームのバージョンをズームインするステップを含む、請求項１０に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【請求項１８】
前記動作は、前記第２フレームの前記バージョンのズームイン領域を、水平方向または鉛直方向にシフトすることにより、前記第２フレームの前記ズームイン領域が無効領域を提示しないようにするステップをさらに含む、請求項１７に記載の１つ以上の非一時的なコンピュータ読取可能装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本明細書は概して映像安定化に関する。
【背景技術】
【０００２】
背景
映像記録はかつて、映像記録専用装置の専門分野であったが、映像記録が可能な携帯電話およびタブレットコンピュータ等の身近な装置がより一般的になっている。大抵の携帯映像記録装置の問題点は、これらの装置では映像のブレが生じる点であり、ユーザが記録装置を持ちながら行なう無意識の動きが映像の品質に影響する。
【０００３】
記録装置を振動させると、その振動をたとえば映像安定化機構によって補償しない限り、同様にブレた映像になる可能性がある。光学式映像安定化は、レンズまたは画像センサ等の記録装置の構成部品を機械的に動かすことによって映像のブレを減じることができる。しかしながら、光学式映像安定化装置は、記録装置の材料および製造コストを増大させる場合がある。また、光学式映像安定化装置は、記録装置のサイズを増大させる場合があり、記録装置は小型に設計することが望まれることが多い。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本明細書は、映像を安定化させるための技術、方法、システム、およびその他の機構を説明する。
【０００５】
下記実施形態に追加する説明として、本開示は以下の実施形態を説明する。
実施形態１は、コンピュータによって実現される方法である。この方法は、コンピューティングシステムが、カメラ等の記録装置によって取込まれた映像の第１フレームおよび第２フレームを受信するステップを含む。この方法は、コンピューティングシステムが、映像の第１フレームおよび第２フレームを用いて、映像によって取込まれたシーン（すなわち映像において描写されているシーン）に対する、第１フレームが取込まれた時点から第２フレームが取込まれた時点までのカメラの移動を示す数学的変換を特定するステップを含む。この方法は、コンピューティングシステムが、最近始まった移動に対する数学的変換の代表性が低くなるように、上記シーンに対するカメラの移動を示す数学的変換を修正することにより、修正された数学的変換を生成するステップを含む。この方法は、コンピューティングシステムが、数学的変換と修正された数学的変換とを用いて、第２フレームに適用されて第２フレームを安定化することができる第２の数学的変換を生成するステップを含む。この方法は、コンピューティングシステムが、第２の数学的変換を第２フレームに適用した結果得られる、安定化された第２フレームに存在する、予測される歪みを、（ｉ）第２の数学的変換を第２フレームに適用した結果生じる水平方向の歪み量と、（ｉｉ）第２の数学的変換を第２フレームに適用した結果生じる鉛直方向の歪み量との差に基づいて、特定するステップを含む。この方法は、コンピューティングシステムが、第２フレームに先行する映像の複数のフレームにおける歪みから算出された歪みの許容可能な変化を、予測される歪みが超過する程度に基づいて、第２の数学的変換を第２フレームに適用した結果得られる安定化効果の低減量を決定するステップを含む。この方法は、コンピューティングシステムが、第２の数学的変換を第２フレームに適用することにより、安定化された第２フレームを生成するステップを含み、第２の数学的変換を第２フレームに適用することによる安定化効果は、決定した安定化効果の低減量に基づいて低減されている。
【０００６】
実施形態２は、実施形態１の方法であり、第２フレームは、映像の第１フレームの直後の映像のフレームである。
【０００７】
実施形態３は、実施形態１の方法であり、カメラの移動を示す数学的変換はホモグラフィ変換行列を含む。
【０００８】
実施形態４は、実施形態３の方法であり、数学的変換を修正するステップは、ローパスフィルタをホモグラフィ変換行列に適用するステップを含む。
【０００９】
実施形態５は、実施形態３の方法であり、予測される歪みは、第２の数学的変換における水平ズーム値と第２の数学的変換における鉛直ズーム値との差に基づく。
【００１０】
実施形態６は、実施形態１の方法であり、数学的変換を修正するステップは、数学的変換を修正して、修正された数学的変換が、数学的変換よりも、長期にわたって発生した移動に対する代表性が高くなるようにするステップを含む。
【００１１】
実施形態７は、実施形態１の方法であり、第２の数学的変換を第２フレームに適用した結果得られる安定化効果の低減量を決定するステップは、第２フレームに先行する映像の複数のフレーム間のカメラの移動の速度に基づいて算出された、カメラの移動速度の許容可能な変化を超える、第１フレームから第２フレームまでのカメラの決定した移動速度に、さらに基づく。
【００１２】
実施形態８は、実施形態１の方法であり、安定化された第２フレームを生成するステップは、第２の数学的変換を第２フレームに適用することによって生成された第２フレームのバージョンをズームインするステップを含む。
【００１３】
実施形態９は、実施形態１の方法であり、第２フレームのバージョンのズームイン領域を、水平方向または鉛直方向にシフトすることにより、第２フレームのズームイン領域が無効領域を提示しないようにするステップをさらに含む。
【００１４】
実施形態１０は、命令が格納された記録可能媒体を含むシステムに関し、この命令は１つ以上のプロセッサによって実行されると実施形態１〜９のいずれか１つの方法に従う動作を実行させる。
【００１５】
特定の実装例は、場合に応じて、以下の利点のうちの１つ以上を実現できる。本明細書に記載の映像安定化技術は、３以上の自由度の移動（たとえば水平移動および鉛直移動だけでない移動）を、たとえば８自由度の移動（たとえば並進方位、回転方位、ズーム方位、および非固定（non-rigid）ローリングシャッター歪み)を補償することにより、補償することができる。本明細書に記載の映像安定化技術は、装置による映像の撮影中に機能することができ、未来のフレームからの情報はなくてもよい。言い換えると、この映像安定化技術は、最新記録フレームを安定化するときに、過去のフレームのみからの情報を使用することができるので、システムは、映像ストリームを取込むときに、安定化された映像ストリームを格納することができる（たとえば、現在記録中のまたは記録済の映像に、１、１００、５００、１０００、または５０００を超える不安定な映像フレームを格納しないといったように、複数の不安定な映像フレームを格納しない）。したがって、システムは、映像の安定化を、全映像の記録が終わるまで待つ必要がない。本明細書に記載の映像安定化技術は、複雑でなくてもよいので、処理能力がそれほど高くない装置（たとえばスマートフォンの一部）上でも実行し得る。加えて、本明細書に記載の映像安定化技術は、第１段階でフレーム間動き予測が失敗する状況でも機能し得る。
【００１６】
１つ以上の実装例の詳細が添付の図面および以下の説明において示される。その他の特徴、目的、および利点は、本明細書および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】映像安定化プロセスによる安定化中の映像ストリームの図を示す。
【図２Ａ】映像を安定化させるプロセスのフローチャートを示す。
【図２Ｂ】映像を安定化させるプロセスのフローチャートを示す。
【図３】本明細書に記載のシステムおよび方法を実現するために、クライアントとしてまたはサーバとしてまたは複数のサーバとして使用し得るコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１８】
各種図面における同様の参照符号は同様の要素を示す。
詳細な説明
本明細書は概して映像の安定化について説明する。映像安定化は、直近の受信映像フレームと過去の受信映像フレームとの間の変換を特定し（この変換は、シーンに対する、フレームとフレームとの間のカメラの移動を示す）、過去のフレームからの情報に基づいてこの変換を修正し、上記変換と上記修正された変換とに基づいて第２の変換を生成し、第２の変換を現在受信中のフレームに適用することにより、現在受信中のフレームを安定化したものを生成することによって、実行し得る。このプロセスは、概要が図１に基づいて説明され、詳細が図２に基づいて説明される。
【００１９】
図１は、映像安定化プロセスによって安定化中の映像ストリームの図を示す。この図は、３つの映像フレーム１１０ａ〜１１０ｃを含む。これらのフレームは連続していてもよく、フレーム１１０ｂはフレーム１１０ａが取込まれた直後に取込まれたフレームであってもよく、フレーム１１０ｃはフレーム１１０ｂが取込まれた直後に取込まれたフレームであってもよい。本明細書は、映像の２つのフレームを、映像の第１フレームおよび映像の第２フレームと呼ぶ場合があるが、「第１」という表記は、第１フレームが映像全体における最初のフレームであることを必ずしも意味しない。
【００２０】
フレーム１１０ａ〜１１０ｃは、ライン１１２ａ〜１１２ｂの間またはその近くに配置されて示されているが、これらのラインは、これらのフレームによって表わされるシーン相互の相対的な位置を示す。この図面においてこれらのラインは、カメラがフレーム１１０ａ〜１１０ｃを取込んだときに移動していたことを示す。たとえば、カメラは、フレーム１１０ａを取込んだときよりもフレーム１１０ｂを取込んだときの方が下を向いており、フレーム１１０ａおよび１１０ｂを取込んだときよりもフレーム１１０ｃを取込んだときの方が上を向いていたことになる。
【００２１】
コンピューティングシステムは、第１フレーム１１０ｂから第２フレーム１１０ｃまでのカメラの移動を示す数学的変換（ボックス１２０）を特定する。この特定は、（図中の矢印で示されるように）フレーム１１０ｂ〜１１０ｃを用いて実施することができる。フレーム１１０ｃは直近に取込まれたフレームであってもよい。これら２つのフレーム１１０ｂ〜１１０ｃは、コンピューティングシステムに装着されているカメラセンサまたはカメラモジュールから受けてもよく、または、映像フレーム１１０ｂ〜１１０ｃを取込んだ遠隔装置から受けてもよい。上記数学的変換を特定することは、数学的変換を生成することを含み得る。数学的変換は、図２Ａ〜図２Ｂのボックス２１０との関連でより詳細に説明するように、ホモグラフィ変換行列であってもよい。
【００２２】
次に、コンピューティングシステムは、修正された変換（ボックス１２５）を生成する。このとき、コンピューティングシステムは、最近始まった移動に対する、修正された変換（ボックス１２５）の代表性が、最初の変換と比べて低くなるように、最初の変換（ボックス１２０）を修正する。言い換えると、修正された変換を生成することは、最初の変換を、第１および第２フレーム１１０ｂ〜１１０ｃよりも前の１つ以上の映像フレームからの情報に基づいて修正することを含む。修正された変換は、最初の変換をローパスフィルタにかけたものであってもよい。そうすることにより得られる修正された数学的変換（ボックス１２５）は、最近始まった移動ではなく長期にわたって発生した移動に対する代表性が、最初の変換（１２０）よりも高い。
【００２３】
一例として、修正された数学的変換（ボックス１２５）は、数分の１秒前に始まった振動ではなく長い秒数にわたって発生したパニングの動きを、より十分に代表することができる。このやり方で変換を修正することは、図１においてフレーム１１０ａ〜１１０ｂからボックス１２２を指している矢印で示されるように、映像の過去のフレームを考慮している。たとえば、過去のフレームを用いて算出した変換を用いることで、より長い期間にわたって発生した移動と、ごく最近始まった移動とを特定することができる。修正された変換を、過去のフレームを用いて算出する方法の一例は、図２Ａ〜図２Ｂのボックス２２０との関連でより詳細に説明する、ローパスフィルタをホモグラフィ変換行列に適用することであってもよい。
【００２４】
ボックス１３０は、最初の変換（ボックス１２０）と修正された変換（ボックス１２５）とから生成される第２の変換を示す。第２の変換は、最初の変換と修正された変換との差であってもよい。第２の変換を最初の変換と修正された変換とから生成することは、図２Ａ〜図２Ｂのボックス２３０との関連でより詳細に説明する。
【００２５】
ボックス１３２は、（ｉ）第２の数学的変換を第２フレーム１１０ｃに適用した結果生じる水平方向の歪み量と、（ｉｉ）第２の数学的変換を第２フレーム１１０ｃに適用した結果生じる鉛直方向の歪み量との差に基づいて、第２の変換を第２フレーム１１０ｃに適用した結果得られる安定化された第２フレーム１１０ｃの、予測される歪みを、コンピューティングシステムが如何にして特定するかを示す。予測される歪みの算出については、図２Ａ〜図２Ｂのボックス２５０との関連でより詳細に説明する。
【００２６】
ボックス１３４は、予測される歪みが許容可能な歪み変化をどの程度超過しているかに基づいて、第２の数学的変換を第２フレーム１１０ｃに適用することにより得られる安定化効果の低減量を、コンピューティングシステムが如何にして決定するかを示す。許容可能な歪み変化は、図１においてフレーム１１０ａ〜１１０ｂからボックス１３４を指している矢印で示されるように、第２フレーム１１０ｃに先行する映像の複数のフレームを用いて算出することができる。一例として、過去の複数のフレームにおける歪みを解析してもよく、現在のフレーム１１０ｃを安定化した結果生じる歪みが、フレーム間の歪みの変化量から大幅に外れている場合、コンピューティングシステムは、現在のフレーム１１０ｃの安定化を低減することにより、歪みが映像を見る者にとって明らかになり過ぎないようにすることができる。映像安定化の低減量の決定については、図２のボックス２５０および２６０との関連でより詳細に説明する。コンピューティングシステムが、決定した映像安定化の低減量を使用することは、決定した量を用いて、修正された第２の変換（ボックス１４０）を生成することを含み得る。
【００２７】
コンピューティングシステムは、修正された第２の変換（ボックス１４０）を第２フレーム１１０ｃに適用することにより、安定化された第２フレーム１１０ｃ（ボックス１５０）を生成する。修正された第２の変換（ボックス１４０）は、決定した安定化の低減量に基づいて修正されているので、コンピューティングシステムによる、安定化された第２フレーム（ボックス１５０）の生成は、決定した安定化効果の低減量に基づいて低減されていると考えられる。
【００２８】
いくつかの実装例において、安定化効果の低減量を決定することは、さらに、または代わりに、シーンに対するカメラの許容可能な速度変化を超える、シーンに対する第１フレーム１１０ｂから第２フレーム１１０ｃまでのカメラの決定した移動速度に基づく。カメラの許容可能な速度変化は、図２Ａ〜図２Ｂのボックス２４０および２６０に関連してより詳細に説明する第２フレーム１１０ｃに先行する映像の複数のフレームから算出してもよい。
【００２９】
いくつかの実装例において、安定化された第２フレームを生成することは、第２の数学的変換を第２フレームに適用することにより生成された第２フレームのバージョンをズームインすることを含む。コンピューティングシステムは、ズームイン領域を、水平方向、鉛直方向、またはこれら両方の方向にシフトさせることにより、ズームイン領域が、安定化された第２フレームのエッジに現れ得る無効領域を提示しないようにすることができる。これについては、図２Ａ〜図２Ｂのボックス２８０および２９０との関連でより詳細に説明する。
【００３０】
図２Ａ〜図２Ｂは映像安定化プロセスのフローチャートを示す。このプロセスは、以下で説明するボックス２１０〜２９０で示される。これらのボックスに関連付けて説明する動作は、以下で示す順序または図２Ａ〜図２Ｂに示される順序で実行されなくてもよい。
【００３１】
ボックス２１０で、コンピューティングシステムは、２つの映像フレームを入力として用いてフレーム間の動き（「Ｈ＿ｉｎｔｅｒｆｒａｍｅ」）を表わす行列を推定する。このフレーム間動き行列は、ホモグラフィ変換行列であってもよい。ホモグラフィ変換行列は、シーンの、または、映像の２つのフレーム間のシーンを取込んだカメラの移動を表わすことができる。一例として、映像の各フレームは二次元画像を表示し得る。第１フレームが、正方形をその真正面から撮影して、映像フレームの中で辺の長さが等しく角度が９０度の正方形となるように（言い換えると正方形に見えるように）したとする。次に、カメラを側方に移動させて（または正方形自体を移動させて）、次の映像フレームが、辺のうちのいつくかが他の辺よりも長く角度が９０度ではない歪んだ正方形を表示するようにしたとする。第１フレーム内の正方形の４つのコーナーポイントの位置を第２フレームの４つのコーナーポイントの位置にマッピングすることにより、第１フレームから次のフレームまでにカメラまたはシーンがどのように移動したかを特定することができる。
【００３２】
フレーム内のこれらのコーナーポイントの相互のマッピングを用いることにより、カメラが記録しているシーンに対するカメラの視点の動きを表わすホモグラフィ変換行列を生成することができる。このようなホモグラフィ変換行列の場合、第１フレームを、生成したホモグラフィ変換行列とともに使用して、たとえば既知のホモグラフィ変換方法に従って第１フレーム内の画素を異なる場所に移動させることにより、第２フレームを再度生成することができる。
【００３３】
上記ホモグラフィ変換行列は、並進移動だけでなく、回転、ズーム、および非固定ローリングシャッター歪みも表わすことができる。このように、ホモグラフィ変換行列を使用することにより、８自由度の移動に対して映像を安定化することができる。比較として、いくつかの映像安定化機構は、専ら画像を安定化することによって並進移動（たとえば上下および左右の移動）を説明する。
【００３４】
上述のホモグラフィ変換行列は、３×３のホモグラフィ変換行列であってもよいが、その他の種類のホモグラフィ行列を使用してもよい（ホモグラフィ行列でなくても、または行列でなくても、１つのフレームから別のフレームまでの移動のその他の数学的表現を使用してもよい）。３×３行列（Ｈ＿ｉｎｔｅｒｆｒａｍｅと呼ぶ）は以下のようにして決定することができる。第１に、コンピューティングシステムは、現在の画像の中で一組の特徴点（通常コーナーポイント）を見つける。これらのポイントを［ｘ’＿ｉ，ｙ’＿ｉ］，ｉ＝１....Ｎ（Ｎは特徴点の数）で表わす。次に、前のフレームにおける対応する特徴点を見つける。この対応する特徴点を［ｘ＿ｉ，ｙ＿ｉ］で表わす。なお、これらのポイントは、ＧＬ座標系にあるものとして説明する（すなわちｘおよびｙの範囲はフレーム中心を起点として−１〜１）。これらのポイントが、ｘの範囲が０〜画像の幅で、ｙの範囲が０〜画像の高さである画素座標系の中にある場合、ポイントをＧＬ座標系に変換することができる、または、得られた行列を変換して補償することができる。
【００３５】
上記Ｈ＿ｉｎｔｅｒｆｒａｍｅ行列は、９の要素を含む３×３行列である。
【００３６】
【数１】
2019502275.tif 000003
Ｈ＿ｉｎｔｅｒｆｒａｍｅは下記のように［ｘ＿ｉ，ｙ＿ｉ］を［ｘ’＿ｉ，ｙ’＿ｉ］に変換する変換行列である。
・z_i'*[x'_i, y'_i, 1]' = H_interframe * [x_i, y_i, 1]'
[x'_i,y'_i,1]'は、[x'_i,y'_i,1]ベクトルの転置行列である３×１ベクトルである。[x_i,y_i,1]'は、[x_i,y_i,1]ベクトルの転置行列である３×１ベクトルである。z_i'はスケールファクタである。
【００３７】
一組の対応する特徴点を想定した場合、行列を推定するためのアルゴリズムの例は、ftp://vista.eng.tau.ac.il/dropbox/aviad/Hartley,%20Zisserman
%20-%20Multiple%20View%20Geometry%20in%20Computer%20Vision.pdfから入手できるコンピュータビジョンの書籍「Hartley, R., Zisserman, A.: Multiple View Geometry in Computer Vision. Cambridge University Press (2000)」のアルゴリズム４．１（９１頁）およびアルゴリズム４．６（１２３頁）に記載されている。
【００３８】
ボックス２２０で、コンピューティングシステムは、ローパス変換行列（Ｈ＿ｌｏｗｐａｓｓ）を推定する。ローパス変換行列を後にＨ＿ｉｎｔｅｒｆｒａｍｅ行列と組合わせることにより、ビデオカメラの無意識の「高周波の」移動の結果を取除くために使用できる新たな行列（Ｈ＿ｃｏｍｐｅｎｓａｔｉｏｎ）を生成することができる。システムがすべての移動を取除こうとする場合（言い換えると本明細書に記載のローパスフィルタリングを実行しない場合）、ユーザは、カメラを意識的に動かすことができず映像によって示されるシーンも動かすことができないかもしれない。このため、コンピューティングシステムは、高周波の移動をフィルタ処理して取除くためにローパス変換を生成する。高周波の移動は、短期間の前後移動のような、不規則であって多数のフレームを通して表わされるのではない移動であり得る。逆に、低周波の移動は、数秒間のユーザによるビデオカメラのパニングのような、多数のフレームを通して表わされる移動であり得る。
【００３９】
このフィルタリングを実施するために、コンピューティングシステムは、長い時系列にわたって発生した低周波移動を強調するために重み付けされた値を含むローパス変換行列（Ｈ＿ｌｏｗｐａｓｓ）を生成する。ローパス変換行列は、ローパスフィルタをＨ＿ｉｎｔｅｒｆｒａｍｅ行列に適用した結果であってもよい。ローパス変換行列の各要素は、（１）前のフレームからのローパス変換行列の自身の時系列と、（２）前のフレームと現在のフレームとの間の移動を表わすＨ＿ｉｎｔｅｒｆｒａｍｅ行列と、（３）ユーザによって指定された減衰比とから、要素ごとに個別に生成される。言い換えると、注目すべき値で重み付けされた行列内の要素は、多くのフレームにわたってＨ＿ｉｎｔｅｒｆｒａｍｅに存在している移動を表わす要素であってもよい。Ｈ＿ｌｏｗｐａｓｓを生成するための等式は次のように表わすことができる。
・H_lowpass = H_previous_lowpass * transform_damping_ratio + H_interframe * (1 - transform_damping_ratio)
この等式は、２タップ無限インパルス応答フィルタの一例である。
【００４０】
ボックス２３０で、コンピューティングシステムは、補償変換行列（Ｈ＿ｃｏｍｐｅｎｓａｔｉｏｎ）を算出する。補償行列は、ローパス行列（Ｈ＿ｌｏｗｐａｓｓ）とフレーム間動き行列（Ｈ＿ｉｎｔｅｒｆｒａｍｅ）との組合わせであってもよい。これら２つの行列を組合わせることにより、あるフレームから次のフレームまでの移動を保つのに必要な行列（Ｈ＿ｃｏｍｐｅｎｓａｔｉｏｎ）が生成されるが、これは、最近の「無意識の」移動の除外までの、妥当な期間に発生した移動のみである。Ｈ＿ｃｏｍｐｅｎｓａｔｉｏｎ行列は、Ｈ＿ｉｎｔｅｒｆｒａｍｅとＨ＿ｌｏｗｐａｓｓとの間の移動の相違を表わし得る。よって、Ｈ＿ｌｏｗｐａｓｓを最後のフレームに適用することにより、最後のフレームと現在のフレームとの間に発生した自発的な移動を表わす、最後のフレームを修正したものを生成する一方で、Ｈ＿ｃｏｍｐｅｎｓａｔｉｏｎを現在のフレームに適用することにより、最後のフレームと現在のフレームとの間に発生した自発的な移動を表わす、現在のフレームを修正し（安定化し）たものを生成することができる。簡単に言うと、Ｈ＿ｃｏｍｐｅｎｓａｔｉｏｎを現在のフレームに適用することにより、そのフレームから無意識の移動を取除く。具体的には、この算出されたＨ＿ｃｏｍｐｅｎｓａｔｉｏｎ行列を想定すると、システムは、映像の現在のフレームを取込み、変換プロセスを用いてＨ＿ｃｏｍｐｅｎｓａｔｉｏｎ行列をこのフレームに適用し、現在のフレームと同様であるが突然の小さな移動を除外する、新たに生成されたフレームを取得することができるはずである。言い換えると、システムは、現在のフレームをできる限り最後のフレームの近くで維持しようとするが、長期の「自発的な」移動は許可する。
【００４１】
補償変換行列は以下の等式を用いて生成することができる。
・H_compensation = Normalize( Normalize( Normalize(H_lowpass) * 
H_previous_compensation ) * Inverse(H_interframe))
H_previous_compensation行列は、このプロセスにおいて後に算出されるが、前のフレームのために算出された、H_constrained_compensation行列である。Inverse()は、変換を反転させることにより最後のフレームの元のバージョンを生成するために使用される行列反転演算である。最後のフレームの元のバージョンをローパスフィルタ行列と組合わせることにより、自発的な移動を許容する。H_previous_compensationと組合わせることにより、前の補償値を補償する。
【００４２】
Normalize()は、３×３行列をその第２の特異値によって正規化する演算である。正規化プロセスを実行する理由は、このプロセスのステップのうちのいくつかが、他に良い言葉がないのであるが、現実世界においてあまり意味をなさないであろう変換を生じさせる可能性があるからである。このため、正規化プロセスは、各プロセスステップから妥当な結果が得られることを保証できる。正規化は、プロセスのステップごとに実行されるので、１つのステップの変則的な出力がこのプロセスの残りのステップを汚染することはない（たとえば、この変則的な出力が、これらのステップのうちの残りのステップの出力もゼロの近くに引き寄せるゼロに近い値を与えた場合を想定する）。下記理由により、追加の処理によって映像安定化プロセスの結果を向上させることができる。
【００４３】
ボックス２４０で、コンピューティングシステムは、減速値を算出する。減速値は、カメラが非常に素早く移動し、フレーム間の動きが信頼できない可能性があるので映像安定化が歓迎されなくなったときに、映像安定化をどの程度低減するかを判断するために使用される値であってもよい。映像安定化を低減し得る量を算出するために、フレーム間の移動の速度を先ず算出する。この例において、コンピューティングシステムは、フレームの中心の速度を生成する。ｘ方向の速度は、以下のように、Ｈ＿ｉｎｔｅｒｆｒａｍｅの行１列３の要素から取出される（ボックス２４２）。
・speed_x = H_interframe[1, 3] * aspect_ratio
ｙ方向の速度は、以下のように、Ｈ＿ｉｎｔｅｒｆｒａｍｅ行列の行２列３の要素から取出される（ボックス２４２）。
・speed_y = H_interframe[2, 3]
上記aspect_ratioは、frame_widthをframe_heightで除算したものである。これらの速度の特定は２つのフレーム間の並進移動を説明するだけかもしれないが、他の例において速度は回転、ズーム、またはその他の種類の移動を説明し得る。
【００４４】
システムは次に、長期にわたるカメラ（またはシーン）の速度を説明し突然の素早い「無意識の」移動を除外する、ローパス動き速度を決定することができる。これはたとえば以下のように行なわれる。現在の速度を取得し、それを前に（previous）算出したローパス速度（lowpass speed）と組合わせ、さらに、前に算出したローパス速度に対して現在の速度を逆に重み付けする減衰比（damping ratio）を適用する。
・lowpass_speed_x = lowpass_speed_x_previous * speed_damping_ratio + 
speed_x * (1 - speed_damping_ratio)
この等式は実質的に、前に計算した速度を取得し、それを、減衰比によって特定される量だけ減じることにより、ローパス速度を生成する。この低減分は現在の速度によって補償される。このように、映像の現在の速度は、全lowpass_speed値に影響するが、lowpass_speed値における排他的ファクタではない。上記等式は、無限インパルス応答フィルタを表わす。たとえば以下のようにｙ速度についても同じプロセスを実行してローパスｙ速度（lowpass y speed）を生成することができる。
・lowpass_speed_y = lowpass_speed_y_previous * speed_damping_ratio + 
speed_y * (1 - speed_damping_ratio)
このプロセスの減衰比はユーザによって設定され、その値の一例は０．９９である。
【００４５】
このプロセスは次に、たとえば以下の等式を用いて、これらの値を組合わせることにより、ｘ方向およびｙ方向における移動を説明するローパス速度の１つの表現を生成する（ボックス２４４）。
・lowpass_speed = sqrt(lowpass_speed_x ＊lowpass_speed_x + 
lowpass_speed_y ＊ lowpass_speed_y)
算出されたこのローパス速度は実質的に、長期にわたるフレーム間の移動の速度を表わす。言い換えると、lowpass_speedは、最近の速度変化に対する説明性は低く、より長期の速度傾向をより十分に説明する。
【００４６】
ローパス速度が算出された状態で、システムは、減速値を算出することができる。いくつかの例において、減速値は０と１の間の値であり（その他の境界値も可能）、システムは、ローパス速度と低しきい値および高しきい値との比較に基づいて減速値を生成することができる。ローパス速度（lowpass speed）が低しきい値（low threshold）を下回る場合、減速値（speed reduction）は境界値０に設定してもよい。ローパス速度が高しきい値（high threshold）を上回る場合、減速値は境界値１に設定してもよい。ローパス速度が２つのしきい値の間であるとき、コンピューティングシステムは、たとえば減速値が境界値０と１の間にある場合は、しきい値の間のローパス速度のスケーリングされた値を表わす減速値を選択してもよい。減速値の算出は、以下のアルゴリズムで表わすことができる（ボックス２４６）。
・lowpass_speed < low_speed_thresholdの場合、speed_reduction = 0
・lowpass_speed > high_speed_thresholdの場合、speed_reduction = max_speed_reduction
・さもなければ、speed_reduction = max_speed_reduction * (lowpass_speed - 
low_speed_threshold) / (high_speed_threshold - low_speed_threshold)
このアルゴリズムにより、low_speed_threshold、high_speed_threshold、およびmax_speed_reductionはすべて、ユーザにより特定される。値の例は、low_speed_threshold = ０．００８、high_speed_threshold = ０．０１６、およびmax_speed_reduction = １．０を含む。
【００４７】
ボックス２５０で、コンピューティングシステムは歪み低減値を算出する。補償変換は映像フレームに適用されたときに非固定（non-rigid）歪みを過剰に生成し得るので、コンピューティングシステムは歪み低減値を算出してもよい。言い換えると、映像安定化は現実的に見えないかもしれない。たとえばその理由は、１方向において別の方向よりも大きく画像を引き延ばすことにより発生する歪みは、発生するのが速すぎてユーザには異常に見えることにある。
【００４８】
歪み低減値を算出するために、コンピューティングシステムは先ず、Ｈ＿compensation行列におけるズームファクタの値を調べることにより、以下のように補償ズームファクタを算出してもよい。
・zoom_x = H_compensation[1,1]  これはH_compensation行列の行１列１の要素
・zoom_y = H_compensation[2,2]  これはH_compensation行列の行２列２の要素
ズームファクタは、如何にして変換が画像をある次元において引き延ばすかを特定するファクタであってもよい。
【００４９】
次に、コンピューティングシステムは、２つのズームファクタ間の差を求めることにより、以下のように、１方向において別の方向よりも大きく画像を引き延ばすことにより画像が歪む（distortion）程度を求めることができる（ボックス２５２）。
・distortion＝abs(zoom_x-zoom_y)
ローパスフィルタをこの歪みに適用することにより、歪みを変化させることが許容されるレートに制限を課し、したがって、以下の式を用いて歪みの突然の変化を確実に最少にする（ボックス２５４）。
・lowpass_distortion = previous_lowpass_distortion * distortion_damping_ratio + distortion * (1 - distortion_damping_ratio)
言い換えると、このアルゴリズムは、歪み量をゆっくりと変化させるように構成されている。上記式において、distortion_damping_ratioは、ユーザが指定した歪みＩＩＲフィルタの減衰比である。値の一例は０．９９である。
【００５０】
ローパス歪みが算出された状態で、コンピューティングシステムは、歪み低減値を算出することができる。いくつかの例において、歪み低減値は０と１の間の値であり（その他の境界値も可能）、システムは、ローパス歪みと低しきい値および高しきい値との比較に基づいて歪み低減値を生成してもよい。ローパス歪みが低しきい値を下回る場合、ローパス低減値は境界値０に設定してもよい。ローパス歪み値が高しきい値を上回る場合、歪み低減値は境界値１に設定してもよい。ローパス歪み値が２つのしきい値の間である場合、しきい値間のローパス歪みのスケーリングされた値を表わす値を選択してもよい（たとえば結果として得られた歪み低減値が境界値０と１の間である場合）。歪み低減値の算出は以下のアルゴリズムで表わすことができる（ボックス２５６）。
・lowpass_distortion < low_distortion_thresholdである場合、distortion_reduction = 0
・lowpass_distortion > high_distortion_thresholdである場合、max_distortion_reduction
・さもなければ、distortion_reduction = max_distortion_reduction * 
(lowpass_distortion - low_distortion_threshold) / (high_distortion_threshold 
- low_distortion_threshold)
このアルゴリズムにより、low_distortion_threshold、high_distortion_threshold、およびmax_distortion_reductionはすべて、ユーザにより特定される。値の例は、low_distortion_threshold = ０．００１、high_distortion_threshold = ０．０１、およびmax_distortion_reduction = ０．３を含む。
【００５１】
ボックス２６０で、コンピューティングシステムは、求めた減速値および歪み低減値に基づいて、映像安定化の強度を低減する。そうするために、コンピューティングシステムは、以下のように、この例では減速値（speed reduction value）と歪み低減値（distortion reduction value）の最大値（maximum）として特定される低減値（reduction value）を算出する（ボックス２６２）。
・reduction = max(speed_reduction, distortion_reduction)
その他の例では、この低減値は、各値の一部を説明するこれら２つの値の組合わせであってもよい（たとえば、これらの値を合算または乗算し、可能であればその後０．５等の予め定められた値で乗算してもよい）。低減値は、境界値０および１またはその間の値であってもよく、コンピューティングシステムは低減値が１に近づくほど映像安定化の強度を減じてもよい。
【００５２】
次に、コンピューティングシステムは、補償変換行列を修正することにより、低減された補償変換行列を生成してもよい（ボックス２６４）。コンピューティングシステムはこれを、１から低減値（reduction）を減算したもので補償減算行列を乗算することにより、行なってもよい。言い換えると、低減値が１に非常に近い場合（画像安定化が大幅に低減されることを示す）、補償行列内の値は、ゼロに近い数で乗算されることになるので、大幅に減じられるであろう。次に、修正された補償変換行列内の数字を、低減値（reduction value）で乗算された単位行列（identity matrix）に加算する。等式の一例は次の通りである。
・H_reduced_compensation = Identity * reduction + H_compensation * (1 - reduction)
ボックス２７０で、コンピューティングシステムは、得られた映像安定化が出力フレームの無効領域（たとえばフレーム外の領域）を示すことがないように、補償を制限してもよい。あるバックグラウンドとして、画像安定化プロセスから得られた画像を補償は歪めるかもしれないので、この画像は実質的にその境界の外側の無効領域を表示する場合がある。これらの無効領域が確実に表示されないようにするために、コンピューティングシステムは、この画像をズームインして、無効領域を含み得る画像の外側を切取ってもよい。
【００５３】
ボックス２７０のプロセスに戻ると、カメラが素早く大幅に移動した場合、安定化は、古い場所の表示に固定される可能性がある。なぜなら、素早い大きな移動はフィルタ処理で落とされる場合があり、そうすると、上記無効領域が安定化後のフレームの表示の中に導入される可能性がある。そのような場合、下記の制限プロセスは、映像が無効領域を表示しようとしている場合に表示されるフレームの領域の完全制御を映像安定化が実質的に停止することを保証できる。この、安定化がフレームの何らかの制御をあきらめる必要があるか否かに関する判断は、最初に出力画像のコーナーポイントを設定し、これらのコーナーポイントが予め指定されたトリミング領域の外側にあるか否か判断することにより、開始されてもよい。補償（compensation）およびズームの最大量は、トリミング比（cropping ratio）の２倍に定めてもよく、このトリミング比はユーザによって指定されてもよい（たとえば両側で１５％または以下の等式で０．１５）。
・max_compensation = cropping_ratio * 2
コンピューティングシステムは次に、H_reduced_compensation行列を使用することにより、ＧＬ座標における単位正方形の４つのコーナー(x01, y01) = (-1, -1)、(x02, y02) = (1, -1)、(x03, y03) = (-1,1)、(x04, y04) = (1,1)を、４つのコーナーポイント(x1, y1)、(x2, y2)、(x3, y3)、(x4, y4)に変換してもよい。（なお、映像フレームは単位正方形である必要はないが、単位正方形の寸法がＧＬ座標の単位正方形にマッピングされる）。より具体的には、以下の式を用いて(x0i, y0i)を(xi, yi)に変換する。
・dzi * [xi, yi, 1]' = H_reduced_compensation * [x0i, y0i, 1]'
この例において、[x0i, y0i, 1]'は、[x0i, y0i, 1]ベクトルの転置行列である３×１ベクトルである。[xi, yi, 1]'は、[xi, yi, 1]ベクトルの転置行列である３×１ベクトルである。
【００５４】
次に、コンピューティングシステムは、以下のようにして、変換された各映像フレームのコーナーから単位正方形のエッジまでの、各方向（左（left）、右(right）、上（top）および下（bottom））における最大（max）変位量（displacement）を特定することができる。
・max_left_displacement = 1 + max(x1, x3)
・max_right_displacement = 1 - min(x2, x4)
・max_top_displacement = 1 + max(y1, y2)
・max_bottom_displacement = 1 - min(y3, y4)
特定された変位量のうちのいずれかが最大補償量（上記のようにトリミング比の２倍であり、単位正方形のズームイン領域の表示領域内に無効領域があることを示す）を上回った場合、無効領域が表示されないように、フレームのコーナーポイントは同じ量だけ単位正方形のエッジからシフトされる。コーナーポイントをシフトするための式はしたがって次の通りである。
・max_left_displacement > max_compensationの場合、４つのコーナーポイントを左に4 max_left_displacement - max_compensationだけシフトし、
・max_right_displacement > max_compensationの場合、４つのコーナーポイントを右にmax_right_displacement - max_compensationだけシフトし、
・max_top_displacement > max_compensationの場合、４つのコーナーポイントを上にmax_top_displacement - max_compensationだけシフトし、
・max_bottom_displacement > max_compensationの場合、４つのコーナーポイントを下にmax_bottom_displacement - max_compensationだけシフトする。
コーナーポイントをシフトすることは、ディスプレイがトリミングされたとしても無効領域が示されていたことを明らかにすることである（ボックス２７２）。
【００５５】
上記すべてのシフト演算後、新たな４つのコーナーポイントは、(x1', y1')、(x2', y2')、(x3', y3')、(x4', y4')と表記することができる。次に、コンピューティングシステムは、制限された補償変換行列H_constrained_compensationを算出する。この行列は、以下のように、ＧＬ座標の単位正方形の４つのコーナー(x01, y01) = (-1, -1)、(x02, y02) = (1, -1)、(x03, y03) = (-1,1)、(x04, y04) = (1,1)を、４つの制限されたコーナーポイント(x1', y1')、(x2', y2')、(x3', y3')、(x4', y4')にマッピングする。
・zi' * [xi', yi', 1]' = H_constrained_compensation * [x0i, y0i, 1]'
この例において、[x0i, y0i, 1]'は、[x0i, y0i, 1]ベクトルの転置行列である３×１ベクトルである。[xi', yi', 1]'は、[xi', yi', 1]ベクトルの転置行列である３×１ベクトルである。zi'はスケールファクタである。４対のポイント[x0i, y0i, 1]'および[xi', yi', 1]'を想定した場合の、行列を推定するためのアルゴリズムの例は、ftp://vista.eng.tau.ac.il/dropbox/aviad/Hartley,%20Zisserman%20-%20Multiple%20View%20Geometry%20in%20Computer%20Vision.pdfから入手できるコンピュータビジョンの書籍「Hartley, R., Zisserman, A.: Multiple View Geometry in Computer Vision. Cambridge University Press (2000)」のアルゴリズム４．１（９１頁）に記載されている。
【００５６】
次に、H_constrained_compensationを、H_previous_compensationとして保存する。これは、ボックス２３０に関して先に述べたように、次のフレームを安定化するための計算で使用することができる。
【００５７】
ボックス２８０で、コンピューティングシステムは、安定化された画像をズームして境界をトリミングするように、制限された補償行列を修正する。いくつかの例において、コンピューティングシステムは先ず以下のようにズームファクタ（zoom factor）を特定する。
・zoom_factor = 1 / (1 - 2 * cropping_ratio)
そうするときに、コンピューティングシステムは、トリミング比（crop ratio）を（たとえば１５％値０．１５を２倍にして０．３にすることにより）２倍にし、得られた値を１から減算し（たとえばその結果０．７を得る）、次にその結果で１を除算することによりズームファクタを得る（たとえば、１÷０．７＝ズームファクタ１．４２）。次に、コンピューティングシステムは、以下のように、一定量ディスプレイをズームインするために、制限補償行列の特定の特徴を分割することができる。
・H_constrained_compensation[3,1]=H_constrained_compensation[3,1]/zoom_factor
・H_constrained_compensation[3,2]=H_constrained_compensation[3,2]/zoom_factor
・H_constrained_compensation[3,3]=H_constrained_compensation[3,3]/zoom_factor
ボックス２９０で、コンピューティングシステムは、トリミングされ安定化された現在のフレームを生成するために、修正された制限補償行列を現在のフレームに適用する。入力フレームに対して制限補償行列（H_constrained_compensation）を適用して出力画像を生成する方法の１例は、次のように説明できる。
・z' * [x', y', 1]' = H_constrained_compensation * [x, y, 1]'
・[x, y, 1]'は、入力フレームにおける座標を表わす３×１ベクトル
・[x', y', 1]'は、出力フレームにおける座標を表わす３×１ベクトル
・z'はスケールファクタ
・H_constrained_compensationは、以下の９要素を含む３×３行列:
【００５８】
【数２】
2019502275.tif 000004
より詳細には、入力フレーム内の画素［ｘ，ｙ］ごとに、上記変換を用いて出力フレームにおける位置［ｘ’，ｙ’］を探し出し、入力フレームにおける［ｘ，ｙ］の画素値を出力フレームにおける［ｘ’，ｙ’］にコピーする。別の方法は、出力フレーム内の画素［ｘ’，ｙ’］ごとに、逆変換を用いて入力フレームにおける位置［ｘ，ｙ］を探し出し、入力画像における［ｘ，ｙ］の画素値を出力フレームにおける［ｘ’，ｙ’］にコピーする。これらの演算は、グラフィックプロセッシングユニット（Graphics Processing Unit：ＧＰＴ）というコンピューティングシステムにおいて効率的に実施できる。
【００５９】
次に、本明細書でボックス２１０〜２９０について記載されているプロセスを、次のフレームに対して繰返してもよく、そのときに、現在のフレームの処理の値のうちのいくつかを次のフレームに使用する。
【００６０】
さまざまな実装例において、別の動作「に応じて」または別の動作の「結果として」実行される動作（たとえば決定または特定）は、先行する動作が不成功の場合（たとえば決定がなされなかった場合）は、実行されない。「自動的に」実行される動作は、ユーザの介入（たとえば介入するユーザ入力）なしで実行される動作である。本明細書において条件の表現を用いて記載されている特徴は、任意である実装例を説明している場合がある。いくつかの例において、第１装置から第２装置への「送信」は、第１装置がデータを第２送信による受信のためにネットワークに置くことを含むが、第２装置が当該データを受信することを含まない場合がある。逆に、第１装置からの「受信」は、ネットワークからデータを受信することを含み得るが、第１装置がデータを送信することは含まない場合がある。
【００６１】
コンピューティングシステムが「決定する」ことは、コンピューティングシステムが、別のデバイスに対し、その決定を行ない結果を当該コンピューティングシステムに提供することを要求することを、含み得る。加えて、コンピューティングシステムが「表示する」または「提示する」ことは、コンピューティングシステムが、参照された情報を別のデバイスが表示または提示するためのデータを送信することを含み得る。
【００６２】
さまざまな実装例において、行列に対して実行されると記載されている演算は、当該行列に対して実行される演算、または、本開示に記載されている動作によって修正された当該行列に対して実行される演算、またはその均等物を意味する。
【００６３】
図３は、本明細書に記載のシステムおよび方法を実現するために、クライアントまたはサーバまたは複数のサーバとして使用し得る、コンピューティングデバイス３００、３５０のブロック図である。コンピューティングデバイス３００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他適切なコンピュータ等の、さまざまな形態のデジタルコンピュータを代表することを意図している。コンピューティングデバイス３５０は、携帯情報端末、携帯電話、スマートフォン、およびその他同様のコンピューティングデバイス等の、さまざまな形態のモバイルデバイスを代表することを意図している。本明細書に示される構成要素、それらの接続および関係、ならびに機能は、専ら例示を意図しているのであって、本明細書において記載されているおよび／またはクレームされている実装例を限定することを意図しているのではない。
【００６４】
コンピューティングデバイス３００は、プロセッサ３０２と、メモリ３０４と、記憶装置３０６と、メモリ３０４および高速拡張ポート３１０に接続している高速インターフェイス３０８と、低速バス３１４および記憶装置３０６に接続している低速インターフェイス３１２とを含む。これらのコンポーネント３０２、３０４、３０６、３０８、３１０、および３１２の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。プロセッサ３０２は、コンピューティングデバイス３００内で実行される命令を処理可能であり、これらの命令は、ＧＵＩのためのグラフィック情報を、高速インターフェイス３０８に結合されたディスプレイ３１６等の外部入出力デバイス上に表示するために、メモリ３０４内または記憶装置３０６上に格納された命令を含む。他の実装例では、複数のプロセッサおよび／または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。加えて、複数のコンピューティングデバイス３００が接続されてもよく、各デバイスは（たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）必要な動作の一部を提供する。
【００６５】
メモリ３０４は、情報をコンピューティングデバイス３００内に格納する。一実装例では、メモリ３０４は１つまたは複数の揮発性メモリユニットである。別の実装例では、メモリ３０４は１つまたは複数の不揮発性メモリユニットである。メモリ３０４はまた、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取可能媒体であってもよい。
【００６６】
記憶装置３０６は、コンピューティングデバイス３００のための大容量記憶を提供可能である。一実装例では、記憶装置３０６は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイといった、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報担体において有形に具体化され得る。コンピュータプログラムプロダクトはまた、実行されると上述のような１つ以上の方法を行なう命令を含んでいてもよい。情報担体は、メモリ３０４、記憶装置３０６、またはプロセッサ３０２上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【００６７】
高速コントローラ３０８はコンピューティングデバイス３００のための帯域幅集約的な動作を管理し、一方、低速コントローラ３１２はより低い帯域幅集約的な動作を管理する。機能のそのような割当ては例示にすぎない。一実装例では、高速コントローラ３０８は、メモリ３０４、ディスプレイ３１６に（たとえば、グラフィックスプロセッサまたはアクセラレータを介して）、および、さまざまな拡張カード（図示せず）を受付け得る高速拡張ポート３１０に結合される。この実装例では、低速コントローラ３１２は、記憶装置３０６および低速拡張ポート３１４に結合される。さまざまな通信ポート（たとえば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、イーサネット（登録商標）、無線イーサネット）を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ等の１つ以上の入出力デバイスに、または、スイッチもしくはルータ等のネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【００６８】
コンピューティングデバイス３００は、図に示すように多くの異なる形態で実現されてもよい。たとえばそれは、標準サーバ３２０として、またはそのようなサーバのグループで複数回実現されてもよい。それはまた、ラックサーバシステム３２４の一部として実現されてもよい。加えて、それは、ラップトップコンピュータ３２２等のパーソナルコンピュータにおいて実現されてもよい。これに代えて、コンピューティングデバイス３００からのコンポーネントは、デバイス３５０等のモバイルデバイス（図示せず）における他のコンポーネントと組合されてもよい。そのようなデバイスの各々は、コンピューティングデバイス３００、３５０のうちの１つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス３００、３５０で構成されてもよい。
【００６９】
コンピューティングデバイス３５０は、数あるコンポーネントの中でも特に、プロセッサ３５２と、メモリ３６４と、ディスプレイ３５４等の入出力デバイスと、通信インターフェイス３６６と、トランシーバ３６８とを含む。デバイス３５０にはまた、追加の記憶容量を提供するために、マイクロドライブまたは他のデバイス等の記憶装置が設けられてもよい。コンポーネント３５０、３５２、３６４、３５４、３６６、および３６８の各々は、さまざまなバスを使用して相互接続されており、当該コンポーネントのうちのいくつかは、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。
【００７０】
プロセッサ３５２は、メモリ３６４に格納された命令を含む、コンピューティングデバイス３５０内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。加えて、プロセッサは多数のアーキテクチャのうちのいずれかを用いて実現されてもよい。たとえば、プロセッサは、ＣＩＳＣ（Complex Instruction Set Computer：複合命令セットコンピュータ）プロセッサ、ＲＩＳＣ（Reduced Instruction Set Computer：縮小命令セットコンピュータ）プロセッサ、またはＭＩＳＣ（Minimal Instruction Set Computer：最小命令セットコンピュータ）プロセッサであってもよい。プロセッサは、たとえば、ユーザインターフェイス、デバイス３５０が実行するアプリケーション、およびデバイス３５０による無線通信の制御といった、デバイス３５０の他のコンポーネント同士の連携を提供してもよい。
【００７１】
プロセッサ３５２は、ディスプレイ３５４に結合された制御インターフェイス３５８およびディスプレイインターフェイス３５６を介してユーザと通信してもよい。ディスプレイ３５４は、たとえば、ＴＦＴ  ＬＣＤ（Thin-Film-Transistor Liquid Crystal Display：薄膜トランジスタ液晶ディスプレイ）、またはＯＬＥＤ（Organic Light Emitting Diode：有機発光ダイオード）ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス３５６は、ディスプレイ３５４を駆動してグラフィカル情報および他の情報をユーザに提示するための適切な回路を含んでいてもよい。制御インターフェイス３５８は、ユーザからコマンドを受信し、それらをプロセッサ３５２に送出するために変換してもよい。加えて、デバイス３５０と他のデバイスとの近接エリア通信を可能にするために、外部インターフェイス３６２がプロセッサ３５２と通信した状態で設けられてもよい。外部インターフェイス３６２は、たとえば、ある実装例では有線通信を提供し、他の実装例では無線通信を提供してもよく、複数のインターフェイスが使用されてもよい。
【００７２】
メモリ３６４は、情報をコンピューティングデバイス３５０内に格納する。メモリ３６４は、１つもしくは複数のコンピュータ読取可能媒体、１つもしくは複数の揮発性メモリユニット、または、１つもしくは複数の不揮発性メモリユニットのうちの１つ以上として実現されてもよい。拡張メモリ３７４が設けられて拡張インターフェイス３７２を介してデバイス３５０に接続されてもよく、拡張インターフェイス３７２は、たとえばＳＩＭＭ（Single In Line Memory Module）カードインターフェイスを含んでいてもよい。そのような拡張メモリ３７４は、デバイス３５０に余分の格納スペースを提供してもよく、または、デバイス３５０のためのアプリケーションまたは他の情報も格納してもよい。具体的には、拡張メモリ３７４は、上述のプロセスを実行または補足するための命令を含んでいてもよく、安全な情報も含んでいてもよい。このため、たとえば、拡張メモリ３７４はデバイス３５０のためのセキュリティモジュールとして設けられてもよく、デバイス３５０の安全な使用を許可する命令でプログラミングされてもよい。加えて、ハッキング不可能な態様でＳＩＭＭカード上に識別情報を乗せるといったように、安全なアプリケーションが追加情報とともにＳＩＭＭカードを介して提供されてもよい。
【００７３】
メモリはたとえば、以下に説明されるようなフラッシュメモリおよび／またはＮＶＲＡＭメモリを含んでいてもよい。一実装例では、コンピュータプログラムプロダクトが情報担体において有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような１つ以上の方法を実行する命令を含む。情報担体は、メモリ３６４、拡張メモリ３７４、またはプロセッサ３５２上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体であり、たとえばトランシーバ３６８または外部インターフェイス３６２を通して受信されてもよい。
【００７４】
デバイス３５０は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス３６６を介して無線通信してもよい。通信インターフェイス３６６は、とりわけ、ＧＳＭ（登録商標）音声通話、ＳＭＳ、ＥＭＳ、またはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、またはＧＰＲＳといった、さまざまなモードまたはプロトコル下での通信を提供してもよい。そのような通信は、たとえば無線周波数トランシーバ３６８を介して生じてもよい。加えて、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ(登録商標）、または他のそのようなトランシーバ（図示せず）等を使用して、短距離通信が生じてもよい。加えて、ＧＰＳ（Global Positioning System：全地球測位システム）レシーバモジュール３７０が、追加のナビゲーション関連および位置関連無線データをデバイス３５０に提供してもよく、当該データは、デバイス３５０上で実行されるアプリケーションによって適宜使用されてもよい。
【００７５】
デバイス３５０はまた、ユーザから口頭情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック３６０を使用して、音声通信してもよい。音声コーデック３６０はまた、たとえばデバイス３５０のハンドセットにおいて、スピーカを介すなどして、ユーザに聞こえる音を生成してもよい。そのような音は、音声電話通話の音を含んでいてもよく、録音された音（たとえば、音声メッセージ、音楽ファイル等）を含んでいてもよく、デバイス３５０上で動作するアプリケーションが生成する音も含んでいてもよい。
【００７６】
コンピューティングデバイス３５０は、図に示すように多くの異なる形態で実現し得る。たとえばそれは、携帯電話３８０として実現されてもよい。それはまた、スマートフォン３８２、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【００７７】
加えて、コンピューティングデバイス３００または３５０は、ユニバーサルシリアルバス（Universal Serial Bus：ＵＳＢ）フラッシュドライブを含み得る。ＵＳＢフラッシュドライブは、オペレーティングシステムおよびその他のアプリケーションを格納し得る。ＵＳＢフラッシュドライブは、別のコンピューティングデバイスのＵＳＢポートに挿入し得るＵＳＢコネクタまたは無線送信機等の入出力コンポーネントを含み得る。
【００７８】
本明細書に記載のシステムおよび手法のさまざまな実装例は、デジタル電子回路、集積回路、特別に設計されたＡＳＩＣ（application specific integrated circuit：特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組合わせで実現することができる。これらのさまざまな実装例は、少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムにおける実装例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信するとともに、これらにデータおよび命令を送信するように結合されてもよい。
【００７９】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）は、プログラマブルプロセッサのための機械命令を含み、高レベル手続き型および／またはオブジェクト指向プログラミング言語で、および／またはアセンブリ／機械言語で実現することができる。本明細書で使用する、「機械読取可能媒体」、「コンピュータ読取可能媒体」という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、装置および／またはデバイス（たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（Programmable Logic Device：ＰＬＤ））を指し、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００８０】
ユーザとのインタラクションを提供するために、本明細書に記載のシステムおよび手法は、情報をユーザに表示するためのディスプレイデバイス（たとえば、ＣＲＴ（cathode ray tube：陰極線管）またはＬＣＤ（liquid crystal display：液晶ディスプレイ）モニタ）と、ユーザが入力をコンピュータに提供できるようにするキーボードおよびポインティングデバイス（たとえば、マウスまたはトラックボール）とを有するコンピュータ上で実現することができる。他の種類のデバイスを使用してユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信されてもよい。
【００８１】
本明細書に記載のシステムおよび手法は、（たとえばデータサーバとしての）バックエンドコンポーネントを含む、またはミドルウェアコンポーネント（たとえばアプリケーションサーバ）を含む、またはフロントエンドコンポーネント（たとえば、ユーザが本明細書に記載のシステムおよび手法の実装例とやりとりできるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ）を含む、もしくは、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合わせを含む、コンピューティングシステムにおいて実現することができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信（たとえば通信ネットワーク）によって相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク（local area network：ＬＡＮ）、ワイドエリアネットワーク（wide area network：ＷＡＮ）、ピアツーピアネットワーク（アドホックまたは静的メンバを有する）、グリッドコンピューティングインフラストラクチャ、およびインターネットを含む。
【００８２】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介してやりとりする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
【００８３】
ここまでいくつかの実装例を詳細に説明してきたが、その他の修正形態が可能である。また、本明細書に記載のシステムおよび方法を実施するためのその他の機構を使用することもできる。加えて、図面に示されている論理フローは、所望の結果を得るために、示されている通りの順序または一連の順序である必要はない。記載されているフローにその他のステップを設けるまたは記載されているフローからいくつかのステップを削除する場合もあり、記載されているシステムにその他のコンポーネントを追加するまたは記載されているシステムからコンポーネントを削除する場合もある。したがって、その他の実装例は、以下の特許請求の範囲に含まれる。
【図１】
2019502275.tif 000005
【図２Ａ】
2019502275.tif 000006
【図２Ｂ】
2019502275.tif 000007
【図３】
2019502275.tif 000008
【手続補正書】
【提出日】平成30年4月18日(2018.4.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
コンピューティングシステムが、カメラによって取込まれた映像の第１フレームおよび第２フレームを受信するステップと、
前記コンピューティングシステムが、前記映像の前記第１フレームおよび前記第２フレームを用いて、前記映像によって取込まれたシーンに対する、前記第１フレームが取込まれた時点から前記第２フレームが取込まれた時点までの前記カメラの移動を示す数学的変換を特定するステップと、
前記コンピューティングシステムが、最近始まった移動に対する前記数学的変換の代表性が低くなるように、前記数学的変換を修正することにより、修正された数学的変換を生成するステップと、
前記コンピューティングシステムが、前記数学的変換と前記修正された数学的変換とを用いて、前記第２フレームに適用されて前記第２フレームを安定化することができる第２の数学的変換を生成するステップと、
前記コンピューティングシステムが、前記第２の数学的変換を前記第２フレームに適用した結果得られる、安定化された前記第２フレームに存在する、予測される歪みを、
（ｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる水平方向の歪み量と、
（ｉｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる鉛直方向の歪み量との差に基づいて、
特定するステップと、
前記コンピューティングシステムが、前記第２フレームに先行する前記映像の複数のフレームにおける歪みから算出された歪みの許容可能な変化を、前記予測される歪みが超過する程度に基づいて、前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定するステップと、
前記コンピューティングシステムが、前記第２の数学的変換を前記第２フレームに適用することにより、前記安定化された前記第２フレームを生成するステップとを含み、前記第２の数学的変換を前記第２フレームに適用することによる安定化効果は、前記決定した安定化効果の低減量に基づいて低減されている、コンピュータにより実現される方法。
【請求項２】
前記第２フレームは、前記映像の前記第１フレームの直後の前記映像のフレームである、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１または２に記載のコンピュータにより実現される方法。
【請求項４】
前記数学的変換を修正することは、ローパスフィルタを前記ホモグラフィ変換行列に適用することを含む、請求項３に記載のコンピュータにより実現される方法。
【請求項５】
前記予測される歪みは、前記第２の数学的変換における水平ズーム値と前記第２の数学的変換における鉛直ズーム値との差に基づく、請求項３または４に記載のコンピュータにより実現される方法。
【請求項６】
前記数学的変換を修正することは、前記数学的変換を修正して、前記修正された数学的変換が、前記数学的変換よりも、長期にわたって発生した移動に対する代表性が高くなるようにすることを含む、請求項１から５のいずれか１項に記載のコンピュータにより実現される方法。
【請求項７】
前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定するステップは、前記第２フレームに先行する前記映像の複数のフレーム間の前記カメラの移動の速度に基づいて算出された、前記カメラの移動速度の許容可能な変化を超える、前記第１フレームから前記第２フレームまでの前記カメラの決定した移動速度に、さらに基づく、請求項１から６のいずれか１項に記載のコンピュータにより実現される方法。
【請求項８】
前記安定化された前記第２フレームを生成するステップは、前記第２の数学的変換を前記第２フレームに適用することによって生成された前記第２フレームのバージョンをズームインするステップを含む、請求項１から７のいずれか１項に記載のコンピュータにより実現される方法。
【請求項９】
前記第２フレームの前記バージョンのズームイン領域を、水平方向または鉛直方向にシフトすることにより、前記第２フレームの前記ズームイン領域が無効領域を提示しないようにするステップをさらに含む、請求項８に記載のコンピュータにより実現される方法。
【請求項１０】
コンピューティングシステムであって、
カメラによって取込まれた映像の第１フレームおよび第２フレームを受信する手段と、
前記映像の前記第１フレームおよび前記第２フレームを用いて、前記映像によって取込まれたシーンに対する、前記第１フレームが取込まれた時点から前記第２フレームが取込まれた時点までの前記カメラの移動を示す数学的変換を特定する手段と、
最近始まった移動に対する前記数学的変換の代表性が低くなるように、前記数学的変換を修正することにより、修正された数学的変換を生成する手段と、
前記数学的変換と前記修正された数学的変換とを用いて、前記第２フレームに適用されて前記第２フレームを安定化することができる第２の数学的変換を生成する手段と、
前記第２の数学的変換を前記第２フレームに適用した結果得られる、安定化された前記第２フレームに存在する、予測される歪みを、
（ｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる水平方向の歪み量と、
（ｉｉ）前記第２の数学的変換を前記第２フレームに適用した結果生じる鉛直方向の歪み量との差に基づいて、
特定する手段と、
前記第２フレームに先行する前記映像の複数のフレームにおける歪みから算出された歪みの許容可能な変化を、前記予測される歪みが超過する程度に基づいて、前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定する手段と、
前記第２の数学的変換を前記第２フレームに適用することにより、前記安定化された前記第２フレームを生成する手段とを含み、前記第２の数学的変換を前記第２フレームに適用することによる安定化効果は、前記決定した安定化効果の低減量に基づいて低減されている、コンピューティングシステム。
【請求項１１】
前記第２フレームは、前記映像の前記第１フレームの直後の前記映像のフレームである、請求項１０に記載のコンピューティングシステム。
【請求項１２】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１０または１１に記載のコンピューティングシステム。
【請求項１３】
前記数学的変換を修正することは、ローパスフィルタを前記ホモグラフィ変換行列に適用することを含む、請求項１２に記載のコンピューティングシステム。
【請求項１４】
前記予測される歪みは、前記第２の数学的変換における水平ズーム値と前記第２の数学的変換における鉛直ズーム値との差に基づく、請求項１２または１３に記載のコンピューティングシステム。
【請求項１５】
前記数学的変換を修正する手段は、前記数学的変換を修正して、前記修正された数学的変換が、前記数学的変換よりも、長期にわたって発生した移動に対する代表性が高くなるようにする手段を含む、請求項１０から１４のいずれか１項に記載のコンピューティングシステム。
【請求項１６】
前記第２の数学的変換を前記第２フレームに適用した結果得られる安定化効果の低減量を決定する手段は、前記第２フレームに先行する前記映像の複数のフレーム間の前記カメラの移動の速度に基づいて算出された、前記カメラの移動速度の許容可能な変化を超える、前記第１フレームから前記第２フレームまでの前記カメラの決定した移動速度に、さらに基づく、請求項１０から１５のいずれか１項に記載のコンピューティングシステム。
【請求項１７】
前記安定化された前記第２フレームを生成する手段は、前記第２の数学的変換を前記第２フレームに適用することによって生成された前記第２フレームのバージョンをズームインする手段を含む、請求項１０から１６のいずれか１項に記載のコンピューティングシステム。
【請求項１８】
前記動作は、前記第２フレームの前記バージョンのズームイン領域を、水平方向または鉛直方向にシフトすることにより、前記第２フレームの前記ズームイン領域が無効領域を提示しないようにする手段をさらに含む、請求項１７に記載のコンピューティングシステム。
【請求項１９】
請求項１から９のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【国際調査報告】
2019502275.tif 000009
2019502275.tif 000010
2019502275.tif 000011