Ответ 1
Я успешно использовал GOCR в прошлом для небольшого OCR изображения. Я бы сказал, что точность составляла около 85%, после того, как параметры оттенков серого были установлены правильно, на довольно обычных шрифтах. Он терпит неудачу, когда шрифты усложняются и возникают проблемы с многострочными макетами.
Также посмотрите Ocropus, который поддерживается Google. Это связано с Tesseract, но из того, что я понимаю, его движок OCR отличается. Только с включенными стандартными моделями он достигает почти 99% точности на высококачественных изображениях, отлично справляется с оформлением и предоставляет HTML-вывод с информацией о форматировании и строках. Однако, по моему опыту, его точность очень низкая, когда качество изображения недостаточно. Это, как говорится, обучение относительно просто, и вы можете попробовать попробовать.
Оба из них легко можно вызывать из командной строки. Использование GOCR очень простое; просто введите gocr -h
и у вас должна быть вся необходимая информация. Ocropus немного сложнее; здесь пример использования в Ruby:
require 'fileutils'
tmp = 'directory'
file = 'file.png'
`ocropus book2pages #{tmp}/out #{file}`
`ocropus pages2lines #{tmp}/out`
`ocropus lines2fsts #{tmp}/out`
`ocropus buildhtml #{tmp}/out > #{tmp}/output.html`
text = File.read("#{tmp}/output.html")
FileUtils.rm_rf(tmp)