第一步怎么做呢?我们怎么识别目标缺口到底在图片的哪个地方?

做爬虫的同学肯定对验证码有些苦恼。一开始,大部分验证码都是图形验证码。然而,在过去的几年里,“极限检查”验证码诞生了,行为验证码也越来越流行。其中一种形式是滑块验证码。

什么是滑块验证码?如图,验证码是一个长方形的图片,图片左侧会出现一个滑块,右侧会出现一个缝隙,下侧会出现一个滑轨。左侧的滑块将随着滑轨的拖动而移动。如果左边的滑块可以滑到右边的槽口,则验证完成。

由于这种形式的验证码交互更加友好,安全性和美观性也会更高,所以这种验证码越来越流行。此外,不仅是“Extreme Check”,其他很多验证码服务商也推出了类似的验证码服务,比如“网易易盾”等。上图为“网易易盾”的滑动验证码”。

是的,确实这个滑动验证码的出现让很多网站变得更加安全。但是爬虫很困扰。如果用自动化的方法绕过这个滑动验证码,关键在于以下两点:

• 找到目标间隙的位置。• 模拟人的滑动轨迹以将滑块滑动到槽口。

那么问题来了,第一步是什么?

我们如何确定目标差距在图片中的位置?你可能想到的答案是:

• 直接用手穿梭。• 使用图像处理算法检测间隙特征。• 与打码平台对接,获取缝隙位置。

另外,对于捷讯来说,还有另外一种识别gap的方法,就是比较原图和gap图的差异,通过遍历像素点找到gap的位置,不过这种方法比较投机。如果我们更换验证码服务商,不给我们原图,我们将无法比较计算。

总之易语言过滑块验证思路,我们的目标是输入一张图片,输出缝隙的位置。

上述方法要么费时费力,要么准确率不高。还有其他解决方案吗?

当然有。

在深度学习如此火爆的今天,基于深度学习的图像识别技术发展相对成熟。那么我们可以用它来识别缝隙的位置吗?

答案是,没问题,我们只需要将这个问题简化为深度学习的“对象检测”问题。

听到这里,现在可能有的同学已经灰心了,深度学习?如果我还没有完成我的浅层学习怎么办?

不用担心。

本节介绍的内容,全程没有一行代码,不需要任何深度学习基础。我们只需要稍微移动一下,就可以构建一个识别验证码差距的深度学习模型。

如此惊人?是的,那么在本节中,我将带您实现它。

目标检测

首先,在开始之前先简单说一下目标检测。什么是物体检测?顾名思义,就是找到我们要找的东西。比如给一张“狗”的图片,如图:

我们想知道狗在哪里,它的舌头在哪里,如果找到了,我们可以选择它们。这是物体检测。

经过目标检测算法处理后,我们期望得到的图片是这样的:

可以看出,狗和它的舌头是通过框选出来的,这样就完成了一个很好的目标检测。

现在比较流行的目标检测算法有R-CNN、Fast R-CNN、Faster R-CNN、SSD、YOLO等,有兴趣的同学可以了解一下。当然,他们不懂也没关系。

还有一点要提的是,不懂深度学习的同学可以看一下,懂的就跳过下一段。

既然我们要建立一个模型来实现一个物体检测算法,那么模型怎么知道我们要识别什么?就像上图一样,模型怎么知道我们要识别的是狗而不是草,是舌头而不是鼻子。这是因为,既然叫深度学习,就一定有东西要学。因此,构建深度学习模型需要训练数据。什么都不告诉模型,模型从哪里学习?所以我们要提前准备一些标注位置的图片供模型学习(训练),比如准备很多狗的图片和狗的轮廓位置,模型会自动学习两者之间的关系训练过程中的图片和标记位置。模型训练好后,

因此,在迁移到验证码差距识别的任务时,我们的第一步是为模型提供一些训练数据。训练数据包括验证码的图片和缝隙的位置和轮廓信息。

那么,在这种情况下易语言过滑块验证思路,第一步是准备一批验证码数据,用于标记和训练。

准备训练数据

这里我用的是网易易盾的验证码,链接是:.

我写了一些爬虫爬下来的验证码图片。攀爬方法我就不赘述了,简单粗暴地做。

爬下来的验证码是这样的:

我们不需要滑轨的部分,只保留验证码本身的图片和上面的两个缝隙。下面是我准备的验证码的一些图片:

我爬了大约一千,越多越好。当然,对于今天的任务,其实几十上百张图就够了。

标记间隙位置

下一步是标记间隙的位置。想一想,这一步好不容易搞定,难道还要每张图都去量一下吗?这很累。

图片[1]-第一步怎么做呢?我们怎么识别目标缺口到底在图片的哪个地方?-老王博客

很多同学可能会在这一步望而却步,更别提后面的模型训练了。

但正如我们在文章开头所说,我们不需要编写一行代码,只需点击几下即可构建模型。怎么做?我们可以使用一些平台和工具。

今天的主角华为云ModelArts来了。这是我发现的一个华为云的深度学习平台。有了它,我们就可以完成数据标注、模型训练、模型部署三个步骤。最重要的是,我们不需要写代码,直接点击即可完成。

我们进入华为云ModelArts看看:

它内置了深度学习模型,包括图像分类、物体检测、预测分析等,我们可以直接使用它们来快速构建自己的模型。

这里我们切换到“自动学习”选项卡并创建一个对象检测项目。

进入项目,可以看到顶部显示了三个步骤:

• 数据标注 • 模型训练 • 在线部署

也就是说,经过这三个步骤,我们就可以构建和部署一个深度学习模型。

页面如图所示:

那么我们就进入第一步——数据标注。这里我上传了一些验证码的图片到页面,这里我上传了112张图片:

上传后,我们可以点击每张图片进行标记。该平台提供了非常方便的标注功能。它只需要用鼠标拖动一个轮廓即可完成。标记112张图片仅需几分钟。选择这样一个轮廓就行了,如图:

在这里,需要选择整个间隙的整个框架。上下边框可以与标注框架相切。简而言之,确保标注框架只选择间隙框架。平台会自动保存并记录标记的像素。点位置。

标记一个后,它会提示添加一个名称。我这里加的名字叫做“边界”,可以随意指定。

完成所有标记后,单击“保存并返回”按钮。

火车

好了,标注好之后,我们就可以开始训练了。我们这里不需要写任何代码,因为平台已经给我们写好了,内置目标检测的深度学习模型,我们只需要提供数据进行训练,如图:

在这里,我们只需要设置“Maximum Training Duration”。其实有了这样一张图,几分钟就可以完成训练。您可以随意填写“Maximum Training Duration”。最小不小于0.05,完成。然后您可以单击“开始训练”按钮进行训练。

几分钟后,训练完成,可以看到类似下图的页面:

此处显示了模型的各种参数和指标。

是的,你没看错,我们没有编写任何代码,并且在短短几分钟内,模型就被训练好并准备好上线了。

部署测试

然后进行下一步,在线部署,点击左上角的部署按钮即可:

过一会,部署成功后,可以看到类似这样的界面:

在这里,我们可以上传任何验证码图像进行测试。比如我随意上传一张无标签的验证码图片,然后它会展示给我们预测结果,如图:

可以看到,它检测到间隙的位置,并在右侧显示具体的像素值和置信度:

是的,测试结果还是比较准确的。有了这个结果,我们接下来模拟滑动到标注结果的左边框位置!具体的仿真过程在此不再赘述。

另外,平台还提供了模型部署后的URL接口和接口调用指南,即我们只需要上传任意一张验证码图片到接口,就可以得到缝隙的位置!调用方法可以在:.

嗯,就是这样,我们用非常简单的操作在几分钟内搭建了一个深度学习模型,没有任何代码,准确率也不错。

当然,这里我们只标注了100多张图片。标记越多,标记越准确,模型的准确性越高。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论