Hosted Microsoft OCR library: Free OCR API web service
blog.a9t9.com
blog.a9t9.com
curl https://ocr.a9t9.com/api/Parse/Image --data "apikey=helloworld&url=http://imgs.xkcd.com/comics/bells_theorem.png" { "ParsedResults": [ { "FileParseExitCode": 1, "ParsedText": "T-as IS CALLED I THEOREM. IT LAS FIRST\u2014 t: 1 wostcop n, FASTER- FIRM-LIGHT com)MCBT10N IS E6SlBLE! EL's rta\u201eNDERSTRtDlNGS ELLS THEX\u00dcI I-IPPPEN VIOLATE LOCALITY", "ErrorMessage": "", "ErrorDetails": "" } ], "OCRExitCode": 1, "IsErroredOnProcessing": false, "ErrorMessage": null, "ErrorDetails": null }
curl https://ocr.a9t9.com/api/Parse/Image --data "apikey=helloworld&url=http://www.uky.edu/Providers/ScannedText/page1s.jpeg" {"ParsedResults":[{"FileParseExitCode":1,"ParsedText":"In 1830 there were but twenty-three \r\nmiles of railroad in operation in the \r\nUnited States, and in that year Ken- \r\ntucky took the initial step in the work \r\nwest of fhe Alleghanies. An Act to \r\nincorporate the Lexington & Ohio \r\nRailway Company was approved by \r\nGov. Metcalf, Jarinary 27, 1830.. It \r\nprovided for the construction and reÔÇó \r\n","ErrorMessage":"","ErrorDetails":""}],"OCRExitCode":1,"IsErroredOnProcessing":false,"ErrorMessage":null,"ErrorDetails":null}
BELL'5 SECONDTI-IEOREI’I: WWINGSGWTW HPPPBI‘BOFHSFHRFTHEYVIOLMELDCNJTY.
License: http://www.microsoft.com/web/webpi/eula/windows_runtime_ocr_...
"ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS."
Which defines how you can use it in non-development and testing purposes.
Of course, the following clause is just as damning:
"iii. Distribution Restrictions. You may not"
"distribute Distributable Code to run on a platform other than the Windows Store or Windows Phone;"
The good news: In Win 10 the separate library is gone and the OCR feature is a regular part of Windows (Windows.Media.Ocr namespace). Along with this, the separate OCR runtime license is gone. -> I could not find any hint that the new OcrEngine class (or Windows Store apps in general!) have similar "no server use" restrictions -> I will move the OCR app to a Win 10 platform asap.
And while I can not speak for Microsoft, I have good reasons to assume that the ocr api service is doing Microsoft a favor by advertising the great Win 10 OCR features. My web service allows for quick prototyping and testing on any platform. But ultimately no web api can be as responsive as a native OCR solution - which is only available on the Windows platform.
I would not be surprised if the OCR engine shows up in Windows Server 2016, directly usable from ASP.NET.
If not, who cares what an EULA says, it's not a contract.
To give an example, a part of the text read "the limit" and was parsed as as "he imit". This despite it being extremely clear / easy to read for a human.
Update: Took another picture and uploaded a JPG instead of the original PDF. It worked fine this time.
Here's a dockerfile that will install it in a minimal alpine image.
{"ParsedResults":[{"FileParseExitCode":-20,"ParsedText":"","ErrorMessage":"Timed out waiting for image parsing result or error generation by OCR","ErrorDetails":"System.TimeoutException: Timed out waiting for image parsing result or error generation by OCR\r\n bei OCRInteractionLibrary.OCRInteractor.GetResultForImage(String tempPath, String imageName, FileInfo imageFileInfo, Boolean isOverlayRequired, AccesorType accesorType) in d:\\1tmp\\OCRReaderSolution914\\OCRReaderSolution\\OCRInteractionLibrary\\OCRInteractor.cs:Zeile 259."}],"OCRExitCode":3,"IsErroredOnProcessing":false,"ErrorMessage":null,"ErrorDetails":null}You find some information about me on http://blog.a9t9.com/p/about-this-blog.html
(a9t9) is a place where I experiment with side projects, and I want to keep this separate from my day job. Therefore I am somewhat stingy with the personal information on the blog. That said, you are welcome to email me for details.
No, it isn't.