Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deteksi Objek & Estimasi Jarak dengan Kamera Depth Orbbec Astra & YOLOv11

Repositori ini berisi implementasi deteksi objek secara real-time disertai estimasi jarak (kedalaman/depth) objek menggunakan model YOLOv11 dan Kamera Depth Orbbec Astra melalui SDK OpenNI2.

Sistem ini mengambil aliran video warna (RGB) dan aliran kedalaman (depth map) secara bersamaan, melakukan penyelarasan (image registration), mendeteksi objek menggunakan YOLOv11 pada aliran warna, lalu mengambil nilai jarak fisik (dalam meter) pada titik tengah bounding box objek tersebut.


📌 Fitur Utama

  • Real-Time Object Detection: Menggunakan model YOLOv11 (nano) yang cepat dan akurat.
  • Depth Alignment (Registrasi Citra): Menyelaraskan koordinat piksel antara kamera warna (RGB) dan sensor kedalaman sehingga data jarak sangat presisi dengan posisi objek di layar.
  • Estimasi Jarak Objek: Mengukur jarak objek dari kamera dalam satuan meter secara langsung pada layar.
  • Visualisasi Peta Kedalaman: Menampilkan peta kedalaman (depth map) dengan visualisasi warna (colormap Jet) untuk memudahkan analisis spasial.

📂 Struktur Repositori

├── astra-win32-driver-4.3.0.22/  # Folder berisi driver resmi sensor Astra untuk Windows
│   ├── SensorDriver_V4.3.0.22.exe # File instalasi driver
│   └── readme.txt                 # Petunjuk singkat instalasi driver
├── main.py                       # Program utama deteksi YOLOv11 & Kamera Depth
├── openini.py                    # Script pengujian koneksi & inisialisasi awal OpenNI2
├── yolo11n.pt                    # Pre-trained weights YOLOv11 Nano (default)
├── yolov8n.pt                    # Pre-trained weights YOLOv8 Nano (cadangan)
└── README.md                     # Dokumentasi proyek (file ini)

🛠️ Prasyarat & Instalasi

1. Instalasi Driver Kamera

Sebelum menjalankan kode Python, Anda harus menginstal driver Orbbec Astra pada sistem Windows Anda:

  1. Masuk ke folder astra-win32-driver-4.3.0.22.
  2. Klik ganda pada file SensorDriver_V4.3.0.22.exe dan ikuti petunjuk instalasi hingga selesai.
  3. Lepaskan (cabut) kabel kamera Astra dari USB, pasang kembali, lalu nyalakan ulang (reboot) komputer Anda.

2. Instalasi Dependensi Python

Proyek ini membutuhkan Python 3.8 atau yang lebih baru. Anda dapat menginstal seluruh dependensi menggunakan file requirements.txt yang tersedia:

pip install -r requirements.txt

Note

Pustaka openni di atas adalah wrapper Python untuk OpenNI2.


🚀 Cara Menjalankan Program

Langkah 1: Uji Coba Koneksi Kamera

Sebelum menjalankan program deteksi lengkap, lakukan verifikasi koneksi kamera menggunakan script pengujian openini.py:

python openini.py

Jika sukses, script akan mencetak informasi deteksi frame kedalaman di terminal Anda tanpa ada error.

Langkah 2: Jalankan Deteksi Objek & Estimasi Jarak

Jalankan program utama untuk memulai deteksi objek dan pengukuran jarak secara real-time:

python main.py
  • Program akan memuat model yolo11n.pt dan membuka dua jendela tampilan:
    1. YOLOv11 Color Detection: Menampilkan aliran video warna dengan bounding box, label kelas objek, akurasi deteksi, dan jarak objek dalam meter (misal: person (0.85): 1.25m).
    2. Astra Depth Map: Menampilkan visualisasi sensor kedalaman dengan gradasi warna.
  • Tekan tombol q pada keyboard Anda saat jendela gambar aktif untuk menghentikan program dan keluar secara aman.

🔍 Penjelasan Alur Kode (main.py)

  1. Inisialisasi OpenNI2 & Device: Membuka koneksi ke kamera Orbbec Astra yang terhubung.
  2. Penyelarasan Aliran (Depth-to-Color Alignment): Menggunakan perintah device.set_image_registration_mode(openni2.IMAGE_REGISTRATION_DEPTH_TO_COLOR) agar posisi koordinat X dan Y pada citra warna sejajar dengan citra kedalaman.
  3. Konversi Buffer:
    • Bingkai warna dikonversi menjadi array NumPy 8-bit RGB dan diubah ke format BGR agar kompatibel dengan OpenCV.
    • Bingkai kedalaman dikonversi menjadi array NumPy 16-bit untuk menyimpan resolusi kedalaman mentah (dalam milimeter).
  4. Inference YOLOv11: Mendeteksi objek pada bingkai warna dan mengambil koordinat bounding box-nya.
  5. Perhitungan Jarak: Mengambil nilai kedalaman pada koordinat tengah kotak pembatas: $$\text{center}_x = \frac{x_1 + x_2}{2}, \quad \text{center}_y = \frac{y_1 + y_2}{2}$$ Nilai kedalaman ini kemudian dikonversi dari milimeter ke meter dengan membaginya dengan 1000.

⚠️ Pemecahan Masalah (Troubleshooting)

  • Error: OpenNI2.dll not found atau kegagalan inisialisasi OpenNI Beberapa sistem Windows memerlukan pencantuman direktori redistributabel OpenNI2 secara manual. Anda dapat memodifikasi baris inisialisasi di main.py dan openini.py menjadi:
    openni2.initialize("C:/Program Files/OpenNI2/Redist") # Sesuaikan dengan lokasi instalasi SDK OpenNI2 Anda
  • Error: DeviceOpenUsingModes: no devices found Pastikan kabel USB kamera Astra sudah terhubung dengan benar (disarankan menggunakan port USB 3.0) dan driver sensor telah diinstal dengan benar. Coba cabut dan colokkan kembali kamera ke port USB lain.
  • Model YOLO Terlalu Lambat Secara default program ini berjalan di CPU menggunakan model Nano (yolo11n.pt). Jika Anda memiliki GPU Nvidia dengan CUDA terkonfigurasi, PyTorch akan mendeteksi CUDA secara otomatis untuk performa yang lebih cepat.

About

Kode untuk menggabungkan model yolov11 atau yolov8 menggunakan kamera depth untuk deteksi dan mengukur jarak dengan akurat

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages