• Tidak ada hasil yang ditemukan

SKRIPSI IMPLEMENTASI METODE COLOR MODEL FILTERING HSV DAN CONTOUR FILTERING UNTUK MENDETEKSI POSISI GAWANG PADA ROBOT SEPAKBOLA BERODA

N/A
N/A
Protected

Academic year: 2022

Membagikan "SKRIPSI IMPLEMENTASI METODE COLOR MODEL FILTERING HSV DAN CONTOUR FILTERING UNTUK MENDETEKSI POSISI GAWANG PADA ROBOT SEPAKBOLA BERODA"

Copied!
74
0
0

Teks penuh

(1)

SKRIPSI

IMPLEMENTASI METODE COLOR MODEL FILTERING HSV DAN CONTOUR FILTERING UNTUK MENDETEKSI POSISI

GAWANG PADA ROBOT SEPAKBOLA BERODA

Diajukan untuk memenuhi salah satu persyaratan menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro

Oleh LIYON NARDO

170402161

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN

2021

(2)
(3)
(4)

ABSTRAK

Robot sepak bola beroda merupakan salah satu cabang kompetisi robotik yang kini populer dengan kompetisi terbesarnya ialah Middle Size League. Di Indonesia, kompetisi robot sepak bola beroda diselenggarakan pada Kontes Robot Indonesia (KRI). Pada kontes robot tersebut, robot harus mampu mengenal di mana posisi dari gawang agar bola dapat di arahkan ke target permainan. Pada kontes robot sepak bola beroda walaupun belum di terapkan pada buku peraturan 2020, penggunaan sensor orientasi magnetik atau sensor kompas sudah di sosialisasikan untuk dilarang penggunaannya dalam mendeteksi posisi gawang dan lebih di tekankan untuk melakukannya melalui pengolahan citra. Berdasarkan hal tersebut maka pada penelitian ini, peneliti berusaha untuk mendeteksi posisi gawang baik jarak maupun sudut menggunakan metode color filtering HSV dan contour filtering. Metode filtering menggunakan color filtering HSV dilakukan dengan mengekstraksi warna gawang berdasarkan model warna HSV dan contour filtering membedakan ciri gawang dengan ciri objek lain. Hasil dari penelitian ini berhasil mengimplementasikan metode color filtering HSV dan contour filtering pada robot sepak bola beroda dengan tingkat error rata-rata 3.14% akurasi sebesar 96.86%

pada pengujian jarak. Minimum jarak yang terdeteksi adalah 2(dua) meter dan maksimum adalah 8(delapan) meter. Untuk error rata-rata pengujian sudut robot terhadap tengah gawang adalah sebesar 2.53% dengan akurasi sebesar 97.47 % yang di mana pada sudut 50° sampai -50° merupakan besar sudut yang dapat terdeteksi oleh sistem. Tanda minus pada besar sudut menunjukkan posisi kiri robot. Sistem ini hanya sesuai digunakan pada keadaan ideal di sekitar lapangan.

Kata Kunci : robot sepak bola beroda, color filtering, HSV, contour filtering, posisi gawang

(5)

KATA PENGANTAR

Segala puji dan syukur penulis panjatkan kepada Semesta raya, karena atas berkat tempat dan waktu yang tersedia, Tugas Akhir ini dapat disusun dan diselesaikan. Tugas Akhir ini merupakan bagian dari kurikulum yang harus diselesaikan untuk memenuhi persyaratan dalam menyelesaikan pendidikan Sarjana Strata Satu di Departemen Teknik Elektro, Universitas Sumatera Utara.

Adapun judul Tugas Akhir ini adalah:

“IMPLEMENTASI METODE COLOR MODEL FILTERING HSV DAN CONTOUR FILTERING UNTUK MENDETEKSI POSISI GAWANG

PADA ROBOT SEPAKBOLA BERODA”

Tugas Akhir ini penulis persembahkan kepada keluarga besar UKM Robotik SIKONEK yang selalu memberikan semangat, membantu serta mendoakan penulis selama masa studi hingga menyelesaikan Tugas Akhir ini.

Selama masa kuliah hingga penyelesaian Tugas Akhir ini, penulis juga banyak mendapatkan dukungan maupun bantuan dari berbagai pihak. Untuk itu penulis ingin menyampaikan rasa terima kasih yang mendalam kepada:

1. Bapak Dr. Fahmi, S.T, M.Sc, IPM, ASEAN Eng selaku Dosen Pembimbing Tugas Akhir sekaligus Ketua Departemen Teknik Elektro dan Dekan Fakultas Teknik yang telah banyak meluangkan waktu dan pikirannya untuk selalu memberikan bantuan, bimbingan, dan pengarahan kepada penulis selama perkuliahan hingga penyusunan Tugas Akhir ini.

2. Bapak Tigor Hamonangan Nasution, S.T, M.T selaku Dosen Penguji Tugas Akhir yang telah memberikan banyak masukan demi perbaikan Tugas Akhir ini.

3. Bapak Soeharwinto, ST, M.T. selaku Dosen Penguji Tugas Akhir yang telah memberikan banyak masukan demi perbaikan Tugas Akhir ini.

4. Bapak Drs. Hasdari Helmi Rangkuti, MT selaku Dosen Wali penulis yang telah banyak memberikan bimbingan selama perkuliahan.

(6)

5. Orang Tua penulis yang sudah memberi banyak bantuan baik dari segi finansial, material, doa dan moral dalam penyusunan tugas akhir.

6. Anggota tim KRSBI USU Si-Hatop yang selalu mendukung dan membantu saat pengerjaan Tugas Akhir ini.

7. Teman teman Teknik Elektro USU yang menjadi teman untuk bertukar pikiran dan teladan dalam penulisan tugas akhir.

8. Serta semua keluarga, kerabat, dan teman lainnya yang telah banyak membantu penulis dalam menyelesaikan studi yang tidak dapat disebutkan satu persatu.

Saran dan kritik dari pembaca sangat penulis harapkan untuk menyempurnakan dan mengembangkan kajian dalam bidang terkait Tugas Akhir ini. Akhir kata, penulis berharap semoga Tugas Akhir ini dapat bermanfaat bagi pembacanya.

Medan, 13 Juni 2021 Penulis,

Liyon Nardo 170402161

(7)

DAFTAR ISI

ABSTRAK i

KATA PENGANTAR ii

DAFTAR ISI iv

DAFTAR GAMBAR vii

DAFTAR TABEL vi

BAB I PENDAHULUAN 1

I.1 Latar Belakang 1

I.3 Tujuan 2

I.4 Manfaat 2

I.5 Batasan Masalah 2

I.6 Metode Penelitian 3

I.7 Sistematika Penulisan 3

BAB II TINJAUAN PUSTAKA 5

II.1 Robot Sepak Bola 5

II.2 Computer Vision 6

II.3 Color Model atau Model Warna 8

II.4 Filter Citra Digital 11

II.5 OpenCV (Open Source Computer Vision Library) 12

II.6 Contour Filtering 13

II.8 Kalibrasi Kamera dan Rekonstruksi 3D 13

II.9 Penelitian Terkait 16

BAB III METODE PENELITIAN 17

III.1 Membedakan Gawang Lawan dan Gawang Teman 17

(8)

III.2 Desain Sistem 17

III.3 Bahan dan Peralatan 20

III.4 Pengolahan Citra Menggunakan Algoritma Color Filtering HSV

dan Contour Filtering 21

III.4.1 Tangkapan Citra 21

III.4.2Pre-processing 22

III.4.2.1 Mengembalikan Citra Yang Terdistorsi 23 III.4.2.2 Konversi citra RGB ke citra HSV 23

III.4.2.3 Binerisasi 24

III.4.2.4 Aplikasi filter morfologi 25

III.4.3Segmentasi 26

III.4.3.1 Menemukan kontur dari citra biner 27 III.4.3.2 Menandai Keseluruhan Kontur Dengan Penanda Persegi

Panjang 29

III.4.3.3 Mendeteksi tepi citra 30

III.3.3.4 Mendeteksi garis lurus pada tiang bagian atas gawang 32

III.4.4Identifikasi 33

III.4.4.1 Menampilkan kontur persegi panjang 33 III.4.4.2 Menandai garis lurus yang terdeteksi 34 III.4.4.3 Mengidentifikasi Posisi Sudut Robot Ke Tengah

Gawang 34

III.4.4.4 Mengidentifikasi Jarak Robot Ke Tengah Gawang 35

BAB IV PENGUJIAN DAN ANALISIS 36

IV.1 Tahap Persiapan 36

IV. 2 Pengujian Sistem Dalam Mendeteksi Sudut Dari Tengah

(9)

Gawang 39 IV.3 Pengujian Sistem Dalam Mendeteksi Jarak Dari Tengah

Gawang 46

IV.3 Analisis Keseluruhan 50

BAB V KESIMPULAN DAN SARAN 53

V.1 Kesimpulan 53

V.2 Saran 54

DAFTAR PUSTAKA 55

LAMPIRAN 59

(10)

DAFTAR GAMBAR

Gambar 2.1 Gawang Standar Kontes Robot Sepak Bola Beroda Indonesia 6

Gambar 2.2 Lini masa sejarah computer vision 7

Gambar 2.3 (a) Ruang warna RGB (b) Ruang warna CMYK (c) Ruang warna

HSL (d) Ruang warna HSV 10

Gambar 2.4 Deskripsi Komponen Model Warna HSV 10

