• Nie Znaleziono Wyników

Zaproponowana metoda detekcji sabota˙zu kamery

W dokumencie Index of /rozprawy2/10579 (Stron 138-144)

7. Implementacja sprz˛etowa algorytmów wykorzystywanych w zaawansowanych syste-

7.3. Detekcja sabota˙zu kamery

7.3.2. Zaproponowana metoda detekcji sabota˙zu kamery

Na podstawie analizy opisanych w literaturze metod wykrywania sabota˙zu z kamery zaimplemen-towano w j˛ezyku C++ z wykorzystaniem biblioteki OpenCV [129] własn ˛a metod˛e, która jednocze´snie stanowiła model referencyjny dla wersji sprz˛etowej. Była ona najbardziej zbli˙zona do opisanej w pracy [152], jednak ró˙zniła si˛e w kilku szczegółach oraz została przystosowana do realizacji w układzie FPGA.

Bezpo´srednio do wykrywania sabota˙zu wykorzystano trzy mechanizmy: – porównywanie histogramów modeli tła krótko- i długoterminowego, – porównywanie kraw˛edzi aktualnej ramki i modelu tła krótkoterminowego, – analiz˛e ´sredniej jasno´sci sceny.

Podstaw ˛a działania metody były dwa modele tła w odcieniach szaro´sci: krótko- i długoterminowe oraz mechanizm odejmowania dwóch s ˛asiednich ramek. Do generacji modelu tła zastosowano algorytm ´sredniej ruchomej [186]. Szerszy opis zagadnienia mo˙zna odnale´z´c w rozdziale 6.5.3 niniejszej rozprawy. Warunkiem selektywnej aktualizacji modelu tła był brak ruchu, przy czym maska ruchu wyznaczana była na podstawie zbinaryzowanej ró˙znicy dwóch kolejnych ramek. Model krótkoterminowy aktualizowany był na podstawie bie˙z ˛acej ramki, a model długoterminowy na podstawie modelu krótkoterminowego.

Na wst˛epie przyj˛eto zało˙zenie, ˙ze obszary sceny na których wykryty jest ruch maj ˛a by´c wykluczone z analizy. W tym celu wykorzystano obraz historii ruchu MHI (ang. Motion History Image). Był on

7.3. Detekcja sabota˙zu kamery 135

tworzony na podstawie maski obiektów, otrzymanej z binaryzacji obrazu ró˙znicowego bie˙z ˛acej ramki i tła krótkoterminowego. Aktualizacja MHI odbywała si˛e z wykorzystaniem zale˙zno´sci:

M HI(x, y) = (

M HI(x, y) + a je´sli LC

M HI(x, y) − b w p.p. (7.13) LC = ∆BGQ ≥ thBackground ∧; ∆F ≥ thM ovement (7.14) gdzie: M HI(x, y) — obraz historii ruchu dla danej lokalizacji, a i b — parametry aktualizacji MHI, ∆BGQ — moduł z ró˙znicy aktualnej ramki i tła krótkoterminowego, thBackground — próg binaryza-cji odejmowania tła, ∆F — moduł z ró˙znicy dwóch kolejnych ramek, thM ovement — próg binaryzabinaryza-cji obrazu ró˙znicowego.

Nast˛epnie za piksele nieruchome (stacjonarne) uznawane były takie, dla których warto´s´c MHI nie przekraczała okre´slonego progu. Z uwagi na implementacj˛e sprz˛etow ˛a zakres MHI ograniczono do prze-działu [0; 255]. Przykładowy obraz historii ruchu zaprezentowano na rysunku 7.10.

a) b)

c) d)

Rysunek 7.10: Przykładowy obraz historii ruchu MHI. a) bie˙z ˛aca ramka, b) obraz MHI, c) obraz MHI po binaryzacji, d) zbinaryzowana ró˙znica pomi˛edzy dwoma kolejnymi ramkami

7.3.2.1. Porównywanie histogramów

W pierwszym etapie dla modelu tła krótko- i długoterminowego tworzone były histogramy o 32 prze-działach. Zliczane były tylko warto´sci pikseli uznanych za nieruchome. Z dalszej analizy wykluczono pierwszy i ostatni przedział histogramu, poniewa˙z nie wnosz ˛a one informacji o charakterystycznych ce-chach sceny. Nast˛epnie wyliczana była odległo´s´c mi˛edzy histogramami. W ramach bada´n wst˛epnych

T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

7.3. Detekcja sabota˙zu kamery 136

przeanalizowano szereg sposobów wyznaczania takiego wska´znika: korelacyjny, chi-kwadrat, przeci˛e-cie, Bhattaharayya (wszystkie dost˛epne i opisane w bibliotece [129]) oraz uproszczon ˛a korelacj˛e opisan ˛a wzorem:

HD =

P31

i=2Ha(i) · Hb(i) q

P31

i = 2Ha(i)2·P31

i=2Hb(i)2

(7.15)

gdzie: Hai Hb— porównywane histogramy, zakres od i=2 do 31 oznacza pomini˛ecie pierwszego i ostat-niego przedziału.

Obliczone odległo´sci pomi˛edzy histogramami dla wybranego przykładu sabota˙zu (cz˛e´sciowe zasło-ni˛ecie kamery) zaprezentowano na rysunku 7.11. Wszystkie miary zostały znormalizowane do zakresu [0;1].

Rysunek 7.11: Porównanie metod obliczania odległo´sci pomi˛edzy histogramami w przypadku cz˛e´scio-wego przysłoni˛ecia obiektywu kamery

Ostatnia ze wskazanych odległo´sci, po nieznacznych modyfikacjach, których celem było unikni˛ecie konieczno´sci sprz˛etowej realizacji operacji dzielenia oraz pierwiastkowania, została przekształcona do postaci zastosowanej w implementacji FPGA:

HDF P GA= P31

i=2Ha(i) · Hb(i) ·P31

i=2Ha(i) · Hb(i) P31

i=2Ha(i)2·P31

7.3. Detekcja sabota˙zu kamery 137

W celu wykrycia zmiany na scenie miara poddawana była progowaniu, z progiem zale˙znym od sceny. Aby unikn ˛a´c operacji dzielenia, we wzorze (7.16) zastosowano nast˛epuj ˛ace przekształcenie:

HDF P GA= A

B < thHist => A < B · thHist (7.17) gdzie: A i B — odpowiednio dzielna i dzielnik z równania (7.16), thHist — próg detekcji.

Opisan ˛a metod˛e przetestowano na szeregu sekwencji wideo. Cz˛e´s´c z nich została przygotowana przez autora niniejszej rozprawy i p. Mateusza Komorkiewicza, cz˛e´s´c udost˛epniona w sieci Internet przez autorów pracy [152]. Zaproponowana metoda pozwalała poprawnie wykry´c sytuacje zakrycia obiektywu kamery (cz˛e´sciowego i całkowitego), jak równie˙z zmiany kadru (przykład zaprezentowano na rysunku 7.12). Modyfikacje ostro´sci nie były wykrywane, gdy˙z ten rodzaj sabota˙zu w bardzo nieznaczny sposób wpływa na histogram.

a) b)

a) a)

b)

b)

HDFPGA G

Rysunek 7.12: Przykład sabota˙zu polegaj ˛acego na zmianie kadru kamery

7.3.2.2. Porównywanie kraw˛edzi

Detekcj˛e kraw˛edzi zrealizowano z wykorzystaniem gradientu Sobela. Nast˛epnie wyliczano moduł z gradientu, jako sum˛e warto´sci bezwzgl˛ednych z ró˙znic, dla bie˙z ˛acej ramki i krótkoterminowego mo-delu tła. Analizie poddawano tylko kraw˛edzie le˙z ˛ace na stacjonarnych elementach sceny (okre´slanych z u˙zyciem obrazu MHI) i scharakteryzowane jako “mocne”, na podstawie progowania warto´sci ró˙znicy modułów bie˙z ˛acej ramki i krótkoterminowego modelu tła. Dla takich kraw˛edzi obliczana miara wyra˙zała si˛e wzorem:

G =X

x,y

abs(G(x, y)a− G(x, y)b) (7.18) gdzie: Ga— moduł gradientu dla bie˙z ˛acej ramki, Gb— moduł gradientu dla krótkoterminowego modelu tła.

Zaproponowana miara, zastosowana w sytuacji sabota˙zu polegaj ˛acego na zmianie ostro´sci obrazu, została zaprezentowana na rysunku 7.13.

T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

7.3. Detekcja sabota˙zu kamery 138

G

Rysunek 7.13: Przykład analizy ostro´sci obrazu na podstawie kraw˛edzi

W przypadku, gdy warto´s´c miary jest ni˙zsza od zadanego progu, mo˙ze oznacza´c to utrat˛e ostro´sci przez kamer˛e. Próg dobierany był w sposób r˛eczny w zale˙zno´sci od kraw˛edzi wyst˛epuj ˛acych na scenie (dokładnie na “pustej” scenie tj. bez poruszaj ˛acych si˛e obiektów z pierwszego planu). Przeprowadzone eksperymenty pokazały, ˙ze metoda pozwala na poprawne wykrycie zmiany ostro´sci oraz nie generuje fałszywych alarmów. Ponadto okazało si˛e, ˙ze metoda stanowi dobre narz˛edzie do wykrywania sabota˙zu polegaj ˛acego na stopniowej zmianie kadru. Powolny ruch kamery skutkuje nieznacznie rozmazanym modelem tła i jest wykrywany jako utrata ostro´sci. Dodatkowo analiza ostro´sci pozwala wykry´c sabota˙z polegaj ˛acy na umieszczeniu przed kamer ˛a fotografii monitorowanej sceny. Moment “wsuni˛ecia” zdj˛ecia w kadr kamery powoduje chwilowe rozmazanie modelu tła, które jest wykrywane. Warto doda´c, ˙ze ten typ sabota˙zu, zrealizowany z u˙zyciem zwykłego aparatu cyfrowego i wydruku laserowego fotografii oraz niedokładnego dopasowania zdj˛ecia do kadru kamery, z du˙zym prawdopodobie´nstwem nie zostałby zauwa˙zony przez operatora systemu monitoringu (zakładaj ˛ac, ˙ze nie obserwował on dokładnie obrazu w chwili podmiany). Przykład takiego sabota˙zu zaprezentowano na rysunku 7.14.

7.3.2.3. Analiza ´sredniej jasno´sci

W celu wykrywania gwałtownych zmian o´swietlenia — rozja´snienia lub przyciemnienia analizowa-nego obrazu, obliczano ´sredni ˛a jasno´s´c sceny dla obszarów uznanych za stacjonarne. Warto´s´c ta nast˛ep-nie była filtrowana na zasadzie ´srednast˛ep-niej bie˙z ˛acej. W kolejnym kroku obliczona ´srednia porównywana była z warto´sci ˛a historyczn ˛a (obliczon ˛a K ramek wcze´sniej) zapami˛etan ˛a w buforze FIFO. Je˙zeli moduł

7.3. Detekcja sabota˙zu kamery 139

a) b) c)

d) e)

a) b) c) a) b) c)

HDFPGA G

Rysunek 7.14: Przykład sabota˙zu polegaj ˛acego na prezentacji zdj˛ecia kadru monitorowanej sceny

z ró˙znicy obu warto´sci przekraczał zadany próg, generowany był alarm (o rozja´snieniu lub przyciemnie-niu, w zale˙zno´sci od znaku ró˙znicy). Przykład takiej sytuacji zaprezentowano na rysunku 7.15.

7.3.2.4. Redukcja liczby fałszywych alarmów

W celu zredukowania liczby fałszywych alarmów, które cz˛esto spowodowane były przez krótko-trwałe zdarzenia na scenie, zrealizowano analiz˛e czasow ˛a zdarze´n generowanych przez moduły: obli-czania ró˙znicy pomi˛edzy histogramami, obliobli-czania współczynnika kraw˛edziowego oraz analizy ´sredniej jasno´sci. Alarm generowany był tylko wtedy, gdy zdarzenie zostało wykryte na N kolejnych ramkach z sekwencji wideo. Aby zapobiec generowaniu alarmów przez du˙ze obiekty, dodano mechanizm, który pozwalał na wykluczanie z analizy wybranych fragmentów sceny (przykładowo torowiska na stacji me-tra).

T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

7.3. Detekcja sabota˙zu kamery 140

Średnia jasność

Rysunek 7.15: Przykład analizy ´sredniej jasno´sci sceny

W dokumencie Index of /rozprawy2/10579 (Stron 138-144)