SHINDU RAMANDITA

Berpacu menjadi yang terbaik

Sistem Pendeteksi Wajah (Face Detection)

diposting oleh shinduramandita-fst09 pada 02 April 2012
di Kuliah - 0 komentar

Merancang sistem untuk pengakuan konten gambar otomatis adalah tugas non-sepele yang telah dipelajari untuk berbagai aplikasi. Komputer pengakuan objek tertentu dalam gambar digital telah dimasukkan untuk digunakan dalam industri manufaktur, intelijen dan pengawasan, dan database gambar katalogisasi untuk beberapa nama. Dalam proyek ini, algoritma prototipe untuk mengotomatisasi mendeteksi wajah manusia dalam foto digital dikembangkan dan dapat berfungsi sebagai pengantar untuk pekerjaan di masa depan dalam mendeteksi orang dalam gambar.

Beberapa sistem yang dirancang untuk tujuan menemukan orang atau wajah dalam gambar telah diusulkan oleh sejumlah kelompok peneliti. Beberapa program, seperti Rowley, Baluja, dan sistem Kanade dikembangkan di Carnegie Mellon, mengandalkan pelatihan dari jaringan saraf dan langkah-langkah komputasi jarak antara pelatihan set untuk mendeteksi wajah. Paket perangkat lunak lain ada yang dapat mengenali wajah dalam gambar diketahui mengandung wajah manusia di suatu tempat di gambar. Proyek ini difokuskan pada deteksi wajah pada citra berwarna sewenang-wenang dan berbeda dari jenis pertama dari sistem dalam hal itu bergantung pada kombinasi warna dan grayscale informasi. Selain itu, ia tidak memerlukan proses yang memakan waktu dari pelatihan jaringan saraf atau tindakan komputasi jarak antara setiap wilayah mungkin dalam gambar. Sistem yang dikembangkan juga berbeda dari paket-paket software yang mengenali fitur wajah karena, dalam skenario ini, tugas ini adalah untuk mendeteksi daerah wajah dalam gambar sewenang-wenang, dan tidak untuk menganalisis gambar diketahui mengandung wajah.

Proses deteksi wajah dalam proyek ini didasarkan pada pendekatan dua langkah. Pertama, gambar disaring sehingga daerah hanya mungkin mengandung kulit manusia ditandai. Filter ini dirancang menggunakan fungsi dasar pengolahan matematika dan gambar di MATLAB dan didasarkan pada filter kulit dirancang untuk Finder Orang Berkeley-Iowa Naked. Modifikasi pada algoritma filter yang dibuat untuk menawarkan perbaikan subjektif untuk output. Tahap kedua melibatkan mengambil daerah kulit yang ditandai dan menghapus daerah paling gelap dan paling terang dari peta. Daerah dihapus telah terbukti melalui tes empiris untuk sesuai dengan daerah-daerah di wajah yang biasanya mata dan alis, hidung, dan mulut. Dengan melakukan teknik analisis citra beberapa dasar, daerah dengan "lubang" yang diciptakan oleh threshholding dapat dianggap mungkin wajah. Tahap kedua adalah kombinasi visual yang Khoros pemrograman dan fungsi MATLAB. Seluruh sistem sepenuhnya otomatis dan tidak membutuhkan intervensi pengguna menyimpan untuk menunjukkan nama-nama file yang benar untuk diproses pada setiap tahap. Meskipun tidak diimplementasikan dalam proyek ini, program yang lebih maju bisa menerapkan langkah ketiga untuk membedakan antara ukuran lubang dan hubungan spasial untuk membuat sistem deteksi yang lebih kuat.

Skin Filter

