DETECCION Y SEGUIMIENTO DE PUPILAS EN TIEMPO REAL | OpenCV Python
Introducción al programa y funcionamiento básico
Resumen de la sección: En esta sección, el presentador da una breve introducción sobre el programa y explica su funcionamiento básico.
Funcionamiento del programa
- El programa es un detector y seguidor de pupilas que utiliza técnicas de visión artificial.
- Se aplican técnicas de filtrado, segmentación y finalización de imágenes para detectar y seguir las pupilas.
- El presentador menciona que realiza streams en Twitch donde enseña más sobre este tema.
Segmentación del área de interés
Resumen de la sección: En esta sección, el presentador explica cómo se segmenta el área de interés en la imagen para procesar solo los píxeles correspondientes a las pupilas.
Segmentación del rectángulo verde
- Se muestra un rectángulo verde en la pantalla que representa el área de interés.
- Los píxeles dentro del rectángulo son los que serán procesados y filtrados.
- Esta segmentación permite evitar procesar toda la imagen y enfocarse solo en las pupilas.
Demostración del funcionamiento del programa
Resumen de la sección: En esta sección, el presentador muestra cómo funciona el programa en tiempo real con detección y seguimiento de las pupilas.
Detección y seguimiento en tiempo real
- Se muestra una demostración donde se detectan y siguen las pupilas en tiempo real.
- El presentador destaca que la detección y seguimiento son confiables.
Programación del detector y seguidor de pupilas
Resumen de la sección: En esta sección, el presentador explica los pasos iniciales para programar el detector y seguidor de pupilas.
Importación de librerías
- Se importa la librería "openCV" para utilizar sus funciones en el proyecto.
- El presentador menciona que utiliza un editor llamado "Pinchar".
Configuración de la captura de video
- Se configura la captura de video utilizando la cámara del computador.
- Se establece el ancho y alto de la ventana donde se mostrará el rectángulo verde.
Bucle principal
- Se inicia un bucle principal que leerá los fotogramas entregados por la cámara.
- Se realiza la lectura de cada fotograma y se almacena en una variable.
Lectura y procesamiento de los fotogramas
Resumen de la sección: En esta sección, el presentador explica cómo se lee y procesa cada fotograma para detectar las pupilas.
Lectura del fotograma
- Se lee cada fotograma capturado por la cámara utilizando la función "read".
- Si la lectura es exitosa, se almacena en una variable llamada "frame".
Verificación de lectura exitosa
- Se verifica si la lectura del fotograma fue exitosa o no.
- Si es exitosa, el bucle continúa ejecutándose. Si hay algún problema, como desconexión de webcam, el bucle finaliza.
Extracción del ancho y alto del fotograma
Resumen de la sección: En esta sección, el presentador explica cómo se extrae el ancho y alto del fotograma para su posterior procesamiento.
Extracción de dimensiones
- Se extraen las dimensiones (ancho y alto) del fotograma utilizando funciones específicas.
- Estas dimensiones serán utilizadas para dividir la ventana en tres partes.
Continuación de la programación del detector y seguidor de pupilas
Resumen de la sección: En esta sección, el presentador continúa explicando los pasos necesarios para programar el detector y seguidor de pupilas.
División de la ventana en tres partes
- El presentador divide la ventana en tres partes iguales utilizando las dimensiones del fotograma.
- Esta división permitirá realizar un análisis más detallado de las pupilas.
Procesamiento de cada parte
- Se realiza un procesamiento específico en cada una de las partes divididas.
- Esto incluye técnicas como filtrado, segmentación y finalización de imágenes.
Finalización del programa
- El presentador menciona que estos son los pasos iniciales para programar el detector y seguidor de pupilas.
- Invita a seguir sus streams en Twitch para aprender más sobre este tema.
Esto es solo un resumen general del contenido. Para obtener información más detallada, consulte el video completo.
División de la imagen en tres partes
Resumen de la sección: En esta sección, el presentador explica cómo divide la imagen en tres partes tanto horizontal como verticalmente. Esto se hace para procesar solo una parte específica de la imagen y reducir el consumo de recursos computacionales.
- Se segmenta la imagen y se descartan las partes no deseadas.
- Se extrae el ancho y alto de los fotogramas y se dividen en tercios.
- Se obtienen las coordenadas x1, x2, y1 y y2 para definir el recuadro a procesar.
Extracción de píxeles del recorte
Resumen de la sección: En esta sección, se explica cómo se extraen los píxeles que pertenecen al recorte previamente definido. Estos píxeles serán procesados posteriormente.
- Se toman los píxeles desde x1 hasta x2 y desde y1 hasta y2 del recorte.
- Los píxeles extraídos son convertidos a escala de grises para facilitar su procesamiento.
Aplicación de umbral a los píxeles
Resumen de la sección: En esta sección, se explica cómo se aplica un umbral a los píxeles extraídos del recorte. Esto permite establecer qué colores son más fuertes que otros y simplifica el procesamiento computacional.
- Se establece un umbral de 7 para determinar qué píxeles se convierten en blanco y cuáles en negro.
- La conversión a escala de grises reduce el procesamiento computacional y facilita la ubicación de características como las pupilas.
Filtro adicional para mejorar la efectividad
Resumen de la sección: En esta sección, se explica cómo se aplica un filtro adicional para mejorar la efectividad del procesamiento. Este filtro ayuda a corregir errores y mejorar los resultados obtenidos.
- Se aplica un filtro adicional al final del proceso para mejorar la precisión.
- El filtro establece que los píxeles menores a 7 se conviertan en blanco y el resto en negro, lo cual es útil para resaltar las pupilas.
Establecimiento del umbral y procesamiento final
Resumen de la sección: En esta sección, se explica cómo se establece el umbral y cómo se realiza el procesamiento final de los píxeles extraídos del recorte.
- Se establece un umbral entre 0 (negro) y 255 (blanco), utilizando un valor de 7 como ejemplo.
- El umbral permite determinar qué colores son más fuertes que otros y simplifica el procesamiento computacional.
- Los píxeles dentro del rango establecido por el umbral son utilizados para realizar acciones específicas, como ubicar las pupilas.
Eliminación de ruido mediante filtro gaussiano
Resumen de la sección: En esta sección, se explica cómo aplicar un filtro gaussiano para eliminar el ruido en una imagen. El filtro gaussiano suaviza la imagen y borra los puntos ruidosos que aparecen en ella.
- Se aplica un filtro gaussiano para suavizar la imagen y eliminar los puntos ruidosos.
- El tamaño del kernel utilizado puede variar según las condiciones de la cámara y la iluminación.
- Después de aplicar el umbral, se buscan los contornos en la imagen.
- Los contornos se organizan del más grande al más pequeño.
- Se dibujan rectángulos alrededor de los contornos encontrados.
Visualización del umbral y recorte
Resumen de la sección: En esta sección, se muestra cómo visualizar el umbral y el recorte de píxeles procesados.
- Se muestran dos ventanas: una para mostrar el umbral y otra para mostrar el recorte.
- El umbral muestra la pupila en blanco mientras que el resto de la imagen está en negro.
- El recorte muestra los píxeles que están siendo procesados.
Finalización del programa
Resumen de la sección: En esta sección, se muestra cómo finalizar el programa después de leer una tecla del teclado. Si la tecla es igual a "esc" (27), todas las ventanas son cerradas.
- Se lee una tecla del teclado.
- Si la tecla es igual a "esc" (27), se cierran todas las ventanas y se finaliza el programa.
Conclusiones
- Se explica cómo aplicar un filtro gaussiano para eliminar el ruido en una imagen.
- Se muestra cómo buscar contornos en una imagen después de aplicar el umbral.
- Se visualizan el umbral y el recorte de píxeles procesados.
- Se finaliza el programa al leer la tecla "esc" del teclado.