実測レビュー · 動画の文字除去 · 実践ガイド

動画の字幕・ロゴ除去を実測:AI修復を8つの遮蔽ケースで比較

平らな背景に固定されたロゴは、顔や布地の上にある文字より簡単です。修復がほとんど改善しなかったケースを含む、8つの制御実験を公開します。

制御した字幕ケースから作成した実際の書き出しです。文字はテスト用に合成し、元のインタビューにはありません。2秒の例は任意の動画を代表しません。 素材と実験記録

難易度は文字の背後にある映像で決まる

「字幕を消す」と言っても、平らな壁の固定ロゴ、顔に重なるマーク、布地の半透明文字、流れるコメント、二行字幕、動き続ける背景にある文字では条件が違います。隠れる範囲、別フレームにきれいな背景が映るか、文字がどう動くか、復元する質感が残っているかが結果を左右します。

テスト時点でプロジェクトが選んでいたSTTN設定を、一般的なTelea補間と比較しました。平らな背景やまばらなコメントでは改善が見られました。一方、顔の上にある難しいロゴではPSNRの上昇は0.87 dBにとどまり、顔の形や細部も崩れていました。布地の半透明文字も1.12 dBの改善です。都合の良い角ロゴだけを見せず、悪い結果も残しています。

8ケースの作り方

同じDVIDSのパブリックドメイン映像を使い、2秒、640×360、24 fps、48フレームに揃えました。クリーンなフレームに合成の角ロゴ、半透明文字、字幕、流れるコメントを重ねています。そのため覆われた範囲には正確な参照画像があります。修復処理に渡すのは文字入りの映像とマスクで、クリーン画像は渡していません。8ケースは一つの素材の変形であり、別々に撮影した8本の動画や利用者投稿のサンプルではありません。

主な指標は合成マスク内のPSNRです。高いほど既知のクリーン画像に近い画素を示します。改善量はTeleaの値と選択したSTTN設定の差です。字幕には文字の形に合わせてマスクを調整しました。PSNRは画素差の指標で、見た目の自然さではありません。以下の主表は最終動画へのエンコード前に測定しています。

8つの制御実験の結果

合成ケースTelea基準選択設定改善量マスクの被覆率
固定ロゴ · 平らな背景33.87 dB41.94 dB+8.08 dB100%
固定ロゴ · 顔の上11.98 dB12.85 dB+0.87 dB100%
半透明の文字 · 平らな背景36.24 dB43.38 dB+7.15 dB100%
半透明の文字 · 布地15.52 dB16.64 dB+1.12 dB100%
流れるコメント · 単純な一行16.49 dB33.34 dB+16.85 dB100%
流れるコメント · 人物上の二行17.44 dB28.15 dB+10.71 dB99.92%
焼き込み字幕 · 単純な一行16.44 dB22.29 dB+5.85 dB100%
焼き込み字幕 · 難しい二行17.64 dB22.17 dB+4.53 dB100%

マスクがマークをすべて覆っていても、隠れていた内容を正しく描き直せるとは限りません。顔ロゴのケースはマスク被覆率100%でも顔の細部が崩れました。画素を検出することと、その下にあった映像を復元することは別です。

クリーンなフレーム、合成字幕、ブラウザー修復の並列比較。
2秒の制御サンプルに字幕を追加しました。インタビュー映像は出典を記載した公開素材です。
クリーンな映像、合成の流れるコメント、修復結果を並べて比較。
移動するコメントはフレームごとの検出が必要です。一行の結果は、画面いっぱいのコメントの性能を示しません。

ブラウザーの実書き出しを確認

別途、4種類の入力をQuietTakeのローカルブラウザーワークフローでMP4に書き出しました。各ファイルは2秒、640×360、48フレームで、動画と音声をデコードでき、音声トラックも残っていました。実行環境は16 GiBのApple Silicon端末上のChromium WebGPUで、モデルはブラウザーキャッシュにありました。このビルドで約98.5 MBの初回モデルダウンロードは所要時間に含みません。

