Desarrollo de Colorbot de Alto Rendimiento en Python con Captura NDI (Setup de 2-PC)

Job ID: 39759825

Budget: $30 – $250 USD

Hola, busco un desarrollador de Python altamente cualificado para un proyecto educativo avanzado. El objetivo es construir una aplicación "Colorbot" de alto rendimiento que opere en una configuración de dos computadoras para entender los flujos de trabajo de procesamiento de video en tiempo real y la automatización de baja latencia.
La arquitectura del sistema será la siguiente:
PC de Juego (PC 1): Ejecutará únicamente el juego y el software de streaming OBS con el plugin NDI. Su única tarea es enviar el stream de video del juego a la red local.
PC de Procesamiento (PC 2): Ejecutará la aplicación Python (Colorbot). Esta PC recibirá el stream de video NDI, lo procesará, y enviará comandos de movimiento del mouse a un dispositivo externo.
El rendimiento es crítico. La aplicación debe ser capaz de recibir y procesar el stream de video a 120 FPS o más para asegurar una respuesta instantánea.
Importante: Este proyecto es estrictamente para fines de aprendizaje personal. El objetivo es estudiar la optimización de código, el procesamiento de video en red y la comunicación con hardware externo.

Requisitos Técnicos Clave:
Lenguaje: Python 3.
Recepción de Video: La aplicación debe recibir un stream de video a través de la red utilizando el protocolo NDI. Se recomienda el uso de librerías eficientes como cyndilib en Python.
Procesamiento de Imagen: Se debe usar OpenCV de manera optimizada (aprovechando operaciones con NumPy) para realizar la detección de color en formato HSV a más de 120 FPS.
Alto Rendimiento: El código debe estar diseñado para un alto rendimiento. Esto implica el uso de multi-threading o multiprocessing para que la recepción de frames NDI y el procesamiento de imágenes ocurran en hilos separados, evitando cuellos de botella.
Control del Mouse: La integración se hará con un dispositivo MAKCU a través de un puerto serial. Yo proporcionaré el script mouse.py que ya gestiona esta comunicación. El trabajo del freelancer será integrar las llamadas a este script de forma eficiente.
Entregables:
Código Fuente Optimizado:
Un script principal (main_colorbot.py) que gestione los hilos de captura y procesamiento.
Un módulo de captura (capture_ndi.py) dedicado a conectarse y recibir frames del stream NDI de manera continua.
Un archivo de configuración (config_colorbot.py) para ajustar fácilmente:
Nombre de la fuente NDI.
Resolución de la PC de juego (para cálculos de puntería).
Rango de color HSV.
Parámetros de puntería (tecla de activación, sensibilidad).
Rendimiento Demostrable: La aplicación debe incluir un contador de FPS simple para verificar que se está procesando el video a la velocidad requerida (+120 FPS).
Documentación y Comentarios: El código debe estar bien comentado, especialmente en las áreas de optimización, threading y procesamiento con OpenCV, para que pueda estudiar y entender las técnicas utilizadas.
Instrucciones de Despliegue: Un archivo requirements.txt y un README.md que explique cómo configurar el entorno virtual e instalar las dependencias en la PC de procesamiento.
Habilidades Requeridas:
Experiencia demostrable en Python y OpenCV.
Experiencia trabajando con streams de video en red (NDI, RTSP, etc.) en Python.
Sólidos conocimientos en programación concurrente (multi-threading/multiprocessing) para aplicaciones en tiempo real.
Experiencia en optimización de código Python para tareas de alto rendimiento.
Familiaridad con la comunicación por puerto serial (pySerial) es un plus.
¿Qué proporcionaré yo?
El script mouse.py para la interfaz con el hardware MAKCU.
Acceso a mi entorno de pruebas (si es necesario) para verificar la conexión NDI.
Feedback constante y claro.