Определение положения и скорости тележки мостового крана с помощью цифровой камеры и OpenCV

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


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

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

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

Оборудование


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



Во время эксперимента было записано видео передвижения крана с одновременной процедурой снятия показаний c энкодеров. Графики скорости получены в программе SoMove от Schneider Electric.

Видео записывалось на камеру Canon EOS 1200D с разрешением 1920x1080.

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

Алгоритм работы


Метод вычисления расстояния основан на подобие треугольников, которые сходятся на диафрагме объектива.



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

Проведение эксперимента


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


Схема установки. Вид сверху.

Было записано два тестовых видео, движение по оси x — назад, от камеры и по оси y — сначала влево потом вправо. Значения положения и времени записываются в массив numpy после чего
экспортируются в Matlab, где строятся графики перемещения S(t).



Продифференцировав данные, мы получаем графики скорости V(t).

x_veloc = np.diff(x_position) / np.diff(time_mas)

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



Сгладим шум с помощью фильтра 1-го порядка в Matlab, и сравним показания энкодеров с показаниями цифровой камеры.



Графики показывают какую точность измерения дистанции можно получить с помощью одной камеры.

Для того чтобы снизить уровень шумов и получить более плавные графики была разработана вторая версия метки с козырьком и локальным освещением.



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

Для тех кому интересно больше узнать о трекинге объектов на основе контурного анализа, есть хорошая статья Оценка точности методов трекинга для определения 2d-координат и скоростей механических систем по данным цифровой фотосъёмки.

В статье я рассказал про самый простой метод измерения расстояния до объекта и показал, какую точность измерения можно получить. Всем спасибо за внимание.
Источник: https://habr.com/ru/post/517904/


Интересные статьи

Интересные статьи

Кто бы мог подумать. С помощью приложения Untappd (пользователи выставляют рейтинг пива) можно отследить историю перемещения военнослужащих. Эта социальная сеть насчитывает более во...
Всем привет! В современном мире крайне важна возможность масштабировать приложение по щелчку пальцев, ведь нагрузка на приложение может сильно отличаться в разное время. Наплыв клиентов, которы...
Как-то у нас исторически сложилось, что Менеджеры сидят в Битрикс КП, а Разработчики в Jira. Менеджеры привыкли ставить и решать задачи через КП, Разработчики — через Джиру.
Однажды, в понедельник, мне пришла в голову мысль — "а покопаюсь ка я в новом ядре" (новым относительно, но об этом позже). Мысль не появилась на ровном месте, а предпосылками для нее стали: ...
Что важно для команды разработчиков, которая только начинает строить систему, базирующуюся на машинном обучении? Архитектура, компоненты, возможности тестирования с помощью интеграционных и юни...