Luciv / Практическое занятие №5
.docПрактическое занятие №5
«Распознавание цифр на изображении»
Цель работы – освоение приемов работы с реальными изображениями: нормализация освещенности, выделение краёв, бинаризация, морфологические операции, выделение связанных компонент, разработка программного модуля для решения задачи автоматического распознавания автомобильных номеров.
Задание по работе:
-
На основе знаний, полученных на теоретических занятиях, разработать программу для распознавания трех основных цифр номера автомобиля и протестировать ее на изображениях из базы.
Требования и рекомендации по выполнению работы.
Концептуально работа реализуемого алгоритма должна выглядеть следующим образом: на вход подаётся файл с изображением и набор параметров. На выходе - три распознанные цифры номера. При этом пользователь может выбрать один из двух алгоритмов распознавания. Также, пользователь может выбрать опцию отображения результатов, в этом случае должно быть отображено изображение номера с тремя выделенными на нём цифрами (рис. 1).
Рисю 1. Пример результата работы программного модуля по распознаванию автомобильных номеров
Параметры входных данных: изображения номеров являются полутоновыми и сделаны с небольшим запасом; цифры и буквы на номерах размещены последовательно (в виде одной строки). Отношение высоты к ширине видимых на изображении символов не обязательно совпадает с тем, которое задается ГОСТом; отличия могут достигать 25%
В первой части данной практической работе предлагается, имея дневные и ночные изображения номеров машин, автоматически выделить три основные цифры и три буквы номера (без кода региона).
Примерный алгоритм выполнения первой части задания можно представить виде следующих шагов (в скобках приведены возможные варианты встроенных функций Matlab):
-
Нормализация контраста и освещенности исходного изображения (imadjust).
-
Подавления шума (imfiler и fspecial, 'average' или 'gaussian').
-
Бинаризация изображения (graythresh, im2bw).
-
Поиск связанных компонент на бинаризованном изображении (regionprops с параметром 'BoundingBox').
-
Выделение среди всех найденных связанных компонент букв и цифр номера
Для разделения связанных компонент, соответствующих буквам и цифрам номера, можно воспользоваться следующей априорной информацией:
-
Номер имеет следующую структуру - а111аа, где а - любая буква, 1 - любая цифра.
-
Ширина букв и цифр должна быть примерно одинакова.
-
Буквы имеют одинаковую высоту, цифры тоже.
-
Высота букв меньше высоты цифр.
-
Ограничивающие прямоугольники букв и цифр не могут быть слишком большими или слишком маленькими.
-
Расстояния между соседними ограничивающими прямоугольниками равны между собой.
-
Ограничивающие прямоугольники не должны пересекаться.
Лучшая шестёрка связанных компонент должна максимизировать некоторый функционал, заданный на основе подобного рода априорной информации. В данной работе предлагается задать этот функционал и методом полного перебора по всем связанным компонентам найти лучшую, максимизирующую его, шестёрку ограничивающих прямоугольников.
Во второй части работы необходимо реализовать один из предлагаемых методов распознавания основных цифр номера и применить их к изображениям номеров из базы. Первый метод использует классификатор, основанный на инвариантных признаках. Во втором методе распознавание цифр производится с помощью сопоставления с шаблоном.
Примерная реализация первого алгоритма может состоять из следующих шагов:
-
Бинаризация изображения и поиск трех цифр номера (первая часть практической работы)
-
Описание каждой цифры с помощью инвариантных признаков (многие полезные признаки можно получить на примере функции regionprops пакета MATLAB)
-
Подбор решающих правил, позволяющих лучше всего разделить цифры (для упрощения процедуры подбора рекомендуется воспользоваться графическим анализом признаков)
-
Примерная реализация второго алгоритма может состоять из следующих шагов:
-
Построение шаблона для каждой цифры путём усреднения изображений
-
Бинаризация изображения и поиск трех цифр номера (первая часть практической работы)
-
Распознавание цифр с помощью сопоставления с шаблоном. Шаблон может быть создан на основе интенсивностей. Далее можно напрямую сопоставлять шаблон на интенсивностях с вырезанной цифрой, либо сделать преобразование расстояния и искать соответствия с помощью чамферного сопоставления.
Литература:
1) В.Т. Фисенко, Т.Ю. Фисенко, Методы компьютерной обработки изображений: учеб. пособие. – СПб: СПбГУ ИТМО, 2009. – 133 с.
2) Гонсалес, Рафаэл. Цифровая обработка изображений [Текст] / Р. Гонсалес, Р. Вудс; пер с англ. под ред. П. А. Чочиа. – М.: Техносфера, 2006. – 1070, [2] с.
3) Яне, Бернд. Цифровая обработка изображений [Текст] / Б. Яне; пер. с англ. А. М. Измайловой. – М.: Техносфера, 2007.– 583 с.