Deteksi Objek Real-Time dengan YOLOv8 dan OpenCV
YOLO (You Only Look Once) adalah salah satu algoritma paling populer untuk deteksi objek. Versi terbarunya, YOLOv8, hadir dengan performa yang lebih cepat dan akurat. Pada artikel ini, kita akan mencoba menggunakan YOLOv8 bersama OpenCV untuk melakukan deteksi objek secara real-time lewat webcam.
Prasyarat
Pastikan Anda sudah menyiapkan:
- Python 3.8+
- Library
ultralytics
(untuk YOLOv8) - Library
opencv-python
(untuk akses webcam)
Install dengan pip:
pip install ultralytics opencv-python
Contoh Kode
Berikut contoh kode Python sederhana untuk melakukan deteksi objek dari webcam:
from ultralytics import YOLO
import cv2
# Load model YOLOv8 nano (ringan dan cepat)
model = YOLO("yolov8n.pt")
# Buka webcam (0 = kamera default)
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
# Jalankan deteksi
results = model(frame)
for result in results:
# Ambil bounding box, class, dan confidence
boxes = result.boxes
class_ids = boxes.cls
confidences = boxes.conf
# Visualisasikan hasil
annotated_frame = result.plot()
cv2.imshow("YOLOv8 Inference", annotated_frame)
# Tekan 'q' untuk keluar
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Penjelasan Singkat
-
Load model
YOLO("yolov8n.pt")
memuat model YOLOv8 versi nano (paling ringan, cocok untuk real-time). Anda juga bisa cobayolov8s.pt
,yolov8m.pt
, hinggayolov8l.pt
untuk akurasi lebih tinggi. -
Buka webcam
cv2.VideoCapture(0)
mengakses kamera default. Jika ada lebih dari satu kamera, ganti0
dengan ID kamera lain. -
Proses deteksi
results = model(frame)
langsung mengembalikan objek deteksi lengkap (bounding box, confidence, class ID). -
Tampilkan hasil
result.plot()
membuat frame dengan anotasi kotak deteksi, lalu ditampilkan dengancv2.imshow
.
Kesimpulan
Dengan sedikit kode saja, kita sudah bisa membangun sistem deteksi objek real-time menggunakan YOLOv8 + OpenCV. Kombinasi ini sangat fleksibel: bisa dipakai untuk kamera live, file video, atau kumpulan gambar.
🚀 Selanjutnya, Anda bisa mengembangkannya untuk:
- Menyimpan hasil deteksi ke file
- Menjalankan deteksi pada video yang sudah direkam
- Membuat sistem pengawasan atau analisis otomatis