Технология обработки изображений и распознавания образов

Оптико-электронная система идентификации объектов подвижного состава железнодорожного транспорта. Автоматический комплекс распознавания автомобильных номеров. Принципы и этапы работы систем оптического распознавания. Особенности реализации алгоритмов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 26.11.2013
Размер файла 887,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

  • Оглавление

Введение

1. Аналитический обзор

1.1 Система автоматической идентификации транспортных средств "Пальма"

1.2 Оптико-электронная система идентификации (ОЭСИ) объектов подвижного состава железнодорожного транспорта

1.3 Автоматический комплекс распознавания автомобильных номеров

2. Анализ предметной области

2.1 Требования к программному комплексу

2.2 Описание системы видео контроля

2.2.1 Принцип действия

2.2.2 Особенности сети передачи данных системы

2.2.3 Функции АРМа видео системы

2.2.4 Развитие функций системы

2.2.5 Основные технические характеристики системы (базовый вариант)

2.2.6 Развитие системы для других приложений

2.2.7 Идентификация номеров вагонов на основе системы видео контроля

2.3 Представление кадра в цифровом формате

2.4 Общие принципы и этапы работы систем оптического распознавания

3. Проектирование алгоритмов работы ПО

3.1 Сегментация

3.1.1 Сегментация строк

3.1.2 Сегментация номера

3.1.3 Сегментация символов

3.2 Масштабирование

3.3 Распознавание

4. Реализация ПО на основе алгоритмов

4.1 Обоснование выбора языка программирования

4.2 Особенности реализации алгоритмов

4.2.1 Реализация алгоритмов сегментации

4.2.2 Реализация алгоритма масштабирования

4.2.3 Реализация алгоритма распознавания

5. Тестирование и апробация ПО

6. Организационно-экономическая часть

6.1 Организация и планирование процесса разработки

6.1.1 Определения основных этапов разработки

6.1.2 Оценка трудоёмкости

6.1.3 Определение количества исполнителей работ, их функций и фондов времени

6.1.4 Организационный план работ

6.2 Технико-экономическое обоснование проекта

6.2.1 Расчет сметной стоимости разработки

6.2.2 Технико-экономические показатели проекта

6.2.3 Расчет ожидаемого экономического эффекта от применения на предприятии программного комплекса распознавания номеров

7. Безопасность жизнедеятельности

7.1 Вводная часть

7.2 Система управления охраной труда на предприятии

7.3 Расчёт виброгашения

7.4 Бактериологическое поражение

Заключение

Библиографический список

Приложение

Введение

Появление вычислительной техники, затем её бурное развитие, постоянное улучшение технических характеристик с одной стороны и сравнительно недорогие цены способствовали внедрению последней во все сферы жизни общества и в том числе и в сферу производства. Сейчас уровень проникновения вычислительной техники в сферу производства настолько велик, что компьютер на столе бухгалтера, или столе начальника является обыкновенной картиной, а порой он становится неотъемлемой частью производственного процесса.

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

Информация о подвижном составе, пункте его назначения и грузе, который перевозится очень ценна, отсюда и контроль за достоверностью этой информации также должен быть уверенным и достоверным.

Одним из перспективных путей решения проблемы информатизации перевозок и развития высокоскоростного наземного транспорта является создание эффективных систем контроля подвижного состава и дистанционного управления, основанных на использовании технологии обработки изображений и распознавании образов. В этом направлении исследований весьма актуальны научно-технические разработки, обеспечивающие слежение за подвижными транспортными объектами в целях их идентификации и позволяющие исключить ручное и визуальное списывание.

Таким образом, данная дипломная работа направлена на частичную, а в последствии и переходе на полную автоматизацию процесса учёта вагонов на железной дороге.

В первом разделе дипломной работы рассматривается современное состояние проблемы учёта вагонов на железной дороге.

Во втором разделе описано исследование предметной области, представлены основные документы предметной области, а также функциональное описание объекта автоматизации, сформулированы основные требования к информационной системе.

В разделе «Проектирование алгоритмов работы программного комплекса» рассмотрены и описаны алгоритмы функционирования ПО, описаны форматы входных и выходных данных.

В четвертом разделе данной работы представлено описание требований ПО к аппаратуре, а также руководства пользователей системы и руководство программиста.

В разделе «Тестирование и апробация ПО» представлены результаты тестирования и оценки программного обеспечения.

В разделе «Экономическое обоснование» представлены экономические доводы о целесообразности дипломного проекта.

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

1. Аналитический обзор

На российских железных дорогах для идентификации транспортных объектов на сегодняшний день используется, в основном, ручное или визуальное списывание оператором номеров вагонов подвижного состава. Недостатки этого способа очевидны. К ним можно отнести необходимость постоянного визуального наблюдения оператора за контрольным участком железной дороги, высокую трудоёмкость процесса контроля, отсутствие автоматизации, порой недостаточную достоверность информации. Кроме того, составы, проходящие мимо поста списывания, вынуждены снижать скорость до 10-15 км/ч, что существенно ограничивает пропускную способность станции.

Данная ситуация является не выгодной. Поэтому одной из основных задач, требующей решения, является автоматизация процесса контроля объектов подвижного состава железнодорожного транспорта, включая их идентификацию.

1.1 Система автоматической идентификации транспортных средств "Пальма"

Для решения этой задачи в России по заданию МПС разработана и в настоящее время внедряется система автоматической идентификации транспортных средств "Пальма" [3], основанная на использовании принципов сверхвысокочастотной (СВЧ) технологии. Она предназначена для автоматической фиксации времени проследования и идентификации железнодорожного подвижного состава (локомотивов, грузовых и пассажирских вагонов). Внедрение системы "Пальма" предполагает оборудование всего подвижного состава, а это порядка 600 тыс. единиц техники, кодовыми бортовыми датчиками (КБД) и установку около 3000 напольных считывающих устройств.

