JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
101
Desain dan Implementasi Field-Programmable Gate Array untuk Identifikasi Citra Wajah Menggunakan Artificial Neural Networks Arief Budiman* dan Prawito Departemen Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Indonesia, Depok 16424, Indonesia *
E-mail:
[email protected]
Abstrak Mikroprosesor menjadi bagian penting dalam dunia elektronika namun kendala yang dihadapi dalam perancangan mikroprosesor adalah mahal dan lamanya fabrikasi. Untuk mengatasi kendala waktu dan biaya fabrikasi, mikroprosesor dapat diimplementasikan dalam field programmable gate array (FPGA). FPGA merupakan piranti yang bersifat dapat dikonfigurasi-ulang (reconfigurable). Pengujian identifikasi secara konvensional seringkali mengalami kegagalan karena keterbatasan kemampuan visual manusia, apalagi jika pengujian harus dilakukan terhadap banyak data. Oleh karenanya suatu sistem cerdas dan secara otomatis diperlukan untuk proses identifikasi. Oleh karenanya desain dan implementasi FPGA untuk aplikasi kecerdasan buatan dalam hal ini ANN, dirasa perlu untuk membuat sistem yang terintegrasi, mampu melakukan inferensi dan melakukan proses belajar sesuai dengan perbedaan lingkungan dan kondisi yang dihadapi dan berbiaya produksi murah.
Abstract Field-Programmable Gate Array Design and Implementation for Face Identification Using Artificial Neural Networks. Micropocessor is an important part in electonics world but the challange in microprocessor design is expensive and long time fabrication. To overcome long time and microprocessor fabrication cost, it can be implemented in field programmable gate array (FPGA). FPGA is a reconfigurable device. Conventional identification test, often fails due to limited human visual capabilities. Especially if involves a large amount of data. So, a particular intelligence system which will work automatically is needed for identification process. FPGA design and implementation for artificial neural networks (ANN) is considerably needed for create an integrated system, has inference ability, learning process ability in many different enviroment / conditions, along with low production cost. Keywords: artificial neural networks, face identification, FPGA
1. Pendahuluan
Perkembangan teknologi yang mengarah ke bidang aplikasi yang rnernerlukan keputusan cepat, yang juga terkadang mengandung risiko tinggi bagi manusia yang terlibat di dalamnya dan kadang memerlukan keputusan kondisional merupakan tempat untuk mengaplikasikan kecerdasan buatan.
Berkembangnya mikroprosesor menjadi bagian penting dalam dunia elektronika. Kendala yang dihadapi dalam perancangan mikroprosesor adalah mahal dan lamanya fabrikasi. Untuk mengatasi kendala waktu dan biaya fabrikasi, mikroprosesor dapat diimplementasikan dalam field programmable gate array (FPGA).
Kemampuan belajar yang menjadi ciri utama kecerdasan buatan dalam hal ini artificial neural networks (ANN) memungkinkan teknik ini mampu melakukan inferensi secara berbeda sesuai dengan perbedaan lingkungan dan kondisi yang dihadapi. ANN yang mampu belajar dari variabel-variabel lingkungan dan dapat beradaptasi dengan lingkungan merupakan langkah maju yang membedakan sistem ini dari yang konvensional [5].
FPGA merupakan piranti yang bersifat dapat dikonfigurasi-ulang (reconfigurable). FPGA memiliki komponen kombinasional dan sekuensial dalam tiap sel logiknya, sehingga memungkinkan FPGA dapat digunakan untuk implementasi rangkaian tersebut. Dengan teknologi FPGA, implementasi rancangan sistem digital dapat dilakukan secara cepat [1-4].
101
102
JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
Gambar 1. Diagram Metode Training
Oleh karenanya desain dan implementasi FPGA untuk aplikasi kecerdasan buatan dalam hal ini ANN, dirasa perlu untuk membuat sistem yang terintegrasi, mampu melakukan inferensi dan melakukan proses belajar sesuai dengan perbedaan lingkungan dan kondisi yang dihadapi dan berbiaya produksi murah yang penerapannya dalam penelitian ini adalah untuk mengidentifikasi citra wajah. Field-Programmeble Gate Array (FPGA). Karakteristik dari FPGA antara lain adalah dapat dirancang sesuai dengan keinginan dan kebutuhan. FPGA adalah sebuah integrated circuit (IC) digital yang berisi sekumpulan blok logika dan blok interkoneksi yang dapat dikonfigurasi. FPGA dapat dikonfigurasi untuk menjalankan banyak sekali fungsi digital (Maxfield, 2004) [1]. FPGA memiliki 3 komponen penyusun yaitu blok logika, blok I/O, dan blok koneksi. Blok-blok logika maupun hubungan antar blok dapat dikonfigurasi [6]. Sistem Identifikasi Citra Wajah. Sistem pengenalan wajah termasuk dalam sistem biometrik yang merupakan sistem outentifikasi yang akan melakukan pengenalan secara otomatis atas identitas seseorang [7]. Sistem identifikasi bertujuan untuk memecahkan identitas seseorang pengguna, pengguna tidak mengklaim atau memberi klaim secara implisit terhadap identitas yang terdaftar, maka dibutuhkan pencocokan satu ke banyak data yang tersimpan. Unjuk kerja dari sistem identifikasi dipengruhi oleh beberapa faktor antara lain faktor akurasi, kecepatan, dan kapasitas penyimpanan data.
Tiap wajah orang memiliki ciri utama yang dapat dijadikan pembeda antara satu dengan yang lain. Semakin baik metode untuk ekstraksi dapat mengumpulkan informasi penting dari wajah, maka akan semakin akurat hasil pencocokan yang didapat. Salah satu metode untuk ekstraksi ciri wajah adalah eigenface. Metode eigenface dikembangkan dari metode principle component analysis (PCA), yang secara matematis dilakukan dengan mencari vektor eigen dari matrik kovarian sekumpulan citra wajah. Metode pengenalan wajah berdasarkan ruang eigen, telah membuktikan bahwa metode ini dapat mengekstrak ciri global yang merupakan informasi relevan dengan wajah secara keseluruhan (Gambar 1).
2. Metode Penelitian Disain FPGA. Spesifikasi FPGA Cayclone III Development Board yang digunakan pada penelitian ini adalah EP3C16: Onboard FPGA, Operating Frequency: 50MHz, Operating Voltage: 1.5-3.3V, Package: QFP240, I/Os: 160, LEs: 15408, RAM: 504kb, Multipliers: 56, PLLs: 4, Debugging/Programming: JTAG. Core LCD digunakan untuk menampilkan karakter ASCII statis dengan mengubah nilai HEX dari hardware FPGA kepada LCD 16 x 2 display panel. Output mengontrol 8-bit bus tri-state bidirectional data panel LCD. Metode “handshake” digunakan untuk mentransfer data ASCII ke panel LCD 16 x 2. Deklarasi VHDL LCD core sebagaimana Gambar 2.
JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
Kartu memori flash adalah perangkat yang berisi memori flash dan controller. Karena relatif berbiaya murah, kartu memori sering digunakan sebagai penyimpanan eksternal untuk aplikasi embedded. SD (secure digital) card adalah format kartu memori yang banyak digunakan. Sebuah kartu SD mendukung dua mode operasi, yaitu SD mode dan SPI mode. Modus SD adalah format proprietary dan menggunakan empat bit untuk transfer data. SPI adalah standar terbuka untuk antarmuka serial dan digunakan luas di sistem embedded. Dalam penelitian ini menggunakan mode SPI untuk koneksi data dengan core FPGA. Protokol serial peripheral interface (SPI) bus adalah serial sinkron data standar yang awalnya dikembangkan oleh Motorola. Menggunakan tiga bit untuk komunikasi, satu untuk clock, satu untuk input data serial, dan satu untuk seri data output. Sebuah bus SPI dapat berisi satu perangkat master dan satu atau lebih perangkat slave. Master menghasilkan sinyal clock dan memulai transfer data. Konseptual diagram dari sebuah bus SPI dengan dua perangkat ditunjukkan pada. Ada dua shift register, satu di master dan satu di slave. Kedua shif register yang terhubung sebagai ring koneksi melalui mosi (untuk "master-out-slave-in") dan miso (untuk "masterin- slave-out ") dan operasi mereka dikendalikan oleh sinyal clock yang sama, SCLK.
103
Untuk lebih memudahkan manajemen pewaktu, FPGA Cyclone terintegrasi dengan Phase-loop lock (PLL) sirkuit. Terdiri dari Pase-frekuensi detektor (PFD), charge pump, filter loop, sebuah VCO (voltage controlled oscillator), dan beberapa frekuensi pembagi dan PS (phase selection) sirkuit. Dalam PLL Cyclone III yang dipakai pada penelitian ini, VCO output diberikan kedua pembagi frekuensi terpisah dan fase sirkuit seleksi untuk mendapatkan dua clock output yang di gunakan untuk clock SDRAM dan clock CPU nios II. Kamera untuk mengambil citra wajah dikendalikan dengan menggunakan kendali bus kamera serial (SCCB). Untuk mengumpulkan data gambar, sistem kontrol SCCB untuk mengkonfigurasi parameter ov9650 sensor Gambar 5. Langkah kendali sederhana. Melalui antarmuka SCCB, kita dapat memodifikasi CMOS ov9650. Dalam mengimplementasikan algoritma ANN ke dalam sebuah chip FPGA dibutuhkan kompiler yang terintegrasi dengan IDE, debug dan programer. Altera sebagai produsen FPGA menyediakan lingkungan pemrograman yang dinamakan Quartus II. IDE ini mendukung bahasa VHDL Verilog HDL, dan terintegrasi dengan system on a programmable chip (SOPC).
Gambar 2. LCD1602 Core Pin Output Data
104
JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
Gambar 3. SDCard Core Pin Input dan Output
Gambar 4. PLL untuk Mengatur Clock SDRAM
Gambar 5. Struktur Kontroler SCCB
JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
105
Gambar 6. Disain dan Implementasi RTL FPGA untuk Identifikasi Wajah yang telah dibuat menggunakan Quartus II IDE
3. Hasil dan Pembahasan Implementasi Identifikasi Citra Wajah. Dalam penelitian ini digunakan data primer citra wajah tampak depan yang diambil dalam kondisi pencahayaan alami. Basis data terdiri dari 100 citra wajah yang diambil dalam ukuran 100 x 100 piksel. Dalam melakukan implementasi desain mengunakan basis data yang merupakan kumpulan citra wajah yang
akan diberi index dengan cara melakukan ekstraksi penciri terhadap kumpulan citra wajah tersebut, dan kemudian input data yang digunakan sebagai masukan dan akan dilakukan proses identifikasi terhadap citra yang sudah diindex-kan. Pada pengujian digunakan 90 citra wajah sebagai basis data dan 10 citra wajah sebagai input data. Sembilan puluh citra wajah sebagai basis data ini terdiri dari 10 kelas wajah, yang terdiri dari 9 citra wajah dengan tingkat
106
JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
kecerahan, pose dan expresi yang berbeda untuk orang yang sama. Pengujian ini untuk mengetahui kemampuan dari sistem dalam menemukan citra wajah orang yang sama dalam basis data dengan pose yang berbeda.
Gambar 7.
Sample Citra Wajah dari dari 10 Orang yg Berbeda
Gambar 7. Interface LCD 1602
Gambar 8. Pembacaan Data pada SD Card
JURNAL ILMIAH ELITE ELEKTRO, VOL. 3, NO. 2, SEPTEMBER 2012: 101-107
107
Dilakukan pengujian fungsionalitas dari rancangan hardware untuk identifikasi citra wajah, antara lain fungsi dari SPI SDCard sebagai penyimpan data citra, serial komunikasi untuk penghubung antara komputer host dengan board FPGA dan antar muka LCD sebagai interface keluaran.
proses learning dapat dihentikan, hal ini dilakukan agar tidak terjadi overfit, yaitu kondisi di mana hasil learning hanya bisa mengenali data-data training set saja dan kurang bisa mengenali data-data lain di luar training.
Pada Gambar 8 dapat dilihat proses transfer data hasil pengolahan data dari board FPGA ke komputer host menggunakan serial JTAG. Format kartu SDcard di seting menggunakan FAT16. Pada Gambar 8 dapat dilihat command untuk mengeksekusi proses, tahapan proses antara lain, ambil citra gambar, training data, kirim data ke host.
FPGA merupakan piranti yang bersifat dapat dikonfigurasi-ulang (reconfigurable). Pengujian identifikasi secara konvensional seringkali mengalami kegagalan karena keterbatasan kemampuan visual manusia, apalagi jika pengujian harus dilakukan terhadap banyak data. Oleh karenanya suatu sistem cerdas dan secara otomatis diperlukan untuk proses identifikasi. Desain dan implementasi FPGA untuk aplikasi kecerdasan buatan dalam hal ini ANN, dirasa perlu untuk membuat sistem yang terintegrasi, mampu melakukan inferensi dan melakukan proses belajar sesuai dengan perbedaan lingkungan dan kondisi yang dihadapi dan berbiaya produksi murah.
Parameter pelatihan neural networks dapat dilihat dari analisis hasil regresi. Jika semua output telah bernilai sama dengan target atau hampir sama maka proses pelatihan dapat dihentikan. Tingkat keberhasilan pengujian dapat pula dilihat dari mean squared error (MSE) dapat dilihat dari grafik nilai terbaik MSE, terjadi pada epochs (satu kali melewati seluruh pelatihan, diikuti oleh pengujian verifikasi yang ditetapkan) 40. Pelatihan yang dilakukan menggunakan 90 citra wajah pada proses training. Proses learning dilakukan dengan menggunakan training set dan dihentikan dalam kondisi tertentu. Pada Gambar 9 dapat dilihat dengan epoch sebesar 50, neural networks sudah dalam keadaan linier maka
Gambar 9. MSE dari Pelatihan Neural Networks
4. Simpulan
Daftar Acuan [1] C. Maxfield, FPGAs: World Class Designs. Newnes/Elsevier, USA, 2009, p.452. [2] A.R. Omondi, FPGA Implementations of Neural Networks, Springer, Heidelberg, Berlin, 2006, p.372. [3] B. Zeidman, Designing with FPGAs and CPLDs, CMP Books, Kansas, 2002, p.220. [4] A. Savran, S. Ünsal, Hardware Implementation of a Feedforward Neural Network Using FPGAs, Retrieved from Department of Electrical and Electronic Engineering, Ege University’s. http://www.emo.org.tr/ekler/21eb0b827c09dd1_ek. pdf, 2007. [5] B. Kosko, Neural Networks and Fuzzy Systems: A Dynamical System Approach to Machine Intelligence, Printice-Hall, Upper Saddle River, New Jersey, 1991, p.224. [6] J. Turley, The Essential Guide to Semiconductors, Printice-Hall, Upper Saddle River, New Jersey, 2002, p.239. [7] S.-K. Song, W.-M. Li, L. Song, Digital WatermarkBased Trademark Checker. Retrieved from www.altera.com/literature/dc/2006/c2b.pdf, 2011.