Video verbetering met AI

Video verbetering met AI

Omdat wij binnen onze kerk de laatste tijd behoorlijk zijn gegroeid in kennis en onze livestreams hierdoor gigantisch verbeterd zijn in kwaliteit leek het mij toepasselijk om onze oude introvideo te vervangen met iets nieuws. Van een haperige drone video naar een montage van verschillende livestream momententen, in emotie-opwekkende slowmotion en onderbouwd met een gevoelig nummer (Leeland - Way Maker). Prachtig idee, maar niet zonder drempels. In deze blogpost wil ik graag praten over deze drempels en hoe ik deze ben overkomen door YouTube filmpjes en de realisatie dat AI 1 van de meest krachtigste tools ooit is!

Problemen

Toen ik begon aan het ontwikkelen van de montage kwam ik al snel achter het limiet van YouTube livestreams: kwaliteit. Onze livestreams worden met 6000 kbps verstuurd, maar door de compressie van YouTube krijg je harde grenzen tussen kleuren. Voor meer informatie over deze compressie, bekijk deze video van The Slow Mo Guys. Simpel gezegd, de kwaliteit gaat ten onder, zeker wanneer een camera wat meer beweegt. Omdat ik de shots in slowmotion wil tonen, zal dit extra opvallen. De simpele oplossing zou zijn om de opname van de livestream niet van YouTube te downloaden, maar direct op te nemen tijdens de stream. Helaas hebben we dit niet gedaan, dus ik moet roeien met de riemen die ik heb. Of beter: editen met de shots die ik heb!

Een volgend probleem was framerate. De livestreams die ik heb gedownload zijn in 24fps. Maar, wanneer ik deze shots vertraag wordt ook de fps vertraagd. Een vertraging van 70% wordt 16.8fps, een vertraging van 60% wordt 14.4 enzovoorts. 24fps kan ik mee leven, maar als het onder de 20 begint te vallen haalt het mij persoonlijk uit de video. Daarom wil ik dit ook aanpakken.

Onderzoek

Ik ben gaan zoeken naar een oplossing voor deze problemen en al snel kwam het woord "AI" in mij op. Ik kijk veel video's van de YouTube channel Corridor Digital en deze partij is de laatste tijd erg veel bezig met AI projecten. Van het maken van realistische 3d modellen van hoofden tot aan deepfakes. En toen dacht ik ineens aan een video die ik had gezien, niet van Corridor Digital, maar een andere video die ging over het artificieel verhogen van de fps in een video via interpolatie: https://www.youtube.com/watch?v=-ZoBsy4R2PI (ik raad je aan deze video te kijken, ikzelf was mindblown na de eerste keer dat ik deze video zag).

DAINAPP

In de video wordt er gebruik gemaakt van een AI genaamd DAINAPP (Depth-Aware Video Frame Interpolation), die gebruik maakt van interpolatie om frames te genereren waar deze eerder nog niet bestonden. Interpolatie is het genereren van data op basis van bekende data binnen het bereik. Simpel gezegd, de applicatie split de video in frames en voegt frames toe, met de frames eromheen als context. De hoeveelheid frames kan worden geselecteerd: 2X, 4X of 8X. Als voorbeeld, een 24fps video die 70% vertraagd is (14.4fps) kan met 8X interpolatie een fps bereiken van 115.2.

De AI zet jouw GPU (videokaart) aan het werk om deze missende frames te genereren, wat er als volgt uit ziet:

Video Fidelity


Nu heb ik gemerkt dat niet altijd perfect werkt. Een goed voorbeeld hiervan was een shot van een close-up van een elektrisch gitaar, waarbij de frets op en neer bewogen wanneer de hand op en neer ging en een shot waarin iemand naar de camera zwaait. Dit zijn video's waarbij de context verborgen is (bijvoorbeeld de frets van de gitaar zijn verborgen wanneer de spelende hand eroverheen ligt) en het gezicht van de zwaaiende persoon wordt verborgen wanneer de persoon zwaait. Het verschilt dus erg per shot of de AI goed kan inschatten wat de interpolerende frames moeten bevatten. 1 tip: film niet iemand met een ruitjespatroon op zijn / haar kleding, terwijl diegene omdraait!

In de paper van dit project kun je alle technische details nalezen. De applicatie is ook erg goedkoop voor wat het kan, gratis! Als je de ontwikkelaar wilt ondersteunen kun je hem ook kopen op itch.io voor maar $9.90 USD (Nvidia Only).

De ontwikkelaar van DAINAPP is ook bezig met een nieuwere applicatie, Rife-App, misschien leuk voor een volgend project!

Topaz Video Enhance AI

