PERANCANGAN SISTEM PENGENALAN DAN PENYORTIRAN KARTU POS BERDASARKAN KODE POS DENGAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK OLEH ARIF MIFTAHU5R ROHMAN (2200 100 032) Pembimbing: Dr. Ir Djoko Purwanto, M.Eng, Ph.D
Latar Belakang Penanganan benda pos merupakan proses yang membutuhkan banyak sumber daya manusia, terlebih bila dilaksanakan seluruhnya secara manual. Benda pos saat ini membutuhkan penanganan yang lebih cepat dan handal, yang tidak dapat dipenuhi oleh tenaga manusia saja.
Permasalahan Pada tugas akhir ini permasalahan yang akan diangkat yaitu : Mengambil citra dari sebuah kartu pos Memproses citra sehingga kode posnya dapat dikenali
Batasan Masalah Berdasarkan permasalahan yang diangkat, maka dapat ditentukan batasan masalah dalam perancangan : Kartu pos mempunyai bentuk standar seperti kartu pos pada umumnya Kode pos ditulis pada tempat kartu pos (sejumlah 5 kotak ) Tulisan kode pos tidak melebih tempat kode pos
Dasar Teori Akuisisi Citra Digital akuisisi citra digital dapat terjadi diperlukan tiga komponen utama yang harus dipenuhi yaitu 1. sumber cahaya 2. obyek atau benda yang akan diamati 3. sensor peka cahaya atau kamera
Representasi Citra Citra dapat direpresentasikan sebagai data array 2 dimensi, setiap data merepresentasikan intensitas citra pada posisi relatif tersebut. Tiap elemen pada data array 2 dimensi disebut pixel Pada representasi greylevel dari citra digital, tiap pixel direpresentasikan sebagai data byte (8 bit), citra berwarna tiap pixel direpresentasikan sebagai kombinasi dari 3 warna primer (Red Green Blue) atau yang biasanya disebut sebagai RGB. Untuk citra warna 24 bit 0 (0,0) (0,1) (0,2)......... (1,0) (1,1) (1,2)......... (3,3) (3,4)
Thresholding Pengolahan citra yang bertujuan untuk memisahkan pixel citra dari latar belakangnya. Thresholding mengubah citra greylevel menjadi citra biner. Proses pengubahan ini didasarkan pada suatu nilai batas tertentu yang dikenal sebagai nilai threshold. Setiap pixel yang nilai intensitasnya dibawah nilai threshold akan diset menjadi 0 (black) sedangkan yang tidak akan diset menjadi 1 (white). g( i, j) = 1; f ( i, j) T 0; f ( i, j) < T
Neural Network Metode Neural Network dikembangkan dari jaringan syaraf biologis pada manusia yang memiliki kemampuan mempelajari dan mengingat dari pengalaman yang pernah ditemui. U0z W0z 1 1 Input 1 X1 Z1 Input 2 X2 Z2 Y1 Output 1 Input 3 X3 Z3 Y2 Output 2 Input 4 X4 Z4 Input 5 X5 Z5 OUTPUT LAYER INPUT LAYER HIDDEN LAYER Uxz Wzy Arsitektur Neural network Neuron dikelompokan dalam layer-layer Setiap layer dapat terdiri dari satu atau lebih neuron Setiap arsitektur Neural network minimal terdiri dari dua layer (input dan output) dapat juga ditambah dengan layer hidden/tersembunyi. Layer hidden sendiri bisa juga lebih dari satu dalam arsitektur Neural network.
Parameter Neural Network parameter parameter yang harus ditentukan sebelum dimulainya tahap pelatihan oleh artificial neural network Jumlah Layer Jumlah unit tiap layer Inisialisasi Bobot Nilai Learning Rate Nilai koefisien Momentum Iterasi / Epoch Error Tolerance Convergen
Algoritma Backpropagation Neural Network Menghitung semua nilai hasil output pada layer hidden Zj untuk keseluruhan input (Xi). Lalu menghitung nilai hasil output pada layer output untuk semua input Zj pada layer hidden. Menghitung error yaitu nilai sinyal error k pada layer output dan layer hidden. j pada layer hidden dan layer input. Menyesuaikan bobot yang terletak antara layer input dan layer hidden, dan selanjutnya antara layer hidden dan layer output. Memperhatikan apakah total error yang terjadi dapat diterima (E<Emaks) dan/atau jumlah iterasi yang dilakukan telah melewati batas iterasi yang ditetapkan. Jika telah memenuhi syarat proses training, maka nilai bobot yang didapat akan disimpan dan proses training selesai. Jika belum, proses training akan diulang. 1 1 wo1 vo1 Y1 Yk Ym wok wom w11 wj1 wp1 w1k wjk wpk w1k wjk wpk Z1 Zj Zp voj vop v11 vi1 vn1 v1j vij vnj v1p vip vnp X1 Xi Xn
PERANCANGAN SISTEM PENGENAL KODE POS Input Citra Perancangan ini meliputi proses pengambilan citra yang dibantu dengan menggunakan Pegasus CapturePRO 3.0, pengolahan citra dengan menggunakan ImagXpress 7, dan penentuan parameter backpropagation neural network. Deteksi Warna Binarize Deteksi Kotak Bounding Box Pola Pengenalan Pola Pola Proses Training Running Pengenalan Bobot / Weight Pola Kode Pos
Pengambilan Citra Untuk mengambil citra kartu pos, kartu pos dilewatkan tempat sensor yang terdiri dari kotak dan lampu. Rancangan kotak sensor diilustrasikan pada gambar 3.2. Kotak digunakan agar kamera tidak terpengaruh cahaya dari luar, lampu digunakan sebagai sumber cahaya internal sehingga pengambilan citra kartu pos dapat dilakukan dalam kondisi gelap maupun terang dan noise citra kartu pos dapat dikurangi.
Deteksi Warna Deteksi Warna bertujuan untuk mendapatkan citra kartu pos Algoritma Deteksi Warna 1. CapturePRO 3.0 menangkap setiap citra dibawah web-cam 2. Citra dirubah dalam bentuk DIB kemudian ditransfer ke ImagXpress pertama. 3. Di dalam ImagXpress pertama ini dilakukan deteksi warna. Warna hitam adalah warna yang hanya ada pada kartu pos. 4. Jika ImagXpress menemukan warna hitam maka DIB di trasfer ke ImagXpress kedua untuk dilakukan pemprosesan citra kartu pos. CapturePRO ImagXpress I Warna <40 Y ImagXpress II T
Binarize Binarize adalah metode yang terdapat dalam komponenimagxpress. Metode ini megubah gambar RBG atau Grayscale menjadi gambar biner atau gambar hitam putih. Metode ini digunakan untuk memisahkan citra dengan background-nya. Biasanya digunakan untuk gambar terdiri dari teks hitam di atas background abu-abu yang sulit untuk dibedakan. Hasil dari metode ini menganti teks menjadi warna hitam dan background abuabu menjadi warna putih. PIX2.Binarize (PegasusImaging.WinForms.ImagXpress7.enumBinarizeMode.BIN _MODE_QUICK_TEXT, 50, 100, 0, 1, 0,200, PegasusImaging.WinForms.ImagXpress7.enumBinarizeBlur.BIN_B LUR_SMART);
Deteksi Kotak Setiap angka kode pos terletak pada kotak, untuk mengetahui kode pos harus diketahui letak kotak kode pos. Kotak dibentuk oleh garis panjang dan garis lebar. Garis panjang dibentuk oleh titik-titik dalam arah horizontal sedangkan garis lebar dibentuk oleh titiktitik dalam arah vertikal Algoritma Deteksi Warna 1. Proses deteksi kotak dimulai dengan mencari titik hitam pada ImagXpress kedua. 2. Jika ditemukan titik hitam yang membentuk garis vertikal dan horizontal maka kotak berhasil dideteksi. 3. Ketika kotak berhasil dideteksi, citra dari kotak ditransfer ke ImagXpres ketiga dalam bentuk DIB. T Titik Hitam Titik =Hitam Y Panjang & Lebar = P & L Y ImagXpress III T
Bounding Box ttktengah Bounding box digunakan untuk mendapat informasi mengenai posisi, panjang dan lebar angka yang terdapat pada ImagXpress ketiga. Semua informasi ini digunakan untuk menentukan pola gambar angka. Algoritma Deteksi Warna 1. mencari perubahan warna hitam ke putih secara horizontal pada tengah ImagXpress ketiga. 2. bergerak ke kiri untuk mencari batas kiri, posisi batas kiri didapat dari perubahan warna hitam ke putih secara vertikal yang jumlahnya lebih kecil dari 2. 3. Bergerak ke kanan untuk mencari batas kanan, posisi batas kanan didapat dari perubahan warna hitam ke putih secara vertikal yang jumlahnya lebih kecil dari 2. 4. bergerak ke atas untuk mencari batas atas, posisi batas atas didapat ketika tidak ditemukan warna hitam pada pencarian secara horizantal dimulai dari batas kiri sampai batas kanan. Bergerak ke bawah untuk mencari batas bawah, posisi batas bawah didapat ketika tidak ditemukan warna hitam pada pencarian secara horizantal dimulai dari batas kiri sampai batas kanan T T Y Y X-- inpy < 2 X++ inpy < 2 Y-- == 0 Y++ == 0 T Y Y T pxkiri, pxkanan pyatas, pybawah
Bounding Box Perubahan warna vs Bounding Box Biasa Bounding box biasa mencari batas-batas ketika pertama kali ditemukan warna hitam
Pola Pola yang digunakan dalam tugas akhir ini menggunakan enam logika. Keenam logika ini dapat mewakili tiap angka secara berbeda. 1. Jika pada tengah bounding box ditemukan 3 buah garis / lengkungan horizontal maka logika V dan VI bernilai true 2. Jika pada kiri atas ditemukan garis / lengkungan vertikal maka logika I akan bernilai true 3. Jika pada kanan atas ditemukan garis / lengkungan vertikal maka logika II akan bernilai true 4. Jika pada kiri bawah ditemukan garis / lengkungan vertikal maka logika III akan bernilai true 5. Jika pada kanan bawah ditemukan garis / lengkungan vertikal maka logika IV akan bernilai true 1 I II 2 III IV 3 I II V III IV VI
Gambar Pola 6 Logika
Pola 6 Logika vs Pola Biasa Pola Biasa direpresentasikan dengan pixel 1. Tergantung panjang dan lebar pixel citra 2. Perlu normalisasi untuk ukuran berbeda 3. Pola menjadi unik Pola 6 Logika 1. Tidak tergantung panjang dan lebar pixel citra 2. Tidak perlu normalisasi untuk angka yg sama 3. Pola hampir sama untuk satu jenis angka
Pengenalan Pola Pengenalan pola menggunakan artificial neural network dibuat dengan menggunakan perangkat lunak C#. Pengenalan Pola dengan neural network terdiri dari 2 bagian : training dan running. Training hanya dilakukan satu kali sampai dicapainya error yang diinginkan, proses training menghasilkan bobot / weight. Running digunakan untuk mengambil keputusan dari input pola yang diberikan dengan menggunakan bobot / weight dari proses training sebelumnya
Training Pada proses training terdiri dari dua bagian : Feedforward dan Backpropagation. Feedforward Input pola sebanyak 6 unit akan disebar ke input layer dari jaringan. Selanjutnya akan dikirim ke hidden layer. Pada input layer akan ditambahkan bias yang juga menjadi input untuk hidden layer. Output dari hidden layer dihasilkan dari fungsi aktivasi bipolar sigmoid yang kemudian dikalikan pada masingmasing hidden yang dipengaruhi oleh bobot dan pola input yang ada. Kemudian Output hidden layer menjadi input untuk output layer, dan prosedur yang diterapkan pada output layer akan sama dengan layer yang sebelumnya. Backpropagation. Hasil dari output layer akan dibandingkan dengan target jika terdapat error yang lebih besar dari error yang diinginkan, maka akan dihitung faktor δ pada output selanjutnya nilai ini akan menuju ke hidden layer untuk menghitung faktor δ pada layer ini. Seteah didapatkan angka koreksi, bobot lama diperbarui untuk dikirim ke jaringan pada iterasi selanjutnya, sampai errornya <= Emaks Update Bobot START Data Pola Input Masukkan Parameter Y Hitung Aktivasi Hidden & Output Hitung Error Error > Emaks END T
Running Pada proses running hanya terdiri dari Feedforward. Feedforward menghasilkan keputusan output dari input pola yang diberikan. Bobot / Weight yang digunakan berasal dari proses Training sebelumnya START Load Bobot Masukkan Pola Hitung Aktivasi Hidden & Output Keputusan ulang END
Pengujian Sistem secara off-line Pengujian angka time new roman
Pengujian angka tulisan tangan
Pengujian angka tulisan tangan
Pengujian angka tulisan tangan
Pengujian Sistem secara on-line Pengujian deteksi warna waktu kartu pos masuk tempat sensor No. Kecepatan Hasil Keterangan 1 Kecepatan rendah Terdeteksi 2 Kecepatan tinggi Terdeteksi Pengujian deteksi kotak waktu kartu pos masuk tempat sensor No. Kecepatan Hasil Keterangan 1 Kecepatan rendah Terdeteksi 2 Kecepatan tinggi Tidak Terdeteksi Garis vertikal menjadi terputus-putus, kadang kadang hilang
Kesimpulan Telah didapat pola angka yang dapat mewakili variasi tulisan angka Telah dapat mengenali pola citra kode pos dengan metoda Artificial Neural Network yang menggunakan bahasa pemrograman C#. Setelah melakukan serangkaian proses pembelajaran dengan 1000 iterasi dan error sebesar 0,1 maka diperoleh struktur jaringan saraf tiruan yang optimal yaitu tersusun atas 6 node input, 10 node hidden, dan 4 node output, sedangkan nilai learning rate sebesar 0.2, dan nilai momentum sebesar 0.5. Setelah melakukan proses testing maka diperoleh tingkat keberhasilan jaringan dalam pengenalan angka untuk kondisi offline sebesar 100% untuk angka time new roman standart, 85 % untuk tulisan tangan standart kondisi on-line hampir sama dengan kondisi off-line ketika beberapa kondisi terpenuhi : kamera menangkap citra tanpa ada kerusakan pada citra, deteksi kotak tepat.
Saran Memberikan pola inputan yang bervariasi pada proses pembelajaran agar tingkat pengenalan jaringan lebih bagus. Perlu adanya penggunaan metoda lain untuk meningkatkan keberhasilan jaringan dalam proses pengenalan Menggunakan kamera yang mampu menangkap benda yang bergerak dengan baik.
Pendahuluan Latar Belakang Permasalahan Batasan Masalah Dasar Teori Akuisisi Citra Digital Representasi Citra Thresholding Perancangan Sistem Pengambilan Citra Deteksi Warna Binarize Deteksi Kotak Bounding Box Pola Pengenalan Pola Neural Network Analisa dan Pembahasan Menu Utama Pengujian Sistem secara off-line Pengujian Sistem secara on-line Kesimpulan dan Saran *
Input Pola Training dan Tes Pola
SISTEM PENGENAL KODE POS
Sekian Terima Kasih