- Requisits previs
- Com funciona el reconeixement facial amb OpenCV
- Detecció de rostres mitjançant classificadors Cascade a OpenCV
El reconeixement facial és cada vegada més popular i la majoria de nosaltres ja l’utilitzem sense adonar-nos-en. Ja sigui un simple suggeriment d’etiquetes de Facebook o un filtre Snapchat o una vigilància avançada de seguretat de l’aeroport, el reconeixement facial ja hi ha fet màgia. La Xina ha començat a utilitzar el reconeixement facial a les escoles per controlar l’assistència i els comportaments dels estudiants. Les botigues minoristes han començat a utilitzar el reconeixement facial per classificar els seus clients i aïllar les persones amb antecedents de frau. Amb molts més canvis en marxa, no hi ha dubte que aquesta tecnologia es veuria a tot arreu en un futur proper.
En aquest tutorial aprendrem com podem construir el nostre propi sistema de reconeixement facial mitjançant la biblioteca OpenCV de Raspberry Pi. L’avantatge d’instal·lar aquest sistema al Raspberry Pi portàtil és que el podeu instal·lar en qualsevol lloc per treballar-lo com a sistema de vigilància. Com tots els sistemes de reconeixement facial, el tutorial inclourà dos scripts python, un és un programa Trainer que analitzarà un conjunt de fotos d’una persona en concret i crearà un conjunt de dades (fitxer YML). El segon programa és el programa Recognizerque detecta una cara i després utilitza aquest fitxer YML per reconèixer la cara i esmentar el nom de la persona. Tots dos programes que comentarem aquí són per a Raspberry Pi (Linux), però també funcionaran en equips Windows amb canvis molt lleus. Ja tenim una sèrie de tutorials per a principiants per començar a utilitzar OpenCV; podeu consultar tots els tutorials d’OpenCV aquí.
Requisits previs
Com es va dir anteriorment, utilitzarem la biblioteca OpenCV per detectar i reconèixer les cares. Per tant, assegureu-vos d’instal·lar OpenCV Library a Pi abans de continuar amb aquest tutorial. Enceneu també el vostre Pi amb un adaptador 2A i connecteu-lo a un monitor de pantalla mitjançant un cable HDMI, ja que no podrem obtenir la sortida de vídeo mitjançant SSH.
Tampoc no explicaré com funciona exactament OpenCV, si esteu interessats en aprendre el processament d’imatges, consulteu aquests conceptes bàsics d’OpenCV i tutorials avançats de processament d’imatges. També podeu obtenir informació sobre els contorns, la detecció de blobs, etc. en aquest tutorial de segmentació d’imatges.
Com funciona el reconeixement facial amb OpenCV
Abans de començar, és important entendre que la detecció de cares i el reconeixement de cares són dues coses diferents. A la detecció de cares només es detecta la cara d'una persona, el programari no tindrà cap idea de qui sigui aquesta persona. A Face Recognition, el programari no només detectarà la cara, sinó que també reconeixerà la persona. Ara, hauria de quedar clar que hem de realitzar la detecció de cares abans de realitzar el reconeixement de cares. No seria possible que expliqués com OpenCV detecta exactament una cara o qualsevol altre objecte per aquest tema. Per tant, si teniu curiositat per saber que podeu seguir aquest tutorial sobre Detecció d’objectes.
Un canal de vídeo des d’una càmera web no és més que una llarga seqüència d’imatges fixes que s’actualitzen una darrere l’altra. I cadascuna d’aquestes imatges és només una col·lecció de píxels de diferents valors reunits en la seva posició respectiva. Llavors, com pot un programa detectar una cara d’aquests píxels i reconèixer encara més la persona que hi figura? Hi ha molts algorismes al darrere i intentar explicar-los està fora de l’abast d’aquest article, però com que estem utilitzant la biblioteca OpenCV és molt senzill realitzar reconeixements facials sense aprofundir en els conceptes.
Detecció de rostres mitjançant classificadors Cascade a OpenCV
Només si som capaços de detectar una cara, podrem reconèixer-la o recordar-la. Per detectar un objecte com ara la cara OpenCV utilitza una cosa anomenada classificadors. Aquests classificadors són un conjunt de dades prèviament entrenat (fitxer XML) que es pot utilitzar per detectar un objecte concret en el nostre cas una cara. Podeu obtenir més informació sobre els classificadors de detecció de cares aquí. A part de detectar la cara, els classificadors poden detectar altres objectes com el nas, els ulls, la matrícula del vehicle, el somriure, etc. La llista de classificadors de casos es pot descarregar des del fitxer ZIP següent.
Classificadors per a la detecció d'objectes a Python
Alternativament, OpenCV també us permet crear el vostre propi classificador que es pot utilitzar per detectar qualsevol altre objecte en una imatge mitjançant la formació del vostre classificador en cascada. En aquest tutorial utilitzarem un classificador anomenat “haarcascade_frontalface_default.xml” que detectarà la cara des de la posició frontal. Veurem