Filter pada kulit didasarkan pada Fleck dan algoritma Forsyth dengan beberapa modifikasi. Sebagai perbandingan, orang mungkin ingin berkonsultasi laporan mereka yang dipublikasikan di Web di http://www.cs.uiowa.edu/ ~ mfleck / visi-html / telanjang-skin.html. Dalam proyek ini, filter dibangun di MATLAB. Beberapa fungsi pemrosesan citra tingkat rendah sudah dibangun ke dalam MATLAB lingkungan dan kali ini proyek yang diperlukan untuk diinvestasikan dalam membangun algoritma filter yang bekerja, tidak menulis kode untuk fungsi-fungsi tingkat rendah. Penjelasan tentang bagaimana filter beroperasi akan rinci dalam bagian ini, dan filter kulit berfungsi sebagai ditulis dalam format MATLAB disediakan dalam Lampiran A.

Original RGB image


Gambar berwarna masukan harus dalam format RGB dengan nilai intensitas warna mulai dari 0 sampai 255. Karena pembatasan pada kecepatan dan kinerja, proyek ini digunakan gambar lebih kecil dari 250x250 di daerah. Matriks RGB adalah "mengejar" untuk diduga mencegah desaturation ketika gambar diubah dari ruang warna RGB ke ruang warna IRgBy. Nilai intensitas yang lebih besar dari 10 pixel dari setiap tepi dalam salah satu dari tiga pesawat warna diatur sebagai respon nol-gambar. Nilai ini dikurangi dari tiga pesawat semua warna.

Citra RGB ditransformasikan ke log-lawan (IRgBy) nilai-nilai dan dari nilai-nilai amplitudo tekstur, warna, dan saturasi dihitung. Konversi dari RGB ke lawan log-dihitung menurut sebuah variasi dari rumus yang diberikan oleh Fleck & amp; Forsyth:

I = [L (R) + L (B) + L (G)] / 3

Rg = L (R)-L (G)

Dengan = L (B) - [L (G) + L (R)] / 2

L (x) operasi didefinisikan sebagai L (x) = 105 * log10 (x +1). Para Rg dan Dengan matriks ini kemudian disaring dengan filter median windowing dengan sisi panjang 4 SKALA *. Nilai SKALA dihitung sebagai nilai integer terdekat (tinggi + lebar) / 320. M Edian filtering adalah tingkat membatasi langkah selama proses deteksi kulit, dan dapat ditingkatkan dengan menerapkan pendekatan dari filter median windowing seperti yang disarankan oleh multi-cincin Operator Fleck itu.

Sebuah peta amplitudo tekstur digunakan untuk mencari daerah informasi tekstur rendah. Kulit dalam gambar cenderung memiliki tekstur sangat halus dan jadi salah satu kendala pada daerah kulit mendeteksi adalah untuk memilih hanya daerah-daerah dengan tekstur sedikit. Peta tekstur yang dihasilkan dari matriks I dengan langkah-langkah berikut:

1. Median menyaring saya dengan jendela dengan panjang 8 * SKALA di sisi

2. Kurangi gambar disaring dari matriks saya asli

3. Mengambil nilai absolut dari selisih dan filter median hasil dengan jendela panjang 12 * SKALA di sisi.

Texture Amplitude Map

Warna dan saturasi digunakan untuk memilih daerah-daerah yang warnanya cocok dengan kulit. Konversi dari lawan log untuk rona rona adalah hue = (atan2(Rg,By)), dimana nilai yang dihasilkan dalam derajat. Konversi dari lawan log untuk saturatio n adalah saturation = sqrt(Rg2+By2). Menggunakan kendala pada amplitudo tekstur, warna, dan saturasi, daerah kulit dapat ditandai.

Hue Image

 

Saturation Image

 

Jika sebuah pixel jatuh ke salah satu dari dua rentang itu ditandai sebagai kulit dalam array peta kulit biner dimana 1 sesuai dengan koordinat menjadi pixel kulit pada gambar asli dan 0 sesuai untuk pixel non-kulit. Kisaran diperbolehkan baik:

(1) tekstur <4,5, 120 <160, 10 <60

(2) tekstur <4,5, 150 <180, 20 <80

Array peta kulit dapat dianggap sebagai citra biner hitam dan putih dengan daerah kulit (nilai 1) muncul sebagai putih. Daerah kulit biner peta diperluas menggunakan operator pelebaran dan elemen penataan disk. Hal ini membantu untuk memperbesar daerah kulit peta untuk mencakup piksel perbatasan kulit / latar belakang, daerah dekat rambut atau fitur lain, atau daerah desaturated. Pelebaran ini menambahkan 8-piksel terhubung ke tepi objek. Dalam implementasi ini, pelebaran itu dilakukan secara rekursif lima kali untuk hasil terbaik. Daerah peta diperluas kemudian diperiksa terhadap kendala lunak pada nilai-nilai warna dan saturasi, independen dari tekstur. Jika titik ditandai dalam peta sesuai dengan kulit pixel dengan 110 <= warna <= 180 dan 0 <= saturasi <= 130, nilai tetap 1 di peta.

Skin Map

Filter kulit tidak sempurna, baik karena kesalahan coding atau kendala yang tidak benar, karena ada kecenderungan untuk merah sangat jenuh dan kuning untuk dideteksi sebagai kulit. Seringkali ini menyebabkan masalah dalam deteksi wajah ketika merah atau kuning besar p objek atterned hadir dalam gambar. Lihat hasilnya dalam Lampiran B untuk beberapa contoh output kulit filter dan kasus-kasus dimana filter kulit ditandai sangat jenuh merah dan kuning seperti kulit.

III. Face Detection Dari Daerah Kulit

Kulit biner peta dan gambar asli bersama-sama digunakan untuk mendeteksi wajah dalam gambar. Teknik ini bergantung pada threshholding daerah kulit dengan benar agar lubang di daerah wajah akan muncul di bagian alis, mata, mulut, atau hidung. Secara teoritis, semua daerah lain di kulit akan memiliki fitur sedikit atau tidak ada dan tidak ada lubang akan dibuat kecuali pada fitur wajah yang diinginkan. Metode ini tampaknya menjadi terlalu menyederhanakan masalah, tetapi dengan beberapa batasan tambahan pada ukuran lubang atau hubungan spasial, bisa membuktikan menjadi alternatif yang kuat, cepat, dan sederhana untuk proses jaringan syaraf tiruan.

Deteksi obyek wajah patah menjadi dua bagian, yang pertama menggunakan Khoros visual yang pemrograman aplikasi dan bagian kedua menggunakan program MATLAB. Kedua Khoros ruang kerja ditunjukkan pada Lampiran A bersama dengan kode MATLAB. Semua fungsi yang digunakan adalah teknik analisis standar gambar (algoritma mengisi lubang, threshholding, terhubung komponen label, dll) yang harus langsung, meskipun mungkin membosankan, untuk membangun dalam bahasa pemrograman.

Langkah pertama adalah untuk memastikan bahwa peta kulit biner terdiri dari daerah padat (yaitu tidak ada lubang). Menutup lubang di peta kulit adalah penting karena nantinya program ini mengasumsikan bahwa lubang hanya adalah mereka yang dihasilkan setelah operasi threshholding. Sebuah penutupan lubang dilakukan pada gambar peta kulit dengan elemen penataan disk 3x3 dan kemudian gambar ini dikalikan dengan konversi grayscale dari gambar asli. Hasilnya adalah intensitas citra grayscale hanya menampilkan bagian-bagian kulit yang mengandung gambar.

Skin Map Multiplied by Grayscale Image

