Vision: framework di visione artificiale e funzionamento su iOS

Autore: IT Sectr Pubblicato: 2026-03-26 Tempo di lettura: 8 min

Vision è un framework di visione artificiale di Apple, integrato in iOS, macOS e iPadOS, che fornisce API pronte per analizzare immagini, video e dati in tempo reale. Copre il rilevamento dei volti, il riconoscimento del testo, i codici a barre, i contorni degli oggetti e il tracciamento del movimento — tutto sul dispositivo senza inviare dati a un server. Secondo la Apple Vision Documentation (2026), il framework elabora fino a 60 fotogrammi al secondo su dispositivi con chip A14 e successivi.

Punti chiave

  • Vision — framework di visione artificiale su dispositivo di Apple con API per rilevamento di volti, testo e oggetti
  • VNRequest — la classe base per tutte le operazioni: rilevamento, classificazione, tracciamento e riconoscimento
  • Riconoscimento testo supporta latino, cirillico, cinese e oltre 30 lingue
  • Rilevamento volti identifica fino a 68 punti di riferimento chiave con stima delle emozioni e rotazione della testa
  • Integrazione Core ML consente di eseguire modelli personalizzati tramite VNCoreMLRequest

Cos’è Vision?

Vision è un framework di alto livello per la visione artificiale presentato da Apple al WWDC 2017. Fornisce agli sviluppatori un’interfaccia unificata per eseguire varie attività di analisi di immagini e video senza dover approfondire la matematica della visione artificiale o ottimizzare per processori neurali specifici. Vision utilizza automaticamente il Neural Engine di Apple sui dispositivi con chip A12+.

A differenza di librerie di basso livello come OpenCV, Vision astrae la complessità: lo sviluppatore crea un oggetto VNRequest, configura i parametri ed esegue l’elaborazione tramite VNImageRequestHandler. Il framework decide quale unità di calcolo utilizzare — CPU, GPU o ANE — e restituisce risultati strutturati. Secondo Apple (WWDC 2025), Vision è utilizzato nel 40% delle applicazioni dell’App Store che lavorano con le immagini.

Capacità principali

Vision include API per il rilevamento di volti e punti di riferimento (fino a 68 punti), riconoscimento testo (OCR) con supporto per oltre 30 lingue, scansione di codici a barre QR e EAN, tracciamento di oggetti tra fotogrammi, rilevamento di rettangoli e contorni, classificazione di immagini tramite Core ML, stima del movimento e flusso ottico, e rilevamento di persone con segmentazione. Ogni operazione è rappresentata da una sottoclasse separata di VNRequest.

API chiave di Vision

Vision è costruito sull’architettura Request → Handler → Results, dove ogni richiesta è un compito specifico: trovare volti, riconoscere testo, tracciare un oggetto. Diamo un’occhiata alle API più utilizzate.

VNRequest — il fondamento di tutte le operazioni

VNRequest è una classe base astratta da cui ereditano tutte le richieste concrete di Vision. Ogni richiesta ha un completionHandler, parametri di configurazione e un regionOfInterest per elaborare parte di un’immagine. Dopo aver creato una richiesta, viene passata a VNImageRequestHandler (per immagini statiche) o VNSequenceRequestHandler (per flussi video). I risultati vengono restituiti come array di osservazioni — sottoclassi di VNObservation.

Rilevamento di volti e punti di riferimento

VNDetectFaceRectanglesRequest trova tutti i volti in un’immagine e restituisce i loro rettangoli delimitatore. VNDetectFaceLandmarksRequest identifica inoltre 68 punti di riferimento chiave: contorni degli occhi, sopracciglia, naso, labbra e mascella. VNDetectFaceCaptureQualityRequest valuta la qualità della cattura del volto — da 0 a 1 — utile per la biometria. Secondo Apple, la precisione del rilevamento facciale sui dispositivi con Neural Engine raggiunge il 99% ad angolazioni frontali.

Riconoscimento testo

VNRecognizeTextRequest è l’API per il riconoscimento ottico dei caratteri (OCR) sulle immagini. Supporta testo stampato in latino, cirillico, cinese, giapponese, coreano e altre lingue. Il risultato è un array di oggetti VNRecognizedTextObservation, ciascuno contenente una stringa di testo, un rettangolo delimitatore e un livello di confidenza. Sono disponibili due modalità: Veloce (Fast) per la scansione di documenti e Precisa (Accurate) per caratteri complessi.

  • VNDetectFaceRectanglesRequest — rilevamento volti con restituzione di rettangoli
  • VNDetectFaceLandmarksRequest — 68 punti di riferimento facciali
  • VNRecognizeTextRequest — OCR con supporto per oltre 30 lingue
  • VNDetectBarcodesRequest — scansione QR, EAN, PDF417
  • VNCoreMLRequest — esecuzione di modelli Core ML personalizzati

