Agosto 2018

Volume 33 numero 8

Il presente articolo è stato tradotto automaticamente.

Artificially Intelligent - esplorazione il servizio visione artificiale personalizzato

Dal Frank La La | Agosto 2018

Frank La VigneUno dei servizi cognitivi più utili disponibili in Microsoft Azure è il servizio visione artificiale personalizzato, che consente agli utenti di creare facilmente modelli di visione artificiale personalizzato. In genere, un classificatore di immagini di training necessari migliaia, se non decine di migliaia, di immagini per ogni classe per cui generare un modello e sufficientemente accurato per gli utilizzi pratici. Inoltre, è necessario anche un maghi sui meccanismi di reti neurali. Il servizio visione artificiale personalizzato fornisce un'interfaccia utente Web facile da usare che maschera questa complessità sottostanti.

Meglio ancora, il servizio visione artificiale personalizzato può creare classificatori di immagini personalizzate piuttosto accurata con meno di 15 o 20 immagini per ogni classe, anche se la documentazione consiglia un minimo di 50 immagini per ogni classe. In generale, la qualità del classificatore immagine migliorerà con altre immagini di training. Il servizio visione artificiale personalizzato espone anche modelli sottoposti a training tramite l'API REST per semplificare la distribuzione di questi modelli.

In occasione della conferenza Build 2018, una delle demo keynote coinvolto un veicolo aerea automatizzato o un drone, in volo per una serie di pipe per rilevare i difetti e i problemi di manutenzione. Nella demo, un drone streaming video tra la camera e tornare a un computer portatile. Il computer portatile valutato le immagini su un modello con training visione artificiale personalizzato, quale l'operatore drone di eventuali difetti visualizzate le pipe di un avviso. Per questo articolo, sarà simulare una simile intelligenza artificiale (AI)-ampliata in modo del modello di manutenzione per il rilevamento di problemi con le tracce di training. A tale scopo, verrà Esplora il servizio visione artificiale personalizzato e dimostrare come è facile aggiungere classificazione delle immagini personalizzate a qualsiasi app o un sito Web.

Determinazione dell'origine di immagini per eseguire il training su

Creazione di un modello di visione artificiale con il servizio visione artificiale personalizzato prevede tre semplici passaggi:

  1. Caricare un set di immagini e identificarli.
  2. Eseguire il training e generazione del modello facendo clic sul pulsante con training.
  3. Usare l'interfaccia Web o l'API REST per valutare le prestazioni del modello.

È effettivamente facile iniziare. È tuttavia necessario prestare attenzione quando si inizia sourcing immagini per il modello in cui eseguire il training.

Di recente per una dimostrazione dei clienti, raccolto una serie di immagini di training tracce tramite Internet. Queste immagini includevano tracce train normale e quelli con errori gravi. Con le immagini di 30, ero in grado di generare un modello di visione artificiale personalizzato per rilevare i difetti di traccia con circa l'80% accuratezza come parte della presentazione. Esempio sorprendente che potrebbe essere, ero rapido sottolineare al cliente che qualsiasi modello di classificazione di immagini di produzione richiedono le immagini di training tiene traccia in una varietà di illuminazione diverse condizioni, gli angoli e così via. Questa diversità dei dati di classificazione consente di ridurre la probabilità che l'algoritmo di isolare le funzionalità non corrette delle immagini di training, che potrebbero causare seri problemi con i risultati.

È presente un modello di distribuzione classica e possibilmente precisazione apocryphal, raccomandazioni sulle reti neurali di training. La legenda viene spiegato ciò che i ricercatori nel 1980s riscontrati quando gli Stati Uniti Esercito ha deciso di eseguire il training di una rete neurale per rilevare cisterne. In base alla storia, la rete neurale eseguita molto bene con i dati di test come parte dell'esperimento. Tuttavia, quando la rete neurale è stata fornita nuove immagini per classificare, essa eseguita molto.

I ricercatori erano dumbfounded fino a quando non si sono accorti che tutte le immagini contenenti tanks si era tenute in overcast giorni, mentre tutte le immagini carente tanks sono state effettuate su giornate. La rete neurale separate le due classi di foto e ha scelto di distinguere i due set di base il colore del cielo anziché la presenza di un serbatoio. Ovviamente, si tratta di cosa esercito superflue. Per un'analisi completa della storia delle cisterne rilevamento, è possibile estrarre originale di rivalutazione di Neil Fraser nella bit.ly/2llxudb, tuttavia questa parte del suo articolo vale la pena deve essere racchiuso tra qui:

"È una figura perfetta del problema principale alla base di reti neurali. Qualsiasi net automaticamente sottoposto a training con più di qualche decina neuroni è praticamente impossibile analizzare e comprendere. Uno non può stabilire se una rete ha memorizzate gli input, o 'comportamenti scorretti' in un altro modo."

