Seende Robotar av Patrik Burehäll 2000-01-15

   Denna artikel är ett resultat av en uppgift i kursen 2E1111 Teknikinformation med elektriska mätningar HT1999-VT2000 som ges för Elektroteknik årskurs 1, vid KTH i Stockholm.
   Syftet med artikeln är att ge en överblick över de viktigaste funktionerna och termerna inom tillämpat datorseende, samt hur och var dessa kommer till användning i samhället.

Innehåll

Ingress
   Seende Robotar
   Vad Menar vi med Seende Robotar?
Identifiering
   Kanter och plana ytor
Passiva och Aktiva seende system
   Aktiva system mer lämpliga för mobila robotar
Kameraföljning av rörliga föremål
   Snabbhet eller Precision
   Förändringar i bilderna
Stereoseende
   Disparitet och fokusering
   Fixering
Seende system måste fatta beslut
   Existerande system
   Användningsområden
Litteraturlista


Seende Robotar

Det finns redan idag robotar och datorsystem som kan se saker i sin omgivning och reagera olika beroende på vad de ser. Men hur fungerar de? Hur vet de vad de ser?

 

 

Seende Robotar
   I många science fiction-filmer förekommer på ett eller annat sätt robotar som med hjälp av sina kameraögon verkar tolka omgivningen på samma sätt som vi människor gör. Ett klipp görs i filmen och plötsligt visas omgivningen som sedd "med robotens ögon". Detta brukar innebära en dyster mörk bild med många röda siffervärden, blinkande linjer och kanske någon mänsklig gestalt med rödmarkerad siluett och ett rött sikteskors som markerar den plats där hjärtat sitter…
   Hur väl stämmer egentligen denna bild med verkligheten? Är det möjligt att i dagens läge konstruera robotar så att de kan tolka sin omgivning tillräckligt bra för att kunna utföra en komplicerad uppgift i en föränderlig miljö?

Vad menar vi med Seende Robotar?
    En av de första frågorna vi borde ställa oss inom detta ämne är vad som är en seende robot. Svaret på frågan är inte alls så uppenbart som det först kan tyckas. Är till exempel en lagerrobot, som navigerar sig genom en labyrint av hyllor med hjälp av en roterande laserstråle som mäter avståndet till utsatta reflektorer, en seende robot? Nej, de flesta skulle inte anse det. Men om roboten utrustades med ytterligare en sensor som gjorde att den kände av hinder i dess väg och kunde undvika dem, då skulle det förmodligen se ut som om roboten "såg" vad den gjorde och vart den var på väg. Men som tidigare nämnts är detta inte ett "seende" system, eftersom det bygger på reflektion av en utsänd puls, ett s.k. aktivt navigationssystem.
   Det som kännetecknar seende system är att de samlar in information genom att tolka bilder och sedan utför olika saker, t.ex. plockar bort en defekt produkt eller larmar om något är fel, utan att kräva att en människa gör bedömningen.

Identifiering
   En av de vanligaste uppgifterna för seende system är att snabbt och med stor noggrannhet identifiera och klassificera olika föremål. Identifieringen bygger oftast på att delar av kamerabilden jämförs med bilder i en databas där en mängd olika föremål finns avbildade ur olika vinklar och i olika ljusförhållanden. För en robot som t.ex. ska räkna stolar kan det behövas flera hundra bilder på olika typer av stolar, samt lika många som visar vad som inte är stolar. I jämförelseprocessen tar systemet hänsyn till form, färger, mönster, kanter och storlek, samt klarar även av att rotera bilderna under jämförelsen, så att t.ex. en stol benämns stol även om den är vänd upp och ned.

Kanter och plana ytor

Kantfilter används för att hitta de linjer som visar övergångar mellan olika föremål i bilden.

   Forskningen inom datorseende började på 60-talet och redan i början av 70-talet drogs slutsatsen att kanter i omgivningen är en av de viktigaste källorna till människors och djurs uppfattning av hur omvärlden ser ut. Kanterna beskriver geometriska former, t.ex. siluetter och vinklar, materialövergångar och även övergångar mellan olika ljusförhållanden.
   Genom att konstruera s.k. kantfilter, program som används på bilderna, jämförs alla bildpunkter så att skarpa färgövergångar som bildar kontinuerliga linjer av en viss minimilängd, sparas som en separat bild. Denna bild har ofta betydligt färre färger än startbilden, ibland endast svart och vitt, för att underlätta vidare geometrisk tolkning. Därefter jämförs linjerna med kända linjemönster, t.ex. från en stol, och datorn kan då också få en viss information om perspektivet i bilden.
   
Plana ytor är en mycket viktig del av geometriska former, men de är ofta mycket svåra att säkert bestämma för en seende dator. Anledningen till detta är att det är så många olika faktorer som spelar in, t.ex. skuggning, reflektioner, mönsterriktningar, linjer och profiler. Eftersom tolkningen av alla dessa faktorer kräver mycket datorkapacitet kan realtidssystemen ännu inte utnyttja alla samtidigt, vilket gör att den geometriska tolkningen inte blir lika effektiv.

