75
ŠTETJ RAČ Klemen Grosek JE PEŠCEV S POMOČJ ČUNALNIŠKEGA VIDA Diplomsko delo Rogatec, marec 2011 JO

ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Embed Size (px)

Citation preview

Page 1: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

ŠTETJE RAČ

Klemen Grosek

ŠTETJE PEŠCEV S POMOČJO RAČUNALNIŠKEGA VIDA

Diplomsko delo

Rogatec, marec 2011

ČJO

Page 2: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 3: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

I

Diplomsko delo univerzitetnega študijskega programa

ŠTETJE PEŠCEV S POMOČJO RAČUNALNIŠKEGA VIDA

Študent: Klemen Grosek

Študijski program: UN ŠP, Elektrotehnika

Smer: Elektronika

Mentor: doc. dr. Iztok Kramberger

Lektorica: Petra Plavčak, prof. slovenščine

Rogatec, marec 2011

Page 4: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 5: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

III

Page 6: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 7: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

V

ZAHVALA

Zahvaljujem se sodelavcem, še posebej Tadeju in

Boštjanu, za pomoč in vložen trud tako med

študijem kot med pripravo diplomskega dela.

Prav tako se zahvaljujem mentorju doc. dr. Iztoku

Krambergerju.

Zahvaljujem se podjetju Tenzor d. o. o. za finančno

pomoč med študijem.

Posebna zahvala velja staršem, ki so mi omogočili

študij.

Page 8: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 9: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

VII

ŠTETJE PEŠCEV S POMOČJO RAČUNALNIŠKEGA VIDA

Ključne besede: digitalna obdelava slik, računalniški vid, štetje prehodov ljudi, IP kamera, prepoznava objektov

UDK: 004.93:621.39(043.2)

Povzetek:

V tem diplomskem delu se ukvarjamo z razvojem števca prehodov ljudi, ki temelji na

podlagi računalniškega vida. Na začetku predstavimo že obstoječe možne rešitve štetja,

zatem pa razvijemo in implementiramo lasten algoritem. V diplomskem delu so opisane vse

ključne funkcije potrebne za uspešno prepoznavo objektov na sekvenci slik ter sledenja

njihovem gibanju.

Z razvito aplikacijo smo dosegli natančnost štetja prehodov nad 80 %.

Page 10: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 11: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

IX

COMPUTER BASED PEDESTRIAN COUNTING

Key words: digital image processing, computer vision, pedestrian counting, IP camera, object recognition

UDK: 004.93:621.39(043.2)

Abstract:

In this thesis we deal with development of pedestrian counting system, based on computer vision. Firstly, exsisting methods of pedestrian counting are reviewed, afterwords we develop and implement our own computare vision based algorithm. In this thesis all the fundamental functions needed for object recognition and object tracking are described.

With the developed application we acheaved accuracy of pedestrian counting more than

80 %.

Page 12: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 13: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

XI

VSEBINA

1 UVOD ............................................................................................................................ 1

2 PREGLED MOŽNIH REŠITEV ................................................................................... 3

2.1 Pregled rešitev ......................................................................................................... 3

2.1.1 Infrardeči števci ............................................................................................... 3

2.1.2 Termični števci ................................................................................................ 4

2.1.3 Števci na podlagi video slike ........................................................................... 5

2.2 Programsko okolje Delphi ...................................................................................... 5

2.3 Kamera .................................................................................................................... 6

2.3.1 Napajanje kamere preko PoE standarda .......................................................... 6

2.3.2 Zajemanje slike ................................................................................................ 7

2.3.3 Resolucija ........................................................................................................ 8

2.3.4 CMOS senzor .................................................................................................. 8

2.4 Sestava slike ............................................................................................................ 9

2.4.1 Digitalna slika .................................................................................................. 9

2.4.2 RGB barvni model ......................................................................................... 10

2.4.3 Sivinska slika ................................................................................................. 11

3 POSTOPKI, POTREBNI ZA PREPOZNAVO OBJEKTOV ..................................... 12

3.1 Slika ozadja ........................................................................................................... 12

3.2 Odštevanje slik ...................................................................................................... 13

3.3 Median filter ......................................................................................................... 15

3.4 Dilatacijski filter (angl. Dilation filter) ................................................................. 18

3.5 Označevanje najdenih objektov ............................................................................ 19

3.6 Preverjanje velikosti objektov .............................................................................. 26

3.7 Spremljanje gibanja objekta .................................................................................. 27

Page 14: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

XII

3.8 Določitev con štetja .............................................................................................. 30

3.9 Podatkovna baza ................................................................................................... 31

4 MERITVE IN REZULTATI ....................................................................................... 34

4.1 Testna konfiguracija ............................................................................................. 34

4.2 Hitrost algoritma ................................................................................................... 35

4.3 Natančnost štetja ................................................................................................... 37

4.3.1 Nastavitve velikosti zaznanih objektov ......................................................... 37

4.3.2 Poizkus štetja z eno določeno cono ............................................................... 37

4.3.3 Rezultati štetja z eno določeno cono ............................................................. 42

4.3.4 Poizkus štetja z dvema določenima conama ................................................. 42

4.3.5 Rezultati štetja z dvema definiranima conama .............................................. 45

5 SKLEP ......................................................................................................................... 47

6 LITERATURA ............................................................................................................ 49

7 PRILOGE .................................................................................................................... 51

7.1 Seznam slik ........................................................................................................... 51

7.2 Seznam tabel ......................................................................................................... 53

7.3 Naslov študenta ..................................................................................................... 53

7.4 Kratek življenjepis ................................................................................................ 53

Page 15: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

XIII

UPORABLJENI SIMBOLI

piksel skupne slike

piksel trenutne slike

č piksel povprečne slike

piksel slike razlik

minimalna razlika pikslov za zaznavo spremembe

, P piksel slike

, , , barvni odtenki

, , ! množitelj barvnih odtenkov

"# intenziteta sivinskega piksla

, $, % rdeči, zeleni ter modri sub-piksel

Page 16: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

XIV

UPORABLJENE KRATICE

IP Internet Protocol. Internetni protokol.

HD High Definition. Visoka ločljivost 1920x1080 slikovnih točk.

VGA Video Graphics Array. Grafični standard, za prikaz slike v ločljivosti

640 x 380 slikovnih točk.

fps Frame Per Second. Slik na sekundo.

TCP Transport Control Protocol. Protokol za nadzor prenosa podatkov.

UDP User Diagram Protocol. Nepovezovalni protokol za prenašanje

paketov.

HTTP HyperText Transfer Protocol.

HTTPS HyperText Transfer Protocol Secure.

SMTP Simple Mail Transfer Protocol.

NTP Network Time Protocol.

DHCP Dynamic Host Configuration Protocol.

FTP File Transfer Protocol.

RTP Real Time Protocol.

JPEG Joint Photographic Expert Group. Format digitalne slike.

MJPEG Motion JPEG.

dpi Dots Per Inch. Točk na palec.

CCL Connected Component Labeling.

ID Identification number. Identifikacijska številka.

SQL Structured Query Language. Standardni poizvedbeni jezik za delo z

bazami.

MSSQL Microsoft SQL.

Page 17: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

XV

MSAccess Microsoft Office Access.

MySQL Podatkovni upravljalni sistem.

Page 18: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 19: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 1

1 UVOD

Za vsako podjetje, ki se ukvarja s prodajo, je izrednega pomena spremljanje obiska

trgovine. Tako imamo popolni nadzor nad samim številom obiskovalcev v vsakem

trenutku. S pomočjo statističnih podatkov lahko spremljamo zgodovino obiska,

primerjamo obisk med različnimi obdobji, vremenskimi pogoji, merimo odziv na

marketinške akcije, optimiziramo razpored zaposlenih, povečamo uspešnost prodajnega

mesta ter povečamo konkurenčnost.

Ker je računalniški vid v današnjem času že zelo dobro razvit, smo se odločili, da

razvijemo števec prehodov, ki bo štel prehode s pomočjo le-tega. Na trgu je sicer že veliko

podobnih produktov, vendar so vsi cenovno zelo neugodni.

Ideja diplomskega dela je napisati aplikacijo, ki bo preko IP kamere štela objekte, ki

vstopajo in izstopajo v določen prostor. Sam algoritem procesiranja slike se mora izvajati

čim hitreje, saj je omejen s časom zajemanja slik iz kamere. Sama kamera je lahko slabše

kvalitete, saj lahko za zaznavanje prehodov objektov uporabimo sliko manjše resolucije

(npr. VGA) in s počasnejšim serviranjem slik (npr. 10 fps). Prostor zajemanja slik mora

biti dovolj osvetljen, da lahko zaznamo razliko med objektom in okolico. Najmanjši možni

zaznani objekt naj bo nastavljiv in odvisen od višine postavljene kamere. Cilj aplikacije je

uspešna prepoznava gibajočih se objektov ter uspešnost štetja nad 70 %.

V diplomskem delu najprej na kratko predstavimo obstoječe možne rešitve problema štetja

prehodov. Nato opišemo programsko okolje Delphi, sestavo IP kamere ter zgradbo

digitalne slike.

V tretjem poglavju opišemo celotni postopek obdelave slike, ki je potreben za prepoznavo

objektov na sliki.

Page 20: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 2 Klemen Grosek, Diplomsko delo

V četrtem poglavju predstavimo dobljene rezultate z razvito aplikacijo. Ugotavljamo

hitrost in točnost razvitega algoritma.

Peto poglavje je namenjeno zaključku diplomskega dela in sklepu.

Page 21: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 3

2 PREGLED MOŽNIH REŠITEV

2.1 Pregled rešitev

Obstaja več tehnik, s katerimi lahko štejemo vhode in izhode ljudi v objekt.

Najpreprostejša možna rešitev je ta, da zaposlimo študenta za določen čas, vendar je to

dolgoročno slaba investicija, hkrati pa lahko pride do raznih človeških napak, katerih pa

nočemo.

Obstajajo več vrst števcev:

2.1.1 Infrardeči števci

Infrardeči (v nadaljevanju IR) števci so sestavljeni iz sprejemnega in oddajnega modula.

Oddajni modul oddaja IR signal točno določene valovne dolžine (850 nm), medtem ko na

sprejemni strani merimo prisotnost signala. Kadar se žarek IR signala med sprejemnikom

in oddajnikom prekine, vemo, da se je zgodil prehod.

Pametnejši števci lahko tudi zaznavajo smer prehoda s tem, da imajo na sprejemni strani

dve sprejemni diodi. Kadar sprejemnik zazna prehod, lahko ugotovi smer prehoda na

podlagi tega, katera dioda je prej zaznala prekinitev IR žarka.

Prednost teh vrst števcev je ta, da so izredno poceni, vendar imajo vrsto slabosti. Števec

meri samo prekinitev žarka med moduloma, kar pomeni, da če žarek prečka istočasno več

ljudi vzporedno, bo števec prepoznal samo en prehod. Tako lahko pride do velikih

odstopanj med številom preštetih prehodov ter dejansko vrednostjo.

Ti števci so primerni za štetje prehodov na krajših razdaljah, kjer je mala verjetnost, da bo

žarek prečkalo več ljudi vzporedno.

Page 22: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 4 Klemen Grosek, Diplomsko delo

Slika 2.1: IR števec s prikazovalnikom prehodov

2.1.2 Termični števci

Termični števci delujejo na principu zaznavanja spremembe temperature. Temperatura

človeškega telesa je v večini primerov toplejša od okolice, zato ga je enostavno ločiti od

okolice.

Prednost termičnih števcev je ta, da so enostavni za instalacijo ter nemoteči za obiskovalce.

Slaba stran je ta, da so dokaj dragi in imajo velike omejitve pri lokaciji montaže. Števci se

ne smejo postaviti na razna območja, kjer lahko prihaja do večjih temperaturnih razlik, saj

lahko vsak manjši valj toplega zraka zaznajo kot prehod človeka. Vemo, da se večino štetja

ljudi opravlja ravno na vhodih v stavbe, kjer so lahko postavljene razne toplotne zavese.

Slika 2.3: Grafični vmesnik termičnega števca Irisys

Slika 2.2: Termični števec

Page 23: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 5

Tako prihaja pogosto do mešanja mrzlega in toplega zraka, zato lahko pride do zelo

velikega odstopanja števca.

2.1.3 Števci na podlagi video slike

Najnaprednejši števci temeljijo na podlagi zajemanja video slike ter zaznavanja objektov

na sliki. Takšen števec je povsem imun na razne temperaturne spremembe, kot npr.

termični števec. Za takšen števec potrebujemo samo video kamero, ki je dandanes že dokaj

poceni, računalnik ter ustrezno programsko opremo.

Programsko opremo smo razvili v diplomskem delu.

2.2 Programsko okolje Delphi

Programski jezik Delphi so zasnovali pri podjetju Borland v letu 1995. Podlaga jezika je

objektni pascal (programski jezik pascal z objektnimi dodatki). Prvotno je bil namenjen

predvsem pisanju programov za vodenje evidenc, podatkovnih baz in podobnih opravil.

Prva različica programa je bila narejena za 16-bitno Windows okolje, naslednja verzija je

že podpirala 32-bitno Windows okolje, leta 2001 pa je prišel Kylix, ki je bil namenjen

Linux platformi. Leta 2003 je z izidom Delphi 8 prišla podpora Microsoft.NET orodju [2].

Prednost Delphija pred drugimi jeziki je ta, da ima veliko že napisanih komponent, veliko

podporo podatkovnim bazam ter prijazen razvoj komponent. Jezik je objektno orientiran,

kar pomeni, da pri programiranju uporabljamo razne objekte (vizualne in nevizualne).

Vizualni objekti so objekti z grafično podobo, kot so npr. gumbi, drsniki, tabele, slike …

Objekte kličemo po njihovem imenu in s tem dostopamo do njihovih lastnosti oziroma

funkcij.

Pri razvoju naše aplikacije smo uporabili Delphi 7. S programom lahko enostavno

dostopamo do vseh elementov slike (pikslov, sub-pikslov), kar je ključno za razvoj naše

aplikacije.

Do določenega piksla slike lahko enostavno dostopamo z ukazom

Image1.Picture.Bitmap.Canvas.Pixels[x,y], vendar je lociranje pikslov na ta način zelo

počasno. Veliko hitrejši način je ta, da se s kazalcem postavimo na x vrstico slike ter se

Page 24: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 6 Klemen Grosek, Diplomsko delo

nato sprehodimo po celotni širini slike. Ukaz za postavitev na začetek x vrstice slike je

Image1.Picture.Bitmap.ScanLine[x].

2.3 Kamera

IP kamere ne potrebujejo nobenih posebnih komponent za digitalizacijo slike, saj so te

komponente že vgrajene v kamerah samih. Kamere se priključijo direktno na računalniško

mrežo preko mrežnega stikala ali usmerjevalnika (angl. switch ali router). Posnetki se

shranjujejo na strežniku s pomočjo ustrezne programske opreme.

Za zajem slik smo v naši aplikaciji uporabili IP kamero Sanyo HD 2100P.

Slika 2.4: IP kamera Sanyo HD 2100P

2.3.1 Napajanje kamere preko PoE standarda

Kamera omogoča več vrst napajanj, med drugimi tudi direktno preko mrežnega priključka

oziroma PoE (angl. Power ower Ethernet). PoE se je uvedel z uvedbo standarda IEEE

802.3af-2003 (kasneje preimenovan v IEEE 802.3-2005), zadnja nadgradnja je bila leta

2009 v IEEE 802.3at oziroma PoE+ [8]. Napajanje poteka preko komunikacijskih linij

(RX+, RX-, TX+. TX-) RJ45 mrežnega priključka. To je mogoče zato, ker se

komunikacija pretaka preko diferencialnih napetosti po parnih linijah. Enosmerna napetost

se tako prišteje k podatkovnim napetostnim nivojem. Polariteta napajalne napetosti se

lahko invertira kadar uporabljamo crossover kabel, zato mora biti na strani porabnika

usmerniško vezje, ki v vsakem primeru pravilno usmeri napajalno napetost. Za napajalne

linije se uporabljajo priključki 1-2 in 3-6 (RJ45 priključka), hkrati pa se kot rezervne

napajalne linije uporabljajo priključki 4-5, 7-8.

Page 25: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 7

Začetni standard je omogočal do 15,4 W porabe po kanalu, najnovejši standard, PoE+, pa

omogoča do 25,5 W porabe po kanalu. V prihodnosti naj bi preko PoE priključka bilo

možno črpati do 51 W moči.

Napajalna napetost se giblje nekje od 44 V do 57 V. Ta napetost je zbrana zaradi

varnostnih razlogov, saj je to maksimalna napetost, ki je še neškodljiva za človeka, hkrati

pa nam omogoča napajanje naprav na dolgih linijah.

Tabela 2.1: Lastnosti PoE standarda

Lastnost 802.3af (802.3at, tip 1) 802.3at, tip 2

Moč dostopna na PD 12,95 W 25,50 W

Maksimalno odvedena moč od PSE 15,40 W 34,20 W

Izhodna napetost (na PSE) 44,0–57,0 V 50,0–57,0 V

Izhodna napetost (na PD) 37,0–57,0 V 42,5–57,0 V

Maksimalni tok 350 mA 600 mA

Maksimalna upornost kabla 20 Ω (kategorija 3) 12,5 Ω (kategorija 5)

Podprti kabli Kategorija 3 in 5 Kategorija 5

Omogočeni načini delovanja Mode A, Mode B Mode A, Mode B, Mode A in

Mode B hkrati

PD (angl. Powered device) je naprava napajana iz PSE (angl. Power sourcing equipment

oziroma naprava z napajalnim virom).

2.3.2 Zajemanje slike

Kamera podpira različne vrste protokolov, kot so: TCP/IP, UDP, HTTP, HTTPS, SMTP,

NTP, DHCP, FTP, RTP, RTSP. V naši aplikaciji smo uporabili protokol HTTP ter MJPEG

format slike. Na kamero se povežemo preko njenega IP naslova ter ji pošljemo zahtevo za

zajem MJPEG slike. Kamera nam nato servira sliko in jo nato z našim algoritmom

obdelamo. Kamera je sposobna servirat do 30 slik na sekundo (30 fps), vendar za pravilno

delovanje naše aplikacije zadostuje že samo 10 slik na sekundo (10 fps).

Page 26: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 8 Klemen Grosek, Diplomsko delo

2.3.3 Resolucija

Uporabili smo HD resolucijo 1920x1080, vendar to sliko nato zaradi povečanja hitrosti

algoritma zmanjšamo na velikost 320x240.

2.3.4 CMOS senzor

Kamera za zajem slike uporablja senzor v CMOS tehnologiji (complementary metal oxide

semiconductor). Pri CMOS senzorju ima vsak piksel lastni pretvornik naboja (svetlobe) v

napetost. Senzor vsebuje tudi razne ojačevalnike, filtre šuma ter vezje za digitalizacijo

slike. Vsi ti sklopi povečujejo kompleksnost samega senzorja ter zmanjšujejo površino za

zajem svetlobe. Prednost senzorja je, da za svoje delovanje ne potrebuje raznih dodatnih

vezij, kar omogoča gradnjo manj kompleksnih sistemov, vgradnjo v zelo majhne naprave

ter majhno porabo energije.

Tabela 2.2: Tehnične lastnosti kamere

Senzor CMOS

Število pikslov 16:9; 1920x1080; 4:3; 2288x1712

Minimalna osvetlitev 1 lux

Video S/N razmerje 50 dB

Elektronska zaklopka 1/30, 1/60, 1/100, 1/250, 1/500, 1/1000, 1/4000,

1/10000; x1, x2, x4, x8, x16, x32

Kompresija slike MJPEG/H.264

FPS Max. 30 slik na sekundo

Protokol TCP/IP, UDP, HTTP, HTTPS, SMTP, NTP,

DHCP, FTP, DONS, RTP, RTSP

Sposobnost hkratnega dostopanja Max. 20

Page 27: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 9

2.4 Sestava slike

2.4.1 Digitalna slika

Digitalna slika predstavlja fiksno dvodimenzionalno polje bajtov velikosti dimenzij slike.

Barvna digitalna slika je najpogostejši komunikacijski medij. Prikaz barv temelji na teoriji,

ki sta jo razvila Thomas Young in Herman Helmholtz. Teza pravi, da se lahko vsaka barva

ustvari z mešanjem treh osnovnih barv C1, C2 in C3 v različnih razmerjih [9].

& ' ' ! , (2.1)

kjer je:

– barvni odtenek

– intenziteta prve osnovne barve

– intenziteta druge osnovne barve

! – intenziteta tretje osnovne barve

Teorija temelji na tem, da je človeško oko sestavljeno iz treh različnih tipov čepkov. Glede

na (2.1) lahko vsako barvo predstavimo kot vektor ), , !* v tridimenzionalnem prostoru

(C1, C2, C3). V računalništvu to imenujemo RGB barvni model.

Slika 2.5: 3D barvna kocka

Page 28: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 10

2.4.2 RGB barvni model

RGB barvni model je sestavljen iz treh osnovnih barv

treh osnovnih barv imenujem piksel (angl. Picture element) in se smatra kot najmanjši

element slike. Barve, ki sestavljajo piksel

piksel točko, ki nima oblike in dolo

(intenziteta, barva). V realnosti je piksel omejen z obliko in velikostjo zaslona

pikslov je predstavljena z

podatek nam pove gostoto pikslov na enoto

je resolucija zaslona.

Slika 2.7: Razp

Klemen Grosek, Diplomsko delo

RGB barvni model je sestavljen iz treh osnovnih barv – rdeče, zelene in modre.

treh osnovnih barv imenujem piksel (angl. Picture element) in se smatra kot najmanjši

ki sestavljajo piksel, imenujemo sub-piksli. Formalno predstavlja

ko, ki nima oblike in določene velikosti, ima pa informacijo o karakteri

(intenziteta, barva). V realnosti je piksel omejen z obliko in velikostjo zaslona

z mersko enoto dpi (angl. dots per inch ali pik na palec). Ta

pove gostoto pikslov na enoto 1 inch² (2,54 cm²). Večja je vrednost dpi, ve

Slika 2.6: RGB barvni model

: Razpored pikslov na različnih prikazovalnikih

Klemen Grosek, Diplomsko delo

e, zelene in modre. Skupek teh

treh osnovnih barv imenujem piksel (angl. Picture element) in se smatra kot najmanjši

piksli. Formalno predstavlja

ene velikosti, ima pa informacijo o karakteristiki slike

(intenziteta, barva). V realnosti je piksel omejen z obliko in velikostjo zaslona. Dimenzija

ali pik na palec). Ta

ja je vrednost dpi, večja

nih prikazovalnikih

Page 29: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 11

2.4.3 Sivinska slika

V digitalni sivinski sliki vsak piksel predstavlja dejansko svetlost vsake posamezne

slikovne točke. Sivinska slika se pogosto prikazuje kot rezultat merjenj intenzitete svetlobe

v določenem spektru elektromagnetnega valovanja (vidna svetloba, infrardeča svetloba,

ultravijolična svetloba …).

Sivinsko sliko lahko s pomočjo (2.2) izračunamo iz dane barvne slike.

"# & 30% · ' 59% · $ ' 11% · %, (2.2)

kjer je:

"# – intenziteta sivinskega piksla

– intenziteta rdečega sub-piksla barvne slike

$ – intenziteta zelenega sub-piksla barvne slike

% – intenziteta modrega sub-piksla barvne slike

Sivinsko sliko smo v naši aplikaciji uporabili izključno zaradi pridobitve na hitrosti in

kompleksnosti implementacije algoritma.

Slika 2.8: Pretvorba v sivinsko sliko

Page 30: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 12 Klemen Grosek, Diplomsko delo

3 POSTOPKI, POTREBNI ZA PREPOZNAVO OBJEKTOV

V tem poglavju bomo opisali vse najpomembnejše operacije, ki so potrebne za zaznavo

objektov na sekvenci slik.

3.1 Slika ozadja

Princip zaznave objekta temelji na odštevanju dveh slik, kar je opisano v naslednjem

poglavju. Da lahko izločimo objekte iz slike, moramo imeti neko referenčno sliko (sliko

ozadja), katera predstavlja samo okolico prostora ter trenutno sliko z objektom. Samo

okolje je dinamični prostor, kjer neprestano prihaja do sprememb. Spremembe so lahko

sprememba vremena, dan, noč, ipd. Vsem tem spremembam mora referenčna slika ozadja

slediti, sicer bodo rezultati prepoznave objektov zelo slabi.

V naši aplikaciji smo uporabili metodo računanja povprečja 200 zaporednih slik. Ker je

računanje povprečja za 200 slik, vsaka slika je sestavljena iz 320x240 pikslov, zelo

dolgotrajni postopek, smo uvedli postopek, ki naredi naše računanje hitrejše. Namesto, da

si shranjujemo vseh 200 slik v pomnilnik in nato ob vsaki novi sliki izbrišemo najstarejšo

sliko ter na novo izračunamo povprečje vseh slik, hranimo v pomnilniku samo eno sliko

imenovano »Skupna_slika«. Vse vhodne slike se samo prištevajo k Skupni_sliki, hkrati pa

hranimo število slik, shranjenih v Skupni_sliki. Da dobimo povprečje vseh shranjenih slik,

enostavno delimo Skupno_sliko s številom slik, shranjenih v njej. Ko število slik doseže

maksimalno dovoljeno število slik (v našem primeru 200), odštejemo povprečno sliko od

Skupne_slike in ji prištejemo novo vhodno sliko. S tem smo sicer poslabšali pravilno

povprečno vrednost, vendar smo izredno veliko pridobili na hitrosti same aplikacije.

Page 31: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 13

Prištevanje slik k Skupni_sliki:

)2, 3* & )2, 3* ' )2, 3* (3.1)

kjer je:

)2, 3* – piksel trenutna slike

)2, 3* – vrednost piksla v Skupni_sliki

Računanje povprečne vrednosti:

č)2, 3* &

)2, 3*

š456789:87; (3.2)

kjer je:

č)2, 3* – povprečna vrednost piksla

)2, 3* – vrednost piksla v Skupni_sliki

š456789:87; – število slik shranjenih v Skupni_sliki

3.2 Odštevanje slik

Glavna operacija za odkrivanje objektov na sliki je odštevanje dveh slik. Piksli, ki so na

obeh slikah enaki, se enostavno odštejejo, na območjih, kjer je prišlo do razlik med

slikama (gibanje), pa dobimo rezultat različen od 0.

)2, 3* & |)2, 3* = )2, 3*| (3.3)

kjer je:

)2, 3* – rezultat odštevanja

– piksel slike 1

– piksel slike 2

Page 32: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 14 Klemen Grosek, Diplomsko delo

Slika 3.1: Slika ozadja

Slika 3.2: Trenutna slika

Slika 3.3: Slika razlik

Page 33: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 15

Ker že sama kamera ustvarja majhen šum na sami sliki, moramo to upoštevati tudi pri

odštevanju slik. Tako moramo pri razliki slik upoštevati t. i. prag razlike (angl. offset).

Prag razlike predstavlja mejno vrednost zaznanega objekta. Če je absolutna vrednost

razlike pikslov trenutne slike in slike ozadja manjša od pragovne vrednosti, upoštevamo to

razliko kot '0' (črna barva) oziroma piksla sta enaka, kadar je absolutna razlika večja od

pragovne vrednosti, pa to upoštevamo kot zaznavo spremembe in vrnemo rezultat kot '255'

(bela barva).

>? )2, 3* @ ABCD )2, 3* & 0

EFGE )2, 3* & 255 (3.4)

kjer je:

)2, 3* – rezultat odštevanja slik

– pragovna vrednost

Kot rezultat odštevanja dobimo črno-belo sliko, kjer beli piksli predstavljajo zaznano

gibanje na sliki, črni pa nobene spremembe, Slika 3.3.

3.3 Median filter

Median filter je nelinearna tehnika digitalnega filtriranja šuma na sliki. Zelo pogosto se

uporablja v digitalnem procesiranju slik, saj nam povečini odstrani neželeni šum, hkrati pa

ohrani veliko podrobnosti slike.

Opis postopka filtriranja:

Filter preleti vse vhodne podatke v tako imenovanih »oknih«, kjer skupaj s trenutnim

podatkom opazuje tudi vrednosti sosednjih podatkov. Pri enodimenzionalnem signalu, je

okno sestavljeno enostavno iz večjih zaporednih podatkov, kjer pri 2D ali več dimenzijskih

signalih, kot npr. slika, okno predstavlja 2 ali več dimenzijski objekt.

Pri sliki je okno 2D matrika sestavljena iz lihega števila elementov (3x3, 5x5, 7x7). Večje

število podatkov kot zajamemo, večji je efekt filtriranja.

Page 34: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 16

Filter deluje tako, da prebere vse podatke podanega okna ter

redu od najmanjšega do najve

v trenutni piksel.

Primer na sivinski sliki, Slika

Sosednje vrednosti (v vrstnem redu)

Median vrednost: 124

Slika 3.4: S

V naši aplikaciji smo filtrirali

podatkih, ki so lahko ali '0' ali pa '

Sosednje vrednosti (v vrstnem redu):

Median vrednost: 0

Slika 3.5: Črno

Klemen Grosek, Diplomsko delo

Filter deluje tako, da prebere vse podatke podanega okna ter jih nato razporedi po vrstnem

do največjega. Nato vzame sredinsko vrednost podatkov ter jo shrani

Slika 3.4:

(v vrstnem redu): 115, 119, 129, 123, 124, 125, 126, 127, 150

Sivinska slika pred (a) ter po median filtriranju (b)

smo filtrirali črno-belo sliko. Postopek je povsem enak, razlika je le v

podatkih, ki so lahko ali '0' ali pa '1'.

Sosednje vrednosti (v vrstnem redu): 0, 0, 0, 0, 0, 0 1, 1, 1

rno-bela slika pred (a) ter po median filtriranju

Klemen Grosek, Diplomsko delo

razporedi po vrstnem

. Nato vzame sredinsko vrednost podatkov ter jo shrani

126, 127, 150

(b)

belo sliko. Postopek je povsem enak, razlika je le v

ter po median filtriranju (b)

Page 35: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 17

Enostavno povedano, če se v okvirju nahaja več ničel kot enic, vpišemo v trenutni piksel

'0', če pa se nahaja več enic, vpišemo '1'. S tem smo izbrisali vse osamljene piksle, ki

predstavljajo razne neželene šume.

Slika 3.6: Slika razlik

Slika 3.7: Prečiščena slika

Page 36: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 18

3.4 Dilatacijski filter (angl.

Dilatacijski filter se povečini uporablja na

površino objektov najdenih na sliki

prostore v objektih. Objekti, ki so dovolj blizu skupaj

objekte.

Slika 3.8: Črno-

Filter deluje tako, da se z okvirjem (matrika

po vseh pikslih slike. Kadar v okvirju najdemo piksel, ki predstavlja del objekta, obarvamo

vse ostale piksle, ki so predstavljali ozadje, v barvo objekta. S tem s

objektov.

Primer:

Nahajamo se na pikslu s koordinatami x,y. Ugotovimo,

pripadata objektu. Zato vse piksle

Slika 3.9: Okvir slike pred

Klemen Grosek, Diplomsko delo

Dilatacijski filter (angl. Dilation filter)

čini uporablja na črno-belih slikah. Njegov efekt je

površino objektov najdenih na sliki, hkrati pa delno zmanjša oziroma

prostore v objektih. Objekti, ki so dovolj blizu skupaj, se tako lahko združijo v ve

-bela slika pred (a) ter po dilatacijskem filtriranju

Filter deluje tako, da se z okvirjem (matrika pikslov velikost 3x3, 5x5, 7x7

. Kadar v okvirju najdemo piksel, ki predstavlja del objekta, obarvamo

ostale piksle, ki so predstavljali ozadje, v barvo objekta. S tem smo pove

u s koordinatami x,y. Ugotovimo, da v okvirju obstajata dva piksla, ki

data objektu. Zato vse piksle spremenimo v piksle objekta.

kvir slike pred (a) ter po dilatacijskem filtriranju

Klemen Grosek, Diplomsko delo

belih slikah. Njegov efekt je ta, da poveča

zmanjša oziroma zapolni prazne

ako lahko združijo v večje

riranju (b)

pikslov velikost 3x3, 5x5, 7x7 …) sprehodimo

. Kadar v okvirju najdemo piksel, ki predstavlja del objekta, obarvamo

o povečali dimenzije

da v okvirju obstajata dva piksla, ki

dilatacijskem filtriranju (b)

Page 37: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 19

Slika 3.10: Pred dilatacijskim filtriranjem

Slika 3.11: Po dilatacijskem filtriranju ter izločitvi manjših objektov

3.5 Označevanje najdenih objektov

Naslednja funkcija, ki sledi, je označevanje objektov na sliki (angl. CCL »Connected

Components Labeling«). Vsem pikslom, ki so povezani drug z drugim, določimo enake

barvne intenzitete oziroma jim dodelimo enake identifikacijske številke (v nadaljevanju

ID-je). S tem dobimo sliko, kjer ima vsak objekt lastno ID vrednost.

Kot osnovo iskanja objektov smo uporabili klasični algoritem, ki sta ga je leta 1966 razvila

Rosenfeld in Pfaltz [5].

Page 38: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 20 Klemen Grosek, Diplomsko delo

Algoritem je sestavljen iz dveh preletov slike. V prvem preletu se sprehodimo čez vsak

piksel slike, hkrati pa preverjamo zgornji in levi sosednji piksel. Glede na oznake teh dveh

pikslov, ki sta že bila označena, označimo trenutni piksel, hkrati pa si shranjujemo možne

povezave med piksli različnih oznak. V drugem preletu pa popravimo piksle, ki dejansko

spadajo pod enak objekt, vendar imajo različne oznake.

Primer določitve objektov:

Imamo črno-belo sliko. Vsak kvadrat predstavlja en piksel. Beli kvadrati predstavljajo

objekte, črni pa ozadje. Poiskati in označiti želimo objekte na sliki.

Slika 3.12: Primer slike z objekti

Kot rezultat moramo na Slika 3.12 najti štiri ločene objekte. Kot rezultat moramo dobiti

Slika 3.13.

Page 39: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 21

Slika 3.13: Slika z obarvanimi objekti

Sliko začnemo pregledovati v zgornjem levem kotu. Ugotovimo, da piksel (1,1) pripada

objektu. Pogledamo, ali obstajata zgornji ali levi sosednji piksel. Ker je piksel prvi element

slike, nima nobenega sosednjega (levega in zgornjega) piksla. Dodelimo mu ID vrednost

'1'.

Slika 3.14: CCL, korak 1

Nato pogledamo naslednji piksel (1,2). Ugotovimo, da ima piksel soseda na levi strani,

zato prekopiramo sosedovo oznako v trenutni piksel. Naslednji piksel (1,3) je piksel

ozadja. Ker nas ta piksel ne zanima, ga enostavno preskočimo in pustimo označenega z

vrednostjo '0'.

1

Page 40: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 22 Klemen Grosek, Diplomsko delo

Naslednji piksel je piksel (1,4). Piksel je del objekta, vendar ker nima ne zgornjega ne

levega sosednjega piksla, ki bi pripadal kateremu objektu, mu dodelimo novo ID vrednost

'2'.

Slika 3.15: CCL, korak 2

Naslednja dva piksla, (1,5) in (1,6), imata označene piksle na levi strani, zato dobita

oznake '2'. Piksel (1,7) preskočimo, ker je del ozadja, pikslu (1,8) pa določimo novo ID

vrednost '3', saj nima nobenega sosednjega piksla.

Po končanju prve vrstice dobimo Slika 3.16.

Slika 3.16: CCL, korak 3

Nato sledi piksel (2,1). Sosed trenutnega piksla je (1,1) z oznako '1', zato to oznako

prekopiramo v piksel (2,1). Enako velja za piksel (2,2) in ostale piksle v tej vrstici.

1 1 2

1 1 2 2 2 3

Page 41: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 23

Dobimo naslednjo sliko:

Slika 3.17: CCL, korak 4

V tretji vrstici so piksli (3,1), (3,2) in (3,3) enostavni za določit. Vsi namreč dobijo oznako

'1'. Pri pikslu (3,4) pa imata zgornji in levi piksel različne oznake. V tem primeru

preverimo, kateri sosednji piksel ima manjšo vrednost. Ugotovimo, da ima piksel (3,3)

manjšo vrednost kot (2,5), zato dodelimo trenutnemu pikslu oznako '1'. Kot dodatno

lastnost si shranimo, da je piksel z oznako '2' »otrok« piksla z oznako '1'. To lastnost bomo

uporabili pri drugem preletu slike, kjer bomo piksle »otroke« spreminjali v »starše«.

Slika 3.18: CCL, korak 5

1 1 2 2 2 3

1 1 2 2 3

Page 42: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 24 Klemen Grosek, Diplomsko delo

Naslednji koraki so enaki prejšnjim. Pri pikslu (7,4) pride spet do srečanja dveh različnih

oznak. Pikslu določimo manjšo vrednost '4'. Pikslom z oznako '6' določimo, da so »otroci«

pikslov '4'.

Slika 3.19: CCL, korak 9

Do zaznave dveh različnih sosednjih oznak pride tudi pri pikslu (8,8). Piksel dobi oznako

'3', piksli z oznako '7' pa lastnost, da so »otroci« oznake '3'.

Končna slika po prvem preletu zgleda takole:

Slika 3.20: CCL, korak 10

Po prvem preletu skozi sliko dobimo sliko z večjim številom objektov, kot pa je dejanska

vrednost. Zato moramo še enkrat preleteti sliko in spremeniti vse »otroke« v dejanske

vrednosti.

Page 43: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 25

Sprehodimo se po vseh pikslih slike. Ko ugotovimo, da je trenutni piksel »otrok«, mu

spremenimo oznako v »starša«.

Slika 3.21: CCL, korak 11

Slika 3.22: CCL, korak 12

Po končanem drugem prehodu dobimo sliko objektov, kjer ima vsak objekt svojo lastno ID

vrednost.

Page 44: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 26 Klemen Grosek, Diplomsko delo

Slika 3.23: CCL, korak 13

3.6 Preverjanje velikosti objektov

Naslednji korak je ugotavljanje velikosti objektov. Pri štetju ljudi želimo izločiti manjše

zaznane objekte, kot so npr. živali.

Na sliki preštejemo piksle vsakega najdenega objekta ter to vrednost primerjamo z najnižjo

možno »velikostjo« objektov. Če je objekt premajhen, ga izbrišemo iz slike.

Po filtraciji premajhnih objektov sledi novo dodeljevanje ID-jev objektom, in sicer po

vrstnem redu od 1 naprej ter od zgornjega desnega do spodnjega levega kota. Tako smo

dobili sliko s tremi objekti z oznakami '1', '2', in '3'.

Slika 3.24: Končana slika

1 1 1 1 1 2

1 1 1 1 2

1 1 1 1 2

2

3 3 3 3 2

3 2

3 3 3 3 2

3 3 3 3 2 2 2

Page 45: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 27

3.7 Spremljanje gibanja objekta

Z dosedanjimi postopki smo izločili objekte iz slike ter jim dodelili ID naslove. Objekti so

vedno označeni po vrstnem redu od zgornjega levega do spodnjega desnega kota slike. Ker

spremljamo gibajoče se objekte, moramo preveriti, kje so se ti objekti nahajali v prejšnji

iteraciji. V ta namen si v pomnilnik shranjujemo sliko najdenih objektov, katero nato ob

vsaki naslednji iteraciji primerjamo s trenutno sliko.

Za vsak najden objekt preverimo, ali se prekriva s katerim od objektov najdenih na prejšnji

sliki. Kadar ugotovimo prekrivanje, sledi ponovno dodeljevanje ID naslovov objektom.

Slika 3.25: Slika objektov prejšnje iteracije (a), trenutna slika objektov (b)

Slika 3.26 prikazuje primerjavo trenutne slike najdenih objektov s prejšnjo sliko objektov.

Ugotovimo, da se objekt '2' prekriva z objektom '1' prejšnje slike ter objekt '1' z objektom

'2'. Iz tega sklepamo, da je dejansko objekt '1' objekt '2' ter objekt '2' objekt '1'. Sledi

postopek za spremembo ID-jev, in sicer iz '1' '2' ter iz '2' '1'.

Page 46: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 28 Klemen Grosek, Diplomsko delo

Slika 3.26: Prekrivanje objektov

Kot rezultat dobimo Slika 3.27, ki prikazuje dejansko gibanje objektov.

Slika 3.27: Slika objektov prejšnje iteracije (a), trenutna slika objektov s pravilno označenimi objekti (b)

V Delphiju si za vsak najden objekt ustvarimo novo strukturo (class) objekta. Struktura

OBJEKT je sestavljena iz:

• ID naslova objekta,

• trenutne koordinate objekta (2I, 2, 3I, 3),

• centra objekta (težišče).

Page 47: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 29

Center objekta izračunamo z enačbama:

2J & 2 = 2I (3.5)

3J & 3 = 3I (3.6)

• barve (barva objekta je dodeljena glede na vrednost ID naslova),

• strukture POT-i (v to strukturo je shranjena celotna pot objekta).

Struktura POT je sestavljena iz:

• koordinata 2 (težišče 2),

• koordinata 3 (težišče 3).

Kadar zaznamo nov objekt na naši sliki, ustvarimo novo strukturo OBJEKT. OBJEKTU

določimo fiksne vrednosti za ID objekta (npr. 2) ter fiksno barvo. Shranimo mu trenutne

koordinate ter ustvarimo novo »podstrukturo« POT, kamor shranimo trenutno težiščno

lokacijo objekta. V naslednji iteraciji, ko najdemo naš objekt z ID-jem '2', spremenimo

trenutne koordinate objekta, hkrati pa dodamo novo 23 vrednost podstrukturi POT.

S pomočjo trenutnih koordinat izrisujemo kvadrat na sliki, kje se zaznan objekt trenutno

nahaja, s pomočjo podstrukture POT pa izrisujemo celotno pot, ki jo je opravil objekt.

Slika 3.28: Sledenje objektu

Page 48: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 30 Klemen Grosek, Diplomsko delo

3.8 Določitev con štetja

Obstaja več metod, s katerimi lahko ugotovimo, ali je objekt prečkal zarisane meje na sliki.

Ena možnost je ta, da s pomočjo matematičnih funkcij računamo spreminjanje lege

objekta. Kadar se daljica poti seka z daljico cone, zaznamo to kot prehod objekta.

V našem projektu smo uporabili zelo enostavno in procesorsko nezahtevno metodo. V

Slikarju narišemo sliko z dvema debelejšima črtama, ki se po celotni dolžini dotikata druga

druge.

Slika 3.29: Cona štetja

Sliko uvozimo v našo aplikacijo kot Sliko_con. V Delphiju definiramo novo strukturo

CONE, ki je sestavljena iz:

• ID-ja cone,

• pozitivnega zaporedja prehoda,

• negativnega zaporedja prehoda,

• števila pozitivnih prehodov,

• števila negativnih prehodov.

V aplikaciji nato določimo pravilno zaporedje prečkanja con. V našem primeru za

pozitivno prečkanje cone določimo kombinacijo barv modra rdeča, za negativno pa

kombinacijo rdeča modra.

Page 49: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 31

Za vsak objekt spremljamo težiščne xy koordinate trenutne lokacije. Ko s pomočjo teh

koordinat zaznamo, da se objekt nahaja na kateri izmed barv v sliki con, se začne postopek

prehoda. Da se prehod šteje, se mora izvesti točno določeno zaporedje barv, in sicer v

našem primeru za pozitivno smer ozadje modra rdeča ozadje. Ko zaznamo, da je

lokacija objekta spet izven naših barv na sliki con, se preveri pravilnost prehoda. Vrstni red

prečkanja barv primerjamo z vsemi vpisanimi kombinacijami. Če najdemo katero cono s to

kombinacijo, prištejemo tisti coni število prehodov v pozitivni ali negativni smeri, odvisno

od zaporedja prehoda.

Prednosti metode:

• procesorsko nezahtevna operacija,

• izredno hitra,

• enostavna za implementirati,

• narišemo lahko poljubno število con s poljubnimi oblikami.

Slabost te metode je ta, da moramo narisati dve črti za eno cono štetja, ki se morata po

celotni dolžini dotikati ena z drugo. Ti črti morata biti dovolj debeli, saj se lahko v

nasprotnem primeru zgodi, da se objekt giblje prehitro in lahko preskoči katero definirano

barvno črto. Prehod se v tem primeru ne bi prištel.

3.9 Podatkovna baza

Podatkovna baza je sklop zbirke podatkov. Pojavila se je zaradi potrebe po hitrem

dostopanju do informacij. Omogoča enostavno shranjevanje in dostopanje do podatkov.

Podatkovni sistem je jedro podatkovne zbirke in vsebuje rutine za upravljanje s podatki.

Obstaja več vrst podatkovnih baz in sistemov za upravljanje s podatkovnimi bazami.

Najbolj znani so MS SQL, MS Access, MySQL, InterBase, Oracle, ipd. podatkovni

sistemi.

V naši aplikaciji smo uporabili interno bazo dxMemData programa Delphi. Baza se

samostojno tvori ob vsakem zagonu programa in ima določeno maksimalno možno število

vnosov. Ob vsakem zaznanem prehodu cone si v bazo shranimo podatke:

Page 50: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 32 Klemen Grosek, Diplomsko delo

• ZoneID;

pove nam, na kateri coni je prišlo do prehoda.

• ValueIN;

skupno število pozitivnih prehodov.

• ValueOUT;

skupno število negativnih prehodov.

• Time;

čas prehoda.

• Date;

datum prehoda.

Slika 3.30: Tabela podatkov

Podatki se v bazo vpišejo z ukazom dxMemData.InsertRecord (x, IDZone, ValueIN,

ValueOUT, Time, Date), kjer je x zaporedna številka vpisa.

Podatke, vpisane v bazi, lahko nato poljubno izrišemo v graf. Za vsako definirano cono

lahko izberemo ali dnevni ali mesečni izris prehodov.

Page 51: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 33

Slika 3.31: Graf prehodov

Page 52: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 34 Klemen Grosek, Diplomsko delo

4 MERITVE IN REZULTATI

V tem poglavju bomo opisali rezultate, ki smo jih dobili z algoritmom, opisanim v

poglavju 3. V podpoglavju 4.1 bomo opisali konfiguracijo našega testnega računalniškega

sistema. V poglavju 4.2 bomo predstavili rezultat hitrosti delovanja našega programa. V

poglavju 4.3 pa bomo predstavili dejanske rezultate štetja prehodov.

4.1 Testna konfiguracija

Algoritem smo testirali na namiznem računalniku HP Elite HPE-120-WC969

• Procesor: IntelQuad Core i7 860, 2,8GHz

• Pomnilnik: 6GB PC3-10600 DDR3

• Trdi disk: 1500GB SATA

• Grafična kartica: NVIDIA GeForce GT230 1,5GB

• Operacijski sistem: Windows XP SP3

Uporabili smo kamero Sanyo HD 2100P. Kamera snema parkirišče podjetja. Postavljena je

na višini 5 m, pod kotom 30°.

Page 53: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 35

Slika 4.1: Postavitev kamere

4.2 Hitrost algoritma

Za pravilno prepoznavo in spremljanje objektov mora razvit algoritem ustrezati določenim

časovnim zahtevam pri obdelavi slike.

Hitrost algoritma smo izmerili tako, da smo si na disk shranili sekvenco 1000-ih

zaporednih slik iz kamere. Te slike smo nato eno za drugo klicali iz programa brez

vmesnih pavz. Hkrati smo merili čas, ki je bil potreben za procesiranje 1000-ih slik. Čas, ki

ga porabi algoritem za procesiranje ene slike, smo izračunali s (4.1).

4K &

4J

1000 (4.1)

kjer je:

4K – čas procesiranja ene slike

4J – čas procesiranja 1000-ih slik

Čas smo merili z visoko zmogljivim strojnim časovnikom, ki je dandanes vgrajen v

vsakem računalniku. Omogoča nam merjenje časa procesiranja do več kot 1 mikrosekunde

natančno.

Page 54: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 36 Klemen Grosek, Diplomsko delo

V Delphiju s funkcijo QueryPerformanceFrequency(Freq) dobimo vrednost frekvence

časovnika. S funkcijo QueryPerformanceCounter(value) dobimo trenutno vrednost

časovnika.

Čas smo izračunali s (4.2).

4J &

QueryPerformanceCounterYStop\ = QueryPerformanceCounterYStart\

QueryPerformanceFrequencyYFrequency\ (4.2)

kjer je:

QueryPerformanceCounterYStart\ – začetni čas časovnika

QueryPerformanceCounterYStop\ – končni čas časovnika

QueryPerformanceFrequencyYFrequency\ – frekvenca časovnika

4J – čas procesiranja 1000-ih slik

Tabela 4.1: Rezultati analize hitrosti algoritma

Številka poizkusa Čas procesiranja 1000-ih slik Čas procesiranja ene slike

1. 71,33 s 71,33 ms

2. 69,87 s 69,87 ms

3. 69,59 s 69,59 ms

4. 69,05 s 69,05 ms

Povprečje:

69,95 s 69,95 ms

Iz rezultata lahko vidimo, da je algoritem sposoben obdelati do 13 slik na sekundo. Sam

algoritem nima nobene optimizacije, zato lahko z optimizacijo kode ta čas dramatično

zmanjšano.

Page 55: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 37

4.3 Natančnost štetja

Zaradi večje preglednosti smo algoritem štetja izvajali na vnaprej posnetem video

posnetku. Video posnetek smo iz kamere izvozili v obliki JPEG slik. Slike smo nato eno za

drugo uvažali v našo aplikacijo, kot da bi jih servirala kamera. S tem smo pridobili večji

pregled nad samim napredkom aplikacije čez celotno obdobje razvoja.

Za preizkus štetja smo izvedli dva poizkusa, enega z eno določeno cono ter drugega z

dvema določenima conama.

4.3.1 Nastavitve velikosti zaznanih objektov

Minimalne velikosti zaznanih objektov ter filtracijo šuma na sliki smo nastavili

eksperimentalno. Najboljši rezultati so se pokazali, kadar smo minimalno velikost zaznanih

objektov nastavili na 170 pikslov. Razlika med referenčno sliko ter trenutno sliko pa je

morala presegati vrednost 25.

Slika 4.2: Nastavitev parametrov v aplikaciji

4.3.2 Poizkus štetja z eno določeno cono

V našo aplikacijo smo uvozili sliko z eno vrisano cono štetja, ki smo jo narisali v Slikarju.

Cona štetja je sestavljena iz dveh barv, rdeče in zelene, na podlagi katerih določamo smer

prehoda. Določili smo, da je pozitivna smer prehoda prečkanje najprej rdeče, nato pa

zelene barve. V obratnem primeru smatramo prehod kot negativni.

Cono štetja določimo tako, da v okvirček Zone ID vpišemo ID cone (v našem primeru 1) in

pritisnemo gumb Dodaj cono. Nato moramo coni določiti pravilno zaporedje prehoda. V

Page 56: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 38 Klemen Grosek, Diplomsko delo

našem primeru kliknemo najprej na rdečo barvo na sliki ter stisnemo gumb Dodaj

sekvenco, nato pa še na zeleno barvo ter pritisnemo gumb Dodaj sekvenco.

Na sliki z objekti se definirane cone vidijo kot temne linije.

Slika 4.3: Določitev cone štetja

Na Slika 4.4 je primer enojnega prehoda cone. Algoritem je brez težav prepoznal gibajoči

se objekt.

Slika 4.4: Primer enojnega prehoda

Page 57: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 39

Primer prehoda dveh oseb:

Slika 4.5: Primer dvojnega prehoda

Na Slika 4.6 imamo primer napačne prepoznave. Ker so osebe na sliki preblizu skupaj (se

dotikajo druga druge), algoritem prepozna vse štiri osebe kot en objekt.

Slika 4.6: Napačna prepoznava

Postopki prepoznave objektov so prikazani na Slika 4.7. Prva slika (levo zgoraj) prikazuje

izvorno barvno sliko. Naslednja slika je sivinska slika izvorne slike. Tretja slika predstavlja

sliko ozadja oziroma izračunano povprečje 200-tih zaporednih slik. Naslednja slika (levo

spodaj) je razlika med sivinsko sliko in sliko ozadja. Slika 5 je prefiltrirana slika razlik z

median filtrom. Zadnja slika predstavlja najdene objekte.

Page 58: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 40 Klemen Grosek, Diplomsko delo

Iz slike vidimo, da se vse štiri osebe vizualno dotikajo druga druge, kar povzroči, da jih

algoritem prepozna kot en objekt.

Slika 4.7: Proces prepoznave

Prehod štirih oseb:

Slika 4.8: Prehod štirih objektov

Slika 4.9 prikazuje grafični prikaz vhodov in izhodov objektov čez cono. Rdeča črta

predstavlja pozitivne prehode (vhode), zelena pa negativne prehode oziroma izhode.

Page 59: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 41

Čas na video posnetku se razlikuje od grafičnega prikaza prehodov, ker je bila analiza

prehodov opravljena ob drugem času.

Slika 4.9: Grafični prikaz prehodov

Podatki, shranjeni v bazi, so prikazani na Slika 4.10. Stolpec ZoneID prestavlja cono, na

kateri je bil zaznan prehod. V stolpcih ValueIN in ValueOUT je shranjena dejanska

vrednost prehodov, stolpca Time in Date pa predstavljata čase prehodov.

Slika 4.10: Baza podatkov

Page 60: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 42 Klemen Grosek, Diplomsko delo

4.3.3 Rezultati štetja z eno določeno cono

Tabela 4.2: Rezultati štetja prehodov pešcev preizkusa 1

Dejanska vrednost Alhoritem REZULTAT

Vhodi Izhodi Vhodi Izhodi Vhodi Izhodi skupno

Čas. obdobje 1 6 9 6 7 100 % 78 % 87 %

Čas. obdobje 2 12 15 12 11 100 % 73 % 85 %

Čas. obdobje 3 18 23 18 17 100 % 74 % 85 %

Končno število 30 40 30 30 100 % 75 % 86 %

Iz tabele z rezultati vidimo, da je algoritem preštel 100 % pravilno vse vhode in 75 %

pravilno vse izhode, kar pomeni da je povprečna natančnost algoritma v tem primeru 86 %.

4.3.4 Poizkus štetja z dvema določenima conama

V Slikarju smo narisali sliko z dvema conama. Sliko smo uvozili v našo aplikacijo kot

sliko con. Cono 1 smo definirali kot prehod iz rdeče v zeleno barvo, cono 2 pa kot prehod

iz vijolične v modro barvo.

Slika 4.11: Dve definirani coni

Page 61: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 43

Analizirali smo enak posnetek kot v poizkusu 1. Kot rezultat bi morali dobiti enake

rezultate kot v prejšnjem poizkusu.

Primer enojnega prehoda je algoritem prepoznal 100 % uspešno za obe coni.

Slika 4.12: Enojni prehod

Slika 4.13 predstavlja primer dvojnega prehoda. Iz slike vidimo, da je algoritem 100 %

uspešno prepoznal prehoda obeh con osebe 1, medtem ko je prehod osebe 2 prepoznal

samo pri prehodu cone 2. Iz slike lahko vidimo, da je bila oseba 2 prepoznana komaj v

coni 1, kar pomeni da ni izvedla popolni prehod (ozadje zelena rdeča ozadje).

Slika 4.13: Dvojni prehod

Page 62: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 44 Klemen Grosek, Diplomsko delo

Na Slika 4.14 vidimo, da se osebe prekrivajo, kar vodi do napačnega štetja prehodov. Na

sliki so dejansko štiri osebe, algoritem pa je zaznal 2 objekta.

Slika 4.14: Grupiranje objektov

Prepoznava štirih objektov.

Slika 4.15: Prehod štirih objektov

Page 63: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 45

4.3.5 Rezultati štetja z dvema definiranima conama

Slika 4.16 in Slika 4.17 grafično prikazujeta prehode con glede na čas.

Slika 4.16: Graf prehodov cone 1

Slika 4.17: Graf prehodov cone 2

Tabela 4.3: Rezultati prehodov poizkusa 2

Dejanska vrednost Algoritem

Cona 1 Cona 2

Vhodi Izhodi Vhodi Izhodi Vhodi Izhodi

18 24 18 12 14 24

Cona 1 Cona 2 Skupaj

Vhodi Izhodi Vhodi Izhodi Vhodi Izhodi Skupno

100 % 50 % 78 % 100 % 89 % 75 % 81 %

Page 64: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 46 Klemen Grosek, Diplomsko delo

Iz rezultatov v Tabela 4.3 lahko vidimo, da je povprečna natančnost algoritma kar 81 %.

Najslabše se je odrezalo štetje izhodov na coni 1, ki je doseglo 50 % dejanskih vrednosti

izhodov. Razlog slabe prepoznave je postavitev cone preblizu roba slike.

Page 65: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 47

5 SKLEP

V diplomskem delu smo se ukvarjali z razvojem lastne aplikacije za prepoznavo in štetje

objektov na video sliki. Z osnovnimi funkcijami, kot so seštevanje, odštevanje, filtriranje

ipd., smo prišli do zelo spodbudnih rezultatov, kot je uspešnost štetja nad 80 %. Pri razvoju

smo naleteli na določene težave, ki jih je bilo treba uspešno obvladati.

Referenčna slika ozadja je zelo pomemben faktor pri prepoznavi objektov, saj se vsi

objekti iščejo kot razlika med trenutno sliko in referenčno sliko ozadja. Referenčno sliko

smo računali s pomočjo povprečja zadnjih 200-tih slik. Razvili smo izredno hitro metodo

računanja povprečja, kjer namesto 200-tih preletov slik naredimo samo en prelet slike.

Povprečna hitrost obdelave ene slike je zadovoljivo hitra (69,95 ms), kar omogoča

obdelavo do 13 slik na sekundo, vendar lahko z optimizacijo kode izredno izboljšamo ta

čas. Vsak postopek na sliki se izvaja v ločeni funkciji, kar pomeni, da se od začetka

procesiranja pa do konca procesiranja ene slike skozi njo sprehodimo 13 krat. Z

združenjem večjih funkcij lahko ta čas zmanjšamo.

Algoritem prepozna vse združene piksle kot eden objekt. Ker je bila testna kamera

postavljena na višini 5 m pod kotom 30°, se je velikokrat zgodilo, da so se osebe na

parkirišču prekrivale ena z drugo, kar pa je povzročilo, da je algoritem več oseb prepoznal

kot en sam objekt. Problemu se lahko izognemo tako, da kamero postavimo vertikalno

glede na sneman prehod in se tako izognemo prekrivanju večih oseb. Druga možna rešitev

pa je, da glede na višino postavljene kamere točno določimo, kakšno površino na sliki

predstavlja človek. Nato ob prečkanju cone preverimo površino objekta. Če je površina

večkratnik površine človeka, enostavno prištejemo to vrednost k vhodom/izhodom cone.

Prednost razvitega sistema štetja prehodov je, da ga lahko brez dodatnih posegov v

infrastrukturo objekta, kjer želimo izvajati štetje ljudi, implementiramo s pomočjo že

obstoječih video nadzornih kamer. Potrebujemo samo dovolj zmogljiv računalnik ter

dostop do kamer.

Page 66: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 48 Klemen Grosek, Diplomsko delo

Razvit sistem omogoča zelo veliko možnosti uporabe ter razširitev.

Pri štetju prečkanja con bi si lahko v bazo podatkov shranjevali tudi slike ali video

posnetke. Tako bi naš sistem deloval tudi kot nekakšen video nadzorni center, kjer bi imeli

za vsak prehod sliko (ali video posnetek), na podlagi katere bi lahko prepoznavali razne

nepridiprave.

Aplikaciji bi lahko dodali funkcijo za spremljanje gostote gibanja. Tako bi lahko, npr. v

trgovskem centru, ugotovili vzorec gibanja obiskovalcev. Na podlagi rezultatov bi lahko

projektanti centra ugotavljali, ali je bil trgovski center sprojektiran za prinašanje največjega

dobička. Trgovci bi si lahko tako izbrali lokacijo trgovine, kjer je največja gostota gibanja

ter tako povečali svoj profit.

Razvito aplikacijo lahko uporabimo ne samo za štetje ljudi, ampak tudi za štetje prometa,

raznih predmetov na tekočem traku, skratka povsod, kjer lahko kaj štejemo.

Page 67: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 49

6 LITERATURA

[1]

Aurelio Campilho, Mohamed Kamel, Image Analysis and Recognition, 5th International

Conference, ICIAR, 2008.

[2]

About Borland Delphi programming,

http://delphi.about.com/

Navodila in primeri za razvojno orodje Delphi.

[3]

The Hypermedia Image Processing Reference,

http://homepages.inf.ed.ac.uk/rbf/HIPR2/hipr_top.htm

Opisi in primeri operacij na digitalni sliki.

[4]

SANYO Electric Co.,

http://us.sanyo.com/dynamic/product/Downloads/VCC-HD2xxxFlyer_NTSC-

23657578.pdf

Karakteristike kamere Sanyo HD 2100P.

[5]

Utkarsh Sinha,

http://www.aishack.in/2010/03/labelling-connected-components-example/

Primer operacije CCL.

Page 68: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 50 Klemen Grosek, Diplomsko delo

[6]

Irisys company,

http://www.iaaf.uwa.edu.au/imageanalysis1.html

Karakteristike termičnega števca Isisys.

[7]

Delphi Land,

http://www.festra.com/wwwboard/messages/13154.html

Primer merjenja časa procesiranja kode.

[8]

Wikipedia – prosta enciklopedija,

http://en.wikipedia.org/wiki/Power_over_Ethernet

Opis delovanja PoE napajanja.

[9]

Wikipedia – prosta enciklopedija,

http://en.wikipedia.org/wiki/RGB_color_model

Opis RGB barvnega modela.

Page 69: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 51

7 PRILOGE

7.1 Seznam slik

Slika 2.1: IR števec s prikazovalnikom prehodov ................................................................. 4

Slika 2.2: Termični števec ..................................................................................................... 4

Slika 2.3: Grafični vmesnik termičnega števca Irisys ........................................................... 4

Slika 2.4: IP kamera Sanyo HD 2100P ................................................................................. 6

Slika 2.5: 3D barvna kocka.................................................................................................... 9

Slika 2.6: RGB barvni model .............................................................................................. 10

Slika 2.7: Razpored pikslov na različnih prikazovalnikih ................................................... 10

Slika 2.8: Pretvorba v sivinsko sliko ................................................................................... 11

Slika 3.1: Slika ozadja ......................................................................................................... 14

Slika 3.2: Trenutna slika ...................................................................................................... 14

Slika 3.3: Slika razlik .......................................................................................................... 14

Slika 3.4: Sivinska slika pred (a) ter po median filtriranju (b) ........................................... 16

Slika 3.5: Črno-bela slika pred (a) ter po median filtriranju (b) .......................................... 16

Slika 3.6: Slika razlik .......................................................................................................... 17

Slika 3.7: Prečiščena slika ................................................................................................... 17

Slika 3.8: Črno-bela slika pred (a) ter po dilatacijskem filtriranju (b) ................................ 18

Slika 3.9: Okvir slike pred (a) ter po dilatacijskem filtriranju (b) ...................................... 18

Slika 3.10: Pred dilatacijskim filtriranjem ........................................................................... 19

Slika 3.11: Po dilatacijskem filtriranju ter izločitvi manjših objektov ................................ 19

Slika 3.12: Primer slike z objekti ........................................................................................ 20

Slika 3.13: Slika z obarvanimi objekti ................................................................................ 21

Slika 3.14: CCL, korak 1 ..................................................................................................... 21

Slika 3.15: CCL, korak 2 ..................................................................................................... 22

Slika 3.16: CCL, korak 3 ..................................................................................................... 22

Page 70: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Stran 52 Klemen Grosek, Diplomsko delo

Slika 3.17: CCL, korak 4 ..................................................................................................... 23

Slika 3.18: CCL, korak 5 ..................................................................................................... 23

Slika 3.19: CCL, korak 9 ..................................................................................................... 24

Slika 3.20: CCL, korak 10 ................................................................................................... 24

Slika 3.21: CCL, korak 11 ................................................................................................... 25

Slika 3.22: CCL, korak 12 ................................................................................................... 25

Slika 3.23: CCL, korak 13 ................................................................................................... 26

Slika 3.24: Končana slika .................................................................................................... 26

Slika 3.25: Slika objektov prejšnje iteracije (a), trenutna slika objektov (b) ...................... 27

Slika 3.26: Prekrivanje objektov ......................................................................................... 28

Slika 3.27: Slika objektov prejšnje iteracije (a), trenutna slika objektov s pravilno

označenimi objekti (b) ......................................................................................................... 28

Slika 3.28: Sledenje objektu ................................................................................................ 29

Slika 3.29: Cona štetja ......................................................................................................... 30

Slika 3.30: Tabela podatkov ................................................................................................ 32

Slika 3.31: Graf prehodov ................................................................................................... 33

Slika 4.1: Postavitev kamere ............................................................................................... 35

Slika 4.2: Nastavitev parametrov v aplikaciji ...................................................................... 37

Slika 4.3: Določitev cone štetja ........................................................................................... 38

Slika 4.4: Primer enojnega prehoda ..................................................................................... 38

Slika 4.5: Primer dvojnega prehoda .................................................................................... 39

Slika 4.6: Napačna prepoznava ........................................................................................... 39

Slika 4.7: Proces prepoznave ............................................................................................... 40

Slika 4.8: Prehod štirih objektov ......................................................................................... 40

Slika 4.9: Grafični prikaz prehodov .................................................................................... 41

Slika 4.10: Baza podatkov ................................................................................................... 41

Slika 4.11: Dve definirani coni ............................................................................................ 42

Slika 4.12: Enojni prehod .................................................................................................... 43

Slika 4.13: Dvojni prehod .................................................................................................... 43

Slika 4.14: Grupiranje objektov .......................................................................................... 44

Slika 4.15: Prehod štirih objektov ....................................................................................... 44

Slika 4.16: Graf prehodov cone 1 ........................................................................................ 45

Page 71: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev

Štetje pešcev s pomočjo računalniškega vida Stran 53

Slika 4.17: Graf prehodov cone 2 ........................................................................................ 45

7.2 Seznam tabel

Tabela 2.1: Lastnosti PoE standarda...................................................................................... 7

Tabela 2.2: Tehnične lastnosti kamere .................................................................................. 8

Tabela 4.1: Rezultati analize hitrosti algoritma ................................................................... 36

Tabela 4.2: Rezultati štetja prehodov pešcev preizkusa 1 ................................................... 42

Tabela 4.3: Rezultati prehodov poizkusa 2 ......................................................................... 45

7.3 Naslov študenta

Klemen Grosek

Pot k ribniku 20

3252 Rogatec

Tel.: 041 765 502

e-mail: [email protected]

7.4 Kratek življenjepis

Rojen: 3. 10. 1986 v Celju

Šolanje: 1993–2001 osnovna šola Rogatec

2001–2005 Šolski center Celje, Poklicna in tehniška elektro in kemijska

šola

2005–2011 Fakulteta za elektrotehniko, računalništvo in informatiko

Maribor

2008 Sabanci Universitesi, Istanbul Turčija, študentska izmenjava,

zimski semester

Page 72: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 73: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 74: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev
Page 75: ŠTETJE PEŠCEV S POMO ČJO RA ČUNALNIŠKEGA VIDA · hitrost in to čnost razvitega algoritma. Peto poglavje je namenjeno zaklju čku diplomskega dela in sklepu. Štetje pešcev