実測レビュー · 動画の文字除去 · 実践ガイド
動画の字幕・ロゴ除去を実測:AI修復を8つの遮蔽ケースで比較
平らな背景に固定されたロゴは、顔や布地の上にある文字より簡単です。修復がほとんど改善しなかったケースを含む、8つの制御実験を公開します。
難易度は文字の背後にある映像で決まる
「字幕を消す」と言っても、平らな壁の固定ロゴ、顔に重なるマーク、布地の半透明文字、流れるコメント、二行字幕、動き続ける背景にある文字では条件が違います。隠れる範囲、別フレームにきれいな背景が映るか、文字がどう動くか、復元する質感が残っているかが結果を左右します。
テスト時点でプロジェクトが選んでいた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 dB | 41.94 dB | +8.08 dB | 100% |
| 固定ロゴ · 顔の上 | 11.98 dB | 12.85 dB | +0.87 dB | 100% |
| 半透明の文字 · 平らな背景 | 36.24 dB | 43.38 dB | +7.15 dB | 100% |
| 半透明の文字 · 布地 | 15.52 dB | 16.64 dB | +1.12 dB | 100% |
| 流れるコメント · 単純な一行 | 16.49 dB | 33.34 dB | +16.85 dB | 100% |
| 流れるコメント · 人物上の二行 | 17.44 dB | 28.15 dB | +10.71 dB | 99.92% |
| 焼き込み字幕 · 単純な一行 | 16.44 dB | 22.29 dB | +5.85 dB | 100% |
| 焼き込み字幕 · 難しい二行 | 17.64 dB | 22.17 dB | +4.53 dB | 100% |
マスクがマークをすべて覆っていても、隠れていた内容を正しく描き直せるとは限りません。顔ロゴのケースはマスク被覆率100%でも顔の細部が崩れました。画素を検出することと、その下にあった映像を復元することは別です。
ブラウザーの実書き出しを確認
別途、4種類の入力をQuietTakeのローカルブラウザーワークフローでMP4に書き出しました。各ファイルは2秒、640×360、48フレームで、動画と音声をデコードでき、音声トラックも残っていました。実行環境は16 GiBのApple Silicon端末上のChromium WebGPUで、モデルはブラウザーキャッシュにありました。このビルドで約98.5 MBの初回モデルダウンロードは所要時間に含みません。
| 種類 | エンコード後PSNR | 被覆部MAE (0–255) | マスク外MAE | ブラウザー処理時間 |
|---|---|---|---|---|
| グラフィックロゴ | 38.58 dB | 2.47 | 2.30 | 23.4秒 |
| 半透明の文字マーク | 30.25 dB | 4.61 | 2.30 | 23.4秒 |
| 二行字幕 | 21.99 dB | 14.50 | 2.31 | 20.4秒 |
| 流れるコメント | 24.16 dB | 5.57 | 2.30 | 23.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後に別測定しています。素材と出典は実験メディア記録にあります。このページは制御実験を説明するもので、任意の動画の成功率ではありません。