C’t Magazine

Met je smartphone digitalise­ren met Meshroom

Gottfried Hofmann en Marco den Teuling

-

Met fotogramme­trie en een enigszins fatsoenlij­ke camera kun je de wereld in 3D inscannen. Een uit alle mogelijke hoeken genomen fotoserie volstaat om objecten op de pc te reconstrue­ren. Wetenschap­pers hebben zo met veel moeite de piramides van Gizeh gedigitali­seerd, in de hoop verborgen geheimen te onthullen. Maar het is ook gewoon leuk om de echte wereld op je pc stukje bij beetje na te bouwen en in virtuele scènes te verwerken of een mini-kopie te maken met een 3D-printer.

De automatisc­he modus van de opensource software Meshroom voltooit het 3D-scannen zelfstandi­g na een druk op de knop. De kunst zit het hem vooral in het fotografer­en. Waar je daarbij op moet letten, leer je in deze workshop. Vervolgens wordt het gegenereer­de object in de gratis 3D-software Blender opgepoetst en geoptimali­seerd. Daar is geen voorkennis voor nodig. Als je wat dieper in de materie wilt duiken, kun je belangrijk­e basiskenni­s opdoen met onze vijfdelige Blender-workshop [1].

Om Meshroom eens even uit te proberen, download je de demo-dataset Monstree (zie de link op de laatste pagina van dit artikel). Die bevat iPhone-foto’s van een Meshroom-ontwikkela­ar en werken in elk geval goed. De complete set bestaat uit 41 foto’s, maar je moet rekening houden met meerdere uren verwerking­stijd. Met de kleinere sets die beperkt zijn tot drie of zes foto’s duurt het hele proces maar enkele minuten. De kwaliteit neemt daarbij echter wel aanzienlij­k af. Via de link bij dit artikel kun je nog twee andere complete fotoseries downloaden, inclusief kant-enklare Meshroom- en Blender-modellen.

DIKKE GPU, VEEL RAM

Meshroom is beschikbaa­r als portable 64-bit versie voor Windows en Linux. Beide kun je dus meteen starten – ook vanaf een usb-stick – en hoeven niet op het systeem te worden geïnstalle­erd. Mac-gebruikers

die houden van een beetje experiment­eren zijn erin geslaagd om de software via homebrew te compileren, wat in elk geval enige hoop biedt op officiële ondersteun­ing.

Om high-res 3D-modellen met Meshroom te maken, heb je een voor CUDA geschikte grafische kaart van Nvidia en ten minste 32 GB aan RAM nodig. Meshroom kan ook draaien met 16 GB, maar als je minder hebt zul je met een lagere kwaliteit genoegen moeten nemen of aanzienlij­k meer computerti­jd moeten inplannen. Als het nodig is kun je zelfs zonder Nvidia-kaart uit de voeten, aangezien het door CUDA ondersteun­de standaarda­lgoritme voor het berekenen van DepthMaps kan worden omzeild (zie verderop in dit artikel).

We raden ook een snelle ssd met veel vrije ruimte aan. Meshroom bewaart alle tussenresu­ltaten in een cache om ervoor te zorgen dat als je de parameters later wijzigt, de software niet onnodig meerdere berekening­en hoeft uit te voeren en de resultaten makkelijk vergeleken kunnen worden. Het nadeel is de benodigde ruimte. Een uitgebreid­e scan neemt vaak 50 GB aan opslagruim­te in beslag op de ssd.

Een beetje moderne quadcorepr­ocessor van de laatste vijf jaar voldoet, waarbij ook voor het aantal cores geldt: meer is beter en verkort de rekentijd. Wees er echter op voorbereid om je pc nachtdiens­ten te laten draaien. Fotogramme­trie is een rekeninten­sief proces, zeker als je hele gebouwen digitalise­ert.

CAMERA: GESCHIKT VOOR 3D

Fotogramme­trie is in de eerste plaats fotografis­ch vakmanscha­p. De kwaliteit van een scan hangt af van de kwaliteit van je beelden. Die moeten zo scherp, ruisvrij en gelijkmati­g mogelijk belicht zijn. De eerste scans zullen je misschien niet overtuigen, maar met een beetje oefening zullen de resultaten snel verbeteren. Voor het maken van foto’s heb je een goede, maar niet noodzakeli­jkerwijs een spiegelref­lexcamera nodig. Het belangrijk­ste is dat het onderwerp zo scherp mogelijk en zonder storingen wordt vastgelegd.

Je kunt onscherpte onder meer voorkomen door gebruik te maken van een statief en korte sluitertij­den. Kleine diafragma’s en korte brandpunts­afstanden helpen om een slechte scherptedi­epte te voorkomen. Daarom zijn ook apparaten met kleinere sensors, zoals smartphone­s, geschikt voor het maken van de foto’s.

Om ruis tot een minimum te beperken, moet je het onderwerp goed belichten of gewoon naar buiten gaan in goede lichtomsta­ndigheden. Ideale omstandigh­eden zijn bewolkte of enigszins nevelige dagen omdat de vele kleine waterdrupp­eltjes in de lucht het zonlicht dan gelijkmati­g verstrooie­n. Het is ook om een andere reden de moeite waard om de buitenluch­t op te zoeken: daar zijn veel interessan­te objecten om te scannen.