СВЧ - системы, которым относится и отечественная "Пальма", обладают множеством неоспоримых преимуществ. К их достоинствам следует отнести высокую надёжность идентификации, инвариантность к погодным условиям и степени загрязнённости вагонов. На эффективность подобных систем указывает их опыт эксплуатации в США, Мексике и Канаде, где бортовыми датчиками оборудован практически весь парк железнодорожных транспортных средств.

Однако с учетом российской специфики процесс внедрения и эксплуатации СВЧ-системы сопряжен с рядом объективных трудностей. Первая трудность обусловлена тем, что на текущий момент в рабочем парке железных дорог МПС России вагоны собственности других государств составляют в среднем 10%. С учетом увеличения товарооборота между Россией и соседними странами этот значение в ближайшие годы может вырасти до 15-20%. При совместном пользовании грузовыми вагонами государств СНГ и Балтии достижение полномасштабного эффекта от внедрения СВЧ-систем возможно лишь в случае, когда все государства ближнего зарубежья будут внедрять подобные системы одновременно и в рамках единого стандарта. Похожая ситуация имеет место среди стран Западной Европы, на железных дорогах которой использование СВЧ-систем идентификации носит лишь локальный характер. Во-вторых, до сих пор полностью не решен вопрос об оборудовании КБД вагонов, собственниками которых являются различные предприятия. Не определены детально технические, финансовые и юридические аспекты возможного решения по этому вопросу. Двулетний опыт внедрения системы "Пальма" указывает также на ряд возникающих технических трудностей (необходимость доработки конструкции, перегруженность необходимого частотного диапазона), которые приходится своевременно решать. Кроме того, на стадии широкомасштабной эксплуатации системы следует учесть известные проблемы отечественного вандализма и воровства.

Анализ отмеченных трудностей позволяет говорить о том, что внедрение системы "Пальма" на железных дорогах России и доведении ее до полномасштабного и полнофункционального уровня эксплуатации займет от 4 до 5 лет, в лучшем случае.

1.2 Оптико-электронная система идентификации (ОЭСИ) объектов подвижного состава железнодорожного транспорта

В настоящее время в России пока не разработано полнофункциональной оптико-электронной системы, обеспечивающих эффективное решение задачи идентификации объектов подвижного состава железнодорожного транспорта в автоматическом режиме. Большинство применяемых на постах списывания систем телевизионного мониторинга обеспечивают лишь формирование и ввод в ЭВМ видеопоследовательности изображений рабочей сцены - области контроля. Диагностику появления состава и решение о записи видеофрагмента принимает оператор. Таким образом, существующие ОЭСИ обеспечивают, как правило, лишь функции цифрового видеомагнитофона.

Эффективным способом устранения перечисленных трудностей и недостатков СВЧ-системы идентификации, описанных выше, является использование технологии обработки изображений и распознавании образов. Оптико-электронные системы идентификации (ОЭСИ), использующей в основе своего функционирования эту технологию, обладают рядом достоинств, которых нет у СВЧ-систем: сравнительно низкая стоимость; удобство в эксплуатации, обслуживании и обновлении; гибкость, обусловленная возможностью адаптации алгоритмов и программного обеспечения для различных объектов идентификации. И наоборот, недостатками ОЭСИ являются зависимость от загрязнённости объектов идентификации и погодных условий.

Таким образом, СВЧ-системы идентификации и ОЭСИ взаимно дополняют друг друга. С учетом того, что большинство постов списывания уже оснащены средствами телевизионного мониторинга, внедрение ОЭСИ может быть закончено значительно быстрее и повлечет меньшие затраты, нежели внедрение системы "Пальма". В будущем параллельная эксплуатация двух этих систем, основанных на разных способах контроля, сможет обеспечить весьма высокую достоверность информации при идентификации любых объектов подвижного состава железнодорожного транспорта с учетом российской специфики его эксплуатации.

1.3 Автоматический комплекс распознавания автомобильных номеров

Если на железной дороге системы автоматической идентификации транспортных средств находятся в стадии разработки, то на автомобильных дорогах уже используются автоматические комплексы распознавания автомобильных номеров. Одним из таких программных продуктов является промышленная система анализа изображений SIAMS 600.

SIAMS 600 - это автоматический контрольный пункт на автотрассе предназначен для контроля и регистрации проходящего автотранспорта.

Основные функции комплекса:

ь регистрация в базе данных номеров, цвета, типа и марки всех автомобилей;

ь автоматическое обнаружение автомобилей, находящихся в розыске, с уведомлением сотрудников автоинспекции;

ь статистический анализ интенсивности движения и основных признаков проходящих автомашин: государственной и административно-территориальной принадлежности, типа и марки;

ь формирование отчетов по собранным данным.

Схема работы контрольного пункта

Автомобиль, проезжая мимо датчика, вызывает срабатывание двух видеокамер, расположенных на определенном расстоянии (20-30 метров) спереди и сзади от датчика. Полученные видеокадры передаются в компьютер. С помощью оригинального программного обеспечения кадры перерабатываются в буквенно-цифровой номер и набор типовых признаков, которые помещаются в базу данных и становятся доступны для дальнейшего анализа.

Ситуации, когда система не может распознать номер и другие признаки (из-за загрязнения, плохого освещения или нестандартного номерного знака), автоматически определяются благодаря двойной видеосъемке. Для таких автомобилей в базу данных помещаются также исходные изображения, позволяющие оператору уточнить номер и признаки вручную.

Эффективность работы комплекса достигается благодаря новым методам морфологической реконструкции изображения, позволяющим быстро отыскать на видеокадре номерной знак и другие отличительные признаки автомобиля. Найденные признаки обрабатываются алгоритмами распознавания образов; в частности, для "чтения" найденного номера используются стандартные алгоритмы распознавания текста (OCR).

Реализованные в данной системе алгоритмы позволяют провести анализ одного автомобиля за несколько секунд на компьютере IBM AT Pentium 100. В базе данных можно разместить информацию о нескольких миллионах прошедших автомобилей и не менее чем о миллионе разыскиваемых.

Формирование отчетов и запросов к базе данных реализовано в новой технологии Executable Page, позволяющей легко указать, какая информация об автомашинах и в каком виде нужна пользователю.

Необходимые програмные и аппаратные средства

ь датчик регистрации движения;

ь 2 видеокамеры;

ь компьютер типа IBM AT 486/Pentium с 8Mb оперативной памяти и жестким диском 800Mb или более, оснащенный платой видеоввода и платой для связи с датчиком;

ь операционная система MS Windows 9x/NT. [16]

Хотя данная система является работоспособной и продаётся на рынке программных продуктов, по ряду своих особенностей она не подходит для идентификации подвижного состава на железной дороге.

2. Анализ предметной области

2.1 Требования к программному комплексу

Для решения любой задачи необходимо прежде всего определить цели проекта и ограничения, накладываемые на него. Так как реализация проекта будет проходить на железной дороге, то появляется важная особенность, которая накладывает некоторые ограничения на проект: вагон будет проходить рядом с видео камерой слева направо (либо наоборот), следовательно при большой скорости будет иметь место размыливание номера вагона и склеивание отдельных символов.

Отсюда вытекает первое и основное ограничение - ограничение скорости движения состава мимо поста списывания. При ручном списывании скорость движения колеблется от 10 до 15 км /час. Нет смысла разрабатывать систему, если она не увеличит пропускную способность, поэтому ограничение по скорости в проекте принято следующее: скорость движения состава не более 40 км/час.

Обычно на станциях есть несколько постов списывания, которые располагаются на различных направлениях движения поездов. Было бы рациональным решением поставить на этих местах видео камеры и соединить всю информацию, поступающую с них на экране монитора одного оператора. При этом оператор располагается в помещении, где соблюдены нормальные условия труда.

Следующим этапом будет автоматизация поста списывания. Программный комплекс распознавания номеров вагонов предполагает работу поста списывания в полуавтоматическом режиме, то есть оператор будет наблюдать за работой программного средства и в критических ситуациях, когда комплекс не сможет распознать номер, он будет вручную вносить его в программу.

В зависимости от мощности вычислительной аппаратуры возможны два решения проблемы:

1. При прохождении состава поток видео сохраняется. Так как интервал времени между прохождением поездов составляет порядка 10 минут, то этого времени вполне достаточно для обработки информации. Распознавание происходит именно в этот период.

2. При достаточно быстрых ЭВМ, возможно реализация процесса распознавания номера вагона в режиме реального времени.

Наиболее лучший и перспективный способ - это распознавание в режиме реального времени.

Если кратко выразить описанное выше, то имеем следующее:

Ш Ограничения:

1. Скорость движения состава не более 40 км/час.

2. Ограничение, связанное с возможностью аппаратуры.

Ш Цели:

1. Автоматизация процесса списывания.

2. Увеличение пропускной способности станции.

3. Улучшение условий труда.

2.2 Описание системы видео контроля

В основу программного комплекса распознавания номеров вагонов, легла цифровая система видео контроля, которая используется на станции Лоста. Разработанная система видео контроля и регистрации предназначена для наблюдения за объектами контроля с помощью телевизионных видеокамер. Система является полностью цифровой, за исключением видеокамер.

2.2.1 Принцип действия

Аналоговый сигнал от видеокамер поступает в расположенный рядом (для устранения возможных помех) блок аналогового преобразователя видеосигнала в цифровой код VideoADCtr. Далее цифровые данные по каналу связи поступают в концентратор VideoHUB, а из него в сервер системы (он же выполняет функции АРМ оператора системы), где кадры видеоизображения обрабатываются в цифровом виде. Каждый блок VideoADCtr может подключаться к VideoHUB непосредственно или через другой блок VideoADCtr, позволяя гибко конфигурировать и наращивать систему. Устройства VideoADCtr, VideoHUB образуют локальную цифровую сеть передачи данных, а через сервер системы видео данные могут передаваться в другие цифровые сети заинтересованным потребителям.

2.2.2 Особенности сети передачи данных системы

1. Все устройства сети имеют гальваническую развязку от каналов связи, что предотвращает массовый выход из строя аппаратуры системы в случае сильных внешних электромагнитных воздействий (например, от контактной электросети ЖД).

2. Сеть передачи данных имеет древовидную структуру.

3. Все устройства поддерживают режим транзита сообщений, что позволяет соединять устройства в цепочки, значительно экономя затраты на кабель и его прокладку.

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

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

6. Сеть передачи видео данных может быть использована для передачи других типов данных в цифровом виде.

7. В одном сегменте сети, подключенном к одному порту VideoHUBа, предусмотрена адресация из 13-разрядного адреса и 3-разрядного тип устройства, что позволяет адресовать 8192 устройства.

2.2.3 Функции АРМа видео системы

АРМ оператора обеспечивает:

ь индикацию текущего времени и даты;

ь индикацию названия (задаётся пользователем) и номера камеры;

ь отображение плана расположения камер;

ь возможность отображения и сохранения видео фрагментов от камеры в режиме высокого или низкого разрешения;

ь возможность сканировать весь кадр или только заданные области (до 3-х областей на кадр для одной камеры);

ь возможность задать частоты опроса областей сканирования и полного кадра для каждой камеры;

ь возможность задать частоты сохранения указанных областей и полных кадров;

ь возможность отображения на экране монитора компьютера одновременно кадры от 4-х видео камер;

ь возможность 2-х кратного цифрового увеличения кадра;

ь возможность задания области сканирования с помощью манипулятора «мышь»;

ь контроль работоспособности видеокамер;

ь контроль пропадания сигнала от камер на время более 1 секунды;

ь индикацию расчетного времени хранения видео фрагментов;

ь поиск видео фрагментов по дате и времени создания;

ь возможность сохранения отдельных фрагментов на длительное время;

ь передача фрагментов по локальной сети;

ь обеспечивает многоуровневую защиту от несанкционированного доступа;

ь ведение протокола работы системы;

ь возможность резервирования системы.

2.2.4 Развитие функций системы

ь синхронизация работы системы с многоканальным комплексом регистрации служебных переговоров (МКРС);

ь "датчик движения" - контроль изменений в указанной области кадра;

ь возможность инициирования процесса регистрации при срабатывании "датчика движения";

ь звуковое оповещение оператора о срабатывании "датчика движения".

2.2.5 Основные технические характеристики системы (базовый вариант)

Технические характеристики системы видео контроля

Табл. 2.2.5.1

Параметр

Значение

1

2

Число обслуживаемых камер блоком VideoADCtr.

до 4

Число блоков VideoADCtr, подключенных к одному порту концентратора VideoHUB.

до 16

Число портов VideoHUB.

4

Число камер в системе определяется необходимой частотой опроса камер и характеристиками каналов связи.

До 8

Режим высокого разрешения (точек в строке*число строк)

390*276

Режим низкого разрешения (точек в строке*число строк)

195*138

Область сканирования в кадре

Произвольная прямоугольная

Число градаций серого в кадре

64

Время хранения видео определяется объёмом жесткого диска, числом камер, частотой записи и размером выделенных областей.

24 часа * одна камера * полный кадр

1.7 Гбайта.

Скорость передачи цифровых данных:

· по витой паре на расстояние до 1000 метров

· по коаксиальному кабелю на расстояние до 1000 метров

· по оптоволоконному кабелю на расстояние до 1000 метров

до 1 Мбит/сек.

до 5 Мбит/сек.

до 20 Мбит/сек.

Режим работы необслуживаемый, непрерывный, круглосуточный.

2.2.6 Развитие системы для других приложений

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

Перечень задач, решаемый с помощью системы видео наблюдения, можно условно разбить на следующие функции:

1. Охранные функции:

1.1. Задачи противодействия разрушению и хищению элементов устройств СЦБ (особенно на закрытых станциях). В этом случае система должна быть включена в охранный режим с включением сигналов тревоги на АРМе центрального поста и записи при появлении в поле обзора камер перемещающихся объектов с площадью, сопоставимой с человеческой фигурой.

1.2. Задачи выполнения поисковых мероприятий и противодействия возможным террористическим актам. Особенно актуальны в свете проводимых антитеррористических мероприятий, поскольку дает возможность контроля ситуации в реальном режиме времени.

1.3. Охрана длительно стоящих на станции составов (по аналогии с п.1.1.) .

2. Технологические задачи в порядке текущей эксплуатации:

2.1. Внешний осмотр составов на станциях во всевозможных ракурсах в автоматическом и ручном режимах.

2.2. Наблюдение за процессом посадки пассажиров на закрытых станциях.

2.3. Проверка выполнения графика техпроцесса работниками ПЧ, ШЧ на напольных устройствах станции.

2.4. Контроль выхода ДСП, работников ПТО к проходящим поездам.

3. Задачи повышения безопасности движения:

3.1. При включении специализированных камер, работающих в инфракрасном диапазоне, есть возможность визуально оценивать степень нагрева букс, в том числе и на уровне ДСП. Хорошее дополнение к системам бесконтактного контроля нагрева букс.

3.2. Автоматическое включение записи подсистемы видео контроля на неохраняемых переездах при появлении поездов на участках приближения.

3.3. Возможность синхронной работы «черных ящиков» систем видео наблюдения,
АПК-ДК и регистратора служебных переговоров обеспечит полный объективный разбор любой внештатной ситуации.

4. Задачи охраны труда и техники безопасности.

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

2.2.7 Идентификация номеров вагонов на основе системы видео контроля

Описанные возможности системы видео контроля можно эффективно использовать, несколько модернизировав её. К видео АЦП (VideoADCtr) можно подсоединить датчик. При прохождении колес вагона над датчиком, тот срабатывает и снятый в это время кадр идёт на модуль распознавания. При описанных выше возможностях системы, данное решение является рациональным и практичным. Более подробно работа системы видео контроля применительно к распознаванию номеров вагонов представлена в приложении 1.

2.3 Представление кадра в цифровом формате

Стандартный поток видео, который мы привыкли наблюдать на экране телевизора, в кинотеатре представляет собой поток быстро сменяющих друг друга картинок. Человеческий глаз способен воспринять 24 кадра в секунду, поэтому везде, где мы видим видео - это есть поток кадров с частотой 24 Гц.

Программный комплекс распознавания номеров работает с потоком видео. Он выявляет из потока кадры, которые нужно проанализировать и преобразует графическое представление номера вагона в цифровое. При этом используется видео камера, которая снимает в черно-белом режиме, 255 градаций серого цвета.

Для компьютера кадр - это матрица n x m, где n и m - разрешение видео камеры, каждый элемент которой несет информацию о своём уровне яркости. Таким образом, работа с изображением заключается в оперировании с данными матрицы.

2.4 Общие принципы и этапы работы систем оптического распознавания

Как уже отмечалось ранее, для компьютера нет никакой разницы, какую информацию несет изображение. ЅУчатЅ компьютер понимать картинку с текстом (переводить из одного формата в другой) специальные программы - системы оптического распознавания символов. Перечислим основные этапы процесса распознавания.

Во-первых, главным условием успеха ЅпрочтенияЅ кадра, является четкое изображение, при соблюдении которого система сделает меньше ошибок. Например, если ЅфотографияЅ получится очень светлой (высокая яркость), то символы на ней в тонких перешейках будут иметь разрывы, и буква ЅоЅ превратиться в букву ЅсЅ. А на тёмной ЅфотографииЅ (низкая яркость) соседние буквы склеятся с друг другом, и будет сложно понять, где начинается одна буква и заканчивается другая.

Это можно объяснить простым примером из жизни. Представьте себе, как трудно учителю научить ребёнка читать, если текст в книге напечатан не четко, расплывчато, на каждой букве приходиться спотыкаться, выяснять её. То же самое и с компьютером. Системы оптического распознавания символов - OCR(optical character recognition) - не любят ЅгрязныеЅ изображения.