Sebbene l'ultimo aggiornamento dell'articolo nel 2003, questa citazione ancora vale oggi stesso. Aggiornata per comprendere meglio il funzionamento interno di reti neurali complesse, ma questo sforzo è in corso ed è poco oltre la fase agli inizi. La procedura consigliata è attualmente ai dati di origine che contiene un set di dati di training diverse. In questo modo, l'algoritmo di distinguere le immagini basate sulle variabili corrette.

Per evitare problemi di copyright immagine, ho deciso di sfruttare una raccolta di track train giocattoli grandi personali dei figli per questo articolo. Ciò consente anche di creare set di training e testing imagery rapidamente. Ho eseguito a 34 immagini e suddivisi in tre cartelle denominate interrotta, Normal e Test. Le immagini con training "interrotto" tracce si trovano nella cartella interrotta e le immagini con le tracce adiacenti sono nella cartella normale. Ho casualmente scelto una serie di immagini per testare il modello in e li ha inseriti nella cartella di Test. Con immagini personali origine selezionata e con etichetta, è possibile creare un modello.

 

Creazione del modello

In un browser, passare a customvision.ai e fare clic sul pulsante Accedi per accedere con l'account Microsoft. Una volta effettuato l'accesso, fare clic sul nuovo progetto per creare un nuovo progetto di servizio visione artificiale personalizzato.

Nella finestra di dialogo che segue, immettere "Toy Train" per il nome del progetto e una breve descrizione del progetto. Lasciare l'elenco a discesa gruppo di risorse per l'impostazione predefinita del periodo di valutazione limitata e assicurarsi che i pulsanti di opzione per i tipi di progetto e i domini sono impostati per la classificazione e generali, rispettivamente. Successivamente, fare clic sul pulsante di progetto crea per creare un nuovo progetto di servizio visione artificiale personalizzato. Figura 1 illustra queste impostazioni.

La finestra di dialogo Nuovo progetto di creazione
Figura 1 la finestra di dialogo Nuovo progetto di creazione

Caricamento delle immagini

Dopo aver creato il progetto, il sito Web viene richiesto di caricare le immagini. Fare clic su Aggiungi immagini e nella finestra di dialogo seguente fare clic su Sfoglia file locali per trovare le immagini da caricare. In primo luogo, caricare le immagini nella cartella interrotta selezionandole tutte e facendo clic su Apri nella finestra di dialogo esplorazione. Nella casella di testo sotto le immagini, immettere il termine interrotta e fare clic sul segno di addizione blu per contrassegnare le immagini con l'etichetta interrotta. Fare clic sul pulsante Carica per caricare le immagini di 15. Questo passaggio è illustrato nella figura 2. Successivamente, fare clic su Fine per completare questo passaggio.

Immagini di traccia interrotta con tag
Figura 2 con tag le immagini di traccia interrotta

Ora che le immagini di training interrotti tracce vengono caricate, è possibile caricare le immagini nella cartella normale. A tale scopo, scegliere l'icona in alto a sinistra del riquadro con il segno su di esso. Questo pulsante è evidenziato figura 3. Ripetere i passaggi precedenti per caricare le immagini di input, ma questa volta, scegliere le immagini nella cartella normale e tag le immagini con l'etichetta normale. Fare clic sul pulsante di caricamento per il trasferimento di immagini e quindi fare clic su Fine per chiudere la finestra di dialogo.

Aggiunta di altre immagini ai dati di Training
Figura 3 aggiunge altre immagini ai dati di Training

Con tutte le immagini di esempio caricato e tag, è possibile eseguire il training e test del modello.

Training del modello

Nella parte superiore della pagina, è disponibile un pulsante verde con gears su di esso. Faccio clic su questa opzione per eseguire il training di un modello con le immagini attualmente contrassegnate. Richiede qualche minuto o due prima i corsi di formazione è stata completata e restituisce la pagina Web con le metriche delle prestazioni del modello, come illustrato nella figura 4.

I risultati di training e le metriche delle prestazioni
Figura 4 risultati di Training e le metriche delle prestazioni

Le due metriche principali visualizzate sono precisione e richiamo del modello. Precisione indica quanto spesso un risultato stimato sia corretto, mentre richiamo misura la percentuale di frequenza un tag stimato sia corretto. In altre parole, richiamo è indicato che quando la risposta corretta è "Interrotto", con quale frequenza il modello stimerà "Interrotta". Per un'ulteriore spiegazione della terminologia di matrice di confusione, leggere la "semplice guida a confusione matrice terminologia" nella bit.ly/2IbRoAi.

Test del modello

È ora possibile testare il modello nelle immagini di riservare per i test per vedere come il modello verrà eseguita quando viene visualizzata con nuove immagini. Immediatamente a destra del pulsante verde training, è disponibile un pulsante con etichettato Test veloce. Faccio clic su questa opzione per visualizzare la finestra di dialogo test e quindi fare clic sul pulsante file locali per visualizzare la finestra di dialogo di caricamento di file. Usare questa finestra di dialogo per selezionare un'immagine nella cartella di Test e fare clic su Apri per caricare il file. Dopo qualche istante, l'algoritmo ne visualizza i risultati dopo aver valutato l'immagine. Figura 5 mostra che l'immagine è una probabilità 79,2 percento di essere una traccia normale e la probabilità 60,2 percentuale venga interrotto. Tenere presente che per questo progetto, normale, pertanto la traccia non interrotta o contigue.

Finestra di dialogo rapido Test per un Set contiguo di tracce
Figura 5 finestra di dialogo rapido Test per un Set contiguo di tracce

Eseguire nuovamente il test con un'altra immagine di una traccia interrotta, facendo nuovamente clic sul pulsante Sfoglia file locali. Questa volta scegliere un'immagine di un set interrotto di tracce. Il modello di report che è probabile 95.9 percentuale si tratta di una traccia interrotta e solo 11,2% probabilità della traccia in corso normale di. Testare il modello out con il resto dei file nella cartella di Test per avere un'idea di in cui le prestazioni del modello e in cui ha si riesce a identificare lo stato corretto delle tracce.

Per un'ulteriore sperimentazione, eseguire una ricerca di immagini in Internet e copiare l'URL dell'immagine e incollarlo nella casella di testo nell'interfaccia utente di Test. Queste immagini raffigurare tiene traccia di training da diverse angolazioni e in diverse superfici nelle condizioni di illuminazione a differenza dei set di training delle immagini. Ciò fornirà un punto di vista sul lavoro di reti neurali come e perché diversi set di dati di esempio è fondamentale per il successo di un modello di produzione. Il seguente punto tre gli URL per alcune immagini di esempio che ho trovato online (si noti come il modello classifica ognuna delle immagini):

Inoltre, è utile sapere come comporterà la funzione di classificazione quando Data un'immagine all'esterno del relativo ambito. Ad esempio, modo in cui verrà il classificatore, progettato per determinare lo stato di giocattoli train tracce, il lavoro quando viene specificato di un'immagine di un segno neon? Questa è definita la gestione delle immagini negativi e un modello efficace suggerire per stimare valori vicino a zero in questi casi. Per verificarlo, immettere l'URL seguente nella casella di testo: http://datadriven.tv/wp-content/uploads/2018/05/50k.png. Il modello predittivo ha prodotto un risultato di l'1,7% per normale e 0 percento per interrotta.

Proseguimento

Ai fini di questo esempio, ho creato un sistema di classificazione immagini a due classi, in cui il modello aveva solo alle immagini di etichetta di giocattoli tiene traccia di training come interrotti o normale. Tuttavia, è possibile creare modelli più complessi. Attualmente, il livello di Custom Vision servizio S0 (Standard) può supportare fino a 250 tag univoco, vale a dire che è possibile eseguire il training per classificare i 250 etichette diverse. Inoltre, il servizio può gestire fino a 50.000 immagini al progetto.

Inoltre, i modelli generati dal servizio visione artificiale personalizzato possono essere esportati per l'uso in dispositivi perimetrali periferiche di elaborazione e non fare affidamento sull'accesso al servizio cloud. Ciò significa che è possibile caricare il modello in un dispositivo e classificare le immagini in uno scenario offline. Il servizio visione artificiale personalizzato supporta attualmente le esportazioni modello nei tre formati: TensorFlow per i dispositivi Android, CoreML per dispositivi iOS e ONNX per Windows. Inoltre, il servizio visione artificiale personalizzato può creare un contenitore di Windows o Linux che incorpora un modello TensorFlow e il codice per chiamare l'API REST. Per altre informazioni sull'esportazione di modelli per l'esecuzione nei dispositivi perimetrali, assicurarsi di consultare la documentazione all'indirizzo bit.ly/2K4ibjL.

In questo articolo è stato illustrato come è facile iniziare a usare il servizio visione artificiale personalizzato e compilare un modello di visione artificiale con un numero limitato di dati di training. Un uso potenziale per questa tecnologia, è possibile accedere ai dati di immagine da videocamere di traffico e il training di un modello per rilevare diversi livelli di congestione basate esclusivamente sui dati. In precedenza, automazione di un'attività di questo tipo sarebbe molto complessa, perché necessaria una conoscenza specializzata sia una notevole quantità di dati di training con etichette. Tuttavia, il servizio visione artificiale personalizzato combina la tecnologia all'avanguardia di rete neurale con un'interfaccia facile da usare per creare uno strumento che viene visualizzata la visione artificiale per un uso più esteso.


Frank La Vignelavora in Microsoft come un professionista di soluzioni di tecnologia di intelligenza artificiale dove aiuta le aziende ottenere migliori risultati per usufruire al meglio i propri dati con analitica e intelligenza artificiale. Ha inoltre CO-host il DataDriven podcast. Partecipa al blog regolarmente FranksWorld.com ed è possibile vederne lui sul suo canale YouTube, "Di Frank mondo TV" (FranksWorld.TV).

Si ringraziano i seguenti esperti tecnici per la revisione dell'articolo: Jonathan Wood e Andy Leonard


Discutere di questo articolo nel forum di MSDN Magazine