удаление шума из изображений документа - PullRequest
5 голосов
/ 17 ноября 2011

Я работаю над проектом по автоматической обработке отсканированных счетов. Чтобы получить лучший результат для механизма оптического распознавания символов, я хотел бы сначала удалить шум из изображений. Кроме царапин, я также хотел бы удалить все, что было добавлено в документ после его печати. Многие счета, например были отмечены галочкой, и иногда это делает части счета нечитаемыми для OCR.

Например, посмотрите на это изображение. Описание второго элемента не будет читабельным, и я бы хотел убрать такой «шум».

Так, как я могу удалить подобные рукописные области и при этом поддерживать высокое качество печатного текста ниже?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2011

Царапины и другие пятна можно довольно легко отфильтровать, просто проигнорировав пиксели, которые не имеют по крайней мере определенной интенсивности цвета.

У вас есть три варианта работы со строками:

  1. Первый важный вопрос, написано ли почерк другим цветом?Простым решением было бы дать каждому синие или красные ручки и запретить использование черных ручек.Затем вы можете сканировать документы в цвете, а затем просто использовать зеленый буфер в качестве изображения в оттенках серого вместо всех трех буферов.Это был бы самый простой способ реализовать это, почти каждый сканер в настоящее время поддерживает цветное сканирование.

  2. В противном случае вам придется написать алгоритм, который может обнаруживать линии в изображении,чтобы это работало, вам нужно сначала откалибровать алгоритм, чтобы сначала узнать, каков обычно размер символа, затем найти любые строки, которые длиннее X пикселей, а затем удалить строку оттуда.Это будет очень проблематично и не будет работать слишком хорошо для вас, и вы потратите много времени, пытаясь заставить его работать, и он все равно никогда не будет на 100%.

  3. Другой способ заключается в том, что после выполнения OCR вы должны представить свои данные конечному пользователю, чтобы убедиться, что они верны, затем вы можете представить им отсканированное изображение и позволить им перезаписывать сканированное изображение, если оно было неправильным.

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

Редактировать: одна вещь, на которую стоит обратить внимание, это то, что если вы получаете документы, которые были написаны, а затем отправлены по факсу, вы не сможете сделать с ними очень многокроме варианта 3 (сделайте все возможное, а затем представьте пользователю).

0 голосов
/ 17 ноября 2011

Это сложная задача обработки сигналов, и для ее реализации потребуется сложный алгоритм, который использует некоторые из качеств, которые отличают рукописные заметки от печатного текста (например, ширина меток, кривизна рукописных заметок по сравнению с печатными). текст, или, может быть, даже оттенок чернил).

Возможно, больше информации, чем вы ищете, но вы могли бы даже обучить алгоритм обучения отфильтровывать нежелательные оценки.

...