1 คะแนน โดย GN⁺ 2024-11-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

บทนำ

  • โปรเจกต์นี้เริ่มต้นขึ้นในฐานะประสบการณ์การเรียนรู้เพื่อพัฒนาความรู้ด้านแมชชีนเลิร์นนิงและ 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 ความคิดเห็น

 
GN⁺ 2024-11-30
ความคิดเห็นจาก Hacker News
  • การใช้สคริปต์ JSON เพื่อแยกวิเคราะห์ข้อมูลสำหรับการทำภาพข้อมูลเป็นงานที่ซับซ้อน
    • 4chan เริ่มบังคับให้ยืนยันอีเมล
  • ปัญหาการทำงานร่วมกันระหว่าง Keras และ Tensorflow.js เป็นปัญหาแบบฉบับของ Tensorflow
    • TF ให้ความรู้สึกเหมือนเป็นชุดเครื่องมือที่เกี่ยวข้องกันมากกว่าจะเป็นผลิตภัณฑ์ที่บูรณาการเป็นหนึ่งเดียว
    • ไลบรารี/เครื่องมือโอเพนซอร์สของ Google หลายตัวก็ให้ความรู้สึกคล้ายกัน
  • มีเหตุผลว่าทำไมผู้คนถึงหลีกเลี่ยง CAPTCHA แบบข้อความที่บิดเบี้ยว
    • มันมาถึงระดับที่คอมพิวเตอร์แก้ได้ดีกว่ามนุษย์แล้ว
    • มีงานวิจัยที่น่าสนใจเกี่ยวกับเรื่องนี้
  • น่าแปลกที่ CAPTCHA แบบข้อความจำนวนมากสามารถแก้ได้ด้วยเชลล์สคริปต์ไม่กี่บรรทัด
    • ใช้ imagemagik แปลงเป็นระดับสีเทา แล้วประมวลผลด้วย teserract ได้
  • ยังมีเว็บไซต์อย่าง 2captcha.net ด้วย
    • CAPTCHA ก็เหมือนกับการบังคับให้ใช้ความพยายามเพียงเล็กน้อย
  • สงสัยว่าการวิเคราะห์พฤติกรรมและจังหวะเวลาของผู้ใช้โดยอำพรางเป็น CAPTCHA จะดีกว่าหรือไม่
    • อาจประดิษฐ์ "การทดสอบทัวริงแบบย้อนกลับ" ที่ฝึก AI ให้ตัดสินว่าอีกฝ่ายเป็นมนุษย์หรือไม่ใช่มนุษย์
  • มีบทวิเคราะห์ CAPTCHA ของ Silk Road จากปี 2014
  • การตอบสนองที่เหมาะสมของ 4chan คือทำให้งานของมนุษย์ง่ายขึ้น
    • CAPTCHA ที่ซับซ้อนเพิ่มความไม่สะดวกให้มนุษย์ แต่ไม่ได้ลดความเป็นไปได้ที่เครื่องจะแก้ได้
  • มีความเป็นไปได้ว่าการเลือกตัวอักษรใน CAPTCHA ของ 4chan ถูกตั้งใจให้สามารถสร้างสโลแกนเหยียดเชื้อชาติ/สุดโต่งได้
    • มีการใช้ตัวอักษรบางตัวบ่อยครั้ง
    • แม้จะดูสุ่ม แต่รูปแบบบางอย่างเกิดขึ้นบ่อย
  • มีโปรเจ็กต์สำหรับแก้ CAPTCHA ของ 4chan
  • มีประสบการณ์ที่พยายามใช้ 4chan แต่ผ่าน CAPTCHA ไม่ได้
  • สงสัยว่า 4chan ตรวจจับพฤติกรรมบอตแบบเดียวกับ CAPTCHA ของ Google หรือไม่