Ringkasan singkat
Proyek ini menerapkan deteksi objek berbasis YOLO untuk monitoring ternak (sapi/ayam/dll) dan integrasi dengan perangkat IoT untuk notifikasi dan pengambilan data real-time.
Fitur utama
- Deteksi dan klasifikasi hewan di lahan/peternakan
- Inferensi real-time pada kamera (CCTV IP)
- Integrasi MQTT/HTTP dan ONVIF untuk pengiriman data ke server/Cloud
- Pipeline pelatihan mudah untuk dataset kustom
Persyaratan
- Python 3.8+
- CUDA (opsional, untuk GPU)
- Paket: lihat requirements.txt (torch, torchvision, opencv-python, pyyaml, paho-mqtt, dll)
Instalasi cepat
- Clone repo git clone
- Buat virtualenv dan aktifkan python -m venv venv && source venv/bin/activate
- Install dependensi pip install -r requirements.txt
Menyiapkan dataset
- Format: gambar (.jpg/png) + label per gambar (YOLO format: class x_center y_center width height, normalisasi)
- Struktur yang disarankan: data/images/train, data/images/val, data/labels/train, data/labels/val
- Tools rekomendasi: LabelImg, Roboflow (ekspor ke YOLO)
Melatih model (contoh)
- Gunakan skrip pelatihan yang ada: python src/train.py --data data.yaml --cfg yolov5s.yaml --epochs 50 --batch 16
- Hasil model akan tersimpan di models/ atau runs/
Inferensi (contoh)
- Deteksi pada gambar: python src/detect.py --weights models/best.pt --source data/images/test.jpg
- Deteksi kamera real-time: python src/detect.py --weights models/best.pt --source 0
Deploy ke perangkat IoT
- Konversi model ke format yang efisien (TorchScript/ONNX/ TensorRT tergantung hardware)
- Jalankan skrip inferensi ringan di device
- Kirim hasil via MQTT/HTTP ke server atau dashboard
- Sertakan optimasi: quantization, resize input, batching minimal
Evaluasi
- Gunakan metrik: mAP, precision, recall
- Evaluasi pada set val: python src/val.py --weights models/best.pt --data data.yaml
Tips praktis
- Pastikan anotasi konsisten dan cukup data variasi (pencahayaan, sudut, jarak)
- Augmentasi membantu generalisasi (flip, brightness, blur)
- Mulai dari model pretrained untuk konvergensi lebih cepat
Kontribusi
- Laporan isu dan pull request diterima
- Ikuti guideline coding dan testing pada CONTRIBUTING.md (jika ada)
Lisensi & Kontak
- Lisensi: sesuaikan dengan LICENSE di repo
- Kontak: cantumkan email/owner repo untuk pertanyaan lebih lanjut
Catatan: Sesuaikan file konfigurasi (data.yaml, cfg) dan skrip di src/ agar cocok dengan kebutuhan spesifik peternakan Anda.