DETECCION Y SEGUIMIENTO DE PUPILAS EN TIEMPO REAL | OpenCV Python

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.
Video description

Hola amigos hoy me encuentro muy contento de poderles compartir el video numero 29 sobre visión artificial en Python donde les explico como podemos utilizar algunas tecnicas de vision artificial para hacer un detector y seguidor de pupilas. Agenda tu asesoria: https://linktr.ee/geniia Compra tu camiseta diseñada por IA: https://linktr.ee/geniia Unete a nuestra comunidad de Discord y aprende mucho mas: https://discord.io/AprendeIngenia Puedes descargar el codigo de mi GitHub: https://github.com/AprendeIngenia Conviertete en miembro para acceder a sus beneficios: https://www.youtube.com/channel/UCzwHEOCbsZLjfELperJ6VeQ/join Link de PayPal para donaciones: https://www.paypal.me/santiagsanchezr Respondo dudas en mi pagina de Facebook: https://www.facebook.com/Aprende.Ingenia Me pueden contactar por Instagram: https://www.instagram.com/santiagsanchezr/ También me pueden contactar por Twitter: https://twitter.com/SantiagSanchezR #VisionArtificial #Python #OpenCV #MediaPipe #ComputerVision #AprendeIngenia #Aprendeeingenia