Jak přidat Machine Learning do aplikací pro Android

Autor: Peter Berry
Datum Vytvoření: 16 Lang L: none (month-012) 2021
Datum Aktualizace: 1 Červenec 2024
Anonim
Jak přidat Machine Learning do aplikací pro Android - Aplikace
Jak přidat Machine Learning do aplikací pro Android - Aplikace

Obsah


Strojové učení (ML) vám může pomoci vytvořit inovativní, přesvědčivé a jedinečné zážitky pro vaše mobilní uživatele.

Jakmile zvládnete ML, můžete jej použít k vytvoření široké škály aplikací, včetně aplikací, které automaticky organizují fotografie na základě jejich předmětu, identifikují a sledují tvář osoby přes živý tok, extrahují text z obrázku a mnohem více .

Ale ML není úplně začátečník přátelský! Pokud chcete vylepšit své aplikace pro Android výkonnými schopnostmi strojového učení, tak kde přesně začnete?

V tomto článku uvedu přehled sady SDK (Software Development Kit), která slibuje, že vám výkon ML na dosah ruky, i když máte nula ML zkušenosti. Na konci tohoto článku budete mít základy, které musíte začít vytvářet inteligentní aplikace využívající technologie ML, které jsou schopny označovat obrázky, skenovat čárové kódy, rozpoznávat tváře a slavné orientační body a provádět mnoho dalších výkonných úloh ML.


Seznamte se se strojovou výbavou společnosti Google

S vydáním technologií, jako jsou TensorFlow a CloudVision, se stále více používá ML, ale tyto technologie nejsou pro slabé srdce! Obvykle budete potřebovat hluboké porozumění neuronových sítí a analýzu dat, abyste se dostali začal s technologií, jako je TensorFlow.

Jen pokud ty dělat mít nějaké zkušenosti s ML, vytvoření mobilní aplikace poháněné strojem může být časově náročný, složitý a nákladný proces, který vyžaduje, abyste museli získat dostatek dat pro trénování svých vlastních ML modelů, a pak optimalizovat tyto ML modely, aby fungovaly efektivně v mobilní prostředí. Pokud jste individuální vývojář nebo máte omezené zdroje, nemusí být možné uvést vaše znalosti ML do praxe.


ML Kit je pokus společnosti Google přenést strojové učení k masám.

Pod kapotou sdružuje ML Kit dohromady několik výkonných technologií ML, které by obvykle vyžadovaly rozsáhlé znalosti ML, včetně Cloud Vision, TensorFlow a API pro Android Neural Networks API. Sada ML kombinuje tyto speciální technologie ML s předem trénovanými modely pro běžné použití v mobilních zařízeních, včetně extrahování textu z obrázku, skenování čárového kódu a identifikace obsahu fotografie.

Bez ohledu na to, zda máte nějaké předchozí znalosti o ML, můžete použít ML Kit k přidání výkonných funkcí strojového učení do vašeho Androidu a Aplikace pro iOS - jen předejte některá data do správné části sady ML Kit, například do rozhraní Rozpoznávání textu nebo identifikace jazyka, a toto API použije strojové učení k vrácení odpovědi.

Jak mohu používat API API?

ML Kit je rozdělen do několika API, která jsou distribuována jako součást platformy Firebase. Chcete-li použít kterékoli z rozhraní API API, musíte si vytvořit propojení mezi vaším projektem Android Studio a odpovídajícím projektem Firebase a poté komunikovat s Firebase.

Většina modelů ML Kit je k dispozici jako modely na zařízení, které si můžete stáhnout a použít místně, ale některé modely jsou také dostupné v cloudu, což umožňuje vaší aplikaci provádět úlohy spojené s ML pomocí internetového připojení zařízení.

Každý přístup má svou vlastní jedinečnou sadu silných a slabých stránek, takže se musíte rozhodnout, zda místní nebo vzdálené zpracování má pro vaši konkrétní aplikaci největší smysl. Můžete dokonce přidat podporu pro oba modely a pak umožnit uživatelům rozhodnout se, který model použít za běhu. Případně můžete svou aplikaci nakonfigurovat tak, aby pro aktuální podmínky vybrala nejlepší model, například pomocí cloudového modelu, pokud je zařízení připojeno k Wi-Fi.

Pokud se rozhodnete pro místní model, budou funkce strojového učení vaší aplikace vždy dostupné, bez ohledu na to, zda má uživatel aktivní připojení k internetu. Vzhledem k tomu, že veškerá práce je prováděna lokálně, jsou modely v zařízení ideální, když aplikace potřebuje rychle zpracovat velké množství dat, například pokud používáte k manipulaci se živým proudem videa sadu ML Kit.

