Mönsterigenkänning och följning

Digitala projekt VT 2004
Carl Loodberg, grupp 10

Målet med mitt projekt är att konstruera ett system som kan lokalisera förutbestämda mönster visuellt i sin omgivning och följa dem med blicken.

Att göra kameran rörlig åstadkoms genom att montera en webbkamera på en stegmotor. Bilden från webbkameran överförs på vanligt sätt till datorn via USB. Motorn styrs med hjälp av parallellporten och motorn försörjs med spänning från datorns nätaggregat.

För att känna igen mönster i bilden fångas bilden från webbkameran och lagras i en buffert. Bilder från bufferten analyseras sedan i den takt som datorn klarar av och det mål som söks lokaliseras.

Mönstret som skall kännas igen är ett antal koncentriska cirklar likt en darttavla. Orsaken till detta val är att man, med hjälp av att utföra en Houghtransform på bilden, kan lokalisera centrum hos cirklar med en viss diameter. Eftersom diametern i bilden blir olika stor beroende på avståndet till målet så är det fördelaktigt om målet utgörs av måna koncentriska cirklar så att någon cirkel alltid bli lagom stor för att detekteras.

Analysen består av två steg. Först detekteras kanter med hjälp av något som inombildanalys kallas för sobeloperator. Bilderna nedan visar hur en originalbild samt en kantdetekterad bild ser ut.

Sedan appliceras cirkulär Houghtransform vilket medför att cirklar av en viss storlek transformeras till centrum av originalcirklarna. För att lokalisera cirklarna behöver man bara leta efter ljusmaximum i den transformerade bilden.

Mjukvaran för att hämta upp bilden från webbkameran samt att styra motorn skrivs i C# eftersom det gör det lätt att komma åt data från webbkameran.

Två fält i användargränssnittet berättar hur många bilder per sekund som analyseras respektive hur långt från centrum som målet hittats i x-led.



Projektet skiljer sig till stor del från traditionella projekt i kursen ”Digitala Projekt” men det inkluderar likväl en ren hårdvarudel genom styrningen av stegmotorn. Uppgiften kan delas in i tre övergripande delar nämligen att styra stegmotorn, att hämta upp och buffra bilder från webbkameran samt att analysera de upphämtade bilderna för att lokalisera målet.

Klicka här för att läsa hela rapporten