5
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
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 masing-
masing 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 bobot-
bobot 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, j: 1,....,p) diperbaiki bias dan
bobotnya (j=0,...,n).
Langkah 9:
Uji kondisi pemberhentian.
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 fitur-
fitur:
‐ 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 Cortex-
A8. 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)