Test produktu · Usuwanie elementów z wideo · PORADNIK PRAKTYCZNY

Test usuwania napisów, znaków wodnych i komentarzy z wideo: osiem przypadków zasłonięcia obrazu

Stałe logo na prostym tle łatwiej usunąć niż tekst na twarzy lub tkaninie. Publikujemy wszystkie osiem kontrolowanych wyników, również te, w których poprawa obrazu była niewielka.

To rzeczywisty eksport z przeglądarki z kontrolowanej próbki napisów. Napisy dodano na potrzeby eksperymentu; nie pochodzą z oryginalnego wywiadu. Dwie sekundy nie mogą reprezentować dowolnych materiałów ani długich filmów. Materiał źródłowy i informacje o teście

Zacznij od wyniku: trudność zależy od zasłoniętej treści

„Usuń napisy” nie oznacza jednego poziomu trudności. Może chodzić o stały znak w rogu na płaskiej ścianie, logo na twarzy, półprzezroczysty tekst na tkaninie, przewijające się komentarze, dwuwierszowe napisy lub tekst na zmieniającym się tle. Wynik zależy od tego, czy czyste tło pojawia się w innych klatkach, jaką część obrazu zasłania nakładka, jak się porusza i czy po naprawie pozostaje oryginalna tekstura.

Porównaliśmy standardowe wypełnianie metodą Telea z konfiguracją STTN wybraną w projekcie w czasie testów. Wyniki poprawiły się w przypadku płaskich teł i rzadko pojawiających się komentarzy. Przy trudnym znaku wodnym zasłaniającym twarz PSNR wzrósł zaledwie o 0,87 dB, a naprawiona twarz nadal była wyraźnie zniekształcona. Wynik dla półprzezroczystego tekstu na tkaninie poprawił się tylko o 1,12 dB. Te przypadki niepowodzenia pozostają w tabeli; jeden atrakcyjny wynik dla logo w rogu nie reprezentuje wszystkich klipów.

Jak przygotowano osiem scen

W kontrolowanych testach wykorzystano ten sam materiał z wywiadu DVIDS, udostępniony w domenie publicznej, przycięty do dwóch sekund i znormalizowany do rozdzielczości 640 na 360 pikseli przy 24 kl./s, czyli 48 klatek. Osoby testujące dodały do czystych klatek syntetyczne logotypy w rogach, półprzezroczysty tekst, napisy i przewijające się komentarze. Oryginalny obraz stanowi więc dokładny punkt odniesienia dla zasłoniętych pikseli. Model naprawczy otrzymuje zasłonięte klatki i maskę, a nie czysty obraz. Osiem przypadków to warianty jednego źródła, a nie osiem niezależnie nagranych klipów ani reprezentatywna próbka materiałów przesłanych przez użytkowników.

Główną miarą jest PSNR w syntetycznie zasłoniętym obszarze. Wyższa wartość oznacza, że piksele są bliższe znanemu, czystemu obrazowi referencyjnemu. Przyrost to wynik wybranej konfiguracji naprawy pomniejszony o wynik bazowy metody Telea. Przypadki z napisami wykorzystują STTN z maskami dopasowanymi do kształtu znaków; pozostałe przypadki używają STTN. PSNR mierzy różnicę pikseli, a nie to, czy obraz wydaje się naturalny. Główną tabelę obliczono przed końcowym kodowaniem wideo; wpływ kodowania przedstawiono osobno.

Wszystkie osiem kontrolowanych przypadków

Przypadek syntetycznyBazowy PSNR metody TeleaWybrana konfiguracjaPrzyrostPokrycie nakładki maską
Stałe logo graficzne · płaskie tło33,87 dB41,94 dB+8,08 dB100%
Stałe logo graficzne · na twarzy11,98 dB12,85 dB+0,87 dB100%
Półprzezroczysty tekstowy znak wodny · płaskie tło36,24 dB43,38 dB+7,15 dB100%
Półprzezroczysty tekstowy znak wodny · tekstura tkaniny15,52 dB16,64 dB+1,12 dB100%
Przewijające się komentarze · jeden prosty wiersz16,49 dB33,34 dB+16,85 dB100%
Przewijające się komentarze · dwa wiersze na osobie17,44 dB28,15 dB+10,71 dB99,92%
Wtopione napisy · jeden prosty wiersz16,44 dB22,29 dB+5,85 dB100%
Wtopione napisy · trudny przypadek z dwoma wierszami17,64 dB22,17 dB+4,53 dB100%

