3D-model maken met je smartphone met gratis software

Marco den Teuling
0

Inhoudsopgave

Gewapend met een smartphone en de gratis software Meshroom kun je van bijna alles een 3D-model maken: standbeelden, mensen enzovoort. Het gemaakte 3D-model kun je weer gebruiken voor een 3D-printer of in andere programma’s.

Een uit alle mogelijke hoeken genomen fotoserie volstaat om van objecten een 3D-model te maken op de pc. Zo kun je de echte wereld stukje bij ­beetje nabouwen en in virtuele scènes verwerken of een mini-kopie maken met een 3D-printer.

3D-model maken met je smartphone Meshroom

Het gratis Meshroom kan van een fotoserie een 3D-model maken.

Software downloaden en testen

De automatische modus van de opensource software Meshroom voltooit het 3D-scannen zelfstandig na een druk op de knop. De kunst zit het hem vooral in het fotograferen. Waar je daarbij op moet letten, leer je verderop.

Je kunt Meshroom snel uitproberen met de demo-dataset Monstree. Die bevat iPhone-­foto’s van een Meshroom-ontwikkelaar en werken in elk geval goed. De complete set bestaat uit 41 foto’s, maar je moet rekening houden met meerdere uren verwerkingstijd. Met de kleinere sets die beperkt zijn tot drie of zes foto’s duurt het hele proces maar enkele minuten.

Systeemeisen Meshroom

Meshroom is beschikbaar als portable 64-bit versie voor Windows en Linux. Beide kun je dus meteen starten en hoeven niet op het systeem te worden geïnstalleerd. Je hebt wel een redelijk zware pc en een voor CUDA geschikte grafische kaart van Nvidia nodig. Downloads en info vind je ook bij ontwikkelaars AliceVison. Mesh­room kan draaien met 16 GB, maar als je minder hebt zul je met een lagere kwaliteit genoegen moeten nemen of aanzienlijk meer computertijd moeten inplannen.

Meshroom interface 3D-model maken

De interface van Meshroom met de belangrijkste onderdelen.

We raden ook een snelle ssd met veel vrije ruimte aan en een beetje moderne quadcoreprocessor van de laatste vijf jaar. Wees er echter op voorbereid om je pc nachtdiensten te laten draaien. Omzetten van de foto’s naar een 3D-model (fotogrammetrie) is een rekenintensief proces, zeker als je hele gebouwen digitaliseert

Foto's van je smartphone

De kwaliteit van een scan hangt af van de kwaliteit van je foto’s. Die moeten zo scherp, ruisvrij en gelijkmatig mogelijk belicht zijn. Het belangrijkste 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 sluitertijden. Kleine diafragma’s en korte brandpuntsafstanden helpen om een slechte scherptediepte te voor­komen. Daarom zijn ook apparaten met kleinere sensors, zoals smartphones, geschikt voor het maken van de ­foto’s.

Je moet het onderwerp goed belichten of gewoon naar buiten gaan in goede lichtomstandigheden: bewolkte of enigszins nevelige dagen.  Schakel voor het fotograferen alle ‘beeldverbeteringen’ uit, zoals contrastverbetering of bokeh-­effecten. Stel bovendien vaste waarden in voor de witbalans, gevoeligheid (ISO) en sluitertijd, 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 soortgelijke app met handmatige modus.

smartphone camera Pro modus

Vaste waarden voor witbalans, gevoeligheid (ISO) en sluitertijd zorgen voor consistente omstandigheden bij alle opnames.

Het gewenste bestandsformaat voor het importeren van foto’s is bij Meshroom TIFF, PNG of JPEG. Als je ­camera alleen foto’s in JPEG-formaat kan maken, stel je het hoogste kwaliteitsniveau in.

Fotoserie maken

Bij het maken van de foto’s moet je ervoor zorgen dat de afzonderlijke foto’s een bepaalde overlap hebben. Meshroom zoekt naar overeenkomstige kenmerken in aangrenzende ­foto’s. Een minimum van 50 procent overlapping wordt aanbevolen (tot hooguit 80 procent).

