Sistemul DE Recunoastere A Fetelor In Baza Indicilor DE Moment Si Corelatiei

SISTEMUL DE RECUNOAȘTERE A FEȚELOR ÎN BAZA INDICILOR DE MOMENT ȘI CORELAȚIEI

CUPRINS

SARCINA PENTRU TEZĂ

ADNOTĂRI

LISTA ABREVIERILOR

INTRODUCERE

STUDIU CU PRIVIRE LA POSIBILITATEA DE RECUNOAȘTERE A FEȚEI

Noțiuni generale

Istoria detectării feței automate

Teoria fundamentală

Tehnologie Biometrică

Algoritmi pentru recunoașterea feței

Algoritmul Viola-Jones

Algoritmul Analiza Discriminatorie Liniară

Algoritmul Analiza pe Componente Principale

Algoritmul Krawtchouk Moment

Analiza comparativă a algoritmilor

Concluzii la capitolul 1

PROIECTAREA SISTEMULUI

Proiectarea algoritmilor pentru recunoașterea feței

Algoritmul Principal Component Analysis

Algoritmul Invariant Moments

Algoritmul Correlation

Structura sistemului informațional

Cerințe

Arhitectura software

Structura modulului client

Proiectarea bazei de date

Etapele proiectării

Arhitectura bazei de date

Concluzii la capitolul 2

IMPLEMENTAREA SISTEMULUI

Ghidul programatorului

Arhitectura aplicației

Clasele de bază

Componentele de bază

Ghid utilizator

Testarea produselor finale

Recunoașterea și detectarea feței mascate

Recunoașterea și detectarea feței prin diferite niveluri de iluminare

Înregistrarea și afișarea din baza de date

Concluzii la capitolul 3

CONCLUZII GENERALE ȘI RECOMANDĂRI

BIBLIOGRAFIE

ANEXĂ 1. Interfață grafică

ANEXĂ 2. Codul sursă

LISTA ABREVIERILOR

ODBC Open Database Connectivity

DBMS Database management systems

SQL Structured Query Language

DB DataBase

API Application Programming Interfata

GUI Graphical User Interfata

C# see sharp

MS Microsoft

PCA Principal component analysis

IMF Algoritmil Invariant Moment

PIN personal identification number

ADN acidul dezoxiribonucleic

LDA Latent Dirichlet Allocation

DFT Transformata Fourier discretă

ACP Analiza pe Componente Principale

FFT Fast Fourier Transform

IFFT Invers Fast Fourier Transform

INTRODUCERE

Oamenii recunosc fața unei persoane fără prea mult efort. Eu propun ca tot atît de ușor să fie recunoscut fețele oamenilor în domeniul Tehnologii Informaționale. Problema de recunoaștere a feței poate fi declarată ca „Identificarea unei persoane în timp real utilizînd camera web”.

În acest studiu, o să cercetez diferiți algoritmi și o să elaborez un sistem de detectare și recunoaștere a feței unei persoane. Cercetarea de față are ca scop înregistrarea orei de sosire și orei de plecare a persoanelor. Informațiile primite în acest fel sunt prelucrate și înregistrate într-o bază de date.

Biometria este știința de a recunoaște și a autentifica persoane, folosind elemente fiziologice. Biometria devine din ce în ce mai importantă în țară și în securitatea mondială. Recunoașterea feței prin intermediul calculatorului promite a fi un instrument puternic. Recunoașterea automată a feței în timp real este o problemă interesantă și presupune a fi o aplicație de a distinge persoanele prin caracteristicile lor faciale. Algoritmii de programare pentru identificarea feței sunt împărțiți în detectare, recunoaștere și înțelegerea expresiei.

Pentru definirea și măsurarea performanțelor trebuie avute în vedere următoarele componente ale unui sistem de recunoaștere a feței:

toți membrii populației posedă caracteristicile pe care sistemul le identifică;

fiecare față a unei persoane diferă de fețele tuturor celorlalte persoane din populația existente;

fața fiecării persoane nu variază semnificativ în funcție de condițiile particulare în care este obținută;

sistemul rezistă tentativelor de fraudare a fețelor.

Arhitectura unui sistem de detectare și reunoaștere a fețelor include următoarele componente:

o camera video sau foto pentru colectarea informațiilor primare și conversia acestora în format digital;

un algoritm de procesare a imaginilor care va detecta fața;

o bază de date în care se păstrează „toate fețele detectate;

un algoritm de comparație a feței detectate unei persoane necunoscute cu cele stocate în baza de date;

o acțiune de decizie, care utilizează rezultatul comparației anterioare în vederea efectuării unei acțiuni.

Detectarea și recunoașterea a fețelor de catre calculator și prelucrarea or în imagini digitale se utilizează tot mai des în vieții noastre de zi cu zi. De asemenea, detecția automată a fețelor reprezintă astăzi o componență fundamentală ca prim pas în aplicațiile din ce în ce mai diverse și răspîndite de recunoaștere a fețelor, precum și în cele vizînd noi modalități evoluate de interacțiune om-calculator.

În comparație cu modalitățile tipice de identificare ca de exemplu: legitimațiile, cheile, parolele sau codurile PIN (Personal Identification Number), informațiile biometrice nu pot fi pierdute, furate sau uitate. Un aspect important al recunoașterii feței este natura de interes interdisciplinar, cum ar fi: recunoașterea în calculator și recunoașterea formelor biometrice și de securitate; prelucrarea multimedia; psihologie și neuroștiințe. Acest domeniu pare a fi un sistem de cercetare notabil pentru necesitatea și îmbogățirea de interacțiune între oamenii de știință, programatori și psihologi.

Recunoașterea automată a fețelor umane se întinde pe o varietate de tehnologii. În acest proiect, un ansamblu de detectare a feței este implementat și integrat într-un sistem de control acces. Sistemul detectează fața, dimensiunea și amploarea chipurilor umane în imagini și secvențe video.

Adesea, oamenii utilizează portretele pentru a deosebi personalitatea fiecărui individ. În prezent, procesul de recunoaștere s-a maturizat într-o știință a reprezentărilor matematice sofisticate și procese de potrivire. În unele cazuri pot fi folosite metode geometrice. Cred că în următoarele decenii identificarea unei persoane va fi posibilă atât prin metoda clasică, cât și prin folosirea camerei web. Progresele majore din ultimii 10-15 ani au dezvoltat tehnologia de recunoaștere a feței și au plasat-o în centrul atenției. Astfel, recunoașterea feței poate fi utilizată pentru verificarea și identificarea unui om.

În această lucrare de licență vreau să analizez diferite metode de detectare și recunoaștere a feței. Voi începe studiul cu primul capitol, unde voi prezenta teorii despre istoricul, actualitatea și un posibil viitor al programei inovației alese. Îmi propun să implementez mai mulți algoritmi: 3 algoritmi despre Image Moments Features (IMF), algoritmul Principal Component Analyses (PCA) și algoritmul Correlation, care vor fi cercetați în capitolul 2. De asemenea, în acest capitol o să construiesc grafice, diverse formule și tabele. În capitolul 3, voi caracteriza detaliat aplicația pentru recunoașterea unei fețe. Această aplicație va fi scrisă în limbaj de programare C#, utilizînd mediul de dezvoltare Microsoft Visual Studio 2010. Programul dat oferă simultan posibilitatea de identificare a chipului unei persoane aflate în baza de date de pe server. Noua aplicație va fata cerere la o bază de date pentru a putea identifica o persoană. Descrierea detaliată a acestei aplicații va fi prezentată tot în capitolul 3.

Prin urmare, plecând de la teoriile cercetate la începutul acestei lucrări voi ajunge la programarea unei aplicații noi, ce presupune atât detectarea feței, cât și recunoașterea propriu zisă a unei persoane. Această aplicație va aduce utilizatorilor un prilej nou de îmbunătățire a sistemului de gestionare și identificare. Algoritmii folosiți în acest program conferă aplicației noutate și stabilitate. Astfel, tehnologia modernă va contribui eficient în recunoașterea feței unei persoane din baza de date ce utilizează acest program.

STUDIU CU PRIVIRE LA POSIBILITATEA DE RECUNOAȘTERE A FEȚEI

Noțiuni generale

Fața joacă un rol esențial în viața de zi cu zi, în comunicare și chiar pentru a ne arăta emoțiile [12]. Oamenii recunosc fețele destul de simplu. Omenirea recunoaște mii de figuri învățate de-a lungul timpului și de a identifica fețele dintr-o singură privire. Această capacitate este destul de complicată, în ciuda schimbărilor mari în stimulul vizual datorită condițiilor de vizualizare, îmbătrînirii, a expresiei faciale și altor factori naurali precum prezența ochelarilor, a bărbiei sau schimbări de coafură. Ca urmare, acest subiect a fost în centrul atenției unor grupuri numeroase de cercetători din întreaga lume în ultimele două decenii.

În câmpul tehnologiei, recunoașterea feței este o sarcină destul de grea pentru calculator, datorită surselor numeroase de schimbări în condiții reale; cum ar fi: orientarea feței în raport cu aparatul de fotografiat sau camera de filmat, nivelul de iluminare, expresia feței, timpul scurs între momentele prelevării unor imagini distincte, precum și aspectele demografice ca vîrsta, genul, ș.a. [31]. Asigurarea invarianței în raport cu transformări elementare precum translația, rotația sau schimbarea rezoluției reprezintă de asemenea o cerință obligatorie. Schema-bloc a unui sistem generic de recunoaștere a fețelor se prezintă în Fig. 1.1, mai întîi detectăm și extragem trăsăturile specifice fiecărei fețe și a unui modul de clasificare, a căror proiectare este de regulă corelată, și introducerea într-o bază de date pentru păstrare.

Fig. 1.1. Schema-bloc a unui sistem de detectare și recunoaștere a fețelor

Fețele umane ocupă un mic spațiu în imaginile digitale. Fiecare față are trăsăturile ei specifice, care nu se repetă și nu se regăsesc la o altă persoană [31]. Un sistem de recunoaștere facială se bazează pe imagine statică a feței unei persoane, fie fotografie sau capturarea imaginii cu ajutorul camerei video. Imaginea reprezintă un set de pixeli ordonați după un anumit model. Pixelul reprezintă cea mai mică parte a unei imagini digitale. Orice sistem de detectare și recunoaștere a feței, detectează fața după o mulțime de pixeli alăturați. Principala funcție în procesul de recunoaștere facială este localizarea feței într-o imagine digitală. Pentru a putea fata comparație între imagini și a recunoaște fața, înainte de procesarea propriu-zisă a imaginii este necesară crearea unei baze de date, în care să putem stoca imaginile. Pe viitor această tehnică ar putea fi folosită ca o măsură de securitate pentru verificarea identității unei persoane.

Istoria detectării feței automate

Recunoașterea automată a feței este un ansamblu relativ nou [7]. Primul sistem semi-automat pentru recunoașterea feței a fost dezvoltat în anii 1960. Acest sistem localiza caracteristici (cum ar fi ochi, urechi, nas, gură și altele) pe fotografii, calcula distanțele dintr-un punct comun de referință, care au fost apoi comparate cu datele stocate într-o bază de date. În anii 1970, Goldstein, Harmon, și Lesk  au folosit mai multe caracteristici specifice feței, cum ar fi culoarea părului și grosimea buzelor pentru a realiza un sistem automatizat de recunoașterea feței. Cea mai mare problemă pentru aceste două soluții a fost că măsurările și locațiile au fost calculate manual.

În 1988, Kirby și Sirovich realizează o tehnolgie nouă, Principal Component Analysis, este o tehnică standard algebră liniară pentru detectare și recunoașterea feței [20]. În 1991, Turk și Pentland a descoperit o nouă metodă, care poate fi utilizată pentru a detecta fața în imagine [22]; o descoperire care a permis realizarea sistemelor automate pentru recunoașterea feței în timp real. Această tehnologie a dat un nou impuls semnificativ pentru a crea în continuare sisteme automate pentru detectarea și recunoașterea feței [22]. Această tehnologie a căpătat o atenție deosebită publicului la începutul anilor 2001 și presupunea capturarea imaginii de la camere de supraveghere și compararea lor cu imaginile care se află într-o bază de date digitală. Această demonstrație a inițiat o analiză necesară de indicare în ce domenii putem utiliza tehnologia , nas, gură și altele) pe fotografii, calcula distanțele dintr-un punct comun de referință, care au fost apoi comparate cu datele stocate într-o bază de date. În anii 1970, Goldstein, Harmon, și Lesk  au folosit mai multe caracteristici specifice feței, cum ar fi culoarea părului și grosimea buzelor pentru a realiza un sistem automatizat de recunoașterea feței. Cea mai mare problemă pentru aceste două soluții a fost că măsurările și locațiile au fost calculate manual.