Wysoki PSNR oznacza, że w tych syntetycznych przykładach zasłonięte piksele były bliższe czystemu obrazowi referencyjnemu. Nie gwarantuje to dobrego wyglądu wyniku. W przypadku logo na twarzy maska pokryła 100% nakładki, ale szczegóły twarzy były widocznie uszkodzone; wykrycie wszystkich pikseli nakładki nie oznacza ich poprawnego odtworzenia. Poniżej porównano materiał publiczny z syntetycznym napisem i rzeczywistym wynikiem naprawy z przeglądarki.

Trudny przypadek przewijających się komentarzy sprawdzono też w dodatkowym przebiegu z udoskonaloną maską: uzyskał wynik 24,91 dB przy pokryciu maską 99,60%, w porównaniu z 28,15 dB i 99,92% dla maski domyślnej. Ten wariant pomaga analizować kompromis między dokładniejszą granicą a podobieństwem pikseli, ale nie zastępuje domyślnego wyniku w tabeli ośmiu przypadków. Obie wartości to pomiary jednej syntetycznej sceny.

Porównanie klatek: czysty materiał referencyjny, syntetyczny napis i wynik naprawy w przeglądarce.
Kontrolowana, dwusekundowa próbka napisów. Napis dodano na potrzeby testu; osoba i miejsce pochodzą z materiału publicznego z podanym źródłem.
Porównanie klatek: czysty materiał referencyjny, syntetyczne przewijane komentarze i wynik naprawy w przeglądarce.
Przewijające się komentarze wymagają wykrywania w każdej klatce. Ten test z jednym wierszem można naprawić; nie potwierdza to skuteczności w przypadku gęstych komentarzy na całym ekranie.

Ponowna kontrola skompresowanych eksportów z rzeczywistego procesu w przeglądarce

Główny test porównawczy mierzy wynik modelu przed kodowaniem. Wyeksportowaliśmy też cztery materiały testowe do plików MP4 za pomocą lokalnego przepływu pracy QuietTake w przeglądarce i zmierzyliśmy zdekodowane pliki, więc raport nie opiera się wyłącznie na wewnętrznych tensorach modelu. Każdy wynik ma dwie sekundy, rozdzielczość 640 na 360 i 48 klatek. Wideo i audio zdekodowały się poprawnie, a eksport zachował ścieżkę audio. Test przeprowadzono w Chromium z WebGPU na urządzeniu z Apple Silicon i 16 GiB pamięci, przy modelu znajdującym się już w pamięci podręcznej przeglądarki. Pobranie modelu przy pierwszym użyciu, około 98,5 MB w tej wersji, nie jest wliczone do zmierzonych czasów.

TypPSNR w zakodowanym, zasłoniętym obszarzeMAE w zasłoniętym obszarze (0–255)MAE poza obszaremCzas przetwarzania w przeglądarce
Logo graficzne38,58 dB2,472,3023,4 s
Półprzezroczysty tekstowy znak wodny30,25 dB4,612,3023,4 s
Napisy w dwóch wierszach21,99 dB14,502,3120,4 s
Przewijające się komentarze24,16 dB5,572,3023,0 s

MAE poza obszarem na poziomie około 2,3 wynika głównie z różnic kodowania H.264. Nie oznacza to, że model naprawczy wygenerował ponownie całą klatkę. Z kolei tabela algorytmów zawiera pomiary tych samych syntetycznych pikseli wykonane przed kodowaniem. Tabele dotyczą różnych etapów i nie należy odejmować od siebie podanych w nich wartości. Czas w przeglądarce zmierzono na tym urządzeniu dla próbek dwusekundowych, przy rozgrzanej pamięci podręcznej modelu; nie jest to obietnica działania w czasie rzeczywistym ani uniwersalnej szybkości.

Próbki wejściowe i wyjściowe oraz informacje o źródle opisano w rejestrze materiałów eksperymentu. Powyższe wideo to MP4 utworzony w przeglądarce; na obrazach porównawczych naprawione klatki zestawiono z czystymi obrazami referencyjnymi i syntetycznymi nakładkami.

Dlaczego dobry wynik może oznaczać uszkodzony obraz

Stałe logo na płaskiej powierzchni łatwiej usunąć, ponieważ pobliskie piksele dostarczają modelowi wiarygodnego kontekstu. Gdy logo zasłania twarz, ukryte oczy, nos i szczegóły skóry mogą nie pojawić się w żadnej innej klatce; model musi je oszacować. Wyższy PSNR w tej małej próbce nie odtwarza prawdziwych szczegółów tożsamości. W przypadku wiadomości, archiwów lub materiału dowodowego nie przedstawiaj wygenerowanych pikseli jako faktów historycznych.

Półprzezroczysty tekst na ubraniu to kolejny trudny przypadek. Znak miesza się z kolorem tkaniny, więc jego usunięcie zmienia również teksturę. Przy rzadko pojawiających się ruchomych komentarzach tło może być widoczne w innych klatkach. Jeśli wiersze się nakładają, osoba porusza się szybko albo tło się zmienia, po naprawie mogą pozostać fragmenty, smugi lub migotanie. Napisy na ubraniach, liściach lub drobnych wzorach są wrażliwe na szerokość maski i kształt znaków.

Pokrycie maską ma wąski mianownik: mierzy, jaka część znanej syntetycznej nakładki została objęta wygenerowaną maską. W tym teście położenie i kształt są kontrolowane. Rzeczywiste napisy mają obrysy, cienie, szum kompresji i zmieniające się tło. Pokrycie na poziomie 99,6% nie oznacza, że „naprawionych zostanie 99,6% filmów użytkowników”. To pokrycie pikseli w tym eksperymencie, a nie wskaźnik skuteczności produktu.

Jak sprawdzić własny klip

Zacznij od kopii i wybierz reprezentatywny fragment, około dwóch do pięciu sekund, zawierający trudną nakładkę. Uwzględnij ruch, zmianę napisów lub cięcie sceny, jeśli właśnie wtedy pojawia się problem. Podgląd pokazujący tylko pierwszą klatkę nie wystarczy, gdy błąd pojawia się pod koniec. Sprawdź, czy zaznaczony obszar nie obejmuje też twarzy, szyldów, zwykłego tekstu w scenie ani ważnych obiektów; większy obszar zmusza model do wygenerowania większej liczby pikseli.

Obejrzyj nagranie raz z normalną prędkością, a potem sprawdź naprawiony obszar. Zatrzymaj obraz, by przyjrzeć się teksturze i krawędziom tekstu; odtwarzaj bez przerw, by zauważyć pozostałości, powidoki, migotanie lub nagłe zmiany kształtu. Sprawdź, czy poza maską nie zmieniły się twarze, dłonie, ubrania ani tło. Obejrzyj pierwszą i ostatnią klatkę, a potem przejdź do losowych miejsc, zamiast sprawdzać tylko klatkę, którą aplikacja wybrała do podglądu.

Sprawdź również dźwięk. Kontrolny materiał wejściowy zawiera syntetyczny ton testowy, a eksporty z przeglądarki zachowały możliwą do zdekodowania ścieżkę audio. Potwierdza to działanie potoku eksportu w tym teście; nie gwarantuje, że każda przeglądarka lub kodek zachowa każdą ścieżkę dźwiękową. Odtwórz rzeczywisty eksport, sprawdź czas trwania i synchronizację ruchu ust z dźwiękiem, a jeśli wynik niespodziewanie nie ma dźwięku, sprawdź przyczynę, zamiast wyciągać wnioski na podstawie wyciszonego podglądu.

Aby odtworzyć test porównawczy algorytmu, uruchom skrypt projektu dla ośmiu przypadków na tych samych materiałach wejściowych, czystych obrazach referencyjnych i maskach użytych do oceny. Surowe wyniki i lokalny wynik z przeglądarki są przechowywane osobno. Podaj konfigurację modelu, informację o użyciu dopasowania maski do kształtu znaków, rozdzielczość, liczbę klatek na sekundę, sposób doboru klatek referencyjnych i etap kodowania. Nie łącz wartości PSNR z różnych etapów. H.264 zmienia zdekodowane piksele, więc MAE po kodowaniu nie zastępuje porównania modelu przed kodowaniem.

Wynik testu porównawczego to nie wskaźnik skuteczności dla użytkowników

PSNR w obszarze zakrytym mierzy odległość od znanych, czystych pikseli. Sprawdza się to w testach syntetycznych z dokładnymi klatkami referencyjnymi. Filmy użytkowników rzadko zawierają niezasłoniętą kopię każdej zakrytej klatki, więc tego samego wyniku nie da się obliczyć dla zwykłych przesłanych materiałów. Wyższy wynik oznacza, że piksele są bliższe materiałowi referencyjnemu w tych warunkach. Nie gwarantuje naturalnie wyglądającego ruchu ani odtworzenia prawdziwej ukrytej sceny.

