• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Face Detection folosind Skin Detection si Template Matching

0
  • Publicat de Andrei Avădănei
  • în C#
  • — 28 iun., 2009 at 1:45 pm

In urmatoarele randuri voi prezenta o implementare a unui algoritm de Face Detection folosind o tehnica denumita stiințific Skin Detection pentru a putea detecta pielea din imaginile digitale si imaginileTemplate Matching pentru a separa restul partilor corpului de fetele umane.

Cred ca mai intai trebuie sa lamurim cateva lucruri :

Ce inseamna Face Detection?
Face Detection (detectarea faciala) este o tehnologie bazata pe computere ce determina puncte pozitia si marimea fetelor umane din poze digitale alese arbitrar.Aceasta tehnologie detecteaza practic doar fetele umane, restul partilor corpului (mainile,gatul etc) fiind ignorate.

Ce este Skin Detection?
Skin detection(detectarea pielii) este o tehnologie bazata pe computere ce incearca sa determine daca pixelii unei imagini digitale pot fi sau nu urme ale pielii umane in imaginea respectiva.

Ce este template Matching ?
Template matching este o tehnica in procesarea digitala a imaginilor ce consta in detectarea portiunilor din imagine ce sunt asemanatoare cu o imagine sablon.Poate fi folosita ca testarea calitatii sau ca o metoda de a determina marginile in imaginile digitale.

Dar,cum pot implementa si eu algoritmul?
Este destul de simplu, ai nevoie de cele 2 clase scrise in C# de mai jos si cateva linii de cod scrise de tine si GATA.
Skin Detection Class
Face Detection Class

Dar nu inteleg cum functioneaza.
In acest caz citeste tot ce scrie mai jos.

Pentru inceput, avem nevoie de o imagine digitala ce contine fete umane,un sablon de tip binar si o valoare prag(threshold).
Pentru exemplu nostru voi folosi :

Imaginea Exemplu

Imaginea Exemplu

templateimageeq2
Valoarea prag : 60

Fisierul SkinDetection este o clasa ce proceseaza o imagine data si returneaza o noua imagine in format binar(formata doar din alb si negru,unde alb reprezinta punctele din imagine ce sunt considerate piele).Aceasta imagine va fi mai usor de procesat de interpretorul nostru.Dupa multe ore de munca am reusit sa combin 3 functii principale(IsSkinRGB_L, IsSkinRGB_G, IsSkinHSV) pentru a returna un exemplu pozitiv de eficienta maxima.Pe scurt fiecare functie are un interval in valorile RGB in care un pixel este considerat sau nu culoarea pielii umane.

Rezutatul dupa procesarea imaginii cu clasa Skin Detection :
1.Modul normal

Modul normal

Modul normal

2.Modul binar

Modul binar

Modul Binar

Ce urmeaza?
Este momentul intrarii in actiune a clasei Face Detection.
Ce face clasa Face Detection ?
Nu este cine stie ce, noua imagine creata de clasa Skin Detection este preluata de functia principala (Getface).Dupa asta, o functie interna face o normalizare a punctelor albe(in zonele unde pixelii de culoare alba depasesc numarul celor de culoare neagra,toti pixelii devin de culoare alba).Dupa aceasta operatie, extragem diferite sub-imagini la marimi diferite si determinam daca imaginea extrasa se potriveste cu sablonul folosit intr-un procent minim de 60% in cazul nostru.Aceasta operatie este facuta de o functie ce verifica fiecare pixel din imaginea extrasa cu fiecare pixel din sablon la pozitia respectiva.Functia returneaza procentul de asemanare a imaginii.
Daca depaseste pragul limita este considerata fata umana,iar in caz contrar nu.

Implementare :
Avem nevoie de 3 picturebox`uri ce vor fi folosite astfel :

-> pictureBox1 va fi imaginea in care vom cauta fetele umane
-> pictureBox2 va fi sablonul
-> pictureBox3 va fi noua imagine cu rezultatul gasit

Codul sursa pentru implementare :

Bitmap bmp = new Bitmap(pictureBox1.Image);
Bitmap bmp2 = new Bitmap(pictureBox2.Image);
pictureBox3.Image = FaceDetection.GetFaces(bmp,bmp2);

Rezultatul final :

Rezultatul final

Rezultatul final

Cam asta a fost tot.Sper sa va fi placut articolul si nu ezitati sa incercati cautarea unor solutii mai bune.

Etichete: Detectarea facialaFace DetectionImage ProcessingImaginePattern Matchingprocesarea imaginilorSkin Detection

— Andrei Avădănei a scris 1246 articole

Andrei scrie pe worldit.info din vara lui 2011. Este fondatorul Asociatiei Centrul de Cercetare in Securitate Informatica din Romania - CCSIR si coordoneaza DefCamp, cea mai importanta conferinta de securitate informatica & hacking din Europa Centrala si de Est. Andrei ofera in cadrul Bit Sentinel servicii de securitate informatica, penetration testing, security management, recuperarea de pe urma unui atac cibernetic, training-uri si workshop-uri.

  • Articolul anterior Deficienta in Google Desktop Search
  • Articolul următor Studiu asupra algoritmilor de sortare

  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • martie 2021
    L Ma Mi J V S D
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • C#
  • Face Detection folosind Skin Detection si Template Matching
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons