Hogyan adhatunk hozzá gépi tanulást az Android-alkalmazásokhoz

Szerző: Peter Berry
A Teremtés Dátuma: 16 Lang L: none (month-012) 2021
Frissítés Dátuma: 1 Július 2024
Anonim
Hogyan adhatunk hozzá gépi tanulást az Android-alkalmazásokhoz - Alkalmazások
Hogyan adhatunk hozzá gépi tanulást az Android-alkalmazásokhoz - Alkalmazások

Tartalom


A gépi tanulás (ML) segít innovatív, vonzó és egyedi élmények létrehozásában a mobil felhasználók számára.

Miután elsajátította az ML-t, felhasználhatja az alkalmazások széles skálájának létrehozására, beleértve az alkalmazásokat is, amelyek automatikusan rendezik a fényképeket a tárgyuk alapján, azonosítják és nyomon követik az ember arcát az élő közvetítés során, kivonnak szöveget egy képből és még sok más .

De az ML nem pontosan kezdőbarát! Ha fejlettebb Android-alkalmazásokat szeretne fejleszteni erőteljes gépi tanulási képességekkel, akkor hol kezdje el pontosan?

Ebben a cikkben áttekintést adok egy SDK-ről (szoftverfejlesztő készlet), amely megígéri, hogy kéznél fogja tartani az ML erejét, még ha nulla ML tapasztalat. Ez a cikk végére megvan az az alapja, amely elkezdi az intelligens, ML-alapú alkalmazások létrehozását, amelyek képesek képek címkézésére, vonalkódok beolvasására, arcok és híres tereptárgyak felismerésére és sok más hatékony ML-feladat elvégzésére.


Ismerkedjen meg a Google Machine Learning Kit-rel

Az olyan technológiák megjelenésével, mint a TensorFlow és a CloudVision, az ML egyre szélesebb körben elterjedt, ám ezek a technológiák nem a szív gyengesége! Általában a neurális hálózatok és az adatok elemzésének mélyreható megértésére van szükség, csak azért, hogy megkapja indult egy olyan technológiával, mint a TensorFlow.

Még ha te csinál van némi tapasztalat az ML-vel kapcsolatban, a gépi tanulással működő mobilalkalmazás létrehozása időigényes, összetett és költséges folyamat lehet, amely megköveteli, hogy elegendő adatot szerezzen a saját ML-modellek kiképzéséhez, majd optimalizáld ezeket az ML-modelleket a hatékony futtatáshoz a mobil környezet. Ha Ön egyéni fejlesztő vagy korlátozott erőforrásokkal rendelkezik, akkor előfordulhat, hogy az ML ismereteit nem lehet gyakorlatilag megvalósítani.


Az ML Kit a Google arra törekszik, hogy a gépi tanulást a tömegekbe hozza.

A motorháztető alatt az ML Kit számos nagy teljesítményű ML technológiát köti össze, amelyek általában kiterjedt ML ismereteket igényelnek, beleértve a Cloud Vision, a TensorFlow és az Android Neural Networks API-t. Az ML Kit egyesíti ezeket a speciális ML technológiákat az előre kiképzett modellekkel a szokásos mobil felhasználási esetekben, ideértve a szöveg kivonását a képről, vonalkód beolvasását és a fénykép tartalmának azonosítását.

Függetlenül attól, hogy van-e korábbi ismerete az ML-ről, az ML Kit használatával erős gépi tanulási képességeket tud hozzáadni az Android-hoz és iOS alkalmazások - csak adjon át bizonyos adatokat az ML Kit helyes részéhez, például a Szövegfelismerés vagy a Nyelv azonosító API-hoz, és ez az API gépi tanulást fog használni a válasz visszaadására.

Hogyan használhatom az ML Kit API-kat?

Az ML Kit több API-ra van felosztva, amelyeket a Firebase platform részeként terjesztnek. Az ML Kit API bármelyikének használatához létre kell hoznia kapcsolatot az Android Studio projekt és a megfelelő Firebase projekt között, majd kommunikálnia kell a Firebase-rel.

Az ML Kit modellek többsége eszközön kapható, amelyet helyileg tölthet le és használhat, de néhány modell elérhető a felhőben is, amely lehetővé teszi az alkalmazás számára, hogy ML-alapú feladatokat hajtson végre az eszköz internetkapcsolatán keresztül.

