在某些场景下,需要OCR来识别一些图片中的文字或者数字。
比如现在我的情况:
- 数据没有标注即没有label;
- 公司配的这个电脑…连tensorflow都装不了,装了之后各种报bug(不知道是不是电脑老的问题)。
- 业务时间要求较紧急。
- others season.
所以我选择使用OCR + 图片特征处理的方式来进行,当然也可以调用某些公司已经训练好的OCR云API接口。这篇文章记录了安装OCR+正常运行过程遇到的问题以及解决:
一、下载安装tesseract软件:
前往 https://digi.bib.uni-mannheim.de/tesseract/ 下载安装,一路下一步即可,无需去勾选语言包,不然会很慢。如果有语言包的需求,直接去https://github.com/tesseract-ocr/tessdata 下载语言包放到安装目录 C:\Program Files (x86)\Tesseract-OCR\tessdata 下即可。
之后,需要配置环境变量:将C:\Program Files (x86)\Tesseract-OCR添加到环境变量中。
二、安装tesserocr
pip或者conda安装:【conda】
pip install tesserocr
或者去pypi搜索下载whl包,或者去github下载whl包。
三、安装pytesseract
使用pip或者conda进行安装:【建议conda】
pip install pytesseract
或者使用whl文件安装。
四、问题遇到和解决:
- 问题报错:
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path
- 解决:
pytesseract安装后,在Anaconda的Lib目录下site-packges下会生成一个pytesseract文件夹,文件夹中找到pytesseract.py,使用notepad之类软件打开pytesseract.py,找到如下两行:
注意: 如果是虚拟环境,那就去虚拟环境里面改。(如果不行,那就把base环境和那个虚拟环境都改,我的就是这样。)
#CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'tesseract'
将tesseract_cmd = 'tesseract'
修改为tesseract.exe的绝对路径即可:C:\Program Files (x86)\Tesseract-OCR\tesseract.exe
另外,完整安装OpenCV方法:
pip install opencv-python
pip install opencv-contrib-python
此外,tesseract的识别率可能不是很高,但某些场景下做好特征处理之后识别率还是比较感人的。
还有,据说百度的一个OCR识别效率极高,github地址我也不知道。
另外:提供安装Jupyter插件方法:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
jupyter nbextension enable codefolding/main