Je leest:

3D van platte foto’s

3D van platte foto’s

Auteur: | 24 juni 2011

Op een foto zie je niet de achterkant van een object. Een mogelijke oplossing is méér foto’s maken, maar dan zit je nog steeds losse plaatjes te bekijken. Het liefst zou je het beeld gewoon draaien; en dat kan! Met speciale software, die van een heleboel platte foto’s één mooi 3D-beeld maakt.

Stel, je wilt een tweedehands auto kopen. Grote kans dat je dan wat websites afstruint en een paar kandidaten tegenkomt. Overal staan foto’s bij, maar krijg je zo écht wel een goed beeld van de auto? Het liefst zou je een rondje eromheen lopen, zodat je de wagen vanuit alle hoeken kunt bekijken. Met speciale software wordt dat mogelijk zonder je bureau te verlaten.

De software werd gepresenteerd door een onderzoeksgroep van Microsoft tijdens TechFair, een jaarlijks evenement waarop Microsoft haar laatste vindingen toont. Hieronder zie je een videoverslag van het 3D-programma:

Kenmerken op de foto

Het begint allemaal met gewone foto’s. In het geval van de tweedehands auto zal de verkoper ongeveer veertig plaatjes moeten schieten om de wagen van alle kanten vast te leggen. Dat zijn er relatief weinig: het oorspronkelijke computerprogramma werd ontwikkeld voor bestaande online fotocollecties, zoals op Flickr. Op zulke sites worden van een (bekend) bouwwerk vaak talloze foto’s geüpload, waardoor al gelijk bekend is hoe het gebouw er vanuit elke hoek uitziet. Hierdoor kun je de fotocollectie goed gebruiken om een 3D-model te construeren.

Wat het echter lastig maakt, is dat zo’n fotocollectie vaak niet bepaald gestructureerd is: telkens een andere camera, met andere belichting (andere tijd van de dag, ander jaargetijde, etc.), en niet altijd geografische informatie… Om de foto’s toch aan elkaar te koppelen, analyseert het computersysteem elke foto inhoudelijk. Het gaat op zoek naar zogenaamde SIFT-keys, kenmerken die heel bepalend zijn voor de foto. Dat zijn bijvoorbeeld plekken waar er een groot verschil is tussen donker en licht, zoals aan de rand van een object.

Objecten herkennen met SIFT-keys

SIFT-keys zijn oorspronkelijk bedacht voor het herkennen van objecten in een foto. Eerst bepaal je de SIFT-keys van een object (op een aparte foto) en vervolgens probeer je die verzameling van keys terug te vinden op een andere foto. Afbeelding A (of B of C) kun je in afbeelding D terugvinden door op zoek te gaan naar bepaalde SIFT-keys. Het maakt daarbij niet uit dat de schoen gedraaid is.

Lowe, 1999

Hieronder zie je twee foto’s van de Trevifontein in Rome met daarop de SIFT-keys als vierkantjes aangegeven. Het lijkt misschien alsof de keys willekeurig geplaatst zijn, maar op beide foto’s verwijzen veel keys naar dezelfde plekken. Dat zie je bijvoorbeeld bij het balkonnetje helemaal rechts. Zowel op de linker- als op de rechterfoto is er een SIFT-key op het balkon, terwijl het toch twee heel verschillende foto’s zijn. Dat betekent dat dit een bepalend element is.

Twee verschillende foto’s van de Trevifontein, maar de SIFT-keys verwijzen naar dezelfde locaties in de omgeving.
Snavely, CVPR’10

Foto’s combineren

Op basis van SIFT-keys gaat het systeem proberen beelden inhoudelijk te matchen. Het probeert vast te stellen of hetzelfde object op de foto’s te zien is. Want als dat het geval is, dan kan het de beelden gebruiken om het object in 3D na te bouwen.

Voor het matchen worden de SIFT-keys van het ene beeld gekoppeld aan die van een ander beeld. Dit heet het genereren van tracks. Key 12 van foto A verwijst bijvoorbeeld naar een decoratie op een standbeeld. Op foto B verwijst key 43 naar datzelfde punt: dan maakt het systeem een track hiertussen. Overigens kloppen tracks niet altijd, maar als je er genoeg hebt, maakt dat niet uit.

Het systeem heeft vastgesteld dat het punt op de fruitmand (aangegeven met paarse cirkel) op beide afbeeldingen te zien is en maakt daarom een track.
Snavely, CVPR’10

Met deze track-informatie gaat het systeem de ‘platte’ foto in 3D nabouwen. Dat is een hele klus, want ook al weet je welke punten bij elkaar horen, je weet nog niet waar dat punt zich in de 3D-wereld bevindt. Om dat te achterhalen moet je eigenlijk weten waar elke camera stond en hoe hij was ingesteld (interne instellingen en de houding). Deze informatie is helaas niet beschikbaar, maar door slimme rekenmethodes kan het systeem hier toch uitkomen. Het berekent voor elke track de 3D-locatie. Dit doet het voor heel veel tracks, waardoor een puntenwolk ontstaat. Hiermee heb je al een vrij compleet 3D-beeld.

Nu wat mooier

De auto in het eerste filmpje was echter geen puntenwolk dus er zijn nog een paar stappen te gaan. Eerst gaat het systeem punten in de wolk met elkaar verbinden tot lijntjes en daarmee construeert het de vlakken van het object (zie linkerhelft van onderstaande afbeelding).

De linkerhelft draait om het uitzoeken van diepte: hoe zit de werkelijke wereld in elkaar? In het rechteronderdeel wordt de diepte-informatie gecombineerd met de foto’s om een echt 3D-model te maken.

Vervolgens gaat het systeem weer terug naar de oorspronkelijke foto’s (rechterhelft) en bepaalt voor alle pixels van elk foto op welk 3D-vlak een punt zich bevindt. Het systeem zoekt in feite op hoe ver elk beeldpunt van de camera is verwijderd. Hierdoor krijgen de platte foto’s diepte-informatie (middelste plaatje rechts). Met de diepte-informatie maakt het systeem een 3D-model, dat zie je in het onderste plaatje. Je bekijkt het huisje hier vanuit een ander, nieuw gezichtspunt, wat betekent dat het echt 3D is. De gaten worden vanzelf gevuld als je alle foto’s gebruikt, want elke afbeelding toont weer een andere hoek van het object.

Daarna is het een kwestie van ‘behangen’. De foto’s worden als het ware op het model geplakt, zodat het een realistische uitstraling krijgt; en daarmee is het 3D-beeld in feit!

Met view-independent texture mapping – een speciale behangmethode voor plaatjes – wordt het model beplakt met foto’s.
Debevec, 1996

Helaas is nog niet duidelijk wanneer we dit daadwerkelijk thuis kunnen gaan doen. De onderzoekers wilden laten zien dat de techniek er is, maar weten nog niet wanneer de software goed genoeg is om op de markt te brengen. Je kunt wel een ander soort versie uitproberen. De onderzoekers maakten namelijk een website waarop je een 3D-omgeving via losse foto’s kunt bekijken. Ook alvast erg leuk!

Bronnen

  • Agarwal et al., ‘Building Rome in a day’, Proceedings of the IEEE International Conference on Computer Vision, art. no. 5459148, pp. 72-79, 2009
  • Snavely et al., ‘Photo tourism: Exploring photo collections in 3D’, ACM Transactions on Graphics, 25 (3), pp. 835-846, 2006
  • Lowe, ‘Distinctive image features from scale-invariant keypoints’, International Journal of Computer Vision, 60 (2), pp. 91-110, 2004
  • Debevec et al., ‘Modeling and rendering architecture from photographs: a hybrid geometry- and image-based approach’, SIGGRAPH ’96, doi:10.1145/237170.237191

Zie ook:

Lees meer over beeldverwerking en -herkenning op Kennislink:

Oeps: Onbekende tag `feed’ met attributen {"url"=>"https://www.nemokennislink.nl/kernwoorden/beeldherkenning/beeldverwerking/index.atom?m=of", “max”=>"7", “detail”=>"minder"}

Dit artikel is een publicatie van NEMO Kennislink.
© NEMO Kennislink, sommige rechten voorbehouden
Dit artikel publiceerde NEMO Kennislink op 24 juni 2011

Discussieer mee

0

Vragen, opmerkingen of bijdragen over dit artikel of het onderwerp? Neem deel aan de discussie.

NEMO Kennislink nieuwsbrief
Ontvang elke week onze nieuwsbrief met het laatste nieuws uit de wetenschap.