Exportación a CoreML para modelos YOLO26

Implementar modelos de visión artificial en dispositivos Apple, como iPhones y Macs, requiere un formato que garantice un rendimiento impecable.



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

El formato de exportación CoreML te permite optimizar tus modelos Ultralytics YOLO26 para una detección de objetos eficiente en aplicaciones de iOS y macOS. En esta guía, te llevaremos a través de los pasos para convertir tus modelos al formato CoreML, facilitando que tus modelos funcionen bien en dispositivos Apple.

CoreML

Apple CoreML deployment pipeline

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

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

Características clave de los modelos CoreML

El marco de trabajo CoreML de Apple ofrece funciones sólidas para el aprendizaje automático en el dispositivo. Estas son las características clave que convierten a CoreML en una herramienta potente para los desarrolladores:

  • Soporte integral de modelos: Convierte y ejecuta modelos de marcos de trabajo populares como TensorFlow, PyTorch, scikit-learn, XGBoost y LibSVM.

CoreML supported deep learning frameworks

  • Aprendizaje automático en el dispositivo: Garantiza la privacidad de los datos y un procesamiento rápido al ejecutar 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 obtener un rendimiento óptimo con un consumo mínimo de energía y memoria. Ofrece herramientas para la compresión y optimización de modelos mientras mantiene la precisión.

  • Facilidad de integración: Proporciona un formato unificado para diversos tipos de modelos y una API fácil de usar para una integración fluida en las aplicaciones. Soporta tareas específicas de dominio a través de marcos de trabajo 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 revisar el código para exportar modelos YOLO26 al formato CoreML, entendamos dónde se utilizan habitualmente 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 tu aplicación de iOS. Es especialmente ventajoso para garantizar una baja latencia, una mayor privacidad (ya que los datos permanecen en el dispositivo) y funcionalidad sin conexión. Este enfoque, sin embargo, puede estar limitado por las capacidades de hardware del dispositivo, especialmente para modelos más grandes y complejos, y se puede ejecutar de las dos formas siguientes:

    • Modelos integrados: Estos modelos se incluyen en el paquete de la aplicación y son inmediatamente accesibles. 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 regulares. Ayuda a mantener un menor tamaño del paquete de la aplicación.

  • Implementación basada en la nube: Los modelos CoreML se alojan en servidores y la aplicación iOS accede a ellos a través de solicitudes de API. Esta opción escalable y flexible permite realizar actualizaciones de modelos sencillas sin 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.

Exportación de modelos YOLO26 a CoreML

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

Instalación

Para instalar el paquete requerido, ejecuta:

Instalación
# Install the required package for YOLO26
pip install ultralytics

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

Uso

Antes de sumergirte en las instrucciones de uso, asegúrate de echar un vistazo a la gama de modelos YOLO26 ofrecidos por Ultralytics. Esto te ayudará a elegir el modelo más adecuado para los requisitos de tu proyecto.

Uso
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")

Argumentos de exportación

ArgumentoTipoPredeterminadoDescripción
formatstr'coreml'Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de implementación.
imgszint o tuple640Tamañ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.
dynamicboolFalsePermite tamaños de entrada dinámicos, mejorando la flexibilidad en el manejo de dimensiones de imagen variables.
halfboolFalseActiva la cuantización FP16 (precisión media), reduciendo el tamaño del modelo y acelerando potencialmente la inferencia en hardware compatible.
int8boolFalseActiva la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida de precisión mínima, principalmente para dispositivos de borde (edge).
nmsboolFalseAñade la supresión de no máximos (NMS), esencial para un posprocesamiento de detección preciso y eficiente.
batchint1Especifica el tamaño de 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 modo predict.
devicestrNoneEspecifica el dispositivo para la exportación: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps).
Consejo

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

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

Implementación de modelos YOLO26 exportados a CoreML

Una vez exportados tus modelos Ultralytics YOLO26 a CoreML, la siguiente fase crítica es implementar estos modelos de manera efectiva. Para una guía detallada sobre cómo implementar modelos CoreML en diversos entornos, echa un vistazo a estos recursos:

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

  • ML and Vision: Una colección de vídeos completos que cubren diversos aspectos del uso e implementación de modelos CoreML.

  • Integrating a Core ML Model into Your App: Una guía completa sobre cómo integrar un modelo CoreML en una aplicación de iOS, detallando los pasos desde la preparación del modelo hasta su implementación en la aplicación para diversas funcionalidades.

Resumen

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

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

Además, si deseas saber más sobre otras integraciones de Ultralytics YOLO26, visita nuestra página de guía de integración. Encontrarás allí un montón de recursos e ideas valiosas.

Preguntas frecuentes

¿Cómo exporto modelos YOLO26 al formato CoreML?

Para exportar tus modelos Ultralytics YOLO26 al formato CoreML, primero deberás asegurarte de tener instalado el paquete ultralytics. Puedes instalarlo usando:

Instalación
pip install ultralytics

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

Uso
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreml")

Para más detalles, consulta la sección Exportación de modelos YOLO26 a CoreML de nuestra documentación.

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

CoreML ofrece numerosas ventajas para implementar modelos Ultralytics YOLO26 en dispositivos Apple:

  • Procesamiento en el dispositivo: Permite la inferencia del modelo localmente en los dispositivos, garantizando la privacidad de los datos y minimizando la latencia.
  • Optimización del rendimiento: Aprovecha todo el potencial de la CPU, la GPU y el Neural Engine del dispositivo, optimizando tanto la velocidad como la eficiencia.
  • Facilidad de integración: Ofrece una experiencia de integración fluida con los ecosistemas de Apple, incluyendo iOS, macOS, watchOS y tvOS.
  • Versatilidad: Soporta una amplia gama de tareas de aprendizaje automático como análisis de imágenes, procesamiento de audio y procesamiento de lenguaje natural utilizando el marco de trabajo CoreML.

Para más detalles sobre cómo integrar tu modelo CoreML en una aplicación de iOS, echa un vistazo a la guía sobre Integrating a Core ML Model into Your App.

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

Una vez que exportas tu modelo YOLO26 al formato CoreML, tienes múltiples opciones de implementación:

  1. Implementación en el dispositivo: Integra directamente los modelos CoreML en tu aplicación para una mayor privacidad y funcionalidad sin conexión. Esto se puede hacer como:

    • Modelos integrados: Incluidos en el paquete de la aplicación, accesibles inmediatamente.
    • Modelos descargados: Obtenidos de un servidor según sea necesario, manteniendo el tamaño del paquete de la aplicación más pequeño.
  2. Implementación basada en la nube: Aloja los modelos CoreML en servidores y accede a ellos mediante solicitudes de API. Este enfoque facilita las actualizaciones y puede manejar modelos más complejos.

Para una guía detallada sobre cómo implementar modelos CoreML, consulta Opciones de implementación de CoreML.

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

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

  • Aceleración por hardware: Utiliza la CPU, la GPU y el Neural Engine del dispositivo para una computación eficiente.
  • Compresión de modelos: Proporciona herramientas para comprimir modelos y reducir su huella 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 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 CLI:

Ejecución de inferencia
from ultralytics import YOLO

coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")

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

Comentarios