验证码图片生成方法和装置制造方法及图纸

技术编号:20683409 阅读:21 留言:0更新日期:2019-03-27 19:42
本申请实施例公开了验证码图片生成方法和装置。该方法的一具体实施方式包括:获取验证用字符;生成包含验证用字符的字符图片;对字符图片添加用于对抗基于神经网络的验证码识别模型的扰动,得到验证码图片,扰动基于差分进化算法得出。该实施方式实现了能够有效防止基于神经网络的图像识别算法破解的验证码图片的快速生成,提升了验证码图片对恶意攻击的安全防护性能。

【技术实现步骤摘要】
验证码图片生成方法和装置
本申请实施例涉及计算机
,具体涉及身份验证
,尤其涉及验证码图片生成方法和装置。
技术介绍
CAPTCHA(验证码)是“CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。通常验证码以图片形式呈现,由于机器难以自动识别验证码图片的内容,而人类可以容易地识别出验证码图片的内容,因此可以用于验证是否为人工操作。验证码技术可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。基于图像识别的验证码攻击方式可以自动识别验证码图片中的字符,传统的验证码机器识别抵御机制主要采用在图片中增加基于边缘检测等图像检测算法无法准确分割的几何图案、或者对字符进行扭曲变形等的方式。随着人工智能技术的发展,出现了采用诸如基于神经网络的图像识别算法识别验证码的方法。基于神经网络的图像识别算法对包含这些几何图案、扭曲变形的字体的验证码图片具有较强的鲁棒性,在经过足够数量的样本训练之后,可以比较准确地识别出验证码图片中的字符。
技术实现思路
本申请实施例提出了验证码图片生成方法和装置。第一方面,本申请实施例提供了一种验证码图片生成方法,包括:获取验证用字符;生成包含验证用字符的字符图片;对字符图片添加用于对抗基于神经网络的验证码识别模型的扰动,得到验证码图片,扰动基于差分进化算法得出。在一些实施例中,上述验证码图片按照如下方式生成:在字符图片上叠加采用差分进化算法迭代更新得到的扰动向量集合,生成验证码图片;其中,添加更新后的扰动向量集合的字符图片对基于神经网络的验证码识别模型的识别准确性的干扰程度强于添加更新前的扰动向量集合的字符图片对基于神经网络的验证码识别模型的识别准确性的干扰程度。在一些实施例中,上述在字符图片上叠加采用差分进化算法迭代更新得到的扰动向量集合,生成验证码图片,包括:获取基于样本验证码图片集合对图像识别神经网络训练得到的验证码识别模型,以及训练得到的验证码识别模型对样本验证码图片集合的第一识别结果;初始化扰动向量集合,扰动向量集合中的扰动向量是对上述样本验证码图片中的随机位置的预设数量个像素赋予随机值生成的;基于扰动向量集合中的扰动向量的差分向量迭代更新扰动向量集合,使得验证码识别模型对添加更新后的扰动向量集合的样本验证码图片集合的识别结果与第一识别结果之间的偏离程度满足预设的条件。在一些实施例中,上述基于扰动向量集合中的扰动向量的差分向量迭代更新扰动向量集合,包括:迭代执行预设次如下搜索操作:将当前扰动向量集合中的扰动向量添加至样本验证码图片集合中,利用训练得到的验证码识别模型对添加扰动向量后的样本验证码图片集合进行识别,得到第二识别结果;随机选择当前扰动向量集合中的扰动向量进行差分变异,得到差分变异后的扰动向量集合;将差分变异后的扰动向量集合中的扰动向量添加至样本验证码图片集合中,利用训练得到的验证码识别模型对添加差分变异后的后的扰动向量的样本验证码图片集合进行识别,得到第三识别结果;比对第二识别结果偏离第一识别结果的置信度以及第三识别结果偏离第一识别结果的置信度;若第二识别结果偏离第一识别结果的置信度小于第三识别结果偏离第一识别结果的置信度,将差分变异后的扰动向量集合作为下一次搜索操作中的当前扰动向量集合;若第二识别结果偏离第一识别结果之间的置信度大于第三识别结果偏离第一识别结果的置信度,将当前搜索操作中的当前扰动向量集合作为下一次搜索操作中的当前扰动向量集合。在一些实施例中,上述生成包含验证用字符的字符图片,包括:从预设的字符图形库中确定出各验证用字符的字符图形,将各验证用字符的字符图形组合为字符图片。在一些实施例中,上述生成包含验证用字符的字符图片,包括:构建包含验证用字符的图片,对包含验证用字符的图片添加预设的几何噪音后得到字符图片。在一些实施例中,上述方法还包括:推送验证码图片;获取发出验证请求的对象根据验证码图片提供的待验证字符,并与验证用字符进行比对,根据比对结果判断发出验证请求的对象是否通过验证。第二方面,本申请实施例提供了一种验证码图片生成装置,包括:获取单元,被配置为获取验证用字符;生成单元,被配置为生成包含验证用字符的字符图片;扰动单元,被配置为对字符图片添加用于对抗基于神经网络的验证码识别模型的扰动,得到验证码图片,扰动基于差分进化算法得出。在一些实施例中,上述扰动单元被配置为按照如下方式生成验证码图片:在字符图片上叠加采用差分进化算法迭代更新得到的扰动向量集合,生成验证码图片;其中,添加更新后的扰动向量集合的字符图片对基于神经网络的验证码识别模型的识别准确性的干扰程度强于添加更新前的扰动向量集合的字符图片对基于神经网络的验证码识别模型的识别准确性的干扰程度。在一些实施例中,上述扰动单元被配置为进一步按照如下方式生成验证码图片:获取基于样本验证码图片集合对图像识别神经网络训练得到的验证码识别模型,以及训练得到的验证码识别模型对样本验证码图片集合的第一识别结果;初始化扰动向量集合,扰动向量集合中的扰动向量是对上述样本验证码图片中的随机位置的预设数量个像素赋予随机值生成的;基于扰动向量集合中的扰动向量的差分向量迭代更新扰动向量集合,使得验证码识别模型对添加更新后的扰动向量集合的样本验证码图片集合的识别结果与第一识别结果之间的偏离程度满足预设的条件。在一些实施例中,上述扰动单元进一步被配置为按照如下方式迭代更新扰动向量集合:迭代执行预设次如下搜索操作:将当前扰动向量集合中的扰动向量添加至样本验证码图片集合中,利用训练得到的验证码识别模型对添加扰动向量后的样本验证码图片集合进行识别,得到第二识别结果;随机选择当前扰动向量集合中的扰动向量进行差分变异,得到差分变异后的扰动向量集合;将差分变异后的扰动向量集合中的扰动向量添加至样本验证码图片集合中,利用训练得到的验证码识别模型对添加差分变异后的后的扰动向量的样本验证码图片集合进行识别,得到第三识别结果;比对第二识别结果偏离第一识别结果的置信度以及第三识别结果偏离第一识别结果的置信度;若第二识别结果偏离第一识别结果的置信度小于第三识别结果偏离第一识别结果的置信度,将差分变异后的扰动向量集合作为下一次搜索操作中的当前扰动向量集合;若第二识别结果偏离第一识别结果之间的置信度大于第三识别结果偏离第一识别结果的置信度,将当前搜索操作中的当前扰动向量集合作为下一次搜索操作中的当前扰动向量集合。在一些实施例中,上述生成单元进一步被配置为按照如下方式生成包含验证用字符的字符图片:从预设的字符图形库中确定出各验证用字符的字符图形,将各验证用字符的字符图形组合为字符图片。在一些实施例中,上述生成单元进一步被配置为按照如下方式生成包含验证用字符的字符图片:构建包含验证用字符的图片,对包含验证用字符的图片添加预设的几何噪音后得到字符图片。在一些实施例中,上述装置还包括:推送单元,被配置为推送验证码图片;验证单元,被配置为获取发出验证请求的对象根据验证码图片提供的待验证字符,并与验证用字符进行比对,根据本文档来自技高网...

【技术保护点】
1.一种验证码图片生成方法,包括:获取验证用字符;生成包含所述验证用字符的字符图片;对所述字符图片添加用于对抗基于神经网络的验证码识别模型的扰动,得到验证码图片,所述扰动基于差分进化算法得出。

【技术特征摘要】
1.一种验证码图片生成方法,包括:获取验证用字符;生成包含所述验证用字符的字符图片;对所述字符图片添加用于对抗基于神经网络的验证码识别模型的扰动,得到验证码图片,所述扰动基于差分进化算法得出。2.根据权利要求1所述的方法,其中,所述验证码图片按照如下方式生成:在所述字符图片上叠加采用差分进化算法迭代更新得到的扰动向量集合,生成所述验证码图片;其中,添加更新后的扰动向量集合的字符图片对基于神经网络的验证码识别模型的识别准确性的干扰程度强于添加更新前的扰动向量集合的字符图片对基于神经网络的验证码识别模型的识别准确性的干扰程度。3.根据权利要求2所述的方法,其中,所述在所述字符图片上叠加采用差分进化算法迭代更新得到的扰动向量集合,生成所述验证码图片,包括:获取基于样本验证码图片集合对图像识别神经网络训练得到的验证码识别模型,以及所述训练得到的验证码识别模型对样本验证码图片集合的第一识别结果;初始化扰动向量集合,所述扰动向量集合中的扰动向量是对所述样本验证码图片中的随机位置的预设数量个像素赋予随机值生成的;基于扰动向量集合中的扰动向量的差分向量迭代更新扰动向量集合,使得所述验证码识别模型对添加更新后的扰动向量集合的样本验证码图片集合的识别结果与所述第一识别结果之间的偏离程度满足预设的条件。4.根据权利要求3所述的方法,其中,所述基于扰动向量集合中的扰动向量的差分向量迭代更新扰动向量集合,包括:迭代执行预设次如下搜索操作:将当前扰动向量集合中的扰动向量添加至所述样本验证码图片集合中,利用训练得到的验证码识别模型对添加扰动向量后的样本验证码图片集合进行识别,得到第二识别结果;随机选择当前扰动向量集合中的扰动向量进行差分变异,得到差分变异后的扰动向量集合;将差分变异后的扰动向量集合中的扰动向量添加至所述样本验证码图片集合中,利用训练得到的验证码识别模型对添加差分变异后的后的扰动向量的样本验证码图片集合进行识别,得到第三识别结果;比对所述第二识别结果偏离所述第一识别结果的置信度以及所述第三识别结果偏离所述第一识别结果的置信度;若所述第二识别结果偏离所述第一识别结果的置信度小于所述第三识别结果偏离所述第一识别结果的置信度,将所述差分变异后的扰动向量集合作为下一次搜索操作中的当前扰动向量集合;若所述第二识别结果偏离所述第一识别结果之间的置信度大于所述第三识别结果偏离所述第一识别结果的置信度,将当前搜索操作中的当前扰动向量集合作为下一次搜索操作中的当前扰动向量集合。5.根据权利要求1所述的方法,其中,所述生成包含所述验证用字符的字符图片,包括:从预设的字符图形库中确定出各所述验证用字符的字符图形,将各所述验证用字符的字符图形组合为所述字符图片。6.根据权利要求1所述的方法,其中,所述生成包含所述验证用字符的字符图片,包括:构建包含验证用字符的图片,对所述包含验证用字符的图片添加预设的几何噪音后得到所述字符图片。7.根据权利要求1-6任一项所述的方法,其中,所述方法还包括:推送所述验证码图片;获取发出验证请求的对象根据所述验证码图片提供的待验证字符,并与所述验证用字符进行比对,根据比对结果判断所述发出验证请求的对象是否通过验证。8.一种验证码图片生成装置,包括:获取单元,被配置为获取验证用字符;生成单元,被配置为生成包含所述验证用字符的字符图片;扰动单元,被配置为对所述字符图片添加用于对抗基于神经网络的验证码识别模型的扰动,得到验证码图片,所...

【专利技术属性】
技术研发人员:王洋刘焱郝新
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1