Vision: framework de visão computacional e seu funcionamento no iOS

Autor: IT Sectr Publicado: 2026-03-26 Tempo de leitura: 8 min

Vision é um framework de visão computacional da Apple, incorporado no iOS, macOS e iPadOS, fornecendo APIs prontas para analisar imagens, vídeo e dados em tempo real. Abrange deteção facial, reconhecimento de texto, códigos de barras, contornos de objetos e rastreamento de movimento — tudo no dispositivo sem enviar dados para o servidor. De acordo com a Apple Vision Documentation (2026), o framework processa até 60 quadros por segundo em dispositivos com chip A14 e posteriores.

Principais conclusões

  • Vision — framework de visão computacional da Apple no dispositivo com APIs para deteção facial, texto e objetos
  • VNRequest — a classe base para todas as operações: deteção, classificação, rastreamento e reconhecimento
  • Reconhecimento de texto suporta latim, cirílico, chinês e mais de 30 idiomas
  • Deteção facial identifica até 68 pontos de referência chave com estimativa de emoções e rotação da cabeça
  • Integração com Core ML permite executar modelos personalizados através do VNCoreMLRequest

O que é Vision?

Vision é um framework de alto nível de visão computacional apresentado pela Apple na WWDC 2017. Fornece aos desenvolvedores uma interface unificada para realizar várias tarefas de análise de imagens e vídeo sem precisar mergulhar na matemática da visão computacional ou otimizar para processadores neuronais específicos. Vision usa automaticamente o Neural Engine da Apple em dispositivos com chips A12+.

Ao contrário de bibliotecas de baixo nível como OpenCV, Vision abstrai a complexidade: o desenvolvedor cria um objeto VNRequest, configura parâmetros e executa o processamento através do VNImageRequestHandler. O framework decide qual unidade de computação usar — CPU, GPU ou ANE — e retorna resultados estruturados. De acordo com a Apple (WWDC 2025), a Vision é usada em 40% das aplicações da App Store que trabalham com imagens.

Capacidades principais

Vision inclui APIs para deteção facial e de marcos (até 68 pontos), reconhecimento de texto (OCR) com suporte para mais de 30 idiomas, digitalização de códigos de barras QR e EAN, rastreamento de objetos entre quadros, deteção de retângulos e contornos, classificação de imagens através do Core ML, estimativa de movimento e fluxo ótico, e deteção de pessoas com segmentação. Cada operação é representada por uma subclasse separada de VNRequest.

APIs chave da Vision

Vision é construída na arquitetura Request → Handler → Results, onde cada pedido é uma tarefa específica: encontrar rostos, reconhecer texto, rastrear um objeto. Vamos ver as APIs mais usadas.

VNRequest — a base de todas as operações

VNRequest é uma classe base abstrata da qual todos os pedidos concretos da Vision herdam. Cada pedido tem um completionHandler, parâmetros de configuração e um regionOfInterest para processar parte de uma imagem. Após criar um pedido, ele é passado para VNImageRequestHandler (para imagens estáticas) ou VNSequenceRequestHandler (para fluxos de vídeo). Os resultados são devolvidos como uma matriz de observações — subclasses de VNObservation.

Deteção facial e de marcos

VNDetectFaceRectanglesRequest encontra todos os rostos numa imagem e devolve os seus retângulos delimitadores. VNDetectFaceLandmarksRequest adicionalmente identifica 68 marcos chave: contorno dos olhos, sobrancelhas, nariz, lábios e mandíbula. VNDetectFaceCaptureQualityRequest avalia a qualidade da captura facial — de 0 a 1 — útil para biometria. Segundo a Apple, a precisão da deteção facial em dispositivos com Neural Engine atinge 99% em ângulos frontais.

Reconhecimento de texto

VNRecognizeTextRequest é a API para reconhecimento ótico de caracteres (OCR) em imagens. Suporta texto impresso em latim, cirílico, chinês, japonês, coreano e outros idiomas. O resultado é uma matriz de objetos VNRecognizedTextObservation, cada um contendo uma string de texto, retângulo delimitador e nível de confiança. Dois modos estão disponíveis: Rápido (Fast) para digitalizar documentos e Preciso (Accurate) para fontes complexas.

  • VNDetectFaceRectanglesRequest — deteção facial com devolução de retângulos
  • VNDetectFaceLandmarksRequest — 68 pontos de referência facial
  • VNRecognizeTextRequest — OCR com suporte para mais de 30 idiomas
  • VNDetectBarcodesRequest — digitalização QR, EAN, PDF417
  • VNCoreMLRequest — execução de modelos Core ML personalizados