Passiva och Aktiva seende system
   Det finns i första hand två typer av seende system, passivt seende och aktivt seende. Dessa två typer har många gemensamma funktioner, t.ex. kantfilter, bildjämförelse och rörelsedetektion, men det finns en fundamental skillnad:
   
De passiva systemen har fast monterade kameror som är inställda med hög precision och ger systemet detaljerade bilder ur olika vinklar samtidigt. Ur dessa bilder tolkar sedan systemet information genom att använda trigonometriska formler och genom att jämföra de aktuella bilderna med föremål i en databas för att kontrollera om de har någon defekt eller för att klassificera dem. Dessa system används främst inom tillverkningsindustrin, t.ex. för att mäta föremål, kontrollera ytkvalitet och även för att styra t.ex. svets- och lackeringsrobotar. I fasta system är denna metod att föredra eftersom de passiva systemen generellt sett ger högre mätnoggrannhet än de aktiva.
   Aktiva system, å andra sidan, försöker utnyttja samma metoder som används i djurriket, d.v.s. synen används tillsammans med rörelser och förflyttningar för att samla in information om omgivningen från olika vinklar med samma kameraenhet. Detta gör att även dessa system kan skapa sig en detaljerad tredimensionell bild av omgivningen, men med betydligt robustare metoder, d.v.s. med mindre känslighet för störningar och fel.

Aktiva system mer lämpliga för mobila robotar
   Det som gör aktivt seende mer lämpligt för rörliga autonoma (självständiga) system är att de inte i lika hög är grad beroende av förinställda värden och precision för att inhämta information. De har ofta en kameraenhet som är rörlig i förhållande till det övriga systemet på samma sätt som en människas huvud i förhållande till kroppen.

Roboten som skickades till Mars är utrustad med ett aktivt synsystem.


   De kan därför hela tiden uppdatera information som inte är tillräcklig, t.ex. för att mäta in något med större noggrannhet när föremålet befinner sig närmare.
   Detta gör att Robotfordon, t.ex. det som skickades till Mars, ofta utrustas med aktivt seende system eftersom dessa system är mer flexibla.

Kameraföljning av rörliga föremål
   Följning av rörliga föremål är en mycket viktig egenskap hos aktiva system. De används bl.a. för målföljning inom det militära och för att med automatiskt styrda kameror följa en spelare eller en boll i sportsammanhang. Denna målföljning bygger i de flesta fallen på att en användare definierar ett objekt som kameran skall följa, men vissa system är konstruerade för att automatiskt följa föremål som rör sig i dess synfält.
   För att kameran ska kunna följa ett rörligt föremål måste systemet hela tiden justera fokus, så att bilden är skarp, och beräkna var föremålet kommer att befinna sig vid nästa bilduppdatering. Kameran riktas så att föremålet befinner sig i mitten av bilden, för att fel i beräkningar eller förändringar i rörelsen ska upptäckas innan föremålet hunnit ur bild.

Snabbhet eller Precision
   Det är ett stort antal beräkningar som måste göras mellan bilduppdateringarna. De flesta är s.k. iterativa, d.v.s. samma formel används upprepade gånger för att uppnå ökad noggrannhet. Här uppstår ett dilemma, ju noggrannare systemet ska förutsäga föremålets position vid nästa bilduppdatering, desto längre beräkningstid krävs. Detta leder till att noggrannare beräkningar gör att det går längre tid mellan bilduppdateringarna och att kameran lättare tappar följningen av föremålet om detta ändrar hastighet eller riktning.
   I moderna aktiva system är därför beräkningsnoggrannheten ofta lite lägre för att minska tidsintervallen mellan bilduppdateringarna, så att systemet upptäcker förändringar i föremålets rörelsemönster tidigare.

Förändringar i bilderna
   För att kunna avgöra vad som rör sig i bilden används s.k. maskeringsfilter. Dessa jämför den aktuella bilden med tidigare bilder och upptäcker således vad som har förändrats på ett avvikande sätt jämfört med omgivningen. Anledningen till att systemet letar efter avvikande rörelser, är att när en kamera rör sig eller vrids ändras bilden. Ett system som då bara letar efter saker som rör sig skulle då bli väldigt förvirrat, eftersom allt i bilden ändras.

Stereoseende

CVAP på KTH har utvecklat ett kamera-system där båda kamerorna kan kontrolleras separat.

   Den största inspirationskällan till seende robotar är människans syn. Detta gjorde att man redan från ett tidigt stadium började forska i att utrusta systemen med två kameror som samarbetar på samma sätt som ögonen hos en människa, d.v.s. vinkeln mellan kamerorna justeras mekaniskt så att båda kamerorna "tittar" på samma punkt.
   Men det var inte så lätt att få detta att fungera som man först trodde. Problemet är att två bilder som avbildar ett föremål ur olika vinklar kan vara väldigt svåra för en dator att jämföra, eftersom reflektioner och inbördes avstånd varierar mellan bilderna. Dessutom kan vissa framträdande drag i en av bilderna vara skymda i den andra.

Disparitet och fokusering
   För att passa ihop de två bilderna från vänstra och högra kameran och få information om olika föremål i dem, t.ex. avstånd och former, används bildernas skärpa och disparitet.

Dispariteten mellan bilderna gör att man kan se en 3D-scen om man stirrar ofokuserat på dem.


   Skärpan är alltid bäst i den punkt som kamerorna är inriktade mot genom att systemet, på samma sätt som det mänskliga ögat, hela tiden testar vilken inställning som ger skarpast kontrast.
   
Dispariteten är skillnaden mellan bilderna från den vänstra och den högra kameran. Denna skillnad får man fram genom att beräkna fasskillnaden mellan bildpunkterna i respektive bild, d.v.s. man jämför fördelningen av vissa återkommande mönster i de olika bilderna med trigonometriska funktioner.
   Då kan man få information om olika bildområdens vinklar till respektive kamera och därigenom deras relativa avstånd till riktpunkten. Denna information används sedan för att framställa en s.k. disparitetskarta. Disparitetskartan används tillsammans med kantfilter för att hjälpa systemet att avgöra vilka delar i bilden som tillhör olika föremål.

Fixering
   En viktig funktion i stereoseende aktiva system är fixeringen på ett visst föremål, oavsett om och hur det rör sig. Denna funktion är en typ av målföljning, men eftersom dessa system har två kameror har de en viss fördel jämfört med monokamera-system. De kan t.ex. ha målet kvar i en av kamerorna när det är skymt i den andra. De aktiva systemen har också fördelen att de kan utnyttja dispariteten mellan bilderna för att avgöra vilka delar av bilden som tillhör målet.
   Idén till att använda fixering kommer även den från hur människans syn fungerar. Den kan delas upp i snabba ögonkast och kontinuerlig följning. De snabba ögonkasten används för att lokalisera ett intressant föremål som t.ex. rört sig inom synfältet. Den kontinuerliga följningen använder förutsägelse av var målet kommer att befinna sig till att mjukt följa dess rörelser.    Fixeringens viktigaste uppgift vid sidan om målföljning är att ge systemet en långvarig bild av föremålet, gärna ur olika vinklar, för att underlätta identifieringen.

Seende system måste fatta beslut
   Det sista steget i varje seende system är att med utgångspunkt från den inhämtade informationen fatta beslut om åtgärder. Systemen är programmerade så att om de t.ex. ska räkna stolar och ser en stol adderar de 1 till totala summan av stolar, men endast om det är en stol som inte redan har räknats.
   För att fatta beslut måste programmerarna ha gett systemet olika åtgärdsalternativ. För marsroboten skulle dessa t.ex. kunna vara:

   Händelse: Sten rakt fram
   
Åtgärd:
             sväng vänster
   eller     sväng höger
   eller     stanna

För att kunna välja en av åtgärderna kan det i vissa fall krävas ytterligare information som t.ex.

   Vänster: Stup
   Höger:   Inget hinder

Därefter kan roboten fatta beslutet att svänga höger.
   Detta visar hur oerhört viktig identifieringen av saker är, eftersom systemet annars kanske skulle ha sett även stupet som "Inget hinder".

Existerande system
   De seende system som finns idag är uppbyggda på många olika sätt och har många olika användningsområden, men det finns några grundläggande likheter mellan dem:
   Informationen samlas in med hjälp av en eller flera TV-kameror eller digitala kameror som oftast uppdaterar bilderna av omgivningen mellan 25 och 100 gånger per sekund.
   Bilderna från kamerorna behandlas med kantfilter och disparitetsberäkningar, för att avgöra gränser och avstånd mellan olika föremål.
   Identifiering av föremålen görs sedan med hjälp av den tillgängliga informationen, genom jämförelse med bilder av föremål som finns lagrade i en databas.
   Beslut om åtgärd fattas, t.ex. att plocka bort och förstöra en sprucken flaska innan den fylls och försluts.

Användningsområden
   Idag används seende system främst inom tillverkningsindustrin, där uppgiften är processreglering och kvalitetskontroll. Men exempel på andra användningar är Postens automatiska brevsortering och fingeravtrycks- och ansiktsigenkänning.
   Spekulationer inom ämnet gör gällande att man inom en snar framtid även har automatiska jordbruksmaskiner och andra "intelligenta" arbetsfordon för röjning i farliga miljöer.


Skriven av  Patrik Burehäll   
Studerande vid Elektrotetknik 180p
KTH   


Litteraturlista
    Fornland, Pär: Visual Navigation in a Conspicuously Planar World.
        KTH, CVAP 1998
    Uhlin, Tomas: Fixation and Seeing Systems.
        KTH, CVAP 1996

Sökord på internet för ytterligare information:
   Active Computer Vision
   Computer Vision
   Datorseende
   Disparity
   Fixation
   Pattern Recognition
   Vision Science
   Vergens and Version

Tillbaka till början av dokumentet.