Perancangan Perancangan Perangkat Lunak pada

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