În 1988, Kirby și Sirovich realizează o tehnolgie nouă, Principal Component Analysis, este o tehnică standard algebră liniară pentru detectare și recunoașterea feței [20]. În 1991, Turk și Pentland a descoperit o nouă metodă, care poate fi utilizată pentru a detecta fața în imagine [22]; o descoperire care a permis realizarea sistemelor automate pentru recunoașterea feței în timp real. Această tehnologie a dat un nou impuls semnificativ pentru a crea în continuare sisteme automate pentru detectarea și recunoașterea feței [22]. Această tehnologie a căpătat o atenție deosebită publicului la începutul anilor 2001 și presupunea capturarea imaginii de la camere de supraveghere și compararea lor cu imaginile care se află într-o bază de date digitală. Această demonstrație a inițiat o analiză necesară de indicare în ce domenii putem utiliza tehnologia de recunoaștere a feței. Astăzi, tehnologia de recunoaștere a feței este folosită pentru a combate fraudă, de a identifica teroriștii, copiii dispăruți, și de a preveni fraudă de identitate.

În 2007 a fost dezvoltată o nouă tehnologie sub numele Polar Rose [29]. Această tehnologie poate detecta și recunoaște fețele în doar 1,5 secunde. Compania Identix din Statele Unite ale Americii a dezvoltat programa Fatalt. Programa dată detectează fața dintr-o imagine și compară cu fețele stocate în baza de date. Software-ul detectează mai multe caracteristici pe fața umană: distanța dintre ochi, lățimea nasului, forma buzelor, lungimea feței și alte caracteristici ale feței. Soft-ul de recunoaștere facială se bazează pe o imagine 2D, cu o persoană îndreptată direct spre cameră. În zilele noastre, aplicația FataIt, poate compara o imagine 3D cu o imagine 2D prin alegerea a 3 puncte specifice de pe imaginea 3D și transformarea acesteia într-o imagine 2D folosind un algoritm special, care poate fi scanat prin aproape toate bazele de date. Rezultatele au indicat că noii algoritmi sunt de 10 ori mai preciși decât algoritmii de recunoaștere a feței din anii 2002 și de 100 de ori mai precise decât cele din anii 1995. Unii dintre algoritmi au fost capabili să depășească viteza omului de a recunoaște fața și ar putea identifica în mod unic gemeni identici [13].

Teoria fundamentală

Orice program de calculator care detează și recunoaște fața este compus din următoarele etape:

Obținerea imaginii cu ajutorul unei camere foto-video;

Algoritm pentru detectarea feței;

Algoritm pentru extragerea trăsăturile specifice fețelor;

Algoritm pentru compararea feței extrase cu fețele păstrate în bază de date;

Afișarea informației despre o persoană.

Imaginea se obține de obicei cu o cameră foto sau video, Fiecare înregistrare video este compusă din mai multe imagini statice.

Procesul de recunoaștere a feței începe odată cu detectarea feței din imagine, obținută cu ajutorul foto sau video camerei . Fiecare imagine poate conține mai multe fețe [4]. Orice persoană poate foarte ușor să recunoască care este fața unei persoane într-o fotografie, dar calculatorul trebuie să decide care sunt pixelii aparținînd feței și care nu. Sistemul de recunoaștere a feței mai întîi trebuie să normalizeze imaginea, astfel încît să aibă aceleași dimensiuni, rotație, luminozitate cu imaginile care sunt pastrate într-o bază de date. Fiecare imagine normalizată este prelucrate de sistemul informațional pentru a fi recunoascută feța.

Pentru a extrage trăsăturile specifice fețelor avem nevoie de un algoritm matematic, numit algoritm de procesare a imaginii, cu ajutorul caruia va fi salvată imaginea obținută într-o bază de date [4]. Algoritmul matematic nu este altceva decît un algoritm de recunoaștere a feței, care transformă imaginea într-o reprezentare matematică simplificată.

Fig. 1.2. Prezentarea grafică a procesului de prelucrare și înregistrare a imaginii într-o bază de date

Algoritmii de detectare și recunoaștere a feței se bazează pe geometrie și intensității surselor de lumină [4]. Primii algoritmi folosiți în recunoașterea facială se bazau doar pe geometrie, identificînd numai relațiile dintre trăsăturile principale, adică poziționarea ochilor, nasului, și a gurii. Această metodă era dependentă de detectarea trăsăturilor care putea fi foarte dificilă din cauza variațiilor de luminozitate prezente în imagine și în special a umbrelor. Unul dintre cei mai buni algoritmi pentru recunoașterea feței este Principal Component Analysis (PCA). Tehnica PCA convertește fiecare imagine bidimensională într-un vector unidimensional și selectează caracteristicile care diferă cel mai mult de restul imaginii.

Următoarea etapă este cea de comparare a feței detectate cu fețele care sunt stocate în baza de date. Sistemul compară trăsăturile specifice ale feței. În ultimul pas se afișează informația despre persoana identificată.

Performanța sistemului de recunoaștere a feței depinde foarte mult de calitatea camerei video și a imaginii. Pentru o precizie mai mare, imaginea trebuie să suprindă subiectul din față, nu profil, trebuie să aibă luminozitate potrivită, ochii să fie deschiși, iar imaginea să nu prezinte umbre. Sistemul este sensibil, chiar și la expresia feței. În literatură au fost descrise o mulțime de algoritmi pentru a detecta și a recunoaște fețele, cu diferite grade de complexitate, constrângeri, performanțe și arii de aplicabilitate.

Tehnologie Biometrică

Biometria se referă la valori legate de caracteristicile umane autentificate biometric [3]. În informatică biometria este folosită ca o formă de control de identificare și de acces. De asemenea, este utilizată pentru a identifica persoanele din grupuri care sunt sub supraveghere. Tehnologia biometrică are o utilizare pe scară tot mai largă în domeniul aplicațiilor de acces, unde acuratețea identificării sau a verificării unui individ este esențială pentru securitate. Succesul implementării depinde de selecția celui mai potrivit sistem de recunoaștere pentru aplicații specifice, realizându-se, astfel, o soluție personalizată în concordanță cu nivelul impus de securitate. Tehnica de acces prin analiza trasăturilor anatomice se numește biometrie. În momentul de față, tehnologiile biometrice au la bază identificatori fiziologici (amprenta digitală, geometria palmelor, forma feței, configurația ADN) și identificatori comportamentali (timbrul vocal, dinamica scrisului, dinamica apăsării tastelor) ce permit recunoașterea absolută a unei persoane. Dezvoltarea și perfecționarea sistemelor de colectare și prelucrare a informației au dus la modernizarea sistemelor de acces. Astfel, în ultimul timp, sistemele de securitate bazate pe tehnologii biometrice se prezintă ca o alternativă viabilă, cu un cost redus, la sistemele bazate pe cartele magnetice, coduri de bare sau parole. Se poate spune că noile sisteme au dus la definirea unei alte clase de securitate, fața superioară care e asigurată de sistemele tradiționale. O persoană se poate identifica prin trei metode:

printr-un obiect pe care-l deține (cheie, cartela);

prin cunoștințe secrete (parole, PIN-uri);

prin trăsături anatomice (ADN, amprente digitale, fața, voce etc.) [3].

Utilizarea biometriei pentru identificarea și autentificarea subiecților umani a început să ofere câteva avantaje unice față de metodele tradiționale. Numai autentificarea biometrică se bazează pe identificarea unei anumite părți a ființei umane. Sistemele bazate pe cartele magnetice, coduri de bare sau chei fizice pot fi pierdute, furate sau multiplicate. Parolele pot fi uitate, sparte sau observate intenționat sau neintenționat de o altă persoană. Uitarea parolelor sau pierderea „smartcardurilor” înseamnă o pierdere de timp prețios pentru administratorii de rețea și utilizatori. Trăsăturile anatomice nu pot fi copiate ușor și nici pierdute. Biometria poate fi integrată în orice aplicație care necesită securitate, accesul controlului, identificarea și verificarea utilizatorilor. Securitatea oferită de biometrie poate fi asistată de chei, parole, coduri PIN, astfel încât validarea accesului depinde de însăși persoana care o cere, nu de ceea ce știe, sau ceea ce are, ci de ceea ce este. De reținut este că resursele securității biometrice se bazează pe persoana care le utilizează, eliminând efectiv riscul care era asociat vechii tehnologii, în același timp, oferind un nivel mult mai înalt de securitate care convine atât utilizatorilor, cât și administratorilor de sistem.

Algoritmi pentru recunoașterea feței

Recunoașterea fețelor poate fi încadrată în contextul mai larg al metodelor de recunoaștere a imaginilor [33]. În această abordare o metodă tipică de recunoaștere are trei etape (Fig. 1.3.):

Transformarea imaginii primare într-o reprezentare inițială (poate fi reprezentată de o preprocesare sau de o transformare matematică, de exemplu calculul valorilor proprii);

Extragerea caracteristicilor cheie (păstrarea primelor componente pentru DCT, de exemplu);

Mecanismul de clasificare (modelare): modele bazate pe clusteri, metrici, rețele neuronale etc.

Astfel, construcția metodei de recunoaștere se bazează pe informații a priorice despre domeniul investigat (în acest caz imaginea feței umane), și corectarea cu informație experimentală, apărută în cursul elaborării metodei. În cazul existenței a mai multor fețe în imagine sistemul lucrează separat pe fiecare din acestea [23].

Pentru a detecta fețe în imagini statice, blocuri la scări diferite și localizate în diverse locuri sunt extrase din imagine, și se calculează probabilitatea de a fi o față, folosind densitatea de probabilitate menționată [1]. Deoarece căutarea unei imagini mari la scări multiple și în locații multiple este un task computațional intens, se încearcă reducerea spațiului de căutare pe baza unei reguli speciale. După găsirea poziției feței, se fata căutarea poziției ochilor, prin căutarea celor doi ochi de asemenea la scări multiple și în locuri diferite. După găsirea ochilor, imaginea este rotită pentru a avea ochii în poziție orizontală, este mascată pentru a exclude fundalul și este decimată pentru reducerea ei la o rezoluție de 128×128 pixeli. Acești pași se numesc normalizarea feței.

După ce imaginea feței este normalizată, este trimisă algoritmului de clasificare a feței care o compară cu baza de date a persoanelor cunoscute și returnează cea mai probabilă identitate [2].

Fig. 1.3. Structura metodelor de recunoastere a imaginilor

Algoritmul Viola-Jones

În anul 2001, Paul Viola și Michael Jones au prezentat un cadru nou, inovativ, pentru detectarea obiectelor arbitrare în imagini, pe care l-au rafinat pentru detecția fețelor [25]. Algoritmul este cunoscut drept metoda Viola-Jones și este unul dintre cei mai robuști, performanți, eficienți și utilizați, reprezentând practic un punct de cotitură în dezvoltarea aplicațiilor practice de timp real utilizând detecția fețelor, cum este cazul celor incluse în camerele foto digitale de astăzi. Metoda Viola-Jones oferă o viteză remarcabilă și o rată foarte înaltă de acuratețe – cercetătorii raportînd o rată de fals-negative (nedetecție) de sub 1% și una de fals-pozitive de sub 40%, chiar cînd sunt utilizate doar cele mai simple filtre. Metoda completă utilizează după cum vom arăta mai jos, până la 38 de filtre sau clasificatoare. Principala inovație adusă de Viola și Jones a fost aceea de a nu încerca să analizeze direct imaginea în sine, ci anumite „caracteristici” (features) dreptunghiulare în aceasta. Aceste caracteristici, inspirate printr-o analogie cu analiza formelor de undă complexe din sistemul ortonormal de funcții Haar de bază, sunt cunoscute sub denumirea de „caracteristici de tip Haar” (Haar-like features), după matematicianul ungur Alfred Haar care a trăit și a creat la începutul secolului 20. Trebuie făcută totuși – pentru evitarea posibilelor confuzii – precizarea că nu este vorba aici de wavelet-uri Haar. În primul rând, dacă imaginea de analizat este una color, aceasta este transformată într-una în nivele de gri, în care apar doar nivelele de strălucire/ luminanță, informația de culoare fiind neglijată. Este de subliniat aici faptul că independența de culoare conferă metodei o mare generalitate.

În practică se poate utiliza pentru fiecare pixel (x, y) al imaginii o relație de forma: i(x, y) = 0,299 R(x, y) + 0,587 G(x, y) + 0,114 B(x, y), unde valorile R, G, B reprezintă respectiv componentele de roșu, verde și albastru ale valorii respectivului pixel (x, y) în spațiul RGB utilizat frecvent în reprezentarea digitală a imaginilor color, pe 3 sau 4 octeți (24 sau 32 de biți). Valorile sunt cuprinse între 0 și 255 (cît poate fi reprezentat pe un octet). Pe imaginea în 256 de nivele de gri astfel obținută pot fi analizate anumite caracteristici dreptunghiulare prin sumarea valorilor intensităților pixelilor în diferite blocuri dreptunghiulare. Astfel, pot fi detectate în imagine caracteristici formate din blocuri mai întunecate, adiacente unor blocuri mai luminoase, suma pixelilor din primele fiind mai mică decât cea a pixelilor din cele din urmă. Trebuie precizat faptul că aceste caracteristici nu reprezintă totuși în niciun fel anumite caracteristici/ trăsături faciale specifice. Viola și Jones au definit mai multe tipuri de astfel de caracteristici, reprezentate prin câte două, trei, sau patru blocuri dreptunghiulare adiacente, cu tentă întunecată și respectiv deschisă. Într-o anumită caracteristică, toate blocurile dreptunghiulare componente au fiecare aceeași formă și aceleași dimensiuni. Aceste caracteristici pot fi evaluate la orice scală sau poziție în imagine. Fiecărei astfel de caracteristici îi este asociată o valoare care este calculată ca diferența între suma pixelilor din regiunea de imagine delimitată de dreptunghiurile deschise, minus suma pixelilor din dreptunghiurile închise care compun caracteristica respectivă. Valoarea caracteristicii este apoi utilizată de un filtru pentru a determina dacă acea caracteristică este prezentă sau nu în imaginea originală. Pare că mecanismul descris mai sus ar fi destul de costisitor din punct de vedere computațional, adică destul de lent.

