1 puan yazan GN⁺ 2024-11-30 | 1 yorum | WhatsApp'ta paylaş

Giriş

  • Bu proje, makine öğrenimi ve TensorFlow hakkındaki bilgiyi geliştirmeye yönelik bir öğrenme deneyimi olarak başladı.
  • Amaç, tarayıcıda 4Chan CAPTCHA'sını %80'in üzerinde doğrulukla çözebilen bir makine öğrenimi modeli oluşturmaktı.

Terimler

  • CAPTCHA: Bir bilgisayarın ya da web sitesi kullanıcısının insan olup olmadığını doğrulamak için kullanılan test.
  • 4Chan: Çeşitli konularda tartışma panoları sunan anonim bir görsel pano web sitesi.
  • Genel CAPTCHA: 4Chan CAPTCHA'sının 5~6 alfasayısal karakterden oluşan türü.
  • Slider CAPTCHA: Arka plan görseli ile ön plan görselinin üst üste geldiği daha karmaşık CAPTCHA türü.

Veri toplama

  • Makine öğrenimi problemlerinde en zor kısım veri toplamaktır.
  • 4Chan'den CAPTCHA kazıyıp çözümleri elde etmek ana zorluktu.

4Chan'den CAPTCHA kazıma

  • HTTP isteklerini analiz ederek CAPTCHA verisini JSON biçiminde çıkarmanın bir yolu bulundu.
  • CAPTCHA zorluk seviyesini yönetmek için istek aralıklarını ayarlamak gerekiyordu.

Çözümleri elde etme

  • Ticari CAPTCHA çözme servisleri kullanıldı ancak doğruluk düşüktü.
  • Kendisi çözme ya da güvenilir birinden yardım isteme yöntemleri de denendi, ancak bunlar sınırlı kaldı.

Sentetik veri üretimi

  • 4Chan CAPTCHA'sını taklit ederek sentetik veri üretildi.
  • Arka plan ile karakterleri ayırarak sentetik CAPTCHA üreten bir algoritma geliştirildi.

Model oluşturma

  • Model, LSTM CNN mimarisi kullanılarak kuruldu.
  • Model Keras ve TensorFlow ile uygulandı.

Veri işleme

  • Tüm CAPTCHA görselleri modele girdi olarak verilmeden önce 300x80 piksele ayarlandı.
  • Dokümantasyonun önemi vurgulanıyor; ayrıntıları kaçırmamaya dikkat etmek gerekiyor.

Model eğitimi

  • Model, yaklaşık 500 elle etiketlenmiş görsel ve 50.000 sentetik görsel kullanılarak eğitildi.
  • Eğitim NVIDIA RTX A4000 GPU üzerinde gerçekleştirildi.

Modelin TensorFlow.js'de kullanılması

  • Model, tarayıcıda çalışabilmesi için TensorFlow.js'e dönüştürüldü.
  • Dönüştürme betiği Python 3.12'de çalışmıyor.
  • Keras 3 modelleri TensorFlow.js tarafından desteklenmiyor.

Gerçek dünya performansı

  • Gerçek 4Chan CAPTCHA'larında %90'ın üzerinde başarı oranı gösterdi.
  • 4 karakterli CAPTCHA'larda da aynı performans görüldü.

Sonuç

  • Bu proje sayesinde makine öğrenimi ve bilgisayarlı görü hakkında çok şey öğrenildi.
  • Hedefe ulaşıldı ve tatmin edici bir sonuç elde edildi.

1 yorum

 
GN⁺ 2024-11-30
Hacker News görüşleri
  • Görselleştirme verilerini bir JSON betiği kullanarak ayrıştırmak karmaşık bir iş
    • 4chan e-posta doğrulaması istemeye başlamış
  • Keras ile Tensorflow.js arasındaki birlikte çalışabilirlik sorunları, Tensorflow’un tipik bir problemi
    • TF, birleşik bir üründen çok ilişkili araçların bir koleksiyonu gibi hissettiriyor
    • Google’ın tüm açık kaynak kütüphane/araçları da benzer bir his veriyor
  • İnsanların bozulmuş metin tabanlı CAPTCHA’lardan neden kaçındığının bir sebebi var
    • Bilgisayarlar bunları insanlardan daha iyi çözebilecek seviyeye ulaştı
    • Bununla ilgili ilginç bir makale var
  • Şaşırtıcı biçimde, birçok metin tabanlı CAPTCHA birkaç satırlık shell script ile çözülebiliyor
    • imagemagik ile gri tonlamaya çevirip ardından teserract ile işlemek mümkün
  • 2captcha.net gibi siteler de var
    • CAPTCHA, asgari düzeyde çaba gerektiren bir engel gibi
  • CAPTCHA gibi davranıp kullanıcı davranışını ve zamanlamayı analiz etmenin daha iyi olup olmayacağını merak ediyorum
    • Karşı tarafın insan olup olmadığını anlamak için yapay zekayı eğiten bir "ters Turing testi" icat edilebilir
  • Silk Road CAPTCHA’sına dair 2014 tarihli bir analiz var
  • 4chan’in uygun tepkisi, insanın işini basitleştirmek olurdu
    • Karmaşık CAPTCHA’lar insanlar için rahatsızlığı artırıyor ve makinelerin çözebilmesini azaltmıyor
  • 4chan CAPTCHA’sındaki karakter seçiminin ırkçı/aşırılıkçı sloganlar oluşturabilecek şekilde kasıtlı yapılmış olma ihtimali var
    • Belirli karakterler sık kullanılıyor
    • Rastgele görünüyor ama belirli kalıplar sık ortaya çıkıyor
  • 4chan CAPTCHA’sını çözen bir proje mevcut
  • 4chan kullanmaya çalıştım ama CAPTCHA’yı geçemedim
  • 4chan’in Google CAPTCHA gibi bot davranışı tespiti yapıp yapmadığını merak ediyorum