>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Python

Come Trasformare un Vecchio Telefono Android in un Sistema di Videosorveglianza Intelligente con Intelligenza Artificiale

Quasi ogni famiglia ha un vecchio smartphone Android che raccoglie polvere in un cassetto. Lo schermo è intatto, la fotocamera è discreta, ma la batteria dura solo mezza giornata o il processore non riesce a gestire le app moderne. Di solito questi dispositivi vengono passati ai parenti o vengono dimenticati per sempre. Recentemente mi sono imbattuto in un interessante repository CCTV-Smartphone-AI-Monitoring (l'autore chiama il sistema Sentinel), che offre un modo per mettere questo gadget a buon uso.

Il progetto acquisisce il video dallo smartphone sulla rete locale, esegue la registrazione su un PC e collega reti neurali multimodali per riconoscere cosa sta accadendo nell'inquadratura.

Banner del sistema

Cosa C'è Sotto il Cofano di Sentinel

L'idea di trasformare uno smartphone in una telecamera di sorveglianza non è nuova, ma la maggior parte delle soluzioni pronte si scontra con due problemi: sono bloccate in servizi cloud cinesi a pagamento, oppure offrono un semplice flusso RTSP senza alcuna analisi decente. Sentinel risolve entrambi i problemi contemporaneamente.

Il sistema è suddiviso in due parti:

  1. CamFlow — un'app leggera per Android 8.0+ che acquisisce il feed della fotocamera e invia frame JPEG tramite HTTP POST al server.
  2. Un componente server Python (Flask + OpenCV) — riceve il flusso, gestisce un buffer di frame, organizza lo streaming nel browser, scrive gli archivi su disco e gestisce le chiamate AI.

Tutti i video e i log rimangono rigorosamente all'interno della tua rete locale. Solo i singoli frame vengono inviati esternamente se decidi di connettere una rete neurale cloud per l'analisi degli eventi.

Interfaccia della dashboard e monitoraggio AI

Come Funziona la Pipeline con Risparmio di Token

Alimentare un flusso video a 25 fps direttamente in una rete neurale multimodale moderna costerà a qualsiasi sviluppatore una bella sommetta. L'autore di Sentinel ha optato per un approccio a due livelli collaudato:

Innanzitutto, la visione artificiale classica basata su OpenCV gestisce le operazioni. Il modulo motion_trigger calcola la differenza tra frame consecutivi. Finché non succede nulla nella stanza, il server rimane nello stato SLEEP e non consuma risorse API.

Una volta che il movimento supera la soglia impostata, il sistema passa allo stato OBSERVE. È allora che entra in gioco il modello di visione. Analizza il frame, verifica la presenza di persone, valuta il livello di rischio e restituisce un JSON rigoroso:

{
  "has_person": true,
  "person_count": 1,
  "activity": "standing",
  "risk_level": "info",
  "confidence": 0.95,
  "summary": "Человек стоит около рабочего стола."
}

Se una persona si attarda effettivamente nell'inquadratura più a lungo della soglia Dwell Threshold, l'evento viene registrato nel database ai_events.jsonl e visualizzato sulla dashboard. Quando il movimento si ferma, il sistema attende una pausa di End Grace e torna in standby.

Processo di funzionamento del sistema

Caratteristiche Principali del Progetto

Streaming video senza plugin. L'interfaccia web fornisce un feed live tramite MJPEG. La latenza sulla Wi-Fi di casa è minima e il video si apre in qualsiasi browser senza installare software.

Integrazione flessibile con i provider di modelli. Il progetto è stato originariamente costruito attorno a Volcengine Ark cinese, ma nella versione 1.1 l'autore ha aggiunto un client universale. Ora puoi connettere OpenAI (GPT-4o-mini), Google Gemini, DashScope (Qwen VL), SiliconFlow o un gateway locale con un'API compatibile con OpenAI.

Personalizzazione del comportamento tramite prompt. Le impostazioni della dashboard includono campi per il contesto a lungo termine (Scene Profile) e l'attenzione operativa (Session Focus). Puoi scrivere direttamente nell'interfaccia web: "Questo è un corridoio di laboratorio. Fai attenzione se qualcuno porta scatole o indugia alla porta per più di 10 secondi."

Rilevamento automatico della rete. L'app CamFlow non richiede l'inserimento manuale dell'indirizzo IP del PC — può trovare il server in esecuzione tramite broadcast UDP.

Segmentazione degli archivi. Il video viene registrato localmente in chunk tramite timer (ad esempio, segmenti di 5 o 10 minuti) con codec avc1, mp4v o XVID tra cui scegliere.

Interfaccia dell'app mobile CamFlow

Come Distribuire il Progetto

Avrai bisogno di un PC con Python 3.9+ e uno smartphone con Android.

Clona il repository e installa le dipendenze:

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

Le dipendenze includono il set standard: Flask, OpenCV, NumPy e il client Ark SDK.

Avvia il server:

python server.py

La console visualizzerà un indirizzo locale come http://127.0.0.1:5000/ per il browser e un IP di rete http://192.168.x.x:5000/ per lo smartphone.

Installa l'APK dalla cartella PhoneCamSender/CamFlow-v1.0.0-beta.apk sul tuo telefono (o compila il progetto tramite Android Studio — il codice sorgente è aperto). Lancialo, concedi l'accesso alla fotocamera, connettiti al Wi-Fi e inserisci l'IP del server.

L'acquisizione dei frame è disabilitata per impostazione predefinita sulla dashboard del PC per motivi di sicurezza. Premi il pulsante Enable Ingest e il flusso live apparirà nel browser.

Impostazioni dei parametri della dashboard

Connettere il Tuo Provider AI

Se vuoi abilitare l'analisi AI, attiva AI Monitoring nel pannello destro della dashboard. Seleziona il Provider appropriato, specifica il Model ID e inserisci la chiave API.

Ad esempio, per lavorare con un server locale compatibile o OpenAI, basta compilare la configurazione:

{
  "ai_provider": "openai",
  "ai_model": "gpt-4o-mini",
  "ai_api_key": "sk-..."
}

I parametri possono anche essere passati tramite variabili d'ambiente (AI_PROVIDER, AI_MODEL, AI_API_KEY). Il server valida le risposte del modello e garantisce che la struttura dei campi non rompa l'interfaccia web.

Dove Questo Può Tornare Utile

Sentinel è adatto per esperimenti locali su piccola scala:

  • Monitoraggio di un laboratorio o officina dove non è possibile trasmettere video a servizi cloud di terze parti.
  • Raccolta di un dataset annotato con descrizioni testuali di situazioni anomale.
  • Osservare animali domestici in un appartamento con notifiche di avviso strutturate.
  • Imparare a collegare la CV classica (rilevamento del movimento) con LLM/VLM pesanti senza costi eccessivi.

In Sintesi

Il progetto si è rivelato un prototipo di ingegneria pulito e pratico. Non ci sono framework pesanti o magia non necessaria qui: un'architettura FrameBuffer chiara, test pytest funzionanti e un client Android funzionale incluso out of the box.

Se stavi cercando una scusa per mettere un vecchio telefono a uso e sperimentare con modelli multimodali in tempo reale, dai un'occhiata al repository suzuran0y/CCTV-Smartphone-AI-Monitoring.

Progetti correlati