O a doua inovație spectaculoasă și importantă adusă de metoda Viola-Jones constă într-o optimizare computațională ingenioasă, pentru îmbunătățirea vitezei de sumare a intensităților pixelilor din blocurile dreptunghiulare componente ale caracteristicilor definite [26]. Astfel, pentru fiecare imagine originală de analizat se generează inițial o așa numită „imagine integrală”, mapată 1 la 1 peste imaginea originală, în care fiecare punct capătă valoarea sumei tuturor pixelilor din imaginea originală situați la stânga și deasupra coordonatelor punctului respectiv, inclusiv. Valorile tuturor punctelor ii(x, y) din imaginea integrală pot fi calculate cu o singură trecere prin imaginea inițială, pornind din colțul din stînga-sus (x = 0 și y = 0), pixel cu pixel, linie după linie, de sus în jos.

Algoritmul Analiza Discriminatorie Liniară

Pentru a identifica direcțiile din spațiu de-a lungul cărora ar fi indicat să efectuăm proiecția pentru a maximiza separarea (discriminabilitatea) datelor procesate se poate utiliza o altă tehnică liniară de natură statistică, cunoscută sub denumirea Linear Discriminant Analysis (LDA) [30]. Pentru a ilustra această metodă, să considerăm cazul mai simplu al clasificării unui set de vectori x în 2 categorii distincte, având fiecare N1, respectiv N2 exemplare. Să considerăm o direcție din spațiu, definită de un vector w cu aceeași dimensiune ca și vectorii x, de-a lungul căreia să proiectăm datele de lucru pe baza relației y = wT * x, decizia privind apartenența vectorului x la una dintre cele 2 categorii urmând a fi luată prin compararea mărimii scalare y cu o valoare de prag convenabil aleasă. Ne propunem să identificăm acea direcție particulară care asigură maximizarea ratei de clasificare corectă, altfel spus direcția de-a lungul căreia separarea dintre clase este cea mai mare. Una dintre cele mai naturale idei este de a considera direcția care mărește separabilitatea proiecțiilor valorilor medii ale celor 2 clase, cu alte cuvinte ar trebui să maximizăm expresia:

m2 − m1 = wT * (m2 −m1) (1.1)

unde m1 și m2 desemnează valorile medii

Deoarece expresia (1.1) poate fi făcută oricât de mare “jonglând” din amplitudinea vectorului w, este necesar să introducem o constrîngere suplimentară, de exemplu să impunem ca norma acestuia să fie constantă. Utilizând binecunoscuta metodă a multiplicatorilor lui Lagrange, se poate arăta că soluția noii probleme de optimizare (cu constrîngeri) conduce la w~(m2 −m1) .

Totuși, este posibil ca direcția de maximă discriminabilitate să nu fie neapărat cea care asigură separarea optimă a proiecțiilor valorilor medii, în special în cazurile în care una sau ambele clase conțin date foarte „împrăștiate” în spațiu. Ca urmare, o soluție mai bună este cea care își propune maximizarea unei funcții definite ca raportul dintre proiecțiile valorilor medii și dispersiile datelor de-a lungul direcției vectorului. În cazul particular în care matricea SW este proporțională cu o matrice unitate (se spune că matricea este izotropă, adică împrăștierea datelor este uniformă în toate direcțiile), condiția anterioară se reduce din nou la w~(m2 −m1). În final, să menționăm că în literatură au fost propuse și utilizate cu succes unele variante neliniare ale acestor metode, de exemplu bazate pe arhitecturi speciale de rețele neurale artificiale.

Algoritmul Analiza pe Componente Principale

Analiza pe componente principale (ACP) este o tehnică ce poate fi utilizată pentru a simplifica un set de date [17]. Este o transformare liniară care alege un nou sistem de coordonate pentru setul de date astfel încât cea mai mare variabilitate pentru orice proiecție a setului de date vine să se întindă pe prima axă (denumit primul component principal), a doua cea mai mare variabilitate pe a doua axă, și așa mai departe. Semnalele de intrare sunt foarte zgomotoase (de exemplu, zgomotul este cauzat de diferite condiții de iluminare), dar imaginile de intrare nu sunt complet aleatorii și în ciuda diferențelor lor există modele care apar în orice semnal de intrare. Astfel de modele, care pot fi observate în toate semnalele ar putea fi – în domeniul de recunoaștere facială – prezența unor obiecte (ochi, nas, gura), în orice chip, precum și distanțele relative dintre aceste obiecte. Aceste caracteristici sunt numite „eigenfatas” în domeniul de recunoaștere facială.

Ele pot fi extrase din datele originale ale imaginii cu ajutorul instrumentului matematic numit „Analiza pe componente principale (ACP)”. Prin intermediul ACP se poate transforma fiecare imagine originală de formare stabilit într-un „eigenfata” corespunzător. Apoi, imaginea reconstruită este o aproximare a imaginii originale. Cu toate acestea, pierderile cauzate de omiterea unora dintre „eigenfatas” poate fi minimizat. Acest lucru se întâmplă prin alegerea doar a celor mai importante caracteristici („eigenfatas”). Omiterea „eigenfatas” este necesară ca urmare a deficitului de resurse de calcul. Astfel, scopul ACP este de a reduce dimensionalitatea mare a spațiului feței (variabile observate) la dimensionalitatea mic intrinsecă a caracteristicii spațiului (variabile independente), care sunt necesare pentru a descrie datele de vedere economic. Pentru a genera un set de „eigenfatas”, un set mare de imagini digitale de chipuri umane, luate în aceleași condiții de iluminare, sunt normalizate pentru a alinia ochii și gura. Ideea fundamentală a metodei ACP este de a găsi baza particulară care asigură minimizarea erorii pătratice medii dintre seturile de vectori xn și xn .

Metoda ACP a fost aplicată cu succes la recunoașterea fețelor, sub denumirea generică Eigenfatas [9]. Imaginile sunt disponibile în baza de date, formate din matrici cu valori reale (eventual– binare). Fiecare astfel de matrice, presupusă de dimensiune (MxN), este mai întâi transformată într-un vector de aceeași lungime, prin concatenarea coloanelor corespunzătoare. Algoritmul de procesare presupune parcurgerea următorilor pași:

Se calculează valoarea medie a imaginilor care formează setul de antrenare.

Se calculează așa-numita scatter matrix, care reprezintă aproximarea matricii de covarianță a imaginilor din baza de date.

Se calculează valorile și vectorii proprii ai matricii S (vectorii proprii ai matricii S în cazul lucrului cu imagini reprezentând fețe poartă denumirea Eigenfatas).

Se ordonează valorile proprii ale matricii S în sens descrescător. Se trasează un grafic care exprimă pierderea de informație în raport cu factorul de compresie.

Se proiecteză imaginile (centrate) originale pe spațiul descris de vectorii proprii reprezentativi (tipic aceștia sunt în număr de 5-10% din numărul total). Proiecția constă de fapt în efectuarea produsului scalar dintre fiecare imagine originală și o matrice, având drept coloane numai vectorii proprii semnificativi.

Clasificarea imaginilor test presupune mai întâi determinarea „semnăturii” fiecărei imagini în raport cu subspațiul determinat anterior (și care depinde exclusiv de imaginile din setul de antrenare!) și găsirea acelei imagini din baza de date de antrenare a cărei semnătură este cea mai apropiată de semnătura imaginii de test. Aprecierea similitudinii dintre astfel de perechi de imagini se realizează folosind o metrică convenabil aleasă. Opțiunea uzuală este distanța Euclideană (L2), însă se pot utiliza și alte măsuri precum funcția de autocorelație, cosinusul unghiului dintre 2 vectori sau distanța Mahalanobis.

Algoritmul Krawtchouk Moment

Momente sunt folosite pentru a caracteriza forma și dimensiunea imaginii [5]. În această metodă, se calculează o secvență de numere, secvență ce se numește „momente”. Aceste momente identifică forma obiectului, cum ar fi zona, centrul de greutate, momentul de inerție, orientare etc.

„Krawtchouk moment” sunt utilizați frecvent pentru prelucrarea imaginii, detecție și recunoașterea obiectelor [11]. Momentele pot furniza caracteristici ale unui obiect ce reprezintă în mod unic o formă. Forma de recunoaștere invariantă se realizează prin clasificarea în acest moment multidimensional invariant spațiului facilitat. Mai multe tehnici au fost dezvoltate, care sunt derivate de la indici de momente pentru recunoaștere și reprezentare a obiectelor. Aceste tehnici se disting prin definiția lor, cum ar fi tipul de date exploatate și metoda pentru obținerea valorilor invariante din momentele de imagine. Hu a fost primul care a stabilit fundamentul matematic pentru invarianții momentului bi-dimensionale și a demonstrat aplicațiile pentru recunoaștere a obiectelor. Acestea au fost aplicate mai întâi la forme de aeronave și s-au dovedit a fi rapid și de încredere (Dudani, Creștere și McGhee, 1977). Aceste valori invariante de moment sunt invariante în raport cu translarea și rotația obiectelor. Hu definește șapte dintre aceste valori descrise ca forme calculate de la momentele centrale prin ordinul trei, care sunt independente în raport cu translarea, poziția și orientarea. Translarea se realizează prin momentele care sunt normalizate cu calcul față de centrul de greutate, astfel încât centrul de masă al distribuției să fie în origine (momente centrale). Dimensiunea momentelor invariante sunt derivate din algebric invarianți, dar acestea pot fi dovedite a fi rezultatul unei dimensiuni simplu normalizate. Din a doua și a treia ordine, valorile momentelor centrale normalizate a unui set de șapte momente invariante pot fi calculate, care sunt independente de rotație.

O problemă esențială în domeniul analizei imaginei este recunoașterea obiectelor și a personajelor, indiferent de poziția lor, dimensiunea și orientarea [11]. Ideea de a folosi indici de momente invariante în timp pentru recunoaștere a obiectelor, a dobândit o importanță mare atunci când Hu a derivat un set de invariații care utilizează invariații algebrici.

Analiza comparativă a algoritmilor

În general, algoritmii utilizați pentru detectarea și recunoaștera feței, indiferent de tipul acestora, sunt foarte sofisticați; presupun numeroase cicluri, analize pe diferite criterii, scalări, filtrări, comparații, și care solicită mult efort și timp pentru a le realiza [8]. Unii algorimi au la bază pe antrenări anterioare ale unor clasificatoare de diferite tipuri, utilizând rețele neuronale, suport vector machines, modele ascunse Markov etc., în timp ce alți algoritmi încearcă să se bazeze pe cunoștințe și observații a priori codate programatic și utilizate astfel la detecție, iar altele încearcă o mixare între aceste două tipuri de abordări în diferite etape de analiză. În general, toți algoritmii recurg la multiple operații de scalare și normalizare, fie a imaginii, fie a unei subferestre de analiză.

Principalul avantaj al metodei ACP constă în simplitatea sa. Există posibilitatea de a calcula vectorii proprii principali nu numai în variantă off-line prin procedura algebrică ci și on-line, folosind anumite rețele neurale artificiale pentru a ajusta în mod iterativ valorile acestora, pe măsură ce se aplică date noi la intrare.

Printre dezavantaje sunt: faptul că ignoră componentele care contribuie puțin la energia imaginilor originale nu conduce automat și la îmbunătățirea separării dintre diversele subclase de imagini aparținând unor persoane diferite. Alt dezavantaj al tehnicii ACP îl reprezintă caracterul global al acesteia, în sensul că matricea de convarianță este dedusă luând în considerare toate imaginile disponibile, care pot să conțină o foarte mare variabilitate din punct de vedere al nivelului de iluminare, orientării, fundalului.

