Ir al contenido

CoreML Exportación para modelos YOLO11

La implantación de modelos de visión por ordenador en dispositivos Apple como iPhones y Mac requiere un formato que garantice un rendimiento sin fisuras.

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

CoreML

CoreML Visión general

CoreML es el marco básico de aprendizaje automático de Apple que se basa en Accelerate, BNNS y Metal Performance Shaders. Proporciona un formato de modelo de aprendizaje automático que se integra a la perfección 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 las ventajas de Core ML sin necesidad de conexión a la red ni llamadas a la API, ya que el marco de Core ML funciona mediante computación en el dispositivo. Esto significa que la inferencia del modelo puede realizarse localmente en el dispositivo del usuario.

Características principales de los modelos CoreML

El framework CoreML de Apple ofrece sólidas funciones para el aprendizaje automático en dispositivos. Estas son las principales características que hacen de CoreML una potente herramienta para desarrolladores:

  • Amplio soporte de modelos: Convierte y ejecuta modelos de marcos populares como TensorFlow, PyTorchscikit-learn, XGBoost y LibSVM.

CoreML Modelos compatibles

  • 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 a la red.

  • Rendimiento y optimización: Utiliza los motores CPU, GPU y Neural Engine del dispositivo para obtener un rendimiento óptimo con un uso mínimo de energía y memoria. Ofrece herramientas de compresión y optimización de modelos sin perder 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 ML interactivas y herramientas de inspección y validación de modelos.

CoreML Opciones de implantación

Antes de ver el código para exportar los modelos YOLO11 al formato CoreML , entendamos dónde se suelen utilizar los modelos CoreML .

CoreML ofrece varias opciones de despliegue para los modelos de aprendizaje automático, entre las que se incluyen:

  • Despliegue en el dispositivo: Este método integra directamente los modelos CoreML en su aplicación iOS . Es especialmente ventajoso para garantizar una baja latencia, mayor privacidad (ya que los datos permanecen en el dispositivo) y funcionalidad offline. Sin embargo, este método puede verse limitado por las capacidades de hardware del dispositivo, especialmente en el caso de modelos más grandes y complejos. La implantación en el dispositivo puede realizarse de las dos maneras siguientes.

    • Modelos integrados: Estos modelos se incluyen en el paquete de la app y son de acceso inmediato. Son ideales para modelos pequeños que no requieren actualizaciones frecuentes.

    • Modelos descargados: Estos modelos se obtienen de un servidor cuando es necesario. Este método es adecuado para los modelos más grandes o los que necesitan actualizaciones periódicas. Ayuda a reducir el tamaño del paquete de la aplicación.

  • Despliegue basado en la nube: los modelos de CoreML se alojan en servidores y la aplicación iOS accede a ellos a través de solicitudes API. Esta opción escalable y flexible permite actualizar fácilmente los modelos sin necesidad de revisar 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.

Exportación de modelos YOLO11 a CoreML

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

Instalación

Para instalar el paquete necesario, ejecute

Instalación

# Install the required package for YOLO11
pip install ultralytics

Para obtener instrucciones detalladas y buenas prácticas relacionadas con el proceso de instalación, consulta nuestra guía de instalaciónYOLO11 . Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra guía de problemas comunes para obtener soluciones y consejos.

Utilización

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

Utilización

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 Por defecto Descripción
format str 'coreml' Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de despliegue.
imgsz int o tuple 640 Tamaño de imagen deseado para la entrada del modelo. Puede ser un número entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas.
half bool False Permite la cuantización FP16 (media precisión), reduciendo el tamaño del modelo y acelerando potencialmente 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 supresión no máxima (NMS), esencial para un postprocesado de detección preciso y eficaz.
batch int 1 Especifica el tamaño de la inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo.

Para más detalles sobre el proceso de exportación, visite la página de documentaciónUltralytics sobre exportación.

Despliegue de modelos exportados de YOLO11 CoreML

Una vez exportados con éxito sus modelos Ultralytics YOLO11 a CoreML, la siguiente fase crítica es desplegar estos modelos de forma eficaz. Para obtener información detallada sobre el despliegue de modelos CoreML en distintos entornos, consulte estos recursos:

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

  • ML y Visión: Una colección de vídeos exhaustivos que cubren diversos aspectos del uso y la implementación de modelos CoreML .

  • Integración de un modelo básico de ML en su aplicación: Una guía completa sobre la integración de un modelo CoreML en una aplicación iOS , en la que se detallan 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 . Si sigues los pasos descritos en esta guía, podrás garantizar la máxima compatibilidad y rendimiento al exportar modelos de YOLO11 a CoreML.

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

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

PREGUNTAS FRECUENTES

¿Cómo se exportan los modelos de YOLO11 al formato CoreML ?

Para exportar su Ultralytics YOLO11 modelos al formato CoreML , primero tendrá que asegurarse de que tiene el ultralytics instalado. Puede instalarlo utilizando:

Instalación

pip install ultralytics

A continuación, puede exportar el modelo utilizando los siguientes comandos Python o CLI :

Utilización

from ultralytics import YOLO

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

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

¿Cuáles son las ventajas de utilizar CoreML para desplegar los modelos YOLO11 ?

CoreML ofrece numerosas ventajas para desplegar Ultralytics YOLO11 en dispositivos Apple:

  • Procesamiento en el dispositivo: Permite la inferencia local del modelo en los dispositivos, garantizando la privacidad de los datos y minimizando la latencia.
  • Optimización del rendimiento: Aprovecha todo el potencial de CPU, GPU, y Neural Engine 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 información sobre la integración de su modelo CoreML en una aplicación iOS , consulte la guía sobre la integración de un modelo ML básico en su aplicación.

¿Cuáles son las opciones de despliegue de los modelos de YOLO11 exportados a CoreML?

Una vez exportado su modelo YOLO11 al formato CoreML , dispone de múltiples opciones de despliegue:

  1. Despliegue en el dispositivo: Integra directamente los modelos de CoreML en tu app para mejorar la privacidad y la funcionalidad offline. Esto se puede hacer como:

    • Modelos integrados: Incluidos en el paquete de la app, accesibles inmediatamente.
    • Modelos descargados: Se obtienen de un servidor cuando es necesario, lo que reduce el tamaño del paquete de aplicaciones.
  2. Despliegue basado en la nube: Aloje los modelos de CoreML en servidores y acceda a ellos mediante solicitudes a la API. Este enfoque facilita las actualizaciones y puede gestionar modelos más complejos.

Para obtener información detallada sobre el despliegue de los modelos CoreML , consulte CoreML Opciones de despliegue.

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

CoreML garantiza un rendimiento optimizado para Ultralytics YOLO11 modelos utilizando diversas técnicas de optimización:

  • Aceleración por hardware: Utiliza CPU, GPU y el motor neuronal del dispositivo para realizar cálculos eficientes.
  • Compresión de modelos: Proporciona herramientas para comprimir modelos con el fin de reducir su huella sin comprometer la precisión.
  • Inferencia adaptativa: Ajusta la inferencia en función de las capacidades del dispositivo para mantener un equilibrio entre velocidad y rendimiento.

Para más información sobre la optimización del rendimiento, visite la documentación oficial deCoreML .

¿Puedo realizar la inferencia directamente con el modelo exportado de CoreML ?

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

Inferencia en ejecución

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 más información, consulte la sección Utilización de la guía de exportación CoreML .

Creado hace 1 año ✏️ Actualizado hace 1 día

Comentarios