Overview: Automatic Rotoscoping

Door Arne Borremans

Automatisch rotoscopen zou een zeer arbeidsintensief deel van een productie kunnen versnellen. Het is dus interessant om eens te bekijken waar men tot op heden zit in het onderzoek naar algoritmes die dit kunnen waarmaken. In deze blog kijken we naar 4 verschillende, recente technieken en programma’s die streven naar (semi-)automatisch te kunnen rotoscopen.

Comixify

Comixify is een project ontstaan uit 5+ jaar onderzoek aan de universiteit van Warschau, Stanford en Columbia. Initieel was het een platform bestemd om een video, automatisch naar een gestileerde strip te converteren. Maar gedurende 2020 hebben ze hun arsenaal uitgebreid en o.a. automatic rotoscoping, gedreven door artificial intelligence, toegevoegd.

Gebruik

Comixify werkt met reference frames die al gerotoscoped zijn. Dit betekent dus dat je zelf manueel enkele frames moet rotoscopen, het is aangeraden dat dit belangrijke momenten zijn in de video waarbij de AI eventueel problemen bij zou kunnen vertonen. Na het leveren van enkele reference frames wordt de video automatisch verwerkt, er is dus geen verdere manuele input vereist / mogelijk.

Background Matting V2

Background Matting V2 is een automatisch rotoscoping algoritme ontwikkelt door de universiteit van Washington en gepubliceerd in het begin van 2021. Background Matting V2 vertoont veel potentieel in zake details omtrent het haar en de mogelijkheid om real-time te kunnen werken (60 FPS HD / 30 FPS 4K op een GTX 2080 TI).  

Gebruik

Het gebruik van Background Matting V2 is zeer simpel, het enige dat je moet aanleveren is je video en een foto van de achtergrond van je scene, zonder je onderwerp. Omdat het algoritme een foto van de achtergrond nodig heeft, is er een grote limitatie op wat soort video’s we kunnen gebruiken. Ook mag de camera niet bewegen, camera’s die met de hand worden vastgehouden en minieme bewegingen vertonen, kunnen wel gebruikt worden mits dit wordt aangeduid in de opties.

RunwayML

RunwayML is een programma die gebruik maakt van machine learning om automatisch je gekozen onderwerp te detecteren en te volgen doorheen de video. Het heeft zeker al zijn sporen verdient sinds het gebruikt wordt door o.a. Google, New Balance en Facebook. RunwayML vereist geen enkele installatie, alles gebeurd vanuit je browser, je hoeft dus geen high-end pc te hebben vermits alles online gebeurd.

Gebruik

Het rotoscopen met RunwayML is zeer eenvoudig, het vergt geen enkele tutorial om er mee aan de slag te kunnen gaan. Het enige wat je moet doen is je onderwerp aanduiden, d.m.v. punten die je plaatst op de locaties die je (niet) wil rotoscopen. RunwayML zal dan automatisch, voor heel de video, voorspellen wat het precies moet uitknippen.
RunwayML zal hoogstwaarschijnlijk niet vanaf de eerste keer alles correct aanduiden, daarom kan je elke frame zelf nog manueel aanpassen door opnieuw punten te plaatsen. Waarna de video, met deze extra informatie, terug opnieuw gerotoscoped wordt.

Er is ook een nadeel aan de eenvoud van RunwayML, zijnde dat er niet veel manuele opties aanwezig zijn om je rotoscope te perfectioneren. Je kan dus niet altijd de omtrek van je onderwerp super accuraat aanduiden.

Roto Brush 2

Roto Brush 2 is een tool die te vinden is in Adobe After Effects. Ook Roto Brush 2 maakt gebruik van  AI om de randen van je onderwerp te volgen.  Het valt te vergelijken met RunwayML maar met meer mogelijkheden tot manuele input.

Gebruik

Net zoals RunwayML is het vereist je onderwerp aan te duiden. Dit doe je door met een brush over je onderwerp te gaan, net zoals de “Quick Selection Tool” van Photoshop. Hierna zal After Effects heel de video proberen te rotoscopen, en opnieuw kan je dan verbeteren waar nodig.

Een groot voordeel van Roto Brush 2 zijn de verschillende settings die te gebruiken zijn om je rotoscope te verfijnen. Je hebt opties zoals “feather”, “Shift Edge”, “Reduce Chatter”, ook heb je een refinement tool, die je kan gebruiken om details zoals haar beter vast te leggen.

Testing

Om een compleet beeld te verkrijgen wat de sterke en zwakke punten zijn van elke techniek, zijn ze getest op verschillende soorten fragmenten en vergeleken met elkaar. In zo goed als elk fragment is er een aspect aanwezig waarbij de AI het eventueel moeilijk mee kan hebben.  De video’s zijn altijd in HD of 4K.
Background Matting V2 is met andere video’s getest door het vereist aanwezig zijn van een foto van de achtergrond zonder onderwerp.

Standaard video

We bekijken niet enkel video’s die uitdagend kunnen zijn voor de AI, maar ook fragmenten die minder moeilijk zijn om te rotoscopen. Deze video omvat een persoon die over een plein wandelt en gevolgd wordt door een camera. De persoon bevindt zich altijd in het midden van het scherm.

Half transparantie

Half transparantie kan het moeilijker maken voor het algoritme om te identificeren of het object bij de voor- of achtergrond hoort vermits het verschil tussen de pixels in het half transparante object en de pixels van de achtergrond zeer gelijkend zijn.

In en uit beeld

In dit geval testen we of het algoritme weet te detecteren wanneer het onderwerp het scherm verlaat en belangrijker, of het weet te herkennen wanneer het terug in beeld komt.

Belemmering & beweging

Ten laatste hebben we een fragment waarin zowel de camera als het onderwerp beweegt. Ook wordt het onderwerp doorheen de video belemmerd door enkele pilaren. Dit is veruit het meest uitdagende voorbeeld die we testen op de AI.

RunwayML

De lage resolutie is te danken aan de niet betalende versie van RunwayML.

De resultaten van RunwayML zien er degelijk uit, maar vertonen toch enkele onregelmatigheden.

Zelfs in de simpelere video, waar een persoon wandelt over een plein, zien we artefacten bij de schoenen en de opening die gecreëerd wordt tussen de arm en het lichaam. Zelfs na manuele interventie wist het algoritme zijn fouten niet te verbeteren. 

RunwayML heeft geen problemen met half transparantie, er waren wel enkele manuele aanpassingen nodig maar niets buiten proportie. Een helpende factor zou de traagheid van de video kunnen zijn, maar uit verder onderzoek is er geen verband gevonden tussen de snelheid van de video en de accuraatheid van de rotoscope. Het hele proces duurde 17 minuten.

Het detecteren van onderwerpen die in en uit de scene lopen gebeurde automatisch. Maar er kwam een ander probleem aan het licht bij het manueel verbeteren van de rotoscope in RunwayML. Wanneer een frame meerdere onderwerpen bevat die gescheiden zijn van elkaar. En je wil deze frame aanpassen door een van de onderwerpen beter aan te duiden, wordt de informatie over het ander onderwerp verwijdert, en moet je deze dus ook helemaal opnieuw selecteren. Dit is zeer contraproductief, zeker wanneer je meerdere frames moet aanpassen. Hierdoor duurde dit hele proces 55 minuten.

Een bijkomend probleem zijn de openingen tussen de handen die niet correct zijn afgeknipt, hoogstwaarschijnlijk omdat deze te klein zijn om te detecteren vermits al de algoritmes problemen vertoonden bij onderwerpen die maar een klein deel van het scherm innamen.

Ten laatste, als we kijken naar de resultaten van de meest ingewikkelde video, merken we op dat het moeilijkheden heeft met de randen van het onderwerp consistent te volgen. En opnieuw kwam hetzelfde probleem te boven, meerdere onderwerpen die te rotoscopen zijn (het lichaam links en rechts van de pilaar), waardoor dit hele proces ook 55 minuten duurde. En hiermee is het resultaat zelfs niet ideaal.

Bij de laatste twee fragmenten kan je ook enkele instanties zien waarbij er delen uit het onderwerp incorrect zijn uitgesneden. 

Roto Brush 2

Ook al is Roto Brush 2 de meest manuele techniek, zien de gecreëerde rotoscopes er veelbelovend uit. 

Beginnend met de eerste video, zijn er enkele artefacten zichtbaar rond de schoenen. Dit komt door een combinatie van het proberen te tracken van de veters van de schoen, en het bewegen van de schaduwen. Schaduwen zijn zowel een probleem bij Roto Brush 2, als bij RunwayML. Dit is meestal dan ook waar de meeste manuele interventie vereist is. 

Ook half transparantie vormt geen enkel probleem mits enkele minieme aanpassing waardoor het in totaal 15 minuten duurde.

Roto Brush 2 weet wel niet te detecteren wanneer het onderwerp terug in de scene tevoorschijn komt. Maar dit is geen groot probleem vermits wanneer je het onderwerp weer eenmaal aanduidt, het terug automatisch gevolgd wordt. Net zoals bij RunwayML lijkt het uitknippen van de zones tussen de hand wel wat moeilijker.

Zelfs met de complexe video weet Roto Brush 2 een redelijk accurate rotoscope te produceren. De randen zijn consistenter dan die van RunwayML, maar er zijn toch nog enkele artefacten zichtbaar. Het maken van deze volledige rotoscope duurde 26 minuten.

Comixify

 

Alhoewel Comixify de simpele video het best weet te rotoscopen uit al de andere technieken, doet het op de andere fragmenten het slechtst.

Wanneer we kijken naar de eerste video, zijn de enige foutjes die te zien zijn opnieuw rond de schoenen. Het gat bij de armen weet hij wel weg te knippen, alhoewel niet volledig. 

Bij het tracken van beide onderwerpen, die in en uit de scene gaan, gaat het helemaal de mist in. Het lijkt erop dat het moeilijkheden heeft met twee onderwerp tegelijk te traceren.

