基于深度卷积神经网络的验证码识别研究

(整期优先)网络出版时间:2022-07-29
/ 2

基于深度卷积神经网络的验证码识别研究

兰宏富 ,李正

西南民族大学 计算机科学与工程学院 成都 610041

【摘要】

图片验证码,一种用于人机验证的方法,由于技术简单,易实施,传输数据小,因此被各大网站广泛用来阻挡爬虫程序.传统的验证码识别需要通过图片清理、字符切割、字符识别三个流程处理验证码图片,随着深度卷积神经网络的兴起,端到端识别逐渐成为主流,通过训练增强后的数据,神经网络模型可以轻松地识别在一定程度上倾斜歪曲以及部分粘连的字符.文章先对卷积神经网络的发展历程进行总结,随后介绍了在验证码识别过程中的实验设计及部分细节.

【关键词】

图片验证码;卷积神经网络;图像识别;深度学习

引言:随着互联网的高速发展,网络信息资源为人类提供了极大的便利,然而网络信息威胁性也随之提高,大量非法帐号以及恶意脚本的涌入使得网站的瘫痪风险增加,此时网站开发人员大量使用图片验证码来区分恶意请求和真实用户.图片验证码通常由数个字符组成,为了增加识别的难度,网站开发人员对其进行了文字扭曲并添加了大量噪点,有时甚至连人眼也很难识别这些字符.在人工智能大热的当下,使用深度学习对扭曲验证码的识别成为了促进神经网络发展的一颗铺路石.

一、卷积神经网络概述

CNN之父Lecun在1998年提出LeNet用于解决手写数字识别任务,并构建了MNIST数据集,为后续CNN发展奠定了基础.2012年在ImageNet竞赛中AlexNet在超过第二名10.9%的识别率的情况下夺得冠军,使得计算机视觉从理论逐渐跨向了实际应用.2014年牛津大学Visual Geometry Group提出了VGG-Nets,成为了ImageNet竞赛定位任务的第一名和分类任务的第二名的中的基础网络.同年Google Inception Net首次出现在ILSVRC2014的比赛中(和VGGNet同年),以较大的优势获得冠军(由于存在Inception模块也叫Inception V1).2015年何恺明推出的ResNet在ISLVRC和COCO上横扫所有选手,获得冠军.ResNet在网络结构上做了大创新,而不再是简单的堆积层数,ResNet在卷积神经网络的新思路,是深度学习发展历程上里程碑式的事件.ResNet的主要创新就是残差模块.随后深度学习进入百家争鸣时期.SENet是2017年最后一届ILSVRC竞赛的图像分类和定位冠军.在2017年之前已经有很多工作在空间维度上来提升网络的性能,此时科研人员想到,网络是否可以从其他层面来考虑去提升性能,比如考虑特征通道之间的关系,基于这一点学术界提出了 Squeeze-and-Excitation Networks(简称 SENet).在SENet结构中,Squeeze 和 Excitation 是两个非常关键的操作,所以以此来命名.动机是希望显式地建模特征通道之间的相互依赖关系.另外,作者并不打算引入一个新的空间维度来进行特征通道间的融合,而是采用了一种全新的「特征重标定」策略.具体来说,就是通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征.DenseNet虽然没有参加ILSVRC竞赛,但它获得了计算机视觉顶级会议CVPR 2017最佳论文.自Resnet提出以后,ResNet的变种网络层出不穷,都各有其特点,网络性能也有一定的提升.DenseNet提出的网络模型(Dense Convolutional Network),主要也是和ResNet及Inception网络做对比,思想上有借鉴,但却是全新的结构,网络结构并不复杂,却非常有效,在CIFAR指标上全面超越ResNet.可以说DenseNet吸收了ResNet最精华的部分,并在此上做了更加创新的工作,使得网络性能进一步提升.其中的核心操作:密集连接能够有效缓解梯度消失问题,加强特征传播,鼓励特征复用,并极大的减少了参数量.

随着智能手机和其他便携设备的普及,传统的深度神经网络通过设计非常深的神经网络结构用于提取表达能力更强的深度特征,这对存储设备和计算资源的要求非常高,常用的便携式设备无法满足该需求,这严重限制了深度神经网络在便携式设备上的发展与应用. 为了提高便携式设备处理图像和视频数据的效率和能力,同时需要满足存储空间和功耗的限制,科研人员设计出了适用于便携式设备的轻量化深度神经网络架构.其中人工设计的轻量级神经网络模型常用的设计方法包括三种:使用小卷积核代替大卷积、限制中间特征的通道数量、分解卷积运算.

二、基于深度学习的图片验证码识别

(1)数据获取与预处理

验证码有Captcha库自动生成和网络爬取的两种,使用网络爬取的验证码,得出的实验结果更加具有说服力.通过爬虫爬取多个网站的登录验证码,并从公开数据集中下载Captcha验证码以丰富数据集,最终得到包含大写字母、小写字母、数字的4位验证码图片数据集.

在深度学习中,常常需要对数据进行预处理,此项研究中采用Python的OpenCV库对获取的数据集进行预处理:首先进行灰度转换把三通道的图像转换成单通道的图像,该手段使得神经网络中的参数计算大量减少,能够大幅度加快识别的速度;然后对数据集进行缩放、旋转、加噪声、图像扭曲等数据增强操作以提高模型的泛化性并增大训练数据集的规模;最后将图像进行尺寸统一用于输入神经网络进行训练.

(2)网络模型设计

目前市面上存在多种深度学习框架,科研人员不再需要书写繁杂的神经网络的底层运算代码,而只需要专注于网络结构及超参数调节.此处使用当前最流行的深度学习框架Pytorch搭建网络模型,网络主干使用DenseNet,并在网络中嵌入注意力机制提高特征的提取效率,使用交叉熵损失函数作为反向传播的依据,优化器采用RAdam加快网络的收敛速度并防止陷入局部最优.当网络的识别速度较慢的时候可以适当删除一些网络层或者将部分网络结构替换成轻量级网络模块,该操作能够在小幅度降低识别准确率的情况下提高识别速度.

(3)训练标签

训练标签有两种表现形式,其中一种是将四个字符转换成一个向量,网络的最终输出向量数量也为1.第二种是将四个字符转换成四个向量,此时神经网络的最终输出也需要进行调整,形成一个类似“多任务学习”的网络结构,多任务学习是一种联合学习,多个任务并行学习,结果相互影响.所谓多任务学习,就是同时求解多个问题,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一.采用第二种方式,由于考虑到了四个预测字符之间的相互影响,因此能够获得较高的识别率.

三、结束语

人工智能的浪潮的再度兴起使得用机器模拟人类行为的做法层出不穷,验证码识别作为其中的一部分,已经使得网站登录人机识别不再安全,同时也使得验证码越来越复杂,这将是对网站设计者们的挑战也是推动破解人员努力研发新技术的动力.

【参考文献】

[1]周飞燕, 金林鹏, 董军. 卷积神经网络研究综述[J]. 计算机学报, 2017, 40(06): 1229-1251.

[2]葛道辉, 李洪升, 张亮, 等. 轻量级神经网络架构综述[J/OL]. 软件学报, 2020, 31(9): 2627-2653. DOI:10.13328/j.cnki.jos.005942.

[3]李昊, 程辉. 面向复杂验证码识别任务的轻量神经网络设计[J/OL]. 计算机系统应用, 2021, 30(4): 247-252. DOI:10.15888/j.cnki.csa.007535.

[4]李红光, 王菲, 丁文锐. 面向目标分类识别的多任务学习算法综述[J]. 航空学报, 2022, 43(1): 205-220.

姓名:兰宏富(1995.03--);性别:男,民族:畲 籍贯:江西赣州人,学历:硕士,毕业于西南民族大学;研究方向:软件工程、计算机视觉。

备注:西南民族大学2021年中央高校优秀学生培养工程项目(项目编号: 2021NYYXS65)