Moderasi Gambar Otomatis

YOLOv11 · Tesseract OCR · Keyword Filtering

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

Input Gambar
YOLO11-clsdeteksi visual
Violative?kelas obat_aborsi
Ya
DIMODERASIOCR dilewati
Tidak
Tesseract OCRekstraksi teks
Keyword FilterOCR + nama file
Keyword cocok?
Ya
DIMODERASI
Tidak
LOLOS

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.