Come aggiungere Machine Learning alle tue app Android

Autore: Peter Berry
Data Della Creazione: 16 Lang L: none (month-012) 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Adam Koch: ML Kit – Easily adding ML smarts to your mobile apps
Video: Adam Koch: ML Kit – Easily adding ML smarts to your mobile apps

Contenuto


L'apprendimento automatico (ML) può aiutarti a creare esperienze innovative, avvincenti e uniche per i tuoi utenti mobili.

Dopo aver acquisito padronanza della ML, puoi usarla per creare una vasta gamma di applicazioni, comprese le app che organizzano automaticamente le foto in base all'argomento, identificano e tracciano il volto di una persona attraverso un livestream, estraggono il testo da un'immagine e molto altro .

Ma ML non è esattamente adatto ai principianti! Se vuoi migliorare le tue app Android con potenti funzionalità di machine learning, da dove inizi esattamente?

In questo articolo, fornirò una panoramica di un SDK (Software Development Kit) che promette di mettere la potenza della ML a portata di mano, anche se hai zero Esperienza ML. Entro la fine di questo articolo, avrai le basi necessarie per iniziare a creare app intelligenti basate su ML in grado di etichettare immagini, scansionare codici a barre, riconoscere volti e punti di riferimento famosi ed eseguire molte altre potenti attività ML.


Scopri il kit di apprendimento automatico di Google

Con il rilascio di tecnologie come TensorFlow e CloudVision, ML sta diventando sempre più utilizzata, ma queste tecnologie non sono per i deboli di cuore! In genere avrai bisogno di una profonda conoscenza delle reti neurali e dell'analisi dei dati, solo per ottenere iniziato con una tecnologia come TensorFlow.

Anche se tu fare avere una certa esperienza con ML, la creazione di un'app mobile basata sull'apprendimento automatico può essere un processo che richiede tempo, complesso e costoso, che richiede di reperire dati sufficienti per addestrare i propri modelli ML e quindi ottimizzare quei modelli ML per funzionare in modo efficiente nel ambiente mobile. Se sei un singolo sviluppatore o hai risorse limitate, potrebbe non essere possibile mettere in pratica le tue conoscenze ML.

ML Kit è il tentativo di Google di portare l'apprendimento automatico alle masse.


Sotto il cofano, ML Kit riunisce diverse potenti tecnologie ML che in genere richiederebbero ampie conoscenze ML, tra cui Cloud Vision, TensorFlow e l'API Android Neural Networks. ML Kit combina queste tecnologie ML specializzate con modelli pre-addestrati per il caso di usi mobili comuni, tra cui l'estrazione di testo da un'immagine, la scansione di un codice a barre e l'identificazione del contenuto di una foto.

Indipendentemente dal fatto che tu abbia una conoscenza precedente di ML, puoi utilizzare ML Kit per aggiungere potenti funzionalità di apprendimento automatico al tuo Android e App iOS: basta passare alcuni dati alla parte corretta di ML Kit, come l'API di riconoscimento del testo o di identificazione della lingua, e questa API utilizzerà l'apprendimento automatico per restituire una risposta.

Come si utilizzano le API del kit ML?

ML Kit è diviso in diverse API che sono distribuite come parte della piattaforma Firebase. Per utilizzare una delle API del kit ML, devi creare una connessione tra il tuo progetto Android Studio e un progetto Firebase corrispondente, quindi comunicare con Firebase.

La maggior parte dei modelli di kit ML sono disponibili come modelli sul dispositivo che è possibile scaricare e utilizzare localmente, ma alcuni modelli sono disponibili anche nel cloud, il che consente alla tua app di eseguire attività basate su ML tramite la connessione Internet del dispositivo.

Ogni approccio ha il suo insieme unico di punti di forza e di debolezza, quindi dovrai decidere se l'elaborazione locale o remota ha più senso per la tua particolare app. È anche possibile aggiungere supporto per entrambi i modelli e quindi consentire agli utenti di decidere quale modello utilizzare in fase di esecuzione. In alternativa, è possibile configurare l'app per selezionare il modello migliore per le condizioni attuali, ad esempio utilizzando solo il modello basato su cloud quando il dispositivo è connesso al Wi-Fi.

Se opti per il modello locale, le funzionalità di apprendimento automatico della tua app saranno sempre disponibili, indipendentemente dal fatto che l'utente disponga di una connessione Internet attiva. Poiché tutto il lavoro viene eseguito localmente, i modelli su dispositivo sono ideali quando l'app deve elaborare rapidamente grandi quantità di dati, ad esempio se si utilizza ML Kit per manipolare un flusso video in diretta.

Nel frattempo, i modelli basati su cloud in genere offrono una maggiore precisione rispetto alle loro controparti sul dispositivo, poiché i modelli cloud sfruttano la potenza della tecnologia di apprendimento automatico della piattaforma cloud di Google. Ad esempio, il modello sul dispositivo dell'API per l'etichettatura immagini include 400 etichette, ma il modello cloud funziona 10.000 etichette.

A seconda dell'API, potrebbero esserci anche alcune funzionalità disponibili solo nel cloud, ad esempio l'API di riconoscimento testo può identificare caratteri non latini solo se utilizzi il suo modello basato su cloud.

Le API basate su cloud sono disponibili solo per i progetti Firebase a livello di Blaze, quindi dovrai eseguire l'aggiornamento a un piano Blaze pay-as-you-go, prima di poter utilizzare uno qualsiasi dei modelli cloud di ML Kit.

Se decidi di esplorare i modelli cloud, al momento della stesura di questo articolo era disponibile una quota gratuita per tutte le API del kit ML. Se desideri solo sperimentare l'etichettatura delle immagini basata su cloud, puoi aggiornare il tuo progetto Firebase al piano Blaze, testare l'API su meno di 1.000 immagini, quindi tornare al piano Spark gratuito, senza addebito. Tuttavia, i termini e le condizioni hanno una brutta abitudine di cambiare nel tempo, quindi assicurati di leggere le scritte in piccolo prima di passare a Blaze, solo per assicurarti di non essere colpito da fatture inaspettate!

Identifica il testo in qualsiasi immagine, con l'API di riconoscimento del testo

L'API di riconoscimento testo può identificare, analizzare ed elaborare in modo intelligente il testo.

Puoi utilizzare questa API per creare applicazioni che estraggono testo da un'immagine, in modo che i tuoi utenti non debbano perdere tempo con l'inserimento manuale noioso dei dati. Ad esempio, potresti utilizzare l'API di riconoscimento del testo per aiutare i tuoi utenti a estrarre e registrare le informazioni da ricevute, fatture, biglietti da visita o persino etichette nutrizionali, semplicemente scattando una foto dell'articolo in questione.

È anche possibile utilizzare l'API di riconoscimento del testo come primo passo in un'app di traduzione, in cui l'utente scatta una foto di un testo sconosciuto e l'API estrae tutto il testo dall'immagine, pronto per essere passato a un servizio di traduzione.

L'API di riconoscimento del testo sul dispositivo di ML Kit è in grado di identificare il testo in qualsiasi lingua latina, mentre la sua controparte basata su cloud è in grado di riconoscere una maggiore varietà di lingue e caratteri, inclusi caratteri cinesi, giapponesi e coreani. Il modello basato su cloud è inoltre ottimizzato per estrarre testo sparso da immagini e testo da documenti densi, che dovresti prendere in considerazione quando decidi quale modello usare nella tua app.

Desideri avere un'esperienza pratica con questa API? Quindi consulta la nostra guida dettagliata alla creazione di un'applicazione in grado di estrarre il testo da qualsiasi immagine, utilizzando l'API di riconoscimento del testo.

Comprensione del contenuto di un'immagine: l'API di etichettatura delle immagini

L'API di etichettatura delle immagini è in grado di riconoscere entità in un'immagine, inclusi luoghi, persone, prodotti e animali, senza la necessità di ulteriori metadati contestuali. L'API Image Labelling restituirà informazioni sulle entità rilevate sotto forma di etichette. Ad esempio, nella schermata seguente ho fornito all'API una foto naturalistica e ha risposto con etichette come "Foresta" e "Fiume".

Questa capacità di riconoscere i contenuti di un'immagine può aiutarti a creare app che taggano le foto in base al loro soggetto; filtri che identificano automaticamente i contenuti inviati dagli utenti inappropriati e li rimuovono dalla tua app; o come base per funzionalità di ricerca avanzata.

Molte API del kit ML restituiscono più risultati possibili, completi di punteggi di confidenza associati, inclusa l'API di etichettatura delle immagini. Se passi l'etichetta di immagine a una foto di un barboncino, potrebbe restituire etichette come "barboncino", "cane", "animale domestico" e "piccolo animale", tutti con punteggi variabili che indicano la fiducia dell'API in ciascuna etichetta. Speriamo che in questo scenario "barboncino" abbia il punteggio più alto di fiducia!

È possibile utilizzare questo punteggio di confidenza per creare una soglia che deve essere soddisfatta, prima che l'applicazione agisca su una determinata etichetta, ad esempio mostrandola all'utente o taggando una foto con questa etichetta.

L'etichettatura delle immagini è disponibile sia sul dispositivo che nel cloud, sebbene se si opta per il modello cloud, si avrà accesso a oltre 10.000 etichette, rispetto alle 400 etichette incluse nel modello sul dispositivo.

Per uno sguardo più approfondito all'API di etichettatura delle immagini, dai un'occhiata a Determinare il contenuto di un'immagine con l'apprendimento automatico. In questo articolo, creiamo un'applicazione che elabora un'immagine e quindi restituisce le etichette e i punteggi di confidenza per ogni entità rilevata all'interno di quell'immagine. In questa app implementiamo anche modelli su dispositivo e cloud, in modo da poter vedere esattamente in che modo i risultati differiscono, a seconda del modello scelto.

Comprensione delle espressioni e tracciamento dei volti: l'API Face Detection

L'API Face Detection può individuare i volti umani in foto, video e streaming live, quindi estrae informazioni su ciascun viso rilevato, inclusi posizione, dimensioni e orientamento.

È possibile utilizzare questa API per aiutare gli utenti a modificare le proprie foto, ad esempio ritagliando automaticamente tutto lo spazio vuoto attorno all'ultimo colpo in testa.

L'API Face Detection non si limita alle immagini: puoi anche applicare questa API ai video, ad esempio potresti creare un'app che identifichi tutti i volti in un feed video e quindi offuschi tutto tranne quei volti, simili alla funzione di sfocatura dello sfondo di Skype.

Il rilevamento del volto è sempre eseguito sul dispositivo, dove è abbastanza veloce per essere utilizzato in tempo reale, quindi a differenza della maggior parte delle API di ML Kit, Face Detection fa non includere un modello cloud.

Oltre a rilevare i volti, questa API ha alcune funzionalità aggiuntive che vale la pena esplorare. Innanzitutto, l'API Face Detection può identificare i punti di riferimento del viso, come occhi, labbra e orecchie, quindi recupera le coordinate esatte per ciascuno di questi punti di riferimento. Questo riconoscimento dei punti di riferimento ti fornisce una mappa accurata di ogni volto rilevato - perfetto per creare app di realtà aumentata (AR) che aggiungono maschere e filtri in stile Snapchat al feed della videocamera dell'utente.

L'API Face Detection offre anche trattamenti per il viso classificazione. Attualmente, ML Kit supporta due classificazioni facciali: occhi aperti e sorridente.

Puoi utilizzare questa classificazione come base per i servizi di accessibilità, come i controlli a mani libere, o per creare giochi che rispondono all'espressione facciale del giocatore. La capacità di rilevare se qualcuno sta sorridendo o ha gli occhi aperti può tornare utile anche se stai creando un'app per la fotocamera - dopo tutto, non c'è niente di peggio che scattare un sacco di foto, solo per scoprire in seguito che qualcuno aveva gli occhi chiusi nel ogni singolo colpo.

Infine, l'API Face Detection include un componente di tracciamento del volto, che assegna un ID a un volto e quindi lo traccia su più immagini o fotogrammi video consecutivi. Nota che questa è la faccia puntamento e non vero viso riconoscimento. Dietro le quinte, l'API Face Detection sta monitorando la posizione e il movimento del viso e quindi deducendo che questo viso probabilmente appartiene alla stessa persona, ma alla fine non è consapevole dell'identità della persona.

Prova tu stesso l'API Face Detection! Scopri come creare un'app di rilevamento del volto con l'apprendimento automatico e il kit Firebase ML.

Scansione di codici a barre con Firebase e ML

La scansione dei codici a barre potrebbe non sembrare interessante come alcune delle altre API di apprendimento automatico, ma è una delle parti più accessibili di ML Kit.

La scansione di un codice a barre non richiede alcun hardware o software specializzato, quindi è possibile utilizzare l'API di scansione di codici a barre garantendo che l'app rimanga accessibile a quante più persone possibile, compresi gli utenti su dispositivi meno recenti o economici. Finché un dispositivo ha una fotocamera funzionante, non dovrebbe avere problemi a scansionare un codice a barre.

L'API di scansione di codici a barre di ML Kit è in grado di estrarre una vasta gamma di informazioni da codici a barre stampati e digitali, il che lo rende un modo rapido, facile e accessibile per passare le informazioni dal mondo reale, alla tua applicazione, senza che gli utenti debbano eseguire noiosamente l'immissione manuale dei dati .

