Tutorial Deploy Aplikasi Deteksi Objek Menggunakan Ultralytics YOLO (You Only Look Once) pada Ubuntu 24.04

Tutorial Deploy Aplikasi Deteksi Objek Menggunakan Ultralytics YOLO (You Only Look Once) pada Ubuntu 24.04

Pengantar

Pemantauan lalu lintas secara manual memerlukan waktu dan sumber daya yang cukup besar, terutama jika dilakukan selama 24 jam penuh. Dengan memanfaatkan teknologi Artificial Intelligence (AI) dan Computer Vision, proses pemantauan dapat dilakukan secara otomatis menggunakan kamera CCTV yang sudah tersedia.

Salah satu teknologi yang banyak digunakan untuk kebutuhan tersebut adalah YOLO (You Only Look Once). Model ini mampu mendeteksi berbagai objek seperti kendaraan dan pejalan kaki secara real-time dengan performa yang cepat dan akurat.

Pada panduan ini, Anda akan mempelajari cara membangun Dashboard Monitoring Lalu Lintas Real-Time menggunakan YOLO, Flask, OpenCV, dan MariaDB di Ubuntu 24.04. Sistem yang dibuat dapat menampilkan video CCTV, menghitung objek secara otomatis, serta menampilkan hasil pemantauan melalui dashboard web.

Apa Itu YOLO?

YOLO (You Only Look Once) merupakan model deteksi objek berbasis Deep Learning yang mampu mengenali berbagai objek pada gambar maupun video secara real-time.

Beberapa kelebihan YOLO antara lain:
1. Deteksi Real-Time
Mampu mendeteksi objek dengan cepat sehingga cocok digunakan untuk pemantauan langsung.
2. Akurasi Tinggi
Memiliki tingkat akurasi yang baik untuk berbagai kebutuhan deteksi objek.
3. Mendukung Berbagai Objek
Dapat mengenali mobil, motor, bus, truk, sepeda, dan pejalan kaki.
4. Fleksibel
Dapat dijalankan pada server, VPS, maupun perangkat dengan spesifikasi terbatas.

Dengan kemampuan tersebut, YOLO banyak digunakan untuk:
• Monitoring lalu lintas
• Smart City
• Sistem parkir otomatis
• Pengawasan area publik
• Analisis kepadatan kendaraan

Prasyarat

CPU : 2 vCPU
RAM : 4 GB
Storage : 20 GB SSD
Sistem Operasi : Ubuntu 24.04 LTS
Python : Versi 3.10 atau lebih baru

Catatan:
Untuk penggunaan dengan banyak sumber CCTV atau trafik yang tinggi, disarankan menggunakan spesifikasi server yang lebih besar agar proses deteksi objek dapat berjalan lebih optimal.

Download Evironment

  1. Memperbarui Sistem dan Menginstal Dependensi
    Perbarui sistem terlebih dahulu:
    apt update && apt upgrade -y

    Instal paket yang dibutuhkan:

    apt install python3 python3-pip python3-venv ffmpeg -y
    Keterangan:
    Paket ini digunakan untuk menjalankan YOLO, Flask, OpenCV, dan pemrosesan video.
  1. Membuat Direktori Project
    Buat direktori project:
    mkdir ~/yolo-app
    cd ~/yolo-app

    Buat virtual environment:

    python3 -m venv venv

    Aktifkan virtual environment:

    source venv/bin/activate
    Keterangan:
    Virtual environment digunakan untuk mengisolasi dependency project dari sistem utama.
  1. Menginstal Library Python
    Instal seluruh dependency yang diperlukan:
    pip install ultralytics
    pip install flask
    pip install opencv-python-headless

    Verifikasi instalasi:

    pip list

    Pastikan library Flask, OpenCV, dan Ultralytics telah terpasang.

    Keterangan:
    Library ini digunakan untuk deteksi objek, pemrosesan video, dan pembuatan dashboard web.

Download Model YOLO

  1. Mengunduh Model YOLO
    Unduh model YOLO Nano:
    wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt

    Pastikan file berhasil diunduh:

    ls

    Output yang muncul kurang lebih seperti berikut:

    yolo11n.pt
    Keterangan:
    Model yolo11n.pt digunakan untuk mendeteksi objek seperti kendaraan dan pejalan kaki secara real-time.

Membuat Struktur Direktori

  1. Membuat Struktur Direktori Project
    Susun direktori project seperti berikut:
    yolo-app/
    ├── api.py
    ├── yolo11n.pt
    ├── templates/
    │   └── dashboard.html
    └── venv/

    Buat direktori templates:

    mkdir templates
    Keterangan:
    Direktori templates digunakan untuk menyimpan file antarmuka dashboard Flask.

Membuat Dashboard Monitoring

  1. Membuat Tampilan Dashboard
    Buat file dashboard:
    nano templates/dashboard.html

    Masukkan kode berikut:

    Keterangan:
    File dashboard.html digunakan untuk menampilkan video CCTV, jumlah kendaraan, pejalan kaki, dan status lalu lintas secara real-time.

Membuat Aplikasi Flask dan YOLO

  1. Membuat API Monitoring Lalu Lintas
    Buat file aplikasi Flask:
    nano api.py

    Masukkan kode berikut ke dalam file api.py:

    from flask import Flask, Response, render_template, jsonify
    from ultralytics import YOLO
    import cv2
    import threading
    import time
    import pymysql
    
    app = Flask(__name__)
    
    URL = "https://cctv.jogjaprov.go.id/cctv-proxy/atcs-kota/MargoUtomo_WismaRatih.stream/chunklist_w122852773.m3u8"
    
    model = YOLO("yolo11n.pt")
    
    latest_stats = {
        "person": 0,
        "car": 0,
        "motorcycle": 0,
        "truck": 0,
        "status": "Lancar"
    }
    
    output_frame = None
    frame_lock = threading.Lock()
    last_save = 0
    
    # Kode program dipersingkat pada artikel
    # Salin seluruh source code API yang telah disediakan
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=5000)
    Keterangan:
    File api.py berfungsi untuk melakukan deteksi objek menggunakan YOLO, menampilkan video CCTV secara real-time, menyimpan data ke MariaDB, dan menyediakan API untuk dashboard monitoring.

Menjalankan Aplikasi

  1. Membuat API Monitoring Lalu Lintas
    Buat file aplikasi Flask:
    nano api.py

    Masukkan kode berikut ke dalam file api.py:

    from flask import Flask, Response, render_template, jsonify
    from ultralytics import YOLO
    import cv2
    import threading
    import time
    import pymysql
    
    app = Flask(__name__)
    
    URL = "https://cctv.jogjaprov.go.id/cctv-proxy/atcs-kota/MargoUtomo_WismaRatih.stream/chunklist_w122852773.m3u8"
    
    model = YOLO("yolo11n.pt")
    
    latest_stats = {
        "person": 0,
        "car": 0,
        "motorcycle": 0,
        "truck": 0,
        "status": "Lancar"
    }
    
    output_frame = None
    frame_lock = threading.Lock()
    last_save = 0
    
    # Kode program dipersingkat pada artikel
    # Salin seluruh source code API yang telah disediakan
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=5000)
    Keterangan:
    File api.py berfungsi untuk melakukan deteksi objek menggunakan YOLO, menampilkan video CCTV secara real-time, menyimpan data ke MariaDB, dan menyediakan API untuk dashboard monitoring.

Menjalankan Aplikasi

  1. Menjalankan Aplikasi
    Aktifkan virtual environment:
    source venv/bin/activate

    Jalankan aplikasi:

    python api.py

    Jika berhasil, akan muncul output seperti berikut:

    * Running on http://0.0.0.0:5000

    Akses dashboard melalui browser:

    http://IP-SERVER:5000

Membuat Service Systemd

  1. Membuat Service Systemd
    Secara default aplikasi dijalankan menggunakan perintah berikut:
    python api.py

    Buat file service:

    nano /etc/systemd/system/traffic-monitor.service

    Isi dengan konfigurasi berikut:

    [Unit]
    Description=Traffic Monitoring Dashboard
    After=network.target
    
    [Service]
    User=root
    WorkingDirectory=/root/yolo-app
    Environment="PATH=/root/yolo-app/venv/bin"
    ExecStart=/root/yolo-app/venv/bin/python /root/yolo-app/api.py
    
    Restart=always
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target

    Reload systemd:

    systemctl daemon-reload

    Aktifkan service:

    systemctl enable traffic-monitor

    Jalankan service:

    systemctl start traffic-monitor

    Periksa status service:

    systemctl status traffic-monitor

    Jika berhasil, status akan menampilkan:

    active (running)

    Keterangan:
    Service systemd memungkinkan aplikasi berjalan otomatis setiap kali server dinyalakan atau reboot.

Tips dan Catatan Penting

• Gunakan model yolo11n.pt jika VPS memiliki spesifikasi terbatas.
• Pastikan sumber CCTV memiliki koneksi yang stabil.
• Gunakan resolusi inferensi yang sesuai agar performa tetap optimal.
• Simpan aplikasi sebagai service systemd agar berjalan otomatis setelah reboot.
• Untuk kebutuhan laporan atau grafik historis, Anda dapat menambahkan database MariaDB pada tahap pengembangan berikutnya.

Kesimpulan

Dashboard Monitoring Lalu Lintas berbasis YOLO memungkinkan proses pemantauan kendaraan dan pejalan kaki dilakukan secara otomatis melalui kamera CCTV. Dengan memanfaatkan teknologi Computer Vision, sistem dapat melakukan deteksi objek secara real-time serta menampilkan hasil pemantauan melalui dashboard web yang mudah dipahami.

Melalui panduan ini, Anda telah mempelajari cara membangun sistem monitoring lalu lintas menggunakan YOLO, Flask, dan OpenCV di Ubuntu 24.04. Setelah instalasi selesai, aplikasi dapat dijalankan secara otomatis menggunakan systemd sehingga siap digunakan untuk kebutuhan monitoring, analisis lalu lintas, maupun pengembangan Smart City.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466