突破 4Chan 的验证码

主要观点:这是一个关于破解 4Chan CAPTCHA 的项目,旨在通过机器学习提升对 TensorFlow 的理解并训练能可靠解决 4Chan CAPTCHA 的模型。
关键信息

  • 介绍了 4Chan 及其 CAPTCHA 的相关术语,包括普通 CAPTCHA 和滑块 CAPTCHA。
  • 获取数据的过程,包括从 4Chan 抓取 CAPTCHA 及通过商业服务获取其解决方案,还提到了生成合成数据的方法。
  • 构建模型,采用基于研究的 LSTM CNN 架构,处理数据时要确保 CAPTCHA 图像为 300x80 像素,训练过程中不同阶段模型性能的变化及合适的 epoch 数。
  • 在 TensorFlow.js 中使用模型,遇到 Python 3.12 下转换器不工作及 TensorFlow.js 不支持 Keras 3 等问题并解决。
  • 实际应用中模型在真实 4Chan CAPTCHA 上表现良好,成功率超 90%,且对 4 字符 CAPTCHA 也有相同效果。
    重要细节
  • 抓取 4Chan CAPTCHA 时需处理ttl(过期时间约 2 分钟)和cd(冷却时间,初始 5 秒后逐渐增加),且数据获取过多会导致质量下降和 throttling。
  • 商业 CAPTCHA 服务虽能解决大部分 CAPTCHA,但仍有 10%左右错误,通过特定配置可改善。
  • 生成合成数据时要分离背景和字符,注意 4Chan CAPTCHA 包含的字符范围,按规律组合生成合成 CAPTCHA 并标注。
  • 训练数据包括约 500 手解图像和约 50,000 合成图像,随机分 90/10 为训练和评估集,训练约 45 秒每 epoch。
  • 在 TensorFlow.js 中要注意转换器对 Python 版本的要求及 Keras 版本的适配,通过设置环境变量和指定模型格式来解决。
阅读 11
0 条评论