種類エンコード後PSNR被覆部MAE (0–255)マスク外MAEブラウザー処理時間
グラフィックロゴ38.58 dB2.472.3023.4秒
半透明の文字マーク30.25 dB4.612.3023.4秒
二行字幕21.99 dB14.502.3120.4秒
流れるコメント24.16 dB5.572.3023.0秒

マスク外のMAE約2.3は主にH.264エンコードによる画素差で、処理モデルがフレーム全体を再生成した意味ではありません。8ケース表はエンコード前なので、2つの表の値を単純に引き算できません。時間はこの端末、短い動画、モデルのキャッシュ済み条件に限られ、全端末の速度保証ではありません。

スコアが良くても映像が壊れる理由

平らな背景のロゴは周囲に参考画素があります。顔に重なるロゴは目、鼻、肌の細部を隠し、他のフレームにも手がかりがなければモデルが推測するしかありません。PSNRが上がっても本人の本当の細部が戻るわけではありません。報道、アーカイブ、証拠映像では、生成された画素を歴史的事実として扱わないでください。

服の上にある半透明文字は布地の色と混ざり、除去すると織り目も変化します。流れるコメントは別フレームに背景が残っていれば手がかりになりますが、文字が重なる、人物が速く動く、背景が変わる状況では残像やちらつきが起きます。葉、服、細かい模様に重なる字幕も、マスク幅に敏感です。

マスク被覆率は、既知の合成文字をどれだけマスクに含めたかだけを表します。現実の字幕には縁取り、影、圧縮ノイズ、動く背景があります。99.92%の被覆率は、動画の99.92%が修復できるという意味ではありません。 この実験の画素範囲での値で、製品成功率ではありません。

自分の動画を確認する手順

まずコピーを作り、難しい文字、動き、字幕切り替え、カットを含む2〜5秒を選びます。問題が後半に出るなら、最初のフレームだけのプレビューでは足りません。顔、看板、通常の文字、重要な物体まで選択していないか確認してください。修復する領域を広くすると、モデルが補う画素も増えます。

通常速度で見てから、修復部分を拡大します。静止して縁や質感を確認し、続けて再生して文字の残り、ゴースト、ちらつき、形の急変を探します。マスクの外側、特に顔、手、服、背景も確認します。最初と最後だけでなく、アプリが選んだプレビュー以外の時点へ移動して確認してください。

書き出した音声も再生します。この実験では音声をデコードできましたが、すべてのブラウザーやコーデックで音源が保たれるとは限りません。長さと口の動きとの同期を確認します。再現時はクリーンな参照、マスク、解像度、フレームレート、設定、エンコード段階を記録し、H.264前後の値を混ぜないでください。

使い分けとテストの限界

  • 平らな背景の小さな固定ロゴ:短いプレビューで試し、境界を拡大する。
  • 焼き込み字幕や少ないコメント:行の変化、被写体の動き、カットを区間全体で見る。
  • 顔、布地、重要な物にマークがある:拡大して確認し、生成された細部が許容できないなら原本を残す。
  • 字幕やコメントが別トラック:そのレイヤーを無効にする。映像画素の再構成は不要。
  • インタビュー、ニュース、アーカイブ:元ファイルを保持し、編集した複製と明記する。

8ケースは一つの映像と合成文字で構成しています。すべての撮影条件、フォント、解像度、縦型動画、HDR、画面いっぱいのコメントを網羅していません。通常の投稿には同じフレームのクリーンな参照画像がありません。GPU、ブラウザー、コーデック、メモリー、モデルのダウンロードで時間は変化します。

QuietTakeの動画修復ツールでは、最も難しい場面を含む短いプレビューを試してください。書き出す前に人物、動き、境界、音声を確認します。単純な背景での成功から、顔や布地の結果を予測しないでください。編集する権利がある素材だけを使ってください。

データと出典

アルゴリズムの8ケースはPythonとOpenCVで合成マスク内の画素をクリーンな参照と比較しました。ブラウザー書き出しはH.264後に別測定しています。素材と出典は実験メディア記録にあります。このページは制御実験を説明するもので、任意の動画の成功率ではありません。

次のステップ

素材に合わせて続ける

クリエイターガイドに戻る