Gambar 2.5 Hasil dari aplikasi closing morphology filter 12 Gambar 2.6 Fungsi Library OpenCV untuk Mendefinisikan Kontur dalam

bentuk persegi panjang 13

Gambar 2.7 Ilustrasi Model Kamera Lubang Jarum 15

Gambar 2.8 Citra Tanpa Terdistorsi dan Citra Terdistorsi Radial 16 Gambar 3.1 Diagram Flowchart Sistem Pendeteksi Posisi Objek Gawang

memanfaatkan Color Modeling HSV dan Contour Filtering 19 Gambar 3.2 (a) Barrel Distortion akibat penggunaan fish eye (b)Citra yang telah

diperbaiki 24

Gambar 3.3 Citra HSV 24

Gambar 3.4 Citra Biner 25

Gambar 3.5 Citra biner setelah menerapkan filter morfologi 26

Gambar 3.6 Mendeteksi kontur citra biner 27

Gambar 3.7 Melingkupi kontur dengan persegi panjang 28

Gambar 3.8 Mendeteksi tepi citra biner 29

Gambar 3.9 Mengambil ROI pada hasil pendeteksian tepi citra biner 29 Gambar 3.10 Semua informasi yang ditampilkan pada suatu citra 32 Gambar 4.1 (a) Software VNC Viewer (b)Tampilan Interface Raspberry Pi dari

software VNC Viewer 37

(11)

Gambar 4.2 (a) Raspberry Pi yang menyala dan terhubung ke robot dan Laptop (b)Alat bantu pengujian(c)Pengaplikasian Alat bantu pengujian 38 Gambar 4.3 Posisi - Posisi Robot Pada Lapangan Uji Sudut 39 Gambar 4.4 Hasil Pengujian Sistem Dalam Mendeteksi Sudut Dari Tengah

Gawang 44

Gambar 4.5 Posisi Robot Pada Lapangan Uji Jarak 46 Gambar 4.6 Hasil Pengujian Sistem Dalam Mendeteksi Jarak Dari Tengah

Gawang 49

Gambar 4.7 Perubahan Jarak Terhadap Sudut 51

(12)

DAFTAR TABEL

Tabel 4.1 Pengujian Sistem Dalam Mendeteksi Sudut Dari Tengah Gawang 40 Tabel 4.2 Pengujian Sistem Dalam Mendeteksi Jarak Dari Tengah Gawang 46

Tabel 4.3 Informasi Dari Data Jarak dan Sudut 50

(13)

BAB I

PENDAHULUAN

I.1 Latar Belakang

Robot sepak bola beroda merupakan robot yang dapat bermain sepakbola layaknya manusia namun bermanuver menggunakan roda. Di Indonesia, robot sepak bola diselenggarakan setiap tahun dengan nama Kontes Robot Indonesia.

Ada 5 cabang robot yang diperlombakan di antaranya : Kontes Robot Pemadam Api Indonesia, Kontes Robot Sepak Bola Humanoid Indonesia, Kontes Robot Sepak Bola Beroda Indonesia, Kontes Robot Abu Robocon Indonesia, dan Kontes Robot Tari Indonesia [1].

Pada tahun 2019, Kontes Robot Sepak Bola Indonesia Beroda memperbolehkan penggunaan sensor orientasi magnetik untuk memberikan arah pada robot. Namun walaupun tidak tertera pada buku peraturan tahun 2020, ke depannya sensor orientasi magnetik sudah akan dilarang penggunaannya dan akan lebih ditekankan pada penglihatan komputer seperti pada Kontes Robot Sepak Bola Humanoid yang telah melarangnya. Pelarangan penggunaan sensor orientasi magnetik ini disosialisasikan pada tahun 2019.

Penggunaan sensor orientasi magnetik atau yang sering disebut sensor kompas sudah ada dan banyak di gunakan oleh tim-tim sepak bola beroda di Indonesia. Sensor orientasi magnetik merupakan salah satu sensor arah elektronik yang dapat mendeteksi arah secara horizontal [2]. Jika hanya arah, akan membuat robot mengarahkan dan menendang dari sisi mana pun di dalam lapangan tanpa tahu kekuatan yang seharusnya dipakai untuk menendang ke gawang lawan. Maka digunakan sensor jarak di sisi-sisi robot. Namun penggunaan sensor jarak memiliki kelemahan yang berisiko, yaitu ketika terdapat keadaan yang sama di mana ketika robot mengira berada di sudut lapangan namun ternyata robot sedang diapit oleh robot lawan maka akan membuat robot melakukan tendangan yang meleset dari gawang. Dengan mendeteksi posisi gawang secara visual atau pengolahan citra, maka robot dapat mengisi kekurangan tersebut.

Pada penelitian ini, peneliti akan menggunakan kamera webcam dan mini

(14)

PC dalam mengimplementasikan metode color filtering HSV dan Contour Filtering untuk mendeteksi objek berupa gawang beserta dengan posisinya. Studi ini diharapkan, sistem yang peneliti rancang dapat mendeteksi posisi gawang dengan baik dari sudut maupun jarak yang dapat menggantikan sensor kompas dan sensor jarak.

I.2 Rumusan Masalah

Adapun rumusan masalah dari penelitian ini adalah untuk mendeteksi objek gawang seperti pada Kontes Robot Sepak Bola Indonesia Beroda dengan menggunakan visual atau pengolahan citra.

I.3 Tujuan

Mendeteksi objek gawang beserta posisi sudut dan jarak gawang untuk dapat digunakan pada Kontes Robot Sepak Bola Indonesia Beroda.

I.4 Manfaat

Adapun manfaat dari penelitian ini adalah sebagai berikut:

1. Membantu robot sepak bola beroda dalam mengenali objek gawang pada Kontes Robot Sepak beroda yang dapat menggantikan sensor kompas.

2. Sebagai Referensi keilmuan di bidang pengolahan citra menggunakan algoritma color filtering HSV dan Contour Filtering.

I.5 Batasan Masalah

Adapun Batasan masalah pada penelitian ini adalah:

1. Objek yang dideteksi berupa gawang berwarna putih berbentuk persegi panjang (Panjang = 2m, Tinggi = 1m dan Lebar = 0,5 m)

2. Pengujian dilakukan dengan simulasi di aula Pusdiklat LPPM USU.

3. Tidak membahas tentang mekanika dan hardware yang digunakan pada robot sepakbola beroda.

(15)

I.6 Metode Penelitian

Adapun metode penelitian yang dipakai dalam penelitian ini adalah sebagai berikut :

1. Studi literatur, yaitu mempelajari tentang dasar-dasar pengolahan citra, computer vision, filter citra dan library OpenCV yang akan menjadi basis dalam penelitian ini.

2. Pemilihan hardware yang akan digunakan untuk mendeteksi gawang.

3. Perancangan hardware, yaitu merancang dan mempersiapkan hardware yang diperlukan sebelum dilakukan perancangan software.

4. Penentuan software yang akan digunakan untuk mendeteksi gawang.

5. Perancangan Software, yaitu merancang atau memprogram agar citra dapat diolah sesuai dengan kebutuhan dan tujuan.

6. Integrasi hardware dan Software, yaitu menghubungkan hardware dan Software agar sistem dapat dijalankan.

7. Pengujian, yaitu tahap untuk melihat apakah perancangan sudah berhasil mencapai hasil yang diharapkan atau belum.

8. Penyempurnaan, yaitu tahapan untuk memperbaiki sekaligus menyempurnakan hardware dan atau software yang belum sesuai dengan hasil yang diharapkan.

9. Finalisasi, yaitu tahap akhir dari penelitian dengan menulis laporan hasil penelitian.

I.7 Sistematika Penulisan

Penelitian ini disusun berdasarkan sistematika penulisan sebagai berikut:

BAB I PENDAHULUAN

Bab ini merupakan pendahuluan yang berisi tentang latar belakang masalah, tujuan dan manfaat penulisan, batasan masalah, metode penelitian, dan sistematika penulisannya.

(16)

BAB II DASAR TEORI

Bab ini membahas tentang hal seputar computer vision, color model, filter citra, contour filtering dan library OpenCV.

BAB III PERANCANGAN SISTEM

Bab ini menjelaskan tentang perancangan algoritma pendeteksi objek mulai dari blok diagram, proses penangkapan citra, filtering sampai dengan pengolahan citra untuk mendeteksi objek yang diinginkan.

BAB IV PENGUJIAN DAN ANALISIS

Bab ini membahas tentang pengujian dan analisis terhadap sistem yang telah dirancang.

BAB V KESIMPULAN DAN SARAN

Bab ini membahas tentang kesimpulan dari penelitian yang dilakukan serta saran yang akan berguna untuk pengembangan lebih lanjut.

(17)

BAB II

TINJAUAN PUSTAKA

II.1 Robot Sepak Bola

Robot sepak bola adalah sebuah robot yang merupakan bentuk dari implementasi teknologi dalam bidang robotika yang memiliki kemampuan untuk menirukan kegiatan sepak bola seperti manusia[3]. Robot sepak bola, menggunakan berbagai masukan sensor untuk mengenali serta sebagai feedback dalam proses bermainnyas[3]. Kontes Robot Indonesia adalah kontes yang terbesar yang memasukkan divisi robot sepak bola pada kancah nasional yang diselenggarakan oleh Kemenristek [1]. Pada kancah internasional, ajang tahunan diselenggarakan pada kontes Robocup Middle Size League (MSL) yang sudah ada sejak tahun 1997 [4].

