Wpis z mikrobloga

Do tej pory wyszło już pięć projektów #deepwykop i wydaje mi się, że warto zrobić krótkie podsumowanie. Zanim zacznę, chciałbym podziękować wszystkim Wykopowiczom, którzy pomogli mi dobrą radą, podrzucili ciekawy pomysł, a w szczególności tym którzy dostarczyli konstruktywnej krytyki tych elementów, które najbardziej raziły bądź trochę mi nie wyszły a często tego nie zauważyłem.

Przypominam, że wykopowy projekt rozkminiania technologii Deep Fake polega na tym, że próbuję różnych podejść, więc nie zawsze efekt końcowy jest tip top. Zdaję sobie sprawę, że Tomasz Karolak wypadł bardzo mizernie zwłaszcza w porównaniu z poprzednim odcinkiem gdzie wystąpił Jaś Fasola w roli Yennefer.

Teraz przejdźmy do podsumowania czego do tej pory się nauczyliśmy:

#1 (Steven Seagal jako Wiedźmin) - trainowanie na podstawowym modelu bez większej zmiany ustawień końcowych nie licząc przesunięcia granic maskowania, na mega wysokiej rozdzielczości plikach źródłowych

Pierwszy projekt i do tego taki gdzie opierałem się praktycznie wyłącznie na podstawowym algorytmie przerabiania. Gdybym posiadał wtedy wiedzę na temat procesu jaką mam teraz efekt byłby znacznie lepszy, przede wszystkim w fragmentach gdzie doszło do rozmycia. Bardzo ważna lekcja to taka, że kluczową rolę pełni plik źródłowy w dużej rozdzielczości, a zwłaszcza podobna mimika, i kiedy ten warunek jest spełniony to programik sam z siebie potrafi na default ustawieniach zrobić swoją "magię".

#2 (Paździoch z Rivii) - trainowanie super krótkich fragmentów w beznadziejnie słabej rozdzielczości i próba ogarnięcia strat za pomocą korekcji końcowej

Tutaj można zaobserwować pewien ewenement. Pan Ryszard Kotys ma prawie identyczny układ twarzy jak pan Michał Żebrowski, przez co proces trainingu (dopasowania) odbywał się niesamowicie szybko i sprawnie. Natomiast główną przeszkodą był brak plików źródłowych w dobrej jakości. Operowałem fragmentami serialu w rozdzielczości bodajże 360p może 480p ale dziwnie rozpikselowanej. Co ciekawe, program dość sprawnie przetrawił artefakty i potrafił poprawić lekko wynik.

#3 (Triss) - poustawiałem rozdzielczości na obłędne przez co musiałem zmniejszyć batch do pojedynczego. Pierwsze podejście do właściwego Deep Fakeowania gdzie rezultat był zbliżony do tego czego oczekiwałem.

Dzięki zestawieniu filmika przed i po widać dokładnie jak idealnie dopasowana przez program została mimika postaci. Z tego powodu, że ustawienia jakich użyłem były bardzo wymagające sprzętowo, znacznie spowolniło to proces trainingu, natomiast efekt jest wyraźnie lepszy niż w poprzednich projektach.

#4 (Jaś Fasola) - zdecydowałem się sprawdzić jaki efekt daje milion iteracji (trawiło się to łącznie jakoś dwa tygodnie) i ostra korekta końcowa gdzie wiedziałem już jak ustawić większość parametrów.

Pierwszy projekt, gdzie skupiłem się na opcjach dostępnych na etapie merge. Podobnie jak w przypadku filmika z Triss próbowałem wycisnąć jak najwięcej się dało aby programik mógł ruszyć z trainingiem z użyciem bardzo wysokich parametrów, a dopasowywanie puściłem na bardzo długo, by sprawdzić jak bardzo wpływa to na efekt finałowy. Pojawił się mały zgrzyt, ponieważ twarz trochę skakała. Dodatkowo musiałem skorygować wielkość twarzy zmieniając skalę. Czyżby zbyt długi proces trainingu wpłynął negatywnie na wynik?

#5 (SlavGyver) - pierwsza próba ogarnięcia mocno niepasujących do siebie układem twarzy. Dwa różne procesy trainingu z innymi parametrami. Efekt w porównaniu z taką Triss czy Jasiem Fasolą mizerny, ale to jeden z najbardziej owocnych etapów projektu pod względem zdobytej wiedzy na temat procesu deepfejkowania.

Przy skrajnie różnych twarzach program lekko wariuje. Zauważyłem ciekawą sytuację, gdzie część twarzy dopasowana jest szybko i sprawnie, natomiast oko jest rozmyte, i rozciągane skrupulatnie, tak jakby program szukał miejsca gdzie je usytuować. W tym momencie nie mogło już być dopasowania a bardziej morphowanie twarzy źródłowej żeby mogła być wklejona, przez co w efekcie SlavGyver nie do końca przypomina Tomka Karolaka. Niemniej jednak warto było przeprowadzić tę próbę, choć nieudaną ale bardzo owocną w spostrzeżenia. Im bardziej twarze są zbliżone, tym krócej program je "ogarnia" i tak samo w drugą stronę, jeśli twarze są zupełnie niepodobne układem, program zacznie się krztusić, przerabiać plik źródłowy i długo procesować jak by tu go ugryźć.

To tyle w dzisiejszym update'cie. W następnym etapie projektu skupię się na wykorzystaniu zdobytej do tej pory wiedzy i testowaniu jak można usprawnić proces pod względem wydajności.

Pozdrawiam serdecznie i życzę udanego dzionka!

#deepfake #technologia #sztucznainteligencja #machinelearning