Model klasifikasi gambar yang telah kita bahas sejauh ini mengambil gambar dan menghasilkan hasil kategoris, seperti kelas 'angka' dalam masalah MNIST. Namun, dalam banyak kasus, kita tidak hanya ingin mengetahui bahwa sebuah gambar menggambarkan objek - kita ingin menentukan lokasi mereka secara tepat. Inilah tujuan dari deteksi objek.
Gambar dari situs web YOLO v2
Misalkan kita ingin menemukan seekor kucing dalam sebuah gambar, pendekatan yang sangat naif untuk deteksi objek adalah sebagai berikut:
- Memecah gambar menjadi sejumlah ubin.
- Melakukan klasifikasi gambar pada setiap ubin.
- Ubin yang menghasilkan aktivasi yang cukup tinggi dapat dianggap mengandung objek yang dimaksud.
Gambar dari Notebook Latihan
Namun, pendekatan ini jauh dari ideal, karena hanya memungkinkan algoritma untuk menentukan kotak pembatas objek dengan sangat tidak akurat. Untuk lokasi yang lebih tepat, kita perlu menjalankan semacam regresi untuk memprediksi koordinat kotak pembatas - dan untuk itu, kita memerlukan dataset khusus.
Postingan blog ini memberikan pengantar yang bagus tentang mendeteksi bentuk.
Anda mungkin menemukan dataset berikut untuk tugas ini:
- PASCAL VOC - 20 kelas
- COCO - Common Objects in Context. 80 kelas, kotak pembatas, dan masker segmentasi
Sementara untuk klasifikasi gambar mudah untuk mengukur seberapa baik algoritma bekerja, untuk deteksi objek kita perlu mengukur baik kebenaran kelas maupun ketepatan lokasi kotak pembatas yang dihasilkan. Untuk yang terakhir, kita menggunakan Intersection over Union (IoU), yang mengukur seberapa baik dua kotak (atau dua area arbitrer) saling tumpang tindih.
Gambar 2 dari blog yang sangat bagus tentang IoU
Idenya sederhana - kita membagi area perpotongan antara dua bentuk dengan area gabungan mereka. Untuk dua area yang identik, IoU akan menjadi 1, sementara untuk area yang sepenuhnya terpisah akan menjadi 0. Selain itu, nilainya akan bervariasi dari 0 hingga 1. Kita biasanya hanya mempertimbangkan kotak pembatas yang memiliki IoU di atas nilai tertentu.
Misalkan kita ingin mengukur seberapa baik suatu kelas objek
- Pertimbangkan kurva Precision-Recall yang menunjukkan akurasi tergantung pada nilai ambang deteksi (dari 0 hingga 1).
- Bergantung pada ambang batas, kita akan mendapatkan lebih banyak atau lebih sedikit objek yang terdeteksi dalam gambar, dan nilai presisi serta recall yang berbeda.
- Kurva akan terlihat seperti ini:
Gambar dari NeuroWorkshop
Average Precision untuk kelas tertentu
Kita hanya akan mempertimbangkan deteksi yang memiliki IoU di atas nilai tertentu. Misalnya, dalam dataset PASCAL VOC biasanya
Gambar dari NeuroWorkshop
Metrik utama untuk Deteksi Objek disebut Mean Average Precision, atau mAP. Ini adalah nilai Average Precision, rata-rata di semua kelas objek, dan kadang-kadang juga di atas
Ada dua kelas besar algoritma deteksi objek:
- Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN). Ide utamanya adalah menghasilkan Regions of Interests (ROI) dan menjalankan CNN di atasnya, mencari aktivasi maksimum. Ini agak mirip dengan pendekatan naif, dengan pengecualian bahwa ROI dihasilkan dengan cara yang lebih cerdas. Salah satu kelemahan utama metode ini adalah lambat, karena kita memerlukan banyak pengulangan klasifikasi CNN di atas gambar.
- Metode One-pass (YOLO, SSD, RetinaNet). Dalam arsitektur ini, kita merancang jaringan untuk memprediksi baik kelas maupun ROI dalam satu kali pengolahan.
R-CNN menggunakan Selective Search untuk menghasilkan struktur hierarkis dari wilayah ROI, yang kemudian diteruskan melalui ekstraktor fitur CNN dan pengklasifikasi SVM untuk menentukan kelas objek, serta regresi linier untuk menentukan koordinat bounding box. Makalah Resmi
Gambar dari van de Sande et al. ICCV’11
*Gambar dari blog ini
Pendekatan ini mirip dengan R-CNN, tetapi wilayah didefinisikan setelah lapisan konvolusi diterapkan.
Gambar dari Makalah Resmi, arXiv, 2015
Ide utama pendekatan ini adalah menggunakan jaringan saraf untuk memprediksi ROI - yang disebut Region Proposal Network. Makalah, 2016
Gambar dari makalah resmi
Algoritma ini bahkan lebih cepat daripada Faster R-CNN. Ide utamanya adalah sebagai berikut:
- Kita mengekstrak fitur menggunakan ResNet-101.
- Fitur diproses oleh Position-Sensitive Score Map. Setiap objek dari
$C$ kelas dibagi menjadi$k\times k$ wilayah, dan kita melatih untuk memprediksi bagian-bagian objek. - Untuk setiap bagian dari wilayah
$k\times k$ , semua jaringan memberikan suara untuk kelas objek, dan kelas objek dengan suara maksimum dipilih.
Gambar dari makalah resmi
YOLO adalah algoritma satu kali pengolahan secara real-time. Ide utamanya adalah sebagai berikut:
- Gambar dibagi menjadi
$S\times S$ wilayah. - Untuk setiap wilayah, CNN memprediksi
$n$ objek yang mungkin, koordinat bounding box, dan confidence=probabilitas * IoU.
Gambar dari makalah resmi
- RetinaNet: makalah resmi
- SSD (Single Shot Detector): makalah resmi
Lanjutkan pembelajaran Anda dalam notebook berikut:
Dalam pelajaran ini, Anda telah menjelajahi berbagai cara untuk melakukan deteksi objek!
Baca artikel dan notebook tentang YOLO ini dan coba sendiri:
- Postingan blog yang bagus yang menjelaskan YOLO
- Situs resmi
- Yolo: Implementasi Keras, notebook langkah-demi-langkah
- Yolo v2: Implementasi Keras, notebook langkah-demi-langkah
- Deteksi Objek oleh Nikhil Sardana
- Perbandingan yang bagus tentang algoritma deteksi objek
- Tinjauan Algoritma Deep Learning untuk Deteksi Objek
- Pengantar Langkah-demi-Langkah ke Algoritma Deteksi Objek Dasar
- Implementasi Faster R-CNN dalam Python untuk Deteksi Objek