Mezitím modely založené na cloudu obvykle poskytují větší přesnost než jejich protějšky na zařízení, protože cloudové modely využívají sílu technologie strojového učení Google Cloud Platform. Například model zařízení Image Labeling API v zařízení obsahuje 400 štítků, ale funkce cloudového modelu se již skončily 10 000 štítků.

V závislosti na rozhraní API mohou existovat také některé funkce, které jsou dostupné pouze v cloudu, například rozhraní API pro rozpoznávání textu může identifikovat jiné znaky než latinky, pokud používáte jeho model založený na cloudu.

Cloudová rozhraní API jsou k dispozici pouze pro projekty Firebase na úrovni Blaze, takže než budete moci použít jakýkoli cloudový model ML Kit, budete muset upgradovat na placený průběžný plán Blaze.

Pokud se rozhodnete prozkoumat cloudové modely, byla v době psaní k dispozici bezplatná kvóta pro všechna rozhraní API ML Kit. Pokud jste jen chtěli experimentovat s cloudovým obrázkovým štítkem, pak byste mohli upgradovat svůj projekt Firebase na plán Blaze, otestovat API na méně než 1 000 obrazech a poté přepnout zpět na bezplatný plán Spark, aniž by byl nabíjen. Smluvní podmínky se však postupem času mění, takže si před upgradem na Blaze přečtěte malý výtisk, abyste se ujistili, že vás nezasáhnou neočekávané účty!

Identifikujte text v libovolném obrázku pomocí rozhraní API pro rozpoznávání textu

Rozhraní API pro rozpoznávání textu dokáže inteligentně identifikovat, analyzovat a zpracovávat text.

Pomocí tohoto rozhraní API můžete vytvářet aplikace, které extrahují text z obrázku, takže uživatelé nemusí ztrácet čas zdlouhavým ručním zadáváním dat. Například můžete použít rozhraní API pro rozpoznávání textu, které vašim uživatelům pomůže získat a zaznamenat informace z účtenek, faktur, vizitek nebo dokonce nutričních štítků pouhým vyfotografováním dotyčné položky.

Můžete dokonce použít rozhraní API pro rozpoznávání textu jako první krok v překladové aplikaci, kde uživatel vyfotí nějaký neznámý text a API extrahuje veškerý text z obrázku a je připraven k předání překladatelské službě.

Rozhraní API pro rozpoznávání textu ML Kit v zařízení dokáže identifikovat text v jakémkoli latinském jazyce, zatímco jeho protějšek založený na cloudu dokáže rozpoznat větší množství jazyků a znaků, včetně čínských, japonských a korejských znaků. Cloudový model je také optimalizován tak, aby extrahoval řídký text z obrázků a text z hustě zabalených dokumentů, které byste měli vzít v úvahu při rozhodování, který model použít v aplikaci.

Chcete nějaké praktické zkušenosti s tímto API? Poté si přečtěte našeho podrobného průvodce vytvořením aplikace, která dokáže extrahovat text z libovolného obrázku pomocí rozhraní API pro rozpoznávání textu.

Porozumění obsahu obrázku: Rozhraní API pro označování obrázků

Rozhraní API pro označování obrázků dokáže rozpoznat entity v obraze, včetně umístění, lidí, produktů a zvířat, bez nutnosti dalších kontextových metadat. API Image Labeling API vrátí informace o detekovaných entitách ve formě štítků. Například na následujícím obrázku jsem poskytl rozhraní API fotografii přírody a jeho odpověď byla označena štítky jako „Forest“ a „River“.

Tato schopnost rozpoznat obsah obrázku vám může pomoci vytvořit aplikace, které označují fotografie na základě jejich předmětu; filtry, které automaticky identifikují nevhodný obsah odeslaný uživateli a odstraní jej z aplikace; nebo jako základ pro pokročilé funkce vyhledávání.

Mnoho rozhraní API ML Kit vrací několik možných výsledků, doplněných o doprovodné skóre spolehlivosti - včetně rozhraní Image Labeling API. Pokud minete Image Labelling fotografii pudlíka, může to vrátit štítky jako „pudl“, „pes“, „domácí zvíře“ a „malé zvíře“, to vše s různým skóre, což ukazuje na důvěru API v jednotlivé štítky. Doufejme, že v tomto scénáři bude mít „pudl“ nejvyšší skóre spolehlivosti!

Toto skóre spolehlivosti můžete použít k vytvoření prahu, který musí být splněn před tím, než vaše aplikace působí na konkrétní štítek, například jej zobrazíte uživateli nebo označíte fotografii tímto štítkem.

