Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera’s Sofie De Cooman 21 December 2006
Stagebedrijf: Interne begeleider: Externe begeleider:
1
BarcoView Koen Van De Wiele Gert Van Hoey
Omschrijving van het project
1.1
Algemeen
Camerabeelden worden dikwijls toegepast om automatisch mensen (of objecten) te lokaliseren in een kamer, bv. in toepassingen van virtual of augmented reality. Een mogelijkheid is te werken met vast opgestelde camera’s en de personen of objecten dan te detecteren, lokaliseren en volgen op basis van de camerabeelden. Bij dit project wordt echter een andere mogelijkheid bekeken: het voorwerp of de persoon draagt zelf de camera (bv. een zgn. “head-mounted” camera), en de lokalisatie van persoon of voorwerp gebeurt door in het camerabeeld merktekens te lokaliseren die in de kamer aangebracht zijn. 1.2
Doelstelling
Software-gebaseerde realisatie en demonstratie van cameralokalisatie in ware tijd (real-time).
2
Beknopte analyse
In grote lijnen bestaat het project uit drie delen: Genereren van geschikte merktekens en optimaal plaatsen van deze merktekens in de omgeving (bv. pictogrammen of andere zelf samengestelde beelden of patronen). Merktekens in het camerabeeld lokaliseren en identificeren. 1
Via de resultaten bekomen in de voorgaande stap (2D-informatie) de positie van de camera zoeken in 3D (en dus van het object dat de camera draagt). Hiervoor zal ook een calibratie van de camera vereist zijn, die eenmalig vooraf kan gebeuren.
Bij elk van deze delen zullen nog een aantal problemen moeten opgelost worden, zie ook sectie 5 Aangezien onmiddellijk een resultaat moet geproduceerd worden voor elk frame dat binnenkomt van de camera (real time), zal ook de performantie een grote rol spelen. De gebruikte werkwijze moet zo doeltreffend mogelijk zijn maar moet zo weinig mogelijk tijd in beslag nemen.
3
Te verwezelijken
3.1
Basisopdracht
Softwaretool voor het genereren van een geschikte set van merktekens. Dit betekent het bepalen van de patronen, hun grootte en de plaats waar ze aangebracht moeten worden. Deze tool moet hierbij rekening houden een aantal aspecten: resolutie van de gebruikte camera, grootte van de ruimte waarin de lokalisatie gebeurt ... Implementatie in software van een geschikt algoritme voor:
– Lokalisatie van merktekens in 2D-beelden – Berekening van de camerapositie in 3D Onderzoek prestaties:
– Markerdetectie: wanneer wordt een merkteken herkend en correct ge¨ıdentificeerd (vb. in functie van de hoek met en afstand tot de camera). Is de lokalisatie van de markers in het beeld correct en wat is de invloed op de positiebepaling van de camera . . . – Positiebepaling: nauwkeurigheid van de positiebepaling van de camera t.o.v. de merktekens. Dit kan weer bekeken worden in functie van verschillende parameters vb. resolutie van de camera, afstand/hoek tussen camera en merktekens . . . Dit kan zowel proefondervindelijk als via simulatie (vb. door toevoegen van ruis aan het camerabeeld) Onderzoek performantie: tijd nodig voor de behandeling van een frame in functie van bepaalde parameters (vb. aantal merktekens aanwezig in het beeld)
3.2
Uitwerken van een praktisch bruikbare applicatie
In eerste instantie zal de werking gedemonstreerd kunnen worden met een (mobiele) laptop en USB-camera. Doel is echter om dit uit te breiden tot een praktisch bruikbare applicatie. 2
Figuur 1: Voorbeeldtoepassing
Een voorbeeld (figuur 1): een persoon loopt rond en draagt een camera. Hij draagt bijvoorbeeld een laptop op z’n rug waarmee via de camerabeelden z’n positie wordt bepaald. Via een WIFI-verbinding wordt die positie doorgegeven aan een basisstation. Dit basisstation zal afhankelijk van deze positie bijvoorbeeld een beeld op een bepaalde manier projecteren (via een projector, analoge verbinding met het basisstation). Bij dit project zal waarschijnlijk eerder een variant uitgewerkt worden waarbij gebruik wordt gemaakt van een ”head mounted display”(HMD). Dit is een soort bril met twee ingebouwde beeldschermen (voor elk oog een) die kan gebruikt worden in plaats van de projector. De rendering van een 3D scene gebeurt nu op laptop, vanuit een virtuele positie die overeenkomt met de bepaalde cameralocatie. Vervolgens wordt de 3D scene doorgespeeld aan de HMD. Er is nu geen basisstation meer nodig.
4
Mogelijke opties en uitbreidingen
Gebruik van feature tracking methoden: In een tweede luik van dit project kan gewerkt worden met duidelijke ’natuurlijke’ kenmerken (’features’) van de omgeving, d.w.z. kenmerken die niet kunstmatig 3
aangebracht zijn (vb. hoekpunten van vaste objecten die gemakkelijk herkenbaar zijn voor beeldverwerkingsalgoritmen). Als een feature in een frame kan gelinkt worden met het overeenkomstig ’feature’ in het volgende frame (indien het nog steeds aanwezig is), zou het in dit geval eveneens mogelijk moeten zijn om de camera te lokaliseren en het traject van de camera te achterhalen. Het vinden van goede ’features’ onafhankelijk van de omgeving zal hier van groot belang zijn. Gebruik ter ondersteuning, vb. eerst merktekens detecteren en lokaliseren, daarna hun beweging tracken met feature-gebaseerde methoden.
5
Op te lossen problemen Keuze merktekens
– Welke merktekens kunnen het best / snelst gedetecteerd worden. – Hoe zorgen voor een betrouwbare identificatie. – Hoe kunnen de merktekens zo goed mogelijk onderscheiden worden zodat de kans klein is dat een merkteken als een ander wordt aanzien. – Hoe ervoor zorgen dat een rotatie van een merkteken ook correct wordt ge¨ıdentificeerd. – Minimum grootte in pixels van een herkend merkteken zo klein mogelijk maken. – Zorgen voor een merkteken dat doorgaans goed kan onderscheiden worden van de omgeving, zodat niet verkeerdelijk de aanwezigheid van een merkteken wordt gemeld. Plaatsing merktekens ´ en merkteken kan voldoende zijn om de positie van de camera terug te vinden, E´ maar of het resultaat dan ook betrouwbaar is in alle omstandigheden valt te betwijfelen. Er zal op zoek moeten gegaan worden naar een goede plaatsing in de omgeving zodat het resultaat toch zo betrouwbaar mogelijk is. Dit zal samen hangen met het testen van de nauwkeurigheid van de positiebepaling. Zoeken van geschikte algoritmes voor alle verdere stappen (positiebepaling, markerdetectie en identificatie, evt. features zoeken, evt. traject zoeken . . . ) Hiertoe zal een grondige literatuurstudie moeten gebeuren. Soortgelijke systemen werden al ontworpen, vooral binnen het terrein van augmented reality, en ook het probleem van de positiebepaling is niet nieuw. Een eenduidig antwoord is er echter niet, de werkwijze hangt vaak samen met de toepassing. Een beschrijving van bestaande systemen kan worden teruggevonden in vaak vrij theoretische papers. Algoritmes voor de positiebepaling zijn ook vaak enigszins abstract beschreven. Bijgevolg zal hier wel wat zoek- en studiewerk nodig zijn om goede elementen te selecteren en zonodig te optimaliseren. Uitwerken voorbeeldtoepassing 4
– Aanspreken HMD – Hoe een bepaald beeld genereren in functie van de gevonden positie. Bepaalde modules zijn hiervoor misschien reeds beschikbaar bij Barco, aanspreken van deze modules is waarschijnlijk niet zo evident.
6
Gebruikte technologie¨ en De uiteindelijke implementatie zal in C++ gebeuren (ontwikkelomgeving Visual C++) OpenCV (Open Source Computer Vision Library, ontwikkeld door Intel) is een bibliotheek van (basis)functies voor beeldverwerking (in real time). Er zijn ook functies voor toegang tot camerabeelden e.d. Matlab biedt met de Image Processing Toolbox (IPT) een uitgebreid aanbod aan functies voor beeldverwerking. Op deze manier kunnen in Matlab snel en eenvoudig toepassingen worden geschreven en getest. Omwille van het gemak van werken zullen algoritmes die specifiek te maken hebben met beeldverwerking eerst in Matlab ontwikkeld en getest worden. Corresponderen met C++-functies kan in Matlab via zogenaamde MEX-functies. Uiteindelijk zal het geheel wel naar C++ worden omgezet om zo een objectgeori¨enteerd en vooral ook performanter programma te verkrijgen.
7
Vernieuwende aspecten Beeldverwerking algemeen, gebruikte technieken ... Matlab (en IPT) Gebruik OpenCV
8
Overzicht items scriptie Basisbegrippen nodig voor begrip rest (vb. beschrijving cameramodel, calibratie . . . ) Enkele bestaande systemen, voor- en nadelen (bestaande systemen gebruikt voor augmented reality - toepassingen) Opbouw gebruikte markers (identificatie . . . ) Praktische problemen: plaatsen van merktekens . . . Werkwijze bij opsporen en identificeren van merktekens in camerabeeld Prestaties detectie merktekens Werkwijze positiebepaling Nauwkeurigheid positiebepaling (simulatie / proefondervindelijk) 5
Performantie Beschrijving van de opstelling die gebruikt wordt voor de demonstratie
(Bij elk van deze items wordt ook steeds beschreven waarom werd gekozen voor een bepaalde oplossing)
6