บทนำ
- โปรเจกต์นี้เริ่มต้นขึ้นในฐานะประสบการณ์การเรียนรู้เพื่อพัฒนาความรู้ด้านแมชชีนเลิร์นนิงและ TensorFlow
- เป้าหมายคือการสร้างโมเดลแมชชีนเลิร์นนิงที่สามารถแก้ CAPTCHA ของ 4Chan ในเบราว์เซอร์ได้ด้วยความแม่นยำมากกว่า 80%
คำศัพท์
- CAPTCHA: แบบทดสอบที่ใช้ตรวจสอบว่าผู้ใช้คอมพิวเตอร์หรือเว็บไซต์เป็นมนุษย์หรือไม่
- 4Chan: เว็บไซต์ imageboard แบบไม่ระบุตัวตนที่มีบอร์ดสนทนาในหลากหลายหัวข้อ
- CAPTCHA แบบทั่วไป: CAPTCHA ของ 4Chan ที่ประกอบด้วยอักขระตัวอักษรและตัวเลข 5–6 ตัว
- Slider CAPTCHA: CAPTCHA รูปแบบซับซ้อนที่มีภาพพื้นหลังและภาพเบื้องหน้าซ้อนทับกัน
การเก็บข้อมูล
- ส่วนที่ยากที่สุดของปัญหาแมชชีนเลิร์นนิงคือการเก็บข้อมูล
- ความท้าทายหลักคือการสแครป CAPTCHA จาก 4Chan และหาคำตอบของมัน
การสแครป CAPTCHA จาก 4Chan
- พบวิธีดึงข้อมูล CAPTCHA ออกมาเป็นรูปแบบ JSON โดยวิเคราะห์ HTTP request
- จำเป็นต้องปรับช่วงเวลาระหว่าง request เพื่อควบคุมระดับความยากของ CAPTCHA
การหาคำตอบ
- เคยใช้บริการแก้ CAPTCHA เชิงพาณิชย์ แต่ความแม่นยำต่ำ
- ลองแก้ด้วยตัวเองหรือขอให้คนที่ไว้ใจได้ช่วยด้วย แต่ก็มีข้อจำกัด
การสร้างข้อมูลสังเคราะห์
- สร้างข้อมูลสังเคราะห์โดยเลียนแบบ CAPTCHA ของ 4Chan
- พัฒนาอัลกอริทึมสำหรับสร้าง CAPTCHA สังเคราะห์ด้วยการแยกพื้นหลังและตัวอักษรออกจากกัน
การสร้างโมเดล
- สร้างโมเดลโดยใช้สถาปัตยกรรม LSTM CNN
- ใช้ Keras และ TensorFlow ในการติดตั้งใช้งานโมเดล
การประมวลผลข้อมูล
- ปรับภาพ CAPTCHA ทั้งหมดให้เป็นขนาด 300x80 พิกเซลเพื่อนำเข้าโมเดล
- เน้นความสำคัญของเอกสารประกอบ และต้องระวังไม่ให้พลาดรายละเอียดในเอกสาร
การฝึกโมเดล
- ฝึกโมเดลด้วยภาพที่ทำด้วยมือประมาณ 500 ภาพ และภาพสังเคราะห์ 50,000 ภาพ
- การฝึกดำเนินการบน GPU NVIDIA RTX A4000
การใช้โมเดลใน TensorFlow.js
- แปลงโมเดลเป็น TensorFlow.js เพื่อให้สามารถรันในเบราว์เซอร์ได้
- ใน Python 3.12 สคริปต์แปลงไม่ทำงาน
- โมเดล Keras 3 ยังไม่รองรับใน TensorFlow.js
ประสิทธิภาพจริง
- แสดงอัตราความสำเร็จมากกว่า 90% กับ CAPTCHA จริงของ 4Chan
- แสดงประสิทธิภาพแบบเดียวกันแม้กับ CAPTCHA 4 ตัวอักษร
บทสรุป
- โปรเจกต์นี้ทำให้ได้เรียนรู้มากมายเกี่ยวกับแมชชีนเลิร์นนิงและคอมพิวเตอร์วิทัศน์
- สามารถบรรลุเป้าหมายและได้ผลลัพธ์ที่น่าพึงพอใจ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News