热点复现|验证码识别

Posted 算法拼图

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了热点复现|验证码识别相关的知识,希望对你有一定的参考价值。

最近忙着做OCR的小项目,很久没上ModelArts,刚好周末在 快学Python 看到朱小五的《5行Python实现验证码识别,太稳了!》介绍了一个名为ddddocr的,配置要求远低于之前用的EasyOCR和pytesseract,刚好来ModelArts探索、复现一下。


1. 库的安装

这个库的安装非常简单。

!pip install ddddocr


2. 验证码识别尝试

首先向小五学习,去百度图片下载一些验证码图片,放入文件夹验证码图片。

!pip install matplotlibimport matplotlib.pyplot as plt%matplotlib inline
import ddddocrocr = ddddocr.DdddOcr()p = plt.imread('验证码图片/t1.jpg')plt.imshow(p)with open('验证码图片/t1.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)
cxcy

p = plt.imread('验证码图片/t2.jpg')plt.imshow(p)with open('验证码图片/t2.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)
534

热点复现|验证码识别


p = plt.imread('验证码图片/t3.jpg')plt.imshow(p)with open('验证码图片/t3.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)
一o

热点复现|验证码识别

p = plt.imread('验证码图片/t4.jpg')plt.imshow(p)with open('验证码图片/t4.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)

25d7

热点复现|验证码识别

p = plt.imread('验证码图片/t5.jpg')plt.imshow(p)with open('验证码图片/t5.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)

7482

热点复现|验证码识别

p = plt.imread('验证码图片/t6.jpg')plt.imshow(p)with open('验证码图片/t6.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)

uwy6

热点复现|验证码识别

p = plt.imread('验证码图片/t7.jpg')plt.imshow(p)with open('验证码图片/t7.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)


7364

热点复现|验证码识别


p = plt.imread('验证码图片/t8.jpg')plt.imshow(p)with open('验证码图片/t8.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)

DwSe

热点复现|验证码识别

可能是我们选的样本更加复杂,我们试验下来,ddddocr库对验证码的识别效果比小五介绍的弱,对于重叠和角度不正的识别效果并不是很理想。

在此,我们想到了中文,于是尝试了一下中文验证码。

p = plt.imread('验证码图片/t11.png')plt.imshow(p)with open('验证码图片/t11.png', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)

离技以

热点复现|验证码识别

发现ddddocr库对中文验证码的识别能力并不弱于对数字和英文验证码的识别。


3. 通用文字识别尝试

p = plt.imread('验证码图片/t12.jpg')plt.imshow(p)with open('验证码图片/t12.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)
验证码图片

热点复现|验证码识别

p = plt.imread('验证码图片/t17.jpg')plt.imshow(p)with open('验证码图片/t17.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)
验收标准按笫二条标准验收

p = plt.imread('验证码图片/t20.jpg')plt.imshow(p)with open('验证码图片/t20.jpg', 'rb') as f: img_bytes = f.read()res = ocr.classification(img_bytes)print(res)
一二

可以看到,ddddocr可以用来做一般的文字识别,但只能识别单行,不能识别多行。


4. 应用

ddddocr最大的优势是内置了很多去噪的功能,对非白底高清的图片有很强的适应性,应用起来非常简单。如果简单的做些文字识别,ddddocr是一个非常不错的开源库。

我将它封装在 http://www.gchatst.club:8050/ ,有兴趣但对代码不熟悉的同学也可以简单尝试下。

此外,如果想正式入门文字识别,ddddocr也是一个不错的敲门砖。


以上是关于热点复现|验证码识别的主要内容,如果未能解决你的问题,请参考以下文章

12mmaction2 行为识别商用级别X3D复现 demo实现 检测自己的视频 Expanding Architecturesfor Efficient Video Recognition(代码片段

搜狗搜索开放12306验证码识别技术 助力搜狗QQ浏览器一键抢票

验证码识别与生成类API调用的代码示例合集:六位图片验证码生成四位图片验证码生成简单验证码识别等

泓磊IP三分钟4.30丨“空中手势”验证码识别方案研发完毕,计划免费开放;2021中国软件著作权登记量一季度排行榜

python验证码识别极验滑动验证码识别

利用云识别过简单验证码实例(源代码分享)