Wat is perceptie? Perceptie is het waarnemen van de staat van de wereld. Artificiële Intelligentie Visuele perceptie Hoofdstuk 24 uit Russell & Norvig Hiervoor heb je sensors nodig, voorbeeld Binaire sensor: een drukknop. Analoge sensor: een thermometer. Complexe sensors: een oog. Geen enkele sensor is perfect Ruis. Afwijkingen. Ambiguiteit. Soorten perceptie Feature extraction De agent trekt een beperkt aantal kenmerken uit zijn sensorwaarneming, en gebruikt dit om te reageren op de wereld. Model-based De sensorinput dient om een model van de wereld op te bouwen. Ze zullen ons eerst concentreren op modelgerichte perceptie Perceptie Een sensor beeld de wereld af op een representatie. Kunnen we weten hoe de wereld eruit ziet door inverse te nemen? Lukt niet wat we waarnemen is ambigue en partieel. We kunnen nooit terug construeren hoe de wereld echt is. Visuele perceptie, kan nooit volledig terug reconstrueren. David Marr noemt dit 2½ D reconstructie. Ambigue en partieel, voorbeeld Is een probleem? Enkel een probleem wanneer de wereld exact gereconstrueerd wordt binnen onze computer. En dat doen we gelukkig nooit. Perceptie dient een doel. Reconstructie slechts tot zover om dat doel te bereiken. Waarvoor dient perceptie dan wel? Inspectie. Manipulatie. Navigatie. Objectdetectie. Objectherkenning. Necker-kubus Occlusie
49 73 De camera obscura Een camera zonder lens: pinhole camera Camera obscura Punten op oneindig (op de horizon) worden op een punt afgebeeld. image plane Y X P Wanneer een voorwerp niet veel in diepte varieert (Z± Z 0 ) met Z 0 << Z, dan kan je vereenvoudigen tot pinhole Z Camera obscura laat weinig licht binnen: groter gat nodig. Een groot gat verstrooit licht: lens nodig. P' f Perspectief projectie Met een lens kan je niet de ganse scene scherp hebben Oplossing, je focust op een diepte. Voorwerpen met een geringe dieptevariatie hebben daar weinig last van. Lenscamera Menselijk oog Dunne lens vergelijking Digitaliseren Een analoog signaal wordt omgezet naar een digitale representatie. Voorbeeld Low-level beeldverwerking Lijndetectie (edge detection) Om de randen de vinden in het beeld. Belangrijk om objecten van elkaar te onderscheiden. Construeert een lijntekening van het beeld. Smoothing Het verwijderen van ruis uit het beeld. 250 200 50 00 50 0 25 Axis Title 97 2 45 2 75 38 Axis Title 2
Edge detection: manier Bereken het verschil met buurpixels Edge detection: manier 2 Kernel operator 0 0 0 0 0 0 0 0 0 0 2 35 22 0 0 0 0 20 56 78 79 25 5 0 6 30 40 48 48 52 4 0 0 2 34 26 28 26 0 0 2 34 26 28 26 0 0 2 34 26 28 26 0 0 3 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0-2 -35-22 0 0 0 0-20 -44-43 -57-25 -5 0 0-2 -23 3 22 0 0 0-6 -0 6 30 3-27 -9 0-20 -36-22 - 54 20 5 0 6 9 6 22 20 26 3 0-24 -0-8 0-4 38 4 0 0 0 0 0 0 0 0 0-2 -3 8-2 2 25 0 0 0 0 0 0 0 0 0-2 -3 8-2 2 25 0 0 8 29 2 23 2 0 0-2 -3 8-2 2 25 0 0 3 5 5 5 5 0-3 -2 0 0 0 4 0 Edge detection Beide methoden zijn een benadering van de eerste afgeleide van het beeld. Ruis verwijderen: : smoothing Het lokaal gemiddelde nemen van elke pixel. Beide methoden hebben last van ruis. Wanneer er ruis in beeld is, dan wordt dat ook als een rand gezien. 2 0-0 0 20 30 40 50 60 70 80 90 00 0-0 0 20 30 40 50 60 70 80 90 00 Edge detection en smoothing in één Smoothen gebeurt vaak door een Gaussiaan de convolueren over het beeld Na het smoothen de eerste afgeleide nemen levert een edge detectie op. Algoritme voor D Gaussian edge detection. Convolueer het beeld I met G, het resultaat is een nieuw beeld R. 2. Bereken de absolute waarde van R. 3. Markeer de pieken in R die boven een drempelwaarde T voorkomt. De drempelwaarde is gekozen afhankelijk van het doel van de edge detection. Het kan echter gecombineerd: convolueer met de eerste afgeleide van de Gaussiaan. 3
Gaussiaanse edge detection in 2D Gaussiaanse convolutieoperator Twee filters nodig: voor verticale en horizontale richting Algorithme. Convolueer het beeld I(x,y) met f V (x,y), het resultaat is R V 2. Convolueer het beeld I(x,y) met f H (x,y), het resultaat is R H 3. Bereken grootte 4. Bereken richting Sobel versus Gaussiaan origineel Sobel Gaussiaan 5. Markeer de pieken in R(x,y) die boven een drempelwaarde T uitkomen. 2d Gaussiaan Een 5x5 convolutiematrix voor een Gaussiaan 3D informatie uit beeld halen Om bepaalde taken uit te voeren is het nodig om informatie over de diepte uit het beeld te halen. Vb. Een robot in een supermarkt moet navigeren en manipuleren. Verschillende mogelijkheden Beweging. Stereovisie. Textuur. Schaduwen. Contouren. De som van alle elementen is, dit betekend concreet dat de helderheid van het beeld niet toe- of afneemt. 3D uit beweging Wanneer camera en objecten relatief bewegen t.o.v. elkaar, dan noemt men de beweging optical flow. Optical flow Optical flow wordt voorgesteld door twee vectoren Tussen 2 lichtverschillende beelden zoek je de zelfde pixels. Bijvoorbeeld door som van gekwadrateerde verschillen Of door correlatie Wanneer die maat maximaal is heb je juiste D x en D y gevonden. De optical flow op positie (x,y) is dan D x /D t en D y /D t. 4
Optical flow Het berekenen van optical flow heeft corresponderende punten nodig tussen twee opeenvolgende beelden. Lukt niet wanneer er weinig structuur is Onmogelijk om optical flow te berekenen van egale objecten (bv. roterende effen bol). Egomotion uit optical flow Stel je kent de translatiesnelheid T en hoeksnelheid van de camera, de snelheden van de punten in het beeld zijn dan: " " " " Vereenvoudigen tot enkel translatie " " " " Toepassing egomotion Hoe diepte uit optical flow halen? Wanneer meerdere beelden bekeken worden kan je uit de snelheid waarmee elk punt beweegt afleiden hoever het van de camera staat. Bv. Kijken uit het treinraam. Biorobotic Vision Laboratory (200) Stereovisie Binoculaire stereo-opsis: het berekenen van diepte uit een beeld dat vanuit twee verschillende oogpunten is gemaakt. Meestal m.b.v. twee camera die op een verschillende plaats en onder een verschillende hoek staan. Left image Perceived object Right image Diepte uit twee beelden Beelden staan allebei op zelfde lijn. % # $ 5
Voorbeeld Diepte uit twee beelden Beelden staan onder verschillende fixatiehoek % Kurt Konolidge, small vision system Diepte uit twee beelden Voorbeeld Kost tijd om steeds op alle punten van het beeld te fixeren om de diepte te kennen. Je fixeert op één punt P 0, hierna kan je de diepte van andere punten berekenen. & & ' Saccadic Eye Movement (996) Cog Project, AI lab, MIT # $ Diepte uit twee beelden, problemen Vereist een goede beschrijving van de optische en geometrische eigenschappen van de cameraopstelling. Afstand tussen camera s (base line). Focale afstand f moet. Hoek die elke camera maakt. Rotatiepunt van elke camera (rotatie om brandpunt of midden van lens vereenvoudigt de berekeningen). Vervormingen van de lens. Diepte uit twee beelden, problemen Je moet corresponderende punten terugvinden in elk camerabeeld. Wordt moeilijk bij effen vlakken. Je kan gebruik maken van features. Bv. Eerst edge detection, dan op zoek naar corresponderende punten. 6
Voorbeeld Diepte uit textuur Objecten worden kleiner naarmate ze verder wegstaan van de camera. Hiermee kan diepte berekend worden: shape from shading. Diepte uit contouren Wanneer men een lijntekening heeft, kan men lijnen markeren. Convex, concaaf. Een lijn welke andere lijnen verbergt. Een limb. Er bestaat ook een beperkte verzamelig mogelijkheden waarop lijnen elkaar kunnen snijden. 3 3 3 5 Diepte uit contouren Aan de hand van de markeringen kan men afleiden in welke oriëntatie de objecten zich bevinden, en hoe hun 3D structuur is. Problemen Enkel toepasbaar op netjes afgelijnde objecten, bv. natuurlijke objecten lukken moeilijk. Nooit slaagt men erin om een scherpe contour uit een beeld of te leiden (altijd last van schaduwen, occlusies, onvolledige lijnen, ) 5 5 3 7 3 Objectherkenning Het herkennen van gezichten, voorwerpen, Toepassingen Biometrisch identificeren. Tekstherkenning. Image base retrieval. Herkennen van gezichtsexpressies. Oplossingen Je kan het beeld vereenvoudigen tot een nonvariant beeld Bijvoorbeeld door edge detection te doen. Het herkennen van een beeld doe je door de afstand te nemen tussen het beeld en een referentie. Voorbeeld A. B. C. Groot Probleem Beelden zijn erg variabel: ze verschillen in lichtinval, lichtkwaliteit, cameraperspectief. Sum(A-A) = 0 Sum(A-B) = 94 Sum(A-C) = 989 7
98 200 202 204 205 205 206 207 209 2 22 23 24 22 27 20 2 22 25 230 98 99 202 203 205 205 205 206 208 20 22 22 22 22 204 207 25 25 206 209 99 20 203 203 203 202 99 20 206 22 24 23 2 20 25 20 2 29 20 204 99 20 203 203 203 202 206 206 206 206 208 22 2 208 23 23 27 26 207 209 200 202 202 202 203 202 206 208 206 20 205 24 23 206 226 207 2 220 27 29 200 202 202 202 203 20 20 206 203 99 204 25 23 203 20 20 220 224 25 27 200 202 202 202 202 20 20 205 204 20 203 207 202 92 92 8 72 69 08 200 202 202 202 202 20 205 205 204 203 99 92 85 82 94 72 77 20 52 68 200 203 203 202 202 20 202 98 99 20 93 80 78 85 86 66 85 34 69 90 20 202 203 202 202 200 96 88 9 97 90 75 79 96 94 97 90 82 33 27 200 98 98 97 96 94 200 208 9 64 79 94 86 97 202 84 96 65 5 97 200 99 96 93 90 88 8 86 60 34 67 203 95 9 97 87 98 68 2 85 200 20 202 202 200 98 78 80 57 3 47 73 79 9 85 77 88 70 3 65 204 206 205 202 200 97 204 208 203 93 79 5 36 50 75 59 74 78 3 43 202 205 207 209 208 208 200 202 203 26 29 98 83 84 45 27 54 87 4 03 204 205 206 206 208 208 24 27 206 20 206 22 27 2 205 7 67 0 2 68 59 5 44 38 35 35 24 40 40 36 32 36 42 30 43 36 44 3 84 05 0 07 06 09 2 4 4 5 2 24 28 25 27 7 6 6 24 22 25 6 6 7 8 20 2 20 7 25 3 25 25 27 9 2 8 26 7 6 25 6 5 6 8 9 20 2 8 26 33 28 28 30 22 33 06 26 32 7 Kleur Vooruitgang in cameratechnologie en rekenkracht. Om kleur voor te stellen hebben we 3 kanalen nodig ipv.. Informatie in kleur Kleur is makkelijk te herkennen en snel uit beeld te halen. Men kan markeringen aanbrengen om de visuele perceptie te helpen. Kleur heeft verrassend eenvoudige toepassingen. Bv. Gezichtsdetectie. Kleur duidt vaak de randen aan van objecten. Doch, niet altijd. Bv., kleurrijke kleren, voetbalbal, Segmenteren van het beeld Het groeperen van pixels in groepen die homogeen zijn volgens één of ander criterium. Deel een beeld I(x,y) op in overlappende segmenten R i zo dat R i en R i 0 Segmenteren van kleur: groeperen van pixels die hetzelfde kleur hebben en die naburig zijn. Belangrijke en veelgebruikte operatie. Een eerste stap in het categoriseren, discrimineren, herkennen, Segmenteren Two manieren van segmenteren Je weet waar je naar op zoek bent (je hebt een set eigenschappen waaraan een segment moet voldoen). Je weet het niet: hier heb je een 2 passen nodig pass om verschillende prototypes te vinden. pass 2 om het beeld te segmenteren. Algoritme Voorbeeld van kleur in visuele perceptie Region growing " " " " # " $ " % & $ Robocup team Freiburg (200) 8
Active vision Een meer biologische manier van visuele perceptie. Eigenschappen Verwerk enkel wat je nodig heb. Selective attentie. Bewegende camera. Inspiratie uit biologie, bv. gebruik maken van neurale netwerken. 9