|
|
||
|---|---|---|
| .. | ||
| lab | ||
| ObjectDetection.ipynb | ||
| README.md | ||
README.md
Deteksi Objek
Model klasifikasi gambar yang telah kita bahas sejauh ini mengambil sebuah 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 dapat menentukan lokasi tepatnya. Inilah tujuan dari deteksi objek.
Kuis sebelum pelajaran
Gambar dari situs web YOLO v2
Pendekatan Naif untuk Deteksi Objek
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 presisi. Untuk lokasi yang lebih presisi, kita perlu menjalankan semacam regresi untuk memprediksi koordinat kotak pembatas - dan untuk itu, kita memerlukan dataset khusus.
Regresi untuk Deteksi Objek
Blog post ini memberikan pengenalan yang baik tentang cara mendeteksi bentuk.
Dataset untuk Deteksi Objek
Anda mungkin menemukan dataset berikut untuk tugas ini:
- PASCAL VOC - 20 kelas
- COCO - Common Objects in Context. 80 kelas, kotak pembatas, dan masker segmentasi
Metrik Deteksi Objek
Intersection over Union
Sementara untuk klasifikasi gambar mudah untuk mengukur seberapa baik algoritma bekerja, untuk deteksi objek kita perlu mengukur baik kebenaran kelas maupun presisi 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 post yang sangat baik tentang IoU
Idenya sederhana - kita membagi area perpotongan antara dua bentuk dengan area gabungannya. 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.
Average Precision
Misalkan kita ingin mengukur seberapa baik suatu kelas objek C dikenali. Untuk mengukurnya, kita menggunakan metrik Average Precision, yang dihitung sebagai berikut:
- 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 C adalah area di bawah kurva ini. Lebih tepatnya, sumbu Recall biasanya dibagi menjadi 10 bagian, dan Precision dirata-rata di semua titik tersebut:
AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})
AP dan IoU
Kita hanya akan mempertimbangkan deteksi yang memiliki IoU di atas nilai tertentu. Misalnya, dalam dataset PASCAL VOC biasanya \mbox{IoU Threshold} = 0.5, sementara dalam COCO AP diukur untuk berbagai nilai \mbox{IoU Threshold}.
Gambar dari NeuroWorkshop
Mean Average Precision - mAP
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 \mbox{IoU Threshold}. Proses perhitungan mAP dijelaskan secara lebih rinci
dalam blog post ini), dan juga di sini dengan contoh kode.
Pendekatan Deteksi Objek yang Berbeda
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 proses klasifikasi CNN pada gambar.
- One-pass (YOLO, SSD, RetinaNet) metode. Dalam arsitektur ini, kita merancang jaringan untuk memprediksi baik kelas maupun ROI dalam satu kali proses.
R-CNN: Region-Based CNN
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. Paper Resmi
Gambar dari van de Sande et al. ICCV’11
*Gambar dari blog ini
F-RCNN - Fast R-CNN
Pendekatan ini mirip dengan R-CNN, tetapi wilayah didefinisikan setelah lapisan konvolusi diterapkan.
Gambar dari Paper Resmi, arXiv, 2015
Faster R-CNN
Ide utama pendekatan ini adalah menggunakan jaringan neural untuk memprediksi ROI - yang disebut Region Proposal Network. Paper, 2016
Gambar dari paper resmi
R-FCN: Region-Based Fully Convolutional Network
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
Ckelas dibagi menjadik\times kwilayah, 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 paper resmi
YOLO - You Only Look Once
YOLO adalah algoritma satu kali proses yang real-time. Ide utamanya adalah sebagai berikut:
- Gambar dibagi menjadi
S\times Swilayah. - Untuk setiap wilayah, CNN memprediksi
nobjek yang mungkin, koordinat bounding box, dan confidence=probabilitas * IoU.
Gambar dari paper resmi
Algoritma Lain
- RetinaNet: paper resmi
- SSD (Single Shot Detector): paper resmi
✍️ Latihan: Deteksi Objek
Lanjutkan pembelajaran Anda di notebook berikut:
Kesimpulan
Dalam pelajaran ini, Anda telah menjelajahi berbagai cara untuk melakukan deteksi objek!
🚀 Tantangan
Baca artikel dan notebook tentang YOLO ini dan coba sendiri:
- Blog post yang bagus yang menjelaskan YOLO
- Situs resmi
- Yolo: Implementasi Keras, notebook langkah-demi-langkah
- Yolo v2: Implementasi Keras, notebook langkah-demi-langkah
Kuis setelah pelajaran
Tinjauan & Studi Mandiri
- Deteksi Objek oleh Nikhil Sardana
- Perbandingan yang baik 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
Tugas: Deteksi Objek
Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang berwenang. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.









