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
Hacker News görüşleri
imagemagikile gri tonlamaya çevirip ardındanteserractile işlemek mümkün2captcha.netgibi siteler de var