Model dan platform AI

YOLOv9: Lompatan Besar dalam Deteksi Objek Waktu Nyata

mm
Tambahkan Unite.AI ke sumber pilihan Anda di Google

Deteksi objek telah mengalami kemajuan pesat dalam beberapa tahun terakhir berkat algoritma pembelajaran dalam seperti YOLO (You Only Look Once). Iterasi terbaru, YOLOv9, membawa perbaikan besar dalam akurasi, efisiensi, dan kemampuan dibandingkan dengan versi sebelumnya. Dalam posting ini, kita akan membahas inovasi yang membuat YOLOv9 menjadi state-of-the-art baru untuk deteksi objek waktu nyata.

Pengantar Singkat tentang Deteksi Objek

Sebelum membahas apa yang baru dengan YOLOv9, mari kita tinjau sekilas bagaimana deteksi objek bekerja. Tujuan deteksi objek adalah untuk mengidentifikasi dan melokalisasi objek dalam gambar, seperti mobil, orang, atau hewan. Ini adalah kemampuan kunci untuk aplikasi seperti mobil otonom, sistem pengawasan, dan pencarian gambar.

Detektor mengambil gambar sebagai input dan mengeluarkan kotak pembatas di sekitar objek yang terdeteksi, masing-masing dengan label kelas yang terkait. Dataset populer seperti MS COCO menyediakan ribuan gambar yang dilabeli untuk melatih dan mengevaluasi model ini.

Ada dua pendekatan utama untuk deteksi objek:

  • Detektor dua tahap seperti Faster R-CNN pertama-tama menghasilkan proposal wilayah, kemudian mengklasifikasikan dan memperbaiki batas wilayah. Mereka cenderung lebih akurat tetapi lebih lambat.
  • Detektor satu tahap seperti YOLO menerapkan model langsung ke gambar dalam satu langkah. Mereka menukar beberapa akurasi untuk waktu inferensi yang sangat cepat.

YOLO mempelopori pendekatan satu tahap. Mari kita lihat bagaimana itu telah berkembang melalui beberapa versi untuk meningkatkan akurasi dan efisiensi.

Ulasan Versi YOLO Sebelumnya

Keluarga model YOLO (You Only Look Once) telah berada di garis depan deteksi objek cepat sejak versi asli diterbitkan pada 2016. Berikut adalah tinjauan singkat tentang bagaimana YOLO telah berkembang melalui beberapa iterasi:

  • YOLOv1 mengusulkan model terpadu untuk memprediksi kotak pembatas dan kemungkinan kelas langsung dari gambar penuh dalam satu langkah. Ini membuatnya sangat cepat dibandingkan dengan model dua tahap sebelumnya.
  • YOLOv2 memperbaiki versi asli dengan menggunakan normalisasi batch untuk stabilitas yang lebih baik, kotak jangkar pada berbagai skala dan rasio aspek untuk mendeteksi ukuran yang berbeda, dan berbagai optimasi lainnya.
  • YOLOv3 menambahkan ekstraktor fitur baru yang disebut Darknet-53 dengan lebih banyak lapisan dan jalan pintas di antaranya, yang lebih lanjut meningkatkan akurasi.
  • YOLOv4 menggabungkan ide dari detektor objek lain dan model segmentasi untuk mendorong akurasi lebih tinggi sambil mempertahankan inferensi yang cepat.
  • YOLOv5 menulis ulang YOLOv4 sepenuhnya dalam PyTorch dan menambahkan ekstraktor fitur baru yang disebut CSPDarknet bersama dengan beberapa perbaikan lainnya.
  • YOLOv6 terus mengoptimalkan arsitektur dan proses pelatihan, dengan model yang dilatih sebelumnya pada dataset eksternal besar untuk meningkatkan kinerja lebih lanjut.

Jadi, ringkasnya, versi YOLO sebelumnya mencapai akurasi yang lebih tinggi melalui perbaikan arsitektur model, teknik pelatihan, dan pelatihan sebelumnya. Tetapi ketika model menjadi lebih besar dan kompleks, kecepatan dan efisiensi mulai menderita.

Kebutuhan akan Efisiensi yang Lebih Baik

Banyak aplikasi memerlukan deteksi objek untuk berjalan dalam waktu nyata pada perangkat dengan sumber daya terbatas. Ketika model menjadi lebih besar dan lebih intensif komputasi, mereka menjadi tidak praktis untuk diterapkan.

Misalnya, mobil otonom memerlukan deteksi objek pada tingkat bingkai yang tinggi menggunakan prosesor di dalam kendaraan. Kamera keamanan memerlukan deteksi objek pada umpan video mereka dalam perangkat keras yang tertanam. Ponsel dan perangkat konsumen lainnya memiliki keterbatasan daya dan termal yang sangat ketat.

Versi YOLO terbaru mendapatkan akurasi yang tinggi dengan jumlah parameter dan operasi tambah-kali (FLOPs) yang besar. Tetapi ini datang dengan biaya kecepatan, ukuran, dan efisiensi daya.

Misalnya, YOLOv5-L memerlukan lebih dari 100 miliar FLOPs untuk memproses satu gambar 1280×1280. Ini terlalu lambat untuk banyak kasus penggunaan waktu nyata. Trend model yang semakin besar juga meningkatkan risiko overfitting dan membuatnya lebih sulit untuk umum.

Jadi, untuk memperluas kemampuan deteksi objek, kita memerlukan cara untuk meningkatkan efisiensi – mendapatkan akurasi yang lebih baik dengan parameter dan komputasi yang lebih sedikit. Mari kita lihat teknik yang digunakan dalam YOLOv9 untuk mengatasi tantangan ini.

YOLOv9 – Akurasi yang Lebih Baik dengan Sumber Daya yang Lebih Sedikit

Peneliti di balik YOLOv9 fokus pada meningkatkan efisiensi untuk mencapai kinerja waktu nyata di berbagai perangkat. Mereka memperkenalkan dua inovasi kunci:

  1. Arsitektur model baru yang disebut General Efficient Layer Aggregation Network (GELAN) yang memaksimalkan akurasi sambil meminimalkan parameter dan FLOPs.
  2. Teknik pelatihan yang disebut Programmable Gradient Information (PGI) yang menyediakan gradien pembelajaran yang lebih andal, terutama untuk model yang lebih kecil.

Mari kita lihat bagaimana masing-masing kemajuan ini membantu meningkatkan efisiensi.

Arsitektur yang Lebih Efisien dengan GELAN

Arsitektur model itu sendiri sangat penting untuk menyeimbangkan akurasi dengan kecepatan dan penggunaan sumber daya selama inferensi. Jaringan saraf memerlukan kedalaman dan lebar yang cukup untuk menangkap fitur yang relevan dari gambar input. Tetapi terlalu banyak lapisan atau filter menyebabkan model menjadi lambat dan bengkak.

Penulis merancang GELAN secara khusus untuk mendapatkan akurasi maksimal dari arsitektur yang paling kecil.

GELAN menggunakan dua blok utama yang disusun bersama:

  • Blok Agregasi Lapisan Efisien – Ini mengagregatkan transformasi di seluruh cabang jaringan untuk menangkap fitur multi-skala secara efisien.
  • Blok Komputasi – Blok CSPNet membantu menyebarkan informasi di seluruh lapisan. Blok apa pun dapat disubstitusi berdasarkan keterbatasan komputasi.

Dengan menyusun dan menggabungkan blok-blok ini dengan hati-hati, GELAN mencapai titik manis antara kinerja, parameter, dan kecepatan. Arsitektur modular yang sama dapat diskalakan ke atas atau ke bawah di berbagai ukuran model dan perangkat keras.

Eksperimen menunjukkan bahwa GELAN memasukkan lebih banyak kinerja ke dalam model yang lebih kecil dibandingkan dengan arsitektur YOLO sebelumnya. Misalnya, GELAN-Small dengan 7M parameter mengungguli YOLOv7-Nano dengan 11M parameter. Dan GELAN-Medium dengan 20M parameter mencapai kinerja yang sama dengan model YOLOv7-Medium yang memerlukan 35-40M parameter.

Jadi, dengan merancang arsitektur yang dioptimalkan secara khusus untuk efisiensi, GELAN memungkinkan model untuk berjalan lebih cepat dan pada perangkat dengan sumber daya yang lebih terbatas. Selanjutnya, kita akan melihat bagaimana PGI membantu mereka berlatih lebih baik juga.

Latihan yang Lebih Baik dengan Informasi Gradien yang Dapat Diprogram (PGI)

Pelatihan model sangat penting untuk memaksimalkan akurasi dengan sumber daya yang terbatas. Penulis YOLOv9 mengidentifikasi masalah pelatihan model yang lebih kecil disebabkan oleh informasi gradien yang tidak dapat diandalkan.

Gradien menentukan seberapa banyak bobot model diperbarui selama pelatihan. Gradien yang bising atau menyesatkan menyebabkan konvergensi yang buruk. Masalah ini menjadi lebih parah untuk jaringan yang lebih kecil.

Teknik pengawasan dalam mengatasi ini dengan memperkenalkan cabang sampingan tambahan dengan kerugian untuk menyebarkan sinyal gradien yang lebih baik melalui jaringan. Tetapi ini cenderung gagal dan menyebabkan divergensi untuk model yang lebih ringan.

YOLOv9: Belajar Apa yang Anda Ingin Belajar Menggunakan Informasi Gradien yang Dapat Diprogram

YOLOv9: Belajar Apa yang Anda Ingin Belajar Menggunakan Informasi Gradien yang Dapat Diprogram https://arxiv.org/abs/2402.13616

Untuk mengatasi keterbatasan ini, YOLOv9 memperkenalkan Informasi Gradien yang Dapat Diprogram (PGI). PGI memiliki dua komponen utama:

  • Cabang yang dapat dibalik – Ini menyediakan gradien yang lebih bersih dengan mempertahankan koneksi yang dapat dibalik kembali ke input menggunakan blok seperti RevCols.
  • Integrasi gradien multi-level – Ini menggabungkan gradien dari semua cabang sebelum memasukkannya kembali ke model utama.

Dengan menghasilkan gradien yang lebih andal, PGI memperbaiki konvergensi pelatihan dan efisiensi di semua ukuran model:

Eksperimen menunjukkan bahwa PGI meningkatkan akurasi untuk konfigurasi YOLOv9 kecil dan besar dibandingkan dengan GELAN dasar:

  • +0,1-0,4% AP untuk YOLOv9-Small
  • +0,5-0,6% AP untuk model YOLOv9 yang lebih besar

Jadi, PGI memungkinkan model besar dan kecil untuk berlatih lebih efisien.

YOLOv9 Mengatur Standar Baru untuk Efisiensi

Dengan menggabungkan kemajuan arsitektur dari GELAN dan perbaikan pelatihan dari PGI, YOLOv9 mencapai kinerja efisiensi yang belum pernah terjadi sebelumnya:

  • Dibandingkan dengan versi YOLO sebelumnya, YOLOv9 mendapatkan akurasi yang lebih baik dengan 10-15% parameter yang lebih sedikit dan 25% komputasi yang lebih sedikit. Ini membawa perbaikan besar dalam kecepatan dan kemampuan di semua ukuran model.
  • YOLOv9 mengungguli detektor waktu nyata lainnya seperti YOLO-MS dan RT-DETR dalam hal efisiensi parameter dan FLOPs. Ini memerlukan sumber daya yang jauh lebih sedikit untuk mencapai tingkat kinerja yang diberikan.
  • Model YOLOv9 yang lebih kecil bahkan mengungguli model yang lebih besar yang dilatih sebelumnya seperti RT-DETR-X. Meskipun menggunakan 36% parameter yang lebih sedikit, YOLOv9-E mencapai 55,6% AP yang lebih baik melalui arsitektur yang lebih efisien.

Jadi, dengan mengatasi efisiensi pada tingkat arsitektur dan pelatihan, YOLOv9 mengatur standar baru untuk memaksimalkan kinerja dalam sumber daya yang terbatas.

GELAN – Arsitektur yang Dioptimalkan untuk Efisiensi

YOLOv9 memperkenalkan arsitektur baru yang disebut General Efficient Layer Aggregation Network (GELAN) yang memaksimalkan akurasi dalam anggaran parameter minimum. Ini dibangun di atas model YOLO sebelumnya tetapi mengoptimalkan berbagai komponen secara khusus untuk efisiensi.

https://arxiv.org/abs/2402.13616

YOLOv9: Belajar Apa yang Anda Ingin Belajar Menggunakan Informasi Gradien yang Dapat Diprogram https://arxiv.org/abs/2402.13616

Latar Belakang tentang CSPNet dan ELAN

Versi YOLO terbaru sejak v5 telah menggunakan backbone yang berbasis pada Cross-Stage Partial Network (CSPNet) untuk meningkatkan efisiensi. CSPNet memungkinkan peta fitur untuk diagregasikan di seluruh cabang jaringan paralel sambil menambahkan overhead minimal:

Ini lebih efisien daripada hanya menumpuk lapisan secara serial, yang sering menyebabkan komputasi berlebihan dan over-parameterisasi.

YOLOv7 meningkatkan CSPNet ke Efficient Layer Aggregation Network (ELAN), yang menyederhanakan struktur blok:

ELAN menghapus koneksi pintasan antara lapisan demi koneksi agregasi pada output. Ini lebih lanjut meningkatkan efisiensi parameter dan FLOPs.

Menggeneralisasi ELAN untuk Efisiensi yang Fleksibel

Penulis menggeneralisasi ELAN lebih lanjut untuk menciptakan GELAN, backbone yang digunakan dalam YOLOv9. GELAN membuat modifikasi kunci untuk meningkatkan fleksibilitas dan efisiensi:

  • Blok komputasi yang dapat dipertukarkan – ELAN sebelumnya memiliki lapisan konvolusi yang tetap. GELAN memungkinkan substitusi blok komputasi apa pun seperti ResNets atau CSPNet, menyediakan lebih banyak pilihan arsitektur.
  • Parametrisasi berbasis kedalaman – Kedalaman blok yang terpisah untuk cabang utama vs cabang agregator menyederhanakan penyesuaian penggunaan sumber daya.
  • Kinerja yang stabil di seluruh konfigurasi – GELAN mempertahankan akurasi dengan jenis blok dan kedalaman yang berbeda, memungkinkan penskalaan yang fleksibel.

Perubahan ini membuat GELAN menjadi backbone yang kuat tetapi dapat dikonfigurasi untuk memaksimalkan efisiensi:

Dalam eksperimen, model GELAN secara konsisten mengungguli arsitektur YOLO sebelumnya dalam hal akurasi per parameter:

  • GELAN-Small dengan 7M parameter mengungguli YOLOv7-Nano dengan 11M parameter
  • GELAN-Medium mencapai kinerja yang sama dengan model YOLOv7-Medium yang lebih berat

Jadi, GELAN menyediakan backbone yang dioptimalkan untuk menskalakan YOLO di berbagai target efisiensi. Selanjutnya, kita akan melihat bagaimana PGI membantu mereka berlatih lebih baik.

PGI – Pelatihan yang Diperbaiki untuk Semua Ukuran Model

Sementara pilihan arsitektur mempengaruhi efisiensi pada saat inferensi, proses pelatihan juga mempengaruhi penggunaan sumber daya model. YOLOv9 menggunakan teknik baru yang disebut Informasi Gradien yang Dapat Diprogram (PGI) untuk meningkatkan pelatihan di semua ukuran dan kompleksitas model.

Masalah Gradien yang Tidak Dapat Diandalkan

Selama pelatihan, fungsi kerugian membandingkan output model dengan label kebenaran dan menghitung gradien kesalahan untuk memperbarui parameter. Gradien yang bising atau menyesatkan menyebabkan konvergensi yang buruk dan efisiensi.

Jaringan yang sangat dalam memperburuk ini melalui botol leher informasi – gradien dari lapisan yang dalam rusak oleh sinyal yang hilang atau terkompresi.

Pengawasan dalam membantu dengan memperkenalkan cabang sampingan tambahan dengan kerugian untuk menyediakan gradien yang lebih bersih. Tetapi ini sering gagal untuk model yang lebih kecil, menyebabkan interferensi dan divergensi antara cabang yang berbeda.

Jadi, kita memerlukan cara untuk menyediakan gradien yang dapat diandalkan yang bekerja di semua ukuran model, terutama yang lebih kecil.

Memperkenalkan Informasi Gradien yang Dapat Diprogram (PGI)

Untuk mengatasi gradien yang tidak dapat diandalkan, YOLOv9 mengusulkan Informasi Gradien yang Dapat Diprogram (PGI). PGI memiliki dua komponen utama yang dirancang untuk meningkatkan kualitas gradien:

1. Cabang yang dapat dibalik

Cabang tambahan menyediakan koneksi yang dapat dibalik kembali ke input menggunakan blok seperti RevCols. Ini mempertahankan gradien yang bersih dan menghindari botol leher informasi.

2. Integrasi gradien multi-level

Blok fusi menggabungkan gradien dari semua cabang sebelum memasukkannya kembali ke model utama. Ini mencegah divergensi di seluruh cabang.

