训练集:bilbil登录验证码,约3000张左右
1、去github上下载源码 2、安装python环境 3、下载模型文件然后放入指定位置
yolov3 + CRNN + CNN
YOLO 为一种新的目标检测方法,该方法的特点是实现快速检测的同时还达到较高的准确率。作者将目标检测任务看作目标区域预测和类别预测的回归问题。该方法采用单个神经网络直接预测物品边界和类别概率,实现端到端的物品检测。同时,该方法检测速非常快,基础版可以达到45帧/s的实时检测;FastYOLO可以达到155帧/s。与当前最好系统相比,YOLO目标区域定位误差更大,但是背景预测的假阳性优于当前最好的方法。 CRNN 全称为 Convolutional Recurrent Neural Network,主要用于端到端地对不定长的文本序列进行识别,不用先对单个文字进行切割,而是将文本识别转化为时序依赖的序列学习问题,就是基于图像的序列识别。 CNN 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。 识别逻辑 1、利用yolo框选出给出的文字和图中出现的文字,作为题目 2、利用crnn识别给定的文字,作为答题范围 3、根据答题范围,利用cnn预测图片中出现的文字是那个
运行 bilbil.py
运行 mode_one.py 传入一张验证码图片,会返回文字所在位置和内容。
[ { "crop": [ 231, 173, 297, 248 ], "classes": "target", "content": "拌" }, { "crop": [ 0, 344, 114, 385 ], "classes": "title", "content": "凉拌牛肚" }, { "crop": [ 58, 189, 125, 265 ], "classes": "target", "content": "牛" }, { "crop": [ 231, 271, 297, 343 ], "classes": "target", "content": "肚" }, { "crop": [ 201, 79, 265, 152 ], "classes": "target", "content": "凉" } ]