图片转文字 ( OCR )
OCR ( Optical Character Recognition ) 就是所谓的字元辨识,可以将图片的内容转换成可编辑的文字,这篇文章会介绍使用 Python 的 Pillow 第三方函数库,搭配 tesseract 函数库与程序,实作打开图片并辨识图片内的文字,并将其转换成字串。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
安装 Pillow 和 tesseract 函数库
输入下列指令安装 Pillow,根据个人环境使用 pip 或 pip3,如果使用 Colab 或 Anaconda Jupyter,已经内建 Pillow 函数库。
!pip install Pillow
输入下列指令安装 tesseract,根据个人环境使用 pip 或 pip3。
!pip install pytesseract
如果是 Colab 安装后,需要点击 RESTART RUNTIME 按钮。
安装 tesseract 程序
虽然安装了 pytesseract 函数库,仍然必须要额外安装 tesseract 程序,才能具备图片辨识文字的功能,安装方式如下:
Windows:
参考 Tesseract installer for Windows 下载 exe 文件安装。
Mac:
输入
brew install tesseract使用 homebrew 安装。Google Colab:
参考“连动 Google Drive”文章连动 Google Drive 后,输入
!sudo apt install tesseract-ocr安装 ( 注意,关闭 Colab 之后,会自动将上传或安装的数据删除,再次打开需要重复一次安装步骤 )。
下载语系包
tesseract 默认只有支援英文语系,如果要辨识其他语言,必须要前往“tesseract-ocr/tessdata_best”额外下载语系包:
- 繁体中文:chi_tra.traineddata
- 简体中文:chi_sim.traineddata
- 日文:jpn.traineddata
下载后,将语系包放到对应的文件夹内:
Windows:
前往
C:\Program Files (x86)\Tesseract-OCR\tessdata文件夹Mac:
使用终端机的指令前往“
/usr/local/Cellar/tesseract/5.1.0/share/tessdata”( 版本根据个人环境而异,本篇教学撰写时版本为 5.1.0 ),进入后输入“open .”打开文件夹 ( 因为该文件夹在 Mac 中属于隐藏文件,要使用指令打开 ),将语系包复制贴上。
Google Colab
打开左侧文件夹选单,点击“上一层”的按钮。
选择“usr > share”。
选择“tesseract-ocr > 4.00 > tessdata”,点击鼠标右键,上传语系包 ( 注意,关闭 Colab 之后,会自动将上传或安装的数据删除,再次打开需要重复一次安装步骤 )。
辨识图片中的文字
安装完成后,就可以使用 Pillow 打开图片,透过 pytesseract.image_to_string 将图片中的文字转换成真正的文字,lang 可以设定语系,eng 表示英文,chi_tra 繁体中文,chi_sim 简体中文,下方的程序码会辨识一张英文字图片的文字。
范例图片:下载
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image
import pytesseract
img = Image.open('english.jpg')
text = pytesseract.image_to_string(img, lang='eng')
print(text)
如果是使用中文语言包,还可以辨识出中英文夹杂的句子。
范例图片:下载
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # Colab 換路徑使用
from PIL import Image
import pytesseract
img = Image.open('chinese.jpg')
text = pytesseract.image_to_string(img, lang='chi_tra')
print(text)
微信扫码关注
抖音扫码关注