图像处理与机器学习(验证码的识别)
这个东西,从放寒假的前一天,老师叫我做起,已经快2个月了,开学一个星期后,在陈老师的督促下,算是做的差不多了。
这个的应用领域主要是自动化程序,验证码可以说是网络安全的一道防火墙,自动化程序的难点。
但是,对于这个图像识别这个技术来说,还远远不够,至于应用的角度,更是狭窄,因此这不是一个终点,恰恰是一个起点。
机器学习有监督学习和无监督学习两种;我这里是监督学习,当然就得我手动的写每一张验证码的正确值了。
语言: python
工具: opencv
总体思路:样本学习,测试;
1、样本学习:
- 首先要对样本去噪,去噪将干扰线删除,对于一个像素点来说,他的四周的其余的点,有5个,或者较多的像素点是空白,那么将可以判断他是噪点,而将他删除掉。
- 扭曲矫正,我这里的扭曲矫正,是片面的,真正是很难有较好的效果,对于不同的验证码,有不同的特点,有一些验证码的产生,就有这样的特点,角落处,有阴影,这使得字符有扭曲,根据这里,来实现不同程度的扭曲矫正。
- 切割图像,将每个字符切割下来,这里也是相对的了,粘连较严重即将影响字符的正确。
- 二进制化图像,是字符的地方是0,没有的地方是1(这里相反没有问题)。生成训练集。
- 训练模型制作,字符,二进制的像素点,joblib持久化保存,将模型保存到本地,进行预测,速度更快。
- 通过随机森林算法将样本数据训练。
2、测试:
- 测试的步骤和学习的步骤类似。
- 通过训练模型得到的分类结果计算正确率。
最后识别率在100%
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2016-03-08 深搜(DFS),回溯,Fire Net