What would be the best/most accurate way to read human writing from a scanned document and convert it into text?
If you have a lot of handwritten text from a single author you can train some OCR systems on that text and possibly get a reasonable accuracy rate but do not expect anything much above 80% unless the author has a near machine look script - after all we all have problems reading some peoples hand written text sometimes even our own.
Tesseract OCR is:
- Free, Gratis
- Free, Open Source
- Apache 2.0 Licence
- Cross Platform
- Mature it has been about since at least 1985
- Actively Maintained as of Dec 2019
- Has UTF-8 Support
- Can process text in over 100 languages "out of the box"
- Can process Right to Left Language text
- Supports multiple output formats.
It does not have it's own GUI but there are some 3rd Party GUIs available.
Note: to get better OCR results, you'll need to improve the quality of the image you are giving Tesseract.
For recognizing handwritten text, what you are looking for is ICR, or Intelligent Character Recognition.
OCR, or Optical Character Recognition, is used for printed text that remains more or less consistent from letter to letter in terms of shape due to using a set font. For handwritten text however, there is no standard font and you have to analyze and anticipate the intended shape from a bitmap which is usually a bit harder computationally.
You may want to try out the LEADTOOLS ICR libraries (www.leadtools.com) as they have released an ICR engine in the latest version which is cross platform compatible through .NET Core.
It does not require lengthy training as machine learning libraries would, and can generate decent output even before finetuning, as long as the input image is fairly clean and has high contrast. They also have image processing functions to clean up documents and images as well which aids in recognition.
Below you can see an example with one of their demos.
Disclaimer: I work for LEAD Technologies who develops this toolkit.