"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 |
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 EigenfaceImplementasi 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 |
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 |
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 |
Berikut kode segmen kehendak pengaturan variabel global kita
Source Code
- clear all
- close all
- clc
- pkg load image %Image Paket ini tidak datang secara default di oktaf
- printf("\n==================================================================");
- printf("\n============ Face Recognition menggunakan metode Eigenfaces ============");
- printf("\n==================================================================\n");
- % jumlah gambar pada training set Anda sesuai dengan AT & T database yang wajah
- M=20;
- % indeks gambar menurut AT & T database yang wajah di folder
- imgIndex=10;
- %Pilihan std dan mean.
- %Hal ini dapat nomor yang dekat dengan std dan berarti sebagian besar gambar.
- um=100;
- ustd=80;
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
- printf("\n============ Mulai Membangun Set Gambar ============");
- printf("\n..... Memproses .....");
- %membaca dan menampilkan gambar dari AT & T database yang wajah ;
- S=[]; %img matrix
- for j=1:M
- for i=1:10
- if(i==imgIndex) % Mendapatkan gambar set mengatakan untuk proses
- str=strcat('s',int2str(j),'/',int2str(i),'.pgm');
- eval('img=imread(str);');
- [irow icol]=size(img); % mendapatkan jumlah baris (N1) dan kolom (N2)
- %Creating the Vector
- temp=reshape(img',irow*icol,1); %menciptakan (N1 * N2) x1 matriks
- S=[S temp]; %S adalah matriks N1 * N2xM setelah menyelesaikan urutan
- end
- end
- end
- figure(1);
- for i=1:size(S,2)
- smpImg=reshape(S(:,i),icol,irow);
- smpImg=smpImg';
- subplot(ceil(sqrt(M)),ceil(sqrt(M)),i)
- imshow(smpImg);
- title(sprintf('Image #%i', i));
- if (i==3)
- title('Pelatihan Set Gambar','fontsize',18)
- end
- end
- printf("\n============ End Building the Image Set ============\n");
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
- printf("\n============ Mulai Bangunan Normalisasi set Gambar ============");
- printf("\n..... Memproses .....");
- %Di sini kita mengubah mean dan std dari semua gambar. Kami menormalkan semua gambar.
- %Hal ini dilakukan untuk mengurangi kesalahan akibat kondisi pencahayaan.
- for i=1:size(S,2)
- temp=double(S(:,i));
- m=mean(temp);
- st=std(temp);
- S(:,i)=(temp-m)*ustd/st+um;
- end
- %menampilkan gambar normalisasi
- figure(2);
- for i=1:size(S,2)
- img=reshape(S(:,i),icol,irow);
- img=img';
- subplot(ceil(sqrt(M)),ceil(sqrt(M)),i)
- imshow(img);
- title(sprintf('Normalized #%i', i));
- if (i==3)
- title('Normalisasi set pelatihan','fontsize',18)
- end
- end
- printf("\n============ Akhir dari membangun set gambar ============\n");
Langkah berikutnya akan bisa dibaca ditulisan berikutnya ;)
Hasil akhirnya adalah sebagai berikut :
Face Detection dan Face Recognition Eigenface |
Semoga bermanfaat :)
assalamulaikum cara membuat aplikasi ya gimana ya menggunakan octave
ReplyDelete