Wednesday, May 21, 2025
Week 5: Roboflow, Introduction to YOLO & CUDA Installation
Posted by

Week 5: Roboflow, Introduction to YOLO & CUDA Installation
Pada minggu ke-5, kita akan mengulas Roboflow yang telah diajarkan oleh Core Team, menerapkan reqiurements bagi yang belum melakukannya, serta melakukan pengenalan dan praktik langsung (hands-on) menggunakan YOLO π€.
YouTube Video
Daftar Isi
Requirements
Nahhh, ini adalah beberapa requirements perangkat lunak dan perangkat keras untuk menjalankan YOLO, baik untuk CPU maupun GPU dengan CUDA.
CPU
# Persyaratan untuk CPU
1. Python 3.10
2. Instalasi YOLO (pip install ultralytics)
GPU dengan CUDA (NVIDIA ONLY)
# Persyaratan untuk GPU dengan CUDA
1. Python 3.10
2. Instalasi YOLO (pip install ultralytics)
3. Conda environment (disarankan: conda create -n yolo_env python=3.10)
4. CUDA Toolkit versi 12.6
5. cuDNN versi 9.2.0
6. opencv-cuda-warped (opsional, untuk performa optimal)
7. opencv-contrib-python (pip install opencv-contrib-python)
8. PyTorch dengan CUDA 11.8 (pip install torch==1.13.1+cu118 torchvision==0.14.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html)
Catatan:
- Unduh CUDA Toolkit 12.6 dari NVIDIA Developer. Unduh cuDNN 9.2.0 dari NVIDIA Developer (register dulu atau kalau dah punya akun tinggal masuk).
- Pastikan driver GPU NVIDIA temen-temen kompatibel dengan CUDA 12.6.
- Gunakan Conda untuk mengelola dependensi agar lebih mudah:
conda activate yolo_env.
Installation
Pada section instalasi ini sebelum belajar dan menerapkan model YOLO pada masing-masing device teman-teman perlu adanya step yang wajib dilakukan yakni menginstalasi beberapa package yang dibutuhkan. Gunanya buat apa bwangg?? Sudah pasti, untuk memaksimalkan penggunaan YOLO serta implementasi lebih lanjut nantinya π€.
PIC telah menetapkan beberapa Requirements dalam menjalankan YOLO baik diberbagai versi (YOLOv3, YOLOv5, YOLOv8, etc.). Dimana PIC membagi kedua section berbeda sesuai kemampuan device masing-masing berikut pembagiannya:
Sebelum melakukan proses instalasi sebaiknya jangan gegabah dulu kita cek spesifikasi device masing-masing agar tidak mubazir package dan mencoba memaksimalkan device yang digunakan.
Contoh punya PIC (device Kentang PIC, doakan semoga cepet ganti laptop GPU spek gaharπ):

Nah punya pic tertera hanya memiliki CPU doang tanpa VGA external (NVIDIA), jadi cukup instalasi package section CPU aja. kalau punya vision amarineers ada GPU Nvidia baru instalasi package section GPU with CUDA biar makin gacor buat training dan prediksi π₯.
Setelah recheck spesifikasi device yang digunakan cusss kita langsung oprek dan hands-on bersama untuk instalasi π€.
CPU
Apabila device temen-temen tidak memiliki GPU external such as NVIDIA bukan RADEON jadi package yang diinstal cukup CPU aja berikut cara detailnya:
- Pastikan sudah instalasi conda environment seperti pada week-1
- Bikin new environment dengan nama bebas dan wajib python 3.10 biar ga collision
main.sh
### buat dengan nama bebas conda create --name yolo-ultralytics python==3.10 - Masuk kedalam venv conda yang telah dibuat sebelumnya
main.sh
### buat dengan nama bebas conda activate yolo-ultralytics - Install package yang dibutuhkan
main.sh
### bisa pake pip pip install ultralytics ### atau pake conda-forge conda install -c conda-forge ultralytics
Setelah selesai proses instalasi bisa langsung cuss ke section Roboflow atau YOLO π€.
GPU with CUDA
Disclaimer pada section GPU with CUDA ini PIC hanya menunjukkan proses instalasi menggunakan OS Windows untuk OS Linux karena kernelnya bermacam-macam bisa menyelami sendiri diberbagai komunitas dikarenakan beda kernel bisa beda package yang stable.
-
Pastikan sudah instalasi conda environment seperti pada week-1
-
Bikin new environment dengan nama bebas dan wajib python 3.10 biar ga collision
main.sh### buat dengan nama bebas conda create --name yolo-ultralytics python==3.10 -
Masuk kedalam venv conda yang telah dibuat sebelumnya
main.sh### buat dengan nama bebas conda activate yolo-ultralytics -
Install package yang ultralytics (YOLO)
main.sh### bisa pake pip pip install ultralytics ### atau pake conda-forge conda install -c conda-forge ultralytics -
Download lewat tautan πCUDA TOOLKIT versi 12.6

-
Download lewat tautan πcudNN 9.2.0

-
Download lewat tautan πopencv-cudawarped a.k.a opencv-contrib-python

-
Install package PyTorch CUDA 11.8 melalui command berikut:
main.sh### Pastikan vision amarineers sudah berada di environment yolo yang telah dibuat # CUDA 11.8 pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118
Untuk proses cara instalasi dari package yang telah di download akan disampaikan di Transfer Learning Week-5 onsite okieww π€. Karena tadi baru download package ajah wkwk.
Setelah selesai proses instalasi bisa langsung cuss ke section Roboflow atau YOLO π€.
Roboflow
Roboflow adalah platform yang membantu temen-temen membangun, melatih, dan menguji model komputer vision dengan lebih cepat dan lebih mudah. Dengan Roboflow, temen-temen dapat membuat dataset, melatih model, dan menguji model dengan lebih cepat dan lebih mudah.
Quickstart
Berikut adalah langkah-langkah sederhana untuk memulai menggunakan Roboflow, mulai dari registrasi hingga mengekspor dataset dalam format .yaml untuk pelatihan YOLO:
- Registrasi:
- Kunjungi Roboflow dan klik "Sign Up" untuk membuat akun gratis.
- Isi informasi seperti email dan kata sandi, atau masuk menggunakan akun Google/GitHub.
- Setelah registrasi, buat workspace baru (misalnya,
taskVisionAmarine) dan project baru dengan tipe "Object Detection".
- Cara Pemakaian:
-
Unggah gambar ke proyek temen-temen dengan drag-and-drop di dashboard Roboflow atau melalui kode Python menggunakan Roboflow API:
main.py### contoh penggunaan roboflow API from roboflow import Roboflow rf = Roboflow(api_key="YOUR_API_KEY") project = rf.workspace("your-workspace").project("your-project") project.upload("path/to/image.jpg")Danger:
Hati-hati jangan menyebarkan API_KEY karena bersifat sensitif.
-
Gunakan Roboflow untuk mengelola dataset, menambahkan anotasi, dan menghasilkan versi dataset.
- Labeling dan Annotating:
- Di dashboard proyek, klik "Annotate" di sidebar kiri, lalu pilih batch gambar untuk dilabeli.
- Gunakan alat Bounding Box (tekan
Batau klik ikon kotak):- Klik dan seret untuk menggambar kotak di sekitar objek.
- Pilih kelas untuk objek (misalnya, "mobil", "orang") dari popup.
- Untuk segmentasi, gunakan alat Polygon (tekan
Patau klik ikon poligon) atau Smart Polygon untuk anotasi otomatis. - Gunakan Label Assist (ikon tongkat sulap) untuk saran anotasi otomatis berdasarkan model yang sudah dilatih.
- Simpan anotasi dan lanjutkan ke gambar berikutnya menggunakan panah di antarmuka atau keyboard.
- Pembagian Data
Train/Val/Test:
- Setelah anotasi selesai, klik "Generate" di sidebar untuk membuat versi dataset.
- Tentukan pembagian data, misalnya:
Train: 70% (untuk pelatihan model).Val: 20% (untuk validasi selama pelatihan).Test: 10% (untuk evaluasi akhir model).
- Roboflow akan secara otomatis membagi dataset sesuai rasio yang temen-temen tentukan.
- temen-temen juga dapat menggunakan kode Python dengan pustaka
supervisionuntuk membagi dataset secara manual:main.pyimport supervision as sv ds = sv.DetectionDataset.from_yolo( images_directory_path="dataset/images", annotations_directory_path="dataset/labels", data_yaml_path="dataset/data.yaml" ) train_ds, test_ds = ds.split(split_ratio=0.7, random_state=42) val_ds, test_ds = test_ds.split(split_ratio=0.67, random_state=42)
- Export ke Format
.yamluntuk YOLO:
- Setelah dataset dihasilkan, klik "Download" di halaman versi dataset.
- Pilih format YOLOv8 (atau versi YOLO lain yang kompatibel).
- Pilih opsi "Show Download Code" untuk mendapatkan kode Python atau langsung unduh file zip.
- Dataset yang diekspor akan berisi:
- Folder
train,val, dantestdengan subfolder images dan labels. - File
data.yamlyang berisi konfigurasi seperti berikut:
train: ../train/images val: ../valid/images test: ../test/images nc: 2 names: ['kelas1', 'kelas2'] - Folder
- Gunakan file
data.yamlini untuk pelatihan YOLO (lihat bagian YOLO di bawah).
Catatan: Pastikan anotasi dalam format YOLO (satu file .txt per gambar, dengan format class_index x_center y_center width height dalam koordinat ternormalisasi). Roboflow secara otomatis menghasilkan anotasi dalam format ini saat ekspor.
YOLO Dasar
YOLO (You Only Look Once) adalah sebuah model komputer vision yang dikembangkan oleh Joseph Redmon dan Ali Farhadi. YOLO adalah model deteksi objek yang dapat mendeteksi objek dalam gambar dalam waktu yang relatif singkat.
Mode
YOLO memiliki beberapa mode yang dapat digunakan untuk melatih dan menguji model. Berikut adalah beberapa mode yang tersedia:
Untuk memulai menggunakan YOLO, temen-temen dapat mengikuti step by step yang menggunakan quick navigation berikut:
Train
Mode train digunakan untuk melatih model YOLO. Dalam mode ini, temen-temen dapat menggunakan dataset yang telah dibuat untuk melatih model.
- Persiapkan Dataset: Pastikan temen-temen memiliki dataset dalam format yang kompatibel dengan YOLO (misalnya, format YOLO txt). temen-temen dapat menggunakan Roboflow untuk menyiapkan dataset.
- Instal YOLO: Instal pustaka Ultralytics menggunakan pip:
main.sh
pip install ultralytics - Jalankan Pelatihan: Gunakan perintah berikut untuk melatih model YOLOv8 pada dataset temen-temen:
main.sh
yolo train model=yolov8n.pt data=dataset.yaml epochs=100 imgsz=640 - Hasil: Setelah pelatihan selesai, model terbaik akan disimpan di folder
runs/train/exp/weights/best.pt.
Catatan: Pastikan file dataset.yaml sudah dikonfigurasi dengan benar. Contoh isi dataset.yaml:
train: /path/to/train/images
val: /path/to/val/images
nc: 2 # jumlah kelas
names: ['kelas1', 'kelas2'] # nama kelas
Validation (Val)
Mode val digunakan untuk menguji model YOLO. Dalam mode ini, temen-temen dapat menggunakan dataset yang telah dibuat untuk menguji model. Berikut cara detailnya:
- Siapkan Model dan Dataset: Pastikan temen-temen memiliki model yang telah dilatih (misalnya, best.pt) dan dataset validasi.
- Jalankan Validasi: Gunakan perintah berikut untuk mengevaluasi model:
main.sh
yolo val model=runs/train/exp/weights/best.pt data=dataset.yamlmodel: Path ke file model yang telah dilatih.data: File konfigurasi dataset yang sama seperti saat pelatihan.
- Hasil: Hasil validasi seperti metrik presisi, recall, dan mAP akan ditampilkan di terminal dan disimpan di folder
runs/val/.
Catatan: Mode ini membantu temen-temen memahami seberapa baik model bekerja pada data yang tidak digunakan selama pelatihan.
Predict
Mode predict digunakan untuk memprediksi objek dalam gambar menggunakan model YOLO yang telah dilatih. Dalam mode ini, temen-temen dapat menggunakan gambar yang belum pernah dilihat sebelumnya untuk memprediksi objek. Berikut cara detailnya:
- Siapkan Model dan Input: Pastikan temen-temen memiliki model terlatih dan file gambar/video untuk diprediksi.
- Jalankan Prediksi: Gunakan perintah berikut untuk memprediksi objek:
main.sh
yolo predict model=runs/train/exp/weights/best.pt source=/path/to/image.jpgmodel: Path ke file model terlatih.source: Path ke gambar, video, atau folder berisi gambar (bisa juga URL atau webcam dengansource=0).
- Hasil: Hasil prediksi akan disimpan di folder
runs/predict/, termasuk gambar dengan kotak deteksi (bounding boxes) dan label. - Contoh Prediksi pada Video:
main.sh
yolo predict model=runs/train/exp/weights/best.pt source=/path/to/video.mp4
Catatan: Temen-temen dapat menambahkan parameter seperti conf=0.5 untuk mengatur ambang batas kepercayaan (confidence threshold) agar hasil lebih akurat.
Akhirnya, kita telah mengulik dalam-dalam tentang YOLO serta Roboflow dan implementasinya menggunakan pendekatan coding. Nahh mungkin cukup sampe disini aja buat week kali ini pabila bingung bisa tanyain digrup or u can get in touch with me: https://wildanaziz.vercel.app/
π Selamat belajar! Week berikutnya kita akan mulai eksplorasi Deep Dive into YOLOv5 and YOLOv8 and Track ur Model Result
Reference
[1] Roboflow. (n.d.). Get started with Roboflow. Retrieved May 18, 2025, from https://roboflow.com/
[2] Roboflow. (n.d.). Annotate images with Roboflow. Retrieved May 18, 2025, from https://docs.roboflow.com/annotate
[3] Roboflow. (n.d.). Manage datasets with Roboflow. Retrieved May 18, 2025, from https://docs.roboflow.com/dataset
[4] Roboflow. (n.d.). Export datasets from Roboflow. Retrieved May 18, 2025, from https://docs.roboflow.com/export
[5] Ultralytics. (n.d.). Train mode. Retrieved May 18, 2025, from https://docs.ultralytics.com/modes/train/
[6] Ultralytics. (n.d.). Validation mode. Retrieved May 18, 2025, from https://docs.ultralytics.com/modes/val/
[7] Ultralytics. (n.d.). Predict mode. Retrieved May 18, 2025, from https://docs.ultralytics.com/modes/predict/