Pokrycie maską również ma własny mianownik: to odsetek znanych pikseli nakładki objętych maską. W testach syntetycznych miejsca i kształty są kontrolowane, natomiast prawdziwe napisy zawierają artefakty obrysu, cienia i kompresji. Nie przekładaj wyniku pokrycia 99,6% na twierdzenie, że „99,6% filmów zostało skutecznie oczyszczonych”. W praktyce liczy się to, czy zostały jakieś napisy, czy usunięto zwykłe obiekty i czy poprawiony obraz migocze podczas odtwarzania.

Czas eksportu dwusekundowego klipu w przeglądarce nie jest miarą szybkości działania w czasie rzeczywistym. Cały proces może obejmować dekodowanie wideo, pobieranie modelu lub odczyt z pamięci podręcznej, wykrywanie tekstu, naprawę obrazu, kodowanie dźwięku i pobieranie pliku wynikowego. Pobieranie przy pierwszym użyciu to osobny etap. Na szybkość i błędy wpływają GPU, sterownik, przeglądarka, kodek i dostępna pamięć. Wewnętrzne ponowne testy powinny uwzględniać wyniki zarówno przy pustej, jak i zapełnionej pamięci podręcznej oraz odnotowywać zmianę precyzji, brakujące klatki i błędy przeglądarki.

Praktyczne wskazówki dla twórców

  • Małe, nieruchome logo na jednolitym tle: zacznij od krótkiego podglądu i sprawdź krawędzie na tle obrazu.
  • Wtopione napisy lub sporadyczne komentarze: sprawdź zmiany w tekście, ruch obiektów i cięcia scen w całym wybranym przedziale.
  • Znaki na twarzy, tkaninie lub ważnym obiekcie: sprawdź, czy szczegóły pod spodem nie są zniekształcone; zachowaj oryginał, jeśli wygenerowane szczegóły są nie do przyjęcia.
  • Osobna ścieżka napisów lub komentarze w odtwarzaczu: najpierw wyłącz lub usuń tę warstwę; rekonstrukcja pikseli obrazu nie jest konieczna i może obniżyć jakość.
  • Wywiady, wiadomości i archiwalia: zachowaj źródło, oznacz poprawioną kopię jako edytowaną i nie przedstawiaj wygenerowanego tła jako oryginalnego zapisu.

W narzędziu do usuwania elementów z wideo wyświetl podgląd krótkiego fragmentu zawierającego najtrudniejszy przypadek. Przed eksportem sprawdź krawędzie, ludzi, ruch i ścieżkę dźwiękową. Dobre wyniki przy prostych, nieruchomych znakach nie przesądzają o rezultatach w trudnych przypadkach obejmujących twarze i tkaniny.

Metoda i ograniczenia

Badanie ośmiu przypadków wykorzystuje Python i OpenCV do oceny pikseli oraz rzeczywisty eksport lokalny w przeglądarce Chromium. Wskaźniki obliczono w syntetycznych obszarach maski, porównując je z czystymi klatkami referencyjnymi; MAE to średni błąd bezwzględny kanałów. Zestaw materiałów do naprawy wykorzystuje jedno bazowe, należące do domeny publicznej źródło wywiadu z syntetycznymi nakładkami. Nie obejmuje wszystkich ujęć, czcionek, rozdzielczości, wideo pionowego, HDR ani gęstych, przewijanych komentarzy na całym ekranie.

Test w przeglądarce przeprowadzono w Chromium z WebGPU na komputerze Apple Silicon z pamięcią 16 GiB. Pomyślne dekodowanie dowodzi, że pliki dają się odczytać pod względem struktury, a nie że każda klatka wygląda bez zarzutu. Pliki modeli były już w pamięci podręcznej; przy pierwszym użyciu trzeba pobrać większy plik. Inne GPU, przeglądarka, sterownik i kodek wejściowy mogą zmienić szybkość lub spowodować błąd.

Te testy nie stanowią oszacowania skuteczności dla dowolnych przesyłanych obecnie materiałów ani nie gwarantują odtworzenia prawdziwego ukrytego obrazu. Gęste nakładki i szczegóły ludzkiej postaci nadal wymagają sprawdzenia. Jeśli wygenerowane szczegóły sceny mogłyby bardziej wprowadzać w błąd niż widoczny znak, zachowaj źródło albo przerwij naprawę.

NASTĘPNY KROK

Pracuj dalej nad swoim materiałem

Wróć do poradników dla twórców