基于机器学习的验证码识别

目录说明

├── .

├── catpcha_images 验证码采集存储目录

├── thred_images二值化图片存储目录

├── noised_images降噪图片存储目录

├── eroded_images 腐蚀和膨胀图片存储目录

├── extracted_images分割图片目录

├── category_images预识别分类目录

├──

├── get_catpcha.py验证码采集

├── thresh_image.py二值化

├── mov_noise_image.py降噪

├── dilate_erod_image.py 腐蚀和膨胀

├── extract_image.py图片切割

├── category_image.py预识别和分类

├── model_labels.dat训练模型时生成的所需序列化标签

├── captcha_model.hdf5 训练后生成的模型

├──

├── train_model.py训练模型

├── solve_catpcha.py使用训练的模型识别验证码

├──

├── helpers.py 训练和识别时所需的函数

└── main.py统一调用和测试

环境

我的环境:

OSX

Python3.6

opencv

virtulenv

PIL

pytesseract

安装opencv

brew install opencv

将opencv与虚拟环境virtulenv中的python3进行关联链接

sudo ln -s /usr/local/Cellar/opencv/3.4.2/lib/python3.7/site-packages/cv2.cpython-37m-darwin.so cv2.so

其他requirements

numpy

imutils

sklearn

tensorflow

keras

pip3 install -r requirements.txt

测试与运行

可参考代码中的注释进行理解。

验证码前置操作:

包含验证码二值化、降噪、腐蚀和膨胀、预分类

在main中直接调用,依据不同的验证码的情况调节:

如:有的验证码有背景噪声、干扰线,需要进行降噪、腐蚀膨胀操作。

有的验证码干净、只需要二值化、切割即可。

示例

使用xiaocms的验证码进行测试:

http://demo.xiaocms.cn/index.php?c=api&a=checkcode&width=85&height=26&0.8979280327437793

操作:

切换到virtulenv环境:

source /venv/bin/acticate

opencv与virtulenv环境关联

sudo ln -s /usr/local/Cellar/opencv/3.4.2/lib/python3.7/site-packages/cv2.cpython-37m-darwin.so cv2.so

then

python3 main.py

等category_image预识别与分类完成,进行人工纠错,然后训练模型

python3 train_model.py

注:有时当采集数量不足时,随机字符串不足以覆盖所有字符,或预识别不准,不能准确全部分类32个字符串,因此训练模型这一步可能会报错,也就是88行model.add(Dense(32, activation="softmax"))中的32修改为category_images目录下的分类目录数量,(报错会提示这个数字)

训练成功后:

python3 solve_catpcha.py

会随机选择5个验证码进行识别,并显示出来。

python验证码识别库底色深_基于机器学习的验证码识别相关推荐

  1. 人脸识别与美颜算法实战-基于机器学习的人脸识别

    机器学习根据输出的类型一般分为两类,分类和回归.分类的输出一般是离散值,回归输出的值一般是连续的.比如,人脸识别这种就属于分类问题,房价预测一般是一个回归问题. 鸢尾花分类 # -*- coding: ...

  2. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)

    基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...

  3. java车牌识别系统_基于jsp的车牌识别系统-JavaEE实现车牌识别系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的车牌识别系统, 该项目可用各类java课程设计大作业中, 车牌识别系统的系统架构分为前后台两部分, 最终实现在线上 ...

  4. 【项目实战-MATLAB】:基于机器学习的虹膜识别系统设计

    基于机器学习的虹膜识别系统设计 设计的虹膜识别系统流程图如图 1 所示,在图像的预处理过程中主要包括虹膜定位.虹膜区域提取.虹膜区域极坐标变换和归一化处理.最后采用SVM识别方法实现虹膜识别. 图1 ...

  5. 基于机器学习的车牌识别系统

    基于机器学习的车牌识别系统 本文设计的车牌处理系统主要用于通过手机.路口监视器拍到的车牌照片进行识别.由图像处理.车牌定位.字符分割和字符识别四个模块组成,该四部分需要依次执行,其中的每一模块需要利用 ...

  6. python车牌识别使用训练集_基于Python 实现的车牌识别项目

    车牌识别在高速公路中有着广泛的应用,比如我们常见的电子收费(ETC)系统和交通违章车辆的检测,除此之外像小区或地下车库门禁也会用到,基本上凡是需要对车辆进行身份检测的地方都会用到. 简介 车牌识别系统 ...

  7. python人脸识别系统界面设计_基于卷积神经网络的人脸识别系统的设计(Python)

    基于卷积神经网络的人脸识别系统的设计(Python)(论文10000字,外文翻译,参考代码,流程图,人脸图像库) 摘要:随着社会的进步与发展,个人信息的保护变得十分重要.传统的密码保护方式已经不再满足 ...

  8. python提取人物特征_基于图像人物面部表情识别的特征提取优化方法与流程

    本发明涉及一种基于图像人物面部表情识别的特征提取优化方法,主要利用基于统计特征提取的二维主成分分析法和改进的粒子群算法优化图像矩阵的解,属于图像处理.模式识别和计算机视觉交叉技术应用领域. 背景技术: ...

  9. python 图片识别服装_基于树莓派的服装识别系统及方法与流程

    本发明涉及一种基于树莓派的服装识别系统及方法. 背景技术: 随着人们生活水平的不断提高,人们对于服装的需求不再是传统意义上的生活必需品,服装已经成为人们生活中的一种时尚消费品,所以很大一部分的消费者家 ...

最新文章

  1. SAP SD基础知识之流程概览
  2. Spring Cloud Netflix—如何加入Hystrix
  3. UILabel设定行间距方法
  4. 二叉树题目----2 检查两颗树是否相同 和 对称二叉树的判定
  5. activeMQ发送与接受消息模板代码
  6. 用idea建立jsp项目_用idea创建maven项目,配置tomcat详解
  7. spring cloud zuul 原理简介和使用
  8. android 自定义加载动画效果,Android 自定义View修炼-自定义加载进度动画LoadingImageView...
  9. 索尼首款 AI 图像传感器,让相机处处更智能
  10. SpringBoot和SpringCloud面试题
  11. 两个摄像头自动切换画面_你知道吗?你的手机摄像头之间会打架
  12. jquery form表单提交
  13. ThinkPad T43续命记
  14. IO流读取文件拒绝访问
  15. PTA:特立独行的幸福
  16. Ubuntu18.04和Win10共享文件夹
  17. 抖音能成为下一个「微信」吗?
  18. golang 定时任务处理
  19. Anaconda 安装及使用
  20. Compare线刷包与卡刷包

热门文章

  1. 《数字图像处理 MATLAB版》学习笔记
  2. 电脑无法识别扫码枪怎么办?看4点解决方法就知道
  3. HiFT: Hierarchical Feature Transformer for Aerial Tracking分层特征Transformer的无人机跟踪
  4. 打印0-100所有3的倍数的数字
  5. .msi文件安装报错
  6. 《程序员的数学》三部曲
  7. 【英语论文】英汉委婉语的文化价值和民族特质比较(节选)
  8. mysql数据库有关教程
  9. android ota权限,Android手机Root后不能接收OTA?
  10. 手机长度px值_html长度尺寸单位px像素