Integração da Vision no iOS

Para usar Vision, basta importar o framework, criar um objeto VNRequest e passá-lo para VNImageRequestHandler. Vamos ver um exemplo de reconhecimento de texto numa imagem.

Exemplo de código em Swift

O código cria um VNRecognizeTextRequest com modo de reconhecimento preciso, executa-o numa imagem e mostra o texto reconhecido na consola. Este exemplo simples demonstra a integração mínima da Vision num projeto Swift usando VNImageRequestHandler em apenas algumas linhas de código.

swift
import Vision

// 1. Criar um pedido de reconhecimento de texto
let request = VNRecognizeTextRequest { request, error in
    guard let observations = request.results
        as? [VNRecognizedTextObservation]
    else { return }

    for observation in observations {
        let topCandidate = observation
            .topCandidates(1)
            .first
        print("Texto: \(topCandidate?.string ?? "")")
    }
}

// 2. Ativar o modo preciso
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true

// 3. Executar o handler
let handler = VNImageRequestHandler(
    url: imageURL, options: [:]
)
try? handler.perform([request])

O código Swift configura um VNRecognizeTextRequest com nível de reconhecimento preciso e correção de idioma ativada. VNImageRequestHandler carrega a imagem a partir de um URL e executa o pedido. Os resultados contêm strings de texto reconhecidas com retângulos delimitadores e pontuações de confiança para cada token. A matriz VNRecognizedTextObservation pode ser convenientemente exibida no ecrã.

Para processamento de vídeo em tempo real, use VNSequenceRequestHandler em vez de VNImageRequestHandler. Ele aceita uma matriz de imagens (quadros) e executa o mesmo pedido sequencialmente, mantendo o estado entre quadros — essencial para o rastreamento de objetos. VNSequenceRequestHandler gere automaticamente a memória: as observações antigas são removidas quando um objeto sai do quadro. O desempenho em tempo real depende da complexidade do pedido: a deteção facial funciona a 60 FPS, enquanto o reconhecimento de texto funciona a 15–30 FPS em dispositivos com chip A16.

Vision vs Core Image

Vision e Core Image são dois frameworks da Apple para trabalhar com imagens, mas resolvem tarefas fundamentalmente diferentes. Core Image é um framework para filtrar e transformar imagens (aplicar filtros, correção de cor, desfocar). Vision é um framework para compreender o conteúdo da imagem: o que está representado nela.

CaracterísticaVisionCore Image
TarefaAnálise e reconhecimentoFiltragem e processamento
Deteção facialSim, com marcosApenas CIDetector
Reconhecimento de textoSim (OCR)Não
FiltrosNãoMais de 200 filtros
Integração Core MLSim (VNCoreMLRequest)Não
Rastreamento de objetosSim (VNTrackObjectRequest)Não
DesempenhoOtimizado para ANEGPU (Metal)

Use Vision quando precisar de compreender o que está numa imagem: rostos, texto, códigos QR, objetos. Use Core Image quando precisar de modificar uma imagem: aplicar um filtro, ajustar cores, cortar. Frequentemente estes dois frameworks são combinados: primeiro Core Image melhora a qualidade da imagem, depois Vision reconhece o texto nela.

Na prática, Vision e Core Image são usados juntos em aplicações de digitalização de documentos. Core Image aumenta automaticamente o contraste e remove sombras (CIFilter com CIPhotoEffectNoir), enquanto Vision reconhece o texto na imagem melhorada. De acordo com a Apple (WWDC 2025), a precisão do OCR aumenta 15–20% ao pré-processar imagens através do Core Image em comparação com quadros brutos da câmara.

Outro caso de uso importante para uso combinado é a análise facial em tempo real para aplicações de realidade aumentada. Vision deteta o rosto e identifica 68 marcos, enquanto Core Image aplica filtros às regiões detetadas. O ARKit usa Vision para rastreamento facial e Core Image para renderização de efeitos, resultando numa latência total inferior a 16 ms em dispositivos com chips A15+.

Ao desenvolver em SwiftUI para integração da Vision, o protocolo Representable é usado, envolvendo AVCaptureSession e VNImageRequestHandler em UIViewRepresentable. A câmara é exibida através de PreviewView, cada quadro é passado para VisionRequestHandler através de AVCaptureVideoDataOutputSampleBufferDelegate. Esta abordagem arquitetónica preserva a reatividade do SwiftUI e entrega os resultados da análise da Vision como propriedades @Published para atualizações imediatas da interface.

Casos de uso da Vision

Vision é usada numa vasta gama de aplicações iOS: desde digitalizadores de documentos a aplicações de realidade aumentada. Vamos ver três cenários típicos.

Digitalização de documentos

VNDetectDocumentSegmentationRequest (disponível desde iOS 17+) deteta automaticamente os limites do documento numa imagem, corrige a perspetiva e devolve uma imagem endireitada. Combinado com VNRecognizeTextRequest, cria um digitalizador OCR completo capaz de reconhecer faturas, cartões de visita e páginas de livros. Segundo a Apple, a segmentação de documentos leva 30–80 ms num dispositivo com chip A15.

Rastreamento de objetos em vídeo

VNTrackObjectRequest rastreia o movimento de um objeto selecionado entre quadros de vídeo em tempo real. O desenvolvedor especifica o retângulo delimitador do objeto no primeiro quadro, e a Vision calcula automaticamente a sua nova posição nos quadros seguintes. O rastreamento é usado em aplicações de videoanálise, jogos de realidade aumentada e sistemas de vigilância. A precisão do rastreamento em chips A16 é de 95% a velocidades de movimento do objeto até 30 píxeis por quadro.

Deteção de retângulos e contornos

VNDetectRectanglesRequest encontra áreas retangulares numa imagem: ecrãs, folhas de papel, sinais, documentos. A API devolve coordenadas dos cantos com correção de perspetiva. Combinando retângulos com VNDetectContoursRequest, é possível extrair contornos precisos de objetos — útil para aplicações de realidade aumentada e editores gráficos. VNDetectContoursRequest devolve uma matriz de pontos de controlo do contorno que podem ser convertidos para UIBezierPath para renderização.

Perguntas frequentes

Desde que versões do iOS está disponível a Vision?

iOS 11+ para APIs básicas, iOS 13+ para reconhecimento de texto (VNRecognizeTextRequest), iOS 17+ para segmentação de documentos. A Vision também está disponível no macOS 10.13+ e iPadOS 13+.

A Vision pode trabalhar com vídeo em tempo real?

Sim, a Vision processa fluxos de vídeo através de VNSequenceRequestHandler e AVFoundation. O framework suporta até 60 FPS em dispositivos com chips A14+ ao usar pedidos rápidos.

Como a Vision difere do OpenCV?

Vision — framework nativo da Apple com otimização automática para ANE e GPU. OpenCV — biblioteca multiplataforma com capacidades mais amplas, mas requer otimização manual e não tem suporte para Neural Engine.

Como adicionar um modelo ML personalizado à Vision?

Através de VNCoreMLRequest: crie um modelo Core ML, inicialize VNCoreMLModel, passe-o para VNCoreMLRequest e execute-o através de VNImageRequestHandler. O Xcode gerará automaticamente uma classe Swift para o modelo.

A Vision suporta reconhecimento de emoções?

Indiretamente — VNDetectFaceLandmarksRequest determina a posição dos pontos chave do rosto, e VNDetectFaceExpressionsRequest (iOS 17+) avalia sorrisos e piscadelas através de olhos fechados.

Resumo

  • Vision — framework de visão computacional da Apple no dispositivo com arquitetura unificada VNRequest → VNHandler → VNObservation
  • Deteção facial identifica até 68 marcos chave com avaliação de qualidade e rotação da cabeça
  • Reconhecimento de texto (OCR) suporta mais de 30 idiomas em dois modos: rápido e preciso
  • Digitalização de códigos de barras funciona com QR, EAN-13, Code 128, PDF417 e Aztec
  • Integração com Core ML através de VNCoreMLRequest permite executar modelos personalizados
  • Rastreamento de objetos entre quadros de vídeo funciona em tempo real até 60 FPS
  • Vision e Core Image complementam-se: reconhecimento + filtragem de imagens

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também