专栏名称: 中国人工智能学会
关注中国人工智能学会官方公共账号,收取学会的科普信息、新闻动态、活动预告及人工智能领域科技前沿信息。
目录
相关文章推荐
新机器视觉  ·  光学系统常用光学参数的测量 ·  10 小时前  
爱可可-爱生活  ·  【[281星]wrtnlabs/autobe ... ·  昨天  
爱可可-爱生活  ·  【[5星]Anime Speaker ... ·  昨天  
爱可可-爱生活  ·  //@爱可可-爱生活:欢迎参与~-20250 ... ·  2 天前  
爱可可-爱生活  ·  【[357星]ROLL:阿里巴巴推出的高效强 ... ·  2 天前  
51好读  ›  专栏  ›  中国人工智能学会

仅需15分钟,使用OpenCV+Keras轻松破解验证码

中国人工智能学会  · 公众号  · AI  · 2017-12-14 17:12

正文

请到「今天看啥」查看全文


4 ;

  • /* Array of fonts. Randomly picked up per character */

  • $this->fonts = array(

  • dirname( __FILE__ ) . '/gentium/GenBkBasR.ttf' ,

  • dirname( __FILE__ ) . '/gentium/GenBkBasI.ttf' ,

  • dirname( __FILE__ ) . '/gentium/GenBkBasBI.ttf' ,

  • dirname( __FILE__ ) . '/gentium/GenBkBasB.ttf' ,

  • );


  • 没错,它会生成四个字母/数字组成的 CAPTCHA 验证码,每个字符的字体各不相同,在代码中我们也可以看出验证码中不会包含「O」或者「I」,因为这两个字母很可能会让人与数字产生混淆。所以,我们共有 32 个数字或字母需要识别。没问题!


    至此用时:2 分钟


    我们需要的工具


    在开始破解之前,我们先要介绍一下行动所需的工具:


    Python 3


    Python 是目前人工智能领域中最为流行的编程语言,包含多种机器学习和计算机视觉库。


    OpenCV


    OpenCV 是计算机视觉和图像处理任务上的流行框架。在这里,我们需要使用 OpenCV 来处理 CAPTCHA 生成的图像,OpenCV 拥有 Python API,所以我们可以直接使用 Python 调用它。


    Keras


    Keras 是一个使用 Python 编写的深度学习框架。他可以让我们更加轻松地定义、训练和使用深度神经网络——仅需编写很少的代码。


    TensorFlow


    TensorFlow 是谷歌推出与维护的机器学习库,也是目前人工智能领域里最为流行的框架。我们会在 Keras 之上写代码,但 Keras 实际上并没有实现神经网络运算的方法——它需要使用 TensorFlow 作为后端来完成具体的工作。


    好了,让我们回到挑战之中。


    创立数据集


    想要训练任何机器学习系统,我们都需要相应的数据集。为了破解 CAPTCHA 验证码系统,我们需要这样的训练数据:



    看起来少不了大量的标注工作。不过在这里我们有了 WordPress 插件的源代码,我们可以稍稍修改插件,让它自动输出 10,000 个 CAPTCHA 图片,以及相应的正确答案。


    在对源代码的几分钟破解之后(只要简单地加个『for』循环),我们就拥有了一个内含 10,000 张 PNG 图片的训练集,而图片的正确答案就是每张图片的文件名:



    Note:在这部分我不会给你示例代码。因为本文面向教学,希望各位不会真的去破解各家 WordPress 网站。不过这里我会给你 10,000 张生成的图片让大家用于复现。


    至此用时:5 分钟








    请到「今天看啥」查看全文