0% menganggap dokumen ini bermanfaat (0 suara)
88 tayangan15 halaman

Object Detection Menggunakan YOLO

Diunggah oleh

reza
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
88 tayangan15 halaman

Object Detection Menggunakan YOLO

Diunggah oleh

reza
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 15

Pengolahan Citra Digital

( GD5104 )

Object Detection Menggunakan YOLOv5

Oleh:
Mochamad Reza Dwi Pranata 25123001
Muhammad Fadli Nugraha 25123002
Riki Purnama Putra 25123301

PROGRAM STUDI MAGISTER


TEKNIK GEODESI DAN GEOMATIKA
INSTITUT TEKNOLOGI BANDUNG
2024
Daftar Isi

Daftar Isi ................................................................................................................................. i


Object Detection .................................................................................................................... 1
Convolutional Neural Network .............................................................................................. 1
YOLO .................................................................................................................................... 3
Modul Penggunaan Yolo ....................................................................................................... 4

i
Object Detection
Object detection merupakan salah satu cabang penting dalam bidang computer vision yang
bertujuan untuk mengidentifikasi dan menentukan lokasi objek-objek dalam gambar atau video.
Teknik object detection digunakan dalam computer vision untuk classification, localization dan
segmentation dari objek dalam suatu citra atau video (Diwan et al., 2023). Image classification
merupakan proses klasifikasi citra atau objek pada citra ke dalam kategori yang telah
ditentukan. Object localization merupakan proses untuk identifikasi dari posisi sebenarnya
untuk satu atau lebih objek menggunakan bounding boxes. Bounding boxes membentuk
geometri persegi empat yang mengelilingi objek yang dideteksi. Image segmentation
merupakan proses partisi citra ke dalam beberapa segmen dimana satu segmennya dapat terdiri
dari objek utuh atau bagian dari objek. Berdasarkan ketiga pengertian di atas, object detection
merupakan suatu proses classification dan localization untuk satu atau beberapa objek dengan
memanfaatkan supervised algorithm pada labelled training set dalam ukuran besar.
Terdapat berbagai macam algoritma untuk deteksi objek yang berkembang saat ini, di antaranya
Region-based Convolutional Neural Network (R-CNN), Fast R-CNN, dan Faster R-CNN.
Selain itu terdapat model deteksi objek yang cukup terkenal karena kecepatan dan akurasinya,
yaitu You Only Look Once (YOLO). Deteksi objek atau biasa disebut dengan object detection
adalah suatu proses yang digunakan untuk menentukan keberadaan objek tertentu dalam suatu
citra digital. Proses deteksi dapat dilakukan dengan berbagai macam metode yang pada
dasarnya melakukan pembacaan fitur-itur dari seluruh objek pada citra input. Fitur dari objek
pada citra akan dibandingkan dengan fitur dari objek referensi atau template lalu dibandingkan
dan ditentukan apakah objek yang dideteksi termasuk objek yang ingin dideteksi atau tidak
(Nagataries et al., 2012).
Menurut Koeshardianto (2014), “Pencocokan objek merupakan sebuah teknik yang digunakan
untuk menyamakan citra objek asli dengan wilayah objek pada citra apakah memiliki kemiripan
terhadap citra objek asli” (p. 54). Teknik ini sangat berguna untuk mendeteksi objek dan
mengidentifikasi objek.
Convolutional Neural Network
Convolutional Neural Network (CNN) adalah salah satu jenis neural network yang biasa
digunakan pada data image. CNN bisa digunakan untuk mendeteksi dan mengenali object pada
sebuah image. CNN adalah sebuah teknik yang terinspirasi dari cara mamalia — manusia,
menghasilkan persepsi visual. Secara garis besar Convolutional Neural Network (CNN) tidak
jauh beda dengan neural network biasanya. CNN terdiri dari neuron yang memiliki weight, bias
dan activation function. Convolutional layer juga terdiri dari neuron yang tersusun sedemikian
rupa sehingga membentuk sebuah filter dengan panjang dan tinggi (pixels). Secara garis
besarnya, CNN memanfaatkan proses konvolusi dengan menggerakan sebuah kernel konvolusi
(filter) berukuran tertentu ke sebuah gambar, komputer mendapatkan informasi representatif
baru dari hasil perkalian bagian gambar tersebut dengan filter yang digunakan.

1
Arsitektur dari CNN dibagi menjadi 2 bagian besar, Feature Extraction Layer dan Fully-
Connected Layer (MLP).
• Feature Extraction Layer
Proses yang terjadi pada bagian ini adalah melakukan “encoding” dari sebuah image menjadi
features yang berupa angka-angka yang merepresentasikan image tersebut (Feature Extraction).
Feature extraction layer terdiri dari dua bagian yaitu Convolutional Layer dan Pooling Layer.
Namun kadang ada beberapa riset/paper yang tidak menggunakan pooling.
- Convolutional Layer
Convolutional layer terdiri dari neuron yang tersusun sedemikian rupa sehingga
membentuk sebuah filter dengan panjang dan tinggi (pixel). Sebagai contoh , layer
pertama pada feature extraction layer adalah conv. layer dengan ukuran 5x5x3. Panjang
5 pixel, tinggi 5 pixel, dan tebal/jumlah 3 buah sesuai dengan channel dari gambar
tersebut.
Ketiga filter ini akan digeser keseluruhan bagian dari gambar. Setiap pergeseran akan
dilakukan operasi “dot” antara input dan nilai dari filter tersebut sehinga menghasilkan
sebuah output atau biasa disebut sebagai actvation map atau feature map.

- Pooling Layer
Polling layer biasanya berada setelah conv. layer. Pada prinsipnya pooling layer terdiri
dari sebuah filter dengan ukuran dan stride tertentu yang bergeser pada seluruh area
feature map. Pooling yang biasa digunakan adalah Max Pooling dan Average Pooling.
Tujuan dari penggunaan pooling layer adalah mengurangi dimensi dari feature map
(downsampling), sehingga mempercepat komputasi karena parameter yang harus di
update semakin sedikit dan mengatasi overfitting.
Hal terpenting dalam pembuatan model CNN adalah dengan memilih banyak jenis
lapisan pooling. Hal ini dapat menguntungkan kinerja model (Lee, Gallagher, & Tu,
2015). Lapisan pooling bekerja di setiap tumpukan feature map dan mengurangi
ukurannya. Bentuk lapisan pooling yang paling umum adalah dengan menggunakan
filter berukuran 2x2 yang diaplikasikan dengan langkah sebanyak 2 dan kemudian
beroperasi pada setiap irisan dari input. Bentuk seperti ini akan mengurangi feature map
hingga 75% dari ukuran aslinya.

2
• Fully Connected Layer (MLP)
Feature map yang dihasilkan dari feature extraction masih berbentuk multidimensional array,
sehingga harus melakukan “flatten” atau reshape feature map mejadi sebuah vector agar bisa
digunakan sebagai input dari fully-connected layer.
Lapisan Fully-connected adalah lapisan dimana semua neuron aktivitas dari lapisan
sebelumnya terhubung semua dengan neuron di lapisan selanjutnya seperti hal nya jaringan
syaraf tiruan bisa. Setiap aktivitas dari lapisan sebelumnya perlu diubah menjadi data satu
dimensi sebelum dapat dihubungkan ke semua neuron di lapisan Fully-Connected.
Lapisan Fully-Connected biasanya digunakan pada metode Multi lapisan Perceptron dan
bertujuan untuk mengolah data sehingga bisa diklasifikasikan. Perbedaan anatar lapisan Fully-
Connected dan lapisan konvolusi biasa dalah neuron di lapisan konvolusi terhubung hanya ke
daerah tertentu pada input. Sementara lapisan Fully-Connected memiliki neuron yang secara
keseluruhan terhubung. Namun, kedua lapisan tersebut masih mengoprasikan produk dot,
sehinga fungsinya tidak begitu berbeda.
YOLO
Pada dasarnya, YOLO (You Only Look Once) adalah sebuah sistem deteksi objek real-time
yang sangat cepat dan akurat. YOLO memproses gambar dalam satu kali iterasi melalui
jaringan saraf sehingga disebut “You Only Look Once”. YOLO dikembangkan oleh Joseph
Redmon, Santosh Divvala, Ross Girshick, dan Ali Farhadi pada tahun 2015.
YOLO atau You Only Look Once adalah algoritma deteksi objek waktu nyata yang populer.
Algoritma ini menggunakan satu jaringan saraf untuk melakukan klasifikasi dan prediksi kotak
pembatas (bounding boxes) untuk objek yang terdeteksi. Berbeda dengan pendekatan
sebelumnya yang memerlukan dua jaringan saraf terpisah untuk deteksi dan klasifikasi, YOLO
menggabungkannya menjadi satu. Ini memungkinkan YOLO berjalan lebih cepat daripada
pendekatan sebelumnya dan dapat digunakan untuk aplikasi yang memerlukan deteksi waktu
nyata.
Berikut adalah beberapa poin penting tentang YOLO:
• YOLO membagi gambar menjadi sel-sel berukuran S×S.
• Setiap sel bertanggung jawab untuk mendeteksi objek yang berada di tengah sel
tersebut.
• Setiap sel memprediksi B kotak pembatas dan skor kepercayaan untuk setiap kotak.
• Kotak pembatas terdiri dari lima angka: posisi x, posisi y, lebar, tinggi, dan skor
kepercayaan.
• YOLO dapat digunakan untuk deteksi objek dalam waktu nyata dengan kecepatan
hingga 45 frame per detik.
Jadi, YOLO adalah algoritma yang sangat berguna untuk deteksi objek dalam berbagai aplikasi,
termasuk pengenalan objek pada gambar dan video secara real-time.

3
Modul Penggunaan Yolo
Pada bagian ini, berisi penjelasan tahap-tahap dalam melakukan object detection menggunakan
Yolo. Proses ini dilakukan menggunakan google colab dan perangkat lunak visual studio code
untuk melakukan perubahan data yang akan dijelaskan dalam modul ini. Modul dimulai dari
proses menambahkan dataset baru yang akan digunakan untuk training data pada gambar yang
akan dilakukan object detection.
No. Penjelasan
1 Akses laman yang menyediakan berbagai database yang dapat digunakan untuk
melakukan object detection pada gambar serta pada lama tersebut memungkinkan
kita untuk membuat database sendiri. Lama dapat diakses pada:
https://app.roboflow.com/
Lakukan registrasi akun, kemudian pilih “create new project”
2 Sediakan beberapa gambar yang akan digunakan sebagai database. Pada modul
kali ini menggunakan gambar pesawat sebagai database yang akan dibuat.
Beberapa contoh gambar yang digunakan adalah sebagai berikut:

3 Buatlah satu folder yang berisi gambar-gambar yang sudah disediakan agar
memudahkan dalam melakukan pengolahan terhadap database.

4 Lalukan upload gambar-gambar yang sudah disediakan pada laman roboflow. Pilih
“save and continue” untuk menyelesaikan proses upload dan melanjutkan ke tahap
pemberian label pada object.

5 Pilih “annotate images” untuk memulai proses pemberian label pada object yang
sudah diupload.

4
Pada tahap ini dapat dipilih proses pemberian label secara otomatis ataupun secara
manual. Modul ini akan melakukan pemberian label secara manual.
6 Setelah memilih label secara manual, selanjutnya kita dapat memulai pemberian
label dengan memilih “start annotating”.

Kemudian akan terbuka laman baru untuk memulai melakukan delineasi pada
object.
7 Selanjutnya pilih “bounding box tool” untuk memberi bounding pada object yang
kita miliki. Buatlah kotak pada object pesawat sehingga seluruh object pesawat
masuk ke dalam kotak.

Setelah membuat bounding box, langkah selanjutnya adalah menamakan object


tersebut. Pada modul ini, object diberi nama sebagai “airplane”. Lakukan langkah
yang sama untuk semua gambar.

