>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Python

Cómo Convertir un Teléfono Android Antiguo en un Sistema de Vigilancia Inteligente con IA

Casi todos los hogares tienen un smartphone Android antiguo acumulando polvo en un cajón. La pantalla está intacta, la cámara es decente, pero la batería solo dura medio día o el procesador no puede manejar las aplicaciones modernas. Por lo general, estos dispositivos se pasan a familiares o se olvidan para siempre. Recientemente encontré un repositorio interesante CCTV-Smartphone-AI-Monitoring (el autor llama al sistema Sentinel), que ofrece una forma de darle un buen uso a este gadget.

El proyecto captura video desde el smartphone a través de la red local, ejecuta la grabación en una PC y conecta redes neuronales multimodales para reconocer lo que está sucediendo en el marco.

Banner del sistema

Qué Hay Bajo el Capó en Sentinel

La idea de convertir un smartphone en una cámara de vigilancia no es nueva, pero la mayoría de las solucionesready-made se encuentran con dos problemas: o están bloqueadas en servicios cloud chinos de pago, o ofrecen un stream RTSP básico sin análisis decente. Sentinel resuelve ambos problemas a la vez.

El sistema se divide en dos partes:

  1. CamFlow — una aplicación ligera para Android 8.0+ que captura la alimentación de la cámara y envía frames JPEG a través de HTTP POST al servidor.
  2. Un componente de servidor en Python (Flask + OpenCV) — recibe el stream, mantiene un buffer de frames, organiza el streaming en el navegador, escribe archivos en disco y gestiona las llamadas de IA.

Todo el video y los logs permanecen estrictamente dentro de tu red local. Solo frames individuales se envían externamente si decides conectar una red neuronal cloud para análisis de eventos.

Panel de control e interfaz de monitoreo con IA

Cómo Funciona el Pipeline Eficiente en Tokens

Alimentar un stream de video de 25 fps directamente a una red neuronal multimodal moderna le costará a cualquier desarrollador un buen dinero. El autor de Sentinel optó por un enfoque probado de dos niveles:

Primero, la visión por computadora clásica basada en OpenCV dirige el espectáculo. El módulo motion_trigger calcula la diferencia entre frames consecutivos. Mientras no esté pasando nada en la habitación, el servidor permanece en el estado SLEEP y no gasta recursos de API.

Una vez que el movimiento supera el umbral establecido, el sistema cambia al estado OBSERVE. Es entonces cuando el modelo de visión entra en acción. Analiza el frame, verifica la presencia de personas, evalúa el nivel de riesgo y devuelve un JSON estricto:

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

Si una persona realmente permanece en el frame más tiempo que el umbral Dwell Threshold, el evento se registra en la base de datos ai_events.jsonl y se muestra en el panel de control. Cuando el movimiento se detiene, el sistema espera una pausa de End Grace y vuelve al modo de espera.

Proceso de operación del sistema

Características Principales del Proyecto

Streaming de video sin plugins. La interfaz web entrega una transmisión en vivo a través de MJPEG. La latencia a través de Wi-Fi doméstico es mínima y el video se abre en cualquier navegador sin instalar software.

Integración flexible con proveedores de modelos. El proyecto originalmente se construyó alrededor de Volcengine Ark chino, pero en la versión 1.1 el autor agregó un cliente universal. Ahora puedes conectar OpenAI (GPT-4o-mini), Google Gemini, DashScope (Qwen VL), SiliconFlow, o una puerta de enlace local con una API compatible con OpenAI.

Personalización del comportamiento a través de prompts. La configuración del panel de control incluye campos para contexto a largo plazo (Scene Profile) y enfoque operativo (Session Focus). Puedes escribir directamente en la interfaz web: "Este es un pasillo de laboratorio. Presta atención si alguien lleva cajas o se detiene en la puerta por más de 10 segundos."

Descubrimiento automático de red. La aplicación CamFlow no requiere ingresar manualmente la dirección IP de la PC — puede encontrar el servidor en ejecución a través de broadcast UDP.

Segmentación de archivos. El video se graba localmente en fragmentos por temporizador (por ejemplo, segmentos de 5 o 10 minutos) con códecs avc1, mp4v o XVID para elegir.

Interfaz de la aplicación móvil CamFlow

Cómo Desplegar el Proyecto

Necesitarás una PC con Python 3.9+ y un smartphone con Android.

Clona el repositorio e instala las dependencias:

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

Las dependencias incluyen el conjunto estándar: Flask, OpenCV, NumPy y el cliente del SDK de Ark.

Inicia el servidor:

python server.py

La consola mostrará una dirección local como http://127.0.0.1:5000/ para el navegador y una IP de red http://192.168.x.x:5000/ para el smartphone.

Instala el APK desde la carpeta PhoneCamSender/CamFlow-v1.0.0-beta.apk en tu teléfono (o compila el proyecto a través de Android Studio — el código fuente es abierto). Inícialo, concede acceso a la cámara, conéctate al Wi-Fi e ingresa la IP del servidor.

La captura de frames está deshabilitada por defecto en el panel de control de la PC por seguridad. Presiona el botón Enable Ingest y la transmisión en vivo aparecerá en el navegador.

Configuración de parámetros del panel de control

Conectar Tu Propio Proveedor de IA

Si quieres habilitar el análisis de IA, activa AI Monitoring en el panel derecho del panel de control. Selecciona el Provider apropiado, especifica el Model ID e ingresa la clave de API.

Por ejemplo, para trabajar con un servidor local compatible o con OpenAI, simplemente completa la configuración:

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

Los parámetros también se pueden pasar a través de variables de entorno (AI_PROVIDER, AI_MODEL, AI_API_KEY). El servidor valida las respuestas del modelo y asegura que la estructura de campos no rompa la interfaz web.

Dónde Resulta Útil

Sentinel es ideal para experimentos locales a pequeña escala:

  • Monitorear un taller o laboratorio donde no puedes transmitir video a servicios cloud de terceros.
  • Recopilar un conjunto de datos anotado con descripciones de texto de situaciones anómalas.
  • Vigilar mascotas en un apartamento con notificaciones de alerta estructuradas.
  • Aprender a vincular CV clásica (detección de movimiento) con LLMs/VLMs pesados sin costos excesivos.

En Resumen

El proyecto resultó ser un prototipo de ingeniería limpio y práctico. No hay frameworks pesados ni magia innecesaria aquí: una arquitectura clara FrameBuffer, pruebas pytest funcionales y un cliente Android funcional incluido desde el primer momento.

Si has estado buscando una excusa para aprovechar un teléfono antiguo y experimentar con modelos multimodales en tiempo real, échale un vistazo al repositorio suzuran0y/CCTV-Smartphone-AI-Monitoring.

Proyectos relacionados