¿Por qué usamos palabras como “árbol”, “hilo” o “demonio” en programación? Metáforas que moldean el software

Programar con metáforas: cómo el lenguaje moldea el software… y nuestra forma de entenderlo En el mundo de la programación, muchas veces usamos palabras que no vienen de lo técnico, sino de la vida cotidiana, la naturaleza, o incluso lo espiritual. Árboles, hijos, demonios, hilos, nubes... ¿por qué usamos estos términos para describir conceptos de software? Este artículo es una reflexión sobre cómo las metáforas nos ayudan —y a veces nos limitan— cuando intentamos comprender el mundo del código. 🌱 Inspiraciones naturales y biológicas Desde las estructuras de datos hasta la inteligencia artificial, usamos muchos conceptos tomados de la biología o el mundo físico: Redes neuronales: inspiradas en el cerebro humano, aunque su funcionamiento real sea muy diferente. Árboles, ramas, hojas: estructuras que usamos para modelar relaciones jerárquicas. Algoritmos genéticos: evolución artificial basada en selección y mutación. 👪 Relaciones familiares en estructuras En ...

🖼️ Cómo Hacer Reconocimiento de Imágenes con Python: Guía Paso a Paso

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 parámetros son:
scaleFactores el porcentaje en que se ira reduciendo la imagen 
minNeighborsIndica cuantos son los vecinos que puede tener cada objeto encontrado


minSizeIndica el tamaño mínimo del objeto los que tengan menor tamaño serán ignorados en la búsqueda
maxSizeEs el tamaño máximo que puede tener la imagen a buscar y los que excedan ese tamaño serán 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

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

📊 Automatiza tu trabajo: Convierte tablas de Word a Excel con una macro

API de banxico para obtener tipo de cambio utilizando Javascript