Gambar 3.2
Flowchart
program utama penjejak objek pada kursi roda cerdas
autonomous
3.4.1 Perancangan
Pengolahan Citra
pada Penjejak Objek
Pada tugas akhir ini, untuk proses pengolahan
citra menggunakan
library AForge.Imaging,
sedangkan untuk proses pengolahan video
menggunakan
library AForge.Video.
Pengolahan video digunakan untuk mendeteksi
driver webcam
dan menampilkan
gambar di
videoSourcePlayer
sehingga dapat digunakan untuk proses pengolahan citra.
Proses pengolahan citra menggunakan
library AForge.Imaging
yang memilki berbagai macam
class
dan
class
yang dibutuhkan untuk penjejak objek yaitu
class colorFiltering, class grayscale
dan
class blobCounter
.
Gambar 3.3 Tampilan visual penjejak objek
Gambar 3.4
Flowchart
pengolahan citra penjejak objek
Start
Color Filtering Grayscale Filter
Blob Counter Object Position
stop Image Capturing
Mulai Mendeteksi driver webcam
Tombol Start di klik ?
Memilih warna yang diinginkan
Menampilkan gambar di videoSourcePlayer
selesai Objek
terdeteksi ? Ya
Tidak Tidak
Ya
kamera scanning
Tombol stop di klik ?
Tidak Ya
Tombol Autonomous
di klik ? Ya
Tidak
Kursi roda cerdas menjejak obyek Image processing
Menghitung posisi dan tinggi obyek dari gambar di
videoSourcePlayer
Mengirim sinyal kontrol ke ATmega162 dan mengirim tinggi
objek ke ATmega128 Pan Tilt kamera menjejak obyek
Menghitung sudut obyek dan kecepatan sudut
Menghitung sinyal kontrol Menghitung error
Update kecepatan linear dan kecepatan sudut
a. Capturing image b. Color filtering
e. Blob counter c. Grayscale Gambar 3.5 Proses pengolahan citra
tracking
objek
a.
Capturing Image
Proses
capturing image
menggunakan
webcam
logitech seri E3500. Resolusi webcam yang digunakan yaitu 320 x 240. Untuk mendeteksi driver
webcam menggunakan
library AForge.NET
yaitu
library AForge.video
. Selain digunakan untuk mendeteksi driver
webcam
juga digunakan untuk menampilkan citra di komponen
video source player
sehingga dapat digunakan untuk proses pengolahan citra.
b.
Color Filtering
Citra hasil
capturing image
kemudian difilter menggunakan
color filtering
.
Color filtering
merupakan proses untuk memfilter warna yang diinginkan pada suatu gambar berdasarkan komponen
nilai RGB. Untuk menetapkan nilai batas pada filter dengan cara coba-coba. Misal warna yang dinginkan
warna merah dengan komponen nilai RGB 120 R 255, 0 G 60, 0 B 60 maka warna yang muncul
pada gambar tersebut hanya warna merah sedangkan warna yang lain dianggap
background
atau dalam hal ini menjadi hitam.
c.
Grayscale Filter
Citra hasil
color filtering
kemudian dikonversi menjadi
grayscale
agar dapat digunakan oleh
class BlobCounter.
Proses konversi dari citra berwarna menjadi grayscale menggunakan koefesian
dari ITU- Recommendation BT.709. Grayscale = 0.2125 red + 0.7154 green + 0.0721
blue
d.
BlobCounter
Objek citra hasil
grayscale filter
kemudian diidentifikasi dengan menggunakan
blobCounter
. Identifikasi objek ini digunakan untuk menghitung
blob
, memfilter
blob
, mengekstrak
blob
dan mendapatkan dimensi
blob
. Di dalam
class blobCounter
terdapat metode
GetObjectsRectangles
yang digunakan untuk mendapatkan bentuk kotak dari objek. Setelah bentuk kotak didapat maka proses
selanjutnya yaitu proses penggambaran kotak pada objek yang terdeteksi menggunakan
class graphics
dan
class pens
. Dalam perancangannya objek mempunyai luas minimal 100 piksel. Jika dalam
image
kamera terdapat
objek jamak
maka
blobCounter
akan memprioritaskan luas objek yang lebih dominan yang akan dideteksi terlebih dahulu.
e.
Object Position
Citra hasil
blobCounter
dapat digunakan untuk menghitung posisi objek dengan memanfaatkan
metode yang ada pada class
blobCounter
yaitu
GetObjectsRectangles
. Metode ini digunakan untuk mendapatkan bentuk kotak objek sehingga dapat
dicari jarak objek sumbu x dari tepi kiri dan jarak objek sumbu y dari tepi atas serta lebar dan tinggi
objek.
Gambar 3.6 Perhitungan posisi objek
Posisi obyek pada koordinat x yaitu jarak objek sumbu x dari tepi kiri dijumlahkan dengan
setengah dari lebar objek.
positionObjectX=objectRect.X+objectRect.Width2
Posisi obyek pada koordinat y yaitu jarak objek sumbu y dari tepi atas dijumlahkan dengan
setengah dari tinggi objek.
positionObjectY=objectRect.Y+objectRect.Height2
IV PENGUJIAN DAN ANALISIS 4.1
Objek diam tunggal didepan tengah SWC
Pada pengujian ini objek merah sengaja diletakan dalam area pandangan kamera yaitu didepan tengah
kursi roda cerdas. Karena objek yang akan diuji tunggal maka dalam ruangan tersebut hanya ada 1
objek yang berwarna merah.
a
b Gambar 4.1 a Kursi roda cerdas bergerak menuju objek diam
yang berada didepan tengah kursi roda cerdas. b Respon penjejak objek merah diam tunggal yabg berada didepan kursi
roda cerdas.
Pada saat tombol
autonomous
ditekan maka kamera langsung mendeteksi objek tersebut karena
objek berada dalam area pandangan kamera. Hal ini menyebabkan kursi roda cerdas bergerak menuju
objek yang diam yang ditunjukkan pada Gambar 4.1a. Dari grafik yang ditunjukkan oleh Gambar
4.1b saat kursi roda cerdas bergerak menuju objek target kamera berusaha menempatkan objek tersebut
ditengah area pandangan kamera. Kursi roda cerdas akan terus bergerak dan kemudian berhenti didepan
objek target pada saat tinggi objek lebih besar dari 200 piksel.
4.2 Objek diam tunggal disebelah kanan SWC