3D visie

3D visie

3D visie vormt een belangrijke hoeksteen van moderne industriële visiesystemen. Denk hierbij aan dimensionele controle, lokalisatie en mappen, afwijkingen met een CAD model meten of bin picking. Er zijn echter verschillende technologieën die gebruikt worden om 3D beelden op te meten, en verschillende methodes om 3D data te verwerken en op te slaan. Dit artikel geeft een inleiding over 3D visie, de data sets, en de onderliggende technologieën.

Inleiding

Een klassieke twee-dimensionele foto toont een scene of object zoals waargenomen vanuit 1 enkel punt. Dit is te vergelijken met wat wij zien indien we een stilstaande scene zouden bekijken vanuit stilstand met één oog. In een dergelijk beeld is geen informatie aanwezig over diepte, oftewel over de afstand van objecten tot de observator of camera. Contextuele informatie kan wel wat kwalitatieve hints geven over diepte. Als een foto een grote laptop en kleine dennenbomen bevat kan men veronderstellen dat de bomen verder weg staan dan de laptop. Ook occlusie geeft een volgorde aan van voorwerpen qua diepte. Dergelijke kwalitatieve contextuele informatie is echter vaak niet genoeg om de gepaste beslissingen te nemen, vergen vaak veel rekenkracht en zijn gevoelig voor fouten.

Veel industriële toepassingen hebben echter baat bij gedetailleerde diepte-informatie. Denk hierbij aan het lokaliseren van paletten in een warenhuis, aan het lokaliseren en mappen van een omgeving door een robot (“simultaneous localisation and mapping”, oftewel SLAM), aan het picken van objecten uit een doos met een robot-arm, of aan het controleren van de positie of de afmetingen van objecten. 3D beeldvorming kan hierbij een oplossing bieden.

3D data sets

Een 3D data set kan op verschillende manieren voorgesteld worden in een computersysteem, of waargenomen worden door visie-hardware. De meest gangbare representaties en hun beperkingen zijn hieronder weergegeven.

Computer design

“Computer aided design” (CAD) is het gebruik van computers voor het ontwerpen, optimalizeren en analyseren van een design. Zeker voor industriële objecten is dit van toepassing, waarbij een “ideaal” ontwerp digitaal op een computer wordt ontwikkeld. Een uitgebreid scala aan software voor 3D CAD design is beschikbaar, gaande van relatief eenvoudig tot erg geavanceerd, van gratis tot erg duur. Merk op dat computer design ook toepassingen heeft in de entertainment industrie, bijvoorbeeld in videospelletjes of tekenfilms.

Een “ideaal” computer design bestaat meestal uit een combinatie of sequentie van geometrische operaties, waarbij elementaire geometrische objecten (kubus, vlak, kegel, bol, …) worden gecombineerd, samengeteld en afgetrokken bij elkaar. Zeker voor industriële objecten is dit geschikt, gezien organische vormen die moeilijk mappen op elementaire geometrische vormen hierbij niet vaak voorkomen. Bijkomend kan men informatie toevoegen over de texturen, materialen of kleuren van oppervlakken en onderdelen, en belichting in de scene toevoegen.

Voor praktisch gebruik wordt een dergelijk ideaal geometrisch design vaak gediscretiseerd. Vele algoritmes kunnen enkel om met lijnen, vlakken en/of discrete punt-representaties, en het ideale CAD design wordt dan gediscretiseerd, vaak in de vorm van driehoeken die telkens een ribbe delen. Kleinere driehoeken resulteren in meer polygonen die in de gediscretiseerde representatie gaan, een groter resulterende bestand, en kleinere discretisatie-fouten. Triangulatie is een complex onderwerp op zich, met een uitgebreide literatuur en software beschikbaar.

CAD mechanisch ontwerp van een compressor

Een CAD mechanisch ontwerp, waarbij alle onderdelen voorgesteld worden als elementaire geometrische objecten en operaties.

gediscretiseerd CAD ontwerp

Een gediscretiseerd CAD ontwerp van een hoofd, waarbij het ideale model gereduceerd is tot een triangulatie.

Puntenwolk

Een andere manier om een 3D object voor te stellen in digitale vorm is als een puntenwolk, bestaande uit een groot aantal punten in de 3D ruimte die zich op het oppervlak van het object bevinden.

Puntenwolk

Een puntenwolk van een torus. Lucas Vieira, Public domain, via Wikimedia Commons

De verdeling van punten over het object bepalen vaak de kwaliteit van de puntenwolk:

  • Bij een te laag aantal punten zullen fijne details van het 3D object niet goed voorgesteld worden
  • De puntenwolk kan partieel zijn, bijvoorbeeld enkel de voorkant van het object is aanwezig en de achterkant niet
  • De verdeling van samples over het oppervlak kan sterk variëren en hoeft allesbehalve homogeen te zijn.

Verder is er ook geen verband tussen de punten aanwezig, en gaat men er meestal van uit dat “naburige” punten op hetzelfde oppervlak liggen. Dit hoeft echter niet het geval te zijn, wat zeker een probleem vormt bij grillige vormen of complexe vormen met gaten of dunne onderdelen. Men kan bijvoorbeeld simpel van een triangulatie naar een puntenwolk gaan door enkel de vertices van de driehoeken over te houden als punten, en alle relaties tussen deze vertices te verwijderen. Het omgekeerde pad is echter heel wat complexer en niet éénduidig bepaald.

Een puntenwolk is echter vaak wél de uitvoer van 3D visie-systemen, waardoor we in de praktijk vaak gedwongen zijn hiermee te werken.

Dieptemap

Een speciaal type van puntenwolk is een dieptemap. Een dieptemap kan voorgesteld worden als een monochromatische 2D foto (een 2D foto met maar 1 kanaal), waarbij het getal in elke pixel de afstand in de scene voorstelt. Een andere voorstelling is dat met vanuit het brandpunt van de camera een enkele lijn door elke pixel in de foto creëert, en de afstand tot het corresponderende object in de scene registreert. Op die manier wordt een puntenwolk van de scene bekomen, met volgende beperkingen:

  • De volledige scene is aanwezig, er wordt geen onderscheid gemaakt tussen verschillende objecten
  • Enkel één zijde van elk object is aanwezig. Een volledige 3D representatie kan niet zomaar worden bekomen.
  • De sampling van de 3D puntenwolk ligt vast, en is vaak niet ideaal voor objecten die verder weg liggen, klein zijn of grote vlakken bevatten in de kijkrichting van de camera.

Links: Een 3D object als een computer design. Rechts: De dieptemap van dit object, waarbij elke pixel de afstand tot het object of de achtergrond weergeeft (donkerder = dichterbij). Dominicos, CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons

Volumetrische beelden

Een laatste type van 3D beelden zijn volumetrische beelden, waarbij het beeld is samengesteld uit een 3D tensor van voxels in plaats van een 2D matrix van pixels zoals bij een conventionele foto of een dieptemap. Het object wordt dus gediscretiseerd in een 3D rooster (tensor) van kleine kubusjes (voxels) met één waarde per voxel. Deze waarde stelt typisch een volumetrische eigenschap van het object voor, bijvoorbeeld:

  • De aan-/afwezigheid van een object, resulterend in een 3D binair masker
  • De lokale attenuatiewaarde voor X-stralen transmissie, zoals in een CT scan
  • Lokale magnetische eigenschappen, zoals in een MRI scan
  • Secundaire grootheden berekend uit primaire waarden, zoals materiaaldichtheid, materiaaltype, transparantie, …

Volumetrische beelden bevatten typisch gezien heel wat meer informatie dan de vorige 3D representaties welke vooral de randen van een object voorstellen: In een volumetrisch beeld kan men ook binnen in het object kijken op eender welke locatie. Verder is het triviaal in een volumetrisch beeld om 2D doorsneden te maken, in eender welke richting. Het herconstrueren van 3D beelden vanuit verschillende 2D schaduwen, silhouetten of transmissiebeelden noemt men tomografie.

De toepassingen van volumetrische beelden zijn momenteel vooral gefocused op medische beeldvorming, bijvoorbeeld als de bekende X-ray computed tomography (CT) of magnetic resonance imaging (MRI) scan. Echter ook voor industriële toepassingen is tomografie van belang: Interne defecten kunnen gevisualiseerd en gesegmenteerd worden via X-ray CT, of 3D vormen van objecten kunnen berekend worden vanuit hun silhouetten. Een voorbeeld vanuit additive manufacturing is hieronder gegeven.

3D geprint metalen object

Een 3D-geprint metalen object (links), een 3D visualisatie van de randen van het object vanuit een CT reconstructie (midden), en een 3D visualisatie van interne defecten binnenin het object (rechts).

Technologieën voor 3D beeldvorming

Stereovisie

Een populaire methode om aan 3D beeldvorming te doen is gebaseerd op stereovisie. Dit werkt op dezelfde manier als het dieptezicht bij mensen: De scene wordt waargenomen met twee camera’s (of ogen) vanuit twee verschillende gekende posities, de corresponderende objecten worden met elkaar geïdentificeerd, en uit de hoekinformatie wordt de diepte tot het object afgeleid.

Stereovisie

Twee camera's observeren een scene vanuit verschillende perspectieven. Uit hun gekende geometrische opstelling kan dan diepteinformatie afgeleid worden Arne Nordmann (norro), CC BY-SA https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons.

Stereo beelden kunnen door een mens geïnterpreteerd worden indien elk oog één van de beelden getoond wordt. Dit vormt dan ook de basis van veel 3D visie toepassingen, zoals 3D visie in een bioscoop (gebaseerd op polarizatie- of kleurenfilters) of 3D brillen.

3D-zicht gebaseerd op sterevisie

3D-zicht gebaseerd op stereovisie gaat reeds lang mee. John Alan Elson, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

Om van een stereobeeld tot een dieptebeeld te komen moeten verschillende stappen doorlopen worden, waaronder overeenkomsten zoeken tussen dezelfde objecten, een “ongelijkheidsmap” (disparity map) opbouwen die de verschillen (afstand in pixels) tussen objecten in de twee beelden weergeeft, en de geometrische omrekening maken van deze ongelijkheid naar diepte. Moderne stereocameras bevatten de nodige algoritmes om dit op het toestel uit te rekenen, en zullen dan ook een dieptebeeld als uitvoer geven. De meeste beeldverwerkingsplatformen hebben ook algoritmes om aan de hand van een gekende geometrie en twee beelden een dieptemap te bepalen (zie bijvoorbeeld deze oplossing in OpenCV)

Een speciaal geval van stereovisie zijn de één-dimensionele afstandssensoren die gebaseerd zijn op triangulatie: Een lichtpunt wordt geprojecteerd op het object en van op een korte afstand waargenomen met een enkele rij lichtgevoelige cellen (een CCD lijnsensor). Vanuit de hoek kan dan snel een éénvoudig een afstand bepaald worden. Dergelijke sensoren vinden veel gebruik als erg goedkope maar relatief onnauwkeurige afstandssensoren, bijvoorbeeld in drones (bv. grond-detectie), automatisatie (bv. controle aanwezigheid van een doos) en domotica (automatische kranen, toiletten, deuren, zeep-dispensers, …).

Sharp infrarode afstandssensor

Een Sharp GP2Y0A02YK infrarode afstandssensor. Eén oogje bevat een IR diode die een lichtpunt projecteert. Het andere oogje bevat een kleine CCD lijnsensor. De interne electronica vormt dit om tot een afstand, in de vorm van een (analoog of digitaal) signaal. Stefan Tauner, CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons

LIDAR

LIDAR staat voor “light detection and ranging”, en wordt ook wel laserscanning, laser rangefinder of 3D scanning genoemd. Deze technologie is gelijkaardig aan echolocatie, maar dan met licht: Een erg korte lichtpuls wordt uitgestuurd in een bepaalde richting, en de tijd tot het waarnemen van de reflectie (de “echo” van het licht) wordt nauwkeurig gemeten. Omdat de lichtsnelheid constant is kan hieruit dan de afstand bepaald worden. Deze techniek noemt men dan ook “time of flight”.

LIDAR

Het "time of flight" concept van een LidAR. Cartographer3D, CC BY-SA-4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

 

De lichtbron in LIDARs is meestal een (infrarood) laser, voor verschillende redenen: Laser licht is gecollimeerd en dus gemakkelijk te richten in een dunne bundel. Verder is het ook monochroom, wat minder dispersie (spatiale uitspreiding) van de lichtpuls veroorzaakt, en zijn laserdiodes goedkoop en eenvoudig aan te sturen. De nauwkeurigheid van een LIDAR hangt samen met de nauwkeurigheid van de interne timer, en picosecond-nauwkeurigheid is geen uitzondering. Dit leidt tot millimeter-accuraatheid. Het waargenomen oppervlak moet echter wel het gebruikte laserlicht reflecteren: Oppervlakken die absorberen (“zwart” zijn voor het gebruikte IR licht) of het licht naar elders reflecteren (spiegelen) zijn dan ook slecht waarneembaar of onzichtbaar voor een LIDAR.

LIDARs kunnen één- tot driedimensioneel zijn:

  • 1-dimensioneel: Het toestel meet de afstand tot 1 punt. Denk hierbij bijvoorbeeld aan contactloze afstandsmeters die populair zijn in de bouw.
  • 2-dimensioneel: Het toestel meet alle afstanden over 1 (horizontaal) vlak of over 1 lijn, bijvoorbeeld door gebruik te maken van een enkele roterende spiegel, een diffractie-element of een MEMS spiegel. Dit wordt ook wel een lijnscanner genoemd, en vind gebruik in rollende-band systemen om passerende objecten te scannen, en in bijvoorbeeld (dure) robot-stofzuigers om obstakels te detecteren.
  • 3-dimensioneel: Het toestel bouwt een volledige 3D puntenwolk op (een dieptemap vanuit het perspectief van de scanner). Vaak worden hiervoor accurate 2-spiegel scansystemen ingezet om de laser te richten, gecombineerd met een hoog-performante en snelle verwerking welke miljoenen scanpunten per seconde toelaat.

LIDAR Dieptemap

Een 3D LIDAR dieptemap (onder) van een landbouw scène (boven).

LIDARs bestaan in verschillende kwaliteitsklassen en modellen, gaande van handgehouden 1D toestellen tot erg dure en geavanceerde 3D LIDARS die miljoenen metingen per seconde kunnen uitvoeren met hoge accuraatheid in zowel hoek als afstand. Ook de afstanden waarover LIDARs werken variëren sterk: van enkele meters voor éénvoudige consument-LIDARS tot planetaire afstanden.

ToF camera

Een andere categorie van 3D afstandssensoren gebaseerd op dezelfde time of flight (ToF) technologie zijn ToF cameras. Hierbij wordt een korte lichtpuls of een patroon uitgezonden vanuit een diode of een flitslamp die een hele scene ineens zal verlichten. Dit golffront zal verschillende objecten op andere tijdstippen bereiken, afhankelijk van hun afstand. Vervolgens zal een speciale 2D (CCD of CMOS) sensor voor elke pixel de tijd bepalen tot waarnemen van dit gereflecteerde lichtfront. Op deze manier kan een volledige dieptemap in één operatie opgebouwd worden.

De performantie van een ToF camera varieert sterk met de prijs en kwaliteit: accuraatheid is typisch in de orde van enkele millimeters tot centimeters, maximale afstanden van enkele tot tientallen meter, resoluties van honderden tot tienduizenden punten, en refresh rates in de 1-100 Hertz range. Prijzen varieren van 100 euro voor de simpelste modellen tot duizenden euro voor de hoog performante. Merk op dat we hiermee in dezelfde prijsklasse en performanties zitten als LIDAR sensoren.

Toepassingen van ToF cameras zijn erg breed: Persoonsdetectie (dode hoek camera, automatisch starten van roltrappen, openen van deuren, …), tellen van mensen (crowd control, toegang van gebouwen, passagiers in een voertuig, …), object detectie en (vorm-) classificatie, vermijden van botsingen, pad planning, … Deze sensoren vinden nu ook toepassing in sommige duurdere smartphones om een dieptemap van een scene op te bouwen om zo scherpstelling, belichting en diepte-effecten van fotografie te vereenvoudigen. Ook de populaire Kinect (versie 2) gebruikt een ToF camera om een dieptebeeld op te bouwen.

Merk op dat ook akoestische time of flight sensoren bestaan, waarbij een “chirp”, of een ultrasone geluidspuls, wordt uitgestuurd en de echo hiervan wordt waargenomen via een gefilterde microfoon. Deze sensoren nemen objecten waar in een relatief brede kegel in de kijkrichting, en zijn dus uitermate geschikt voor éénvoudige afstands- en beveiligingstoepassingen (bv. parkeersensoren in voertuigen).

Ultrasone afstandssensor

Een ultrasone afstandssensor, met aparte emitter en ontvanger. Modellen die beide integreren bestaan ook, en zijn erg populair als afstandssensoren in voertuigen. Nowforever, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

Meer weten?

Wil je graag meer informatie over 3D visie en de mogelijke toepassingen voor jouw bedrijf? Contacteer ons dan snel.