AutoFlip:機械学習を用いてビデオの最適な箇所を切り抜く(2/3)

AutoFlip:機械学習を用いてビデオの最適な箇所を切り抜く(2/3)

1.AutoFlip:機械学習を用いてビデオの最適な箇所を切り抜く(2/3)まとめ

・AutoFlipはシーン全体を観てどこの部分に焦点を当てるべきかを判断するためシーンをバッファする
・次にディープラーニングベースの物体検出モデルを使用して興味深い目立つコンテンツを見つける
・その後、静止モード、パンモード、追跡モードなどの最適な再フレーミング戦略を自動的に選択

2.AutoFlipのアルゴリズム

以下、ai.googleblog.comより「AutoFlip: An Open Source Framework for Intelligent Reframing」の意訳です。元記事の投稿は2020年2月13日、Nathan FreyさんとZheng Sunさんによる投稿です。アイキャッチ画像のクレジットはPhoto by Jakob Owens on Unsplash

ショット(シーン)の検出
シーンまたはショットとは、ビデオが連続している部分、つまり撮影場面が変わらない部分です。
ショットの変更が発生した事を検出するために、AutoFlipは各フレームの色のヒストグラムを計算し、これを前のフレームと比較します。フレームの色の分布がスライディングヒストリカルウィンドウとは異なる速度で変化している場合、ショットの変更が通知されます。AutoFlipは、シーン全体を観てどこの部分に焦点を当てるべきかを判断するため、再フレーミング箇所を決定する前にシーンの終わりまでビデオをバッファリングします。

ビデオコンテンツの分析
ディープラーニングベースの物体検出モデルを使用して、フレーム内の興味深い目立つコンテンツを見つけます。 通常、このコンテンツには人と動物が含まれますが、アプリケーションによっては、コマーシャル用のテキストオーバーレイやロゴ、スポーツ用の動きやボールの検出など、他の要素が選択される場合があります。

顔および物体検出モデルは、CPU上でTensorFlow Liteを実行するMediaPipeを介してAutoFlipに統合されます。この構造により、AutoFlipを拡張できるため、開発者はさまざまなユースケースやビデオコンテンツ用に新しい検出アルゴリズムを好きなように追加できます。各物体タイプは、相対的な重要性を定義する重み値に関連付けられています。重みが大きいほど、カメラパスを計算するときに特徴が与える影響が大きくなります。


左:スポーツ映像での人の検出
右:2つの顔識別範囲。「中心となる顔(core)」と「全ての顔(all)」の2種類の顔範囲パターンがあります。狭い縦長の画面では、多くの場合、「中心となる顔」タイプの顔範囲のみが画面内に収まります。

リフレーミング
各フレームで関心のあるコンテンツを特定した後、新しい画面用にコンテンツを再フレーム化する方法を論理的に決定する事ができます。AutoFlipは、シーン内での物体の動作(移動や静止など)に応じて、静止モード、パンモード、追跡モードなどの最適な再フレーミング戦略を自動的に選択します。

静止モードでは、リフレームされたカメラのビューポートは、シーンの大部分で重要なコンテンツを見る事ができる位置に固定されます。このモードでは、カメラが固定三脚に取り付けられている、または後処理により画像安定化処理が行われるようなプロが撮影した映画撮影を効果的に扱う事ができます。

その他の場合は、パンモード、つまりカメラを固定したままフレームを一定の速度で移動させるのが最善です。追跡モードは、対象物体がフレーム内を動き回るときに、対象物体を継続的かつ安定的に追跡します。

アルゴリズムがこれら3つのリフレーミング戦略のどれを選択するかに基づいて、AutoFlipは各フレームに最適なクロッピングウィンドウを決定し、関心のあるコンテンツを最適に保持します。

物体を追跡する境界ボックスはシーン内の注目する物体を追跡しますが、通常はフレーム間でかなりの揺らぎ(jitter)が発生してしまうため、トリミングウィンドウを定義するには不十分です。代わりに、ユークリッドノルム最適化プロセスを使用して各フレームのビューポートを調整します。このプロセスでは、滑らかな(低次の多項式)カメラパスと境界ボックス間の残差を最小化します。


上:フレーム間で境界ボックスをたどる事で作成されたカメラパス
下:ユークリッドノルムパス形成を使用して生成された最終平滑化カメラパス
左:物体が動き回るシーン。追跡カメラパスが必要です。
右:物体が同じ位置の近くに留まるシーン。静止カメラは、シーンの全期間にわたってコンテンツをカバーします。

3.AutoFlip:機械学習を用いてビデオの最適な箇所を切り抜く(2/3)関連リンク

1)ai.googleblog.com
AutoFlip: An Open Source Framework for Intelligent Video Reframing

2)github.com
mediapipe/mediapipe/docs/autoflip.md