Kontes Robot Sepak Bola Beroda Indonesia Beroda (KRSBIB) dimainkan dengan jumlah 3 robot yang salah satunya bertindak sebagai penjaga gawang. Jika kondisi memaksa maka tim diperbolehkan bermain dengan 2 robot. Pada kontes, robot diperlombakan di atas arena yang menyerupai lapangan futsal dengan luas 9 x 6 meter persegi. Robot diharapkan bisa bergerak tanpa control dari manusia (autonomous) yaitu menggunakan base station/ server yang terhubung dengan sebuah software yang bernama referee box. Referee box software yang digunakan juga pada kompetisi Middle Size League yang berperan sebagai wasit pada pertandingan robot sepak bola. Namun pada tahap seleksi regional, robot masih dizinkan untuk menggunakan sistem semi autonomous dimana proses pertandingan masih melibatkan campur tangan manusia.

Kontes Robot Sepak Bola Beroda Indonesia Beroda (KRSBIB) berlangsung selama 2 x 15 menit dengan waktu istirahat 10 menit per pertandingan. Prosedur pertandingan dimulai dengan tendangan kick off dari salah satu tim. Kick off juga akan dilakukan setelah salah satu tim mencetak gol terjadi, awal mulai babak kedua, dan saat awal mulai babak waktu tambahan.

Selain prosedur kick off, ada juga prosedur corner kick atau tendangan sudut yang dilakukan ketika bola keluar dari sisi gawang. Ada juga dropped ball, yang

(18)

dilakukan apabila game stuck yaitu saat proses pertandingan.

Kompetisi Robot Sepak Bola Indonesia Beroda (KRSBIB), menerapkan sistem fouls atau pelanggaran apabila robot melakukan hal yang dilarang saat pertandingan seperti: menggiring bola dengan keadaan bola masuk lebih dari 1/3 bagian bola, bola tidak bergulir ketika menggiring bola, secara kasar melakukan kontak dengan robot lawan, menendang robot lawan, melakukan illegal defense dan melaukan illegal attack. Robot yang melakukan fouls akan dikenai sanksi berupa, dropped ball untuk robot lawan, freekick untuk robot lawan, tendangan penalti untuk robot lawan, serta robot dikeluarkan dari pertandingan.

Pada Kompetisi Robot Sepak Bola Indonesia Beroda (KRSBIB) terdapat gawang yang digunakan pada perlombaan. Gawang yang digunakan adalah berwarna putih yang terbuat dari kayu atau besi dengan profil cross section berbentuk bujur sangkar berukuran 125 × 125 mm [1]. Bentuk dan ukuran dilihat pada gambar 2.1 berikut.

Gambar 2.1 Gawang Standar Kontes Robot Sepak Bola Beroda Indonesia[1]

II.2 Computer Vision

Computer vision adalah bidang ilmu yang mempelajari bagaimana cara membuat sebuah komputer dapat mengerti dan mengolah data berupa gambar atau

(19)

video digital [5]. Penelitian di bidang computer vision dimulai pada awal tahun 1970-an.

Gambar 2.2 Lini masa sejarah computer vision [6]

Secara garis besar, lini masa pada gambar 2.1 dapat dijelaskan dari masa 1970-an sampai sekarang. Ketika computer vision mulai dikembangkan Pada tahun 1970-an, hal ini dipercaya sebagai pionir awal dari kecerdasan buatan dan robot.

Penelitian pertama yang dilakukan oleh MIT, Stanford dan CMU menyimpulkan bahwa menyelesaikan permasalahan pada masukan visual dapat menjadi batu loncatan untuk menyelesaikan masalah yang lebih sulit [6].

Penelitian berlanjut sampai pada tahun 1980-an, yang mana David Marr mengenalkan tiga level penggambaran sistem pengolahan informasi citra [7].

Secara garis besar interpretasi dari tiga level penggambaran ini ialah:

Teori komputasi: dapat diwakili dengan pertanyaan, apa yang menjadi tujuan komputasi dan apa batasan yang dapat digunakan untuk menyelesaikan masalah?

Representasi dan algoritme: saat diwakili dengan pertanyaan, bagaimana masukan, keluaran dan proses direpresentasikan dan algoritme yang digunakan untuk perhitungan agar menghasilkan hasil yang diharapkan?

Implementasi perangkat keras: dapat diwakili dengan pertanyaan, Bagaimana representasi dan algoritme diterapkan pada perangkat keras?

Pada tahun 1980-an, banyak penelitian yang berfokus pada teknik

(20)

matematik untuk menjalankan analisis kuantitatif pada sebuah citra. Penelitian berupa edge detection juga aktif pada periode ini, termasuk pada pengenalan dynamically evolving contour trackers.

Pada tahun 1990-an banyak topik penelitian dari tahun sebelumnya ditelusuri lebih dalam. Saat ini, computer vision mulai diterapkan pada sektor produksi dan pemetaan lapangan.

Pada tahun 2017, Utaminingrum, dkk membuat penelitian tentang kursi roda pintar yang bias menghindari rintangan menggunakan computer vision [8].

Penelitian ini dapat membantu penyandang disabilitas mempunyai mobilitas yang lebih bebas. Hasil dari penelitian ini adalah kursi roda yang sudah ditanamkan algoritma menghindari rintangan dapat menghindari rintangan dengan kesuksesan sebesar 80%.

Tahun 2016, Kaiming He, dkk mempublikasikan penelitian tentang bagaimana sebuah citra dapat diproses sehingga membuat pelatihan pada algoritma jaringan saraf tiruan dapat dilakukan lebih dalam daripada sebelumnya[9].

Penelitian ini menghasilkan error sebesar 3.72% pada pengenalan objek di ImageNet pada kompetisi ILSCRV 2015.

Computer vision pada masa sekarang banyak diaplikasikan pada berbagai bidang seperti: mesin inspeksi, permodelan bangunan 3D, Optical character recognition (OCR), bidang otomotif, bidang medis, dan sebagainya [6].

Pada penelitian ini, computer vision merupakan bidang ilmu yang wajib dipelajari agar kita dapat mengolah citra yang ditangkap untuk dapat mengenal objek yang ingin di deteksi.

II.3 Color Model atau Model Warna

Color model merupakan cara standar untuk menspesifikasikan suatu warna tertentu, dengan mendefinisikan suatu sistem koordinat 3D, dan suatu ruang bagian yang mengandung semua warna yang dapat dibentuk ke dalam suatu model tertentu [10]. Sistem warna komputer terinspirasi dari sistem penglihatan manusia yang mendeskripsikan warna berdasarkan atribut warna pokok seperti merah (R), hijau (G), biru (B) untuk mendapatkan warna yang sesuai dengan warna di dunia nyata.

(21)

Color model atau model warna mempunyai banyak variasi. Hal ini bergantung pada mesin yang dipakai untuk menampilkan atau memproduksi warna tersebut [11]. Contohnya ada beberapa printer yang memakai ruang warna CMYK dan LCD yang menggunakan ruang warna RGB.

Beberapa contoh color model atau model warna adalah RGB (Red Green Blue), HSL(Hue Saturation Lightness), CMYK(Cyan Magenta Yellow Black), HSV (Hue Saturation Value), Luminance – Chrominance dan sebagainya. Beberapa mesin terikat pada satu model warna tertentu.

Pada gambar 2.3, ditampilkan beberapa jenis ruang warna yang masih dipakai hingga sekarang. Pada gambar tersebut dapat dilihat bahwa RGB dan CMYK dibentuk dari komposisi warna pokok yang belum memperhitungkan tingkat intensitas kecerahan warna. Beda halnya dengan ruang warna HSV dan HSL, ruang warna ini memperhitungkan kecerahan serta komposisi warnanya.

(a) (b)

(c) (d)

Gambar 2.3 (a) Ruang warna RGB (b) Ruang warna CMYK (c) Ruang warna HSL (d) Ruang warna HSV [12]

(22)

Model warna HSV memiliki tiga parameter yang saling berhubungan antara Hue, Saturation, dan Value. Model warna HSV didasarkan pada koordinat polar[13].

Gambar 2.4 Deskripsi Komponen Model Warna HSV [13]

Pada gambar 2.4 merupakan penggambaran komponen warna HSV yang mana Hue adalah deskripsi untuk derajat warna lingkaran yang menunjukkan perbedaan warna, meskipun ditunjukkan memiliki perputaran 360°, namun nilai hue diinisialisasi kan dalam nilai rentang 0 sampai dengan 255 dengan titik awal 0 mendeskripsikan warna merah. Kemudian saturation adalah tingkat kejenuhan warna yang mana semakin rendah nilai saturasi, semakin pucat warna yang dihasilkan. Value adalah representasi dari kecerahan warna, dengan rentang nilai 0 sampai dengan 255 yang menunjukkan 0 sebagai warna hitam dan 255 sebagai warna putih.

Model Warna HSV merupakan turunan dari model warna RGB. Hal tersebut dilakukan dengan menggunakan perhitungan geometri untuk membentuk ulang model warna yang baru. Untuk melakukan konversi model warna RGB ke model warna HSV dapat dilihat pada persamaan 2.1 [14].

𝐻 = 𝑡𝑎𝑛 [ 3(𝐺−𝐵)

(𝑅−𝐺)+(𝑅−𝐵)] 𝑆 = 1 − min(𝑅,𝐺,𝐵)

𝑉

𝑉 =𝑅+𝐺+𝐵

3 (2.1)

(23)

Pada persamaan 2.1, nilai H tidak dapat diketahui jika nilai S=0. Maka, dilakukan normalisasi nilai RGB yang dapat dilihat pada persamaan 2.2 berikut [14].

𝑟 = 𝑅

𝑅+𝐺+𝐵

𝑔 = 𝐺

𝑅+𝐺+𝐵

𝑏 = 𝐵

𝑅+𝐺+𝐵 (2.2)

Setelah didapat nilai r, g, b yang telah dinormalisasi, transformasi RGB dan HSV dapat dirumuskan berbeda.

𝐻 =

{

0 𝐽𝑖𝑘𝑎 𝑆 = 0 60 × (𝑔 − 𝑏)

𝑆 × 𝑉 𝐽𝑖𝑘𝑎 𝑉 = 𝑟 60 × [2 + (𝑏 − 𝑟)

𝑆 × 𝑉] 𝐽𝑖𝑘𝑎 𝑉 = 𝑔 60 × [4 + (𝑟 − 𝑔)

𝑆 × 𝑉] 𝐽𝑖𝑘𝑎 𝑉 = 𝑏 𝐻 = 𝐻 + 360 𝐽𝑖𝑘𝑎 𝐻 < 0

𝑆 = {0

𝑉− min(𝑟, 𝑔, 𝑏) 𝑉

𝐽𝑖𝑘𝑎 𝑉 = 0 𝐽𝑖𝑘𝑎 𝑉 > 0

𝑉 = max(𝑟, 𝑔, 𝑏) (2.3)

Pada penelitian ini, citra yang ditangkap kamera berupa model warna RGB dan color model atau model warna yang dipakai adalah HSV (Hue Saturation Value) dikarenakan HSV dirancang untuk mendekati cara manusia memandang dan menafsirkan warna suatu objek. Sehingga nantinya akan mempermudah dan mempercepat proses kalibrasi rentang warna yang nantinya akan dibutuhkan oleh sistem yang dirancang oleh peneliti. Objek yang dipakai adalah gawang berwarna putih, sehingga parameter yang akan diambil adalah nilai ambang warna pada objek dalam model warna HSV.

II.4 Filter Citra Digital

Filter adalah proses untuk menyaring frekuensi-frekuensi tertentu dari sekumpulan sinyal untuk diloloskan [15]. Filter pada citra digital juga mengambil proses yang sama, yaitu dengan mengambil beberapa frekuensi citra tertentu dan

(24)

membuang frekuensi citra yang tidak diperlukan. Terdapat banyak sekali jenis filter citra digital, dari filter-filter dasar seperti mean filter, median filter, max filter sampai dengan filter yang cukup kompleks seperti low pass filter dan high pass filter.

Pada penelitian ini, filter yang digunakan adalah filter citra morfologi berupa closing morphology filter. Closing morphology filter merupakan filter yang diperoleh dari mengaplikasikan filter erosi diikuti dilasi diikuti dengan mengaplikasikan filter Openning morphology,

Gambar 2.5 Hasil dari aplikasi closing morphology filter[16]

Pada gambar 2.5, dapat dilihat bahwa hasil aplikasi dari closing morphology filter yang mengisi ruang kosong di tengah citra. Hal ini mempermudah pengenalan objek yang akan dideteksi apabila citra yang ditangkap terdapat noise yang membuat citra menjadi gelap di tengah objek citra tersebut.

II.5 OpenCV (Open Source Computer Vision Library)

OpenCV (Open Source Computer Vision Library) adalah library perangkat lunak yang berfungsi untuk pengolahan citra secara dinamis dan real-time [16].

OpenCV pada awalnya dirancang oleh Intel Research pada tahun 1999 untuk aplikasi intensif berbasis CPU, real-time ray tracing dan pengolahan citra 3D. Pada Agustus 2016 intel menyerahkan penelitian Opencv kepada Itseez, yang merupakan pimpinan dari pengembang Opencv organization, perusahaan non profit yang sebelumnya menjadi pihak pengembang membantu Intel Research.

Library OpenCV ditulis menggunakan Bahasa pemrograman C++ yang dapat diikutsertakan dalam penulisan Bahasa pemrograman lain, seperti: Python, Java dan Matlab/Octave. Opencv dapat dijalankan di berbagai sistem operasi,

(25)

seperti: Windows, Linux, MacOS, FreeBSD, NetBSD dan OpenBSD.

II.6 Contour Filtering

Contour atau kontur dapat diartikan sebagai sebuah kurva yang menghubungkan semua titik sepanjang batas dari sebuah bentuk tertentu [17]. Saat menentukan batas dari suatu bentuk, analisis titik-titik ini dapat mengungkapkan informasi utama untuk analisa bentuk serta deteksi dan pengenalan objek. OpenCV menyediakan banyak fungsi untuk mendeteksi dan memproses kontur dengan benar.

Gambar 2.6 Fungsi Library OpenCV untuk Mendefinisikan Kontur dalam bentuk persegi panjang [17]

Pada penelitian ini, kontur yang ingin dideteksi adalah kontur dengan bentuk yang mendekati persegi panjang. Karena gawang yang dideteksi tidaklah menjamin akan mendeteksi gawang secara persegi panjang sempurna. Seperti yang di tunjukkan pada gambar 2.6, kontur tidaklah harus berbentuk persegi panjang agar dapat terdeteksi. Fungsi cv2.boundingRect() memperkirakan bentuk persegi panjang dari kontur citra biner. Untuk mendeteksi gawang, penggunaan fungsi ini harus di kombinasikan dengan pemilihan kondisi yang mendefinisikan bentuk gawang seperti rasio lebar dan tinggi gawang dan ukuran minimum gawang.

II.8 Kalibrasi Kamera dan Rekonstruksi 3D

Dalam fungsi-fungsi pada bagian ini, menggunakan apa yang disebut model kamera lubang jarum. Dalam model ini, tampilan pemandangan dunia nyata

(26)

dibentuk dengan memproyeksikan koordinat tiga dimensi ke dalam bidang gambar menggunakan transformasi perspektif yang dapat di tunjukkan pada persamaan 2.4 [18]

𝑠 𝑚[ 𝑢 𝑣 1

] = 𝐴[𝑅|𝑡] 𝑀 (2.4)

Atau

𝑠 [ 𝑢 𝑣 1

] = [

𝑓𝑥 0 𝑐𝑥 0 𝑓𝑦 𝑐𝑦

0 0 1

] [

𝑟11 𝑟12 𝑟13 𝑟21 𝑟22 𝑟23 𝑟31 𝑟32 𝑟33

𝑡1 𝑡2 𝑡3

] [ 𝑋 𝑌 𝑍 1

] (2.5)

Di mana :

(X,Y,Z) : koordinat titik tiga dimensi di dunia (u, v) : koordinat proyeksi titik dalam pixel A : Matriks kamera

(𝑐𝑥, 𝑐𝑦) : Titik utama yang biasanya berada di pusat gambar (𝑓𝑥, 𝑓𝑦) : Focal Lengths yang dinyatakan dalam unit pixels [R|t] : Matriks rotasi dan translasi

Matriks rotasi-translasi gabungan [R|t] disebut matriks parameter ekstrinsik.

Matriks ini digunakan untuk melakukan manipulasi berupa memutar citra searah jarum jam atau berlawanan jarum jam dan menggeser citra secara vertikal maupun horizontal. Matriks [R|t] menerjemahkan koordinat titik (X, Y, Z) ke sistem koordinat, tetap terhadap kamera. Gambar 2.7 menunjukkan ilustrasi model kamera lubang jarum.

Gambar 2.7 Ilustrasi Model Kamera Lubang Jarum [19]

(27)

Lensa asli biasanya memiliki beberapa distorsi, sebagian besar distorsi radial dan sedikit distorsi tangensial. Untuk mengembalikan citra yang terdistorsi maka digunakan persamaan-persamaan berikut [18]:

[ 𝑥 𝑦 𝑧

] = 𝑅 [ 𝑋 𝑌 𝑍

] + 𝑡 (2.6)

𝑥= 𝑥 𝑧 𝑦= 𝑦 𝑧

𝑟2 = (𝑥′)2+ (𝑦′)2 (2.7)

𝑥′′ = 𝑥′ 1+ 𝑘1𝑟2+ 𝑘2𝑟4+ 𝑘3𝑟6

1+ 𝑘4𝑟2+ 𝑘5𝑟4+ 𝑘6𝑟6 + 2 𝑝1𝑥𝑦+ 𝑝2(𝑟2+ 2(𝑥′)2) 𝑦′′ = 𝑦′ 1+ 𝑘1𝑟2+ 𝑘2𝑟4+ 𝑘3𝑟6

1+ 𝑘4𝑟2+ 𝑘5𝑟4+ 𝑘6𝑟6 + 2 𝑝2𝑥𝑦+ 𝑝1(𝑟2+ 2(𝑦′)2) (2.8)

𝑢 = 𝑓𝑥 × 𝑥′′+ 𝑐𝑥

𝑣 = 𝑓𝑦 × 𝑦′′+ 𝑐𝑦 (2.9) Dimana:

(𝑥, 𝑦) = Koordinat kamera

(𝑥′′, 𝑦′′) = Koordinat kamera yang sudah terkoreksi

(u, v) = Koordinat citra yang sudah terkoreksi

Gambar 2.8 Citra Tanpa Terdistorsi dan Citra Terdistorsi Radial [20]

k1, k2, k3, k4, k5, k6 adalah koefisien distorsi radial. p1 dan p2 adalah

(28)

koefisien distorsi tangensial. Gambar 2.8 menunjukkan dua jenis distorsi radial yang umum yaitu: barrel distortion (biasanya k1 > 0) dan pincushion distortion (biasanya k1 < 0). Koefisien distorsi tidak bergantung pada citra dunia nyata.

Dengan demikian, koefisien distorsi termasuk dalam parameter kamera intrinsik.

Jika, misalnya, sebuah kamera telah dikalibrasi pada gambar dengan resolusi 320 x 240, koefisien distorsi yang sama dapat digunakan untuk gambar 640 x 480 dari kamera yang sama sementara fx, fy, cx, dan cy perlu diskalakan dengan tepat.

Pada penelitian ini, peneliti hanya menggunakan salah satu parameter intrinsik yaitu koefisien distorsi k1 yang mana pada penggunaan lensa fish eye, menimbulkan efek barrel distortion dan blur. Sehingga parameter lain seperti panjang fokus, rotasi dan translasi tidak diperlukan.

II.9 Penelitian Terkait

Penelitian terkait pernah dilakukan oleh Tofik Nurochman, dkk dengan judul Sistem Pendeteksian Gawang menggunakan Metode Houghlines dan Cornerharris pada Robot Fire-X UAD[21]. Pada penelitian tersebut, digunakan metode Houghlines dan Cornerharris untuk mendeteksi gawang dan menjadikan parameter garis tepi gawang dan sudut gawang sebagai acuan untuk mendeteksi gawang, serta menggunakan teknik filter warna HSV berupa warna hijau pada lapangan.

Penelitian Terkait pernah dilakukan oleh Ida Udlhiya, dkk dengan judul Sistem Deteksi Sudut Gawang dengan Teknik Pengolahan Citra Digital berbasis Labview[22]. Penelitian ini menggunakan beberapa metode sebagai perbandingan yaitu corner Harris, Shi-Thomasi, dan FAST dalam menentukan kecepatan dalam pendeteksian. Penelitian ini mengubah citra RGB menjadi citra keabuan yang kemudian diubah menjadi citra biner melalui proses thresholding sebelum diproses dalam ketiga metode pendeteksian gawang tersebut.

(29)

BAB III

METODE PENELITIAN

III.1 Membedakan Gawang Lawan dan Gawang Teman

Dikarenakan pada kontes dilarang menggunakan penanda tambahan pada arena perlombaan seperti yang tertera pada buku peraturan Kontes Robot Indonesia[1], maka hal ini menimbulkan masalah pada proses membedakan gawang lawan dan gawang teman. Dengan demikian salah satu solusinya adalah dengan menggunakan sensor gyroscope ke robot. yang mana sensor ini dapat mengukur dan mempertahankan orientasi dan kecepatan sudut dari suatu objek sehingga dapat membantu dalam mengenali sisi gawang lawan dan gawang teman berada. Dikarenakan penelitian ini tidak membahas mengenai hardware dari robot, maka jika pembaca ingin mengetahui lebih dalam mengenai sensor gyroscope, sebagai rujukan pembaca dapat membaca review dari “Accelometer and Gyroscopes Sensors : Operation, Sensing, and Aplication” oleh Majid Dadafshar, Dkk.

III.2 Desain Sistem

Sistem menggunakan bahasa pemrograman Python 3.7 yang mana menggunakan library OpenCV 4 untuk membantu dalam mengolah citra.

Algoritma yang akan diterapkan pada sistem dalam mendeteksi posisi gawang dapat dilihat pada flowchart pada Gambar 3.1 berikut.

(30)

Gambar 3.1 Diagram Flowchart Sistem Pendeteksi Posisi Objek Gawang Memanfaatkan Algoritma Color Modeling HSV dan Contour Filtering

Dari awal mulai program dijalankan, sistem akan mulai menangkap citra dari webcam dan mengirim informasi citra ke sistem. Citra yang ditangkap

(31)

kemudian di ubah dalam resolusi 640 × 480 pixels untuk mengurangi jumlah pixel yang akan diproses sistem. Dikarenakan penggunaan fisheye untuk memperluas dan meningkatkan jarak minimum deteksi gawang, maka timbul efek cembung pada citra yang ditangkap yang mana akan mempengaruhi proses pendeteksian objek gawang sehingga citra yang terdistorsi harus dikembalikan seperti semula. Setelah citra sudah menjadi seperti semula maka citra yang masih dalam model warna RGB akan diubah dalam citra HSV.

Citra HSV akan di segmentasi dengan warna objek yang ingin dideteksi dengan mengatur ambang batas dan bawah warna objek yang ingin dideteksi.

Kemudian setelah di segmentasi, citra akan berubah dalam bentuk citra biner yang memiliki noise seperti yang dicontohkan pada gambar 2.5. Kemudian, diaplikasikan filter morfologi ke dalam citra biner. Setelah noise dikurangi, citra biner akan dideteksi kontur yang melingkupi setiap area citra biner yang ada agar sistem mendapat informasi dalam menganalisis bentuk. Dari deteksi kontur akan diperkirakan bentuk persegi panjang yang melingkupi semua titik-titik kontur dalam citra biner tadi.

Perkiraan persegi panjang belum tentu akan mendeteksi kontur dengan bentuk persegi panjang sempurna, maka digunakan pemilihan kondisi yang mensyaratkan aspek rasio lebar dan tinggi persegi panjang adalah 2 : 1 dan luas dari perkalian pixel lebar dan tinggi dari hasil kembalian fungsi yang memperkirakan bentuk persegi panjang lebih besar dari 5000 (lima ribu) pixels. Jika syarat tidak terpenuhi maka program akan kembali ke tahapan menangkap citra. Jika syarat terpenuhi, citra biner akan di deteksi tepinya. Dari hasil deteksi tepi citra, akan diambil bagian ROI (Region of Interest) dari tiang atas gawang. Dari ROI sistem akan mendeteksi garis lurus secara realtime yang kemudian dari proses ini akan dihasilkan koordinat Y dari ujung-ujung garis lurus tadi.

Selisih dari koordinat Y yang telah di petakan akan memberikan informasi perkiraan besar sudut sebenarnya dari tengah gawang dan status posisi robot seperti sedang berada di tengah, kiri atau kanan tampak dari kamera. Kemudian sistem juga akan menghitung jarak robot dari tengah gawang menggunakan persamaan 3.1 yang telah dipetakan karena setelah melakukan pengujian, hasil yang didapat masih belum sesuai yang diharapkan. Kemudian semua informasi berupa sudut, jarak,

(32)

status posisi, dan gawang yang terdeteksi akan ditampilkan kepada pengguna.

III.3 Bahan dan Peralatan

Adapun bahan dan peralatan yang digunakan dalam penelitian ini diantaranya:

1. Raspberry pi 4 Model B

Raspberry pi adalah sebuah modul single board computer yang mampu menjalankan software dan juga dapat menghasilkan output video beresolusi tinggi.

Pada penelitian ini, penggunaan Raspberry pi 4 Model B merujuk pada Alberto Fernández Villán, Mastering OpenCV4 With Python,First. Birmingham:

Packt Publishing, 2019 yang mana merekomendasikan spesifikasi hardware berupa: arsitektur 32-bit atau 64-bit, CPU 2+ GHz, 4GB RAM. Berfungsi sebagai Mini Pc yang akan menjadi tempat main program ditanam dan sebagai tempat pemrosesan gambar.

2. Webcam Logitech C310

Webcam Logitech C525 adalah sebuah kamera USB yang biasa digunakan pada laptop atau komputer yang tidak mempunyai kamera yang tertanam pada sistemnya.

Webcam Logitech C310 pada penelitian ini dipakai karena merujuk pada Alberto Fernández Villán, Mastering OpenCV4 With Python,First. Birmingham:

Packt Publishing, 2019 yang merekomendasikan kamera dengan kecepatan 20-25 fps jika ingin mendeteksi mobil yang melaju cepat pada jalan raya dan Webcam Logitech C525 dapat memenuhi kriteria tersebut.

3. Lensa Fish Eye

Lensa Fish Eye adalah sebuah lensa cembung kecil yang tersedia di pasaran dimana lensa ini banyak digunakan pada smartphone. Lensa ini berguna untuk menambah kemampuan jarak pandang dan luas pandang dari kamera.

Pada penelitian ini, Lensa ini digunakan agar kamera dapat menangkap citra

(33)

gawang dengan lebih dekat. Jika tanpa menggunakan lensa, jarak minimum terdeteksi dari tengah gawang adalah tiga meter. Dengan menggunakan lensa ini, jarak minimum dapat ditingkatkan menjadi kurang lebih dua meter dari tengah gawang.

III.4 Pengolahan Citra Menggunakan Algoritma Color Filtering HSV dan Contour Filtering

Tahapan pengolahan citra menggunakan algoritma Color Filtering HSV dan Contour Filtering dibagi menjadi tahapan-tahapan kecil, yaitu:

1. Tangkapan citra 2. Pre-processing

Pada tahapan Pre-processing, dibagi menjadi beberapa tahapan, yaitu:

a. Mengembalikan Citra Yang Terdistorsi b. Konversi citra RGB ke citra HSV c. Binerisasi

d. Aplikasi filter morfologi 3. Segmentasi

Pada tahapan segmentasi, memiliki beberapa tahapan, yaitu:

a. Menemukan kontur dari citra biner

b. Melingkupi semua titik kontur dengan pembatas persegi panjang c. Mendeteksi tepi citra

d. Mendeteksi garis lurus pada tiang bagian atas gawang 6. Identifikasi

Pada tahapan Identifikasi, terdapat beberapa tahapan, yaitu:

a. Menandai kontur persegi panjang yang terdeteksi b. Menandai garis lurus yang terdeteksi

c. Mengidentifikasi posisi sudut robot ke tengah gawang d. Mengidentifikasi jarak robot ke tengah gawang

III.4.1 Tangkapan Citra

Dalam menangkap citra, digunakan webcam untuk menangkap citra.

Untuk meningkatkan jarak pandang dan luas pandang kamera, digunakan lensa

(34)

fish eye namun akan membuat citra yang ditangkap menjadi cembung (Barrel Distortion) dan blur. Sebelum menangkap citra, dibutuhkan library OpenCV pada pemrograman Python dengan cara import cv2.

Dalam melakukan penangkapan citra pada penelitian ini, citra ditangkap secara berulang ulang tanpa batasan waktu (realtime). Di dalam perulangan tersebut dilanjutkan dengan membaca matriks citra kamera. Setelah citra pertama tertangkap, maka dilanjutkan dengan mengubah rasio citra menjadi 640 x 480 dari ukuran citra asli yang besar (Downscaling Image). Tahap ini mengurangi informasi pixel dari citra sehingga akan berakibat pada cepatnya pemrosesan citra. Pada library Opencv4, proses ini mengambil matriks citra yang di tangkap dan diaplikasikan Interpolasi Bilinear. Interpolasi Bilinear mengambil setiap empat pixel dari titik awal dan terus berlanjut sampai pixel citra terahir, dan mengambil rata-rata weighted-nya. Kemudian citra diinterpolasi terhadap sumbu x menggunakan persamaan 3.1.

𝑓(𝑥, 𝑦1) = 𝑥2−𝑥

𝑥2−𝑥1𝑓(𝑄11) + 𝑥− 𝑥1

𝑥2−𝑥1𝑓(𝑄21) 𝑓(𝑥, 𝑦2) = 𝑥2−𝑥

𝑥2−𝑥1𝑓(𝑄12) + 𝑥− 𝑥1

𝑥2−𝑥1𝑓(𝑄22) (3.1) dan sumbu y menggunakan persamaan 3.2

𝑓(𝑥, 𝑦) = 𝑦2−𝑦

𝑦2−𝑦1𝑓(𝑥, 𝑦1) + 𝑥− 𝑥1

𝑥2−𝑥1𝑓(𝑥, 𝑦2) (3.2)

dimana 𝑄11= (𝑥1, 𝑦1); 𝑄12 = (𝑥1, 𝑦2); 𝑄21= (𝑥2, 𝑦1); dan 𝑄22= (𝑥2, 𝑦2), sehingga didapat nilai weighted dari keempat pixels tersebut. Dalam menghasilkan weighted dalam persamaan 3.1, terdapat suatu kondisi dimana 𝑓(𝑥, 𝑦1) = 𝑄11 dan 𝑓(𝑥, 𝑦2) = 𝑄22 jika x1= x2. Kemudian nilai interpolasi dibulatkan dalam tipe data interger. Tahap selanjutnya adalah Pre-processing, untuk mempersiapkan citra agar dapat di proses dengan baik.

III.4.2 Pre-processing

Pre-processing merupakan tahap untuk mempersiapkan citra sebelum diproses lebih lanjut. Adapun perlakuan yang diberikan pada citra asli.

(35)

III.4.2.1 Mengembalikan Citra Yang Terdistorsi

Penggunaan fish eye menyebabkan citra yang ditangkap menjadi terdistorsi yang mana hal ini akan mempengaruhi kemampuan sistem dalam mengenal objek gawang. Maka untuk mengatasi hal ini, citra harus dikembalikan pada keadaan sebelum terdistorsi. Maka dengan mengatur parameter k1 bernilai negatif sampai di dapat nilai koefisien yang tepat, akan menghilangkan distorsi seperti yang dijelaskan pada sub bab II.8.

Untuk setiap koordinat pixel dari matriks kamera yang belum terkoreksi, dihitung dan diaplikasikan nilai k1 yang diproses ke dalam persamaan 2.6 sampai dengan 2.9 sehingga hasil dari persamaan 2.9 didapat nilai u dan v yang menjadi koordinat proyeksi dari titik-titik pixels yang mana merupakan citra yang telah diperbaiki distorsinya seperti pada gambar 3.2(b) berikut.

Gambar 3.2 (a) Barrel Distortion akibat penggunaan fish eye (b)Citra yang telah diperbaiki

Setelah citra di kembalikan dari keadaan distorsi maka tahap selanjutnya adalah konversi citra RGB ke HSV.

III.4.2.2 Konversi citra RGB ke citra HSV

Tahapan ini mengubah hasil tangkapan citra kamera yang mulanya bermodel warna RGB menjadi HSV. Sebelum mengonversi ke model warna HSV, maka harus diketahui terlebih dahulu nilai RGB citra. Untuk setiap nilai warna BGR (sistem urutan pembacaan warna library OpenCV) pada setiap pixel citra yang ditangkap, setiap nilai BGR pixel akan diaplikasikan ke persamaan 2.2 dan 2.3 sehingga dengan demikian akan menghasilkan

(36)

nilai HSV dari suatu pixel BGR. Proses pengkonversian terus berlanjut hingga pixel terakhir dari citra yang di tangkap. Hasil konversi citra RGB ke HSV dapat dilihat pada gambar 3.3 berikut.

Gambar 3.3 Citra HSV

Setelah berhasil di konversi citra RGB ke HSV, maka tahap selanjutnya adalah binerisasi.

III.4.2.3 Binerisasi

Binerisasi membagi citra menjadi dua bagian yaitu object (pixel- 1) dan Background (pixel-0). Proses ini memindai setiap pixel citra HSV yang kemudian nilainya akan dibandingkan dengan rentang warna HSV yang diinginkan. Jika nilai HSV yang di pixel yang sedang dipindai berada pada rentang warna HSV yang inginkan maka pada pixel tersebut akan ditandai dengan pixel-1, Jika tidak maka akan diberi tanda pixel-0. Proses ini terus berlanjut sampai pixel citra HSV terakhir.

Untuk mempermudah dalam menentukan nilai ambang batas atas dan bawah model warna HSV maka dapat digunakan program kalibrasi nilai ambang batas HSV yang disertai dengan GUI(Graphical User Interface).

Hasil binerisasi citra HSV dengan warna objek putih pada gawang dapat dilihat pada gambar 3.4 berikut.

(37)

Gambar 3.4 Citra Biner

Tahap selanjutnya adalah mengaplikasikan filter morfologi pada citra biner.

III.4.2.4 Aplikasi filter morfologi

Agar citra yang diseleksi tampak lebih jelas, maka diaplikasikan filter morfologi. Filter morfologi yang digunakan adalah closing morphology filter dimana filter ini akan membuat citra biner tampak lebih jelas dan kontras. Dalam pengaplikasian filter morfologi terdapat sebuah citra biner dan sebuah elemen terstruktur yang biasanya di sebut kernel.

closing morphology filter didapat dengan mengaplikasikan filter morfologi dilatasi yang kemudian dilanjutkan dengan erosi. Dalam morfologi biner, dilatasi adalah operator shift-invariant (translation invariant), setara dengan penjumlahan Minkowski. Sebuah citra biner dilihat dalam morfologi matematika sebagai subset dari ruang Euclidean ℝd atau grid bilangan bulat ℤd, untuk beberapa dimensi d. Misalkan E adalah ruang Euclidean atau grid bilangan bulat, A adalah citra biner dalam E, dan B adalah elemen penataan yang dianggap sebagai sub set dari ℝd.

Dilatasi A oleh B didefinisikan oleh:

𝐴 ⨁ B = ⋃𝑏∈𝐵 𝐴𝑏 (3.3)

dimana 𝐴𝑏 adalah translasi A oleh B. Proses dari dilatasi adalah sebagai berikut[23]:

1. Misalkan A adalah matriks 11 x 11 berisi pixel-1 dan pixel-0 dan B

(38)

adalah matriks 3 x 3 berisi pixel-1 secara keseluruhan.

2. Untuk setiap pixel di A yang memiliki nilai 1, letakkan B, dengan pusat B sejajar dengan pixel yang sesuai di A.

3. Setiap pixel dari setiap B yang ditumpangkan termasuk dalam dilatasi A oleh B.

Pengikisan citra biner A oleh elemen penataan B didefinisikan oleh:

𝐴 ⊖ B = {z ∈ E |𝐵𝑧 ⊆ A} (3.4)

dimana ⊖ merupakan erosi, 𝐵𝑧 merupakan translasi B oleh vektor z.

Proses erosi dapat dilihat sebagai berikut:

1. Misalkan A adalah matriks 13 x 13 berisi pixel-1 dan pixel-0dan B adalah matriks 3 x 3 berisi pixel-1 secara keseluruhan.

2. Dengan asumsi bahwa asal B berada di tengahnya, untuk setiap pixel di A melapiskan asal B, jika B sepenuhnya ditampung oleh A, pixel dipertahankan, jika tidak maka dihapus.

3. Nilai pixel dipertahankan hanya ketika B sepenuhnya terkandung di dalam A, jika tidak maka akan dihapus atau terkikis.

Hasil pengaplikasian filter morfologi closing dapat dilihat pada gambar 3.5 berikut.

Gambar 3.5 Citra biner setelah menerapkan filter morfologi

III.4.3 Segmentasi

Segmentasi merupakan kunci proses dari kebanyakan pengaplikasian

(39)

computer vision. Umumnya segmentasi digunakan untuk membagi citra ke region yang berbeda yang secara ideal memiliki kemiripan dengan objek dunia nyata yang telah diekstrak dari backgroundnya. Terdapat beberapa proses segmentasi yang dilakukan pada penelitian ini diantaranya sebagai berikut.

III.4.3.1 Menemukan kontur dari citra biner

Setelah citra biner diaplikasikan filter morfologi, maka citra siap untuk diproses. Untuk mendapatkan informasi yang dapat diolah dari citra biner, maka citra biner disegmentasi menggunakan metode deteksi kontur.

Merujuk pada jurnal Suzuki dan Abe[23], yang mana algoritmanya digunakan dalam fungsi pendeteksian kontur library OpenCV. Pada algoritma yang di jelaskan pada jurnal Suzuki, proses pendeteksian kontur dari citra biner dimulai dengan proses pemindaian dengan teknik Raster.

Pada pendeteksian kontur dari citra biner memiliki dua macam pendeteksian batasan yaitu outer-bordering dan hole-bordering. Pada penelitian ini hanya menggunakan outer-bordering yang mana dari citra biner akan dideteksi bagian yang paling luar saja. Terdapat algoritma dalam mendeteksi kontur outer-bordering citra biner yang digunakan yaitu sebagai berikut:

1. Jika 𝑓𝑖,𝑗= 1 dan 𝑓𝑖,𝑗−1 = 0, maka tetapkan sebagai titik awal penelusuran outer -border, tingkatkan nilai NBD, dan (𝑖2, 𝑗2) = (𝑖, 𝑗 − 1). Jika 𝑓𝑖,𝑗≥ 1 dan 𝑓𝑖,𝑗+1= 0, maka tetapkan sebagai titik awal penelusuran hole- border, tingkatkan nilai NBD, dan (𝑖2, 𝑗2) = (𝑖, 𝑗 − 1), (diabaikan). Selain dari itu lanjut ke tahap (3).

2. Dari titik awal (i, j), telusuri border yang terdeteksi, tahap ini dilakukan melalui tahapan-tahapan kecil berikut:

2.1 Mulai dari (𝑖2, 𝑗2), mencari sekitar ke sekeliling pixel (i, j) secara berlawanan arah jarum jam. Biarkan (𝑖1, 𝑗1) menjadi pixel non-zero pertama yang ditemukan. Jika tidak ada pixel non-zero yang ditemukan, maka tetapkan -NBD ke 𝑓𝑖,𝑗 dan pergi ke tahap (3).

2.2 (𝑖2, 𝑗2) = (𝑖1, 𝑗1) dan (𝑖3, 𝑗3) = (i, j)

2.3 Mulai dari elemen berikutnya dari pixel (𝑖2, 𝑗2) dalam urutan

(40)

berlawanan arah jarum jam, periksa berlawanan arah jarum jam piksel di sekitar piksel saat ini pixel (𝑖3, 𝑗3) untuk menemukan pixel non-zero dan Biarkan (𝑖4, 𝑗4) menjadi pixel non-zero pertama yang ditemukan.

2.4 Ubah nilai 𝑓𝑖3,𝑗3 dari pixel (𝑖3, 𝑗3) menjadi sebagai berikut:

a) Jika pixel (𝑖3, 𝑗3+1) adalah pixel-0 yang dicek pada tahap (2.3) maka 𝑓𝑖3,𝑗3 = -NBD

b) Jika pixel (𝑖3, 𝑗3+1) bukan pixel-0 yang dicek pada tahap (2.3) dan 𝑓𝑖3,𝑗3 = 1, maka 𝑓𝑖3,𝑗3 = NBD

c) Selain itu jangan ubah nilai 𝑓𝑖3,𝑗3

2.5 Jika (𝑖4, 𝑗4) = (i, j) dan (𝑖3, 𝑗3) = (𝑖1, 𝑗1)(Kembali pada titik awal mulai penelusuran), pergi ke tahap (3). Selain itu, (𝑖2, 𝑗2) = (𝑖1, 𝑗1), (𝑖3, 𝑗3)

= (𝑖4, 𝑗4) dan kembali ke tahap (2.3).

3. Jika 𝑓𝑖,𝑗≠ 1, maka LNBD = |𝑓𝑖,𝑗| dan lanjutkan penelusuran Raster dari pixel (i, j+1), Algoritma berakhir ketika penelusuran mencapai sudut kiri bawah citra.

NBD adalah representasi dari border yang di tandai pada citra biner yang ditelusuri. Biasanya berupa 2 dan -2 karena “1” merupakan representasi citra biner. Sedangkan LNDB merupakan urutan induk dari border yang mana hanya berlau saat melakukan penelusuran yang bukan hanya bagian terluar citra biner saja. Hasil pendeteksian kontur dapat dilihat pada gambar 3.6 berikut.

Gambar 3.6 Mendeteksi kontur citra biner

(41)

III.4.3.2 Menandai Keseluruhan Kontur Dengan Penanda Persegi Panjang

