1 poin oleh GN⁺ 2024-11-30 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-11-30
Opini Hacker News
  • Mengurai data visualisasi menggunakan skrip JSON adalah pekerjaan yang rumit
    • 4chan mulai mewajibkan verifikasi email
  • Masalah interoperabilitas antara Keras dan Tensorflow.js adalah masalah khas Tensorflow
    • TF terasa lebih seperti kumpulan alat yang saling terkait daripada produk yang terintegrasi
    • Semua pustaka/alat open source Google memberi kesan yang mirip
  • Ada alasan mengapa orang menghindari CAPTCHA berbasis teks yang terdistorsi
    • Sudah mencapai tingkat di mana komputer dapat menyelesaikannya lebih baik daripada manusia
    • Ada makalah menarik yang terkait
  • Mengejutkannya, banyak CAPTCHA berbasis teks bisa diselesaikan dengan beberapa baris skrip shell
    • Bisa diubah ke grayscale dengan imagemagik lalu diproses dengan teserract
  • Ada juga situs seperti 2captcha.net
    • CAPTCHA pada dasarnya sama seperti meminta upaya minimum
  • Ada yang bertanya-tanya apakah lebih baik menyamarkan analisis perilaku dan timing pengguna sebagai CAPTCHA
    • Bisa saja diciptakan 'tes Turing terbalik' yang melatih AI untuk menilai apakah lawannya manusia atau bukan
  • Ada analisis tahun 2014 tentang CAPTCHA Silk Road
  • Respons yang tepat dari 4chan adalah menyederhanakan pekerjaan manusia
    • CAPTCHA yang rumit menambah ketidaknyamanan bagi manusia dan tidak mengurangi kemungkinan mesin untuk menyelesaikannya
  • Ada kemungkinan pemilihan karakter pada CAPTCHA 4chan memang dimaksudkan agar dapat membentuk slogan rasis/ekstrem
    • Karakter tertentu sering digunakan
    • Terlihat acak, tetapi pola tertentu sering muncul
  • Ada proyek yang dibuat untuk menyelesaikan CAPTCHA 4chan
  • Ada pengalaman mencoba menggunakan 4chan tetapi gagal melewati CAPTCHA
  • Ada yang penasaran apakah 4chan mendeteksi perilaku bot seperti CAPTCHA Google