Распознавание и обработка изображений


Роботы и обработка изображений

Распознавание капчи с сайта clickid.ru

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

Итак, приступим. Распонавание капчи включает в себя этапы предобработки изображения, разделения на объекты (как правило символы) и их классификация.

Предобработка:
Фон у данной капчи не монотонный, поэтому сразу точно сосчитать количество квадратов не получится, да и фон содержит в себе черные пиксели, поэтому, в начале избавляемся от фона. Сделать это можно двумя простыми способами. Первый способ - на основе нескольких вариантов капчи получаем фоновую картинку без черных квадратов, затем попиксельно сверяем капчу с полученной фоновой картинкой, и в случае совпадения, ставил белый цвет, а при несовпадении черный. Минус этого способа в том, что для программы распознавание придется эту фоновую картинку поддерживать в проекте, да и будет лишняя работа по получению этой фоновой картинки. размытие капчи Поэтому, мы пойдем вторым путем. Заметим, что фон содержит только единичные черные пиксели, а значит, чтобы их убрать, достаточно применить к изображению высокочастотный фильтр, или попросу размытие. фильтр порог Результат размытия на картинке справа. Видим, что после размытия фон стал более менее монотонный и если приметить фильтр порога, фон станет белым, а квардраты, вернее то, что от них осталось, черными, как на картинке слева. После обоих способов удаления фона мы будем иметь похожий режультат - белый фон и черные связные области, где были квадраты. На этом предобработка закончена.

Разделение на объекты:
Первый способ: В данном случае можно заметить, что квардраты изначально все одного размера, а значит, если сосчитать количество черных пикселей на картинке после обработки и поделить на площадь квадрата, мы получим количество квадратов. Минус в том, что с процессе предобработки квадраты стали уже не совсем квадратами, и данный метод будет давать результат, порядка 80% верных распознаваний. Плюс в том, что метод быстрый.
Способ второй дает 100% распознавание, но более ресурсоемкий. Идея в том, чтобы получить количество связных областей на картинке, тогда результат распознавания будет это количество минус 1, область фона.

1
6683
ivtst1
9 апреля 2014
Написать


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

ivtst1 9 апреля 2014 в 16:25 #
0
Действительно все просто.