Mindegyik megközelítésnek megvan a maga egyedi erősségei és gyengeségei, ezért el kell döntenie, hogy a helyi vagy a távoli feldolgozás a legmegfelelőbb-e az adott alkalmazáshoz. Még mindkét modell támogatását felveheti, majd lehetővé teszi a felhasználók számára, hogy eldöntsék, melyik modellt akarják futás közben használni. Alternatív megoldásként konfigurálhatja alkalmazását az aktuális feltételekhez legmegfelelőbb modell kiválasztására, például csak a felhőalapú modell használatakor, amikor az eszköz csatlakozik a Wi-Fi-hez.

Ha a helyi modellt választja, akkor az alkalmazás gépi tanulási funkciói mindig elérhetők lesznek, függetlenül attól, hogy a felhasználó aktív internet-kapcsolattal rendelkezik-e. Mivel az összes munkát helyben hajtják végre, az eszközön lévő modellek ideálisak, amikor az alkalmazásnak nagy mennyiségű adatot kell gyorsan feldolgoznia, például ha az ML Kit eszközt használja egy élő video stream közvetítéséhez.

Eközben a felhőalapú modellek általában nagyobb pontosságot nyújtanak, mint az eszközön megjelenő megfelelőik, mivel a felhőmodellek kihasználják a Google Cloud Platform gépi tanulási technológiájának erejét. Például a Image Labelling API eszközön található modellje 400 címkét tartalmaz, de a felhőmodell rendelkezik rajta 10 000 címke.

Az API-tól függően előfordulhat, hogy vannak olyan funkciók is, amelyek csak a felhőben érhetők el, például a Szövegfelismerés API csak nem latin karaktereket képes azonosítani, ha felhőalapú modelljét használja.

A felhőalapú API-k csak a Blaze szintű Firebase projekteknél érhetők el, így az ML Kit felhőmodelleinek bármelyikének használata előtt frissítenie kell a pay-as-you-go Blaze tervre.

Ha úgy dönt, hogy megvizsgálja a felhőmodelleket, akkor az írás idején ingyenes kvóta volt elérhető az összes ML Kit API-hoz. Ha csak a felhőalapú képcímkézéssel kívánta kísérletezni, akkor frissítheti Firebase-projektjét a Blaze tervre, kipróbálhatja az API-t kevesebb mint 1000 képen, majd válthat vissza az ingyenes Spark-tervre, díjmentesen. A szerződési feltételeknek azonban csúnya szokása van az idő múlásával változni, ezért a Blaze-re történő frissítés előtt mindenképpen olvassa el a kis szöveget, csak hogy megbizonyosodjon arról, hogy nem érinti semmilyen váratlan számla!

Bármelyik képen azonosíthatja a szöveget a Szövegfelismerés API-val

A Szövegfelismerés API intelligens módon képes azonosítani, elemezni és feldolgozni a szöveget.

Ezt az API-t olyan alkalmazások létrehozására használhatja, amelyek szöveget képeket vonnak ki, így a felhasználóknak nem kell időt pazarolniuk az unalmas kézi adatbevitelre. Használhatja például a Szövegfelismerés API-t, hogy segítse a felhasználókat az információk kinyerésében és rögzítésében nyugtákból, számlákból, névjegykártyákból, vagy akár táplálkozási címkékből, egyszerűen úgy, hogy fényképeket készít a kérdéses elemről.

A Szövegfelismerés API-t is használhatja a fordítási alkalmazás első lépéseként, ahol a felhasználó fényképeket készít egy ismeretlen szövegről, és az API az egész szöveget kivonja a képről, készen áll a továbbításra egy fordítási szolgáltatásra.

Az ML Kit eszközén található eszközfelismerő API bármilyen latin nyelvű szöveget képes azonosítani, míg felhőalapú megfelelője a nyelvek és karakterek, például a kínai, japán és koreai karakterek nagyobb választékát képes felismerni. A felhőalapú modellt úgy is optimalizálták, hogy ritka szöveget nyerjen ki a képekből és a szöveget a sűrűn csomagolt dokumentumokból, amelyet figyelembe kell vennie, amikor eldönti, hogy melyik modellt használja az alkalmazásában.

Szeretne némi gyakorlati élményt ennek az API-nak? Ezután olvassa el lépésről lépésre egy olyan alkalmazás létrehozásának útmutatóját, amely a szövegfelismerés API segítségével bármilyen képből kivonhatja a szöveget.

A kép tartalmának megértése: a Image Labelling API

A Image Labelling API felismeri a képen lévő entitásokat, ideértve a helyszíneket, az embereket, a termékeket és az állatokat, anélkül, hogy bármilyen kiegészítő kontextus-metaadatra szükség lenne. A Image Labelling API címkék formájában adja vissza az észlelt entitásokkal kapcsolatos információkat. Például a következő képernyőképen megadtam az API-nak természetfotót, és olyan címkékkel válaszolt, mint például „Forest” és „River”.

Ez a képesség, hogy felismerje a kép tartalmát, elősegítheti az olyan alkalmazások létrehozását, amelyek a fényképeket a tárgyuk alapján címkézik; szűrők, amelyek automatikusan azonosítják a felhasználó által benyújtott nem megfelelő tartalmat, és eltávolítják azt az alkalmazásból; vagy a fejlett keresési funkció alapja.

Az ML Kit API-k közül sokan több lehetséges eredményt adnak vissza, kiegészítve a hozzájuk kapcsolódó bizalmi pontszámokkal - beleértve a Image Labelling API-t. Ha átadja a képcímkézést egy uszkár fotóját, akkor visszatérhet olyan címkéket, mint a „uszkár”, „kutya”, „háziállat” és „kicsi állat”, mindegyik változó pontszámmal jelzi az API bizalmát az egyes címkékben. Remélhetőleg ebben a forgatókönyvben az „uszkár” lesz a legmagasabb bizalmi pontszám!

Ezt a bizalmi pontszámot felhasználva létrehozhat egy küszöbértéket, amelyet teljesíteni kell, mielőtt az alkalmazás egy adott címkére hat, például megjeleníti azt a felhasználó számára, vagy megjelöl egy fényképet ezzel a címkével.

A képcímkézés mind az eszközön, mind a felhőben elérhető, bár ha a felhő modelljét választja, akkor több mint 10 000 címke lesz elérhető, szemben a 400 címkével, amelyek az eszközön megtalálhatók.

A Image Labelling API részletesebb áttekintéséhez olvassa el a Képes tartalom meghatározása gépi tanulással lehetőséget. Ebben a cikkben felépítünk egy alkalmazást, amely egy képet dolgoz fel, majd visszaadja a képen észlelt entitások címkéit és bizalmi pontszámait. Az alkalmazáson belül eszköz- és felhőalapú modelleket is implementálunk, így pontosan láthatja, hogy az eredmények hogyan változnak, attól függően, hogy melyik modellt választja.

A kifejezések és az arcok követésének megértése: az Arcfelismerés API

Az Arcfelismerő API fel tudja keresni az emberi arcokat a fényképekben, videókban és élő közvetítésekben, majd információkat gyűjt az egyes észlelt arcokról, ideértve azok helyzetét, méretét és tájolását.

Ezt az API-t felhasználhatja a felhasználók fotóinak szerkesztésére, például úgy, hogy automatikusan levágja az összes üres helyet a legújabb fejlövésük körül.

Az Arcfelismerés API nem korlátozódik a képekre - ezt az API-t videókra is alkalmazhatja, például létrehozhat egy alkalmazást, amely azonosítja a videocsatornában az összes arcot, majd elmossa az összes képet kivéve ezek az arcok, hasonlóan a Skype háttér elmosódásának funkciójához.

Arcfelismerés mindig eszközön végzett, ahol elég gyors a valós időben történő felhasználáshoz, így az ML Kit legtöbb API-jával ellentétben az Arcfelismerés nem tartalmaz egy felhőmodellt.

Az arcok felismerése mellett ez az API tartalmaz néhány további funkciót is, amelyeket érdemes feltárni. Először, az Arcfelismerés API azonosítja az arc tereptárgyait, például a szemét, az ajkát és a fülét, majd lekérdezi ezen tereptárgyak pontos koordinátáit. Ez mérföldkő elismerés az egyes felismert arcok pontos térképét nyújtja - tökéletesen olyan kibővített valóság (AR) alkalmazások létrehozásához, amelyek Snapchat-stílusú maszkokat és szűrőket adnak a felhasználó kamerájához.

Az Arcfelismerő API arcot is kínál osztályozás. Az ML Kit jelenleg két arc osztályozást támogat: nyitott szemmel és mosolyogva.

Ezt a besorolást használhatja az akadálymentesség-szolgáltatások, például a kihangosító vezérlők alapjaként, vagy olyan játékok létrehozásához, amelyek reagálnak a játékos arckifejezésére. A fényképezőgép-alkalmazás létrehozásakor is hasznos lehet annak észlelése, hogy valaki mosolyog, vagy nyitva van-e a szemük. Végül is nincs semmi rosszabb, mint egy csomó fénykép készítése, csak később fedezhetjük fel, hogy valaki becsukta a szemét ban ben minden egyes lövés.

Végül, az Arcfelismerési API tartalmaz egy arckövető komponenst, amely azonosítót rendel hozzá egy archoz, majd az arcot több egymást követő kép vagy videokeret között nyomon követi. Vegye figyelembe, hogy ez arc követés és nem igaz arc elismerés. A színfalak mögött az Arcfelismerő API nyomon követi az arc helyzetét és mozgását, majd azt a következtetést vonja le, hogy ez az arc valószínűleg ugyanahhoz a személyhez tartozik, ám végül nem ismeri a személy azonosságát.

Próbálja ki magának az Arcfelismerési API-t! Tudja meg, hogyan lehet arcfelismerő alkalmazást létrehozni gépi tanulással és a Firebase ML Kit használatával.

Vonalkód-letapogatás Firebase és ML segítségével

Lehet, hogy a vonalkód-letapogatás nem olyan izgalmas, mint a többi gépi tanulási API, de ez az ML Kit egyik leginkább elérhető része.

A vonalkód szkenneléséhez nincs szükség speciális hardverre vagy szoftverre, ezért használhatja a vonalkód-szkennelési API-t, miközben biztosíthatja, hogy az alkalmazás elérhetővé váljon a lehető legtöbb ember számára, ideértve a régebbi vagy költségvetési eszközök felhasználóit is. Mindaddig, amíg egy eszköz működő kamerával rendelkezik, nem szabad gondot okoznia a vonalkód beolvasására.

Az ML Kit vonalkód-letapogató API-ja sokféle információt nyerhet ki a nyomtatott és a digitális vonalkódokból, ami gyors, egyszerű és hozzáférhető módon továbbítja az információkat a valós világból az alkalmazásba anélkül, hogy a felhasználóknak fárasztó kézi adatbevitelt kellene végezniük. .

Kilenc különféle adattípus létezik, amelyeket a vonalkód-letapogató API felismerhet és vonalkódból elemezhet:

  • TYPE_CALENDAR_EVENT. Ez olyan információkat tartalmaz, mint például az esemény helye, szervezője, valamint a kezdési és befejezési idő.Ha előmozdít egy eseményt, akkor a plakátokon vagy szórólapokon nyomtatott vonalkódot is felvehet, vagy a webhelyén digitális vonalkódot is feltüntethet. A potenciális résztvevők azután vonják ki az eseményekkel kapcsolatos összes információt, egyszerűen a vonalkód beolvasásával.
  • TYPE_CONTACT_INFO. Ez az adattípus olyan információkat foglal magában, mint a kapcsolattartó e-mail címe, neve, telefonszáma és címe.
  • TYPE_DRIVER_LICENSE. Ez olyan információkat tartalmaz, mint például a vezetői engedélyhez tartozó utca, város, állam, név és születési idő.
  • TYPE_EMAIL. Ez az adattípus magában foglalja az e-mail címet, az e-mail tárgysorát és a szöveget.
  • TYPE_GEO. Ez tartalmazza egy adott földrajzi pont szélességi és hosszúsági fokát, amely egyszerű módja annak, hogy megosszák a helyet a felhasználókkal, vagy megosszák a helyüket másokkal. A földrajzi vonalkódokat potenciálisan felhasználhatja is helyalapú események kiváltására, például hasznos információk megjelenítésére a felhasználó jelenlegi helyzetéről vagy a helyalapú mobil játékok alapjául.
  • TYPE_PHONE. Ez tartalmazza a telefonszámot és a szám típusát, például hogy munka vagy otthoni telefonszám-e.
  • TYPE_SMS. Ez tartalmaz néhány szöveges szöveget és az SMS-hez társított telefonszámot.
  • TYPE_URL. Ez az adattípus tartalmazza az URL-t és az URL címét. A TYPE_URL vonalkód beolvasása sokkal könnyebb, mint ha a felhasználókra támaszkodva hosszú, összetett URL-t manuálisan gépel be, helyesírási vagy helyesírási hibák nélkül.
  • TYPE_WIFI. Ez tartalmazza a Wi-Fi hálózat SSID-jét és jelszavát, valamint a titkosítási típusát, például OPEN, WEP vagy WPA. A Wi-Fi vonalkód az egyik legegyszerűbb módszer a Wi-Fi hitelesítő adatok megosztására, miközben teljes mértékben kiküszöböli annak kockázatát, hogy a felhasználók helytelenül adják meg ezeket az információkat.

A vonalkód-letapogató API különféle vonalkódokból, például lineáris formátumokból, például Codabar, Code 39, EAN-8, ITF és UPC-A, és 2D formátumokból, például Aztec, Data Matrix és QR kódokból elemzi az adatokat.

A végfelhasználók számára a dolgok megkönnyítése érdekében ez az API egyszerre ellenőrzi az összes támogatott vonalkódot, és az adatokat kinyerhet, függetlenül a vonalkód tájolásától - tehát nem számít, ha a vonalkód teljesen fejjel lefelé van, amikor a felhasználó beolvassa!

Gépi tanulás a felhőben: a Landmark Recognition API

Az ML Kit Landmark Recognition API segítségével azonosíthatja a képen közismert természetes és épített tereptárgyakat.

Ha átadja ezt az API-t egy híres tájékozódási pontot tartalmazó képnek, akkor visszaadja annak a tájékozódási pontnak a nevét, a tájékozódási pont szélességi és hosszúsági értékeit, valamint egy korlátozó mezőt, amely jelzi, hogy a tájékozódási pont miként fedezhető fel a képen.

A Landmark Recognition API használatával olyan alkalmazásokat hozhat létre, amelyek automatikusan címkézik a felhasználó fényképeit, vagy testreszabottabb élményt nyújthat, például ha az alkalmazás felismeri, hogy a felhasználó fényképeket készít az Eiffel-toronyról, akkor érdekes tényeket kínálhat a ezt a tájékozódási pontot, vagy hasonló közeli turisztikai látványosságokat javasolhat, amelyeket a felhasználó legközelebb meglátogathat.

Az ML Kit esetében szokatlanul a Landmark Detection API csak felhőalapú API-ként érhető el, tehát az alkalmazás csak akkor képes végrehajtani a tájékozódási pont észlelését, ha az eszköz aktív internetkapcsolattal rendelkezik.

Nyelv-azonosító API: Fejlesztés nemzetközi közönség számára

Manapság az Android alkalmazásokat a világ minden részén használják olyan felhasználók, akik sok különböző nyelven beszélnek.

Az ML Kit Nyelv-azonosító API-ja segíthet az Android-alkalmazásának vonzásában a nemzetközi közönség számára, ha szöveget vesz és meghatározza a beírt nyelvet. A Nyelv-azonosító API több mint száz különböző nyelvet képes azonosítani, ideértve a latinizált szöveget az arab, bolgár, Kínai, görög, hindi, japán és orosz.

Ez az API értékes kiegészítés lehet minden olyan alkalmazáshoz, amely feldolgozza a felhasználó által megadott szöveget, mivel ez a szöveg ritkán tartalmaz nyelvi információkat. A fordítási alkalmazásokban a Language Identification API-t is használhatja a fordítási alkalmazásokban bármi, tudja, milyen nyelven dolgozik! Például, ha a felhasználó az eszköz kameráját egy menüre mutat, akkor az alkalmazás használja a Nyelv azonosító API-t annak meghatározására, hogy a menü francia nyelven íródott-e, majd felajánlja ezen menü lefordítását egy olyan szolgáltatás használatával, mint például a Cloud Translation API ( talán a szöveg kibontása után, a Text Recognition API használatával?)

A kérdéses karakterlánctól függően a Nyelv-azonosító API több potenciális nyelvet eredményezhet vissza, bizalmi pontszámokat adva, hogy meghatározhassa, melyik észlelt nyelv valószínűleg helyesebb. Vegye figyelembe, hogy az ML Kit írásakor nem azonosított több nyelvet ugyanazon a karakterláncon belül.

Annak biztosítása érdekében, hogy ez az API valós időben biztosítsa a nyelv azonosítását, a Nyelv azonosító API csak eszközön elérhető.

Hamarosan: Intelligens válasz

A Google a jövőben további API-kat szeretne hozzáadni az ML Kithez, de már tudunk egy feljövő API-ról.

Az ML Kit webhely szerint a közelgő Intelligens válasz API lehetővé teszi, hogy kontextusú üzenetküldési válaszokat kínáljon alkalmazásaiban azáltal, hogy javasolja a jelenlegi környezethez illeszkedő szövegrészleteket. Annak alapján, amit erről az API-ról már tudunk, úgy tűnik, hogy az intelligens válasz hasonló lesz a javasolt válasz funkcióhoz, amely már elérhető az Android alkalmazásban, a Wear OS-ben és a Gmailben.

A következő képernyőkép bemutatja, hogy a javasolt válaszfunkció hogyan néz ki jelenleg a Gmailen.

Mi a következő lépés? A TensorFlow Lite használata az ML készlettel

Az ML Kit előre gyártott modelleket biztosít a mobiltelefonok általános használatához, de bizonyos esetekben érdemes lehet megnézni ezeket a kész modelleket.

A TensorFlow Lite segítségével elkészítheti saját ML-modelljeit, majd terjesztheti azokat az ML Kit segítségével. Csak ne feledje, hogy az ML Kit kész API-jával ellentétben, a saját ML modellekkel való együttműködéshez szükség van egy jelentős az ML szakértelme.

Miután elkészítette a TensorFlow Lite modelleket, feltöltheti azokat a Firebase-ba, és a Google ezt követően kezeli a modellek tárolását és kiszolgálását a végfelhasználók számára. Ebben a forgatókönyvben az ML Kit API rétegként működik az egyéni modell felett, ami egyszerűsíti az egyedi modellek használatához kapcsolódó nehéz emelőket. A legfontosabb, hogy az ML Kit automatikusan elküldi a modell legújabb verzióját a felhasználóknak, így nem kell minden egyes alkalommal frissítenie az alkalmazást, amikor a modellt meg szeretné változtatni.

A lehető legjobb felhasználói élmény biztosítása érdekében meghatározhatja azokat a feltételeket, amelyeknek teljesülniük kell, mielőtt az alkalmazás letölti a TensorFlow Lite modell új verzióit, például csak akkor frissíti a modellt, ha az eszköz tétlen, töltődik, vagy csatlakozik a Wi- Fi-vel. Még az ML Kit és a TensorFlow Lite szoftvereket is felhasználhatja más Firebase szolgáltatások mellett, például a Firebase Remote Config és a Firebase A / B teszteléssel, hogy különféle modelleket szolgáltasson különféle felhasználói csoportok számára.

Ha el szeretne lépni az előre elkészített modelleken, vagy ha az ML Kit meglévő modelljei nem eléggé felelnek meg igényeinek, akkor a saját gépi tanulási modellek létrehozásáról többet megtudhat a hivatalos Firebase dokumentumokban.

Csomagolás

Ebben a cikkben a Google gépi tanulási készletének minden elemét áttekintettük, és néhány általános forgatókönyvet fedeztünk fel, ahol érdemes használni az ML Kit API-kat.

A Google a jövőben további API-k hozzáadását tervezi, tehát mely gépi tanulási API-kat szeretné látni a következőként hozzáadva az ML Kithez? Tudassa velünk az alábbi megjegyzésekben!

Az infravörö blaterrel rendelkező telefon duplán univerzáli távirányítóként működik, lehetővé téve otthoni különféle elektron...

Az okotelefonoknak közönhetően bárki amatőrnek tekinthető fotó Manapág. Függetlenül attól, hogy karriert zeretne cinálni belőle, vagy cak arra, hogy zé...

Lenyűgöző Kiadványok