Optical character recognition (OCR) is very useful for document scanning, such as invoices, bank statements, receipts, business cards, mail and so on. We can convert handwritten or printed text into machine-encoded text by OCR application. For Windows 10 users, OCR is part of the Universal Windows Platform(UWP), which means that we can use OCR on Windows 10, Windows 10 Mobile, and Windows 10 IoT Core. It is reported that the Windows 10 November update enables OCR for four new languages, bringing the total number of supported languages to 25 (Click here for more information). Furthermore, OCR has been used in many software by Microsoft, such as word, OneNote, Office Lens and so on. Hence, I want to test OCR on Windows 10 IoT Core.
2. What you’ll need- Windows 10 IoT Core device (RPi, Minnow Board Max, or GragonBoard)
- Camera (I use Microsoft LifeCam HD-3000), you can pick one according to the official hardware compatibility list.
For this part, we can directly plug USB port of Web Camera to the Windows 10 IoT Core device. Honestly, it’s the simplest step in this tutorial. If the Web Camera is recognized by Windows 10 IoT Core, you can see the device appears on the “connected device” area as follows.
In this section, we can download the app from github. Please make sure that you install Visual Studio 2017 and Windows Software Development Kit (SDK) version 16299 for Windows 10.
After the deployment, we can get the error information “No available OCR languages.”, “English is not supported” on screen as follows.
So, how to fix is issue? Now let’s jump to step 3.
Step 3: Copy OCR Related Resources to Windows 10 IoT DevicesIn order to make the OCR running on Windows 10 IoT Core, we should copy some resources to the Windows 10 IoT Core device.
First of all, navigate to C:\\Windows\OCR on your desktop PC. Then copy the folder to your Windows 10 IoT Core device. You can achieve this by FTP, or directly by File Explorer on your PC with \\<IP address of your IoT device>\c$. See the screenshot below for more details.
Secondly, navigate to C:\Windows\System32\CatRoot\{*****} on your desktop PC, copy files named “Microsoft-Windows-LanguageFeatures-OCR-en-us-Package. amd64~~10.0.16299.15.cat” to the c$:\Windows\System32\CatRoot\{*****} folder on your Windows 10 IoT Core device. See the screenshot below for more details.
Note: please pay attention to the file name of the language package. “amd64” means that this file is for x64 based devices. So, this work for Minnow Board Max. Because Windows 10 IoT Core for Minnow Board Max is x64 based system. So, if your want make OCR work on RPi or Dragon Board, you should copy arm related language packages to the IoT Device.
Step 4: Debug and ResultsAs we pointed above, the Minnow Board Max is used for this tutorial. Furthermore, the OS version is v.10.0.16299.192.
Firstly, let’s see the OCR results from image file. I copy both English and Chinese language packages to the MBM Board, so both English and Chinese can be recognized here. Look at the screenshot below, OCR almost get all the content from the image file correctly.
Secondly, OCR from web camera is tested here. Wow, the Microsoft logo on my jacket is shwn on the screen and it is captured by application.
Furthermore, I put my book in front of the camera. And the contents on the front cover are recognized as well.
In this tutorial, we have fixed the issue of running OCR on Windows 10 IoT Core. And finally give the demonstrations of image OCR and camera OCR. Hope this will be useful for somebody who need OCR feature on embedded device.
Comments