Fakultas Ilmu Komputer
Universitas Brawijaya
8031
Sistem Tracking Objek Menggunakan Metode Edge Detection pada
Quadcopter
Dimas Bagus Jatmiko1, Gembong Edhi Setyawan 2, Hurriyatul Fitriyah3 Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1[email protected], 2[email protected], 3[email protected] Abstrak
Tracking objek biasanya digunakan untuk mengetahui posisi objek dan kondisi lingkungan di
sekitar objek tersebut. Objek yang membutuhkan pengawasan agar dapat berjalan sebagaimana mestinya membutuhkan sistem untuk mengawasi objek tersebut. Quadcopter merupakan salah satu jenis UAV (Unmanned Aerial Vehicle) yang dapat melakukan beberapa gerakan (pitch, yaw, roll and gaz). Dengan kamera pada quadcopter, setiap gerakan dari objek akan diketahui langsung melalui citra kamera. Sehingga dalam penelitian ini dibuatlah sistem untuk mendeteksi dan melakukan tracking terhadap objek. Menerapkan sistem pendeteksi objek berbasis pengolahan citra menggunakan metode
shape detection. Kemudian menampilkan hasil deteksi pada frame image yang dibagi menjadi 9 grid
dan melakukan tracking objek berupa gerak maju, gerak mundur, gerak naik, gerak turun, putar kanan dan putar kiri. Pengujian dilakukan dengan menguji akurasi tracking objek. Dari pengujian akurasi
tracking objek didapatkan rata-rata keberhasilan 76,6%, kegagalan sebesar 23,4% disebabkan oleh
pencahayaan dalam ruangan yang tidak menentu dan benda dengan bentuk menyerupai objek yang di
tracking.
Kata kunci: Shape detection, Deteksi, Tracking, Quadcopter
Abstract
Tracking objects are usually used to determine the position of objects and environmental conditions around the object. Objects that require supervision to be able to run properly require a system to monitor the object. Quadcopter is a type of UAV (Unmanned Aerial Vehicle) that can do several movements (pitch, yaw, roll and gaz). With a camera on a quadcopter, every movement of the object will be known directly through the camera image. So that in this study a system was created to detect and track objects. Applying an image processing system based on image processing using the shape detection method. Then displays the detection results in the frame image which is divided into 9 grids and tracks the object in the form of forward, backward, upward, downward, turn right and turn left. System will be tested based on tracking accuracy of objects. From the testing of object tracking accuracy obtained an average success of 76,6%, failure of 23,4% caused by uncertain lighting in the room and objects with shapes resembling objects that are tracking.
Keywords: Shape detection, Detection, Tracking, Quadcopter
1. PENDAHULUAN
Quadcopter merupakan salah satu jenis
UAV (Unmanned Aerial Vehicle) yang dikenal dengan kemampuannya melakukan take-off secara vertical, malakukan beberapa gerakan (pitch, yaw, roll) dan landing secara vertical.
Quadcopter mempunyai kompleksitas yang
cukup baik dalam bentuk model maupun pengendalian gerakan, menggunakan 4 motor
brushless sebagai penggerak utama (Hamdani,
2013). Pada salah satu UAV jenis quadcopter, yaitu AR.Drone telah dilengkapi kamera yang dapat menangkap gambar maupun merekam
video, terdapat pada bagian depan dan bawah
quadcopter.
Objek maupun target yang membutuhkan pengawasan dan perlu dimonitor agar berjalan sebagaimana mestinya membutuhkan sistem untuk mengontrol dan mengawasi objek tersebut. Oleh karena itu, perlu adanya system
tracking untuk mengatasi masalah tersebut. Tracking objek digunakan untuk mengetahui
posisi objek dan kondisi lingkungan di sekitar objek tersebut. Dalam beberapa penelitian sebelumnya, tracking objek dilakukan dengan menggunakan GPS (Global Positioning System) untuk mengetahui posisi objek. Kamera
Fakultas Ilmu Komputer, Universitas Brawijaya
merupakan alat yang tepat untuk mengetahui posisi objek. Setiap perubahan posisi objek akan diketahui langsung melalui pencitraan dari kamera, serta dapat menangkap suatu objek yang ada di depan kamera, mengidentifikasi jenis, bentuk serta melakukan tracking objek.
(Hendy Mulyawan, 2016) menggunakan kamera webcam untuk melakukan pengambilan citra sehingga akan didapatkan hasil gambar objek. Lalu gambar objek tersebut diproses menggunakan metode template matching untuk mendeteksi dan melakukan tracking objek dari gambar tersebut. Hasilnya, dapat mendeteksi dan melakukan tracking objek secara real-time. Namun dalam penelitian tersebut memiliki kekurangan, tidak dapat melakukan tracking saat objek bergerak keluar dari tangkapan webcam.
(Pamungkas, 2017) membangun sistem yang dapat mendeteksi dan melacak posisi bola dengan menggunakan image processing.
Memanfaatkan library dari OpenCV yang diaplikasikan pada platform ROS (Robot
Operating System). Menggunakan beberapa
metode deteksi objek yaitu, hough circle
transform, blob detection, dan camshif.
Hasilnya, rata-rata waktu yang dibutuhkan untuk mendeteksi bola menggunakan metode hough
circle transform yaitu 0,0054 detik dan
menggunakan metode blob detection yaitu 0,0116 detik. Sistem mampu melakukan pendeteksian bola yang berdiameter 20 cm menggunakan metode hough circle transform dengan jarak 500 cm sedangkan menggunakan metode blob detection dengan jarak 900 cm. Keberhasilan saat tracking bola menggunakan metode camshift dari hasil hough circle transfom mencapai 100% sedangkan dari hasil blob
detection adalah 96,67%. Sistem mampu
mendeteksi dengan beberapa metode seperti
hough circle transform, blob detection, dan camshif. Namun objek yang digunakan hanya
terbatas pada bentuk bola.
Berdasarkan permasalahan dan kekurangan dari penelitian tersebut maka pada penelitian ini dibuat sebuah sistem untuk dapat mendeteksi dan melakukan tracking terhadap objek seperti segitiga, segiempat dan segilima dengan ukuran objek yang terlah ditentukan. Menerapkan sistem pendeteksi objek berbasis pengolahan citra menggunakan metode shape detection untuk mendukung pendeteksian objek seperti segitiga, segiempat dan segilima supaya tidak menimbulkan kerancuan selama proses deteksi dan melakukan tracking objek. Kemudian melakukan tracking objek berupa gerak maju,
gerak mundur, gerak naik, gerak turun, putar kanan dan putar kiri dengan quadcopter.
Pada penelitian ini akan membahas pengimplementasian metode shape detection untuk melakukan tracking objek, penentuan laju kecepatan quadcopter agar quadcopter dapat melakukan tracking objek dengan stabil, rata-rata waktu eksekusi, hingga hasil ketepatan saat melakukan tracking objek.
2. PERANCANGAN DAN IMPLEMENTASI
Skema perancangan dan implementasi pada penelitian ini dibagi menjadi dua, yaitu perangkat keras dan perangkat lunak. Pada perangkat keras terdapat komunikasi system. Sedangkan pada perangkat lunak terdapat deteksi objek dan pergerakan quadcopter, seperti yang terlihat pada gambar 1.
Gambar 1. Skema Perancangan dan Implementasi
Langkah awal yang harus dilakukan adalah komunikasi sistem menghubungkan quadcopter dengan komputer melalui wifi. Kemudian deteksi objek dengan mengambil data gambar dari kamera depan, melakukan proses pengolahan citra. Kemudian quadcopter akan melakukan tracking objek.
2.1 Komunikasi Sistem
Dalam perancangan komunikasi sistem, Membuat kode program dengan menggunakan bahasa pemrograman C++ merupakan langkat awal yang harus dilakukan. Pada kode program tersebut terdapat fungsi sebagai subscriber dari “driver autonomy_drone” yang digunakan untuk mengakses data yang terdapat pada
quadcopter. Kemudian mengubah kode program
yang telah dibuat menjadi bentuk node agar dapat dijalankan pada ROS. Setelah itu, menggunakan komunikasi Wi-Fi 802.11 b/g/n untuk mengirimkan program tersebut pada
quadcopter, seperti yang ditunjukkan pada
Gambar 2. Perancangan Komunikasi Sistem 2.2 Deteksi Objek
Data dari kamera depan quadcopter diproses dengan mengubah RGB ke grayscale,
menghilangkan noise dengan blur, mendeteksi tepian dari objek dengan canny edge detection. Kemudian mengenali bentuk objek dari tepian dan jumlah titik puncak dari objek tersebut dengan metode shape detection. Setelah objek terdeteksi, maka akan ditampilakan pada frame
image seperti yang ditunjukkan pada gambar 3.
Gambar 3. Diagram Alir Deteksi Objek Agar objek yang berwarna lebih mudah untuk dideteksi maka dilakukan perubahan piksel dari RGB ke Grayscale. Mendapatkan nilai
luminosity dari gambar menggunakan persamaan 1:
𝐿 = 0.2126 𝑅 + 0.7152 𝐺 + 0.0722 𝐵
(1) Menghilangkan noise dengan blurbertujuan agar objek lebih mudah untuk dideteksi. Mengkonversi nilai blur dengan
averaging, mencari nilai pada setiap piksel
menggunakan persamaan 2:
𝐾 =
1 9[
1 1 1
1 1 1
1 1 1
]
(2)
Metode canny edge detection digunakan untuk mendeteksi tepian dari objek sehingga nantinya mempermudah proses pencarian kontur. Perhitungan tepian menggunakan metode canny edge detection melalui empat tahap, yaitu:
1. Mencari nilai intensitas gradient untuk memperoleh gradient vertical dan horizontal pada setiap tepi menggunakan persamaan 3, 4, dan 5.
𝐺𝑥 = [
−1 0 +1
−2 0 +2
−1 0 +1
]
(3)𝐺𝑦 = [
−1 −2 −1
0
0
0
+1 +2 +1
]
(4)𝐺 = √𝐺𝑥
2+ 𝐺𝑦
2(5)
2. Untuk mendapatkan angle pada tepian, perlu dilakukan pencari direksi menggunakan persamaan 6.
𝜃 = arctan
𝐺𝑦𝐺𝑥
(6)
3. Setelah mendapatkan besaran dan arah
gradien, dilakukan pemindaian penuh pada
gambar untuk menghilangkan piksel yang tidak diinginkan yang mungkin bukan bagian tepi. Untuk ini, dilakukan pemeriksaan pada setiap piksel. Titik A berada pada tepian objek (dalam arah vertikal). Arah gradien biasanya berada pada tepian objek. Titik B dan C berada dalam arah gradien. Titik A diperiksa dengan titik B dan C untuk melihat apakah itu membentuk maksimum (lokal). Jika demikian, maka proses akan melanjutkan ke tahap selanjutnya. Jika tidak membentuk local maximum, maka akan diabaikan (nol) seperti yang ditunjukkan pada gambar 4.
Gambar 4. Non-maximum suppression Sumber : (OpenCV, 2012)
Fakultas Ilmu Komputer, Universitas Brawijaya
4. Hysteresis thresholding menggunakan dua
thresholds (atas dan bawah), seperti pada
gambar 5. Apabila gradien piksel lebih tinggi dari ambang atas, maka akan dianggap sebagai tepi (A). Apabila gradien piksel lebih rendah dari ambang bawah, maka akan ditolak dan dianggap bukan tepi (C). Apabila gradien piksel berada di antara dua ambang, maka akan dianggap sebagai tepi hanya jika gradien piksel terhubung (B).
Gambar 5. Hysteresis Thresholding Sumber: (OpenCV, 2012)
Kontur dapat dijelaskan sebagai kurva yang dapat menghubungkan semua titik-titik kontinu pada gambar, memiliki intensitas atau warna yang sama. Kontur dapat digunakan untuk menganalisis bentuk dan mengenali objek (OpenCV, 2012). Kontur adalah tepian dari bentuk objek dengan intensitas yang sama. Metode ini digunakan untuk melakukan analisa dan mendeteksi bentuk objek pada gambar. Dalam OpenCV, FindContours merupakan salah satu fungsi menemukan kontur seperti mencari objek dari background. Ada 3 elemen dalam FindContours yaitu gambar sumber, mode pengambilan kontur dan metode pendekatan kontur. Menggunakan metode
contour approximation. Menyimpan koordinat
(x,y) dari tepian bentuk tersebut.
Metode shape detection adalah metode yang digunakan untuk mengetahui bentuk objek yang telah dideteksi dengan menggunakan perhitungan titik puncak (vertice) dari canny
edge detection yang telah mendeteksi tepian
objek. Metode ini merupakan implementasi dari algoritma Douglas-Peucker. Algoritma
Douglas-Peucker adalah algoritma yang dapat
digunakan untuk meningkatkat proses pengolahan citra menjadi lebih baik. Algoritma ini digunakan untuk menentukan jalur pada sebuah peta yang mempunyai fitur zoom. Hanya menyimpan titik-titik tertentu dan dianggap penting sebagai jalur pada sebuah peta yang akan digambar dengan memanfaatkan fitur zoom in (diperkecil), maka jalur pada sebuah peta yang akan digambar terlihat lebih kecil (Stefano, 2016).
2.3 Pergerakan Quadcopter
Membuat sebuah frame untuk mendeteksi objek yang diambil dari data kamera depan
quadcopter. Frame yang digunakan untuk
menampilkan posisi objek berukuran 660x480. Membagi frame menjadi sembilan bagian (grid) untuk mempermudah proses pendeteksian objek. 𝑠𝑢𝑚𝑏𝑢 𝑥 = 𝑠𝑢𝑚𝑏𝑢 𝑥
3 (7)
𝑠𝑢𝑚𝑏𝑢 𝑦 = 𝑠𝑢𝑚𝑏𝑢 𝑦
3 (8)
Menggunakan persamaan 7 untuk membagi sumbu x menjadi 3 bagian, masing-masing bagian dari sumbu x mempunyai ukuran 220 piksel. Sedangkan pada sumbu y membagi menjadi 3 bagian menggunakan persamaan 5.2, masing-masing bagian dari sumbu y mempunyai ukuran 160 piksel. Sehingga sumbu x adalah
range 0-220, range 221-440, dan range 441-660.
Sedangkan pada sumbu y adalah range 0-160,
range 161-320, dan range 321-480. Pada
gambar 6 menunjukkan pembagian area dari setiap grid pada sumbu x dan sumbu y.
Gambar 6. Area Deteksi
Setelah mendapatkan bentuk objek dari hasil pengolahan citra dengan menggunakan metode shape detection, selanjutnya adalah mencari koordinat dari titik tengah objek sebagai perintah untuk mengatur pergerakan dari
quadcopter sesuai dengan posisi grid
terdeteksinya koordinat titik tengah objek. Mencari titik koordinat objek diawali dengan membuat bounding rectangle pada kontur yang telah ditemukan. Kemudian menggunakan persamaan (9) dan (10) untuk menghitung koordinat titik tengah objek: 𝑥 = (𝑥𝑜𝑏𝑗+ ( 𝑟.𝑤𝑖𝑑𝑡ℎ 2 )) (9) 𝑦 = (𝑦𝑜𝑏𝑗+ ( 𝑟.ℎ𝑒𝑖𝑔ℎ𝑡 2 )) (10) Dimana:
(𝑥, 𝑦) : koordinat titik tengah objek (𝑥𝑜𝑏𝑗, 𝑦𝑜𝑏𝑗) : koordinat objek
𝑟. ℎ𝑒𝑖𝑔ℎ𝑡 : tinggi dari objek
Pergerakan quadcopter ketika melakukan
tracking objek ditunjukkan pada gambar 7.
Gambar 7. Diagram Alir Pergerakan
Quadcopter
Memasukkan perintah takeoff, kemudian
quadcopter mendeteksi adanya objek yang akan
di tracking. Quadcopter akan melakukan pergerakan secara linear pada sumbu z (naik, turun) atau secara angular pada sumbu z (kiri, kanan), untuk menyesuaikan posisi agar objek terdeteksi pada grid 5. Jika objek telah terdeteksi pada grid 5 namun besar objek <200 atau >300, maka quadcopter akan melakukan pergerakan linear pada sumbu x (maju, mundur). Jika 200 <besar objek <300 maka quadcopter akan melakukan hover. Tracking dilakukan hingga perintah landing dijalankan.
3. PENGUJIAN DAN HASIL
Untuk menyimpulkan performa dari sistem in, maka akan dilakukan 3 jenis pengujian yaitu pengujian kecepatan, pengujian waktu eksekusi dan pengujian akurasi tracking objek.
3.1 Pengujian Akurasi Tracking Objek Pengujian dilakukan untuk menguji performa dari sistem saat pendeteksian dan melakukan tracking (menyesuaikan posisi terhadap objek) dengan objek segitiga, segiempat dan segilima. Dilakukan dengan menjalankan perintah takeoff, kemudian
quadcopter melakukan tracking objek dengan
gerakan maju, mundur, naik, turun, putar kiri, dan putar kanan. Kecepatan quadcopter ketika melakukan tracking objek adalah 0.3m/s. Mengatur nilai kecepatan dari quadcopter dengan cara memberikan nilai pada parameter
linear (x,y) dan angular (z). Mengamati
pergerakan quadcopter berdasarkan koordinat objek yang terdeteksi.
Tabel 3. Hasil pengujian akurasi tracking objek
Objek Pengujian ke- %
1 2 3 4 5 6 7 8 9 10
√ √ x √ x √ √ √ √ x 70
x √ √ √ √ √ √ x x √ 70
√ √ √ √ √ x √ √ √ √ 90
Rata – rata hasil tracking 76
Pada tabel 3 didapat hasil persentase akurasi
tracking objek dengan nilai rata-rata sebesar
76.6% dengan melakukan 10 kali pengujian pada masing-masing objek. Untuk setiap objek, persentase keberhasilannya adalah 70% untuk segitiga, 70% untuk segiempat dan 90% untuk segilima. Analisis yang dapat menyebabkan keberhasilan dan kegagalan pada tracking objek yaitu sebagai berikut :
a. Terdeteksi
Objek pada gambar yang akan dideteksi telah memenuhi seluruh ketentuan dan berada pada jarak yang telah ditentukan pada program. Ketentuan tersebut adalah nilai RGB, tepian dari objek, nilai kontur dan jumlah titik puncak (vertice). Jika seluruh ketentuan telah terpenuhi, maka bentuk objek terdefinisikan dan dapat melakukan tracking objek.
b. Gagal terdeteksi
Kegagalan dikarenakan kondisi pencahayaan dalam ruangan yang tidak menentu dapat menghambat ketika pendeteksian, lalu
quadcopter mendeteksi benda yang bentuknya menyerupai ketika melakukan
tracking objek, seperti yang ditunjukkan pada
Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 9. Kegagalan ketika melakukan
tracking objek
4. KESIMPULAN
Berdasarkan beberapa analisis dari hasil yang telah dilakukan pada penelitian ini, dapat dirangkum bahwa sistem tracking objek menggunakan edge detection pada quadcopter Sistem dapat melakukan pendeteksian objek menggunakan metode shape detection dengan mengkorversi gambar dari RGB ke grayscale, kemudian blur image yang digunakan untuk menghilangkan noise. Setelah itu mendeteksi tepian dari objek dengan canny edge detection. Mencari nilai kontur sesuai dengan objek yang dideteksi agar quadcopter dapat mengenali setiap bentuk objek melalui tepian yang telah didapat.
Mencari titik tengah koordinat objek menggunakan perhitungan dari panjang dan lebar dari objek yang telah terdeteksi. Kemudian membuat sebuah grid pada frame image yang terbagi menjadi 9 bagian, frame image berukuran 660x480 piksel. Quadcopter dapat melakukan pergerakan menyesuaikan posisi terhadap objek berdasarkan posisi objek yang terdeteksi pada grid tersebut.
Akurasi pergerakan penyesuaian posisi terhadap objek, mendapatkan hasil rata-rata persentase 76.6% dalam 10 kali percobaan. 23.4% yang merupakan kegagalan deteksi disebabkan oleh kondisi cahaya yang tidak menentu, quadcopter mendeteksi objek lain yang bentuknya menyerupai, dan sistem yang mengharuskan perubahan posisi pendeteksian menghilangkan focus dari kamera quadcopter.
5. DAFTAR PUSTAKA