Doesn't look like it likes xkcd hand lettering or the font that approximates it. I had better luck with a this...
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}
Using the web site for a quick test, it gets me better results than Tesseract. However, it missed some words that free-ocr.com gets every single time. (free-ocr.com seems to have some voodoo magic)
"One user may install and use copies of the software to design, develop, test and demonstrate your programs. You may not use the software on a server in a production environment."
Ouch. I was not aware of this, so thanks for the info! I guess the reason for this surprisingly restrictive license is/was the version 1/first release character of the software (namespace Windows"Preview".Media.Ocr).
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.
This clause does not apply here: I assume it is intended to avoid "hacked" OCR libraries that e. g. work with Win32 apps. But as with any hosted service, I do not distribute any code.
I tried this API with a document I had lying around which contains a lot of text in different tables. The text is pretty clear but this API was not able to parse the text to the point it's usable.
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.
I got this error; are you a victim of your own popularity?
{"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}
Does anyone know who or what organization is behind A9T9? It seems the author/source is somewhat obscured. It would be important to know before using for more than a hobby project.
(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.
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 }