Diepte zien en AI

Expertise

Diepte zien en AI

Het zien van diepte in 2-dimensionale beelden is altijd een uitdaging geweest in AI. Met recente ontwikkelingen in Machine Learning zijn grote stappen gezet. Maar hoe zit dat ook alweer met diepte zien!? Heb je dan niet 2 camera’s nodig? En is de training supervised? Waar staan we eigenlijk? Dit artikel vat alles samen.

 

Figure 1: Diepte zien met Machine Learning. Bron: Youtube – Learning Robot Perception and Control using Vision with Action – Brent Griffin – University of Michigan

Voor de meesten van ons geldt dat we “diepte kunnen zien” met onze ogen. De consensus is dat we diepte zien als we 2 werkende ogen hebben. Het idee is dat beide ogen elk een beeld doorgeven van de werkelijkheid en dat onze hersenen deze beelden combineren en gebruik maken van het verschil in kijkhoek tussen de beelden om diepte waar te nemen.

Er zit een kern van waarheid in. Maar tussen deze consensus en de werkelijkheid zitten nogal wat nuances. Het experiment van Held and Hein uit 1963 zette al een breekijzer in deze opvattingen: Held en Hein toonden aan dat kittens die actief hun omgeving verkenden normaal visueel geleid gedrag ontwikkelden, maar “passief bewogen” kittens niet. Passief bewogen kittens  zitten vast in een mandje en worden daarin door hun omgeving bewogen. Ze zijn in dezelfde omgeving en zien dezelfde beelden als de andere kittens. Hun pootjes raken wel de grond maar ze kunnen hun bewegingsrichting niet zelf bepalen. Passief bewogen kittens ontwikkelen geen normaal visueel geleid gedrag en hebben moeite met diepteperceptie. Let op: Het gaat dus om de interactie die katten hebben met hun omgeving. Als ze de omgeving op eigen beweging verkennen dan leren ze diepte zien. Als ze er doorheen worden verplaatst niet.

Het hebben van twee ogen is niet voldoende voor perceptie van diepte. Diepteperceptie is deels aangeleerd. Het is dus niet volledig aangeboren. Voor katten geldt dat ze gedurende hun  ontwikkeling diepte leren zien in de periode van hun 4e to hun 16e week. Als ze in deze periode niet de kans krijgen om diepteperceptie te ontwikkelen dan zien ze niet de gevaren van afgronden en lopen ze bijvoorbeeld argeloos van een tafel.

Diepte zien in de techniek

In de wereld van techniek wordt gebruik gemaakt van sensoren om diepte te meten. LIDAR (LIght Detection And Ranging) wordt gebruikt voor autonoom rijden. LIDAR zendt licht uit. De tijd tot reflectie van objecten word vervolgens gebruikt om een een “dieptekaart” te maken van de omgeving. Maar er zijn ook systemen die gebruik maken van camera’s. De camera’s worden gebruikt als ogen. Met Machine Learning modellen worden de beelden van die camera’s verwerkt. Voor elke pixel wordt bepaald hoe ver die verwijderd is van de camera. De modellen hebben niet per se meerdere camera’s nodig om diepte te zien.  Ga maar na: Als jij één oog afdekt dan kun je nog steeds behoorlijk goed “diepte zien”. De diepte die je dan ziet is gebaseerd op wat je geleerd hebt. Dat wil zeggen: Jouw oog levert een 2-dimensionaal plaatje af aan je hersenen en jouw hersenen voegen er diepteperceptie aan toe gebaseerd op allerlei aanwijzigingen in het beeld. Aanwijzingen die je hebt geleerd toen je klein was. Bijvoorbeeld als een object maar deels te zien is dan komt dat vaak door een ander object wat er voor staat.

Van veel aangeleerde diepte-aanwijzingen ben je je eigenlijk niet bewust maar optische illusies kunnen je helpen. Optische illusies maken misbruik van aangeleerde kennis om diepte te creeren in de beelden die jouw ogen doorgeven aan de hersenen. De Ponzo Illusion is een goed voorbeeld.

