至此用时:2 分钟
我们须要的对象
在开端破解之前,我们先要介绍一下行动所需的对象:
Python 3
Python 是今朝人工智能范畴中最为风行的编程说话,包含多种机械进修和计算机视觉库。
OpenCV
OpenCV 是计算机视觉和图像处理义务上的风行框架。在这里,我们须要应用 OpenCV 来处理 CAPTCHA 生成的图像,OpenCV 拥有 Python API,所以我们可以直接应用 Python 调用它。
Keras 是一个应用 Python 编写的深度进修框架。他可以让我们加倍轻松地定义、练习和应用深度神经收集——仅需编写很少的代码。
这里有一个简单的解决筹划,如不雅字符轮廓的宽要比高长一些,那
TensorFlow 是谷歌推出与保护的机械进修库,也是今朝人工智能范呈攀里最为风行的框架。我们会在 Keras 之上写代码,但 Keras 实际上并没有实现神经统??算的办法——它须要应用 TensorFlow 作为后妒攀来完成具体的工作。
好了,让我们回到挑衅之中。
创建数据集
想要练习任何机械进修体系,我们都须要响应的数据集。为了破解 CAPTCHA 验证码体系,我们须要如许的练习数据:
看起来少不了大年夜量的标注工作。不过在这里我们有了 WordPress 插件的源代码,我们可以稍稍修改插件,让它主动输出 10,000 个 CAPTCHA 图片,以及响应的┞俘确谜底。
在对源代码的几分钟破解之后(只要简单地加个『for』轮回),我们就拥有了一个内含 10,000 张 PNG 图片的练习集,而图片的┞俘确答檀卷是每张图片的文件名:
Note:在这部分我不会给你示例代码。因为本文面向教授教化,欲望各位不会真的去破解各家 WordPress 网站。不过这里我会给你 10,000 张生成的图片让大年夜家用于复现。
至此用时:5 分钟
如今我们有办法采取自力的字符,是以我们须要将所有的 CAPTCHA 图像都履行这种处理。我们的目标是收集每个字符的不合变体,并将单个字符的所有变体保存在一个文件夹中。
因为有了足够的数据,这种办法将能很好地工作,但我们可以使问题变得更简单。因为问题越简单、练习数据越少,我们解决问题所须要的计算力就越少,毕竟我们总共只有 15 分钟的时光。
如今我们已经有了练习数据,我们可以直接用它来练习一个简单的神经收集:
荣幸的是,一个 CAPTCHA 图像由四个相符构成,是以我们可以以某种方法将图像瓜分开以令每张图像只有一个符号。如许的话我们只需练习神经收集辨认单个字符就行了。
TensorFlow
我们并不克不及手动地用 Photoshop 等图像软件将它们瓜分开,因为练习图像总共有 1 万张。此外,我们也不克不及将图像切分为四个等大年夜小的图像块,因为 CAPTCHA 会随机地将这些不合的字符放置在不合的程度线上,如下所示:
荣幸的是,我们能应用已有的办法主动完成这一部分。在图像处理中,我们经常须要检测有雷同色彩的像素块,这些持续像素块的界线可以称之为轮廓。而 OpenCV 有一个内置的 findContours() 函数可以检测这些轮廓的区域。
所以我们原始的 CAPTCHA 图像为如下所示:
然后我们将该图像转换为纯净的诟谇像素点(即采取色彩阈值的办法),是以我们将很轻易寻找到持续的轮廓界线:
简化问题
推荐阅读
开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 此刻,或许要脑补很多画面,但我们今天抛开社会舆论和>>>详细阅读
本文标题:仅需15分钟,使用OpenCV+Keras轻松破解验证码
地址:http://www.17bianji.com/lsqh/39801.html
1/2 1