Применение нейросетевого алгоритма для обнаружения объектов на железнодорожных путях - Студенческий научный форум

XII Международная студенческая научная конференция Студенческий научный форум - 2020

Применение нейросетевого алгоритма для обнаружения объектов на железнодорожных путях

Сидорина С.А. 1, Воронова Л.И. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

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

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

Поиск на кадре ж/д колеи и центральной (осевой) линии, проходящей между рельсами;

Определение координат (в пикселях) распознанных объектов;

Изучение техник преобразования пиксельных координат в метровую систему исчисления и расчет дистанции до объекта;

Реализация алгоритма перевода в обратную перспективу;

Комплексирование полученных данных на маске пути в обратной перспективе с выводом результатов на экран.

Поиск ж/д колеи и центральной линии

Задача определения колеи рассматривалась во многих современных публикациях: одно из наиболее интересных решений представлено в «Detecting Rails in Images from a Train-Mounted Thermal Camera using a Convolutional Neural Network» [2].

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

Для реализации данного подхода использовалась функция вероятностного преобразования Хафа cv2.HoughLinesP() библиотеки OpenCV [4], которая ищет прямые линии на изображении, в нашем случае – рельсы. Данная функция принимает на «вход» случайное подмножество точек, что является достаточным для обнаружения прямой, а возвращает две координаты (начала и конца) найденных линий (рис. 1а). Однако нас интересуют только те линии, которые совпадают с расположением рельс основного пути движения. Зная изначально, что всего должно быть 2 прямые, и начинаются они снизу, авторами статьи был разработан специальный фильтр для удаления шумов. Он отбрасывает все линии, выходящие за пределы заданной погрешности на последнем ряду изображения. Условимся, что допустимая погрешность составляет 16 пикселей и таким образом все значения по оси абсцисс, отличающиеся от разности высоты изображения и погрешности, учитываться не будут, то есть рельсами не являются.

Результат работы функции вероятностного преобразования Хафа с использованием фильтра и отдельной отрисовкой центральной линии представлен на рисунке 1б.

а) б)

Рис. 1 – Результат работы функции без фильтра (а) и с применением (б)

Можно заметить, что в обоих случаях правая рельса имеет наложение на вагон, когда в действительности мы ожидаем «конец дороги». Нахождение рельс (прямых) строго по их реальному расположению является необходимым условием для корректности дальнейших обработок. Кроме этого, не во всех ситуациях имеются одинаковые выбросы и алгоритм может вести себя по-разному для каждого конкретного кадра. В нашей задаче недопустимы подобные проявления, так как стоит также учитывать повороты, погодные условия и другие аспекты для достижения высокоточного результата. Поэтому наиболее удачным решением будет служить сегментация ж/д колеи и построение кривой (осевой линии рельсовой колеи) при помощи методов нейронных сетей.

Расчет расстояния до объекта

Для поиска объектов (людей) на изображении применялась предобученная модель детекции YoloV3 (You Only Look Once version 3). В качестве входных данных для нейронной сети подается последовательность кадров из частного датасета, а на «выходе» мы имеем пиксельные координаты всех обнаруженных объектов в следующем формате:

<conf> <x> <y> <width> <height>

Где conf – точность принадлежности к определенному классу объектов, х и yкоординаты точки левого верхнего угла, width - ширина, heightвысота ограничительного прямоугольника (bounding box).

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

Рис. 2 – Обнаружение людей и подсчет расстояния

Слева направо: первый объект на расстоянии 228 пикселей, второй – 108, третий отстоит на 11 пикселей. Для перевода расстояния из пикселей в метровую систему координат необходимо представить изображение в ортогональном виде («bird-view»).

Преобразование обратной перспективы

В программе задается 2 точки (x, y) (в данном случае начало и конец каждой рельсы), которые выделяют границу области интереса или RoI (Region of Interest), и опытным путем определяем целевые точки для изображения в ортогональном виде. С помощью функции cv2.getPerspectiveTransform() находим матрицу трансформации. Теперь нужно сместить целевые точки особым образом, а для этого необходимо выяснить, где окажется левый верхний угол после трансформации. Стоит учесть, что исходная картинка может быть повёрнута случайным образом, и левый нижний окажется дальше в минусе, чем верхний левый. Поэтому далее определяется положение после трансформации всех четырёх углов исходной картинки посредством нахождения для нее ограничительной рамки с помощью метода boundingRect. После этого остается сместить целевые точки в обратную сторону от её позиции и заново вычислить матрицу трансформации с новыми целевыми точками. В конечном счете после выполнения всех операций кадр имеет вид, представленный на рисунке 3.

Рис. 3 – Преобразование в «вид сверху»

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

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

Нахождение объекта на путях

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

Рис. 4 – Определение объектов на путях

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

Выводы

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

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

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

J. Redmon, A. Farhadi YOLOv3: An Incremental Improvement arXiv:1804.02767v1 [cs.CV] 8 Apr 2018.

М. Wedberg, Detecting Rails in Images from a Train-Mounted Thermal Camera using a Convolutional Neural Network, 2017.

Д.Б. Волегов, Обнаружение прямых линий на изображениях на основе преобразования Хартли. Быстрое преобразование Хафа // Д.Б. Волегов, В.В. Гусев, Д.В. Юрин, - International Conference Graphicon 2006, Novosibirsk Akademgorodok, Russia, - 560-569 стр.

Документация OpenCV [Электронный ресурс]. – Режим доступа: https://opencv.org/ (дата обращения: 28.01.2020).

Просмотров работы: 38