Введение в OCR

#ocr

#распознавание

Вопрос:

Кто-то дал мне сокровищницу, полную потрясающей информации. Отсканированные объявления размером 200 МБ в формате tiff относятся к 40-м годам. Я хочу оцифровать это, но у меня нет никаких знаний об OCR. Некоторые из ранних материалов едва читаемы человеком, не говоря уже о машине. Это также на иврите.

Я ищу совет о том, как подойти к этому. Хороший совет по поводу книг, статей, библиотек кода или программного обеспечения (все они должны быть свободно доступны в Интернете). Я хорошо владею C и Python и могу подобрать другой язык, если это необходимо.

Спасибо.

Комментарии:

1. Вам нужно было, чтобы это было доступно для поиска? Если нет, оставьте все как есть, поскольку так, вероятно, будет более полезно. Я никогда не видел отличного распознавания (хотя некоторые из них близки к этому) для английского языка; я бы предположил, что частота ошибок была бы намного выше при сканировании на иврите.

2. Если текст едва читаем человеком, шансы, что машина сможет его прочитать, невелики.

3. Материал с начала сороковых и вплоть до шестидесятых годов, вероятно, не будет читаем машиной, но все, начиная по крайней мере с семидесятых годов и до настоящего времени, должно быть читаемо.

Ответ №1:

Это звучит как отличная задача для Python, использующая библиотеку OCR. Быстрый поиск в Google выдал pytesser:

PyTesser — это модуль оптического распознавания символов для Python. Он принимает в качестве входных данных изображение или файл изображения и выводит строку.

PyTesser использует механизм распознавания текста Tesseract, преобразуя изображения в принятый формат и вызывая исполняемый файл Tesseract в качестве внешнего скрипта. Исполняемый файл Windows предоставляется вместе со скриптами Python. Скрипты должны работать и в других операционных системах.

Пример использования

 >>> from pytesser import *
>>> image = Image.open('fnord.tif')  # Open image object using PIL
>>> print image_to_string(image)     # Run tesseract.exe on image
fnord
>>> print image_file_to_string('fnord.tif')
fnord
  

Комментарии:

1. Однако поддерживает ли pytesser иврит?

2. Хороший момент — tesseract поддерживает множество языков , но я не вижу иврита. Похоже, что существует относительно небольшой интерес к / поддержке распознавания иврита.

3. Я нашел hocr ( hocr.berlios. de ) и qhocr ( code.google.com/p/qhocr ) это могло бы помочь. Хотя я ищу больше информации и указаний — в основном, каковы общие алгоритмы распознавания? Если я предоставлю библиотеке шрифт, который использовался (или имитирую аналогичный), принесет ли это пользу алгоритму?

4. @CamelCamelCamel похоже, что поддержка иврита была добавлена в Tesseract в 10/2012.