YOLOv4 : Teknologi Terbaru dalam Perkembangan Algoritma Object Detection

Haiqal Muhamad Alfarisi
6 min readMay 26, 2020

Algoritma Object Detection YOLO sudah masuk ke versi keempat. Keberhasilan dalam versi-versi sebelumnya membuat banyak developer dan komunitas sangat tertarik dan tidak sabar ingin mencoba teknologi terbaru dan hasil yang pasti lebih cepat dan akurat dari versi sebelumnya. YOLOv4 dirilis pada tanggal 24 April 2020 oleh 3 orang authors, yaitu Alexey Bochkovskiy, yang membangun YOLO versi windows, Chien-Yao Wang, and Hong-Yuan Mark Liao. Bagi yang mengikuti perkembangan YOLO dari versi pertama mungkin bertanya-tanya, kemanakah bapak algoritma YOLO, Joseph Redmond?

https://twitter.com/pjreddie/status/1230524770350817280

Joseph Redmond dan Ali Farhadi memutuskan untuk berhenti melakukan penelitian Computer Vision karena banyaknya dampak negatif yang terjadi seperti digunakan untuk keperluan militer dan masalah pelanggaran privasi seseorang. Walaupun seperti itu, Algoritma YOLO masih terus berkembang dan rilislah versi terbaru dari YOLO yang dibangun oleh 3 authors yang disebutkan diatas.

Main Goal YOLOv4

Dibandingkan dengan YOLOv3, Pada YOLOv4 ini mengalami peningkatan yang sangat signifikan dalam hal kecepatan dan performance. Tujuan utama dari YOLOv4 ini adalah merancang operasi pendeteksian objek yang cepat dan optimisasi untuk komputasi paralel. YOLOv4 berharap objek yang didesain dapat digunakan dengan mudah untuk training dan testing. Contohnya, jika developer menggunakan performa GPU untuk proses training dan testing maka akan menghasilkan hasil deteksi objek yang real time, kualitas tinggi dan hasil prediksi yang meyakinkan, YOLOv4 berjalan dua kali lebih cepat daripada EfficientDet dengan performance yang sama dan meningkatkan AP dan FPS sebesar 10% dan 12% dibandingkan dengan YOLOv3, sebagaimana hasil dari YOLOv4 dapat dilihat pada grafik dibawah.

https://arxiv.org/pdf/2004.10934.pdf

YOLOv4 Object Detector Architecture

https://arxiv.org/pdf/2004.10934.pdf

Detector Modern biasanya terdiri dari 2 bagian, yaitu Backbone yang sudah ditraining sebelumnya di ImageNet dan Head (Neck) yang digunakan untuk memprediksi class dan bounding box setiap objek. Untuk detector yang berjalan dengan performa GPU, Jenis Backbone yang dapat digunakan adalah VGG, ResNet, ResNeXt sedangkan jika hanya menggunakan CPU, jenis Backbone yang bisa digunakan adalah SqueezeNet, MobileNet atau ShuffleNet. Adapun pada bagian Head, dapat dikategorikan menjadi 2 bagian, yaitu One Stage Detector dan Two Stage Detector. Pada One Stage Detector bisa juga disebut dengan Dense Prediction, contohnya adalah YOLO, SSD dan RetinaNet sedangkan Two Stage Detector atau bisa disebut juga Sparse Prediction contohnya adalah Fast R-CNN, Faster R-CNN dan series lainnya. Pada dasarnya bagian Neck merupakan subset dari Backbone, dimana berfungsi untuk meningkatkan ketangguhan dari feature yang digunakan. Contoh dari Neck ini adalah Feature Pyramid Network (FPN), Path Aggregation Network (PAN), BiFPN dan NAS-FPN.

Selection of Architecture YOLOv4

Setelah diperkenalkan secara singkat bagaimana arsikektur object detector dan jenis-jenis pada setiap bagiannya, Apa arsitektur yang digunakan oleh YOLOv4 ? Arsitektur yang dipilih adalah pada Backbone: CSPDarknet53, Pada Neck: SPP , PAN [49] dan pada Head: YOLOv3, yang artinya merupakan dari Dense Prediction. Alasan pada Backbone memilih CSPDarknet53 adalah karena dapat memisahkan fitur konteks yang paling signifikan dan hampir tidak ada pengurangan kecepatan operasi jaringan network.

Bag of Freebies

Ini adalah istilah yang asing dari awal algoritma YOLO dikembangkan, Kita dapat melakukan beberapa optimasi pada pada metode training untuk menghasilkan akurasi yang lebih baik tanpa meningkatkan biaya inferensi (inference cost). Ketiga Authors menyebut strategi pelatihan ini dengan nama “Bag of Freebies”. Kata Bag mengacu pada serangkaian metode atau strategi, dan Freebies berarti bahwa akurasi inferensi akan naik tanpa harus mempengaruhi beban di hardware.

BoF for Backbone

Authors menggunakan Data Augmentation yang dimaksudkan untuk meningkatkan variabilitas pada input images, sehingga model deteksi objek yang dirancang memiliki ketahanan yang lebih tinggi untuk images yang diperoleh dari environtment yang berbeda. YOLOv4 menggunakan BoF untuk Backbone yaitu CutMix and Mosaic Data Augmentation, DropBlock Regularization, Class Label Smoothing.

shorturl.at/IY025

BoF for Detector

Pada detector, authors menggunakan CIoU-loss, CmBN, DropBlock regularization, Mosaic data augmentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler, Optimal hyperparameters, Random training shapes.

Bag of Specials

Kata “Specials” merujuk pada mendapatkan sesuatu yang bernilai dengan diskon atau harga yang murah. Secara analogi dapat dikatakan sebagai serangkaian modul yang hanya meningkatkan inference cost dengan jumlah yang kecil tetapi secara signifikan meningkatkan keakuratan deteksi objek. Hal itulah yang dimaksud dengan “Bag of Specials”.

BaS for Backbone

Jenis-jenis BaS yang digunakan pada backbone adalah Mish Activation, Cross-stage Partial Connections (CSP), Multi input Weighted Residual Connections (MiWRC).

BaS for Detector

Jenis-jenis BaS yang digunakan pada Detector adalah Mish Activation, SPP-block, SAM-block, PAN Path-Aggretation Block, DIoU NMS.

Additional Improvement

Agar detektor yang dirancang lebih cocok digunakan untuk training pada single GPU, Authors membuat desain dan beberapa improvement seperti :

  1. Memperkenalkan metode data augmentation baru yaitu Mosaic dan Self-Adversarial Training (SAT).
  2. Memilih hyper-parameters yang optimal ketika menerapkan algoritma generic.
  3. Memodifikasi beberapa metode existing untuk membuat desain lebih cocok untuk meningkatkan efisiensi proses training dan deteksi dengan memodifikasi beberapa metode yaitu modified SAM, modified PAN dan Cross Mini-Batch Normalization (CmBN).

Mosaic merupakan metode data augmentation yang baru dengan menggabungkan 4 training images. Sementara ketika BoF pada Backbone menggunakan CutMix hanya bisa menggabungkan 2 training sehingga memungkinkan deteksi objek bekerja diluar konteks normalnya. Selain itu, Batch Normalization juga bisa mengkakulasi aktivasi dari 4 images berbeda pada setiap layer. Ini secara signifikan mengurangi kebutuhan ukuran mini-batch yang besar.

Mosaic represents a new method of data augmentation.

Dalam memilih hyperparameter yang optimal, salah satu object detector yang paling optimal adalah dengan menggunakan MS Coco Object Detector Dataset. Secara default pengaturan hyperparameternya adalah Training Steps : 500,500; Learning Rate : 0.01, Momentum dan Weight Decay adalah 0.9 dan 0.005. Semua proses dilakukan dengan single GPU untuk training dimana ukuran Batch Size adalah 64 ketika Mini-Batch Size adalah 8 atau 4 tergantung dari spesifikasi dari GPU. Lengkapnya pengaturan ini bisa dilihat di file Yolov4.cfg pada folder cfg.

Results

Comparison of the speed and accuracy of different object detectors. (Some articles stated the FPS of their detectors for only one of the GPUs: Maxwell/Pascal/Volta)

Pada gambar grafik diatas merupakan hasil dari perbandingan YOLOv4 dengan algoritma atau teknologi yang lain untuk Object Detection. Hasil perbandingan ini berdasarkan object detectors GPU yang berbeda yaitu Maxwell, Pascal dan Volta. Dari grafik diatas pula dapat disimpulkan bahwa YOLOv4 sangat superior untuk menjadi yang tercepat dan paling akurat dari segi kecepatan dan akurasi dalam object detection.

Summary

YOLOv4 menawarkan detector yang lebih cepat (FPS) dan lebih akurat (Menggunakan MS Coco) dibandingkan semua detector alternatif yang ada. MS Coco dapat di training dan digunakan pada GPU konvensional dengan 8–16 GB VRAM memungkinkan untuk digunakan di YOLOv4 ini. YOLOv4 sudah memvefirikasi sejumlah besar feature, dan memilih menggunakan beberapa fitur tersebut untuk meningkatkan akurasi deteksi dan klasifikasi objek. Fitur-fitur ini dapat digunakan sebagai pembelajaran untuk studi dan pengembangan di masa depan.

Full Stories :

  1. Mengenal Perbedaan Artificial Intelligence, Machine Learning, Neural Network & Deep Learning
  2. Mengenal Perbedaan Artificial Intelligence, Machine Learning, Neural Network & Deep Learning (Part 2)
  3. Mengenal Perbedaan Artificial Intelligence, Machine Learning, Neural Network & Deep Learning (Part 3)
  4. Darknet atau Darkflow, Dua Framework Algoritma Deep Learning YOLO
  5. You Only Look Once (YOLO) Algoritma Deep Learning Object Detection Terbaik.
  6. Pengaruh CPU dan GPU dalam Implementasi Algoritma Deep Learning (YOLO).
  7. Implementasi Deep Learning YOLO dalam Mendeteksi Objek Gambar, Webcam dan Video.
  8. YOLOv4 : Teknologi Terbaru dalam Perkembangan Algoritma Object Detection
  9. Mengenal MSCOCO Dataset dalam Penerapan di Algoritma Object Detection YOLO
  10. Mempersiapkan dan Melatih Dataset untuk Mendeteksi Custom Object dengan YOLOv4 (Part 1)
  11. Mempersiapkan dan Melatih Dataset untuk Mendeteksi Custom Object dengan YOLOv4 (Part 2)
  12. Perhitungan Deteksi Object pada Gambar dan Video dengan YOLOv4 (Counting Objects)
  13. Deteksi Masker (Face Mask Detection) dengan YOLOv4 dan Darknet
  14. Klasifikasi dan Perhitungan Kendaraan dengan Algoritma Deep Learning YOLOv4 dan Darknet.

--

--

Haiqal Muhamad Alfarisi

System Analyst at FIFGROUP. I am a graduate of Gunadarma University who is interested in machine learning and deep learning.