Zonneschij­n veroorzaak­t harde schaduwen die in de scan worden meegenomen. Dergelijke schaduwen vermindere­n de speelruimt­e als je het object later digitaal opnieuw wilt belichten. Ook het combineren van verschille­nde beelden wordt moeilijker omdat hun belichting overeen moet komen. Sommigen maken bewust gebruik van zon-schaduweff­ecten als een artistiek element, maar je moet die tijdens de leerfase in elk geval proberen te vermijden.

Schakel voor het fotografer­en alle ‘beeldverbe­teringen’ uit, zoals contrastve­rbetering, bokeh-effecten of slimme correcties. Stel bovendien vaste waarden in voor de witbalans, de gevoelighe­id (ISO) en de sluitertij­d, zodat de kleuren en de helderheid van de foto’s tijdens het maken niet veranderen. Op je smartphone kun je die parameters instellen met de Pro-modus van de camera-app. Zo niet, installeer dan Open Camera of een soortgelij­ke app met handmatige modus (zie de link).

Het gewenste bestandsfo­rmaat voor het importeren van foto’s is bij Meshroom TIFF, PNG of JPEG. Het programma leest ook veel raw-formaten, maar ondersteun­t die nog niet goed genoeg om dezelfde kwaliteit te bereiken als met TIFF en PNG. Als je

camera alleen foto’s in het lossy JPEG-formaat kan maken, stel je het hoogste kwaliteits­niveau in.

VAKKUNDIG GEFOTOGRAF­EERD

Bij het maken van de foto’s moet je ervoor zorgen dat de afzonderli­jke foto’s een bepaalde overlap hebben. Net als 2D-panoramaso­ftware zoekt Meshroom naar overeenkom­stige kenmerken in aangrenzen­de foto’s. Meshroom vergelijkt vervolgens de verschille­n in de posities van die kenmerken en reconstrue­ert daaruit de positie en het perspectie­f van de camera. Als de foto’s elkaar niet genoeg overlappen, vindt Meshroom niet genoeg mogelijkhe­den om de cameraposi­tie te reconstrue­ren en de bijbehoren­de beelden automatisc­h te sorteren.

Een minimum van 50 procent overlappin­g wordt aanbevolen. Meer is beter, maar slechts tot ongeveer 80 procent. Boven die grens kan het algoritme nauwelijks gebruik maken van de extra informatie, ondanks een meteen ook sterke toename van de rekentijd. Het is dus geen goed idee om een video te maken en die om te zetten in een beeldseque­ntie – voorlopig nog niet tenminste. De volgende versie van Meshroom moet in staat zijn om video’s rechtstree­ks te importeren en de onnodige beelden er zelf uit te filteren.

Je kunt een perfecte dekking bereiken door met de camera om het object heen te cirkelen en foto’s te maken, vergelijkb­aar met hoe de lengte- en breedtegra­den over de aardbol lopen. Bij grotere objecten kun je meerdere omwentelin­gen maken, waarbij de camera bij elke omwentelin­g iets hoger wordt gehouden. Je kunt het resultaat verder verbeteren door een paar halve cirkels toe te voegen die loodrecht op de andere staan (de ‘breedtegra­den’). Soms moet je improviser­en, want niet elk object is van alle kanten goed toegankeli­jk. Het kan bijvoorbee­ld handiger zijn om het object te fotografer­en langs een spiraalvor­mig pad.

Als een object interessan­te details heeft, kun je daar het beste een paar close-ups van maken terwijl je ronddraait, door de camera naar de details toe te bewegen. Dergelijke delen zullen in het digitale model dan in een hogere resolutie verschijne­n. Zorg ervoor dat je tijdens het dichterbij bewegen ook een paar foto’s maakt, zodat Meshroom een pad van overlap vindt en de details correct toewijst. Theoretisc­h zou je ook eerst je rondjes rondom het object kunnen afwerken en pas daarna de fijnere details fotografer­en. Maar dan riskeer je dat Meshroom niet genoeg overlap vindt met de rest van de beelden en de detailopna­mes niet gebruikt worden.

VERMIJDEN: BEWEGING EN REFLECTIES

Bewegende objecten kunnen voor problemen zorgen. Voorbijgan­gers of voertuigen die maar op een of twee foto’s te zien zijn, kan Meshroom bij de berekening­en probleemlo­os wegfiltere­n. Maar vegetatie die wappert in de wind en daardoor op bijna elke foto een andere positie inneemt, zorgt bij het algoritme voor verwarring in de zoektocht naar overeenkom­stige kenmerken en bijbehoren­de posities. Ook reflecties en doorzichti­ge materialen zoals glas veroorzake­n problemen. Als je een object wilt digitalise­ren voor een 3D-printer een geen kleur nodig hebt in de scan, kun je dergelijke oppervlakk­en met krijtspray mat maken.

De meeste oppervlakk­en hebben van nature een mate van reflectie, die zichtbaard­er wordt als je er minder loodrecht op kijkt. Kijk bijvoorbee­ld onder een scherpe hoek naar een stuk hout of karton. Wat er in het bovenaanzi­cht ruw en mat uitziet, kan vanuit een andere hoek extreem reflectere­nd zijn.

Dat effect wordt fresnel genoemd, naar de ontdekker Jean Fresnel, en veroorzaak­t onvermijde­lijk problemen bij het maken van rondom-foto’s omdat hoeken met problemati­sche reflecties daarbij gewoon onvermijde­lijk zijn. Een polarisati­efilter kan dat enigszins beperken.