Tot slot, bij het laatste fragment is er een overvloed aan artefacten. Het scheiden van de voor- en achtergrond is meestal niet correct, en  het detecteren van het onderwerp voorbij de balk gebeurd ofwel niet, ofwel te laat.

Background Matting V2

Alhoewel Background Matting V2 andere video’s nodig had, door het vereist aanwezig zijn van een achtergrond foto, en het (bijna) niet bewegen van de camera, hebben we wel dezelfde aanpak. Het doel is om nog steeds de limitaties te onderzoeken, zoals half transparantie, belemmering, … 

Bevindingen

De bevindingen die we kregen kwamen niet overeen met de resultaten die gepubliceerd werden door de wetenschappers. Meestal kregen we opmerkelijk gedetailleerde resultaten rond het haar, maar ontstonden er elders enorme artefacten. En dit was geen geïsoleerd geval, bij al de tientallen fragmenten doken dezelfde problemen op. 

Onderzoek

Verscheidene mogelijke video’s zijn uitgetest geweest. Het verschil tussen 720p, HD en 4K is er, 4K produceert betere resultaten dan 720p & HD, maar nog steeds niet accuraat genoeg om aan de verwachtingen te voldoen. 
Ook verschillende soorten video’s gaven dezelfde resultaten: binnen & buiten, 1 onderwerp & meerdere onderwerpen, …

De manuele input die Background Matting V2 voorziet is miniem. Er zijn enkele parameters die gewijzigd kunnen worden die invloed hebben op het eindproduct. Van deze parameters is er maar een enkele die grote invloed heeft op de vorm van de rotoscope. Zoals te zien in het voorbeeld hierboven, is het zeer moeilijk om te bepalen wat de beste waarde is voor deze parameter. En door het gebrek aan manuele input, kan je niet beslissen waar deze verbeteringen plaats vinden. En een correcte waarde voor 1 locatie, kan juist een compleet fout beeld laten ontstaan op een ander deel van de video. Ook dit was geen oplossing voor een accurate rotscope.

Conclusie

We zitten nog niet op het punt waarin automatische programma’s en technieken het complete rotoscopeproces kunnen overnemen. Maar de technieken die vandaag bestaan kunnen zeker al een helpende hand bieden, zeker in de eerste ruwe fase van een productie.

RunwayML

RunwayML is een zeer gebruiksvriendelijk programma voor snelle en ruwe rotoscopes. Maar wanneer je verder in detail wil gaan, is het afwezig zijn van vele manuele opties een grote hindernis en zal je toch eerder geneigd zijn om met Roto Brush 2 te werken.

Door het afwezig zijn van de manuele opties, werkt RunwayML het best met fragmenten waarbij het onderwerp zeer duidelijk af te scheiden is met de achtergrond, en waarin er geen al te kleine details gerotoscoped moeten worden. Ook zal je met video’s die meerdere onderwerpen bevatten,  best naar een andere techniek overschakelen.

RunwayML kan zeer zeker productief gebruikt worden, mits je fragmenten gebruikt die goed liggen voor het algoritme.

Roto Brush 2

Roto Brush 2 is de beste techniek om fragmenten automatisch te laten rotoscopen. Het werkt goed in het automatisch traceren van je onderwerp, en het is gemakkelijk om zelf manuele aanpassingen te verrichten door het arsenaal aan manuele settings die worden aangeboden. Maar vergis je niet, het is niet dat je op 1 knop drukt, en alles wordt gedaan voor jou, je zal nog steeds tijd moeten steken in het optimaliseren van de gecreëerde rotoscope.  

Je kan Roto Brush 2 bekijken als een grote upgrade van RunwayML. Er zijn meer opties aanwezig en het rotoscopen van ingewikkeldere video’s is mogelijk.

Comixify

In de staat waar Comixify zich nu in bevindt, is het nog geen rendabele techniek. De accuraatheid van de geproduceerde rotoscopes zijn nog te inconsistent. En vermits je geen zicht hebt op het hele proces, kan je pas helemaal op het einde bekijken wat en waar er iets fout gelopen is. 

Er is wel degelijk een toekomst voor Comixify. We mogen niet vergeten dat Comixify de meest accurate rotscope heeft kunnen creëren van de eerste, simpele video. Wetend dat de makers bezig zijn met zowel het verbeteren van het algoritme, als het produceren van plug-ins voor bestaande software, mag je Comixify niet uit het oog verliezen.

Background Matting V2

Tot slot hebben we Background Matting V2, een techniek die er veelbelovend uitzag, maar toch niet de resultaten gaf die verwacht werden. 

Als je een goed gedetailleerde rotoscope van haar nodig hebt, kan Background Matting V2 zeker gebruikt worden, maar alles buiten dat haar zal niet correct uitgeknipt zijn. Geen enkele video die we gebruikt hebben was accuraat gerotoscoped. En zelfs na het zoeken naar de optimale scene met de correcte instellingen was er geen succes. Hierdoor is deze techniek dus niet geschikt voor het creëren van automatische rotoscopes, en is het nog wachten op verdere evoluties van deze techniek.

Links