You Only Look Once

perangkat lunak untuk pemelajaran mesin

You Only Look Once (YOLO) adalah serangkaian sistem deteksi objek langsung (real-time) berdasarkan Jaringan saraf konvolusional. Sejak pertama kali diperkenalkan oleh Jasoph Redmon dkk. pada tahun 2015,[1] YOLO terus mengalami beberapa iterasi dan perbaikan, menjadikannya sebagai salah satu kerangka kerja deteksi objek yang paling populer.[2]

You Only Look Once
Tipeperangkat lunak dan Pustaka perangkat lunak Edit nilai pada Wikidata
Versi pertama2015
Versi stabil
8.3.39 (28 November 2024) Edit nilai pada Wikidata
Genre
LisensiAffero General Public License (en) Terjemahkan
GNU Affero General Public License, version 3.0 (en) Terjemahkan Edit nilai pada Wikidata
Sumber kode
Informasi tambahan
Situs webpjreddie.com/darknet/yolo/
Sunting di Wikidata Sunting di Wikidata • Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini
Objek yang dideteksi dengan modul Deep Neural Network OpenCV menggunakan model YOLOv3 yang dilatih pada dataset COCO yang mampu mendeteksi objek dari 80 kelas umum

Nama "You Only Look Once" atau yang dalam bahasa Indonesia diterjemahkan menjadi "Anda Hanya Melihat Sekali" mengacu pada fakta bahwa algoritma tersebut hanya memerlukan satu lintasan propagasi maju melalui jaringan saraf untuk membuat prediksi, tidak seperti teknik berbasis proposal wilayah terdahulu seperti Jaringan Syaraf Tiruan Berbasis Wilayah (R-CNN) yang memerlukan ribuan lintasan untuk satu gambar.

Gambaran

sunting

Dibandingkan dengan metode terdahulu, seperti R-CNN dan OverFeat,[3] YOLO menerapkan satu jaringan saraf ke seluruh gambar, alih-alih menerapkan model ke gambar di beberapa lokasi dan skala. Jaringan ini membagi gambar menjadi beberapa wilayah dan memprediksi kotak pembatas dan probabilitas untuk setiap wilayah. Kotak pembatas ini diberi bobot berdasarkan probabilitas yang diprediksi.

OverFeat

sunting

OverFeat adalah model terdahulu yang berpengaruh untuk klasifikasi dan lokalisasi objek secara simultan.[3][4] Arsitekturnya adalah sebagai berikut:

  • Melatih jaringan saraf untuk klasifikasi gambar saja ("jaringan yang dilatih untuk klasifikasi"). Ini bisa seperti AlexNet.
  • Lapisan terakhir jaringan yang dilatih dihapus, dan untuk setiap kelas objek yang memungkinkan, inisialisasi modul jaringan pada lapisan terakhir ("jaringan regresi"). Jaringan dasar dibekukan parameternya. Jaringan regresi dilatih untuk memprediksi koordinat   dua sudut kotak pembatas objek.
  • Selama waktu inferensi, jaringan yang dilatih klasifikasi dijalankan pada gambar yang sama pada berbagai tingkat pembesaran dan pemotongan. Untuk masing-masing, jaringan tersebut mengeluarkan label kelas dan probabilitas untuk label kelas tersebut. Setiap keluaran kemudian diproses oleh jaringan regresi kelas yang sesuai. Hal ini menghasilkan ribuan kotak pembatas dengan label kelas dan probabilitas. Kotak-kotak ini digabungkan hingga hanya tersisa satu kotak dengan satu label kelas.

Seri YOLO terdiri dari dua bagian. Bagian asli berisi YOLOv1, v2, dan v3, yang semuanya dirilis di situs web yang dikelola oleh Joseph Redmon.[5]

YOLOv1

sunting

Algoritma YOLO asli, yang diperkenalkan pada tahun 2015,[1] membagi gambar   menjadi kisi sel. Jika bagian tengah kotak pembatas objek jatuh ke dalam sel kisi, sel tersebut dikatakan "berisi" objek tersebut. Setiap sel kisi memprediksi kotak pembatas B dan skor keyakinan untuk kotak tersebut. Skor keyakinan ini mencerminkan seberapa yakin model tersebut bahwa kotak tersebut berisi objek dan seberapa akurat model tersebut memperkirakan kotak tersebut.

Secara lebih rinci, jaringan melakukan operasi konvolusional yang sama pada setiap   patch. Output jaringan pada setiap patch adalah tuple sebagai berikut: di mana

  •   adalah probabilitas bersyarat (conditional) bahwa sel tersebut berisi objek kelas  , bersyarat pada sel yang berisi setidaknya satu objek.
  •   adalah koordinat pusat, lebar, dan tinggi ke-  kotak pembatas yang diprediksi yang berpusat di dalam sel. Beberapa kotak pembatas diprediksi untuk memungkinkan setiap prediksi mengkhususkan diri dalam satu jenis kotak pembatas. Misalnya, objek ramping mungkin diprediksi oleh   sementara benda-benda yang kuat mungkin diprediksi oleh  .
  •   adalah prediksi irisan atas gabungan (IoU) dari setiap kotak pembatas dengan dasar kebenarannya yang bersesuaian.

Arsitektur jaringan memiliki 24 lapisan konvolusional diikuti oleh 2 lapisan yang terhubung penuh.

Selama pelatihan, untuk setiap sel, jika berisi kotak pembatas kebenaran dasar, maka hanya kotak pembatas yang diprediksi dengan IoU tertinggi dengan kotak pembatas kebenaran dasar yang digunakan untuk penurunan gradien. Secara konkret, misalkan   menjadi kotak pembatas yang diprediksi, dan misalkan   menjadi label kelas kebenaran dasar, maka   dilatih dengan penurunan gradien untuk mendekati kebenaran dasar,   dilatih menuju  , lainnya   dilatih menuju nol.

Jika sel tidak mengandung kebenaran dasar, maka hanya   dilatih dengan penurunan gradien untuk mendekati nol.

YOLOv2

sunting

Dirilis pada tahun 2016, YOLOv2 (juga dikenal sebagai YOLO9000)[6][7] menyempurnakan model asli dengan menggabungkan normalisasi batch, pengklasifikasi resolusi yang lebih tinggi, dan menggunakan kotak jangkar untuk memprediksi kotak pembatas. Model ini dapat mendeteksi lebih dari 9000 kategori objek. Model ini juga dirilis di GitHub di bawah lisensi Apache 2.0.[8]

YOLOv3

sunting

YOLOv3, diperkenalkan pada tahun 2018, hanya berisi perbaikan "bertahap", termasuk penggunaan jaringan backbone yang lebih kompleks, beberapa skala untuk deteksi, dan fungsi kerugian yang lebih canggih.[9]

YOLOv4 dan seterusnya

sunting

Versi-versi YOLO berikutnya (v4, v5, dst.)[10][11][12][13] telah dikembangkan oleh berbagai peneliti, yang selanjutnya meningkatkan kinerja dan memperkenalkan fitur-fitur baru. Versi-versi ini tidak secara resmi dikaitkan dengan penulis YOLO asli, tetapi dibangun berdasarkan karya mereka.[5] Hingga tahun 2023, telah tersedia YOLOv8.[2]

Lihat juga

sunting

Referensi

sunting
  1. ^ a b Redmon, Joseph; Divvala, Santosh; Girshick, Ross; Farhadi, Ali (2016-05-09). "You Only Look Once: Unified, Real-Time Object Detection". arΧiv:1506.02640 [cs.CV]. 
  2. ^ a b Terven, Juan; Córdova-Esparza, Diana-Margarita; Romero-González, Julio-Alejandro (2023-11-20). "A Comprehensive Review of YOLO Architectures in Computer Vision: From YOLOv1 to YOLOv8 and YOLO-NAS". Machine Learning and Knowledge Extraction (dalam bahasa Inggris). 5 (4): 1680–1716. arXiv:2304.00501 . doi:10.3390/make5040083 . ISSN 2504-4990. 
  3. ^ a b Sermanet, Pierre; Eigen, David; Zhang, Xiang; Mathieu, Michael; Fergus, Rob; LeCun, Yann (2014-02-23), OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks, arXiv:1312.6229  
  4. ^ sermanet (2024-09-09), sermanet/OverFeat, diakses tanggal 2024-09-15 
  5. ^ a b "YOLO: Real-Time Object Detection". pjreddie.com. Diakses tanggal 2024-09-12. 
  6. ^ Redmon, Joseph; Farhadi, Ali (2016-12-25). "YOLO9000: Better, Faster, Stronger". arΧiv:1612.08242 [cs.CV]. 
  7. ^ "YOLOv2: Real-Time Object Detection". pjreddie.com. Diakses tanggal 2024-09-12. 
  8. ^ Rémy, Philippe (2024-09-05), philipperemy/yolo-9000, diakses tanggal 2024-09-12 
  9. ^ Redmon, Joseph; Farhadi, Ali (2018-04-08). "YOLOv3: An Incremental Improvement". arΧiv:1804.02767 [cs.CV]. 
  10. ^ Bochkovskiy, Alexey; Wang, Chien-Yao; Liao, Hong-Yuan Mark (2020-04-22). "YOLOv4: Optimal Speed and Accuracy of Object Detection". arΧiv:2004.10934 [cs.CV]. 
  11. ^ Wang, Chien-Yao; Bochkovskiy, Alexey; Liao, Hong-Yuan Mark (2021-02-21). "Scaled-YOLOv4: Scaling Cross Stage Partial Network". arΧiv:2011.08036 [cs.CV]. 
  12. ^ Li, Chuyi; Li, Lulu; Jiang, Hongliang; Weng, Kaiheng; Geng, Yifei; Li, Liang; Ke, Zaidan; Li, Qingyuan et al. (2022-09-07). "YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications". arΧiv:2209.02976 [cs.CV]. 
  13. ^ Wang, Chien-Yao; Bochkovskiy, Alexey; Liao, Hong-Yuan Mark (2022-07-06). "YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors". arΧiv:2207.02696 [cs.CV]. 

Pranala luar

sunting