8 Setelah membuat bounding box untuk semua object pesawat, selanjutnya pilih
tanda panah “back” pada pojok kiri layar untuk kembali ke tampilan awal.

5
Pada tampilan ini, dapat dilihat hasil gambar yang sudah dilakukan
pemberinamaan dan dilakukan pembuatan bounding box. Selanjutnya pilih “add
images to dataset”. Setelah itu dapat dilakukan pembagian jumlah data yang akan
dibagi ke dalam training, validation dan test. Selanjutnya pilih “add images”.
9

Setelah sukses menambahkan gambar ke dalam dataset, akan muncul menu


database dengan jumlah gambar seperti pada gambar di atas. Jika masuk ke menu
dataset tersebut, dapat dilihat gambar yang dijadikan sebagai training, validation
dan test data.

Kemudian pilih menu “generate” pada dashboard laman yang terlekat di kiri
laman.
10 Selanjutnya dapat dilakukan pembuatan model berdasarkan dataset yang sudah
dibuat. Pada menu ini juga kita dapat melakukan modifikasi dataset, salah satunya
adalah augmentasi data.

11 Proses augmentasi mengambil dataset yang kita miliki, lalu melakukan penyalinan
dataset yang dimiliki dan dilakukan perlakuan terhadap dataset yang kita miliki.

6
Dataset yang diambil dan dilakukan augmentasi adalah dataset yang berfungsi
sebagai training data, sedangkan validation data tidak mengalami augmentasi.
Berikut beberapa perlakuan yang dapat diberikan kepada dataset yang kita miliki
untuk meningkatkan jumlah dataset.

12 Pada modul kali ini dilakukan proses augmentasi “flip” pada dataset yang kita
miliki.

Proses augmentasi menggunakan flip dilakukan secara horisontal dan vertikal,


sehingga menghasilkan dua gambar baru yang digunakan sebagai dataset pada
model yang kita buat.
Setelah melakukan augmentasi, dataset yang awalnya berjumlah 10, bertambah
menjadi 24 gambar. Dengan menggunakan akun gratis pada roboflow, kita dapat
menaikan jumlah dataset yang kita miliki hingga 3x. Untuk mendapatkan jumlah
dataset lebih dari 3x, diperlukan langganan pada laman roboflow. Selanjutnya pilih
“create” untuk membuat model dari dataset.

7
13 Selanjutnya pilih menu “export dataset” untuk mengunduh dataset yang sudah kita
buat.

Dataset ini nantinya akan digunakan sebagai training terhadap model yang kita
buat. Dalam melakukan pengunduhan dataset, kita harus memilih format dataset
sesuai dengan versi YOLO yang akan kita gunakan. Pada modul ini, digunakan
YOLOv5, sehingga format dataset yang diunduh adalah seperti pada gambr di
bawah.

14 Setelah melakukan unduh dataset, pindahkan file dataset ke dalam folder tersendiri
agar memudahkan proses pengerjaan.

8
Isi folder adalah sebagai berikut. Setelah itu, lakukan penyatuan pada folder test,
train dan valid menjadi satu folder baru dengan format .zip. Pada contoh kali ini,
nama folder yang digunakan adalah “airplane.zip”.
15 Searching di google dengan kata kunci “yolov5” dan pilih link yang mengarah ke
github dari darknet selaku pengembang Yolov5. Kemudia pilih “open in Colab”.

16 Setelah masuk ke laman Google Colab, pilih pada menu “file” kemudian pilih
“save a copy in Drive” untuk menyalin script dari Google Colab milik darknet ke
Google Colab milik kita.

17 Pada menu “Setup” pilih run untuk menjalankan script. Proses ini bertujuan untuk
melakukan cloning data github milik darknet.

18 Setelah berhasilkan menjalankan script setup, akan muncul folder yolov5 pada
panel di sebelah kiri. Selanjutnya adalah melakukan upload file training dataset
yang sudah kita buat.

9
19 Upload file dapat dilakukan dengan klik “upload to session storage”. Tampilan
folder setelah dilakukan upload file akan terlihat seperti gambar.

20 Scroll Google Colab hingga menemukan menu “Select YOLOv5 logger”.


