Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Spune Dewan Sabaratnam, un dezvoltator cu 30 de ani de experiență

Weekend-ul trecut, răsfoirea Amazon Web Services, am observat un nou serviciu numit «Rekognition». Am presupus că a fost o greșeală de scriere (recunoaștere -. Recunoașterea engleză), dar mi-a atras atenția. Sunt interesat de: ce fel de serviciu? Amazon folosite pentru a adăuga noi servicii la platforma sa cu regularitate alarmantă, și că am ratat.

Anterior, am lucrat tehnologie de recunoaștere a feței, folosind biblioteci terțe părți, și Microsoft API Face. dar toate încercările de a crea o aplicație similară nu a avut succes. Dar, uita la documentația «Rekognition», am dat seama că API-ul AWS este de fapt foarte ușor de utilizat. M-am dus imediat la locul de muncă.

Am nevoie de o pagină web simplă, care ar permite să ia o fotografie cu camera de iMac meu și de a efectua o recunoaștere pe fotografii. În special, aș dori să determine utilizatorul stând în fața calculatorului.

Serviciul Amazon Rekognition vă permite să creați unul sau mai multe colecții. Colectia - un set de vectori pentru fotografii personale pe care doriți să le salvați.

Notă: Serviciul menține o fotografie și lor JSON-reprezentare.

După ce creați o colecție, puteți face o imagine a unui obiect, puteți compara proprietățile fișierelor c salvate și pentru a reveni cea mai apropiată potrivire. Pare simplu, nu-i așa? Intr-adevar, dezvoltarea paginii web front-end pentru a prelua date de la aparatul de fotografiat pentru a lua mai mult decât scrierea unui backend de recunoaștere.

În general, pagina Web vă permite să creați sau ștergerea de colectare a datelor personale de pe Amazon, descărcați date noi din fotografii în colecția și compara fotografii noi o colecție existentă pentru a găsi un meci. Și mai multe caracteristici am adăugat la acest serviciu demo-ul Amazon Polly. că, după recunoașterea pagina de fotografii a salutat utilizatorul.

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Pentru backend, am folosit Ruby-bibliotecă Sinatra. care poate face toata munca grea folosind AWS. Am folosit de multe ori Sinatra (de fapt, cazul Padrino) în proiectele sale, și foarte recomanda această platformă.

Notă: Amazon Rekognition oferă descărca mai întâi fotografiile originale pe care le utilizează API-ul, Amazon S3, și apoi să le prelucreze. Am vrut să evite acest pas inutile și în schimb trimite imaginile direct la API, în cele din urmă am reușit să fac.

Am reușit să facă același lucru cu salutul lor Polly. În schimb, pentru a salva audio în format MP3-fișier și-l joace, am fost capabil de a codifica datele MP3 direct în tag-ul

Am postat întregul cod pentru acest proiect pe pagina mea de pe GitHub. Simțiți-vă libertatea de a folosi și modifica. Mai jos voi încerca să explice în detaliu codul.

aplicaţia de scriere

Crearea unui utilizator AWS IAM

După ce ați creat contul AWS, primul lucru pe care trebuie să facem - pentru a crea un utilizator Amazon IAM (Identity Access Management), care are dreptul de a utiliza serviciul Rekognition. Cerem, de asemenea pentru a adăuga Amazon Polly.

În Consola Amazon, faceți clic pe „Servicii“, în colțul din stânga sus, apoi selectați „IAM“. În meniul din stânga, selectați „Utilizatori“. Ar trebui să vedeți o listă de utilizatori existenți în IAM, pe care le-ați creat în consolă, în cazul în care ai făcut-o în trecut.

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Faceți clic pe „Adăugați un utilizator“ în partea de sus a listei pentru a adăuga un nou utilizator IAM.

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Dă numele de utilizator și asigurați-vă că selectați elementul «programatică acces», pe măsură ce se va utiliza IAM pentru a apela API-ul.

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Următoarele sunt setările de permisiuni. Asigurați-vă că faceți clic pe al treilea pătrat pe ecran cu inscripția «Atașați politicile existente în mod direct». Apoi, în caseta de căutare «Filtru: Politica Tip» introduceți «rekognition». Selectați «AmazonRekognitionFullAccess» din listă bifând de lângă ea.

