Jak zamienić stary telefon z Androidem w inteligentny system monitoringu z AI
Prawie każde gospodarstwo domowe ma stary smartfon z Androidem zalegający w szufladzie. Ekran jest nienaruszony, aparat całkiem niezły, ale bateria wytrzymuje najwyżej pół dnia lub procesor nie daje rady z nowoczesnymi aplikacjami. Zazwyczaj takie urządzenia trafiają do krewnych lub są zapominane na zawsze. Niedawno natknąłem się na ciekawy projekt CCTV-Smartphone-AI-Monitoring (autor nazywa system Sentinel), który oferuje sposób na wykorzystanie tego gadżetu w praktyczny sposób.
Projekt przechwytuje wideo ze smartfona przez sieć lokalną, prowadzi nagrywanie na PC i podłącza wielomodalne sieci neuronowe do rozpoznawania tego, co dzieje się w kadrze.
Co kryje się pod maską w Sentinel
Koncepcja zamiany smartfona w kamerę monitorującą nie jest nowa, ale większość gotowych rozwiązań napotyka dwa problemy: albo są zablokowane w płatnych chińskich usługach chmurowych, albo oferują jedynie prosty strumień RTSP bez żadnej sensownej analityki. Sentinel rozwiązuje oba te problemy jednocześnie.
System składa się z dwóch części:
- CamFlow — lekka aplikacja dla Androida 8.0+, która przechwytuje obraz z kamery i wysyła klatki JPEG przez HTTP POST do serwera.
- Komponent serwera w Pythonie (Flask + OpenCV) — odbiera strumień, utrzymuje bufor klatek, organizuje strumieniowanie w przeglądarce, zapisuje archiwa na dysku i zarządza wywołaniami AI.
Całe wideo i logi pozostają ściśle w Twojej sieci lokalnej. Tylko pojedyncze klatki są wysyłane zewnętrznie, jeśli zdecydujesz się podłączyć chmurową sieć neuronową do analizy zdarzeń.
Jak działa potok efektywny pod względem zużycia tokenów
Bezpośrednie wprowadzanie strumienia wideo 25 fps do nowoczesnej wielomodalnej sieci neuronowej będzie kosztować każdego developera niemało. Autor Sentinel postawił na sprawdzoną dwupoziomową metodę:
Najpierw pracuje klasyczny wizja komputerowa oparta na OpenCV. Moduł motion_trigger oblicza różnicę między kolejnymi klatkami. Dopóki nic się nie dzieje w pomieszczeniu, serwer pozostaje w stanie SLEEP i nie zużywa zasobów API.
Gdy ruch przekroczy ustawiony próg, system przełącza się w stan OBSERVE. Wtedy uruchamia się model wizyjny. Analizuje klatkę, sprawdza obecność osób, ocenia poziom ryzyka i zwraca ścisły JSON:
{
"has_person": true,
"person_count": 1,
"activity": "standing",
"risk_level": "info",
"confidence": 0.95,
"summary": "Человек стоит около рабочего стола."
}
Jeśli osoba faktycznie pozostaje w kadrze dłużej niż próg Dwell Threshold, zdarzenie jest zapisywane w bazie danych ai_events.jsonl i wyświetlane na pulpicie. Gdy ruch ustaje, system czeka na przerwę End Grace i wraca do trybu uśpienia.
Główne funkcje projektu
Strumieniowanie wideo bez wtyczek. Interfejs webowy dostarcza obraz na żywo przez MJPEG. Opóźnienie przez domowe Wi-Fi jest minimalne, a wideo otwiera się w każdej przeglądarce bez instalowania oprogramowania.
Elastyczna integracja z dostawcami modeli. Projekt był pierwotnie zbudowany wokół chińskiego Volcengine Ark, ale w wersji 1.1 autor dodał uniwersalnego klienta. Teraz możesz połączyć OpenAI (GPT-4o-mini), Google Gemini, DashScope (Qwen VL), SiliconFlow lub lokalną bramkę z API kompatybilnym z OpenAI.
Dostosowywanie zachowania przez prompty. Ustawienia pulpitu zawierają pola dla długoterminowego kontekstu (Scene Profile) i bieżącego skupienia (Session Focus). Możesz pisać bezpośrednio w interfejsie webowym: "To jest korytarz laboratorium. Zwracaj uwagę, gdy ktoś niesie pudełka lub zatrzymuje się przy drzwiach dłużej niż 10 sekund."
Automatyczne wykrywanie sieci. Aplikacja CamFlow nie wymaga ręcznego wprowadzania adresu IP komputera — może znaleźć działający serwer przez broadcast UDP.
Segmentacja archiwum. Wideo jest nagrywane lokalnie w kawałkach według timera (na przykład segmenty 5 lub 10 minut) z możliwością wyboru kodeków avc1, mp4v lub XVID.
Jak wdrożyć projekt
Będziesz potrzebować komputera z Pythonem 3.9+ i smartfona z systemem Android.
Sklonuj repozytorium i zainstaluj zależności:
git clone https://github.com/suzuran0y/CCTV-Smartphone-AI-Monitoring.git
cd CCTV-Smartphone-AI-Monitoring
python -m venv venv
# На Windows: venv\Scripts\activate
# На Linux/macOS: source venv/bin/activate
pip install -r requirements.txt
Zależności obejmują standardowy zestaw: Flask, OpenCV, NumPy i klienta SDK Ark.
Uruchom serwer:
python server.py
Konsola wyświetli adres lokalny jak http://127.0.0.1:5000/ dla przeglądarki i adres IP sieciowy http://192.168.x.x:5000/ dla smartfona.
Zainstaluj APK z folderu PhoneCamSender/CamFlow-v1.0.0-beta.apk na telefonie (lub zbuduj projekt przez Android Studio — źródło jest otwarte). Uruchom aplikację, przyznaj dostęp do kamery, połącz się z Wi-Fi i wprowadź IP serwera.
Przechwytywanie klatek jest domyślnie wyłączone na pulpicie PC ze względów bezpieczeństwa. Naciśnij przycisk Enable Ingest, a strumień na żywo pojawi się w przeglądarce.
Podłączenie własnego dostawcy AI
Jeśli chcesz włączyć analizę AI, włącz AI Monitoring w prawym panelu pulpitu. Wybierz odpowiedniego dostawcę Provider, określ Model ID i wprowadź klucz API.
Na przykład, aby pracować z kompatybilnym serwerem lokalnym lub OpenAI, wystarczy wypełnić konfigurację:
{
"ai_provider": "openai",
"ai_model": "gpt-4o-mini",
"ai_api_key": "sk-..."
}
Parametry można też przekazywać przez zmienne środowiskowe (AI_PROVIDER, AI_MODEL, AI_API_KEY). Serwer waliduje odpowiedzi modelu i zapewnia, że struktura pól nie psuje interfejsu webowego.
Gdzie to się przyda
Sentinel świetnie nadaje się do niewielkich eksperymentów lokalnych:
- Monitorowanie warsztatu lub laboratorium, gdzie nie można przesyłać wideo do usług chmurowych stron trzecich.
- Zbieranie oznaczonego zbioru danych z tekstowymi opisami sytuacji anomalnych.
- Obserwowanie zwierząt w mieszkaniu ze strukturalnymi powiadomieniami o alertach.
- Ucz się, jak łączyć klasyczną wizję komputerową (wykrywanie ruchu) z ciężkimi LLM/VLM bez nadmiernych kosztów.
Podsumowanie
Projekt okazał się czystym i praktycznym prototypem inżynieryjnym. Nie ma tu ciężkich frameworków ani niepotrzebnej magii: przejrzysta architektura FrameBuffer, działające testy pytest i funkcjonalny klient Android w zestawie.
Jeśli szukasz pretekstu, by wykorzystać stary telefon i eksperymentować z wielomodalnymi modelami w czasie rzeczywistym, zajrzyj do repozytorium suzuran0y/CCTV-Smartphone-AI-Monitoring.
Powiązane projekty