没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
27页
随着互联网技术的快速发展和应用,网络给人们提供了丰富的资源和极大的便利,但随之而来的是互联网系统的安全性问题,而验证码正是加强 Web 系统安全性的产物。全自动区分计算机和人类的图灵测试也是验证码的一个应用程序,可以区分用户是人类还是计算机智能单击对象。它发起一个验证码进行测试,由计算机生成一个问题要求用户回答,并自动评判用户给出的答案,而原则上这个问题必须只有人才能解答,进而区分是否为计算机智能单击对象。 本案例运用计算机视觉、模式识别等相关理论对多种不同类型的验证码进行识别和研究,选取了具有代表性的某著名网站备案查询所提供的验证码为研究对象,对具体的验证码提出了有针对性的破解方法,揭示了其不安全的可能性,并通过对不同识别算法的对比,使研究具有一定的理论和使用价值。
资源推荐
资源详情
资源评论
第 10 章 基于不变矩的数字验证码识别
113
基于不变矩的数字验证码识别
10.1 案例背景
随着互联网技术的快速发展和应用,网络给人们提供了丰富的资源和极大的便利,但随之
而来的是互联网系统的安全性问题,而验证码正是加强 Web 系统安全性的产物。全自动区分计
算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans
Apart,CAPTCHA)也是验证码的一个应用程序,可以区分用户是人类还是计算机智能单击对
象。它发起一个验证码进行测试,由计算机生成一个问题要求用户回答,并自动评判用户给出
的答案,而原则上这个问题必须只有人才能解答,进而区分是否为计算机智能单击对象。
验证码具有千变万化的特点,而当前的识别系统往往具有很强的针对性,只能识别某种类
型的验证码。随着网络安全技术及验证码生成技术的不断发展,已经出现了更加复杂的验证码
生成方法,如基于动态图像的验证码系统等。虽然目前人工智能还远未达到人类智能水平,但
是对于给定的验证码生成系统,在获知其特点之后,通过一定的识别策略往往能够以一定的准
确率进行识别。
本案例运用计算机视觉、模式识别等相关理论对多种不同类型的验证码进行识别和研究,
选取了具有代表性的某著名网站备案查询所提供的验证码为研究对象,对具体的验证码提出了
有针对性的破解方法,揭示了其不安全的可能性,并通过对不同识别算法的对比,使研究具有
一定的理论和使用价值。
计算机视觉与深度学习实战——以 MATLAB、Python 为工具
114
10.2 理论基础
图像识别技术是利用计算机对图像进行分析和处理,用以协助人们理解和识别不同模式的
目标和对象的技术。数字验证码识别是光学字符识别(OCR)的一种,是经典的模式识别研究
对象。本案例提出了以处理颜色加噪的数字字符为理论研究素材,将模板匹配作为基本框架的
验证码识别系统。本系统的优点在于能够对特定类型的数字验证码进行精确识别,实验中的识
别准确率可达到 95%以上,并提供动态更新样本库的功能,可根据实际运行的环境提高验证码
的识别率。
数字验证码识别需要研究的理论是图像识别,主要是通过模拟人类的视觉特性来分析验证
码字符的特点,其目标是识别验证码,即读取图像文件中的验证码字符。验证码就是由程序随
机生成的一组字符(一般为数字或数字与字母的组合)图片。在某些应用场景下,为了实现一
系列自动操作,需要对所遇到的验证码进行识别。基于这种原因,本案例选择了经典的数字验
证码识别作为识别的对象。验证码的识别涉及图像预处理、分割、特征提取、识别等相关技术,
本案例通过对彩色验证码图像进行灰度化、二值化、去噪和归一化等步骤进行预处理,通过建
立模板库的动态更新机制来提高系统的兼容性,进一步提升验证码识别的效率和准确性。
10.3 程序实现
在本实验中为了进行验证码识别,需要建立模板库,采用 GUI 设计软件并建立动态模板库,
加入自动更新的功能来提高对数字验证码的识别率。数字验证码的待识别对象即 0~9 这 10 个
数字,调用 mkdir 函数来自动建立模板数据库文件夹,用于存储分割生成的标准数字图像作为
模板库。
10.3.1 设计 GUI 界面
为增强软件交互的易用性,我们可调用 MATLAB 的 GUI 来生成软件框架,提供有关数字
验证码图像载入、去噪、分割、识别的过程,并提供动态更新数据库、建立模板库的功能。GUI
界面设计截图如图 10-1 所示。
第 10 章 基于不变矩的数字验证码识别
115
图 10-1 GUI 界面设计截图
10.3.2 载入验证码图像
打开数字验证码图像文件,调用 uigetfile 函数,交互式载入图像文件,获取图像文件的路
径并返回。核心代码如下:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% 载入图像
file = fullfile(pwd, 'test/下载.jpg');
[Filename, Pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image
Files';...
'*.*','All Files' }, '载入验证码图像',...
file);
if isequal(Filename, 0) || isequal(Pathname, 0)
return;
end
% 显示图像
axes(handles.axes1); cla reset;
axes(handles.axes2); cla reset;
set(handles.axes1, 'Box', 'on', 'Color', [0.8039 0.8784 0.9686], 'XTickLabel',
'', 'YTickLabel', '');
set(handles.axes2, 'Box', 'on', 'Color', [0.8039 0.8784 0.9686], 'XTickLabel',
'', 'YTickLabel', '');
计算机视觉与深度学习实战——以 MATLAB、Python 为工具
116
set(handles.text4, 'String', '');
% 存储
fileurl = fullfile(Pathname,Filename);
Img = imread(fileurl);
imshow(Img, [], 'Parent', handles.axes1);
set(handles.text2, 'String', '验证码图像');
handles.fileurl = fileurl;
handles.Img = Img;
guidata(hObject, handles);
关联到“载入验证码图像”按钮,在执行时会弹出选择文件对话框,打开后如图 10-2 所示。
图 10-2 载入验证码图像
10.3.3 验证码图像去噪
在载入验证码图像后,可以发现这种验证码图像有着类似于椒盐噪声的带有颜色的噪声,
数字验证码中的数字个数保持常量并且分布均匀、易于分割。因此,为了进行下一步的数字分
割操作,需要先进行验证码图像去噪步骤。本案例采用将 RGB 颜色空间转换到 HSV 颜色空间
的方式,用阈值过滤的方法进行去噪。核心代码如下:
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if isequal(handles.Img, 0)
第 10 章 基于不变矩的数字验证码识别
117
return;
end
Img = handles.Img;
% 颜色空间转换
hsv = rgb2hsv(Img);
h = hsv(:, :, 1);
s = hsv(:, :, 2);
v = hsv(:, :, 3);
% 定位噪声点
bw1 = h > 0.16 & h < 0.30;
bw2 = s > 0.65 & s < 0.80;
bw = bw1 & bw2;
% 过滤噪声点
Imgr = Img(:, :, 1);
Imgg = Img(:, :, 2);
Imgb = Img(:, :, 3);
Imgr(bw) = 255;
Imgg(bw) = 255;
Imgb(bw) = 255;
% 去噪结果
Imgbw = cat(3, Imgr, Imgg, Imgb);
imshow(Imgbw, [], 'Parent', handles.axes2);
set(handles.text3, 'String', '验证码图像去噪');
handles.Imgbw = Imgbw;
guidata(hObject, handles);
关联到“验证码图像去噪”按钮,执行图像颜色空间转换及阈值滤波去噪操作,去噪效果
如图 10-3 所示。
图 10-3 验证码图像去噪
剩余26页未读,继续阅读
资源评论
好知识传播者
- 粉丝: 574
- 资源: 4204
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功