После того как изображение от камеры передано в систему OCR, установленную на компьютере, начинается процедура сегментирования. Если кадр снят с наклоном, то программа выравнивает его.

Далее изображение поступает на распознавание. Распознавание - ядро любой системы OCR. От его качественной работы, то есть малого количества допущенных ошибок, зависит время, которое придется потратить на их исправление. Если ошибок будет слишком много, то польза автоматического ввода вообще становиться сомнительной: проще набрать сам текст, чем исправлять бесконечные ошибки. Распознавание текста начинается с выделения на изображении (или его части) строк, затем слов и наконец символов. Каждый символ идентифицируется. Система OCR хранит знания о символах в виде эталонов, с которыми сравнивает выделенный объект. Наиболее подходящий эталон будет соответствовать нашему символу. Распознавание осложняют дефекты печати, о которых мы говорили ранее, - склеенные и разорванные символы.

Вопрос идентификации объектов давно интересовал учёных. Как, например, мы отличаем одну букву от другой, стол от стула, собаку от кошки? Без ответа на этот вопрос невозможно и искусственную систему научить различать объекты.

Наблюдая за человеком и животными, учёные выдвинули гипотезу об используемых Ѕживыми системамиЅ принципах распознания предметов. А затем применили эти принципы при проектировании компьютерных программ. Первыми на этом пути считаются исследования М. Мински и П. Уинстона в Массачусетском технологическом институте в конце 60-х начале 70-х годов. В России этими вопросами занимались в НИЦ электронной и вычислительной техники (НИЦЭВТ).

В 1977 году группой исследователей под руководством А. Шамиса (ныне сотрудника компании ABBYY) были сформулированы важнейшие принципы распознавания: целостность, целенаправленность и адаптивность.

Согласно принципу целостности, каждый объект (например, человек) состоит из значимых частей (голова, руки, ноги туловище), находящихся в определенных отношениях друг с другом (голова находится наверху туловища, руки - на противоположных сторонах туловища, ноги не могут быть выше рук). Если нам нужно распознать объект, мы должны найти все составляющие его части и проверить, выполняются ли заданные для них отношения.

Второй принцип - целенаправленность. Распознавание строится как процесс выдвижения и доказательства или опровержения гипотез. Например, услышав шорох в углу темной комнаты, мы делаем предположение, что это кошка. И пытаемся опровергнуть нашу догадку или подтвердить её. Мы говорим себе: «Если это кошка, то у неё должна быть голова кошки, лапы кошки, кошачий хвост и она должна мяукать». Когда мы разглядим в темноте все перечисленные части и удостоверимся, что они соответствуют нашим представлениям о кошке, мы ЅраспознаемЅ кошку. Таким образом, мы не просто наблюдали объект, а в начале выдвинули гипотезу о том, что он собой представляет, и начали целенаправленно искать черты, присущие этому объекту. Такова природа процесса распознавания, которое, по сути, не что иное, как классификация. В систему заложены описания эталонов (или классов), и исследуемый объект соотносится с одним из них. Система не может распознать объект вообще, она только может сказать, относится ли он к одному из известных ей классов. И если да, то к какому именно.

И третий принцип - адаптивность, способность системы самообучаться. Когда человек разбирает непонятное слово, написанное незнакомым подчерком, он находит похожие закорючки в других, уже прочитанных словах и запоминает, как автор письма пишет, например букву ЅдЅ. Затем возвращается к вызвавшему затруднение слову и читает его, обладая уже новыми знаниями о написании конкретных букв данным подчерком.

Эти три принципа делают живые организмы идеальными системами распознавания, способными идентифицировать сотни объектов за считанные доли секунды. И если использовать те же принципы при построении искусственных систем, можно рассчитывать на высокие результаты. разница в том, что человеческий мозг совершает эту работу с помощью сложных биохимических реакций, а компьютер - путем вычислений.

Традиционно существуют три метода распознавания (или типа классификаторов): шаблонные, признаковые и структурные.

ь Шаблонные классификаторы преобразуют исходное изображение символа в набор точек и затем накладывают его на шаблон, имеющиеся в базе системы. Шаблон, имеющий меньше всего отличий, и будет искомым. У этих систем достаточно высокая точность распознавания дефектных символов (склеенных или разорванных). Недостаток - невозможность распознать шрифт, хоть немного отличающийся от заложенного в систему (размером, наклоном или начертанием).

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

ь Структурные классификаторы хранят информацию о топологии символа. Например, буква ЅоЅ описывается как непрерывная кривая, не имеющая пересечений. Этот способ тоже имеет свои недостатки: как только вы представите ЅразорваннуюЅ из-за дефектов печати букву ЅоЅ, она уже не подойдет под своё описание и может быть распознана как ЅсЅ или ЅпЅ.

Общие принципы работы систем OCR работают и применительно к данному дипломному проекту. Ввиду того, что системе не нужно распознавать тексты, сложные по структуре документы, не все принципы распознавания легли в основу разрабатываемого комплекса.

Поставленная в дипломном проекте задача распознавания номеров вагонов требует описания всего десяти классов, цифры от 0 до 9. Номера на большинстве вагонов написаны одинаковым шрифтом, поэтому было принято решение использования шаблонного метода распознавания, обойдя при этом недостатки этого метода.

Этапы работы модуля распознавания показаны в приложении 2:

1. Сегментация (поиск на изображении номера вагона и разбиение его на символы).

2. Масштабирование, приведение символа к размеру эталона.

3. Распознавание.

3. Проектирование алгоритмов работы ПО

Проанализировав предметную область, можно выделить три крупные этапа в процессе распознавания: сегментация, масштабирование и само распознавание. Ниже описаны алгоритмы, раскрывающие работу каждого этапа.

3.1 Сегментация

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

3.1.1 Сегментация строк

Как уже отмечалось, исходное изображение представляет собой матрицу яркостей IM (i, j) размерностью M x N (i = 1,2…M; j = 1,2…N; 0<= IM (i, j) <= IMAX). Где M - вертикальные (высота), а N - горизонтальные (ширина) размеры изображения в пикселях, IMAX - максимально возможное для данного представления значение градаций серого. Для определенности будем считать, что более ярким точкам изображения соответствует и большее числовое значение яркости. Это соответствует тексту, написанному белыми символами на черном фоне. Если исходное изображение IM1(i, j) получено для случая черных символов на белом фоне, что наиболее типично для текстовых документов, то для работы алгоритмов сегментации оно должно быть преобразовано к рассмотренному выше виду. Для осуществления такого преобразования достаточно для каждой точки изображения вычесть ее яркость из максимально возможного значения

IM(i, j) = IMAX - IM1(i, j)

Алгоритм сегментации строк основывается на том, что средняя яркость в изображении существенно ниже средней яркости в строке, содержащей номер вагона (приложение 3).

Сначала для всех пиксельных строк исходного изображения находим их средние значения яркости

S_ROW(i) = sumj( IM( i, j)) / N ; j = 1,2…N;

то есть находим массив средних значений яркостей по пиксельным строкам. Затем определяем среднее значение яркости по всему изображению

S_IM = sumi( S_ROW(i)) / M; i = 1,2…M;

Далее необходимо найти в массиве S_ROW(i) те номера строк, для которых значения элементов массива устойчиво превышают среднее значение яркости всей картинки. Очевидно, что пиксельные строки, входящие в изображение номера, должны располагаться подряд. Под высотой строки номера будем понимать разность между индексами начала и конца пиксельных строк, ограничивающих номер. Тогда строка номера начинается с той пиксельной строки, с которой наблюдается устойчивое повышение средней яркости и заканчивается на той пиксельной строке, после которой имеется устойчивое уменьшение средней яркости.

Граница яркости для строки номера, может быть выражена через среднюю яркость всего изображения

smp = kmp * S_IM

где kmp - коэффициент, также подбираемый экспериментально. В нашем алгоритме был выбран kmp = 1,125.

Начало области устойчивого повышения яркости фиксируется, если выполняется следующий комплекс условий:

? яркость текущей пиксельной строки превышает границу smp,

? яркость двух предыдущих пиксельных строк ниже этой границы,

? яркость трех последующих строк выше границы smp

То есть в пиксельной строке с номером i начинается изображение номера если:

(S_ROW(i) > smp) and ( S_ROW(i-1) < smp) and (S_ROW(i-2) < smp) and

(S_ROW(i+1) > smp) and ( S_ROW(i+2) > smp) and (S_ROW(i+3) > smp)

Конец области устойчивого повышения яркости определяется, если выполняется следующие условия;

? было зафиксировано начало области,

? яркость текущей пиксельной строки превышает границу smp,

? яркость последующей пиксельной строки ниже этой границы,

Или:

? было зафиксировано начало области,

? яркость трех последующих строк ниже границы smp

То есть в пиксельной строке с номером i заканчивается изображение текстовой строки, если ранее было определено, что строка началась, и выполняются условия:

((S_ROW(i) > smp) and ( S_ROW(i+1) < smp)) or

((S_ROW(i+1) < smp) and (S_ROW(i+2) < smp) and (S_ROW(i+3) < smp))

Работа алгоритма сегментации строк заключается в последовательном просмотре массива средних значений S_ROW и выявлении множества пар индексов пиксельных строк, удовлетворяющих указанным условиям.

Таким образом, в результате работы алгоритма на исходном изображении программа находит индексы начала и конца пиксельных строк номера.[12]

3.1.2 Сегментация номера

Входом для алгоритма сегментации номера служит изображение строки, которое получается из исходного изображения после применения к нему алгоритма сегментации строк.

Алгоритм сегментации номера основывается на том, что средняя яркость в изображении номера существенно выше, чем в остальной части изображения строки. Поэтому он похож на алгоритм сегментации строк с той разницей, что просмотр идет по пиксельным столбцам изображения строки.

Пусть IMR(i, j) - изображение строки. Где i = 1,2…HS; j = 1,2…N; HS - высота строки; N - длина строки (она же ширина исходного изображения) в пикселях.

На начальном этапе вычисляется массив средних значений яркости столбцов строки

S_COL(j) = sumi( IMR( i, j)) / HS ; i = 1,2…HS;

и среднее значение яркости изображения строки

S_Im_Col= sumj(S_COL(j)) / N; j = 1,2…N;

Далее необходимо найти в массиве S_COL(j) те номера столбцов, для которых значения элементов массива устойчиво превышают среднее значения яркости изображения. Очевидно, что пиксельные столбцы, входящие в изображение номера, должны располагаться подряд. Номер начинается с того пиксельного столбца, с которого начинает наблюдаться устойчивое повышение средней яркости и заканчивается на том пиксельном столбце, после которого имеется устойчивое уменьшение средней яркости в столбцах.

Границу яркости для номера можно выразить через среднюю яркость изображения строки

s_wd = k_swd * S_Im_Col,

где k_swd - коэффициент, также подбираемый экспериментально. В нашем алгоритме был выбран k_swd = 0.8.

Начало области устойчивого повышения яркости фиксируется, если выполняется следующий комплекс условий:

? яркость текущего и последующего пиксельного столбца превышает границу яркости для номера s_wd,

? яркость предыдущего пиксельного столбца ниже этой границы,

То есть в пиксельном столбце с номером j начинается изображение номера если

(S_COL(j) > s_wd) and ( S_COL(j+1) > s_wd) and (S_COL(j-1) < s_wd)

Конец области устойчивого повышения яркости определяется, если выполняется следующие условия;

? было зафиксировано начало слова,

? яркость текущего и четырех последующих пиксельных столбцов ниже границы яркости s_wd,

? яркость двух предыдущих пиксельных столбцов ниже этой границы