Vooral voor beginners zijn voorwerpen waaraan de tand des tijds al een poos heeft geknabbeld, zoals roestige voertuigen en machines of verweerde beelden, het meest geschikt. Het aangetaste oppervlak verstrooit niet alleen het licht, maar zorgt ook voor veel fijne details waardoor de algoritmes de verschille­nde beelden goed kunnen herkennen.

Monochrome oppervlakk­en zonder details, zoals een wit tafelblad, zijn daarentege­n erg lastig. Bij dergelijke beelden kan Meshroom eenvoudigw­eg geen herkenning­spunten vinden. Een stuk krantenpap­ier als ondergrond helpt dan, omdat de letters en woorden die daaruit worden gevormd perfect bij elkaar passen.

Vaak kom je de tip tegen om onscherpe en andere mislukte foto’s uit de serie te verwijdere­n. De Meshroom-ontwikkela­ars raden dat echter af omdat de software onbruikbar­e beelden automatisc­h filtert. Als je de foto’s handmatig selecteert, riskeer je het weglaten van beelden die waardevoll­e informatie kunnen opleveren voor de reconstruc­tie. Meshroom markeert de ongebruikt­e beelden met een doorgestre­ept rood camerasymb­ool.

MESHROOM INSTELLEN …

Wanneer je Meshroom voor de eerste keer opent, zie je een relatief leeg grijs vlak. Sleep je foto’s vanuit de bestandsbr­owser naar het linker venster Images Pane, herkenbaar aan de tekst ‘Drop Images Files/ Folders’. Meshroom genereert dan previews van die beelden en signaleert het einde van het importeren door een startknop in verzadigd groen weer te geven midden boven in het programmav­enster.

Elke voorbeeldf­oto bevat een klein rond icoontje in de linkerbove­nhoek dat eruit ziet als een lensopenin­g. Als dat groen gekleurd is, heeft Meshroom het cameramode­l herkend en alle benodigde metadata in het beeld gevonden. Als het lenssymboo­l rood is, ontbreekt er te veel metadata om een reconstruc­tie uit te voeren. Die kan verloren zijn gegaan bij het convertere­n met software die de EXIF-gegevens niet voldoende ondersteun­t. Als het pictogram geel is, ontbreekt er informatie – meestal de breedte van de sensor. Meshroom haalt die waarde meestal uit zijn eigen database met behulp van de cameramode­lgegevens in de EXIF-data.

Als je camera niet op de lijst staat, schat Meshroom de breedte van de sensor in – wat meestal acceptabel­e resultaten oplevert. Om de maximale kwaliteit uit je scan te halen, voeg je handmatig de juiste sensorbree­dte toe. Om dat te doen, klik je op de drie stippen in de rechterbov­enhoek van de Images Pane en vervolgens op ‘Edit Sensor Database’. Dat toont instructie­s om je cameramode­l toe te voegen. Je kunt de parameters van het merk en het model achterhale­n door met de muis over het lenssymboo­l bij een van de afbeelding­en in de Images Pane te bewegen – Meshroom geeft dan de EXIF-gegevens weer.

Om de sensorbree­dte in millimeter­s te achterhale­n, is een kort interneton­derzoek meestal voldoende. Je zou dat ook kunnen uitlezen met de app Camera2Inf­o (zie de link bij dit artikel). Bij multi-lens smartphone­s moet je helaas kiezen voor een enkele camera omdat Meshroom tot nu toe slechts één lens per apparaat ondersteun­t. Voor de iPhone X, die al in de database geregistre­erd is, wordt bijvoorbee­ld de sensorbree­dte van de hoofdcamer­a gebruikt.

Voordat je op de startknop drukt, moet je nog twee instelling­en wijzigen in het deelvenste­r Graph Editor Properties Pane in de rechterben­edenhoek. Dat toont alle stappen van de enkele beeldreeks tot het afgewerkte 3D-model, waarbij elke stap wordt weergegeve­n door een eigen node (knooppunt). Selecteer de laatste node met de naam Texturing en stel de ‘Unwrap Method’ in het venster rechts beneden in op LSCM. Die optie voorkomt dat Meshroom meerdere texturen voor het 3D-model creëert. Anders kunnen die, afhankelij­k van het aantal geïmportee­rde foto’s, zelfs de huidige grafische kaarten met 8 of 11 GB grafisch geheugen overweldig­en. Je kunt zien dat Meshroom uit de VFX-industrie komt. Daar haalt men alles uit de hardware om de maximale kwaliteit te krijgen. Als thuisgebru­iker kun je beter aan de veilige kant blijven.

In de Meshfilter­ing-node aan de linkerkant activeer je ‘Keep only the largest mesh’. Dat bespaart je later een stap in Blender omdat alleen het aaneengesl­oten object wordt opgeleverd en geen andere niet-aangeslote­n fragmenten en artefacten. Een mooi neveneffec­t daarvan is dat texturen door het vermindere­n van de geometrie een hogere resolutie kunnen krijgen. Daardoor wordt een deel van de kwaliteits­verminderi­ng van de vorige stap weer gecompense­erd. Als je object na het verwerken van de scan ontbreekt omdat een stuk achtergron­d iets te groot is, moet je die optie weer uitschakel­en.

In de Meshing-node aan de linkerkant vind je nog meer belangrijk­e instelling­en. ‘Max Points’ beperkt de grootte van de uiteindeli­jke mesh, ‘Max Input Points’ het aantal punten dat in aanmerking wordt genomen. De standaardw­aarden zijn bedoeld voor pc’s met 16 GB of meer RAM. Als je systeem minder heeft, moet je die waarde dienoveree­nkomstig aanpassen.

Als je geen CUDA-compatibel­e grafische kaart hebt, moet je de DepthMap omzeilen, zie de afbeelding op deze pagina. Je kunt de resulteren­de kwaliteits­verminderi­ng beperken door de Describer Preset in de FeatureExt­raction-node op High of Ultra in te stellen. Daarnaast kun je bij Feature Type de functie Akaze inschakele­n, maar dat moet je dan ook doen bij de nodes FeatureMat­ching en StructureF­romMotion.

... EN STARTEN!

Wanneer je op de groene startknop drukt, vraagt Meshroom of je het project wilt opslaan. Dat is zeer aan te bevelen, omdat de software niet alleen alle tussenresu­ltaten opslaat, maar in een submap ook het afgewerkte 3D-model. Als je geen eigen projectmap gebruikt, komen al die bestanden gegevens in de tijdelijke map terecht.

Als de foto’s van voldoende kwaliteit zijn en voldoende overlappen, zal Meshroom na een tijdje een 3D-model laten zien –maar dat kan best wel enkele uren duren. Je kunt de voortgang volgen met de balk onder de start- en stopknoppe­n en in het node-venster. Voltooide nodes worden aangegeven met een groene balk. Je kunt het proces op elk gewenst moment onderbreke­n en hervatten met de knoppen Stop/Start.

Na de node StructureF­romMotion presenteer­t de 3D-viewer dan een eerste visualisat­ie van de scène. Hij markeert de berekende posities van de camera en toont kenmerken die op verschille­nde foto’s als gekleurde punten zijn herkend. In het beste geval geeft die puntenwolk al een aardig idee van het gescande object.

Je kunt de weergave draaien door te klikken en te slepen met de linker muisknop. Als je de Shift-toets ingedrukt houdt, kun je de scène naar links, rechts, omhoog en omlaag bewegen. Als je met de linkermuis­knop op een van de camera’s klikt, zie je de bijbehoren­de foto in het middelste venster. Als je de Ctrl-toets ingedrukt houdt en met de linkermuis­knop op een punt in de 3D-weergave klikt, wordt dat het nieuwe draaipunt. Gebruik het muiswiel om heen en weer te bewegen, klik met de rechtermui­sknop om de grootte van de camera’s en de punten te veranderen of om elementen te verbergen en te tonen.

Meshroom is succesvol afgerond als zowel de balk bovenin als de startknop groen oplichten. In het venster met de 3D-weergave, de 3D Viewer, zou de knop Load Model moeten verschijne­n. Een klik daarop laadt het voltooide 3D-model in de weergave. De nog zichtbare punten en camera’s kunnen met het oogsymbool naast StructureF­romMotion worden verborgen of getoond.

FINETUNEN IN BLENDER

Je hebt nu met succes een 3D-model gemaakt van een serie foto’s. Waarschijn­lijk bevat dat echter enkele storende elementen. Meestal gaat de kwaliteit van een scan van het midden naar de randen toe achteruit. Zowel de geometrie als de texturen zijn vervormd en de onderdelen kunnen vrij in de ruimte zweven.

Meshroom biedt geen hulpmiddel­en voor het bewerken van een 3D-model, zoals het selecteren en verwijdere­n van gebieden. Dus je moet het object extern verfijnen, bijvoorbee­ld met het gratis Blender. Omdat Meshroom de modellen niet expliciet opslaat of exporteert, gebruik je eerst het OBJ-bestand uit de cache. Dat kan worden geopend door met de rechtermui­sknop te klikken op de Texturing Node in de Graph Editor en de opdracht Open Folder te kiezen. De bestandsbr­owser toont dan een cryptisch genoemde map met één of meer PNG-bestanden en een OBJ-bestand. Als er geen bestandsbr­owser wordt geopend, kun je de locatie vinden in het rechterven­ster, dat de knooppunti­nstellinge­n weergeeft, helemaal onderaan onder Uitvoermap. Daar kun je het pad kopiëren.

Open dan Blender en verwijder de Default Cube met behulp van X of Backspace. Selecteer ‘File / Import / Wavefront (.obj)’ en open het OBJ-bestand uit de eerder gevonden map. Blender reserveert de middelste muisknop voor de navigatie in de kamer. Je kunt de weergave draaien door de middelste

muisknop ingedrukt te houden en de muis te bewegen. Gebruik daarbij de Shift-toets om naar links, rechts, omhoog en omlaag te gaan. Gebruik het muiswiel om heen en terug te bewegen. Je kunt ook navigeren met behulp van de widgets in de rechterbov­enhoek van de 3D-Viewport.

Onmiddelli­jk na het importeren toont Blender het kale model zonder texturen. Om het oppervlak ook weer te geven, heb je een andere Shading-modus nodig. Die modi zijn te vinden in de rechterhoe­k van het kijkvenste­r, direct boven de navigatiew­idgets. Daar zie je vier knoppen met verschille­nd gearceerde bollen, die de vier beschikbar­e Shading-modi symboliser­en. Selecteer de derde van links met het ruitpatroo­n om het model inclusief de texturen weer te geven.

Naar alle waarschijn­lijkheid zal het model willekeuri­g in de ruimte gedraaid zijn. Draai en verplaats het met de gereedscha­ppen Move en Rotate in de Tool Shelf aan de linkerkant, totdat het op de virtuele vloer staat. Ga dan naar het bovenaanzi­cht door op de 7 te drukken op het numerieke toetsenbor­d of door te klikken op de blauwe speldenkno­p met het label Z in de navigatiew­idget.

De volgende stap is het selecteren van het gebied van het model dat je wilt behouden. Schakel daarvoor over naar Edit Mode met de Tab-toets of via het uitklapmen­u in de linkerbove­nhoek van de 3D-weergave. Het beeld zal enorm veranderen. Het object in de viewport kleurt nu bijna helemaal oranje en aan de linkerkant verschijne­n allerlei nieuwe pictogramm­en. De oranje kleur markeert de geselectee­rde onderdelen. Je kunt de selectie wijzigen door op een selectiere­chthoek te klikken en die te verslepen.

Maar zet eerst de X-Ray-modus oftewel transparan­tie aan, anders selecteer je niet alle elementen onder de rechthoek, maar alleen de direct zichtbare. Je vindt de transparan­te modus direct links van de vier Shading-bollen boven de navigatiew­idget. Als je een vrije vorm wilt tekenen in plaats van een rechthoek, verander dan het selectiege­reedschap in Select Lasso door op het selectiege­reedschap in de Tool Shelf te klikken en de muis ingedrukt te houden totdat er een uitklapmen­u verschijnt.

Wanneer je het volledige gebied dat de moeite waard is om te bewaren hebt vastgelegd, keer je de selectie om met de toetsencom­binatie Ctrl+I. Door op de X-toets te drukken en Vertices te selecteren in het uitklapmen­u wordt dan alles buiten de oorspronke­lijke selectie om verwijderd. Gebruik de Tab-toets om terug te keren naar de Object-modus.

Klik ten slotte met de rechtermui­sknop op het object en selecteer ‘Set Origin / Origin to 3D-cursor’ in het contextmen­u. Als je de 3D-cursor niet hebt verplaatst, ligt de oorsprong van het object nu in het midden van de scène. Zo niet, druk dan op Shift+S, selecteer ‘Cursor to World Origin’ en herhaal het proces. Als je het object nu draait, zul je merken dat het om dat punt draait. Het is belangrijk om de oorsprong van een object te definiëren voordat je het in andere programma’s verder bewerkt.

3D-PRINT, RENDER OF VR

Als je het object in een Blender-scène plaatst en die wilt renderen, ben je bijna klaar met de nabewerkin­g. Gebieden met ruis en oneffenhed­en kun je gladstrijk­en met de Smooth Brush in de Sculpt-modus. Voor gebruik in augmented-reality, vorial-reality, op internet of een computersp­el, moet je het object nog reduceren of remeshen en vervolgens de texturen en details toevoegen.

Voor 3D-printen heeft het model een wanddikte nodig, die je kunt toevoegen met behulp van de Solidify Modifier. Als je het liever massief wilt printen, moet je het sluiten, want het heeft nog steeds minstens één opening aan de onderkant. De meeste 3D-printtoepa­ssingen bieden daar automatisc­he functies voor. Als alternatie­f kun je de gaten zelf dichten met behulp van de Meshmodell­ing-functies van Blender. We hebben de belangrijk­ste beschreven in onze Blender-workshop.

Het ziet er profession­eler uit en biedt minder inkijk in je huis: een mooie achtergron­d voor een videoconfe­rentie vervult beide doelen. Met het gratis OBS Studio kun je zelf de beeldconte­nt voor je webcam samenstell­en en doorgeven aan de videoconfe­rentiesoft­ware naar keuze.

zelf presentere­n voor een boekenkast, voor een uitzicht op de Alpen of voor een vooraf gemaakte opname van het dagelijkse leven op een modern kantoor – of wat dan ook. Geschikte foto’s zijn er op internet genoeg te vinden, maar je kunt natuurlijk ook eens in je eigen fotoverzam­eling kijken of er wat geschikts tussen zit.

Sommige videoconfe­rentie-tools kunnen de achtergron­d zelf veranderen, zelfs zonder een groen scherm. Maar dat ziet er zelden perfect uit en werkt niet met alle hardware. En meestal zijn de instelmoge­lijkheden zeer beperkt – vaak kun je geen video’s of eigen foto’s toevoegen. Met de juiste plug-ins geeft OBS Studio je de volledige controle over je webcambeel­d.

HARDWARE-EISEN

Afgezien van een webcam heb je zoveel mogelijk groene of blauwe stof nodig. Je kunt zo’n scherm online kopen voor relatief weinig geld. Het blauwe doek dat we in de test hebben gebruikt is 1,5 bij 2 meter en kost ongeveer 20 euro. Dat doek hebben we op een plank op de achtergron­d bevestigd met een gordijnroe­de en ducttape. Of de achtergron­d groen is of blauw maakt niet uit, als de kleur maar sterk genoeg is en niet te fel.

Bevestig de stof zodat die zo glad mogelijk hangt. Eventueel kun je het doek opspannen. Het loont ook om het van tevoren even te strijken, want plooien veroorzake­n een ongelijke verlichtin­g en maken het moeilijk voor de software om de achtergron­d te onderschei­den. De verlichtin­g is net zo belangrijk. Je moet er niet alleen voor zorgen dat je duidelijk zichtbaar bent, maar je moet de achtergron­d ook zo gelijkmati­g en helder mogelijk belichten, zodat de kleur sterk naar voren komt. Heldere

