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!
„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.
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.