afiqmc777/anti-spoofing
Anti Spoofing Web
Website statis untuk demo anti-spoofing. Upload gambar, akses kamera, preprocessing, inferensi ONNX, softmax, dan tampilan enam probabilitas seluruhnya berjalan di browser pengguna. Dark mode digunakan secara default dan pilihan tema disimpan secara lokal oleh browser.
Deployment Static Space
Unggah isi folder `web` ke satu Hugging Face Space dengan SDK Static. Struktur pada root Space harus tetap seperti berikut:
README.md
index.html
anti_spoof_convnext_fold1.onnxTidak ada Space variable, secret, Docker, Gradio, atau backend yang perlu dikonfigurasi. File ONNX berukuran sekitar 106 MB, sehingga pemuatan pertama memerlukan waktu sesuai kecepatan internet pengguna. Setelah indikator berubah menjadi Model siap · browser, upload dan kamera dapat digunakan.
Model final
Informasi model mengacu pada notebook final Master_Optuna_KFold_AntiSpoofing_v2_Documented savedrive freeze backbone.ipynb:
- Arsitektur: ConvNeXt-Tiny pretrained ImageNet-1k dengan backbone dibekukan dan classifier
Linear(768 -> 6). - Checkpoint deployment: Fold 1.
- Input inferensi: satu gambar RGB yang di-resize ke 384×384 dan dinormalisasi menggunakan mean/std ImageNet.
- Urutan output:
realperson,fake_unknown,fake_mask,fake_mannequin,fake_screen,fake_printed. - Data: 1.652 gambar sebelum deduplikasi dan 1.474 gambar sesudah 178 duplikat dihapus.
- Training final: Stratified 5-fold, 15 epoch, batch size 32, weighted focal loss (
gamma=2.18), AdamW (lr=9.74e-4,weight_decay=1.97e-5), dan CosineAnnealingLR. - Hasil: Macro F1 rata-rata 5-fold
0.9034 ± 0.0149. Fold terbaik adalah Fold 1 dengan Macro F10.9295; evaluasi validation Fold 1 berisi 295 sampel dan menghasilkan accuracy0.9356.
Metrik eksperimen didokumentasikan di README ini sebagai referensi, tetapi tidak ditampilkan pada halaman publik index.html.
Menjalankan secara lokal
cd web
python -m http.server 5500Buka http://localhost:5500, lalu tunggu model selesai dimuat. Static server diperlukan agar file model dan akses kamera bekerja konsisten; jangan membuka index.html langsung melalui file://.
Menghasilkan ulang ONNX
Dari root proyek, jalankan:
backend\.venv\Scripts\python.exe backend\export_onnx.pyScript memuat checkpoint Fold 1, mengekspor model, memvalidasi struktur ONNX, dan membandingkan output ONNX Runtime dengan PyTorch.