Metoda LDA poate fi generalizată pentru probleme de clasificare cu un număr oarecare de categorii C≥2, cu observația că numărul de direcții discriminatorii posibil de determinat este egal cu (C-1). Această constrîngere poate reprezenta un dezavantaj major pentru extragerea unor „semnături” semnificative în condițiile în care avem la dispoziție date de dimensiune mare, aparținînd unui număr limitat de clase, motiv pentru care de multe ori aplicarea metodei LDA este precedată de o etapă prealabilă de reducere a dimensionalității vectorilor originali, de obicei bazată pe aplicarea tehnicii ACP. Mai mult, dacă numărul de vectori disponibili este redus, estimarea valorilor medii și, în continuare, a matricilor SB și SW este nerelevantă din punct de vedere statistic. Un alt dezavantaj, se referă la faptul că identificarea setului de trăsături semnificative se fata folosind exclusiv datele de intrare, nu și eticheta corespunzătoare categoriei cărora acestea aparțin.

Algoritmii de detecție a fețelor pot fi împărțiți în patru mari categorii, unele metode fiind localizabile la granițele dintre acestea [8]:

Metoda bazată pe cunoștințe. Aceasta se bazează pe cunoștințele despre geometria tipică a feței umane și dispunerea spațială a caracteristicilor faciale. Metodele bazate pe cunoștințe folosesc reguli pentru a descrie forma, textura și/sau alte caracteristici ale elementelor faciale (ochi, nas, bărbie, sprâncene, etc.). Ele utilizează în general o abordare ierarhică, prin care se examinează imaginea la diverse rezoluții. Principala problemă a acestei tehnici este aceea de a găsi o modalitate eficientă de transpunere a cunoștințelor umane despre geometria feței în reguli bine definite. O altă problemă este legată de faptul că metoda nu funcționează corespunzător în condiții de iluminare variabilă și pentru diferite orientări ale capului, deoarece este imposibil să se prevadă toate cazurile posibile.

Abordarea bazată pe caracteristici invariante. Această metodă încearcă să găsească unele caracteristici structurale comune indiferent de condițiile de iluminare sau de unghiul din care a fost capturată imaginea. Au fost utilizate diverse caracteristici structurale: caracteristici faciale locale, textura, forma și culoarea pielii. Caracteristicile faciale locale, cum ar fi ochii, sprâncenele, nasul, gura etc., sunt extrase utilizând filtre multi-rezoluție sau de tip derivativ, detecția contururilor, operații morfologice, sau folosind anumite praguri. Pe baza acestora se construiesc modele statistice care descriu relații între caracteristici și se verifică existența feței. În cazul imaginilor color, este foarte utilă folosirea culorii pielii ca element de detecție inițială a candidaților posibili, segmentarea imaginilor după schema de culoare fiind rapidă computațional și robustă la schimbarea unghiului de captură a imaginii, la scalare, umbrire, sau în prezența unui fundal complex. Această metodă este însă ineficientă dacă imaginea este coruptă sau deformată.

Metoda bazată pe șabloane (templates). Metoda detectează întâi capul, care este aproximativ eliptic, folosind filtre, detectoare de contur sau siluete. Sunt apoi extrase contururile caracteristicilor faciale utilizând cunoștințe despre geometria feței. Se calculează corelația dintre caracteristicile extrase din imagine și modele predefinite ale caracteristicilor faciale. Metodele bazate pe șabloane predefinite sunt sensibile la scalare, și variația formei și a poziției.

Metoda bazată pe apariție (appearence). Această metodă utilizează un număr mare de exemple corespunzătoare diferitelor tipuri de variații. Detectarea feței este privită ca o problemă de recunoaștere de forme cu două clase: „față” și „non-față”. Sunt utilizate tehnici de analiză statistică și învățare automată pentru a descoperi proprietățile statistice sau funcția de distribuție a probabilității pattern-urilor intensității pixelilor din imaginile corespunzătoare celor două clase. Cele mai utilizate metode din această categorie pentru detectarea fețelor sunt: eigenfatas, LDA, rețele neuronale, support vector machines.

Concluzii la capitolul 1

Problema recunoașterii fețelor este una dintre cele mai complexe probleme din cadrul recunoașterii imaginilor. Ea implică cunoașterea anatomiei feței și necesită algoritmi de preprocesare și clasificare extrem de compuși. Implementarea unor sisteme autonome de recunoaștere a fețelor este în plină dezvoltare. Extinderea rapidă este împiedicată de dificultățile care există încă în algoritmii de prelucrare și rata de recunoaștere relativ redusă. Puterea de prelucrare a procesoarelor de ultimă generație de înaltă calitate, procesoarele media, permit implementarea eficientă din punct de vedere a costului, dimensiunilor și consumului de putere. Perfecționarea algoritmilor de prelucrare va permite ca aceste sisteme să devină o alternativă la camere de supraveghere. Aplicațiile biometrice în special tehnologia de detectare și recunoaștere a feței au o aplicare largă. Această tehnologie în scurt timp v-a fi utilizată pe larg în diferite domenii.

PROIECTAREA SISTEMULUI

Proiectarea algoritmilor pentru recunoașterea feței

Procesul de recunoaștere a feței este destul de complex. Imaginile trebuie să fie preprocesate, astfel să evităm pe cît posibil efectele la diferite nveluri de iluminare.

Fig.2.1. Procesul de recunoaștere a feței

Algoritmul Principal Component Analysis

Cu ajutorul acestei metode găsim caracteristicile principale ale feței, apoi înregistrăm aceste caracteristici pentru a obține un vector [24]. Recunoașterea feței este realizată prin compararea acestor vectori utilizând diferite măsuri de distanță. Metoda de recunoaștere a feței cu ajutorul algoritmului Principal Component Analysis va calcula vectorii proprii și valorile proprii ale matricei de covarianță a datelor de formare. Dacă această matrice este mare, calculul de vectori proprii devine complicat. Pentru a rezolva această problemă, putem folosi descompunerea matricei de covarianță sau sa împărțim imaginile în mai multe părți.

Avand un set de imagini care sunt reprezentate ca NxN pixeli matrici, acest algoritm le transformă în vectori N2. Presupunem că avem Xi să fie N-elemente de imagini unidimensionale și să presupunem că avem M astfel de imagini (i = 1,….,M). O imagine unidimensională se formează prin scanarea a tuturor elementelor dintr-o imagine bidimensională, rînd cu rînd, și înscrierea lor într-un vector. Media vectorilor se calculează conform formulei:

ψ = i (2.1.1)

Vectori de date reprezintă diferența dintre fiecare element de imagini și media vectorului:

ϕi = Xi – ψ (2.1.2)

unde ϕi sunt vectorii cu lungime N2, i=1-M.

Apoi construim matricea C cu dimensiunile M x M:

C = ATA (2.1.3)

Unde matricea A = [ϕ1, ϕ2, … ,ϕM] cu dimensiunea M x L, unde L=N2.

Pentru matrice C vom determina M vectorii vi cu M elemente fiecare. Pentru aceasta mai întîi trebuie să aflăm valorile proprii i a matricei C:

(2.1.4)

Matricea Rk de dimensiuni M x M, constă din elemente: unu, zerouri și cosθ, rk,pp = rk,qq, sinθ rk,pp și –sinθ rk,pp:

Rk = (2.1.5)

Valorile p și q sunt determinate calculînd valoarea maximă ck,pq din formula (2.1.4), (2.1.5). Unghiul θ este determinat din:

θ = arctg() (2.1.6)

Ne oprim calculele când vom obține matricea:

Ck+1 = (2.1.7)

Unde elementele ck+1,ii sunt valorile λi matricei C. Pentru fiecare valoare λi vom calcula matricea Bi:

Bi = =, i = 1-M (2.1.8)

Și pentru aceste matrici vom rezolva următoarele sisteme de ecuații utlizînd metoda eliminării Gauss–Jordan:

(2.1.9)

Soluțiile acestor sisteme de ecuații sunt vectorii Vi:

Vi = {v1, v2, …vM} (2.1.10)

Pentru a determina valorile vij mai întîi trebuie să efectuăm unele transformări pe matricele Bi după formula:

, (2.1.11)

Matricea nouă obținută este:

Bi = (2.1.12)

Vectorii proprii sunt calculați pe baza formulei:

dacă j = M, atunci , altfel (2.1.13)

După aceasta, vom determimna vectorii ui cu N2 elemente:

ui = , i = 1-M (2.1.14)

Apoi construim vectorul ΩT pentru imaginea de intrare:

ΩT = [ω1 ω2 … ωM] (2.1.15)

unde , i = 1-M

În scopul de a recunoaște imaginea de intrare se calculează valoarea minimă a distanței euclidiene:

, i = 1-M (2.1.16)

unde Ωi – este o referință [10].

Fig. 2.2. Transformarea Principal Component Analysis

Fig. 2.3. Algoritmul Principal Componet Analysis

Algoritmul Invariant Moments

Algoritmul despre recunoaștere utilizînd normalizarea indicilor de moment

Momente bidimensionale a unei imagini digitale M x M care are funcția: f(x,y), (x, y = 0, … M-1) este egal cu:

mpq = (2.2.1)

Indicile de moment translate cu valoarea (a, b), sunt definite:

μpq = (2.2.2)

Astfel momentele sau pq poate fi calculată din formula (2.2.2) substituind = – x și b = -y, obținem:

x = ; y = ; (2.2.3)

μpq = (2.2.4)

După normalizare, ne permite să obținem indici de moment invariate la schimbarea scalară:

ηpq = μpq / , (2.2.5)

Se definesc șapte valori, calculate prin normalizarea indicilor de moment, care sunt invariante în raport cu modificarea la scară, poziția și orientarea. Indicile de moment invariante la rotație sunt calculate:[16]

(2.2.6)

Momente noi

Atunci când ne preocupăm cu forma de recunoaștere a obiectelor pe hărți, noi suntem preocupați cu obiecte izolate, unde noi știm doar informația despre schița formei. Pentru acest scop, momentul invarianților folosite în această lucrare, pot fi calculate folosind numai forma limită și dovedit de a fi invariant sub obiectele de traducere, mărime și rotație (Chaur-Chin Chen, 1993). Apoi folosind câteva notații pentru comoditate, momentul definitiv în ecuație (1) poate fi exprimat ca:

(2.2.7)

Pentru p, q = 0, 1, 2, 3, unde este o linie integrală și . Momentele centrale pot fi definite:

(2.2.8)

Avînd în vedere că metodele regulate sunt definite:

(2.2.9)

Pentru o imagine digitală, ecuația (2.2.8) se definește:

(2.2.10)

Astfel, momentele centrale sunt invariante la translare. Aceste momente noi centrale pot fi de asemenea normalizate astfel încât acestea sunt invariant în raport cu scalarea.

(2.2.11)

Unde factorul de normalizare este: . Cele șapte valori, calculate prin normalizarea indecelor de moment se pot calcula utilizînd rezultatele obținute din ecuațiile (2.2.7) și (2.2.11)[6].

Clasificarea

Clasificarea este etapa finală a oricărui sistem de procesare a imaginii, fiecărui model necunoscut este atribuit o categorie. Gradul de dificultate al problemei de clasificare depinde de variabilitatea valorilor caracteristici pentru obiectele din aceeași categorie, în raport cu diferența dintre valorile caracteristicilor de obiectele din diferite categorii. În aceste cazuri indicile de moment sunt definite:

Unde mpq, μp,q sunt geometrice și centrale indici de moment. Măsura de clasificare este:

, j=1 – 4 (2.2.13)

Unde Iij sunt momentele invariante ale imaginii standard [32].

Algoritmul Correlation

Algoritmul de colerație utilizat pentru recunoașterea feței se bazează pe calcularea funcției de corelare între imaginea feței necunoscute și una dintre imaginile standarde prezentate în sistemul de coordonate logaritmică polar [15]:

Cξ, η ∫∫ Px,yH*(xξ,yη)dxdy, (2.3.1)

unde P(x,y) descrie imaginea necunoscută și H(x,y) este imaginea standardă. x1=arctg(y/x) și y1=[ln(x2 +y2)]/2.

Cu ajutorul cross-correlation și auto-correlation putem să determinăm coeficientul de corelație:

(2.3.2)

Unde CM,CC și CM,AC sunt valorile maxime de la cross-correlation și auto-correlation.

Tehnicile de filtrare correlation sunt foarte atractive și potrivite pentru recunoașterea feței. Filtrele de corelație avansate oferă o performanță foarte bună, la prezența diferitor variabilități, cum ar fi schimbări de expresie a feței și schimbări de iluminare facială. În plus, acestea oferă o soluție de formă închisă, nu este foarte complicată și necesită o cantitate minimă de stocare a memoriei [18].

Imaginea de intrare R(f) Correlation

R(x) c(τ)

H(f)

Reference

Image s(x)

Fig. 2.4. Corelația diagramă bloc filtru prezintă un filtru proiectat pe N imagini pentru clasa I.

De remarcat este faptul că, pentru fiecare persoană în sitemul de recunoaștere a feței trebuie să stocăm doar filtru de corelație (P), în timp ce filtrul convențional de corelare stochează un șablon. De obicei dimensiunea filtrului de corelație este mult mai mică decît dimensiunea filtrului convențional de corelare. Astfel, sistemul poate reduce semnificativ dimensiunea bazei de date. Acest avantaj apare atunci cînd avem nevoie să stocăm foarte multe persoane într-o bază de date [27].