Pada tahapan ini kontur yang terdeteksi akan ditandai persegi panjang. Proses ini dapat di lakukan dengan memanggil fungsi library OpenCV yaitu cv2.boundingRect() yang akan mengembalikan nilai berupa koordinat titik X dan Y dari sudut kiri atas persegi panjang, panjang dan lebar dari perkiraan persegi panjang kontur yang terdeteksi. Nilai kembalian tersebut didapat dari menguji setiap titik (x,y) pada kontur yang terdeteksi untuk menemukan titik minimum dan maksimum setiap titik x dan y (minX, maxX, minY, maxY). Dengan menguji setiap titik (x,y) dari kontur dan membandingkan dengan yang koordinat sebelumnya, jika koordinat yang sedang dibandingkan lebih tinggi atau lebih rendah maka nilai minimum atau maksimum sebelumnya akan digantikan dengan nilai yang sekarang, Nilai penanda persegi panjang kemudian adalah: X = minX, Y= minY, W=(maxX-minX), H=(maxY-minY).

Persegi panjang yang terdeteksi belum tentu memenuhi kriteria dari objek gawang yang akan diuji seperti, ukuran minimum gawang dan aspek rasio gawang maka, hasil kembalian dari fungsi tersebut diberi pemilihan kondisi yang bisa mencerminkan ciri gawang yang akan diuji.

Hasil kembalian dari fungsi ini juga dapat mengetahui koordinat titik tengah dari gawang. Hasil penandaan kontur dengan persegi panjang dapat dilihat pada gambar 3.7 berikut.

Gambar 3.7 Melingkupi kontur dengan persegi panjang

(42)

Setelah persegi panjang terdeteksi, maka selanjutnya adalah tahap memperkirakan posisi robot terhadap gawang. Proses ini membutuhkan pendeteksian tepi citra dalam melakukannya.

III.4.3.3 Mendeteksi tepi citra

Tahapan selanjutnya adalah mendeteksi tepi citra. Dalam mendeteksi tepi citra, digunakan metode dari Jhon F. Canny dengan metode Canny Edge Detector []. Proses dari metode ini dibagi menjadi beberapa tahapan yaitu:

1. Mengaktifkan Filter Gaussian untuk menghaluskan gambar dengan tujuan meredam noise. Berikut adalah contoh kernel Gaussian ukuran = 5 :

𝐾 = 1

159

[

2 4 5

4 9 12

5 12 15

4 9 12

2 4 5

4 9 12

2 4 5

9 4

4 2]

(3.3)

2. Menemukan intensitas gradien citra, untuk hal ini kita akan mengikuti prosedur yang serupa dengan sobel

a) Aplikasikan sepasang Convolutional Masks (dalam arah x dan y):

𝐺𝑥 = [

−1 0 +1

−2 0 +2

−1 0 +1

] (3.4)

𝐺𝑦 = [

−1 −2 −1

0 0 0

+1 +2 +1

] (3.5)

b) Temukan kekuatan dan arah gradien dengan:

𝐺𝑥= √𝐺𝑥2+ 𝐺𝑦2 (3.6) 𝜃 = 𝑎𝑟𝑐𝑡𝑎𝑛 (𝐺𝑦

𝐺𝑥) (3.7)

Arahnya dibulatkan ke salah satu dari empat kemungkinan sudut (yaitu 0, 45, 90 atau 135).

3. Non-Maximum Suppresion diaplikasikan yang mana akan menghilangkan pixel yang dipertimbangkan bukan bagian dari

(43)

sebuah tepi. Karenanya, hanya garis-garis tipis (kandidat tepi-tepi) yang akan tersisa.

4. Hysteresis: Tahap akhir. Metode Canny menggunakan dua ambang batas (atas dan lower):

a) Jika gradien pixel lebih tinggi dari ambang batas atas, pixel diterima sebagai tepi.

b) Jika nilai gradien pixel di bawah ambang batas bawah, maka ditolak.

c) Jika gradien pixel berada di antara dua ambang batas, maka akan diterima hanya jika terhubung dengan pixel yang berada di atas ambang batas atas.

Keluaran dari detektor Canny adalah kontur tepi pada latar belakang hitam yang dapat dilihat pada gambar 3.8 berikut.

Gambar 3.8 Mendeteksi tepi citra biner

Setelah mendeteksi tepi citra kontur yang dideteksi, citra akan diambil ROI (Region Of Interest) di mana ROI merupakan teknik yang digunakan menandai area tertentu dari citra keseluruhan. Pada penelitian ini.

ROI mengambil kembalian dari proses melingkupi kontur dengan persegi panjang yang informasinya adalah koordinat titik awal persegi, tinggi, dan lebar. ROI tidak menggunakan library OpenCV melainkan merupakan operasi dasar dari pemrograman Python 3 yaitu fungsi slicing yang merupakan manipulasi array citra yang bertujuan memotong bagian array tertentu. Adapun tahap-tahap dalam fungsi slicing array atau ROI dalam

(44)

citra sebagai berikut:

1. Membaca fitur citra (direpresentasikan dalam array 2D)

2. Menentukan indeks awal array dan indeks akhir array dari citra.

3. Ambil setiap nilai array yang berada pada rentang indeks awal dan akhir. Jika array berada pada luar rentang, maka akan ditiadakan.

Hasil pengaplikasian ROI dapat dilihat pada gambar 3.9 berikut.

Gambar 3.9 Mengambil ROI pada hasil pendeteksian tepi citra biner

Setelah didapat ROI maka citra yang akan tampak berupa bagian tiang atas gawang dalam bentuk citra yang sudah dideteksi tepinya. Dengan demikian citra dapat diproses untuk dideteksi garis lurus pada tiang atas gawang atau dari citra ROI.

III.3.3.4 Mendeteksi garis lurus pada tiang bagian atas gawang

Pada tahapan ini citra ROI dari hasil deteksi tepi citra akan dideteksi garis lurusnya menggunakan metode HoughLines Transform.

Metode ini merepresentasikan sebuah garis sebagai [24] : 𝑦 = 𝑚𝑥 + 𝑐

Atau

𝜌 = 𝑥 cos 𝜃 + 𝑦 sin 𝜃 (3.8)

di mana 𝜌 adalah jarak tegak lurus dari titik mula ke garis, dan 𝜃 adalah sudut yang terbentuk dari garis tegak lurus dan sumbu horizontal yang diukur berlawanan arah. Banyak garis dapat direpresentasikan dalam dua kondisi yaitu (𝜌, 𝜃). Pertama, metode ini membentuk sebuah array 2 dimensi atau akumulator (untuk menahan nilai dari kedua parameter) dan mulanya di atur ke 0. Baris array menunjukkan 𝜌 dan kolom menunjukan 𝜃.

Besarnya array menentukan seberapa akurasi yang dibutuhkan. Jika

(45)

menginginkan akurasi sebesar 1 derajat, maka dibutuhkan 180 kolom. Jarak maksimum 𝜌 yang dapat di jangkau dalam sebuah citra adalah sebesar jarak diagonal citra.

Misalkan sebuah citra 100 × 100 dengan sebuah garis horizontal di tengahnya. Maka metode ini mulai mengambil titik pertama dari garis dengan koordinat (x,y) kemudian di dalam persamaan garis, diletakkan nilai 𝜃 = 0,1,2, . . . . , 180 dan mengecek 𝜌 yang di dapat. Untuk setiap pasangan (𝜌, 𝜃), metode menambah nilai satu per satu di akumulator di sel (𝜌, 𝜃) yang sesuai. Jadi sekarang di akumulator, sel (50, 90) = 1 bersama dengan beberapa sel lainnya. Kemudian diambil titik kedua dari garis. Hal yang sama juga dilakukan dan kali ini (50, 90) = 2. Yang sebenarnya dilakukan adalah memberi suara (voting) nilai (𝜌, 𝜃). Proses ini terus berlanjut untuk setiap titik pada garis. Setiap titik, sel yang bernilai (50, 90) akan diberi suara. Jadi saat (50, 90) mendapat voting yang paling banyak di akumulator, maka hal tersebut dapat menandakan adanya garis pada jarak 50 pixels dari sumbu awal pada sudut kemiringan 90 derajat.

Dengan demikian garis yang terdeteksi akan didapat koordinat (x,y) pada ujung-ujung garis tersebut. Dengan informasi koordinat y pada ujung-ujung garis tersebut, dapat diketahui sudut robot terhadap tengah gawang dengan melihat selisih nilai koordinat y ujung-ujung garis tersebut.

Hasil pengaplikasian filter morfologi dapat dilihat pada gambar 3.2 berikut.

III.4.4 Identifikasi

Hasil segmentasi kemudian perlu ditampilkan kepada pengguna untuk mengetahui kebenaran dari hasil pengolahan citra yang dilakukan serta membantu dalam melakukan troubleshooting. Identifikasi yang dilakukan yaitu sebagai berikut.

III.4.4.1 Menampilkan kontur persegi panjang

Dari sub bab III.4.3.2 yang mana telah diperkirakan lingkup persegi panjang dari kontur, maka untuk menampilkan hasil pendeteksian tersebut kepada pengguna, dapat memanfaatkan koordinat awal dan

(46)

koordinat akhir persegi panjang tersebut. Kemudian, fungsi untuk menampilkan persegi panjang dari library OpenCV akan menandai tiap pixel dari koordinat titik awal sampai dengan koordinat titik akhir sehingga akan membentuk persegi panjang 2(dua) dimensi yang kosong pada bagian tengahnya. Persegi atau persegi panjang yang terbentuk akan memiliki warna dan tebal yang dapat diatur oleh pengguna di dalam program.

III.4.4.2 Menandai garis lurus yang terdeteksi

Untuk menandai garis lurus yang terdeteksi sebelumnya pada sub sub bab III.4.3.4, perbedaan antara titik dapat digunakan untuk mengevaluasi garis f(x,y) di titik tengah. Metode ini memungkinkan untuk aritmetika bilangan bulat saja, yang umumnya lebih cepat dari pada menggunakan aritmetika titik mengambang. Untuk menentukan titik dari garis pada citra, maka digunakan algoritma dari Bresenham [27] berikut:

1. Diketahui koordinat awal dan koordinat akhir garis yang terdeteksi.

2. Menggunakan persamaan 3.9 untuk mendapatkan keputusan.

∆𝐷 = (𝑥1 − 𝑥0) + 2(𝑦1 − 𝑦0) (3.9) 3. Jika ∆𝐷 adalah bilangan positif, maka ∆𝐷 = 2(𝑦1 − 𝑦0) − (𝑥1

𝑥0) dan koordinat Y yang akan di plot maju satu langkah, jika negatif maka ∆𝐷 = (𝑥1 − 𝑥0) + 4(𝑦1 − 𝑦0).

4. Kemudian dengan persamaan 3.10 lakukan perulangan dari titik 𝑥0

hingga 𝑥1. Sehingga akan dihasilkan koordinat X dan Y pada pixel 𝑓(𝑥, 𝑦) = 𝐴𝑥 + 𝐵𝑦 + 𝐶 (3.10) dimana A = ∆𝑦; B = -∆𝑥; C = (∆𝑥)b; b = intersepsi koordinat y

III.4.4.3 Mengidentifikasi Posisi Sudut Robot Ke Tengah Gawang Dari hasil proses mendeteksi garis lurus pada gawang yang di jelaskan pada sub bab III.4.3.4, maka dengan menghitung selisih nilai koordinat y dari ujung-ujung garis, dapat diketahui posisi robot dari gawang dengan menunjukkan status robot sedang berada di kiri atau kanan atau

Gambar

Gambar 2.1  Gawang Standar Kontes Robot Sepak Bola Beroda Indonesia[1]
Gambar 2.2  Lini masa sejarah computer vision [6]
Gambar 2.4 Deskripsi Komponen Model Warna HSV [13]
Gambar 2.5  Hasil dari aplikasi closing morphology filter[16]
+7

Referensi

Garis besar

Dokumen terkait

Dibandingkan dengan kadar logam berat Pb tersuspensi di perairan Delta Berau pada April 2007 dan Muara Sungai Banjir Kanal Barat Semarang pada September 2005 kadar logam berat

Bisa diketik sesuai kebutuhan Bagian metode penelitian menjelaskan secara rinci setiap kegiatan yang dilakukan untuk menjawab tujuan yang sudah diuraik- an pada bab I. Bagian ini

Dimana melalui website ini diharapkan bisa menjadi sarana atau media untuk mempublikasikan informasi- informasi tentang SMA Hang Tuah Belawan.. Situs ini diperuntukkan bagi siapa saja

Hasil penelitian juga menunjukkan, peningkatan dosis urea dan dosis zeolit hingga sesuai dosis anjuran masih diikuti dengan peningkatan efisiensi pemupukan N sehingga

Dalam host virtual berdasar alamat IP, server HTTP akan memberi tanggapan permintaan koneksi HTTP pada alamat IP tertentu secara berbeda dengan tanggapan permintaan koneksi HTTP

Kelemahan dari metode permukaan respon adalah diketahui terlebih dahulu variabel bebas yang digunakan harus signifikan (kurang dari ) mempengaruhi variabel respon

man analysis. Dalam hal ini konselor bersama klien bersama-sama menganalisis kapabilitas, minat dan tempramen klien. Model bimbingan yang kedua ialah, model bimbingan

Tiga aspek yang dikaji ialah tahap perlaksanaan peraturan keselamatan bengkel, tahap pengetahuan dalam mengendalikan mesin dan alatan tangan, dan kepekaan terhadap