Логотип StingRay

Поделиться
FacebookFacebookRSSTwitterYouTubeВ контактеОдноклассники
FacebookFacebookRSSTwitterYouTubeВ контактеОдноклассники
Силуэт человека

Распознавание текста на примере защитной картинки SMS-отправки

Настоящая мини-статья является практической иллюстрацией к алгоритмам, изложенным на странице «Курсовая работа по обработке изображений», в частности, в её разделе «Распознавание текста».

В качестве примера для распознавания было выбрано изображение с сайта BeOnLine. Изображение содержит четыре цифры и служит для предотвращения беспорядочной отправки SMS-сообщений. Выбор пал на данное изображение по нескольким причинам: во-первых, изображение достаточно легко читаемо человеком и при этом достаточно трудно для компьютерного анализа; во-вторых, это личная симпатия к дизайну сайта (замечу, что даже цвет изображения, с которым мы будем работать, выдержан в цветовой политике «Билайна»). Итак, рассмотрим весь процесс по шагам и прокомментируем результат…

Шаг 1. Преобразование в градации серого

Исходное изображениеИзображение в оттенках серого

Переводим исходное цветное изображение в градации серого, как это описано в разделе «Изменение цветности…» – по формуле яркости. В дальнейшем будем работать только со значениями яркости (Y).

Шаг 2. Сглаживание с целью шумоподавления

Изображение в оттенках серогоСглаженное изображение

Сглаживание (размытие) изображения с целью шумоподавления осуществляем с помощью одного из методов раздела «Наложение шума и фильтры шумоподавления», например, по Гауссу со значениями «сигма» = 1,0 и k = 3.

Шаг 3. Линейное контрастирование

Сглаженное изображениеКонтрастное изображение

С применением информации раздела «Изменения яркости и контрастности» линейно корректируем изображение по яркости и контрастности.

Шаг 4. Получение маски областей изображения

Получаем маску областей изображения посредством объединения смежных точек в область. Критерием объединения является разница яркости двух смежных точек (разница > 14,0). Результатом является маска (массив). Размер маски будет совпадать с размером изображения. Одинаковые значения элементов маски означают принадлежность соответствующих точек изображения к одной области.

Шаг 5. Коррекция маски областей изображения

Области изображения

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

Шаг 6. Инверсия цвета областей

Контрастное изображениеИзображение с инвертированными областями

В найденных тёмных областях инвертируем яркость всех точек (то есть тёмные области заменяем их негативами, как это описано в разделе «Изменение цветности…»).

Шаг 7. Бинаризация (преобразование в чёрно-белое)

Изображение с инвертированными областямиЧёрно-белое изображение

Осуществляем бинаризацию всего изображения, как это описано в том же разделе «Изменение цветности…», используя в качестве порога срединное значение яркости (128).

Шаг 8. Выделение отдельных символов

1-я цифра изображения2-я цифра изображения3-я цифра изображения4-я цифра изображения

Выделяем из чёрно-белого изображения отдельные символы, как это описано в разделе «Распознавание текста». Считаем, что минимальная ширина символа равна 5 пикселя, а минимальная высота символа равна 4 пикселя.

Шаг 9. Масштабирование символов

1-я цифра изображения2-я цифра изображения3-я цифра изображения4-я цифра изображения

Приводим все символы к единому размеру 18 x 28 пикселов.

Шаг 10. Распознавание и его погрешность

Распознанное изображение

Сравниваем полученные символы с шаблоном (шрифт шаблона – Arial, 36 пт, полужирный), рассчитываем среднюю пиксельную ошибку – как это описано в разделе «Распознавание текста».

Заключение

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

Тем не менее, описанное выше совместное применение алгоритмов обработки изображений нельзя назвать универсальным алгоритмом распознавания, так его погрешность может варьироваться в пределах 15-70%. Именно поэтому так называемые защитные картинки на сайтах – это по-прежнему одно из самых эффективных методов защиты от спам-роботов

21.05.2010 17:46:45 Артём (IP) Цитата #1
А исходников нету ?
(интересуют пункты 8 – 10)
22.05.2010 06:51:50 Станислав (IP) Цитата #2
А в зачётке Вам сразу не расписаться? :-D См. часто задаваемый вопрос № 4 и ответ на него – хотя он несколько про другую работу без исходников, но суть та же.
Добавьте свой комментарий или войдите, чтобы подписаться/отписаться.
Имя: OpenId
Результат операции:
Предпросмотр
Загрузка…