• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB II LANDASAN TEORI"

Copied!
21
0
0

Teks penuh

(1)

BAB II

LANDASAN TEORI

Dalam bab ini akan dipaparkan mengenai teori – teori dasar yang digunakan sebagai landasan yang digunakan dalam menyelesaikan tugas akhir ini. Berikut teori – teori yang digunakan :

2.1 Traffic Sign Detection and Recognition

Traffic Sign Detection and Recogniton (TSDR) adalah fungsi pendukung driver yang dapat digunakan untuk memberi tahu dan memperingatkan pengemudi tentang peringatan,perintah,larangan serta batasan mana yang mungkin efektif pada rentang jalan yang dilalui. Sistem dapat membantu sopir untuk mempertahankan kecepatan dengan normal, dan mematuhi rambu lalu lintas.. Karena sistem pendeteksi dan mengenali rambu lalu lintas di sisi jalan hanya menggunakan informasi penglihatan mungkin rambu yang kabur atau tertutup pohon mungkin tidak dikenali.(Gudigar, 2017)

2.2 Advanced Driver Asysten System (ADAS)

Ada banyak minat dari industri otomotif, pengemudi, pemilik armada dan otoritas angkutan umum untuk Advanced Driver Asysten System (ADAS) dalam lalu lintas jalan. Sistem ini merujuk ke perangkat elektronik untuk mendukung driver dalam melakukan berbagai tugas mengemudi (seperti penggabungan, kontrol kecepatan atau pemeliharaan jalur). Sehubungan dengan tugas pengemudi sebagai contoh dari sistem tersebut adalah menjaga kecepatan headway, menghindari tabrakan depan atau samping, sistem pemeliharaan jalur, sistem untuk kontrol kendaraan atau kesiapan keselamatan. Teknologi itu umumnya didasarkan pada konsep pengumpulan data tentang perilaku dan kendaraan lingkungan secara langsung untuk menganalisis pola dalam data sambil mencocokkan pola-pola dengan aturan keputusan (intelijen) dan aktivasi fungsi dukungan driver tertentu (Hall, 1995).

2.3 Pengolahan citra 2.3.1 Dasar Teori

Sebuah citra diubah ke bentuk digital agar dapat disimpan dalam memori komputer atau media lain. Proses mengubah citra ke bentuk digital bisa dilakukan

(2)

dengan beberapa perangkat, misalnya scanner, kamera digital, dan handycam.

Ketika sebuah citra sudah diubah ke dalam bentuk digital (selanjutnya disebut citra digital), bermacam-macam proses pengolahan citra dapat diperlakukan terhadap citra tersebut. (Beyeler, 2015)

Image processing atau sering disebut dengan pengolahan citra digital merupakan suatu proses dari gambar asli menjadi gambar lain yang sesuai dengan keinginan kita. Misal suatu gambar yang kita dapatkan terlalu gelap maka dengan image processing gambar tersebut bisa kita proses sehingga mendapat gambar yang jelas. Secara garis besar dapat diilustrasikan sebagai berikut :

Gambar 2.1 Blok Diagram Pengolahan Citra

Prinsip dasar dari pengolahan citra adalah pengolahan warna RGB pada posisi tertentu. Dalam pengolahan citra warna dipresentasikan dengan nilai hexadesimal dari 0x00000000 sampai 0x00ffffff. Warna hitam adalah 0x00000000 dan warna putih adalah 0x00ffffff. Definisi nilai warna di atas seperti gambar 2.2, variabel 0x00 menyatakan angka dibelakangnya adalah hexadesimal.

Gambar 2.2 Nilai warna RGB dalam hexadecimal

Terlihat bahwa setiap warna mempunyai range nilai 00 (angka desimalnya adalah 0) dan ff (angka desimalnya adalah 255), atau mempunyai nilai derajat keabuan 256 = 28. Dengan demikian range warna yang digunakan adalah (28)(

28)(28) = 224 (atau yang dikenal dengan istilah True Colour pada Windows). Nilai warna yang digunakan di atas merupakan gambungan warna cahaya merah, hijau dan biru seperti yang terlihat pada gambar 2.3. Sehingga untuk menentukan nilai dari suatu warna yang bukan warna dasar digunakan gabungan skala kecerahan dari setiap warnanya.

(3)

Gambar 2.3 Komposisi warna RGB(forums.sketchup.com)

Dari definisi diatas untuk menyajikan warna tertentu dapat dengan mudah dilakukan, yaitu dengan mencampurkan ketiga warna dasar RGB, table 2.1. berikut memperlihatkan contoh warna yang bisa digunakan.

Tabel 2.1 Contoh warna dalam hexadecimal

Nama Warna HEX RGB