Kemudian perhatikan pada kalimat yang diberikan highlight. Pada model tersebut
menggunakan coco128.yaml sebagai dataset yang dilakukan training. Karena kita
menggunakan dataset milik kita sendiri, sehingga perlu dilakukan perubahan pada
data tersebut.

21 Sebelum melakukan unduh file “coco.128.yaml”, pilih menu “+ Code” untuk


menambahkan script untuk melakukan unzip dataset yang telah kita upload pada
tahap sebelumnya. Jalankan script tersebut. Script yang digunakan adalah:
!unzip “/content/ariplane.zip”

22 Pada menu folder yang berada di kiri panel Google Colab, cari lokasi dari file
coco128.yaml yang berada pada folder yolov5 > data. Kemudian unduh file
tersebut dengan cara klik tanda titik tiga pada samping kanan file data. Pindahkan

10
data tersebut ke folder yang telah dibuat pada langkah 14 untuk memudahkan
pengerjaan.

23 Pilih file “data” dan “coco128” kemudian buka kedua file tersebut menggunakan
Visual Studio Code. Langkah selanjutnya adalah melakukan perubahan pada file
“data” sehingga menyamai dengan file “coco128” sehingga dapat dilakukan
running pada dataset yang sudah kita buat sebelumnya.

24 Hasil perubahan file “data” setelah dilakukan perubahan adalah seperti gambar
terlampir. Selanjutnya upload file “data” ke Google Colab pada folder yang sama
dengan tempat kita melakukan unduh file “coco128.yaml” sebelumnya.

25 Kemudian lakukan perubahan pada script sehingga seperti pada gambar terlampir.
Epoch merupakan perulangan pembacaan dataset yang kita miliki.

26 Hasil training dataset akan didapatkan nilai precision, recall dan mean average
precision (mAP) dari model dataset yang kita miliki.

11
27 Kemudian pindah ke menu “Detact”. Disini kita akan melakukan perubahan pada
script untuk membaca weights dari dataset yang sudah kita lakukan training.

File weights yang akan kita gunakan berada pada folder seperti gambar berikut:

28 Lakukan perubahan pada script menyerupai gambar terlampir.

29 Selanjutnya adalah melakukan upload gambar yang akan kita gunakan untuk object
detection. Upload gambar mengikuti langkah saat melakukan upload file
“airplane.zip” ke dalam folder di Google Colab. Gambar yang akan digunakan
adalah sebagai berikut:

30 Selanjutnya adalah melakukan upload gambar yang akan kita gunakan untuk object
detection. Upload gambar mengikuti langkah saat melakukan upload file
“airplane.zip” ke dalam folder di Google Colab.
31 Selanjutnya, dari script langkah 28, dilakukan perubahan pada source data yang
akan kita gunakan.

12
Setelah menjalankan script, dapat dilihat pada baris paling akhir yaitu folder
tempat penyimpanan hasil object detection yang sudah dilakukan.
32 Hasil akhir dapat ditampilkan pada Google Colab. Jika ingin melakukan unduh
gambar hasil object detection, dapat langsung melakukan unduh file seperti pada
langkah melakukan unduh file “coco128.yaml”.

Hasil dari object detection pada modul ini belum memperlihatkan hasil yang maksimal. Deteksi
objek masih belum akurat dikarenakan ada beberapa objek yang tidak terdeteksi. Berikut
merupakan hasil deteksi objek yang sudah dilakukan dengan menggunakan YOLOv5.

Dapat dilihat bahwa deteksi objek berupa pesawat dengan point of view berdasarkan foto aerial
masih belum menghasilkan deteksi objek yang akurat. Terlihat masih banyak pesawat yang
tidak terdeteksi pada gambar tersebut. Hal ini tentu dikarenakan oleh jumlah dataset yang
digunakan. Dimana pada prinsip pengerjaan deep learning akan tergantung dari jumlah data
yang digunakan. Semakin banyak jumlah data yang digunakan, maka semakin baik model
object detection yang dihasilkan.

13

Anda mungkin juga menyukai