Vervolgens stuitte ik tegen nog een probleem aan: videokwaliteit. Dit probleem kon ik eigenlijk in tweeën delen: kwaliteit en resolutie. Ik zal beginnen bij de kwaliteit.

YouTube's compressie zorgt ervoor dat fijne details in een video worden verminderd, zodat de video minder zwaar wordt in bestandsgrootte. Als je je bedenkt dat 500 uur aan video op YouTube wordt geuploaded, per minuut (!!!) dan snap je wel waarom YouTube de video's graag ietwat comprimeert. Om dit tegen te gaan vond ik na een beetje googlen de applicatie Topaz Video Enhancer AI waarvan ik de 32 dagen trial heb gebruikt.

Deze applicatie bevat een aantal AI modellen (15 op dit moment) met elk hun sterke en zwakke punten. Via de "AI Model Picker" kun je een aantal vragen beantwoorden, gericht op hoe jij jouw video wilt verbeteren en de Picker kiest vervolgens de juiste AI Model voor jou uit. Vervolgens kun jij een aantal instellingen aanpassen, of jij bijvoorbeeld de resolutie wilt aanpassen of grain wilt toevoegen. Hierbij een voorbeeld van het Model die ik gebruikte om de kwaliteit te verbeteren: Theia Fine Tune Fidelity v4. Ik heb gekozen voor een Video Fidelity AI Model, omdat ik met name de kleurcompressie wil verbeteren met betere randen en anti-aliasing rondom de gecomprimeerde vlakken. Bij het instellen van dit Model heb ik erop gelet geen compressie toe te passen. Ik heb tests gedaan met de meeste van de AI models en deze model gaf het meest gewenste:

Video Fidelity


Oke, ik geef toe, in eerste instantie lijkt er niet al te veel verschil te zitten tussen de twee handen. Maar open de afbeelding is in een nieuw tabblad en kijk goed naar de kleur vlakken die zijn gecomprimeerd (bijvoorbeeld het vlakje rechtsonderin naast de pols). In het originele beeld heeft dit vlak harde randen, maar de randen zijn verzacht in het aangepaste beeld. Ook, als je van een afstandje kijkt naar de handen, zie je dat het contrast van de hand groter is bij het aangepaste beeld.

Deze subtiele aanpassingen lossen misschien niet volledig het probleem van kwaliteit op, maar zorgen er wel zeker voor dat het beeld meer levend aanvoelt. Dit in combinatie met de hogere fps zorgt ervoor dat de video een veel grotere emotionele zwaarte met zich mee brengt. Er volgt nog wel 1 probleem: resolutie, maar deze ga ik later oppakken.

Samenvoeging

Goed, de shots zelf zijn nu aangepast in fps en ietwat in kwaliteit. Vrijwel elke shot heeft een andere fps (de ene shot was met 50% vertraagd, waar de ander met 60, 70, 80 of misschien 90% was vertraagd), maar ik heb er in ieder geval voor gezorgd dat elke shot boven de 60fps ligt. Wanneer ik de video nu render, zal die de fps van de gehele video nivelleren naar 60.

Om de kwaliteit van de shot nog iets meer te verbeteren heb ik een paar filters over de video gegooid. Ik heb een bokeh filter en een light leak filter gebruikt om wat meer onopvallende beweging in de shots te krijgen, zodat de AI artifacts iets minder opvallen. Dit in combinatie met een ingebouwde LUT in Filmora 9 (de editor die ik gebruikt) genaamd Aegean verbergt behoorlijk wat fouten die de AI had gegenereerd.

Maar, nu zit ik nog wel met het probleem van resolutie en scherpte, dit wil ik als geheel aanpakken. Ik pak de gerenderde video zonder intro en outro (dus enkel de montage van shots) en ging op zoek naar een manier om de resolutie en scherpte te verhogen.

Uiteindelijk kwam ik uit bij de AI Model, ook uit Topaz Video Enhance AI, genaamd "Artemis Low Quality v12". Nadat de shots op zichzelf waren verbeterd met de Video Fidelity AI, maakt de Low Quality AI van Artemis alles ontzettend scherp en is de video op magische wijze een stuk scherper geworden! Ook hier heb ik vanzelfsprekend geen compressie toegepast.

Als laatste heb ik de muziek onder de video iets aangepast in FL Studio zodat deze beter looped en heb ik het intro en de outro toegevoegd.

Eindresultaat

Benieuwd naar het eindresultaat? Here you go!

Nawoord

Wat dus begon als een simpele montage maken, eindigde in een super leuk onderzoek waar ik zelf ontzettend leuke nieuwe inzichten van heb gekregen op het gebied van het gebruiken van AI bij "dagelijke" taken. Om die reden wil ik het ontzettend graag delen met anderen, dus bij deze een blogpost! Ik hoop dat jullie als lezers hiervan hebben genoten!