¡BIENVENIDOS!
Computer Vision:
CLASE II
Mg. Manuel Sigüeñas
OPERACIONES
MATEMÁTICAS
AVANZADAS
Detección de esquinas
Hay 2 formas:
• Harris: Utiliza [Link] para calcular una matriz de respuesta de Harris. Luego, se amplían
los valores de las esquinas utilizando [Link] para que sean más prominentes. La medida de
respuesta se calcula usando una fórmula que involucra el determinante y la traza de la matriz de
autocorrelación, con un parámetro de sensibilidad 𝑘.
• Shi-Tomasi: Utiliza [Link] para detectar las mejores esquinas basadas en los
autovalores de la matriz de covarianza. La medida de respuesta se basa en los autovalores de la
matriz de autocorrelación, usando el menor de los dos autovalores.
Detección de puntos clave
Se trata de identificar y describir características de una imagen que son
invariantes a la escala y rotación. Los 3 métodos más populares son:
• SIFT (scale invariant feature transform): desarrollado por David Lowe en
1999, es uno de los métodos más robustos y ampliamente utilizados para la
detección y descripción de puntos clave. Es invariante a escala y rotación, y
también robusto a cambios en iluminación y transformaciones afines.
• SURF (speeded-up robust features): versión mejorada y más rápida de SIFT,
desarrollada por Herbert Bay en [Link] aproximaciones hessian-based
y filtros de Haar para una detección y descripción más rápida. (pero es de
paga)
• ORB: una alternativa eficiente a SIFT y SURF, desarrollado por OpenCV Labs.
Combina la detección de puntos clave FAST y el descriptor BRIEF, y añade
orientación para invariancia a la rotación. Es mucho más rápido y no está
cubierto por patentes, lo que lo hace adecuado para aplicaciones en tiempo
real.
Usos de puntos clave
Reconocimiento de objetos Emparejamiento de
imágenes
Seguimiento de objetos Estos puntos los veremos más adelante, puesto
(object tracking) que se debe combinar con algoritmos de IA
Panorama stitching
Básicamente, se trata de usar los puntos clave para “coser” imágenes:
• (113) Real time video stitching using OpenCV in C++ - YouTube
CONSIDERACIONES
PREVIAS
Lo que viene
Ya aprendimos lo que numéricamente podemos hacer con imágenes, pero, cuando esto NO es
suficiente, entran los algoritmos para mejorar o realizar cosas no logrables con solo operaciones
matemáticas.
Es importante recordar que se debe conocer de antemano el curso de Machine Learning y Deep
Learning.
Finalmente, indicar que los conceptos de medición de rendimiento, manipulación de hiperparámetros,
overfitting, etc., se emplearán en lo que resta del curso.
Recordar que se pueden emplear tantos modelos entrenados desde cero, modelos pre entrenados y
modelos afinados (re entrenados)
Formatos, rendimiento y paralelización
El rendimiento depende de la
Los modelos se pueden
capacidad de tu computadora
empaquetar de muchas
(más en tiempo real), pero,
formas, por lo que esto está
principalmente se puede
influenciado por las
paralelizar para disminuir lo
bibliotecas utilizadas,
más posible el tiempo de
procesador (Intel, ryzen, etc.)
carga y que no haya
y lo que hará el modelo.
rendimiento bajo.
Notas adicionales (dataset de
entrenamiento)
• Los modelos pre
entrenados (o los
entrenados por ti)
tienen una tasa de
éxito dado su
población, por lo que,
si tus imágenes son
muy distintas a las de
dicho dataset, sería
muy recomendable re
entrenar o volver a
entrenar.
Notas adicionales (detalles y supuestos)
Cosas adicionales como detectar a una persona con o sin lentes, sombrero,
mascarilla, etc., son supuestos que uno debe auto imponerse en caso sea una
posibilidad.
Otros detalles podrían ser colores, ángulos, objetos en el fondo, etc.
En otras palabras, no se trata siempre de eliminar cosas de la imagen para mejorar la
tasa de éxito de tu modelo, sino auto imponerse retos que el modelo podría afrontar
en la vida real.
OPERACIONES
DE IA
CON
IMÁGENES
Reconocimiento de objetos
Gracias a las herramientas de
Deep Learning, podemos usar
Algunos modelos puedes
modelos ya entrenados, para
encontrarlos en:
poner nuestras propias
opencv/data/haarcascades at 4.x
imágenes, y reconocer los
· opencv/opencv · GitHub
objetos (caras, ojos, cuerpos,
gatos, etc.).
Deepface
• Algoritmos de IA empaquetados y fácil de usar
que retorna:
• Sexo
• Emoción
• Edad
• Raza
• Su utilización es sencilla, aunque demanda
versiones específicas de tensorflow, por lo que
emplearlo en un entorno virtual es muy
sugerido.
• Asimismo, puedes calcular correlaciones entre
fotos, buscar a una persona (foto) en una base
de datos, y otras utilidades.
Eliminador de fondo
La biblioteca rembg ofrece una forma rápida y fácil de
eliminar fondo, sus parámetros son:
• alpha_matting: Un booleano que habilita o
deshabilita la técnica de "alpha matting". Por defecto
es False.
• alpha_matting_foreground_threshold: Un entero que
define el umbral del primer plano. Por defecto es
240.
• alpha_matting_background_threshold: Un entero
que define el umbral del fondo. Por defecto es 10.
• alpha_matting_erode_size: Un entero que define el
tamaño de erosión. Por defecto es 10.
Grandes modelos pre entrenados (YOLO y sus
derivados)
YOLO (you only look once) es una familia de
modelos de IA para detección de objetos,
empleando CNN (convolutional neural
networks)
Existen desde YOLOv1 hasta YOLOv10 (al
2024).
Su rapidez y precisión han mejorado con el
tiempo, permitiendo estimar muchas
etiquetas en las imágenes al mismo tiempo y
en tiempo real, así como afinar el modelo
para fines propios.
Casos de demostración
🧠 Artificial
Crowd Monitoring intelligence traffic
using Computer control system
Vision! using computer
([Link]) vision 👁️
([Link])
Live Facial ISRAEL |
Emotion Presentan robot
Recognition in con inteligencia
Python (with artificial que
Code) recolecta frutas
([Link]) ([Link])
Finalmente
• Combínalos como quieras, puedes emplear tanto la
parte matemática como de modelos pre entrenados
para hacer cientos de cosas.
• Proponte hacer algo interesante con estos modelos
como:
• Crear una alerta al detectar cierto objeto
• Crear un anonimizador (llenar de ruido o blurr) tu
cara en tiempo real
• Busca nuevos algoritmos como por ejemplo una IA
que pinte tus imágenes de escala de grises. (Black
and white image colorization using Python,
OpenCV and Deep Learning ([Link]))
Siguenos en nuestras redes