Untuk meningkatkan kontras, hamparan histogram dilakukan pada gambar yang dihasilkan grayscale. Hal ini membantu untuk membuat daerah gelap dan terang jatuh ke dalam rentang intensitas lebih dapat diprediksi dan mengkompensasi agak untuk efek pencahayaan pada gambar. Gambar sekarang dapat threshholded untuk menghapus piksel paling gelap dan paling ringan. Percobaan menunjukkan bahwa ambang batas yang dapat diterima adalah untuk mengatur semua piksel dengan nilai antara 95 dan 240 sama dengan 1 dan mereka piksel atas dan di bawah cutoff sama dengan 0. Untuk gambar tes yang paling, batas ini bekerja cukup baik. Citra biner yang diciptakan oleh ambang kemudian dilewatkan melalui komponen yang terhubung pelabelan untuk menghasilkan "positif" gambar menunjukkan daerah kulit yang berbeda.

Positive Labeled Image

Sebuah gambar negatif berikutnya dihasilkan yang akan menunjukkan lubang hanya sebagai objek. Lubang penutupan citra biner yang dihasilkan oleh operasi ambang dilakukan dengan elemen penataan disk 4x4. Hasilnya dikurangi dari citra biner asli dan perbedaannya hanya menunjukkan benda lubang.

Negative ‘Hole’ Image

Gambar lubang negatif dan gambar berlabel positif ini kemudian digunakan bersama-sama untuk menemukan yang objek dalam gambar mungkin wajah. Pertama lubang-lubang pada gambar negatif yang hanya 1 piksel dalam ukuran dihapus karena cenderung mewakili lubang anomali. Sebuah teknik yang lebih baik mungkin untuk menghapus semua kecuali tiga obyek lubang terbesar dari citra negatif. Obyek lubang diperluas menggunakan pelebaran dan ini gambar biner ini kemudian dikalikan dengan gambar berlabel positif. Produk ini adalah gambar di mana hanya piksel yang mengelilingi lubang yang hadir. Karena citra positif diberi label, program ini dapat dengan mudah menentukan objek memiliki lubang, dan yang tidak. Sebuah fungsi sederhana yang menghitung bilangan bulat muncul dalam gambar adjacency lubang dan kemudian menghasilkan output gambar yang berisi komponen yang terhubung diberi label yang memiliki nilai ini.

Face Objects


 Karena proses ini hanya bergantung pada menemukan lubang di objek threshholded, ada kemungkinan lebih besar untuk menemukan wajah-wajah tanpa perspektif. Kelemahan adalah bahwa ada juga risiko yang lebih besar untuk mendeteksi non-wajah objek. Hasil pengujian menunjukkan kinerja yang sangat baik ketika wajah menempati sebagian besar gambar, dan kinerja yang wajar pada gambar-gambar yang menggambarkan orang sebagai bagian dari sebuah adegan yang lebih besar. Untuk membuat program lebih kuat, objek wajah terdeteksi bisa ditolak jika mereka tidak menempati daerah yang signifikan dalam gambar. Kelemahan lain dari proses ini adalah bahwa gambar di mana orang muncul sebagian berpakaian cenderung akan menghasilkan peta kulit yang sangat besar. Hasilnya adalah sering merupakan pelabelan seluruh kepala, lengan, dan dada sebagai satu objek. Dengan demikian temuan wajah adalah melebih-lebihkan objek kulit potensial. Semua hal dipertimbangkan, teknik ini dikembangkan selama lebih dari sepuluh minggu menunjukkan janji dan dengan beberapa "kecerdasan" ditambahkan ke algoritma, bisa menghasilkan hasil yang sangat diandalkan pada berbagai macam gambar.

Matlab Code
This code is used for the skin filter and the final face region detection. The Khoros workspaces are long gone, but it is easy enough to write Matlab code to do the same thing.

skinfilt.m

skinmap.m

logopp.m

face.m

fscript.m

Sumber:

Jay P. Kapur
EE499 Capstone Design Project Spring 1997
University of Washington Department of Electrical Engineering

http://web.archive.org/web/20090723024922/http:/geocities.com/jaykapur/face.html

Tinggalkan Komentar

Nama :
E-mail :
Web : tanpa http://
Komentar :
Verification Code :