CoreML para Swift: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

CoreML para Swift: guia completo com exemplos práticos

1. O que é e para que serve

CoreML é um framework de machine learning desenvolvido pela Apple para integrar modelos de aprendizado de máquina diretamente em aplicativos iOS, macOS, watchOS e tvOS. Diferente de soluções em nuvem, o CoreML executa todos os cálculos no dispositivo do usuário, garantindo processamento instantâneo de dados sem atrasos de rede e total privacidade dos dados do usuário.

Para que serve o CoreML? Primeiro, permite que desenvolvedores implementem funções avançadas de IA (reconhecimento de imagens, processamento de linguagem natural, análise de áudio) sem precisar dominar os detalhes de redes neurais. Segundo, a execução no dispositivo significa que o app pode funcionar offline, algo crucial para muitos cenários de uso. Terceiro, a Apple otimizou o CoreML para trabalhar com Neural Engine, GPU e CPU, garantindo máxima performance em todos os dispositivos Apple.

O CoreML suporta modelos criados em frameworks populares (TensorFlow, PyTorch, scikit-learn), que podem ser convertidos para o formato .mlmodel usando a ferramenta coremltools. O framework também se integra perfeitamente com Vision (para análise de imagens), Natural Language (para processamento de texto) e SoundAnalysis (para áudio).

2. Instalação

O CoreML é um framework nativo da Apple e não requer instalação via gerenciadores de pacotes. Para usá-lo, basta importá-lo no seu projeto. No entanto, para converter modelos de outros formatos, você precisará do pacote Python coremltools.

Instalação do coremltools (Python):

pip install coremltools

Importando CoreML no projeto Xcode:

import CoreML

Para trabalhar com imagens e vídeos, importe também o Vision:

import Vision

3. Início rápido — exemplo mínimo funcional

Vamos criar um app simples que classifica uma imagem usando o modelo pré-treinado MobileNetV2. Primeiro, baixe o modelo MobileNetV2.mlmodel do repositório da Apple ou converta-o usando coremltools.

Exemplo mínimo de classificação de imagem:

import CoreML
import Vision
import UIKit

// 1. Carregar o modelo
guard let model = try? VNCoreMLModel(for: MobileNetV2().model) else {
    fatalError("Falha ao carregar o modelo")
}

// 2. Criar a requisição
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results as? [VNClassificationObservation],
          let topResult = results.first else {
        print("Não foi possível classificar a imagem")
        return
    }
    print("Reconhecido: \(topResult.identifier) com confiança \(topResult.confidence)")
}

// 3. Carregar a imagem
guard let image = UIImage(named: "gato.jpg"),
      let ciImage = CIImage(image: image) else {
    fatalError("Falha ao carregar a imagem")
}

// 4. Executar a requisição
let handler = VNImageRequestHandler(ciImage: ciImage)
try? handler.perform([request])

4. Principais métodos/funções/classes

4.1. MLModel

Assinatura: class MLModel

O que faz: Classe principal que representa um modelo de machine learning carregado. Permite fazer previsões e obter informações sobre o modelo.

Exemplo:

// Carregar modelo de arquivo
guard let modelURL = Bundle.main.url(forResource: "MeuModelo", withExtension: "mlmodelc"),
      let model = try? MLModel(contentsOf: modelURL) else {
    fatalError("Falha ao carregar o modelo")
}

// Obter metadados do modelo
let description = model.modelDescription

Recommendations