【毕业设计_课程设计】基于机器视觉的验证码识别研究与实现
2023-09-11 14:19:18 时间
0 项目说明
基于机器视觉的验证码识别研究与实现
提示:适合用于课程设计或毕业设计,工作量达标,源码开放
1 使用方法
- 爬取验证码
- 对图像做处理并切分
- 手工标注数据
- 导入训练集
- 使用测试集
2 前期准备
1.Image (图像处理库)
- jpeg
- zlib
- PIL
2.numpy (数学处理库)
3.ImageEnhance (图像处理库)
enhancer = ImageEnhance.Contrast(img) # 增加对比对
img = enhancer.enhance(2)
enhancer = ImageEnhance.Sharpness(img) # 锐化
img = enhancer.enhance(2)
enhancer = ImageEnhance.Brightness(img) # 增加亮度
img = enhancer.enhance(2)
3 图像处理
静态图片
- 清除图片噪点
- 清除图片干扰线
- 切割图片
- 信息输出
动态图片
- 按帧转存 GIF
- 读取每个 GIF 的 Duration 属性
- 找到 Duration 最长的图片,后同静态图片处理
4 识别算法
KNN
# kNN algorithm
def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0]
diffMat = tile(inX, (dataSetSize, 1)) - dataSet
sqDiffMat = diffMat ** 2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances ** 0.5
sortedDistIndicies = distances.argsort()
classCount = {}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]] # changed
classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
SVM
根据算法的性质,可以问题设定成一个二分类问题:识别数字1和2(当然也可以是其他的任意两个数字)。
5 项目源码
相关文章
- Coursera台大机器学习技法课程笔记12-Neural Network
- 台大《机器学习基石》课程感受和总结---Part 2 (转)
- 如何透彻的掌握一门机器学习算法
- 唯一识别Windows机器的最佳方法
- 机器学习---人脸对齐的基于形状模型的训练
- 机器学习笔记 - 什么是边缘人工智能?
- 机器学习笔记 - 怎么确认是否有足够的训练数据?
- 机器学习笔记 - 基于OpenCV图像处理和手写数字识别进行数独求解
- 机器换人!浙江高院庭审引入语音识别技术!
- NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术
- Python每日一练(机器学习)——第43天:鸢尾花分类
- Github 上最大的开源算法库,还能学机器学习
- 用于机器学习的 Pandas(ML)
- opencv3/C++ 机器学习-神经网络ANN_MLP识别数字
- 机器学习——贝叶斯分类器
- 在OpenCV里使用机器学习库sklearn 实现手写数字识别2
- cylance做的机器学习相关材料汇总
- 机器学习算法:支持向量机(SVM)
- 【机器学习】用 EM 算法推导解释 Kmeans?(面试回答)
- ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测?