Логотип 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
Результат операции:
Предпросмотр Улыбка Подмигивание Дразнит Оскал Смех Огорчение Сильное огорчение Шок Сумасшествие Равнодушие Молчание Крутизна Злость Бешенство Смущение Сожаление Влюблённость Ангел Вопрос Восклицание Жирный Курсив Подчёркивание Зачёркивание Размер шрифта Гиперссылка Цитата
Загрузка…