Označování obrázků je k dispozici v zařízení i v cloudu, i když se rozhodnete pro cloudový model, získáte přístup k více než 10 000 štítkům ve srovnání se 400 štítky, které jsou součástí modelu v zařízení.

Podrobnější informace o rozhraní API pro označování obrázků naleznete v části Určení obsahu obrázku pomocí strojového učení. V tomto článku vytváříme aplikaci, která zpracovává obraz, a poté vrací štítky a skóre spolehlivosti pro každou entitu detekovanou v tomto obrazu. V této aplikaci implementujeme také modely zařízení a cloudu, takže můžete přesně vidět, jak se výsledky liší, v závislosti na modelu, pro který se rozhodnete.

Porozumění výrazům a sledovacím plochám: Rozpoznání tváře API

Rozhraní API pro detekci obličeje dokáže lokalizovat lidské tváře na fotografiích, videích a živých streamech a poté extrahovat informace o každé detekované tváři, včetně její polohy, velikosti a orientace.

Toto rozhraní API můžete použít k tomu, aby uživatelé mohli upravovat své fotografie, například automatickým oříznutím celého prázdného místa kolem jejich nejnovějšího headshot.

Rozhraní API pro detekci obličeje se neomezuje pouze na obrázky - toto rozhraní API můžete použít také na videa, například můžete vytvořit aplikaci, která identifikuje všechny obličeje ve zdroji videa a poté rozostří vše až na tyto tváře, podobné funkci rozostření pozadí Skype.

Detekce obličeje je vždy provádí se na zařízení, kde je dostatečně rychlý na to, aby byl použit v reálném čase, takže na rozdíl od většiny rozhraní API sady ML Kit Face Detection ne zahrnují cloudový model.

Kromě detekování obličejů má toto API několik dalších funkcí, které stojí za prozkoumání. Za prvé, rozhraní Face Detection API může identifikovat obličejové orientační body, jako jsou oči, rty a uši, a poté načte přesné souřadnice pro každou z těchto orientačních bodů. Tento rozpoznávání orientačních bodů poskytuje přesnou mapu každé detekované tváře - ideální pro vytváření aplikací s rozšířenou realitou (AR), které přidávají masky a filtry ve stylu Snapchat do uživatelského zdroje fotoaparátu.

Rozhraní API pro detekci obličeje nabízí také obličeje klasifikace. V současné době podporuje ML Kit dvě klasifikace obličeje: oči otevřené a usmívající se.

Tuto klasifikaci byste mohli použít jako základ pro služby usnadnění přístupu, například pro ovládání hands-free, nebo pro vytváření her, které reagují na výraz obličeje hráče. Schopnost detekovat, zda se někdo usmívá nebo má oči otevřené, se může hodit také při vytváření aplikace pro fotoaparát - konec konců, není nic horšího než pořizování hromady fotografií, až později zjistíte, že někdo měl zavřené oči v každý výstřel.

Nakonec API pro detekci obličeje obsahuje komponentu pro sledování tváře, která přiřazuje obličeji ID a poté sleduje tváře napříč několika po sobě jdoucími obrázky nebo video snímky. Toto je tvář sledování a ne skutečný obličej uznání. V zákulisí API pro detekci obličeje sleduje polohu a pohyb obličeje a usuzuje, že tato tvář pravděpodobně patří stejné osobě, ale nakonec si není vědoma její identity.

Vyzkoušejte rozhraní API pro detekci obličeje! Zjistěte, jak vytvořit aplikaci pro detekci obličeje pomocí strojového učení a Firebase ML Kit.

Skenování čárových kódů pomocí Firebase a ML

Skenování čárových kódů nemusí znít tak vzrušivě jako některé jiné API pro strojové učení, ale je to jedna z nejdostupnějších částí sady ML Kit.

Skenování čárového kódu nevyžaduje žádný speciální hardware nebo software, takže můžete použít API pro skenování čárových kódů a přitom zajistit, aby vaše aplikace zůstala přístupná co nejvíce lidem, včetně uživatelů na starších nebo levných zařízeních. Pokud má zařízení funkční kameru, nemělo by mít problémy se skenováním čárového kódu.

Rozhraní API pro skenování čárových kódů ML Kit může extrahovat širokou škálu informací z tištěných a digitálních čárových kódů, což z něj dělá rychlý, snadný a přístupný způsob předávání informací ze skutečného světa do aplikace, aniž by uživatelé museli provádět jakékoli zdlouhavé ruční zadávání dat. .

Existuje devět různých typů dat, které API pro skenování čárových kódů dokáže rozpoznat a analyzovat z čárového kódu:

  • TYPE_CALENDAR_EVENT. Obsahuje informace, jako je umístění, organizátor a čas zahájení a ukončení události.Pokud propagujete událost, můžete na své plakáty nebo letáky uvést tištěný čárový kód nebo na svém webu uvést digitální čárový kód. Potenciální účastníci pak mohou extrahovat všechny informace o vaší události pouhým naskenováním čárového kódu.
  • TYPE_CONTACT_INFO. Tento datový typ zahrnuje informace, jako je e-mailová adresa kontaktu, jméno, telefonní číslo a název.
  • TYPE_DRIVER_LICENSE. Obsahuje informace, jako je ulice, město, stát, jméno a datum narození spojené s řidičským průkazem.
  • TYPE_EMAIL. Tento datový typ zahrnuje e-mailovou adresu, plus předmět e-mailu a základní text.
  • TYPE_GEO. Obsahuje zeměpisné šířky a délky pro konkrétní zeměpisný bod, což je snadný způsob, jak sdílet polohu s vašimi uživateli, nebo je sdílet s ostatními. Můžete dokonce použít geografické čárové kódy ke spuštění událostí založených na poloze, jako je například zobrazení některých užitečných informací o aktuální poloze uživatele nebo jako základ pro mobilní hry založené na poloze.
  • TYPE_PHONE. Obsahuje telefonní číslo a typ čísla, například zda jde o pracovní nebo domácí telefonní číslo.
  • TYPE_SMS. Obsahuje text těla SMS a telefonní číslo spojené s SMS.
  • TYPE_URL. Tento datový typ obsahuje adresu URL a její název. Prohledávání čárového kódu TYPE_URL je mnohem snazší než spoléhat se na uživatele, že ručně zadají dlouhou a složitou adresu URL, aniž by došlo k překlepům nebo pravopisným chybám.
  • TYPE_WIFI. Obsahuje SSID a heslo sítě Wi-Fi a typ šifrování, například OPEN, WEP nebo WPA. Čárový kód Wi-Fi je jedním z nejjednodušších způsobů, jak sdílet přihlašovací údaje Wi-Fi, a také zcela odstranit riziko nesprávného zadání těchto údajů uživateli.

Rozhraní API pro skenování čárových kódů může analyzovat data z celé řady různých čárových kódů, včetně lineárních formátů, jako jsou Codabar, Code 39, EAN-8, ITF a UPC-A, a 2D formátů jako Aztec, Data Matrix a QR Codes.

Aby to bylo pro vaše konečné uživatele jednodušší, skenuje toto rozhraní API všechny podporované čárové kódy současně a může také extrahovat data bez ohledu na orientaci čárového kódu - nezáleží na tom, zda je čárový kód při skenování uživatelem zcela obrácený!

Machine Learning in the Cloud: API pro rozpoznávání orientačních bodů

Rozhraní API API Landmark Recognition API můžete použít k identifikaci známých přírodních a vytvořených orientačních bodů v obraze.

Pokud tomuto rozhraní API předáte obrázek obsahující slavný orientační bod, vrátí název tohoto orientačního bodu, hodnoty zeměpisné šířky a délky orientačního bodu a ohraničovací rámeček označující, kde byl mezník v obraze objeven.

Rozhraní Landmark Recognition API můžete použít k vytváření aplikací, které automaticky označují fotografie uživatele, nebo pro poskytování více přizpůsobeného prostředí, například pokud vaše aplikace rozpozná, že uživatel fotografuje Eiffelovu věž, pak může nabídnout některá zajímavá fakta o Tento orientační bod nebo podobné turistické atrakce v okolí, které by uživatel mohl chtít navštívit příště.

Neobvykle pro ML Kit je API Landmark Detection API k dispozici pouze jako cloudové API, takže vaše aplikace bude schopna provádět detekci orientačních bodů, pouze pokud má zařízení aktivní připojení k internetu.

The Language Identification API: Vývoj pro mezinárodní publikum

Dnes jsou aplikace pro Android používány ve všech částech světa uživateli, kteří hovoří mnoha různými jazyky.

Rozhraní API pro identifikaci jazyků ML Kit může pomoci vaší aplikaci pro Android oslovit mezinárodní publikum tím, že vezme řetězec textu a určí jazyk, ve kterém je napsáno. Rozhraní API pro identifikaci jazyka dokáže identifikovat více než sto různých jazyků, včetně romanizovaného textu pro arabštinu, bulharštinu, Čínština, řečtina, hindština, japonština a ruština.