Geometria imagini log-polar este motivată din cauza faptului că scalarea și rotirea în domeniul cartezian corespunde la translarea în domeniul log-polar. Coordonatele polare (ρ, θ) corespund la distanța radială de la centru și unghiul de la centru respectiv. Luând logaritm de distanță radială ρ  avem coordonate log-polare. În domeniul log-polar log (ρ) coordonează corespunde distanței logaritmică de la centrul imaginii la un anumit punct, θ corespunde unghiul punctului cu centrul. Transformarea log-polar este o transformărilor conforme de la punctele de pe planul cartezian (x, y) pentru puncte în planul log-polar (log (ρ), θ).

În figura 2.5 (ρ, θ),  se referă la distanță radială și distanța unghiulară, care se calculează după cum urmează:

Fig. 2.5 Imaginea într-un domeniu cartezian log-polar

(2.3.3)

(2.3.4)

Unde (x c, y c) este centrul imaginii polar-log.

Fast Fourier Transform (FFT) sunt foarte frecvent utilizate pentru a găsi valoarea de translare între imagini. FFT sunt rapide și foarte ușor de calculat. Folosind tehnica correlarea în domeniul cartizian log-polar putem găsi cu ușurință parametrii de translare.

f1 și f2 sunt cele două imagini care diferă doar printr-o deplasare, adică:

f2 (x, y) = f1(x − x0, y − yo) (2.3.5)

Transformata Fourier F1 și F2 sunt egale:

F2(ξ, η)= e-j2𝜋(ξx0+𝜂y0) * F1(ξ, η) (2.3.6)

Spectrum Cross-power a două imagini f și f’ cu transformata Fourier F și F’ este definită:

(2.3.7)

Unde F* este conjugata complexă a F, teorema garantează că faza a spectrului cross-power este echivalentă cu diferența de fază între imagini. Cu ajutorul Inversa Fourier transformata care este reprezentată în domeniul frecvență, vom avea o funcție care este un impuls, acesta este de aproximativ zero, cu excepția la deplasarea de care este nevoie pentru a înregistra în mod optim cele două imagini. Deplasarea ne dă parametrii de translare.

Fig. 2.6. Algoritmul Correlation în sistemul de coordonate logaritmică polar

Structura sistemului informațional

Această secțiune prezintă trei algoritmi de recunoaștere a fețelor prezentate. Ele sunt bazate pe procesoarele media descrise în paragraful introductiv. Implementarea sistemelor de recunoaștere a feței poate fi făcută pe platforme de uz general, de tipul calculatoarelor compatibile PC, sau în sisteme autonome care minimizează consumul, dimensiunile și costurile. Tendința generală este către „autonomizarea” sistemelor care permite instalarea acestora în locurile cele mai potrivite pentru un control al identității eficiente (aeroporturi, gări, porți de acces). În continuare, vom prezenta un sistem generic de control biometric bazat, așa cum am argumentat în paragrafele precedente, pe algoritmi de recunoaștere. Datele tehnice ale sistemului generic de recunoaștere a feței sunt prezentate sintetic mai jos. Flexibilitatea sistemului cu DSP permite ca pe aceeași structura hardware să poată fi abordate aplicații variate din domeniul de prelucrare video : biometrie, viziune industrială, supraveghere video.

Principalele blocuri evidențiate în figura 2.5. au următoarele funcții. Blocul de condiționare a semnalului realizează în principal multiplexarea semnalelor analogice, amplificarea acestora, funcții de sincronizare și restaurare semnal video. Partea de achiziție și normalizare este implicată în conversia A/D, formatarea semnalului în standardele acceptate de interfața video a DSP, normalizarea imaginii. Unitatea centrală cu DSP are controlul tuturor funcțiilor de achiziție și de recunoaștere incluse în aplicație, controlul comunicației, detectarea pragurilor și decizii legate de aceasta, stocarea/ refatarea informației.

Cerințe

Se consideră un sistem cu acces la web-camera care utilizînd diferiți algoritmi detectează fața. După detectare sistemul compară fața detectată, cu informația stocată în baza de date și returnează informația despre persoană. În Fig. 2.5 este prezentată arhitectura unui astfel de sistem.

Programul trebuie să fie compatibil cu mai multe platforme, și aceste componente vor fi distribuite într-un API. Acesta pune la dispoziție o interfață simplă care permite conectare la camera web și la baza de date, permițînd utilizatorului să acceseze cu ușurință și să obțină informația dorită.

Arhitectura software

Partea de suport software a sistemului este formată în principal din două module: nucleul sistem de operare (preferabil de timp real) și aplicația propriu-zisă. Nucleul sistemului de operare este impus în general de procesorul ales pentru implementare.

Fig. 2.7. Arhitectura Aplicației

În principal blocurile software necesare echipei în sistem de recunoaștere a fețelor (de tip server) sunt următoarele:

Nucleu sistem de operare

Drivere de achiziție

Drivere pentru normalizarea imaginii

Algoritm de recunoaștere a feței

Clasificare

Gestiune alarme

Drivere de comunicație

– Rezoluție achiziție: Minimum 640×480 (768×576) pixeli

– Semnal intrare: Analog – PAL/SECAM compatibile Digital – semnale LVDS

– Memorie (Flash): 100-200 MB

– Memorie ( RAM): 1-2 GB

– Intrări/ ieșiri auxiliare: 8 intrări, 8 ieșiri

– Funcții speciale: Vizualizare semnal direct (comprimat/ necomprimat)

– Facilități opționale: Interfața digitală auxiliară (USB, IEEE1394)

Structura modulului client

Programul care este utilizat în sistemul de dispecerizare al rețelei de camere de recunoaștere, are componente care comandă câteva funcții esențiale:

Poziționare, comandă zoom optic

Gestiunea alarmelor

Descărcarea imaginilor de referință

Descărcarea imagini pentru arhivare

Proiectarea bazei de date

Prin proiectarea bazei de date, se presupune proiectarea unei scheme logice care ar elimina apariția unor erori în timpul lucrului cu baza de date, asigurând totodată avantajele și performanțele sporite la utilizarea ei. Anomaliile care apar în timpul lucrului cu baza de date sunt cunoscute sub anomalii de actualizare a datelor. Ele sunt puse în legătură cu dependențele care se manifestă între atribute. O asemenea abordare a anomaliilor de actualizare permite caracterizarea riguroasă a gradului de perfecțiune a schemei bazei de date și fata posibilă definirea unor tehnici formale de proiectare a unor astfel de scheme. Prelucrarea datelor pe o perioadă de timp, cum se întâmplă în bazele de date, poate provoca o serie de probleme personalului responsabil de menținerea integrității datelor [14]. Erorile care apar în date cum ar fi datele duplicate sau pierderile de informații pot apărea, dacă datele nu sunt organizate într-un mod corect. Procesul de normalizare constă în aplicarea unui set de reguli predefinite asupra unei aranjări a datelor cu scopul reducerii structurii complexe și transformării lor în structuri mai mici și stabile ce vor facilita manipularea și menținerea datelor. La fiecare pas o regulă este aplicată, datele pot fi restructurate și când regula este satisfăcută se spune că datele sunt într-o formă normală. Deci, normalizarea este o analiză și o grupare a datelor în structuri mai rapide ce se pot acomoda viitoarelor actualizări. În afară de aceasta, normalizarea reduce la maxim impactul ce poate avea loc asupra aplicațiilor în procesul actualizării bazei de date. Pentru a produce o bază de date bine proiectată, de obicei se pornește de la relații nenormalizate și printr-o serie de pași se descompun în structurile de date pentru a obține schema finală a bazei de date [14].

nivel extern

nivel conceptual

nivel intern

Fig. 2.8. Organizarea datelor într-o bază de date

Etapele proiectării

Proiectarea unei baze de date constă din proiectarea schemei conceptuale (logice) și fizice a acesteia, astfel încât să răspundă cerințelor utilizatorilor pentru un anumit set de aplicații. În practică, proiectarea unei baze de date se împarte în următoarele faze:

Colectarea și analiza cerințelor.

Proiectarea conceptuală a bazei de date.

Alegerea unui SGBD.

Proiectarea logică a bazei de date.

Proiectarea fizică a bazei de date.

Cele cinci etape de proiectare nu se desfășoară strict într-o singură secvență. În acest caz este necesară modificarea proiectului dintr-o etapă inițială într-una din etape ulterioare, pentru a se obține rezultatele dorite.

Proiectarea unei baze de date reprezintă un proces ce implică dezvoltarea și rafinarea structurii unei baze de date pe baza cerințelor deduse pe baza efectuării analizei domeniului ce urmează a fi modelat.

Procesul de proiectare constă în următorii pași:

Determinarea scopului bazei de date

Găsirea și organizarea informațiilor necesare

Împărțirea informațiilor în tabele

Transformarea elementelor de informații în coloane

Specificarea cheilor primare

Configurarea relațiilor din tabel

Rafinarea proiectării

Aplicarea regulilor de normalizare

Principalul obiectiv urmărit la proiectarea unei baze de date este asigurarea securității și integrității a datelor. În scopul realizării unui proiect corect al unei baze de date trebuie urmărite o serie de obiective, cum ar fi:

baza de date trebuie să păstreze datele necesare obținute de la informațiile descrise în etapa de analiză a cerințelor, precum și orice interogare ce poate fi pusă la un moment dat de către utilizator;

tabelele trebuie să fie construite corect și eficient; fiecare tabel din baza de date reprezentînd o singură entitate și fiind compus din cîmpuri distincte, păstrînd o redundanță minimă a datelor, fiecare înregistrare dintr-un tabel putînd fi identificată cu ajutorul unei valori unice;

integritatea datelor se impune la nivel de tabel, cîmp, relație; aceste nivele de integritate ajută la garantarea faptului că structurile de date împreună cu valorile acestora sunt valide și precise în orice moment;

baza de date trebuie să suporte regulile specifice domeniului pe care îl modelează; datele trebuie să ofere informație validă și precisă, având tot timpul înțeles;

la proiectarea bazelor de date trebuie să se prevadă dezvoltările viitoare; structura bazei de date trebuie să fie ușor de modificat sau extins odată cu modificarea cerințelor impuse.

Proiectarea conceptuală reprezintă procesul de construire a unui model al informațiilor utilizat în cadrul unui domeniu de interes, independent de toate considerațiile fizice. Primul pas în proiectarea bazei de date este cel de definire a cerințelor datelor specifice acelui domeniu. În acest scop este importantă definirea:

tipurilor de informații;

categoriilor de informații necesare sistemului;

regulilor specifice domeniului;

constrângerilor aplicate;

tipurilor de rapoarte generate;

scopului principal al tuturor informațiilor;

securității necesare;

informațiilor ce urmează a fi extinse [19].

Arhitectura bazei de date

Proiectarea fizică reprezintă procesul de descriere a implementării bazei de date pe mediile secundare de stocare. Sunt descrise structurile de stocare și metodele de acces utilizate pentru a obține un acces eficient la date.

Proiectul fizic al bazei de date efectuează și o rafinare a modelului logic; acesta transpune modelul logic într-un sistem relațional de gestiune a bazelor de date. În această fază este obligatorie examinarea modului în care utilizatorul accesează baza de date. Se recomandă separarea modelului logic de modelul fizic, astfel încât modificările să poată fi documentate în conformitate cu modelul fizic pentru a corespunde constrângerilor. În acest fel, modelul logic rămâne independent de tehnologie, ținând cont doar de cerințele specifice domeniului pe care îl modelează.

Acest pas din cadrul procesului de proiectare implică determinarea următoarelor categorii de informații:

datele folosite în mod curent;

coloanele ce urmează a fi indexate pentru a obține un acces mai rapid la date;

spațiul necesar precum și cel prevăzut pentru creșterea dimensiunilor bazei de date;

dacă denormalizarea bazei de date va duce la creșterea performanțelor acesteia;

cereri de funcționalitate:

procesarea secvențială a tuplurilor;

tuplurile ce îndeplinesc o anumită condiție impusă prin intermediul unei valori;

tuplurile inserate sau eliminate;

obiective de performanță:

evitarea pierderii inutile de spațiu;

primirea într-un timp cât mai scurt a răspunsului.

O bază de date relațională constă din două părți importante:

dicționarul de date care descrie datele;

fișierele de date ce conțin datele fizice.

Strategiile de proiectare sunt următoarele:

De sus în jos: se pornește cu cel mai înalt nivel de abstractizare după care urmează rafinarea (de exemplu, se stabilesc entitățile, după care se formează subclasele, iar apoi se adaugă atributele).

De jos în sus: se pornește cu abstractizările de bază, după care urmează combinarea acestora (de exemplu, atributele se grupează formând entități). În acest fel, se pot forma concepte elementare, colecții de concepte elementare, scheme.

Din interior spre exterior: este o formă specială de proiectare de jos în sus care se axează pe un set central de concepte (se selectează cele mai importante concepte, schema inițială, se creează schemele intermediare din care se deduce apoi schema finală).

Mixtă: se pornește mai întâi cu proiectarea de sus în jos, urmată de proiectarea dinspre interior spre exterior sau de jos în sus.

Pentru a crea o aplicație cu baze de date trebuie ales cel mai potrivit tip de sistem de gestiune al bazei de date. Acesta trebuie ales în așa fel încît să corespundă atît necesităților actuale, cît și celor viitoare. În acest scop, trebuie făcută o apreciere asupra caracteristicilor sistemului raportate la cerințele bazei de date și a aplicației (aplicațiilor) create pe baza acesteia.

Această fază urmează după faza de modelare conceptuală și înainte de faza proiectării fizice și constă din:

1. Stabilirea costului, care se bazează pe:

costul de achiziție a programelor;

costul mentenanței;

costul de achiziție a componentelor hardware;

costul de creare a bazei de date sau a conversiei acesteia;

costul legat de personal;

costul de pregătire a personalului;

costul de operare.

2. Modelul de date depinde de:

structura și utilizarea datelor;

familiarizarea cu sistemul;

disponibilitatea serviciilor oferite de către producător, a programelor de comunicare, a programelor de introducere a datelor, a instrumentelor de proiectare și monitorizare etc. [21].

Fig. 2.9. Schema logică a bazei de date

Concluzii la capitolul 2

În acest capitol am cercetat și am proiectat mai mulți algoritmi de detectare și recunoaștere a feței, și anume:

Analiza componentelor principale – Principal Components Analysis – PCA;

Moment Invariants – Indici de Moment;

Correlation.

În urma acestei cercetări am aflat: recunoașterea facială, indiferent de metodele utilizate, trebuie să treacă prin următorii pași:

Detectarea și extragerea formei feței dintr-un context oarecare (imagine statică sau dinamică).

Normalizarea feței – aceasta trebuie să fie standardizată astfel încât să poată fi comparată cu elementele din baza de date. Normalizarea are loc din punct de vedere al dimensiunii imaginii, al iluminării, etc.

Extragerea trăsăturilor faciale ce induc unicitatea. Se obține așa zisul model biometric ce este stocat sub formă de vector sau matrice într-o bază de date.

Recunoașterea facială – compararea rezultatelor obținute la pasul 3 cu informațiile aflate deja în baza de date astfel încât să fie extrasă cea mai bună potrivire.

Problema detectării și recunoașterii fețelor este una din cele mai sofisticate probleme din cadrul procesării imaginii. Ea implică cunoașterea anatomiei și culoarea feței, și necesită algoritmi de preprocesare și clasificare extrem de complicați.

IMPLEMENTAREA SISTEMULUI

Ghidul programatorului

Algoritmii pentru recunoașterea feței le-am implementat într-o aplicație software. Software-ul a fost elaborat în Microsoft Visual Studio utilizînd limbajul de programare C#. Aplicația software-ul are posibilitatea de a captura imagini prin intermediul unei camere video, să memoreze fețele într-o bază de date și cu ajutorul algoritmilor de recunoaștere, descrise în capitolul 2, să recunoască persoanele.

Arhitectura aplicației

La baza sistemului stau clasele construite cu ajutorul librăriei EMGU CV, și care oferă funcționalități simple, de exemplu: fire de execuție, socluri, parsere, containere și elemente de legătură cu clasele la nivele mai înalte.

O altă grupă de clase este cea de securitate, care include clasele ce conțin funcționalități pentru crearea, încărcarea, verificarea certificatelor, criptografie, funcții hash, semnături digitale, generatoare de nonce-uri, etc. Aceste clase au fost construite folosind librăriile OpenSSL.

Canalele de comunicație moștenesc soclurile și firele de execuție, pentru a oferi un control mai avansat al fluxului de intrare. Acesta se realizează apelînd funcții callback. Gestionarea canalelor se fata cu ajutorul clasei speciale, care creează și șterge canalele.

Peste aceste canale sunt construite serviciile, care deja au funcționalități complexe. Sunt două tipuri de servicii, client și server, fiecare are canale de comunicație, care vor transmite datele la Server pentru a putea fi gestionate de catre SGBD.

Pentru a fata legătura între aplicație și baza de date utilizăm ODBC. ODBC este un limbaj de programare middleware API standard pentru accesarea sistemelor de gestionare a bazei de date (DBMS).

Astăzi ODBC este cel mai universal limbaj care fata legătura între aplicație și baza de date, cu drivere disponibile pentru cele mai multe platforme și cele mai multe baze de date. [28]

Clasele de bază

În această secțiune sunt prezentate clasele cele mai importante care sunt folosite pentru a construi componentele principale. Clasa Capture răspunde de streaming video pentru dispozitive de tip camere web și fișiere video. Principala funcționalitate a acestei clase este obținerea informației de la camerele video. Această clasă dispune de 3 constructori: Capture() – Crează o captură folosind camera foto implicit; Capture(Int32) – Crează o captură folosind camera specificată; Capture(String) – Crează o captură din fișier video. De asemenea, această clasă are următorii membri: Dispose() – eliberează resursele pentru această captură. Metoda QueryFrame() este folosită pentru a afișa imaginea în picture box. Totodată, în clasa Capture sunt declarate cîteva constante Width – pentru a seta lungimea și Height – pentru a seta înălțimea.

Clasa HaarCascade se utilizează pentru detectarea și clasificarea diferitelor părți din imagine. Datele sunt încărcate în fișier XML pentru clasificatorul Haar. Există mai multe cascade. Este de asemenea posibil pentru a crea propriul fișier XML.

În această clasă sunt descrise 8 metode: Dispose() – această funcție este implementată în IDisposable interfata; DisposeObject() – eliberează obiectul HaarCascade din memorie; Equals(Object) – stabilește dacă obiectul specificat este egal cu obiectul curent; GetHashCode()-servește ca o funcție hash pentru un anumit tip; GetType() – obținem tipul curent; MemberwiseClone() – Creează o copie superficială al obiectului curent; ReleaseManagedResources() – eliberează resursele gestionate. Această metodă va fi chemată în timpul eliminării obiectului curent; ToString() – returnează un string care reprezintă obiectul curent. De asemenea, această clasă are un constructor HaarCascade(String) – creează un obiect HaarCascade din dosar specific și un Deconstructor.

Clasa MCvDesign are funcționalitatea de a realiza un design unui scris. Această clasă conține un constructor MCvDesign(DESIGN, Double, Double). Cu ajutorul acestui constructor creăm obiectul, specificînd tipul designului și mărimea scrisului. În această clasă sunt descrise 10 variabile și 7 metode.

O imagine este definită de parametrii generici: culoare și profunzime. Pentru a crea o imagine 8 bit nesemnate tonuri de gri, în acest program se fata prin apelarea:

Image<Gray, Byte> image = new Image<Gray, Byte>( width, height);

Clasa Imaginea <TColor, TDepth> automat gestionează memoria și colectează gunoiul. Odată ce „garbage collector” a decis că nu mai există nici o referire la obiectul Image <TColor, TDepth>, se va apela metoda Disposed() care eliberează memoria. Timpul de cînd „garbage collector” decide să cedeze imaginea nu este garantată. Atunci când se lucrează cu o imagine mare, se recomandă pentru curățarea memoriei să apelăm metoda Disposed(). Pentru a obține culoarea unui pixel scriem Bgr color = img[y, x]; Pentru a seta culoarea unui pixel scriem: img[y,x] = color; Metoda Draw() din obiectul Image< Color, Depth> poate fi folosită pentru a desena diferite tipuri de obiecte, inclusiv designuri, linii, cercuri, dreptunghiuri, elipse, cutii, precum și contururi. Se poate utiliza documentația și IntelliSense ca un ghid pentru a descoperi funcționalitatea funcției Draw().

Clasa EigenObjectRecognizer este construită pentru a recunoaște fețele, utilizînd algoritmul PCA (Principle Components Analysis). Pentru a crea obiectul apelăm unul din cele 3 constructori: EigenObjectRecognizer(Image<Culoare_sur, Byte>[], MCvTermCriteria), EigenObjectRecognizer(Image<Culoare_sur, Byte>[],  String[], MCvTermCriteria), EigenObjectRecognizer(Image<Culoare_sur, Byte>[], String[], Double, MCvTermCriteria), – se creează obiectul recunoscut folosind datele tranning și a parametrilor specifici. Această clasă dispune de 12 metode: CalcEigenObjects(Image<Culoare_sur, Byte>[], MCvTermCriteria, Image<Culoare_sur, Single>[], Image<Culoare_sur, Single>) – calculează valorile specifice a imaginii. EigenDecomposite(Image<Culoare_sur, Byte>, Image<Culoare_sur, Single>[], Image<Culoare_sur, Single>) – descompune imaginea în valori propii, folosind vectorii specifici. EigenProjection(Single[])-având în vedere valoarea vectorului, reconstruim imaginea proiectată. Equals(Object) – stabilește dacă obiectul specificat este egal cu obiectul curent. Finalize() – elimină obiectul și eliberează memoria. FindMostSimilarObject(Image<Culoare_sur, Byte>, Int32, Single, String) – caută obiectul similar. GetEigenDistances(Image<Culoare_sur, Byte>) – obținem distanța Eucladiana. GetHashCode() – obținem hash code. GetType() – obținem tipul. MemberwiseClone() – creează o copie superficial al obiectului curent. Recognize(Image<Culoare_sur, Byte>) – încearcă să recunoască imaginea și returnează numele imaginii recunoscute. ToString() – returnează un string care reprezintă obiectul curent.

FilterInfoCollection este o clasă care returnează o listă cu numele dispozitivelor video. În această aplicație se utilizează clasa Util. Această clasă conține 4 metode și 2 variabile:

setCameraindex() – setăm numeral de ordine a camerei video, getCameraindex() – obținem numeral de ordine a camerei video, setCamera() – setăm numele camerei, getCamera() – obținem numele camerei.

Componentele de bază

Windows Forms sunt componente reutilizabile care încapsulează funcționalitatea interfeței cu utilizatorul și sunt utilizate în partea client al aplicației Windows. Un control este o componentă pe o formă utilizată pentru a afișa informații sau acceptarea datelor introduse de utilizator.

Componentul Crystal Report este un component de raportare care poate genera rapoarte de la diverse surse de date, cum ar fi baze de date, fișiere XML. Crystal Report este integrat în mediu de dezvoltare Microsoft Visual Studio. Cu ajutorul Crystal Reports se poate crea rapoarte simple, dar are și instrumente pentru a produce rapoarte complexe. Crystal Reports este compatibil cu cele mai multe medii de dezvoltare populare cum ar fi C#, VB.NET etc.

PictureBox oferă o regiune dreptunghiulară pentru o imagine. Acesta suportă multe formate de imagine și are o dimensiune ajustabilă. Se pot accesa fișiere de imagine de pe disc sau de pe internet. Se poate redimensiona imagini în mai multe moduri diferite.

MenuStrip adaugă o bară de meniu pentru program Windows Forms. Cu această comandă, adăugăm o zonă de meniu, apoi se adaugă elementele de meniu. Pentru a adăuga acțiuni de elementele din MenuStrip fatam dublu click pe elementul dorit și apoi va fi introdus un handler eveniment Click unde vom scrie codul propriu-zis.

DataGridView este un component care afișează conținutul dintr-o sursă de date. Acesta are formă de tabel. În primul rând, ar trebui să utilizăm DataGridView atunci cînd avem nevoie pentru a afișa informații în coloane, spre exemplu: numere, nume, ID-uri și alte atribute stocate într-o bază de date.

DataAdapter este un obiect care utilizează logica internă pentru a lua date dintr-o bază de date și introducerea lor într-un obiect. În această aplicație DataAdapter are rolul de legătură dintre baza de date și DataGridView.

TextBox permite utilizatorilor să introducă date de tip litere sau cifre. Acesta fata parte din platforma Windows Forms și este utilizat în aplicații desktop. TextBox are multe evenimente și proprietăți. Pentru a accesa textul din TextBox trebuie să scriem codul sursă.

Button este o componentă interactivă care permite utilizatorilor să comunice cu aplicația. Butonul poate fi apăsat cu ajutorul mouse-ului sau a tastaturii. Butonul este necesar pentru a efectua o acțiune atunci cînd utilizatorul fata click sau apasă o tastă pe tastatură. Componenta Button are multe evenimente și proprietăți. Cu ajutorul acestor evenimente creăm logica programelor.

Ghidul utilizatorului

Calitatea imaginii și performanța video sunt influențate de următorii factori:

Cantitatea de lumină pe subiect;

Setarea de rezoluție a web-camerei;

Puterea calculatorului.

Dacă experimentăm un semnal video în mișcare lentă, cu întreruperi sau cu anumite culori șterse, încercăm să adăugăm o lampă mică în zona care nu va fi vizibilă în cadru. Aceasta va lumina zona de vizualizare a webcam-ului și va oferi o imagine video mult mai naturală, cu niște culori mult mai precise.

Interfața grafică (GUI) a aplicației este simplă și utilizatorul cu ușurință interacționează cu ea.  Interfața grafică oferă pictograme și indicatori vizuali, în contrast cu interfețele bazate pe text, care oferă doar nume de comenzi (ce trebuie tastate) sau navigația text.

Fereastra de bază a aplicației este formată din:

Meniu;

Fereastra privind datele persoanelor (numele, prenumele și fața detectată);

Fereastra pentru detectare și recunoaștere a feței;

4 butoane:

Refresh – reîmprospătare;

Add User – adăugăm o persoană nouă;

Show Persons – afișăm toate persoanele din baza de date;

Information – afișăm toată informația.

CameraWeb (Sistemul automat conectează camera web, și transmite în regim live).

Meniul este compus din 5 itemi, iar fiecare item este compus din subitem:

File:

Exit – închide toate conexiunile și toate procesele.

Fata Detection – sunt 3 algoritmi de recunoaștere, descrise în capitolul 2.

Correlation – aplicăm algoritmul de corelație pentru recunoașterea fețelor;

Moment – aplicăm algoritmul indici de moment pentru recunoașterea feței;

PCA – algoritmul Pricipalul Component Analist.

View – mărimea interfeței grafice inclusiv a imaginii:

25 % – imaginea capturată foarte mică 25% ;

50 % – imaginea este jumătate 50 %;

75 % – imaginea este medie 75%;

100 % – imaginea foarte largă 100%.

Camera:

Start Camera – Pornim web-camera;

Stop Camera – Oprim web-camera;

Update Camera – Reîmprospătăm web-camera;

Reconect – Oprim, apoi pornim web-camera;

Select Camera – Selectăm web-camera dorită din camerele web disponibile.

Help:

User Guide – ghidul utilizatorului;

About – Detalii despre program.

Pentru a interacționa mai ușor cu aplicația, sunt următoarele keyboard shortcuts:

Standard shortcuts

Main interfata

Camera

Option

Fereastra privind datele persoanele – ne arată toate datele persoanei recunoscute, dacă persoana nu este în bază de date, atunci ne informează că așa persoană este de nerecunoscut, dacă nu s-a detectat nici o persoană atunci aceste cîmpuri sunt libere.

Fereastra pentru detectare și recunoaștere a feței – aici se află imaginea propriu-zisă obținută cu ajutorul camerei web. Dacă în imagine a fost detectată o față atunci programul o evidențiază într-un chenar roșu. După compararea feței cu cele din baza de date, apare următorul rezultat: dacă a fost recunoscută atunci este afișat numele și prenumele persoanei, în caz contrar ne afișează mesajul „persoană necunoscută”. De asemenea putem să setăm camera web după bunul plac, fatam click drept și putem să setăm dimensiunea și contrastul, să aplicăm anumite filtre, să mărim sau să micșorăm imaginea.

Pentru a introduce datele personale despre persoane în baza de date, apăsăm butonul Add User. Se deschide o fereastră nouă. În această fereastră introducem numele și prenumele și apăsăm butonul ADD. Sistemul introduce automat în baza de date, datele personale despre persoană, inclusiv și fotografia. Dacă așa persoană există în baza de date, o să ne informeze cu un mesaj. Dacă cîmpurile Nume și Prenume sunt libere, atunci o să primim un mesaj de informare. Cîmpurile Nume și Prenume obligatoriu trebuie să fie completate. Putem să adăugăm cîte persoane dorim în baza de date.

Butonul Show Persons returnează o listă cu toate persoanele existente în baza de date, cu informația adițională, cum ar fi: imaginea feței, numele și prenumele persoanei și data înregistrării în baza de date. Noi putem să căutăm persoanele după nume sau prenume, și după intervalul de timp. Avem două posibilități ca să vizionăm: în tabelul propriu-zis și în format raport.

Cu ajutorul butonului Refresh putem să reîmprospătăm toate datele din baza de date.

Butonul Information returnează o listă cu informația: cînd și la ce oră persoana a fost detectată. Putem să căutăm informația după nume, prenume și dată. De asemenea, putem să vizualizăm și în format raport sau să descărcăm fișiere pdf.

Din meniu putem să selectăm camera preferată din cele disponibile. Dacă nu selectăm nici o cameră atunci sistemul v-a afișa un mesaj, dacă sistemul nu dispune de cameră atunci ne v-a afișa mesajul corespunzător.

Dacă avem nevoie de ajutor cu ușurință accesăm din meniu sau apăsăm tasta F1. Aici este descris în detaliu tot ce ține de aplicație și de algoritm pentru recunoaștera feței.

Testarea produselor finale

În această secțiune sunt prezentate rezultatele obținute prin aplicarea diferitelor tehnologii pentru a verifica calitatea aplicației elaborate. Am testat algoritmii descriși în capitolul 2 în două moduri: recunoașterea și detectarea feței mascate, și recunoașterea și detectarea feței prin diferite niveluri de iluminare.

Recunoașterea și detectarea feței mascate

Pentru a testa algoritmii de recunoaștere a feței, am mascat cîteva fețe, cum ar fi: mustața, barbă sau ochelari. De asemenea, am testat la mai multe camere web.

Prin intermediul programului care l-am elaborat și l-am descris în capitolul 3, am determinat numărul de recunoașteri corecte a feței. Rezultatele le-am introdus în Tabelul 1. În baza tabelului 1 am construit graficul dependenței algoritmilor de fețe mascate din Figura 3.1.

Tabelul 1. Rezultatele de recunoaștere a fețelor cu elemente suplimentare

După cum se poate observa din tabelul 1, la recunoașterea fețelor mascate, cei mai buni algoritmi sunt PCA și Corelare.

Fig. 3.2. Dependența de fețe mascate

Recunoașterea și detectarea feței prin diferite niveluri de iluminare

Softul dat l-am testat prin diferite niveluri de iluminare: de la nivelul întunecat la cel luminos. Datele obținute sunt prezentate în tabelul 2, și în figura 3.3. În baza acestor rezultate am construit diagrama figura 3.4.

Fig. 3.3. Diferite niveluri de iluminare

Tabelul 2. Rezultatele de recunoaștere a fețelor la diferite niveluri de iluminare

După cum se poate observa din tabelul 2, recunoașterea fețelor prin diferite niveluri de iluminare, cele mai bune rezultate sunt la algoritmii PCA și Corelare.

Fig. 3.4. Dependența de iluminare

Înregistrarea și afișarea din baza de date

În această secțiune prezint rezultatele inserării imaginilor în baza de date, înainte de a fi înregistrate în baza de date, fiecare imagine trebuie normalizată. În procesarea imaginii, normalizarea este un proces care schimbă intervalul de valori de intensitate ale pixelilor. O imagine digitală pe 8 biți de dimensiuni 1024 x 1024 pixeli necesită 106 biți, adică un spațiu foarte mare, de aceea memoria ocupă un loc important în sistemele de prelucrare de imagini. Imaginile stocate în baza de date au dimensiunea de 100 x 100 pixeli. Corectarea imaginilor digitale se referă la înlăturarea sau minimizarea degradării cunoscute într-o imagine. Reducerea zgomotului unei imagini se poate realiza prin înlocuirea unui pixel cu media lui și a vecinilor lui pe o regiune variabilă și este cu atât mai eficientă cu cât regiunea este mai mare, însă astfel imaginea apare mai încețoșată.

Fig. 3.5. Imagini stocate în baza de date

Concluzii la capitolul 3

În scopul de a cerceta mai bine algoritmii de recunoaștere a fețelor, am dezvoltat o aplicație pentru PC, utilizînd limbajul de programare C# și mediu de programare Microsoft Visual Studio. Această aplicație ne permite să ne conectăm la camera web și în timp real să detectăm, și să recunoaștem fața utilizînd diferiți algoritmi. În acest capitol, am testat recunoașterea fețelor mascate cu diferite elemente, cum ar fi: ochelari, barbă. De asemenea, am studiat influența nivelurilor de iluminare asupra rezultatelor finale. În urma acestui capitol am ajuns la concluzia că la recunoașterea fețelor mascate cei mai buni algoritmi sunt Corelarea și PCA. Algoritmul de corelare și indici de moment sunt mai puțin sensibili la modificările nivelurilor de iluminare, în schimb algoritmul PCA este foarte sensibil la așa schimbări. Având în vedere că algoritmul de corelație și PCA au arătat rezultate foarte bune la recunoașterea fețelor, la elaborarea sistemelor de recunoaștere a fețelor mai bine utilizăm algoritmul corelația sau combinația dintre PCA și algoritmul indice de moment.

CONCLUZII GENERALE ȘI RECOMANDĂRI

Prelucrarea imaginilor este un domeniu complex, dinamic, cu numeroase aplicații în diverse domenii. Noile tehnologiii folosite în industria circuitelor integrate au permis aplicarea a noi algoritmi și metode pentru extragerea informațiilor utile din imagine: algoritmi paraleli, clasificatoare bazate pe rețele neuronale etc.

Există acum diverse implementări de sisteme de timp real, bazate pe prelucrarea de imagini, sisteme utilizate în industria militară, medicină, sisteme de control automat a proceselor industriale. S-au adus diverse îmbunătățiri pentru sisteme de procesare a amprentelor digitale, recunoașterea feței, a scrisului. Pentru zonele aglomerate sau de interes strategic au fost proiectate și implementate sisteme de securitate și supraveghere bazate pe vederea artificială.

De asemenea, prelucrarea computerizată a imaginilor are un rol foarte important în medicină, în domeniul tehnicii medicale: temografia asistată de calculator, analiza și interpretarea imaginilor microscopice celulare. În centrele de cercetare din universități s-au creat sisteme autonome mobile (roboți mobili) și care le folosesc pentru deplasare sau luarea diverșilor tipuri de decizii subsisteme de vedere artificială.

Sistemul prezentat oferă o interfață grafică cu ajutorul căreia interacțiunea dintre sistem și utilizator se fata cu ușurință. Sistemul a fost proiectat pentru a putea detecta și recunoaște fețele și compararea lor cu fotografiile existente în baza de date. După recunoaștere, utilizatorul are posibilitatea de a obține informația despre persoană.

Ca exemplu cu privire la aplicația dată, vreau să spun că acest sistem nou în domeniul tehnic, poate fi utilizat în instituții publice, unde fiecare lucrător este verificat dacă își respectă programul de lucru. Accesarea sistemului va determina posibilitatea de recunoaștere a feței fiecărui utilizator, indiferent de vîrstă și profesie.

Detecția automată a feței în imagini este deja o obișnuiță în epoca noastră, deoarece avem multe camere video, atît în calculator, telefoane mobile, camere de supraveghere sau camere video clasice. Funcționalitatea camerelor foto digitale contribuie la dezvoltarea tehnologiilor și astfel, recunoașterea feței este un factor necesar în ansamblul tehnologic contemporan. Sistemul de securitate, verificare și control sunt elementele de bază din identificarea unei persoane în programul de recunoaștere a feței. Controlul automat al feței constituie recunoașterea imaginii personale ale fiecărui individ.

Noile paradigme contribuie la crearea dialogului dintre om și calculator, interfețele date formează noi imagini, etichetează și evoluează sistemul foto-video. Etichetarea unei persoane demonstrează paradigma acestui sistem de recunoaștere a feței, astfel rezultatele aplicației se văd tocmai atunci cînd fiecare individ își vede detectarea feței pe ecranul programului. Etichetarea imaginilor în sfera internetului dezvoltă ceea ce înseamnă „meta-informații”, adică ce se află dincolo de informații. Imaginea are rolul de a întări informațiile, de a le reprezenta sub o nouă formă. Astfel, o imagine folosită pentru internet sintetizează unele informații scrise, pentru a ușura vizionarea utilizatorului într-un domeniu oarecare.

O altă sugestie de folosire a acestui program este utilizarea sistemului dat în domeniul milităriei și la controlul vamal, pentru a combate terorismul și infractorii. Sistemul dat va verifica identitatea personală.

Prin urmare, sistemul de recunoaștere este bazat pe diferiți algoritmi, ceea ce permite procesarea imaginii în timp real dintr-o cameră și recunoașterea feței, care ulterior va fi introdusă în baza de date. Acest program de recunoaștere a fețelor poate fi folosit în diverse domenii, pentru verificarea și evaluarea identității.

BIBLIOGRAFIE

Aziz U. B., Flinchbaugh B. E., Performance Analysis of Fata Recognition Algorithms on TMS320C64x, SPRA874, Texas Instruments, dec. 2002

Batur A. U., Hayes M. H., Linear Subspaces for Illumination-Robust Fata Recognition, in Proc. IEEE Conf. Computer Vision and Pattern Recognition, 2001, pp.296-301

Biometrics: Overview. Biometrics.cse.msu.edu. 6 September 2007. Retrieved 2012

Brunelli R. and Poggio T., Fata Recognition: Features versus Templates, IEEE Trans. on PAMI, 1993

Daugman J., High confidence visual recognition of persons by a test of statistical indepen-dence, IEEE Trans. Pattern Analysis. Machine Intelligence 15 (1993) 1148.

