Ir al contenido

Exportación de CoreML para modelos YOLO11

La implementación de modelos de visión artificial en dispositivos Apple como iPhones y Macs requiere un formato que garantice un rendimiento perfecto.



Ver: Cómo exportar Ultralytics YOLO11 a CoreML para una inferencia 2 veces más rápida en dispositivos Apple 🚀

El formato de exportación CoreML le permite optimizar sus modelos Ultralytics YOLO11 para una detección de objetos eficiente en aplicaciones iOS y macOS. En esta guía, le guiaremos a través de los pasos para convertir sus modelos al formato CoreML, facilitando que sus modelos tengan un buen rendimiento en dispositivos Apple.

CoreML

Descripción general de CoreML

CoreML es el marco de aprendizaje automático fundamental de Apple que se basa en Accelerate, BNNS y Metal Performance Shaders. Proporciona un formato de modelo de aprendizaje automático que se integra perfectamente en las aplicaciones de iOS y admite tareas como el análisis de imágenes, el procesamiento del lenguaje natural, la conversión de audio a texto y el análisis de sonido.

Las aplicaciones pueden aprovechar Core ML sin necesidad de tener una conexión de red o llamadas a la API, ya que el framework Core ML funciona mediante la computación en el dispositivo. Esto significa que la inferencia del modelo se puede realizar localmente en el dispositivo del usuario.

Características principales de los modelos CoreML

El framework CoreML de Apple ofrece funciones robustas para el aprendizaje automático en el dispositivo. Estas son las características clave que hacen de CoreML una herramienta potente para los desarrolladores:

  • Soporte Integral de Modelos: Convierte y ejecuta modelos de frameworks populares como TensorFlow, PyTorch, scikit-learn, XGBoost y LibSVM.

Modelos compatibles con CoreML

  • Aprendizaje automático en el dispositivo: Garantiza la privacidad de los datos y un procesamiento rápido mediante la ejecución de modelos directamente en el dispositivo del usuario, eliminando la necesidad de conectividad de red.

  • Rendimiento y Optimización: Utiliza la CPU, la GPU y el Neural Engine del dispositivo para un rendimiento óptimo con un consumo mínimo de energía y memoria. Ofrece herramientas para la compresión y optimización de modelos, manteniendo la precisión.

  • Facilidad de integración: Proporciona un formato unificado para varios tipos de modelos y una API fácil de usar para una integración perfecta en las aplicaciones. Admite tareas específicas del dominio a través de marcos como Vision y Natural Language.

  • Funciones avanzadas: Incluye capacidades de entrenamiento en el dispositivo para experiencias personalizadas, predicciones asíncronas para experiencias de ML interactivas y herramientas de inspección y validación de modelos.

Opciones de implementación de CoreML

Antes de examinar el código para exportar modelos YOLO11 al formato CoreML, comprendamos dónde se utilizan normalmente los modelos CoreML.

CoreML ofrece varias opciones de implementación para modelos de aprendizaje automático, incluyendo:

  • Implementación en el dispositivo: Este método integra directamente los modelos CoreML en su aplicación iOS. Es particularmente ventajoso para garantizar una baja latencia, una mayor privacidad (ya que los datos permanecen en el dispositivo) y la funcionalidad sin conexión. Este enfoque, sin embargo, puede estar limitado por las capacidades de hardware del dispositivo, especialmente para los modelos más grandes y complejos. La implementación en el dispositivo se puede ejecutar de las dos maneras siguientes.

    • Modelos integrados: Estos modelos se incluyen en el paquete de la aplicación y están disponibles de inmediato. Son ideales para modelos pequeños que no requieren actualizaciones frecuentes.

    • Modelos descargados: Estos modelos se obtienen de un servidor según sea necesario. Este enfoque es adecuado para modelos más grandes o aquellos que necesitan actualizaciones periódicas. Ayuda a mantener el tamaño del paquete de la aplicación más pequeño.

  • Implementación basada en la nube: Los modelos CoreML se alojan en servidores y la aplicación de iOS accede a ellos a través de solicitudes de API. Esta opción escalable y flexible permite actualizaciones sencillas del modelo sin necesidad de revisiones de la aplicación. Es ideal para modelos complejos o aplicaciones a gran escala que requieren actualizaciones periódicas. Sin embargo, requiere una conexión a Internet y puede plantear problemas de latencia y seguridad.

Exportando modelos YOLO11 a CoreML

La exportación de YOLO11 a CoreML permite un rendimiento optimizado del aprendizaje automático en el dispositivo dentro del ecosistema de Apple, ofreciendo beneficios en términos de eficiencia, seguridad e integración perfecta con las plataformas iOS, macOS, watchOS y tvOS.

Instalación

Para instalar el paquete requerido, ejecute:

Instalación

# Install the required package for YOLO11
pip install ultralytics

Para obtener instrucciones detalladas y las mejores prácticas relacionadas con el proceso de instalación, consulte nuestra guía de instalación de YOLO11. Si tiene alguna dificultad al instalar los paquetes necesarios para YOLO11, consulte nuestra guía de problemas comunes para obtener soluciones y consejos.

Uso

Antes de sumergirse en las instrucciones de uso, asegúrese de consultar la gama de modelos YOLO11 ofrecidos por Ultralytics. Esto le ayudará a elegir el modelo más apropiado para los requisitos de su proyecto.

Uso

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolo11n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO("yolo11n.mlpackage")

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to CoreML format
yolo export model=yolo11n.pt format=coreml # creates 'yolo11n.mlpackage''

# Run inference with the exported model
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'

Argumentos de exportación

Argumento Tipo Predeterminado Descripción
format str 'coreml' Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de implementación.
imgsz int o tuple 640 Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas.
half bool False Activa la cuantización FP16 (media precisión), reduciendo el tamaño del modelo y, potencialmente, acelerando la inferencia en hardware compatible.
int8 bool False Activa la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida mínima de precisión, principalmente para dispositivos de borde.
nms bool False Añade la supresión no máxima (NMS), esencial para un post-procesamiento de detección preciso y eficiente.
batch int 1 Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo.
device str None Especifica el dispositivo para la exportación: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps).

Consejo

Asegúrese de utilizar una máquina macOS o x86 Linux al exportar a CoreML.

Para obtener más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre la exportación.

Implementación de modelos CoreML YOLO11 exportados

Una vez que haya exportado con éxito sus modelos Ultralytics YOLO11 a CoreML, la siguiente fase crítica es la implementación efectiva de estos modelos. Para obtener orientación detallada sobre la implementación de modelos CoreML en varios entornos, consulte estos recursos:

  • Herramientas CoreML: Esta guía incluye instrucciones y ejemplos para convertir modelos de TensorFlow, PyTorch y otras bibliotecas a Core ML.

  • ML y Visión: Una colección de vídeos completos que cubren varios aspectos del uso e implementación de modelos de CoreML.

  • Integración de un modelo de Core ML en tu app: Una guía completa sobre cómo integrar un modelo de CoreML en una aplicación de iOS, que detalla los pasos desde la preparación del modelo hasta su implementación en la app para diversas funcionalidades.

Resumen

En esta guía, repasamos cómo exportar modelos Ultralytics YOLO11 al formato CoreML. Siguiendo los pasos descritos en esta guía, puede garantizar la máxima compatibilidad y rendimiento al exportar modelos YOLO11 a CoreML.

Para obtener más detalles sobre su uso, visite la documentación oficial de CoreML.

Además, si deseas obtener más información sobre otras integraciones de Ultralytics YOLO11, visita nuestra página de guía de integración. Allí encontrarás muchos recursos e información valiosa.

Preguntas frecuentes

¿Cómo exporto modelos YOLO11 al formato CoreML?

Para exportar su Ultralytics YOLO11 modelos al formato CoreML, primero deberá asegurarse de tener el ultralytics paquete instalado. Puede instalarlo usando:

Instalación

pip install ultralytics

A continuación, puedes exportar el modelo utilizando los siguientes comandos de python o CLI:

Uso

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="coreml")
yolo export model=yolo11n.pt format=coreml

Para obtener más detalles, consulte la sección Exportación de modelos YOLO11 a CoreML de nuestra documentación.

¿Cuáles son los beneficios de usar CoreML para implementar modelos YOLO11?

CoreML proporciona numerosas ventajas para la implementación de modelos Ultralytics YOLO11 en dispositivos Apple:

  • Procesamiento en el dispositivo: Permite la inferencia de modelos locales en los dispositivos, lo que garantiza la privacidad de los datos y minimiza la latencia.
  • Optimización del rendimiento: Aprovecha todo el potencial de la CPU, la GPU y el motor neuronal del dispositivo, optimizando tanto la velocidad como la eficiencia.
  • Facilidad de integración: Ofrece una experiencia de integración perfecta con los ecosistemas de Apple, incluidos iOS, macOS, watchOS y tvOS.
  • Versatilidad: Admite una amplia gama de tareas de aprendizaje automático, como el análisis de imágenes, el procesamiento de audio y el procesamiento del lenguaje natural mediante el framework CoreML.

Para obtener más detalles sobre cómo integrar tu modelo CoreML en una aplicación iOS, consulta la guía sobre Integración de un modelo de Core ML en tu aplicación.

¿Cuáles son las opciones de implementación para los modelos YOLO11 exportados a CoreML?

Una vez que exporta su modelo YOLO11 al formato CoreML, tiene varias opciones de implementación:

  1. Implementación en el dispositivo: Integre directamente los modelos CoreML en su aplicación para mejorar la privacidad y la funcionalidad sin conexión. Esto se puede hacer como:

    • Modelos integrados: Incluidos en el paquete de la aplicación, accesibles de inmediato.
    • Modelos descargados: Se obtienen de un servidor según sea necesario, lo que mantiene el tamaño del paquete de la aplicación más pequeño.
  2. Implementación basada en la nube: Aloje modelos CoreML en servidores y acceda a ellos a través de solicitudes de API. Este enfoque facilita las actualizaciones y puede manejar modelos más complejos.

Para obtener una guía detallada sobre la implementación de modelos CoreML, consulta Opciones de implementación de CoreML.

¿Cómo asegura CoreML un rendimiento optimizado para los modelos YOLO11?

CoreML garantiza un rendimiento optimizado para los modelos Ultralytics YOLO11 mediante la utilización de diversas técnicas de optimización:

  • Aceleración de hardware: Utiliza la CPU, la GPU y el motor neuronal del dispositivo para un cálculo eficiente.
  • Compresión de Modelos: Proporciona herramientas para comprimir modelos y reducir su tamaño sin comprometer la precisión.
  • Inferencia adaptativa: Ajusta la inferencia según las capacidades del dispositivo para mantener un equilibrio entre velocidad y rendimiento.

Para obtener más información sobre la optimización del rendimiento, visita la documentación oficial de CoreML.

¿Puedo ejecutar la inferencia directamente con el modelo CoreML exportado?

Sí, puedes ejecutar la inferencia directamente utilizando el modelo CoreML exportado. A continuación, se muestran los comandos para python y la CLI:

Ejecutando la inferencia

from ultralytics import YOLO

coreml_model = YOLO("yolo11n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'

Para obtener información adicional, consulte la sección de Uso de la guía de exportación de CoreML.



📅 Creado hace 1 año ✏️ Actualizado hace 24 días

Comentarios