Алгоритм определения углов листа бумаги на фотографии

Как лучше всего определять углы счета / квитанции / листа бумаги на фотографии? Это должно использоваться для последующей коррекции перспективы перед OCR.

Мой текущий подход был:

RGB> Серый> Обнаружение Canny Edge с установлением порога> Расширить (1)> Удалить мелкие объекты (6 )> объекты с четкими границами> выберите большой блог, основанный на Convex Area. > [обнаружение углов - не реализовано]

Я не могу не думать, что должен быть более надежный «интеллектуальный» / статистический подход для обработки этого типа сегментации. У меня не так много обучающих примеров, но я, вероятно, смогу собрать вместе 100 изображений.

Более широкий контекст:

Я использую Matlab для создания прототипов и планирую реализовать систему в OpenCV и Tesserect-OCR. Это первая из ряда проблем обработки изображений, которые мне нужно решить для этого конкретного приложения. Итак, я собираюсь развернуть собственное решение и заново ознакомиться с алгоритмами обработки изображений.

Вот пример изображения, которое я бы хотел обработать с помощью алгоритма: Если вы хотите принять вызов, большие изображения находятся по адресу http://madteckhead.com/tmp

case 1
(источник : madteckhead.com )

case 2
(источник: madteckhead.com )

case 3
(источник: madteckhead.com )

case 4
(источник: madteckhead.com )

В лучшем случае это дает:

case 1 - canny
(источник: madteckhead.com )

case 1 - post canny
(источник: madteckhead.com )

case 1 - largest blog
(источник: madteckhead.com )

Однако он легко терпит неудачу в других случаях:

case 2 - canny
(источник: madteckhead.com )

case 2 - post canny
(источник: madteckhead.com )

case 2 - largest blog
(источник: madteckhead.com )

Заранее спасибо за все прекрасные идеи! Я люблю ТАК!

РЕДАКТИРОВАТЬ: Прогресс преобразования Хафа

В: Какой алгоритм будет сгруппировать горизонтальные линии для поиска углов? Следуя советам из ответов, я смог использовать преобразование Хафа, выбрать линии и отфильтровать их. Мой нынешний подход довольно груб. Я сделал предположение, что счет-фактура всегда будет меньше 15 градусов от выравнивания с изображением. Я получаю разумные результаты для строк, если это так (см. Ниже). Но я не совсем уверен в подходящем алгоритме для кластеризации линий (или голосования) для экстраполяции углов. Линии Хафа не непрерывны. А на зашумленных изображениях могут быть параллельные линии, поэтому требуются метрики какой-либо формы или расстояния от начала линии. Есть идеи?

case 1case 2 case 3 case 4
(источник: madteckhead.com )

91
задан Glorfindel 11 August 2019 в 13:37
поделиться