Dehghan M. and Faez K. Farsi Handwritten Character Recognition with Moment Invariants, International Conference on Digital Signal Processing Vol. 2, pp. 507-510.

Goldstein J., Harmon L. D., Lesk A.B., Identification of Human Fatas, Proc. IEEE, May 1971, Vol. 59, No. 5, 748-760.

Gupta R., Saxena A. K., Survey of Advanced Fata Detection Techniques, in Image Processing, International Journal of Computer Science and Management Research, Vol.1, Issue 2, ISSN 2278-733X, September 2012, pp. 156-164.

Hightower J., Borriello G., Principal component analysis, IEEE Computer, August 2007.

Hyvarinen A., Karhunen J., Independent Component Analysis, New York, John Wiley & Sons, 2001

Hu M. K., Visual problem recognition by moment invariant, IRE Trans. Inform. Theory, Vol. IT-8, pp. 179-187, Feb. 1962.

J. B. Pride, Sociolinguisti aspects of language learning and teaching, Oxford Univ, 1979.

Kimmel R., Sapiro G., The Mathematics of Fata Recognition, SIAM News, Retrieved, 2003-04-30.

Lynn Beighley, Head First SQL, O’REILLY, p. 352-355, 2012

Perju V.L., Casasent D.P., Ciubotaru O.P. The systems for persons’ identification and verification on the basis of fata correlation recognition. In Optical Pattern Recognition XVII. David P. Casasent, Tien-Hsin Chao, Editors. Proc. SPIE 6245 (2006).

Perju V.L., Casasent D.P., Perju V.V., Zavrotschi S. N. Optical-electronic moments features based recognition system controlled by parameters of the input images. In Optical Pattern Recognition XIV. David P. Casasent, Tien-Hsin Chao, Editors. Proc. SPIE 5106, p.241-248 (2003).

Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, Digital Image Processing Using Matlab, Prentice Hall, 2004.

Savvides M., Vijaya B. V. K. and Khosla P. K., Robust, Shift-Invariant Biometric Identification from Partial Fata Images, SPIE Defense & SecuriO, Synposium, Biometric Technologies for HumanIdentification (OR51) 2004.

Scott Klein, Herve Roggero, Pro SQL Database for Windows, APRESS, p. 10-50, 2011

Sirovich L., Kirby M., A Low-Dimensional Procedure for the Characterization of Human Fatas, J. Optical Soc. Am. A, 1987, Vol. 4, No.3, 519-524.

Thernstrom Tobias, Weber Ann, Microsoft SQL server 2008 – Database Development, GrantMaster, p.100-120 (2009)

Turk M. A., Pentland A. P., Eigenfatas for recognition, J. of Cognitive Neuroscience, vol. 3, no. 1, pp. 71-86, 1991

Turk M. A., Pentland A. P., Fata Recognition Using Eigenfatas, in Proc. IEEE Conf. Computer Vision and Pattern Recognition, 1991, pp. 586-591.

Turk M. A., Pentland A. P., Looking at People Sensing for Ubiquitous and Wearable Computing, IEEE Trans. Pattern Analysis and Machine Intelligence, 2000, pp. 107-119.

Viola P., Jones M., Rapid object detection using a boosted cascade of simple features, in the proceedings of the conference on computer vision and pattern recognition, CVPR, 2001.

Viola P., Jones M. J., Robust Real-Time Fata Detection, in the International Journal of Computer Vision (IJCV) 57(2), pag. 137-154, Kluwer Academic Publishers, 2004.

Vijaya B.V.K., Savvides M., Xie C, Correlation Pattern Recognition for Fata Recognition, Proceedings of the IEEE 94, 1963–1976 (2006)

Werner Christian, SQLite ODBC Driver, GrantMaster, 2009

Williams, Mark., Better Fata-Recognition Software. Retrieved 2008-06-02.

Wu J., Zhou Z.H., Fata recognition with one training image per person, Pattern Recognition Letters, vol. 23, pp. 1711-1719, 2002

Yang M., Kriegman H., Ahuja D. J., Detecting Fatas in Images , IEEE Trans. on PAMI, 24(1), pag. 34-58, 2002

Zhu Y., De Silva L.C., Ko C.C. Using moment invariants and HMM in facial expression recognition, IEEE Southwest Symposium Image Analysis and Interpretation, pages 305-309, April 2000.

Брилюк Д., Cтaровойтов В., Методы рacпознaвaния человекa по изобрaжению лицa. Доcтоинcтвa и недоcтaтки, cрaвнение, website: http://daily.sec.ru, 2002

BIBLIOGRAFIE

Aziz U. B., Flinchbaugh B. E., Performance Analysis of Fata Recognition Algorithms on TMS320C64x, SPRA874, Texas Instruments, dec. 2002

Batur A. U., Hayes M. H., Linear Subspaces for Illumination-Robust Fata Recognition, in Proc. IEEE Conf. Computer Vision and Pattern Recognition, 2001, pp.296-301

Biometrics: Overview. Biometrics.cse.msu.edu. 6 September 2007. Retrieved 2012

Brunelli R. and Poggio T., Fata Recognition: Features versus Templates, IEEE Trans. on PAMI, 1993

Daugman J., High confidence visual recognition of persons by a test of statistical indepen-dence, IEEE Trans. Pattern Analysis. Machine Intelligence 15 (1993) 1148.

Dehghan M. and Faez K. Farsi Handwritten Character Recognition with Moment Invariants, International Conference on Digital Signal Processing Vol. 2, pp. 507-510.

Goldstein J., Harmon L. D., Lesk A.B., Identification of Human Fatas, Proc. IEEE, May 1971, Vol. 59, No. 5, 748-760.

Gupta R., Saxena A. K., Survey of Advanced Fata Detection Techniques, in Image Processing, International Journal of Computer Science and Management Research, Vol.1, Issue 2, ISSN 2278-733X, September 2012, pp. 156-164.

Hightower J., Borriello G., Principal component analysis, IEEE Computer, August 2007.

Hyvarinen A., Karhunen J., Independent Component Analysis, New York, John Wiley & Sons, 2001

Hu M. K., Visual problem recognition by moment invariant, IRE Trans. Inform. Theory, Vol. IT-8, pp. 179-187, Feb. 1962.

J. B. Pride, Sociolinguisti aspects of language learning and teaching, Oxford Univ, 1979.

Kimmel R., Sapiro G., The Mathematics of Fata Recognition, SIAM News, Retrieved, 2003-04-30.

Lynn Beighley, Head First SQL, O’REILLY, p. 352-355, 2012

Perju V.L., Casasent D.P., Ciubotaru O.P. The systems for persons’ identification and verification on the basis of fata correlation recognition. In Optical Pattern Recognition XVII. David P. Casasent, Tien-Hsin Chao, Editors. Proc. SPIE 6245 (2006).

Perju V.L., Casasent D.P., Perju V.V., Zavrotschi S. N. Optical-electronic moments features based recognition system controlled by parameters of the input images. In Optical Pattern Recognition XIV. David P. Casasent, Tien-Hsin Chao, Editors. Proc. SPIE 5106, p.241-248 (2003).

Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, Digital Image Processing Using Matlab, Prentice Hall, 2004.

Savvides M., Vijaya B. V. K. and Khosla P. K., Robust, Shift-Invariant Biometric Identification from Partial Fata Images, SPIE Defense & SecuriO, Synposium, Biometric Technologies for HumanIdentification (OR51) 2004.

Scott Klein, Herve Roggero, Pro SQL Database for Windows, APRESS, p. 10-50, 2011

Sirovich L., Kirby M., A Low-Dimensional Procedure for the Characterization of Human Fatas, J. Optical Soc. Am. A, 1987, Vol. 4, No.3, 519-524.

Thernstrom Tobias, Weber Ann, Microsoft SQL server 2008 – Database Development, GrantMaster, p.100-120 (2009)

Turk M. A., Pentland A. P., Eigenfatas for recognition, J. of Cognitive Neuroscience, vol. 3, no. 1, pp. 71-86, 1991

Turk M. A., Pentland A. P., Fata Recognition Using Eigenfatas, in Proc. IEEE Conf. Computer Vision and Pattern Recognition, 1991, pp. 586-591.

Turk M. A., Pentland A. P., Looking at People Sensing for Ubiquitous and Wearable Computing, IEEE Trans. Pattern Analysis and Machine Intelligence, 2000, pp. 107-119.

Viola P., Jones M., Rapid object detection using a boosted cascade of simple features, in the proceedings of the conference on computer vision and pattern recognition, CVPR, 2001.

Viola P., Jones M. J., Robust Real-Time Fata Detection, in the International Journal of Computer Vision (IJCV) 57(2), pag. 137-154, Kluwer Academic Publishers, 2004.

Vijaya B.V.K., Savvides M., Xie C, Correlation Pattern Recognition for Fata Recognition, Proceedings of the IEEE 94, 1963–1976 (2006)

Werner Christian, SQLite ODBC Driver, GrantMaster, 2009

Williams, Mark., Better Fata-Recognition Software. Retrieved 2008-06-02.

Wu J., Zhou Z.H., Fata recognition with one training image per person, Pattern Recognition Letters, vol. 23, pp. 1711-1719, 2002

Yang M., Kriegman H., Ahuja D. J., Detecting Fatas in Images , IEEE Trans. on PAMI, 24(1), pag. 34-58, 2002

Zhu Y., De Silva L.C., Ko C.C. Using moment invariants and HMM in facial expression recognition, IEEE Southwest Symposium Image Analysis and Interpretation, pages 305-309, April 2000.

Брилюк Д., Cтaровойтов В., Методы рacпознaвaния человекa по изобрaжению лицa. Доcтоинcтвa и недоcтaтки, cрaвнение, website: http://daily.sec.ru, 2002

Similar Posts

  • Radiatia Solara

    CUPRINS INTRODUCERE…………………..………………………..………………………………………4 CAPITOLUL 1. RADIAȚIA SOLARA………………………………………………………………6 1.1. Radiația solara extraterestra………………………. ……………..….………………………..…6 1.2. Radiația solară pe suprafața Pământului……………………………………………………..6 1.3. Unghiul de incidență pentru o suprafață plană înclinată…. ……………………………8 1.4. Încercarea instalațiilor solare……………………………. ……………………………………….10 1.5. Caracteristicile energiei solare si particularitățile radiației solare în zona Moldovei …………………………………………………………………………………………………………………………………13 CAPITOLUL 2. CONVERSIA ENERGIEI SOLARE……………………………………..19 2.1. Etape de conversie a radiației…

  • Problematica Robotilor

    CUPRINS CAPITOLUL 1. INTRODUCEREA ÎN PROBLEMATICA ROBOȚILOR 1.1. Roboți mobili 1.2. Clasificarea roboților mobili 1.3. Utilizări ale roboților mobili 1.4. Structura unui robot mobil 1.4.1. Structura mecanică a roboților mobili 1.4.2. Sistemul de locomoție cu roți 1.5. Acționarea roboților mobili 1.6. Sistemul senzorial 1.7. Tipuri de roboti mobili CAPITOLUL 2. STRUCTURA SISTEMULUI MOBIL 2.1. Placa…

  • Mecanizarea Completa a Lucrarilor Agricole

    Cap.1.Introducere Pentru dezvoltarea si modernizarea fazei tehnico-materiale a agriculturii si datorita programului de sporire a productiei de furaje agricole vegeteale si animale s-au inteprins masuri drastice petru mecanizarea completa a tuturor lucrarilor agricole, atat a lucrarilor de camp, cat si din zootehnie. O conditie hotaratoare pentru dezvoltarea cresterii animalelor este asigurarea fazei furajere.In elaborarea proiectului…

  • Studiul Problemelor de Eficienta Energetica

    Studiul problemelor de eficiență energetică Cap. I. – Introducere în studiul problemelor de eficiență energetică În condițiile economiei de piața și a unei acerbe concurente, eficienta economica a oricarei activitati de productie este esentiala. Noul concept de management global tinde să diminueze importanta unei stricte specializari și presupune formarea unor specialisti cu puternice cunostinte interdisciplinare,…

  • Tehnologia de Realizare a Izolarii Bazei

    Capitolul 6. Tehnologia de realizare a izolării bazei Procedeul de protecție antiseismică a clădirilor se aplică la construcțiile existente sau construcțiilor noi situate în zone cu seismicitate medie sau ridicată, reprezentând clădiri civile, scoli, spitale, monumente de arhitectură, clădiri industriale, precum și obiective vitale a căror funcționare în timpul cutremurelor și imediat după cutremure, trebuie…

  • Educatia Si Formarea Profesionala a Adultilor Calea de Viitor a Europei

    Educația și formarea profesională a adulților calea de viitor a Europei CUPRINS Introducere I. Importanța formării profesionale a adulților – ANC coordonatorul formării profesionale în România – formală – informală – cadrul legislativ al formării profesionale II. Obiectivele strategiei de formare profesionala 2011-2020 Metode de realizare a formării profesionale – analiza SWOT – EPALE III….