- Condiții prealabile
- Cum funcționează recunoașterea feței cu OpenCV
- Detectarea feței folosind Clasificatoare Cascade în OpenCV
Recunoașterea feței devine din ce în ce mai populară și majoritatea dintre noi o folosim deja fără să ne dăm seama. Fie că este o simplă sugestie de etichetă Facebook sau un filtru Snapchat sau o supraveghere avansată a securității aeroporturilor, recunoașterea feței și-a lucrat deja magia în ea. China a început să utilizeze recunoașterea feței în școli pentru a monitoriza prezența și comportamentele elevilor. Magazinele cu amănuntul au început să utilizeze recunoașterea feței pentru a-și clasifica clienții și a izola persoanele cu antecedente de fraudă. Cu mult mai multe schimbări în curs, nu există nicio îndoială că această tehnologie ar fi văzută peste tot în viitorul apropiat.
În acest tutorial vom afla cum putem construi propriul nostru sistem de recunoaștere a feței folosind biblioteca OpenCV de pe Raspberry Pi. Avantajul instalării acestui sistem pe Raspberry Pi portabil este că îl puteți instala oriunde pentru a lucra ca sistem de supraveghere. La fel ca toate sistemele de recunoaștere a feței, tutorialul va implica două scripturi python, unul este un program Trainer care va analiza un set de fotografii ale unei anumite persoane și va crea un set de date (fișier YML). Al doilea program este programul Recognizercare detectează o față și apoi folosește acest fișier YML pentru a recunoaște fața și a menționa numele persoanei. Ambele programe pe care le vom discuta aici sunt pentru Raspberry Pi (Linux), dar vor funcționa și pe computerele Windows cu modificări foarte ușoare. Avem deja o serie de tutoriale pentru începători pentru a începe cu OpenCV, puteți verifica toate tutorialele OpenCV aici.
Condiții prealabile
După cum am spus mai devreme, vom folosi biblioteca OpenCV pentru a detecta și recunoaște fețele. Deci, asigurați-vă că instalați OpenCV Library pe Pi înainte de a continua cu acest tutorial. De asemenea, alimentați Pi-ul cu un adaptor 2A și conectați-l la un monitor de afișare prin cablu HDMI, deoarece nu vom putea obține ieșirea video prin SSH.
De asemenea, nu voi explica cum funcționează exact OpenCV, dacă sunteți interesat să învățați procesarea imaginilor, consultați aceste elemente de bază OpenCV și tutoriale avansate de procesare a imaginilor. Puteți afla, de asemenea, despre contururi, Blob Detection etc. în acest tutorial de segmentare a imaginilor.
Cum funcționează recunoașterea feței cu OpenCV
Înainte de a începe, este important să înțelegem că detectarea feței și recunoașterea feței sunt două lucruri diferite. În detectarea feței este detectată doar fața unei persoane, software-ul nu va avea idee cine este acea persoană. În Recunoașterea feței, software-ul nu numai că va detecta fața, ci va recunoaște și persoana. Acum, ar trebui să fie clar că trebuie să efectuăm detectarea feței înainte de a efectua recunoașterea feței. Nu mi-ar fi posibil să explic cum OpenCV detectează exact o față sau orice alt obiect în acest sens. Deci, dacă sunteți curioși să știți că puteți urma acest tutorial de detectare a obiectelor.
Un flux video de pe o cameră web nu este altceva decât o lungă secvență de imagini statice care se actualizează una după alta. Și fiecare dintre aceste imagini este doar o colecție de pixeli cu valori diferite, reunite în poziția sa respectivă. Deci, cum poate un program să detecteze o față din acești pixeli și să recunoască în continuare persoana din ea? Există o mulțime de algoritmi în spatele ei și încercarea de a le explica depășește scopul acestui articol, dar, deoarece utilizăm biblioteca OpenCV, este foarte simplu să efectuăm recunoașterea feței fără a intra mai adânc în concepte
Detectarea feței folosind Clasificatoare Cascade în OpenCV
Doar dacă suntem capabili să detectăm o față, vom putea să o recunoaștem sau să o amintim. Pentru a detecta un obiect precum fața OpenCV folosește ceva numit Clasificatori. Acești clasificatori sunt un set de date pre-instruit (fișier XML) care poate fi utilizat pentru a detecta un anumit obiect în cazul nostru o față. Puteți afla mai multe despre clasificatoarele de detectare a feței aici. În afară de detectarea feței, clasificatoarele pot detecta alte obiecte precum nasul, ochii, plăcuța de înmatriculare a vehiculului, zâmbetul etc. Lista clasificatoarelor de cazuri poate fi descărcată din fișierul ZIP de mai jos.
Clasificatoare pentru detectarea obiectelor în Python
Alternativ, OpenCV vă permite, de asemenea, să creați propriul dvs. clasificator, care poate fi utilizat pentru a detecta orice alt obiect dintr-o imagine, dresându-vă clasificatorul în cascadă. În acest tutorial vom folosi un clasificator numit „haarcascade_frontalface_default.xml” care va detecta fața din poziția frontală. Vom vedea