Senin, 14 Juli 2014

Artificial Neural Network (ANN)

19.58 Posted by Unknown No comments
Artificial Neural Network (ANN) atau jaringan syaraf tiruan adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan perilaku jaringan syaraf manusia (Wikipedia).

Algoritma ANN lahir dari gagasan seorang psikolog Warren McCulloch dan Walter Pitts pada 1943 yang menjelaskan cara kerja jaringan syaraf dengan perangkat jaringan elektronik.

Didalam dunia seismik eksplorasi, algoritma ANN sudah cukup populer diaplikasikan, diantaranya untuk identifikasi noise, estimasi wavelet, analisa kecepatan, analisis gelombang geser, autotracking reflector, prediksi hidrokarbon, karakterisasi reservoir, dll.

Konfigurasi sederhana algoritma ANN dapat dijelaskan pada gambar dibawah ini:






Dari gambar di atas terlihat bahwa, prinsip dasar ANN adalah sejumlah parameter sebagai masukan (input layer) diproses sedemikian rupa didalam hidden layer (perkalian, penjumlahan, pembagian, dll.), lalu diproses lagi didalam output layer untuk menghasilkan sebuah output.

Gambar diatas menunjukkan contoh penerapan ANN untuk data seismik, katakanlah kita memiliki beberapa input seperti impedance (x1), reflection strength (x2), instantaneous frequency (x3),… dll . yang akan digunakan untuk memprediksi porositas reservoir sebagai output. Maka secara sederhana porositas reservoir akan didapatkan dengan mengkalikan setiap sampel data input dengan suatu pembobotan (weight) lalu dijumlahkan, lalu hasil penjumlahan tersebut menjadi input untuk fungsi aktivasi untuk menghasilkan parameter porositas.



Fungsi aktivasi tersebut dapat berupa sigmoid function ataupun hyperbolic tangent function (perhatikan keterangan dibawah ini).

Tentu kita menginginkan agar nilai porositas yang diprediksi semirip mungkin dengan nilai porositas yang sesungguhnya, dengan kata lain kita harus memiliki nilai selisih (baca error) antara nilai prediksi dengan nilai sesungguhnya yang sekecil mungkin, untuk tujuan ini didalam algoritma ANN di atas, kita harus melakukan updating nilai weight untuk masing-masing input.

Reinforcement Learning

16.13 Posted by Unknown No comments
Reinforcement Learning adalah sub area machine learning yang menitikberatkan kepada cara sebuah agent mengambil aksi di lingkungannya. Di sini agent melakukan maksimalisasi pemikiran tentang reward untuk jangka panjang. Reinforcement Learning diinspirasi dari fenomena biologi dan mengelola pengetahuan melalui eksplorasi aktif terhadap lingkungannya. Pada setiap langkah, Reinforcement Learning memilih beberapa aksi yang mungkin dilakukan dan menerima reward dari lingkungan atas aksi spesifik yang dilakukannya. Aksi terbaik yang harus dilakukan di beberapa state tidak pernah diketahui sehingga agent harus mencoba beberapa aksi-aksi dan urutan-urutan aksi yang berbeda serta belajar dari pengalamannnya.

Reinforcement Learning biasanya dideskripsikan sebagai Markov Decission Process (MDP) yang terdiri dati sebuah agent, set state yang mungkin S, set aksi-aksi yang mungkin A(S) untuk semua state S, dan sebuah fungsi reward R(s,a) yang menentukan reward yang diberi lingkungan atas aksi yang dilakukan agent. Fungsi policy pi mendeskripsikan bagaimana agent belajar pada beberapa time-step t. Policy optimal didefinisikan sebahai pi*. Fungsi value V(s,a) mendefinisikan reward total yang diharapkan ketika melakukan aksi a pada state s jika untuk mencapai state berikutnya diikuti policy optimal pi*. Inilah fungsi di mana agent harus belajar untuk memperoleh policy ini. Ilustrasi Reinforcement Learning ditunjukkan pada Gambar 1 berikut ini.



