Integrazione di Vision in iOS

Per utilizzare Vision, importa semplicemente il framework, crea un oggetto VNRequest e passalo a VNImageRequestHandler. Vediamo un esempio di riconoscimento del testo su un’immagine.

Esempio di codice in Swift

Il codice crea un VNRecognizeTextRequest con modalità di riconoscimento precisa, lo esegue su un’immagine e restituisce il testo riconosciuto nella console. Questo semplice esempio dimostra l’integrazione minima di Vision in un progetto Swift utilizzando VNImageRequestHandler in poche righe di codice.

swift
import Vision

// 1. Creare una richiesta di riconoscimento testo
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("Testo: \(topCandidate?.string ?? "")")
    }
}

// 2. Abilitare la modalità precisa
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true

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

Il codice Swift configura un VNRecognizeTextRequest con livello di riconoscimento preciso e correzione linguistica abilitata. VNImageRequestHandler carica l’immagine da un URL ed esegue la richiesta. I risultati contengono stringhe di testo riconosciute con rettangoli delimitatori e punteggi di confidenza per ogni token. L’array VNRecognizedTextObservation può essere comodamente visualizzato sullo schermo.

Per l’elaborazione video in tempo reale, utilizza VNSequenceRequestHandler invece di VNImageRequestHandler. Accetta un array di immagini (fotogrammi) ed esegue la stessa richiesta sequenzialmente, mantenendo lo stato tra i fotogrammi — essenziale per il tracciamento degli oggetti. VNSequenceRequestHandler gestisce automaticamente la memoria: le osservazioni vecchie vengono rimosse quando un oggetto lascia il fotogramma. Le prestazioni in tempo reale dipendono dalla complessità della richiesta: il rilevamento dei volti funziona a 60 FPS, mentre il riconoscimento del testo funziona a 15–30 FPS su dispositivi con chip A16.

Vision vs Core Image

Vision e Core Image sono due framework Apple per lavorare con le immagini, ma risolvono compiti fondamentalmente diversi. Core Image è un framework per filtrare e trasformare le immagini (applicazione di filtri, correzione colore, sfocatura). Vision è un framework per comprendere il contenuto dell’immagine: cosa vi è rappresentato.

CaratteristicaVisionCore Image
CompitoAnalisi e riconoscimentoFiltraggio ed elaborazione
Rilevamento voltiSì, con punti di riferimentoSolo CIDetector
Riconoscimento testoSì (OCR)No
FiltriNoOltre 200 filtri
Integrazione Core MLSì (VNCoreMLRequest)No
Tracciamento oggettiSì (VNTrackObjectRequest)No
PrestazioniOttimizzato per ANEGPU (Metal)

Utilizza Vision quando devi comprendere cosa c’è in un’immagine: volti, testo, codici QR, oggetti. Utilizza Core Image quando devi modificare un’immagine: applicare un filtro, regolare i colori, ritagliare. Spesso questi due framework vengono combinati: prima Core Image migliora la qualità dell’immagine, poi Vision riconosce il testo su di essa.

In pratica, Vision e Core Image vengono utilizzati insieme nelle applicazioni di scansione documenti. Core Image aumenta automaticamente il contrasto e rimuove le ombre (CIFilter con CIPhotoEffectNoir), mentre Vision riconosce il testo sull’immagine migliorata. Secondo Apple (WWDC 2025), la precisione dell’OCR aumenta del 15–20% preelaborando le immagini tramite Core Image rispetto ai fotogrammi grezzi della fotocamera.

Un altro importante caso d’uso per l’utilizzo combinato è l’analisi facciale in tempo reale per applicazioni di realtà aumentata. Vision rileva il volto e identifica 68 punti di riferimento, mentre Core Image applica filtri alle regioni rilevate. ARKit utilizza Vision per il tracciamento del volto e Core Image per il rendering degli effetti, con una latenza totale inferiore a 16 ms su dispositivi con chip A15+.

Durante lo sviluppo in SwiftUI per l’integrazione di Vision, viene utilizzato il protocollo Representable, che incapsula AVCaptureSession e VNImageRequestHandler in UIViewRepresentable. La fotocamera viene visualizzata tramite PreviewView, ogni fotogramma viene passato a VisionRequestHandler tramite AVCaptureVideoDataOutputSampleBufferDelegate. Questo approccio architetturale preserva la reattività di SwiftUI e fornisce i risultati dell’analisi di Vision come proprietà @Published per aggiornamenti immediati dell’interfaccia.

Casi d’uso di Vision

Vision viene utilizzato in un’ampia gamma di applicazioni iOS: dagli scanner di documenti alle app di realtà aumentata. Esaminiamo tre scenari tipici.

Scansione documenti

VNDetectDocumentSegmentationRequest (disponibile da iOS 17+) rileva automaticamente i bordi del documento in un’immagine, corregge la prospettiva e restituisce un’immagine raddrizzata. Combinato con VNRecognizeTextRequest, crea uno scanner OCR completo in grado di riconoscere fatture, biglietti da visita e pagine di libri. Secondo Apple, la segmentazione dei documenti richiede 30–80 ms su un dispositivo con chip A15.

Tracciamento oggetti nel video

VNTrackObjectRequest traccia il movimento di un oggetto selezionato tra i fotogrammi video in tempo reale. Lo sviluppatore specifica il rettangolo delimitatore dell’oggetto sul primo fotogramma, e Vision calcola automaticamente la sua nuova posizione nei fotogrammi successivi. Il tracciamento viene utilizzato in applicazioni di videoanalitica, giochi AR e sistemi di sorveglianza. La precisione del tracciamento sui chip A16 è del 95% a velocità di movimento dell’oggetto fino a 30 pixel per fotogramma.

Rilevamento di rettangoli e contorni

VNDetectRectanglesRequest trova aree rettangolari in un’immagine: schermi, fogli di carta, insegne, documenti. L’API restituisce coordinate degli angoli con correzione della prospettiva. Combinando i rettangoli con VNDetectContoursRequest, è possibile estrarre contorni precisi degli oggetti — utile per applicazioni di realtà aumentata e editor grafici. VNDetectContoursRequest restituisce un array di punti di controllo del contorno che possono essere convertiti in UIBezierPath per il rendering.

Domande frequenti

Da quali versioni di iOS è disponibile Vision?

iOS 11+ per le API di base, iOS 13+ per il riconoscimento del testo (VNRecognizeTextRequest), iOS 17+ per la segmentazione dei documenti. Vision è disponibile anche su macOS 10.13+ e iPadOS 13+.

Vision può funzionare con video in tempo reale?

, Vision elabora flussi video tramite VNSequenceRequestHandler e AVFoundation. Il framework supporta fino a 60 FPS su dispositivi con chip A14+ quando si utilizzano richieste rapide.

In cosa Vision si differenzia da OpenCV?

Vision — framework nativo Apple con ottimizzazione automatica per ANE e GPU. OpenCV — libreria multipiattaforma con capacità più ampie, ma richiede ottimizzazione manuale e non supporta Neural Engine.

Come aggiungere un modello ML personalizzato a Vision?

Tramite VNCoreMLRequest: crea un modello Core ML, inizializza VNCoreMLModel, passalo a VNCoreMLRequest ed eseguilo tramite VNImageRequestHandler. Xcode genererà automaticamente una classe Swift per il modello.

Vision supporta il riconoscimento delle emozioni?

Indirettamente — VNDetectFaceLandmarksRequest determina la posizione dei punti chiave del volto, e VNDetectFaceExpressionsRequest (iOS 17+) valuta sorrisi e ammiccamenti attraverso gli occhi chiusi.

Riepilogo

  • Vision — framework di visione artificiale su dispositivo di Apple con architettura unificata VNRequest → VNHandler → VNObservation
  • Rilevamento volti identifica fino a 68 punti di riferimento chiave con valutazione della qualità e rotazione della testa
  • Riconoscimento testo (OCR) supporta oltre 30 lingue in due modalità: veloce e precisa
  • Scansione codici a barre funziona con QR, EAN-13, Code 128, PDF417 e Aztec
  • Integrazione Core ML tramite VNCoreMLRequest consente di eseguire modelli personalizzati
  • Tracciamento oggetti tra fotogrammi video funziona in tempo reale fino a 60 FPS
  • Vision e Core Image si completano a vicenda: riconoscimento + filtraggio immagini

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche