Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | Github | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

第 13 章 OCR

目录

13.1. EasyOCR
13.1.1. 安装 EasyOCR
13.1.2. 操作演示
13.1.3. 命令行运行
13.1.4. 函数
13.1.4.1. Reader()
13.1.4.2. readtext() 函数
13.1.5. urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)>
13.2. Tesseract
13.2.1. 安装 Tesseract
13.2.2. 演示 Tesseract
13.2.3.

OCR(Optical Character Recognition):光学字符识别,是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。

OCR 的应用场景:

OCR 原理

	
扫描/拍照 > 图像输入 > 二值化 > 去噪声 > 倾斜校正 > 版面分析 > 字符切割 > 字符识别 > 版面恢复 > 文字校对	
	
	

扫描或拍照:使用扫描仪将纸质资料扫描成图像文件,手机拍照也能达到同样效果,然后将图像文件交给OCR软件进行处理。

首先把彩色图像编程黑白图像(黑色文字,白色背景),识别系统不关心颜色。

通过算法去除图像中的影响因素,噪点,污染,这部叫去噪声,类似Ps中的色阶,降噪,模糊一类的操作,让图像中的文字更突出。

然后矫正倾斜的图像,分析文本段落,切割字符,识别字符。

将识别的字符,重新排版,生成 Text 文本文件。

较为高级OCR系统,带有AI语法分析,能够实现拼写检查,语法校对等等。

13.1. EasyOCR

https://www.jaided.ai

13.1.1. 安装 EasyOCR

		
pip install easyocr		
		
		

EasyOCR 源码

https://github.com/JaidedAI/EasyOCR

安装最新版

		
pip install git+git://github.com/jaidedai/easyocr.git		
		
		

13.1.2. 操作演示

		
import easyocr

reader = easyocr.Reader(['ch_sim','en']) 
result = reader.readtext('test.jpg')

print(result)

for text in result:
    word = text[1]
    print(word)	
		
		

13.1.3. 命令行运行

		
$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True		
		
		

13.1.4. 函数

13.1.4.1. Reader()

禁用 GPU

			
reader = easyocr.Reader(['ch_sim','en'], gpu = False)			
			
			

13.1.4.2. readtext() 函数

进输出识别结果

			
reader.readtext('chinese.jpg', detail = 0)
			
			

输出结果

			
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']
			
			

13.1.5. urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)>

解决方法,加入下面代码

		
import ssl
ssl._create_default_https_context = ssl._create_unverified_context		
		
		

或运行

		
pip install --upgrade certifi