Reinforcement Learning sangat cocok untuk masalah-masalah terdistribusi. Reinforcement Learning membutuhkan memori dan komputasi yang medium pada setiap node-nya. Reinforcement Learning melakukan mekanisme pemeliharaan beberapa kemungkinan aksi-aksi yang berbeda beserta nilainya. Reinforcement Learning memerlukan waktu untuk mencapai konvergen. Reinforcement Learning mudah diimplementasikan, fleksibel terhadap perubahan topologi, dan mencapai aksi optimum. Contoh implementasi algoritma Reinforcement Learning adalah Q-Learning, Dual RL, TPOT Reinforcement Learning, dan Collaborative Reinforcement Learning.




Decision Tree Learning

16.04 Posted by Unknown No comments
Decision tree adalah salah satu metode klasifikasi yang paling populer karena mudah untuk diinterpretasi oleh manusia. Decision tree adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Konsep dari decision tree adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Manfaat utama dari penggunaan decision tree adalah kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks menjadi lebih simpel sehingga pengambil keputusan akan lebih menginterpretasikan solusi dari permasalahan.




Kelebihan dari metode decision tree adalah:
  • Daerah pengambilan keputusan yang sbelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik.
  • Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode decision tree maka sample diuji hanya berdasarkan criteria atau kelas tertentu.
  • Fleksibel untuk memilih features dari internal nodes yang berbeda, feature yang terpilih akan membedakan suatu criteria dibandingkan criteria yang lain dalam node yang sama. Kefleksibelan metode decision tree ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional.
  • Dalam analisis multivariat, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu untuk mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode decision tree dapat menghindari munculnya permasalahan ini dengan menggunakan criteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.


Kekurangan metode decision tree, yaitu:
  • Terjadi overlap terutama ketika kelas-kelas dan criteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memory yang diperlukan.
  • Pengakumulasian jumlah error dari setiap level dalam sebuah pohon keputusan yang besar.
  • Kesulitan dalam mendesain decision tree yang optimal. Hasil kualitas keputusan yang didapatkan dari metode decision tree sangat tergantung pada bagaimana pohon tersebut didesain.




Decision Making, Learning, Knowledge Management, and Information Technology

15.57 Posted by Unknown No comments
Decision Making, Learning, Knowledge Management, and Information Technology
Organizational decision making  merupakan proses menanggapi masalah dengan mencari dan memilih solusi atau tindakan yang akan menciptakan nilai bagi para pemangku kepentingan organisasi (stakeholders)

Keputusan yang diprogram (programmed decisions) yaitu keputusan yang berulang dan rutin.

Keputusan yang tidak diprogram (Non-programmed decisions) yaitu keputusan yang baru dan tidak terstruktur.

Models of Organizational Decision Making :

1. The Rational Model: pengambilan keputusan adalah lugas / terang-terangan.
    Berikut tiga tahap proses :
   
    Tahap 1: Mengidentifikasi masalah yang perlu dipecahkan
    Tahap 2: Merancang dan mengembangkan daftar solusi alternatif dan program tindakan untuk                                     memecahkan masalah
    Tahap 3: Bandingkan kemungkinan konsekuensi dari setiap alternatif dan memutuskan mana tindakan                         menawarkan solusi terbaik

2. The Carnegie Model : Mengenalkan satu set asumsi yang lebih realistis tentang proses pengambilan               keputusan :
    a. Satidficing : pencarian informasi yang terbatas untuk mengidentifikasi masalah dan solusi alternatif.
    b. Bounded Rationality : kapasitas yang terbatas untuk memproses informasi.
    c. Organizational coalitions : solusi yang dipilih adalah hasil dari kompromi, tawar-menawar, akomodasi             diantara koalisi.

3. The incrementalist model: manajer memilih tindakan program alternatif yang hanya sedikit, atau secara           bertahap, berbeda dengan yang digunakan di masa lalu :
    a. Dianggap mengurangi kemungkinan melakukan sebuah kesalahan
    b. Disebut ilmu "mengacaukan melalui (muddling through)"
    c. Mereka memperbaiki atau menghindari kesalahan melalui serangkaian perubahan bertahap

