ビデオを (カメラを安定した位置で) 撮影していて、鳥がカメラの視界を飛んでいるとしましょう。画像のセグメンテーションを実行して、この鳥をビデオから自動的に削除できるはずです。
これらのスタイルのアルゴリズムは何と呼ばれ、通常はどのように達成されるのでしょうか?
ビデオを (カメラを安定した位置で) 撮影していて、鳥がカメラの視界を飛んでいるとしましょう。画像のセグメンテーションを実行して、この鳥をビデオから自動的に削除できるはずです。
これらのスタイルのアルゴリズムは何と呼ばれ、通常はどのように達成されるのでしょうか?
Simple Image Object Extraction (SIOX)と呼ばれる手法があります。これは、静止画と動画の前景オブジェクトと背景オブジェクトを識別する手法を使用します。オープン ソースのGIMPエディターにはそれが実装されており、詳細についてはこちらを参照してください。
概要から:
SIOX は Simple Interactive Object Extraction の略で、ユーザーの操作をほとんど必要とせずに静止画像から前景を抽出するソリューションです。SIOX は高速でノイズに強いため、ビデオのセグメンテーションにも使用できます。グラフベースのセグメンテーション方法の欠点の多くを回避しますが、さまざまなベンチマークでほぼ同じように機能します. SIOX はオープンで無料 (Apache ライセンス) であり、著者は技術のどの部分についても意図的に特許を取得していません。その結果、過去数年間でいくつかのオープンソースの画像操作プログラムに統合されました。SIOX は、GNU Image Manipulation Program (GIMP) のフォアグラウンド抽出ツールの基礎となるアルゴリズムであり、Inkscape のトレーサー ツールの一部です。SIOX は、電子黒板の前に立っているインストラクターがセグメント化された E-Chalk に由来します。
これは、SIOX の Java リファレンス実装へのリンクです。
これは、アルゴリズムのバリエーションがどのように機能するかについての詳細を含む PDFへのリンクです。
周囲のフレームからの時間データを使用して、フレーム間補間を使用してビデオの各フレームから特定の前景オブジェクトを削除するように適応できるはずです。
カメラが固定されていて、シーンに動きがあまりない場合は、背景減算に基づく方法をお勧めします。
ステップ 1: ビデオの各フレームの背景を計算します。これを行うための複雑なアルゴリズムがありますが、非常に単純で効果的なアルゴリズムは、3 秒の時間枠で画像内のすべてのピクセルの中央値を計算することです。問題のオブジェクトがゆっくり動いている場合は、より長くなります。ちなみに、この種のフィルタリングを実行すると、カメラが固定されている場合、ほとんどの移動オブジェクトがビデオから削除されます。したがって、すべてのオブジェクトと 1 つのオブジェクトについての以前の質問です。
ステップ 2: 各フレームで削除する領域をブラシ ツールでマークし、それらを背景ピクセルに置き換えます。細かいブラシやなげなわツールを気にしないでください。マークしたオブジェクト以外のピクセルは、フィルター処理されたバージョンに置き換えられるだけです。境界はそれほど重要ではないため、おそらく複数のフレームに同じブラシ マークを使用できます。シーン内で動いているのがオブジェクトだけの場合は、フレーム全体をマークして背景に置き換えることができます。
とにかく、より一般的な質問に答えるために、調査したいトピックは画像とビデオの修復と呼ばれます。この件についてはかなりの数の文献がありますが、私が説明したのは、opencv を使用して 1 時間程度で実装できる非常に単純な方法にすぎません。