AI: Serwery
O programie
Agent DVR w pełni integruje się z serwerami AI, takimi jak DeepStack AI, CodeProject AI, PlateRecognizer.com, Claude, Gemini, OpenAI (ChatGPT) oraz lokalnymi LLM, takimi jak Ollama, vLLM i LM Studio, aby dodać inteligentne filtrowanie alertów, rozpoznawanie obiektów, rozpoznawanie scen oraz inteligentne zarządzanie zdarzeniami.
Oprócz DeepStack i CodeProject AI, możesz również korzystać z innych serwerów AI, które obsługują to samo API:
Rozpoznawanie obiektów i wizja komputerowa
- https://codeproject.github.io/ - Serwer przetwarzania AI oparty na GPU/CPU, działający na wielu platformach
- https://docs.platerecognizer.com/ - Serwer rozpoznawania tablic rejestracyjnych (API oparte na sieci)
- https://github.com/runningman84/docker-coral-rest-server - Modele Tensorflow-lite na RPi (lub Linux/Mac) z przyspieszeniem z urządzenia USB Coral
- https://github.com/robmarkcole/coral-pi-rest-server/ - Modele Tensorflow-lite na akceleratorze USB Coral za pośrednictwem aplikacji Flask
- https://github.com/xnorpx/blue-candle - Super mały serwer rozpoznawania obiektów
Usługi AI w chmurze
- https://platform.openai.com/ - API OpenAI (ChatGPT, GPT-4 Vision) do analizy obrazów i czatu
- https://console.anthropic.com/ - API Anthropic Claude do zaawansowanego rozumowania i zrozumienia obrazów
- https://ai.google.dev/ - API Google Gemini do możliwości AI multimodalnych
- https://docs.anthropic.com/ - Dokumentacja API Claude
- https://platform.openai.com/docs/ - Dokumentacja API OpenAI
- https://ai.google.dev/gemini-api/docs - Dokumentacja API Gemini
Lokalne serwery AI (LLMs)
- https://ollama.com/ - Ollama: Uruchamiaj duże modele językowe lokalnie
- https://docs.vllm.ai/ - vLLM: Wnioskowanie i serwowanie LLM o wysokiej przepustowości
- https://lmstudio.ai/ - LM Studio: Łatwa w użyciu aplikacja desktopowa dla lokalnych LLM
- https://github.com/ollama/ollama - Repozytorium Ollama na GitHubie
- https://github.com/vllm-project/vllm - Repozytorium vLLM na GitHubie
Dodawanie modeli AI
Aby dodać własne pliki modeli do Agent DVR, przejdź do Ustawienia serwera > Ustawienia AI i kliknij Konfiguruj pod Modelami AI. Agent zawiera dwa wstępnie zbudowane modele, które zostały zoptymalizowane pod kątem wydajności dla Agent DVR.
Przed skonfigurowaniem modelu musisz dodać go do folderu Modeli Agent DVR. Zwykle znajduje się on w Agent/Media/Models/ONNX (ścieżka może się różnić w zależności od systemu operacyjnego). Pełna ścieżka jest wyświetlana na stronie Dodaj model, jeśli nie jesteś pewien. Agent używa modeli .onnx. Możesz konwertować inne formaty modeli AI na ONNX za pomocą narzędzi Pythona.
Gdy już zbudujesz i skopiujesz model, dodanie go do Agenta jest proste - kliknij, aby dodać model:
- Nazwa: Nadaj swojemu modelowi nazwę - może to być cokolwiek, co chcesz.
- Plik modelu: Wybierz nazwę pliku modelu, który skopiowałeś do folderu.
- Etykiety: Wprowadź listę etykiet (lub "klas"), które twój model wyszukuje w formacie CSV bez cudzysłowów (spacje są automatycznie usuwane).
- Układ: Wybierz, czy twój model jest w formacie NCHW czy NHWC. Większość modeli jest w formacie NCHW, jeśli nie jesteś pewien.
- Kolejność kanałów: Wybierz, czy twój model chce obrazy w RGB czy BGR. Większość modeli używa RGB. Jeśli twój model jest jednokanałowy (odcienie szarości), to zostanie to zignorowane.
- Normalizuj: Wybierz, jak dane powinny być normalizowane przed użyciem w twoim modelu. Większość modeli używa normalizacji 0-1 (dziel wartości pikseli przez 255).
- Wypełnij obraz: To kontroluje, czy obraz powinien być rozciągnięty do wymiarów wejściowych, czy wypełniony czarnymi paskami. Zwykle lepiej jest wypełniać obrazy dla dokładności.
- Ma NMS: Zaznacz to, jeśli twój model już wewnętrznie wykonuje tłumienie maksymalne. W przeciwnym razie Agent sam wykona NMS. NMS kontroluje, jak prostokąty wynikowe są filtrowane.
- Domyślne NMS: Ustaw ogranicznik nakładania dla NMS (domyślnie 45% nakładania).
Po dodaniu modelu będzie on dostępny do użycia w zakładce Rozpoznawanie obiektów twojego urządzenia. Jeśli napotkasz problemy, możesz wrócić do konfiguracji modelu i wprowadzić zmiany. Agent obsługuje również ponowne ładowanie pliku modelu, więc możesz go nadpisać nową wersją, gdy jest uruchomiony.
Ustawianie serwerów AI
Aby skonfigurować serwery AI, kliknij ikonę w lewym górnym rogu głównego interfejsu Agent DVR. Następnie kliknij Ustawienia w sekcji Konfiguracja, wybierz Ustawienia AI z rozwijanego menu i kliknij Konfiguruj w sekcji Serwery AI.
Agent DVR integruje się z CodeProject.AI w celu uzyskania różnych funkcji AI, w tym rozpoznawania obiektów, rozpoznawania twarzy, ALPR (Automatyczne Rozpoznawanie Tablic Rejestracyjnych) oraz super rozdzielczości (ulepszanie). PlateRecognizer.com jest również wspierany jako dostawca ALPR. CodeProject.AI jest open source, darmowy i kompatybilny z większością platform.
Aby rozpocząć, zainstaluj serwer AI dla swojej platformy i połącz Agent DVR z nim, klikając przycisk Konfiguruj, a następnie Dodaj.
Możesz dodać tyle serwerów AI do Agent DVR, ile potrzebujesz. Kamery w Agent DVR mogą być skonfigurowane do korzystania z różnych serwerów AI dla każdej funkcji, lub możesz użyć jednego serwera AI do wszystkich zadań.
Konfiguracja serwera
- Nazwa: Nazwij swój serwer, np. Łapacz Kotów.
- Adres URL serwera AI: Wprowadź adres URL swojego serwera AI, np. http://localhost:32168/
- Klucz API: Wprowadź swój klucz, jeśli jest ustawiony (opcjonalnie).
- Czas oczekiwania: Czas oczekiwania w sekundach na żądania do serwera.
- Opóźnienie ponownej próby: Czas w sekundach przed ponowną próbą nieudanego żądania do tego serwera.
Kliknij OK, aby zapisać swoje ustawienia.
Korzystanie z OpenAI
Aby skonfigurować OpenAI ("Chat GPT") do odpowiadania na pytania dotyczące tego, co dzieje się na Twoim strumieniu wideo, przejdź do Ustawienia Serwera - Serwery AI i wybierz "Open AI" w sekcji Zapytaj AI.
- URL: Wprowadź adres URL usługi. Domyślnie jest to "https://api.openai.com/v1/chat/completions".
- Klucz API OpenAI: Po zarejestrowaniu się w OpenAI, przejdź do Strony Kluczy API i wygeneruj nowy klucz prywatny. Skopiuj i wklej ten klucz do określonego pola.
- Model: Określ model do użycia. Domyślnie jest to gpt-4o. OpenAI może usunąć lub zmienić to w późniejszym czasie.
- Maksymalna liczba tokenów: To ustawia maksymalne użycie tokenów na żądanie. Jeśli napotkasz problemy, sprawdź dzienniki pod adresem /logs.html, ponieważ mogą być związane z użyciem tokenów.
Po skonfigurowaniu OpenAI, odwołaj się do Zapytaj AI w celu uzyskania instrukcji dotyczących korzystania z niego do odpowiadania na ogólne pytania dotyczące tego, co dzieje się na Twoim strumieniu z kamery.
Korzystanie z chmury
Aby skonfigurować Claude AI do odpowiadania na pytania dotyczące tego, co dzieje się na Twoim strumieniu wideo, przejdź do Ustawienia serwera - Serwery AI i wybierz "Claude" w sekcji Pytaj AI.
- URL: Wprowadź adres URL usługi. Domyślnie jest to "https://api.anthropic.com/v1/messages".
- Klucz API Claude: Po zarejestrowaniu się w Claude, odwiedź stronę Strona kluczy API i utwórz nowy klucz prywatny. Skopiuj i wklej ten klucz do pola.
- Wersja: Określ wersję do użycia. Domyślnie jest to 2023-06-01. Może to zostać usunięte lub zmienione w przyszłości przez firmę Anthropic.
- Model: Określ model do użycia. Domyślnie, w momencie pisania, jest to claude-3-sonnet-20240229.
- Maksymalna liczba tokenów: To kontroluje maksymalne zużycie tokenów na żądanie. Sprawdź dzienniki na stronie /logs.html, jeśli napotkasz problemy, ponieważ może to być związane z zużyciem tokenów.
Po skonfigurowaniu Claude'a, zobacz Pytaj AI, aby dowiedzieć się, jak używać go do rozpoznawania ogólnych scenariuszy na Twoim strumieniu z kamery.
Korzystanie z Geminiego
Aby skonfigurować Geminiego do odpowiadania na pytania dotyczące tego, co dzieje się na Twoim strumieniu wideo, przejdź do Ustawienia Serwera - Serwery AI i wybierz "Gemini" w sekcji Zapytaj AI.
- URL: Wprowadź adres URL usługi. Domyślnie jest to "https://generativelanguage.googleapis.com".
- Klucz API Geminiego: Po zarejestrowaniu się w Geminim, odwiedź stronę Strona Kluczy API i utwórz nowy klucz prywatny. Skopiuj i wklej ten klucz do pola.
- Wersja: Określ wersję do użycia. Domyślnie jest to v1beta. Może to zostać usunięte lub zmienione w przyszłości przez Google.
- Model: Określ model do użycia. Domyślnie, w chwili pisania tego tekstu, jest to gemini-1.5-flash.
- Maksymalna liczba tokenów: Ustawia maksymalną liczbę tokenów na żądanie. Sprawdź dzienniki na stronie /logs.html, jeśli napotkasz problemy, ponieważ mogą one być związane z wydatkowaniem tokenów.
Po skonfigurowaniu Geminiego, zobacz Zapytaj AI, aby dowiedzieć się, jak go używać do rozpoznawania ogólnych scenariuszy na strumieniu z kamery.
Używanie innych serwerów LLM
Od wersji 6.5.3.0+ możesz używać własnych lokalnych serwerów LLM (takich jak vLLM, Ollama i LM Studio) do opisywania obrazów, które Agent DVR rejestruje z Twoich kamer w zdarzeniach Alert oraz odpowiadania na pytania dotyczące tego, co dzieje się w Twoich strumieniach wideo. Zobacz AI Describe i Ask AI.
Aby skonfigurować lokalny serwer AI, przejdź do Ustawienia serwera - Serwery AI i kliknij przycisk Konfiguruj obok LLM, którego chcesz użyć (Ollama, vLLM lub LM Studio).
- URL: Określ punkt końcowy, na którym działa Twój serwer LLM. Domyślne adresy URL to:
- Ollama:
http://localhost:11434/api/chat - vLLM:
http://localhost:8000/v1/chat/completions - LM Studio:
http://localhost:1234/v1/chat/completions
- Ollama:
- Klucz API: Jeśli Twój serwer LLM wymaga uwierzytelnienia, wprowadź tutaj klucz API. Większość lokalnych serwerów nie wymaga tego, chyba że jest to specjalnie skonfigurowane.
- Model: Wybierz model zdolny do analizy obrazu, który chcesz użyć do analizy obrazów. Musisz wcześniej pobrać i załadować ten model na swoim serwerze LLM. Popularne wybory to:
- Modele LLaVA (ogólnego przeznaczenia)
- Qwen2-VL (wysoka wydajność)
- Llama 3.2 Vision (najnowszy od Meta)
- Temperatura: Kontroluje kreatywność w porównaniu do dokładności w odpowiedziach (0.0-1.0). Niższe wartości (0.3-0.4) produkują bardziej faktograficzne, spójne opisy. Wyższe wartości (0.6-0.8) generują bardziej zróżnicowane, kreatywne odpowiedzi. Zalecane: 0.4 do analizy kamer bezpieczeństwa.
- Max Tokens: Maksymalna liczba słów/tokenów w odpowiedzi AI. Wyższe wartości pozwalają na bardziej szczegółowe opisy, ale zajmują więcej czasu na wygenerowanie. Zalecane: 300-500 do szczegółowej analizy obrazów, 150-250 do krótkich opisów.
- top_p: Kontroluje różnorodność odpowiedzi, ograniczając wybór słownictwa (0.0-1.0). Niższe wartości używają bardziej powszechnych słów, wyższe wartości pozwalają na bardziej zróżnicowane słownictwo. Zalecane: 0.9 dla dobrego balansu między dokładnością a językiem naturalnym.
- top_k: Ogranicza model do wyboru z top K najbardziej prawdopodobnych następnych słów. Niższe wartości (20-40) produkują bardziej skoncentrowane odpowiedzi, wyższe wartości (80-100) pozwalają na większą różnorodność. Zalecane: 50 dla wiarygodnych opisów obrazów.
Korzystanie z PlateRecognizer.com
Aby skonfigurować LPR (ANPR lub rozpoznawanie tablic rejestracyjnych) w Agent DVR, przejdź do Ustawienia serwera - Ustawienia AI i wprowadź szczegóły w sekcji Rozpoznawanie tablic. Zarejestruj się na darmowy okres próbny na Plate Recognizer. Nie wymagana karta kredytowa.
- URL: Wprowadź adres URL usługi. Domyślnie jest to "https://api.platerecognizer.com/v1/plate-reader/", lub użyj własnego serwera, jeśli hostujesz własną instancję.
- Token: Po zarejestrowaniu się w Plate Recognizer, odwiedź Stronę konta i skopiuj Token API.
- Regiony: Pozostaw puste dla domyślnych lub wprowadź listę regionów w formacie CSV regions.
- Konfiguracja: Wprowadź dodatkowe wartości konfiguracji z dokumentacji, jeśli jest to konieczne.
Używanie DoubleTake
DoubleTake to platforma open source, która zapewnia zunifikowane API do przetwarzania rozpoznawania twarzy przy użyciu:
- CompreFace
- Amazon Rekognition
- DeepStack
- CodeProject.AI Server
- Facebox
Będziesz musiał zainstalować i skonfigurować DoubleTake z preferowanymi opcjami rozpoznawania twarzy.
Po skonfigurowaniu DoubleTake, otwórz Agent DVR i przejdź do Ustawień Serwera - Serwery AI, a następnie kliknij przycisk Konfiguruj obok DoubleTake.
Wprowadź URL do swojego serwera doubletake (np. http://localhost:3000/) oraz swoje hasło, jeśli zostało ustawione.
Kliknij OK, a następnie edytuj kamerę i przejdź do Rozpoznawania Twarzy. Ustaw opcję Serwer AI na DoubleTake i skonfiguruj rozpoznawanie twarzy w razie potrzeby.
Zarządzanie modułami AI
Na liście serwerów AI (odwołując się do powyższego), masz opcje konfigurowania, testowania, edytowania i usuwania serwerów AI. Kliknij przycisk konfiguracji , aby wyświetlić dostępne lub zainstalowane moduły na wybranym serwerze.
Agent DVR pobiera bieżącą listę modułów z Twojego serwera i oferuje interfejs użytkownika do instalowania, odinstalowywania, konfigurowania i testowania każdego modułu. Wsparcie jest udostępniane dla wszystkich domyślnych modułów CodeProject.UI, chociaż Agent DVR wykorzystuje tylko podzbiór z nich.
Aby skorzystać z rozpoznawania tablic rejestracyjnych ALPR (Automatyczne Rozpoznawanie Tablic Rejestracyjnych), Super Rozdzielczości lub Rozpoznawania Twarzy w Agent DVR, musisz zainstalować odpowiedni moduł z tej strony. Zazwyczaj domyślne ustawienia wystarczają dla tych modułów, ale możesz je skonfigurować, klikając na ikonę pod każdym modułem.