Ir al contenido principal

Cómo hacer reconocimiento de imágenes

Hola bienvenid@s al blog tenía mucho tiempo que no escribía y me da gusto compartirles algo nuevo.

En esta ocasión quiero platicarles de las herramientas que existen para poder realizar reconocimiento de imágenes por medio de Inteligencia Artificial.

Primero antes de ver un ejemplo les cuento un poco más que es el reconocimiento visual, es un proceso en qué una máquina puede clasificar una imagen, ahora esta imagen puede llegar a la máquina por medio de archivos, por medio de una cámara de un celular ,las cámaras montadas en un robot, por medio de un directorio en donde se almacenan documentos o incluso utilizando la cámara en un dron.  


Ejemplos de uso de está tecnología :
  • Identificar posibles inicios de incendios
  • Análisis de calidad en una línea de producción para saber si un artículo está en mal estado
  • En las redes sociales saber si los gifs, imágenes son positivos o negativos
  • Saber el estado de ánimo de una persona en un hospital
  • En la agricultura identificar una zona con inicios de plaga


Ahora si les comparto cuales son las tecnologías disponibles para poder utilizar reconocimiento de imágenes, todas estas plataformas cuentan con una opción de prueba o demo.

IBM tiene su plataforma de inteligencia artificial que es Watson Studio , en esta suite cuenta con la opción para hacer reconocimiento visual que se llama Visual recognition.



Amazon tiene su propia herramienta de reconocimiento de imágenes en AWS y se llama Amazon rekognition.
Google suite tiene Visión AI.

Otra opción para hacer reconocimiento de imágenes puedes hacerlo con Python, utilizando la librería OpenCV, primero hay que instalar en Anaconda nuestra librería Open CV en mi caso utilice pip install cv2

Yo seguí los paso de Shantnu Tiwari y utilizando el código

import cv2
import sys

# Get user supplied values
imagePath = sys.argv[1]
cascPath = "haarcascade_frontalface_default.xml"

# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)

# Read the image
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Detect faces in the image
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30),
    flags = cv2.CASCADE_SCALE_IMAGE #cv2.CV_HAAR_SCALE_IMAGE
)

print("Found {0} faces!".format(len(faces)))

# Draw a rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

cv2.imshow("Faces found", image)
cv2.waitKey(0)

Para probarlo tome uno de Dua Lipa :)


Para ejecutar el programa


Después de ejecutar el programa , encontró 7 caras, lo que se me hizo extraño es que no encontró la cara de Dua Lipa, entonces estuve jugando con los parámetros

Después de mover algunos parámetros


Los parametros son:
scaleFactores el porcentaje en que se ira reduciendo la imagen 
minNeighborsIndica cuantos son los veicnos que puede tener cada objeto encontrado


minSizeIndica el tamaño minimo del objeto los que tengan menor tamaño seran ignorados en la busqueda
maxSizeEs el tamaño maximo que puede tener la imagen a buscar y los que excedan ese tamaño seran ignorados


Para poder saber mas acerca de la libreria Open CV les comparto la liga https://docs.opencv.org/3.4/d1/de5/classcv_1_1CascadeClassifier.html

Espero les sea de utilidad y nos compartan.

Comentarios

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas