На предприятии, занимающейся разработкой и выпуском приборов радиационного контроля, технологического контроля, информационных и управляющих систем; проведением первичных и периодических проверок средств измерений; проведением радиационного мониторинга объектов; Разработкой программного обеспечения для приборов, которые разрабатываются и выпускаются на данном предприятии; разработкой методических документов по работе с современными приборами, была поставлена задача — разработать систему, способную по сигналу фиксировать вагон, находящийся на железнодорожном пути, и распознать его индекс.
Данная система направлена на предотвращение получения радиационного поражения человеком во время пребывания вблизи объекта. Человек может находиться на безопасном расстоянии и получать необходимые данные об объекте.
Система создается для повышения уровня автоматизации при использовании приборов радиационного контроля. Такая система радиационного контроля в Украине пока не используется. Данная система сможет ускорить процесс детектирования наличия радиации, она не потребует полной остановки поезда. Данная система облегчает работу человека, работа с приборами радиационного контроля с помощью видеокамеры и автоматизированного распознавания цифр из видео файлов.
Были поставлены следующие цели:
— с помощью видеокамеры реализовать хранение информации на жесткий диск;
— настроить сохранение информации в указанную директорию;
— настроить универсальность созданного имени для каждого видео файла;
— реализовать реагирования камеры на сигнал пользователя, т.е. камера должна начинать снимать видео после сигнала от пользователя в интервале пять секунд до сигнала и после;
— создать программное средство для распознавания числа полученного видео камерой из вагона поезда.
Техническое задание обуславливает написание системы на языке программирования «С» или «С + +», а также библиотеку, содержащую в себе функции для реализации компьютерного зрения, «OpenCV».
Данное программное средство должно работать с определенным оборудованием, а именно с видеокамерой и другими приборами сбора и передачи информации. Поскольку программа будет использовать открытую библиотеку, то это делает программные модули более гибкими, что позволит их дальнейшее использование в других проектах, а также позволит добавления новых модулей, например для работы с другими приборами.
Среди готовых решений можно выделить такие программы:
— OCR CUNEIFORM;
— ABBYY FineReader.
Эти две программы сходны между собой, но они имеют закрытый код. Также они имеют достаточно широкое применение. Для данного проекта это не является необходимым.
— OCR CUNEIFORM — бесплатное программный средство, для оптического распознавания текста. Способно распознавать текст низкого качества. Имеет мощный текстовый редактор. Является аналогом ABBYY FineReader.
Платные готовые решения имеют один недостаток — все они имеют закрытый код, что делает невозможным привязку дополнительных модулей и оборудования к программному комплексу в целом.
Бесплатных готовых решений с открытым кодом найдено не было.
Перед тем, как начать реализовывать программный код, который позволит распознавать числа с видео необходимо настроить видеокамеру на сохранение видео на жесткий диск, а также настроить ее на съемку по сигналу. Также важным моментом является — настройка автофокуса камеры.
После того, как проверили, что камера записывает четкое изображение, нужно настроить сохранение видео файлов в нужную директорию.
Универсальность имени видео файлов будет реализовываться посредством создания каталогов. Первый каталог будет включать в себя идентификационный номер камеры. Затем будут созданы в данном каталоге подкаталоги, которые будут содержать в своем названии дату записи видео.
Камера также имеет буфер, в который постоянно записывается видео, что дает возможность вырезать из буфера необходимые фрагменты видео файла.
После того, как было получено видео камеры, обработать видео, а именно вытянуть из него картинку для дальнейшего распознавания числа.
Нужно обрабатывать изображения, т.е. удалять из него лишние элементы, которые могут помешать при распознавании числа.
Также нужно преобразовать изображение из цветного в черно — белого или черно — серое. Это необходимо для того, чтобы четко выделить контуры цифр на картинке. Если этого не сделать, то число может слиться с фоном и найти его контур будет невозможно.
Функционал программного средства также предусматривает сравнение найденного контура с контуром оригинала. То есть, для каждой цифры нужно зафиксировать идеальный контур. Этот идеальный контур нужно сравнивать с полученным контуром и находить такой идеальный контур, больше будет похож на контур полученной цифры с изображения вагона.
Также нужно проверить правильность распознанного числа. Номер вагона состоит из восьми цифр. Последняя цифра является контрольной, с помощью которой можно проверить правильность нахождения числа, то есть индекса вагона.
Программное средство прошел стадию проектирования и сейчас находится на стадии реализации.