Coder Social home page Coder Social logo

captcha-recognition's Introduction

深度学习识别各类验证码

背景介绍

  • 来源:第九届**大学生服务外包创新创业大赛赛题A16-验证码识别
  • 整体背景:验证码识别是计算机与大数据领域一个非常重要的应用领域,其中包含了图像处理、机器视觉、模式识别以及人工智能等诸多前沿技术,这些同样也是大数据未来发展所必须的核心技术。本赛题以互联网中常见的验证码图片为样本,旨在通过此次竞赛,检验参赛者的图像识别能力,提高对计算机技术、算法模型的认识和应用能力,激发在图像处理、机器学习等领域的创新能力。
  • 公司背景:浪潮卓数大数据产业发展有限公司作为浪潮集团旗下的大数据板块,致力于成为数据资源提供商、数据资产运营商和数据交易服务商,以大数据时代的“数商”为发展目标,促进政府、企业和个人实现从互联网化向社会化,乃至数据社会化的转变。

项目说明

问题说明

提供 5 类验证码图片,难度依次递增,每一类验证码提供 1 万个训练样本,最后通过另外 5000 个测试样本的识别率评分。

第 1 类

数字四则运算,有噪点干扰,输出计算结果。

captcha1

第 2 类

英文字母+数字验证码,包含 5 个字符,有噪点干扰,文字无旋转形变,验证方法为要求用户输出验证码中的字符,大小写不限( 为验证方便可统一转为大写 )。

captcha2

第 3 类

英文字母+数字验证码,包含 4 个字符,有噪点干扰,文字有旋转形变,验证方法为要求用户输出验证码中的字符。

captcha3

第 4 类

中文验证码,包含 4 个中文汉字,有噪点干扰,验证方法为要求用户选出 4 个汉字中被旋转 90 度的那一个 (四个汉字从左到右序号为 0,1,2,3,输出被旋转的汉字序号即可) 。

captcha4

第 5 类

中文验证码,包含 4 个中文汉字和 9 个中文单字,有噪点干扰,文字有旋转形变,验证方法为要求用户从 9 个单字中从左到右按顺序选出验证码中的汉字,输出汉字编号。

captcha5

快速开始

最后

当时做这个项目的时候是第一次接触深度学习,看着吴恩达和炼数成金的视频课边学边做,真是特别有意思的一段时光。现在回头来看,当时设计的每类验证码识别模型都不同,准确率主要靠调参,确实挺ugly的。还记得答辩的时候评委问我,能不能做一个万能验证码识别模型,可惜当时学识浅陋,我答的“不行”,哈哈。

通过这次竞赛,成功让我入门了深度学习,特别感谢浪潮集团出的题和提供的奖金。当年这题获奖的名额超多的,浪潮真的财大气粗,若要参加服务外包竞赛,浪潮的题目超级推荐。验证码识别是特别好的深度学习入门案例,希望本仓库能给刚入门的你提供一些帮助。

captcha-recognition's People

Contributors

czczup avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

captcha-recognition's Issues

生成pb模型

level2的例子中,我想用ckpt文件生成pb模型,但是需要指定输出名字。我是用ArgMax显示不存在。 使用FC2/wx_plus_b结果好像对不上。

汉字识别

TIM图片20200706155048

像这样验证码,需要在4组选项,每组4个汉字中,选择一组匹配的汉字.
应该经过哪些步骤的处理?

请问一下运行denoise时出现这种错误怎么解决

[ WARN:[email protected]] global loadsave.cpp:248 cv::findDecoder imread_('./image/train/0000.jpg'): can't open/read file: check file path/integrity
Process Process-1:
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self.kwargs)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 134, in remove_batch
remove_noise(i)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 116, in remove_noise
image = RGB_clean(image)
^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 31, in RGB_clean
B, G, R = [int(i) for i in get_threshold(image)]
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 17, in get_threshold
pixels = np.array([image[y-1, x-1], image[y-1, x], image[y-1, x+1],
~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
[ WARN:[email protected]] global loadsave.cpp:248 cv::findDecoder imread
('./image/train/2000.jpg'): can't open/read file: check file path/integrity
Process Process-2:
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self.kwargs)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 134, in remove_batch
remove_noise(i)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 116, in remove_noise
image = RGB_clean(image)
^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 31, in RGB_clean
B, G, R = [int(i) for i in get_threshold(image)]
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 17, in get_threshold
pixels = np.array([image[y-1, x-1], image[y-1, x], image[y-1, x+1],
~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
[ WARN:[email protected]] global loadsave.cpp:248 cv::findDecoder imread
('./image/train/4000.jpg'): can't open/read file: check file path/integrity
Process Process-3:
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self.kwargs)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 134, in remove_batch
remove_noise(i)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 116, in remove_noise
image = RGB_clean(image)
^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 31, in RGB_clean
B, G, R = [int(i) for i in get_threshold(image)]
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 17, in get_threshold
pixels = np.array([image[y-1, x-1], image[y-1, x], image[y-1, x+1],
~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
[ WARN:[email protected]] global loadsave.cpp:248 cv::findDecoder imread
('./image/train/6000.jpg'): can't open/read file: check file path/integrity
Process Process-4:
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self.kwargs)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 134, in remove_batch
remove_noise(i)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 116, in remove_noise
image = RGB_clean(image)
^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 31, in RGB_clean
B, G, R = [int(i) for i in get_threshold(image)]
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 17, in get_threshold
pixels = np.array([image[y-1, x-1], image[y-1, x], image[y-1, x+1],
~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
[ WARN:[email protected]] global loadsave.cpp:248 cv::findDecoder imread
('./image/train/8000.jpg'): can't open/read file: check file path/integrity
Process Process-5:
Traceback (most recent call last):
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Program Files\Python312\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 134, in remove_batch
remove_noise(i)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 116, in remove_noise
image = RGB_clean(image)
^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 31, in RGB_clean
B, G, R = [int(i) for i in get_threshold(image)]
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\denoise_opencv.py", line 17, in get_threshold
pixels = np.array([image[y-1, x-1], image[y-1, x], image[y-1, x+1],
~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

test报错

The passed save_path is not a valid checkpoint: ./model/model_level3.ckpt-800
运行test.py报错

请问下运行generate_tfrecord时出现这个错误怎么解决

C:\Users\86182\Desktop\Captcha-Recognition-master\venv\Scripts\python.exe C:\Users\86182\Desktop\Captcha-Recognition-master\level1\generate_tfrecord.py
2024-04-18 16:40:44.886591: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
2024-04-18 16:40:46.200939: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
Traceback (most recent call last):
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\generate_tfrecord.py", line 89, in
_convert_dataset('train', training_filenames, class_names_to_ids, conf.TFRECORD_PATH)
File "C:\Users\86182\Desktop\Captcha-Recognition-master\level1\generate_tfrecord.py", line 62, in _convert_dataset
tfrecord_writer = tf.python_io.TFRecordWriter(output_filename)
^^^^^^^^^^^^
AttributeError: module 'tensorflow' has no attribute 'python_io'

模型训练问题

请问下我的第二类第三类模型为啥训练了两三天还没训练完

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.