1 Moderasi Gambar
Seret dan lepas gambar ke sini, atau pilih file
JPG · PNG · WebP · GIF · BMP — hingga 1000 file per batch
2 Daftar Kata Kunci Blacklist (48 kata)
Dicocokkan ke teks hasil OCR (dan nama file sebagai fallback). Ada kecocokan → gambar langsung DIMODERASI.
3 Arsitektur Sistem ▸
Alur proses
1. YOLO11n-cls — Deteksi Visual
Klasifikasi ke 2 kelas: obat_aborsi dan normal. Kecepatan ±37 ms/gambar (26.7 img/s). Jika terdeteksi kelas violative → langsung DIMODERASI dan proses berhenti (OCR tidak dijalankan).
2. Tesseract OCR — Ekstraksi Teks
Dijalankan hanya bila YOLO = normal. Membaca teks dalam gambar (Indonesia + Inggris), menangkap nomor WhatsApp, kata kunci iklan ilegal, atau nama produk yang luput dari deteksi visual. Paling lambat: ±550 ms/gambar (gambar besar di-resize otomatis ke maks. 1600px).
3. Keyword Filtering — Pencocokan Kata Kunci
Mencocokkan teks OCR dengan 48 kata kunci blacklist (aborsi, cytotec, misoprostol, boraks, formalin, dsb.). Teks dinormalisasi dulu (huruf kecil, simbol dibuang); nama file dipakai fallback bila OCR kosong. Instan (< 1 ms).
4. Keputusan Akhir
DIMODERASI bila YOLO = violative ATAU keyword match. Bila keduanya negatif → LOLOS.
5. Web Server (FastAPI)
Endpoint POST /api/moderasi/satu (1 gambar) dan POST /api/moderasi/bulk (banyak, maks. 1000, paralel 4 thread). Model dimuat sekali saat startup; respons JSON.
4 Penjelasan Model ▸
Berapa Kelasnya? — 2 Kelas
Model mengklasifikasikan setiap gambar ke salah satu dari 2 kelas:
obat_aborsi— gambar iklan/produk obat penggugur kandungan (cytotec, misoprostol, dsb.) → DIMODERASI.normal— gambar biasa yang aman (makanan, dokumen, hewan, mobil, dsb.) → LOLOS.
Kelas obat_aborsi disebut kelas violative — jika terprediksi, gambar langsung DIMODERASI dan proses berhenti (OCR dilewati). OCR + keyword hanya berjalan saat YOLO = normal, untuk menangkap konten yang lolos dari deteksi visual; jika ada keyword cocok, keputusan otomatis DIMODERASI.
Apa itu YOLO11n-cls?
YOLO11 adalah keluarga model klasifikasi/deteksi modern dari Ultralytics. Varian nano dipilih agar ringan: 1.53 juta parameter, 47 lapisan, ±3.2 GFLOPs, bobot hanya 3.2 MB. Cukup untuk prototipe dan tetap cepat di CPU.
Data Training
- obat_aborsi: 240 train + 59 val (scrape Google Images).
- normal: 195 train + 48 val (makanan, dokumen, hewan, mobil, dsb.).
- Total 435 gambar train + 107 gambar val (split otomatis). Training 14 epoch, batch 32, input 224×224, CPU-only (early stop di epoch 2 karena akurasi puncak).
Metrik Kinerja
- Top-1 Accuracy (val): 95.3% — tebakan 1 teratas benar.
- Top-5 Accuracy (val): 100% — kelas benar ada di 5 besar.
- Recall moderasi: 94.9% — gambar ilegal yang berhasil diblokir.
- Precision moderasi: 93.8% — gambar yang ditandai memang ilegal.
Kinerja per Kelas (F1-score)
obat_aborsi: P 0.949 · R 0.949 · F1 0.949.normal: P 0.938 · R 0.938 · F1 0.938.
Keterbatasan & Catatan
- False positive normal: ±3 dari 48 gambar normal ditandai DIMODERASI (sengaja lebih agresif agar konten ilegal tidak lolos).
- Bottleneck OCR: ±550 ms/gambar; YOLO hanya 37 ms. OCR otomatis dilewati saat YOLO violative, jadi gambar ilegal diproses hampir seketika.
- Dataset kecil & noisy (scrape). Akurasi dapat naik dengan data lebih banyak, augmentasi, atau GPU.