Silahkan Melihat Tutorial di website kami dengan nyaman ENJOY YOUR LIFE ☕

OPEN CV :: Face Detection dan Face Recognition Eigenface


"Face Recognition" adalah daerah yang sangat aktif dalam Computer Vision dan bidang Biometrics, seperti yang telah dipelajari dengan penuh semangat selama 25 tahun dan akhirnya menghasilkan aplikasi dalam keamanan, robotika,-interface manusia-komputer, kamera digital, game dan hiburan.

"Face Recognition" umumnya melibatkan dua tahap:

Face Detection, dimana foto yang dicari untuk menemukan wajah apapun (yang ditampilkan di sini sebagai sebuah persegi panjang hijau), maka pengolahan citra membersihkan citra wajah untuk pengakuan mudah.

Face Recognition, di mana wajah dideteksi dan diproses dibandingkan dengan database wajah yang dikenal, untuk menentukan siapa orang tersebut (yang ditampilkan di sini sebagai teks merah).

Sejak tahun 2002, Face Detection dapat dilakukan cukup andal seperti dengan OpenCV Detector Wajah, bekerja di sekitar 90-95% dari foto yang jelas dari orang yang melihat ke depan ke kamera. Hal ini biasanya sulit untuk mendeteksi wajah seseorang ketika mereka dilihat dari samping atau di sudut, dan kadang-kadang ini memerlukan 3D Kepala Pose Estimasi. Hal ini juga bisa sangat sulit untuk mendeteksi wajah seseorang jika foto tidak terlalu terang, atau jika bagian wajah lebih cerah daripada yang lain atau memiliki bayangan atau buram atau memakai kacamata, dll

Face Detection dan Face Recognition Eigenface
Face Detection dan Face Recognition Eigenface

Namun, Face Recognition jauh lebih dapat diandalkan dibandingkan Face Detection, umumnya 30-70% akurat. Face Recognition telah menjadi bidang yang kuat dari penelitian sejak tahun 1990, namun masih jauh dari teknik yang handal, dan masih terus diciptakan setiap tahun seperti yang tercantum di bagian bawah halaman ini (Alternatif untuk Eigenfaces seperti pengenalan wajah 3D atau pengakuan dari video).

kami akan menunjukkan kepada Anda bagaimana menggunakan Eigenfaces (juga disebut "Principal Component Analysis" atau PCA), sebuah metode yang sederhana dan populer 2D Face Recognition dari foto, dibandingkan dengan metode umum lainnya seperti Neural Networks atau Fisher Faces.

Untuk mempelajari teori tentang bagaimanaeigenface bekerja, Anda harus membaca Face Recognition Dengan Eigenface dari Majalah Servo (April 2007), dan mungkin algoritma matematika.

Pertama saya akan menjelaskan bagaimana menerapkan Eigenfaces untuk pelatihan offline dari baris perintah, berdasarkan Servo Majalah tutorial dan source-code (Mei 2007).

Setelah saya telah menjelaskan kepada Anda bagaimana pelatihan offline dan pengenalan wajah secara offline bekerja dari baris perintah, saya akan menjelaskan bagaimana hal ini dapat diperluas untuk pelatihan online langsung dari webcam secara realtime

Contoh Program Source Code

Face Detection dan Face Recognition Eigenface

Implementasi pengenalan wajah menggunakan teknik Eigenfaces dilakukan dengan Octave 4.0 alat. Oktaf sangat mirip dengan Matlab, tetapi didistribusikan secara bebas di bawah GNU lisensi publik.

Face Detection dan Face Recognition Eigenface
Face Detection dan Face Recognition Eigenface

Gambar sampel diambil dari database wajah AT & T. Ada banyak database wajah lain yang bebas diberikan untuk pekerjaan penelitian, sehingga Anda dapat mencoba yang lain atau Anda dapat menggunakan Anda sendiri.

Face Detection dan Face Recognition Eigenface
Face Detection dan Face Recognition Eigenface

Langsung saja berikut ini adalah langkah-langkahnya :

Langkah 1

Langkah pertama adalah untuk menciptakan satu set gambar pelatihan yang sesuai.

Untuk pekerjaan saya, saya menggunakan 20 gambar wajah grayscale 92 piksel lebar 112 piksel tinggi dari 20 orang yang berbeda. (Gambar indeks 10 set pertama 20 folder dalam database AT & T)

Face Detection dan Face Recognition Eigenface
Face Detection dan Face Recognition Eigenface