Je kunt een perfecte dekking bereiken door met de camera om het object heen te cirkelen en foto’s te maken. Bij grotere objecten kun je meerdere omwentelingen maken, waarbij de camera bij elke omwenteling iets hoger wordt gehouden. Je kunt het resultaat verder verbeteren door een paar halve cirkels toe te voegen die hier loodrecht op staan (over het object heen). Soms moet je daarbij improviseren. Het kan soms handiger zijn om het object te fotograferen langs een spiraalvormig pad.

fotoserie maken 3D-model

Een klassieke minimale afdekking krijg je met een enkele omcirkeling en daarna er twee halve cirkels overheen.

Vermijden: beweging en reflecties

Voorbijgangers of voertuigen die maar op een of twee foto’s te zien zijn, kan Meshroom bij de berekeningen probleemloos wegfilteren. Maar vegetatie die wappert in de wind, reflecties en doorzichtige materialen zoals glas veroorzaken problemen.

Vooral voor beginners zijn voorwerpen met veel oneffenheden en details het meest geschikt (zoals verweerde standbeelden). Het aangetaste oppervlak verstrooit niet alleen het licht, maar zorgt ook voor veel fijne details waardoor Meshroom de verschillende beelden goed kan herkennen. Monochrome oppervlakken zonder details, zoals een wit tafelblad, zijn daarentegen erg lastig. Een stuk krantenpapier als ondergrond helpt dan, omdat de letters en woorden die daaruit worden gevormd perfect bij elkaar passen.

Je hoeft geen onscherpe of andere mislukte foto’s uit de serie te verwijderen, de software filtert onbruikbare beelden automatisch. Mesh­room markeert die met een door­gestreept rood camerasymbool.

mislukte foto 3D-model Meshroom

Mislukte foto’s filtert Meshroom automatisch uit de fotoserie.

Meshroom instellen

Wanneer je Meshroom voor de eerste keer opent, zie je een relatief leeg grijs vlak. Sleep je foto’s vanuit de bestandsbrowser 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 programmavenster.

fotoserie inladen Meshroom

Laad de fotoserie in de Images Pane en wacht tot de startknop groen is.

Elke voorbeeldfoto bevat een klein rond icoontje in de linkerbovenhoek dat eruit ziet als een lens­opening. Als dat groen gekleurd is, heeft Meshroom het cameramodel herkend en alle benodigde metadata in het beeld gevonden. Als het lenssymbool rood is, ontbreekt er te veel metadata om een reconstructie uit te voeren. 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 camera­modelgegevens in de EXIF-data van de foto’s.

Cameragegevens toevoegen

Als je camera niet op de lijst staat, schat Mesh­room de breedte van de sensor in – wat meestal ­acceptabele resultaten oplevert. Om de maxi­male kwaliteit uit je scan te halen, voeg je handmatig de juiste sensorbreedte toe. Om dat te doen, klik je op de drie stippen in de rechterbovenhoek van de ­Images Pane en vervolgens op ‘Edit Sensor Data­base’. Dat toont instructies om je cameramodel toe te voegen. Je kunt de parameters van het merk en het model achterhalen door met de muis over het lens­symbool bij een van de afbeeldingen in de Images Pane te bewegen – Meshroom geeft dan de EXIF-­gegevens weer.

Om de sensorbreedte in millimeters te achter­halen, is een kort internetonderzoek meestal voldoende. Je zou dat ook kunnen uitlezen met de app Camera2­Info. Bij multi-lens smartphones moet je helaas kiezen voor een enkele camera omdat Meshroom tot nu toe slechts één lens per apparaat ondersteunt. Voor de iPhone X, die al in de database geregistreerd is, wordt bijvoorbeeld de sensorbreedte van de hoofdcamera gebruikt.

 


Blijf op de hoogte van de nieuwste workshops en tips!
Schrijf je in voor de nieuwsbrief:


 

Laatste instellingen

Voordat je op de startknop drukt, moet je nog twee instellingen wijzigen in het deelvenster Graph Editor Properties Pane in de rechterbenedenhoek. Dat toont alle stappen van de enkele beeldreeks tot het afgewerkte 3D-model, waarbij elke stap wordt weergegeven door een eigen node (knooppunt).

  1. Selec­teer 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 zelfs de huidige grafische kaarten met 8 of 11 GB grafisch geheugen overweldigen.
  2. In de Meshfiltering-node aan de linkerkant activeer je ‘Keep only the largest mesh’. Dat bespaart je later een stap in Blender omdat alleen het aaneengesloten object wordt opgeleverd en geen andere niet-aangesloten fragmenten en artefacten. Een mooi neveneffect daarvan is dat texturen door het verminderen van de geometrie een hogere resolutie kunnen krijgen. Daardoor wordt een deel van de kwaliteitsvermindering van de vorige stap weer gecompenseerd. Als je object na het verwerken van de scan ontbreekt omdat een stuk achtergrond iets te groot is, moet je die optie weer uitschakelen.
instellingen aanpassen Meshroom

Pas de instellingen van de geselecteerde node aan in het venster rechtsonder.

In de Meshing-node aan de linkerkant vind je nog meer belangrijke instellingen. ‘Max Points’ beperkt de grootte van de uiteindelijke mesh, ‘Max Input Points’ het aantal punten dat in aanmerking wordt genomen. De standaardwaarden zijn bedoeld voor pc’s met 16 GB of meer RAM. Als je systeem minder heeft, moet je die waarde dienovereenkomstig aanpassen.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

3D-model maken

Wanneer je op de groene startknop drukt, vraagt Mesh­room of je het project wilt opslaan. Dat is raadzaam, omdat de software niet alleen alle tussenresultaten opslaat, maar in een submap ook het afgewerkte 3D-model.

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 stopknoppen. Je kunt het proces op elk gewenst moment onderbreken en hervatten met de knoppen Stop/Start.

3D-model bekijken

Tijdens het maken presenteert de 3D-viewer al een eerste visualisatie van de scène. Hij markeert de berekende posities van de camera en toont kenmerken die op verschillende foto’s als gekleurde punten zijn herkend. In het beste geval geeft die puntenwolk al een aardig idee van het gescande object.

model bekijken

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.

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 verschijnen. Een klik daarop laadt het voltooide 3D-model in de weer­gave. De nog zichtbare punten en camera’s kunnen met het oogsymbool naast StructureFromMotion worden verborgen of getoond.

Finetunen in Blender

Je hebt nu met succes een 3D-model gemaakt van een serie foto’s. Waarschijnlijk bevat dat echter enkele storende elementen. Meshroom biedt geen hulpmiddelen voor het bewerken van een 3D-model, zoals het selecteren en verwijderen van gebieden. Je kunt het object extern verfijnen, bijvoorbeeld 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 rechtermuisknop te klikken op de Texturing Node in de Graph Editor en de opdracht Open Folder te kiezen. De bestandsbrowser toont dan een cryptisch genoemde map met één of meer PNG-bestanden en een OBJ-bestand. Als er geen bestandsbrowser wordt geopend, kun je de locatie vinden in het rechtervenster, dat de knooppuntinstellingen 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. Meer over het finetunen in Blender en andere tips voor Blender lees je in c’t magazine.

3D-print, render of VR

Je kunt het object in een Blender-scène plaatsen en die renderen. Voor gebruik in augmented-reality, virtual-reality, op internet of een computerspel, moet je het object nog ­reduceren of remeshen en vervolgens de texturen en details toevoegen.

Voor 3D-printen heeft het model een wand­dikte nodig, die je in Blender kunt toevoegen met behulp van de ­Solidify Modifier. Als je het liever massief wilt printen, moet je het object sluiten, want het heeft nog steeds minstens één opening aan de onderkant. De meeste toepassingen voor 3D-printer bieden daar automatische functies voor. Als alternatief kun je de gaten zelf dichten met behulp van de Meshmodelling-functies van Blender. We hebben de belangrijkste beschreven in onze Blender-workshops.

(informatie afkomstig uit het artikel van Gottfried Hofmann en Marco den Teuling, c’t magazine 9/2020, p. 116)

Lees uitgebreide workshops en achtergrondinfo op je gemak in c't magazine dec/2021

Deel dit artikel

Lees ook

Een smarthome opzetten met ESPHome en Home Assistant

We laten zien hoe je de gratis Home Assistant software samen met ESPHome gebruikt voor een smarthome opzetten en centraal aansturen.

Chrome OS alternatief CloudReady installeren: gratis Chromebook

Je kunt Cloudready installeren als gratis alternatief voor Chrome OS.  Maak je eigen Chromebook van een oude laptop. Zo werkt het.

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er