Apa itu object detection?
Object detection adalah tugas computer vision untuk menemukan setiap objek yang dicari dalam gambar, lalu mengembalikan bounding box, label kelas, dan skor confidence untuk masing-masing objek. Tugas ini menggabungkan klasifikasi, yang menjawab apa isi gambar, dengan lokalisasi, yang menjawab di mana letaknya.
Deteksi dipakai di persepsi mobil swakemudi, pengenalan pejalan kaki dan rambu lalu lintas, pemantauan rak toko, pencitraan medis untuk menemukan nodul atau lesi, dan pencarian foto. Sebagian besar detektor punya bagian yang sama: backbone CNN atau transformer, sekumpulan kandidat kotak seperti anchor, head yang memberi skor dan menyempurnakan setiap kandidat, dan non-maximum suppression untuk membuang duplikat.
Ide utama
- Detektor menghasilkan kotak, label kelas, dan skor confidence untuk setiap objek.
- Anchor adalah kotak acuan dengan posisi, ukuran, dan rasio aspek yang tetap.
- Network memprediksi offset dari setiap anchor, diskalakan dengan ukurannya, bukan koordinat mentah.
- IoU, yaitu luas irisan dibagi luas gabungan, mengukur seberapa cocok dua kotak.
- Non-maximum suppression mempertahankan kotak dengan skor tertinggi dan membuang duplikat yang tumpang tindih.
- Detektor single-stage lebih cepat, sedangkan detektor two-stage menyempurnakan region proposal di langkah kedua.
Pertanyaan umum
Apa bedanya object detection dan image segmentation?
Deteksi menggambar persegi panjang di sekeliling setiap objek. Segmentation memberi label pada setiap pixel, sehingga menangkap bentuk yang persis. Instance segmentation menggabungkan keduanya: Mask R-CNN menambahkan cabang mask ke detektor Faster R-CNN dan menghasilkan mask pixel di dalam setiap kotak.
Bagaimana cara melatih detektor pada dataset sendiri?
Mulai dari detektor yang sudah di-pretrain pada COCO, lalu fine-tune dengan gambar berlabel milikmu, dengan mempertahankan backbone dan mengganti head kelasnya. Setiap gambar butuh kotak dan kelas untuk setiap objek, biasanya disimpan dalam format COCO JSON atau teks YOLO. Dengan transfer learning, beberapa ratus gambar berlabel per kelas sudah memberi hasil yang bisa dipakai untuk banyak tugas.
Kenapa objek kecil sulit dideteksi?
Backbone CNN memperkecil gambar 16 atau 32 kali, sehingga objek 20×20 pixel hanya menempati satu atau dua sel di feature map terakhir. Feature Pyramid Network (Lin dkk., 2017) mengatasi sebagian besar masalah ini dengan mendeteksi dari beberapa resolusi sekaligus. Resolusi input yang lebih tinggi dan memecah gambar besar menjadi potongan juga membantu.
Apa itu DETR?
DETR (Carion dkk., 2020) adalah detektor transformer yang langsung memprediksi sekumpulan kotak berukuran tetap. Saat training, Hungarian matching memasangkan setiap objek ground truth dengan satu prediksi, sehingga model belajar menghindari duplikat. DETR tidak butuh anchor dan tidak butuh NMS.
Penjelasan terkait
- Convolutional Neural Network · Cara CNN melihat dan memahami gambar
- Image Segmentation · Klasifikasikan setiap pixel dalam gambar, dari area semantik sampai tiap objek
- Pooling dan Downsampling · Perkecil dimensi spasial sambil mempertahankan feature terpenting di feature map
- Transfer Learning · Berdiri di atas pundak raksasa pretrained
- Evaluasi Model dan Metrik · Precision, recall, F1, kurva ROC, dan metrik regresi
- Data Augmentation · Perbanyak data training secara buatan dengan salinan hasil transformasi untuk mengurangi overfitting
Referensi
- Ren, He, Girshick & Sun (2015), "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks"
- Redmon et al. (2016), "You Only Look Once: Unified, Real-Time Object Detection", CVPR
- Lin et al. (2017), "Focal Loss for Dense Object Detection" (RetinaNet)
- Carion et al. (2020), "End-to-End Object Detection with Transformers" (DETR)
- Rezatofighi et al. (2019), "Generalized Intersection over Union", CVPR
Terakhir diperbarui