Aplicație MATLAB în recunoașterea facială: cod, descriere și sintaxă

Publicat: 2020-06-23

De fiecare dată când vă deblocați telefonul mobil cu fața sau treceți prin sistemul de supraveghere high-tech de birou, o tehnologie elaborată de recunoaștere facială funcționează în fundal. Deci, ce este recunoașterea feței și cum puteți efectua recunoașterea feței folosind MATLAB ?

Recunoașterea facială este procesul de identificare a fețelor umane prin tehnologie. Sistemul de recunoaștere facială folosește viziunea computerizată și tehnici de învățare automată pentru a modela și clasifica trăsăturile faciale extrase din imagini și videoclipuri. Algoritmii pentru identificarea feței extrag și hărțesc trăsăturile faciale și le compară cu o bază de date de fețe cunoscute pentru a găsi cea mai bună potrivire.

Sursă

Cuprins

MATLAB în recunoașterea facială

Este posibil să obțineți recunoașterea feței folosind codul MATLAB. Clasa și funcția încorporate în MATLAB pot fi utilizate pentru a detecta fața, ochii, nasul și gura. Viziunea obiectului.CascadeObjectDetector Sistemul cutiei de instrumente a sistemului de viziune computerizată recunoaște obiectele pe baza algoritmului de detectare a feței Viola-Jones.

Descrierea detectorului de obiecte MATLAB

Vision.CascadeObjectDetector folosește algoritmul Viola-Jones pentru identificarea fețelor, a ochilor, a gurii, a nasului sau a părții superioare a corpului. Un clasificator personalizat poate fi antrenat utilizând Image Labeler de la MATLAB și utilizat împreună cu obiectul System. Deci, cum sunt detectate trăsăturile faciale sau partea superioară a corpului într-o imagine? Iată pașii:

  1. Primul pas implică crearea obiectului viziune.CascadeObjectDetector și setarea proprietăților acestuia.
  2. În acest pas, obiectul este invocat cu argumente (ca și cum s-ar comporta ca o funcție).

Citiți: 15 idei și subiecte interesante de proiecte MATLAB pentru începători

Sintaxa pentru crearea detectorului de obiecte

Sintaxa utilizată pentru crearea Detectorului de obiecte este următoarea:

  • detector = vision.CascadeObjectDetector
  • detector = viziune.CascadeObjectDetector(mode1)
  • Detector = viziune.CascadeObjectDetector(Nume,Valoare)
  • detector = vision.CascadeObjectDetector(XMLFILE)

Descrierea sintaxei

  • detector = vision.CascadeObjectDetector: Această sintaxă este utilizată pentru crearea unui detector care detectează obiecte folosind algoritmul Viola-Jones.
  • detector = vision.CascadeObjectDetector(mode1): Această sintaxă este utilizată pentru crearea unui detector care este configurat pentru detectarea obiectelor definite de vectorul de intrare – mode1.
  • detector = vision.CascadeObjectDetector(Name,Value): Această sintaxă este utilizată pentru setarea proprietăților utilizând una sau mai multe perechi nume-valoare, unde fiecare nume de proprietate este inclus între ghilimele. De exemplu: detector = vision.CascadeObjectDetector('ClassificationModel','UpperBody')

Consultați: Idei de proiecte de învățare automată

Proprietăți

Dacă nu se specifică altfel, caracteristicile detectorului de obiecte în cascadă nu sunt reglabile, ceea ce înseamnă că după apelarea obiectului, valorile acestora nu pot fi modificate. Obiectele sunt blocate atunci când sunt invocate, iar deblocarea lor se face prin funcția „eliberare”.

Pe de altă parte, o proprietate reglabilă ar însemna că valoarea acesteia poate fi modificată în orice moment. Deci, să aruncăm o privire la unele dintre caracteristicile înainte de a înțelege recunoașterea feței folosind codurile MATLAB.

  • ClassificationModel: Definit ca un vector de caractere, această proprietate este responsabilă pentru controlul tipului de obiect de detectat. Configurația implicită a detectorului detectează fețe.
  • Dimensiune min: Mărimea celui mai mic obiect de recunoscut este indicată ca un vector cu două elemente [înălțime lățime]. Cu excepția cazului în care este specificată o valoare a proprietății, detectorul o setează la dimensiunea imaginii utilizate pentru antrenarea modelului de clasificare.
  • Dimensiune maximă: dimensiunea celui mai mic obiect de recunoscut este desemnată ca un vector cu două elemente [înălțime lățime] . Dacă nu este specificată o valoare a proprietății, detectorul o setează la dimensiunea (I).
  • ScaleFactor: Are o valoare specificată mai mare de 1,0001. Această proprietate este pentru scalarea incrementală a rezoluției de detectare între MinSize și MaxSize.
  • MergeThreshold: Are o valoare întreagă specificată, egală cu 4. În cazul în care există mai multe detectări în jurul unui obiect țintă, pragul definește criteriile finale de detectare.
  • UserROI: specificată ca false, această proprietate poate fi setată la true pentru detectarea obiectelor dintr-o regiune dreptunghiulară de interes din imaginea de intrare.

Sintaxă pentru utilizarea detectorului de obiecte

  • bbox = detector (I)
  • bbox = detector(I,roi)

Descrierea sintaxei

  • bbox = detector(I) returnează bbox, o matrice M -by-4, care definește „ M ” casete de delimitare care conțin obiectele detectate.
  • bbox = detector(I,roi) este folosit pentru detectarea obiectelor din regiunea dreptunghiulară de interes, specificată de roi.

Argumente de intrare

  • I — Imagine de intrare: este specificată ca culoare adevărată sau în tonuri de gri (RGB).
  • model — Model de clasificare: este specificat ca un vector de caractere și descrie tipul de obiect care trebuie detectat.
  • XMLFILE — Model de clasificare personalizat: specificat ca fișier XML, acesta poate fi creat folosind funcționalitatea de antrenament OpenCV sau funcția trainCascadeObjectDetector.
  • roi — Regiunea dreptunghiulară de interes: Un vector cu patru elemente [ x y lățime înălțime ] este folosit pentru a specifica acest argument de intrare.

Argumente de ieșire

bbox — Detectări: Detecțiile sunt returnate ca o matrice de elemente M -by-4, fiecare rând conține vectorul cu patru elemente [ x y lățime înălțime ].

Funcții ale obiectelor comune tuturor obiectelor de sistem

  • pas: Pentru rularea algoritmului System Object
  • eliberare: pentru eliberarea resurselor sistemului
  • resetare: Pentru resetarea stărilor interne ale obiectului sistem.

Cod MATLAB pentru recunoașterea feței

În această secțiune, vom vedea un exemplu de recunoaștere a feței folosind codul MATLAB.

Detectare facială

Sursă

Sursă

Pasul (Detector, I) va returna valoarea casetei de delimitare care contine [x,y,Height,Width] a obiectelor aflate in detectie:

Sursă

Detectarea nasului

Sursă

Sursă

Descriere:

  • Trecerea argumentului „Nas” denotă că obiectul de interes este nasul.
  • Sintaxa implicită de detectare a nasului este vision.CascadeObjectDetector('Nose')
  • Valorile implicite ale parametrilor transmise la vision.CascadeObjectDetector pot fi modificate pe baza imaginii de intrare.
  • Valoarea „Merge Threshold” poate fi suprascrisă pentru a evita detectările multiple în jurul obiectului țintă (ca în imaginea de mai sus).

Detectarea ochilor

Sursă

Sursă

Detectarea gurii

Sursă

Sursă

Citiți și: bucla while în MATLAB: tot ce trebuie să știți

Încheierea

Deși tehnologia de recunoaștere a feței este benefică pentru verificarea identității personale, ridică probleme de confidențialitate. Deoarece tehnologia folosește amprenta unei persoane, este adesea privită ca o încălcare a vieții private, a siguranței și a securității. Recunoașterea feței folosind MATLAB poate fi folosită în mai multe cazuri în care securitatea este de maximă preocupare. De la aeroporturi și birouri până la smartphone-uri, recunoașterea facială a devenit o componentă integrală a multor sisteme și organizații.

Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Diploma PG de la IIIT-B și upGrad în Învățare automată și AI, care este concepută pentru profesioniști care lucrează și oferă peste 450 de ore de pregătire riguroasă, peste 30 de studii de caz și sarcini, IIIT- B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Ce este recunoașterea feței?

Recunoașterea feței poate fi utilizată pentru a proteja împotriva furtului de identitate, precum și pentru a identifica persoanele după nume. Cu toate acestea, având în vedere că recunoașterea feței este relativ nouă și este în continuă dezvoltare, este important să înțelegeți elementele de bază ale recunoașterii feței pentru a o utiliza eficient. Recunoașterea feței se referă la procesul de a determina dacă o imagine a feței aparține unei persoane cunoscute. Problema recunoașterii feței poate fi împărțită în două sarcini: 1) Face Detection – localizarea feței în imagine, 2) Face Recognition – identificarea persoanei a cărei față este.

Ce este Matlab?

Matlab este un limbaj de programare pentru calcul numeric. Practic, este un limbaj de programare matricial. Este folosit foarte mult în calculele științifice și de inginerie. Spre deosebire de celelalte limbaje de programare, MATLAB a fost conceput pentru a fi un limbaj de matrice, unul care este potrivit pentru calculul pe matrice. Matricele sunt folosite într-o mulțime de ecuații diferite, în special în calculele științifice și de inginerie. Matlab este un limbaj de programare de nivel înalt care vine cu un număr mare de funcții. Este folosit pentru a rezolva probleme matematice, a analiza date și a crea grafice.

Ce este Viola Jones în Matlab?

Algoritmul Viola Jones este utilizat pentru detectarea feței și recunoașterea expresiei faciale. Algoritmul Viola Jones se bazează pe Histograms of Oriented Gradients (HOG), care a fost introdus pentru prima dată de Paul Viola și Michael Jones în 2001. Este folosit în viziunea computerizată, învățarea automată și procesarea imaginilor. Algoritmul Viola Jones oferă un sistem complet de detectare a obiectelor și poate fi utilizat în detectarea pietonilor, detectarea obiectelor sau detectarea umană. Algoritmul Viola Jones constă dintr-un pas de extragere a caracteristicilor, un pas de grupare și un pas de clasificare a obiectelor.