(57)【要約】  手ぶれ補正のために映像を処理するための方法およびシステムが説明される。記録された映像は、映像に取り込まれたぶれの少なくとも一部を取り除くことによって手ぶれ補正される可能性がある。映像を記録するために使用されたカメラの元のカメラ経路が、決定され得る。クロップウィンドウのサイズが選択される可能性があり、それに応じてクロップウィンドウの変換が決定される可能性がある。クロップウィンドウの変換は、元のカメラ経路の、元のカメラ経路よりも滑らかな修正されたカメラ経路への変換を示す可能性がある。修正された経路の滑らかさの度合いを示す滑らかさの尺度が、決定され得る。滑らかさの尺度を所定のしきい値と比較することに基づいて、例えば、クロップウィンドウの変換が、手ぶれ補正された修正された映像を得るために元の映像に適用され得る。
2015505447.tif 000002
【特許請求の範囲】
【請求項１】
映像を記録したカメラの元の移動経路の推定値を決定するステップと、
前記映像のビデオフレームのサイズ未満のクロップウィンドウのサイズを選択するステップと、
前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定するステップであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、ステップと、
前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定するステップと、
前記滑らかさの尺度の所定のしきい値との比較に基づいて、前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供するステップとを含む方法。
【請求項２】
より小さなクロップウィンドウのサイズを選択するステップと、
前記より小さなクロップウィンドウのサイズに対応するそれぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定するステップと、
前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定するステップと、
所与の所定のしきい値の前記変化との比較に基づいて、前記映像に前記クロップウィンドウの変換を適用し、前記修正された映像を提供するステップとをさらに含む請求項1に記載の方法。
【請求項３】
前記滑らかさの尺度の前記所定のしきい値との比較が、前記修正された移動カメラ経路の絶対的な滑らかさの度合いの指標を提供し、前記所与の所定のしきい値の前記変化との比較が、前記それぞれの修正された移動カメラ経路に対する前記修正された移動カメラ経路の相対的な滑らかさの度合いの指標を提供する請求項2に記載の方法。
【請求項４】
連続的なより小さなクロップウィンドウのサイズを使用して連続的な滑らかさの尺度を繰り返し決定するステップと、
2つの連続するクロップウィンドウのサイズに対応する2つの連続する滑らかさの尺度の間のそれぞれの値の変化との前記所与の所定のしきい値の比較に基づいて、前記2つの連続するクロップウィンドウのサイズのうちの大きい方のクロップウィンドウのサイズに対応する所与のクロップウィンドウの変換を前記映像に適用し、前記修正された映像を提供するステップとをさらに含む請求項2に記載の方法。
【請求項５】
前記映像を2つ以上の映像セグメントに分割するステップと、
各映像セグメントに関して、
前記映像セグメントを記録した前記カメラのそれぞれの元の移動経路を推定するステップと、
それぞれのクロップウィンドウのサイズを選択するステップと、
前記カメラの前記それぞれの元の移動経路をそれぞれの修正された移動カメラ経路に変換するためのそれぞれのクロップウィンドウの変換を決定するステップであって、前記それぞれのクロップウィンドウの変換に関連するそれぞれのクロップウィンドウが前記それぞれのクロップウィンドウのサイズに制限される、ステップと、
前記それぞれの修正された移動カメラ経路のそれぞれの滑らかさの度合いを示すそれぞれの滑らかさの尺度を決定するステップと、
前記それぞれの滑らかさの尺度の前記所定のしきい値との比較に基づいて、前記映像セグメントに前記それぞれのクロップウィンドウの変換を適用し、前記それぞれの修正された移動カメラ経路のそれぞれの視点からのそれぞれの修正された映像セグメントを提供するステップとをさらに含む請求項1に記載の方法。
【請求項６】
各映像セグメントに関して、
所与のより小さなクロップウィンドウのサイズを選択するステップと、
前記所与のより小さなクロップウィンドウのサイズに対応する所与のクロップウィンドウの変換および所与の滑らかさの尺度を決定するステップと、
前記それぞれの滑らかさの尺度と前記所与の滑らかさの尺度との間の値の所与の変化を判定するステップと、
所与の所定のしきい値の前記所与の変化との比較に基づいて、前記映像セグメントに前記それぞれのクロップウィンドウの変換を適用し、前記それぞれの修正された映像セグメントを提供するステップとをさらに含む請求項5に記載の方法。
【請求項７】
前記映像を2つ以上の映像セグメントに分割するステップが、第1の映像セグメントの終わりの部分が前記第1の映像セグメントに続く第2の映像セグメントの初めの部分に重なるように前記映像を分割するステップを含む請求項5に記載の方法。
【請求項８】
前記第1の映像セグメントに関する第1の修正された移動カメラ経路P1を決定するステップと、
前記第2の映像セグメントに関する第2の修正された移動カメラ経路P2を決定するステップと
をさらに含み、
前記第1の映像セグメントの前記終わりの部分に重なっている前記第2の映像セグメントの前記初めの部分においてP2 = P1・Sであり、Sが一様な縮尺
【数１】
2015505447.tif 000020
の拡大縮小変換であり、c1が前記第1の映像セグメントに関して選択された第1のそれぞれのクロップウィンドウのサイズであり、c2が前記第2の映像セグメントに関して選択された第2のそれぞれのクロップウィンドウのサイズである、請求項7に記載の方法。
【請求項９】
前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの前記修正された映像を提供するステップが、前記映像から内容を削除するステップを含む請求項1に記載の方法。
【請求項１０】
前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの前記修正された映像を提供するステップが、前記映像を手ぶれ補正するステップを含む請求項1に記載の方法。
【請求項１１】
コンピューティングデバイスに
映像を記録したカメラの元の移動経路を推定することと、
前記映像のビデオフレームのサイズ未満のクロップウィンドウのサイズを選択することと、
前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定することであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、決定することと、
前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定することと、
前記滑らかさの尺度の所定のしきい値との比較に基づいて、前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供することとを含む機能を実行させるために前記コンピューティングデバイスによって実行可能な命令を記憶する非一時的コンピュータ可読記録媒体。
【請求項１２】
前記命令が、前記コンピューティングデバイスに
より小さなクロップウィンドウのサイズを選択することと、
前記より小さなクロップウィンドウのサイズに対応するそれぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定することと、
前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定することと、
(i)前記それぞれの滑らかさの尺度の前記所定のしきい値との比較に基づいてそれぞれの修正された映像を提供するための前記映像に対する前記それぞれのクロップウィンドウの変換、および
(ii)所与の所定のしきい値の前記変化との比較に基づいて前記修正された映像を提供するための前記映像に対する前記クロップウィンドウの変換
のうちの1つを適用することとを含む機能を実行させるために前記コンピューティングデバイスによってさらに実行可能である請求項11に記載の非一時的コンピュータ可読記録媒体。
【請求項１３】
前記クロップウィンドウの変換がB(t)であり、B(t) = C(t)-1P(t)であり、C(t)が前記元の移動経路であり、P(t)が前記修正された移動カメラ経路である請求項11に記載の非一時的コンピュータ可読記録媒体。
【請求項１４】
前記修正された移動カメラ経路P(t)が、目的関数
【数２】
2015505447.tif 000021
を最小化することによって決定され、a、b、およびcが、前記クロップウィンドウの変換B(t)に関連する前記クロップウィンドウが前記クロップウィンドウのサイズに制限されるような線形重みである請求項13に記載の非一時的コンピュータ可読記録媒体。
【請求項１５】
前記目的関数を最小化することが、L1最小化を実行することを含む請求項14に記載の非一時的コンピュータ可読記録媒体。
【請求項１６】
前記目的関数が
【数３】
2015505447.tif 000022
であり、kがスカラ係数であるように、kフレームおきに前記カメラの前記元の移動経路を時間的にサブサンプリングすることをさらに含む請求項14に記載の非一時的コンピュータ可読記録媒体。
【請求項１７】
映像を受信し、前記映像を記録したカメラの元の移動経路を推定するように構成されたカメラ経路推定モジュールと、
前記カメラ経路推定モジュールと通信すると共に、前記映像のビデオフレームのサイズ未満のクロップウィンドウのサイズを選択し、前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定し、前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定するように構成される映像手ぶれ補正モジュールであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、映像手ぶれ補正モジュールと、
前記カメラ経路推定モジュールおよび前記映像手ぶれ補正モジュールと通信すると共に、前記滑らかさの尺度の所定のしきい値との比較に基づいて、前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供するように構成される映像平行移動モジュールとを含むシステム。
【請求項１８】
前記映像手ぶれ補正モジュールが、より小さなクロップウィンドウのサイズを選択し、それぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定するようにさらに構成され、前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定するようにさらに構成されると共に、
所与の所定のしきい値の前記変化との比較に基づいて、前記映像平行移動モジュールが、前記映像に前記クロップウィンドウの変換を適用し、前記修正された映像を提供するようにさらに構成される請求項17に記載のシステム。
【請求項１９】
前記カメラ経路推定モジュール、前記映像手ぶれ補正モジュール、および前記映像平行移動モジュールを含むサーバをさらに含む請求項17に記載のシステム。
【請求項２０】
前記サーバが、
前記映像を受信し、
前記映像を手ぶれ補正することを要求する単一のアクションによる単一のコマンドを受信し、
修正された手ぶれ補正された映像をビデオホスティングウェブサイトにアップロードするように構成される請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2012年1月16日に出願した、「Methods and Systems for Processing a Video for Stabilization Using Dynamic Crop」と題した米国特許出願第13/351,037号の優先権を主張するものであり、この特許出願は、本明細書にすべて記載されているかのように参照により本明細書に組み込まれる。
【背景技術】
【０００２】
映像手ぶれ補正技法が、記録された映像を向上させるために使用される可能性がある。ビデオカメラを用いると、カメラのぶれが、記録された映像においてフレーム間の目に見える揺れ(jitter)を引き起こす可能性がある。例えば、手持ちで記録された映像は、記録中にカメラを保持する操作者の動きが原因で、三脚に取り付けられたカメラ(またはカメラドリーもしくはステディカムなどのその他の手ぶれ補正機器)を用いて記録された映像よりも目に見えてぶれが大きい可能性がある。しかし、手持ちでの映像記録を用いて映像を記録することは、より多くの撮影の機会を与え得る。
【０００３】
映像手ぶれ補正技法が、無造作に撮影された映像(例えば、手ぶれ補正機器をほとんどまたはまったく備えていないデバイスで記録された映像)の安定したバージョンを生成するために使用される可能性がある。映像手ぶれ補正技法は、概して、まるで映像が滑らかなまたは安定したカメラ経路から記録されたであろうように記録された映像をレンダリングしようと試みる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本出願は、動的なクロップを用いて手ぶれ補正のために映像を処理するための方法およびシステムを開示する。一態様において、方法が説明される。方法は、映像を記録したカメラの元の移動経路を推定するステップを含む可能性がある。方法は、映像のビデオフレームのサイズ未満のクロップウィンドウ(crop window)のサイズを選択するステップも含む可能性がある。方法は、カメラの元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定するステップをさらに含む可能性がある。クロップウィンドウの変換に関連するクロップウィンドウは、クロップウィンドウのサイズに制限される可能性がある。方法は、修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定するステップも含む可能性がある。方法は、滑らかさの尺度の所定のしきい値との比較に基づいて、映像にクロップウィンドウの変換を適用し、修正された移動カメラ経路の視点からの修正された映像を提供するステップをさらに含む可能性がある。
【０００５】
別の態様においては、コンピューティングデバイスに機能を実行させるためにコンピューティングデバイスによって実行可能な命令を記憶する非一時的コンピュータ可読媒体が説明される。機能は、映像を記録したカメラの元の移動経路を含む可能性がある。機能は、映像のビデオフレームのサイズ未満のクロップウィンドウのサイズを選択することも含む可能性がある。機能は、カメラの元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定することをさらに含む可能性がある。クロップウィンドウの変換に関連するクロップウィンドウは、クロップウィンドウのサイズに制限される可能性がある。機能は、修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定することも含む可能性がある。機能は、滑らかさの尺度の所定のしきい値との比較に基づいて、映像にクロップウィンドウの変換を適用し、修正された移動カメラ経路の視点からの修正された映像を提供することをさらに含む可能性がある。
【０００６】
さらに別の態様において、システムが説明される。システムは、映像を受信し、映像を記録したカメラの元の移動経路を推定するように構成されたカメラ経路推定モジュールを含む可能性がある。システムは、カメラ経路推定モジュールと通信すると共に、映像のビデオフレームのサイズ未満のクロップウィンドウのサイズを選択し、カメラの元の移動経路を修正された移動カメラ経路に変換するクロップウィンドウの変換を決定するように構成される可能性がある、映像手ぶれ補正モジュールも含む可能性がある。クロップウィンドウの変換に関連するクロップウィンドウは、クロップウィンドウのサイズに制限される可能性がある。映像手ぶれ補正モジュールは、修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定するようにさらに構成される可能性がある。システムは、カメラ経路推定モジュールおよび映像手ぶれ補正モジュールと通信すると共に、滑らかさの尺度の所定のしきい値との比較に基づいて、映像にクロップウィンドウの変換を適用し、修正された移動カメラ経路の視点からの修正された映像を提供するように構成される可能性がある、映像平行移動モジュールをさらに含む可能性がある。
【０００７】
以上の概要は、例示であるに過ぎず、限定することはまったく意図されていない。上述の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な説明を参照することによって明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】例示的な最適なクロップおよび映像手ぶれ補正システムのブロック図である。
【図２】例示的な最適な動的クロップおよび映像手ぶれ補正システムを含むビデオホスティングサービスの例示的なシステムの図を示すブロック図である。
【図３Ａ】本明細書において説明される少なくとも一部の実施形態による、映像手ぶれ補正のために最適なクロップを使用して映像を処理するための方法の例示的な流れ図である。
【図３Ｂ】本明細書において説明される少なくとも一部の実施形態による、映像手ぶれ補正のために最適なクロップを使用して映像を処理するための方法の例示的な流れ図である。
【図４】最適なカメラ経路および元のカメラ経路の例示的なグラフである。
【図５】例示的なビデオフレームおよび例示的なクロップウィンドウを示す図である。
【図６Ａ】クロップウィンドウのサイズに対する目的関数の値の変化を示す例示的なグラフである。
【図６Ｂ】クロップウィンドウのサイズに対する目的関数の値の変化を示す例示的なグラフである。
【図７Ａ】映像内の複数の映像セグメントに関するクロップウィンドウのサイズに対する目的関数の値の変化を示す例示的なグラフである。
【図７Ｂ】映像内の複数の映像セグメントに関するクロップウィンドウのサイズに対する目的関数の値の変化を示す例示的なグラフである。
【図８Ａ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｂ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｃ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｄ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｅ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｆ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｇ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図８Ｈ】異なる映像セグメントからの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す図である。
【図９】本明細書において説明される少なくとも一部の実施形態にしたがって構成されるコンピューティングシステムで使用される例示的なコンピューティングデバイスを示す機能ブロック図である。
【図１０】本明細書において示される少なくとも一部の実施形態にしたがって構成された、コンピューティングデバイスでコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラム製品の概念的で部分的な図を示す概略図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明は、添付の図面を参照して、開示されるシステムおよび方法のさまざまな特徴および機能を説明する。図面においては、同様の符号は、文脈がそうでないことを示さない限り、同様の構成要素を特定する。本明細書において説明される例示的なシステムおよび方法の実施形態は、限定的であるように意図されていない。開示されるシステムおよび方法の特定の態様は、多種多様な異なる構成になされ、組み合わされる可能性があり、それらの構成のすべては本明細書で企図されていることは容易に理解されるであろう。
【００１０】
本開示は、映像を手ぶれ補正する(stabilize)ためのシステムおよび方法を開示する可能性がある。記録された映像は、映像に取り込まれたぶれの少なくとも一部を取り除くことによって手ぶれ補正される可能性がある。映像を記録するために使用されたカメラの元のカメラ経路が、決定され得る。クロップウィンドウのサイズが選択される可能性があり、それに応じてクロップウィンドウの変換が決定される可能性がある。クロップウィンドウの変換は、元のカメラ経路の、元のカメラ経路よりも滑らかな修正されたカメラ経路への変換を示す可能性がある。修正された経路の滑らかさの度合いを示す滑らかさの尺度が、決定され得る。滑らかさの尺度を所定のしきい値と比較することに基づいて、例えば、クロップウィンドウの変換が、手ぶれ補正された修正された映像を得るために、元の映像に適用され得る。
【００１１】
一例において、映像は、後処理技法を実行することによって手ぶれ補正され得る。映像は、映像を記録したカメラの元の経路(例えば、移動)を推定し、新しい安定した/滑らかなカメラ経路を推定し、新しい滑らかなカメラ経路の視点から映像を作り直すために処理され得る。安定したまたは滑らかなカメラ経路は、例えば、手持ちのパンショットまたは歩いている人によって記録された映像の間に起こる高周波の揺れを抑制し、低周波の歪みを取り除くことができる。
【００１２】
一例においては、新しいカメラ経路を推定するために、新しい経路を得るために元の経路に適用され得るクロップウィンドウの変換が決定され得る。クロップウィンドウの変換に関連するクロップウィンドウのサイズは、元のフレームのサイズのサイズ未満であるように制限される可能性がある。最適なクロップウィンドウのサイズを決定するために、反復的な方法が使用される可能性があり、反復的な方法の目的は、できる限り最小限の量の内容を削除またはクロップしながら、滑らかなカメラ経路を決定することである可能性がある。
【００１３】
新しい経路の滑らかさの度合いを示す滑らかさの尺度が、決定され得る。クロップウィンドウのサイズが最適である可能性があるか否かは、滑らかさの尺度を所定のしきい値と比較することに基づいて決定され得る。例えば、滑らかさの尺度が第1の所定のしきい値を超える場合、クロップウィンドウのサイズは最適である可能性があり、クロップウィンドウの変換が、新しい滑らかなカメラ経路の視点からの修正された映像を得るために、映像に適用され得る。滑らかさの尺度が第1の所定のしきい値を超えない場合、より小さなクロップウィンドウのサイズが選択される可能性があり、それぞれの滑らかさの尺度が、それぞれの新しいカメラ経路に対して決定される可能性がある。反復して、例えば、第1の所定のしきい値が所与のクロップウィンドウのサイズに対応する与えられた滑らかさの尺度によって超えられる可能性があるまで、連続的により小さなクロップウィンドウのサイズが選択される可能性があり、連続的な滑らかさの尺度が決定される可能性がある。別の例においては、連続的により小さなクロップウィンドウのサイズによる反復が継続する可能性があり、2つのそれぞれのクロップウィンドウのサイズに関連する2つの連続する滑らかさの尺度の間の値の差が、より小さなクロップウィンドウのサイズがそれぞれのカメラ経路の滑らかさを改善し得るか否かを判定するために、第2の所定のしきい値と比較される可能性がある。
【００１４】
反復的な方法の結果として、最適なクロップウィンドウのサイズおよび対応するクロップウィンドウの変換が、決定される可能性があると共に、例えば、記録された映像からぶれを取り除くのに、まるで映像が滑らかなカメラ経路から記録されたかのように記録された映像を作り直すために記録された映像に適用される可能性がある。
【００１５】
ここで図面を参照すると、図1は、例示的な最適な動的クロップおよび映像手ぶれ補正システム100のブロック図を示す。システム100は、カメラ経路推定モジュール102と、カメラ経路推定モジュール102と通信する映像手ぶれ補正モジュール104と、カメラ経路推定モジュール102および映像手ぶれ補正モジュール104と通信する映像平行移動モジュール106とを含む。システム100は、カメラ108から映像を受信し、映像に対して映像手ぶれ補正プロセスを実行するように構成され得る。例えば、カメラ経路推定モジュール102は、受信された映像内の背景物の動きに基づいて、映像を記録したカメラの経路を推定するように構成され得る。そして、映像手ぶれ補正モジュール104は、新しい安定した/滑らかなカメラ経路を推定するように構成される可能性があり、映像平行移動モジュール106は、映像手ぶれ補正モジュール104によって決定された滑らかなカメラ経路の視点から受信された映像を作り直すように構成される可能性がある。システム100の構成要素は、互いにおよび/またはそれぞれのシステムに結合されたその他の構成要素と相互接続されるようにして機能するように構成される可能性がある。
【００１６】
一例においては、カメラ経路推定モジュール102は、受信された映像内の背景物またはフレームの動きに基づいて映像を記録したカメラの経路を推定するように構成され得る。カメラ経路は、映像のフレーム内の追跡可能な特徴を抽出し、特徴をマッチングし、局所外れ値除去を実行して、動きの推定を歪曲する可能性がある誤った一致を削除することによって推定され得る。線形動きモデル(motion model)(例えば、平行移動、相似、アフィン(affine))が、2つのフレームの間のカメラの動き(移動)を推定するために、追跡される特徴に当てはまる可能性があり、動きモデルは、共通の座標系へと変換され、映像のすべてのフレームにわたって、推定された元のカメラ経路を生成するために、つなぎ合わされる可能性がある。
【００１７】
映像手ぶれ補正104は、制約に基づいて新しい安定した/滑らかなカメラ経路を推定するように構成され得る。滑らかなカメラ経路は、カメラ経路推定モジュール102によって推定された元のカメラ経路の導関数(derivative)の最小化を使用して推定され得る。例えば、一定の経路は、止まっているカメラを表す可能性があり、つまり、
【００１８】
【数１】
2015505447.tif 000003
【００１９】
(ここで、Pは、カメラ経路を表す関数である)であり、一定速度の経路は、パンまたはドリーショットを表す可能性があり、つまり、
【００２０】
【数２】
2015505447.tif 000004
【００２１】
であり、一定加速度の経路は、止まっているカメラとパンするカメラとの間の緩やかに始まる遷移および緩やかに終わる遷移を表す、
【００２２】
【数３】
2015505447.tif 000005
【００２３】
である可能性がある。推定された滑らかなカメラ経路は、一定の、直線的な、または放物線状の動き(移動)のセグメントを含む可能性がある。セグメントは、残留する動き(residual motion)を避けるために、セグメントの重ね合わせではなく、静的なセグメントである可能性がある。
【００２４】
一例においては、一定の、直線的な、および放物線状の動きのセグメントを含むカメラ経路P(t)を推定するために、最適化が、制約付きのL1最小化(L1 minimization)として実行される可能性がある。例えば、オーダー(order)pのN次元ベクトルのノルムが、そのベクトルの成分の絶対値のp乗を総和し、その後、結果のp乗根をとった
【００２５】
【数４】
2015505447.tif 000006
【００２６】
として定義される。L1/L2ノルム計算が、この標準を使用して実行される可能性がある。L1最小化は、多くのセグメントに関して(上述の)導関数が0である経路をもたらす可能性がある。L1カメラ経路(L1 camera path)は、止まっているカメラ、直線的な動き、および一定加速度に類似するセグメントを含む可能性がある。別の例においては、L2最小化(L2 minimization)が、上記の導関数を平均して最小化して小さいがおそらくは非ゼロの傾きをもたらすために使用される可能性がある(例えば、これは、何らかの小さな非ゼロの動きを有するL2カメラ経路(L2 camera path)をもたらす可能性がある)。
【００２７】
加えて、制約を満たしながら上記の導関数を最小化するカメラ経路P(t)が決定される可能性がある。包含(inclusion)、接近(proximity)、および顕著性(saliency)の制約などのさまざまな制約が、使用され得る。制約の例として、元のカメラ経路を修正されたカメラ経路に変換することができる所与のクロップウィンドウの変換に関連するクロップウィンドウが、所与のサイズに制限される可能性がある。
【００２８】
映像手ぶれ補正モジュール104は、反復的な方法を使用して最適なクロップウィンドウのサイズを決定するように構成され得る。反復的な方法の目的は、できる限り最小限の内容を削除またはクロップしながら滑らかなカメラ経路を決定することである可能性がある。
【００２９】
反復的な方法で、映像手ぶれ補正モジュール104は、クロップウィンドウのサイズを選択し、元の経路を修正された経路に変換する対応するクロップウィンドウの変換を決定するように構成され得る。映像手ぶれ補正モジュール104は、修正された経路の滑らかさの度合いを示す滑らかさの尺度を決定し、滑らかさの尺度を第1の所定のしきい値と比較して、選択されたクロップウィンドウのサイズが最適である可能性があるか否かを判定するように構成され得る。一例においては、滑らかさの尺度が第1の所定のしきい値を超える場合、クロップウィンドウのサイズは最適であると指定され得る。この例においては、滑らかさの尺度が第1の所定のしきい値を超えない場合、より小さなクロップウィンドウのサイズが選択される可能性があり、それぞれの滑らかさの尺度が、それぞれの修正された経路に対して決定される可能性がある。この例においては、映像手ぶれ補正モジュール104は、第1の所与のしきい値が与えられたクロップウィンドウのサイズに対応する所与の滑らかさの尺度によって超えられる可能性があるまで、連続的により小さなクロップウィンドウのサイズを選択し、連続的な滑らかさの尺度を決定するように構成され得る。この例においては、映像手ぶれ補正モジュール104は、さらに、連続的により小さなクロップウィンドウのサイズを使用して反復を続けるように構成され、2つのそれぞれのクロップウィンドウのサイズに関連する2つの連続する滑らかさの尺度の間の値の差を第2の所定のしきい値と比較して、より小さなクロップウィンドウのサイズがそれぞれの修正されたカメラ経路の滑らかさを改善し得るか否かを判定するように構成される可能性がある。差を第2の所定のしきい値と比較することがより小さなクロップウィンドウのサイズが滑らかさを改善し得ることを示す場合、反復が継続する可能性がある。改善し得ない場合、より小さなクロップウィンドウのサイズは、受信された映像からさらに内容をクロップすることを正当化するのに十分なほど滑らかさを改善しない可能性がある。
【００３０】
反復的な方法の結果として、最適なクロップウィンドウのサイズおよび対応する最適なクロップウィンドウの変換が決定され得る。映像平行移動モジュール106は、記録された映像に最適なクロップウィンドウの変換を適用し、例えば記録された映像からぶれを削除するために、まるで映像が滑らかなカメラ経路から記録されたかのように記録された映像を作り直すように構成され得る。
【００３１】
システム100の説明された機能または構成要素のうちの1つまたは複数は、追加の機能的もしくは物理的な構成要素に分割されるか、またはより少ない機能的もしくは物理的な構成要素に組み合わされる可能性がある。一部のさらなる例においては、追加の機能的および/または物理的な構成要素が、図1によって示された例に追加される可能性がある。その上さらに、カメラ経路推定モジュール102、映像手ぶれ補正モジュール104、および/または映像平行移動モジュール106のうちのいずれかが、本明細書において説明される論理的な機能を実装するための1つまたは複数の命令を含むプログラムコードを実行するように構成されたプロセッサ(例えば、マイクロプロセッサ、デジタル信号プロセッサ(DSP)など)を含むか、またはそのようなプロセッサの形態で提供される可能性がある。システム100は、例えば、プログラムコードを記憶するためのディスクまたはハードドライブを含むストレージデバイスなどの任意の種類のコンピュータ可読媒体(非一時的媒体)またはメモリをさらに含み得る。その他の例においては、システム100は、その他のシステムに含まれる可能性がある。
【００３２】
図2は、最適な動的クロップおよび映像手ぶれ補正システム202を含むビデオホスティングサービス200の例示的なシステムの図を示すブロック図である。複数のユーザ/視聴者が、クライアント204A〜Nを使用して、映像をビデオホスティングウェブサイトにアップロードし、要求されたサービスをビデオホスティングサービス200から受けるなど、ビデオホスティングサービス200にビデオホスティング要求を送信することができる。ビデオホスティングサービス200は、ネットワーク206を介して1つまたは複数のクライアント204A〜Nと通信するように構成され得る。ビデオホスティングサービス200は、有線またはワイヤレス(無線)接続を介してクライアント204A〜Nからビデオホスティングサービス要求を受信することができる。
【００３３】
図2に示された個々のエンティティに目を向けると、各クライアント204A〜Nが、ビデオホスティングサービスを要求するためにユーザによって使用される可能性がある。例えば、ユーザは、クライアント204Aを使用して、共有するために映像をアップロードするかまたは映像を再生する要求を送信する可能性がある。クライアント204A〜Nは、パーソナルコンピュータ(例えば、デスクトップ、ノートブック、タブレット、ラップトップ)コンピュータなどの任意の種類のコンピュータデバイス、ならびにモバイル電話、携帯情報端末、またはIPに対応したビデオプレーヤーなどのデバイスである可能性がある。クライアント204A〜Nは、プロセッサ、ディスプレイデバイス(またはディスプレイデバイスへの出力)、およびクライアント204A〜Nがタスクを実行する際にユーザによって使用されるデータを記憶するハードドライブまたはフラッシュメモリデバイスなどのローカルストレージ、およびネットワーク206を介してビデオホスティングサービス200に結合するためのネットワークインターフェースを含み得る。
【００３４】
クライアント204A〜Nは、ビデオストリームを再生するためのビデオプレーヤー208A〜N(例えば、Adobe Systems, Inc.のFlash(商標)プレーヤー、または独自仕様のプレーヤー)を含み得る。ビデオプレーヤー208A〜Nは、スタンドアロンのアプリケーション、またはネットワークもしくはインターネットブラウザなどのその他のアプリケーションに対するプラグインである可能性がある。クライアント204A〜Nが汎用デバイス(例えば、デスクトップコンピュータ、モバイル電話)である場合、プレーヤー208A〜Nは、コンピュータによって実行されるソフトウェアとして実装される可能性がある。クライアント204A〜Nが専用デバイス(例えば、専用ビデオプレーヤー)である場合、プレーヤー208A〜Nは、ハードウェア、またはハードウェアとソフトウェアとの組み合わせで実装される可能性がある。プレーヤー208A〜Nは、ビデオフィードを選択し、ビデオフィードを開始し、停止し、巻き戻すためのユーザインターフェースコントロール(および対応するアプリケーションプログラムインターフェース)を含む可能性がある。また、プレーヤー208A〜Nは、ビデオディスプレイの形式(例えば、標準画質TVまたは高精細度TV)を示すように構成されビデオディスプレイ形式選択をユーザインターフェースに含み得る。その他の種類のユーザインターフェースコントロール(例えば、ボタン、キーボードコントロール)が、プレーヤー208A〜Nの再生およびビデオフォーマット選択機能を制御するためにやはり使用され得る。
【００３５】
ネットワーク206は、クライアント204A〜Nとビデオホスティングサービス200との間の通信を可能にする。一例において、ネットワーク206はインターネットであり、クライアント204A〜Nがビデオホスティングサービス200と通信することを可能にする現在知られているかまたは今後開発される標準化された網間接続通信テクノロジーおよびプロトコルを使用する。別の例においては、ネットワーク206は、クライアント204A〜Nとビデオホスティングサービス200との間のワイヤレス通信を可能にするワイヤレスセルラネットワークである可能性がある。
【００３６】
ビデオホスティングサービス200は、最適な動的クロップおよび映像手ぶれ補正システム202、ビデオサーバ210、収集サーバ(ingest server)212、およびビデオデータベース216を含む。ビデオサーバ210は、ユーザのビデオホスティングサービス要求に応答してビデオデータベース216から映像を提供するように構成され得る。収集サーバ212は、ユーザによってアップロードされた映像を受信し、映像をビデオデータベース216に記憶するように構成され得る。ビデオデータベース216は、ユーザによってアップロードされた映像と、最適な動的クロップおよび映像手ぶれ補正システム202によって処理された映像とを記憶するように構成され得る。一例において、ビデオデータベース216は、大規模な映像コーパスを記憶する。
【００３７】
最適な動的クロップおよび映像手ぶれ補正システム202は、カメラ経路推定モジュール218、映像手ぶれ補正モジュール220、および映像平行移動モジュール222を含み得る。システム202は、収集サーバ212からユーザによってアップロードされた映像を受信し、映像の映像手ぶれ補正を実行するように構成され得る。
【００３８】
ビデオホスティングサービス200は、クライアント204A〜Nのクライアントから映像を受信し、手ぶれ補正された映像を要求するクライアントのユーザの単一のアクションによる単一のコマンドを受信するように構成され得る。単一のコマンドに基づいて、ビデオホスティングサービス200に結合された最適な動的クロップおよび映像手ぶれ補正システム202は、映像を処理して最適なクロップウィンドウのサイズを決定し、それに応じて、対応する最適なカメラ経路の視点から映像を作り直すための最適なクロップウィンドウの変換を決定するように構成され得る。そして、最適なカメラ経路の視点から作り直された手ぶれ補正された修正された映像は、ユーザに提供され得る。別の例において、ユーザは、所与のクロップウィンドウのサイズを手動で選択し、手動で選択された所与のクロップウィンドウのサイズを使用して映像を所与の修正された映像に作り直すようにビデオホスティングサービス200から要求することができる。
【００３９】
図3A〜図3Bは、本明細書において説明される少なくとも一部の実施形態による、映像手ぶれ補正のために最適なクロップを使用して映像を処理するための方法の例示的な流れ図である。図3A〜図3Bに示された方法300は、例えば、システム100および200で使用される可能性があり、デバイス、サーバ、またはデバイスとサーバとの組み合わせによって実行される可能性がある例示的な方法を提示する。
【００４０】
方法300は、ブロック302〜326のうちの1つまたは複数によって示された1つまたは複数の動作、機能、またはアクションを含む可能性がある。ブロックは順番に示されるが、これらのブロックは、場合によっては並列的に、および/または本明細書に記載の順番とは異なる順番で実行される可能性がある。また、さまざまなブロックは、所望の実装に基づいてより少ないブロックへと組み合わされ、追加のブロックに分割され、および/または削除される可能性がある。
【００４１】
加えて、方法300ならびに本明細書で開示されるその他のプロセスおよび方法に関して、流れ図は、本実施形態の1つのあり得る実装の機能および動作を示す。この点に関して、各ブロックは、プロセスの特定の論理的な機能またはステップを実装するためにプロセッサによって実行可能な1つまたは複数の命令を含むプログラムコードのモジュール、セグメント、または一部を表す可能性がある。プログラムコードは、例えば、ディスクまたはハードドライブを含むストレージデバイスなどの任意の種類のコンピュータ可読媒体またはメモリに記憶される可能性がある。コンピュータ可読媒体は、例えば、レジスタメモリ、プロセッサのキャッシュ、およびランダムアクセスメモリ(RAM)のような、データを短期間記憶するコンピュータ可読媒体などの非一時的コンピュータ可読媒体を含む可能性がある。コンピュータ可読媒体は、例えば、読み出し専用メモリ(ROM)、光または磁気ディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)のような2次的なまたは持続的な長期ストレージなどの非一時的媒体またはメモリも含む可能性がある。コンピュータ可読媒体は、任意のその他の揮発性または不揮発性ストレージシステムである可能性もある。コンピュータ可読媒体は、例えば、コンピュータ可読記録媒体、有形のストレージデバイス、またはその他の製品と考えられる可能性がある。
【００４２】
加えて、方法300ならびに本明細書で開示されるその他のプロセスおよび方法に関して、図3の各ブロックは、プロセスの特定の論理的な機能を実行するために配線される回路を表す可能性がある。
【００４３】
ブロック302において、方法300は、記録された映像を受信することを含む。例えば、カメラが、映像を記録した可能性があり、映像が、コンピュータ、ラップトップ、携帯電話などのデバイスまたはサーバにアップロードされ、それらのデバイスまたはサーバで受信された可能性がある。
【００４４】
ブロック304において、方法300は、映像を記録したカメラの元の移動経路を推定することを含む。映像を受信するデバイスまたはサーバに結合されたプロセッサまたはコンピューティングデバイスが、受信された映像内の物体または画像の動きに基づいて、映像を記録したカメラの経路を推定する可能性がある。カメラ経路は、映像のフレーム内の追跡可能な特徴を抽出し、特徴をマッチングし、局所外れ値除去を実行して、動きの推定を歪曲する可能性がある誤った一致を削除することによって推定され得る。線形動きモデル(例えば、平行移動、相似、アフィン)が、2つのフレームの間のカメラの動き(移動)を推定するために追跡される特徴に当てはまる可能性があり、動きモデルは、共通の座標系へと変換され、映像のすべてのフレームにわたって推定された元のカメラ経路を生成するためにつなぎ合わされる可能性がある。当業者は、カメラの元の移動経路を推定するためにその他のアルゴリズムならびに構成またはその他の要素が使用され得ることを理解するであろう。
【００４５】
カメラのぶれは、記録された映像においてフレーム間の目に見える揺れを引き起こす可能性がある。例えば、手持ちで記録された映像は、記録中にカメラを保持する操作者の動き(例えば、操作者は映像を記録しながら車に乗っている可能性がある)が原因で、三脚に取り付けられたカメラを用いて記録された映像よりも目に見えてぶれが大きい可能性がある。図4は、そのようなカメラのぶれを示す例示的な元のカメラ経路402を示す。元のカメラ経路402にしたがって移動するカメラから記録された映像は、手ぶれ補正を必要とする可能性があるぶれた映像の部分を含み得る。
【００４６】
ブロック306において、方法300は、クロップウィンドウのサイズを選択し、カメラの元の移動経路を第1の修正された移動カメラ経路に修正する第1のクロップウィンドウの変換を決定することを含む。映像を手ぶれ補正するために、プロセッサは、滑らかなまたは最適な修正されたカメラ経路を決定するように構成され得る。例えば、滑らかなまたは最適なカメラ経路P(t)は、各時間tに1つだけが存在し得る3つのセグメント、すなわち、止まっているカメラを表す一定の経路、すなわち、
【００４７】
【数５】
2015505447.tif 000007
【００４８】
、パンまたはドリーショットを表す一定速度の経路、すなわち、
【００４９】
【数６】
2015505447.tif 000008
【００５０】
、および止まっているカメラとパンするカメラとの間のゆっくり始まる遷移およびゆっくり終わる遷移を表す一定加速度の経路、すなわち、
【００５１】
【数７】
2015505447.tif 000009
【００５２】
に分けられる可能性がある。2つの異なるセグメントの接続部分は、映像が突然がくりと動くこととして目に付く可能性がある知覚可能な極めて大きな加速度を有する可能性があり、したがって、一定加速度の経路が使用される可能性がある。例えば、連続的な元のカメラ経路の動きC(t)が与えられたとして、所望の滑らかな経路P(t)は、
P(t) = C(t) * B(t)          式(1)
と表される可能性があり、ここで、B(t) = C(t)-1P(t)は、滑らかな経路P(t)の視点からの手ぶれ補正された映像を得るために記録された映像の各ビデオフレームに適用され得るクロップウィンドウの変換と呼ばれる可能性がある。
【００５３】
安定したまたは滑らかなカメラ経路の動きは、制約を課せられたL1最適化を実行することによって推定され得る。例示的な制約は、クロップウィンドウの変換B(t)に関連するクロップウィンドウをブロック306で選択されたクロップウィンドウのサイズ(例えば、所与のビデオフレームのサイズの95%)に制限することを含み得る。最適化は、例えば、B(t)に関連するクロップウィンドウが選択されたクロップウィンドウのサイズに制限されるような線形重み(linear weight)a、b、およびcを有する目的関数
【００５４】
【数８】
2015505447.tif 000010
【００５５】
を最小化することによって安定したカメラ経路P(t)を決定することができる。クロップウィンドウの変換B(t)は、クロップウィンドウの変換B(t)に関連するクロップウィンドウを各ビデオフレームに適用してクロップウィンドウの外側のすべての内容を削除することによって、映像またはビデオフレーム内の空間的内容を削除して映像を手ぶれ補正することができる。式(2)は、例えば、各導関数を0に等しく設定することによって最小化される可能性がある。したがって、導関数は、(例えば、フレーム毎に)カメラ経路に沿った異なる点で定義される可能性があり、導関数は、あらゆる点(あらゆるフレームで)決定される可能性がある。
【００５６】
一例においては、目的関数を最小化し、修正された移動カメラ経路を決定することは、受信された映像のあらゆるフレームをサンプリングし、あらゆるフレームに対して計算を実行することを含む可能性がある。代替的に、おそらく計算効率を向上させるために、受信映像のフレームが、例として、係数kによって時間的にサブサンプリング(subsample)される可能性がある。この例においては、第kのフレームに関する第kの変換が、前のk個の変換の連結によって置き換えられ得る。したがって、時間的なサブサンプリングは、修正された目的関数
【００５７】
【数９】
2015505447.tif 000011
【００５８】
を最小化することを含む可能性がある。等価的に、連鎖律(chain rule)を用いて、式(3)は、
【００５９】
【数１０】
2015505447.tif 000012
【００６０】
と書かれ得る。式(4)は、第iの導関数を乗算される線形重みが、時間的なサブサンプリングを実現するためにkiをさらに乗算される可能性があることを示唆する可能性がある。
【００６１】
再び図4を参照すると、例示的な最適なカメラ経路404が示されている。最適なカメラ経路404は、例えば、元のカメラ経路402に含まれる揺れおよび高周波の動きの一部を削除する可能性がある。
【００６２】
再び図3Aを参照すると、ブロック306において、選択されたクロップウィンドウのサイズに関して、第1のクロップウィンドウの変換および第1の修正された経路が、式(2)または式(4)で表された目的関数O(P)を最小化することによって決定され得る。第1の修正された経路で評価された目的関数は、O(P1)と表される可能性がある。第1の修正された経路が滑らかであるほど、第1の目的関数O(P1)は小さくなる。
【００６３】
ブロック308において、方法300は、第1の修正された移動カメラ経路に関する第1の滑らかさの尺度を決定することを含む。ブロック306で決定された第1の修正された経路に対して、第1の滑らかさの尺度が決定され得る。第1の修正された経路O(P1)で評価された目的関数に対応する第1の滑らかさの尺度は、S(P1)と表される可能性がある。第1の滑らかさの尺度は、例えば、O(P1)の関数である可能性がある。特定の例として、目的関数の値が小さいほど対応する修正された経路は滑らかである可能性があるので、滑らかさの尺度は、対応する修正された経路で評価された目的関数の逆数を含む可能性がある。この特定の例においては、対応する修正された経路で評価された目的関数が小さいほど目的関数の逆数は大きくなり、したがって、滑らかさの尺度は大きくなる。所与の修正された経路の滑らかさの度合いを示す値をもたらす可能性があるその他の関数が、あり得る。
【００６４】
判定ブロック310において、方法300は、第1の修正された経路に関連する第1の滑らかさの尺度が第1の所定のしきい値を超えるかどうかを判定することを含み得る。プロセッサは、ブロック308で決定された第1の滑らかさの尺度S(P1)を第1の所定のしきい値と比較する可能性がある。一例において、第1の所定のしきい値は、第1の修正された経路が一定の経路であることにどれだけ近い可能性があるかを示し得る滑らかさの絶対的なレベルを表す可能性がある。例えば、0に近い目的関数の値O(P1)は、第1の修正された経路が一定の経路であることに近い可能性があることを示し得る。例えば、0に近い(例えば、約0.002未満の)目的関数の値または(例えば、約500を超える)対応する滑らかさの尺度が、第1の所定のしきい値として選択され得る。その他の値が選択される可能性がある。その他の例においては、目的関数の値は、滑らかさの指標として選択される可能性があり、方法300は、ブロック310において、滑らかさの指標としての目的関数の値が所与のしきい値未満である可能性があるか否かを判定することを含む可能性がある。第1の所定のしきい値を超えることが、単に例示のために方法300のブロック310を説明する際に使用される。概して、滑らかさの尺度は、第1の修正された経路が一定の経路にどれだけ近い可能性があるかを判定するために所与のしきい値と比較され得る。
【００６５】
ブロック312において、方法300は、記録された映像に第1のクロップウィンドウの変換を適用することを含む。例えば、第1の滑らかさの尺度が第1の所定のしきい値より勝る(例えば、第1の滑らかさの尺度S(P1)が第1の所定のしきい値を超えるか、または代替的に目的関数O(P1)が所与のしきい値未満である)場合、クロップウィンドウのサイズが、最適であると指定される可能性があり、プロセッサは、受信された映像に第1のクロップウィンドウの変換を適用し、第1の修正された経路の視点からの修正された(滑らかな)映像を提供することができる。第1のクロップウィンドウの変換B(t)に関連する（と共に、選択されて最適であると判定されたクロップウィンドウのサイズに制限された）クロップウィンドウが、フレーム内の空間的な内容を削除し、受信された映像を手ぶれ補正するために、受信された映像のフレームに適用される可能性がある。
【００６６】
図5は、例示的なビデオフレームおよび例示的なクロップウィンドウを示す。長方形のフレーム502は、元のビデオフレームである可能性があり、クロップウィンドウ504は、（第1のクロップウィンドウの変換B(t)によって変換された、）変換されたクロップウィンドウである可能性があり、選択されて最適であると判定されたクロップウィンドウのサイズに制限される可能性がある。図5においては、例として、クロップウィンドウ504が、第1のクロップウィンドウの変換B(t)によってz軸に対して回転されるものとして示される。クロップウィンドウの変換B(t)によって変換されたクロップウィンドウの4つの角506A〜Dは、長方形のフレーム502内に常駐することが示されている。
【００６７】
ここで図3Bを参照すると、ブロック314において、方法300は、より小さなクロップウィンドウのサイズ(例えば、90%)を選択することを含む。一例において、第1の所定のしきい値を超えることは、ブロック306で選択されたクロップウィンドウのサイズでは不可能である可能性があり、第2のより小さなクロップウィンドウのサイズが、受信された映像のフレームからより多くの内容を削除して受信された映像を手ぶれ補正するために選択される可能性がある。
【００６８】
ブロック316において、方法300は、カメラの元の移動経路を第2の修正された移動カメラ経路に修正する第2のクロップウィンドウの変換を決定することを含む。プロセッサは、選択されたより小さなクロップウィンドウのサイズに対応する第2のクロップウィンドウの変換を決定することができる。第2のクロップウィンドウの変換は、カメラの元の移動経路を第2の修正された移動カメラ経路に修正することができる。
【００６９】
ブロック318において、方法300は、第2の修正された移動カメラ経路に関する第2の滑らかさの尺度を決定することを含む。プロセッサは、第2の修正された移動カメラ経路に対応する第2の滑らかさの尺度S(P2)を決定することができる。第2の滑らかさの尺度S(P2)は、第2の修正された移動カメラ経路の滑らかさの度合いを示す可能性があり、第2の修正された移動カメラ経路で評価された目的関数O(P2)の関数を含む可能性がある。
【００７０】
ブロック320において、方法300は、第2の滑らかさの尺度S(P2)が第1の所定のしきい値を超えるかどうかを判定する。ブロック310の説明と同様に、第2の滑らかさの尺度が、滑らかさの絶対的なレベルを表す可能性があり、第2の修正された経路が一定の経路であることにどれだけ近い可能性があるかを示し得る第1の所定のしきい値と比較される可能性がある。
【００７１】
ブロック322において、方法300は、記録された映像に第2のクロップウィンドウの変換を適用することを含む。例えば、第2の滑らかさの尺度が第1の所定のしきい値より勝る(例えば、第2の滑らかさの尺度S(P2)が第1の所定のしきい値を超えるか、または代替的に目的関数O(P2)が所与のしきい値未満である)場合、より小さな(第2の)クロップウィンドウのサイズが、最適であると指定される可能性があり、プロセッサは、受信された映像に第2のクロップウィンドウの変換を適用し、第2の修正された経路の視点からの修正された(滑らかな)映像を提供することができる。
【００７２】
ブロック324において、方法300は、第1の滑らかさの尺度と第2の滑らかさの尺度との間の比が第2の所定のしきい値を超えるかどうかを判定する。第1の滑らかさの尺度と第2の滑らかさの尺度との間の値の変化が、修正された経路およびひいては受信された映像の滑らかさに対する、より小さなクロップウィンドウのサイズを選択することの影響を評価するために判定される可能性がある。一例において、変化は、第1の滑らかさの尺度と第2の滑らかさの尺度との間の値の差を評価することによって判定される可能性がある。別の例においては、第1の滑らかさの尺度と第2の滑らかさの尺度との間の比が、第1の修正された経路と比較した第2の修正された経路の相対的な滑らかさを示すために判定される可能性がある。第1の滑らかさの尺度と第2の滑らかさの尺度との間の比が判定され、相対的な滑らかさのしきい値と呼ばれる可能性がある第2の所定のしきい値rsと比較される可能性がある。第1の滑らかさの尺度と第2の滑らかさの尺度との間の比は、
【００７３】
【数１１】
2015505447.tif 000013
【００７４】
と表される可能性があり、この比は、例えば、滑らかさの尺度が目的関数の値の逆数として決定される場合、第2の目的関数の値と第1の目的関数の値との間の比
【００７５】
【数１２】
2015505447.tif 000014
【００７６】
として同等に表され得る。特定の例として、第2の所定のしきい値rs = 0.8を超える比
【００７７】
【数１３】
2015505447.tif 000015
【００７８】
(つまり、第1の目的関数の値から第2の目的関数の値までの変化が第1の目的関数の値の20%未満である)は、より小さなクロップウィンドウのサイズを使用することが正当化され得ないことを示す可能性がある。この特定の例においては、第2の滑らかさの尺度は、より小さなクロップウィンドウのサイズに対応する第2の修正された経路が、より多くの内容をクロップすることを正当化するだけ十分に大きな値の分だけ第1の修正された経路よりも滑らになっていない可能性があるように、第1の滑らかさの尺度に値が近い可能性がある。この特定の例においては、第1の修正された経路が最適であると指定される可能性がある。その他のrsの値が使用される可能性がある。相対的な滑らかさのその他の測定値も、使用され得る。例えば、第2の滑らかさの尺度と第1の滑らかさの尺度との間の値の差が、計算され、所与のしきい値と比較され得る。例えば、差が所与のしきい値よりも小さい場合、第1のクロップウィンドウのサイズが最適と指定される可能性がある。第1の滑らかさの尺度と第2の滑らかさの尺度との間の比を計算することが、単に例示のために方法300を説明するために使用される。
【００７９】
ブロック326において、方法300は、記録された映像に第1のクロップウィンドウの変換を適用することを含む。例えば、ブロック324で決定された比が第2の所定のしきい値より勝る(例えば、
【００８０】
【数１４】
2015505447.tif 000016
【００８１】
または代替的に
【００８２】
【数１５】
2015505447.tif 000017
【００８３】
である)場合、より大きな(第1の)クロップウィンドウのサイズが最適であると指定される可能性があり、プロセッサは、受信された映像に第1のクロップウィンドウの変換を適用し、第1の修正された経路の視点からの修正された(より滑らかな)映像を提供することができる。
【００８４】
ブロック324において、方法300が第1の滑らかさの尺度と第2の滑らかさの尺度との間の比が第2の所定のしきい値を超えないと判定する場合、ブロック320または324で説明された条件のどちらかが満たされ得るまで、さらに小さなクロップウィンドウのサイズを選択し、方法300のステップを繰り返すことによって反復が続く可能性がある。つまり、所与の滑らかさの尺度が第1の所定の(絶対的な滑らかさの)しきい値を超えるか、または2つの連続するクロップウィンドウのサイズに対応する2つの滑らかさの尺度の間の比が第2の所定の(相対的な滑らかさの)しきい値を超えるかのどちらかまで。
【００８５】
図6Aは、所与の映像に関するクロップウィンドウのサイズに対する目的関数の値の変化を示す例示的なグラフを示す。より詳細には、図6Aは、元の受信されたビデオフレームのサイズの95%、90%、85%、80%、および75%のクロップウィンドウのサイズに対する目的関数O(P)の値を示す。95%、90%、および85%のクロップウィンドウのサイズに関して、目的関数の値は、絶対的な滑らかさのしきい値(例えば、0.002)よりも大きく、このことは、滑らかさの尺度が第1の所定のしきい値を超えないことを示す可能性がある。80%のクロップウィンドウのサイズに関して、目的関数の値は、0.002未満であることが示されており、このことは、滑らかさの尺度が第1の所定のしきい値を超えることを示す可能性がある。80%のクロップウィンドウのサイズは、最適であると指定される可能性があり、対応するクロップウィンドウの変換が、この例に関して、より滑らかな映像を提供するために受信された映像に適用される可能性がある。
【００８６】
図6Bは、クロップウィンドウのサイズに対する目的関数の値の変化を示す、別の映像に関する別の例示的なグラフを示す。図6Bにおいては、目的関数の値は0.002の絶対的な滑らかさのしきい値を下回らず、このことは、この映像に関して、対応する目的関数が0に近い一定の経路である可能性がある最適な修正された経路があり得ない可能性があると判定することを示し得る。
【００８７】
図6Bにおいては、相対的な滑らかさのしきい値rs = 0.8が、破線によって示されている。目的関数の値の、値における変化が、実線が局所的に破線の上にあるかまたは下にあるかを判定することによって、相対的な滑らかさのしきい値rsと比較される可能性がある。例えば、相対的な滑らかさのしきい値rs未満である、2つの連続するクロップウィンドウのサイズに対応する2つの目的関数の値の間の比は、局所的に破線の下にある実線によって示される可能性がある。相対的な滑らかさのしきい値rsを超える比は、局所的に破線の上にある実線によって示される可能性がある。
【００８８】
図6Bの特定の例として、80%および75%の2つの連続するクロップウィンドウのサイズの間の目的関数の値の変化は、相対的な滑らかさのしきい値rsを超えており(
【００８９】
【数１６】
2015505447.tif 000018
【００９０】
)、これは、局所的に破線の上にある実線によって示される。この特定の例において、80%未満(例えば、75%)のクロップウィンドウのサイズは、より多くの内容を破棄することを正当化するのに十分なほど滑らかさを向上させない可能性がある。この特定の例においては、したがって、80%のクロップウィンドウのサイズが最適と見なされ得る。
【００９１】
一部の例において、受信された映像は、ぶれている可能性がある受信された映像の所与の部分を除いて安定した映像であった可能性がある。例えば、受信された映像は、車に乗っているユーザによって保持されたカメラから記録された可能性があり、車の走行は、カメラがぶれることと、カメラによって記録されている映像がぶれた部分を含むこととを引き起こす可能性がある一連の隆起にぶつかることを除いて滑らかであった可能性がある。例えば、全体としての映像に対する大域的な最適なクロップウィンドウのサイズが、方法300を使用して決定され得る。しかし、大域的な最適なクロップウィンドウのサイズは、映像から内容をクロップして映像のぶれた部分の映像を手ぶれ補正するために決定され得るが、安定していた可能性がある映像のその他の部分からも内容を削除する可能性がある。
【００９２】
大域的な最適なクロップウィンドウを決定する代わりとして、受信された映像が、複数のセグメントに分割される可能性があり、最適なクロップウィンドウのサイズがそれぞれのセグメントに対して決定される可能性がある。各セグメントは、一連のいくつかのフレームを含み得る。各セグメントが時間的に所与の長さ(例えば、約3〜5秒)である可能性があるような時間的な分割が、使用され得る。任意の時間的な分割が使用される可能性があり、セグメントは同じ時間の長さである可能性があり、もしくは同じ時間の長さではない可能性があり、または同じ数のフレームを含む可能性があり、もしくは同じ数のフレームを含まない可能性がある。
【００９３】
ぶれた部分を含む映像のセグメントに関して決定される最適なクロップウィンドウは、映像のぶれた部分を手ぶれ補正するために小さい(例えば、元のビデオフレームのサイズの75%)可能性があり、一方、その他のセグメントに関する最適なクロップウィンドウは、その他のセグメントがぶれた部分を含むセグメントよりも安定しており滑らかであった可能性があるので大きい(例えば、元のビデオフレームのサイズの95%)可能性がある。映像の異なる映像セグメントに関して異なるクロップウィンドウのサイズを決定することは、動的クロップと呼ばれる可能性がある。
【００９４】
図7A〜図7Bは、映像内の複数の映像セグメントに関するクロップウィンドウのサイズに対する目的関数の値の変化を示す例示的なグラフを示す。特に、図7Aは、映像の3つのクリップのクロップウィンドウのサイズに対する目的関数の値の変化を示す。クリップ1に関して、例えば、最適なクロップウィンドウのサイズは、80%であると決定される可能性があり、すなわち、80%のクロップウィンドウのサイズは、クリップ1に関する目的関数の値を絶対的な滑らかさのしきい値(例えば、0.002)未満にする。クリップ2および3に関して、最適なクロップウィンドウのサイズは、図7Aに示されるように、85%であると決定される可能性がある。
【００９５】
図7Bは、別の映像に含まれる3つのクリップに関するクロップウィンドウのサイズとともに変化する目的関数の値の別の例を示す。図7Bにおいて、3つのクリップの目的関数の値は、絶対的な滑らかさのしきい値(例えば、0.002)をまたがない可能性があり、相対的な滑らかさのしきい値が、3つのクリップに関する最適なクロップウィンドウのサイズを決定するために使用される可能性がある。所与のクリップに関して破線が局所的に実線の下にある可能性があるとき、所与のクリップに関する最適なクロップウィンドウのサイズが決定され得る。図7Bにおいては、クリップ1に関して、80%のクロップウィンドウのサイズが最適であると見なされる可能性があり、クリップ2に関して、90%のクロップウィンドウのサイズが最適であると見なされる可能性があり、クリップ3に関して、85%のクロップウィンドウのサイズが最適であると見なされる可能性がある。クリップ1は、クリップ1がクリップ2および3よりもぶれが大きいかまたはより不安定である可能性がある部分を含む可能性があることを示す、より小さなクロップウィンドウを必要とした可能性がある。図7Bの映像クリップに関して、大域的な最適なクロップウィンドウのサイズが全体としての映像に対して決定される場合、80%のクロップウィンドウのサイズが、クリップ1を手ぶれ補正するために選択された可能性があるが、クリップ2および3をより滑らかにすることなく、クリップ2および3からのより多くの内容を破棄する可能性がある。
【００９６】
図8A〜図8Hは、異なる概念的な映像セグメントの例示的なビデオフレームと、さまざまなサイズの例示的なクロップウィンドウとを示す。図8A、図8C、図8E、および図8Gは、記録され、ぶれが大きく不安定な映像の内容を含むビデオフレームを順番に示す。図8B、図8D、図8F、および図8Hは、揺れまたは高周波の入力を取り除き、元の映像の滑らかなバージョンを表すために順番に再生され得る修正されたビデオフレームを示す。
【００９７】
例えば、図8Aは、映像の元の第1の映像セグメントから得られた元のフレームを示し、図8Bは、元のフレームのサイズの80%である最適なクロップウィンドウ802が図8Aの元のフレームに適用された後の修正されたフレームを示す。最適なクロップウィンドウ802は、例えば、方法300によって推定された可能性がある。また、図8Cは、映像の元の第2の映像セグメントから得られた元のフレームを示し、図8Dは、元のフレームのサイズの85%である最適なクロップウィンドウ804が図8Cの元のフレームに適用された後の修正されたフレームを示す。同様に、図8Eは、映像の元の第3の映像セグメントから得られた元のフレームを示し、図8Fは、元のフレームのサイズの90%である最適なクロップウィンドウ806が図8Eの元のフレームに適用された後の修正されたフレームを示す。また、図8Gは、映像の元の第4の映像セグメントから得られた元のフレームを示し、図8Hは、元のフレームのサイズの95%である最適なクロップウィンドウ808が図8Gの元のフレームに適用された後の修正されたフレームを示す。元の第1の映像セグメントに関して決定された最適なクロップウィンドウのサイズは元の第2の映像セグメントに関して決定された最適なクロップウィンドウのサイズよりも小さいので、最適なクロップウィンドウのサイズは、元の第2の映像セグメントが元の第1の映像セグメントよりも滑らかであり得ることを示唆する可能性がある。同様に、元の第3の映像セグメントは、元の第2の映像セグメントよりも滑らかであるかまたはより安定している可能性があり、元の第4の映像セグメントは、元の第3の映像セグメントよりも滑らかであるかまたはより安定している可能性がある。図8A〜図8Hにおいては、所与のクロップウィンドウは、それぞれの映像セグメントに関して決定されたそれぞれのクロップウィンドウの変換に応じて、それぞれの元のフレームの中心に対してz軸の周りに回転されるかまたは平行移動される可能性がある。
【００９８】
一例においては、クリップ全体にわたる整合性を実現するために、映像が、2つの連続する映像セグメントの所与の部分が所定の期間の間重なるように、2つ以上の映像セグメントに分割される可能性がある。所与の部分で、2つの連続する映像セグメントの第2の映像セグメントに関する第2の修正された移動カメラ経路が、2つの連続する映像セグメントの第1の映像セグメントに関して決定された第1の修正された移動カメラ経路を拡大縮小することによって決定され得る。第1の最適なクロップウィンドウのサイズcopt,iが、第1のセグメントに関して決定される可能性があり、第2の最適なクロップウィンドウのサイズcopt,i+1が、第2のセグメントに関して決定される可能性がある。第2の映像セグメントの第2の修正された移動カメラ経路Pi+1が、Pi+1 = Pi・Sとなるように、第1のセグメントに重なる所与の部分で制限される可能性があり、ここで、Sは、一様な縮尺
【００９９】
【数１７】
2015505447.tif 000019
【０１００】
の相似または拡大縮小変換として定義される可能性がある。
【０１０１】
図9は、本明細書において説明される少なくとも一部の実施形態にしたがって構成されるコンピューティングシステムで使用される例示的なコンピューティングデバイス900を示す機能ブロック図である。コンピューティングデバイスは、パーソナルコンピュータ、モバイルデバイス、セルラ電話、ビデオゲームシステム、または全地球測位システムである可能性があり、クライアントデバイス、サーバ、システム、それらの組み合わせ、または図1〜図2で説明された構成要素の一部として実装される可能性がある。基本構成902で、コンピューティングデバイス900は、1つまたは複数のプロセッサ910およびシステムメモリ920を含む可能性がある。メモリバス930が、プロセッサ910とシステムメモリ920との間の通信のために使用され得る。所望の構成に応じて、プロセッサ910は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組み合わせを含むがこれらに限定されない任意の種類である可能性がある。メモリコントローラ915が、プロセッサ910とともに使用される可能性もあり、または一部の実装においては、メモリコントローラ915が、プロセッサ910の内部部分である可能性がある。
【０１０２】
所望の構成に応じて、システムメモリ920は、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)、またはそれらの任意の組み合わせを含むがこれらに限定されない任意の種類である可能性がある。システムメモリ920は、1つまたは複数のアプリケーション922およびプログラムデータ924を含む可能性がある。アプリケーション922は、本開示による、電子回路に入力を与えるように構成される最適で動的なクロップアルゴリズム923を含む可能性がある。プログラムデータ924は、任意の数のデータの種類を対象とする可能性がある内容情報925を含む可能性がある。一部の例示的な実施形態において、アプリケーション922は、オペレーティングシステム上でプログラムデータ924を用いて動作するように構成され得る。
【０１０３】
コンピューティングデバイス900は、追加的な特徴または機能、ならびに基本構成902と任意のデバイスおよびインターフェースとの間の通信を容易にする追加的なインターフェースを有する可能性がある。例えば、取り外し可能なストレージデバイス942、取り外し不可能なストレージデバイス944、またはそれらの組み合わせを含むデータストレージデバイス940が、設けられる可能性がある。取り外し可能なストレージデバイスおよび取り外し不可能なストレージデバイスの例は、いくつか例を挙げるとすれば、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタルバーサタイルディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、ならびにテープドライブを含む。コンピュータ記録媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性の非一時的な取り外し可能なおよび取り外し不可能な媒体を含み得る。
【０１０４】
システムメモリ920およびストレージデバイス940は、コンピュータ記録媒体の例である。コンピュータ記録媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CD-ROM、デジタルバーサタイルディスク(DVD)、もしくはその他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用される可能性があり、コンピューティングデバイス900によってアクセスされる可能性がある任意のその他の媒体を含むがこれらに限定されない。任意のそのようなコンピュータ記録媒体は、デバイス900の一部である可能性がある。
【０１０５】
コンピューティングデバイス900は、1つまたは複数のA/Vポート954または通信インターフェース970を介してディスプレイデバイス960またはスピーカなどのさまざまな外部デバイスと通信するように構成され得るグラフィックス処理ユニット952を含む可能性がある出力インターフェース950も含み得る。通信インターフェース970は、1つまたは複数の通信ポート974を介したネットワーク通信による1つまたは複数のその他のコンピューティングデバイス980および1つまたは複数のセンサー982との通信を容易にするように構成される可能性があるネットワークコントローラ972を含み得る。1つまたは複数のセンサー982は、コンピューティングデバイス900の外部に示されているが、デバイスの内部にある可能性もある。通信接続は、通信媒体の一例である。通信媒体は、搬送波またはその他の搬送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって具現化される可能性があり、任意の情報配信媒体を含む。変調されたデータ信号は、その信号の特徴のうちの1つまたは複数を、信号中に情報を符号化するような方法で設定または変更させる信号である可能性がある。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、無線周波数(RF)、赤外線(IR)、およびその他のワイヤレス媒体などのワイヤレス媒体を含み得る。
【０１０６】
コンピューティングデバイス900は、セル電話、携帯情報端末(PDA)、パーソナルメディアプレーヤーデバイス、ワイヤレスウェブ閲覧デバイス、パーソナルハンドセットデバイス、特定用途向けデバイス、または上述の機能のうちの任意のものを含む複合デバイスなどの小型フォームファクタ可搬型(またはモバイル)電子デバイスの一部として実装され得る。また、コンピューティングデバイス900は、ラップトップコンピュータ構成と非ラップトップコンピュータ構成との両方を含むパーソナルコンピュータとして実装され得る。
【０１０７】
一部の実施形態において、開示された方法は、機械可読フォーマットでコンピュータ可読記録媒体に符号化されたか、またはその他の非一時的媒体もしくは製品に符号化されたコンピュータプログラム命令として実装される可能性がある。図10は、本明細書において示された少なくとも一部の実施形態にしたがって構成された、コンピューティングデバイスでコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラム製品1000の概念的で部分的な図を示す概略図である。一実施形態において、例示的なコンピュータプログラム製品1000は、信号を運ぶ媒体1001を使用して提供される。信号を運ぶ媒体1001は、1つまたは複数のプロセッサによって実行されるときに、図1〜図9に関して上で説明された機能または機能の一部を提供することができる1つまたは複数のプログラム命令1002を含み得る。したがって、例えば、図3A〜図3Bに示された実施形態を参照すると、ブロック302〜326の1つまたは複数の特徴が、信号を運ぶ媒体1001に関連する1つまたは複数の命令によって担われる可能性がある。加えて、図10のプログラム命令1002は、やはり例示的な命令を示す。
【０１０８】
一部の例において、信号を運ぶ媒体1001は、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、デジタルテープ、メモリなどであるがこれらに限定されないコンピュータ可読媒体1003を包含する可能性がある。一部の実装において、信号を運ぶ媒体1001は、メモリ、読み出し/書き込み(R/W)CD、R/W DVDなどであるがこれらに限定されないコンピュータ記録可能媒体1004を包含する可能性がある。一部の実装において、信号を運ぶ媒体1001は、デジタルおよび/またはアナログ通信媒体(例えば、光ファイバケーブル、導波路、有線通信リンク、ワイヤレス通信リンクなど)などであるがこれらに限定されない通信媒体1005を包含する可能性がある。したがって、例えば、信号を運ぶ媒体1001は、ワイヤレス形態の通信媒体1005(例えば、IEEE 802.11またはその他の伝送プロトコルに準拠するワイヤレス通信媒体)によって運ばれる可能性がある。
【０１０９】
1つまたは複数のプログラミング命令1002は、例えば、コンピュータが実行可能なおよび/または論理が実装された命令である可能性がある。一部の例においては、図9のコンピューティングデバイス900などのコンピューティングデバイスが、コンピュータ可読媒体1003、コンピュータ記録可能媒体1004、および/または通信媒体1005のうちの1つまたは複数によってコンピューティングデバイス900に運ばれたプログラミング命令1002に応答してさまざまな動作、機能、またはアクションを行うように構成される可能性がある。本明細書において説明された構成は例示のみを目的としていることを理解されたい。したがって、当業者は、要素が所望の結果に応じて、その他の構成およびその他の要素(例えば、マシン、インターフェース、機能、順序、および機能のグループ化など)が代わりに使用される可能性があり、一部の要素が完全に省略される可能性があることを諒解するであろう。さらに、説明されている要素の多くは、別個のまたは分散された構成要素として、またはその他の構成要素と連携して、任意の好適な組み合わせおよび位置で実装され得る機能エンティティである。
【０１１０】
さまざまな態様および実施形態が本明細書において開示されたが、その他の態様および実施形態が、当業者には明らかになるであろう。本明細書において開示されたさまざまな態様および実施形態は、例示を目的としており、限定するように意図されておらず、その真の範囲は、以下の請求項によって、その請求項が与えられる均等物の全範囲とともに示される。本明細書で使用された用語は、特定の実施形態を説明することのみを目的としており、限定するように意図されていないことも理解されたい。
【符号の説明】
【０１１１】
100  最適な動的クロップおよび映像手ぶれ補正システム
102  カメラ経路推定モジュール
104  映像手ぶれ補正モジュール
106  映像平行移動モジュール
108  カメラ
200  ビデオホスティングサービス
202  最適な動的クロップおよび映像手ぶれ補正システム
204  クライアント
206  ネットワーク
208  ビデオプレーヤー
210  ビデオサーバ
212  収集サーバ
216  ビデオデータベース
218  カメラ経路推定モジュール
220  映像手ぶれ補正モジュール
222  映像平行移動モジュール
402  元のカメラ経路
404  最適なカメラ経路
502  フレーム
802  最適なクロップウィンドウ
804  最適なクロップウィンドウ
806  最適なクロップウィンドウ
900  コンピューティングデバイス
902  基本構成
910  プロセッサ
915  メモリコントローラ
920  システムメモリ
922  アプリケーション
923  最適で動的なクロップアルゴリズム
924  プログラムデータ
925  内容情報
930  メモリバス
940  データストレージデバイス
942  取り外し可能なストレージデバイス
944  取り外し不可能なストレージデバイス
950  出力インターフェース
952  グラフィックス処理ユニット
954  A/Vポート
960  ディスプレイデバイス
970  通信インターフェース
972  ネットワークコントローラ
974  通信ポート
980  その他のコンピューティングデバイス
982  センサー
1000  コンピュータプログラム製品
1001  信号を運ぶ媒体
1002  プログラム命令
1003  コンピュータ可読媒体
1004  コンピュータ記録可能媒体
1005  通信媒体
【図１】
2015505447.tif 000023
【図２】
2015505447.tif 000024
【図３Ａ】
2015505447.tif 000025
【図３Ｂ】
2015505447.tif 000026
【図４】
2015505447.tif 000027
【図５】
2015505447.tif 000028
【図６Ａ】
2015505447.tif 000029
【図６Ｂ】
2015505447.tif 000030
【図７Ａ】
2015505447.tif 000031
【図７Ｂ】
2015505447.tif 000032
【図８Ａ】
2015505447.tif 000033
【図８Ｂ】
2015505447.tif 000034
【図８Ｃ】
2015505447.tif 000035
【図８Ｄ】
2015505447.tif 000036
【図８Ｅ】
2015505447.tif 000037
【図８Ｆ】
2015505447.tif 000038
【図８Ｇ】
2015505447.tif 000039
【図８Ｈ】
2015505447.tif 000040
【図９】
2015505447.tif 000041
【図１０】
2015505447.tif 000042
【手続補正書】
【提出日】平成26年9月17日(2014.9.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
映像を記録したカメラの元の移動経路の推定値を決定するステップと、
クロップウィンドウのサイズを選択するステップと、
前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定するステップであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、ステップと、
前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供するステップとを含む方法。
【請求項２】
前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定するステップと、
前記滑らかさの尺度を所定のしきい値と比較するステップとをさらに含み、前記映像に前記クロップウィンドウの変換を適用するステップが、前記滑らかさの尺度の前記所定のしきい値との比較に基づく請求項1に記載の方法。
【請求項３】
より小さなクロップウィンドウのサイズを選択するステップと、
前記より小さなクロップウィンドウのサイズに対応するそれぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定するステップと、
前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定するステップと、
所与の所定のしきい値の前記変化との比較に基づいて、前記映像に前記クロップウィンドウの変換を適用し、前記修正された映像を提供するステップとをさらに含む請求項2に記載の方法。
【請求項４】
前記滑らかさの尺度の前記所定のしきい値との比較が、前記修正された移動カメラ経路の絶対的な滑らかさの度合いの指標を提供し、前記所与の所定のしきい値の前記変化との比較が、前記それぞれの修正された移動カメラ経路に対する前記修正された移動カメラ経路の相対的な滑らかさの度合いの指標を提供する請求項3に記載の方法。
【請求項５】
連続的なより小さなクロップウィンドウのサイズを使用して連続的な滑らかさの尺度を繰り返し決定するステップと、
2つの連続するクロップウィンドウのサイズに対応する2つの連続する滑らかさの尺度の間のそれぞれの値の変化との前記所与の所定のしきい値の比較に基づいて、前記2つの連続するクロップウィンドウのサイズのうちの大きい方のクロップウィンドウのサイズに対応する所与のクロップウィンドウの変換を前記映像に適用し、前記修正された映像を提供するステップとをさらに含む請求項3に記載の方法。
【請求項６】
前記映像を2つ以上の映像セグメントに分割するステップと、
各映像セグメントに関して、
前記映像セグメントを記録した前記カメラのそれぞれの元の移動経路を推定するステップと、
それぞれのクロップウィンドウのサイズを選択するステップと、
前記カメラの前記それぞれの元の移動経路をそれぞれの修正された移動カメラ経路に変換するためのそれぞれのクロップウィンドウの変換を決定するステップであって、前記それぞれのクロップウィンドウの変換に関連するそれぞれのクロップウィンドウが前記それぞれのクロップウィンドウのサイズに制限される、ステップと、
前記それぞれの修正された移動カメラ経路のそれぞれの滑らかさの度合いを示すそれぞれの滑らかさの尺度を決定するステップと、
前記それぞれの滑らかさの尺度の前記所定のしきい値との比較に基づいて、前記映像セグメントに前記それぞれのクロップウィンドウの変換を適用し、前記それぞれの修正された移動カメラ経路のそれぞれの視点からのそれぞれの修正された映像セグメントを提供するステップとをさらに含む請求項2に記載の方法。
【請求項７】
各映像セグメントに関して、
所与のより小さなクロップウィンドウのサイズを選択するステップと、
前記所与のより小さなクロップウィンドウのサイズに対応する所与のクロップウィンドウの変換および所与の滑らかさの尺度を決定するステップと、
前記それぞれの滑らかさの尺度と前記所与の滑らかさの尺度との間の値の所与の変化を判定するステップと、
所与の所定のしきい値の前記所与の変化との比較に基づいて、前記映像セグメントに前記それぞれのクロップウィンドウの変換を適用し、前記それぞれの修正された映像セグメントを提供するステップとをさらに含む請求項6に記載の方法。
【請求項８】
前記映像を2つ以上の映像セグメントに分割するステップが、第1の映像セグメントの終わりの部分が前記第1の映像セグメントに続く第2の映像セグメントの初めの部分に重なるように前記映像を分割するステップを含む請求項6に記載の方法。
【請求項９】
前記第1の映像セグメントに関する第1の修正された移動カメラ経路P1を決定するステップと、
前記第2の映像セグメントに関する第2の修正された移動カメラ経路P2を決定するステップと
をさらに含み、
前記第1の映像セグメントの前記終わりの部分に重なっている前記第2の映像セグメントの前記初めの部分においてP2 = P1・Sであり、Sが一様な縮尺
【数１】
2015505447.tif 000043
の拡大縮小変換であり、c1が前記第1の映像セグメントに関して選択された第1のそれぞれのクロップウィンドウのサイズであり、c2が前記第2の映像セグメントに関して選択された第2のそれぞれのクロップウィンドウのサイズである、請求項8に記載の方法。
【請求項１０】
前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの前記修正された映像を提供するステップが、前記映像から内容を削除するステップまたは前記映像を手ぶれ補正するステップのうちの少なくとも1つを含む請求項1に記載の方法。
【請求項１１】
コンピューティングデバイスに
映像を記録したカメラの元の移動経路を推定することと、
クロップウィンドウのサイズを選択することと、
前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定することであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、決定することと、
前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供することとを含む動作を実行させるために前記コンピューティングデバイスによって実行可能な命令を記憶する非一時的コンピュータ可読記録媒体。
【請求項１２】
前記動作が、
前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定することと、
前記滑らかさの尺度を所定のしきい値と比較することとをさらに含み、前記映像に前記クロップウィンドウの変換を適用することが、前記滑らかさの尺度の前記所定のしきい値との比較に基づく請求項11に記載の非一時的コンピュータ可読記録媒体。
【請求項１３】
前記動作が、
より小さなクロップウィンドウのサイズを選択することと、
前記より小さなクロップウィンドウのサイズに対応するそれぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定することと、
前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定することと、
(i)前記それぞれの滑らかさの尺度の前記所定のしきい値との比較に基づいてそれぞれの修正された映像を提供するための前記映像に対する前記それぞれのクロップウィンドウの変換、および
(ii)所与の所定のしきい値の前記変化との比較に基づいて前記修正された映像を提供するための前記映像に対する前記クロップウィンドウの変換
のうちの1つを適用することとをさらに含む請求項12に記載の非一時的コンピュータ可読記録媒体。
【請求項１４】
前記クロップウィンドウの変換がB(t)であり、B(t) = C(t)-1P(t)であり、C(t)が前記元の移動経路であり、P(t)が前記修正された移動カメラ経路である請求項11に記載の非一時的コンピュータ可読記録媒体。
【請求項１５】
前記修正された移動カメラ経路P(t)が、目的関数
【数２】
2015505447.tif 000044
を最小化することによって決定され、a、b、およびcが、前記クロップウィンドウの変換B(t)に関連する前記クロップウィンドウが前記クロップウィンドウのサイズに制限されるような線形重みである請求項14に記載の非一時的コンピュータ可読記録媒体。
【請求項１６】
前記目的関数を最小化することが、L1最小化を実行することを含む請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項１７】
前記目的関数が
【数３】
2015505447.tif 000045
であり、kがスカラ係数であるように、kフレームおきに前記カメラの前記元の移動経路を時間的にサブサンプリングすることをさらに含む請求項15に記載の非一時的コンピュータ可読記録媒体。
【請求項１８】
映像を受信し、前記映像を記録したカメラの元の移動経路を推定するように構成されたカメラ経路推定モジュールと、
前記カメラ経路推定モジュールと通信すると共に、クロップウィンドウのサイズを選択し、前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定するように構成される映像手ぶれ補正モジュールであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、映像手ぶれ補正モジュールと、
前記カメラ経路推定モジュールおよび前記映像手ぶれ補正モジュールと通信すると共に、前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供するように構成される映像平行移動モジュールとを含むシステム。
【請求項１９】
前記映像手ぶれ補正モジュールが、前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定し、前記滑らかさの尺度を所定のしきい値と比較するように構成され、前記映像に前記クロップウィンドウの変換を適用することが、前記滑らかさの尺度の前記所定のしきい値との比較に基づく請求項18に記載のシステム。
【請求項２０】
前記映像手ぶれ補正モジュールが、より小さなクロップウィンドウのサイズを選択し、それぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定するようにさらに構成され、前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定するようにさらに構成されると共に、
所与の所定のしきい値の前記変化との比較に基づいて、前記映像平行移動モジュールが、前記映像に前記クロップウィンドウの変換を適用し、前記修正された映像を提供するようにさらに構成される請求項19に記載のシステム。
【国際調査報告】
2015505447.tif 000046
2015505447.tif 000047