第一篇·计算机视觉(2)图像文字识别(OCR)

211 阅读3分钟

OCR

2.识别卡片中的文字信息(中英文)

既然已经识别到了每一张卡牌,那么接下来就是识别卡牌上的信息。

最近开始将我的教程翻译成英文,由于翻译过程中涉及示例代码的i18n修改,进度可能要稍微落后于我的中文博客。如果您对英文版感兴趣,可以移步这里。

Recently, I started translating my tutorials into English.Due to internationalization modifications in the example code during the translation process, and the progress may be slightly behind my Chinese blog. If you're interested in the English version, you can move HERE.

本文英文地址 | English version

解决方案对比

候选的几种解决方案:

  1. Tesseract OCR:Tesseract是一个开源的OCR引擎,由Google开发。它能够识别多种语言,并且在文字识别的准确性方面表现出色。Tesseract的Python绑定库叫做pytesseract,它可以方便地与Python集成。
  2. EasyOCR:EasyOCR是一个简单易用的OCR库,具有多语言支持和预训练模型。它基于深度学习技术,可以用于图像中文本的检测和识别。
  3. PyOCR:PyOCR是一个用于OCR的Python包装器,它可以与多种OCR引擎集成,包括Tesseract、CuneiForm等。这使得它非常灵活,可以根据需求选择合适的OCR引擎。
  4. Google Cloud Vision API:Google提供了一个云端文字识别API,可以通过Python SDK来使用。它可以识别多种语言、手写文本和印刷文本,并且具有强大的图像分析功能。
  5. Microsoft Azure Computer Vision API:Microsoft Azure提供了一组计算机视觉API,包括文字识别。您可以使用Azure的Python SDK来访问这些API,并进行文字识别和其他图像分析任务。
  6. Amazon Textract:Amazon Textract是亚马逊的OCR服务,可以用于从扫描文档中提取文本和结构化数据。Amazon提供了Python SDK,使其易于集成到Python应用程序中。

其中4、5、6是云服务,相对前面几个,会有费用产生,但是效率和稳定性方面更有保障。

EasyOCR支持80多种语言,在中文的识别方面,比Tesseract OCR优秀。

另外CnOCR使用百度飞浆的模型效率和准确度还可以,和EasyOCR可以做到互补。

Macbook Air M1芯片的特殊处理

我本身用的是Macbook Air M1芯片版,然而EasyOCR在该芯片机器上的安装却很繁琐。

直接用默认的方式安装会提示“Could not initialize NNPACK! Reason: Unsupported hardware.”然后无法执行。因此如果你跟我的开发环境一样,可以参考以下步骤,能解决这个错误。

如果情况允许,我们用conda(或者其他虚拟环境软件)在本地建立虚拟环境:

conda create --name openmmlab
conda activate openmmlab

非Mac M1芯片机器的安装方法

conda install pytorch torchvision cpuonly -c pytorch
pip install easyocr

没错,如果你硬件不是苹果的M1/M2芯片,恭喜你节约了1个半小时的编译安装时间。

Mac M1/M2芯片机器的安装方法

接着安装pytorch,注意要使用“USE_NNPACK=0”关闭nnpack,由于pytorch最佳配置是基于nvidia显卡的,Macbook显然也无法安装cuba(基于nvidia),所以必须打开cpuonly。

git clone https://github.com/pytorch/pytorch.git
cd pytorch
export USE_NNPACK=0 
# 这个步骤时间会比较久
python setup.py install

接下来安装mmdetection,它是一个用于目标检测(Object Detection)和实例分割(Instance Segmentation)的深度学习开源项目。它是一个基于 PyTorch 框架构建的工具,是为研究人员和工程师提供用于训练和部署目标检测和实例分割模型的强大工具。

这里注意必须下载源码安装,否则会导致上面的报错发生。

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e .
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without reinstallation.

安装主角:easyocr库。

pip install easyocr

至此,准备工作就已经完成了。