Удаление линейных артефактов из изображения - PullRequest
0 голосов
/ 08 октября 2019

Я создаю приложение OCR. Он извлекает рукописные символы из разделов в штучной упаковке в отсканированном или сфотографированном печатном виде и читает их с использованием CNN.

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

По сути, это работает, когда форма сканируется с помощью хорошего сканера, сохраненного в формате PNG. Иначе это не сработает. Мне нужно, чтобы он также учитывал файлы JPEG и дерьмовую камеру / сканеры.

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

Я бы хотел либо удалитьстрок или заставьте код игнорировать его.

Я пробовал:

  • "заполнить" обрезанный фрагмент в штучной упаковке отрицательным числом n . Так что вместо этого он удаляет n пикселей с каждой стороны. Это не может быть использовано слишком много, поскольку оно также съедает пиксели символа.
  • использует морфологическую операцию «закрыть». Однако изменение размера ядра практически ничего не значит.
  • реализация области сечения в штучной упаковке: отношение площади символа. Если извлеченное отношение площади контура к области в штучной упаковке не находится в диапазоне, оно игнорируется.

Вот как это выглядит:

1 3

4 5

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

Помимо линий, мешающих модели и создающих излишнюю ерунду при попытке их интерпретировать, в некоторых случаях это также может вызывать эту ошибку:

ValueError: cannot reshape array of size 339 into shape (1,28,28,1)

Может быть, я начну расследовать это время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...