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: