c # — обнаружение произвольных форм на отсканированном изображении

Я работаю с Emgu CV, чтобы определить, содержит ли область изображения какую-либо произвольную форму. Я новичок в библиотеках Open и Emgu (и их сообществах), и я боюсь за голову, но здесь все.

Изображения представляют собой отсканированные формы (бумажные документы), где «пользователь» обводит / проверяет / расширяет заданную область. Например, допустим, у меня есть простая бумажная форма, которая содержит одну группу из трех элементов. Группа — «пол», и доступны следующие варианты: «мужчина», «женщина» и «другое». Пользователь X пишет галочку через «женский»; пользователь Y круги «другое»; а пользователь Z рисует симпатичного единорога рядом с «самцом».

Теперь у меня есть примеры форм, где нет отметок. Я просто использую вложенный шаблон соответствия, чтобы: 1) найти группу «пол» и 2) найти элемент (мужской, женский, другой) в подизображении гендерной группы (производительность сейчас вторична точности). Затем я размываю (гауссово) и преобразовываю в двоичную форму результирующее изображение (порог настраивается для каждой формы) и беру гистограмму из 2 бинов. Я сравниваю нормализованный шаблон и наблюдаемые гистограммы и получаю логический результат (true: произвольная форма присутствует / false: форма не присутствует).

Этот процесс в порядке, но не большой. У меня есть 4 формы с ~ 500 полями и средней точностью до 70%. Результатом этой программы является модель прогнозирования, а поля форм являются сильными кандидатами-предикторами, поэтому я хотел бы увеличить правильное / общее отношение на несколько пунктов (в идеале> 0,90).

Я пробовал сравнение контуров, но это было неточно из-за низкого качества сканирования, низкого уровня чернил на отсканированном изображении, разной длины векторов между маркировками / типами форм и т. Д.

Итак (наконец-то!) Мой вопрос: есть ли какие-нибудь эксперты по Open / Emgu CV, которые имеют какие-то лучшие идеи о том, как обнаружить маркировку на отсканированном документе? Если сценарий и вопрос слишком расплывчаты, я с удовольствием их проясню. Примеры кода (C ++, C #, Python) приветствуются.

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector