Az írás egy web elismerése iránti kérelem személy óránként

Mondja Dewan Sabaratnam, a fejlesztő 30 éves tapasztalattal

Múlt hétvégén, lapozgatva Amazon Web Services, észrevettem egy új szolgáltatás az úgynevezett «Rekognition». Azt feltételezték, hogy ez egy elírás (elismerés -. Angol elismerés), de ez felkeltette az érdeklődésemet. Érdekel: milyen szolgáltatást? Amazon használt új szolgáltatásokat a platform ijesztő rendszerességgel, és hogy én is kimaradt.

Korábban dolgoztam arcfelismerő technológia segítségével harmadik fél könyvtárak, és a Microsoft Arc API. de minden kísérlet, hogy hozzon létre egy hasonló kérelmet nem volt sikeres. De néztem a dokumentáció «Rekognition», rájöttem, hogy az AWS API valójában nagyon könnyű használni. Rögtön elmentem dolgozni.

Kellett egy egyszerű weboldal, amely lehetővé tenné, hogy egy fénykép a kamera az én iMac és végre elismerést fotókat. Különösen szeretnék meghatározni a felhasználó előtt ül számítógép.

Amazon Rekognition szolgáltatás lehetővé teszi, hogy hozzon létre egy vagy több gyűjteményt. Collection - egy sor vektorok személyes fényképeket menteni szeretné.

Megjegyzés: A szolgáltató fenntartja a fényképét és JSON-ábrázolás.

Miután létrehozott egy gyűjtemény, akkor a kép egy tárgy, hasonlítsa össze a tulajdonságait c mentett fájlokat, és vissza a legközelebbi egyezést. Egyszerűnek hangzik, nem igaz? Az az igazság, a fejlesztés a frontend weboldal adatokat lekérni a kamerát, hogy hosszabb, mint beírni a backend elismerését.

Általában a weboldal lehetővé teszi, hogy vagy törölni személyes adatok gyűjtésére az Amazon, letölteni az új adatokat a fényképeket a gyűjtemény és összehasonlítani az új fotókat egy meglévő gyűjtemény egyezést nem talál. És mivel több funkciót tettem hozzá, hogy ez a demo Amazon Polly szolgáltatást. hogy miután elismerte fotók oldal üdvözölte a felhasználó.

A backend, szoktam Ruby-könyvtár Sinatra. amely ezt a nehéz munkát használatával AWS. Gyakran használják Sinatra (valójában Padrino eset) annak projektekben, és nagyon ajánlom ezt a platformot.

Megjegyzés: Amazon Rekognition ajánlatok először letölti az eredeti képeket, hogy használja az API, az Amazon S3, majd feldolgozni. Azt akartam, hogy elkerülje ezt a felesleges lépést, és helyette küldeni a képeket közvetlenül az API, végül is sikerült.

Sikerült ugyanezt a saját üdvözlő Polly. Ehelyett menteni audio MP3-fájlt, és játszani, én képes kódolni MP3 adatokat közvetlenül a címke

Már írt a teljes kódot a projekt oldalamon GitHubról. Nyugodtan használja és módosítsa azt. Az alábbiakban megpróbálom megmagyarázni a kódot részletesen.

írásban app

Egy felhasználó létrehozása AWS IAM

Miután létrehozta az AWS véve, az első dolog, amit tennie kell -, hogy hozzon létre egy felhasználói Amazon IAM (Identity Access Management), amely a jogot, hogy használja Rekognition szolgáltatást. Azt is kérjük, hogy adjunk Amazon Polly.

Az Amazon konzolban kattintson a „Szolgáltatások” a bal felső sarokban, majd válassza a „IAM”. A bal oldali menüből válassza ki a „Felhasználók”. Látnia kell egy listát a meglévő felhasználók az IAM, amely létrehozta a konzol, ha megcsináltad a múltban.

Kattintson az „Add User” a lista tetején, hogy egy új felhasználói IAM.

Adja meg a felhasználó nevét, és győződjön meg róla, hogy válassza ki az elemet «Programmatic Access», az akkor használja az IAM hívni az API.

