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

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

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

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

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

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

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

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

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

В России существует много систем учета и распознавания номеров вагонов и цистерн. Самые известные из них: система распознавания номеров вагонов «ARSCIS» от ООО «Малленом», программный комплекс DAVIS с модулем распознавания номеров ЖД вагонов от ОВ-СОФТ, модуль MegaTrain распознавания ж/д номеров от ООО «Мегапиксел», система оптического считывания номеров вагонов и цистерн RailwayDisp от компании Intlab, программно-аппаратный комплекс «Транзит-Инспектор» от компании «Интеллектуальные Системы Безопасности» (ISS), Эшелон-КОНТРОЛЬ - система взвешивания ж/д вагонов и распознавания их номеров от НПО «Дискрет» и Кодос-Авто от компании «Кодос», изначально работавшая с автомобильными номерами, включает в себя также поддержку распознавания номеров железнодорожных вагонов.

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

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

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

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

Данная работа представляет собой развитие системы распознавания автомобильных номеров [1, 2]. Задача поиска и распознавания железнодорожных номеров походит на поиск и распознавание автомобильных номеров, но в процессе проведения работ были выявлены важные отличия.

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

Во-первых, на номерах вагонов расположен всего лишь номер одного типа, который состоит из восьми цифр. Первая цифра характеризует род подвижного состава: 0 - пассажирские вагоны; 1 - локомотивы, путевые машины, краны и прочие; 2 - крытые грузовые вагоны; 3 - транспортеры, шестиосные вагоны, четырехосные хопперы-дозаторы и думпкары; 4 - платформы; 5 - вагоны, находящиеся в собственности предприятий; 6 - полувагоны; 7 - цистерны; 8 - изотермические вагоны; 9 - прочие четырехосные вагоны. Вторая цифра номера характеризует осность и основные характеристики вагона. Третья, четвертая, пятая и шестая цифры номера у всех вагонов, кроме транспортеров, характеристик не содержит. Седьмая цифра, кроме транспортеров, кодирует наличие или отсутствие переходной площадки. Восьмая цифра - это контрольная цифра номера, с её помощью проверяют правильность передачи и записи номера в документах. Для расчета контрольной цифры, берут первые 7 цифр номера, каждую нечётную цифру номера умножают на 2, а четную на 1, складывают полученные цифры (а не числа), полученное число округляют до ближайшего десятка, дополняющее до ближайшего десятка число и есть контрольная цифра номера. Подобный метод расчета было решено использовать при сверке опознанных номеров, что позволяет сигнализировать оператору системы о том, что номер распознан неверно, либо в нумерации вагона ошибка.

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

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

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

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

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

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

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

Постановка задачи и описание алгоритма

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

Рис. 1. Рабочее окно работы программы

- локализация областей номерных знаков;

- фильтрация (удаление помех) с области номерного знака;

- сегментация номерного знака на отдельные символы;

- распознавание символов номерного знака.

На рис. 1 показана работа программной реализации этой задачи.

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

Рис. 2. Изображение, на котором находится ж/д вагон

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

Локализация области номерного знака

В работах [1, 2] для локализации применяется метод поиска по шаблону, но он требует значительных временных затрат (от 5 до 60 секунд на один кадр). Поэтому для локализации областей номеров железнодорожных вагонов был разработан следующий метод, который решил эту проблему (скорость обработки кадра уменьшилась до 40 мс). Основная идея заключается в том, что большая часть информации идет не через цветовые каналы, а через яркость. Именно по перепадам яркости определяются границы объектов, в нашем случае это цифры.

Опишем последовательность действий для локализации области номерного знака (рис. 2).

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

Рис. 3. Изображение разбито на квадратные области

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

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

Рис. 4. Изображение с подкрашенными участками, где наблюдаются перепады яркости

4. Обводим те области, где возможно расположение символов, проходимся по матрице большей чем квадрат для поиска, если в занимаемой им области находится более 75% выделенных точек, то эта область запоминается (рис. 5).

Рис. 5. Изображение после увеличения областей интереса и обведения областей, где возможны символы

5. Объединяем все близлежащие области (рис. 6). Учитываем расстояние между символами, с учетом возможных ребер жесткости на вагоне.

Фильтрация области номерного знака

Фильтруем все области, не представляющие собой номерные знаки (рис. 7).

Применяем метод бинаризации, который был использован в системе поиска и распознавания автомобильных номерных знаков [1, 2].

Рис. 6. Изображение после объединения близлежащих областей

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

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

Рис. 7. Изображение, где отфильтрованы все области, не представляющие собой последовательности символов

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

Предобработка символов

После сегментации получены группы пикселей, которые предположительно являются символами. Для предобработки групп пикселей используется тот же метод, что и в системе распознавания номерных знаков [1, 2]. Было решено подавать на вход анализатора не группы пикселей, а их спектр. Преимущества спектра перед «чистыми» изображениями в том, что амплитуды объектов всегда одинаковы и где бы ни находился объект на изображении, меняется только фаза.

Перед преобразованием Фурье производим нормализацию данных [3]. Сначала выполняем инверсию цвета (черный становится белым и наоборот), в нашей системе черный цвет - это ноль, а белый - максимум, например единица. Полученные инверсные изображения символов дополняем нулями (черным цветом) до определенных размеров (1616 пикселей) таким образом, чтобы символ находился в центре.

Распознавание символов

Распознавание символов проводим с помощью искусственных нейронных сетей.

Нейронная сеть персептронного типа с сигмоидными активационными функциями проектировалась по методике, принятой в Пермской научной школе искусственного интеллекта [4-8]. Двухслойный персептрон содержал 256 входных нейронов, что соответствует спектру символа размером 1616, и 10 выходных нейрона для кодирования цифр 0 до 9. Число нейронов в скрытом слое определялось по формулам Арнольда - Колмогорова - Хехт-Нильсена [6], а затем оптимизировалось ручным способом.

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

,

где N - общее число обучающих примеров, M - общее число выходов у сети, - желаемый выход в -м примере на -м выходе нейронной сети, - полученный выход в -м примера на -м выходе нейронной сети [5].

Для обучения сети было опробовано два варианта: классический - когда сеть обучается на реальных образах и нетрадиционный - когда сеть обучается на программно сгенерированных образах. Первое обучающее множество, состоящее из 715 спектров символов, (классический подход) было получено путем анализа видеоархива за несколько дней - сканировался видеоархив и обнаруженные номера разбивались на символы, после этого каждый символ подписывался вручную. Второе обучающее множество, состоящее из 2400 спектров символов, было сгенерировано программным образом (нетрадиционный подход). Специально созданная для этих целей программа сгенерировала обучающее множество, изменяя наклон, размер и добавляя шумы на исходные символы (цифры от 0 до 9).

Нейронные сети обучались до тех пор, пока среднеквадратичная погрешность не стала меньше 0,02%. После обучения нейронные сети тестировались на 150 примерах, полученных в реальных условиях.

Обсуждение результатов

Нейронная сеть, обученная с помощью традиционного подхода, показала погрешность тестирования 15% (неверно распознано 23 символа из 150), ошибки происходили, когда на изображении оставались не отфильтрованные шумы и когда изменялся угол наклона символов.

Погрешность нейронной сети, обученной на сгенерированном обучающем множестве (нетрадиционный подход), зависит от параметров настройки (опций) программы, генерирующей обучающее множество: пределов изменения наклона, размеров символов, степени добавляемого шума и др. Поиск наилучшего сочетания этих опций представляет собой сложную оптимизационную задачу со многими экстремумами. Решение этой задачи путем эвристического перебора опций позволил добиться погрешности тестирования 6% (неверно распознано 9 символов из 150).

При реальной работе системы, ошибка при распознавании оказалась выше на 30% - 50%. Это связано с тем, что каждый раз для распознавания попадаются новые объекты, с большим количеством различных помех.

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

Дальнейшее снижение погрешности системы (до 15%) было достигнуто за счет использования двух камер, установленных по разные стороны от вагона. В этом случае спорные моменты решались путем «голосования нейросетей»: за окончательное принималось «мнение» той нейросети, у которой выходной сигнал, идентифицирующий распознанный символ, оказывался сильнее.

Тем не менее, качество распознавания номеров в сильной степени оказалось зависимым от степени их загрязненности. Если номера не загрязнены, то процент правильно распознанных номеров достигал 100%. В других случаях процент правильно распознанных номеров мог падать, однако не ниже 60%.

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

Список литературы

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

1. Чернопятов А.В. Применение методов искусственного интеллекта в системах видеонаблюдения // Вестник Пермского университета: Математика. Механика. Информатика. 2010. №4. С. 54-58.

2. Чернопятов А.В. Поиск и нейросетевое распознавание автомобильных номерных знаков // Нейрокомпьютеры: разработка, применение. 2012. №7. С. 59-63.

3. Bracewell R.N. The Fourier transform and its applications. McGraw-Hill Sci-ence/Engineering/Math; 3 edition, 1999. 640 p.

4. Ясницкий Л.Н., Богданов К.В., Черепанов Ф.М. Технология нейросетевого моделирования и обзор работ Пермской научной школы искусственного интеллекта // Фундаментальные исследования. 2013. №1 (ч. 3). С. 736-740.

5. Черепанов Ф.М., Ясницкий Л.Н. Нейросетевой фильтр для исключения выбросов в статистической информации // Вестник Пермского университета. Сер.: Математика. Механика. Информатика. 2008. №4. С. 151-155.

6. Ясницкий Л.Н., Данилевич Т.В. Современные проблемы науки. М.: БИНОМ. Лаборатория знаний, 2008.

7. Ясницкий Л.Н., Сичинава З.И. Нейросетевой алгоритм анализа поведения респондентов // Нейрокомпьютеры: разработка, применение. 2011. №10. С. 59-64.

8. Корниенко С.И., Айдаров Ю.Р., Гагарина Д.А., Черепанов Ф.М., Ясницкий Л.Н. Программный комплекс для распознавания рукописных и старопечатных текстов // Информационные ресурсы России. 2011. №1. С. 35-37.

Размещено на Allbest.ru

...

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

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

    дипломная работа [887,3 K], добавлен 26.11.2013

  • Понятие системы распознавания образов. Классификация систем распознавания. Разработка системы распознавания формы микрообъектов. Алгоритм для создания системы распознавания микрообъектов на кристаллограмме, особенности его реализации в программной среде.

    курсовая работа [16,2 M], добавлен 21.06.2014

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

    курсовая работа [4,8 M], добавлен 22.06.2011

  • Основные понятия теории распознавания образов и ее значение. Сущность математической теории распознавания образов. Основные задачи, возникающие при разработке систем распознавания образов. Классификация систем распознавания образов реального времени.

    курсовая работа [462,2 K], добавлен 15.01.2014

  • Необходимость в системах распознавания символов. Виды сканеров и их характеристики. Оптимальное разрешение при сканировании. Программы распознавания текста. Получение электронного документа. FineReader - система оптического распознавания текстов.

    презентация [469,2 K], добавлен 15.03.2015

  • Анализ физических предпосылок селекции движущихся малоразмерных наземных целей по спектральным параметрам. Разработка алгоритмов обнаружения МНЦ и повышения эффективности их распознавания в интересах радиолокационных станций разведки и целеуказания.

    дипломная работа [830,3 K], добавлен 28.04.2009

  • Методы распознавания образов (классификаторы): байесовский, линейный, метод потенциальных функций. Разработка программы распознавания человека по его фотографиям. Примеры работы классификаторов, экспериментальные результаты о точности работы методов.

    курсовая работа [2,7 M], добавлен 15.08.2011

  • Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.

    курсовая работа [2,1 M], добавлен 20.09.2014

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

    презентация [523,7 K], добавлен 14.08.2013

  • Выбор типа и структуры нейронной сети. Подбор метода распознавания, структурная схема сети Хопфилда. Обучение системы распознавания образов. Особенности работы с программой, ее достоинства и недостатки. Описание интерфейса пользователя и экранных форм.

    курсовая работа [3,0 M], добавлен 14.11.2013

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

    курсовая работа [215,2 K], добавлен 19.10.2010

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

    курсовая работа [1,4 M], добавлен 11.04.2012

  • Словесный, графический, табличный, программный способы представления алгоритма. Основные конструкции в любом алгоритмическом языке. Теория обнаружения, различения и оценивания сигналов. Радиолокационные системы обнаружения. Система распознавания образов.

    презентация [4,8 M], добавлен 09.06.2015

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

    дипломная работа [332,2 K], добавлен 30.11.2012

  • Разработка программной базы для исследований в области распознавания речи и поиска ключевых слов в ней. Расчет mel-фильтров. Скрытые марковские модели. Применение в алгоритме сверточного декодирования Витерби. Методы визуализации и обработки аудиоданных.

    курсовая работа [1,1 M], добавлен 01.06.2015

  • Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.

    дипломная работа [1019,9 K], добавлен 13.10.2017

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

    дипломная работа [3,1 M], добавлен 19.08.2012

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

    курсовая работа [1,0 M], добавлен 05.01.2013

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

    дипломная работа [1,1 M], добавлен 16.09.2017

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

    курсовая работа [645,2 K], добавлен 05.04.2015

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