Deteksi Kerusakan Jalan Menggunakan Object Detection Berbasis Deep Learning
Project Hackta Camp AI 2026
Road Damage Detection adalah proyek Computer Vision berbasis Object Detection yang bertujuan untuk mengidentifikasi kerusakan jalan seperti pothole dan pengelupasan lapisan permukaan menggunakan citra dari kamera kendaraan (dashboard camera).
Model dikembangkan menggunakan arsitektur YOLO (You Only Look Once) dari framework Ultralytics, yang terkenal akan kecepatan inferensi dan akurasi tinggi, sehingga cocok untuk kebutuhan real-time detection serta pengembangan lanjutan seperti Smart Transportation System atau Monitoring Infrastruktur Jalan.
Proyek ini dikembangkan dalam rangka ajang Hackta AI 2026.
- Author: Shabir Mahfudz Prahono
- School: SMA Negeri 2 Bandung
- Event: Hackta Camp AI 2026
- Bidang: Computer Vision, Object Detection
- Framework: Ultralytics YOLO (PyTorch)
- Arsitektur Model: YOLOv8 (Small / Medium)
- Task: Object Detection
- Input Image Size:
640 x 640 - Format Dataset: Pascal VOC (
.xml) → YOLO (.txt) - Optimizer: SGD / AdamW (default Ultralytics)
- Loss: YOLO Detection Loss
- Training Environment: Google Colab (GPU)
- ✅ Deteksi kerusakan jalan secara otomatis
- 🚗 Cocok untuk data kamera kendaraan (dashcam)
- ⚡ Inferensi cepat (real-time capable)
- 🔄 Konversi label otomatis (XML → YOLO)
- 📊 Evaluasi mAP, Precision, Recall
- 🔁 Export model ke format ONNX
jalan rusak/
├── train/
│ ├── images (.jpg)
│ └── labels (.txt)
├── valid/
│ ├── images (.jpg)
│ └── labels (.txt)
└── test/
├── images (.jpg)
└── labels (.txt)
-
Upload file
jalan_rusak.zipke Google Drive -
Pastikan path:
MyDrive/jalan_rusak.zip -
Aktifkan GPU di Colab:
Runtime → Change runtime type → GPU
from google.colab import drive
drive.mount('/content/drive')
import zipfile, os
zip_path = "/content/drive/MyDrive/jalan_rusak.zip"
extract_path = "/content/dataset"
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_path)Dataset awal menggunakan Pascal VOC (.xml) dan dikonversi otomatis ke format YOLO.
# XML → YOLO converterFungsi utama:
- Membaca ukuran gambar
- Normalisasi bounding box
- Menyimpan label
.txt - Menangani folder
train,valid, dantest
path: /content/dataset/jalan rusak
train: train/images
val: valid/images
test: test/images
names:
0: pengelupasan lapisan permukaanfrom ultralytics import YOLO
model = YOLO("yolov8s.pt")
model.train(
data="data.yaml",
epochs=50,
imgsz=640,
batch=16,
device=0,
project="runs/detect",
name="road_damage"
)model.val()Metrik yang dihasilkan:
- mAP@50
- Precision
- Recall
- F1-Score
model.predict(
source="/content/dataset/jalan rusak/test/images",
conf=0.25,
save=True
)Hasil prediksi tersimpan di:
runs/detect/road_damage/
model.export(format="onnx")File hasil:
road_damage.onnx
- Model mampu mendeteksi kerusakan jalan dengan baik
- Bounding box presisi pada area rusak
- Cocok untuk pengembangan sistem monitoring jalan otomatis
.
├── road_damage_detection.ipynb
├── data.yaml
├── road_damage.onnx
├── runs/
│ └── detect/
│ └── road_damage/
└── README.md
-
Pipeline Object Detection end-to-end
-
Menggunakan framework modern dan efisien
-
Siap dikembangkan untuk:
- Smart City
- Transportasi Cerdas
- Monitoring Infrastruktur
Important
DISCLAIMER: Dokumentasi ini dibuat dengan bantuan AI. Mohon maaf apabila terdapat kesalahan penulisan atau istilah teknis.
Terimakasih telah mengunjungi proyek saya, jangan sungkan untuk menghubungi saya di kontak yang tertera pada profil. BYE ! 🙏😄
✨ Happy Learning & Happy Coding!