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目录,如下图所示。
接着,将C:\Windows\System32\CatRoot\{*****} 中的 Microsoft-Windows-LanguageFeatures-OCR-en-us-Package... .cat文件拷贝到Windows 10 IoT Core设备的c$:\Windows\System32\CatRoot\{*****}目录,如下图所示。
4. 调试
本次调试在MBM板子上进行,Windows 10 IoT Core设备的OS版本号为v.10.0.16299.192,采用的摄像头为微软LifeCam HD-3000。
首先,调试OCR图片中文识别,结果如下:
可以看到,中文的识别准确度挺高,基本上都识别出来了。
接着,在调试用摄像头进行OCR中文识别和OCR英文识别,结果分别如下图所示。
从图中可以看出,摄像头识别的结果依赖于光线、摄像头分辨率等因素,环境光越好,摄像头分辨率越高,则识别精度就越高。