То есть слово заканчивается в пиксельном столбце с номером j, если ранее было определено, что слово началось, и выполняются условия

(S_COL(j) < s_wd) and (S_COL(j+1) < s_wd) and (S_COL(j+2) < s_wd) and

(S_COL(j+3) < s_wd) and (S_COL(j+4) < s_wd) and

(S_COL(j-1) > s_wd) and (S_COL(j) < s_wd)

Работа алгоритма сегментации слов заключается в последовательном просмотре массива средних значений S_COL и выявлении пары индексов пиксельных столбцов, удовлетворяющих указанным условиям. В результате получаем индексы начала и конца номера. Таким образом, для каждого выделенного слова определяются его ЅкоординатыЅ в изображении строки. [11]

3.1.3 Сегментация символов

Входом для алгоритма сегментации символов служит изображение, номера, которое получается из изображения строки после применения к нему алгоритма сегментации номера.

К сожалению, зачастую в изображении номера символы расположены близко друг к другу и межсимвольные интервалы не так ярко выражены. Это происходит как из-за естественного ЅсмазыванияЅ изображения при съемке, так и из-за внешних причин, плохое качество написания номера на вагоне. Поэтому алгоритм сегментации символов сложнее и не так очевиден как рассмотренные ранее алгоритмы сегментации.

Алгоритм сегментации символов основывается на том, что средняя яркость в межсимвольных интервалах, по крайней мере, ниже средней яркости в изображении.

Пусть IMW(i, j) - изображение слова. Где, i = 1,2…HS; j = 1,2…NW; HS - высота строки; NW - длина номера (она же ширина исходного изображения номера) в пикселях.

На начальном этапе вычисляется массив средних значений яркости пиксельных столбцов в изображении слова.

S_Word (j) = sumi( IMW( i, j)) / HS ; i = 1, 2…HS;

и среднее значение яркости изображения в слове

S_ImW= sumj(S_Word (j)) / NW; j = 1,2…NW;

Далее необходимо найти в массиве S_Word (j) те номера столбцов, для которых значения элементов массива минимальны. Поиск локальных минимумов происходит на смежных интервалах изменения индекса столбца. Размер интервала выбирается исходя из высоты строки. В основном отношение ширины символа к его высоте не превышает величину 0.3. Поэтому в предлагаемом алгоритме размер интервала dj, на котором ищется локальный минимум, выбран dj = 0.3 * HS. Поиск минимумов работает следующим образом. В массиве S_Word (j) первый минимум ищется на интервале j = 1…dj. Предположим, что он нашелся для индекса j1. Тогда последующий минимум ищется, начиная со следующего индекса на интервале такого же размера, j = j1+1…j1 + 1 + dj. После нахождения минимума на этом интервале, процедура поиска повторяется, до достижения последнего индекса слова. Все найденные индексы для локальных минимумов записываются в массив WJ_MIN. Затем происходит проверка на возможную принадлежность этих минимумов межсимвольным интервалам.

Средняя яркость в межсимвольных интервалах должна быть невелика ( в идеальном случае она равна нулю). Поэтому ее границу можно выразить через среднюю яркость изображения слова

sw_mp= k_wmp * S_ImW,

где k_wmp - некоторый коэффициент, подбираемый экспериментально, исходя из анализа изображений слов. В нашем алгоритме был выбран k_wmp = 0.98.

В силу того, что межсимвольные интервалы могут занимать несколько пикселей и представляют собой протяженный ЅпровалЅ в яркости изображения, кроме самого минимума проверяются не соседние с ним пиксели, а отстоящие от него на два в обе стороны. Таким образом, найденный локальный минимум является ЅкандидатомЅ на принадлежность к межсимвольному интервалу, если выполняются следующие условия

ь значение средней яркости в точке локального минимума меньше границы яркости sw_mp

ь значение средней яркости в точке отстоящей от локального минимума на два пикселя слева больше границы яркости sw_mp

Или

ь значение средней яркости в точке локального минимума меньше границы яркости sw_mp

ь значение средней яркости в точке отстоящей от локального минимума на два пикселя справа больше границы яркости sw_mp

Таким образом, индекс i из массива WJ_MIN(i) является ЅкандидатомЅ на принадлежность к межстрочному интервалу если

(((S_Word ( WJ_MIN(i)) < sw_mp) and (S_Word ( WJ_MIN(i) - 2) > sw_mp))

or

(((S_Word ( WJ_MIN(i)) < sw_mp) and (S_Word ( WJ_MIN(i) + 2) > sw_mp))

Работа алгоритма предварительной сегментации символов заключается в последовательном просмотре S_Word и выявлении в нем с помощью массива индексов локальных минимумов пиксельных столбцов, удовлетворяющих указанным условиям. В результате формируется массив индексов ЅкандидатовЅ WJ_MIN, принадлежащих межсимвольным промежуткам. Следует отметить, что при этом находятся не начала и концы промежутка, а предполагаемая граница между символами.

Далее массив WJ_MIN анализируется. Если разность между предыдущим элементом массива и текущим элементом больше, чем 4 (ширина символа в пикселях, подбирается экспериментально), то данный промежуток опознаётся как символ, изображение которого копируется в создаваемый для него файл. В результате после работы алгоритма мы имеем разбитый на отдельные символы номер. [10]

3.2. Масштабирование

Алгоритмы сегментации обрезают изображение таким образом, что кроме самого символа (конец процедур сегментации), мы захватываем часть фона в основном чуть выше и чуть ниже изображения цифры. Каждый раз сегментация для одного и того же символа, например Ѕ5Ѕ, но из разных кадров с изображением разных номеров, происходит с чуть заметными отличиями. То есть где-то захватилось больше фона около цифры, где-то меньше. Отсюда различия сегментированных символов в ширине и высоте.

Данное обстоятельство мешает сравнивать полученный нами символ с эталоном, заложенным в системе. Если же пренебречь этими ЅмелкимиЅ различиями, то за данные работы процедуры распознавания нельзя полагаться с достаточно высокой степенью точности, а в некоторых случаях результат работы процедуры будет ошибочным.

Чтобы исключить данный недостаток были сделаны следующие шаги к решению проблемы:

1. Полученное изображение символа преобразовывалось к черно-белому изображению. Все пикселы в изображении, уровень яркости у которых выше среднего уровня яркости изображения символа, преобразуются в белый цвет, и наоборот, пикселы, уровень яркости у которых ниже среднего, - в чёрный цвет.

2. Строки и столбцы матрицы изображения, все элементы которого имеют уровень яркости соответствующий черному цвету, удаляются.

3. Изменённое таким образом изображение символа масштабируется к размеру эталона.

Более подробно следует остановиться на третьем пункте. После первых двух пунктов представление символа будет таким как на рисунке 3.2.1:

0

0

1

1

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

0

0

0

1

1

1

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

0

0

0

0

1

1

1

0

0

0

1

1

1

1

0

1

1

0

1

1

1

1

0

Рис. 3.2.1 Представление символа после первых двух этапов алгоритма масштабирования.

1 - это белый цвет пикселя;

0 - это чёрный цвет пикселя;

Ячейки с белым цветом (единицы) представлены в примере в ячейках с серым фоном заливки, так как для человеческого глаза привычнее видеть тёмные символы на белом фоне.

Далее символ разбивается на области, которые подвергаются анализу.

ь Если единиц в области более 60%, то область признаётся как яркая область и её значение принимается как единица.

ь Если единиц в области менее 40%, то область признаётся как тёмная область и её значение принимается равным нулю.

ь Если же единиц в области менее 60% и более 40%, то область признаётся как область со средним значением уровня яркости и её значение принимается равным двум.

2

1

1

1

0

1

1

1

1

1

0

1

1

2

1

В данном примере имеем размер изображения 6х13, поэтому разбиваем матрицу изображения следующим образом и получаем результат показанный на рисунке 3.2.2.

0

0

1

1

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

0

0

0

1

1

1

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

0

0

0

0

1

1

1

0

0

0

1

1

1

1

0

1

1

0

1

1

1

1

0

Рис. 3.2.2 Преобразование изображения символа к пятновому виду.

Таким образом, изображение символа преобразовывается к размеру эталона.

3.3 Распознавание

Входом для алгоритма распознавания символов служит изображение, символа, которое получается из изображения номера после применения к нему алгоритмов сегментации номера и масштабирования символа.

Для процедуры распознавания символов были специально разработаны эталоны (или классы). Эталон представляет собой матрицу 3х5, где каждый элемент обозначает яркость конкретной области изображения символа. Таким образом, эталон - это пятновое представление цифры.

Например:

111 111 111

101 100 021

101 цифра Ѕ0Ѕ 111 цифра Ѕ5Ѕ 010 цифра Ѕ7Ѕ

101 001 010

111 111 210

После применения к изображению символ а процедуры масштабирования и приведения его к размерам эталона, возможно сравнить сходство полученных данных с данными, хранящимися в системе в виде эталонов, и сделать вывод о принадлежности символа к тому или иному классу, то есть распознать его.

Полученная пятновая картина символа изображения сравнивается с эталоном. При совпадении данных о символе с эталонными данными, счетчик совпадений увеличивается на единицу (inc(sovp)), если данные или эталон имеют значение области равное 2, то увеличиваем счётчик, который считает ЅсомнительныеЅ совпадения (inc(pol_sovp)). Такие ЅсомнительныеЅ совпадения нужно также учитывать, так как бывает что кадр смазывается и это отражается на последующие расчёты.

Процент совпадения (otvet) рассчитывается по формуле:

Otvet = (sovp/15 + pol_sovp/30) * 100

Данные изображения символа сравниваются со всеми эталонами. Изображение, имеющее наибольший процент совпадений с определенным эталоном, идентифицируется, принадлежащим к этому классу. Такова природа процесса распознавания, которое, по сути, не что иное, как классификация.

4. Реализация ПО на основе алгоритмов

4.1 Обоснование выбора языка программирования

Данная программа реализована с помощью программной среды Borland Delphi 6. На сегодняшний день работа в Delphi является самым продуктивным методом создания приложений для Windows. Общая продуктивность любых инструментов создания программного обеспечения определяется следующими пятью важнейшими аспектами:

ь качеством визуальной среды разработки;

ь скоростью работы компилятора и быстродействием откомпилированных программ;

ь мощностью языка программирования и его сложностью;

ь гибкостью и масштабируемостью используемой архитектуры баз данных;

ь наличием поддерживаемых средой разработки шаблонов проектирования и использования.

Безусловно, существует еще немало важных факторов - например, вопросы установки, документация, поддержка сторонних производителей и т.д. Тем не менее этой упрощенной модели вполне достаточно для объяснения, почему имеет смысл остановить свой выбор на Delphi. Предлагаемая схема проста. Оцените каждый из пяти показателей анализируемых пакетов по пятибалльной шкале и нанесите соответствующие точки на оси графика, представленного на рисунке 4.1.1. Соедините точки для каждого из пакетов линиями -- получится несколько пятиугольников. Чем больше площадь получившегося пятиугольника, тем выше продуктивность данного инструмента разработки.

Рис. 4.1.1 Схема построения диаграмм для оценки продуктивности инструментов разработки приложений

Все элементы Delphi необходимы и важны, но самым существенным из них является все-таки библиотека VCL. Возможность манипулирования компонентами непосредственно в процессе проектирования, средства разработки собственных компонентов, наследующих элементы своего поведения от других компонентов с помощью различных объектно-ориентированных технологий, -- все это является важнейшими условиями высокого уровня продуктивности, свойственного среде Delphi. При разработке компонентов VCL всегда можно выбрать подходящую к определенному случаю технологию объектно-ориентированного проектирования из числа предоставляемых. Другие среды разработки, поддерживающие работу с компонентами, часто либо слишком жесткие, либо слишком сложные.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.