ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
( Н И У
« Б е л Г У » )
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЦ И ЕСТЕСТВЕННЫХ
НАУК
КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ
ИССЛЕДОВАНИЕ СИСТЕМ ТЕХНИЧЕСКОГО ЗРЕНИЯ ДЛЯ
ОБРАБОТКИ ДИНАМИЧЕСКОЙ ИНФОРМАЦИИ
Магистерская диссертация
обучающегося по направлению подготовки
09.04.02 Информационные системы и технологии
(код, наименование направления подготовки)
заочной формы обучения,
группы 07001573
Шепелева Александра Игоревича
Научный руководитель
кандидат технических
наук, доцент Гахов Р.П.
Рецензент
профессор
кафедры
информационных
систем
управления
НИУ
«БелГУ»,
доктор
технических
наук
Черноморец А.А.
БЕЛГОРОД 2018
РЕФЕРАТ
Исследование систем технического зрения для обработки динамической
информации – Шепелев Александр Игоревич, диссертация на соискание
учёной
степени
магистра,
Белгород,
Белгородский
государственный
национальный исследовательский университет (НИУ «БелГУ»)
Магистерская диссертация состоит из введения, пяти разделов,
заключения и списка использованной литературы, включает 101 страниц, 17
рисунков, 5 таблиц, 11 формул и приложения.
КЛЮЧЕВЫЕ СЛОВА: информационная система, машинное зрение,
учёт, контроль транспортных средств, EmguCV, OpenCV.
ОБЪЕКТ
ИССЛЕДОВАНИЯ:
организационная
структура
ООО
«ТРИАТРОН» и его характеристика в целом
ПРЕДМЕТ ИССЛЕДОВАНИЯ: построение моделей бизнес-процессов и
обоснование
разработки
информационной
системы
для
обработки
динамической информации, в частности распознавания номерных знаков
МЕТОДЫ
ИССЛЕДОВАНИЯ:
средства
алгоритмического
моделирования, технологии программирования, обоснование разработки
системы.
ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ: разработаны алгоритмы распознавания
структурированных символов на основе методов контурного анализа и метода
простых
шаблонов
с
предложенными
преобразованиями;
проведено
тестирование разработанных алгоритмов локализации НЗ на влияние
различных условий освещённости и импульсного шума; разработана
автоматизированная информационная система распознавания номерных
знаков ТС с использованием предложенных алгоритмов.
СОДЕРЖАНИЕ
1 Анализ и технико-экономическая характеристика предметной области.............................. 7
1.1 Организационная структура управления предприятием ..................................................... 7
1.2 Описание информационного и технического обеспечения предприятия, используемых
функциональных возможностей. Обеспечение безопасности .................................................. 9
2 Методы, модели анализа и распознавания динамической информации в системах
технического зрения .................................................................................................................... 12
2.1 Обзор методов распознавания динамической информации в системах технического
зрения ............................................................................................................................................ 12
2.2 Распознавание динамической информации в системах технического зрения ................ 15
2.3 Математическое моделирование.......................................................................................... 22
3 Выбор средств реализации ...................................................................................................... 33
3.1 Выбор комплекса задач автоматизации и характеристика существующих бизнеспроцессов ...................................................................................................................................... 33
3.2 Обоснование необходимости и цели использования вычислительной техники для
решения комплекса задач ........................................................................................................... 36
3.3 Описание основных свойств ИС для предприятия и выбранного комплекса задач ....... 37
4 Разработка программного решения ........................................................................................ 39
4.1 Анализ существующих разработок для автоматизации комплекса задач ....................... 39
4.2 Описание средств, применяемых при обработке динамической информации ............... 42
4.3 Выбор и обоснование стратегии автоматизации комплекса задач ................................... 47
4.4 Выбор и обоснование способа приобретения ИС для автоматизации комплекса задач 48
4.5 Постановка задачи и автоматизации. Анализ системы «Как должно быть» ................... 50
4.6 Дерево выполняемых функций и сценарий диалога .......................................................... 55
4.7 Реализация АИС «DV_Recog» для ООО «ТРИАТРОН» ................................................... 56
4.7.1 Разработка программного средства. ................................................................................. 61
4.7.2 Разработка интерфейса, тестирование приложения........................................................ 66
5 Технико-экономическое обоснование .................................................................................... 69
5.1 Экономическая сущность комплекса задач ........................................................................ 69
5.3 Целесообразность разработки с экономической точки зрения ......................................... 70
ЗАКЛЮЧЕНИЕ............................................................................................................................ 81
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ .................................................................. 83
ВВЕДЕНИЕ
В настоящее время существует достаточно много систем распознавания
номерных знаков (НЗ) ТС, обладающие высоким быстродействием и
точностью распознавания даже при большой скорости движения автомобилей.
Однако, для обеспечения бесперебойного функционирования таких систем,
требуется
специальное
дорогостоящее
аппаратное
оборудование.
Приобретение подобного рода оборудования не всегда целесообразно для
таких типов объектов, где скорость проезда транспортных средств невелика.
К таким типам объектов относятся автозаправочные станции (АЗС), парковки,
стоянки, площадки перед магазинами, внутриквартальные дороги, гаражные
кооперативы и ряд других. Потребность проведения исследований и
разработки таких технологий для решения проблем данного уровня вызвала
необходимость создания методов и моделей анализа структурированных
символов для распознавания текстовой информации, которая отражена на
регистрационных номерных знаках ТС.
Тематике обработки динамической информации посвящены работы
таких учёных как Константинов К.А., Малевинский Ф.К., Соловьев Ю.М.,
Розенблат М.М. Системы технического зрения рассматривали Вереитинова
А.Н., Ерошевич В.В., Шапошников Н.С. Тема: «Исследование систем
технического зрения для обработки динамической информации» является в
настоящее время актуальной. Проблемы распознавания образов при решении
различных задач рассматривались в трудах российских Ахметова Б.С.,
Мустафина С.А. и др. Ахметовым Б.С. разработана технология использования
больших нейронных сетей для преобразования нечётких биометрических
данных, разработаны методы и алгоритмы оценки биометрических образов.
Значительный вклад в разработку алгоритмов распознавания образов и
решения классификационных задач внесли Е.Н. Амиргалиев, М.Б. Айдарханов
и С.А. Мустафин.
Из множества работ по данной теме в работе использовались научные
4
труды ряда российских учёных и специалистов в области информационных
технологий, таких как Байдалюк В.Д., Наумов В.А., Узик А.Е.
Целью магистерской диссертации исследование систем технического
зрения для обработки динамической информации на примере номерных
знаков транспортных средств.
Объектом исследования является процесс распознавания образов и
структурированных символов.
Предметом исследования являются методы и алгоритмы локализации,
сегментации и классификации, применяемые для распознавания образов и
структурированных символов.
Для достижения указанной цели в магистерской диссертации ставятся и
решаются следующие задачи:
анализ
существующих
методов
распознавания
структурированных символов;
обоснование значимости и актуальности объекта проектирования
в данной предметной области;
анализ информации и литературы по функционированию систем
аналогичных создаваемой в данной или смежных областях;
построение моделей бизнес-процессов и обоснование разработки
информационной системы для обработки динамической информации, в
частности распознавания номерных знаков;
финансовый и анализ эффективности использования внедрённой
системы.
При проведении исследований были использованы методы цифровой
обработки изображений, машинного обучения, распознавания образов, теории
вероятностей
и
математического
анализа.
Практическая
реализация
алгоритмов осуществлялась на основе методов объектно-ориентированного
программирования.
Разработанные методы и алгоритмы распознавания структурированных
символов на базе выделения характеристических признаков, использующий
5
контурный анализ, простые шаблоны, гистограммы ориентированных
градиентов послужили основой для разработки системы распознавания
символов номерных знаков ТС, с ориентацией на стандарты отображения
номерных знаков в России. Разработанные в магистерской диссертации
алгоритмические
и
программные
средства
предназначаются
для
использования в системах безопасности, видеонаблюдения и обработки
цифровых изображений.
Решение поставленных задач описано в пяти частях магистерской
диссертации. В первой части рассматриваются организационная структура
управления предприятием, а также происходит описание информационного и
технического обеспечения предприятия, используемых функциональных
возможностей, во второй части описаны методы, модели анализа и
распознавания динамической информации в системах технического зрения,
проведён обзор методов распознавания динамической информации в системах
технического зрения, проведено математическое моделирование. В третьей
части обоснован выбор комплекса задач автоматизации и характеристика
существующих бизнес-процессов, описаны основные свойства ИС для
предприятия
и
выбранного
комплекса
задач.
В
четвертой
части
проанализированы существующие разработок для автоматизации комплекса
задач,
описаны
средства,
применяемые
в
обработке
динамической
информации, проведено обоснование проектных решений по техническому,
информационному
разработанная
и
программному
автоматизированная
обеспечению,
информационная
представлена
система,
в
заключительной части магистерской диссертации представлено техникоэкономическое обоснование проектирования ИС.
6
1 Анализ и технико-экономическая характеристика предметной области
В первой части магистерской диссертации будут представлены
технико-экономическая
характеристика
предметной
области,
организационная структура ООО «ТРИАТРОН» и его характеристика в целом,
программно-техническая архитектура, проведён анализ существующих
разработок, включая технологии, которые используются на предприятии в
настоящее время, а также обоснован выбор использования программных и
аппаратных средств.
1.1 Организационная структура управления предприятием
Общество с ограниченной ответственностью ООО «ТРИАТРОН»
создано в соответствии с действующим законодательством РФ для извлечения
прибыли в качестве основной цели своей деятельности;
Полное фирменное наименование: ООО «ТРИАТРОН» (Общество с
ограниченной ответственностью ООО «КОМПАНИЯ ТРИАТРОН»);
Сокращённое наименование: ООО «ТРИАТРОН»;
Юридический адрес: 127238, г. Москва, Ильменский пр., д.5, тел.: (495)
784-70-96;
ООО «ТРИАТРОН» имеет 6 филиалов по России (Белгород, Воронеж,
Курск, Обнинск, Орёл, Тамбов,).
Адрес в г. Белгород: 308009, г. Белгород, ул. Преображенская д.106,
тел.: (4722)32-35-19;
ИНН: 7743923957;
КПП: 774301001;
ОКПО: 91492954;
ОГРН: 1117746314070;
Банк: «СДМ-Банк» (ПАО) г. Москва;
Расчётный счёт: 40702810700030000548;
Корпоративный счёт: 30101810845250000685; БИК: 044525685;
7
ОКФС: 16 - Частная собственность
"
ОКОГУ: 4210014 - Организации, учреждённые юридическими лицами
или гражданами, или юридическими лицами и гражданами совместно
ОКОПФ: 12165 - Общества с ограниченной ответственностью
ОКТМО: 45340000
ОКАТО: 45277577 - Москва, Административные округа г Москвы,
Северный, Районы Северного административного округа, Западное Дегунино.
"Исследуемое по организационно-правовой форме является обществом
с ограниченной ответственностью, в отношении которого его учредитель
имеет обязательные права. Размер уставного капитала составляет 15000
(пятнадцать тысяч) рублей. Общество имеет гражданские права и несёт
гражданские обязанности, необходимые для осуществления любых видов
деятельности, не запрещённых федеральными законами, если это не
противоречит предмету и целям деятельности [13]."
Таким образом, была составлена общая характеристика предприятия,
определены принципы работы общества с ограниченной ответственностью,
обозначены преимущества работы с фирмой. От уровня организационной
структуры предприятия зависит успех в достижении целей избранной
стратегии. Просчёты в организационных структурах очень часто приводили
даже компании к тяжёлому кризису. Поэтому выбор и устроение
организационной структуры в соответствии с внутренними и внешними
факторами, которые определяют деятельность ООО «ТРИАТРОН», стоящие
перед ним стратегические цели, является одной из наиболее важных и
ответственных
задач
маркетинга.
Каждый
из
существующих
видов
организационных структур имеет свои недостатки преимущества, которые
должны
обязательно
учитываться.
Организационная
структура
ООО
«ТРИАТРОН» является линейно-функциональной, ею схема представлена на
рисунке 1.
8
Генеральный директор
Начальник отдела
разработки и
сопровождения
ИС
Главный
бухгалтер
Начальник
отдела продаж
Бухгалтерия
Операторы
Менеджеры
Сотрудники
отдела
разработки и
сопровождения
ИС
Рисунок 1 – Организационная структура управления ООО «ТРИАТРОН»
В данной структуре реализуется принцип линейного построения
структурных подразделений и распределения функций управления между
ними, а также принцип единоначалия. В подчинении генерального директора
компании находятся начальник отдела разработки и сопровождения ИС,
главный бухгалтер, а также начальник отдела продаж.
1.2
Описание
информационного
и
технического
обеспечения
предприятия, используемых функциональных возможностей. Обеспечение
безопасности
Программное обеспечение средств вычислительной техники играет
значимую
роль
в
функционировании
организации.
Весь
комплекс
программных средств должен быть обновлён по мере выхода новых версий.
Особенно это касается обновлений для антивирусов, потому что регулярное
резервное копирование не способно полностью избавить отдел АСУ от
массового распространения сетевых вирусов и других зловредных программ
по коммуникационным линиям предприятия. В конечном итоге обновление
баз антивирусных программ является наиболее простым и эффективным
решением при борьбе с вирусами.
9
Создаваемая автоматизированная информационная система в рамках
магистерской диссертации подвержена воздействию случайных факторов
таких как – ошибки технических устройств, ошибки персонала, хотя ошибки,
недочёты, связанные с человеческим фактором, при помощи создания новой
информационной системы практически все исчезают. Одновременное
изменение бизнес-процессов, интерфейсов, документооборота и полномочий
сотрудников при вводе системы в эксплуатацию может привести к
значительному снижению производительности компании — пока новые
процессы не будут отлажены, а персонал не приспособится к новым условиям
работы (в среднем, период спада длится около 3 месяцев).
Предприятие ООО «ТРИАТРОН» создано в форме общества с
ограниченной ответственностью в соответствии с Законом РФ «Об обществах
с ограниченной ответственностью» от 08.02.1998 N 14-ФЗ.
На примере рабочей станции инженера-программиста Васильева
Антона Михайловича было рассмотрено аппаратное и программное
обеспечение ООО «ТРИАТРОН».
Компоненты рабочей станции в ООО «ТРИАТРОН»:
процессор Intel Pentium G4500, сокет LGA 1151;
видеоадаптер Gigabyte GeForce GTX 1070 G1 ROCK [GV-N1070G1
ROCK-8GD], турбочастота 1797 МГц, объем 8 Гб;
ОЗУ 16 Гб - Corsair Vengeance LPX DDR4 2x8Gb 2400 МГц
(CMK16GX4M2A2400C16), тип памяти DDR4 частота 2400 МГц;
монитор Samsung LC27F396FHIXCI 27", матрица VA;
дисковый накопитель: WD Red 8TB внутренний жесткий диск
(WD80EFZX), интерфейс диска SATA3 6.0 Гбит/с,
МФУ EPSON L366;
блок питания- 400 Ватт.
На рабочей станции установлены также следующие программные
продукты (помимо специализированного ПО):
Антивирус Dr.Web;
10
WinRAR;
пакет Microsoft Office 2016;
Adobe Reader 11.0 RU;
CRM-система: клиенты и продажи;
iSpy; Veyesys Rapidvms;
Браузер Google Chrome и др.
В качестве операционной системы используется Windows 10 (64
разрядная).
11
2 Методы, модели анализа и распознавания динамической информации
в системах технического зрения
Во второй части проведён обзор методов распознавания динамической
информации
в
системах
технического
зрения,
описана
методика
распознавания динамической информации в системах технического зрения,
произведён математический анализ и анализ бизнес-процессов предприятия.
2.1 Обзор методов распознавания динамической информации в системах
технического зрения
Проблема распознавания динамической информации в системах
технического зрения является актуальной в настоящее время. В рамках
магистерской
диссертации
планируется
разработать
информационную
систему опознавания или же распознавания номерного знака, либо же его
идентификация для обеспечения контроля въезда/выезда автомобилей на
автостоянке в ООО «ТРИАТРОН». Системы, позволяющие решать такие
задачи, имеют свои особенности и необходимы в различных сферах.
Например, такими сферами могут быть разномасштабные автомобильные
стоянки, парковочные пункты, автозаправочные станции, пункты контроля
въезда на территорию объекта и т.п.
Строгая постановка проблемы заключается в разработке методов и
моделей анализа структурированных символов для распознавания текстовой
информации для идентификации автомобиля по его маркировке, т.е. по
регистрационному
номеру
автомобиля.
Отметим,
что,
используя
специфическую маркировку автомобилей, можно разработать технологию
автоматизированного распознавания структурированных символов.
Под системами автоматизированного распознавания номерных знаков
автотранспортных
программные
средств,
комплексы,
понимаются
которые
12
программные
реализуют
и
аппаратноалгоритмы
автоматизированного распознавания номерных знаков. Это необходимо для
регистрации
событий,
которые
напрямую
связаны
с
перемещением
автомобилей на автостоянке, где происходит автоматизация ввода данных с их
последующей обработкой. В рамках магистерской диссертации на основе
методов распознавания структурированных символов приводится системное
исследование распознавания номерных знаков транспортных средств, в
соответствии со стандартами РФ, по собственному разработанному алгоритму
представляется информационная система распознавания номерных знаков
автомобилей.
На основе анализа существующих методов и моделей в распознавании
структурированных
символов
текстовой
информации,
предлагается
собственная процедура применения данных методов и моделей, на примере
идентификации номерных знаков автомобилей для конкретных объектов, и
тем самым предлагается усовершенствованная автоматизированная модель
распознавания
структурированных
символов
текстовой
информации.
Отметим, что технологии распознавания символов реализуются, в основном,
тремя традиционными методами: структурные, признаковые, шаблонные.
Рассматривая каждый из этих методов можно сказать, что они ориентированы
на свои условия применения, для которых они являются эффективными.
Также, как и у любых других существующих методов в целом, этим методам
присущи свои недостатки. В наибольшей степени это – низкая устойчивость к
изменениям масштаба, смещениям, поворотам, смене ракурса и другим
искажениям. Эти недостатки особенно существенно проявились при
масштабной
эксплуатации
программно-технологических
систем,
использующих в своей основе эти методы, в частности, практически у всех
систем
распознавания
структурированных
символов
точностные
характеристики резко падают и становятся ниже технологически приемлемых
при искажении аффинными и проекционными преобразованиями. Вместе с
тем технологические условия получения информации о маркировке не
позволяют полностью устранить эти искажения. Для шаблонных методов
13
характерно то, что происходит сравнение изображения символа со всеми
имеющимися в базе системы шаблонами. Наиболее подходящим шаблоном
считается тот, у которого будет наименьшее количество точек, отличных от
исследуемого
изображения.
Шаблонные
методы
хорошо
распознают
дефектные символы (разорванные, склеенные), но основной недостаток
шаблонных методов – невозможность распознать шрифт, хоть немного
отличающийся от заложенного в систему (размером, наклоном или
начертанием) [27].
Признаковые методы являются наиболее распространёнными. В их
основу положено предположение, что можно анализировать не все
изображение символа, а только набор признаков, вычисленных по
изображению. Подразумевается, что значения признаков несут достаточно
информации о символе. Недостатком признакового подхода является то, что
распознаванию подвергается не сам символ, а некоторый набор признаков, что
может привести к неправильному распознаванию символов [21].
Структурные методы хранят информацию не о поточечном написании
символа, а о его топологии (эталон содержит информацию о взаимном
расположении структурных элементов символа). При этом становится
неважным размер распознаваемой буквы-образа и шрифт, которым она
напечатана. Но главным недостатком в данном случае являются большие
ресурсные затраты, требующиеся для реализации данного метода, поскольку
при структурном подходе в изображении символов ведётся построение
скелета, вычисление определённых форм округлостей, угловых и линейных
соотношений, пропорций между продольными и поперечными линиями, а
также определение пробелов и др. В исследовании подходов к распознаванию
символов, описанными методами (признаковые, шаблонные, структурные),
можно сделать выводы о том, что преимуществом первого метода является
использование базы шаблонов символов, которые сравниваются с искомым
символом изображения, а недостатком данного метода является тот факт, что
даже небольшие отличия от заложенного в базе шаблонов символов не
14
позволяют правильно распознать необходимый шрифт. Преимуществом
признакового метода является использование вектора признаков изображения,
по которым ведётся распознавание, недостатком является то, что набор
признаков также не даёт гарантию точного распознавания изображения.
Преимущество структурного метода распознавания заключается в построении
скелета символов изображения, который несёт информацию о расположении
структурных элементов символа, путём вычисления определённых форм, а
недостатками являются большие ресурсные затраты.
2.2 Распознавание динамической информации в системах технического
зрения
Методики,
используемые
при
создании
систем
распознавания
динамической информации в системах технического зрения, в частности
номерных знаков, могут различаться, вследствие различных условий их
эксплуатации. Однако, структура у большинства этих систем распознавания
общая, которая состоит из этапов, представленных на рисунке 2.
формирование изображения
предварительная обработка изображения
локализация номерного знака
сегментация символов
распознавание символов
Рисунок 2 – Общая структура типовой системы номерных знаков
Формирование изображения. На вход системы из регистрирующего
устройства поступает изображение для дальнейшей его обработки и анализа
Характеристики регистрирующего устройства для систем видеонаблюдения
15
играет важнейшую роль, поскольку от них зависит работоспособность всей
системы в целом. Предварительная обработка изображения. Предварительная
обработка изображения используется для улучшения качества, либо для
преобразования удобному для дальнейшей их обработки виду.
Локализация номерного знака. На данном этапе осуществляется поиск
номерного знака с целью их последующего анализа.
Сегментация номерного знака. На данном этапе происходит разделение
символов локализованного номерного знака на отдельные сегменты.
Распознавание символов. На этапе распознавания осуществляется
электронный перевод машинописного или печатного текста в текстовые
данные. Выполнение каждого этапа, представленного на рисунке 2.2.1, может
быть осуществлено разными способами и с разной степенью эффективности.
В предложенной методике с целью ускорения и повышения качества
распознавания символов, на этапе предварительной обработки изображения
осуществляются т.е. преобразования, которые приводят к удобному для
дальнейшей их обработки виду.
Этап локализации НЗ является одним из важнейших этапов системы
распознавания, поскольку от его результатов в значительной степени зависит
успешность работы последующих этапов. Алгоритмов и технологии
выделения объектов интереса существует множество и у каждого из них есть
свои достоинства и недостатки [31]. Одним из применяемых подходов для
локализации
номерного
знака
является
метод
обнаружения
границ
изображения с использованием таких алгоритмов, как алгоритм Собеля,
Кенни, Робинсона и др.
Алгоритм
обнаружения
границ
должен
обнаруживать
как
горизонтальные, так и вертикальные края. Результирующее изображение,
после выделения краев должно содержать большое количество линий в
области пластины номерного знака, т.к. она содержит символы. Это основное
свойство, которое используется для выделения области пластины номерного
знака на изображении. Для локализации области номерного знака создаётся
16
окно, приблизительно равное размеру пластины номерного знака на
изображении. Это окно используется, чтобы оценить количество граней во
всех
областях
изображения,
имеющих
наибольший
контраст.
Окно
накладывается на результирующее изображение в наиболее контрастных
зонах. Если количество граней находится в заданном диапазоне, то данная
область отмечается как область, возможно содержащая номерной знак.
Необходимое количество граней определяется экспериментально [37].
Результат работы этого окна – список возможных областей–
кандидатов, в которых может содержаться пластина номерного знака.
Основным недостатком этого подхода является то, что процесс выбора
кандидата является медленным, поскольку значения всех пикселей в
выделенном окне должны быть неоднократно суммированы. Другим
недостатком является набор большого количества кандидатов в номерные
знаки. Альтернативным подходом для обнаружения номерного знака является
преобразование Хафа, которое используется для обнаружения участков
различных форм в изображении, таких как круг, эллипс, прямая и т.д. На вход
преобразования Хафа подаётся бинарное изображение с вертикальными и
горизонтальными выделенными краями. На выходе преобразования получаем
набор прямых линий, ограничивающих предполагаемый номерной знак, то
есть список возможных кандидатов на местоположение пластины номерного
знака. Горизонтальные и вертикальные пары линий сопоставляются.
Горизонтальные и вертикальные пары линий, составляющие прямоугольник с
отношением сторон примерно равных отношению сторон номерного знака
пластины, отмечаются как область, возможно содержащая номер. Одним из
недостатков преобразования Хафа является тот факт, что вертикальные линии
на номерном знаке значительно короче горизонтальных и, следовательно,
могут
быть
более
зашумлёнными.
При
построчном
сканировании
изображения, разбиении строк на окна размером N=32 оказалось, что при
применении дискретного преобразования Фурье в тех участках изображения,
где
содержится
текстовая
информация,
17
спектр
коэффициентов
преобразования Фурье имеет пик на низких частотах, в то время как для
других участках изображения пик находится либо на высоких частотах, либо
на нулевой частоте (хаотический апериодический сигнал). Таким образом,
задача выделения номерного знака из общего фона изображения сводится к
задаче выделения из изображения областей с преобладанием низкочастотной
составляющей спектра, сложный математический аппарат, а также высокие
требования
к
вычислительной
мощности
аппаратного
обеспечения,
потенциально затрудняют реализацию этих методов и их применение в
системах реального времени на компьютерах невысокого класса [47].
В Российской Федерации большинство регистрационных знаков —
стандартные знаки образца 1993 года, вид которых определён ГОСТ Р 5057793. Номерные знаки маршрутных ТС, военных ТС, ТС дипломатических
миссий, ТС МВД России, прицепов, строительной техники и мотоциклов
имеют формат и/или размеры, немного отличающиеся от стандартного. Схема
маркировки регистрационных знаков РФ представлена на рисунке 3.
Рисунок 3 – Схема маркировки регистрационных знаков РФ
Комбинации на стандартных номерных знаках строятся по принципу
— 3 буквы, 3 цифры. Буквы означают серию номерного знака, а цифры —
номер. ГОСТ для использования на знаках разрешены 12 букв кириллицы,
имеющие графические аналоги в латинском алфавите — А, В, Е, К, М, Н, О,
Р, С, Т, У и Х.
18
В правой части номерного знака имеется секция, в которой размещены:
в нижней части — флаг РФ и буквенный код RUS, а в верхней — код субъекта
РФ, где был зарегистрирован автомобиль. Буквы и цифры кода региона по
размеру шрифта меньше, чем основные цифры.
Все
используемые
номера
зарегистрированы.
Для
каждого
административного района есть свой номер, общий для всех автомобилей,
зарегистрированных
в
этом
округе.
Общее
количество
комплектов
регистрационных знаков, которое может быть изготовлено для каждого
субъекта России, определяется ГОСТом и составляет 1 млн 726 тыс. 272
(=12³×(10³-1), номера из трёх нулей быть не может) [52].
Изначально в качестве кодов регионов применялись только числа от 01
до 89, по количеству регионов РФ на 1 января 1993 года. Однако количество
регистрируемых автомобилей с каждым годом увеличивается, и номерных
знаков с допустимыми комбинациями начинает не хватать. По этой причине в
ряде субъектов России введены дополнительные кодовые обозначения,
которые можно использовать на знаках; сначала началась выдача кодов
регионов из девятого десятка (9х) (кроме кода 92, который впоследствии был
задействован в Севастополе), а затем перешли к трёхзначным кодам регионов
(Таблица 1).
Таблица 1 – Перечень действующих номеров регистрации ТС в РФ
Изображение номерного
знака
Описание
Регистрационные знаки частных транспортных средств.
Введены в 1993 году. Сначала имели формат — буква —
3 цифры — 2 буквы, код региона, но отсутствовал флаг.
Флаг на номерах появляется в 1994 году, хотя в
некоторых регионах, например, в Татарстане,
Башкортостане, Санкт-Петербурге и Приморье, номера
1993 года выдавались до первой половины 2000-х гг.
Формат знаков — 3 буквы, 3 цифры. Буквы означают
серию номерного знака, а цифры — номер. В правой
части номерного знака помещается код региона
регистрации и флага России с надписью RUS.
19
Продолжение таблицы 1
Изображение номерного
знака
Описание
Регистрационные
знаки
транспортных
средств,
используемых для легковых такси, транспортных
средств, оборудованных для перевозок более восьми
человек (кроме случаев, если указанные перевозки
осуществляются по заказам либо для обеспечения
собственных
нужд
юридического
лица
или
индивидуального предпринимателя). Введены 1 марта
2002 года. Устанавливаются на автобусах, такси и на
транспортных средствах, осуществляющих перевозку
пассажиров как на муниципальных автобусах, так и на
коммерческой основе («маршрутках») Формат: 2 буквы
— 3 цифры. Изготавливаются на светоотражающей
пластине тёмно-жёлтого цвета с чёрными буквенноцифровыми комбинациями. Флаг РФ под кодом региона
регистрации отсутствует.
Регистрационные знаки, устанавливаемые на прицепы.
Используются для регистрации прицепов. Формат: 2
буквы — 4 цифры.
Регистрационные знаки, устанавливаемые на мотоциклы,
мотороллеры, мопеды и мотонарты. Изготавливаются из
квадратной
светоотражающей
пластины,
с
использованием цифр и букв чёрного цвета (4 цифры в
верхней строке, две буквы в нижней). Номер региона
регистрации — в нижнем правом углу, чуть выше —
надпись RUS.
Регистрационные знаки, устанавливаемые на трактора,
тракторные
прицепы и
полуприцепы,
другую
сельскохозяйственную, дорожную и самоходную
технику.
Изготавливаются
из
квадратной
светоотражающей пластины, с использованием цифр и
букв чёрного цвета (4 цифры в верхней строке, две буквы
в нижней). Номер региона регистрации — в нижнем
правом углу.
Регистрацию техники и выдачу данного вида номеров
осуществляет Гостехнадзор.
Регистрационные
знаки
транспортных
средств,
окончательно выезжающих за пределы Российской
Федерации. Данные номерные знаки устанавливаются на
автомобили, экспортируемые из Российской Федерации.
Их отличительной особенностью является наличие в
левой части буквы Т. Формат знака: 2 буквы — 3 цифры.
20
Продолжение таблицы 1
Изображение номерного
знака
Описание
Регистрационные знаки транспортных средств МВД
России. Устанавливаются на легковые и грузовые
автомобили, прицепы к ним и мотоциклы, выполняются
белыми символами на синем фоне. Форматы: буква — 4
цифры для автомобилей, три цифры — буква для
прицепов, четыре цифры сверху / буква снизу для
мотоциклов. Цифровой код, указывающийся в правой
части номерного знака, так же, как и на большинстве
других номеров РФ, обозначает регион регистрации.
Исключение: код 77, указывающий на принадлежность
транспортного средства к МВД России (своеобразный
«федеральный» номер МВД)
Регистрационные
знаки
транспортных
средств
дипломатических
представительств
и
торговых
представительств иностранных компаний. Выполняются
белыми символами на красном фоне. Основную
информацию на таком номерном знаке несут первые три
цифры кода (код страны), а также последующая буква (ы). Цифровой код указывает на принадлежность к
определённому иностранному государству, расшифровка
буквенного префикса следующая:
CD — автомобиль с данным регистрационным знаком
зарегистрирован на посла или иное лицо в ранге главы
дипломатического представительства.
D — регистрационный знак выдан на автомобиль,
принадлежащий дипломатическому представительству,
консульскому учреждению, международной организации
или сотруднику такого представительства (учреждения,
организации), обладающего дипломатическим статусом.
T — регистрационный знак выдан на автомобиль
сотрудника дипломатического представительства, ,
международной
организации,
не
обладающего
дипломатическим
статусом
(административнотехнический персонал).
Регистрационные
знаки
транспортных
средств,
числящихся за воинскими формированиями федеральных
органов
исполнительной
власти
России.
Устанавливаются на легковые и грузовые автомобили,
прицепы к ним, мотоциклы, специальную технику и
вооружение, принадлежащие войсковым частям.
Номерные знаки данного типа выполняются белыми
символами на чёрном фоне, на не светоотражающей
пластине. Автомобильный формат: 4 цифры — 2 буквы,
форматы номеров для прицепов, мотоциклов,
специальной техники и вооружения совпадают с
соответствующими гражданскими форматами.
21
2.3 Математическое моделирование
Для описания работы предприятия необходимо построить модель,
которая должна быть адекватна предметной области, следовательно, она
должна содержать в себе знания всех участников бизнес-процесса
организации.
Function
Modeling
-
методология
функционального
моделирования и графическая нотация, предназначенная для формализации и
описания бизнес-процессов. AllFusion ERwin Data Modeler (ERwin) позволяет
наглядно отображать сложные структуры данных. Удобная в использовании
графическая среда AllFusion ERwin Data Modeler упрощает разработку базы
данных и автоматизирует множество трудоёмких задач, уменьшая сроки
создания высококачественных и высокопроизводительных транзакционных
баз данных и хранилищ данных. Данное решение улучшает коммуникацию
организации,
обеспечивая
совместную
работу
администраторов
и
разработчиков баз данных, многократное использование модели, а также
наглядное представление комплексных активов данных в удобном для
понимания и обслуживания формате. На рисунке 4 представлена логическая
модель данных о клиенте, в которых заинтересован банк.
Рисунок 4 – Логическая модель работы пропускного пункта ООО
«ТРИАТРОН» «Как есть»
22
На данный момент логическая модель работы пропускного пункта ООО
«ТРИАТРОН» представлена восьмью сущностями: клиенты (ФИО, срок
действие идентификатора, срок годности идентификатора, требование о
внесении изменений), штрих-коды (дата выдачи, основание выдачи),
транспортные средства (государственный регистрационный номер, марка,
цвет, год выпуска), магнитные карты (дата выдачи, основание выдачи),
машиноместа (характеристика), сотрудники (ФИО, логин, пароль), журнал
событий (код события, дата события, код рабочего места), радиобрелки (дата
выдачи, основание выдачи).
При внедрении автоматизированной системы «DV_Recog» для ООО
«ТРИАТРОН» логическая модель будет выглядеть следующим образом
(рисунок 5)
Рисунок 5 – Логическая модель работы пропускного пункта ООО
«ТРИАТРОН» «Как будет»
AllFusion Process Modeler r7 – это мощный инструмент моделирования,
который используется для анализа, документирования и реорганизации
сложных бизнес-процессов. Модель, созданная средствами AllFusion Process
Modeler
r7,
позволяет
четко
документировать
различные
аспекты
деятельности - действия, которые необходимо предпринять, способы их
осуществления, требующиеся для этого ресурсы и др. Таким образом,
23
формируется целостная картина деятельности предприятия - от моделей
организации работы в маленьких отделах до сложных иерархических
структур.
AllFusion Process Modeler r7, совмещает в одном инструменте средства
моделирования функций (IDEF0), потоков данных (DFD) и потоков работ
(IDEF3), координируя эти три основных аспекта бизнеса для соответствия
потребностям аналитиков и системных аналитиков. AllFusion Process Modeler
r7, позволяет повторно использовать ключевую информацию моделирования
с точки зрения базовых аспектов, чтобы определить точки конфликтов и, в
конечном счёте, достичь их согласования [22].
Функциональность BPWin заключается не только в создании диаграмм,
но и в проверке целостности и согласованности модели. BPWin обеспечивает
логическую чёткость в определении и описании элементов диаграмм, а также
проверку целостности связей между диаграммами. Инструмент обеспечивает
коррекцию наиболее часто встречающихся ошибок при моделировании.
Кроме того, BPWin поддерживает пользовательские свойства, которые
применяются к элементам диаграммы для описания специфических свойств,
присущих данному элементу. Основным ограничением этой системы является
положенный в ею основу стандарт IDEF, в котором существуют жёсткие
ограничения при построении моделей. Это упрощает задачу при описании
простых процедур, но усложняет описание больших процессов.
Схемы IDEF при описании сложных процессов начинают представлять
бесчисленное множество взаимосвязанных схем, внешне очень похожих, что
затрудняет понимание процесса в целом. Часто не удаётся представить
нужную степень точности описания на одной схеме. Модель, реализованная в
среде BPwin, показана на рисунке 6.
24
Рисунок 6 – Контекстная диаграмма «Управление работой
автостоянки/пункта пропуска»
На данной диаграмме представлены входящие данные: информация о
идентификаторе
АМ,
регистрационная
информация,
бухгалтерская/
административная информация, кнопка RTE, информация о сотрудниках.
ООО «ТРИАТРОН» в своей работе пользуется должностными инструкциями,
изложенных в уставе предприятия, а также нормативно-правовыми актами.
Исходящей информацией будут документы, необходимые для осуществления
управления работы пункта пропуска на автостоянке, к ним относятся сигналы
управляющих воздействий и различного рода отчёты (количество машин
сотрудников организации, количества машин, осуществляющих оплату за
автостоянку и т.д.). Механизмами являются RTE оборудование, АС
бухгалтерии, сотрудники пропускного пункта.
На рисунке 7 предоставлена декомпозиция контекстной диаграммы на
ней описаны основные этапы, которые необходимы для управления работой
автостоянки/пункта пропуска: регистрация клиентов и корректировка
информации о клиентах, пропуск ТС, формирования отчётов.
25
Рисунок 7 – Декомпозиция диаграммы «Управление работой
автостоянки/пункта пропуска»
На рисунке 8 представлена декомпозиция блока «Пропуск ТС»,
включающая в себя следующие блоки: преобразование информации о
считанном идентификаторе к единому формату, поиск информации о
владельце идентификатора, формирование управляющих воздействий.
Рисунок 8 – Декомпозиция блока «Пропуск ТС»
26
На рисунке 9 представлена декомпозиция блока «Формирование
отчётов», она иллюстрирует, какие этапы как формирование отчёта об
активности использования машиномест, формирование списка занятых и
свободных машиномест, формирование списков событий, выбор типа отчёта,
формирование списка клиентов, формирование отчёта задолженность
клиентов.
Рисунок 9 – Декомпозиция блока «Формирование отчётов»
На рисунке 10 представлена декомпозиция блока «Преобразование
информации о считанном идентификаторе к единому формату» в нотации
IDEF3.
Рисунок 10 – Декомпозиция блока «Преобразование информации о
считанном идентификаторе к единому формату»
27
Диаграмма «Преобразование информации о считанном идентификаторе
к единому формату» показывает каким образом передаётся информация о
считанном идентификаторе, она может быть получена в виде штрих-кода,
информации с магнитной карты или радиореклам.
На рисунке 11 представлена декомпозиция блока «Формирование
управляющих воздействий» в нотации IDEF3.
Рисунок 11 – Декомпозиция блока «Формирование управляющих
воздействий» в нотации IDEF3.
Декомпозиция блока «Формирование управляющих воздействий» в
нотации IDEF3 состоит из 9 блоков: зафиксировать событие «Ворота открыты
кнопкой RTE», установить признак клиента (на стоянке, вне стоянки), также
существует функция «Экстремальное открытие ворот».
На рисунке 12 представлена диаграмма дерева узлов «Управление
работой автостоянки/пункта пропуска» она наглядно показывает какие этапы
необходимо выполнить для получения возможности проезда на автостоянку
организацию.
28
Рисунок 12 – Диаграмма дерева узлов «Управление работой
автостоянки/пункта пропуска»
Оценить выгоды проекта по внедрению той или иной информационной
технологии непросто, поскольку они определяются его связанностью с
нематериальными
активами,
а
также
сложностью
и
многообразием
современных информационных технологий. Однако не надо забывать, что
сами по себе информационные технологии не создают стоимость, они лишь
являются вспомогательным орудием в процессе ею создания. Именно поэтому
бывает крайне трудно определить, какие средства следует выделить на
развитие ИТ, какие конкретные реализации стоит выбрать, как их внедрение
отразится на эффективности работы всей организации.
Исследование влияния условий освещённости на работу алгоритмов
обнаружения номерных знаков проводилось по схеме, представленной на
рисунке 13.
29
База тестовых
изображений
внесение
искажений на
изображение
выделение
номерного
знака
база
искажённых
изображений
анализ работы
алгоритмов
алгоритм
обнаружения
номерного
знака
изображения,
полученные в
реальных
условиях
сравнение
результатов
Рисунок 13 – Схема исследования алгоритмов обнаружения номерных знаков
Формирование искажённых изображений путём изменения их яркости и
контраста. Существуют различные алгоритмы изменения яркости и контраста
изображений. В работе изменение яркости и контраста изображений
осуществлялась на основе телевизионного алгоритма. В телевизионном
алгоритме каждый элемент изображения задаётся формулой
Y = Y0 + k * Y xy ,
(2.3.1)
где базовый уровень яркостного сигнала Y0 устанавливается при помощи
элемента регулировки «яркость». Яркость каждого пикселя представляется в
виде суммы
Yxy = Y0 + ∆Yxy ,
(2.3.2)
где Yxy - яркость пикселя в точке ( x, y) , Y0 - средняя яркость по всему
изображению:
(2.3.3)
∑ ,
, ,
где N - число пикселей изображения, при изменении контраста с
(положительным) множителем, яркость изменяется по формуле:
Yxy′ = Y0 + k * Yxy ,
(2.3.4)
В современных графических пакетах при редактировании изображений
в цветовой координатной системе RGB применяется следующая модификация
30
телевизионного алгоритма. Сначала, следуя телевизионному алгоритму,
вычисляется средняя яркость. Потом для каждого пикселя (x, y) изображения
каждого цветового канала RGВ выполняется следующее преобразование:
∆С xy = С xy − Y0
,
(2.3.5)
С ′xy = Y0 + k * ∆С xy
где C - одно из R, G, В, т.е. для каждого цветового канала RGВ
вычисляется ею отклонение от среднего значения яркости, и это отклонение
умножается на коэффициент усиления или ослабления контраста.
При проведении тестирования алгоритмов обнаружения номерных
знаков величина Y0 изменялась от -40 до +40, значение множителя k
варьировалось от - 10 до -90. В обоих случаях величина шага равна 10,
поскольку чрезмерное увеличение либо уменьшение величин Y0 и k приводит
к потере полезной информации. Примеры тестовых изображений, искажённые
с различной величиной Y0 и k, приведены на рисунке 14
Y0=-40
Y0=-20
Y0=0
Y0=20
Y0=40
k=90
k=50
k=0
k=-70
k=-90
Рисунок 14 – Тестовые изображения с различными значениями яркости ( Y0 ) и
контрастности (k)
Приведённые
на рисунках
искажённые
изображения
визуально
соответствуют изображениям, полученным в различных условиях освещения:
к примеру, при ведении съёмки в затемнённых условиях, в пасмурной погоде,
31
по направлению света и против источника света.
Любое устройство формирования изображения подвергается к влияниям
различных видов шумов. На возникновение шума влияют различные причины.
К
основным
факторам
продолжительность
можно
времени
отнести
экспозиции
качество
кадра,
освещения,
дешёвая
стоимость
оборудования и ряд других. Для проведения эксперимента все тестовые
изображения подвергались зашумлению путём наложения на них импульсного
шума. Импульсный шум характеризуется заменой части пикселей значениями
фиксированной или случайной величины. Такой шум связан с потерями при
передаче
изображений
проиллюстрированы
по
каналам
оригинальное
связи.
На
изображение
рисунке
и
2.3.12
изображения,
подверженные к зашумлению с различными значениями плотности шума.
а) плотность шума 0,01
б) плотность шума 0,02
в) оригинальное
изображение
Рисунок 2.3.12 - Примеры тестовых изображений с различной
плотностью шума
В отличие от ситуации тестирования алгоритмов в различных условиях
освещения, нанесение импульсного шума привело к резкому падению уровня
верной локализации номерных знаков. Алгоритм на базе HOG+SVM не
способен справится с импульсным шумом, поскольку шум проникает в HOG
дескрипторы, и это приводит к потере полезной информации и к появлению
ложных срабатываний алгоритма. По результатам тестирования можно
сделать вывод об устойчивости алгоритмов к воздействию импульсного шума
лишь в пределах плотности 0,01-0,02.
32
3 Выбор средств реализации
3.1
Выбор
комплекса
задач
автоматизации
и
характеристика
существующих бизнес-процессов
В
настоящее
время
коммерческим
предприятием
приходится
функционировать в сложных финансово-экономических условиях. Залогом
успешной деятельности предприятия в таких условиях является максимально
эффективная организация деятельности предприятия на всех уровнях, в
частности на автостоянке. Автоматизация бизнес-процессов современного
предприятия является необходимым и обязательным условием его успешного
функционирования. Существующие информационные технологии позволяют
автоматизировать деятельности практически всех уровней предприятия.
Исходя из этого становится ясно, что автоматизация деятельности становится
ключевой задачей, которую необходимо решить руководству для того, чтобы
предприятие работало максимально эффективно.
Далее представлены автоматизированные информационные системы,
которые аналогичны создаваемой в рамках магистерской диссертации с
указанием положительных и отрицательных характеристик.
IPVideoRecord - программа распознавания автомобильных номеров. Для
снижения нагрузки на процессор модуль позволяет выбирать область
распознавания и поддерживает распараллеливание нагрузки на многоядерных
процессорах.
Функции и возможности:
запись видео;
распознавание автомобильных номеров Российской Федерации
(стандартные, транзитные, прицепы, военные, полицейские, общественный
транспорт) и Казахстана (частные и номера организаций);
поддержка номерных знаков Беларуси, Туркменистана по запросу;
33
определение направления движения;
гибкие настройки распознавания;
подробный отчёт и статистика (время въезда, выезда, время
пребывания на объекте и т.д.);
интеграция со сторонними программами;
подключение клиента к серверу по локальной сети или через
интернет;
одновременное подключение нескольких серверов к одному
клиенту;
запись, просмотр и экспорт видео;
разграничение прав пользователей;
поддержка клиентом нескольких мониторов.
Состав оборудования для одной контрольной точки:
компьютер с установленным ПО "IPVideoRecord" (Windows,
Linux).
IP-камера или другое устройство, имеющее функцию передачи
данных с помощью RTSP-потока.
Требования к установке камер:
номер автомобиля должен размещаться в кадре целиком;
угол вертикального наклона видеокамеры - не более 30°;
угол наклона вглубь - не более 15°;
изображения должны быть четкими и не размытыми;
размер символов для надёжного распознавания должен быть не
менее 14 пикселей в высоту.
Интеграция:
интеграция посредством выгрузки текущих данных в XML-файл.
возможность задать период хранения распознанных номеров и
указать камеры, участвующие в выгрузке.
Обновление файла непосредственно при определении очередного
34
номера.
Стоимость
автоматизированной
информационной
системы
варьируется от 250000 за подключение одной IP-камеры.
«НомерОк» - программа распознавания автомобильных номеров.
Функции и возможности:
распознавание автомобильных номеров Российской Федерации
(стандартные, транзитные, прицепы, военные, полицейские, общественный
транспорт);
программа
может
быть
добавлена
в
работу
системы
видеонаблюдения «Линия» на любой стадии.
осуществление работы по локальной сети или через Интернет;
использование совместно с ПО «Линия» обеспечивает постоянное
ведение видеоархива и даёт доступ к остальным функциям системы
видеонаблюдения;
при поиске номерного знака автомобиля можно увидеть не только
фотографию соответствующего транспортного средства, но и просмотреть
материалы видеоархива.
Поиск по результатам распознавания можно вести по следующим
параметрам:
по зоне распознавания,
промежутку времени,
принадлежности к списку,
комментарию.
Состав оборудования для одной контрольной точки:
компьютер с
установленным
ПО
«НомерОк»
(Windows
XP/7/Vista/2003 Server/2008 Server).
программа может работать с одним или двумя каналами IP-
видеокамер разных производителей, а также от системы видеонаблюдения и,
соответственно, от любой аналоговой или IP-видеокамеры, поддерживаемой
данной системой.
35
Требования к установке камер:
номер автомобиля должен размещаться в кадре целиком;
угол вертикального наклона видеокамеры - не более 30°;
угол наклона вглубь - не более 15°;
изображения должны быть чёткими и не размытыми;
размер символов для надёжного распознавания должен быть не
менее 20 пикселей в высоту.
Стоимость автоматизированной информационной системы варьируется
от 200000 за подключение одной IP-камеры.
Представленные
обладают
большим
автоматизированные
функционалом,
но
информационные
в
свою
очередь
системы
являются
дорогостоящими, в связи с этим возникает необходимость в создании
собственной автоматизированной информационной системы.
3.2 Обоснование необходимости и цели использования вычислительной
техники для решения комплекса задач
Хранить и осуществлять поиск информации о клиентах, а также о
проведённых операциях в бумажном виде не только неудобно, но даже опасно.
Однако, использование вычислительной техники даёт не только удобство и
быстроту поиска информации и оформления документов, но и поднимает
эффективность работы на новый уровень, предоставляя функции, ранее
недоступные. При использовании системы бумажного учёта получить
информацию
о
совершенных
сделках,
проанализировать
наиболее
востребованные услуги можно было только подняв всю документацию и
договора, то теперь это стало гораздо более быстрым и доступным, что
позволит лучше оценивать востребованность разных услуг на рынке.
Ещё
одним
автоматизированной
неоспоримым
информационной
преимуществом
системы
является
использования
безопасность
хранения информации. При хранении информации на бумажных носителях
потеря любого бумажного документа была невосполнимой. Такая потеря
36
могла произойти как в результате действий злоумышленников, так и в
результате действия непреодолимых сил. При хранении информации в
электронном виде существующие методы обеспечения безопасности хранения
информации и ею дублирования делают такое хранение абсолютно надёжным.
Программное обеспечение средств вычислительной техники так же
играет не последнюю роль в работе предприятия. Весь комплекс программных
средств должен быть обновлён по мере выхода новых версий. Особенно это
касается обновлений для антивирусов и продуктов фирмы Microsoft, потому
что даже регулярное резервное копирование не способно полностью избавить
отдел АСУ от массового распространения сетевых вирусов и других
зловредных программ по коммуникационным линиям предприятия. В
конечном итоге обновление баз антивирусных программ является наиболее
простым и эффективным решением при борьбе с вирусами.
3.3 Описание основных свойств ИС для предприятия и выбранного
комплекса задач
Основными свойствами информационной системы для обработки
динамической информации, в частности для чтения номерных знаков
являются:
небольшая и простая, интуитивно понятная – нет необходимости
при текущих задачах в большой и сложной ИС;
динамичная и легко изменяемая;
высокая защищённость – на данном этапе у предприятия есть
значительные требования к защищённости ИС;
распознавание автомобильных номеров Российской Федерации
(стандартные, транзитные, прицепы, военные, полицейские, общественный
транспорт);
определение направления движения;
гибкие настройки распознавания;
37
подробный отчёт и статистика (время въезда, выезда, время
пребывания на объекте и т.д.);
запись, просмотр и экспорт видео;
интеграция со сторонними программами;
подключение клиента к серверу по локальной сети или через
интернет;
одновременное подключение нескольких серверов к одному
клиенту;
разграничение прав пользователей;
поддержка нескольких мониторов
Информационная
система
подвержена
воздействию
случайных
факторов таких как – ошибки технических устройств, невозможность
распознавания динамической информации (из-за нечитаемых номеров, плохих
погодных условий).
38
4 Разработка программного решения
В
данной
части
магистерской
диссертации
проведён
анализ
существующих разработок для автоматизации комплекса задач, описаны
средства, применяемые обработке динамической информации, проведено
обоснование стратегии автоматизации комплекса задач, представлены этапы
разработки
ИС,
а
также
проведено
тестирование
созданной
автоматизированной системы.
4.1 Анализ существующих разработок для автоматизации комплекса
задач
IPVideoRecord - программа распознавания автомобильных номеров. Для
снижения нагрузки на процессор модуль позволяет выбирать область
распознавания и поддерживает распараллеливание нагрузки на многоядерных
процессорах.
Функции и возможности:
запись видео;
распознавание автомобильных номеров Российской Федерации
(стандартные, транзитные, прицепы, военные, полицейские, общественный
транспорт) и Казахстана (частные и номера организаций);
поддержка номерных знаков Беларуси, Туркменистана по запросу;
определение направления движения;
гибкие настройки распознавания;
подробный отчёт и статистика (время въезда, выезда, время
пребывания на объекте и т.д.);
интеграция со сторонними программами;
подключение клиента к серверу по локальной сети или через
интернет;
одновременное подключение нескольких серверов к одному
39
клиенту;
запись, просмотр и экспорт видео;
разграничение прав пользователей;
поддержка клиентом нескольких мониторов.
Состав оборудования для одной контрольной точки:
компьютер с установленным ПО "IPVideoRecord" (Windows,
Linux).
IP-камера или другое устройство, имеющее функцию передачи
данных с помощью RTSP-потока.
Требования к установке камер:
номер автомобиля должен размещаться в кадре целиком;
угол вертикального наклона видеокамеры - не более 30°;
угол наклона вглубь - не более 15°;
изображения должны быть чёткими и не размытыми;
размер символов для надёжного распознавания должен быть не
менее 14 пикселей в высоту.
Интеграция:
интеграция посредством выгрузки текущих данных в XML-файл.
возможность задать период хранения распознанных номеров и
указать камеры, участвующие в выгрузке.
Обновление файла непосредственно при определении очередного
номера.
Стоимость
автоматизированной
информационной
системы
варьируется от 250000 за подключение одной IP-камеры.
«НомерОк» - программа распознавания автомобильных номеров.
Функции и возможности:
распознавание автомобильных номеров Российской Федерации
(стандартные, транзитные, прицепы, военные, полицейские, общественный
транспорт);
программа
может
быть
добавлена
40
в
работу
системы
видеонаблюдения «Линия» на любой стадии.
осуществление работы по локальной сети или через Интернет;
использование совместно с ПО «Линия» обеспечивает постоянное
ведение видеоархива и даёт доступ к остальным функциям системы
видеонаблюдения;
при поиске номерного знака автомобиля можно увидеть не только
фотографию соответствующего транспортного средства, но и просмотреть
материалы видеоархива.
Поиск по результатам распознавания можно вести по следующим
параметрам:
по зоне распознавания,
промежутку времени,
принадлежности к списку,
комментарию.
Состав оборудования для одной контрольной точки:
компьютер с
установленным
ПО
«НомерОк»
(Windows
XP/7/Vista/2003 Server/2008 Server).
программа может работать с одним или двумя каналами IP-
видеокамер разных производителей, а также от системы видеонаблюдения и,
соответственно, от любой аналоговой или IP-видеокамеры, поддерживаемой
данной системой.
Требования к установке камер:
номер автомобиля должен размещаться в кадре целиком;
угол вертикального наклона видеокамеры - не более 30°;
угол наклона вглубь - не более 15°;
изображения должны быть чёткими и не размытыми;
размер символов для надёжного распознавания должен быть не
менее 20 пикселей в высоту.
Стоимость автоматизированной информационной системы варьируется
41
от
200000
за
подключение
автоматизированные
одной
информационные
IP-камеры.
системы
Представленные
обладают
большим
функционалом, но в свою очередь являются дорогостоящими, в связи с этим
возникает необходимость в создании собственной автоматизированной
информационной системы.
4.2 Описание средств, применяемых при обработке динамической
информации
IDE Visual Studio 2015. Особенность этой платформы заключается в
широком наборе сервисов, которые доступны в различных языках
программирования. При этом сервисы реализуются в виде промежуточного
кода, который не зависит от базовой архитектуры. Среда позволяет
разработчикам
использовать
специальные
сервисно-ориентированными
приложения, которые могут работать на любой платформе, начиная от
персонального компьютера и заканчивая мобильным устройством.
Microsoft Visual Studio объединяет в себе огромное количество функций,
позволяющих осуществлять разработки для Windows всех версий, Webприложений, SharePoint, различных мобильных платформ и облачных
технологий. В Visual Studio реализуется технология intelliscense, благодаря
которой процесс написания кода стал намного проще, так же она ускоряет
доступ к документации, облегчает устранение неоднозначности в именах
элементов кода. Каждая новая версия программы состоит из новейших
инструментов и технологий, позволяющих разрабатывать приложения с
учётом особенностей и положительных моментов современных платформ.
Visual Studio 2015 поддерживает кроссплатформенную разработку для
мобильных устройств. Внутри IDE можно программировать приложения и
игры, ориентированные на iOS, Android и Windows, которые совместно
используют общую базу кода. Все эти новые типы проектов можно будет
видеть в диалоговом окне «Файл, Новый проект». Xamarin — это мобильная
платформа,
которая
позволяет
разрабатывать
42
код
на
C#,
который
привязывается по умолчанию к интерфейсам API iOS и Android. Корпорация
Майкрософт поддерживала тесные партнёрские отношения с компанией
Xamarin при выпуске их продукта Xamarin for Visual Studio, представляющего
собой расширение, которое позволяет разрабатывать приложения для Android,
iOS и Windows Phone в рамках единого решения с общим кодом.
Инструменты Visual Studio для Apache Cordova появились благодаря
тесному сотрудничеству между Майкрософт и сообществом Apache Cordova,
поддерживающим открытый исходный код. Инструменты обеспечивают
кросс-платформенную разработку приложений для мобильных устройств с
помощью
HTML,
CSS
и
JavaScript
(или
Typescript).
Вы
можете
ориентироваться на Android, iOS и Windows с единой базой кода и
наслаждаться широчайшими возможностями среды Visual Studio IDE,
включая JavaScript IntelliSense, проводник DOM, консоль JavaScript, точки
останова, контрольные значения, языковые стандарты, режим "Только мой
код" и многие другие. Благодаря инструментам Visual Studio для Apache
Cordova ваши приложения имеют доступ к собственным возможностям
устройств на всех платформах через подключаемые модули, которые
предоставляют общий API JavaScript.
Язык программирования C#. Это простой и функциональный объектноориентированный язык программирования. В нем собраны все достоинства
разных языков. Быстродействие выполнения приближается к языку Assembler.
C# разрабатывался как язык программирования прикладного уровня для CLR
(англ. Common Language Runtime — общеязыковая исполняющая среда) и, как
таковой, зависит, прежде всего, от возможностей самой CLR. Это касается,
прежде всего, системы типов C#, которая отражает BCL (Base Class Library).
Присутствие или отсутствие тех или иных выразительных особенностей языка
диктуется
тем,
может
ли
конкретная
языковая
особенность
быть
транслирована в соответствующие конструкции CLR. Так, с развитием CLR от
версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия
следует ожидать и в дальнейшем (однако, эта закономерность была нарушена
43
с выходом C# 3.0, представляющего собой расширения языка, не
опирающиеся на расширения платформы .NET). CLR предоставляет C#, как и
всем другим .NET-ориентированным языкам, многие возможности, которых
лишены «классические» языки программирования. Например, Сборка мусора
не реализована в самом C#, а производится CLR для программ, написанных на
C# точно так же, как это делается для программ на VB.NET, J# и др.
На
платформе
.NET
доступны
трансляторы
многих
языков
программирования - Microsoft C#, Microsoft Visual Basic .NET, Managed C++,
JScript.NET, Visual Perl и др. Хотя теперь проблема выбора языка
программирования стоит не так остро, из-за ограничений, присущих
некоторым
языкам
программирования,
наиболее
полно
возможности
платформы Microsoft .NET Framework можно реализовать только с
применением С#. Для достижения совместимости между различными языками
программирования
компиляторы
языков
платформы
Microsoft
.NET
Framework переводят исходный текст программы в промежуточный язык,
называемый Microsoft Intermediate Language (MSIL).
Таким образом, на каком бы вы языке платформы Microsoft .NET
Framework не писали свою программу — на С#, Visual Basic .NET или какомлибо другом, эта программа всегда будет транслироваться в MSIL. Чтобы у
всех разработчиков языков программирования была возможность создавать
свои компиляторы совместимыми со средой выполнения Microsoft .NET
Framework, была создана спецификация Common Language Specification (CLS).
Придерживаясь этой спецификации, разработчики языков программирования
могут быть уверены в том, что создаваемые с применением этих языков
программы будут удовлетворять минимальным требованиям платформы
Microsoft
.NET
Framework.
В
частности,
эти
программы
смогут
взаимодействовать с программами, разработанными с использованием других
языков платформы Microsoft .NET [8]. Бибилотека OpenCV. Для захвата
видеоизображения, и его обработки, а также поиска штрихованных кодов и
текстовых данных с серийным номером и сроком годности мы будем
44
использовать открытую библиотеку машинного зрения OpenCV и входящие в
её состав компоненты, потому что это единственное на данный момент
свободно распространяемое решение, способное удовлетворить нашим
потребностям.
OpenCV (Open Source Computer Vision) – библиотека компьютерного
зрения
с
открытым
исходным
кодом)
–
библиотека
алгоритмов
компьютерного зрения, обработки изображений и численных алгоритмов
общего назначения с открытым кодом. Реализована на C/C++, и содержит
алгоритмы для:
интерпретации изображений;
калибровки камеры по эталону;
устранения оптических искажений;
определение сходства;
анализа перемещения объекта;
определения формы объекта и слежения за объектом;
3D-реконструкции;
сегментации объекта;
распознавания жестов и т.д.
Эта библиотека очень популярна за счёт своей открытости и
возможности бесплатно использовать как в учебных, так и коммерческих
целях.
Фактически, OpenCV – это набор типов данных, функций и классов для
обработки изображений алгоритмами компьютерного зрения.
Основные модули библиотеки:
cxcore – ядро содержит базовые структуры данных и алгоритмы;
базовые операции над многомерными числовыми массивами;
запись/восстановление структур данных в/из XML;
матричная
алгебра,
математические
случайных чисел;
45
функции,
генераторы
базовые функции 2D графики;
CV – модуль обработки изображений и компьютерного зрения;
базовые
операции
над
изображениями
(фильтрация,
геометрические преобразования, преобразование цветовых пространств);
анализ
изображений
(выбор
отличительных
признаков,
морфология, поиск контуров, гистограммы);
анализ движения, слежение за объектами;
обнаружение объектов, в частности лиц;
калибровка камер, элементы восстановления пространственной
структуры;
Highgui – модуль для ввода/вывода изображений и видео, создания
пользовательского интерфейса, позволяет:
осуществлять захват видео с камер и из видео файлов,
чтение/запись статических изображений;
функции для организации простого UI (все демо приложения
используют HighGUI);
Поддерживаемые платформы и инструменты:
Microsoft Windows: компиляторы Microsoft Visual C++ (6.0, .NET
2003), Intel Compiler, Borland C++, Mingw (GCC 3.x);
Windows RT: портирован на ARM компанией Itseez;
Linux: GCC (2.9x, 3.x), Intel Compiler: «./configure-make-make
install», RPM (spec файл включён в поставку);
Mac OS X: GCC (3.x, 4.x);
Android;
iOS.
Используются C и «облегчённый» C++, директивы препроцессора и
условная компиляция используются очень ограниченно;
Средства GUI, захват видео:
Microsoft Windows: DirectShow, VfW, MIL, CMU1394;
46
Linux: V4L2, DC1394, FFMPEG;
Mac OS X: QuickTime.
Имеется возможность дополнительного ускорения с помощью Intel®
Performance Libraries, включают IPP низкоуровневые библиотеки для
обработки сигналов, изображений, а также медиа-кодеки и MKL специальная
версия LAPACK и FFTPack. OpenCV способна автоматически обнаруживать
присутствие IPP и MKL и использовать их для ускорения обработки [9].
Оболочка EmguCV. Emgu CV - кроссплатформенная «обертка» (wrapper)
для .NET библиотеки обработки изображений OpenCV от компании Intel, эта
библиотека часто используется в системах машинного зрения. EmguCV
позволяет с лёгкостью использовать библиотеки OpenCV (написана на С/С++)
в других языках программирования, например в том же Visual Basic.NET,
который, как мне кажется, гораздо проще в освоении, чем другие языки [10].
OCR Tessetact. Для распознавания текстовых данных, мы будем
применять открытую свободную OCR библиотеку Tesseract. Это свободно
распространяемый пакет библиотек и приложений для распознания текста на
множестве языков, с возможностью обучения (до обучения). Разработка
поддерживается Google и является единственным достаточно точным и
актуальным пакетом на сегодняшний день, распространяемым бесплатно.
4.3 Выбор и обоснование стратегии автоматизации комплекса задач
В данном пункте речь пойдёт о том, как будет происходить
автоматизация процесса пропуска на частную автостоянку в ООО
«ТРИАТРОН».
Разработка
автоматизированной
информационной
системы
предполагает решать следующие задачи:
мониторинг событий системы в режиме «реального времени»;
полностью автоматический контроль въезда и выезда;
модуль видеоидентификации;
возможность подключения табло для отображения количества
47
свободных мест.
Автоматизированный
процесс
пропуска
транспортного
средства
представлен на рисунке 15.
Внешние АИС и БД
Сбор данных
Обработка данных
Ввод данных
Хранение, обновление,
поддержка данных
База
данных
Поиск информации
Формирование
выходных форм
Анализ полученных
данных
Принятие решений
Рисунок 15 – Автоматизированный процесс пропуска транспортного
средства
4.4 Выбор и обоснование способа приобретения ИС для автоматизации
комплекса задач
В данном разделе будут рассмотрены основные возможные варианты
приобретения информационных систем для организации, а также описан
эффект от процесса их реализации, потенциально оказанный на предприятие.
Выявлены основные недостатки и преимущества рассматриваемых способов
приобретения.
Существует несколько вариантов решения поставленной задачи,
48
относительно приобретения:
покупка готового продукта (готовой информационной системы);
покупка готового продукта с последующей модификацией под
клиента;
разработка собственного продукта;
модификация уже имеющегося и находящегося в эксплуатации
продукта.
Покупка готового продукта – один из самый простых вариантов, не
требующих каких-либо затрат, кроме денежных. Среди плюсов такого способа
можно выделить минимальную затрату времени и усилий на введение
продукта в эксплуатацию. Кроме того, есть очень большая вероятность
приобрести качественный актуальный продукт из последних разработок,
ввиду очень большого конкурентного товарного рынка.
Основными минусами является безусловная дороговизна, т.к. хороший
продукт стоит дорого, и невозможность адаптировать систему под себя на
100%, даже используя все её функции по максимуму. В виду последнего
минуса есть вероятность возникновения критических ошибок несоответствия
системы и структурной организации компании, на устранение которых
потребуются большие затраты времени, т.к. скорее всего, придётся
обращаться к производителю.
Покупка готового продукта с последующей модификацией под клиента
– это оптимизированный первый вариант приобретения, с единственным
сохранившимся минусом – это возможная дороговизна. Данный вид
приобретения позволяет в буквальном смысле «подогнать» параметры
системы под необходимые показатели и условия, под конкретных людей, что
предотвращает вероятность возникновения критических ошибок.
Но следует учитывать, что на слишком сложные модификации системы
могут потребоваться большие затраты времени, т.к. программистам компании
необходимо будет изучить код продукта.
Разработка собственного продукта – самый долгосрочный способ
49
получения необходимого продукта. Группа специалистов IT отдела, отдела
программных разработок создаёт свой специализированный продукт для
своей организации, учитывая её специфику. Однако, как правило, этот процесс
занимает достаточно большой промежуток времени и не гарантирует
стопроцентного результата. В полученном продукте может содержаться масса
недоработок, которые придётся устранять уже в процессе эксплуатации
системы.
Существует
большая
вероятность
получить
оптимальный
для
предприятия и его бизнеса продукт.
Модификация уже имеющегося и находящегося в эксплуатации
продукта – типичная модернизация уже установленной системы.
Рассмотрев основные возможные варианты приобретения продукта,
учитывая
возможности
и
специфику
организации,
наличие
специализированного IT отдела был выбран вариант разработки собственного
продукта.
4.5 Постановка задачи и автоматизации. Анализ системы «Как должно
быть»
Системы технического зрения являются незаменимыми для обработки
различного рода информации. Общая картина процесса распознавания
номерных знаков такова: видеопоследовательность поступает со статической
видеокамеры, установленной по направлению движения автомобилей, затем
осуществляется выделение объектов интереса и отслеживание их движения и
действий для последующего анализа. После выделения необходимых
объектов, осуществляется поиск и локализация номерного знака. Далее
символы номерного знака сегментируются и распознаются.
Обобщённая
схема
функционирования
автоматизированной
информационной системы представлена с помощью контекстной диаграммы
IDEF0 на рисунке 16 и является верхним уровнем иерархии функциональной
модели.
50
Законы РФ
Ус тав предприятия
Видеопоток с ус тройств наблюдения
Сигналы управляющих воздейс твий
Регистрационная информация
Управление работой
автостоянки/пункта пропуска
Отчёты
Бухгалтерская/административная
информация
0?
0
Сотрудники
пропускного
пункта
АС Управления
Рисунок 16 – Контекстная диаграмма «Управление работой
автостоянки/пункта пропуска»
Видеопоследовательность с камеры наблюдения выступает в роли
информации, которая используется функциональным блоком для получения
результата. При этом функциональный блок руководствуется некоторыми
правилами и общепринятыми нормами. Формат видеопоследовательности
зависит от модели камеры и, в некоторых случаях, ею настроек. Система не
ограничена одним форматом видеопоследовательности и способна разделять
на кадры видео распространённых форматов. Входящей информацией
являются видеопоток с устройств наблюдения, регистрационная информация,
а также бухгалтерская и административная информация. Исходящей
информацией
будут
являться
сигналы
управляющих
воздействий и
различного рода отчёты, механизмами выступают АС предприятия и
сотрудники пропускного пункта. На рисунке 17 представлена декомпозиция
контекстной диаграммы «Управление работой автостоянки/пункта пропуска».
51
Законы РФ
Ус тав предприятия
Регистрационная
информация
Регистрация клиентов
и корректировка
информации о клиентах
0?
Информация
о клиенте
1
Формирования отчётов
0?
Бухгалтерская/административная
информация
3
Информация о
выполнении
действий
Видеопоток с
устройс тв
наблюдения
Сигналы
управляющих
воздействий
Пропус к ТС
0?
Отчёты
2
Сотрудники
пропускного пункта
АС Управления
Рисунок 17 – Декомпозиция контекстной диаграммы «Управление работой
автостоянки/пункта пропуска»
На рисунке 18 представлена диаграмма «Проверить наличие прав
сотрудника на регистрацию клиента», состоящая из четырёх блоков:
проверить наличие прав сотрудников на регистрацию клиента, выполнить
регистрацию клиента, проверить наличие прав сотрудников на изменение
информации в автоматизированной системе, а также выполнить изменение.
Законы РФ
Ус тав предприятия
Разрешение на
Проверить наличие
регистрацию лкиента
прав сотрудника
на регистрацию клиента
0?
1
0?
Бухгалтерская/административная
информация
Информация о
клиенте
Выполнить
регистрацию
клиента
Регистрационная
информация
2
Проверить налиичие
прав сотрудника для
выполнения требуемых
изменений инфомрации
о клиенте
0?
3
Разрешение на
изменение
информации о
клиенте
Выполнить изменение
информации о клиенте
0?
4
Сотрудники
пропускного пункта
Рисунок 18 – Диаграмма «Проверить наличие прав сотрудника на
регистрацию клиента»
52
Далее на рисунке 19 представлена диаграмма «Формирование
управляющих воздействий» в нотации IDEF3, на ней показаны этапы
открывания ворот на автостоянке компании ООО «ТРИАТРОН».
Информация о выполнении дейс твий
0?
Обработать ситуацию
"Повторение считывание
идентификатора"
Признак "Клиент на
стоянке" установлен
X
J6
4
X
Клиент въезжает
на стоянку
Данные о
клиенте
J4
0?
0?
Зафиксировать
событие
"Клиент въехал
на стоянку"
Установить признак
"Клиент на стоянке"
X
5
0?
Сформировать
управляющее
воздействие
"Открыть ворота"
6
J3
X
Клиент выезжает
со стоянки
J7
0?
0?
10
Сигналы
управляющих
воздействий
Зафиксировать
событие
"Клиент выехал
со стоянки"
Сбросить признак
"Клиент на стоянке"
7
X
8
0?
0?
Зафиксировать событие
"Ворота открыты кнопкой RTE"
Кнопка RTE
J5
Сформировать
управляющее
"Экстренное
открытие ворот"
11
9
Рисунок 19 – Диаграмма «Формирование управляющих воздействий» в
нотации IDEF3
Для того чтобы описать сервисы, предоставляемые системой, построим
диаграмму вариантов использования, представленную на рисунке 20. Для
этого представим проектируемую систему в виде множества сущностей или
актёров,
взаимодействующих
использования.
При
этом
с
системой
актёром
с
помощью
называется
любая
вариантов
сущность,
взаимодействующая с системой извне. В данном случае это – администратор,
дежурный либо и множество модулей системы. Администратор оказывает
воздействие на настройку и установку аппаратного и программного
обеспечения. Дежурный необходим для привнесения человеческого фактора в
процесс распознавания – проверки распознанных номеров и применения
информации о них по назначению в зависимости от предприятия, на котором
применяется система. В свою очередь, модули системы непосредственно
влияют на процесс распознавания. Сначала они получают информацию об
53
общих параметрах системы, затем обрабатывают видеопоследовательность и
предоставляют информацию о распознанных номерах в текстовом виде для
использования в бизнес-процессах организации. При этом у дежурного
имеется возможность сравнить графическое изображение номера с текстовым
представлением и скорректировать его.
Рисунок 20 – Варианты использования системы
Структура системы состоит из модулей. Модульность системы позволит
без особых трудностей заменять реализацию того или иного алгоритма или
вовсе заменить реализацию одного алгоритма совершенно иным без внесения
существенных изменений в структуру системы в целом. Такая особенность
системы просто необходима, поскольку все системы, выполняющие
распознавание номерных знаков, часто применяются в различных условиях и
для получения наилучшего результата, в поставленных условиях, может
потребоваться заменить какой-либо компонент системы более подходящим.
Алгоритм въезда автотранспорта:
1. Автомобиль подъезжает к въездному терминалу (наезжает на
индукционный датчик, вмонтированный в асфальт перед стойкой);
2. Водитель ждёт пока автоматизированная информационная система
считает номер, если данная машина есть в базе данных, то шлагбаум
автоматически открывается. «Красный» сигнал и «Зелёный» индикация для
54
водителя;
3. Автомобиль начинает движение к шлагбауму, сначала одновременно
находясь на датчике около стойки и датчике около шлагбаума, затем только
на датчике около шлагбаума;
4. При проезде шлагбаума (окончание пересечения индукционного
датчика около шлагбаума) выдаётся сигнал на его закрытие. Меняется
индикация сигналов светофора с «Зелёного» на «Красный»;
5. Если автомобиль не проехал шлагбаум (системой не зарегистрировано
одновременное пересечение индукционных датчиков около стойки и
шлагбаума), то через 2 минуты шлагбаум закрывается, на экране
высвечивается сообщение, что машина не проехала.
Целью решения задачи является автоматизация работы пункта охраны.
Ситуация с недостатком мест для постоянного и временного хранения
автотранспорта остаётся острой проблемой любого предприятия, т.к. важно
учитывать удобство как собственных сотрудников, так и клиентов компании.
Для центральной части города, со сложившейся планировочной структурой,
где сконцентрировано большое количество предприятий, использование
системы позволит заменить человеческий труд на машинный. Таким образом,
главная задача - рост качества и скорости информационного взаимодействия
на парковке предприятия.
4.6 Дерево выполняемых функций и сценарий диалога
Реализация магистерской диссертации представляет собой набор
основных и служебных функций.
Из служебных функций можно выделить проверку целостности
введённых значений, управление печатью и управление окнами.
Основными функциями являются предоставление возможности ввода
данных, заполнение и ведение различных справочников, а также получение
интересующей результативной информации посредствам запросов или
отчётов. Дерево функций представлено на рисунке 21.
55
Функции
информационной
системы
Основные
Служебные
Ввод данных
Проверка авторизации
пользователя
Ведение базы
данных
Проверка корректности
данных
Вывод
результатов
Оказание помощи, при
возникновении проблем
Своевременное
обновление информации
Запросы
Отчёты
Рисунок 21 – Дерево функций
4.7 Реализация АИС «DV_Recog» для ООО «ТРИАТРОН»
Техническое задание на разработку автоматизированной системы
«DV_Recog» для ООО «ТРИАТРОН».
1 Введение
Под автоматизацией платной автостоянки подразумевается решение
следующих задач: автоматизация решения задачи формирования пропусков,
автоматизация задачи контроля доступа на стоянку, ведения журнала событий
(въезд, выезд) и др. Таким образом, при автоматизации платной стоянки
56
необходимо решить ряд задач, возникающих в системах контроля доступом
(СКД). В настоящее время СКД широко представлены на рынке. Однако СКД,
как правило, больше ориентированы на пропуск людей, а не автомобилей.
Кроме того, многие универсальные СКД ориентированы на большие
предприятия
и
имеют
слишком
большую
стоимость.
Данная
автоматизированная информационная система ориентирована именно на
автоматизацию автостоянки и обладает низкой стоимостью.
2 Основание для разработки
Основанием для разработки является практическое задание в рамках
магистерской диссертации.
3.Назначение разработки
Автоматизированная
информационная
система
«DV_Recog»
предназначена для решения следующих задач:
хранение информации о сотрудниках ООО «ТРИАТРОН», их
автомобилях с указанием периода разрешённого доступа на охраняемую
территорию;
хранение информации о клиентах автостоянки, их автомобилях с
указанием периода разрешённого доступа на охраняемую территорию;
фиксация всех происходящие в системе событий;
формирование и учёт пропусков;
контроль доступа на автостоянку.
4 Требования к ПИ
4.1 Требования к функциональным характеристикам
Система должна обеспечивать следующие функции:
1.Ввод, вывод, редактирование, хранение, печать, экспорт в другие
форматы информации об операторах и их полномочиях:
ФИО оператора;
имя в системе;
пароль;
полномочия.
57
2.Ввод, вывод, редактирование, хранение, печать, экспорт в другие
форматы информации об арендаторах стоянки, включая информацию об
транспортных средствах им принадлежащих:
ФИО арендатора;
уровень доступа;
срок действия пропуска;
возможная система скидок на данный товар;
уровень доступа.
3.Ввод, вывод, редактирование, хранение, печать, экспорт в другие
форматы информации о транспортных средствах, в связи с арендаторами,
которым они принадлежат.
государственный номер;
марка;
цвет;
год выпуска.
4.Ввод, вывод, редактирование, хранение, печать, экспорт в другие
форматы информации о машиноместах стоянки и группах машиномест:
характеристика машиноместа;
описание и состав группы машиномест.
5.Ввод, вывод, редактирование, хранение, печать, экспорт в другие
форматы информации о закреплённых за клиентом машиномест.
6.Формирование, хранение, печать, экспорт в другие форматы журнала
событий:
код события;
дата события;
информация о клиенте, транспортном средстве, машиноместе (группе
машиномест) связанных с событием.
Входной информацией системы является:
1.Бухгалтерская информация:
58
информация о сроке действия договора клиента с автостоянкой;
информация об оплате клиентом машиномест оговорённых в
договоре.
2.Информация о поднятии шлагбаума, т.е. открытия ворот (шлагбаума)
автостоянки.
3.Регистрационная информация:
информация о машиноместах и группах машиномест автостоянки;
информация о сотрудниках автостоянки;
информация о клиентах автостоянки и их транспортных средствах.
Выходной информацией системы является:
1.Управляющие воздействия на исполнительный механизм ворот,
шлагбаума или другого устройства перекрытия точки прохода. Выбор типа
устройства остаётся за разработчиком.
2.Отчеты. Минимальный перечень формируемых в системе отчётов
следующий:
список свободных машиномест;
список занятых машиномест;
список событий;
список клиентов;
задолженности клиентов.
4.2 Требования к надёжности
Система должна:
проводить контроль вводимой информации;
блокировать некорректные действия пользователя при работе с
системой;
обеспечивать целостность данных.
4.3 Условия эксплуатации
Использовать
систему
будут
пользователи
средней
и
низкой
квалификации. Интерфейс системы должен быть максимально приближен к
59
интерфейсам подобных систем. Ввод информации должен осуществляться в
наиболее унифицированных формах.
4.4 Требования к составу и параметрам технических средств:
настоящая автоматизированная информационная система должна
работать на процессорах совместимых с процессором IBM;
оперативная память на каждой ЭВМ, не менее 32 Мб;
наличие видеокарты не менее 32 Мб на ЭВМ клиента;
мышь.
клавиатура на ЭВМ клиента;
свободное место на жёстком диске не менее 20 Мб, место для
хранения баз данных.
4.5 Требования к информационной и программной совместимости
Система должна работать под управлением ОС семейства Win32.
Для приложения клиента необходимы:
СУБД Microsoft SQL Server;
Microsoft SQL Server ServicePack3
4.6 Требования к маркировке и упаковке
Готовое программное изделие и документация предоставляются в
электронном виде.
5.Требования к программной документации
Программная документация должна содержать следующие документы
(см. ГОСТ 19.101-77):
1.Программные документы:
спецификация (ГОСТ 19.202-78);
текст программы (ГОСТ 19.401-78);
описание программы (ГОСТ 19.402-78);
пояснительная записка (ГОСТ 19.404-79);
2.Эксплуатационные документы:
ведомость эксплуатационных документов (ГОСТ 19.507-79);
60
формуляр (ГОСТ 19.501-78);
описание применения (ГОСТ 19.502-78);
руководство системного программиста (ГОСТ 19.503-79);
руководство программиста (ГОСТ 19.504-79);
руководство оператора (ГОСТ 19.505-79);
Требования к перечисленным документам не отличаются от требований,
определённых в ЕСПД.
4.7.1 Разработка программного средства.
Для решения поставленной задачи было разработано программное
решение «DV_Recog» (Dynamical Video Recognizing). В основе решения лежат
средства, предоставляемые библиотекой OpenCV. Для того чтобы применять
их в среде Visual Studio при разработке на языке программирования C# была
применена оболочка EmguCV. Библиотека и оболочка распространяются по
лицензии GPL, являются свободным программным обеспечением (Open
Source) [51].
Для захвата видеокадра используется объект VideoCapture. Данный
объект захватывает видеоизображение с устройства видео захвата. В
демонстрационной программе это веб камера с наименьшим ID устройства.
Программный код инициализации системы представлен на рисунке 22.
Начало листинга 1. Инициализация компонентов
public DV_Recog()
{
InitializeComponent();
worker = new Worker();
CvInvoke.UseOpenCL = false;
_licensePlateDetector = new LicensePlateDetector("");
data = new DataSet();
try
{
_capture = new VideoCapture();
_capture.ImageGrabbed += ProcessFrame;
}
catch (NullReferenceException excpt)
{
MessageBox.Show(excpt.Message);
}
_frame = new Mat();
renew_client_list();
}
Конец листинга 1.
Рисунок 22 – Инициализация компонентов
61
Для обработки изображения в поле-дескриптор устанавливается
обработчик передаётся процедура ProcFrame. На рисунке 23 представлен
исходный код процедуры обработчика захваченного изображения. Так же в
данном методе осуществляется приостановка обработки, и вывод считанных
данных.
Начало листинга 2. Обработчик видеоинформации
private void ProcessFrame(object sender, EventArgs arg)
{
if (_capture != null && _capture.Ptr != IntPtr.Zero)
{
_capture.Retrieve(_frame, 0);
um = _frame.GetUMat(AccessType.ReadWrite);
int r = ProcessImage(um);
capture_ImageBox.Image = um;
if (-1 < r)
{
{
_capture.Pause();
fill_form(data.data_val[r]);
System.Threading.Thread.Sleep(3000);
r = 0;
_capture.Start();
clear_form();
}
}
}
}
Конец листинга 2
Рисунок 23 – Обработчик видеоинформации
В
коде
данного
обработчика
вызывается
процедура
анализа
перехваченного видеокадра ProcessImage. Данная процедура анализирует кадр
используя его в метод DetectLicensePlate класса LicensePlateDetector.
В результате его выполнения возвращается значение номерного знака.
Далее в методе осуществляется его очистка от лишних символов, таких как
знаки тире, точки или вертикальные черты разделяющие группы. После
получения исключительно информационной составляющей нанесённого на
номерную пластину маркера проводится поиск соответствия данного номера
в базе данных зарегистрированных в системе номеров транспортных средств
62
и получаются данные о статусе его доступа на территорию. Данные действия
реализованы в методе структуры data. Так же, метод ProcessImage
осуществляет выделение найденного номерного знака на изображении
красной рамкой. Исходный код данного метода приведён в рисунке 24.
Начало листинга 3. Обработчик захваченного видеокадра
private int ProcessImage(IInputOutputArray image)
{
List<IInputOutputArray> licensePlateImagesList = new List<IInputOutputArray>();
List<IInputOutputArray> filteredLicensePlateImagesList = new
List<IInputOutputArray>();
List<RotatedRect> licenseBoxList = new List<RotatedRect>();
List<string> words = _licensePlateDetector.DetectLicensePlate(
image,
licensePlateImagesList,
filteredLicensePlateImagesList,
licenseBoxList);
if(0<words.Count)
for (int i = 0; i < words.Count; ++i)
{
String res = words[i];
string pattern_clear = @"[ \\|/?.`,{}\[\]^:$;@""()<>*&%#~!+=_-]";
res = Regex.Replace(res, pattern_clear, "");
string pattern_match = @"[a-zA-Z0-9]{6}";
Match m = Regex.Match(res, pattern_match);
if (m.Value != "")
{
int d = data.find(m.Value);
if (-1 < d)
{
Mat dest = new Mat();
CvInvoke.VConcat(licensePlateImagesList[0],
filteredLicensePlateImagesList[0], dest);
PointF[] verticesF = licenseBoxList[0].GetVertices();
Point[] vertices = Array.ConvertAll(verticesF, Point.Round);
using (VectorOfPoint pts = new VectorOfPoint(vertices))
CvInvoke.Polylines(image, pts, true, new Bgr(Color.Red).MCvScalar, 2);
return d; }
}
}
return -1;}
Конец листинга 3
Рисунок 24 – Обработчик захваченного видеокадра
В листинге 4 представлен программный код метода, реализующий поиск
63
пластины номерного знака. Метод FindLicensePlate осуществляет фильтрацию
изображения и контурный анализ. Результатом работы алгоритма является
текст номерного знака, распознанный при помощи библиотеки OCR Tesseract
и координаты прямоугольника, в котором расположен номерной знак.
Начало листинга 4. Метод, реализующий поиск пластины НЗ
private void FindLicensePlate(
VectorOfVectorOfPoint contours, int[,] hierachy, int idx, IInputArray gray, IInputArray
canny,
List<IInputOutputArray> licensePlateImagesList, List<IInputOutputArray>
filteredLicensePlateImagesList, List<RotatedRect> detectedLicensePlateRegionList,
List<String> licenses)
{
for (; idx >= 0; idx = hierachy[idx,0])
{
int numberOfChildren = GetNumberOfChildren(hierachy, idx);
if (numberOfChildren == 0) continue;
using (VectorOfPoint contour = contours[idx])
{
if (CvInvoke.ContourArea(contour) > 400)
{
if (numberOfChildren < 3)
{ FindLicensePlate(contours, hierachy, hierachy[idx, 2], gray, canny,
licensePlateImagesList,
filteredLicensePlateImagesList, detectedLicensePlateRegionList, licenses);
continue;
}
RotatedRect box = CvInvoke.MinAreaRect(contour);
if (box.Angle < -45.0)
{ float tmp = box.Size.Width;
box.Size.Width = box.Size.Height;
box.Size.Height = tmp;
box.Angle += 90.0f; }
else if (box.Angle > 45.0)
{ float tmp = box.Size.Width;
box.Size.Width = box.Size.Height;
box.Size.Height = tmp; box.Angle -= 90.0f;}
double whRatio = (double) box.Size.Width/box.Size.Height;
if (!(3.0 < whRatio && whRatio < 10.0))
Конец листинга 4
Рисунок 25 – Метод, реализующий поиск пластины НЗ
На рисунке 4.7.1 представлен пользовательский интерфейс основной
программы. В правой части окна расположены поля с распознаваемым
номером, и статусом доступа транспортного средства. В нижней правой части
окна
расположены
две
вкладки
«Данные
учётной
записи»
и
«Администрирование». Они содержат данные о транспортных средствах и
64
клиентах, имеющихся в базе и распознанных системой слежения.
Рисунок 26 – Интерфейс основной программы
В левой части расположен элемент управления из библиотеки EmguCV
ImageBox. Он отображает кадры, захватываемые видеоустройством.
Для администрирования доступа зарегистрированных в системе
транспортных средств в демонстрационной версии программы используются
данные представленные в таблице 2.
Таблица 2 – Структура данных о транспортных средствах
строка
строка
строка
строка
дата
число
Фамилия
Имя
Отчество
Номер транспортного средства
Дата до которой действительно разрешение
Режим доступа
Режим доступа может принимать значения от -1 до 1. Значение -1
означает что доступ запрещён, 0 что режим доступа осуществляется по дате, 1
что доступ осуществляется без каких-либо ограничений.
Так же для доступа экстренных служб имеется механизм открытия
доступа оперативным дежурным, участие которого в штатной работе не
обязательно. Этот механизм необходим для допуска экстренных служб и
действий в случае нештатных ситуаций.
65
4.7.2 Разработка интерфейса, тестирование приложения
На рисунке 27 изображён процесс работы приложения. В данном случае
распознан номер, и заполнена форма, а также, клиенту присвоен статус
доступа «разрешён». В данном случае выполняется сравнение текущей даты и
даты до которой действителен допуск данного транспортного средства.
На рисунке 28 приведён пример доступа транспортного средства в
режиме без ограничений, о чём говорит статус последнего элемента
управления формы.
Рисунок 27 – Работа приложения DV_Recog
Рисунок 28 – Работа приложения, доступа ебз ограничний.
66
Разработанное приложение способно обрабатывать номера различных
стандартов, в том числе и других стран. Данная особенность реализуется
благодаря
алгоритму
разработанное
обработки
приложение
считанной
универсальным.
информации,
Пример
и
делает
распознавания
иностранного номера приведён на рисунке 29. На данном изображении, также,
демонстрируется запрет на въезд транспортного средства.
Рисунок 29 – Распознавание зарубежного номера
Так же, в данной версии программного продукта прилогается
возможность администрирования учётных записей пользователей системы.
На рисунке 30 приведён пример редактирования учётной записи.
Рисунок 30 – Редактирование учётной записи
67
Все
диалоговые
окна
применяемые
приложением
являются
модальными, что позволяет сохранять целостность вводимых данных.
На рисунке 31 изображён процесс удаления учётной записи из списка.
Для этого используется так же модальное диалоговое окно, позволяющее
предотвартить случайное удаление элемента из списка. Подробнее алгоритмы
работы форм расписанны в приложении А.
Рисунок 31 – Процесс удаления элемента.
На данном этапе, в контакте решения прикладной задачи, были
достигнуты практические результаты, реализовав быстродействующий
алгоритм
способный
достоверно
распознать
регистрации транспортных средств.
68
знаки
государственной
5 Технико-экономическое обоснование
5.1 Экономическая сущность комплекса задач
Основным
преимуществом
автоматизации
является
сокращение
избыточности хранимых данных, а следовательно, экономия объема
используемой памяти, уменьшение затрат на многократные операции
обновления избыточных копий и устранение возможности возникновения
противоречий из-за хранения в разных местах сведений об одном и том же
объекте, увеличение степени достоверности информации и увеличение
скорости
обработки
информации;
излишнее
количество
внутренних
промежуточных документов, различных журналов, папок, заявок и т.д.,
повторное внесение одной и той же информации в различные промежуточные
документы. Также значительно сокращает время автоматический поиск
информации, который производится из специальных экранных форм, в
которых указываются параметры поиска объекта.
Под автоматизированной информационной системой понимается
система методов и способов сбора, накопления, хранения, поиска, обработки
и защиты управленческой информации на основе применения развитого
программного обеспечения, средств вычислительной техники и связи, а также
способов,
с
помощью
которых
эта
информация
предоставляется
пользователям.
Применение автоматизированных информационных систем позволило
представить в формализованном виде, пригодном для практического
использования,
концентрированное
выражение
научных
знаний
и
практического опыта для реализации и организации социальных процессов.
При этом предполагается экономия затрат труда, времени и других
материальных ресурсов, необходимых для осуществления этих процессов.
69
Поэтому автоматизированные системы играют важную стратегическую роль,
которая постоянно возрастает.
Это объясняется рядом свойств, присущих автоматизированным
информационным
системам,
которые:
позволяют
активизировать
и
эффективно использовать информационные ресурсы общества, что экономит
другие виды ресурсов; реализуют наиболее важные, интеллектуальные
функции социальных и экономических процессов; позволяют оптимизировать
и во многих случаях автоматизировать информационные процессы в период
становления информационного общества; обеспечивают информационное
взаимодействие
людей, что способствует распространению массовой
информации.
Информационные
системы
быстро
ассимилируются
культурой
общества, снимают многие социальные, бытовые и производственные
проблемы, расширяют внутренние и международные экономические и
культурные связи, влияют на миграцию населения по планете; занимают
центральное место в процессе интеллектуализации общества, в развитии
системы образования, культуры и новых (экранных) форм искусства,
популяризации шедевров мировой культуры и истории развития человечества;
играют ключевую роль в процессах получения, накопления, распространения
новых
знаний;
позволяют
реализовать
методы
информационного
моделирования глобальных процессов, что обеспечивает возможность
прогнозирования многих природных ситуаций в регионах повышенной
социальной и политической напряжённости, экологических катастроф,
крупных технологических аварий.
5.3 Целесообразность разработки с экономической точки зрения
Разработка
автоматизированной
информационной
системы
«DV_Recog» для ООО «ТРИАТРОН» позволит снизить трудоёмкость работ,
об этом упоминалось ранее (части 2-4), значительно сократит время
автоматический поиск информации, который производится из специальных
70
экранных форм, в которых указываются параметры поиска объекта.
В результате внедрения разработки, безусловно, повышается качество
принимаемых решений (система пропуска автомобилей).
Расчёт стоимости проектирования и разработки автоматизированной
информационной системы «DV_Recog» для ООО «ТРИАТРОН» выполним по
следующим статьям расходов:
материальные затраты;
затраты на оплаты труда работников, занятых разработкой
автоматизированной информационной системы «DV_Recog»;
отчисления на социальные нужды;
накладные расходы.
1) Расчёт материальных затрат приведён в таблице 3.
Таблица 3 – Расчёт материальных затрат
Наименование
материальных затрат
Ед.
изм.
Колво
Цена без НДС с учётом
комиссионных
вознаграждений,
таможенных пошлин и
транспортных затрат
CD-R
шт.
5
25
125
Бумага писчая, пачка 500 листов
шт.
1
250
250
Картридж для принтера
шт.
1
850
805
Ручка шариковая
шт.
3
15
45
Итого:
Сумма
(руб.)
1255
Исходя из данных, представленных в таблице 3.2, общая сумма
материальных затрат составит 1255 руб.
Рассмотрим затраты на оплату труда работников, непосредственно
занятых разработкой и внедрением информационной системы.
Оценка трудоёмкости разработки представлена в таблице 4.
Разработка выполнялась инженером-программистом, исходя из данных
таблицы 3.3, всего на разработку затрачено 240 часов (30 рабочих дней при
71
восьмичасовом рабочем дне).
Таблица 4 – Оценка трудоёмкости разработки
№
1
2
3
4
5
6
Наименование этапа
Анализ и изучение технического задания
Анализ библиографических источников
Проектирование информационной системы
Разработка информационной системы
Ввод в эксплуатацию и тестирование разработанной
информационной системы
Разработка инструкции и описания информационной
системы
Итого
Трудоёмкость этапа
(часы)
16
24
32
68
60
40
240
Месячный фонд времени работы инженера-программиста 166,25 часов,
среднемесячная заработная плата 15000 руб.
Основная заработная плата разработчика составила
Зосн
1500
∗ 8 ∗ 30
166,25
21834,14 руб.
Дополнительная заработная плата составляет 20% от основной
заработной платы:
Здоп=0,2*Зосн= 0,2*21654,14= 4330,83 руб.
Затраты на оплату труда:
ЗТР=Зосн +Здоп =21654,14+4330,83= 25984,97 руб.
Отчисления на социальные нужды.
а) отчисления в Пенсионный фонд (28% от затрат на оплату труда):
0,28*25984,97 =7275,79 руб.;
б) отчисления в ФСС (4% от затрат на оплату труда):
0,04*25984,97 =1039,40 руб.;
в) отчисления в Федеральный Фонд обязательного медицинского
страхования (0,2% от затрат на оплату труда):
0,002*25984,97 =51,97 руб.;
г) отчисления в Территориальный Фонд обязательного медицинского
страхования (3,4% от затрат на оплату труда):
72
0,034*25984,97 =883,49 руб.
Итого единый социальный налог составит 9250,65 руб.
Страховой взнос на обязательное социальное страхование от
несчастных случаев на производстве и профессиональных заболеваний (0,2%
от затрат на оплату труда):
0,002*25984,97 =51,97 руб.
Итого отчисления на социальные нужды 9302,62 руб.
Накладные расходы составляют 80% от затрат на оплату труда:
0,80*25984,97 = 20787,98 руб.
Данные по затратам на разработку и внедрение информационной
системы представлены в таблице 5.
Таблица 5 – Затраты на разработку и внедрение информационной
системы
№
Наименование статей затрат
Сумма (руб.)
1
Материальные затраты
1255,00
2
Затраты на оплату труда работников, непосредственно занятых
25984,97
созданием научно-технической продукции
3
Отчисления на социальные нужды
9302,62
4
Накладные расходы
20787,98
Итого:
57330,57
Исходя из данных, представленных в таблице 3.3, затраты на
проектирование и разработку информационной системы (К
пр
) составят
57330,57 руб.
Применительно к информационным системам капитальные затраты
можно рассчитать по формуле (5.3.1).
К = К пр + К тс + К лс + К пс + Кво + К пл + Кнеучт
где К
пр
(5.3.1)
– затраты на проектирование и разработку информационной
73
системы; К тс – затраты на технические средства управления; К лс – затраты на
создание линий связи локальных сетей; К
пс
– затраты на программные
средства; Кво – затраты на вспомогательное оборудование; К
пл
– затраты на
производственную площадь; Кнеучт – неучтенные затраты, обычно составляют
7-8% от общих затрат.
Произведем расчет капитальных затрат:
Ктс, Кпс, Кво, Кпл, Клс – данные показатели не будем учитывать в данном
случае, так как при внедрении информационной системы они не повлияют на
затраты. Система внедряется в отдел с уже имеющимися техническими
средствами и предустановленными программными средствами.
Итого получаем капитальных затрат:
К = 57330,57+4013,14= 61343,71 (руб.)
Эксплуатационные затраты (С)
Эксплуатационные затраты, в отличие от капитальных, являются
повторяющимися. Они повторяются в каждом цикле производства, а
рассчитываются суммарно за год. Эксплуатационные затраты рассчитываются
по формуле (5.3.2).
C = Сао + Сто + Син + Сэл + Спр
(5.3.9)
где Сао – амортизационные отчисления; Сто – затраты на техническое
обслуживание, включая заработную плату персонала; Син – затраты, связанные
с использованием глобальных вычислительных сетей (Интернета и др.); С эл –
затраты на электроэнергию; С пр – прочие затраты составляют примерно 7%.
Наибольший удельный вес в эксплуатационных затратах принадлежит
заработной
плате,
амортизационным
отчислениям,
техническому
обслуживанию.
Рассчитаем элементы эксплуатационных затрат:
Введение новой информационной системы не повлияет на следующие
затраты:
74
а) амортизационные отчисления (Сао) – их величина останется прежней,
так как не изменится парк оборудования;
б) затраты, связанные с использованием глобальных вычислительных
сетей (Син) – эти затраты будут неизменными;
Затраты на техническое обслуживание, включая заработную плату
персонала:
Зарплата инженера ИС (ЗПИ) рассчитывается по формуле (5.3.3):
ЗПИ = ОСj * Тмес * (1 + kД) * (1 + kУ)
(5.3.9)
где ОСj – оклад j-го сотрудника (1 человек, его оклад составляет 10000
руб.); Тмес – время, затрачиваемое сотрудником на обработку результатов, в
месяцах, рассчитывается по формуле (5.3.4).
Тмес=Тчас/(Чрд*Чрч)
(5.3.9)
где Тчас – время, затрачиваемое сотрудником на обработку результатов,
в часах (Тчас = 64 часа); Чрд – число рабочих дней в месяц, 22 дня; Чрч – число
рабочих часов в день, 8 часов; kД – коэффициент дополнительной зарплаты, kД
= 0; kУ – районный коэффициент, kУ=0.
Таким образом, Тмес=64/(22*8)=0,36.
Следовательно, ЗПИ = 10000 * 0,36 * (1 + 0) * (1 + 0) = 3600 (руб.).
Отчисления на социальные нужды:
а) в Пенсионный фонд: 0,28*3600 =1008 (руб.);
б) в Фонд Социального страхования: 0,04*3600 =144 (руб.);
в) в Федеральный Фонд ОМС: 0,002*3600 =7,27 (руб.);
г) в Территориальный Фонд ОМС: 0,034*3600 =122,4 (руб.).
Итого единый социальный налог составит 1281,67 руб.
Страховой взнос на обязательное социальное страхование от
75
несчастных случаев на производстве и профессиональных заболеваний:
0,002*3600 =7,27 руб.
Итого отчисления на социальные нужды 1288,94 руб./год
– Зарплата персонала (ЗПП) рассчитывается по формуле (3.3)
Один сотрудник, оклад которого составляет 12000 руб.;
Тчас = 528 часов; kД = 0; kУ = 0.
Таким образом,
Таким образом, Тмес=528/(22*8)=3.
Следовательно, ЗПИ = 12000 * 3 * (1 + 0) * (1 + 0) = 36000 (руб.).
Отчисления на социальные нужды:
а) в Пенсионный фонд: 0,28*36000 =10080 (руб.);
б) в Фонд Социального страхования: 0,04*36000 =1440 (руб.);
в) в Федеральный Фонд ОМС: 0,002*36000 =72 (руб.);
г) в Территориальный Фонд ОМС: 0,034*36000 =1224 (руб.).
Итого единый социальный налог составит 12816 руб.
Страховой взнос на обязательное социальное страхование от
несчастных случаев на производстве и профессиональных заболеваний:
0,002*36000 =72 руб.
Итого отчисления на социальные нужды 12888 руб./год
Сто = (3600+1288,94) + (36000+12888) = 53776,94 (руб./год).
Затраты на электроэнергию: Сэл = 1800 руб./год
С = 53776,94 + 1800 + 7%=55576,94 + 3890,39=59467,33 (руб./год).
Годовые приведенные затраты (П) рассчитываются по формуле (5.3.5):
П=С+К*Е
(5.3.5)
где С – эксплуатационные затраты, К – капитальные затраты, Е – норма
прибыли на капитал.
П= 59467,33 + 61343,71 * 8,5% = 64681,55 (руб.)
Рассмотрим расчет прямого экономического эффекта, он сводится к
76
следующему: определяется разность в годовых приведенных затратах по
базовому (П0) и предлагаемому (П1) вариантам информационной системы.
Расчет прямого экономического эффекта производится по формуле (5.3.6)
Эпрям = П0 – П1 = DСзп – ∑С – Е * К
(5.3.6)
где DСзп – сокращение заработной платы управленческого персонала
при внедрении информационной системы;
∑С – суммарные эксплуатационные затраты на информационную
систему за исключением заработной платы управленческого персонала.
Так как не предполагается понижать зарплату работникам или
увольнять их при внедрении информационной системы, то: DСзп =0
Следовательно:
Эпрям = 0 – 64681,55 = – 64681,5 руб.
Величина прямого экономического эффекта является недостаточной
(даже отрицательной) для оправдания затрат на внедрение информационной
системы. Это объясняется тем, что система создаётся с нуля и отсутствием
экономии на заработной плате управленческого персонала. В этом случае
внедрение целесообразно, только если есть уверенность в достаточно
большом косвенном экономическом эффекте [34].
Расчёт косвенного экономического эффекта производится по формуле
(5.3.7):
Экосв = ∆А+∆Ссеб+∆Ш
(5.3.7)
где ∆А – годовой прирост выручки от реализации продукции, прочей
реализации
или
внереализационной
деятельности,
связанной
с
информационной системой, которая напрямую не влияет на увеличение
выпуска продукции, она помогает сократить риски потерь документов и
77
время, затрачиваемое на обработку;
∆Ссеб – годовая экономия на себестоимости продукции объекта
управления;
∆Ш – сокращение штрафов и других непланируемых потерь за год.
Предположим, что общая сумма штрафов за год, вызванная потерей
документов по вине отдела, равна примерно 120 000 руб. (до разработки ИС).
Информационная система позволит снизить эти потери на 80% в год. Итого
∆Ш = 24 000 руб.
Годовая экономия на себестоимости продукции объекта управления
определяется по формуле (5.3.8).
(5.3.8)
∆Ссеб = 12*( ∆Ск + ∆Сзппр + ∆Спроч)
В структуре себестоимости общества основную долю занимают
материальные затраты – 38% и затраты на оплату труда с отчислениями – 36%.
Запланируем 3% сокращения затрат на оплату труда (∆Сзппр) за счёт отмены
некоторых функций и 20% сокращения затрат на канцелярию (∆Ск). Для
простоты
расчета
объединим
экономию
по
энергии,
содержанию
оборудования и потерям и запланируем 1% экономии (∆Спроч). Для проведения
расчетов необходима себестоимость работ, условно принимаем ею за 10 000
руб./мес., для удобства проведения расчетов.
Получаем:
∆Ск = 38% * 10000 – 20% = 3040 (руб./мес.)
∆Сзппр =36% * 10000 – 3% = 3492 (руб./мес.)
∆Спроч = 26%*10000 – 1% = 2574 (руб./мес.)
∆Ссеб = 12*(3040+3492+2574) = 109272 (руб./год. )
Далее рассчитаем косвенный экономический эффект:
Экосв = 0 + 109272 + 24000 = 133272 (руб.)
Как было отмечено, ∆Эгод — годовая экономия (прибыль), вызванная
информационной
системой,
без
учёта
78
эксплуатационных
затрат
на
информационную систему, будет определяться по формуле (5.3.9).
(5.3.9)
∆Эгод = Экосв + Эпрям
∆Эгод = 133272 – 64681,5 = 68590,5 (руб.)
Годовой экономический эффект представляет собой абсолютный
показатель эффективности, который рассчитывается по формуле (5.3.10).
(5.3.10)
Э = ∆Эгод – П
Э = 68590,5 –59467,33 = 9123,17 (руб.)
Система
считается
эффективной,
в
случае
если
Э>0.
Вспомогательными показателями экономической эффективности являются:
– Расчетная прибыльность (рентабельность), рассчитывается по
формуле (5.3.11)
Р= ∆Эгод/К
(5.3.11)
Р = 68590,5 / 61343,71 = 1,12
– Срок окупаемости, рассчитывается по формуле (5.3.12)
Т ок=1/Р
(5.3.12)
Т ок= 61343,71 / 68590,5 =0,89
Разработка
и
внедрение
автоматизированной
информационной
системы «DV_Recog» производится в течение 1 месяца, в одну смену
продолжительностью 8 часов. После внедрения данной информационной
системы сократятся затраты по материальным расходам на 20% (т.к. исчезает
необходимость содержать сотрудника предприятия). Это приведёт к
79
снижению условной общей себестоимости работ отдела, данная экономия
позволит окупить создание и внедрение информационной системы.
Предполагаемое время окупаемости проекта составляет девять месяцев.
80
ЗАКЛЮЧЕНИЕ
В диссертационной работе решена задача разработки моделей и
методов анализа и распознавания структурированных символов на примере
номерных
знаков
транспортных
средств.
В
процессе
выполнения
магистерской диссертации были выполнены следующие задачи:
Изучена деятельность ООО «ТРИАТРОН» и выполнен анализ его
деятельности с использованием программного продукта CA AllFusion Process
Modeler r7, в результате чего определена задача, которую необходимо решить.
Выполнено
обоснование
решений
по
техническому,
программному,
информационному обеспечению, обоснован выбор средств проектирования
системы.
Приведено
обоснование
экономической
эффективности
использования разработанной системы и выполнен SWOT-анализ разработки.
В процессе работы над магистерской диссертацией была создана
автоматизированная информационная система, позволяющая работать с
динамической информацией. Кроме того, был проведён анализ существующих
технологий, применяемых в данной организации, выявлены недостатки и
достоинства, описанные в рамках диссертации.
Данная информационная система была апробирована и внедрена на
предприятии (акт о внедрении прилагается)
В ходе выполнения диссертационной работы были получены
следующие результаты:
проведён
сравнительный
анализ
существующих
методов
распознавания динамической информации и выявлены их недостатки. Как
правило, алгоритмы, разработанные на основе этих методов требовательны к
аппаратным вычислительным ресурсам, что затрудняет применение их в таких
типах объектов, где скорость проезда транспортных средств невысока;
проведено
исследование
стандартов
номерных
знаков
транспортных средств РФ и нанесения на них буквенно-цифровых символов
для решения проблем кластеризации и классификации символов;
81
разработаны
алгоритмы
распознавания
структурированных
символов на основе методов контурного анализа и метода простых шаблонов
с предложенными преобразованиями.
проведено тестирование разработанных алгоритмов локализации
НЗ на влияние различных условий освещённости и импульсного шума;
разработана
автоматизированная
информационная
система
распознавания номерных знаков ТС с использованием предложенных
алгоритмов.
Практическая значимость выполнения магистерской диссертации
заключается в необходимости изучения дополнительных материалов и
закрепления знаний по данной теме, а также навыков проведения анализа
автоматизированной
информационной
системы
эффективности деятельности предприятия.
82
с
целью
повышения
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1
Федеральный
закон
«Об
обществах
с
ограниченной
ответственностью» (ОБ ООО) от 08.02.1998 № 14-ФЗ
2
ГОСТ 34.601-90 «Автоматизированные системы. Стадии создания»
3
ГОСТ
34.602-89
«Техническое
задание
на
создание
автоматизированной системы».
4
ГОСТ 34.603-92 «Виды испытаний автоматизированных систем»
5
ГОСТ Р ИСО/МЭК ТО 12182-2002 Классификация программных
средств.
6
ГОСТ Р ИСО/МЭК 15910-2002 Процесс создания документации
пользователя ПС.
7
ГОСТ P ИСО/МЭК 12207-99 «Процессы жизненного цикла ПС».
8
ГОСТ P ИСО/МЭК 14764 – 2002 «Сопровождение ПС».
9
ГОСТ P ИСО/МЭК 15271 – 2002 «Руководство по применению
ГОСТ P ИСО/МЭК 12207 – 99 (процессы ЖЦПС)».
10 ГОСТ P ИСО/МЭК 12119-2000 «Пакеты программ. Требования к
качеству и тестированию».
11 Федеральный закон «О патентных поверенных» от 30.12.2008 №
316-ФЗ
12 ГОСТ 7.32-2001 «Отчет о научно-исследовательской работе.
Структура и правила оформления».
13 Афанасенко,
А.В.
Обзор
методов
распознавания
структурированных символов [Текст] // А.В. Афонасенко, А.И. Елизаров //
Доклады Томского государственного университета систем управления и
радиоэлектроники. - Вып. 2(18). -Ч.1. 2017. - С.83-88.
14 Ахметов, Б.С., Иванов, А.И., Фунтиков, В.А., Безяев, А.В.,
Малыгина, Е.А. Технология использования больших нейронных сетей для
83
преобразования нечётких биометрических данных в код ключа доступа:
монография. – Алматы: ТОО «Издательство LEM», 2014 – 144 с.
15 Благодатских, В.А. Стандартизация разработки программных
средств: Учебное пособие / Под ред. О. С. Разумова. — М.: Финансы и
статистика, 2014. – 210с.
16 Бондаренко, А.В., Галактионов, В.А., Горемычкин, В.И., Ермаков,
А.В., Желтов, С.Ю. Исследование подходов к построению систем
автоматического считывания символьной информации – М.: ИПМ им.
М.В.Келдыша РАН, 2017.- 18 с.
17 Вендров,
экономических
А.М.
Проектирование
информационных
программного
систем:
Учебник
обеспечения
для
студентов
экономических вузов, обучающихся по спец. «Прикладная информатика (по
областям)» и «Прикладная математика и информатика».-М.:Финансы и
статистика, 2015.-544 с.
18 Воронцов, К.В. Алгоритмы кластеризации и многомерного
шкалирования. Курс лекций. МГУ, 2017.-18 с.
19 Воскресенский,
Е.М.
Моделирование
и
адаптация
систем
распознавания текстовых меток на видеоизображениях: монография / Е.М.
Воскресенский, В.А.Царев. – Череповец: ИНЖЭКОН-Череповец, 2016. -512 с.
20 Гагарина, Л.Г., Киселев Д.В., Федотова, Е.Л. Разработка и
эксплуатация автоматизированных информационных систем [Текст]. – М.:
ИНФРА-М, 2016. – 384с.
21 Дурденко,
А.В,
Ильичев,
М.А.
Моделирование
систем
распознавания образов на основе процессного подхода // Вестник ВГУ,
СЕРИЯ: Системный анализ и информационные технологии. .№2. 2016.- С.5-9.
22 Елизаров, А.И. Методика построения систем распознавания
автомобильного номера [Текст]// А.И.Елизаров, А.В.Афанасенко // Известия
Томского политехнического университета. - Т.309. - №8, 2016. - С.118-122.
23 Ерош, И.Л.Обработка и распознавание изображений в системах
превентивной безопасности: Учеб. пособие/ СПбГУАП. СПб., 2015.- 154 с.
84
24 Журавлев,
Ю.И.
Распознавание.
Математические
методы.
Программная система. Практические применения [Текст] // Ю.И. Журавлев,
В.В. Рязанов, О.В. Сенько. - М.: ФАЗИС, 2016. - 176 с.
25 Зиндер, Е.З. Бизнес-реинжиниринг и технологии системного
проектирования. [Текст]: Учебное пособие. / Е. З. Зиндер.- М., Центр
Информационных Технологий, 2015г.- 346с.
26 Иванов,
Ю.С.
Применение
модифицированного
алгоритма
ViolaJones к задаче обнаружения лица человека в видеопотоке / Ю.С. Иванов
// Актуальные проблемы математики, физики, информатики в вузе и школе:
Международная научно-техническая конференция, 2016 г. – Комсомольск-наАмуре: Изд-во АМГПГУ-2016.-С.52-61.
27 Когаловский, М. Р. Технология баз данных на персональных ЭВМ.
[Текст]: учебное пособие. / М. Р. Когаловский. - М.:Финансы и статистика,
2016 г.- 123 с.
28 Круглов, В.В. Нечеткая логика и искусственные нейронные сети /
В.В. Круглов, М.И. Дли, Р.Ю. Голунов — М.: Физ-матлит, 2015. - 224 с.
29 Мирошникова, И.Д. Кластерный анализ. –М.: Финансы и
статистика. 2016.-176 с.
30 Муромцев,
В.В.
Проектирование
информационных
систем:
Учебное пособие для студентов вузов заочной формы обучения по спец.
«Прикладная информатика в экономике».-Белгород:БелГУ,2007.-160 с.
31 Новикова, Н.М. Структурное распознавание образов [Текст]:
Учебно- методическое пособие для вузов. - Воронеж: Изд-во ВГУ, 2015. - 30
с.
32 Пласкова, Н.С. Стратегический и текущий экономический анализ
[Текст]: учебник/Пласкова Н.С. – 2-е изд., перераб. и доп. – М.: Эксмо, 2016 –
640 с.
33 Пытьев, Ю.П., Чуличков, А.И. Морфологический и нечеткий анализ
изображений групп точечных объектов [Текст] // в сб. Математические методы
распознавания образов. Звенигород, 2014.-336 с.
85
34 Рахманкулов, В.З. Алгоритм распознавания объемных образов на
базе модифицированного метода максимальной клики / В.З. Рахманкулов //
Сб. науч. тр. / Институт системного анализа РАН. - 2015. - С. 23 - 26.
35 Романов,
А.
А.
Эффективность
непараметрических
классификаторов в условиях лимитированной обучающей выборки. Journal of
Siberian Federal University. Engineering & Technologies 5, 2016.-РР. 495-506
36 Силантьев, Н.Б. CASE-средства ERWin. – М.: Финансы и
статистика, 2014. – 215с.
37 Тлебалдинова, А.С. Выделение объектов интереса в видеопотоке на
основе вероятностных моделей [Текст] // Вестник государственного
университета имени Шакарима города Семей, №2(66), 2014.- С.67-69.
38 Тропченко, А.Ю. Методы вторичной обработки и распознавания
изображений. Учебное пособие. СПб: СПбГУ ИТМО, 2015. -512 с.
39 Федоров, Н.В. Проектирование информационных систем на основе
современных CASE-технологий. [Текст]: учебное пособие. / Н. В. Федоров.МГИУ, 2015 г.-128с.
40 Федорова, Е.Н. Теоретические основы программирования. [Текст]:
учебное пособие. / Е.Н. Федорова.- МГИУ, 2016 г.-214с.
41 Форсайт, Д., Понс, Ж. Компьютерное зрение. Современный подход.
– М.: Издательский дом «Вильямс», 2014.-928 с.
42 Фу, К. Структурные методы в распознавании образов / К.Фу; под
ред. М.А. Азейрмана; пер. с англ. Н.В. Завалишина, С.В. Петрова, Р.Л.
Шейнина. - М.: Мир, 2016. - 320с.
43 Андреев, С.В. Алгоритмическое обеспечение прототипа устройства
считывания паспортов и виз / С.В. Андреев, А.В. Бондаренко, В.И.
Горемычкин, А.В. Ермаков, С.Ю. Желтов. [Электронный ресурс]: [научная
электронная
библиотека
ИПМ
РАН].
http://www.keldysh.ru/papers/2003/prep46/prepr2003_46.html.
86
URL:
44 Гайфуллин, Б.В. Стратегия развития продуктов линейки AllFusion
Modeling Suite от компании СА [Электронный ресурс] - Режим доступа:
http://www.interface.ru/home.asp?artId=3676
45 Гражданский кодекс Российской Федерации (часть первая)
[Электронный ресурс]: федер. закон от от 30.11.1994г. (ред. от 27.12.2009 г.)
№ 51-ФЗ // Информационно-правовой портал «Гарант». - Режим доступа:
http://www.garant.ru/
46 Котов, А.Н. Кластеризация данных [Электрон. ресурс] – 2016. –
URL:http://logic.pdmi.ras.ru/~yura/internet/02ia-seminarnote.pdf
47 Нигматулин, Г.Т. Программный комплекс «Сводная отчетность»
[Электронный
ресурс]
Информационные
/
Г.
системы.
Т.
-
Нигматулин
Режим
//
НПО
доступа
:
Компьютер:
http://www.npo-
comp.ru/1517366.aspx.
48 Прокофьева, П.А., Якименко, Ю.И. Анализ существующих
алгоритмов обработки изображений в системы технического зрения //
Математическая морфология. Электронный математический и медикобиологический
журнал.
-
Т.
13.
-
Вып.
1.
-
2014.
-
URL:
http://www.smolensk.ru/user/sgma/MMORPH/TITL.HTM
49 Российская государственная библиотека [Электронный ресурс] /
Центр информ. технологий РГБ ; ред. Власенко Т.В. ; Web-мастер Козлова
Н.В. - Электрон. дан. - М. : Рос. гос. б-ка, 2017- . - Режим доступа:
http://www.rsl.ru, свободный. - Загл. с экрана. - Яз. рус., англ.
50 Федяев, О.И., Пауков, Д.П. Нейронные сети: прогнозирование как
задача
распознавания
образов
URL:http://masters.donntu.org/2003/
fvti/paukov/library/neurow.htm
51 Шепелев А.И. Применение средств машинного зрения в системе
идентификации маркировки и номерных знаков / А.И. Шепелев, П.В.
Черкашин, О.Г. Худасова [и др.] // Наука, образование, общество: тенденции
и перспективы развития : материалы IX Междунар. науч.-практ. конф.
87
(Чебоксары, 12 февр. 2018 г.) / редкол.: О.Н. Широков [и др.] – 2018. –
Чебоксары: ЦНС «Интерактив плюс», 2018.
52
Шепелев А.И. Проектирование системы распознавания номерных
знаков государственной регистрации транспортных средств. Систематизация
образов номерных знаков, применяемых в Российской Федерации / А.И.
Шепелев, П.В. Черкашин, О.Г. Худасова [и др.] // Наука, образование,
общество: тенденции и перспективы развития : материалы IX Междунар.
науч.-практ. конф. (Чебоксары, 12 февр. 2018 г.) / редкол.: О.Н. Широков [и
др.] – 2018. – Чебоксары: ЦНС «Интерактив плюс», 2018.
88
ПРИЛОЖЕНИЕ А
Структура объекта s_data
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DV_Recog_01
{
public struct s_data
{
public string Name { get; set; }
public string Surname { get; set; }
public string Patronymic {get; set; }
public string lp_no { get; set; }
public DateTime date_valid { get; set; }
public int access_mode { get; set; }
public bool is_here { get; set; }
public s_data(string Surname, string Name, string Patronymic, string lp_no, DateTime dv,
int am=0, bool is_here = false)
{
this.Surname = Surname;
this.Name = Name;
this.Patronymic = Patronymic;
this.lp_no = lp_no;
this.date_valid = dv;
access_mode = am;
this.is_here = is_here;
}
}
public class DataSet
{
public List<s_data> data_val;
public DataSet()
{
data_val = new List<s_data>();
}
public int find(string lp_no)
{
for (int i = 0; i < data_val.Count; ++i)
if (data_val[i].lp_no == lp_no)
return i;
return -1;
}
}
89
}
Структура модуля LicensePlateRecognition из библиотеки EmguCV
//---------------------------------------------------------------------------// Copyright (C) 2004-2016 by EMGU Corporation. All rights reserved.
//---------------------------------------------------------------------------using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Text;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.OCR;
using Emgu.CV.Structure;
using Emgu.CV.Util;
using Emgu.Util;
namespace LicensePlateRecognition
{
/// <summary>
/// A simple license plate detector
/// </summary>
public class LicensePlateDetector : DisposableObject
{
/// <summary>
/// The OCR engine
/// </summary>
private Tesseract _ocr;
/// <summary>
/// Create a license plate detector
/// </summary>
/// <param name="dataPath">
/// The datapath must be the name of the parent directory of tessdata and
/// must end in / . Any name after the last / will be stripped.
/// </param>
public LicensePlateDetector(String dataPath)
{
//create OCR engine
_ocr = new Tesseract("", "eng", OcrEngineMode.TesseractCubeCombined);
//_ocr.SetVariable("tessedit_char_whitelist",
"ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890");
_ocr.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
_ocr.SetVariable("tessedit_char_blacklist", "\\|/?.`,{}[]^:$;@\"()<>*&%#~!+=_");
}
/// <summary>
/// Detect license plate from the given image
/// </summary>
90
/// <param name="img">The image to search license plate from</param>
/// <param name="licensePlateImagesList">A list of images where the detected license plate
regions are stored</param>
/// <param name="filteredLicensePlateImagesList">A list of images where the detected
license plate regions (with noise removed) are stored</param>
/// <param name="detectedLicensePlateRegionList">A list where the regions of license plate
(defined by an MCvBox2D) are stored</param>
/// <returns>The list of words for each license plate</returns>
public List<String> DetectLicensePlate(
IInputArray img,
List<IInputOutputArray> licensePlateImagesList,
List<IInputOutputArray> filteredLicensePlateImagesList,
List<RotatedRect> detectedLicensePlateRegionList)
{
List<String> licenses = new List<String>();
using (Mat gray = new Mat())
using (Mat canny = new Mat())
using (VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint())
{
CvInvoke.CvtColor(img, gray, ColorConversion.Bgr2Gray);
CvInvoke.Canny(gray, canny, 100, 50, 3, false);
int[,] hierachy = CvInvoke.FindContourTree(canny, contours,
ChainApproxMethod.ChainApproxSimple);
if(hierachy.Length!=0)
FindLicensePlate(contours, hierachy, 0, gray, canny, licensePlateImagesList,
filteredLicensePlateImagesList, detectedLicensePlateRegionList, licenses);
}
return licenses;
}
private static int GetNumberOfChildren(int[,] hierachy, int idx)
{
//first child
idx = hierachy[idx,2];
if (idx < 0)
return 0;
int count = 1;
while (hierachy[idx,0] > 0)
{
count++;
idx = hierachy[idx,0];
}
return count;
}
private void FindLicensePlate(
VectorOfVectorOfPoint contours, int[,] hierachy, int idx, IInputArray gray, IInputArray
canny,
List<IInputOutputArray> licensePlateImagesList, List<IInputOutputArray>
filteredLicensePlateImagesList, List<RotatedRect> detectedLicensePlateRegionList,
List<String> licenses)
91
{
for (; idx >= 0; idx = hierachy[idx,0])
{
int numberOfChildren = GetNumberOfChildren(hierachy, idx);
//if it does not contains any children (charactor), it is not a license plate region
if (numberOfChildren == 0) continue;
using (VectorOfPoint contour = contours[idx])
{
if (CvInvoke.ContourArea(contour) > 400)
{
if (numberOfChildren < 3)
{
//If the contour has less than 3 children, it is not a license plate (assuming license
plate has at least 3 charactor)
//However we should search the children of this contour to see if any of them is a
license plate
FindLicensePlate(contours, hierachy, hierachy[idx, 2], gray, canny,
licensePlateImagesList,
filteredLicensePlateImagesList, detectedLicensePlateRegionList, licenses);
continue;
}
RotatedRect box = CvInvoke.MinAreaRect(contour);
if (box.Angle < -45.0)
{
float tmp = box.Size.Width;
box.Size.Width = box.Size.Height;
box.Size.Height = tmp;
box.Angle += 90.0f;
}
else if (box.Angle > 45.0)
{
float tmp = box.Size.Width;
box.Size.Width = box.Size.Height;
box.Size.Height = tmp;
box.Angle -= 90.0f;
}
double whRatio = (double) box.Size.Width/box.Size.Height;
if (!(3.0 < whRatio && whRatio < 10.0))
//if (!(1.0 < whRatio && whRatio < 2.0))
{
//if the width height ratio is not in the specific range,it is not a license plate
//However we should search the children of this contour to see if any of them is a
license plate
//Contour<Point> child = contours.VNext;
if (hierachy[idx, 2] > 0)
FindLicensePlate(contours, hierachy, hierachy[idx, 2], gray, canny,
licensePlateImagesList,
filteredLicensePlateImagesList, detectedLicensePlateRegionList, licenses);
continue;
92
}
using (UMat tmp1 = new UMat())
using (UMat tmp2 = new UMat())
{
PointF[] srcCorners = box.GetVertices();
PointF[] destCorners = new PointF[] {
new PointF(0, box.Size.Height - 1),
new PointF(0, 0),
new PointF(box.Size.Width - 1, 0),
new PointF(box.Size.Width - 1, box.Size.Height - 1)};
using (Mat rot = CvInvoke.GetAffineTransform(srcCorners, destCorners))
{
CvInvoke.WarpAffine(gray, tmp1, rot, Size.Round(box.Size));
}
//resize the license plate such that the front is ~ 10-12. This size of front results in
better accuracy from tesseract
Size approxSize = new Size(240, 180);
double scale = Math.Min(approxSize.Width/box.Size.Width,
approxSize.Height/box.Size.Height);
Size newSize = new Size( (int)Math.Round(box.Size.Width*scale),(int)
Math.Round(box.Size.Height*scale));
CvInvoke.Resize(tmp1, tmp2, newSize, 0, 0, Inter.Cubic);
//removes some pixels from the edge
int edgePixelSize = 2;
Rectangle newRoi = new Rectangle(new Point(edgePixelSize, edgePixelSize),
tmp2.Size - new Size(2*edgePixelSize, 2*edgePixelSize));
UMat plate = new UMat(tmp2, newRoi);
UMat filteredPlate = FilterPlate(plate);
Tesseract.Character[] words;
StringBuilder strBuilder = new StringBuilder();
using (UMat tmp = filteredPlate.Clone())
{
_ocr.Recognize(tmp);
words = _ocr.GetCharacters();
if (words.Length == 0) continue;
for (int i = 0; i < words.Length; i++)
{
strBuilder.Append(words[i].Text);
}
}
licenses.Add(strBuilder.ToString());
licensePlateImagesList.Add(plate);
93
filteredLicensePlateImagesList.Add(filteredPlate);
detectedLicensePlateRegionList.Add(box);
}
}
}
}
}
/// <summary>
/// Filter the license plate to remove noise
/// </summary>
/// <param name="plate">The license plate image</param>
/// <returns>License plate image without the noise</returns>
private static UMat FilterPlate(UMat plate)
{
UMat thresh = new UMat();
CvInvoke.Threshold(plate, thresh, 120, 255, ThresholdType.BinaryInv);
//Image<Gray, Byte> thresh = plate.ThresholdBinaryInv(new Gray(120), new Gray(255));
Size plateSize = plate.Size;
using (Mat plateMask = new Mat(plateSize.Height, plateSize.Width, DepthType.Cv8U, 1))
using (Mat plateCanny = new Mat())
using (VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint())
{
plateMask.SetTo(new MCvScalar(255.0));
CvInvoke.Canny(plate, plateCanny, 100, 50);
CvInvoke.FindContours(plateCanny, contours, null, RetrType.External,
ChainApproxMethod.ChainApproxSimple);
int count = contours.Size;
for (int i = 1; i < count; i++)
{
using (VectorOfPoint contour = contours[i])
{
Rectangle rect = CvInvoke.BoundingRectangle(contour);
if (rect.Height > (plateSize.Height >> 1))
{
rect.X -= 1; rect.Y -= 1; rect.Width += 2; rect.Height += 2;
Rectangle roi = new Rectangle(Point.Empty, plate.Size);
rect.Intersect(roi);
CvInvoke.Rectangle(plateMask, rect, new MCvScalar(), -1);
//plateMask.Draw(rect, new Gray(0.0), -1);
}
}
}
thresh.SetTo(new MCvScalar(), plateMask);
}
94
CvInvoke.Erode(thresh, thresh, null, new Point(-1, -1), 1, BorderType.Constant,
CvInvoke.MorphologyDefaultBorderValue);
CvInvoke.Dilate(thresh, thresh, null, new Point(-1, -1), 1, BorderType.Constant,
CvInvoke.MorphologyDefaultBorderValue);
return thresh;
}
protected override void DisposeObject()
{
_ocr.Dispose();
}
}
}
Структура основного компонента DV_Recog
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.Util;
using LicensePlateRecognition;
using Emgu.CV.Util;
using System.Text.RegularExpressions;
namespace DV_Recog_01
{
public partial class DV_Recog : Form
{
private VideoCapture _capture = null;
private bool _captureInProgress;
private Mat _frame;
private LicensePlateDetector _licensePlateDetector;
private UMat um;
private Worker worker;
private DataSet data;
public DV_Recog()
{
InitializeComponent();
worker = new Worker();
CvInvoke.UseOpenCL = false;
_licensePlateDetector = new LicensePlateDetector("");
data = new DataSet();
95
try
{
_capture = new VideoCapture();
_capture.ImageGrabbed += ProcessFrame;
}
catch (NullReferenceException excpt)
{
MessageBox.Show(excpt.Message);
}
_frame = new Mat();
renew_client_list();
}
private void ProcessFrame(object sender, EventArgs arg)
{
if (_capture != null && _capture.Ptr != IntPtr.Zero)
{
_capture.Retrieve(_frame, 0);
//
um = _frame.GetUMat(AccessType.ReadWrite);
// _capture.Pause();
int r = ProcessImage(um);
capture_ImageBox.Image = um;
if (-1 < r)
{
{
_capture.Pause();
fill_form(data.data_val[r]);
System.Threading.Thread.Sleep(3000);
r = 0;
_capture.Start();
clear_form();
}
}
}
}
private void fill_form(s_data data)
{
Detected_no.Invoke(new Action(() => Detected_no.Text = data.lp_no));
name_textBox.Invoke(new Action(() => name_textBox.Text = data.Name));
surname_textBox.Invoke(new Action(() => surname_textBox.Text = data.Surname));
Patronymic_textBox.Invoke(new Action(() => Patronymic_textBox.Text =
data.Patronymic));
Date_textBox.Invoke(new Action(() => Date_textBox.Text =
data.date_valid.ToShortDateString()));
accesmode_listBox.Invoke(new
Action(()=>accesmode_listBox.SetSelected(data.access_mode+1,true)));
if (-1 == data.access_mode || data.is_here)
no_label.Invoke(new Action(() => no_label.Visible = true));
else if (1 == data.access_mode )
96
yes_label.Invoke(new Action(() => yes_label.Visible = true));
else
{
DateTime d = DateTime.Today;
if(d<=data.date_valid)
yes_label.Invoke(new Action(() => yes_label.Visible = true));
else
no_label.Invoke(new Action(() => no_label.Visible = true));
}
}
private void clear_form()
{
Detected_no.Invoke(new Action(() => Detected_no.Text = ""));
name_textBox.Invoke(new Action(() => name_textBox.Text = ""));
surname_textBox.Invoke(new Action(() => surname_textBox.Text = ""));
Patronymic_textBox.Invoke(new Action(() => Patronymic_textBox.Text = ""));
Date_textBox.Invoke(new Action(() => Date_textBox.Text = ""));
no_label.Invoke(new Action(() => no_label.Visible = false));
yes_label.Invoke(new Action(() => yes_label.Visible = false));
}
private void captureButton_Click(object sender, EventArgs e)
{
if (_capture != null)
{
if (_captureInProgress)
{ //stop the capture
captureButton.Text = "Начать захват";
_capture.Pause();
}
else
{
//start the capture
captureButton.Text = "Приостановить захват";
_capture.Start();
}
_captureInProgress = !_captureInProgress;
}
}
private void ReleaseData()
{
if (_capture != null)
_capture.Dispose();
}
private void renew_client_list()
{
clients_listBox.Items.Clear();
for (int i = 0; i < data.data_val.Count; ++i)
97
clients_listBox.Items.Add(data.data_val[i].Surname + "|" + data.data_val[i].lp_no);
}
private int ProcessImage(IInputOutputArray image)
{
List<IInputOutputArray> licensePlateImagesList = new List<IInputOutputArray>();
List<IInputOutputArray> filteredLicensePlateImagesList = new
List<IInputOutputArray>();
List<RotatedRect> licenseBoxList = new List<RotatedRect>();
List<string> words = _licensePlateDetector.DetectLicensePlate(
image,
licensePlateImagesList,
filteredLicensePlateImagesList,
licenseBoxList);
if(0<words.Count)
for (int i = 0; i < words.Count; ++i)
{
String res = words[i];
string pattern_clear = @"[ \\|/?.`,{}\[\]^:$;@""()<>*&%#~!+=_-]";
res = Regex.Replace(res, pattern_clear, "");
string pattern_match = @"[a-zA-Z0-9]{6}";
Match m = Regex.Match(res, pattern_match);
if (m.Value != "")
{
int d = data.find(m.Value);
if (-1 < d)
{
Mat dest = new Mat();
CvInvoke.VConcat(licensePlateImagesList[0],
filteredLicensePlateImagesList[0], dest);
PointF[] verticesF = licenseBoxList[0].GetVertices();
Point[] vertices = Array.ConvertAll(verticesF, Point.Round);
using (VectorOfPoint pts = new VectorOfPoint(vertices))
CvInvoke.Polylines(image, pts, true, new Bgr(Color.Red).MCvScalar, 2);
return d;
}
}
}
return -1;
}
private void add_button_Click(object sender, EventArgs e)
{
Form2 F = new Form2();
DialogResult res = F.ShowDialog();
F.Dispose();
}
private void edit_button_Click(object sender, EventArgs e)
{
int sel = clients_listBox.SelectedIndex;
98
Form2 F = new Form2(data.data_val[clients_listBox.SelectedIndex]);
F.ShowDialog();
}
private void del_button_Click(object sender, EventArgs e)
{
int selected = clients_listBox.SelectedIndex;
if (0 <= selected)
{
DialogResult res = MessageBox.Show("удалить клиента
"+data.data_val[selected].Name+"|"+data.data_val[selected].lp_no,"подтверждение
действий",MessageBoxButtons.YesNo,MessageBoxIcon.Warning,MessageBoxDefaultButton.B
utton2);
if (DialogResult.Yes == res)
{
data.data_val.Remove(data.data_val[selected]);
renew_client_list();
}
}
}
}
public class Worker
{
public string d_no { get; set; }
public Worker()
{
d_no = "";
}
}
}
99
Обозначение
Наименование
Дополнитель
ные
сведения
Текстовые документы
1. 11070026.09.04.02.573.ПЗМД
Пояснительная записка
101 с.
Графические документы
2. 11070026.09.04.02.573.ДММД
Демонстрационные материалы (презентация)
19 сл.
Демонстрационные материалы (пл. ф. А4)
19 лист.*5 экз
Другие документы
3.
Документы на компакт-диске
1 CD
11070026.09.04.02.573.ПЗМД
Изм. Лист. Номер докум.
Разработал Шепелев А.И.
Проверил
Гахов Р.П.
Н.контр.
Нестерова Е.В.
Утвердил
Гахов Р.П.
Подп.
Дата
Тема МД Исследование систем
Лит.
Лист Листов
технического зрения для обработки У
100
101
динамической информации
НИУ «БелГУ»
Ведомость МД
гр.07001573
100
Магистерская
диссертация
выполнена
мной
совершенно
самостоятельно. Все использованные в работе материалы и концепции из
опубликованной научной литературы и других источников имеют ссылки на
них.
«21» января 2018 г.
__________________________
Шепелев А.И.
101
Отзывы:
Авторизуйтесь, чтобы оставить отзыв