Figure 2:  De Ponzo Illusion: De “rails” suggureren diepte die is er niet. Je kijkt immers naar een 2-dimensionaal plaatje. De 2 oranje balkjes zijn even groot. Jouw hersenen maken er iets anders van.

Aanwijzingen die jouw hersenen gebruiken om diepte te zien kunnen ook worden geleerd met Machine Learning. Door onder andere Meta en University of Michigan zijn methodes bedacht om computers zonder veel menselijke interventie diepte te leren zien in beelden. De methodes maken gebruik van objecten die worden gedetecteerd in videobeelden. De object-detectie is uiteraard (getraind op basis van menselijke interventie) maar met de detectie als basis kan een model zonder supervisie diepte leren inschatten tot die objecten in videobeelden. Afstand wordt geschat aan de hand van eenvoudige principes:

  • Een object dat dichtbij is en dichterbij komt wordt een stuk groter in het volgende video beeld.
  • Objecten die verder weg zijn groeien ook maar niet zo sterk als objecten die dichtbij zijn.
  • Afstand kan ook worden ingeschat voor objecten die passeren als de snelheid van passeren ten opzichte van dat object bekend is.

Deze methodes werken erg goed en zijn vrijwel gratis. Immers er kan getraind worden op rauwe videobeelden. Je kunt je ook voorstellen dat robots uitgerust met camera’s in de fysieke wereld op deze manier zelf diepte leren zien met vallen en opstaan. Net als bij katten is het dan van vitaal belang dat ze mogen bewegen door de wereld. Ze moeten hun afstand tot de objecten kunnen varieren. Je zou ook virtuele robots diepte kunnen leren zien door ze in een virtuele wereld te laten bewegen.

De feedback loop

De takeaway is dat wij – mensen – dingen leren door interactie met de wereld. Als we machines ook de kans geven om te bewegen door de (virtuele) wereld  dan kunnen zij die dingen ook leren. Omgedraaid: Als wij robots geen kans geven om te bewegen door de (virtuele) wereld  dan kunnen zij die dingen niet goed leren. We moeten ons bewust zijn van het feit dat wij – mensen  – een continue feedback-loop hebben met de wereld om ons heen. Op die manier leren we alledaagse taken uit te voeren: Auto rijden bijvoorbeeld. Of de vaatwasser inruimen. Vraag een kind dat nog nooit de vaatwasser heeft ingeruimd om de vaatwasser in te ruimen en dat kind zal de vaatwasser inruimen. Maar vergeet niet hoeveel duizenden uren daar aan vooraf zijn gegaan. Uren waarin het kind heeft gekeken naar – en gespeeld met speelgoed en andere objecten. Al die uren zijn nodig geweest om met zwaartekracht om te leren gaan, bewegingen te voorspellen, afstand te leren inschatten en kennis te maken met breekbaarheid van objecten. Verreweg het meeste wat een mens leert, leert ie op eigen kracht – uit zijn omgeving.

Er wordt in Machine Learning steeds meer gebruik gemaakt van unsupervised learning. Machines kunnen steeds zelfstandiger dingen leren. Interactie tussen machines en hun omgeving wordt steeds interessanter omdat machines daar steeds meer van kunnen leren.

Misschien kunnen machines straks net zo veel leren van hun omgeving als mensen. Wat een machine geleerd heeft kunnen we kopieren naar soortgelijke nieuwe machines. Dan hoeft een nieuwe machine niet hetzelfde leerproces te doorlopen. Als dat ook mogelijk was bij mensen dan had je dit artikel niet hoeven lezen.

Referenties

Learning Robot Perception and Control using Vision with Action – Brent Griffin – University of Michigan

DinoV2 – Meta

Ponzo Illusion – Wikipedia

Psychology – Third edition by Gleitman

Classic experiment by Held and Hein – Held en Hein

 

 

 

 

 

 

Gerelateerde berichten

Selecteer je weergave.