当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 2

于德 / Verified_code_recognition
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Verified-code-recognition-based-on-SVM @ ca004e3
Loading...
README

#Verified code recognition based on SVM ##本次实验内容 1-实现svm算法与knn算法 svm算法采用smo算法 2-针对验证码识别编写相应的图像处理算法 (1)图像切割 (2)灰度与二值化 (3)图像旋转 3-将处理后的二值化矩阵人工分类 分别将对应字母矩阵分类到相应文件夹中,本次实验采取不区分英文字母大小写的模式,因此一共36个类别。 4-以人工分类集进行svm训练,获取分类函数参数 代码中包含已经写好的训练器,可采用的分类方式有线性分类器,用lin表示,以及利用高斯核函数的非线性分类器,用rbf表示。因svm为二类分类,所以在多类下的分类模式有一对一和一对多两种 5-分别通过svm和knn对选定图片进行识别输出字母 使用C#编写简单的图形用户界面实现交互

##本次实验过程及结果 1-相比于在训练内循环中随机选取alpha对,采用smo算法可以快速使分类函数参数收敛,并获得较好的结果 2-分类效果一定程度上受限于切割,因存在相重叠的字母,这种情况下最终的识别效果一般较差 3-作为有监督学习,svm最大的缺陷是很大程度受到训练集的影响,例如大写i与小写L,通过人眼并不能有效的识别出,因而在训练器中更难以识别 4-本次实验最先尝试的是一对一线性分类,训练总时长为4小时左右,识别时间大约1秒 首先因为在36个类的情况下共有630个分类函数,因而需要对每个字母做千次以上的计算,增加了验证码识别所需要花费的时间; 除此之外,因为分类最终通过投票的方式决定,即在每个分类函数中,比如A和D的分类函数,如果结果大于0就投字母A一票,反之投字母D一票,这种方式误差很大,正确的字母很有可能因为不属于分类函数的任何一边,比如O既不是A也不是D,而产生很大的随机性,导致最终结果的误差,一种可行的方式是对分类函数的结果做上下限的调整,调整后效果稍好但总体正确率依然较低。 5-第二个尝试的是一对一的高斯核非线性分类,训练总时长大约1秒,识别时间约25秒 在非线性分类的情况下,需要保留训练样本集中的支持变量以在识别验证码中进行核变换,因而不可能再使用之前上千的数据训练集(这里是因为在不同的一对一分类函数中,有不同的支持向量,根据测试看出几乎所有训练集中的样本都会成为支持向量),于是大家重新在每个字母中挑出5个大写的5个小写的,每个字母和数字各10个,进行训练,并直接给出新的字母的识别结果,最终效果比第一次好,但是用时过长,仍然不适用于识别验证码。 另外在本次尝试中可以得出比较适合高斯核函数分类的σ参数区间为5-20 6-第三个尝试的是一对多的线性分类,训练总时长大约90到140小时,识别时间在0.3秒左右 在一对多中,训练集是包含约3600个625维向量的矩阵,因而计算速度大幅下降,训练耗时极长,同时因为是线性分类,分类函数参数很有可能无法收敛到令人满意的情况,因而需要再训练。这次的分类效果是迄今实验中最好的,正确率可以与knn相比并且计算速率更快。可行的改进方式是从训练结果中找出效果较差的,也即是无法线性分类的情况,利用高斯核非线性分类,并找出支持向量,这样既能保证正确率又能保证识别速率。 7-本次实验还尝试了最基础的机器学习算法KNN,KNN的缺点在于每次使用该算法都要使用训练集进行大量计算速度较慢,且结果受限于训练集。不过KNN算法识别图片的效果还可以接受,正确率较高,只有在识别数字0时常有可能会出现识别错误的情况,主要与K值选取有关,低K值有助于提高其他数字和字母的识别率但是降低了数字0的识别率,高K值可以提高数字0的识别率但是不利于其他数字字母的识别。

空文件

简介

基于KNN与SVM算法的验证码识别 展开 收起
C#
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/chinaspirit/Verified-code-recognition-based-on-SVM.git
git@gitee.com:chinaspirit/Verified-code-recognition-based-on-SVM.git
chinaspirit
Verified-code-recognition-based-on-SVM
Verified_code_recognition
master

搜索帮助