Google stworzył algorytm, który pozwoli spowolnić każde wideo bez utraty jakości. Efekty robią wrażenie

Jak zrobić film w zwolnionym tempie? Wystarczy, by oryginalne nagranie miało odpowiednią liczbę klatek na sekundę, tak by po zwolnieniu wideo odtwarzało co najmniej 24-30 fps (frames per second – klatki na sekundę). Wtedy zostanie zachowana płynność ruchu. Jeśli więc chcemy zwolnić wideo dwukrotnie, to oryginalny materiał powinien mieć co najmniej 60 klatek na sekundę. Jeśli czterokrotnie – 120, ośmiokrotnie – 240 i tak dalej.

Współczesne smartfony mają możliwość nagrywania w tych formatach, jednak zwykle dzieje się to kosztem utraty jakości. Wysokiej jakości filmy w zwolnionym tempie pozostają domeną drogiego, profesjonalnego sprzętu.

Istnieje możliwość przerobienia „normalnego” wideo tak, by dało się je zwolnić. Osiąga się to przez interpolację – na podstawie istniejących klatek generuje się klatki pośrednie. Służą do tego narzędzia wykorzystujące modele uczenia maszynowego, np. Twixtor. Są one jednak drogie, a wygenerowane przez nie wideo często pozostawia wiele do życzenia, głównie przez pojawiające się na wygenerowanych klatkach artefakty – niedoskonałości wynikające z procesu generowania obrazu. Zwykle pojawiają się one na granicy planów – np. tło „wjeżdża” na postać z pierwszego planu.

Nowatorskie podejście zespołu polega na wyposażeniu algorytmu w mechanizm rozumienia głębi obrazu – określenia, który obiekt znajduje się na pierwszym planie, który za nim, który w tle i tak dalej

Wynika to głównie z faktu, że dotychczasowe modele interpolacji nie radzą sobie zbyt dobrze z głębią obrazu. I tu – jak to zwykle bywa – na scenę wkracza Google. A dokładnie Google we współpracy dwóch uniwersytetów – UC Merced i Jiao Tong University w Szanghaju.

Zespół pod kierownictwem Wenbo Bao opracował algorytm interpolacji wideo o nazwie DAIN (Depth-Aware Video Frame Interpolation – interpolacja klatek wideo z uwzględnieniem głębi). Nazwa mówi sama za siebie. Nowatorskie podejście zespołu polega na wyposażeniu algorytmu w mechanizm rozumienia głębi obrazu – określenia, który obiekt znajduje się na pierwszym planie, który za nim, który w tle i tak dalej. To z kolei pozwala na skupienie się na elementach pierwszoplanowych.

Efekt jest zdumiewający. DAIN pozwala „zagęścić” wideo szesnastokrotnie! To znaczy, że film, który w oryginale ma 30 klatek, można przekonwertować w wideo odtwarzane z prędkością 480 klatek na sekundę, który następnie można zwolnić 16-krotnie bez utraty płynności. A to wszystko bez śladu artefaktów!

Adres filmu na Youtube: https://www.youtube.com/watch?v=sFN9dzw0qH8

Zwiększenie animacji poklatkowej do 60 klatek na sekundę przy użyciu sztucznej inteligencji.
Źródło: LegoEddy / YouTube

„Czasowa interpolacja wideo jest bardziej złożona od przestrzennej interpolacji zdjęć, ponieważ obiekty poruszają się pomiędzy klatkami. Nasz algorytm DAIN, jako narzędzie SI, efektywnie i wdzięcznie syntetyzuje nieistniejące klatki” – przyznaje nieskromnie Wenbo Bao na swojej stronie.

Można na niej znaleźć ciekawe przykłady zastosowania algorytmu. Spore wrażenie robi na przykład zaprezentowane w lutym archiwalne wideo przedstawiające ulice Nowego Jorku nagrane w 1911 roku przez szwedzką firmę Svenska Biografteatern. Pierwotny materiał nagrany w kilkunastu klatkach na sekundę przekonwertowano za pomocą DAIN do 60 fps.

Adres filmu na Youtube: https://www.youtube.com/watch?v=hZ1OgQL9_Cw

Wycieczka po Nowym Jorku, rok 1911.
Źródło: Denis Shiryaev / YouTube

Zespół Bao opisał swój algorytm w pracy „Depth-Aware Video Frame Interpolation”. Jeśli chcecie poeksperymentować z algorytmem, wszystkie potrzebne pliki znajdziecie na wspomnianej już stronie lidera zespołu oraz na GitHubie.

Powstaje również aplikacja na system Windows. Jest w fazie Alpha, na razie jest całkowicie darmowa. Można ją wypróbować i przy okazji wesprzeć twórców finansowo w serwisie Patreon. Uprzedzamy, aplikacja nie zadziała na pierwszym lepszym sprzęcie. Przetworzenie wideo o dość standardowej rozdzielczości (720p) wymaga karty graficznej wyposażonej w 10 GB vRAM.