Exportação CoreML para Modelos YOLO11
A implementação de modelos de visão computacional em dispositivos Apple, como iPhones e Macs, requer um formato que garanta um desempenho perfeito.
O formato de exportação CoreML permite otimizar seus modelos Ultralytics YOLO11 para detecção de objetos eficiente em aplicações iOS e macOS. Neste guia, vamos orientá-lo através dos passos para converter seus modelos para o formato CoreML, tornando mais fácil para seus modelos terem um bom desempenho em dispositivos Apple.
CoreML
CoreML é a estrutura fundamental de aprendizado de máquina da Apple que se baseia em Accelerate, BNNS e Metal Performance Shaders. Ele fornece um formato de modelo de aprendizado de máquina que se integra perfeitamente em aplicações iOS e suporta tarefas como análise de imagem, processamento de linguagem natural, conversão de áudio em texto e análise de som.
As aplicações podem tirar partido do CoreML sem a necessidade de ter uma conexão de rede ou chamadas de API porque o framework CoreML funciona usando computação no dispositivo. Isso significa que a inferência do modelo pode ser realizada localmente no dispositivo do utilizador.
Principais funcionalidades dos modelos CoreML
A framework CoreML da Apple oferece recursos robustos para machine learning no dispositivo. Aqui estão os principais recursos que tornam o CoreML uma ferramenta poderosa para desenvolvedores:
- Suporte Abrangente a Modelos: Converte e executa modelos de frameworks populares como TensorFlow, PyTorch, scikit-learn, XGBoost e LibSVM.
-
Machine Learning On-device: Garante a privacidade dos dados e o processamento rápido, executando modelos diretamente no dispositivo do usuário, eliminando a necessidade de conectividade de rede.
-
Desempenho e Otimização: Utiliza a CPU, GPU e Neural Engine do dispositivo para um desempenho ideal com uso mínimo de energia e memória. Oferece ferramentas para compressão e otimização de modelos, mantendo a precisão.
-
Facilidade de Integração: Fornece um formato unificado para vários tipos de modelos e uma API amigável para integração perfeita em aplicativos. Suporta tarefas específicas de domínio por meio de frameworks como Vision e Natural Language.
-
Recursos Avançados: Inclui capacidades de treinamento no dispositivo para experiências personalizadas, previsões assíncronas para experiências de ML interativas e ferramentas de inspeção e validação de modelos.
Opções de Implementação do CoreML
Antes de analisarmos o código para exportar modelos YOLO11 para o formato CoreML, vamos entender onde os modelos CoreML são normalmente usados.
O CoreML oferece várias opções de implementação para modelos de machine learning, incluindo:
-
Implantação On-Device: Este método integra diretamente os modelos CoreML em seu aplicativo iOS. É particularmente vantajoso para garantir baixa latência, privacidade aprimorada (já que os dados permanecem no dispositivo) e funcionalidade offline. Essa abordagem, no entanto, pode ser limitada pelas capacidades de hardware do dispositivo, especialmente para modelos maiores e mais complexos. A implantação on-device pode ser executada das duas seguintes maneiras.
-
Modelos Incorporados: Esses modelos estão incluídos no pacote do aplicativo e estão imediatamente acessíveis. Eles são ideais para modelos pequenos que não exigem atualizações frequentes.
-
Modelos Baixados: Esses modelos são obtidos de um servidor conforme necessário. Esta abordagem é adequada para modelos maiores ou aqueles que precisam de atualizações regulares. Ajuda a manter o tamanho do pacote do aplicativo menor.
-
-
Implantação Baseada na Nuvem: Os modelos CoreML são hospedados em servidores e acessados pelo aplicativo iOS por meio de solicitações de API. Essa opção escalável e flexível permite atualizações fáceis do modelo sem revisões do aplicativo. É ideal para modelos complexos ou aplicativos de grande escala que exigem atualizações regulares. No entanto, requer uma conexão com a Internet e pode apresentar problemas de latência e segurança.
Exportando Modelos YOLO11 para CoreML
Exportar YOLO11 para CoreML permite um desempenho otimizado de aprendizado de máquina no dispositivo dentro do ecossistema da Apple, oferecendo benefícios em termos de eficiência, segurança e integração perfeita com as plataformas iOS, macOS, watchOS e tvOS.
Instalação
Para instalar o pacote necessário, execute:
Instalação
# Install the required package for YOLO11
pip install ultralytics
Para obter instruções detalhadas e práticas recomendadas relacionadas ao processo de instalação, consulte nosso guia de instalação do YOLO11. Ao instalar os pacotes necessários para o YOLO11, se você encontrar alguma dificuldade, consulte nosso guia de problemas comuns para obter soluções e dicas.
Utilização
Antes de se aprofundar nas instruções de uso, certifique-se de verificar a variedade de modelos YOLO11 oferecidos pela Ultralytics. Isso ajudará você a escolher o modelo mais adequado para os requisitos do seu projeto.
Utilização
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 Exportação
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
format |
str |
'coreml' |
Formato de destino para o modelo exportado, definindo a compatibilidade com vários ambientes de implementação. |
imgsz |
int ou tuple |
640 |
Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas. |
half |
bool |
False |
Permite a quantização FP16 (meia-precisão), reduzindo o tamanho do modelo e potencialmente acelerando a inferência no hardware suportado. |
int8 |
bool |
False |
Ativa a quantização INT8, comprimindo ainda mais o modelo e acelerando a inferência com uma perda mínima de precisão, principalmente para dispositivos de borda. |
nms |
bool |
False |
Adiciona a Supressão Não Máxima (NMS), essencial para um pós-processamento de detecção preciso e eficiente. |
batch |
int |
1 |
Especifica o tamanho da inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado irá processar em simultâneo em predict modo. |
device |
str |
None |
Especifica o dispositivo para exportação: GPU (device=0 ), CPU (device=cpu ), MPS para silício Apple (device=mps ). |
Dica
Certifique-se de usar um macOS ou uma máquina x86 Linux ao exportar para CoreML.
Para mais detalhes sobre o processo de exportação, visite a página de documentação da Ultralytics sobre exportação.
Implantação de Modelos CoreML YOLO11 Exportados
Tendo exportado com sucesso seus modelos Ultralytics YOLO11 para CoreML, a próxima fase crítica é a implantação eficaz desses modelos. Para obter orientações detalhadas sobre a implantação de modelos CoreML em vários ambientes, consulte estes recursos:
-
Ferramentas CoreML: Este guia inclui instruções e exemplos para converter modelos de TensorFlow, PyTorch e outras bibliotecas para Core ML.
-
ML e Visão: Uma coleção de vídeos abrangentes que cobrem vários aspectos do uso e implementação de modelos CoreML.
-
Integrando um Modelo Core ML em Seu Aplicativo: Um guia completo sobre como integrar um modelo CoreML em um aplicativo iOS, detalhando os passos desde a preparação do modelo até a sua implementação no aplicativo para diversas funcionalidades.
Resumo
Neste guia, abordamos como exportar modelos Ultralytics YOLO11 para o formato CoreML. Seguindo as etapas descritas neste guia, você pode garantir a máxima compatibilidade e desempenho ao exportar modelos YOLO11 para CoreML.
Para obter mais detalhes sobre o uso, visite a documentação oficial do CoreML.
Além disso, se você quiser saber mais sobre outras integrações do Ultralytics YOLO11, visite nossa página do guia de integração. Você encontrará muitos recursos e insights valiosos lá.
FAQ
Como exportar modelos YOLO11 para o formato CoreML?
Para exportar o seu Ultralytics YOLO11 modelos para o formato CoreML, primeiro você precisa garantir que tem o ultralytics
pacote instalado. Você pode instalá-lo usando:
Instalação
pip install ultralytics
Em seguida, você pode exportar o modelo usando os seguintes comandos Python ou CLI:
Utilização
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="coreml")
yolo export model=yolo11n.pt format=coreml
Para obter mais detalhes, consulte a seção Exportando Modelos YOLO11 para CoreML da nossa documentação.
Quais são os benefícios de usar o CoreML para implantar modelos YOLO11?
O CoreML oferece inúmeras vantagens para implementar modelos Ultralytics YOLO11 em dispositivos Apple:
- Processamento On-device: Permite a inferência de modelo local em dispositivos, garantindo a privacidade dos dados e minimizando a latência.
- Otimização de Desempenho: Aproveita todo o potencial da CPU, GPU e Neural Engine do dispositivo, otimizando tanto a velocidade quanto a eficiência.
- Facilidade de Integração: Oferece uma experiência de integração perfeita com os ecossistemas da Apple, incluindo iOS, macOS, watchOS e tvOS.
- Versatilidade: Suporta uma ampla gama de tarefas de machine learning, como análise de imagem, processamento de áudio e processamento de linguagem natural usando o framework CoreML.
Para obter mais detalhes sobre como integrar o seu modelo CoreML numa aplicação iOS, consulte o guia sobre Integrar um Modelo Core ML na sua Aplicação.
Quais são as opções de implementação para modelos YOLO11 exportados para CoreML?
Depois de exportar seu modelo YOLO11 para o formato CoreML, você tem várias opções de implementação:
-
Implantação On-Device: Integre diretamente os modelos CoreML em seu aplicativo para privacidade aprimorada e funcionalidade offline. Isso pode ser feito como:
- Modelos Incorporados: Incluídos no pacote do aplicativo, acessíveis imediatamente.
- Modelos Baixados: Obtidos de um servidor conforme necessário, mantendo o tamanho do pacote do aplicativo menor.
-
Implantação Baseada na Nuvem: Hospede modelos CoreML em servidores e acesse-os por meio de solicitações de API. Essa abordagem oferece suporte a atualizações mais fáceis e pode lidar com modelos mais complexos.
Para obter orientação detalhada sobre como implantar modelos CoreML, consulte Opções de Implantação do CoreML.
Como o CoreML garante o desempenho otimizado para modelos YOLO11?
O CoreML garante um desempenho otimizado para modelos Ultralytics YOLO11 utilizando várias técnicas de otimização:
- Aceleração de Hardware: Usa a CPU, GPU e o Neural Engine do dispositivo para computação eficiente.
- Compressão de Modelo: Fornece ferramentas para comprimir modelos para reduzir seu tamanho sem comprometer a precisão.
- Inferência Adaptativa: Ajusta a inferência com base nas capacidades do dispositivo para manter um equilíbrio entre velocidade e desempenho.
Para obter mais informações sobre otimização de desempenho, visite a documentação oficial do CoreML.
Posso executar a inferência diretamente com o modelo CoreML exportado?
Sim, você pode executar a inferência diretamente usando o modelo CoreML exportado. Abaixo estão os comandos para Python e CLI:
Executando a Inferência
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 obter informações adicionais, consulte a seção de Utilização do guia de exportação do CoreML.