Detectron2 - Deteksi Objek dan Segmentasi
Daftar Isi
Pendahuluan
Detectron2 adalah pustaka generasi berikutnya dari Facebook AI Research (FAIR) untuk deteksi objek, segmentasi instance, dan tugas pengenalan visual lainnya. Dibangun di atas PyTorch, pustaka ini menyediakan framework modular dan dapat diperluas yang mendukung banyak model computer vision terdepan.
Fitur utama Detectron2:
- Desain modular: Mudah menukar backbone, head, dan komponen lainnya
- Model Zoo kaya: Model pre-trained untuk deteksi, segmentasi, deteksi keypoint, dan lainnya
- Performa tinggi: Pelatihan dan inferensi yang dioptimalkan dengan dukungan multi-GPU
- Sistem konfigurasi fleksibel: Konfigurasi berbasis YAML dengan kemampuan override Python penuh
- Siap produksi: Ekspor ke TorchScript, ONNX, dan Caffe2 untuk deployment
Dalam tutorial ini, Anda akan belajar menggunakan Detectron2 untuk tugas deteksi objek dan segmentasi, melatih pada dataset kustom, menavigasi sistem konfigurasi, dan men-deploy model ke produksi.
Prasyarat
- Python 3.7 atau lebih tinggi
- PyTorch 1.9+ dengan dukungan CUDA (GPU sangat direkomendasikan)
- Pemahaman dasar tentang konsep deteksi objek dan segmentasi
- Keakraban dengan format dataset COCO
- Sistem operasi Linux (direkomendasikan; macOS dan Windows memiliki dukungan terbatas)
Instalasi
# Instal PyTorch terlebih dahulu (periksa pytorch.org untuk versi CUDA Anda)
pip install torch torchvision
Instal Detectron2
pip install 'git+https://github.com/facebookresearch/detectron2.git'
Alternatif: instal dari wheel yang sudah di-build (lebih cepat)
Periksa https://detectron2.readthedocs.io/en/latest/tutorials/install.html
pip install detectron2 -f \
https://dl.fbaipublicfiles.com/detectron2/wheels/cu118/torch2.0/index.html
Dependensi tambahan
pip install opencv-python pillow matplotlib
Verifikasi instalasi:
import detectron2
from detectron2.utils.logger import setuplogger
setuplogger()
print(f"Versi Detectron2: {detectron2.version}")
import torch
print(f"Versi PyTorch: {torch.version}")
print(f"CUDA tersedia: {torch.cuda.isavailable()}")
print(f"Versi CUDA: {torch.version.cuda}")
Memahami Arsitektur Detectron2
Detectron2 mengikuti arsitektur modular dengan komponen-komponen kunci berikut:
Gambar Input
|
v
[Backbone] --> Feature Maps (FPN)
|
v
[Region Proposal Network (RPN)] --> Proposal
|
v
[ROI Heads] --> Deteksi, Mask, Keypoint
|
v
[Post-processing] --> Prediksi Akhir
Abstraksi inti:
from detectron2.modeling import buildmodel
from detectron2.config import getcfg
Config mendefinisikan seluruh arsitektur model
cfg = getcfg()
Komponen kunci:
- cfg.MODEL.BACKBONE: Ekstraktor fitur (ResNet, ResNeXt, dll.)
- cfg.MODEL.FPN: Pengaturan Feature Pyramid Network
- cfg.MODEL.RPN: Region Proposal Network
- cfg.MODEL.ROIHEADS: Head deteksi/segmentasi
- cfg.MODEL.PIXELMEAN/STD: Normalisasi input
Menggunakan Model Pre-trained
Cara tercepat untuk memulai adalah dengan model pre-trained dari Model Zoo.
import cv2
import numpy as np