Są one stosowane również w systemach kontroli procesów produkcji i jakości wytwarzanych wyrobów, w systemach wykrywających dysfunkcyjność podzespołów, np.: obserwacja rozkładu temperatury obiektów, pomiar gabarytów obserwowanego obiektu [1,2].
O ile w przypadku prostych systemów realizacja monitoringu może ograniczyć się jedynie do warstwy sprzętowej (współczesne rejestratory mogą realizować takie funkcje, jak sterowanie kamerami, rejestracja w dowolnym trybie), o tyle w przypadku systemów bardziej złożonych konieczna jest implementacja oprogramowania odpowiedzialnego za akwizycję i przetwarzanie obrazu. Takie rozwiązanie daje możliwość rekonfiguracji i optymalizacji pracy systemu monitoringu [3].
Jednym z najpopularniejszych środowisk programistycznych dedykowanych systemom automatyki jest pakiet LabView firmy National Instruments. Jest to graficzne środowisko programistyczne dające szerokie możliwości syntezy złożonych aplikacji do sterowania urządzeniami i przetwarzania danych.
Środowisko to pozwala na obróbkę sygnałów zarówno cyfrowych jak i analogowych, pozwala przetwarzać sygnały wizyjne jak również współpracuje ze sprzętem pomiarowym.
Analiza budowy opracowanego systemu CCTVW artykule przedstawiono opracowany system monitoringu wizyjnego. Zastosowano w nim monochromatyczne kamery analogowe oraz jednokanałowe karty akwizycji obrazu firmy National Instruments. Do obsługi kart oraz przetwarzania sygnału wizyjnego opracowano specjalistyczne oprogramowanie w środowisku LabView.
Schemat blokowy systemu monitoringu przedstawiony został na rysunku 1. W skład systemu wchodzą trzy monochromatyczne kamery analogowe o podwyższonej rozdzielczości (570 linii TV) zasilane napięciem stałym 12 V. Sygnały wizyjne przesyłane są do kart akwizycji obrazu przewodem koncentrycznym 75 Ω. Opcjonalnie, sygnał z jednej kamery może być transmitowany za pomocą modułu bezprzewodowego firmy TAYAMA. Moduł ten może odbierać sygnały wizyjne z dwóch przełączanych kamer analogowych na różnych częstotliwościach.
fot. Rys. 2 Karta akwizycji NI-PCI 1411
Karta akwizycji NI-PCI 1411Każda z kamer podłączona jest do niezależnej karty wizyjnej. Do przetwarzania sygnałów wizyjnych z kamer zastosowano analogowe karty NI-PCI 1411 (rys. 2). Zainstalowane są one w jednostce centralnej i współpracują ze środowiskiem LabView poprzez dołączony sterownik NI-IMAQ. Komunikacja odbywa się za pomocą interfejsu PCI. Każda karta wyposażona jest w jedno wejście na przewód koncentryczny BNC (75 Ω, ang. composite video) oraz jedno wejście w standardzie S-Video. Karta posiada tylko jeden kanał transmisji danych wejściowych. Oznacza to, że sygnał przekazywany może być tylko z jednego wejścia: BNC lub S-Video. Dodatkowo karta posiada wejście wyzwalania TRIG sygnałem TTL, które może być skonfigurowane również jako programowe wyjście cyfrowe.
NI-PCI 1411 obsługuje standardowe formaty obrazu zarówno kolorowego jak również monochromatycznego:
• NTSC – 30 kl/s,
• RS-170 – 30 kl/s,
• PAL – 25 kl/s,
• CCIR – 25 kl/s.
Akceptowalne poziomy sygnałów wejściowych mogą zawierać się w granicach 0 mV – 700 mV (kalibrowane) lub też 400 mV – 800 mV (zmienne wzmocnienie). Przetwarzanie wizyjnego sygnału wejściowego opiera się na trzech tablicach LUT (dla standardu RGB) oraz procesorze obrazu przetwarzającym zdekodowany sygnał. Pozwala to uzyskać informacje o obrazie w formacie RGB (32 bit), HSL (32 bit), R/G/B/H/S lub L (8 bit) [4].
Opis opracowanego oprogramowania do przetwarzania sygnałów wizyjnychDo opracowania programu do przetwarzania sygnałów wizyjnych z kamer użyto środowiska National Instruments LabView w wersji 8.5 oraz pakietu do obróbki obrazu NI Vision Development Module. Rysunek 3 przedstawia algorytm działania aplikacji rejestrującej obraz i wykrywającej ruch [4].
fot. Rys. 3 Algorytm opracowanego programu
Sygnały wizyjne z kamer są zapisywane do bufora pamięci. Parametry akwizycji, takie jak rozmiar i rozdzielczość obrazu określane są programowo. Bieżący obraz jest wyświetlany na ekranie monitora. Jest on jednocześnie porównywany z obrazem wzorcowym zapisanym w pamięci. Porównanie to ma na celu detekcję ruchu. Obrazem wzorcowym jest poprzednia klatka. Analiza tych obrazów polega na porównaniu wektorów ich cech. Do opracowania poprawnego algorytmu detekcji ruchu niezbędne było określenie wymagań dopuszczalnych różnic porównywanych obrazów. Konieczne było także wyznaczenie procentowej ilości pikseli o różnych wartościach, określenie dopuszczalnych zmian jasności obrazu, opisanie wielkości analizowanego obrazu. Odpowiedni wybór analizowanych obszarów zminimalizował wpływ szumów oraz zmian natężenia światła na wynik porównania. Otrzymywane z trzech
kart obrazy aplikacja równolegle zapisuje na dysk komputera. Użytkownik może określić lokalizacje zapisywanych plików. W sytuacji, gdy nie wykryto ruchu, plik, do którego zapisywane są obrazy zostaje nadpisywany cyklicznie co określoną przez użytkownika liczbę obrazów. Przykładowo, zapisywanych jest pierwszych 3000 klatek. Po przekroczeniu tej liczby kolejne 3000 zapisywane są w tym samym pliku. W momencie wystąpienia alarmu spowodowanego wykryciem ruchu zmieniane są parametry zapisu (zmiana nazwy pliku). Następnie, kolejne 3000 klatek zapisywane jest w oddzielnym pliku. Dzięki temu na dysku znajdują się jedynie zapisy zawierające ruch,
a ponadto zapis zawiera nie tylko klatki, na których występuje ruch, ale i wcześniejsze, przez co możliwa jest analiza sytuacji bezpośrednio przed wystąpieniem alarmu. Takie rozwiązanie minimalizuje zużycie przestrzeni dyskowej. Na rysunku 4 przedstawiono różne tryby wyświetlania obrazu z poszczególnych kanałów. Wyboru sposobu wyświetlanie dokonuje użytkownik [5,6].
Dostępne sposoby prezentacji obrazu pozwalają na równoległe przedstawianie obrazu ze wszystkich dostępnych kanałów (w pomniejszeniu), prezentację pełnoekranową (z dostępnym trybem „switch” – przełączanie kanałów) czy też PIP (ang. picture in picture). W sytuacji wystąpienia alarmu, spowodowanej wykryciem ruchu, zaznaczony zostaje ekran wyświetlający obraz z kamery, która wykryła intruza. Wówczas może też być wyświetlony obraz w trybie pełnoekranowym lub PIP. Wykrycie ruchu w kilku kamerach powoduje, że w trybie pełnoekranowym wyświetlany jest obraz z kamery o najwyższym indeksie.
fot. Rys. 4 Sposoby wyświetlania obrazu
Dodatkową funkcją aplikacji jest możliwość zaimplementowania mechanizmu zliczania osób lub nawet ich identyfikacji.