4. The unstructured model : menjelaskan bagaimana pengambilan keputusan terjadi dalam lingkungan                 ketidakpastian yang tinggi :
    a. Model tidak terstruktur mengakui ketidakpastian dalam lingkungan
    b. Manajer memikirkan kembali alternatif mereka ketika mereka mencapai hambatan
    c. Pengambilan keputusan bukanlah proses linier, proses sekuensial
    d. Mencoba menjelaskan bagaimana organisasi membuat keputusan tidak terprogram

5. The garbage can model : pandangan pengambilan keputusan yang membutuhkan proses terstruktur yang       ekstrim :
    a. Para pembuat keputusan cenderung memulai membuat keputusan dari sisi solusi sebagai sisi masalah.
    b. Membuat peluang pengambilan keputusan yang dapat dipecahkan dengan solusi siap pakai    
        berdasarkan pada kompetensi dan ketrampilan.
   c. Koalisi yang berbeda mungkin memperjuangkan altenatif yang berbeda.
   d. Pengambilan keputusan menjadi “ garbage can “ dimana masalah, solusi, dan perpaduan semua orang-
       orang dan berhadapan untuk tindakan organisasi.
   e. Pemilihan alternatif tergantung pada definisi situasi saat ini seseorang atau kelompok memegang  
       kekuasaan.


Algoritma A* ( A star )

15.45 Posted by Unknown No comments
Salah satu algoritma yang dipelajari untuk menyelesaikan permasalahan adalah algoritma A* (A Star). Algoritma A* menyelesaikan masalah yang menggunakan graf untuk perluasan ruang statusnya. Dengan kata lain digunakan untuk menyelesaikan permasalah yang bisa direpresentasikan dengan graf. Algoritma A* adalah sebuah algoritma yang telah diperkaya. Dengan menerapkan suatu heuristik, algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang diinginkan.

Algoritma A* membangkitkan simpul yang paling mendekati solusi. Simpul ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, simpul pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List simpul ini disebut dengan simpul terbuka(open node).

Simpul pada list bisa berasal dari kedalaman berapapun dari graf. Algoritma ini akan mengunjungi secara mendalam (mirip DFS) selama simpul tersebut merupakan simpul yang terbaik. Jika simpul yang sedang dikunjungi ternyata tidak mengarah kepada solusi yang diinginkan, maka akan melakukan runut balik ke arah simpul akar untuk mencari simpul anak lainnya yang lebih menjanjikan dari pada simpul yang terakhir dikunjungi. Bila tidak ada juga, maka akan terus mengulang mencari ke arah simpul akar sampai ditemukan simpul yang lebih baik untuk dibangkitkan suksesornya. Strategi ini berkebalikan dengan algoritma DFS yang mencari sampai kedalaman yang terdalam sampai tidak ada lagi suksesor yang bisa dibangkitkan sebelum melakukan runut balik, dan BFS yang tidak akan melakukan pencarian secara mendalam sebelum pencarian secara melebar selesai. A* baru berhenti ketika mendapatkan solusi yang dianggap solusi terbaik.

Algoritma A* menerapkan teknik heuristik dalam membantu penyelesaian persoalan. Heuristik adalah penilai yang memberi harga pada tiap simpul yang memandu A* mendapatkan solusi yang diinginkan. Dengan heuristik yang benar, maka A* pasti akan mendapatkan solusi (jika memang ada solusinya) yang dicari. Dengan kata lain, heuristik adalah fungsi optimasi yang menjadikan algoritma A* lebih baik dari pada algoritma lainnya. Namun heuristik masih merupakan estimasi / perkiraan biasa saja Sama sekali tidak ada rumus khususnya. Artinya, setiap kasus memiliki fungsi heuristik yang berbedabeda. Algoritma A* ini bisa dikatakan mirip dengan algoritma Dijkstra, namun pada algoritma Dijkstra, nilai fungsi heuristiknya selalu 0 (nol) sehingga tidak ada fungsi yang mempermudah pencarian solusinya.

Algoritma  A* dapat dijelaskan dengan pseudocode dibawah ini 

