随笔-239  评论-1203  文章-1 

Windows 10 IoT Serials 10 – 如何使用OCR引擎进行文字识别

1. 引言   

    OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。

    在Windows 10通用应用程序UWP示例中,包含了OCR应用程序,具体请参考(https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/OCR),利用该应用程序,用户可以完成以下功能:

    1. 检测当前设备支持的OCR语言

    2. 获取当前设备可用的OCR语言

    3. 创建针对某种语言的OCR识别实例

    4. 加载图片,识别图片中的文字

    5. 从摄像头捕捉的图片中识别文字

    6. 将识别的文字覆盖在图片上

2. 问题

    该通用应用程序在PC平台上运行,没有出现问题。但是部署到Windows 10 IoT Core设备以后,会出现如下错误:“No available OCR languages.” 、”English is not supported”,如下图所示。

 

3. 解决方法

    上述问题的出现,是由于Windows 10 IoT Core设备上没有OCR的相关资源,导致程序无法正常运行。解决方法如下:

    首先,将Windows 10设备的C:\\Windows\OCR目录拷贝到Windows 10 IoT Core设备的c$\Windows目录,如下图所示。

1

    接着,将C:\Windows\System32\CatRoot\{*****} 中的 Microsoft-Windows-LanguageFeatures-OCR-en-us-Package... .cat文件拷贝到Windows 10 IoT Core设备的c$:\Windows\System32\CatRoot\{*****}目录,如下图所示。

2

4. 调试

    本次调试在MBM板子上进行,Windows 10 IoT Core设备的OS版本号为v.10.0.16299.192,采用的摄像头为微软LifeCam HD-3000

    首先,调试OCR图片中文识别,结果如下:

file-chinese

    可以看到,中文的识别准确度挺高,基本上都识别出来了。

    接着,在调试用摄像头进行OCR中文识别和OCR英文识别,结果分别如下图所示。

camera-chinese

camera-english

    从图中可以看出,摄像头识别的结果依赖于光线、摄像头分辨率等因素,环境光越好,摄像头分辨率越高,则识别精度就越高。

posted on 2018-02-02 11:33 施炯 阅读(...) 评论(...) 编辑 收藏