Pengantar
- Proyek ini dimulai sebagai pengalaman belajar untuk meningkatkan pengetahuan tentang machine learning dan TensorFlow.
- Tujuannya adalah membuat model machine learning yang dapat menyelesaikan CAPTCHA 4Chan di browser dengan akurasi lebih dari 80%.
Istilah
- CAPTCHA: Tes untuk memverifikasi apakah pengguna komputer atau situs web adalah manusia.
- 4Chan: Situs imageboard anonim yang menyediakan papan diskusi untuk berbagai topik.
- CAPTCHA biasa: CAPTCHA 4Chan yang terdiri dari 5~6 karakter alfanumerik.
- Slider CAPTCHA: Bentuk CAPTCHA yang lebih kompleks, dengan gambar latar belakang dan gambar latar depan yang saling tumpang tindih.
Pengumpulan data
- Bagian tersulit dalam masalah machine learning adalah mengumpulkan data.
- Tantangan utamanya adalah melakukan scraping CAPTCHA dari 4Chan dan mendapatkan solusinya.
Scraping CAPTCHA dari 4Chan
- Ditemukan cara mengekstrak data CAPTCHA dalam format JSON dengan menganalisis permintaan HTTP.
- Interval antar permintaan harus diatur untuk mengelola tingkat kesulitan CAPTCHA.
Mendapatkan solusi
- Layanan komersial pemecah CAPTCHA sempat digunakan, tetapi akurasinya rendah.
- Mencoba menyelesaikannya sendiri atau meminta bantuan orang yang tepercaya juga pernah dilakukan, tetapi terbatas.
Pembuatan data sintetis
- Data sintetis dibuat dengan meniru CAPTCHA 4Chan.
- Dikembangkan algoritme untuk membuat CAPTCHA sintetis dengan memisahkan latar belakang dan karakter.
Pembuatan model
- Model dibangun menggunakan arsitektur LSTM CNN.
- Model diimplementasikan dengan Keras dan TensorFlow.
Pemrosesan data
- Semua gambar CAPTCHA diubah ukurannya menjadi 300x80 piksel untuk dimasukkan ke model.
- Pentingnya dokumentasi ditekankan, dan perlu berhati-hati agar tidak melewatkan detail dalam dokumentasi.
Pelatihan model
- Model dilatih menggunakan sekitar 500 gambar manual dan 50.000 gambar sintetis.
- Pelatihan dilakukan di GPU NVIDIA RTX A4000.
Menggunakan model di TensorFlow.js
- Model dikonversi ke TensorFlow.js agar dapat dijalankan di browser.
- Skrip konversi tidak berfungsi di Python 3.12.
- Model Keras 3 tidak didukung di TensorFlow.js.
Kinerja nyata
- Menunjukkan tingkat keberhasilan lebih dari 90% pada CAPTCHA 4Chan nyata.
- Menunjukkan performa yang sama pada CAPTCHA 4 karakter.
Kesimpulan
- Melalui proyek ini, banyak hal dipelajari tentang machine learning dan computer vision.
- Tujuan berhasil dicapai dan menghasilkan hasil yang memuaskan.
1 komentar
Opini Hacker News