Dengan menghasilkan gradien yang lebih andal, PGI memperbaiki konvergensi pelatihan dan efisiensi di semua ukuran model:

  • Model yang lebih ringan mendapat manfaat dari pengawasan dalam yang sebelumnya tidak dapat mereka gunakan
  • Model yang lebih besar mendapatkan gradien yang lebih bersih yang memungkinkan generalisasi yang lebih baik

Eksperimen menunjukkan bahwa PGI meningkatkan akurasi untuk konfigurasi YOLOv9 kecil dan besar dibandingkan dengan GELAN dasar:

  • +0,1-0,4% AP untuk YOLOv9-Small
  • +0,5-0,6% AP untuk model YOLOv9 yang lebih besar

Jadi, PGI dengan gradien yang dapat diprogram memungkinkan model besar dan kecil untuk berlatih lebih efisien.

YOLOv9 Mengatur Standar Baru untuk Akurasi

Dengan menggabungkan perbaikan arsitektur dari GELAN dan perbaikan pelatihan dari PGI, YOLOv9 mencapai hasil akurasi yang baru dan menjadi standar baru untuk deteksi objek waktu nyata.

Eksperimen pada dataset COCO menunjukkan bahwa YOLOv9 mengungguli versi YOLO sebelumnya, serta detektor waktu nyata lainnya seperti YOLO-MS, dalam hal akurasi dan efisiensi:

Beberapa sorotan kunci:

  • YOLOv9-Small melampaui YOLO-MS-Small dengan 10% parameter yang lebih sedikit dan komputasi yang lebih sedikit
  • YOLOv9-Medium mencapai kinerja yang sama dengan model YOLOv7 yang lebih berat dengan menggunakan kurang dari setengah sumber daya
  • YOLOv9-Large mengungguli YOLOv8-X dengan 15% parameter yang lebih sedikit dan 25% FLOPs yang lebih sedikit

Hal yang menakjubkan adalah model YOLOv9 yang lebih kecil bahkan mengungguli model yang lebih berat dari detektor lain yang menggunakan pelatihan sebelumnya seperti RT-DETR-X. Meskipun memiliki 4x parameter yang lebih sedikit, YOLOv9-E mengungguli RT-DETR-X dalam akurasi.

Hasil ini menunjukkan keunggulan efisiensi YOLOv9. Perbaikan ini memungkinkan deteksi objek dengan akurasi tinggi dalam lebih banyak kasus penggunaan dunia nyata.

Ringkasan Utama tentang Peningkatan YOLOv9

Mari kita rangkum beberapa peningkatan dan inovasi kunci yang memungkinkan kinerja YOLOv9 yang baru dan menjadi standar baru:

  • Arsitektur GELAN yang dioptimalkan – Meningkatkan efisiensi parameter melalui blok agregasi yang fleksibel. Memungkinkan penskalaan model untuk target yang berbeda.
  • Informasi gradien yang dapat diprogram – Menyediakan gradien yang lebih andal melalui koneksi yang dapat dibalik dan fusi. Meningkatkan pelatihan di semua ukuran model.
  • Akurasi yang lebih baik dengan sumber daya yang lebih sedikit – Mengurangi parameter dan komputasi sebesar 10-15% dibandingkan dengan YOLOv8 dengan akurasi yang lebih baik. Memungkinkan inferensi yang lebih efisien.
  • Hasil yang superior di semua ukuran model – Mengatur standar baru untuk konfigurasi model ringan, sedang, dan besar. Mengungguli model yang dilatih sebelumnya yang lebih berat.
  • Kemampuan yang diperluas – Efisiensi yang lebih tinggi memperluas kasus penggunaan yang viable, seperti deteksi waktu nyata di perangkat edge.

Dengan mengatasi akurasi, efisiensi, dan kemampuan secara langsung, YOLOv9 mendorong deteksi objek ke depan untuk memenuhi kebutuhan dunia nyata yang beragam. Peningkatan ini menyediakan fondasi yang kuat untuk inovasi di masa depan dalam kemampuan visi komputer yang kritis ini.

Saya telah menghabiskan lima tahun terakhir dengan membenamkan diri dalam dunia Machine Learning dan Deep Learning yang menarik. Minat dan keahlian saya telah memimpin saya untuk berkontribusi pada lebih dari 50 proyek rekayasa perangkat lunak yang beragam, dengan fokus khusus pada AI/ML. Rasa ingin tahu saya yang terus-menerus juga telah menarik saya ke arah Natural Language Processing, sebuah bidang yang saya ingin jelajahi lebih lanjut.