Esistono nove diversi tipi di dati che l'API di scansione dei codici a barre può riconoscere e analizzare da un codice a barre:

  • TYPE_CALENDAR_EVENT. Questo contiene informazioni come il luogo dell'evento, l'organizzatore e l'ora di inizio e fine.Se stai promuovendo un evento, potresti includere un codice a barre stampato sui tuoi poster o volantini o presentare un codice a barre digitale sul tuo sito web. I potenziali partecipanti possono quindi estrarre tutte le informazioni sul tuo evento, semplicemente scansionando il suo codice a barre.
  • TYPE_CONTACT_INFO. Questo tipo di dati copre informazioni come l'indirizzo email, il nome, il numero di telefono e il titolo del contatto.
  • TYPE_DRIVER_LICENSE. Questo contiene informazioni come la via, la città, lo stato, il nome e la data di nascita associati alla patente di guida.
  • TYPE_EMAIL. Questo tipo di dati include un indirizzo email, oltre all'oggetto dell'oggetto e al testo del messaggio.
  • TYPE_GEO. Questo contiene la latitudine e la longitudine per un punto geografico specifico, che è un modo semplice per condividere una posizione con i tuoi utenti o per loro di condividere la loro posizione con altri. Potresti anche potenzialmente utilizzare codici a barre geografici per attivare eventi basati sulla posizione, come la visualizzazione di alcune informazioni utili sulla posizione corrente dell'utente o come base per i giochi mobili basati sulla posizione.
  • TYPE_PHONE. Questo contiene il numero di telefono e il tipo di numero, ad esempio se si tratta di un numero di telefono di lavoro o di casa.
  • TYPE_SMS. Questo contiene del testo del corpo di SMS e il numero di telefono associato all'SMS.
  • TYPE_URL. Questo tipo di dati contiene un URL e il titolo dell'URL. La scansione di un codice a barre TYPE_URL è molto più semplice che affidarsi agli utenti per digitare manualmente un URL lungo e complesso, senza commettere errori di ortografia o errori di ortografia.
  • TYPE_WIFI. Questo contiene SSID e password di una rete Wi-Fi, oltre al suo tipo di crittografia come OPEN, WEP o WPA. Un codice a barre Wi-Fi è uno dei modi più semplici per condividere le credenziali Wi-Fi, rimuovendo anche completamente il rischio che gli utenti inseriscano queste informazioni in modo errato.

L'API di scansione di codici a barre può analizzare i dati da una gamma di diversi codici a barre, inclusi formati lineari come Codabar, Code 39, EAN-8, ITF e UPC-A e formati 2D come Aztec, Data Matrix e Codici QR.

Per rendere le cose più facili per i tuoi utenti finali, questa API esegue la scansione simultanea di tutti i codici a barre supportati e può anche estrarre dati indipendentemente dall'orientamento del codice a barre, quindi non importa se il codice a barre è completamente sottosopra quando l'utente lo scansiona!

Apprendimento automatico nel cloud: l'API di riconoscimento dei punti di riferimento

Puoi utilizzare l'API di riconoscimento dei punti di riferimento di ML Kit per identificare punti di riferimento naturali e costruiti ben noti all'interno di un'immagine.

Se passi a questa API un'immagine contenente un punto di riferimento famoso, restituirà il nome di quel punto di riferimento, i valori di latitudine e longitudine del punto di riferimento e un riquadro di selezione che indica dove è stato scoperto il punto di riferimento all'interno dell'immagine.

Puoi utilizzare l'API di riconoscimento del punto di riferimento per creare applicazioni che taggano automaticamente le foto dell'utente o per fornire un'esperienza più personalizzata, ad esempio se la tua app riconosce che un utente sta scattando foto della Torre Eiffel, potrebbe offrire alcuni fatti interessanti su questo punto di riferimento, o suggerire simili attrazioni turistiche vicine che l'utente potrebbe voler visitare in seguito.

Insolitamente per ML Kit, l'API Landmark Detection è disponibile solo come API basata su cloud, quindi l'applicazione sarà in grado di eseguire il rilevamento dei punti di riferimento solo quando il dispositivo ha una connessione Internet attiva.

L'API di identificazione della lingua: sviluppo per un pubblico internazionale

Oggi, le app Android sono utilizzate in ogni parte del mondo, dagli utenti che parlano molte lingue diverse.

L'API di identificazione della lingua di ML Kit può aiutare la tua app Android ad attirare un pubblico internazionale, prendendo una stringa di testo e determinando la lingua in cui è scritta. L'API di identificazione della lingua può identificare oltre un centinaio di lingue diverse, incluso il testo romanizzato per arabo, bulgaro, Cinese, greco, hindi, giapponese e russo.

Questa API può essere una preziosa aggiunta a qualsiasi applicazione che elabora il testo fornito dall'utente, poiché raramente include informazioni sulla lingua. Puoi anche utilizzare l'API di identificazione della lingua nelle app di traduzione, come primo passo per la traduzione nulla, sta conoscendo la lingua con cui stai lavorando! Ad esempio, se l'utente punta la fotocamera del proprio dispositivo su un menu, la tua app potrebbe utilizzare l'API di identificazione della lingua per determinare che il menu è scritto in francese e quindi offrire di tradurre questo menu utilizzando un servizio come l'API di traduzione cloud ( forse dopo aver estratto il suo testo, utilizzando l'API di riconoscimento del testo?)

A seconda della stringa in questione, l'API di identificazione della lingua potrebbe restituire più lingue potenziali, accompagnata da punteggi di confidenza in modo da poter determinare quale lingua rilevata è più probabile che sia corretta. Tieni presente che al momento della stesura di ML Kit non è stato possibile identificare più lingue diverse all'interno della stessa stringa.

Per garantire che questa API fornisca l'identificazione della lingua in tempo reale, l'API di identificazione della lingua è disponibile solo come modello sul dispositivo.

Prossimamente: Smart Reply

Google prevede di aggiungere altre API a ML Kit in futuro, ma sappiamo già di un'API emergente.

Secondo il sito web ML Kit, l'imminente API Smart Reply ti consentirà di offrire risposte contestuali alla messaggistica nelle tue applicazioni, suggerendo frammenti di testo che si adattano al contesto corrente. Sulla base di ciò che già sappiamo di questa API, sembra che Smart Reply sarà simile alla funzione di risposta suggerita già disponibile nell'app Android, Wear OS e Gmail.

La seguente schermata mostra l'aspetto della funzione di risposta suggerita in Gmail.

Qual'è il prossimo? Utilizzo di TensorFlow Lite con kit ML

ML Kit fornisce modelli pre-costruiti per casi d'uso mobili comuni, ma a un certo punto potresti voler andare oltre questi modelli già pronti.

È possibile creare i propri modelli ML usando TensorFlow Lite e poi distribuirli utilizzando ML Kit. Tuttavia, tieni presente che, diversamente dalle API già pronte di ML Kit, lavorare con i tuoi modelli ML richiede un significativo quantità di competenza ML.

Dopo aver creato i tuoi modelli TensorFlow Lite, puoi caricarli su Firebase e Google gestirà quindi l'hosting e la fornitura di tali modelli ai tuoi utenti finali. In questo scenario, ML Kit funge da livello API sul tuo modello personalizzato, il che semplifica alcune delle operazioni di sollevamento pesanti legate all'utilizzo di modelli personalizzati. In particolare, ML Kit invierà automaticamente l'ultima versione del tuo modello ai tuoi utenti, quindi non dovrai aggiornare la tua app ogni volta che vuoi modificare il tuo modello.

Per fornire la migliore esperienza utente possibile, è possibile specificare le condizioni che devono essere soddisfatte prima che l'applicazione scarichi nuove versioni del modello TensorFlow Lite, ad esempio aggiornando il modello solo quando il dispositivo è inattivo, in carica o connesso a Wi- Fi. È anche possibile utilizzare ML Kit e TensorFlow Lite insieme ad altri servizi Firebase, ad esempio utilizzando Firebase Remote Config e Firebase A / B Testing per servire diversi modelli a diversi gruppi di utenti.

Se vuoi andare oltre i modelli predefiniti o i modelli esistenti di ML Kit non soddisfano abbastanza le tue esigenze, puoi saperne di più sulla creazione dei tuoi modelli di apprendimento automatico, dai documenti ufficiali di Firebase.

Avvolgendo

In questo articolo, abbiamo esaminato ogni componente del kit di apprendimento automatico di Google e abbiamo coperto alcuni scenari comuni in cui potresti voler utilizzare ciascuna delle API del kit ML.

Google ha in programma di aggiungere altre API in futuro, quindi quali API di apprendimento automatico vorresti vedere aggiunte in futuro al Kit ML? Fateci sapere nei commenti qui sotto!

Il amung Galaxy 10 è arrivato in non due, non tre, ma quattro modelli quet'anno. Mentre l'10e rende il telefono più economico e il modello 5G rimane lontano, una buona parte degli ac...

ul ito ufficiale di amung Mobile ecurity, la ocietà ha appena aggiornato il uo programma u quale dei uoi martphone e tablet Android riceverà aggiornamenti di icurezza menili, quali riceveran...

Appeato Oggi