Black #000000 rgb(0, 0, 0)

Green #008000 rgb(27, 128, 1)

Orange #FFA500 rgb(252, 165, 3)

Red #FF0000 rgb(255, 0, 0)

Yellow #FFFF00 rgb(255, 255, 0)

Blue #0000FF rgb(0, 0, 255)

Sumber : www.dianagung.com

Untuk mengetahui kombinasi warna, perlu dibuat suatu program yang dapat menampilkan warna sesuai dengan nilai yang dimasukkan sehingga dapat dicoba berbagai macam kombinasi warna RGB seperti gambar 2.3.

2.3.2 Pixel dan Resolusi Citra

Piksel merupakan satuan komponen terkecil dari gambar yang menentukan ukuran dari suatu gambar. Resolusi citra menyatakan ukuran bit dari suatu citra dalam satuan piksel. Untuk citra biner, piksel gambar yang kecerahannya dibawah tingkat tertentu diwakili oleh “0” sedangkan diatasnya diwakili oleh “1”, dengan demikian semua citra didalam memory komputer dapat diwakili oleh logika “1”

dan “0”. (Beyeler, 2015)

(4)

Sekarang kita dapat menghitung jumlah memory yang dibutuhkan untuk menyimpan citra tersebut. Sebagai contoh citra yang memiliki resolusi 256 x 256 piksel (jumlah total 65536), karena setiap piksel diwakili oleh “1” dan “0” dan computer membutuhkan satu bit untuk menyimpan setiap piksel, sehingga dibutuhkan total bit sekitar 64 Kb.

2.3.3 Hubungan Antara Pixel

Dalam masalah pengolahan citra, hubungan antar piksel merupakan hal yang sangat penting. Sebuah piksel p pada koordinat (x,y) mempunyai 4 tetangga horizontal dan vertical.

Hubungan antar piksel merupakan suatu konsep yang sangat penting yang digunakan untuk mendefinisikan batas-batas dari suatu objek serta bagian-bagian daerah kecil dari suatu gambar. Sebagai pertimbangan apakah dua piksel dihubungkan atau tidak, diperlukan beberapa kriteria. Diantaranya adalah apakah kedua piksel tersebut mempunyai prinsip kedekatan yang sesuai dengan konsep yang telah ditentukan, seperti konsep 4 neighbours atau 8-neighbours. Selain itu, apakah kedua piksel tersebut memiliki gray level yang sesuai dengan kriteria yang diinginkan. Sebagai contoh, jika dua piksel mempunyai nilai masing-masing 0 dan 1 dan keduanya merupakan bagian dari 4 neighbours, maka dinyatakan bahwa kedua piksel tersebut tidak ada hubungan, hal ini karena keduanya memiliki nilai yang berbeda.(Beyeler, 2015)

2.3.4 Ciri Gambar

Ciri merupakan suatu tanda yang khas, yang membedakan antara satu dengan yang lain. Ciri – ciri dasar dari gambar adalah:

Warna

Ciri warna suatu gambar dapat dinyatakan dalam bentuk histogram dari gambar tersebut yang dituliskan dengan: H(r,g,b), dimana H(r,g,b) adalah jumlah munculnya pasangan warna r (red), g (green) dan b (blue) tertentu.

Bentuk

 Ciri bentuk suatu gambar dapat ditentukan oleh tepi (sketsa), atau besaran moment dari suatu gambar. Pemakaian besaran moment pada ciri bentuk

(5)

ini banyak digunakan orang dengan memanfaatkan nilai-nilai transformasi fourier dari gambar.

 Proses yang dapat digunakan untuk menentukan ciri bentuk adalah deteksi tepi, threshold, segmentasi dan perhitungan moment seperti (mean, median dan standard deviasi dari setiap lokal gambar).

Tekstur

Ciri tekstur dari suatu gambar dapat ditentukan dengan menggunakan filter.

 Ciri tekstur ini sangat handal dalam menentukan informasi suatu gambar bila digabungkan dengan ciri warna gambar.

2.3.5 Citra Grayscale

Citra grayscale adalah citra yang hanya memiliki 1 buah kernel sehingga yang ditampilkan hanyalah nilai intensitas atau dikenal juga dengan istilah derajat keabuan. Karena jenis citra ini hanya memiliki 1 kanal saja, maka citra grayscale memiliki tempat penyimpanan yang lebih hemat. Jenis citra ini disebut juga sebagai 8-bit image karena untuk setiap nilai pikselnya memerlukan penyimpanan sebesar 8-bit.(Hidayatullah, 2017)

Gambar menunjukan perbedaan antara citra berwarna dengan citra grayscale.

Citra berwarna Citra grayscale

Gambar 2.4 Perbedaan citra berwarna dan citra grayscale

Secara teori ada beberapa cara dalam mengonversi citra berwarna RGB ke dalam citra grayscale. Cara yang paling mudah adalah dengan merata-ratakan semua nilai piksel RGB sesuai dengan persamaan (2.1) berikut.

𝒚 =𝟏

𝟑(𝑹 + 𝑮 + 𝑩) (2.1)

(6)

Didalam Python terdapat fungsi library OpenCV untuk mengkonversi citra berwarna menjadi citra grayscale dengan fungsi cv2.cvtColor. Berikut ini adalah cara mengkonversi citra berwarna manjadi citra grayscale.

import cv2

# Reading color image

img = cv2.imread("citra.png")

# Converting color image to grayscale image

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan. Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing r, g dan b menjadi citra grayscale dengan nilai s, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai r, g dan b.

Gambar 2.5 Contoh Sample Grayscale (www.dfrobot.com) 2.3.6 Operator Canny

Metode yang sangat terkenal dalam pendeteksian tepi adalah metode Canny yang ditemukan pada tahun 1986. Pendekatan ini dapat menemukan tepi dengan ketebalan 1 piksel (Moeslund, 2012). Langkah pertama adalah menghaluskan citra menggunakan filter gaussian yang dilanjutkan dengan menerapkan kernel sobel.

Dari kernel sobel arah gradien disetiap titik diestimasi. Selanjutnya, prinsip non- maximum suppression diterapkan. Untuk setiap piksel besarnya gradien dibandingkan dengan besaran dua tetangga terdekat yang searah dengan gradienya.

Dua piksel dengan nilai gradien terkecil akan dihapus. Hal ini kemudian diterapkan pada semua piksel sampai menghasilkan tepi dengan ketebalan 1 piksel.

Langkah terakhir adalah menerapkan sebuah nilai ambang untuk memangkas tepi

(7)

dengan besaran gradien yang terlalu kecil. Namun, jika sebuah tepi memiiki besaran gradien yang terlalu kecil terhubung pada sebuah piksel dengan besaran gradien di atas ambang batas, maka tepi tersebut tiding dipangkas. Hal ini membuat proses pemangkasan lebih adiptif yang dikenal sebagai prinsip hysteresis thresholding.(Hidayatullah, 2017)

OpenCV menempatkan semua hal di atas dalam fungsi tunggal, cv2.Canny (). Argumen pertama adalah gambar input. Argumen kedua dan ketiga adalah minVal dan maxVal. Argumen ketiga adalah aperture_size sebagai ukuran kernel Sobel yang digunakan untuk menemukan gradien gambar.

𝑬𝒅𝒈𝒆 𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕 (𝑮) = |𝑮𝒙| + |𝑮𝒚| (2.2)

Berikut ini adalah cara mengkonversi citra grayscale manjadi citra tepi pada Python.

import cv2

img = cv2.imread(“citra.jpg”,0) edges = cv2.Canny(img,100,200) 2.3.7 Korelasi matriks

Penerapan pada program menggunakan library OpenCV dengan contoh sebagai berikut.

# detect edges in the resized, grayscale image and apply template

# matching to find the template in the image edged = cv2.Canny(resized, 50, 200)

result= cv2.matchTemplate(edged, template, cv2.TM_CCOEFF)

(_, maxVal, _, maxLoc) = cv2.minMaxLoc(result)

# if we have found a new maximum correlation value, then update

# the bookkeeping variable

if found is None or maxVal > found[0]:

(8)

found = (maxVal, maxLoc, r)

# unpack the bookkeeping variable and compute the (x, y) coordinates

# of the bounding box based on the resized ratio

(_, maxLoc, r) = found

(startX, startY) = (int(maxLoc[0] * r), int(maxLoc[1]

* r))

(endX, endY) = (int((maxLoc[0] + tW) * r), int((maxLoc[1] + tH) * r))

# draw a bounding box around the detected result and display the image

cv2.rectangle(self.img, (startX, startY), (endX, endY), (0, 255, 0), 3)

Penerapan pada Python menggunakan funsgi library OpenCV yaitu cv2.minMaxLoc() utntuk mengambil hasil korelasi dan mengembalikan 4- tuple yang mencakup nilai korelasi minimum, nilai korelasi maksimum, kordinat (x, y) dari nilai minimum, dan kordinat (x, y) dari nilai maksimum, masing-masing.

Pada penerapan hanya mengambil nilai maksimum dan kordinat (x, y) sehingga menyimpan nilai maksimum dan membuang nilai minimum.

Variabel found untuk melacak nilai korelasi maksimum yang ditemukan selama perulangan, dan kordinat (x, y) nilai maksimum, bersama dengan rasio lebar gambar asli ke saat ini, dan lebar gambar yang diubah ukurannya.

Setelah perulangan semua skala gambar, kemudian nilai ditampung pada variable (_, maxLoc, r) = found , dan kemudian menghitung kordinat awal dan akhir (x, y) untuk membuat kotak citra gambar yang terdeteksi menggunakan fungsi cv2.Rectangle().

(9)

2.3.8 Tresholding

Tresholding digunakan untuk mengatur jumlah derajat keabuan yang ada pada citra. Dengan menggunakan thresholding maka derajat keabuan bisa diubah sesuai keinginan, misalkan diinginkan menggunakan derajat keabuan 16, maka tinggal membagi nilai derajat keabuan dengan 16. Proses tresholding ini pada dasarnya adalah proses pengubahan kuantisasi pada citra, sehingga untuk melakukan tresholding dengan derajat keabuan dapat digunakan rumus:

𝒙 = 𝒘

𝒃 (2.3) Keterangan :

x adalah nilai derajat keabuan setelah thresholding w adalah nilai derajat keabuan sebelum tresholding b adalah jumlah derajat keabuan yang diinginkan

Gambar 2.6 Contoh Gambar Thresholding 2.3.9 Connected Component

Connected component labeling adalah aplikasi algoritmik dari teori grafik, di mana himpunan bagian dari komponen yang terhubung diberi label unik berdasarkan heuristik yang diberikan. Pelabelan komponen yang terhubung tidak disamakan dengan segmentasi. Connected component digunakan dalam visi komputer untuk mendeteksi daerah yang terhubung dalam gambar digital biner, meskipun gambar berwarna dan dengan data dimensi yang lebih tinggi juga dapat diproses. Ketika diintegrasikan ke dalam sistem pengenalan gambar atau antarmuka

(10)

interaksi manusia-komputer, pelabelan komponen yang terhubung dapat beroperasi pada berbagai informasi. (Di Stefano, L., & Bulgarelli, A, 1999)

Ekstraksi gumpalan umumnya dilakukan pada gambar biner yang dihasilkan dari langkah thresholding, tetapi dapat juga berlaku untuk gambar skala abu-abu dan warna. Selanjutnya gumpalan dapat dihitung, disaring, dan dilacak

2.3.10 Morphological transformations

Transformasi morfologis adalah beberapa operasi sederhana berdasarkan bentuk gambar. Ini biasanya dilakukan pada gambar biner. Dibutuhkan dua input, satu adalah gambar asli, yang kedua disebut elemen penataan atau kernel yang menentukan sifat operasi. Dua operator dasar morfologi adalah Erosi dan Dilasi.

Kemudian bentuk variannya seperti Opening, Closing, Gradient dll juga ikut berperan. (Beyeler, 2015)

A. Erosion

Ide dasar erosi adalah seperti erosi tanah saja, ini mengikis batas-batas objek latar depan (Selalu mencoba untuk menjaga latar depan putih). Jadi apa fungsinya? Kernel slide melalui gambar (seperti dalam konvolusi 2D). Sebuah piksel dalam gambar asli (baik 1 atau 0) akan dianggap hanya 1 jika semua piksel di bawah kernel adalah 1, jika tidak maka akan tererosi (dibuat menjadi nol). Jadi apa yang terjadi adalah, semua piksel di dekat batas akan dibuang tergantung pada ukuran kernel.

Jadi ketebalan atau ukuran objek latar depan berkurang atau hanya bagian putih berkurang dalam gambar. Berguna untuk menghilangkan gangguan putih untuk melepaskan dua objek yang terhubung dll.

Gambar 2.7 Contoh gambar hasil erosion (www.OpenCV.org)

(11)

B. Dilation

Ini kebalikan dari erosi. Di sini, elemen piksel adalah '1' jika setidaknya satu piksel di bawah kernel adalah '1'. Sehingga meningkatkan wilayah putih pada gambar atau ukuran objek foreground bertambah. Biasanya, dalam kasus seperti penghapusan gangguan, erosi diikuti oleh pelebaran. Karena erosi menghilangkan gangguan putih, tetapi juga menyusutkan objek. Karena gangguan hilang, mereka tidak akan kembali, tetapi area objek kami meningkat.

Ini juga berguna untuk menggabungkan bagian-bagian yang rusak dari suatu objek.

Gambar 2.8 Contoh gambar hasil dilation (www.OpenCV.org) 2.3.11 Contour

Penelusuran kontur adalah salah satu dari banyak teknik praproses yang dilakukan pada gambar digital untuk mengekstraksi informasi tentang bentuk umumnya. Setelah pola contour yang diberikan diekstraksi, karakteristik yang berbeda akan diperiksa dan digunakan sebagai fitur yang nantinya akan digunakan dalam klasifikasi pola. Oleh karena itu, ekstraksi kontur yang benar akan menghasilkan fitur yang lebih akurat yang akan meningkatkan peluang mengklasifikasi pola yang diberikan dengan benar.

2.4 Visi Komputer (Computer Vision)

Computer Vision merupakan proses otomatis yang mengintegrasikan sejumlah besar proses untuk persepsi visual,seperti akusisi citra,pengolahan citra,pengenalan dan membuat keputusan. Computer Vision mencoba meniru cara kerja sistem visual manusia (human vision) yang sesungguhnya sangat kompleks. Untuk itu, computer vision diharapkan memiliki kemampuan tingkat tinggi sebagaimana human visual.

Kemampuan itu diantaranya adalah :

(12)

Object detection

Recognition

Description

3D Inference

Interpreting motion

Computer vision terdiri dari teknik-teknik untuk mengestimasi ciri-ciri objek dalam citra, pengukuran ciri yang berkaitan dengan geometri objek, dan menginterpretasi informasi geometri tersebut. Secara ringkas bias dilihat persamaan berikut :

Vision = Geometry + Measurement + Interpretation

Proses-proses dalam computer vision dibagi dalam 3 (tiga) aktifitas :

 Memperoleh atau mengakusisi citra digital

 Melakukan teknik komputasi untuk memproses atau memodifikasi data citra. (operasi-operasi pengolahan citra)

 Menganalisis dan menginterpretasi citra menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan, memantau manufaktur dan lain-lain.

Computer Vision sering didefinisikan, sebagai salah satu cabang ilmu pengetahuan yang mempelajari bagaimana komputer dapat mengenali objek yang diamati / diobservasi. Cabang ilmu ini adalah kecerdasan buatan (Artificial Intelligence) yang akan mampu menghasilkan sistem intelijen visual (Visual Intelligence System).

Computer Vision terdiri dari 2 bidang ilmu yaitu : 1. Pengolahan Citra ( Image Processing)

Pengolahan citra adalah suatu metode yang digunakan untuk mengolah gambar sehingga menghasilkan gambar yang sesuai dengan yang diinginkan kita. Pengambilan gambar bisa dilakukan dengan menggunakan kamera atau alat lain yang bias digunakan untuk mentransfer gambar misalnya scanner atau kamera digital.

(13)

2. Pengenalan Pola (Pattern Recognition)

Pengenalan pola adalah proses mengenali pola dengan menggunakan algoritma pembelajaran mesin. Pengenalan pola dapat didefinisikan sebagai klasifikasi data berdasarkan pengetahuan yang telah diperoleh atau informasi statistik yang diambil dari pola dan / atau perwakilannya. Salah satu aspek penting dari pengenalan pola adalah potensi penerapannya.

Gambar 2.9 Hubungan Computer Vision 2.4.1 Citra Digital

Citra digital adalah kumpulan data diskrit yang berbentuk matriks dua dimensi dimana angka dari matriks tersebut menunjukkan tingkat kecerahan dari titik-titik tersebut. Titik-titik yang membangun citra digital inilah yang sering disebut dengan pixel, tingkat kecerahan dari pixel tersebut berkisar antara 0-255 dimana untuk pixel yang bernilai 0 maka pixel tersebut akan dikatakan gelap atau hitam, sedangkan untuk pixel dengan nilai 255 dapat dapat dikatakan terang. Suatu citra berukuran N x M pixel yang memiliki intensitas beragam pada tiap pixelnya, direpresentasikan secara numerik dalam bentuk matriks yang berukuran N baris dan M kolom. (Beyeler, 2015)

(14)

Gambar 2.10 Representasi citra secara numerik 2.4.2 Citra Biner

Citra biner adalah citra digital yang hanya memiliki 2 nilai piksel yaitu 1 (putih) dan 0 (hitam), Mode warna ini banyak dipakai dalam proses-proses pengenalan citra yang tidak membutuhkan informasi warna, seperti proses pengenalan morphology dari suatu objek, penipisan objek, manipulasi bentuk objek, dan lain- lain. (Beyeler, 2015) Terdapat beberapa alasan perlunya dilakukan perubahan dari citra RGB menjadi citra biner, yaitu :

1. Mengenali keberadaan objek, yang divusualisasikan sebagai daerah (region) di dalam citra. Contohnya kita akan memisahkan (segmentasi) objek dari gambar latar belakangnya. Piksel-piksel objek dinyatakan dengan nilai 1 (putih) sedangkan piksel lain dengan 0 (hitam).

