maandag 19 oktober 2009

Paper: Improved Topological Fiducial Tracking in the reacTIVision System


(eerste versie van deze paper staat hier)
Amoeba engine
Deze paper beschrijft hoe fiducials (grafisch symbool dat gekend is door het computer vision systeem en daarom gemakkelijk herkend kan worden wanneer het op de tabletop ligt) gebruikt kunnen worden door een trackingsysteem en hoe ze gevormd werden.
Elke fiducial is feitelijk een binair beeld (zwart/wit) dat via segmentatie (pixels die tot eenzelfde object/gebied behoren worden gegroepeerd) herleid kan worden tot een "region adjacency graph" waarbij zwarte en witte gebieden elkaar opvolgen in de boom als er telkens van vader naar zoon gegaan wordt. De bladeren van de boom zijn dus gebieden die geen andere gebieden meer bevatten. Een fiducial wordt herkend op basis van zijn topologie, m.a.w. op basis van zijn graaf. 2 fiducials zijn verschillend van mekaar als ze een verschillende graaf hebben, ongeacht de geometrie.

Locatie & oriëntatie
Het bepalen van locatie en oriëntatie werd sterk beïnvloed door de implementatie van het segmentatiealgoritme. Dit onthoudt van de verschillende gebieden slechts hun omhullende rechthoek waarvan de zijden evenwijdig lopen met de assen. Het bleek dat het middelpunt van een gebied goed benaderd werd door het middelpunt van zijn omhullende rechthoek te nemen, met de kleinste fout bij de kleinste gebieden. Vandaar kiest men ervoor om de locatie van een fiducial als volgt te bepalen: een gewogen gemiddelde wordt genomen van alle middelpunten van de bladeren in de boom.
De oriëntatie wordt bepaald aan de hand van ofwel de witte ofwel de zwarte bladeren. Er wordt opnieuw een gewogen gemiddelde genomen van 1 van beide groepen, waarbij het gewicht afhangt van het blad in de boom. Dit is een manier om de grootte van het gebied mee in rekening te brengen.

Hoe fiducials genereren?
Eerst worden er bomen gegenereerd die aan bepaalde beperkingen moeten voldoen (aantal witte en zwarte bladeren, bepaalde diepte, totaal aantal knopen). Eens er topologieën (bomen) gevonden zijn gaat men op zoek naar geometrieën (fiducials). Ook hier zijn er weer beperkingen:
1. het middelpunt van alle bladeren moet het middelpunt van de fiducial goed genoeg benaderen
2. de vector die nodig is om de oriëntatie te bepalen moet voldoende lang zijn om dit nauwkeurig te kunnen doen.
In de volgende stap gebruikt men een genetisch algoritme om alle parameters te optimaliseren. Van elke boom wordt dan de beste geometrie gekozen, met als criteria grootte en de lengte van de oriëntatievector.

Hoe fiducial herkennen in een videoframe?
Om een fiducial (een subgraaf van het gehele frame) te herkennen in een frame gebruikt men een voorstellingswijze adhv de diepte van de knopen: 'left heavy depth sequences'. Elke knoop van een boom krijgt een getal mee adhv zijn diepte en die van zijn kinderen, waarbij de meest zware kinderen, die op hun beurt het meeste kinderen hebben, eerst vermeld worden. Het trackingsysteem bezit een database met de 'left heavy depth sequences' van de gebruikte fiducials en gaat na of er in de graaf van het globale beeld een subgraaf is met een sequentie van een fiducial. Als zo'n fiducial succesvol geïdentificeerd wordt, kan de locatie en oriëntatie berekend worden.

enkele alternatieve trackingalgoritmen voor fiducials:
ARToolKit
ARTag
D-touch (voorloper van dit algoritme)

Geen opmerkingen:

Een reactie posten