A következő engedélyek tartoznak beállításokat. Győződjön meg róla, hogy kattintson a harmadik négyzet a képernyőn a felirat «csatolása meglévő politikák közvetlenül». Ezután a keresőmezőbe «Szűrés: Policy Type» adja «rekognition». Válasszunk «AmazonRekognitionFullAccess» a listából bejelölésével mellette.

Ezután módosíthatja a keresési szűrőt «Polly» és helyezzük egy jelölést a «AmazonPollyFullAccess».

Most ez IAM a megfelelő engedélyekkel Amazon Rekognition és az Amazon Polly. Kattintson a «Tovább: Review» a jobb alsó sarokban.

Ez az oldal fontos. Record gombokat AWS Kulcs és AWS Secret, amelyet Ön ezen az oldalon, mert szükségünk van, hogy bevonja őket a kérelmet az alábbiakban.

Ez az egyetlen alkalom, akkor jelenik meg a kulcsokat, így tárolni őket, és egy CSV-fájlt az oldalról, biztonságos helyen.

Letöltés kód

Most, töltse le a minta kódot oldalamon GitHub. így meg lehet változtatni, ha szükséges. Töltse le a kódot formájában ZIP-fájl, vagy skloniruyte azt a munka könyvtárba.

Az első dolog, amit tennie kell -, hogy hozzon létre egy fájlt nevű .env a munka könyvtárba és írja be a következő két sort helyett az Amazon IAM gombjait:

Az alkalmazás használata

A nagyon weboldal meglehetősen egyszerű. Látnia kell a streaming képet a képernyő tetején, ami egy csatornát a webkamerát.

Először hozzon létre egy gyűjtemény linkre kattintva a bal alsó sarokban az oldal. Ez létrehoz egy üres gyűjtemény az Amazon szerverein tárolja a képeket. Megjegyzés: Az alapértelmezett név a gyűjteményhez - faceapp_test. de meg lehet változtatni a kódot faceapp.rb (17. sor).

Miután létrehozott több mint egy személy az adatbázisban, akkor kérjen egy ismeretlen személy, hogy üljön be a kamera előtt, és nyomja meg a „összehasonlítani a képeket”. Ha ez a személy már hozzá a gyűjteményhez a képernyőn meg kell jelennie a nevét.

Felhívjuk figyelmét, hogy a szokásos módon működik Amazon Rekognition hogy feltölteni a képeket az Amazon S3 Bucket, majd feldolgozza onnan, de szeretném, hogy megkerülje ezt a lépést, és elküldi az adatokat közvetlenül a fényképeket Rekognition byte stream kódolt Base64. Szerencsére AWS-SDK Ruby lehetővé teszi, hogy a két módszert.

elemzési kód

Először is, nézzük meg a HTML-oldalon:

Ez beállítja JPEG Camera könyvtár megjelenítéséhez egy csatornát a képernyőn, és kezelni képfeltöltés.

add_to_collection () függvény felvesz egy képet a kamera, majd írja a végpont / feltölteni együtt a felhasználó nevét paraméterként. A függvény ellenőrzi, hogy adja meg a kívánt nevet, mint az egyedi azonosítója az adatokat.

letöltés funkció ellenőrzi a hívást, és egy üzenetet jelenít meg a sikeres befejezését vagy kudarc.

compare_image () függvény, ha rákattint az „Összehasonlítás a képet.” Méri a keretet a kamera és továbbítja az adatokat a POST / összehasonlítani. Ezt a végpontot visszatér bármilyen hiba vagy szerkezet JSON, amely id (név) a talált arcok és százalékos hasonlóságot.

Ha egy személy egybeesik az adatok gyűjtésére, a függvény elküldi a személy nevét a / beszédet. Ezt a végpontot az Amazon Polly szolgáltatás átalakítani az üdvözlő egy MP3-fájl játszható vissza a felhasználónak.

Amazon Polly szolgáltatás visszaad egy üdvözlő formájában bináris adatfolyam MP3, így vesszük az input-output folyam, titkosítani base64 formátumban és helyen az eredeti kódolt utalás címkék

Kb. Trans. Meg lehet tanulni a Web Audio több, olvassa el a cikksorozat ebben a témában.

Végül a JS-fájl alkalmazások greetingTime () függvényt. Ez dönti el, hogy azt mondják: „jó reggelt / napot / estét” függően a napszaktól a felhasználó.

Most nézd meg a Ruby kód: