IPhone: come utilizzare le funzionalità di rilevamento del testo di iOS

Vision in iOS 11 ha tutto il necessario per creare un'app in grado di riconoscere i caratteri di testo con l'implementazione simultanea. Non è necessaria una conoscenza tecnica della codifica: la navigazione nella funzione è abbastanza semplice. Inoltre, l'implementazione è perfetta.

Quadro di visione

Il framework di visione consente di implementare facilmente qualsiasi attività che coinvolga i dettagli del computer. La struttura esegue il rilevamento del volto e del punto di riferimento del volto, il riconoscimento del codice a barre, la registrazione dell'immagine, il rilevamento delle caratteristiche generali e il rilevamento del testo. Vision consente inoltre di utilizzare modelli Core ML personalizzati per attività come la classificazione o il rilevamento di oggetti.

VN DetectTextRectanglesRequest

Il VN DetectTextRectanglesRequest è una richiesta di analisi dell'immagine che trova regioni di testo visibile in un'immagine; la funzione restituisce i caratteri di testo come un riquadro di delimitazione rettangolare con origine e dimensione.

Se sei abituato a usare swift e stai programmando da un po', probabilmente ti starai chiedendo quale sia l'uso di Vision quando ci sono altre funzionalità come image e AVFoundation. Bene, Vision è più preciso e più diretto. La funzione è disponibile anche su una varietà di piattaforme. Tuttavia, l'utilizzo di Vision potrebbe richiedere più potenza di elaborazione e tempo di elaborazione.

Per utilizzare Vision per il rilevamento del testo, avrai bisogno di Xcode 9 e di un dispositivo con iOS 11.

Creazione di una fotocamera con Avcapture

Per prima cosa, devi creare una fotocamera con AVCapture; questo avviene inizializzando un oggetto AVcapturesession per eseguire l'acquisizione in tempo reale o offline. Successivamente, effettua la sessione sulla connessione del dispositivo.

Per risparmiare tempo dalla creazione di un'interfaccia utente della tua app, considera di avere un progetto iniziale, per cominciare, questo ti darà il tempo di concentrarti sull'apprendimento del framework Vision.

  1. Apri il tuo progetto iniziale. Le visualizzazioni nello storyboard dovrebbero essere tutte pronte e impostate per te.
  2. Sul ViewController.swift, cerca la sezione codice con funzioni e uscite.
  3. Sotto la presa-ImageView, declare una sessione per AVcapturesession – questo è usato ogni volta che vuoi che le azioni vengano eseguite in base a un live streaming.
  4. Impostare il AVcapturesession e il AVmediatype al video poiché eseguirai le riprese della fotocamera per consentirne l'esecuzione continua
  5. Definire il dispositivo di output e input
  6. L'input è ciò che vedrà la telecamera e l'output è il video in un formato di tipo impostato di KCVPixelFormatType_32GRA.
  7. Infine, aggiungi a sottostrato che contiene video per imageView e avviare la sessione. La funzione è nota come inViewdidload. È inoltre necessario impostare la cornice del livello.

Chiama la funzione in visualizza Apparirà metodo.

Poiché i limiti non sono ancora stati definiti, ignorare il viewDidLayoutSubviews ( ) metodo per aggiornare i livelli associati.

Dopo il rilascio di iOS 10, è necessaria una voce aggiuntiva in Info.plist, che fornisce un motivo per utilizzare la fotocamera. Dovresti anche impostare la descrizione dell'utilizzo della fotocamera per la privacy.

rilevamento del testo; Come funziona Vision Framework

Ci sono tre passaggi per implementare Vision sull'app.

  1. Gestori – questo è quando vuoi che il framework esegua qualcosa dopo che la richiesta è stata chiamata.
  2. Osservazioni – questo è quello che vuoi fare con i dati da te forniti a partire da una richiesta
  3. Richieste – questo è quando chiedi il framework Detect

Idealmente, crei una richiesta di testo come VNdetecttextrectanglesrichiesta. Questa è una specie di VNrichiesta che confina con il testo. Dopo che il framework ha completato l'applicazione, procedi a chiamare il Gestore di testi funzione. Dovrai anche conoscere l'esatto frame che è stato riconosciuto, impostalo su Reportcaratteri= Vero.

Successivamente, definire le osservazioni che contengono tutti i risultati di VNdetecttextrectanglesrichiesta, ricorda di aggiungere Vision alla telecamera di uscita. Poiché Vision espone API di alto livello, lavorare con esso è sicuro.

La funzione verifica se il Cmsamplebuffer esiste e PutOut Avcaptureoutput. Dovresti quindi procedere alla creazione di una variabile Opzioni di richiesta come 1 tipo di dizionario VNimageoption. Il VNmage opzione è un tipo di struttura che contiene proprietà e dati dalla telecamera. Dovresti quindi creare il VNimagerequesthandler ed eseguire la richiesta di testo.

Disegnare bordi intorno al testo rilevato

Puoi iniziare avendo il framework per disegnare due caselle, una per ogni lettera rilevata e l'altra per ogni parola. Le tabelle sono la combinazione di tutte le caselle di caratteri che la tua richiesta troverà.

  • Definisci i punti sulla tua vista per aiutarti a posizionare le scatole.
  • Dopodiché, crea un CALayR; utilizzo VNrettangolo osservazione per definire i tuoi vincoli, facilitando il processo di delineamento della scatola.

Ora hai tutte le tue funzioni disposte.

Per collegare i tuoi punti, inizia con l'esecuzione del codice in modo asincrono. Dovresti quindi controllare per vedere se esiste una regione all'interno dei tuoi risultati dal tuo VNTextObservation.

Ora puoi chiamare la tua funzione, che disegnerà una scatola all'interno dell'area. Controlla se ci sono caselle di caratteri all'interno della regione, quindi chiama il servizio che porta una casella attorno a ogni lettera.

Dopodiché, crea una variabile Opzioni di richiesta. Ora puoi creare un VNImageRequestHandler oggetto ed esegui la richiesta di testo che hai creato.

Infine, l'ultimo passaggio consiste nell'eseguire il codice di visione con il live streaming. Dovrai prendere l'output video e convertirlo in Cmsamplebuffer.

Suggerimenti aggiuntivi

  1. Cerca sempre di ritagliare l'immagine ed elaborare solo la sezione di cui hai bisogno. Ciò ridurrà il tempo di elaborazione e il footprint di memoria
  2. Attiva la correzione della lingua quando si tratta di caratteri non numerici, quindi disattivala quando si tratta di un carattere numerico
  3. Includere la convalida per le stringhe di numeri riconosciute per confermare l'accuratezza ed eliminare la visualizzazione di valori falsi per l'utente.
  4. Il controller della telecamera per documenti è il miglior compagno per il riconoscimento del testo poiché la qualità dell'immagine svolge un ruolo significativo nel riconoscimento del testo.
  5. Considera l'impostazione di un'altezza minima del testo per aumentare le prestazioni.

Con Vision hai tutto il necessario per il riconoscimento del testo. Poiché Vision è facile da usare e richiede poco tempo per l'implementazione, utilizzarlo equivale quasi a giocare con i Lego. Prova a testare la tua app su oggetti, caratteri, illuminazione e dimensioni diversi. Puoi anche stupirti combinando Vision con Core ML.