JP6092255B2 - 動的なクロップを用いて手ぶれ補正のために映像を処理するための方法およびシステム - Google Patents

動的なクロップを用いて手ぶれ補正のために映像を処理するための方法およびシステム Download PDF

Info

Publication number
JP6092255B2
JP6092255B2 JP2014553291A JP2014553291A JP6092255B2 JP 6092255 B2 JP6092255 B2 JP 6092255B2 JP 2014553291 A JP2014553291 A JP 2014553291A JP 2014553291 A JP2014553291 A JP 2014553291A JP 6092255 B2 JP6092255 B2 JP 6092255B2
Authority
JP
Japan
Prior art keywords
video
crop window
smoothness
modified
path
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
JP2014553291A
Other languages
English (en)
Other versions
JP2015505447A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2015505447A publication Critical patent/JP2015505447A/ja
Application granted granted Critical
Publication of JP6092255B2 publication Critical patent/JP6092255B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6815Motion detection by distinguishing pan or tilt from motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Description

関連出願の相互参照
本出願は、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)の最小化を使用して推定され得る。例えば、一定の経路は、止まっているカメラを表す可能性があり、つまり、
(ここで、Pは、カメラ経路を表す関数である)であり、一定速度の経路は、パンまたはドリーショットを表す可能性があり、つまり、
であり、一定加速度の経路は、止まっているカメラとパンするカメラとの間の緩やかに始まる遷移および緩やかに終わる遷移を表す、
である可能性がある。推定された滑らかなカメラ経路は、一定の、直線的な、または放物線状の動き(移動)のセグメントを含む可能性がある。セグメントは、残留する動き(residual motion)を避けるために、セグメントの重ね合わせではなく、静的なセグメントである可能性がある。
一例においては、一定の、直線的な、および放物線状の動きのセグメントを含むカメラ経路P(t)を推定するために、最適化が、制約付きのL1最小化(L1 minimization)として実行される可能性がある。例えば、オーダー(order)pのN次元ベクトルのノルムが、そのベクトルの成分の絶対値のp乗を総和し、その後、結果のp乗根をとった
として定義される。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つのセグメント、すなわち、止まっているカメラを表す一定の経路、すなわち、
、パンまたはドリーショットを表す一定速度の経路、すなわち、
、および止まっているカメラとパンするカメラとの間のゆっくり始まる遷移およびゆっくり終わる遷移を表す一定加速度の経路、すなわち、
に分けられる可能性がある。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を有する目的関数
を最小化することによって安定したカメラ経路P(t)を決定することができる。クロップウィンドウの変換B(t)は、クロップウィンドウの変換B(t)に関連するクロップウィンドウを各ビデオフレームに適用してクロップウィンドウの外側のすべての内容を削除することによって、映像またはビデオフレーム内の空間的内容を削除して映像を手ぶれ補正することができる。式(2)は、例えば、各導関数を0に等しく設定することによって最小化される可能性がある。したがって、導関数は、(例えば、フレーム毎に)カメラ経路に沿った異なる点で定義される可能性があり、導関数は、あらゆる点(あらゆるフレームで)決定される可能性がある。
一例においては、目的関数を最小化し、修正された移動カメラ経路を決定することは、受信された映像のあらゆるフレームをサンプリングし、あらゆるフレームに対して計算を実行することを含む可能性がある。代替的に、おそらく計算効率を向上させるために、受信映像のフレームが、例として、係数kによって時間的にサブサンプリング(subsample)される可能性がある。この例においては、第kのフレームに関する第kの変換が、前のk個の変換の連結によって置き換えられ得る。したがって、時間的なサブサンプリングは、修正された目的関数
を最小化することを含む可能性がある。等価的に、連鎖律(chain rule)を用いて、式(3)は、
と書かれ得る。式(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の滑らかさの尺度との間の比は、
と表される可能性があり、この比は、例えば、滑らかさの尺度が目的関数の値の逆数として決定される場合、第2の目的関数の値と第1の目的関数の値との間の比
として同等に表され得る。特定の例として、第2の所定のしきい値rs = 0.8を超える比
(つまり、第1の目的関数の値から第2の目的関数の値までの変化が第1の目的関数の値の20%未満である)は、より小さなクロップウィンドウのサイズを使用することが正当化され得ないことを示す可能性がある。この特定の例においては、第2の滑らかさの尺度は、より小さなクロップウィンドウのサイズに対応する第2の修正された経路が、より多くの内容をクロップすることを正当化するだけ十分に大きな値の分だけ第1の修正された経路よりも滑らになっていない可能性があるように、第1の滑らかさの尺度に値が近い可能性がある。この特定の例においては、第1の修正された経路が最適であると指定される可能性がある。その他のrsの値が使用される可能性がある。相対的な滑らかさのその他の測定値も、使用され得る。例えば、第2の滑らかさの尺度と第1の滑らかさの尺度との間の値の差が、計算され、所与のしきい値と比較され得る。例えば、差が所与のしきい値よりも小さい場合、第1のクロップウィンドウのサイズが最適と指定される可能性がある。第1の滑らかさの尺度と第2の滑らかさの尺度との間の比を計算することが、単に例示のために方法300を説明するために使用される。
ブロック326において、方法300は、記録された映像に第1のクロップウィンドウの変換を適用することを含む。例えば、ブロック324で決定された比が第2の所定のしきい値より勝る(例えば、
または代替的に
である)場合、より大きな(第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を超えており(
)、これは、局所的に破線の上にある実線によって示される。この特定の例において、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は、一様な縮尺
の相似または拡大縮小変換として定義される可能性がある。
図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 通信媒体

Claims (16)

  1. 映像を記録したカメラの元の移動経路の推定値を決定するステップと、
    クロップウィンドウのサイズを選択するステップと、
    前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定するステップであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、ステップと、
    前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供するステップと
    前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定するステップと、
    前記滑らかさの尺度を所定のしきい値と比較するステップと、
    を含み、
    前記映像に前記クロップウィンドウの変換を適用するステップが、前記滑らかさの尺度の前記所定のしきい値との比較に基づくことを特徴とする方法。
  2. より小さなクロップウィンドウのサイズを選択するステップと、
    前記より小さなクロップウィンドウのサイズに対応するそれぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定するステップと、
    前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定するステップと、
    所与の所定のしきい値の前記変化との比較に基づいて、前記映像に前記クロップウィンドウの変換を適用し、前記修正された映像を提供するステップとをさらに含む請求項1に記載の方法。
  3. 前記滑らかさの尺度の前記所定のしきい値との比較が、前記修正された移動カメラ経路の絶対的な滑らかさの度合いの指標を提供し、前記所与の所定のしきい値の前記変化との比較が、それぞれの前記修正された移動カメラ経路に対する前記修正された移動カメラ経路の相対的な滑らかさの度合いの指標を提供する請求項2に記載の方法。
  4. 連続的なより小さなクロップウィンドウのサイズを使用して連続的な滑らかさの尺度を繰り返し決定するステップと、
    2つの連続するクロップウィンドウのサイズに対応する2つの連続する滑らかさの尺度の間のそれぞれの値の変化との前記所与の所定のしきい値の比較に基づいて、前記2つの連続するクロップウィンドウのサイズのうちの大きい方のクロップウィンドウのサイズに対応する所与のクロップウィンドウの変換を前記映像に適用し、前記修正された映像を提供するステップとをさらに含む請求項2に記載の方法。
  5. 前記映像を2つ以上の映像セグメントに分割するステップと、
    各映像セグメントに関して、
    前記映像セグメントを記録した前記カメラのそれぞれの元の移動経路を推定するステップと、
    それぞれのクロップウィンドウのサイズを選択するステップと、
    前記カメラの前記それぞれの元の移動経路をそれぞれの修正された移動カメラ経路に変換するためのそれぞれのクロップウィンドウの変換を決定するステップであって、前記それぞれのクロップウィンドウの変換に関連するそれぞれのクロップウィンドウが前記それぞれのクロップウィンドウのサイズに制限される、ステップと、
    前記それぞれの修正された移動カメラ経路のそれぞれの滑らかさの度合いを示すそれぞれの滑らかさの尺度を決定するステップと、
    前記それぞれの滑らかさの尺度の前記所定のしきい値との比較に基づいて、前記映像セグメントに前記それぞれのクロップウィンドウの変換を適用し、前記それぞれの修正された移動カメラ経路のそれぞれの視点からのそれぞれの修正された映像セグメントを提供するステップとをさらに含む請求項1に記載の方法。
  6. 各映像セグメントに関して、
    所与のより小さなクロップウィンドウのサイズを選択するステップと、
    前記所与のより小さなクロップウィンドウのサイズに対応する所与のクロップウィンドウの変換および所与の滑らかさの尺度を決定するステップと、
    前記それぞれの滑らかさの尺度と前記所与の滑らかさの尺度との間の値の所与の変化を判定するステップと、
    所与の所定のしきい値の前記所与の変化との比較に基づいて、前記映像セグメントに前記それぞれのクロップウィンドウの変換を適用し、前記それぞれの修正された映像セグメントを提供するステップとをさらに含む請求項5に記載の方法。
  7. 前記映像を2つ以上の映像セグメントに分割するステップが、第1の映像セグメントの終わりの部分が前記第1の映像セグメントに続く第2の映像セグメントの初めの部分に重なるように前記映像を分割するステップを含む請求項5に記載の方法。
  8. 前記第1の映像セグメントに関する第1の修正された移動カメラ経路P1を決定するステップと、
    前記第2の映像セグメントに関する第2の修正された移動カメラ経路P2を決定するステップと
    をさらに含み、
    前記第1の映像セグメントの前記終わりの部分に重なっている前記第2の映像セグメントの前記初めの部分においてP2 = P1・Sであり、Sが一様な縮尺
    の拡大縮小変換であり、c1が前記第1の映像セグメントに関して選択された第1のそれぞれのクロップウィンドウのサイズであり、c2が前記第2の映像セグメントに関して選択された第2のそれぞれのクロップウィンドウのサイズである、請求項7に記載の方法。
  9. 前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの前記修正された映像を提供するステップが、前記映像から内容を削除するステップまたは前記映像を手ぶれ補正するステップのうちの少なくとも1つを含む請求項1に記載の方法。
  10. コンピューティングデバイスに
    映像を記録したカメラの元の移動経路を推定することと、
    クロップウィンドウのサイズを選択することと、
    前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定することであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、決定することと、
    前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供することと
    を含む動作を実行させるために前記コンピューティングデバイスによって実行可能な命令を記憶し、
    前記動作が、
    前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定することと、
    前記滑らかさの尺度を所定のしきい値と比較することと
    をさらに含み、
    前記映像に前記クロップウィンドウの変換を適用することが、前記滑らかさの尺度の前記所定のしきい値との比較に基づくことを特徴とする非一時的コンピュータ可読記録媒体。
  11. 前記動作が、
    より小さなクロップウィンドウのサイズを選択することと、
    前記より小さなクロップウィンドウのサイズに対応するそれぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定することと、
    前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定することと、
    (i)前記それぞれの滑らかさの尺度の前記所定のしきい値との比較に基づいてそれぞれの修正された映像を提供するための前記映像に対する前記それぞれのクロップウィンドウの変換、および
    (ii)所与の所定のしきい値の前記変化との比較に基づいて前記修正された映像を提供するための前記映像に対する前記クロップウィンドウの変換
    のうちの1つを適用することとをさらに含む請求項10に記載の非一時的コンピュータ可読記録媒体。
  12. コンピューティングデバイスに
    映像を記録したカメラの元の移動経路を推定することと、
    クロップウィンドウのサイズを選択することと、
    前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定することであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、決定することと、
    前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供することと、
    を含む動作を実行させるために前記コンピューティングデバイスによって実行可能な命令を記憶し、
    前記クロップウィンドウの変換がB(t)であり、B(t) = C(t)-1P(t)であり、C(t)が前記元の移動経路であり、P(t)が前記修正された移動カメラ経路であり、
    前記修正された移動カメラ経路P(t)が、目的関数
    を最小化することによって決定され、a、b、およびcが、前記クロップウィンドウの変換B(t)に関連する前記クロップウィンドウが前記クロップウィンドウのサイズに制限されるような線形重みであることを特徴とする、非一時的コンピュータ可読記録媒体。
  13. 前記目的関数を最小化することが、L1ノルムの最小化を実行することを含む請求項12に記載の非一時的コンピュータ可読記録媒体。
  14. 前記目的関数が
    であり、kがスカラ係数であるように、kフレームおきに前記カメラの前記元の移動経路を時間的にサブサンプリングすることをさらに含む請求項12に記載の非一時的コンピュータ可読記録媒体。
  15. 映像を受信し、前記映像を記録したカメラの元の移動経路を推定するように構成されたカメラ経路推定モジュールと、
    前記カメラ経路推定モジュールと通信すると共に、クロップウィンドウのサイズを選択し、前記カメラの前記元の移動経路を修正された移動カメラ経路に変換するためのクロップウィンドウの変換を決定するように構成される映像手ぶれ補正モジュールであって、前記クロップウィンドウの変換に関連するクロップウィンドウが前記クロップウィンドウのサイズに制限される、映像手ぶれ補正モジュールと、
    前記カメラ経路推定モジュールおよび前記映像手ぶれ補正モジュールと通信すると共に、前記映像に前記クロップウィンドウの変換を適用し、前記修正された移動カメラ経路の視点からの修正された映像を提供するように構成される映像平行移動モジュールと
    を含み、
    前記映像手ぶれ補正モジュールが、前記修正された移動カメラ経路の滑らかさの度合いを示す滑らかさの尺度を決定し、前記滑らかさの尺度を所定のしきい値と比較するように構成され、前記映像に前記クロップウィンドウの変換を適用することが、前記滑らかさの尺度の前記所定のしきい値との比較に基づく、システム。
  16. 前記映像手ぶれ補正モジュールが、より小さなクロップウィンドウのサイズを選択し、それぞれのクロップウィンドウの変換およびそれぞれの滑らかさの尺度を決定するようにさらに構成され、前記滑らかさの尺度と前記それぞれの滑らかさの尺度との間の値の変化を判定するようにさらに構成されると共に、
    所与の所定のしきい値の前記変化との比較に基づいて、前記映像平行移動モジュールが、前記映像に前記クロップウィンドウの変換を適用し、前記修正された映像を提供するようにさらに構成される請求項15に記載のシステム。
JP2014553291A 2012-01-16 2012-11-12 動的なクロップを用いて手ぶれ補正のために映像を処理するための方法およびシステム Active JP6092255B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/351,037 US8810666B2 (en) 2012-01-16 2012-01-16 Methods and systems for processing a video for stabilization using dynamic crop
US13/351,037 2012-01-16
PCT/US2012/064628 WO2013109335A1 (en) 2012-01-16 2012-11-12 Methods and systems for processing a video for stablization using dynamic crop

Publications (2)

Publication Number Publication Date
JP2015505447A JP2015505447A (ja) 2015-02-19
JP6092255B2 true JP6092255B2 (ja) 2017-03-08

Family

ID=48779707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014553291A Active JP6092255B2 (ja) 2012-01-16 2012-11-12 動的なクロップを用いて手ぶれ補正のために映像を処理するための方法およびシステム

Country Status (5)

Country Link
US (2) US8810666B2 (ja)
EP (2) EP3334149B1 (ja)
JP (1) JP6092255B2 (ja)
CN (2) CN107743196B (ja)
WO (1) WO2013109335A1 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8810666B2 (en) * 2012-01-16 2014-08-19 Google Inc. Methods and systems for processing a video for stabilization using dynamic crop
US8994838B2 (en) * 2013-04-16 2015-03-31 Nokia Corporation Motion adaptive cropping for video stabilization
US9436278B2 (en) 2014-04-01 2016-09-06 Moju Labs, Inc. Motion-based content navigation
GB2525175A (en) * 2014-04-14 2015-10-21 Nokia Technologies Oy Imaging
US9699381B2 (en) * 2014-04-18 2017-07-04 Samsung Electro-Mechanics Co., Ltd. Digital photographing motion compensation system and method
WO2016041193A1 (en) * 2014-09-19 2016-03-24 Intel Corporation Trajectory planning for video stabilization
KR102352681B1 (ko) * 2015-07-27 2022-01-18 삼성전자주식회사 동영상 안정화 방법 및 이를 위한 전자 장치
US10870398B2 (en) 2015-07-28 2020-12-22 Ford Global Technologies, Llc Vehicle with hyperlapse video and social networking
WO2017087537A1 (en) 2015-11-16 2017-05-26 Google Inc. Stabilization based on accelerometer data
CN105791705B (zh) * 2016-05-26 2019-06-11 厦门美图之家科技有限公司 适用于移动式延时摄影的视频防抖方法、系统及拍摄终端
JP6736362B2 (ja) * 2016-06-03 2020-08-05 キヤノン株式会社 画像処理装置、画像処理方法、プログラム
KR102575910B1 (ko) 2016-10-28 2023-09-08 삼성전자주식회사 가이드를 출력하는 전자 장치 및 방법
US10591731B2 (en) * 2016-12-06 2020-03-17 Google Llc Ocular video stabilization
CN107046640B (zh) * 2017-02-23 2018-09-07 北京理工大学 一种基于帧间运动光滑性的无参考视频稳定质量评价方法
US10816354B2 (en) 2017-08-22 2020-10-27 Tusimple, Inc. Verification module system and method for motion-based lane detection with multiple sensors
US10762673B2 (en) 2017-08-23 2020-09-01 Tusimple, Inc. 3D submap reconstruction system and method for centimeter precision localization using camera-based submap and LiDAR-based global map
US10565457B2 (en) 2017-08-23 2020-02-18 Tusimple, Inc. Feature matching and correspondence refinement and 3D submap position refinement system and method for centimeter precision localization using camera-based submap and LiDAR-based global map
US10649458B2 (en) 2017-09-07 2020-05-12 Tusimple, Inc. Data-driven prediction-based system and method for trajectory planning of autonomous vehicles
US10953881B2 (en) 2017-09-07 2021-03-23 Tusimple, Inc. System and method for automated lane change control for autonomous vehicles
US10953880B2 (en) 2017-09-07 2021-03-23 Tusimple, Inc. System and method for automated lane change control for autonomous vehicles
US10410055B2 (en) * 2017-10-05 2019-09-10 TuSimple System and method for aerial video traffic analysis
CN108111752A (zh) * 2017-12-12 2018-06-01 北京达佳互联信息技术有限公司 视频拍摄方法、装置及移动终端
CN112004729B (zh) 2018-01-09 2023-12-01 图森有限公司 具有高冗余的车辆的实时远程控制
US11305782B2 (en) 2018-01-11 2022-04-19 Tusimple, Inc. Monitoring system for autonomous vehicle operation
US11009356B2 (en) 2018-02-14 2021-05-18 Tusimple, Inc. Lane marking localization and fusion
US11009365B2 (en) 2018-02-14 2021-05-18 Tusimple, Inc. Lane marking localization
US10685244B2 (en) 2018-02-27 2020-06-16 Tusimple, Inc. System and method for online real-time multi-object tracking
CN110378185A (zh) 2018-04-12 2019-10-25 北京图森未来科技有限公司 一种应用于自动驾驶车辆的图像处理方法、装置
CN116129376A (zh) 2018-05-02 2023-05-16 北京图森未来科技有限公司 一种道路边缘检测方法和装置
US10587807B2 (en) 2018-05-18 2020-03-10 Gopro, Inc. Systems and methods for stabilizing videos
WO2020006657A1 (zh) * 2018-07-02 2020-01-09 深圳市大疆创新科技有限公司 视频拍摄处理方法、设备以及视频拍摄处理系统
CN112689586B (zh) 2018-09-13 2024-04-16 图森有限公司 远程安全驾驶方法和系统
US10750092B2 (en) * 2018-09-19 2020-08-18 Gopro, Inc. Systems and methods for stabilizing videos
KR102573302B1 (ko) * 2018-10-10 2023-08-31 삼성전자 주식회사 영상의 안정화를 위한 카메라 모듈, 그것을 포함하는 전자 장치 및 전자 장치의 영상 안정화 방법
US10942271B2 (en) 2018-10-30 2021-03-09 Tusimple, Inc. Determining an angle between a tow vehicle and a trailer
CN111319629B (zh) 2018-12-14 2021-07-16 北京图森智途科技有限公司 一种自动驾驶车队的组队方法、装置及系统
US10917573B1 (en) * 2019-05-21 2021-02-09 Gopro, Inc. Systems and methods for stabilizing videos
US10979463B2 (en) * 2019-05-30 2021-04-13 At&T Mobility Ii Llc Video streaming orchestrator
US11823460B2 (en) 2019-06-14 2023-11-21 Tusimple, Inc. Image fusion for autonomous vehicle operation
EP3987763A4 (en) * 2019-06-21 2023-07-12 GoPro, Inc. VIDEO STABILIZATION SYSTEMS AND METHODS
US11470254B1 (en) * 2019-06-21 2022-10-11 Gopro, Inc. Systems and methods for assessing stabilization of videos
CN112136311B (zh) * 2019-10-22 2022-07-12 深圳市大疆创新科技有限公司 一种图像处理方法、设备、成像系统及存储介质
CN111083557B (zh) * 2019-12-20 2022-03-08 浙江大华技术股份有限公司 一种视频录播控制方法及装置
EP3893150A1 (en) 2020-04-09 2021-10-13 Tusimple, Inc. Camera pose estimation techniques
CN113572993B (zh) * 2020-04-27 2022-10-11 华为技术有限公司 一种视频处理方法及移动终端
CN111586305B (zh) 2020-05-27 2021-11-02 维沃移动通信(杭州)有限公司 防抖方法、防抖装置和电子设备
AU2021203567A1 (en) 2020-06-18 2022-01-20 Tusimple, Inc. Angle and orientation measurements for vehicles with multiple drivable sections
US11778322B2 (en) * 2020-08-17 2023-10-03 Mediatek Inc. Method and apparatus for performing electronic image stabilization with dynamic margin
CN112188283B (zh) * 2020-09-30 2022-11-15 北京字节跳动网络技术有限公司 裁剪视频的方法、装置、设备以及存储介质
CN113840159A (zh) * 2021-09-26 2021-12-24 北京沃东天骏信息技术有限公司 视频处理方法、装置、计算机系统及可读存储介质
CN113840172B (zh) * 2021-09-28 2023-01-03 北京奇艺世纪科技有限公司 视频裁剪方法、装置、终端设备以及可读存储介质
US11706527B1 (en) * 2022-04-06 2023-07-18 Gopro, Inc. Systems and methods for stabilizing videos
CN115242981B (zh) * 2022-07-25 2024-06-25 维沃移动通信有限公司 视频播放方法、视频播放装置和电子设备
CN115665347A (zh) * 2022-10-27 2023-01-31 上海幻电信息科技有限公司 视频裁剪方法、装置、电子设备及存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2317525B (en) * 1996-09-20 2000-11-08 Nokia Mobile Phones Ltd A video coding system
DE50004426D1 (de) * 1999-05-07 2003-12-18 Siemens Ag Verfahren und anordnungen zur rechnergestützten bewegungskompensation eines digitalisierten bildes sowie computerprogramm-erzeugnisse und computerlesbare speichermedien
US7362354B2 (en) * 2002-02-12 2008-04-22 Hewlett-Packard Development Company, L.P. Method and system for assessing the photo quality of a captured image in a digital still camera
US7433497B2 (en) * 2004-01-23 2008-10-07 Hewlett-Packard Development Company, L.P. Stabilizing a sequence of image frames
JP2006033793A (ja) * 2004-06-14 2006-02-02 Victor Co Of Japan Ltd 追尾映像再生装置
US7440008B2 (en) * 2004-06-15 2008-10-21 Corel Tw Corp. Video stabilization method
US7705884B2 (en) * 2004-07-21 2010-04-27 Zoran Corporation Processing of video data to compensate for unintended camera motion between acquired image frames
US7447337B2 (en) * 2004-10-25 2008-11-04 Hewlett-Packard Development Company, L.P. Video content understanding through real time video motion analysis
JP4755490B2 (ja) * 2005-01-13 2011-08-24 オリンパスイメージング株式会社 ブレ補正方法および撮像装置
FR2882160B1 (fr) * 2005-02-17 2007-06-15 St Microelectronics Sa Procede de capture d'images comprenant une mesure de mouvements locaux
JP2006235689A (ja) * 2005-02-22 2006-09-07 Seiko Epson Corp 画像処理装置、画像表示装置、画像撮像装置、画像処理方法、プログラムおよび記録媒体
US7548659B2 (en) * 2005-05-13 2009-06-16 Microsoft Corporation Video enhancement
US7558405B2 (en) * 2005-06-30 2009-07-07 Nokia Corporation Motion filtering for video stabilization
US7835542B2 (en) * 2005-12-29 2010-11-16 Industrial Technology Research Institute Object tracking systems and methods utilizing compressed-domain motion-based segmentation
JP4793120B2 (ja) * 2006-06-21 2011-10-12 ソニー株式会社 手振れ補正方法、手振れ補正方法のプログラム、手振れ補正方法のプログラムを記録した記録媒体及び手振れ補正装置
US20080112630A1 (en) * 2006-11-09 2008-05-15 Oscar Nestares Digital video stabilization based on robust dominant motion estimation
JP2008160300A (ja) * 2006-12-21 2008-07-10 Canon Inc 画像処理装置及び撮像装置
WO2008114499A1 (ja) * 2007-03-20 2008-09-25 Panasonic Corporation 撮影装置および撮影方法
JP4958610B2 (ja) * 2007-04-06 2012-06-20 キヤノン株式会社 画像防振装置、撮像装置及び画像防振方法
JP4893471B2 (ja) * 2007-05-24 2012-03-07 カシオ計算機株式会社 画像処理装置及びプログラム
US20090066800A1 (en) * 2007-09-06 2009-03-12 Texas Instruments Incorporated Method and apparatus for image or video stabilization
WO2009034487A2 (en) * 2007-09-10 2009-03-19 Nxp B.V. Method and apparatus for motion estimation and motion compensation in video image data
JP2009077309A (ja) * 2007-09-21 2009-04-09 Toshiba Corp 動き予測装置および動き予測方法
TWI381719B (zh) * 2008-02-18 2013-01-01 Univ Nat Taiwan 穩定全幅式視訊之方法
US9240056B2 (en) * 2008-04-02 2016-01-19 Microsoft Technology Licensing, Llc Video retargeting
CN101593353B (zh) * 2008-05-28 2012-12-19 日电(中国)有限公司 图像处理方法和设备以及视频系统
US8102428B2 (en) * 2008-08-28 2012-01-24 Adobe Systems Incorporated Content-aware video stabilization
US8072496B2 (en) * 2008-09-29 2011-12-06 Intel Corporation Motion smoothing in video stabilization
JP4915424B2 (ja) * 2009-02-19 2012-04-11 ソニー株式会社 画像処理装置、カメラモーション成分算出方法、画像処理プログラム及び記録媒体
EP2465254A4 (en) 2009-08-12 2015-09-09 Intel Corp VIDEO STABILIZATION AND VIDEO SCALE LIMIT DETECTION TECHNIQUES BASED ON COMMON PROCESSING ELEMENTS
WO2011065960A1 (en) * 2009-11-30 2011-06-03 Hewlett-Packard Development Company, L.P. Stabilizing a subject of interest in captured video
US8531535B2 (en) * 2010-10-28 2013-09-10 Google Inc. Methods and systems for processing a video for stabilization and retargeting
US8849054B2 (en) * 2010-12-23 2014-09-30 Samsung Electronics Co., Ltd Digital image stabilization
US8724854B2 (en) * 2011-04-08 2014-05-13 Adobe Systems Incorporated Methods and apparatus for robust video stabilization
CN102256061B (zh) * 2011-07-29 2013-06-05 武汉大学 一种二维三维混合的视频稳定方法
US8810666B2 (en) * 2012-01-16 2014-08-19 Google Inc. Methods and systems for processing a video for stabilization using dynamic crop
US20150022677A1 (en) * 2013-07-16 2015-01-22 Qualcomm Incorporated System and method for efficient post-processing video stabilization with camera path linearization

Also Published As

Publication number Publication date
WO2013109335A1 (en) 2013-07-25
EP2805482B1 (en) 2018-01-10
CN107743196A (zh) 2018-02-27
US20130182134A1 (en) 2013-07-18
US9554043B2 (en) 2017-01-24
CN107743196B (zh) 2020-08-25
CN104170370B (zh) 2017-11-03
EP3334149A1 (en) 2018-06-13
US20140327788A1 (en) 2014-11-06
JP2015505447A (ja) 2015-02-19
EP2805482A4 (en) 2015-08-19
EP2805482A1 (en) 2014-11-26
US8810666B2 (en) 2014-08-19
CN104170370A (zh) 2014-11-26
EP3334149B1 (en) 2022-01-05

Similar Documents

Publication Publication Date Title
JP6092255B2 (ja) 動的なクロップを用いて手ぶれ補正のために映像を処理するための方法およびシステム
US8860825B2 (en) Methods and systems for removal of rolling shutter effects
US8594488B1 (en) Methods and systems for video retargeting using motion saliency
JP5778187B2 (ja) 汎用プラットフォーム・ビデオ画像安定化
US9824426B2 (en) Reduced latency video stabilization
US10217200B2 (en) Joint video stabilization and rolling shutter correction on a generic platform
US10074015B1 (en) Methods, systems, and media for generating a summarized video with video thumbnails
US9672866B2 (en) Automated looping video creation
WO2012058442A1 (en) Methods and systems for processing a video for stabilization and retargeting
US8994838B2 (en) Motion adaptive cropping for video stabilization
KR101945233B1 (ko) 영상 안정화 방법 및 장치
WO2022242568A1 (zh) 防抖效果评估方法、装置、计算机设备和存储介质
KR101741150B1 (ko) 영상에디팅을 수행하는 영상촬영장치 및 방법
KR101945243B1 (ko) 영상을 배속 재생하는 방법 및 장치
US12035044B2 (en) Methods and apparatus for re-stabilizing video in post-processing
US20230109047A1 (en) Methods and apparatus for re-stabilizing video in post-processing
CN118233758A (zh) 图像处理方法及其装置
CN115689898A (zh) 一种姿态估计方法、装置、设备及介质
JP2020107058A (ja) 画像処理装置、画像処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161129

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: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170208

R150 Certificate of patent or registration of utility model

Ref document number: 6092255

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250