Detección de objetos con Custom Vision y Python: ¡Aprende cómo hacerlo!

Find AI Tools
No difficulty
No complicated process
Find ai tools

Detección de objetos con Custom Vision y Python: ¡Aprende cómo hacerlo!

Contenido

  1. Introducción
  2. Instalación del SDK de Custom Vision
  3. Configuración de las claves de entrenamiento y predicción
  4. Preparación de las imágenes
  5. Haciendo predicciones
  6. Mostrando los resultados
  7. Publicando la iteración del modelo
  8. Predicciones programáticas
  9. Integración con API
  10. Conclusiones

Introducción

En este artículo te mostraré cómo realizar predicciones programáticas en Custom Vision utilizando el SDK de Python. Custom Vision es un servicio de Azure que permite entrenar y utilizar modelos de aprendizaje automático para realizar detección de objetos en imágenes. Con este SDK, podrás realizar predicciones de manera sencilla y programática, lo que te permitirá integrar esta funcionalidad en tus aplicaciones o servicios.

Instalación del SDK de Custom Vision

Antes de comenzar, asegúrate de tener instalado el SDK de Custom Vision en tu entorno de desarrollo. Para instalarlo, simplemente ejecuta el siguiente comando:

pip install azure-cognitiveservices-vision-customvision

Configuración de las claves de entrenamiento y predicción

Antes de poder utilizar el servicio de Custom Vision, necesitarás obtener las claves de entrenamiento y predicción. Estas claves te permitirán acceder a tu proyecto y realizar las predicciones correspondientes. Además, también necesitarás el punto de conexión del servicio. Puedes obtener estas credenciales desde el portal de Azure, en la sección correspondiente al recurso de Custom Vision que hayas creado.

Una vez que tengas las claves y el punto de conexión, deberás configurarlas en tu entorno de desarrollo. Puedes hacerlo utilizando el siguiente código:

training_key = "TU_CLAVE_DE_ENTRENAMIENTO"
prediction_key = "TU_CLAVE_DE_PREDICCIÓN"
endpoint = "TU_PUNTO_DE_CONEXIÓN"

Preparación de las imágenes

Antes de realizar las predicciones, necesitarás tener a mano las imágenes en las que deseas detectar objetos. Estas imágenes deben cumplir con ciertas características para obtener resultados precisos. Asegúrate de tener imágenes de buena calidad y que contengan claramente los objetos que deseas detectar. También es importante que las etiquetas de los objetos sean consistentes y representativas.

Puedes almacenar las imágenes en una carpeta local o en un servicio de almacenamiento en la nube. Si utilizas una carpeta local, asegúrate de tener la ruta correcta al archivo. Si utilizas un servicio en la nube, como Azure Blob Storage, necesitarás las credenciales correspondientes para acceder a las imágenes.

Haciendo predicciones

Una vez que tienes todo configurado y las imágenes preparadas, puedes comenzar a realizar predicciones en Custom Vision. Para hacerlo, seguirás los siguientes pasos:

  1. Crear un cliente de entrenamiento y de predicción utilizando las claves y el punto de conexión:
from azure.cognitiveservices.vision.customvision.training import CustomVisionTrainingClient
from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient

train_client = CustomVisionTrainingClient(training_key, endpoint)
prediction_client = CustomVisionPredictionClient(prediction_key, endpoint)
  1. Obtener el proyecto que deseas utilizar para las predicciones:
project_name = "TU_NOMBRE_DE_PROYECTO"
project = train_client.get_projects(name=project_name)[0]
  1. Obtener la iteración más reciente del modelo entrenado:
iterations = train_client.get_iterations(project.id)
latest_iteration = next(iter(iterations))
  1. Publicar la iteración para que esté lista para realizar predicciones:
publish_name = "ITERACIÓN_PUBLICADA"
published_iteration = train_client.publish_iteration(project.id, latest_iteration.id, publish_name)
  1. Realizar predicciones en una imagen específica:
import matplotlib.pyplot as plt
import cv2

image_path = "RUTA_DE_LA_IMAGEN"
image = cv2.imread(image_path)
result = prediction_client.detect_image(project.id, published_iteration.id, image)

Mostrando los resultados

Una vez que hayas realizado las predicciones, podrás mostrar los resultados de forma visual. Esto te permitirá verificar la precisión de las detecciones y obtener una mejor comprensión de cómo está funcionando tu modelo. Puedes utilizar herramientas como matplotlib y OpenCV para mostrar las imágenes con los objetos detectados y las etiquetas correspondientes. A continuación, te muestro un ejemplo sencillo:

def show_image(image, predictions):
    plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
    for prediction in predictions:
        xmin, ymin, xmax, ymax = prediction.bounding_box.left, prediction.bounding_box.top, \
                                 prediction.bounding_box.left + prediction.bounding_box.width, \
                                 prediction.bounding_box.top + prediction.bounding_box.height
        label = prediction.tag_name
        plt.text(xmin, ymin, label, color='red', fontsize=12)
        plt.plot([xmin, xmax], [ymin, ymin], color='red', linewidth=2)
        plt.plot([xmin, xmin], [ymin, ymax], color='red', linewidth=2)
        plt.plot([xmax, xmax], [ymin, ymax], color='red', linewidth=2)
        plt.plot([xmin, xmax], [ymax, ymax], color='red', linewidth=2)
    plt.axis('off')
    plt.show()

show_image(image, result.predictions)

Publicando la iteración del modelo

Antes de poder hacer predicciones, debes asegurarte de que la iteración del modelo que deseas utilizar esté publicada. Esto se realiza utilizando la función publish_iteration del cliente de entrenamiento. Dicha función requiere el ID del proyecto, el ID de la iteración y un nombre descriptivo para la iteración publicada. Una vez que hayas publicado la iteración, podrás realizar predicciones utilizando el cliente de predicción. Asegúrate de siempre utilizar la iteración más reciente del modelo, ya que esta contendrá las mejoras y actualizaciones que hayas realizado durante el entrenamiento.

Predicciones programáticas

El SDK de Custom Vision te permite realizar predicciones de forma programática, lo que significa que puedes automatizar y escalar el proceso de detección de objetos en tus aplicaciones o servicios. Esto te brinda la flexibilidad de realizar predicciones en tiempo real, según tus necesidades y requerimientos específicos. Puedes llamar a las funciones de predicción desde tu código Python, enviando las imágenes y recibiendo las predicciones correspondientes. Esto facilita la integración del servicio de Custom Vision en tus proyectos existentes.

Integración con API

Además de utilizar el SDK de Python, también puedes integrar Custom Vision utilizando el API REST correspondiente. Este API te permite realizar las mismas acciones que con el SDK, pero utilizando llamadas HTTP. Esto te brinda una mayor flexibilidad y control sobre las operaciones que deseas realizar. Puedes consultar la documentación oficial de Custom Vision para obtener más detalles sobre cómo utilizar el API y realizar las llamadas correspondientes.

Conclusiones

Custom Vision es una herramienta poderosa que te permite realizar detección de objetos en imágenes de forma precisa y eficiente. Con el SDK de Python, puedes aprovechar todas las funcionalidades de Custom Vision y realizar predicciones programáticas en tus proyectos. Ya sea que necesites detectar objetos en imágenes de forma individual o a gran escala, Custom Vision te brinda las herramientas necesarias para lograrlo. ¡Explora todas las posibilidades que ofrece y crea aplicaciones inteligentes alimentadas por el aprendizaje automático!

🔗 Recursos adicionales:

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.