Toto API může být cenným doplňkem jakékoli aplikace, která zpracovává text poskytovaný uživatelem, protože tento text málokdy obsahuje jakékoli jazykové informace. Jako první krok k překladu můžete také použít API pro identifikaci jazyků v překladatelských aplikacích cokoliv, ví, s jakým jazykem pracujete! Pokud například uživatel nasměruje kameru svého zařízení na nabídku, může vaše aplikace použít API pro identifikaci jazyků k určení, že nabídka je napsána ve francouzštině, a nabídnout překlad této nabídky pomocí služby, jako je například Cloud Translation API ( snad po rozbalení textu pomocí rozhraní API pro rozpoznávání textu?)

V závislosti na dotyčném řetězci může API pro identifikaci jazyků vracet více potenciálních jazyků, doplněné skóre spolehlivosti, takže můžete určit, který detekovaný jazyk bude s největší pravděpodobností správný. Všimněte si, že v době psaní ML Kit nemohl identifikovat více různých jazyků ve stejném řetězci.

Aby bylo zajištěno, že toto rozhraní API poskytuje identifikaci jazyka v reálném čase, je rozhraní API pro identifikaci jazyků k dispozici pouze jako model v zařízení.

Již brzy: Inteligentní odpověď

Google plánuje v budoucnu přidat do ML Kit další API, ale my už víme o jednom připravovaném API.

Podle webové stránky ML Kit, nadcházející Inteligentní odpověď API vám umožní nabídnout odpovědi na kontextové zprávy ve vašich aplikacích tím, že navrhne úryvky textu, které odpovídají současnému kontextu. Na základě toho, co již víme o tomto API, se zdá, že inteligentní odpověď bude podobná funkci navrhované odpovědi, která je již k dispozici v aplikacích pro Android, Wear OS a Gmail.

Následující obrázek ukazuje, jak navrhovaná funkce odpovědi v současné době vypadá v Gmailu.

Co bude dál? Použití TensorFlow Lite se sadou ML

Sada ML poskytuje předpřipravené modely pro běžné případy použití v mobilních zařízeních, ale v určitém okamžiku budete možná chtít přesáhnout tyto hotové modely.

Pomocí TensorFlow Lite je možné vytvořit si vlastní modely ML a poté je distribuovat pomocí sady ML. Uvědomte si však, že na rozdíl od hotových API sady ML Kit vyžaduje práce s vašimi vlastními modely ML významný množství odborných znalostí ML.

Jakmile vytvoříte své modely TensorFlow Lite, můžete je nahrát do Firebase a Google poté spravuje hostování a poskytování těchto modelů vašim koncovým uživatelům. V tomto scénáři funguje ML Kit jako vrstva API nad vaším vlastním modelem, což zjednodušuje některé z těžkých postupů při používání vlastních modelů. Především ML Kit automaticky posouvá nejnovější verzi vašeho modelu na vaše uživatele, takže nemusíte svou aplikaci aktualizovat pokaždé, když chcete model vylepšit.

Abyste zajistili co nejlepší uživatelský zážitek, můžete určit podmínky, které musí být splněny, než vaše aplikace stáhne nové verze vašeho modelu TensorFlow Lite, například aktualizaci modelu pouze tehdy, když je zařízení nečinné, nabíjí se nebo je připojeno k síti Wi- Fi. Můžete dokonce použít ML Kit a TensorFlow Lite spolu s dalšími službami Firebase, například pomocí Firebase Remote Config a Firebase A / B Testování pro poskytování různých modelů různým skupinám uživatelů.

Pokud se chcete přestěhovat za předdefinované modely nebo stávající modely ML Kit nesplňují vaše potřeby, můžete se v oficiálních dokumentech Firebase dozvědět více o vytváření vlastních modelů strojového učení.

Zabalení

V tomto článku jsme se zabývali každou součástí strojové výukové sady Google a zahrnuli jsme několik běžných scénářů, ve kterých byste mohli chtít použít každé z rozhraní API API.

Google plánuje v budoucnu přidat další API, takže která API pro strojové učení byste si přáli, aby byla přidána do ML Kit příští? Dejte nám vědět v komentářích níže!

Aktualizace: Pozor cetující, Fortnite Kapitola 2 je nyní živá! Podívejte e na upoutávku výše, kde najdete nejnovější podrobnoti příběhu, a zíkejte ješ...

více než 125 miliony hráčů na celém větě e bezplatná hra Battle Royale od polečnoti Epic Game proměnila ve kutečný fenomén hlavního proudu. Nyní ji najdete na ...

Fascinující Publikace