1. Masukan node awal ke openlist
2. Loop Langkah – langkah di bawah ini :
    a. Cari node (n) dengan nilai f(n) yang paling rendah dalam open list. Node ini sekarang menjadi current  node.
    b. Keluarkan current node dari openlist dan masukan ke close list
    c. Untuk setiap tetangga dari current node lakukan berikut :
        •  Jika tidak dapat dilalui atau sudah ada dalam close list, abaikan.
        •  Jika belum ada di open list . Buat current node parent dari node tetangga ini. Simpan nilai f,g dan h dari node ini.
        •  Jika sudah ada di open list, cek bila node tetangga ini lebih baik, menggunakan nilai g sebagai ukuran. Jika lebih baik ganti parent dari node ini di openlist menjadi current node, lalu kalkulasi ulang nilai g dan f dari node ini.
    d. Hentikan loop jika :
        • Node tujuan telah ditambahkan ke openlist, yang berate rute telah ditemukan.
        • Belum menemukan node goal sementara open list kosong atau berarti tidak ada rute.
3. Simpan rute. Secara ‘backward’, urut mulai darinode goal ke parent-nya terus sampai mencapai node awal sambil menyimpan node ke dalam sebuah array.

Algorima Dijkstra

15.34 Posted by Unknown No comments
Pada tahun 1959 sebuah tulisan sebanyak tiga halaman yang berjudul A Note on Two Problem in Connexion with Graphs diterbitkan oleh jurnal Numerische Mathematic. Pada tulisan ini, Edsger W. Dijkstra, seorang ilmuwan komputer berusia 29 tahun mengusulkan algoritma-algoritma untuk solusi dari dua masalah teoritis graf dasar. The Minimum Weight adalah algoritma dijkstra untuk lintasan terpendek adalah salah satu algoritma yang paling ternama dalam ilmu komputer dan sebuah algoritma paling populer dalam operasi pencarian (OR).

Definisi Algoritma Dijkstra

Pada dasarnya, algoritma ini adalah salah satu bentuk algoritma greedy. Algoritma ini termasuk algoritma pencarian graf yang digunakan untuk menyelesaikan masalah lintasan terpendek dengan satu sumber pada sebuah graf yang tidak memiliki cost sisi negatif dan menghasilkan sebuah pohon lintasan terpendek. Algoritma ini sering digunakan pada routing. Algoritma dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan strategi greedy sebagai berikut :

Untuk setiap simpul pada sumber (source) dalam graf, algoritma ini akan mencari jalur dengan cost minnimum antara simpul tersebut dengan simpul lainnya.

Skema Algoritma Dijkstra

Algoritma Dijkstra diterapkan untuk mencari lintasan terpendek pada graf berarah. Namun, algoritma ini juga benar untuk graf tak berarah. Algoritma Dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan prinsip greedy. Prinsip greedy pada algoritma dijkstra menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukannya dalam himpunan solusi.

Contoh Algoritma Dijkstra






Penerapan  Algoritma Dijkstra pada Jaringan Komputer

Jaringan komputer dapat dimodelkan sebagai sebuah graf, dengan setiap simpul menyatakan sebuah komputer/router dan sisi di dalam graf menyatakan saluran komunikasi (sering disebut link). Setiap sisi mempunyai label nilai ( yang disebut bobot). Bobot tersebut dapat menyatakan jarak geografis(dalam km), kecepatan transfer data, waktu pengiriman).

Mencari lintasan terpendek  dari router asal ke router tujuan dapat diartikan sebagai menentukan lintasan terpendek dari simpul asal ke simpul tujuan di dalam graf yang merepresentasikan jaringan komputer tersebut. Algoritma Dijkstra adalah algoritma yang banyak digunakan untuk mencari lintasan terpendek.







Kamis, 03 Juli 2014

Pengertian Eigen

04.55 Posted by Unknown No comments
Eigen berasal dari kata Jerman yang berarti sendiri, khas, karakteristik atau
individu. Untuk memahami vektor eigen kita perlu memahami fungsi operasional
dasar dari sebuah matriks. Secara umum, matriks linier mengubah arah dan besaran
vektor. Eigenanalysis berguna dalam aplikasi seperti diagonalisasi dari korelasi
matriks, pemrosesan sinyal radar, ekstraksi fitur, pengenalan pola, coding sinyal,
estimasi kebisingan, dan pemisahan biomedis campuran atau sinyal komunikasi.

Eigenvector dan eigenvalues

Sebuah matriks bujur sangkar dengan orde n x n misalkan A, dan sebuah
vektor kolom X. Vektor X adalah vektor dalam ruang Euklidian R yang
dihubungkan dengan sebuah persamaan:








Dimana adalah suatu skalar dan X adalah vektor yang tidak nol Skalar
dinamakan nilai Eigen (eigenvalue) dari matriks A. Nilai eigen adalah nilai
karakteristik dari suatu matriks bujur sangkar. Vektor X dalam persamaan (1)
adalah suatu vektor yang tidak nol yang memenuhi persamaan (1) untuk nilai eigen
yang sesuai dan disebut dengan vektor eigen. Jadi vektor X mempunyai nilai
tertentu untuk nilai eigen tertentu.

Perhitungan eigenvector

Kita tinjau kembali persamaan dimana A adalah matriks bujur
sangkar dan X adalah vector bukan nol yang memenuhi persamaan tersebut.
Kita tinjau sebuah matriks bujur sangkar orde 2 x 2 berikut:





Metode pendekatan AR mengunakan Template Matching

04.33 Posted by Unknown 1 comment
Template matching adalah sebuah teknik dalam pengolahan citra digital untuk menemukan bagian-bagian kecil dari gambar yang cocok dengan template gambar. Template matching merupakan salah satu ide yang digunakan untuk menjelaskan bagaimana otak kita mengenali kembali bentuk-bentuk atau pola-pola. Template dalam konteks rekognisi pola menunjuk pada konstruk internal yang jika cocok (match ) dengan stimulus penginderaan mengantar pada rekognisi suatu objek. Atau pengenalan pola terjadi jika terjadi kesesuaian antara stimulus indera dengan bentuk mental internal. Gagasan ini mendukung bahwa sejumlah besar template telah tercipta melalui pengalaman hidup kita. Tiap-tiap template berhubungan dengan suatu makna tertentu.

Contoh proses identifikasi bentuk geometri :
Energi cahaya yang terpancar dari suatu bentuk mengena pada retina mata dan diubah menjadi energi neural yang kemudian dikirim ke otak. Selanjutnya terjadi pencarian di antara templatetemplate yang ada. Jika sebuah template ditemukan sesuai (match ) dengan pola tadi, maka subjek dapat mengenal bentuk tersebut. Setelah kecocokan antara objek dan template terjadi, proses lebih lanjut dan interpretasi terhadap objek bisa terjadi.

Keunggulan :
  • Jelas bahwa untuk mengenal bentuk, huruf atau bentuk-bentuk visual lainnya diperlukan kontak dengan bentuk-bentuk internal.
  • Template matching adalah prosedur pengenalan pola yang sederhana yang didasarkan pada ketepatan konfigurasi informasi penginderaan dengan “konfigurasi” pada otak. (Contohnya : barcode)

Kelemahan :
Jika perbandingan eksternal objek dgn internal objek 1:1, maka objek yang berbeda sedikit saja dengan template tidak akan dikenali. Oleh karena itu, jutaan template yang spesifik perlu dibuat agar cocok dengan berbagai bentuk geometri yang kita lihat dan kenal. Jika memang penyimpanan memori di otak seperti ini, otak tentu seharusnya sangat kewalahan dan pencarian informasi akan memakan waktu, padahal pada kenyataannya tidak demikian.

Template Matching dapat dibagi antara dua pendekatan, yaitu : pendekatan berbasis fitur dan pendekatan berbasis template. Pendekatan berbasis fitur menggunakan fitur pencarian dan template gambar seperti tepi atau sudut, sebagai pembanding pengukuran matrik untuk menemukan lokasi template matching yang terbagus di sumber gambar.

Pendekatan Berbasis Fitur.
Sebuah pendekatan berbasis fitur dapat dianggap; pendekatan dapat membuktikan lebih berguna, jika template gambar memiliki fitur yang kuat jika pencocokan di pencarian gambar bisa diubah dengan cara tertentu. Karena pendekatan ini tidak mempertimbangkan keseluruhan dari template gambar, komputasi dapat lebih efisien ketika bekerja dengan sumber gambar beresolusi lebih besar, sebagai pendekatan alternatif, berbasis template, mungkin memerlukan pencarian titik – titik yang berpotensi untuk menentukan lokasi pencocokan yang terbaik.

Pendekatan Berbasis Template
Untuk template tanpa fitur yang kuat, atau ketika sebagian besar template gambar merupakan gambar yang cocok, sebuah pendekatan berbasis template mungkin efektif. Seperti disebutkan di atas, karena berbasis template, template matching berpotensi memerlukan sampling dari sejumlah besar poin, untuk mengurangi jumlah sampling poin dengan mengurangi resolusi pencarian dan template gambar oleh faktor yang sama dan melakukan operasi pada perampingan gambar yang dihasilkan (multiresolusi, atau piramida, pengolahan citra), menyediakan pencarian titik data dalam pencarian gambar sehingga template tidak harus mempunyai pencarian titik data, atau kombinasi keduanya.

Implementasi
Dalam implementasi sederhana ini, diasumsikan bahwa metode yang dijelaskan di atas diterapkan pada gambar abu-abu: karena abu-abu digunakan sebagai intensitas piksel.

minSAD = VALUE_MAX;

// loop through the search image
for ( int x = 0; x <= S_rows - T_rows; x++ ) {
    for ( int y = 0; y <= S_cols - T_cols; y++ ) {
        SAD = 0.0;

    // loop through the template image
    for ( int i = 0; i < T_rows; i++ )
        for ( int j = 0; j < T_cols; j++ ) {

                pixel p_SearchIMG = S[x+i][y+j];

                pixel p_TemplateIMG = T[i][j];

                SAD += abs( p_SearchIMG.Grey - p_TemplateIMG.Grey );
            }
    }

        // save the best found position
    if ( minSAD > SAD ) {
        minSAD = SAD;
            // give me VALUE_MAX
        position.bestRow = x;
        position.bestCol = y;
        position.bestSAD = SAD;
    }
}

Study kasus
Contoh Aplikasi
“PENGGUNAAN METODE TEMPLETE MATCHING UNTUK IDENTIFIKASI KECACATAN PADA PCB”

Penerapan metode template matching pada identifikasi kecacatan PCB dapat dilakukan dengan langkah utama sbb:

1. Pengepasan posisi: Dilakukan dengan mencuplik 80% area citra untuk mendapatkan posisi ideal.
2. Hitung nilai korelasi silang : Untuk mengklasifikasikan suatu citra PCB adalah baik dan tanpa      cacat sedikitpun, maka nilai korelasi adalah 1 dan cacat total maka nilai korelasinya adalah -1. Rumus yang digunakan adalah :

 

Dengan :

3. Deteksi akhir : Dari nilai korelasi yang didapat, nilai tersebut kemudian di konversikan dalam rentang 0 sampai 255 pada channel red untuk digambarkan dalam bentuk segiempat pada titik koordinat citra PCB yang mengalami cacat.
Prinsip metode ini adalah membandingkan antara image objek yang akan dikenali dengan image template yang ada. Image objek yang akan dikenali mempunyai tingkat kemiripan sendiri terhadap masing-masing image template.
Pengenalan dilakukan dengan melihat nilai tingkatkemiripan tertinggi dan nilai batas ambang pengenalan dari image objek tersebut. Bila nilai tingkat kemiripan berada di bawah nilai batas ambang maka image objek tersebut dikategorikan sebagai objek tidak dikenal.
Selanjutnya untuk dapat mengimplementasikan metode templete matching maka perlu dilakukan sejumlah operasi pengolahan citra digital, antara lain:
•    Penapisan Citra (Filtering) : dilakukan bila citra yang akan dianalisis memiliki derau sehingga perlu dihaluskan dengan tapis citra. Perancangan tapis dengan memanipulasi piksel-piksel tetangga membuat citra lebih halus, bentuk sudut, dan tepi citra tetap terjaga. Pada proses perekaman citra digital dapat terjadi gangguan yang bersifat frekuensi rendah, dimana terjadi proses pemerataan intensitas cahaya pada suatu titik sampel dengan titik-titik tetangganya. Gangguan lain yang sering terjadi pada proses perekaman citra digital adalah terjadinya gangguan berbentuk garis-garis akibat adanya kerusakan pada sebagian detektor sensor. Juga sering dijumpai gangguan lain dalam bentuk bercak hitam yang acak.
•    Pengambangan (Tresholding) : digunakan untuk mengubah citra dengan format keabuan yang mempunyai nilai lebih dari dua ke format citra biner yang hanya memiliki dua nilai (0 atau 1). Dalam hal ini titik dengan rentang nilai keabuan tertentu diubah menjadi warna hitam dan sisanya menjadi warna putih atau sebaliknya.
Aplikasi yang akan dibangun adalah sebuah simulasi sederhana untuk proses AOI (Automated Optical Inspection), dalam hal ini diasumsikan PCB master dan PCB input deteksi telah tersedia dalam bentuk file bitmap.
Secara umum implementasi dari identifikasi kecacatan PCB dengan menggunakan metode Templete Matching ini dapat digambarkan sebagaimana pada Gambar 1. Pada Gambar 1 tersebut :
• Grayscale digunakan untuk merubah citra warna menjadi citra keabuan.
• Median Filter : Digunakan untuk melakukan proses penapisan jika citra dianggap masih mengandung derau.
• Batas Ambang : Digunakan untuk mengatur tingkat proses pengambangan pada citra

                        


Gambar 1 Penerapan Templete Matching pada Identifikasi Cacat PCB

Pada penelitian sejenis, umumnya output dari penggunaan templete matching adalah berupa prosentase kemiripan antara image master dengan image input. Untuk permasalahan identifikasi kecacatan pada PCB ini, maka outputnya adalah posisi blok pada PCB input yang tidak sesuaidengan PCB master. Posisi blok itulah yang diidentifikasi terdapat kecacatan.
Pada penelitian ini dilakukan upaya untuk mendeteksi kecacatan pada PCB RAM. Dalam hal ini digunakan dua buah model PCB, yaitu PCB acuan (master) dan PCB RAM yang cacat. Aplikasi akan berusaha untuk mendeteksi kecacatan yang terjadi dalam bentuk output yang menunjukkan letak titik kecacatan pada PCB RAM tersebut. Masing-masing PCB yang digunakan adalah sebuah citra berkarakteristik bitmap.
Sebelum digunakan sebagai acuan pada pada proses templete matching ini,maka PCB master terlebih dahulu dibuatkan model grayscalenya. Pembentukan model grayscale ini dilakukan setelah sebelumnya menerapkan pemrosesan penapisan dan pengambangan citra. Gambar 2 menunjukkan pola grayscale dari PCB master.
Hal yang serupa juga dilakukan pada model PCB yang akan diidentifikasi. Gambar 3 menunjukkan pola PCB masukan yang siap diidentifikasi. Terlihat secara sekilas antara dua pola gambar tersebut tidak nampak perbedaan. Dengan demikian apabila inspeksi kecacatan dilakukan secara manual maka tidak akan mudah terdeteksi.
Setelah dua buah citra tersebut diproses dengan menggunakan aplikasi templete matching, maka terlihat hasil identifikasinya berupa lokasi dimana terdapat ketidak cocokan pola dan diasumsikan bahwa pada lokasi tersebut terdapat kecacatan PCB.Dalam hal ini titik-titik yang dianggap cacat karena tidak sesuai dengan citra pada master akan ditandai dengan blok korelasi berwarna merah dimana ukuran blok korelasi tersebut telah ditentukan sebelumnya oleh user. Gambar 4 menunjukkan output hasil template matching pada PCB input. Pada Gambar 4 tersebut terlihat adanya blok korelasi pada titik yang dianggap cacat karena memiliki kesalahan berupa putusnya jalur sirkuit PCB.