Berikut kode segmen kehendak pengaturan variabel global kita

 Source Code


  1. clear all

  2. close all

  3. clc

  4. pkg load image %Image Paket ini tidak datang secara default di oktaf

  5. printf("\n==================================================================");

  6. printf("\n============ Face Recognition menggunakan metode Eigenfaces ============");

  7. printf("\n==================================================================\n");


  8. % jumlah gambar pada training set Anda sesuai dengan AT & T database yang wajah

  9. M=20;

  10. % indeks gambar menurut AT & T database yang wajah di folder

  11. imgIndex=10;


  12. %Pilihan std dan mean.

  13. %Hal ini dapat nomor yang dekat dengan std dan berarti sebagian besar gambar.

  14. um=100;

  15. ustd=80;

  16.  

  17.  



Langkah 2

Semua gambar harus diperlakukan sebagai salah satu vektor gambar. Untuk implementasi ini, langkah berikutnya adalah untuk menggabungkan baris piksel dalam setiap gambar, sehingga semua gambar dari set pelatihan disimpan dalam matriks tunggal, di mana setiap kolom dari matriks adalah gambar.

Setelah segmen kode akan memilih set gambar pelatihan kami dan membuat vektor gambar ini. Kode ditulis sesuai dengan struktur folder AT & T.

 Source Code


  1. printf("\n============ Mulai Membangun Set Gambar ============");

  2. printf("\n..... Memproses .....");

  3. %membaca dan menampilkan gambar dari AT & T database yang wajah ;

  4. S=[]; %img matrix

  5. for j=1:M

  6. for i=1:10

  7. if(i==imgIndex) % Mendapatkan gambar set mengatakan untuk proses

  8. str=strcat('s',int2str(j),'/',int2str(i),'.pgm');

  9. eval('img=imread(str);');

  10. [irow icol]=size(img); % mendapatkan jumlah baris (N1) dan kolom (N2)


  11. %Creating the Vector

  12. temp=reshape(img',irow*icol,1); %menciptakan (N1 * N2) x1 matriks

  13. S=[S temp]; %S adalah matriks N1 * N2xM setelah menyelesaikan urutan

  14. end

  15. end

  16. end

  17. figure(1);

  18. for i=1:size(S,2)

  19. smpImg=reshape(S(:,i),icol,irow);

  20. smpImg=smpImg';

  21. subplot(ceil(sqrt(M)),ceil(sqrt(M)),i)

  22. imshow(smpImg);

  23. title(sprintf('Image #%i', i));

  24. if (i==3)

  25. title('Pelatihan Set Gambar','fontsize',18)

  26. end

  27. end

  28. printf("\n============ End Building the Image Set ============\n");

  29.  




Langkah 3

Ketika vektor gambar siap, kita menormalkan setiap gambar dalam vektor untuk mengurangi efek negatif akibat kondisi pencahayaan dan latar belakang. Langkah ini harus dilakukan sebelum membuat gambar vektor, jika gambar tidak berbagi resolusi umum pixel dan, mata dan mulut tidak selaras di semua images.As gambaran database wajah AT & T diciptakan sesuai, kita lakukan ini sebagai ke-3 langkah.

 Source


  1. printf("\n============ Mulai Bangunan Normalisasi set Gambar ============");

  2. printf("\n..... Memproses .....");

  3. %Di sini kita mengubah mean dan std dari semua gambar. Kami menormalkan semua gambar.

  4. %Hal ini dilakukan untuk mengurangi kesalahan akibat kondisi pencahayaan.

  5. for i=1:size(S,2)

  6. temp=double(S(:,i));

  7. m=mean(temp);

  8. st=std(temp);

  9. S(:,i)=(temp-m)*ustd/st+um;

  10. end


  11. %menampilkan gambar normalisasi

  12. figure(2);

  13. for i=1:size(S,2)

  14. img=reshape(S(:,i),icol,irow);

  15. img=img';

  16. subplot(ceil(sqrt(M)),ceil(sqrt(M)),i)

  17. imshow(img);

  18. title(sprintf('Normalized #%i', i));

  19. if (i==3)

  20. title('Normalisasi set pelatihan','fontsize',18)

  21. end

  22. end

  23. printf("\n============ Akhir dari membangun set gambar ============\n");

  24.  




Langkah berikutnya akan bisa dibaca ditulisan berikutnya ;)

Hasil akhirnya adalah sebagai berikut :


Face Detection dan Face Recognition Eigenface
Face Detection dan Face Recognition Eigenface

Semoga bermanfaat :)




1 comment:

  1. assalamulaikum cara membuat aplikasi ya gimana ya menggunakan octave

    ReplyDelete

OPEN CV :: Face Detection dan Face Recognition Eigenface