BAB 2 LANDASAN TEORI
2.1 Image Processing Suatu gambar yang diambil dengan menggunakan kamera pada dasarnya adalah suatu sebaran atau distribusi tenaga cahaya yang kontinu, dua dimensi, dan bergantung pada waktu tertentu. Agar sebaran energi atau gambar tersebut dapat diolah secara digital oleh komputer, diperlukan 3 buah tahap penting (Burger, Wilhelm. Mark J. Burge, 2008, p8-10) yaitu: 1.
Sebaran cahaya tersebut harus dipetakan menjadi suatu sebaran matriks.
2.
Sebaran matriks yang didapat harus menjalani proses sampling untuk
mendapat suatu fungsi matematika yang bergantung terhadap waktu untuk merepresentasikan suatu gambar. 3.
Setelah didapatkan suatu fungsi matematika dari kedua proses di atas,
hasil angka yang didapat perlu mengalami proses kuantisasi sehingga menghasilkan nilai bulat yang dapat diolah komputer. Pada saat suatu kamera digunakan untuk mengambil gambar, lensa pada kamera tersebut akan memproyeksikan gambar kepada elemen sensor. Setiap elemen sensor tersebut akan mendapatkan cahaya dengan intensitas berbeda sebanding dengan intensitas cahaya yang jatuh pada gambar yang diambil. Pemetaan sebaran cahaya tersebut juga dikenal dengan istilah spatial sampling. Hasil dari spatial sampling ini adalah pemetaan fungsi kontinu dari sebaran cahaya pada gambar yang 5
6
kita ambil melalui kamera. sehingga didapatkan representasi diskrit dari gambar tersebut. Proses ini dipengaruhi dari susunan geometris dari elemen sensor yang digunakan pada alat tersebut. Pada umumnya, elemen sensor ini disusun sedemikian rupa sehingga membentuk sudut-sudut yang tepat untuk menerima cahaya. Kamera digital dapat menggunakan CCD (Charged-Coupled-Device) atau CMOS sebagai elemen sensornya. Komponen CCD adalah suatu chip yang befungsi sebagai suatu shift register analog yang memungkinkan perpindahan sinyal analog secara berurutan dengan diatur melalui sinyal clock. Istilah “CCD” juga dapat diartikan sebagai suatu cara untuk membaca sinyal image dari chip tersebut. Pada CCD, terdapat 2 bagian yang berperan berbeda untuk menangkap suatu gambar. Bagian yang berperan untuk menerima cahaya dari lensa kamera (spatial sampling) berupa lapisan silikon yang juga berfungsi sebagai suatu kapasitor yang sensitif terhadap cahaya. Bagian yang menjalankan proses sampling berupa shift register adalah chip CCD itu sendiri. Pada proses spatial sampling, lapisan kapasitor akan mendapat cahaya dengan intensitas berbeda sebanding dengan intensitas cahaya yang jatuh pada gambar yang diambil. Lapisan kapasitor tersebut akan menghasilkan arus listrik sesuai dengan intensitas cahaya yang jatuh pada masing-masing elemen. Saat suatu gambar telah selesai menjalani proses spatial sampling tersebut, suatu rangkaian kontrol akan mengaktifkan shift register dan membuat arus pada lapisan kapasitor dipindahkan ke kapasitor sebelahnya menuju ke CCD. Pada kapasitor yang berada tepat sebelum CCD, arus akan memasuki suatu rangkaian yang akan mengubah
arus menjadi tegangan. Proses ini dilakukan terus menerus hingga
7
mengubah seluruh sinyal analog yang jatuh pada lapisan kapasitor menjadi sinyal diskrit. Selain CCD, proses tersebut juga berlaku untuk CMOS yang digunakan untuk kamera handphone dan web-cam. Pada CMOS, proses spatial sampling dan digitisasi dilakukan pada IC tersebut tanpa terbagi 2. CMOS juga memiliki keunggulan dari segi biaya pembuatan, memiliki waktu proses gambar yang lebih cepat (karena terjadi pada 1 IC), dan menggunakan daya yang lebih kecil dari CCD. Namun demikian, CCD memiliki sensitivitas lebih tinggi terhadap cahaya infra merah dan cahaya ultraviolet sehingga banyak digunakan di bidang astronomi. Cara kerja CCD sendiri lebih sederhana dibanding CMOS, sehingga juga banyak digunakan pada kamera digital, optical dan UV spectroscopy, microscopy elektron, fluoroscopy medis, dan bidang lainnya. Warna dari suatu pemandangan yang ditangkap dengan kamera digital umumnya menggunakan suatu lapisan filter warna terlebih dahulu sebelum cahaya jatuh pada lapisan kapasitor. Filter warna yang umumnya digunakan adalah filter Bayer. Filter Bayer berupa suatu lapisan filter untuk membagi warna-warna yang akan masuk ke lapisan kapasitor. Perbandingan warna yang digunakan pada filter Bayer adalah Hijau 50%, Merah 25%, dan Biru 25% dengan mempertimbangkan sensitivitas mata manusia terhadap warna hijau. Ketiga warna tersebut ditata melapisi lapisan kapasitor seperti gambar di bawah (BAYER.1). Hasil sampling setelah melalui filter Bayer ini belum dapat menghasilkan gambar dengan warna yang sesuai aslinya, hal ini dikarenakan setiap unit pixel hanya menyimpan informasi untuk satu warna. Umumnya, hasil sampling yang berupa sinyal digital
8
nantinya dapat diolah dengan suatu algoritma yang akan menghasilkan gambar dengan kombinasi ketiga warna tersebut. Proses tersebut umumnya sudah dilakukan oleh komponen lain dari kamera.
Gambar 2.1 Filter Bayer (Sumber: http://lowendmac.com/digigraphica/pick/electronics.html)
Dari dua proses di atas, kita akan mendapatkan suatu perwakilan diskrit dari suatu gambar yang akan berupa fungsi matematika. Fungsi matematika diskrit yang di dapat di sini umumnya akan mengalami proses kuantisasi atau pembulatan ke dalam bilangan integer (bilangan bulat), kadang kala konversi dilakukan ke dalam bilangan floating-point (bilangan real) untuk keperluan medis yang memerlukan tingkat ketelitian yang lebih tinggi. Proses semacam ini dilakukan dengan menggunakan komponen ADC (Analog-to-Digital Converter) yang umumnya dijadikan satu bersamaan dengan sensor elektronik sehingga proses konversi dapat dijalankan langsung pada pengambilan gambar.
9
Semua proses di atas akan menghasilkan suatu matriks bilangan bulat dua dimensi berukuran M * N yang merupakan representasi digital dari gambar yang kita dapat. Ada beberapa istilah yang digunakan setelah gambar yang ada telah menjadi matriks tersebut. Ukuran suatu gambar digital ditentukan langsung dari ukuran matriks yang dihasilkan. Resolusi dari suatu gambar digital adalah jumlah elemen ukur dari suatu image di komputer dibandingkan dengan satuan ukur yang digunakan di alam nyata (contoh: dots per inch atau dpi, lines per inch atau lpi, dsb). Elemen ukur yang umumnya digunakan untuk menyatakan resolusi suatu gambar pada image processing adalah pixel. Pixel sendiri adalah satuan terkecil yang dapat memuat informasi dari proses sampling suatu gambar, dimana satu pixel akan mewakili 1 unit yang digunakan pada proses sampling tersebut. Suatu gambar dengan nilai resolusi (nilai pixel) yang besar menandakan gambar tersebut akan menyimpan lebih banyak informasi dan akan tampak lebih mendekati kondisi asli dari gambar tersebut. Pada sebagian besar kasus, resolusi suatu gambar pada bidang horizontalnya akan sama dengan bidang vertikalnya. Resolusi dari suatu gambar akan menjadi penting saat kita ingin mengukur jarak di dalam gambar tersebut atau ingin menambahkan gambar-gambar geometris pada gambar yang ada. Oleh karena itu, sebagian besar format gambar dan software yang digunakan untuk keperluan professional menyediakan informasi yang lengkap tentang resolusi suatu gambar. Jenis image yang diambil akan menentukan ukuran data yang mewakili sebuah pixel. Jenis-jenis image yang umumnya digunakan dalam image processing antara lain: Grayscale image, RGB image (Color image), Binary Image, dan Special Image.
10
Jenis image yang paling sederhana adalah Binary Image, dimana sebuah pixel hanya dapat menampung 2 buah nilai (1 bit) untuk mewakili warna hitam atau putih. Binary Image termasuk ke dalam jenis grayscale image. Jenis image ini umumnya digunakan untuk gambar grafik, pengarsipan dokumen, proses encoding transmisi fax, dan pada banyak printer. Grayscale image adalah jenis image yang terdiri dari 1 channel untuk merepresentasikan tingkat intensitas cahaya pada gambar tersebut. Oleh karena itu, Grayscale image juga dikenal dengan istilah intensity image. Nilai pixel pada grayscale image umumnya berada pada rentang nilai 0-255 (1 byte atau 8 bit) untuk mewakili intensitas cahaya. Nilai 0 mewakili keadaan gelap atau hitam, sedangkan nilai maksimum mewakili intensitas sangat terang atau putih. Grayscale image dengan rentang nilai yang lebih tinggi umumnya diperlukan untuk bidang-bidang professional, bidang kesehatanm atau astronomi, dimana rentang nilai lebih dari 8 bit digunakan pada bidang tersebut. Untuk lebih jelasnya, tabel berikut akan memberikan gambaran lebih jelas mengenai rentang bit yang digunakan pada grayscale image.
11
Jumlah Channel
Jumlah Bit atau Pixel
Range
Digunakan untuk:
1
1
0...1
Binary Image: dokumen, fax, illustrasi grafik
1
8
0...255
Universal: foto, hasil scan, hasil print
1
12
0...4095
High Quality: foto, hasil scan, hasil print
1
14
0...16383
Professional: foto, hasil scan, hasil print
1
16
0...65535
Highest Quality: bidang kesehatan, astronomi
Tabel 2.1 Rentang Grayscale image
Color image adalah jenis image yang digunakan untuk gambar-gambar berwarna. Jenis Color image yang umumnya digunakan adalah jenis RGB image, dimana RGB image terdiri dari 3 warna (Red, Green, Blue) yang dikombinasikan dengan masing-masing intensitas berbeda untuk menghasilkan 1 warna pada masingmasing pixel. Masing-masing warna pada RGB image merupakan warna dasar, dimana jika ketiga warna tersebut dicampurkan dengan intensitas maksimum akan menghasilkan warna putih. Sebuah pixel pada RGB image akan terdiri dari 3 channel yang masing-masing channelnya akan berisi sebuah warna dengan intensitasnya masing-masing. Untuk memetakan 1 buah channel atau warna pada suatu pixel, umumnya diperlukan minimal 8-bit. Hal ini menyebabkan sebuah RGB image akan memerlukan setidaknya 24-bit untuk setiap pixel yang digunakan. Jumlah bit tersebut dapat ditambah sesuai keperluan dengan alasan yang sama pada grayscale image. Meski pada camera digital dewasa ini mampu untuk mengambil suatu
12
gambar hingga memiliki kedalaman warna 36-bit, namun kebanyakan software yang digunakan untuk keperluan image processing tidak mendukung manipulasi gambar dengan kedalaman warna tersebut. Gambar yang akan kita olah di dalam sebuah komputer berupa sebuah file yang informasi di dalamnya akan dimasukkan ke dalam memori untuk ditampilkan. Format yang digunakan pada file tersebut akan berpengaruh pada aplikasi yang digunakan. Format file yang digunakan untuk menyimpan data sebuah gambar ada berbagai macam, dimana perbedaan format file dapat menyebabkan aplikasi tidak dapat berjalan karena tidak dapat mengambil informasi yang dibutuhkan. Penentuan format file yang digunakan akan bergantung dari kemampuan processor untuk membaca format file tertentu. Pada microprocessor ARM9, salah satu format file yang dapat digunakan oleh prosessor tersebut adalah BMP. BMP (Windows Bitmap) adalah salah satu format file yang paling sederhana yang dikenal luas dan bebas digunakan. Oleh karenanya, format file BMP umumnya dapat dibaca maupun ditulisi oleh program-program image processing yang ada. Format file ini mendukung penyimpanan informasi untuk image jenis grayscale dan color image. Setiap pixel pada format data ini disimpan menggunakan 1 byte utuh sehingga dalam keadaan tanpa kompresi, ukuran file yang dihasilkan oleh format bitmap cenderung besar. Meski demikian, dengan metode kompresi seperti ZIP, file dengan format BMP ini dapat dikurangi hingga berukuran 0.1% dari ukuran awalnya. Hal ini dimungkinkan karena dalam format file BMP, banyak terdapat data yang redundant.
13
Pada dasarnya ada 2 macam sistem koordinat yang diadopsi dalam melakukan image processing. Salah satu sistem koordinat yang digunakan menggunakan sudut kanan atas layar sebagai titik acu pertama mengikuti arah gerak elektron seperti yang terjadi pada televisi. Pada sistem koordinat ini, sumbu x bernilai positif dari kiri ke kanan sedangkan sumbu y bernilai positif dari atas ke bawah. Sistem koordinat lain yang juga digunakan dalam tahap image processing menggunakan pojok kiri bawah sebagai acuan awalnya dengan sumbu x bernilai positif dari kiri ke kanan dan sumbu y bernilai positif dari bawah ke atas seperti sistem koordinat Cartesian pada umumnya .Sistem koordinat yang digunakan pada tahap image processing akan bergantung pada: sistem operasi yang digunakan, format penyimpanan data, codec yang digunakan, dan lain-lain. Jenis image yang akan digunakan pada proses pengenalan bentuk objek nantinya adalah jenis grayscale image, namun jenis image yang umumnya didapat langsung dengan menggunakan kamera adalah jenis full-color image (sRGB image), maka diperlukan konversi dari sRGB image menjadi grayscale image. Konversi tersebut melibatkan proses mencari nilai ekivalen untuk warna abu-abu dari kombinasi ketiga warna tersebut pada suatu pixel. Algoritma paling sederhana adalah dengan menjumlahkan ketiga nilai warna tersebut dan mencari rata-ratanya. Namun cara ini akan menyebabkan warna yang dihasilkan tidak terpetakan dengan tepat. Cara yang tepat untuk memetakan warna RGB menjadi abu-abu adalah dengan menjumlahkan masing-masing komponen warna setelah dikalikan dengan beban masing-masing sesuai persamaan berikut:
14
Y= wR . R + wG . G + wB . B Y = Nilai representasi warna abu-abu yang diinginkan wR , wG , wB = beban masing-masing komponen warna R, G, B = nilai komponen warna (R=Red, G=Green, B=Blue) Untuk RGB image yang linear, nilai beban masing-masing komponen warna diatur melalui standar ITU-BT.709 untuk encoding warna digital. Namun, pada gambar yang didapat melalui kamera, image yang didapat merupakan sRGB image yang tidak linear sehingga proses konversi ini perlu melalui salah satu dari 2 tahap, sRGB dapat dilinearkan terlebih dahulu, atau dilakukan perhitungan untuk mencari nilai beban yang berbeda. Nilai beban yang diatur pada ITU-BT.709 adalah sebagai berikut: wR = 0.2125
wG = 0.7154
wB = 0.072
Hubungan antara nilai besaran fisika sebenarnya dengan intensitas cahaya yang terpetakan pada matriks dari suatu citra adalah non-linear. Jumlah cahaya yang jatuh pada elemen sensor dari suatu kamera, jumlah partikel dari suatu toner pada printer, jumlah cahaya yang dipancarkan oleh suatu monitor, semua hal tersebut memiliki suatu nilai besaran fisika. Relasi antara nilai besaran fisika sebenarnya dengan yang terpetakan pada nilai pixel dari suatu citra dilambangkan dengan simbol gamma (γ). Relasi antara kedua nilai tersebut akan menjadi penting saat kita ingin menyamakan intensitas cahaya yang didapat dari suatu aplikasi agar sesuai dengan yang dipersepsikan mata manusia.
Perbedaan karakteristik dari hardware yang
digunakan akan menyebabkan perbedaan pemetaan intensitas cahaya dari suatu nilai
15
pixel ke nilai fisika yang sebenarnya dan sebaliknya. Oleh karena itu, diperlukan suatu proses untuk menyamakan pemetaan intensitas cahaya dari nilai pixel suatu citra ke dalam ruang pemetaan yang seragam untuk berbagai macam hardware dengan nilai bit minimum untuk memetakan intensitas cahaya tersebut. Proses ini dikenal dengan istilah gamma correction. Proses gamma correction ini melibatkan perhitungan matematis dengan fungsi gamma. Nilai gamma dari suatu hardware umumnya didapat dari pengukuran dan disediakan oleh produsen hardware tersebut. Suatu alat dengan nilai karakteristik gamma akan mengalami kompensasi dari proses gamma correction. Meski hal ini akan membuat citra yang dihasilkan tampak sesuai dengan persepsi manusia
,namun hal ini menyebabkan color image yang di dapat
langsung dari suatu alat menjadi suatu color image yang non-linear. Simbol gamma yang digunakan berasal dari istilah yang digunakan pada fotografi analog untuk menggambarkan relasi antara jumlah sinar dengan ketebalan yang terjadi pada film, dimana relasi keduanya mendekati suatu fungsi logaritmik. Jika fungsi logaritmitk tersebut dipetakan ke dalam sebuah grafik fungsi logaritmik, akan terdapat sebagian wilayah yang mendekati linear untuk sebagian besar intensitas cahaya, daerah linear inilah yang umumnya dikenal dengan istilah gamma tersebut. Tujuan dari pemrosesan citra adalah agar citra dapat dipersiapkan sesuai kebutuhan. Dalam membangun aplikasi yang mampu mengenali atau mendeteksi objek melalui kamera, terdapat beberapa kriteria yang dapat dijadikan acuan ukur. Pendeteksian objek yang baik mampu mengenali objek tersebut meski objek
16
mengalami perubahan posisi. Istilah yang digunakan saat objek dapat dikenali meski bergeser dari posisi semula adalah translation invariant. Agar pendeteksian objek memiliki kemampuan tersebut, citra yang digunakan harus diproses terlebih dahulu. Pada konversi dari color image (RGB image) menjadi grayscale image di atas, rumus yang ada hanya berlaku untuk color image yang linear, dimana color image tersebut merupakan color image sebelum mendapat proses gamma correction. Pada kenyataannya, semua aplikasi pencitraan digital akan menghasilkan color image yang non-linear karena proses gamma correction tersebut. Hal ini umumnya dilakukan agar citra yang didapatkan dapat dengan mudah dihubungkan dengan suatu display dan menghasilkan gambar yang sesuai dengan persepsi mata manusia akan intensitas cahaya.
Color image yang mendapat gamma correction akan
menjadi color image yang non-linear. Nilai beban yang diberikan juga harus disesuaikan sebelum melakukan konversi menjadi grayscale image. Nilai beban yang ditetapkan pada standar ITU-BT.709 dapat digunakan apabila color image yang non-linear tersebut (sRGB) dilinearkan terlebih dahulu dengan invers fungsi gamma. Hasil dari invers masing-masing komponen warna akan menjadi linear dan dapat menggunakan nilai beban standar tersebut. Setelah dilinearkan, rumus di atas dapat digunakan untuk mendapat intensitas grayscale yang diinginkan. Umumnya, setelah didapatkan nilai intensitas grayscale tersebut, fungsi gamma diberikan sekali lagi untuk mengembalikan nilai tersebut menjadi non-linear dengan nilai intensitas yang dapat dipersepsikan dengan baik oleh manusia. Cara lain yang dapat digunakan adalah dengan menggunakan aproksimasi atau pendekatan nilai beban untuk setiap
17
komponen warna. Dengan nilai approksimasi ini, nilai beban dapat langsung digunakan untuk masing-masing komponen warna tanpa menjalani proses linearisasi dari image tersebut dan umumnya cukup memadai untuk sebagian besar aplikasi.. Y'= w'R . R' + w'G . G' + w'B . B' Y' = Nilai representasi warna abu-abu yang sesuai persepsi manusia w'R , w'G , w'B = aproksimasi nilai beban masing-masing komponen warna R', G', B' = nilai komponen warna image non-linear (R=Red, G=Green, B=Blue) Contoh pendekatan nilai beban: wR = 0.309
wG = 0.609
wB = 0.082
Suatu gambar mengandung banyak informasi yang dapat dipahami dengan mudah oleh mata manusia secara garis besar atau abstrak. Komputer hanya mengenali suatu gambar sebagai susunan angka yang diatur sedemikian rupa sesuai warna, intensitas cahaya, dan format yang digunakan dalam mengemas informasi tersebut. Dalam prakteknya, adalah penting untuk membatasi daerah kerja dari komputer sehingga hanya bagian yang kita inginkan pada gambar saja yang diproses oleh komputer dengan mengabaikan bagian lain yang tidak diingikan. Daerah kerja tersebut dikenal dengan istilah ROI (Region Of Interest). Agar informasi yang dibaca dari sebuah gambar oleh komputer memiliki arti yang sesuai dengan yang diinginkan, perlu diterapkan algoritma-algoritma untuk mengartikan deretan angka dari gambar tersebut. Algoritma yang digunakan dalam mengemas informasi tersebut dikenal dengan istilah ekstraksi fitur (feature extraction).
18
Suatu edge pada image processing dapat didefinisikan sebagai bagian pada gambar atau citra dimana intensitas cahaya pada daerah tersebut berubah secara jelas mengikuti suatu arah atau orientasi tertentu. Semakin besar perubahan intensitas cahaya yang terjadi, semakin tinggi kemungkinan terbentuknya edge pada daerah tersebut. Secara matematis, hubungan antara jumlah perubahan dengan jarak secara spasial dinyatakan sebagai turunan pertama suatu fungsi. Untuk mendeteksi edge dari suatu gambar, dapat digunakan beberapa metode. Salah satu metode deteksi edge yang umumnya digunakan adalah metode Canny. Salah satu hal yang perlu diperhatikan pada saat mendeteksi suatu edge adalah keabsahan edge tersebut. Pada metode-metode yang sudah ada sebelumnya (seperti Prewitt, Sobel, dan lain-lain), masih terdapat titik-titik yang memiliki karakteristik seperti edge namun bukan edge dari objek yang diinginkan. Titik-titik tersebut didefinisikan sebagai edge semu yang dapat terjadi karena adanya noise pada gambar tersebut. Metode ini merupakan salah satu metode yang sering digunakan karena memiliki kemampuan lebih baik dalam mendeteksi edge yang valid. Metode ini mampu memisahkan edge yang tidak sah dengan lebih baik dibandingkan dengan metode yang ada sebelumnya. Dalam metode Canny terdapat beberapa tahap yang dilakukan untuk mendapatkan edge dari suatu gambar. Tahap pertama yang dilakukan adalah dengan melakukan konvolusi image dengan filter Gaussian yang menghasilkan gambar lebih buram dari aslinya. Hal ini perlu dilakukan agar pixel pada gambar tersebut tahan terhadap perubahan kecil nilai akibat noise. Setelah gambar dikonvolusi dengan filter
19
Gaussian, arah dari edge yang terdapat pada gambar tersebut ditentukan dengan menggunakan 4 buah filter arah dimana filter yang digunakan dapat berupa salah satu detektor edge yang sudah ada seperti Robert, Prewitt, atau Sobel. Detektor edge tersebut akan menghasilkan nilai turunan pertama yang terdiri dari elemen horizontal (Gx) dan vertikal (Gy). Rumus berikut digunakan untuk mencari arah dari suatu edge, dimana hasil sudut yang didapat dari perhitungannya akan dibulatkan ke salah satu dari 4 arah, horizontal, vertikal , atau salah satu dari 2 diagonal.
Setelah menentukan estimasi arah, tahap berikutnya adalah menentukan besarnya intensitas yang terdapat pada edge tersebut. Besarnya intensitas ini akan dibandingkan dengan kriteria tertentu untuk menentukan apakah titik tersebut merupakan edge yang asli atau bukan merupakan edge. Penentuan intensitas ini dilakukan dengan memetakan area sebesar 3x3 pixel ke seluruh area pada gambar. Pada tahap ini sudah dihasilkan sekumpulan edge halus dalam bentuk binary image.Gradien intensitas yang besar pada suatu gambar umumnya dapat menyatakan suatu edge. Namun, dalam sebagian besar kasus, sangat sulit menentukan nilai batas intensitas (threshold) yang ideal. Oleh karenanya, metode Canny menggunakan 2 buah nilai batas sehingga membentuk suatu hysterisis. Awalnya, kita aplikasikan batas atas terlebih dahulu untuk menentukan titik awal. Dari titik awal tersebut dapat kita telusuri ke edge berikutnya menggunakan arah yang sudah kita dapat sebelumnya dengan asumsi bahwa edge tersebut merupakan bagian dari suatu garis
20
kontinyu dan kita aplikasikan batas bawah dari hysterisis, dimana titik tersebut akan dinyatakan sebagai edge jika masih berada di antara batas atas dan batas bawah ( di dalam hysterisis). Selama kumpulan edge tersebut membentuk garis kontinyu, maka edge tersebut dikatakan valid. Kumpulan edge yang membentuk satu garis kita kenal dengan istilah kontur yang umumnya menandakan permukaan dari suatu objek. Setelah proses aplikasi hysterisis, kita akan dapatkan suatu image yang sudah dapat dipisahkan antara titik mana yang termasuk edge dan yang tidak termasuk edge. Dalam menggunakan metode Canny, terdapat beberapa parameter yang dapat kita ubah sesuai kebutuhan. Pada tahap awal metode Canny, kita dapat mengubah parameter yang dibutuhkan filter Gaussian. Filter Gaussian yang lebih kecil akan menghasilkan gambar yang lebih jelas dan efektif digunakan untuk mendeteksi garis-garis yang jelas. Semakin besar filter Gaussian yang digunakan, gambar hasil filter tersebut akan semakin buram dan semakin baik digunakan untuk mendeteksi garis-garis yang halus, misalnya untuk mendeteksi garis pada pelangi. Parameter lain yang perlu diatur pada metode Canny adalah nilai batas yang digunakan pada hysterisis. Nilai batas atas yang terlalu tinggi dapat menyebabkan adanya titik-titik penting yang terlewati, sedangkan nilai batas bawah yang terlalu rendah dapat menyebabkan noise dikategorikan sebagai titik penting atau edge. Nilai hysterisis ideal yang dapat digunakan akan sangat bergantung pada kondisi aplikasi yang digunakan dan tidak dapat ditetapkan secara baku. Pada pemrosesan citra, dilasi dapat didefinisikan sebagai proses terbentuknya suatu daerah gabungan dari dua buah gambar dimana daerah yang
21
terbentuk adalah daerah yang dapat dijangkau oleh gambar yang satu dengan gambar lain sebagai acuannya. Dengan kata lain, daerah yang terbentuk saat titik pusat suatu gambar digerakkan menyusuri garis batas dari gambar acuannya adalah hasil dari dilasi. Gambar berikut akan memberikan ilustrasi yang lebih jelas dari dilasi:
Gambar 2.2 Dilasi (Sumber: http://en.wikipedia.org/wiki/File:Dilation.png)
Pada gambar tersebut, dilakukan dilasi antara kotak dengan jarak 10 dari titik pusat dan lingkaran dengan radius 2 dari pusatnya. Kotak paling luar merupakan daerah yang terbentuk dari dilasi keduanya Proses ini umumnya perlu dilakukan setelah pendeteksian edge agar edge yang sudah ditemukan tersebut dapat konvergen dan diharapkan membentuk suatu kontur. OpenCV (Open Computer Vision) adalah salah satu open source library yang dapat digunakan untuk membantu dalam melakukan image processing. OpenCV telah menyediakan banyak fungsi yang mempermudah seseorang dalam melakukan image processing. Dengan OpenCV, proses yang rumit seperti proses
22
grayscaling suatu image, proses deteksi edge maupun contour dari suatu gambar, memisahkan kanal warna yang akan diproses, mengubah format gambar, menentukan ROI (Region Of Interest) pada gambar , proses mengambil gambar dan menampilkan gambar tersebut dari video atau kamera , memotong sebagian daerah dalam gambar (crop), mengubah ukuran gambar (resize) ,dan berbagai proses yang perlu kita lakukan pada suatu image menjadi jauh lebih mudah dan sederhana dengan bantuan OpenCV.
2.2 Jaringan Saraf Tiruan 2.2.1
Definisi Jaringan saraf tiruan (JST) (Bahasa Inggris: artificial neural network (ANN), atau juga disebut simulated neural network (SNN), atau umumnya hanya disebut neural network (NN)), adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan saraf manusia. JST merupakan sistem adaptif yang dapat merubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut.
“Sebuah jaringan saraf adalah
sebuah prosesor yang terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu: 1. Pengetahuan diperoleh oleh jaringan melalui suatu
23
proses belajar. 2. Kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan pengetahuan.” (Haykin S, 1994). Secara sederhana, JST adalah sebuah alat pemodelan data statistik non-linier. JST dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output untuk menemukan pola-pola pada data.
2.2.2
Konsep Dasar Jaringan Saraf Tiruan Pembuatan struktur jaringan saraf tiruan diilhami oleh struktur jaringan biologi, khususnya jaringan otak manusia. Untuk lebih mengenal asal-usul serta bagaimana suatu struktur jaringan saraf tiruan dibuat dan dapat dipakai sebagai suatu alat penghitung, berikut ini akan diulas sedikit istilah yang secara umum digunakan. Neuron adalah satuan unit pemroses terkecil pada otak, bentuk sederhana sebuah neuron yang oleh para ahli dianggap sebagai satuan unit pemroses tersebut digambarkan sebagai berikut:
24
Gambar 2.3 Struktur Dasar Jaringan Syaraf Tiruan
Gambar 2.4 Struktur Sederhana Sebuah Neuron (Sumber: http://lecturer.eepis-its.edu/~kangedi/materi kuliah/Kecerdasan Buatan/Bab 8 Jaringan Syaraf Tiruan.pdf)
Struktur pada gambar 2.3 dan 2.4 adalah bentuk standard dasar satuan unit jaringan otak manusia yang telah disederhanakan. Bentuk standard ini mungkin dikemudian hari akan berubah bila ada ilmuwan yang dapat menciptakan bentuk standard yang lebih baik ataupun memperbaiki bentuk standard yang digunakan saat ini. Jaringan otak manusia tersusun tidak kurang dari 1013 buah neuron yang masing-masing terhubung oleh sekitar 1015 buah dendrite (J.J. Siang, 2005). Fungsi dendrite adalah sebagai penyampai sinyal dari neuron tersebut ke neuron yang terhubung dengannya. Sebagai keluaran, setiap neuron memiliki axon, sedangkan bagian penerima sinyal disebut sinapsis. Secara umum jaringan saraf terbentuk dari jutaan (bahkan lebih) struktur dasar neuron yang
25
terinterkoneksi dan terintegrasi antara satu dengan yang lain sehingga dapat melaksanakan aktifitas secara teratur dan terus menerus sesuai dengan kebutuhan.
2.2.3 Komponen Jaringan Saraf Tiruan Ada beberapa tipe jaringan saraf tiruan, namun hampir semuanya memiliki komponen - komponen yang sama. Seperti halnya otak manusia, jaringan saraf juga terdiri dari beberapa neuron, dan ada hubungan antara neuron – neuron tersebut. Pada jaringan saraf hubungan ini dikenal dengan bobot. Informasi yang masuk pada neuron akan diolah dan dikirimkan lagi pada neuron – neuron yg lain. Informasi itu disimpan pada suatu nilai tertentu pada bobot tersebut.
Gambar 2.5 Model Tiruan Sebuah Neuron (Sumber: http://lecturer.eepis-its.edu/~kangedi/materi kuliah/Kecerdasan Buatan/Bab 8 Jaringan Syaraf Tiruan.pdf)
26
Pada jaringan saraf tiruan, neuron buatan ini bekerja mirip dengan cara kerja neuron secara biologis. Informasi (input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai – nilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktifasi setiap neuron. Apabila input tersebut melewati nilai ambang tertentu, maka neuron tersebut akan diaktifkan, tapi kalau tidak, neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan bobot ke neuron – neuron yang berhubungan dengannya. Demikian seterusnya. Neuron – neuron pada jaringan saraf akan dikumpulkan dalam lapisan – lapisan, yang sering disebut dengan neuron layer. Informasi yang diberikan pada jaringan saraf akan dirambatkan dari lapisan ke lapisan mulai dari lapisan input sampai lapisan output melalui lapisan – lapisan yang lain (hidden layer). Informasi akan dirambatkan tergantung dari algoritma pembelajarannya.
2.2.4
Arsitektur Jaringan Saraf Tiruan Hubungan antar neuron dalam jaringan saraf mengikuti pola tertentu, tergantung dari arsitektur jaringan sarafnya. Terdapat 3 jenis arsitektur jaringan saraf (Kusumadewi, Sri. Sri Hartati, 2006, Neuro-Fuzzy), yaitu :
27
- Jaringan saraf dengan lapisan tunggal (single layer net) Arsitektur jaringan saraf ini hanya memiliki satu lapisan dengan bobot – bobot yang terhubung. Jaringan ini hanya menerima input dan langsung mengolahnya menjadi output tanpa harus melewati lapisan tersembunyi. Jadi ciri – ciri dari arsitektur jaringan ini adalah hanya memiliki 1 lapisan input dan 1 lapisan output tanpa ada lapisan tersembunyi.
Gambar 2.6 Single Layer Net - Jaringan saraf dengan banyak lapisan (multi layer net) Arsitektur jaringan ini memiliki 1 atau lebih lapisan tersembunyi diantara lapisan input dan lapisan output. Secara umum, terdapat lapisan bobot diantara 2 lapisan yang bersebelahan. Jaringan dengan banyak lapisan dapat menyelesaikan masalah yang lebih rumit disbanding dengan jaringan dengan lapisan tunggal, tentu dengan pembelajaran yang lebih rumit pula.
28
Gambar 2.7 Multi Layer Net - Jaringan saraf dengan lapisan kompetitif (competitive layer net) arsitektur dengan jaringan ini memiliki bentuk yang berbeda dengan arsitektur yang lainnya, dimana neuron – neuron dapat saling dihubungkan.
Gambar 2.8 Competitive Layer Net
29
2.2.5
Mengaktifkan Jaringan Saraf Tiruan Mengaktifkan jaringan saraf tiruan berarti mengkatifkan setiap neuron yang dipakai pada jaringan tersebut. Ada beberapa fungsi aktifasi yang sering digunakan dalam jaringan saraf tiruan (Kusumadewi, Sri. Sri Hartati, 2006, Neuro-Fuzzy), antara lain : - Fungsi Undak Biner (Hard Limit) Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step function) untuk menkonversi input dari suatu variable yang bernilai kontinu ke suatu output biner. Fungsi hard limit dirumuskan
- Fungsi Bipolar (symmetric Hard Limit) Hampir sama dengan fungsi hard limit hanya saja output yang dihasilkan 1, 0 atau -1. Fungsi symmetric hard limit dirumuskan
- Fungsi Linear (Identity) Fungsi linear memiliki nilai output yang sama dengan nilai inputya. Fungsi linear dirumuskan Y=X - Fungsi Saturating Linear
30
Fungsi saturating linear akan bernilai 0 jika outputnya kurang dari - ½ , dan akan bernilai 1 jika inputnya lebih dari ½. Jika input terletak antara – ½ dan ½ maka outputnya akan sama dengan nilai input ditambah ½ . fungsi saturating linear dirumuskan
- Fungsi Symetric Saturating Linear Fungsi ini memiliki nilai output -1 jika inputnya kurang dari -1, dan bernilai 1 jika inputya lebih dari 1. Jika nilai input terletak antara -1 sampai 1 maka nilai output akan sama dengan nilai input. Fungsi symmetric saturating linear dirumuskan
- Fungsi Sigmoid Biner Fungsi ini digunakan untuk jaringan saraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan saraf yang membutuhkan nilai output yang terletak pada interval o sampai 1. Namun dapat digunakan juga oleh jaringan saraf yang nilai outputnya 0 atau 1. Fungsi sigmoid biner dirumuskan
31
- Fungsi Sigmoid Bipolar Fungsi ini hampir sama dengan fungsi sigmoid biner hanya saja memiliki range antara -1 sampai 1. Fungsi sigmoid bipolar dirumuskan
Salah satu keuntungan fungsi sigmoid adalah bahwa derivatifnya dapat dinyatakan dalam fungsi itu sendiri, yaitu
Karena fungsi tersebut telah dihitung selama perambatan maju pada pelatihan maka waktu perhitungan rambat balik dapat dikurangi.
2.2.6 Parameter-Parameter Yang Digunakan Pada Jaringan Saraf Tiruan - Learning rate ( α ) Learning rate yang besar mempercepat pengurangan eror terutama pada tahap awal proses belajar JST. Walaupun konstanta belajar yang besar dapat mempercepat proses belajar JST, namun ada kondisi tertentu dimana tidak dapat tercapai eror minimum yang diinginkan, karena JST terpental pada eror minimum yang sebenarnya. Bila digunakan konstanta
32
belajar yang kecil maka JST dapat mencapai eror minimum yang diinginkan, namun proses belajar membutuhkan waktu yang lama (Kanata, 2001). - Momentum (β) Semakin besar α maka pengurangan eror semakin besar, namun seringkali eror tidak bisa mencapai eror minimum global, sehingga untuk mengatasi hal tersebut digunakan laju belajar yang kecil, namun membutuhkan jumlah iterasi yang besar. Untuk mengatasi hal tersebut digunakan momentum yang dapat membantu proses pengurangan eror pada jaringan lebih cepat (Kanata, 2001). - Eror Minimum (Threshold) Semakin kecil eror (ideal eror = 0) maka keluaran jaringan hampir sama atau sama dengan target.
2.2.7 Algoritma Pelatihan Back Propagation Algoritma pelatihan Backpropagasi (Backpropagation) atau yang diterjemahkan menjadi propagasi balik, pertama kali dirumuskan oleh Werbos dan dipopulerkan oleh Rumelhart dan McClelland untuk dipakai pada JST. Algoritma ini termasuk metoda pelatihan supervised dan didesain untuk
operasi
pada
jaringan
feedforward
multi
lapis.
Metoda
backpropagation ini banyak diaplikasikan secara luas. Sekitar 90%, bahkan lebih backpropagation telah berhasil diaplikasikan di berbagai bidang,
33
diantaranya diterapkan di bidang finansial, pengenalan pola tulisan tangan, pengenalan pola suara, sistem kendali, pengolah citra medika dan masih banyak lagi keberhasilan backpropagation sebagai salah satu metoda komputasi yang handal. Algoritma ini juga banyak dipakai pada aplikasi pengaturan karena proses pelatihannya didasarkan pada hubungan yang sederhana, yaitu jika keluaran memberikan hasil yang salah, maka bobot (Weight) dikoreksi supaya erornya dapat diperkecil dan respon jaringan selanjutnya
diharapkan
akan
lebih
mendekati
nilai
yang
benar.
backpropagation juga berkemampuan untuk memperbaiki bobot pada lapisan tersembunyi (hidden layer). Secara garis besar, algoritma ini disebut sebagai propagasi balik, karena ketika jaringan diberikan pola masukan sebagai pola pelatihan maka pola tersebut menuju ke unit-unit pada lapisan tersembunyi untuk diteruskan ke unit-unit lapisan keluaran. Kemudian unit-unit lapisan keluaran memberikan tanggapan yang disebut sebagai keluaran jaringan. Saat keluaran jaringan tidak sama dengan keluaran yang diharapkan maka keluaran akan menyebar mundur (backward) pada lapisan tersembunyi diteruskan ke unit pada lapisan masukan. Oleh karenanya maka mekanisme pelatihan tersebut dinamakan backpropagation atau propagasi balik. Tahap pelatihan merupakan langkah bagaimana suatu jaringan saraf tiruan berlatih, yaitu dengan cara melakukan perubahan bobot (sambungan antar lapisan yang membentuk jaringan melalui masing-masing unitnya). Sedangkan
34
pemecahan masalah baru akan dilakukan jika proses pelatihan tersebut selesai. Fase ini disebut pengujian atau testing. Algoritma pelatihan backpropagation terdiri dari dua proses, perambatan maju (feedforward) dan backpropagation dari erornya. Selama perambatan maju, tiap unit masukan (xi) menerima sebuah masukan sinyal ini ke tiap-tiap lapisan tersembunyi z1,…..,zp. Tiap unit tersembunyi ini kemudian menghitung aktivasinya dan mengirimkan sinyalnya (zj) ke tiap unit keluaran. Tiap unit keluaran (yk) menghitung aktivasinya (yk) untuk membentuk respon pada jaringan untuk memberikan pola masukan. Selama pelatihan, tiap unit keluaran membandingkan perhitungan aktivasinya yk dengan nilai targetnya tk untuk menentukan kesalahan pola tersebut dengan unit itu. Berdasarkan kesalahan ini, faktor δk (k = 1,..,m) dihitung. δk digunakan untuk menyebarkan kesalahan pada unit keluaran yk kembali ke semua unit pada lapisan sebelumnya (unit-unit tersembunyi yang dihubungkan ke yk). Juga digunakan (nantinya) untuk mengupdate bobotbobot antara keluaran dan lapisan tersembunyi. Dengan cara yang sama, faktor (j = 1,…,p) dihitung untuk tiap unit tersembunyi zj. Tidak perlu untuk menyebarkan kesalahan kembali ke lapisan masukan, tetapi δj digunakan untuk mengupdate bobot-bobot antara lapisan tersembunyi dan lapisan masukan. Setelah seluruh faktor δ ditentukan, bobot untuk semua lapisan diatur secara serentak. Pengaturan bobot wjk (dari unit tersembunyi zj ke
35
unit keluaran yk) didasarkan pada faktor δk dan aktivasi zj dari unit tersembunyi zj didasarkan pada faktor δj dan dan aktivasi xi unit masukan. Untuk jelasnya dapat dijelaskan rinciannya sebagai berikut: Langkah 0: Pemberian inisialisasi bobot (diberi nilai kecil secara acak). Langkah 1: Ulangi langkah 2 hingga 9 sampai kondisi akhir iterasi dipenuhi. Langkah 2: Untuk masing-masing pasangan data pelatihan (training data) lakukan langkah 3 hingga 8. Propagasi maju atau feedforward: Langkah 3: Masing-masing unit masukan (Xi, i = 1,....n) menerima sinyal masukan Xi dan sinyal tersebut disebarkan ke unit-unit bagian berikutnya (unit-unit lapisan tersembunyi). Langkah 4: Masing-masing unit dilapisan tersembunyi dikalikan dengan faktor bobot dan dijumlahkan serta ditambah dengan biasnya:
Kemudian menghitung sesuai dengan fungsi aktifasi yang digunakan:
36
bila yang digunakan adalah fungsi sigmoid maka bentuk fungsi tersebut adalah:
Kemudian mengirim sinyal tersebut ke semua unit keluaran (unit keluaran). Zj = Unit ke-j pada lapisan tersembunyi Z_inj = keluaran untuk unit Zj V0j = nilai bobot sambungan pada bias untuk unit Zi Vij = nilai bobot sambungan dari unit Xi ke unit Zi Langkah 5: Masing-masing unit keluaran (yk, k = l,2,3...m) dikalikan dengan faktor bobot dan dijumlahkan:
Menghitung kembali sesuai dengan fungsi aktifasi
Yk = unit ke -k pada lapisan keluaran Y_ink = net masukan untuk unit Yk W0k = nilai bobot sambungan pada bias untuk unit Yk Wjk = nilai bobot sambungan dari Zij ke unit Yk
Backpropagasi dan erornya:
37
Langkah 6: Masing-masing unit keluaran (Yk, k = l,...,m) menerima pola target sesuai dengan pola masukan saat pelatihan atau training dan dihitung erornya:
karena f ’(y_ink) = yk menggunakan fungsi sigmoid, maka:
Menghitung perbaikan faktor bobot (kemudian untuk memperbaiki wjk).
Menghitung perbaikan koreksi:
dan menggunakan nilai δk pada semua unit lapisan sebelumnya. δk = faktor pengaturan nilai bobot sambungan pada lapisan keluaran α = konstanta laju pelatihan (leaming rate) 0 < α < 1 Langkah 7: Masing-masing bobot yang menghubungkan unit-unit lapisan keluaran dengan unit-unit pada lapisan tersembunyi (Zj ,j=1..,p) dikalikan delta dan dijumlahkan sebagai masukan ke unit-unit lapisan berikutnya.
38
Selanjutnya dikalikan dengan turunan dari fungsi aktifasinya untuk menghitung eror.
Kemudian menghitung perbaikan bobot (digunakan untuk memperbaiki Vij).
Kemudian menghitung perbaikan bias (untuk memperbaiki v0j).
δj = faktor pengaturan nilai bobot sambungan pada lapisan tersembunyi
Memperbaiki bobot dan bias: Langkah 8: Masing-masing keluaran unit (yk, k=1,..,m) diperbaiki bias dan bobotnya (j = 0,...,p).
Masing-masing unit tersembunyi (Zj, bobotnya (j=0,...,n).
Langkah 9: Uji kondisi pemberhentian.
j:
1,....,p) diperbaiki bias dan
39
Untuk pembaharuan nilai bobot terdapat tambahan metode yang dapat digunakan yaitu dengan menggunakan momentum yang didasarkan pada kombinasi antara gradien sekarang dengan gradien yang lalu. Hal ini berguna jika terdapat beberapa data pelatihan yang sangat berbeda dari mayoritas data pelatihan yang lain. Untuk menggunakan momentum ini, nilai bobot dari satu atau lebih lapis sebelumnya harus disimpan. Persamaan pembaharuan nilai bobot dengan menggunakan momentum adalah:
β = konstanta momentum 0 < β < 1
2.3 ARM (Advanced RISC Machine) ARM adalah 32-bit RISC arsitektur prosesor yang dikembangkan oleh ARM Limited yang banyak digunakan dalam desain embedded. Karena fitur penyimpan dayanya, ARM sangat dominan di pasar elektronik, di mana konsumsi daya rendah adalah tujuan penting perancangan. Prosesor ARM menyediakan fiturfitur: ‐ Untuk aplikasi-aplikasi yang membutuhkan keamanan. ‐ Untuk embedded real-time system. ‐ Untuk menjalankan berbagai macam sistem operasi. ‐ 16 × 32-bit file register yang seragam ‐ Arsitektur loadataustore.
40
‐ Single-cycle execution (sebagian besar) Kelebihan desain ARM adalah penggunaan suatu kondisi kode 4-bit di bagian depan setiap instruksi, yang berarti bahwa pelaksanaan setiap instruksi adalah kondisi opsional. Arsitektur CPU lainnya biasanya hanya mempunyai kondisi kode pada cabang instruksi. ARM prosesor ia juga memiliki beberapa fitur jarang dilihat pada arsitektur RISC lainnya, seperti PC- relative addressing (memang, pada ARM PC adalah salah satu dari 16 register) dan pre- dan post-increment addressing modes. Beberapa prosesor ARM awal (sebelum ARM7TDMI), tidak memiliki instruksi untuk menyimpan dua byte kuantitas. Prosesor yang digunakan pada beagle board adalah prosesor ARM CortexA8. Prosesor ARM Cortex-A8 adalah prosesor aplikasi pertama dengan arsitektur ARMv7 dan merupakan posesor dengan kinerja tertinggi serta memiliki daya paling efisien yang tersedia dari ARM. ARM Cortex-A8 prosesor adalah prosesor superscalar pertama yang menampilkan kode teknologi untuk meningkatkan kerapatan dan kinerja, teknologi NEON untuk multimedia dan pengolahan sinyal, dan teknologi Jazelle RCT (Runtime Compilation Target) untuk mendukung efisiensi kompilasi Java dan bytecode bahasa lainnya.
41
Gambar 2.9 Diagram Blok ARM CORTEX-A8 (Sumber: http://www.arm.com/products/processors/cortex-a/cortex-a8.php)
2.4 Embedded System Embedded System adalah sebuah aplikasi yang mengandung paling sedikit sebuah program yang dapat dprogram (sejenis mikrokontroler, mikroprosesor atau
42
chip prosesor sinyal digital) dan digunakan oleh orang-orang yang pada dasarnya tidak menyadari bahwa itu adalah sistem berbasis komputer (Pont, 2001, p9). Embedded System adalah perangkat elektronik yang menyertakan sebuah komputer (biasanya mikroprosesor) di dalam implementasinya. Sebuah komputer yang digunakan di dalam perangkat tersebut adalah untuk menyederhanakan system dan memberikan fleksibilitas. Kadang pengguna perangkat tidak menyadari adanya sebuah komputer (Daniel W. Lewis, 2002, p17).
2.5 Beagle Board 2.5.1
Introduksi Beagle Board adalah sebuah Single Board Computer (SBC) yang berbasiskan TI OMAP3530 . TI OMAP3530 (Texas Instrument Open Multimedia
Application
Platform)
adalah
sebuah
platform
yang
dikembangkan oleh Texas Instrument untuk aplikasi – aplikasi multimedia yang berbasiskan pada embedded ARM Cortex 8. Platform OMAP ini telah banyak digunakan di berbagai macam device seperti handphone NOKIA seri N dan seri E, juga Sony Ericson. Seperti selayaknya komputer, Beagle Board memiliki feature-feature seperti yang dimiliki oleh computer, seperti port USB, koneksi serial, audio-video output, dll.
43
Gambar 2.10 Skenario Penggunaan Beagle Board (Sumber: http://beagleboard.org/static/BBSRM_latest.pdf)
Beagle board berukuran sekitar 3" x 3" dan memiliki semua fungsionalitas komputer dasar. OMAP3530 meliputi CPU Cortex-A8 ARM (yang dapat menjalankan Windows CE, Linux atau Symbian), sebuah TMS320C64x + DSP untuk menjalankan video dan audio decoding, dan Imagination Technologies PowerVR SGX530 GPU untuk menjalankan 2D dan 3D rendering yang mendukung OpenGL ES 2,0. Output video terhubung melalui S-Video dan koneksi HDMI. Sebuah SD atau MMC card slot mendukung SDIO, port USB On-the-Go, sebuah koneksi serial RS-232, sebuah koneksi JTAG, dan dua buah stereo jack 3.5 mm untuk audio in atau
44
out. Built-in memori dan storage disediakan melalui chip PoP yang mencakup 256MB memori flash NAND dan 128MB RAM. Board memerlukan daya 2W yang bisa didapat dari koneksi USB atau dari power supply 5v yang terpisah. Karena konsumsi daya yang efisien, beagle board tidak memerlukan pendinginan tambahan.
Gambar 2.11 Beagle Board (Sumber: http://beagleboard.org/hardware)
2.5.2
Fitur-Fitur Beagle Board Beagle board menggunakan OMAP3530 versi ES3.0 beserta sebuah PoP (Package on Package) 0.4 mm. PoP adalah suatu teknik di mana memori, NAND dan SDRAM, yang dipasang pada bagian atas OMAP3530.
45
Karena itu pada beagle board tidak akan ditemukan bagian berlabel OMAP3530. Memori PoP yang digunakan pada beagle board Rev C3 yaitu Micron dan sudah terpasang pada bagian atas prosesor. Fungsi dari memori PoP adalah untuk menyediakan 2Gb NAND x 16 (256MB) dan 2Gb MDDR SDRAM x32 (256MB @ 166MHz). Tidak ada perangkat memori lain di BeagleBoard. Namun ada kemungkinan, bahwa tambahann memori dapat ditambahkan ke beagle board dengan menginstal sebuah perangkat berbasis NAND di slot SD atau MMC atau menggunakan port USB OTG dan hub USB untuk USB Thumb drive atau hard drive. Dukungan untuk ini bergantung pada dukungan driver di OS. Pada Rev C3, port host USB dapat digunakan selain port OTG.
46
Tabel 2.2 Fitur-Fitur Beagle Board TPS65950 digunakan pada Rev C3 untuk memberikan daya kepada beagle board dengan pengecualian dari regulator 3.3 V yang digunakan untuk menyediakan listrik ke DVI-D encoder dan driver RS232. Selain memberika daya, TPS65950 juga menyediakan stereo audio out, stereo audio in, reset power on, USB OTG PHY dan status LED. Port OTG HS USB 2.0 merupakan sumber energi utama dan link untuk komunikasi beagle board dan daya berasal dari PC melalui kabel USB. Port klien dalam kebanyakan kasus dibatasi oleh PC sampai 500mA. Sebuah port USB PC cukup untuk daya beagle board. Jika perangkat tambahan yang terhubung ke ekspansi bus
47
dan jalur 5V digunakan, maka daya yang diperlukan bisa melebihi yang disediakan
oleh
port
USB
atau
Hub.
Diperlukan penggunaan kabel Y jika daya tambahan dibutuhkan untuk kedua host port USB atau kartu ekspansi. Gambar 2 menunjukkan dan contoh dari Y-Cable untuk USB.
Gambar 2.12 USB Y-Cable
Beagle board memerlukan satu minAB untuk kabel USB A atau sebagaimana disebutkan Y-Cable dapat digunakan jika diperlukan. Ada pilihan untuk memberikan daya eksternal ke beagle board. Board menggunakan supply DC 5V. Pada board Rev C3 USB HS, hanya host port yang disediakan melalui konektor USB Tipe A. Konektor USB Tipe A menyediakan control power on-off dan arus sampai 500mA pada 5V. Sebuah
standar output stereo jack audio 3.5mm disediakan untuk mengakses CODEC audio output stereo on board. CODEC audio disediakan oleh TPS65950. Sebuah standar 3.5mm jack audio input stereo disediakan untuk mengakses
48
CODEC audio output stereo onboard. 4 pin konektor DIN disediakan untuk mengakses output S-Video BeagleBoard. Ini adalah output terpisah dari prosesor OMAP dan dapat berisi data output video yang berbeda dari apa yang ditemukan pada output DVI-D. Ini akan mendukung format NTSC atau PAL standar output ke TV. Default adalah NTSC, tetapi dapat diubah melalui perangkat lunak. Beagle board dapat menjalankan panel LCD yang dilengkapi dengan input digital DVI-D. Ini adalah standar antarmuka panel LCD dari OMAP3530 dan akan mendukung 24b output warna. DDC2B (Display Data Channel) atau EDID (Enhanced Display ID) yang merupakan dukungan atas I2C disediakan dalam rangka untuk memungkinkan identifikasi jenis monitor LCD dan pengaturan. Beagle board dilengkapi dengan konektor DVI-D yang menggunakan konektor HDMI. Beagle board tidak mendukung antarmuka full HDMI dan digunakan untuk menyediakan antarmuka bagian DVI-D saja. Pengguna harus menggunakan kabel atau adaptor HDMI to DVI-D untuk terhubung ke monitor LCD. Kabel atau adaptor ini tidak dilengkapi dengan beagle board. Kabel HDMI standar dapat digunakan saat terhubung ke monitor dengan konektor HDMI. Konektor 6 in 1 SD atauMMC disediakan sebagai sarana untuk ekspansi dan dapat mendukung perangkat seperti WiFi cards, kamera, bluetooth cards, Modul GPS, SD Memory Card, MMC Memory cards, SDIO cards, MMC Mobile cards, RS-MMC cards, dan miniSD cards. Salah satu
49
fitur yang baik adalah bahwa OMAP3530 dapat di-boot dari SD atau MMC. Dengan memegang tombol dan memaksa reset, beagle board akan boot dari SD atau MMC. Ketika tombol reset ditekan dan dilepaskan, menyebabkan reset beagle board. Reset tidak akan bekerja saat kernel Linux sedang berjalan. Untuk mereset board melalui operasi kernel, diperlukan sebuah siklus daya. Tombol user atau boot yang disediakan di beagle board menyediakan dua fungsi, yaitu memaksa perubahan dalam urutan boot dari OMAP3530 dan digunakan sebagai tombol aplikasi yang dapat digunakan oleh software yang diperlukan. Ketika digunakan bersama dengan tombol RESET, hal ini akan memaksa perubahan dengan urutan boot sumber yang diperiksa
sebagai
sumber
boot
layak.
Jika tombol ditekan sementara tombol RESET dilepaskan, urutan menjadi: USB, UART, MMC1, NAND. Meskipun NAND mungkin memiliki program di dalamnya, jika kartu ditempatkan di slot MMC, itu akan mencoba untuk boot terlebih dahulu. Jika tidak ada, maka akan boot dari NAND. Ada juga pilihan untuk memiliki aplikasi download serial yang akan memrogram NAND jika terhubung ke port serial atau USB. Dalam skenario ini ROM internal akan berhenti di serial atau port USB dan memulai proses download dari sana. Itu memerlukan aplikasi untuk dijalankan pada host PC dalam rangka melakukan fungsi ini. Jika pengguna tidak menekan tombol di reset, urutan di mana ROM internal terlihat untuk sumber-sumber yang layak boot adalah NAND, USB, UART3, MMC1. Dalam kasus ini, NAND
50
menggantikan setiap pilihan dan akan selalu melakukan boot dari NAND jika ada data dalam NAND. Jika NAND kosong, maka sumber-sumber lain yang tersedia digunakan berdasarkan urutan boot. Ada tiga LED hijau di BeagleBoard yang dapat dikendalikan oleh pengguna. Satu di TPS65950 yang diprogram melalui antarmuka I2C. Dua pada Processor OMAP3530 dikontrol via pin GPIO. Ada LED keempat pada beagle board yang memberikan indikasi bahwa daya diberikan ke board. Daya akan diberikan melalui konektor USB OTG dan jika timbul kebutuhan untuk tambahan daya, seperti ketika board ditambahkan ke konektor ekspansi, pasokan 5V dapat dipasang ke jack daya opsional. Ketika pasokan terpasang,
itu
akan menghapus jalur daya dari konektor USB dan akan menjadi sumber daya bagi seluruh board. Catu daya tidak disediakan dengan beagle board. Bila menggunakan port USB OTG dalam modus host, suplai DC harus tersambung sebagai port USB yang akan digunakan untuk memberikan daya terbatas ke hub di maksimum 100mA, sehingga harus powered hub. 14 pin header JTAG yang disediakan di beagle board untuk memfasilitasi pengembangan software dan debugging dari forum dengan menggunakan berbagai JTAG emulator. Dukungan untuk RS232 melalui UART3 ini disediakan oleh 10 pin header di beagle board untuk akses ke RS232 transceiver onboard. Itu membutuhkan kabel datar IDC to DB9, yang tidak disediakan, untuk mengakses port serial. Satu pilihan untuk 28 pin
51
header expansi ini disediakan di board untuk memungkinkan sambungan berbagai kartu ekspansi yang dapat dikembangkan oleh pengguna atau sumber lain. Header ini tidak dihuni pada beagle board sehingga berdasarkan skenario penggunaan dapat diisi sesuai kebutuhan (Atas, Bawah, Kanan atas sudut, atau Bottom Sudut siku-siku).
Gambar 2.13 Diagram Blok Sistem Beagle Board (Sumber: Beagle Board System Reference Manual Rev C3, 2009, p41)