Apoi modificați filtrul de căutare pe «polly» și puneți o bifă lângă «AmazonPollyFullAccess».

Acum, acest IAM au suficiente permisiuni Amazon Rekognition și Amazon Polly. Faceți clic pe «Next: Review» în colțul din dreapta jos.

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Scrierea unei aplicații web pentru recunoașterea de persoane pe oră

Această pagină este importantă. chei de înregistrare AWS cheie și AWS secrete, pe care le specificați pe această pagină, pentru că trebuie să le includă în cererea noastră de mai jos.

Aceasta este singura dată când va fi afișat cheile, astfel încât acestea și un fișier CSV din această pagină într-un loc sigur magazin.

codul de descărcare

Acum, descărcați codul de probă din pagina mea GitHub. astfel încât să puteți schimba după cum este necesar. Descărcați codul sub forma unui ZIP-fișier, sau skloniruyte-l în directorul de lucru.

Primul lucru ce trebuie să faceți - este de a crea un fișier numit .env în directorul de lucru și introduceți aceste două linii prin înlocuirea cheile Amazon IAM pe dumneavoastră:

Utilizarea aplicației

Pagina de web foarte este destul de simplu. Ar trebui să vedeți o imagine de streaming în partea de sus a ecranului, care este un canal cu ajutorul camerei web.

În primul rând, creați o colecție, făcând clic pe link-ul din colțul din stânga jos al paginii. Acest lucru va crea o colecție gol de pe serverele Amazon pentru a stoca imaginile. Notă: Numele implicit pentru această colecție - faceapp_test. dar o puteți schimba în faceapp.rb codul (linia 17).

După ce ați creat mai mult de o persoană în baza de date, puteți cere o persoană oarecare să stea în fața camerei și apăsați „Comparați imaginile“. În cazul în care persoana a fost deja adăugat la colecția de pe ecran ar trebui să vedeți numele său.

Vă rugăm să rețineți că modul obișnuit de lucru Amazon Rekognition este de a încărca fotografii Amazon S3 Bucket, și apoi procesul-l de acolo, dar aș dori să omiteți acest pas și de fapt, trimite datele direct la fotografiile Rekognition ca un flux de octet codificat în Base64. Din fericire, AWS-sdk pentru Ruby vă permite să utilizați ambele metode.

codul parsare

În primul rând, să ne uităm la pagina HTML:

Aceasta setează JPEG bibliotecă aparat foto pentru a afișa un canal de pe ecran și să se ocupe de încărcarea imaginilor.

add_to_collection () funcția capturează o imagine din camera foto, iar apoi scrie final / încărcați împreună cu numele de utilizator ca parametru. Funcția verifică dacă este sau nu introduceți numele dorit ca identificatorul unic al datelor.

Funcția de descărcare verifică apelul și afișează un mesaj despre finalizarea cu succes sau eșec.

compare_image) Funcția (este numit când faceți clic pe „Comparați imaginea.“ Ea surprinde un cadru din aparatul de fotografiat și transmite datele către postvaccinare / comparare. Acest punct final va returna orice eroare sau structură JSON, cuprinzând id (numele) fețelor constatate și procentul similitudine.

În cazul în care o persoană care coincid cu datele din colecția, funcția va trimite numele persoanei găsite în / vorbire. Acest punct final este un serviciu Amazon Polly pentru a transforma salut într-un fișier MP3 care poate fi redat la utilizator.

Serviciul Amazon Polly returnează un mesaj de salut în forma unui flux binar MP3, așa că vom lua fluxul de intrare-ieșire, cripta în format Base64 și locul ca referințele originale codificate tag-uri

Aproximativ Trans. Puteți afla mai multe despre Web Audio mai multe, citiți seria de articole pe acest subiect.

În cele din urmă, în JS-fișier aplicații au funcția greetingTime (). Acesta decide dacă să spună „bună dimineața / după-amiază / seara“, în funcție de momentul zilei utilizatorului.

Acum, uita-te la codul Ruby: