Niewykorzystane możliwości monitoringu...

48
POLITECHNIKA KRAKOWSKA im. Tadeusza Kościuszki Wydzial Inżynierii Środowiska Instytut Inżynierii i Gospodarki Wodnej Patryk Glowacki Niewykorzystane możliwości monitoringu wizyjnego Praca inżynierska Studia Stacjonarne I stopnia Kierunek studiów: Gospodarka przestrzenna Specjalność: Praca wykonana pod kierunkiem: dr inż. Robert Szczepanek Recenzent: dr hab.inż. Wieslaw Gądek, prof.PK Ocena pracy: ........................ Nr pracy: 2853 Kraków, 2018

Transcript of Niewykorzystane możliwości monitoringu...

POLITECHNIKA KRAKOWSKA im Tadeusza KościuszkiWydział Inżynierii Środowiska

Instytut Inżynierii i Gospodarki Wodnej

Patryk Głowacki

Niewykorzystane możliwości monitoringuwizyjnego

Praca inżynierska

Studia Stacjonarne I stopniaKierunek studioacutew Gospodarka przestrzenna

Specjalność ndash

Praca wykonana pod kierunkiemdr inż Robert Szczepanek

Recenzentdr habinż Wiesław Gądek profPK

Ocena pracy Nr pracy 2853

Krakoacutew 2018

Pracę tę dedykujęmojej żonie Małgorzacie w podziękowaniu za nieustanne wsparcie

Spis treści

Spis treści i

1 Wstęp 111 Wstęp 112 Cel pracy 1

2 Monitoring miejski 321 Czym jest system monitoringu 322 Monitoring wizyjny na świecie i w Polsce 423 Wykorzystanie monitoringu 5

3 Przetwarzanie obrazoacutew 731 Podstawowe pojęcia 732 Histogram zorientowanych gradientoacutew 1033 Klasyfikator SVM 11

4 Biblioteka OpenCV 13

5 Źroacutedła obrazoacutew 17

6 Metody 1961 Koncepcja wykorzystania 1962 Schemat programu 2163 Wyboacuter kamery i warunki pogodowe 2464 Algorytm programu AROCV 25

7 Analiza wynikoacutew i podsumowanie 3171 Błędy detekcji 3672 Podsumowanie 37

8 Wnioski 39

Bibliografia 41

i

Spis rysunkoacutew 43

Spis tabel 44

ii

Rozdział 1

Wstęp

11 Wstęp

Miejski monitoring wizyjny staje się popularniejszym narzędziem wykorzystywa-nym przez władze polskich miast Odpowiednio skonstruowany system może przynieśćefekty w postaci większego poczucia bezpieczeństwa mieszkańcoacutew i zmniejszenia licz-by popełnianych przestępstw Wymienione korzyści wynikają z możliwości wczesnegoreagowania i prewencji a także podejmowania działań dążących do lepszego funkcjo-nowania miasta Systemy monitoringu mogą znaleźć zastosowanie roacutewnież w takichdziedzinach jak gospodarka przestrzenna i infrastruktura transportowa w ktoacuterych toich potencjał jest ogromny

W miastach codziennie spotykamy się z wieloma problemami komunikacyjnymiwynikającymi z trudność szybkiego zlokalizowania miejsc problemowych przez służbya także stosowanie nieprzemyślanych rozwiązań Wykorzystanie kamer jako dodatko-wych par oczu może znacznie ułatwić zarządzanie przestrzenią miejską przez zauto-matyzowanie wielu procesoacutew

12 Cel pracy

Celem pracy jest przedstawienie koncepcji wykorzystania systemoacutew monitoringuwizyjnego za pomocą narzędzi przetwarzania obrazu W pracy skupiono się na za-stosowaniu systemu do automatycznego typowania nieprawidłowo zaprojektowanychprzejść dla pieszych

1

Rozdział 2

Monitoring miejski

21 Czym jest system monitoringu

Monitoring miejski często nazywany potocznie mianem miejskiego bdquoBig Brotherardquojest to system monitoringu wizyjnego składającego się z milionoacutew kamer na całym świe-cie ktoacutere non stop pracują i obserwują miasta (rys1) System tworzony jest w celupoprawy poziomu bezpieczeństwa mieszkańcoacutew poprzez możliwość wczesnego reago-wania w sytuacjach awaryjnych co jednocześnie ma na celu zmniejszenie przestępczościw miejscach gdzie jest stosowany Wraz z rozwojem technologii cyfrowej służby miej-skie otrzymują nowe możliwości Obecnie obserwuje się tendencję do projektowaniazintegrowanych systemoacutew monitoringu wizyjnego

Rysunek 1 Kamera monitoringu wizyjnego CCTV

Źroacutedło httpswwwvivotekcom

3

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Pracę tę dedykujęmojej żonie Małgorzacie w podziękowaniu za nieustanne wsparcie

Spis treści

Spis treści i

1 Wstęp 111 Wstęp 112 Cel pracy 1

2 Monitoring miejski 321 Czym jest system monitoringu 322 Monitoring wizyjny na świecie i w Polsce 423 Wykorzystanie monitoringu 5

3 Przetwarzanie obrazoacutew 731 Podstawowe pojęcia 732 Histogram zorientowanych gradientoacutew 1033 Klasyfikator SVM 11

4 Biblioteka OpenCV 13

5 Źroacutedła obrazoacutew 17

6 Metody 1961 Koncepcja wykorzystania 1962 Schemat programu 2163 Wyboacuter kamery i warunki pogodowe 2464 Algorytm programu AROCV 25

7 Analiza wynikoacutew i podsumowanie 3171 Błędy detekcji 3672 Podsumowanie 37

8 Wnioski 39

Bibliografia 41

i

Spis rysunkoacutew 43

Spis tabel 44

ii

Rozdział 1

Wstęp

11 Wstęp

Miejski monitoring wizyjny staje się popularniejszym narzędziem wykorzystywa-nym przez władze polskich miast Odpowiednio skonstruowany system może przynieśćefekty w postaci większego poczucia bezpieczeństwa mieszkańcoacutew i zmniejszenia licz-by popełnianych przestępstw Wymienione korzyści wynikają z możliwości wczesnegoreagowania i prewencji a także podejmowania działań dążących do lepszego funkcjo-nowania miasta Systemy monitoringu mogą znaleźć zastosowanie roacutewnież w takichdziedzinach jak gospodarka przestrzenna i infrastruktura transportowa w ktoacuterych toich potencjał jest ogromny

W miastach codziennie spotykamy się z wieloma problemami komunikacyjnymiwynikającymi z trudność szybkiego zlokalizowania miejsc problemowych przez służbya także stosowanie nieprzemyślanych rozwiązań Wykorzystanie kamer jako dodatko-wych par oczu może znacznie ułatwić zarządzanie przestrzenią miejską przez zauto-matyzowanie wielu procesoacutew

12 Cel pracy

Celem pracy jest przedstawienie koncepcji wykorzystania systemoacutew monitoringuwizyjnego za pomocą narzędzi przetwarzania obrazu W pracy skupiono się na za-stosowaniu systemu do automatycznego typowania nieprawidłowo zaprojektowanychprzejść dla pieszych

1

Rozdział 2

Monitoring miejski

21 Czym jest system monitoringu

Monitoring miejski często nazywany potocznie mianem miejskiego bdquoBig Brotherardquojest to system monitoringu wizyjnego składającego się z milionoacutew kamer na całym świe-cie ktoacutere non stop pracują i obserwują miasta (rys1) System tworzony jest w celupoprawy poziomu bezpieczeństwa mieszkańcoacutew poprzez możliwość wczesnego reago-wania w sytuacjach awaryjnych co jednocześnie ma na celu zmniejszenie przestępczościw miejscach gdzie jest stosowany Wraz z rozwojem technologii cyfrowej służby miej-skie otrzymują nowe możliwości Obecnie obserwuje się tendencję do projektowaniazintegrowanych systemoacutew monitoringu wizyjnego

Rysunek 1 Kamera monitoringu wizyjnego CCTV

Źroacutedło httpswwwvivotekcom

3

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Spis treści

Spis treści i

1 Wstęp 111 Wstęp 112 Cel pracy 1

2 Monitoring miejski 321 Czym jest system monitoringu 322 Monitoring wizyjny na świecie i w Polsce 423 Wykorzystanie monitoringu 5

3 Przetwarzanie obrazoacutew 731 Podstawowe pojęcia 732 Histogram zorientowanych gradientoacutew 1033 Klasyfikator SVM 11

4 Biblioteka OpenCV 13

5 Źroacutedła obrazoacutew 17

6 Metody 1961 Koncepcja wykorzystania 1962 Schemat programu 2163 Wyboacuter kamery i warunki pogodowe 2464 Algorytm programu AROCV 25

7 Analiza wynikoacutew i podsumowanie 3171 Błędy detekcji 3672 Podsumowanie 37

8 Wnioski 39

Bibliografia 41

i

Spis rysunkoacutew 43

Spis tabel 44

ii

Rozdział 1

Wstęp

11 Wstęp

Miejski monitoring wizyjny staje się popularniejszym narzędziem wykorzystywa-nym przez władze polskich miast Odpowiednio skonstruowany system może przynieśćefekty w postaci większego poczucia bezpieczeństwa mieszkańcoacutew i zmniejszenia licz-by popełnianych przestępstw Wymienione korzyści wynikają z możliwości wczesnegoreagowania i prewencji a także podejmowania działań dążących do lepszego funkcjo-nowania miasta Systemy monitoringu mogą znaleźć zastosowanie roacutewnież w takichdziedzinach jak gospodarka przestrzenna i infrastruktura transportowa w ktoacuterych toich potencjał jest ogromny

W miastach codziennie spotykamy się z wieloma problemami komunikacyjnymiwynikającymi z trudność szybkiego zlokalizowania miejsc problemowych przez służbya także stosowanie nieprzemyślanych rozwiązań Wykorzystanie kamer jako dodatko-wych par oczu może znacznie ułatwić zarządzanie przestrzenią miejską przez zauto-matyzowanie wielu procesoacutew

12 Cel pracy

Celem pracy jest przedstawienie koncepcji wykorzystania systemoacutew monitoringuwizyjnego za pomocą narzędzi przetwarzania obrazu W pracy skupiono się na za-stosowaniu systemu do automatycznego typowania nieprawidłowo zaprojektowanychprzejść dla pieszych

1

Rozdział 2

Monitoring miejski

21 Czym jest system monitoringu

Monitoring miejski często nazywany potocznie mianem miejskiego bdquoBig Brotherardquojest to system monitoringu wizyjnego składającego się z milionoacutew kamer na całym świe-cie ktoacutere non stop pracują i obserwują miasta (rys1) System tworzony jest w celupoprawy poziomu bezpieczeństwa mieszkańcoacutew poprzez możliwość wczesnego reago-wania w sytuacjach awaryjnych co jednocześnie ma na celu zmniejszenie przestępczościw miejscach gdzie jest stosowany Wraz z rozwojem technologii cyfrowej służby miej-skie otrzymują nowe możliwości Obecnie obserwuje się tendencję do projektowaniazintegrowanych systemoacutew monitoringu wizyjnego

Rysunek 1 Kamera monitoringu wizyjnego CCTV

Źroacutedło httpswwwvivotekcom

3

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Spis rysunkoacutew 43

Spis tabel 44

ii

Rozdział 1

Wstęp

11 Wstęp

Miejski monitoring wizyjny staje się popularniejszym narzędziem wykorzystywa-nym przez władze polskich miast Odpowiednio skonstruowany system może przynieśćefekty w postaci większego poczucia bezpieczeństwa mieszkańcoacutew i zmniejszenia licz-by popełnianych przestępstw Wymienione korzyści wynikają z możliwości wczesnegoreagowania i prewencji a także podejmowania działań dążących do lepszego funkcjo-nowania miasta Systemy monitoringu mogą znaleźć zastosowanie roacutewnież w takichdziedzinach jak gospodarka przestrzenna i infrastruktura transportowa w ktoacuterych toich potencjał jest ogromny

W miastach codziennie spotykamy się z wieloma problemami komunikacyjnymiwynikającymi z trudność szybkiego zlokalizowania miejsc problemowych przez służbya także stosowanie nieprzemyślanych rozwiązań Wykorzystanie kamer jako dodatko-wych par oczu może znacznie ułatwić zarządzanie przestrzenią miejską przez zauto-matyzowanie wielu procesoacutew

12 Cel pracy

Celem pracy jest przedstawienie koncepcji wykorzystania systemoacutew monitoringuwizyjnego za pomocą narzędzi przetwarzania obrazu W pracy skupiono się na za-stosowaniu systemu do automatycznego typowania nieprawidłowo zaprojektowanychprzejść dla pieszych

1

Rozdział 2

Monitoring miejski

21 Czym jest system monitoringu

Monitoring miejski często nazywany potocznie mianem miejskiego bdquoBig Brotherardquojest to system monitoringu wizyjnego składającego się z milionoacutew kamer na całym świe-cie ktoacutere non stop pracują i obserwują miasta (rys1) System tworzony jest w celupoprawy poziomu bezpieczeństwa mieszkańcoacutew poprzez możliwość wczesnego reago-wania w sytuacjach awaryjnych co jednocześnie ma na celu zmniejszenie przestępczościw miejscach gdzie jest stosowany Wraz z rozwojem technologii cyfrowej służby miej-skie otrzymują nowe możliwości Obecnie obserwuje się tendencję do projektowaniazintegrowanych systemoacutew monitoringu wizyjnego

Rysunek 1 Kamera monitoringu wizyjnego CCTV

Źroacutedło httpswwwvivotekcom

3

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 1

Wstęp

11 Wstęp

Miejski monitoring wizyjny staje się popularniejszym narzędziem wykorzystywa-nym przez władze polskich miast Odpowiednio skonstruowany system może przynieśćefekty w postaci większego poczucia bezpieczeństwa mieszkańcoacutew i zmniejszenia licz-by popełnianych przestępstw Wymienione korzyści wynikają z możliwości wczesnegoreagowania i prewencji a także podejmowania działań dążących do lepszego funkcjo-nowania miasta Systemy monitoringu mogą znaleźć zastosowanie roacutewnież w takichdziedzinach jak gospodarka przestrzenna i infrastruktura transportowa w ktoacuterych toich potencjał jest ogromny

W miastach codziennie spotykamy się z wieloma problemami komunikacyjnymiwynikającymi z trudność szybkiego zlokalizowania miejsc problemowych przez służbya także stosowanie nieprzemyślanych rozwiązań Wykorzystanie kamer jako dodatko-wych par oczu może znacznie ułatwić zarządzanie przestrzenią miejską przez zauto-matyzowanie wielu procesoacutew

12 Cel pracy

Celem pracy jest przedstawienie koncepcji wykorzystania systemoacutew monitoringuwizyjnego za pomocą narzędzi przetwarzania obrazu W pracy skupiono się na za-stosowaniu systemu do automatycznego typowania nieprawidłowo zaprojektowanychprzejść dla pieszych

1

Rozdział 2

Monitoring miejski

21 Czym jest system monitoringu

Monitoring miejski często nazywany potocznie mianem miejskiego bdquoBig Brotherardquojest to system monitoringu wizyjnego składającego się z milionoacutew kamer na całym świe-cie ktoacutere non stop pracują i obserwują miasta (rys1) System tworzony jest w celupoprawy poziomu bezpieczeństwa mieszkańcoacutew poprzez możliwość wczesnego reago-wania w sytuacjach awaryjnych co jednocześnie ma na celu zmniejszenie przestępczościw miejscach gdzie jest stosowany Wraz z rozwojem technologii cyfrowej służby miej-skie otrzymują nowe możliwości Obecnie obserwuje się tendencję do projektowaniazintegrowanych systemoacutew monitoringu wizyjnego

Rysunek 1 Kamera monitoringu wizyjnego CCTV

Źroacutedło httpswwwvivotekcom

3

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 2

Monitoring miejski

21 Czym jest system monitoringu

Monitoring miejski często nazywany potocznie mianem miejskiego bdquoBig Brotherardquojest to system monitoringu wizyjnego składającego się z milionoacutew kamer na całym świe-cie ktoacutere non stop pracują i obserwują miasta (rys1) System tworzony jest w celupoprawy poziomu bezpieczeństwa mieszkańcoacutew poprzez możliwość wczesnego reago-wania w sytuacjach awaryjnych co jednocześnie ma na celu zmniejszenie przestępczościw miejscach gdzie jest stosowany Wraz z rozwojem technologii cyfrowej służby miej-skie otrzymują nowe możliwości Obecnie obserwuje się tendencję do projektowaniazintegrowanych systemoacutew monitoringu wizyjnego

Rysunek 1 Kamera monitoringu wizyjnego CCTV

Źroacutedło httpswwwvivotekcom

3

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

22 Monitoring wizyjny na świecie i w Polsce

Monitoring wizyjny stale się rozwija kamery rejestrują obraz w lepszej jakościa systemy stosowane w miastach monitorują coraz większe strefy Państwem ucho-dzącym zz najbardziej monitorowany kraj na świecie jest Wielka Brytania Znajdujesię tam blisko 4 miliony kamer natomiast w samym Londynie jest ich 1 milion [10]Kolejnym państwem o ktoacuterym należy wspomnieć są Chiny Obecnie budowany jesttam największy na świecie system nadzorujący W Chinach zainstalowanych jest około170 milionoacutew a planowane jest umieszczenie dodatkowo 400 milionoacutew kamer w ciągutrzech lat W mieście Guiyang z 10 tysiącami kamer służby posiadają bazę ze zdjęciamikażdego obywatela system potrafi zidentyfikować osobę wiek płeć [2]

W Polsce systemy monitoringu nie są aż tak bardzo rozbudowane liczby kamerw wybranych pięciu miastach (rys2) wyglądają następująco

bull Warszawa - 423 [21]

bull Poznań - 510 [18]

bull Gdańsk - 293 [8]

bull Krakoacutew - 71 oraz 350 kamer zainstalowanych przez spoacutełdzielnie mieszkaniowe [12]

bull Lublin - 445 [14]

Rysunek 2 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach

4

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Inne polskie miasta roacutewnież posiadają monitoring wizyjny Istnieją systemy obsłu-giwane przez roacuteżne służby miejskie co istotnie wpływa na trudność w uzyskaniu infor-macji o konkretnych liczbach w poszczegoacutelnych miejscowościach Takie dane zazwyczajnie są ogoacutelnodostępne jak w przypadku wyżej wymienionego Gdańska Poznania Kra-kowa Lublina i Warszawy

23 Wykorzystanie monitoringu

Głoacutewnym założeniem monitoringu wizyjnego jest wspomaganie bezpieczeństwa naterenie w ktoacuterym system pracuje Umożliwia obserwacje obrazoacutew z kamer a także ichrejestrację do poacuteźniejszego wykorzystania Systemy kamer są popularnym środkiemstosowanym w celach ochrony mieszkańcoacutew i przestrzeni publicznej Kierunki rozwojui wykorzystania monitoringu dotyczą głoacutewnie kwestii bezpieczeństwa społecznego orazzastosowaniu w infrastrukturze drogowej Efektem jest skrajnie ograniczony dostęp doogromnych zasoboacutew wizyjnych co istotnie zawęża zakres możliwości jego wykorzysta-nia głoacutewnie dla kwestii bezpieczeństwa społecznego i drogowego W wyniku ograni-czeń potencjalny materiał ktoacutery moacutegłby być wykorzystany do wielu analiz przyczy-niających się do rozwoju tkanki miejskiej przepada Uświadomienie władz miejskicho prawdziwym potencjale monitoringu wizyjnego otworzyłoby nowe horyzonty na wie-lokierunkowość jego wykorzystania Dostęp do nieustannie magazynowanych zasoboacutewwizyjnych pochodzących z setek kamer moacutegłby zostać udostępniony dla konkretnychinstytucji pod konkretne działania Wprowadziłoby to wiele możliwości zastosowaniaw celu pozyskiwania informacji do roacuteżnorodnych analiz i badań na potrzeby planowa-nia miejskiego

5

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 3

Przetwarzanie obrazoacutew

31 Podstawowe pojęcia

Przetwarzanie obrazoacutew jest analizowaniem ich zawartości i cech Dotyczy wszelkichoperacji wykonywanych na obrazach min redukcja szumoacutew rozjaśnianie wyostrzanieczy w końcu detekcja obiektoacutew Stosowane jest w medycynie robotyce przemyśle infor-matyce czy geodezji Nie jest to granica możliwości Interesującym obszarem w ktoacuterymprzetwarzanie obrazoacutew może znaleźć swoje zastosowanie jest wspomniana na wstępiepracy gospodarka przestrzenna

Systemy wizji komputerowej dokonują obroacutebki obrazoacutew etapowo Wyroacuteżnić możemynastępujące etapy (rys3)

Rysunek 3 Schemat przetwarzania obrazoacutew

Na podstawie rdquoPrzetwarzanie obrazoacutewrdquo [6]

1 Akwizycja ndash inaczej pozyskiwanie obrazoacutew Jest to przetworzenie obrazu fizycz-nego do postaci cyfrowej czyli macierzy pikseli

2 Filtracja ndash poprawia jakość pozyskanego obrazu co jest istotnym elementemw kolejnych etapach obroacutebki Poprawa następuje przez usunięcie zbędnych szumoacutewlub rozmycie obrazu Efekt filtracji jest zależny od zastosowanego filtra Wyroacuteżniamynastępujące filtry [23]

bull dolnoprzepustowe ndash usuwanie elementoacutew obrazu o wysokiej częstotliwości z jed-

7

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

noczesnym przepuszczaniem fragmentoacutew o częstotliwości niskiej Filtry dolno-przepustowe wykorzystywane są zazwyczaj w eliminacji zakłoacuteceń

bull goacuternoprzepustowe ndash mają odwrotne działanie w stosunku do filtroacutew goacuternoprze-pustowych usuwają elementy obrazu o częstotliwościach niskich a przepuszczająte o częstotliwościach wysokich Zazwyczaj efektem jest zwiększenie kontrastu

bull statyczne ndash sortowanie pikseli obrazu źroacutedłowego efektem jest wyboacuter wartościśrodkowej maksymalnej lub minimalnej

bull medianowy ndash stosowany jest w celu usunięcia zakłoacuteceń punktowych przy jedno-czesnej minimalnej utracie na jakości obrazu

bull maksymalny i minimalny ndash działanie polega na wybraniu z pod maski obrazupunktu o wartości najmniejszej lub największej Przy filtrze minimalnym otrzy-mujemy zjawisko erozji(zmniejszenie) wielkości obiektoacutew oraz jasności obrazunatomiast filtr maksymalny powoduje dylatację(powiększenie) i zwiększenie ja-sności

3 Segmentacja ndash obraz jest dzielony na spoacutejne fragmenty(ten sam kolor jasnośćpodobna tekstura bez wyraźnej granicy) posiadające pewne roacuteżnice Jest to roacutewnieżwyodrębnienie z tła interesujących nas obiektoacutew Segmentacja dzieli się na dwa rodzajeobszarową i konturową Pierwsza opiera się na prawdopodobieństwie wewnątrz obsza-roacutew w wyniku segmentacji obszarowej otrzymujemy zbioacuter pikseli ktoacutere nie posiadająmiędzy sobą znacznych roacuteżnic W segmentacji konturowej wynik to zbioacuter krawędziw ktoacuterych piksele roacuteżnią się poprzecznie [3]

Rysunek 4 Wynik segmentacji

Źroacutedło httpsopencv-python-tutroalsreadthedocsio

4 Wyznaczenie cech ndash w tym etapie każdy z wyszczegoacutelnionych obiektoacutew jestopisany odpowiednimi parametrami inaczej cechami [20]

8

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

5 Klasyfikacja ndash inaczej rozpoznanie obrazu Odbywa się klasyfikowanie typoacutewwykrytych obiektoacutew w poszczegoacutelnych klasach zależnie od ich cech W skroacutecie rozpo-znanie czy obiekt jest przedmiotem pojazdem lub człowiekiem Narzędziem klasyfika-cji jest algorytm czyli tzw klasyfikator Do klasyfikacji obrazoacutew wykorzystywane jestuczenie maszynowe [22]

9

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

32 Histogram zorientowanych gradientoacutew

Histogramy zorientowanych gradientoacutew w skroacutecie HOG (ang Histograms of Orien-ted Gradients) są deskryptorami obrazu umożliwiającymi odnalezienie obiektoacutew na ob-razie poprzez opisanie kształtu [22] Działanie HOG wykorzystuje kolor dominujący tłana ktoacuterym wykrywane są określone obiekty poprzez wyszukiwanie fragmentoacutew obrazuw ktoacuterych przejście między kolorami nie jest płynne Deskryptory HOG są uzyskiwanepoprzez

bull podział obrazu na małe fragmenty

bull obliczenie histogramu występowania orientacji krawędzi

bull połączenie uzyskanych histogramoacutew dla wszystkich fragmentoacutew

Badania dowiodły [5] że wstępne przetwarzanie jakości obrazu nie prowadzi dolepszego działania deskryptora Zabieg stosowany z powodzeniem to normalizacja kon-trastu ktoacutera jest używana po grupowaniu fragmentoacutew obrazu w bloki

Rysunek 5 Schemat działania deskryptora HOG

Na podstawie rdquoSystem rozpoznawania cyfr oparty na histogramie zorientowanych gra-dientoacutewrdquo [22]

10

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

33 Klasyfikator SVM

Klasyfikator SVM (ang Support Vector Machine) czyli metoda wektoroacutew nośnychjest techniką uczenia maszynowego stosowaną w celu analizy danych i klasyfikacjiKlasyfikator wyznacza hiperpłaszczyznę rozdzielającą maksymalnym marginesem da-ne należące do dwoacutech roacuteżnych klas (rys6) Faza uczenia SVM odbywa się po przezprzedstawianie obrazoacutew pozytywnych i negatywnych [11] czyli zawierających obiektdocelowy i takich na ktoacuterych go nie ma Klasyfikator wytrenowany na potrzeby nasze-go programu dotyczy detekcji ludzi jest on jedną z funkcji biblioteki OpenCV zatemw pracy korzystamy z gotowego klasyfikatora do detekcji osoacuteb

Rysunek 6 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną

11

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 4

Biblioteka OpenCV

Biblioteka OpenCV jest darmowym narzędziem przetwarzania obrazu Początkimają miejsce w 1999 roku została ona woacutewczas stworzona przez firmę Intel OpenCVbazuje na licencji BSD umożliwiającej korzystanie z narzędzia zaroacutewno w celach ko-mercyjnych i naukowych Została napisana w języku programowania C i C++ korzy-stać z niej można w wielu innych językach takich jak Python C Matlab oraz JavaOpenCV wspoacutełpracuje z podstawowymi systemami operacyjnymi jak Windows MacOS X czy Linux Jednym z założeń biblioteki jest możliwość tworzenia oprogramowa-nia do prostych i zaawansowanych projektoacutew Oferuje szereg funkcji a wykorzystywa-na jest w takich projektach jak rdquoGoogle Mapsrdquo rdquoGoogle Street Viewrdquo bezzałogowesamoloty pojazdy autonomiczne oraz urządzenia przeznaczone do detekcji obiektoacutewJeżeli połączymy systemy monitoringu wizyjnego z narzędziami przetwarzania obrazujak OpenCV możemy uzyskać olbrzymi zasoacuteb danych do wykorzystania w poacuteźniejszejpracy i badaniach

Biblioteka OpenCV jest w pełni darmowa Twoacuterca firma Intel jest producentemkomponentoacutew do komputeroacutew w tym procesoroacutew Biblioteka pomaga w tworzeniu apli-kacji o wysokich wymaganiach sprzętowych Zabieg z wypuszczeniem oprogramowaniaopensource moacutegł się przyczynić do wzrostu popytu na ich procesory o dużej mocy obli-czeniowej Tak też się stało OpenCV od momentu udostępnienia na rynek do stycznia2018 roku zostało pobrane już 16 736 983 razy (dane z dn 10012018) (rys7)

Pierwsza wersja rdquoalphardquo została zaprezentowana w 2000 roku na konferencji IE-EE nt Wizji Komputerowej i Rozpoznawania Wzorcoacutew pierwsza wersja do użytkupublicznego 10 została udostępniona w 2006 roku do dnia dzisiejszego powstało 29wersji OpenCV najnowsza tzn rdquo340rdquo ostatnią aktualizację miała 23 grudnia 2017roku Narzędzie jest na bieżąco aktualizowane i ulepszane co przy obecnym tempiepostępu techniki jest konieczne

Na potrzeby mojej pracy posłużyłem się najnowszą wersją OpenCV 340 Instala-tor biblioteki został pobrany z głoacutewnej strony projektu [17] na ktoacuterej jest możliwośćwyboru roacutewnież innych wersji Instalacja dotyczyła oprogramowania wspoacutełpracującego

13

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rysunek 7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r

Źroacutedło httpssourceforgenetprojectsopencvlibraryfilesstatstimelinedates=2001-12-29+to+2018-02-03

z systemem operacyjnym Windows 10 oraz językiem programowania Python Samotworzenie projektu odbyło się za pomocą pakietoacutew instalowanych przez środowiskoAnaconda

Python

Python jest językiem programistycznym wyroacuteżniającym się czytelnością i zwięzło-ścią kodu źroacutedłowego Python jest rozprowadzany na zasadzie otwartej licencji OSI(może być wykorzystywany przez osoby indywidualne i firmy) przez rdquoPython SoftwareFoundationrdquo będącą organizacją non-profit

Python jest popularnym środowiskiem wykorzystywanym przez takie instytucje i fir-my jak NASA Google Yahoo Nokia Poprzez połączenie Pythona i odpowiednichnarzędzi przetwarzania obrazu otrzymujemy możliwości operacji na obrazach przeka-zywanych z kamer monitoringu dzięki czemu możemy stworzyć program ktoacutery będziezaroacutewno uniwersalny oraz łatwy w zastosowaniu

Anaconda

Python może wspoacutełpracować z OpenCV dzięki temu połączeniu otwierają się roacuteż-ne możliwości jednakże do sprawnej pracy w naszym języku programowania potrzeb-ne jest IDE czyli proste środowisko programistyczne (z ang Integrated DevelopmentEnvironment)

Python oferuje podstawowy interpreter Jest on prosty i mało rozbudowany Pod-czas tworzenia bardziej zaawansowanych projektoacutew lepszym wyborem jest korzystaniez IDE dającego większe możliwości W tworzeniu mojego systemu posłużyłem się środo-wiskiem Anaconda (rys8) dającym możliwość łatwego instalowania kolejnych biblioteki pakietoacutew Anaconda oferuje szereg narzędzi takich jak Spyder ktoacutery jest edytoremdo tworzenia kodu źroacutedłowego programu

14

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rysunek 8 Panel głoacutewny programu Anaconda

Struktura biblioteki OpenCV

OpenCV złożony jest z czterech głoacutewnych komponentoacutew (rys9)CV oraz CVaux ndash są to komponenty ktoacutere zawierają funkcję transformacji filtry

funkcje selekcji detekcję krawędzi i obiektoacutew obsługę histogramoacutew kalibrację kameryobsługę scenerii 3D

MLL ndash Machine Learning Library biblioteki zawierające funkcję tworzenia klasy-fikatoroacutew oraz narzędzia grupowania

HighGUI ndash wejście i wyjście dla obrazoacutew i wideoCxCore ndash podstawowe struktury danych i algorytmy zawiera funkcje matematycz-

ne narzędzia rysowania wsparcie dla plikoacutew XML oraz wiele innych

Rysunek 9 Struktura komponentoacutew OpenCV

15

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 5

Źroacutedła obrazoacutew

Źroacutedłem obrazoacutew wykorzystanych w pracy były kamery monitoringu wizyjnegoznajdujące się w miastach Kamery miejskie podzielone są na te ktoacutere mają otwartydostęp i każdy może zobaczyć co w danym momencie rejestrują oraz kamery przezna-czone do użytku tylko przez określone instytucje takie jak policja czy straż miejskaObraz ktoacutery mogłem uzyskać i wykorzystać do pracy inżynierskiej pochodzi z ogoacutel-nodostępnych kamer Wgląd do obrazu przekazywanego z monitoringu można uzyskaćprzez takie serwisy jak

bull wwwwebcamerapl

bull gotoyanetpl

bull wwwworldcampl

bull wwwskylinewebcamscom

W serwisach udostępniony jest podgląd z kamer monitoringu w Polsce (webcame-rapl gotoyanetpl) i na całym świecie(worldcampl skylinewebcamscom) W mojejpracy skupiam się jednak nad obrazem pochodzącym z kamer znajdujących się w Pol-sce Do wyboru mamy kamery z wielu miejscowości znajdujących się w roacuteżnych lo-kalizacjach tj rynki place ulice skrzyżowania plaże stoki narciarskie itd Międzyposzczegoacutelnymi kamerami zauważalne są roacuteżnice w jakości wynikające z parametroacutewurządzeń rejestrujących Do celoacutew pracy konieczny był wyboacuter kamery monitoringu usy-tuowanej w otoczeniu przejścia dla pieszych z widoczną sygnalizacja świetlną Wyse-lekcjonowane zostały kamery z następujących lokalizacji (wszystkie pochodzą z serwisugotoyanetpl 10)

bull Kutno ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną

bull Pabianice ndash skrzyżowanie ul Traugutta z ul Zamkową

bull Braniewo ndash ul Kościuszki

17

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

bull Łoacutedź ndash skrzyżowanie ul Zielonej z ul Żeligowskiego

bull Przemyśl ndash Plac Konstytucji

Rysunek 10 Serwis wwwgotoyanetpl

18

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 6

Metody

W trakcie opracowywania programu korzystałem z artykułoacutew Adriana Rosenbrockdotyczących wykorzystania OpenCV oraz detekcji obiektoacutew na obrazach Autor naswoim blogu wwwpyimagesearchcom [19] publikuje artykuły związane min z wyko-rzystaniem Pythona i OpenCV do przetwarzania obrazoacutew Blog jest dedykowany dlainnych programistoacutew aby pomoacutec zrozumieć jak działają procesy związane z obroacutebkąobrazoacutew a algorytmy udostępniane na blogu są na licencji MIT dającej użytkownikomprawo do używania modyfikowania i rozpowszechniania treści Wielką zaletą publika-cji Rosenbrockrsquoa jest uczenie przez stosowanie konkretnych przykładoacutew łatwych w zro-zumieniu tak aby przedstawione przez niego wzorce moacutec wykorzystać we własnychpracach Wiele porad i pomaga skonstruować przejrzysty i prawidłowo funkcjonującyprogram

W pracy wykorzystane zostały roacutewnież informacje z serwisoacutew internetowych takichjak docsopencvorg w ktoacuterym możemy odnaleźć wiele instrukcji dotyczących pracy naobrazach z wykorzystaniem biblioteki OpenCV Ponadto możemy odnaleźć szczegoacutełoweopisy modułoacutew i funkcji oferowanych przez bibliotekę

Nieocenioną pomocą jest są internetowe fora tematyczne gdzie można otrzymaćrady i odpowiedzi rozwiązujące napotkane problemy związane z samym pisaniem pro-gramu

61 Koncepcja wykorzystania

W mojej pracy koncentruję się na problemie automatycznej detekcji źle zaprojekto-wanych przejść dla pieszych Każdego dnia na zdarzają się sytuacje dotyczące przejściapieszego na czerwonym świetle z powodu pośpiechu zbyt długiego czasu oczekiwa-nia na zamianę sygnalizacji lub wręcz przeciwnie zbyt szybkiej zmiany światła naczerwone co w wielu miejscach potrafi być problemem zwłaszcza dla osoacuteb starszychi niepełnosprawnych System ktoacutery przedstawię w mojej pracy przedstawia możliwośćautomatycznego wykrycia problemowych miejsc w ktoacuterych opisane sytuacje zdarzają

19

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

się zbyt często Użycie i rozpowszechnienie takiego systemu docelowo ma wspomoacutecodnajdywanie źle zaprojektowanych przejść dla pieszych co przełoży się na możliwośćpodjęcia odpowiednich działań prowadzących do usunięcia kłopotliwych rozwiązań

Pierwszym krokiem w zaprojektowaniu systemu jest stworzenie wzorca na ktoacuterymbędzie on opierać swoje działanie Algorytm programu zapisany jest w języku Pythonz wykorzystaniem darmowej biblioteki OpenCV dzięki ktoacuterej będzie możliwe rozpo-częcie detekcji osoacuteb przechodzących przez przejście dla pieszych w momencie gdy nasygnalizatorze świetlnym widnieje czerwone światło (rys11) Aby pozyskiwane danebyły rzetelneprogram nie może identyfikować poprawnie przechodzących osoacuteb na zie-lonym świetle (rys12)

Program po uruchomieniu powinien wykonywać swoją pracę automatycznie dlawszystkich zapisanych obrazoacutew tak aby nie wymagał osobnej interakcji dla każdegoz nich Sam program opierający się na bibliotece OpenCV musi być zdolny do pra-cy w roacuteżnych warunkach pogodowych i porach dnia co zostanie roacutewnież sprawdzonew mojej pracy

Rysunek 11 Efekt działania programu przy świetle czerwonym

20

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rysunek 12 Efekt działania programu przy świetle zielonym

62 Schemat programu

Cały proces funkcjonowania systemu jest rozłożony na etapy (rys13) Pierwszymelementem procesu jest wyboacuter miejsca docelowego w ktoacuterym będą prowadzone ana-lizy W mojej pracy posłużyłem się ogoacutelnodostępnymi źroacutedłami z kamerami onlineDo badań konieczna była kamera monitoringu umieszczona w obrębie przejścia dlapieszych w taki sposoacuteb aby kąt jej ustawienia oraz jakość obrazu pozwalały na identy-fikację koloru sygnalizacji Pierwszy etap zatem rozpoczyna się w lokalizacji przejściadla pieszych i kamery CCTV Do badań wybrane zostało skrzyżowanie ulic Jana PawłaII z Podrzeczną w miejscowości Kutno oraz skrzyżowanie ulic Traugutta z Zamkowąw Pabianicach (dostęp online do kamer ze strony gotoyanetpl [9])

21

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rysunek 13 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle

Dla celoacutew badań obraz przekazywany z kamer online zapisałem w formie plikuwideo w formacie mp4 na dysku komputera (rys14) Do zapisu transmisji z kamerużyłem programu Apowersoft [1] umożliwia on zachowanie widoku z ekranu w formiewideo do wybranej lokalizacji w określonym formacie (w tym przypadku mp4) roz-dzielczości i jakości Łącznie zarejestrowanych zostało 17 nagrań w roacuteżnych porach dnia(południe wieczoacuter) i warunkach pogodowych (słonecznie zachmurzenie śnieżnie) Ce-lem było uzyskanie informacji jakie ograniczenia posiada system względem warunkoacutewpogodowych i oświetlenia

Rysunek 14 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online wKutnie i Pabianicach

Biblioteka OpenCV posiada możliwość pracy zaroacutewno z obrazami przekazywanymina żywo oraz zapisanymi w plikach wideo W mojej pracy skupiłem się na analizie ob-

22

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

razoacutew stałych czyli poszczegoacutelnych klatek z pliku wideo Pozyskanie ich odbywa się zapomocą projektu FFmpeg [7] przeznaczonego do przetwarzania większości istniejącychformatoacutew dźwiękowych i wideo Jest to konsolowy konwerter w ktoacuterym komendy wywo-ływane są przez wiersz poleceń Każde nagranie składa się z kilkuset do kilku tysięcyklatek zapis wszystkich doprowadziłby do pozyskania ogromnej liczby obrazoacutew nieroacuteżniących się od siebie znacznie w każdym z nagrań Ponadto tak duża liczba obrazoacutewdo analizy istotnie wpłynie na szybkość pracy programu wykrywającego przechodnioacutewAby ograniczyć ilość zachowanych klatek została ustawiona częstość przechwytywaniaobrazu co 5 lub 10 sekund (w zależności od czasu potrzebnego na przejście przez jezd-nię w danej lokalizacji) oznacza to że co każde 510 sekund zapisana zostanie jednaklatka Przechwycone obrazy zostają zapisane w formatach rdquopngrdquo oraz rdquojpgrdquo w kon-kretnej lokalizacji na komputerze będącej miejscem wyjściowym pozyskiwania obrazoacutewdo dalszej obroacutebki

Rysunek 15 Wywołanie programu ffmpeg przez wiersz polecenia

Kolejnym etapem jest załadowanie obrazoacutew do programu stworzonego w ramachpracy dyplomowej pod nazwą AROCV (z ang Automatic Recognition with OpenCV)a napisany jest w języku Python wersja 27 W tym momencie rozpoczyna się etapowaobroacutebka obrazu opisana w podrozdziale 31 Przed uruchomieniem programu zdefinio-wane zostały parametry dotyczące lokalizacji plikoacutew źroacutedłowych(klatek wideo) oraz ko-loru piksela odpowiadającego za barwę światła Możliwość ustawienia ścieżki do folderuz ktoacuterego AROCV pobiera obrazy (bez podawania lokalizacji każdego pliku z osobna)istnieje dzięki modułowi rdquoargparserdquo pozwalającemu definiować argumenty Programuwzględnia wszystkie obrazy ktoacutere w danym momencie znajdują się w podanej loka-lizacji Po załadowaniu pierwszego obrazu z czerwonym kolorem sygnalizacji (klatkiz sygnalizacją w kolorze zielonym są automatycznie odrzucane a program wczytujekolejny obraz z listy) poddany jest zmianie rozdzielczości Oryginalne obrazy zapisanesą w rozdzielczości 526x332 (Kutno) oraz 460x464 (Pabianice) Szerokość obrazu prze-kształcana jest na 400 pikseli Zmiana uwarunkowana jest wpływem wielkości obrazoacutewna szybkość pracy programu oraz skuteczność wykrywania przez deskryptor HOG Po

23

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

tym zabiegu rozpoczyna się identyfikacja z wykorzystaniem deskryptora HOG Ma onana celu identyfikację osoacuteb znajdujących się w danym momencie na przejściu dla pie-szych Detekcja nie uwzględnia ludzi znajdujących się po za jezdnią obszar w ktoacuterymmogą znajdować się osoby trzecie po poprawnej weryfikacji koloru światła zostajezamaskowany

Detekcja za pomocą HOG oraz SVM daje efekt w postaci informacji o zidentyfiko-wanych osobach aczkolwiek wykrycia dla każdej osoby są wielokrotne Aby rozwiązaćten problem w detekcji stosowana jest funkcja rdquoNon Maximal Supressionrdquo NMS należydo biblioteki rdquoimutilsrdquo służącej do przetwarzania i wyświetlania obrazoacutew Informacjeo liczbie wykrytych osoacuteb zapisywane są do pliku tekstowego (rys16) w folderze pro-gramu po zakończeniu jego pracy Taka forma zapisu pozwala na zmniejszenie wielkościdanych co jest istotne w kontekście poacuteźniejszego ich przechowywania i wykorzystania

Rysunek 16 Wyniki detekcji zapisane w pliku tekstowym na dysku

Wraz z analizowaniem przedstawionej koncepcji może nasunąć się pytanie co z ochro-ną danych osobowych i czy taki system nie wprowadzi zbyt dużej inwigilacji wśroacutedmieszkańcoacutew Moja koncepcja opiera się na czymś co już istnieje i jest publiczniedostępne Ponadto informacje uzyskiwane z samej detekcji nie będą uwzględniały sa-mego rozpoznawania konkretnych osoacuteb co następnie mogłoby zostać wykorzystane doroszczeń w związku z popełnionym wykroczeniem Wszystkie dane ktoacutere otrzymuje-my zostają przekazane w formie statystycznej informującej o liczbie zdarzeń w danymmiejscu i czasie

63 Wyboacuter kamery i warunki pogodowe

Z kilkudziesięciu dostępnych kamer w serwisach online na potrzeby pracy wybranezostały dwie z nich skrzyżowanie ulic Jana Pawła II z Podrzeczną w miejscowości Kut-no oraz skrzyżowanie ulic Traugutta z Zamkową w Pabianicach Wyboacuter uwarunkowany

24

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

jakością udostępnianego obrazu oraz umiejscowieniem sprzętu rejestrującego Kamerydo ktoacuterych miałem dostęp są to urządzenia obserwacyjne i nie były montowane z myśląo wykorzystaniu ich na potrzeby programoacutew jak prezentowany AROCV Kamery ktoacute-re wybrałem względem wielu innych oferują stosunkowo dobrą jakość obrazu a takżeumiejscowienie pozwalające na rozpoznanie barwy sygnalizatora w roacuteżnych warunkachpogodowych i porach dnia

Jakość uzyskiwanego obrazu zależna jest od pogody i pory dnia W badaniach waż-nym elementem było sprawdzenie jak AROCV radzi sobie w roacuteżnych warunkach Ze-brane nagrania uwzględniały dzień słoneczny i zachmurzony wieczoacuter bez opadoacutew orazz opadami śniegu Program działa w każdych warunkach jednakże jego skutecznośćulega zmianie co zostanie przedstawione w dalszej części pracy

64 Algorytm programu AROCV

Program AROCV został napisany w języku Python z wykorzystaniem bibliotekiOpenCV Poniżej znajduje się pełen kod źroacutedłowy oraz jego opis

1 from __future__ import print_function2 import imutils3 from imutilsobject_detection import non_max_suppression4 from imutils import paths5 from PIL import Image6 import cv27 import numpy as np8 import datetime9 import sys10 import argparse1112 ap = argparseArgumentParser ()13 apadd_argument(-i --images required=True help=path to images

directory)14 apadd_argument(-c --color required=True help=RGB color eg

707070)15 args = vars(apparse_args ())1617 redlight = args[rsquocolor rsquo]split(rsquorsquo)1819 hog = cv2HOGDescriptor ()20 hogsetSVMDetector(cv2HOGDescriptor_getDefaultPeopleDetector ())21 sysstdout = open(rsquoInformacje_o_detekcjitxtrsquo rsquowrsquo)2223 def check_image(image redlight)24 image = cv2imread(imagePath)25 im = Imageopen(imagePath)26 pix = imload()27 current_color = pix[160 24]2829 image = imutilsresize(image width=min(400 imageshape[1]))

25

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

30 orig = imagecopy()3132 if not check_red_light(current_color redlight)33 return3435 cv2line(image (020)(400 5)(255 255 255)180)36 (rects weights) = hogdetectMultiScale(image winStride=(4 4)

padding=(8 8) scale=105)3738 for (x y w h) in rects39 cv2rectangle(orig (x y) (x + w y + h) (0 0 255) 2)4041 rects = nparray([[x y x + w y + h] for (x y w h) in rects])42 pick = non_max_suppression(rects probs=None overlapThresh=09)43 font = cv2FONT_HERSHEY_SIMPLEX44 cv2putText(image rsquoLight Redrsquo(20 20) font 04(00255)1cv2

LINE_AA)45 now = datetimedatetimenow()4647 for (xA yA xB yB) in pick48 cv2rectangle(image (xA yA) (xB yB) (0 255 0) 2)4950 filename = imagePath[imagePathrfind() + 1]51 print([Wykryte osoby] format(filename len(pick)))52 print (str(now))5354 cv2imshow(After NMS image)55 cv2waitKey(0)5657 def check_red_light(curr_color redlight)58 if (str(curr_color[0]) == str(redlight[0])59 and str(curr_color[1]) == str(redlight[1])60 and str(curr_color[2]) == str(redlight[2]))61 return True62 else63 return False6465 if __name__ == __main__6667 for imagePath in pathslist_images(args[images])68 check_image(imagePath redlight)

Wiersze 1-10 Zaczynamy od importowania pakietoacutew wymaganych do pracy progra-mu Pobierane są moduły odpowiedzialne za przetwarzanie obrazu tj rdquoimutilsrdquo rdquoIma-gerdquo oraz rdquocv2rdquo będące skroacutetem wywołującym bibliotekę OpenCV Ponadto uwzględ-niane są biblioteki odpowiadające za obliczenia matematyczne czas datę czy wprowa-dzanie argumentoacutew

Wiersze 12-17 Uruchomienie programu wywoływane jest parametrami dotyczący-mi lokalizacji plikoacutew źroacutedłowych oraz barwy światła sygnalizacji wymaganej do rozpo-częcia detekcji Parametry możemy ustawić za pomocą funkcji rdquoargparserdquo przez doda-

26

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

nie argumentoacutew Pierwszym z nich rdquondashimagesrdquo odpowiadający za wskazanie na dyskulokalizacji z obrazami ktoacuterych będziemy używać do detekcji Drugim argumentem jestrdquondashcolorrdquo wymuszającym podanie barwy w skali RGB W mojej pracy opieram się nazgromadzonych nagraniach w ktoacuterych zostały zidentyfikowane wcześniej barwy pikseliodpowiadające za kolor światła czerwonego zależnie od warunkoacutew świetlnych i pogo-dowych ndash skala RGB (ang Red Green Blue)

1 Pabianice ndash TrauguttaZamkowa

bull dzień ndash zachmurzenie 250177175

bull wieczoacuter ndash śnieżnie 149 109 101

2 Kutno ndash Jana Pawła II Podrzeczna

bull dzień ndash słonecznie 85 75 75

bull dzień ndash zachmurzenie 150 23 20

bull wieczoacuter ndash 180 102 111

Wiersze 19-21 Poprzez OpenCV inicjujemy Histogramy Orientacji GradientoacutewHOG wraz z SVM odpowiadające za detekcję przechodnioacutew Poleceniem w wierszu14 otwierany jest plik tekstowy do ktoacuterego będą zapisywane informacje o detekcjiW tym momencie zostało przygotowane środowisko na podstawie ktoacuterego tworzone sąpolecenia

Kolejnym etapem jest zdefiniowanie funkcji odpowiedzialnej za wczytanie obrazuidentyfikację światła jego obroacutebkę i następnie detekcję przechodnioacutew

Wiersze 23-33 Funkcją rdquocv2imreadrdquo wczytywany jest obraz ze wskazanej lokalizacjiw parametrze Następnie program sprawdza kolor piksela odpowiadającego za kolorsygnalizacji jeśli zgadza się on z argumentem rdquondashcolorrdquo przechodzi do kolejnych etapoacutewW innym przypadku (światło zielone) wraca do początku i wczytuje kolejny obrazPrzez rdquoimutil resizerdquo przekształcany jest do rozmiaru o szerokości 400 pikseli natomiastkopia obrazu zachowywana jest pod zmienną rdquoorigrdquo

Wiersze 35-55 Jest to część kodu odpowiadająca za wykrywanie przechodnioacutew oraznanoszenie informacji na obraz wyjściowy W linii 35 maskowana przestrzeń za przej-ściem dla pieszych w ktoacuterej mogłyby znaleźć się osoby oczekujące na zmianę światłalub takie ktoacutere tylko przechodziły w pobliżu W kolejnym kroku program odnosi siędo deskryptora HOG ktoacutery poprzez przesuwanie okna o rozmiarze 6x6 pikseli po po-wierzchni obrazu szuka obiektoacutew w naszym przypadku przechodnioacutew Wielkość oknajest ustalona według sugerowanych wytycznych [5] Po pozytywnej detekcji programz wykorzystaniem funkcji OpenCV ndash rysowanie prostokątoacutew rdquocv2rectanglerdquo nanosiramki (o zdefiniowanym kolorze i grubości) oznaczając wykryte osoby W pierwszejwersji zidentyfikowana jest zbyt duża ilość potencjalnych obiektoacutew w związku z czymliczba ramek dla każdej osoby jest niewłaściwa (rys17) W celu redukcji wielokrotnejdetekcji stosowana jest funkcja rdquonon max supressionrdquo Po wykryciu i naniesieniu ra-mek otrzymujemy tekstową informację o tym ile osoacuteb zostało wykrytych na danym

27

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

zdjęciu Wyświetlone zostaje roacutewnież okno przedstawiające efekt identyfikacji (rys18)Uzyskane dane z liczbą wykrytych osoacuteb zapisywane są do pliku ktoacutery został utworzonyprzez wiersz 21 Informacja uwzględnia lokalizację czas i liczbę wykrytych osoacuteb ktoacuterew danym momencie przechodziły przez przejście na czerwonym świetle

Rysunek 17 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression

Rysunek 18 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Su-pression

28

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Wiersze 57-63 W tej części zdefiniowana jest funkcja rdquocheck red lightrdquo Odpowiadaza poroacutewnanie wartości barwy piksela każdego wczytanego obrazu z wartością odpo-wiadającą barwie podanej jako parametr definiujący kolor światła czerwonego Jeśliweryfikacja jest pozytywna funkcja zwraca wartość rdquoTruerdquo jeśli jest inaczej zwroacuteconajest rdquoFalserdquo

Tak skonstruowany algorytm pozwala na detekcję ludzi przechodzących przez przej-ście dla pieszych na świetle czerwonym Po uruchomieniu programu analiza dla wszyst-kich zebranych obrazoacutew pochodzących z kamer wideo odbywa się automatycznie Samadetekcja w przypadku omawianego kodu dotyczy przejścia dla pieszych znajdującegosię w Kutnie na skrzyżowaniu ulicy Jana Pawła II z ulicą Podrzeczną oraz przejściaw Pabianicach na skrzyżowaniu ulicy Traugutta z Zamkową Wprowadzając inną lo-kalizację w ktoacuterej planowana jest taka detekcja wystarczy wprowadzić odpowiedniezmiany w argumentach Pierwszą jest wprowadzenie parametru z docelową lokalizacjąsamych obrazoacutew na dysku drugą wartość koloru w skali RGB odpowiadającemu sy-gnalizacji w momencie zapalenia czerwonego światła na przejściu dla pieszych Oproacuteczzmian samej lokalizacji kod programu AROCV udostępniony zostanie w na licen-cji MIT co oznacza że każdy będzie moacutegł z niego skorzystać i na własne potrzebymodyfikować Taki zabieg umożliwi rozwijanie kodu i udoskonalanie go przez innychprogramistoacutew

29

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 7

Analiza wynikoacutew i podsumowanie

Badania przeprowadzone były na obrazach pochodzących z dwoacutech kamer monito-ringu znajdujących się w Kutnie oraz Pabianicach Celem pracy było przedstawieniekoncepcji typowania nieprawidłowo zaprojektowanych przejść dla pieszych w opar-ciu o automatyczną detekcję osoacuteb przechodzących na czerwonym świetle Praktycznarealizacja koncepcji odbyła się przez wykorzystanie narzędzia przetwarzania obrazoacutewOpenCV Baza składała się z 34 zrzutoacutew widoku z kamery uwzględniających roacuteżne po-ry dnia i warunki pogodowe oraz obrazy zaroacutewno z sygnalizacją w kolorze czerwonymjak i w kolorze zielonym

bull Pabianice ndash Łącznie 18 obrazoacutew 12 z czerwoną sygnalizacją 6 z zieloną

bull Kutno ndash Łącznie 16 obrazoacutew 11 z czerwoną sygnalizacją 5 z zieloną

Do analizy wykorzystano obrazy przedstawiające widok z kamer zaroacutewno w ciągudnia jak i po zmierzchu w dobrych i złych warunkach pogodowych Wyniki przedsta-wiono w tabeli

31

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Tabela 1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pabianice ndash skrzyżowanie ul Traugutta z ulZamkową

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDPabianice 1 Południe Zachmurzenie Czerwony 2 2 0Pabianice 2 Południe Zachmurzenie Czerwony 2 2 0Pabianice 3 Południe Zachmurzenie Czerwony 2 2 0Pabianice 4 Południe Zachmurzenie Czerwony 2 1 -1Pabianice 5 Południe Zachmurzenie Czerwony 1 1 0Pabianice 6 Południe Zachmurzenie Czerwony 3 1 -2Pabianice 7 Południe Zachmurzenie Czerwony 3 3 0Pabianice 8 Południe Zachmurzenie Czerwony 3 3 0Pabianice 9 Południe Zachmurzenie Czerwony 1 2 +1Pabianice 10 Południe Zachmurzenie Czerwony 1 1 0Pabianice 11 Wieczoacuter Śnieżnie Czerwony 1 0 0Pabianice 12 Wieczoacuter Śnieżnie Czerwony 1 1 0Pabianice 13 Wieczoacuter Śnieżnie Czerwony 2 2 0Pabianice 14 Południe Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Pabianice 15 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 16 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 17 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0Pabianice 18 Wieczoacuter Śnieżnie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

32

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Pa-bianicach popełnił 4 błędy 3 osoby nie zostały wykryte w ogoacutele 1 obiekt wykrytyzostał dodatkowo Skuteczność wyniosła 79 Trafność rozpoznania koloru sygnali-zacji na poziomie 100 program odrzucił wszystkie obrazy z sygnalizacją w kolorzezielonym Poprawność detekcji w dzień zachmurzony wyniosła 83 natomiast w śnież-ny wieczoacuter 67

Rysunek 19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień

33

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Tabela 2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kutno ndash skrzyżowanie ul Jana Pawła II z ulPodrzeczną

Lokalizacja Numer Pora dnia Pogoda Kolor sygnalizacji LO LD BDKutno 1 Południe Słonecznie Czerwony 1 1 0Kutno 2 Południe Słonecznie Czerwony 2 1 -1Kutno 3 Południe Słonecznie Czerwony 1 0 -1Kutno 4 Południe Słonecznie Czerwony 2 2 0Kutno 5 Południe Słonecznie Czerwony 2 1 -1Kutno 6 Południe Słonecznie Czerwony 3 1 -2Kutno 7 Południe Słonecznie Czerwony 1 1 0Kutno 8 Południe Zachmurzenie Czerwony 3 3 0Kutno 9 Południe Zachmurzenie Czerwony 1 1 0Kutno 10 Południe Zachmurzenie Czerwony 2 1 -1Kutno 11 Wieczoacuter Zachmurzenie Czerwony 1 1 0Kutno 12 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 13 Wieczoacuter Słonecznie Zielony Nie dotyczy Nie dotyczy 0Kutno 14 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 15 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0Kutno 16 Wieczoacuter Zachmurzenie Zielony Nie dotyczy Nie dotyczy 0

Liczba osoacuteb na przejściu [LO]Liczba wykrytych osoacuteb [LD]Błędne detekcje [BD]Nie dotyczy ndash liczba osoacuteb i detekcje nie były uwzględniane dla koloru sygnalizacji zielonego wartość 0 w BD zmienia się w momencie

błędnego wykrycia osoacuteb ktoacutere przechodzą przez przejście na zielonym świetle

34

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Program w trakcie detekcji na obrazach pochodzących z kamery monitoringu w Kut-nie popełnił 6 błędoacutew ktoacutere polegały na nie wykryciu łącznie 6 osoacuteb Skuteczność wy-niosła 71 Trafność rozpoznania koloru sygnalizacji na poziomie 100 program od-rzucił wszystkie obrazy z sygnalizacją w kolorze zielonym Poprawność detekcji w dzieńsłoneczny wyniosła 62 w dzień zachmurzony 83 natomiast wieczorem 100(tylkona podstawie jednej sytuacji przejście wieczorem rzadko użytkowane więc sytuacjeprzejść na czerwonym świetle się nie zdarzały w trakcie realizacji badań)

Rysunek 20 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień orazwieczoacuter

35

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

71 Błędy detekcji

Wyniki programu AROCV pokazują że nie jest skuteczny w 100 jego dokład-ność wynosi 70 - 80 Zatem z czego wynikają błędy i problemy detekcji Pierwszympowodem jest jakość obrazu dostarczanego z kamery Zapisy o niskiej szczegoacutełowościostrości lub słabym oświetleniu (zależnym głoacutewnie od pory dnia i pogody) powodują żeprogram działający w oparciu o OpenCV wraz z deskryptorem HOG nie jest w staniezawsze rozpoznać człowieka gdyż piksele odpowiadające za sylwetkę osoby zlewają sięz otoczeniem (rys21)

Rysunek 21 Sylwetka człowieka a otoczenie na obrazie o niższej jakości

Kolejnym czynnikiem wpływającym na skuteczność detekcji przechodnioacutew jest licz-ba osoacuteb znajdujących się bardzo blisko siebie Efektem takiej sytuacji może być wy-krycie dwoacutech osoacuteb jako jednej trzech jako dwoacutech itd

W trakcie identyfikacji osoacuteb występują zdarzenia w wyniku ktoacuterych otrzymujemyinformację o większej liczbie osoacuteb niż faktycznie znajduje się w tym momencie naprzejściu Program wykrywa woacutewczas elementy obce z otoczenia Zazwyczaj jest towjeżdżający w pole widzenia samochoacuted ktoacuterego część zidentyfikowana zostaje jakoczłowiek Drugim typem są obiekty stałe tj drzewo znak latarnia W tym przypadkurozwiązaniem może być uwzględnienie ich już na samym początku i maskowanie takaby nie były wykrywane

36

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

72 Podsumowanie

Analizując wyniki badań można postawić tezę że proponowana koncepcja wyko-rzystania monitoringu znalazłaby zastosowanie w miastach i istotnie mogłaby przyczy-nić się do podejmowania działań mających na celu poprawę pewnych aspektoacutew życiamieszkańcoacutew W pracy zostało zaprezentowane wykorzystanie biblioteki OpenCV doautomatycznego typowania nieprawidłowo zaprojektowanych przejść dla pieszych Na-pisany program pod roboczą nazwą AROCV miał na celu przedstawienie możliwościjakie oferują nam narzędzia przetwarzania obrazu w połączeniu z kamerami wizyjnymi

Z całą pewnością zaprezentowana wersja programu pomimo stosunkowo wysokiejskuteczności nie może być ostatecznym środkiem wykorzystywanym w typowaniu źlezaprojektowanych przejść dla pieszych z powodu występujących błędoacutew detekcji a tak-że ograniczeniu wykrywania do obrazoacutew stałych pochodzących z zapisanych nagrańWażnym elementem w badanej metodzie jest wyboacuter miejsc mających posłużyć bada-niom wyboacuter kamery o odpowiednich parametrach

Program sugeruje jednak kierunki rozwoju ktoacutere mogłyby zostać uwzględnionew przyszłości przez służby miejskie W tym miejscu należy zaznaczyć że możliwośćwykorzystania kamer monitoringu i OpenCV nie sprowadza się jedynie do problemuprzejść dla pieszych Perspektywy są znacznie szersze Odpowiednio skonstruowanyprogram pozwoliłby roacutewnież na analizy ruchu pieszego rowerowego samochodowegosprawdzanie warunkoacutew pogodowych czy też nawet detekcję smogu ktoacutery w ostatnichlatach jest rosnącym problemem polskich miast Ponadto wszystkie informacje dziękiformie zapisu danych mogłyby zostać wykorzystane do typowania źle zaprojektowanychelementoacutew przestrzeni miejskiej a także do badań zależności między elementami takimijak np ruch samochodowy a smog

37

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Rozdział 8

Wnioski

Na podstawie analiz wykonanych w trakcie pracy przedstawiającej koncepcje wy-korzystania monitoringu wizyjnego wyciągnięto następujące wnioski

1 Istniejące kamery monitoringu wizyjnego są nośnikiem wielu danych lecz dostępdo nich jest ograniczony

2 Za pomocą narzędzi przetwarzania obrazu takich jak OpenCV istnieje możliwośćautomatycznego wykrywania osoacuteb przechodzących przez przejście na czerwonymświetle co może zostać wykorzystane do typowania nieprawidłowo zaprojekto-wanych przejść dla pieszych

3 Informacje zawarte w graficznej formie mogą zostać zapisane do prostej postaciłatwiejszej w poacuteźniejszym wykorzystaniu

4 Na skuteczność detekcji wpływ mają jakość rejestrowanego obrazu czynniki po-godowe i warunki oświetlenia

5 Połączenie systemoacutew monitoringu wizyjnego z narzędziami przetwarzania obrazuniesie za sobą nowe możliwości w dziedzinach decydujących o funkcjonowaniumiasta Taka integracja może być bardzo nieocenioną pomocą w pracy służbmiejskich i planistoacutew

39

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Bibliografia

[1] Apowersoft Głoacutewna strona projektu httpswwwapowersoftcomfree-online-screen-recorder

[2] BBC Chiny ndash monitoring wizyjny dostęp 10012018 2017 httpwwwbbccomnewsavworld-asia-china-42248056in-your-face-china-s-all-seeing-state

[3] Cezary Bołdak Cyfrowe przetwarzanie obrazoacutew TUGboat strony 4ndash6 2008 Di-gital Image Processing httparagornpbbialystokpl~boldakDIPCPO-W07-v01-50prpdf

[4] David S Bolme Yui Man Lui Bruce A Draper J Ross Beveridge Simple real-timehuman detection using a single correlation filter strony 1ndash8 2009

[5] Navneet Dalal Bill Triggs Histograms of oriented gradients for human detectionwolumen 1 2005

[6] Marek Doros Przetwarzanie obrazoacutew WSISiZ 2003

[7] FFmpeg Głoacutewna strona projektu httpswwwffmpegorg

[8] Gdańsk Miejski informator miasta dostęp 10012018 httpwwwtrojmiastopl

[9] GoToya Kamery monitoringu online httpsgotoyanetpl25

[10] Matthew Halaba Wielka brytania monitoring wizyjny dostęp 100120182014 httpmatthewhalabanatematpl116241miejski-monitoring-wizyjny-cel-i-skutecznosc-versus-celowosc-i-koniecznosc

[11] Peter Harrington Machine learning in action wolumen 5 Manning GreenwichCT 2012

[12] Krakoacutew Monitoring miejski dostęp 10012018 httphttpwwwgazetakrakowskaplartykul3426845radni-krakowa-przekonuja-do-monitoringu-mapa-policyjnych-kameridthtml

41

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

[13] Matej Kristan Jiri Matas Ales Leonardis Michael Felsberg Luka Cehovin Gu-stavo Fernandez Tomas Vojir Gustav Hager Georg Nebehay Roman PflugfelderThe visual object tracking vot2015 challenge results Proceedings of the IEEE in-ternational conference on computer vision workshops strony 1ndash23 2015

[14] Lublin Miejski informator multimedialny miasta dostęp 10012018 httpslublineu

[15] MIT Licencja httpsplwikipediaorgwikiLicencja_MIT

[16] OpenCV Deokumentacja httpsdocsopencvorg

[17] OpenCV Głoacutewna strona projektu httpsopencvorg

[18] Poznań Miejski informator multimedialny miasta dostęp 10012018 httpwwwpoznanpl

[19] Adrian Rosenbrock Blog httpswwwpyimagesearchcom

[20] Ryszard Tadeusiewicz Przemysław Korohoda Komputerowa analiza i przetwa-rzanie obrazoacutew Wydawnictwo Fundacji Postępu Telekomunikacji 1997

[21] Warszawa Zakład obsługi systemu monitoringu miasta warszawy dostęp10012018 httpwwwzosmpl

[22] A Zacniewski System rozpoznawania cyfr oparty na histogramie zorientowanychgradientoacutew Logistyka (4)6921ndash6926 2015

[23] Tomasz Zieliński Od teorii do cyfrowego przetwarzania sygnałoacutew AkademiaGoacuterniczo- Hutnicza im Stanisława Staszica w Krakowie 2002

42

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Spis rysunkoacutew

1 Kamera monitoringu wizyjnego CCTV 32 Liczba kamer monitoringu wizyjnego w wybranych pięciu polskich miastach 4

3 Schemat przetwarzania obrazoacutew 74 Wynik segmentacji 85 Schemat działania deskryptora HOG 106 Idea klasyfikacji SVM z podziałem na klasy hiperpłaszczyzną 11

7 Liczba pobrań biblioteki OpenCV od 2001r do 2018r 148 Panel głoacutewny programu Anaconda 159 Struktura komponentoacutew OpenCV 15

10 Serwis wwwgotoyanetpl 18

11 Efekt działania programu przy świetle czerwonym 2012 Efekt działania programu przy świetle zielonym 2113 Proces automatycznej detekcji osoacuteb przechodzących na czerwonym świetle 2214 Folder z zapisanymi plikami wideo zawierającymi obraz z kamer online w

Kutnie i Pabianicach 2215 Wywołanie programu ffmpeg przez wiersz polecenia 2316 Wyniki detekcji zapisane w pliku tekstowym na dysku 2417 Obraz z wynikiem detekcji przed zastosowaniem Non Maximal Supression 2818 Obraz z finalnym wynikiem detekcji po zastosowaniu Non Maximal Supression 28

19 Pabianice - widok z kamery w śnieżny wieczoacuter oraz zachmurzony dzień 3320 Kutno - widok z kamery w słoneczny dzień zachmurzony dzień oraz wieczoacuter 3521 Sylwetka człowieka a otoczenie na obrazie o niższej jakości 36

43

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel

Spis tabel

1 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Pa-bianice ndash skrzyżowanie ul Traugutta z ul Zamkową 32

2 Wyniki detekcji pieszych za pomocą programu AROCV w miejscowości Kut-no ndash skrzyżowanie ul Jana Pawła II z ul Podrzeczną 34

44

  • Spis treści
  • 1 Wstęp
    • 11 Wstęp
    • 12 Cel pracy
      • 2 Monitoring miejski
        • 21 Czym jest system monitoringu
        • 22 Monitoring wizyjny na świecie i w Polsce
        • 23 Wykorzystanie monitoringu
          • 3 Przetwarzanie obrazoacutew
            • 31 Podstawowe pojęcia
            • 32 Histogram zorientowanych gradientoacutew
            • 33 Klasyfikator SVM
              • 4 Biblioteka OpenCV
              • 5 Źroacutedła obrazoacutew
              • 6 Metody
                • 61 Koncepcja wykorzystania
                • 62 Schemat programu
                • 63 Wyboacuter kamery i warunki pogodowe
                • 64 Algorytm programu AROCV
                  • 7 Analiza wynikoacutew i podsumowanie
                    • 71 Błędy detekcji
                    • 72 Podsumowanie
                      • 8 Wnioski
                      • Bibliografia
                      • Spis rysunkoacutew
                      • Spis tabel