|
Download README.md from KLP2-PCD/KLP2: direct link, hf CLI and curl.
- Browser
- Download file 10.3 kB
-
https://huggingface.co/spaces/KLP2-PCD/KLP2/resolve/main/README.md
- Command line
-
hf download hf://spaces/KLP2-PCD/KLP2/README.md
-
curl -L -o README.md https://huggingface.co/spaces/KLP2-PCD/KLP2/resolve/main/README.md
10.3 kB
A newer version of the Gradio SDK is available: 6.31.0
metadata
title: Klasifikasi Kehadiran Mahasiswa YOLOv8
emoji: 🎓
colorFrom: blue
colorTo: green
sdk: gradio
python_version: '3.10'
app_file: app.py
Pengecekan dan Klasifikasi Person Berbasis YOLOv8
Versi ini difokuskan untuk tahap awal:
- pengecekan gambar kelas,
- deteksi objek
person, - klasifikasi sederhana
personvsnot person/background.
Tujuan Fitur Saat Ini
- Upload gambar atau ambil dari kamera.
- Jalankan deteksi
persondengan YOLOv8. - Tampilkan hasil:
- gambar teranotasi bounding box,
- jumlah person terdeteksi,
- kelas prediksi evaluasi
Person/Not Person/Background, - confusion matrix dan rumus evaluasi,
- arsip evaluasi lokal (gambar hasil + CSV),
- grafik hasil pengecekan.
- Setelah proses cek, confusion matrix dan rumus evaluasi diperbarui otomatis tanpa input manual tambahan.
Struktur UI
- Tahap 1 - Pilih Model
- mode inferensi
- pilihan model
YOLOv8natauBest.pt - confidence threshold
- advanced options:
- gaya anotasi
Border + LabelatauLabel saja
- gaya anotasi
- Tahap 2 - Training dan Evaluasi Model
- membaca dataset dari
dataset/traindandataset/test - pilihan model awal training:
YOLOv8natauBest.pt - jika label
.txtYOLO belum ada, bisa aktifkan pseudo-label - training dijalankan di background process (server-side)
- progres bisa dipantau kembali setelah reconnect (status + log + grafik)
- terminal training live untuk progres epoch
- grafik training otomatis (loss, precision, recall, mAP per epoch)
- confusion matrix training dari hasil validasi YOLO
- ringkasan precision, recall, mAP50, dan mAP50-95
- output model terbaik selalu di-overwrite ke
best.ptsetiap training selesai - file
results.csvtraining tersedia sebagai arsip metrik lokal - file
training.log,training_curve_latest.png, danconfusion_matrix_latest.pngjuga disimpan lokal - jika env Hugging Face diisi,
best.ptdan artefak training otomatis di-sync ke repo HF - grafik training disimpan permanen sebagai gambar PNG di
training_outputs/training_curve_latest.pngdanspace_training_archive/<run>/training_curve.png - persiapan dataset dan pseudo-label berjalan di background worker, sehingga training tidak berhenti hanya karena koneksi browser terputus
- membaca dataset dari
- Tahap 3 - Input Gambar
- input gambar (upload/webcam)
- tombol proses
- Tahap 4 - Grafik Hasil Deteksi
- grafik count
PersondanNot Person/Background
- grafik count
- Tahap 5 - Evaluasi Foto Uji
- confusion matrix berbasis count objek
PersondanNot Person/Background - rumus Accuracy, Precision, Recall, dan F1 dengan substitusi angka
- confusion matrix berbasis count objek
- Tahap 6 - Hasil Gambar
- hasil gambar deteksi
- ringkasan klasifikasi
personvsnot person/background - file gambar evaluasi dan file CSV evaluasi lokal
Catatan:
- evaluasi dilakukan pada kelas
PersondanNot Person/Backgroundberbasis count objek. - panel evaluasi diperbarui otomatis setelah inferensi.
- hasil confidence rendah/tinggi dapat diamati melalui slider confidence dan arsip CSV evaluasi.
- UI otomatis menyesuaikan mode gelap perangkat (dark mode).
- output gambar dapat diperbesar melalui file hasil evaluasi yang tersimpan.
Best.ptmengikuti kelas yang memang tersedia pada model hasil training.- Jika
best.ptbelum tersedia, opsiBest.pttetap muncul di UI, tetapi proses akan menampilkan pesan bahwa model sedang belum tersedia dan perlu training terlebih dahulu. YOLOv8n.ptdipakai sebagai model default yang masih mendeteksi semua objek umum.Best.ptdipakai sebagai model hasil training yang difokuskan kePersonsaja.
File Penting
app.py- aplikasi Gradiorequirements.txt- dependensiyolov8n.pt- model default.gitignore- aturan ignoreCHANGELOG.md- riwayat update (termasuk nomor update)skills/update-tracking/SKILL.md- panduan konsistensi versi & format updateevaluation_outputs/- arsip hasil deteksi untuk evaluasi artikelruns_train/- hasil training dan grafik/metrik YOLOtraining_outputs/- arsip lokal grafik PNG dan summary training terbaru
Tracking Versi
- UI menampilkan versi kecil di bagian atas dan bawah halaman.
- Konfigurasi versi ada di
app.py:APP_VERSIONAPP_MINOR_UPDATE
- Setiap perubahan sebaiknya menambah entri
CHANGELOG.md.
Opsional environment variable:
MODEL_PATH- path model lokal customHF_MODEL_REPO- repo target Hugging Face (contoh:KLP2-PCD/KLP2)HF_MODEL_FILE- nama file model di Hub (disarankan:best.pt)HF_MODEL_REPO_TYPE- tipe repo HF:space(default),model, ataudatasetHF_TOKEN- token untuk upload otomatis saat training selesaiHF_DETECTION_DIR- folder khusus di repo HF untuk auto-save hasil deteksi (default:space_detection_archive)HF_TRAINING_DIR- folder khusus di repo HF untuk auto-save artefak training (default:space_training_archive)HF_ARTIFACT_REPO- repo dataset/model terpisah untuk menyimpan dan menampilkan ulang artefak training terakhir (contoh:KLP2-PCD/KLP2-training-artifacts)HF_ARTIFACT_REPO_TYPE- tipe repo artefak, defaultdatasetHF_AUTOSYNC_ENABLED- aktif/nonaktif auto-sync file repo (true/false)HF_AUTOSYNC_LOCAL_ONLY- defaulttrue, artinya autosync hanya jalan dari lokalHF_AUTOSYNC_REALTIME- defaultfalse; jikatruebaru watcher realtime aktifHF_AUTOSYNC_REPO_ID- repo target auto-sync (fallback keHF_MODEL_REPO)HF_AUTOSYNC_REPO_TYPE- tipe repo target auto-sync (defaultspace)HF_AUTOSYNC_TOKEN- token auto-sync (fallback keHF_TOKEN)HF_AUTOSYNC_INTERVAL_SEC- interval cek perubahan file (default3detik)HF_AUTOSYNC_DEBOUNCE_SEC- jeda batch commit agar tidak commit tiap perubahan kecil (default8detik)HF_AUTOSYNC_INCLUDE_GLOBS- pola file yang ingin disync (default*.py,*.md,requirements.txt,.gitignore)HF_AUTOSYNC_MAX_FILE_MB- batas ukuran file yang di-sync (default200MB)HF_AUTOSYNC_IGNORE_GLOBS- daftar pola file/folder yang diabaikan (dipisah koma)HF_ALLOW_SPACE_RUNTIME_COMMITS- defaultfalse; aktifkan hanya jika benar-benar ingin app melakukan commit ke repo Space yang sedang berjalan
Catatan sync otomatis setelah training:
- Jika
HF_MODEL_REPOterisi, aplikasi akan uploadbest.ptkeHF_MODEL_FILE. - Jika tidak terisi, training tetap jalan normal dan hanya menyimpan
best.ptlokal. - Jika
HF_MODEL_REPOmenunjuk ke Space yang sama, upload runtime dinonaktifkan secara default agar Space tidak rebuild sendiri dan memunculkan 503.
Catatan auto-save hasil deteksi:
- Setelah inferensi sukses, aplikasi menyimpan gambar anotasi ke
evaluation_outputs/lokal. - Jika
HF_MODEL_REPOterisi, gambar hasil deteksi dandetection_log.csvjuga otomatis di-upload ke folder repoHF_DETECTION_DIR.
Catatan auto-save hasil training:
- Setelah training selesai, grafik training, confusion matrix training,
results.csv,training.log, dan summary JSON disimpan ke folder repoHF_TRAINING_DIR. - File grafik terbaru juga disalin ke
training_outputs/training_curve_latest.pngagar tetap bisa ditampilkan ulang setelah Space rebuild. - Proses training juga langsung menyalin grafik YOLO
results.pngmenjadi PNG permanen saat training selesai, sehingga tidak bergantung pada refresh browser. - Jika koneksi browser terputus saat training, artefak tetap aman setelah proses training selesai dan sync ke repo berhasil. Jika container berhenti sebelum training selesai, artefak final memang belum sempat dibuat.
- Pseudo-label dari dataset tanpa label
.txtdapat memakan waktu di CPU Space karena semua gambar harus diproses YOLOv8n sebelum epoch dimulai. - Panel training akan mengambil ulang data terakhir dari
HF_ARTIFACT_REPOsaat Space rebuild, sehingga metrik dan grafik terakhir tetap tampil di UI.
Catatan auto-sync update file repo:
- Default
HF_AUTOSYNC_ENABLED=false, jadi tidak ada sync repo saat startup/runtime. - Jika ingin sync repo otomatis, aktifkan manual:
HF_AUTOSYNC_ENABLED=true. - Untuk mode realtime, tambahkan
HF_AUTOSYNC_REALTIME=true. - Disarankan tetap fokus ke sync model
best.ptsetelah training (lebih ringan dan stabil).
Menjalankan Lokal
python -m venv .venv
# Windows
.venv\Scripts\activate
pip install -r requirements.txt
python app.py
Setup Kontributor Windows/VS Code
Opsi A - Installer Otomatis
Jika laptop teman belum punya Git, Python, atau VS Code, jalankan:
install_windows.bat
Atau dari PowerShell:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install_windows.ps1
Installer ini memakai winget untuk menyiapkan:
- Git for Windows,
- Python 3.10,
- Visual Studio Code.
Setelah aplikasi dasar siap, installer otomatis lanjut menjalankan setup_contributor.ps1.
Catatan:
wingetbiasanya tersedia di Windows 10/11 melalui App Installer.- Jika
wingettidak ada, install App Installer dari Microsoft Store. - Beberapa laptop mungkin meminta izin administrator saat install aplikasi.
Opsi B - Setup Project Saja
Pastikan teman kelompok sudah:
- menjadi member organization
KLP2-PCDdengan akses write, - punya Git for Windows,
- punya Python 3.10+,
- punya token Hugging Face dengan permission write ke
KLP2-PCD/KLP2.
Jalankan dari PowerShell:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_contributor.ps1
Script akan:
- clone repo
KLP2-PCD/KLP2, - membuat
.venv, - upgrade
pip,setuptools, danwheel, - install dependency dari
requirements.txt, - menjalankan
pip check, - menyiapkan ekstensi VS Code: Python, Pylance, dan Jupyter,
- memakai konfigurasi workspace dari
.vscode/settings.json, - validasi
app.py, - set remote agar bisa
git push, - membuka folder di VS Code jika command
codetersedia.
Package Python yang dipasang:
gradio
ultralytics
opencv-python-headless
huggingface_hub
numpy
matplotlib
seaborn
Alur kerja setelah edit:
git status
git add app.py README.md CHANGELOG.md requirements.txt
git commit -m "update fitur"
git push origin main
Deploy ke Hugging Face Spaces
Upload:
app.pyrequirements.txtREADME.md.gitignoreyolov8n.pt(atau gunakan env Hub fallback)