Projekt i bildanalys Trafikövervakning



Relevanta dokument
Ett enkelt OCR-system

Ansiktsigenkänning med MATLAB

Tillämplingar av bildanalys

Hur jag tänker innan jag trycker på knappen? Lasse Alexandersson

Tentamen Bildanalys (TDBC30) 5p

Kort introduktion till POV-Ray, del 1

Projekt i Bildanalys: Mönsterigenkänning inom bioinformatik

Signaler, information & bilder, föreläsning 15

Bildanalys. Segmentering. Föreläsning 7. Split and Merge. Region Growing

Tentamen, Programmeringsteknik för BME, F och N

Före du sätter igång behöver du, förutom en videokamera och en dator, följande:

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

Bildanalys för vägbeläggningstillämplingar

Final i Wallenbergs Fysikpris

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Handledning för att använda Skogsägarplan Webb

Labbrapport svängande skivor

Konvexa höljet Laboration 6 GruDat, DD1344

Grundritning Torpargrund

SKRIVNING I VEKTORGEOMETRI

NAMN KLASS/GRUPP. Poängsumma: Känguruskutt: UPPGIFT SVAR UPPGIFT SVAR

Trepoängsproblem. Kängurutävlingen 2011 Cadet. 1 Vilket av följande uttryck har störst värde? 1 A: B: C: D: E: 2011

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Linjära ekvationer med tillämpningar

WALLENBERGS FYSIKPRIS

Laboration 1. Grafisk teknik Rastrering. Sasan Gooran (HT 2004)

Lutande torn och kluriga konster!

TEM Projekt Transformmetoder

användarhandledning skogsägarplan webb

Moment 4.2.1, 4.2.2, 4.2.3, Viktiga exempel 4.1, 4.3, 4.4, 4.5, 4.6, 4.13, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4.3, 4.4, 4.5, 4.

Fysikalisk mätning av vägmarkeringars area

Publikation 1994:40 Mätning av tvärfall med mätbil

Numerisk lösning till den tidsberoende Schrödingerekvationen.

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

-Projekt- FMA170- Bildanalys

Bildmosaik. Bilddatabaser, TNM025. Anna Flisberg Linne a Mellblom. linme882. Linko pings Universitet

Uppgift 1 ( Betyg 3 uppgift )

Känguru 2013 Cadet (åk 8 och 9) i samarbete med Jan-Anders Salenius vid Brändö gymnasium

Högskoleprovet Kvantitativ del

GREENSIGHT-2. Sve. Bruksanvisning. Greensight-2 Rev 1.1 ( ) 1

Grundläggande om kameran

Optimering av resväg genom Sverige

Laboration 2. Grafisk teknik (TNM059) Digital Rastrering. S. Gooran (VT2007)

8 Binär bildbehandling

Matematisk modellering fortsättningskurs Visuell variation

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

= ( 1) ( 1) = 4 0.

Högskoleprovet Kvantitativ del

Fingerprint Matching

Att använda bildhanteringsprogram, del 2

Resurscentrums matematikleksaker

Obligatoriska uppgifter i MATLAB

Projektarbete i Bildanalys vid Institutionen för Matematik Lunds Tekniska Högskola. Segmentering. Av: Karin Kolmert och Julia Stojanov

Grundritning Platta på mark

L A B R A P P O R T 1

Observera också att det inte går att både se kanten på fönstret och det där ute tydligt samtidigt.

OptiWay GIS Vind. Manual - Version OptiWay

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Specifikation av kandidatexjobb

,5 10. Skuggat. Svart ,2 4. Randigt. b) 0,4 10. b) 0,3 10. b) 0,08. b) 0, ,7 0, ,17 0,95 0,15 0,2 + 0,7

Grundläggande om kameran

Kortaste Ledningsdragningen mellan Tre Städer

x = som är resultatet av en omskrivning av ett ekvationssystemet som ursprungligen kunde ha varit 2x y+z = 3 2z y = 4 11x 3y = 5 Vi får y z

InfoVisaren s grundfunktionalitet

SKRIVNING I VEKTORGEOMETRI

TAIU07 Matematiska beräkningar med Matlab

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Histogramberäkning på en liten bild

Föreläsning 5-6 Innehåll

Prestandautvärdering samt förbättringsförslag

Matematiska uppgifter

Extramaterial till Matematik Y

Segmentering av celler med hjälp av aktiva konturer och level sets

Final i Wallenbergs Fysikpris

Uppgift 1 ( Betyg 3 uppgift )

Oskyddade Trafikanter

Programmering. Den första datorn hette ENIAC.

Föreläsning 7: Klassificering, minsta kvadratproblem, SVD, forts.

Känguru 2013 Junior sida 1 / 8 (gymnasiet åk 1) i samarbete med Jan-Anders Salenius vid Brändö gymnasium

Bildbehandling, del 1

Frågor och svar om reservantagning

LEKTION PÅ GRÖNA LUND GRUPP A (GY)

SKRIVNING I VEKTORGEOMETRI Delkurs

Resultatkonferens inom Fordons- och trafiksäkerhet

Om ellipsen och hyperbelns optiska egenskaper

Lokala betygskriterier Matematik åk 8

Lästal från förr i tiden

Stokastisk geometri. Lennart Råde. Chalmers Tekniska Högskola och Göteborgs Universitet

Innehållsförteckning

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Analys och slutsatsprotokoll för dödsolyckor

Palette. Matchning fakturor mot order - Manual. Version 1.0 /

Laboration i Fourieroptik

Medicinska Bilder, TSBB31. Lab3: Mätvärden på Medicinska Bilder

Lär dig grunderna om Picasa

UPPGIFT 1 TVÅPOTENSER. UPPGIFT 2 HISSEN I LUSTIGA HUSET.

Transkript:

Projekt i danalys Trafikövervakning F 99 F 00 Handledare : Håkan Ardö Hösten 3 vid Lunds Tekniska Högskola Abstract Using traffic surveillance cameras the authorities can get information about the traffic in for example intersections. They can monitor the behaviour of the road-users, and get the number of cars passing and how fast these cars move. In this work we develop an automatic segmentation and classification of the cars in an intersection in Lund. The project is done in the course Image analysis at Lund Institute of Technology. The algorithm is written in MatLab and succeeds to find and mark the cars in the images using criterias of area and speed. 1

Innehåll 1 Introduktion 3 2 Metod 3 3 Resultat 4 4 Diskussion 5 A Bilder 6 2

1 Introduktion Allt fler vägkorsningar blir utrustade med övervakningskameror. Bland dem som är intresserade av filmerna finns exempelvis Vägverket, som vill veta hur hårt trafikerade korsningar är. Även polisen kan ha nytta av kamerorna för att kunna kontrollera att trafikanterna följer lagen. Informationen som fås från en övervakningskamera i en korsning måste analyseras innan den kan användas. Till exempel vill man veta vad som rör sig i den, och hur fort det rör sig. För att slippa tillbringa många timmar framför derna för att manuellt extrahera information, vore det bra om det fanns ett datorprogram som gjorde det automatiskt. Vårt projekt är gjort inom kursen Bildanalys vid Lunds tekniska högskola. Vi har segmenterat ut fordon ur derna och sedan försökt skilja ut de som är ar. Den data vi hade bestod i en 40 minuter lång filmsekvens som visade korsningen Sölvegatan Tornavägen i Lund. Objekten segmenterades genom att bakgrunden subtraherades från derna, och fordonen klassificerades utifrån area och hastighet. Inga ar missades men ibland fick brus eller en cyklist felaktigt markeringen. 2 Metod De första minuterna av filmen från övervakningskameran sparades som 0 der. Dessa skalades ner till halva storleken för att beräkningarna skulle gå fortare. En bakgrundsd beräknades genom att alla der adderades och summan dividerades med antalet der. På så sätt erhölls en medelvärdesd. Denna d visar bara statiska föremål som vägbanan, lyktstolpar och hus eftersom trafikanter bara befinner sig på samma ställe i ett litet antal der. Denna beräkning tog ganska lång tid men behövde bara göras en gång, eftersom bakgrundsden sedan sparades och användes i alla senare beräkningar. Ur den första den segmenterades vägbanan manuellt, för att slippa att rörelser utanför vägbanan störde beräkningarna. MatLab-funktionen roipoly användes för att skapa en binär mask som sedan sparades. För varje d som laddades in subtraherades bakgrunden och masken lades på. När en d laddats in trösklades den så att alla pixlar med intensitet över 0,065 fick intensitet 1 och alla andra fick intensitet 0. För att ta bort små brusfläckar gjordes öppning på den med hjälp av MatLab-funktionen bwareaopen. För att göra områdena mer sammanhängande användes sedan dilatation med strukturelementet line i MatLab. Slutligen användes bwlabel för att ge varje område ett identifikationsnummer. I en sidofunktion beräknades tyngdpunkten och arean för varje objekt i den. Först eliminerades alla objekt som bestod av mindre än pixlar. För de som var kvar beräknades mittpunkten i x-led och y-led, samt arean som det antal pixlar objektet bestod av. Dessa tre variabler sparades i vektorer. Det största objektets data sparades på plats ett i vektorerna och därefter sorterades datan in efter minskande storlek på objekten. 3

För att kunna jämföra fordonens placering i olika der sparades x- och y- koordinaterna i två matriser. På första raden i matriserna lades koordinaterna för objekten i den första den och så vidare. För att kunna följa fordonen genom flera der behövde varje koordinat läggas in under den som troligast motsvarade det fordonet i förra den. För att kunna göra detta beräknades ytterligare en matris, i vilken de euklidiska avstånden mellan alla mittpunkter i den förra den och alla mittpunkter i den aktuella den sparades. För att para ihop koordinaterna söktes först det minsta avståndet i matrisen upp. De två tyngdpunkter som hade detta avstånd antogs höra ihop och sorterades in under varandra. För att inte det valda fordonet i den aktuella den skulle kopplas ihop med fler fordon i den gamla den sattes alla avstånd till det valda fordonet till oändligt stora. Sedan upprepades proceduren tills det minsta avståndet var större än 40 pixlar. Alla fordon i den aktuella den som ännu inte blivit ihopkopplade med något i den gamla den antogs vara nya, det vill säga just ha dykt upp. Koordinaterna för dessa lades in längst till höger i matriserna. I ytterligare en sidofunktion undersöktes om objekten var ar eller inte. Två kriterier användes, area och fart. Eftersom den inte var rektifierad utan en perspektivd var ar närmast kameran betydligt större än ar långt bort. Därför behövdes olika kriterier för vad som var en normal storlek. Om objektet befann sig på den övre halvan av den och var större än pixlar antogs det vara en, men på den undre halvan av den var tröskelvärdet 400. Om objektet rörde sig fortare än ett visst tröskelvärde skulle det också klassificeras som en. För var tionde d beräknades det euklidiska avståndet mellan koordinaterna för ett objekt i den och samma objekt tio der tidigare. Om detta avstånd var större än 10 pixlar antogs objektet vara en. För att visualisera resultatet visades den dilaterade den med röda cirklar (beräknade med MatLab-funktionen ellipse) kring objektens mittpunkter. Vid de objekt som klassats som ar skrevs texten ut. 3 Resultat Figur 1 visar d nummer av de 0 derna. I detta ögonblick finns fyra ar och två cyklister i korsningen. Bakgrundsden visas i figur 2. I denna syns inga fordon, utan bara statiska föremål. I den har vägbanan segmenterats. Figur 3 visar d efter att bakgrunden subtraherats. Bara fordonen finns kvar. När den trösklats, öppnats och dilaterats ser den ut som i figur 4. Bilden är binär, en del brus har plockats bort och fordonen hänger ihop. Efter att alla element mindre än pixlar tagits bort ser den ut som i figur 5. I figur 6 har banan för en av tyngdpunkterna följts i tio der och är utritad som ett streck i figuren. Figur 7 visar vilka objekt som klassas som ar om areakriteriet helt tagits bort. Runt de beräknade tyngdpunkterna är cirklar utritade, och de objekt som klassats som ar är märkta med ordet. Det enda som nu avgör om ett objekt är en är hur fort det rör sig, och den stillastående en i övre vänstra hörnet (som väntar på grönt ljus) blir felklassificerad. Figur 8 visar slutligen hur d ser ut när algoritmen klassificerat fordonen efter både area och hastighet. 4

4 Diskussion Bakgrundsden beräknades på alla 0 der för att få bästa möjliga resultat. Beräkning med ett lägre antal der hade gått snabbare men gett ett brusigare resultat eftersom en som till exempel väntar på grönt ljus då är med i en större del av derna och kommer med i bakgrundsden. När bakgrundsden sedan subtraheras från en d där en inte är med kommer det att se ut som om det står en där i alla fall. Omvänt kommer en inte att komma med i de der när den faktiskt finns där. Eftersom beräkningen bara behövde göras en gång gjorde det inte så mycket att det tog lång tid. När derna laddats in och bakgrundsden subtraherats trösklades de eftersom det är enklare att arbeta med binära der. Sedan gjordes en öppning på derna eftersom små brusfläckar då försvinner. Dilatationen gjorde att områdena hängde bättre ihop och att vi fick färre områden att identifiera. Trots dessa åtgärder ser man vid en jämförelse av figur 3 och figur 5 att en större brusfläck ändå följt med. Denna kommer troligen av trädskuggornas rörelse på vägbanan. Problemet är att fläcken är så stor att en algoritm som hade tagit bort den också hade tagit bort den stillastående cykeln bredvid. Tittar man i originalden (figur 1) ser man att det finns en cyklist mitt i korsningen. Tyvärr blir det objektet så litet att det filtreras bort. I figur 4 finns det fortfarande kvar men i figur 5 är objektet borta. Hade så små element släppts igenom hade figur 5 haft betydligt fler brusfläckar. Eftersom man alltid förlorar information när man filtrerar är det en svår avvägning att bestämma hur hög tröskel man ska ha. Vår algoritm lyckades klassificera arna ganska bra. Inga ar missades, men däremot klassificerades en del objekt felaktigt som ar. Ett problem är att skuggorna rör sig likadant som objekten, och ett litet objekt med en stor skugga ser därför större ut i vår segmentering. Problemet med att trädkronorna rör sig i vinden har vi undkommit genom den manuella segmenteringen i början. Tyvärr kastar träden skuggor på vägbanan, och rörelseartefakter finns därför kvar. Ett annat segmenteringsproblem uppstår eftersom den är en perspektivd, vilket medför att objekt kan täcka varandra och ser då i vår segmentering ut som ett objekt. Genom att rektifiera derna, det vill säga titta mer uppifrån, hade man kunnat minska detta problem. Strecket i figur 6 visar att algoritmen lyckats följa ett objekt i tio der. Detta var inte helt lätt. Om inte tillräckligt många pixlar är sammanhängande uppfattar algoritmen att objektet har försvunnit. När området i någon d senare är tillräckligt stort tror programmet att det är en ny och börjar en ny följning. En jämförelse av figur 7 och 8 visar tydligt att både hastighet och area måste tas i beaktande då objekten klassificeras. En stillastående blir inte klassificerad som om bara hastigheten används, trots att den är stor nog för enkelt klassificeras rätt utifrån area. Hastigheten behövs till exempel för att ar som är delvis dolda (och därför ser mindre ut), men ändå rör sig fort ska kunna klassificeras rätt. 5

A Bilder 300 3 400 4 0 5 300 400 0 600 700 Figur 1: Bild nummer i originalserien. 6

300 3 Figur 2: Bakgrundsden beräknad som medelvärdet av 0 der. Vägbanan är manuellt segmenterad och bara statiska föremål syns. 300 3 Figur 3: Bild nummer när bakgrunden subtraherats bort. Bara fordonen har blivit kvar. 7

300 3 Figur 4: Bild nummer efter att bakgrunden subtraherats bort och återstoden trösklats, öppnats och dilaterats. 300 3 Figur 5: Den trösklade den efter att objekt mindre än pixlar tagits bort. Detta är den d programmet jobbar med. De fyra arna och en cyklist syns tydligt. Den andra cyklisten har försvunnit. Dessutom finns en brusfläck (förmodligen orsakad av trädskuggornas rörelse) fortfarande kvar. 8

300 3 Figur 6: Den färdigmanipulerade den. Strecket i en i mitten visar hur ens tyngdpunkt rört sig under 10 der. 300 3 Figur 7: Objektens tyngdpunkter visas med cirklar och objekten har klassificerats bara utifrån sina hastigheter. Bilen till vänster som väntar på grönt ljus blir felklassificerad. Den väntande cyklisten och bruset blir omärkt, vilket är korrekt. 9

300 3 Figur 8: Den slutgiltiga den när algoritmen är färdig och arna klassificerats utifrån area och hastighet. Alla ar har hittats och klassificerats rätt. Tyngdpunktsberäkningen har hittat alla objekt. 10