kerlomz/captcha_trainer:基于多种网络实现验证码识别训练
kerlomz/captcha_trainer项目是基于深度学习的图片验证码解决方案,能处理多种干扰情况,适用于多种验证码场景及其他OCR场景。基于TensorFlow1.14开发,助力中小企业和个人构建图...
标签:Github项目captcha_trainer kerlomz TensorFlow 图像分类 深度学习 验证码识别【Github】项目名:kerlomz/captcha_trainer:基于多种网络技术实现验证码识别训练
一、项目简介
该项目是一个基于深度学习的图片验证码解决方案,能够处理字符粘连重叠、透视变形、模糊、噪声等多种干扰情况,可解决市面上绝大多数复杂的验证码场景,也被用于其他OCR场景。项目基于TensorFlow1.14开发,旨在帮助中小企业或个人用户快速构建图像分类模型并投入生产环境使用,降低技术应用门槛。
项目有很多特性,例如目前支持Windows平台的GPU编译版,无需安装环境,0基础即可建模;项目化管理方便多任务切换;新增样本集无需重新打包可直接增量添加;解除循环层依赖的必须性;提供智能建议性配置功能;支持不定宽的网络输入;支持训练中的数据增广等。
二、面向用户
1. 面向算法工程师:提供了可拓展的结构支持,允许通过源码灵活方便的添加自己设计的网络结构及其他组件。
2. 面向零基础用户:无需编程知识即可使用。
3. 面向需求频繁者:复用程度高,一套服务可搞定同类型的多个需求。
三、模板参数
项目中的模板参数涵盖多个方面,如神经网络结构(CNNNetwork、RecurrentNetwork等)、优化器算法(Optimizer)、输出层(OutputLayer)、模型相关参数(ModelName、ModelField、ModelScene等)、数据类型为Image时的相关参数(Category、Resize等)、数据来源相关(LabelFrom、ExtractRegex等)、训练相关(Trains中的DatasetPath、SourcePath等)以及数据增广(DataAugmentation)和预处理(Pretreatment)相关的参数等。
四、基本操作流程
1.
GPU环境
– 如果使用编译好的版本,只需更新显卡驱动至最新。若准备使用GPU训练,需更新显卡驱动并安装CUDA和cuDNN。
2.
Python环境
– 安装Python3.8环境(包含pip),可用conda替换,安装虚拟环境virtualenv,为项目创建独立虚拟环境后安装依赖列表。
3.
采集标注样本
– 采集样本可通过抓包构造请求得到,标注样本要通过多个渠道组合以保证图片特征覆盖率,验证样本可通过在登录页面提交错误信息等方式获取。
4.
打包样本
– 样本需要打包成TFRecords文件格式,有两种打包方式,一种是运行make_dataset.py项目名方式打包,另一种是通过app.py训练界面中的[MakeDataset]开始打包。
5.
设置训练配置
– 使用app.py运行的界面化配置生成器选择样本源时会自动进行基本配置,还需要注意Resize等参数的使用以及ExtractRegex参数的正则匹配。
6.
开始训练
– 可通过trains.py项目名方式单独调用训练,也可通过app.py在界面配置好参数后点击[StartTraining]开始训练。
五、项目结构
项目结构包含多个模块,如全连接层(fc)、TensorBoard日志(logs)、神经网络(network)、优化器(optimizer)、项目存放路径(projects)、资源(resource)、工具(tools)、各种工具类(utils)以及多个功能模块(app.py、category.py等)。
六、注意事项
1. 使用CPU训练时,将requirements.txt文件中的tensorflow – gpu替换为tensorflow即可。
2. 修改影响计算图的参数(如[Resize]等)时,若不使用新的[ModelName]重新训练,则需删除model路径下的旧文件。
七、项目总结
这个kerlomz/captcha_trainer项目为验证码识别训练提供了全面的解决方案,无论是从技术实现、面向用户的多样性,还是操作流程、项目结构和注意事项等方面都有详细的规划和设计。欢迎大家在评论区留言讨论关于这个项目的任何想法或者使用中遇到的问题等。
项目地址
数据统计
数据评估
本站链氪巴士提供的kerlomz/captcha_trainer:基于多种网络实现验证码识别训练都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。