Konfiguracja: Wykrywanie ruchu
O Agent DVR
Wykrywanie ruchu w Agent odgrywa kluczową rolę w inicjowaniu Alertów i ułatwianiu przetwarzania sztucznej inteligencji. Możesz skonfigurować Agent do nagrywania po wykryciu ruchu lub gdy zostanie uruchomiony alert. Aby skonfigurować te opcje, przejdź do menu Nagrywanie i sprawdź ustawienia Trybu. Dodatkowo, wykrywanie ruchu może być używane do aktywacji różnych Akcji.
Ważne jest zauważenie, że wykrywanie ruchu czasami może prowadzić do fałszywych alertów z powodu jego niezdolności do rozróżnienia między rzeczywistym ruchem obiektu a czynnikami środowiskowymi, takimi jak wiatr, deszcz czy zmiany jasności. Aby zmniejszyć takie fałszywe alerty, możesz zwiększyć dokładność wykrywania ruchu poprzez integrację Agenta z CodeProject.AI w celu bardziej zaawansowanego filtrowania alertów.
Konfiguracja wykrywania ruchu
Kontrola obszaru detektora ruchu w Agent jest dostępna poprzez edycję kamery i wybranie opcji Detector z górnego menu po prawej stronie. Aby skonfigurować detektor, zaczynasz od zdefiniowania stref do monitorowania. Agent obsługuje do 9 stref, z których każda jest reprezentowana przez inny kolor, wybieralny za pomocą rozwijanej listy Strefa. Aby utworzyć strefę, kliknij narzędzie pióro i narysuj na podglądzie wideo. Użyj lewego przycisku myszy lub dotknij ekranu do rysowania, a na komputerze stacjonarnym prawy przycisk myszy do usuwania. Narzędzie końcówki dostosowuje rozmiar końcówki rysowania, natomiast narzędzie gumki usuwa narysowane obszary. Narzędzie resetowania może być użyte do wypełnienia całego obszaru wybraną strefą. Agent monitoruje te kolorowe obszary w poszukiwaniu ruchu.
- Enabled: Przełącz używanie detektora.
- Detector: Wybierz typ detektora ruchu i skonfiguruj go za pomocą przycisku . Różne detektory ruchu są wyjaśnione w odpowiednich sekcjach.
- Color: Dostosuj kolor nakładki detekcji ruchu (nie dotyczy wszystkich detektorów).
- Timeout: Ustaw czas trwania (w sekundach, od 1 do 60, domyślnie 3) przez który kamera pozostaje w stanie ruchu po wykryciu zatrzymania ruchu. Pomaga to zmniejszyć szybko powtarzające się zdarzenia.
Korzystanie z Stref
Strefy są kluczowe dla detektorów sztucznej inteligencji (Rozpoznawanie twarzy / LPR / Rozpoznawanie obiektów) oraz detektorów śledzenia obiektów (takich jak linia przekraczająca, prędkość, śledzenie obiektów). Możesz wybrać, które strefy spowodują alert w konfiguracji detektora lub określić Akcje dla alertów w określonych strefach.
Prosty detektor aktywuje alert, jeśli wykryto wystarczający ruch we wszystkich strefach.
Niektóre typy detektorów nie korzystają z ustawień stref, takie jak MQTT, ONVIF lub ruch wywołany za pomocą wywołań API.
Korzystanie z obszarów detekcji ruchu
Obszary ruchu są konfigurowalnymi grupami stref, którym możesz nadać nazwę i zapisać do późniejszego użytku. Aby zapisać bieżącą konfigurację strefy ruchu jako nowy obszar, kliknij ikonę edycji obok Obszar. Te narzędzia pozwalają dodawać, edytować i usuwać obszary.
Aby zastosować obszar ruchu podczas przemieszczania kamery PTZ do pozycji PTZ Preset (korzystając z interfejsu Agent):
- Utwórz i zapisz nową konfigurację strefy ruchu pod nazwą, np. "parking".
- Dodaj nowe Działanie:
Jeśli: "Zastosowano PTZ Preset"
Wybierz polecenie PTZ Preset (np. "Przejdź do Preset 1"). Uwaga: Twoja kamera musi obsługiwać presetów PTZ, aby to działało.
Kliknij, aby dodać zadanie:
Zadanie: "Ustaw obszar wykrywania ruchu"
Wybierz swój nowy obszar ("parking").
Kliknij OK dwa razy. Teraz, za każdym razem, gdy wybierzesz preset lub jeśli Agent ustawia preset poprzez harmonogram lub inny zdarzenie, ten obszar ruchu zostanie automatycznie zastosowany.
Możesz również modyfikować obszar detektora ruchu za pomocą Harmonogramu. Ta funkcja pozwala na różne konfiguracje strefy ruchu w zależności od pory dnia, tygodnia lub konkretnych dat.
Prosty detektor
Proste
Detektor prosty skupia się na identyfikowaniu wszelkiego rodzaju ruchu w polu widzenia kamery. Jest to najbardziej efektywna pod względem zużycia procesora opcja spośród detektorów, ustępująca jedynie detektorowi ONVIF. Wykryte ruchy są podświetlane na czerwono, co pozwala łatwo rozpoznać źródło ruchu na scenie.
- Zaawansowane: Aby uzyskać dodatkowe ustawienia i opcje, zapoznaj się z sekcją zaawansowaną poniżej.
- Czułość: Dostosuj poziom ruchu wymaganego do wywołania detekcji. Ustawienie zarówno minimalnej, jak i maksymalnej wartości może uszczegółowić detekcję — na przykład maksymalna wartość 80 może pomóc zignorować duże zmiany jasności na dużą skalę. Liczby pod suwakiem reprezentują procent zmienionych pikseli.
- Wzmocnienie: Zastosuj mnożnik do zmienionych pikseli, aby zwiększyć lub zmniejszyć czułość detekcji ruchu.
Detektor obiektów HAAR
To podejście wykorzystuje pliki znane jako kaskady HAAR do rozpoznawania obiektów w strumieniu wideo. Jednakże, możesz osiągnąć lepsze rezultaty, korzystając z prostego detektora obiektów w połączeniu z konfiguracją Serwera AI.
- Rozmiar ramki: Wybierz rozmiar ramki do przetwarzania. Mniejsze ramki zmniejszają użycie CPU, ale mogą być mniej dokładne.
- Interwał detekcji: Ustaw częstotliwość przetwarzania ramek, w milisekundach. Na przykład, 200 oznacza 5 razy na sekundę, a 1000 oznacza raz na sekundę.
- Limity szerokości i wysokości: Zdefiniuj zakres rozmiaru obiektów do wykrycia przez Agent w formie procentowej szerokości lub wysokości ramki. Dostosowanie tych suwaków wyświetli nakładkę na wideo, wskazującą zakres rozmiaru obiektów, które są obiektem detekcji.
- Użyj GPU: Opcja wykorzystania GPU do przetwarzania, dostępna tylko jeśli Twoje GPU obsługuje Cuda i wymagane sterowniki są zainstalowane.
- Plik: Wybierz plik kaskady HAAR do konfiguracji detektora obiektów. Domyślne pliki są dostarczone do wykrywania twarzy i twarzy kota.
- Warunek alertu i Liczba alertów: Skonfiguruj Agent do generowania alertów na podstawie detekcji obiektów w zależności od liczby wykrytych obiektów. Na przykład, aby wygenerować alert po rozpoznaniu twarzy, ustaw warunek na "Więcej niż" i Liczbę alertów na 0.
- Strefy alertów (v4.4.8.0+): Określ strefy ruchu do uwzględnienia w obszarze monitorowania.
- Sprawdź narożniki: Aby uzyskać więcej informacji, zobacz Sprawdzanie narożników.
Sprawdzanie narożnika
Agent używa zaawansowanej metody do określenia, czy wykryte obiekty powinny wywoływać alert czy działania na podstawie konfiguracji strefy. Robi to poprzez sprawdzenie punktu centralnego wykrytego obiektu i opcjonalnie siatki rozszerzającej się do rogów ramki obiektu. Możesz dostosować tę funkcję, ustawiając procent, który reprezentuje odległość od punktu centralnego do rogu ramki obiektu dla sprawdzania stref. W zasadzie ustawienie 0 oznacza, że sprawdzany jest tylko punkt centralny, 100 sprawdza wszystkie rogi, a 50 sprawdza środki pomiędzy punktem centralnym a każdym rogiem prostokąta otaczającego. Jeśli otrzymujesz liczne powiadomienia o zdarzeniach, gdzie obiekt nie wydaje się znajdować w wyznaczonej strefie, ustawienie Sprawdź Rogi na 0 może być korzystne.
MQTT
Możesz uruchomić detekcję ruchu z serwera MQTT. Najpierw upewnij się, że poprawnie skonfigurowałeś MQTT. Następnie, aby uruchomić detekcję obiektów, po prostu przekaż polecenie wskazane na ekranie konfiguracji detektora do kanału SERVER/commands, gdzie SERVER to nazwa twojego serwera (wyświetlana w menu serwera, które możesz edytować w Ustawieniach). Ta integracja pozwala na bardziej wszechstronny i responsywny system detekcji ruchu, wykorzystujący możliwości twojego serwera MQTT.
ONVIF
Wiele urządzeń kompatybilnych z ONVIF jest wyposażonych w własne możliwości detekcji ruchu. Gdy wybierzesz ten tryb i sparujesz go z kamerą zdolną do obsługi ONVIF (korzystając z typu połączenia ONVIF w Agent), Agent będzie polegał na samym urządzeniu do dostarczania zdarzeń detekcji ruchu i wyzwalania działań na ich podstawie. Jeśli napotkasz jakiekolwiek problemy z tą funkcjonalnością, zaleca się sprawdzenie logów (dostępne pod adresem /logs.html na serwerze lokalnym), ponieważ istnieje możliwość, że twoja kamera nie obsługuje detekcji ONVIF. Aby uzyskać więcej informacji na temat konfigurowania tych ustawień, proszę zajrzeć do ustawień serwera ONVIF.
Detektor osób
Ta metoda wykorzystuje specjalny algorytm zaprojektowany specjalnie do wykrywania pieszych. Niemniej jednak możesz zauważyć, że użycie prostego detektora obiektów i integracja sztucznej inteligencji do filtrowania alertów daje lepsze rezultaty.
- Użyj GPU: Zdecyduj, czy chcesz użyć GPU do przetwarzania, dostępne tylko jeśli Twój GPU obsługuje Cuda i wymagane sterowniki są zainstalowane.
- Rozmiar ramki: Wybierz rozmiar ramki do przetwarzania. Zauważ, że mniejsze ramki wymagają mniej zasobów procesora, ale mogą dawać mniej dokładne wyniki.
- Interwał wykrywania: Ustaw częstotliwość przetwarzania ramki, w milisekundach. Na przykład, 200 oznacza 5 razy na sekundę, podczas gdy 1000 oznacza raz na sekundę.
- Warunek alertu i liczba alertów: Skonfiguruj kryteria generowania alertów na podstawie liczby wykrytych obiektów. Na przykład, aby wywołać alert po rozpoznaniu twarzy, ustaw warunek na "Więcej niż" i wpisz 0 w polu Liczba alertów.
- Strefy alertów (v4.4.8.0+): Wybierz konkretne strefy ruchu, które powinny być monitorowane w obszarze detekcji.
- Sprawdź narożniki: Aby uzyskać bardziej szczegółowe ustawienia, zajrzyj do Sprawdzanie narożników.
Reolink
Niektóre kamery Reolink oferują punkt końcowy API, który Agent może odpytywać, aby otrzymywać stan alertów dotyczących ruchu lub sztucznej inteligencji. Jeśli kamera obsługuje tę funkcję, możesz wykorzystać ten detektor. Aby sprawdzić, czy Twoja kamera ma tę możliwość, spróbuj uzyskać dostęp do adresu URL: `http://[IP ADDRESS]/api.cgi?cmd=GetMdState&channel=0&rs=Get&user=[USERNAME]&password=[PASSWORD]` (zamień `[IP ADDRESS]`, `[USERNAME]` i `[PASSWORD]` na odpowiednio adres IP kamery i dane logowania). Pomyślne połączenie zwróci tekst sformatowany w formacie JSON, a nie stronę błędu.
- Interwał: Określ częstotliwość, z jaką Agent odpytuje Twoją kamerę o alerty lub dane dotyczące ruchu.
- Tryb: Wybierz między 'Ruch' i 'AI'. Oba tryby wyzwalają zdarzenia detektora ruchu w Agencie, które można wykorzystać do nagrywania (ustaw tryb nagrywania na Wykrywanie). Opcja 'AI' wyzwala detekcję ruchu, jeśli kamera zidentyfikuje konkretne klasy obiektów (takie jak dog_cat, twarz, ludzie, pojazd).
Możesz skonfigurować działania w celu wykonywania zadań, gdy wykryte zostaną obiekty oznaczone jako dog_cat, twarz, ludzie lub pojazd, począwszy od wersji 4.6.6.0.
Uwaga: Aby włączyć funkcję AI, możesz potrzebować aktywować śledzenie w interfejsie sieciowym kamery i ustawić parametry minimalnego i maksymalnego rozmiaru obiektu. Agent oznaczy wtedy Twoje nagrania obiektami zidentyfikowanymi przez Reolink.
Wykrywanie prędkości
To podejście wykorzystuje informacje o scenie dostarczone przez Ciebie do śledzenia poruszających się obiektów, oszacowania ich prędkości i generowania alertów, jeśli obiekty poruszają się zbyt szybko lub zbyt wolno.
- Zaawansowane: Aby uzyskać bardziej szczegółowe ustawienia, zapoznaj się z sekcją zaawansowaną poniżej.
- Limit szerokości i limit wysokości: Zdefiniuj zakres wielkości do wykrywania obiektów na scenie, gdzie wartości są wyrażone jako procent szerokości lub wysokości sceny. Dostosowanie tych suwaków spowoduje wyświetlenie nakładki na wideo, wskazującej zakres wielkości docelowych obiektów.
- Minimalny przesunięcie: Ustaw minimalny dystans, jaki obiekt musi pokonać, aby został uznany za poruszający się, na podstawie procentu szerokości sceny.
- Minimalny czas: Określ czas, jaki obiekt musi być w ruchu, aby został śledzony, w dziesiątych częściach sekundy (np. 1 = 0,1 sekundy, 10 = 1 sekunda).
- Pomiar prędkości: Wybierz preferowaną jednostkę pomiaru prędkości dla nakładki.
- Limity prędkości: Określ dolne i górne limity wykrywania prędkości. Ruchy poza tym zakresem spowodują wyzwolenie zdarzeń wykrywania ruchu.
- Dystans poziomy i pionowy: Wprowadź całkowity dystans na scenie w metrach. Agent używa tej miary do obliczenia prędkości poruszających się obiektów.
- Strefy alertów (v4.4.8.0+): Wybierz, które strefy ruchu są uwzględnione w obszarze monitorowania.
- Sprawdź narożniki: Aby uzyskać dodatkowe ustawienia, zobacz Sprawdzanie narożników.
Śledzenie obiektów
Ten detektor identyfikuje i śledzi poruszające się obiekty, wyzwalając zdarzenia detekcji ruchu na podstawie czasu ich obecności na scenie i odległości, jaką pokonują.
- Zaawansowane: Aby uzyskać bardziej szczegółowe ustawienia i opcje, zapoznaj się z sekcją zaawansowaną poniżej.
- Ograniczenia Szerokości i Wysokości: Określ zakres rozmiaru do wykrywania obiektów, podając wartości jako procent szerokości lub wysokości sceny. Dostosowanie tych suwaków spowoduje nakładanie wizualnej reprezentacji zakresu rozmiaru obiektu na wideo.
- Minimalny Przebieg: Zdefiniuj minimalny dystans, jaki obiekt musi pokonać, aby został uznany za poruszający się obiekt, w odniesieniu do szerokości sceny.
- Minimalny Czas: Ustaw minimalny czas, jaki obiekt musi być w ruchu, aby został uwzględniony w śledzeniu, w dziesiątych częściach sekundy (np. 1 = 0,1 sekundy, 10 = 1 sekunda).
- Wyświetl Łącznie: Dodaj licznik do transmisji wideo na żywo, aby śledzić poruszające się obiekty.
- Mapa Ciepła: Wizualizuj wzorce ruchu w czasie poprzez dodawanie linii do śledzonych obiektów.
- Strefy Alarmowe (v4.4.8.0+): Wybierz, które strefy ruchu powinny być uwzględnione w obszarze monitorowania.
- Sprawdź Narożniki: Aby uzyskać dodatkowe informacje, zobacz Sprawdzanie Narożników.
Agent monitoruje i śledzi ruch na scenie, wyświetlając kolorowe prostokąty wokół wykrytych obiektów. Kolory mają następujące znaczenia:
- Biały: Obiekt właśnie wykryty i jest rozważany.
- Żółty: Obiekt wykryty przez kilka klatek.
- Pomarańczowy: Obiekt poruszał się co najmniej przez minimalny czas określony w ustawieniach śledzenia.
- Czerwony: Obiekt spełnił wszystkie wymagania śledzenia, aby wywołać zdarzenie detekcji ruchu.
Przewody alarmowe
Ten detektor rozpoznaje i śledzi poruszające się obiekty, wyzwalając zdarzenia detekcji ruchu, gdy przekroczą zdefiniowane linie przejścia na scenie. Aby dodać linie przejścia, po prostu kliknij i przeciągnij na żywym obrazie wideo. Możesz utworzyć wiele linii przejścia, jak to konieczne. Aby usunąć linię przejścia, kliknij i przeciągnij jeden z jej punktów poza scenę.
- Zaawansowane: Aby uzyskać bardziej szczegółowe ustawienia i opcje, zajrzyj do sekcji zaawansowanej poniżej.
- Limit szerokości i limit wysokości: Ustaw zakres wielkości obiektów do wykrycia, z wartościami wyrażonymi jako procent szerokości lub wysokości sceny. Dostosowanie tych suwaków spowoduje nakładanie się wizualnej reprezentacji zakresu wielkości docelowej na wideo.
- Minimalna odległość: Określ minimalną odległość, jaką obiekt musi pokonać, aby został uznany za poruszający się obiekt, w odniesieniu do szerokości sceny.
- Minimalny czas: Zdefiniuj minimalny czas trwania, w którym obiekt musi być w ruchu, aby został śledzony, w dziesiątych częściach sekundy (np. 1 = 0,1 sekundy, 10 = 1 sekunda).
- Powtórne wyzwalanie: Włącz tę opcję, aby umożliwić obiektowi wielokrotne wyzwalanie tej samej linii przejścia. Domyślnie obiekt może wyzwolić linię przejścia tylko raz.
- Licznik: Pokaż liczbę razy, jak obiekty przekroczyły linię przejścia, wraz z kierunkiem przekroczenia. Opcje obejmują zliczanie w lewo, w prawo, w obie strony lub łączne przekroczenia.
- Alert: Skonfiguruj system do generowania alertu, jeśli linia przejścia zostanie przekroczona w określonym kierunku lub w dowolnym kierunku.
- Strefy alertów (v4.4.8.0+): Wybierz, które strefy ruchu są uwzględnione w obszarze monitorowania.
- Sprawdź narożniki: Aby uzyskać dodatkowe informacje, zobacz Sprawdzanie narożników.
Przez API
Aby zainicjować wykrywanie ruchu dla kamery za pomocą wywołania API, musisz określić typ obiektu (ot) i identyfikator obiektu (oid). Na przykład, dla kamery (ot=2) o identyfikatorze 1 (oid=1 - ten identyfikator jest wyświetlany na górze kontrolki edycji podczas edytowania urządzenia), wywołanie API będzie sformatowane następująco:http://localhost:8090/command/detect?ot=2&oid=1
Ustawienia zaawansowane
Domyślne ustawienia detektorów są zazwyczaj odpowiednie dla większości scen, ale w razie potrzeby można je dostroić, aby poprawić wydajność.
- Analizator: Obecnie dostępny analizator to odejmowanie tła CNT, znany z wysokiej dokładności i niskiego użycia CPU.
- Rozmiar ramki: Wybierz rozmiar ramki do przetwarzania. Mniejsze ramki zmniejszają użycie CPU, ale mogą obniżyć dokładność.
- Tracker: Wybierz tracker OpenCV do śledzenia obiektów. Opcje obejmują:
- Mosse: Ten tracker oferuje najniższe użycie CPU, ale jest najmniej dokładny (domyślnie).
- KCF: Bardziej dokładny niż Mosse, ale nieco bardziej intensywny dla CPU.
- CSRT: Najbardziej dokładna opcja, ale również najbardziej obciążająca dla CPU. Idealna do trudnych sytuacji śledzenia.
- Maks. obiektów: Ustaw limit liczby obiektów do śledzenia jednocześnie. Więcej obiektów oznacza większe użycie CPU.
- Interwał detekcji: Zdefiniuj częstotliwość przetwarzania ramek dla detekcji ruchu, w milisekundach (np. 200 dla 5 razy na sekundę, 1000 dla raz na sekundę).
- Interwał śledzenia: Ustaw częstotliwość przetwarzania trackera. Wyższy interwał może spowodować utratę szybko poruszających się obiektów (np. 200 dla 5 razy na sekundę, 1000 dla raz na sekundę).
- Stabilność pikseli: Określ liczbę próbek, aby piksel został uznany za stabilny oraz maksymalny 'kredyt', jaki piksel może zdobyć za pozostanie w tym samym kolorze. Te ustawienia są kluczowe dla skutecznego odejmowania tła i detekcji ruchu. Więcej informacji
- Użyj historii: Włącz to, aby dowiedzieć się o obiektach poruszających się konsekwentnie na scenie. Zazwyczaj zaleca się wyłączenie tego, chyba że jest to konieczne.
- Proces równoległy: Aktywuj przetwarzanie równoległe w algorytmie detekcji ruchu. Zaleca się pozostawienie tego włączonego.
- Limit czasu śledzenia: Określ czas oczekiwania (w sekundach) na ponowne pojawienie się obiektu przed zaprzestaniem jego śledzenia.
- Limit czasu ruchu: Ustaw czas oczekiwania (w sekundach) na ponowne poruszenie się nieruchomego obiektu przed zatrzymaniem jego śledzenia.