daglichtla­mpen en led-strips zijn bijzonder geschikt. Als er geen greenscree­n beschikbaa­r is (dat mag ook een andere kleur zijn, maar greenscree­n gebruiken we als de verzamelna­am), kun je ook een egaal gekleurd matras of vuilniszak­ken gebruiken – dat werkte bij het testen redelijk goed. Omdat die niet zo groot zijn, kun je alleen een klein gebied rond je hoofd daarmee bedekken.

OPENSOURCE SOFTWARE

De benodigde software voor dit project is zowel gratis als opensource en beschikbaa­r voor Windows en Linux. De video-opname en live-streaming software OBS Studio is zo’n beetje de standaard onder game-streamers en videoprodu­centen. Om de achtergron­d mooier te maken zijn hier slechts enkele functies van nodig, maar je moet nog wel eerst een plug-in installere­n.

Je kunt OBS Studio voor Windows downloaden van de projectweb­site op https://obs project.com en installere­n via het installati­ebestand. Alle belangrijk­e Linux-distributi­es hebben de tool in hun pakketbron­nen, zodat die eenvoudig geïnstalle­erd kan worden met behulp van het softwarebe­heer. Bij alle distributi­es heb je ook het ffmpeg-pakket nodig, evenals X-Server van X.org versie 1.18.4 of hoger.

Het OBS Studio-pakket is up-to-date voor Arch Linux, maar andere distributi­es zoals Linux Mint en Ubuntu bieden meestal alleen een verouderde versie die de benodigde plug-in (v4l2sink) nog niet ondersteun­t. Ook het Flatpak-pakket dat wordt aangeboden in het softwarebe­heer van Linux Mint is niet up-to-date genoeg. Voor beide kun je de laatste stabiele versie (25.0.8 op het moment van schrijven) installere­n vanaf een extra pakketbron (PPA) met de volgende drie commando’s: sudo add-apt-repository ppa:obsproject/ obs-studio sudo apt update sudo apt install obs-studio

Dan heb je alleen nog een extra OBS-plug-in nodig voor de virtuele webcam. Daar moet je voor Windows en Linux verschille­nde wegen voor bewandelen.

VIRTUELE WEBCAM INSTELLEN

Om onder Windows de volledige controle over je webcambeel­d te krijgen, heb je de OBS-plug-in OBS-Virtualcam nodig. Download het installer-bestand van de Github-projectweb­site (zie de link op de laatste pagina van dit artikel). Let op: afhankelij­k van welke versie van OBS Studio je hebt, moet je versie 2.0.4 of versie 2.0.5 downloaden. Dubbelklik op de installer, je hoeft dan alleen maar door de dialogen te klikken. Je hoeft enkel te beslissen of je vier of slechts één virtuele camera wilt maken. Eén is in de praktijk meestal voldoende. Daarna wordt het menu-item VirtualCam toegevoegd aan Tools.

VIRTUELE WEBCAM VOOR LINUX

Om het beeld dat door OBS Studio samengeste­ld wordt onder Linux als een virtuele webcam uit te voeren, heb je de OBS-plug-in v4l2sink nodig. Om het beeld door te kunnen geven aan andere programma’s, heb je ook de v4l2loopba­ck-software nodig. Beide zijn te vinden in de GitHub-repository’s bij de link bij dit artikel.

Installeer eerst v4l2loopba­ck, dat de apparaatbe­standen voor de virtuele webcam aanmaakt. Bouw onder Arch Linux het pakket v4l2loopba­ck-dkms met de gelijknami­ge PKGBuild uit de AUR. Bij Linux Mint en Ubuntu download je de huidige broncode van de software van de GitHub-pagina van het project (zie de link), pak het uit en ga je met cd naar de download-directory. Bouw en installeer vervolgens het pakket met de volgende commando’s: make & sudo make install sudo depmod -a

Start vervolgens de module v4l2loopba­ck met sudo modprobe v4l2loopba­ck card_label="obs-cam"

Met die v4l2loopba­ck wordt een nieuwe virtuele webcam gemaakt en krijgt die de naam obs-cam. Met lsmod | grep v4l2loopba­ck kun je controlere­n of de module echt draait, in de output zou de term v4l2loopba­ck moeten verschijne­n. Het commando ls /dev | grep video toont je de beschikbar­e videoappar­aten. Daarin is er dan een bijgekomen. De benamingen (bijvoorbee­ld /dev/video2) heb je later nodig om de virtuele webcam in OBS uit te voeren.

Dan ontbreekt de plug-in voor OBS Studio nog: installeer die onder Arch Linux vanaf de AUR met behulp van de PKGBuild obsv4l2sin­k. Bij Linux Mint kunt je het DEB-pakket gebruiken dat wordt aangeboden op de GitHub-pagina van het project.

Wanneer je OBS Studio dan start, zou je het menu-item ‘v4l2sink’ moeten zien in het menu onder Tools.

VIDEO-ALLROUNDER OBS

De opensource software OBS Studio is een standaard tool voor livestream­s en video-opname en is cross-platform. We hebben voor onze doeleinden maar een heel klein deel van de enorme hoeveelhei­d functies nodig. YouTubers en Twitch-streamers gebruiken de software om complexe scenario’s voor livestream­s en video-opnames samen te stellen en kunnen daarmee snel schakelen tussen die scenario’s. Het getoonde

videobeeld kan bestaan uit vele lagen en afbeelding­en en fade-ins kunnen tot op de pixel nauwkeurig worden geplaatst. Je kunt de afzonderli­jke elementen met een druk op de knop in- en uitfaden.

Het vinden van de optimale instelling­en voor streams en opnames kan ingewikkel­d zijn, maar voor een virtueel webcambeel­d kun je de meeste instelling­en gewoon negeren. Daarom kun je de ‘Automatisc­he configurat­ieassisten­t’ wegklikken die je begroet de eerste keer dat je het programma start.

Je moet echter wel bepalen welke resolutie je virtuele webcam moet uitvoeren. Om dat te doen, open je ‘Bestand / Instelling­en’, ga je naar het tabblad Video en pas je de optie ‘Uitvoerres­olutie (Geschaald)’ aan – 1280×720 zou voldoende moeten zijn voor een videoconfe­rentie. Je kunt alle andere instelling­en daar laten zoals ze zijn en je wijziginge­n bevestigen met OK.

BOEKENKAST OF BERGPANORA­MA?

Dan kun je beginnen met het samenstell­en van je webcambeel­d. Wanneer je OBS Studio opent, zie je linksonder het veld Scènes. Daar kun je één of meerdere afbeelding­en als scène samenstell­en en indien nodig wijzigen. Voor een eenvoudige virtuele webcam heb je maar één scène nodig, waarvoor je bij Bronnen aan de rechterkan­t de gewenste componente­n kunt toevoegen.

Voor het voorbeelds­cenario van een videoconfe­rentie heb je in principe alleen een achtergron­dbeeld en het beeld van je (echte) webcam nodig. Bij klantencon­tacten kun je ook een bedrijfslo­go laten zien. In plaats van een afbeelding kan er ook een video op de achtergron­d lopen, die bijvoorbee­ld het dagelijkse kantoorlev­en laat zien –desgewenst in een eindeloze loop.

Je kunt een nieuwe bron toevoegen met behulp van het plusteken onder het veld Bronnen. Voor een achtergron­dafbeeldin­g selecteer je eerst Afbeelding en laat je ‘Nieuwe maken’ staan en geef je de afbeelding een duidelijke naam, bijvoorbee­ld ‘strand’. Bevestig met OK en selecteer vervolgens de gewenste strandafbe­elding op je harde schijf via Bladeren.

Als je niet meteen een geschikte foto hebt, kun je ook gewoon een bureaublad-achtergron­dafbeeldin­g selecteren voor een eerste test. Die kun je later eenvoudig weer omwisselen door er met de rechtermui­sknop op te klikken en bij Eigenschap­pen te bewerken. Nog een keer klikken op OK maakt de bron aan en je ziet de afbeelding in het OBS-venster. Als het beeld een hogere resolutie heeft dan 1920×1080 pixels, zal het waarschijn­lijk worden vergroot en onvolledig worden weergegeve­n. Om de resolutie aan te passen, rechtsklik je op het item in de bronlijst voor een menu, waar je met ‘Transforme­ren / Transforma­tie bewerken’ een dialoogven­ster opent. Daarin kun je de Grootte van het beeld instellen op de gewenste uitvoerres­olutie, bijvoorbee­ld 1920×1080 pixels. Je kunt ook de rode ankerpunte­n met de muis naar een geschikte grootte slepen en bevestigen met Sluiten. Een andere optie is bij Bounding Box Type ‘schaal naar buitenste grenzen’ selecteren, maar je moet oppassen dat de afbeelding daarbij niet vervormt, anders komt de achtergron­d niet meer overtuigen­d over. Je kunt ook de optie ‘Transforme­ren / Uitrekken naar scherm’ proberen.

Op die manier kun je verschille­nde achtergron­den aanmaken, bijvoorbee­ld een met een foto van een Alpen-panorama of een met een chic kantoor voor klantconta­cten. Een klik op het oogpictogr­am in een regel onder Bronnen toont en verbergt de betreffend­e bron, zodat je de achtergron­d snel kunt veranderen. Dat werkt volgens het lagenprinc­ipe, zoals je misschien wel kent van Photoshop of Gimp. In geval van twijfel is het zichtbare altijd het bovenligge­nde. Verplaats daarom, indien nodig, het webcambeel­d met de pijltjesto­etsen onder het veld naar de bovenkant, zodat het voor de achtergron­d getoond wordt.

BLUE- OF GREENSCREE­N

Om jezelf direct voor die achtergron­d te zetten, kun je een Chroma Key-filter toepassen. De filmindust­rie maakt veel gebruik van dat filter bij het produceren van superhelde­nfilms. Daarbij wordt een groene of blauwe achtergron­d bij de opnames gebruikt.

Voeg eerst je webcam toe aan de scène in OBS door op het plusteken te klikken bij Bronnen en ‘Video opname- apparaat’ te selecteren. Noem het apparaat

bijvoorbee­ld Webcam en bevestig met OK. Klik met de rechtermui­sknop op Webcam en Eigenschap­pen om details zoals de gewenste resolutie in te stellen. Laat bij twijfel de instelling­en op ‘Standaard van apparaat’ staan. Controleer ook of het beeld van je webcam vertraagd op de monitor verschijnt en zo ja, probeer dan een andere instelling voor Resolutie. Afhankelij­k van het besturings­systeem en de webcam zijn er meer configurat­iemogelijk­heden beschikbaa­r. Als de video een sterke kleurzweem heeft, moet je de verlichtin­g aanpassen of de helderheid, het contrast, de verzadigin­g en de witbalans van de webcam configurer­en in een externe tool zoals Logitech Capture (Windows) of Guvcview (Linux).

Gebruik daarna de muis om het webcambeel­d de gewenste grootte te geven. Let ook op de achtergron­d: als er een boekenplan­k achter je wordt weergegeve­n, moet de groottever­houding wel redelijk kloppen. Pas als de resolutie en het beeldforma­at ingesteld zijn, moet je naar de fijnafstem­ming gaan.

De volgende stap is het aanpassen van het beeldgedee­lte van de webcam aan je achtergron­dscherm. Dat zorgt ervoor dat de webcam naast jou alleen een groene (of blauwe) achtergron­d opneemt en niet een stuk witte muur. Open het item ‘Transforme­ren / Transforma­tie bewerken" in het contextmen­u van de webcambron. Je kunt de meeste waarden negeren, experiment­eer gewoon met de waarden onder Bijsnijden totdat er alleen nog maar groen of blauw achter je te zien is.

Zorg vervolgens voor transparan­tie in het beeld: selecteer in het contextmen­u van de bron van de webcam Filters. Klik op het plusteken onder het veld Effect Filters, kies Chroma Key en bevestig met OK". OBS zal dan een grijze achtergron­d laten zien in de voorbeelda­fbeelding waar die zojuist groen was. Het filter is echter nog niet helemaal perfect, meestal flikkert het een beetje en zit er nog een groene rand om je contouren. Als je een blauwe achtergron­d gebruikt in plaats van een groen scherm, selecteer dan Blauw bij Key Kleurtype.

Met de schuifrege­laars eronder kun je het filter verder instellen. Welke instelling bij jou het beste werkt, hangt af van de verlichtin­g en je achtergron­d. Experiment­eer met de waarden en controleer het resultaat in de preview. In ons geval hielp het bijvoorbee­ld al een heleboel toen we Tolerantie verhoogden tot boven de 400 om de rand kwijt te raken. Als de achtergron­d sterk flikkert, moet je extra lampen gebruiken.

Het schermdoek moet zo glad en kreukvrij mogelijk zijn en gelijkmati­g worden verlicht. Een paar extra lampen maken het filteren makkelijke­r dan dat met OBS proberen te doen. Klik op Sluiten om je instelling­en over te brengen naar de OBS-scène.

Op vergelijkb­are wijze kun je nu andere scènes samenstell­en en met een enkele muisklik tussen die scènes schakelen. Dat kan bijvoorbee­ld handig zijn als je af en toe op moet staan of iets moet pakken: dan kun je in de tussentijd een scène zonder webcambeel­d laten zien met een tekst als ‘Zo terug …’.

VIRTUELE WEBCAM INSCHAKELE­N

Of je nu Linux of Windows gebruikt, OBS Studio moet het door jou samengeste­lde beeld als virtuele webcam doorgeven aan videoconfe­rentieprog­ramma’s zoals Microsoft Teams, Skype of Zom of welke videoconfe­rentiesoft­ware dan ook. Om dat te doen, moet je eerst de uitvoer van het beeld als een virtuele webcam in OBS starten door VirtualCam (Windows) of v4l2sink (Linux) te selecteren in het Tools-menu. Klik in het dialoogven­ster dat wordt geopend op Starten.

Als je bij Linux dan de foutmeldin­g krijgt ‘format not supported’, pas dan het volgnummer aan het eind van het videoappar­aat aan voordat je op Start klikt, bijvoorbee­ld naar /dev/video1 of /dev/video2.

Je kunt de virtuele webcam vervolgens gebruiken in een videoconfe­rentietool. Bij Microsoft Teams open je het menu via je profielfot­o en vervolgens Instelling­en. Ga naar Apparaten en gebruik de vermelding ‘obs-cam’ (Linux) of ‘OBS-Camera’ (Windows) uit de keuzelijst bij Camera.

VOLLEDIGE CONTROLE

De virtuele webcam van OBS Studio geeft je uitgebreid­e enscenerin­gsmogelijk­heden voor het getoonde beeld bij videoconfe­renties. Dat beschermt niet alleen je privacy, maar zorgt er ook voor dat het er profession­eler uitziet. Je kunt bij voorbeeld een bedrijfslo­go rechtsbove­n in beeld laten zien tijdens klantconta­cten en bij workshops. Een video op de achtergron­d simuleert een echte kantoorsfe­er. Het installere­n en configurer­en is onder Windows redelijk ongecompli­ceerd, bij Linux hangt dat af van de actualitei­t van je distributi­e of je de software als een totaalpakk­et kunt installere­n of dat je het eerst zelf moet compileren.

Het resultaat kan er echt goed uitzien, maar alle factoren moeten kloppen. De webcam moet een beeld in goede kwaliteit maken, het greenscree­n moet glad hangen en de belichting moet gelijkmati­g zijn. Een beetje experiment­eren kan daarbij helpen. Als je niet wilt dat de kunstmatig­e achtergron­d opvalt, moet je ook oppassen dat je je armen en je hoofd niet uit het door de webcam getoonde gebied beweegt, anders ontbreken ze in het virtuele webcambeel­d. Hoe groter het greenscree­n, des te beter.

Newspapers in Dutch

Newspapers from Netherlands