Object Detection
Unduh dataset ikan beformat YOLO:
https://drive.google.com/file/d/10Pr4lLeSGTfkjA40ReGSC8H3a9onfMZ0/view?usp=sharing
Ekstrak:
$ unzip Deepfish.zip
Salah satu hasilnya adalah:
Deepfish 7117 train valid
Contoh file Deepfish/7117/train/7117_Caranx_sexfasciatus_juvenile_f000000.txt
berisi:
0 0.47994791666666664 0.14351851851851852 0.12135416666666667 0.21481481481481482 0 0.8705729166666667 0.4185185185185185 0.09010416666666667 0.0962962962962963
Setiap barisnya memiliki susunan:
class_id x_center y_center width height
Buatlah file ikan.yaml
:
names: 0: ikan path: Deepfish/7117 train: train val: valid
Angka 0
(nol) pada names
merujuk pada class_id
.
Siapkan Python untuk menjalankan pelatihan:
$ python3.13 -m venv env $ env/bin/pip install ultralytics
Jalankan pelatihannya (compile):
$ env/bin/yolo train data=ikan.yaml
Hasilnya:
100 epochs completed in 0.171 hours. Optimizer stripped from runs/detect/train29/weights/last.pt, 5.5MB Optimizer stripped from runs/detect/train29/weights/best.pt, 5.5MB
File best.pt
itulah yang akan digunakan saat membaca foto. Coba cari gambar kumpulan ikan di Google. Lalu:
$ env/bin/yolo predict model=runs/detect/train29/weights/best.pt source=ikan.jpg
Hasilnya:
image 1/1 /home/sugiana/Unduhan/ikan.jpg: 448x640 6 ikans, 49.5ms Speed: 2.1ms preprocess, 49.5ms inference, 81.2ms postprocess per image at shape (1, 3, 448, 640) Results saved to runs/detect/predict37
Dia berhasil menghitung jumlah ikan di gambar tersebut sebanyak 6.
Secara visual kita bisa melihatnya di file runs/detect/predict37/ikan.jpg
.
Di file itu akan tampil kotak di setiap ikan lengkap dengan nilai
tingkat keyakinan dalam bentuk angka pecahan dengan ambang 0 sampai 1.
Kita juga bisa mengatur tingkat keyakinan dengan opsi conf
(confidence threshold):
$ env/bin/yolo predict model=runs/detect/train29/weights/best.pt source=ikan.jpg conf=0.5
Selamat mencoba.