2. Lebih memfokuskan pada analisis bentuk morfologi, yang dalam hal ini intensitas piksel tidak terlalu penting dibandingkan bentuknya.

3. Mengkonversikan citra yang telah ditingkatkan kualitas tepinya ke penggambaran garis-garis tepi.

Sebelum mendapatkan citra biner dari warna piksel, harus dilakukan teknik thresholding, maka nilai biner dari suatu piksel akan diperoleh dengan melakukan klasifikasi nilai piksel berdasarkan nilai thresholding tersebut, seperti yang terlihat pada pernyataan di bawah ini :

(15)

𝑓(𝑚, 𝑛) = {1, 𝑗𝑖𝑘𝑎 𝑓𝑏(𝑚, 𝑛) ≥ 𝑡ℎ 0, 𝑗𝑖𝑘𝑎 𝑓𝑏(𝑚, 𝑛) ≤ 𝑡ℎ 2.4.3 OpenCV

Open Source Computer Vision (OpenCV) adalah suatu library computer vision yang dibuat oleh para developer Intel Corporation yang bersifat Open Source, library tersebut merupakan kumpulan fungsi-fungsi C dan beberapa kelas C++

yang mengimplementasikan banyak algoritma-algoritma Image Processing dan Computer Vision. Salah satu penerapan program OpenCV yaitu dalam dunia robotika.

Library OpenCV mempunyai lebih dari 2500 algoritma yang telah dioptimalkan dimana meliputi sebuah himpunan menyeluruh dari keduanya yaitu klasik dan seni beberapa algoritma computer vision dan machine learning.

Algoritma-algoritma tersebut dapat digunakan untuk mendeteksi dan mengenali wajah, mengidentifikasi obyek, mengklasifikasi tindakan manusia dalam video, mengikuti jejak perpindahan obyek, mengekstrak model-model 3D obyek, menghasilkan titik awan 3D dari kamera stereo, dan lain sebagainya. OpenCV dapat diterapkan pada pemrograman C++, C. Python, Java dan MATLAB. OpenCV mendukung untuk sistem operasi Windows, Linux, Android dan Mac OS.

2.5 Sum of Absolute Differences

Algoritma SAD digunakan secara luas karena sederhana dan mudah diimplementasikan untuk menemukan kesamaan dua gambar. Intinya adalah bahwa menghitung perbedaan antara setiap titik di gambar itu diidentifikasi sebagai wilayah objek dalam gambar citra biner dan titik yang sesuai di template akan digunakan untuk perbandingan. Kemudian, perbedaan-perbedaan ini akan ditambahkan bersama-sama untuk mengukur kesamaan antara dua gambar. Ada banyak aplikasi untuk SAD seperti estimasi gerakan, pengenalan objek dan kompresi video.(Greeshma A, 2014) Ini diilustrasikan dengan contoh berikut:

1 2 3 4 5 6 7 8 9 Gambar 2.11 Matriks A

(16)

6 3 0 2 5 1 8 7 1

Gambar 2.12 Matriks B -5 -1 3 2 0 5 -1 1 8

Gambar 2.13 Perbedaan Antara Matriks A dan Matriks B

Dalam matriks yang dihasilkan ada beberapa nilai negatif. Jadi kita akan mengambil nilai absolut dari semua elemen matriks dan kemudian merangkum elemen-elemen ini.Ini memberikan nilai SAD antara gambar template dan gambar kandidat. Persamaan untuk SAD adalah :

𝑑(𝑎, 𝑏) = ∑ ∑ |𝐴(𝑖, 𝑗) − 𝐵(𝑖, 𝑗)|

𝑗 𝑖

2.6 Perangat Lunak

Perangkat lunak yang digunakan dalam tugas akhir ini adalah program bahasa Python yang digunakan untuk proses pengolahan citra pada Odroid. Berikut adalah uraian secara garis besar dari masing-masing perangkat lunak tersebut.

2.6.1 Bahasa Python

Python adalah bahasa pemrograman interpretatif yang dianggap mudah dipelajari serta berfokus pada keterbacaan kode. Dengan kata lain, Python diklaim sebagai bahasa pemrograman yang memiliki kode-kode pemrograman yang sangat jelas,lengkap, dan mudah untuk dipahami. Python secara umum berbentuk pemrograman berorientasi objek,pemrograman imperative, dan pemrograman fungsional. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak dan dapat berjalan diberbagai platform sistem operasi. (Jubilee, 2017 )

Python merupakan bahasa pemrograman yang freeware atau perangkat bebas dalam arti sebenarnya, tidak ada batasan dalam penyalinannya atau mendistribusikannya. Lengkap dengan source codenya, debugger dan profiler,

(17)

antarmuka yang terkandung di dalamnya untuk pelayanan antarmuka, fungsi sistem, GUI (antarmuka pengguna grafis), dan basis datanya. Python dapat digunakan dalam beberapa sistem operasi, seperti kebanyakan sistem UNIX, PCs (DOS, Windows, OS/2), Macintosh, dan lainnya. Pada kebanyakan sistem operasi linux, bahasa pemrograman ini menjadi standarisasi untuk disertakan dalam paket distribusinya.

1. Tipe Data di Python

Variabel menyimpan data yang dilakukan selama program dieksekusi dan isinya dapat diubah oleh operasi – operasi tertentu pada program yang menggunakan variabel tersebut. Di dalam Python, terdapat beberapa tipe data yang cukup unik bila dibandingkan dengan bahasa pemrograman seperti C, Java, dan yang lainnya. Tipe data pada Python adalah sebagai berikut :

 Boolean, contoh True and False

 Complex, pasangan angka real dan imajiner, misalnya 1 + 5j

 Date, bilangan yang dapat dikonversi menjadi format tanggal, misalnya 26-09-2013

 Float, bilangan yang mempunyai koma, misalnya 3.14, 6.387

 Hexadecimal, bilangan dalam format heksa, misalnya 7b, 4d2

 Integer, bilangan bulat, misalnya 10, 20, 30, 15, 37

 Long, bilangan bulat yang panjang, misal 123456789123456789L

 None, data yang tidak terdefinisi tipe data apapun

 String, data yang berisi kalimat. Bisa dibentuk dengan diapit tanda ' dan ', atau diapit “ dan“, atau diapit “”” dan “”” untuk membentuk paragraf.

 List, sebuah data berupa untaian yang menyimpan berbagai tipe data dan isinya bisa diubah.

 Tuple, sebuah data berupa untaian yang menyimpan berbagai tipe data tapi isinya tidak bisa diubah.

 Dictionary, sebuah data berupa untaian yang menyimpan berbagai tipe data berupa pasangan penunjuk dan nilai. Object, sebuah data yang berisi atribut dan metode.

(18)

2. Operator pada Python

Selain variabel diatas, terdapat juga beberapa operator untuk pemrosesan data di Python. Agar lebih memahami seperti apa cara kerja operator di python, bukalah console python dan coba contoh disamping penjelasan tiap operator. Berikut operator yang ada di Python :

A. Aritmatika (Aritchmetic Operator) B. Perbandingan (Comparison Operator) C. Penugasan (Assignment Operator) D. Biner (Bitwiser Operator)

E. Logika (logical Operator)

F. Keanggotaan (Membership Operator) G. Identitas (Identity Operator)

Beberapa teknologi yang menggunakan Python yaitu Django, PyGame, Panda 3D, SimpleCV, NLTK, dan Flask.

2.6.2 Numpy

Numpy adalah paket umum pemrosesan array. Ini menyediakan objek array multidimensi berkinerja tinggi, dan alat untuk bekerja dengan array. Numpy adalah paket mendasar untuk komputasi ilmiah dengan Python. Selain penggunaan ilmiahnya yang jelas, Numpy juga dapat digunakan sebagai wadah data generik multi dimensi yang efisien. Array dalam Numpy adalah tabel elemen (biasanya angka), semua dari tipe yang sama, diindeks oleh tuple bilangan bulat positif.

Dalam Numpy, jumlah dimensi array disebut peringkat array.

Tupel bilangan bulat yang memberikan ukuran array di setiap dimensi dikenal sebagai bentuk array. Kelas array di Numpy disebut sebagai ndarray. Elemen dalam array Numpy diakses dengan menggunakan tanda kurung siku dan dapat diinisialisasi dengan menggunakan daftar Python bersarang.

2.6.3 Pygame

Pygame adalah seperangkat modul Python lintas-platform yang dirancang untuk menulis video game. Ini termasuk grafik komputer dan pustaka suara yang dirancang untuk digunakan dengan bahasa pemrograman Python. Pygame menggunakan perpustakaan Simple DirectMedia Layer (SDL), dengan tujuan

(19)

memungkinkan pengembangan game komputer waktu nyata tanpa mekanisme tingkat rendah dari bahasa pemrograman C dan turunannya. Ini didasarkan pada asumsi bahwa fungsi paling mahal di dalam game dapat diabstraksikan dari logika game, sehingga memungkinkan untuk menggunakan bahasa pemrograman tingkat tinggi, seperti Python, untuk menyusun game.

2.6.4 OS Ubuntu Mate 18.04

Gambar 2.14 Logo Ubuntu Mate (www.ubuntu-mate.org)

Ubuntu merupakan salah satu distribusi Linux yang berbasis Debian dan didistribusikan sebagai perangkat lunak bebas. Ubuntu ditawarkan dalam tiga edisi resmi: Ubuntu Desktop untuk komputer pribadi, Ubuntu Server untuk server dan komputasi awan, dan Ubuntu Core untuk "Internet untuk Segala", perangkat kecil dan robot.

2.7 Perangkat keras

Berikut akan dijelaskan secara garis besar mengenai landasan teori perangkat keras dan komponen yang digunakan pada perangkat yang di rancang.

2.7.1 Odroid XU4

(20)

ODROID-XU4 adalah perangkat komputasi generasi baru dengan perangkat keras yang lebih kuat dan hemat energi serta faktor bentuk yang lebih kecil.

Menawarkan dukungan sumber terbuka, board dapat menjalankan berbagai rasa Linux, termasuk Ubuntu 16.04 terbaru dan Android 4.4 KitKat dan 7.1 Nougat.

Dengan mengimplementasikan antarmuka eMMC 5.0, USB 3.0 dan Gigabit Ethernet, ODROID-XU4 menawarkan kecepatan transfer data yang luar biasa, sebuah fitur yang semakin dibutuhkan untuk mendukung daya pemrosesan tingkat lanjut pada perangkat ARM. Hal ini memungkinkan pengguna untuk benar-benar mengalami peningkatan dalam komputasi, terutama dengan booting lebih cepat, penelusuran web, jaringan, dan game 3D.

2.7.2 HDMI LCD

Gambar 2.16 HDMI LCD 7inch, 1024×600, IPS

Merupakan LCD grafik dengan jenis layar IPS (In-Plane-Switching) beresolusi 1024 x 600. LCD ini memiliki output grafik melalui port HDMI serta telah mendukung panel touchscreen berjenis kapasitif.

2.7.3 Camera Logitech C270

Gambar 2.17 Camera Logitech C270(www.logitech.com)

(21)

Webcam adalah kamera video yang mengumpankan atau mengalirkan gambarnya secara real time ke atau melalui komputer ke jaringan komputer. Istilah

"webcam" (senyawa terpotong) juga dapat digunakan dalam arti aslinya dari kamera video yang terhubung ke Web secara terus menerus untuk waktu yang tidak terbatas, daripada untuk sesi tertentu, umumnya memberikan pandangan bagi siapa saja yang mengunjungi halaman webnya.

Untuk mendapatkan hasil penangkapan yang real time, secara umum media yang digunakan adalah kamera digital. Sebuah kamera digital mampu menjangkau hingga resolusi tertentu. Biasanya resolusi yang mampu dijangkau mencapai 320x460 sampai 768x1024 piksel. Kemampuan kamera menangkap gambar utuh (frame) setiap detiknya sangatlah signifikan untuk menghasilkan video yang halus.

Secara umum kamera dapat dikatakan real time jika mampu menangkap paling tidak 25 gambar utuh (frame) setiap detiknya.

Gambar

Tabel 2.1 Contoh warna dalam hexadecimal
Gambar 2.5 Contoh Sample Grayscale (www.dfrobot.com)  2.3.6 Operator Canny
Gambar 2.9 Hubungan Computer Vision  2.4.1 Citra Digital
Gambar 2.10 Representasi citra secara numerik  2.4.2 Citra Biner
+4

Referensi

Dokumen terkait

citra digital yang mengacu pada Resolusi Intensitas Citra, diantaranya adalah (a) Citra Biner yang hanya berisi informasi Hitam (0) atau Putih (1), (b) Citra

kombinasi warna putih)hitam, maka piksel tersebut harus diubah menjadi piksel warna hitam, seperti pada Gambar 2.12(a). Tetapi jika kombinasi warna putih)hitam

II- 16 Hasil yang didaptkan setelah melakukan proses operasi Dilasi pada citra grayscale adalah citra akan lebih terang karena piksel citra yang memiliki

Citra Digital adalah representasi dari sebuah citra dua dimensi sebagai sebuah kumpulan nilai digital yang disebut elemen gambar atau piksel.. Piksel adalah elemen terkecil

Region filling adalah proses pada pengolah citra yang digunakan untuk mengisi piksel pada wilayah objek atau sesuai dengan batas objek yang ditentukan.. Proses ini

Misalkan terdapat citra biner A yang terkena derau impuls – piksel yang seharusnya hitam menjadi putih dan sebaliknya. Maka A Ө B akan menghilangkan piksel- hitam tunggal namun

Agar suatu citra dapat diolah dengan komputer digital, maka citra harus direpresentasikan secara numerik dengan nilai-nilai diskrit melalui proses digitalisasi

Operasi matematis dalam Pengolahan citra digital konvolusi 2... Konversi citra hitam-putih ke citra biner