Как лучше реализовать нацеливание лазерной указки?

Нужно нацелить луч от лазерной указки в определённое место которое будет определено по фотографии (кадр из видео, или же с самого видео). Важный момент: само расположение указки меняется в пространстве каждую секунду, как и сам объект на который нужно указать. Сама указка будет закреплена на подставке с моторчиками, которые могут поворачивать указку по горизонтальной и вертикальной осям.
Может быть есть готовые библиотеки для такой задачи?
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Берешь каждый кадр и определяешь на нем объекты, нужна нейросеть классификатор, которая сможет определить уникальность объекта - присвоив ему некоторый хэш. Затем нейросеть сравнивает пару кадров и выдает новое местоположение объектов(рамка или скелет), а вот затем уже наводится лазер на выбранный объект или на часть скелета.
Задача состоит из разбиения картинки на объекты и понимания как они передвинулись, скорее всего это две разные нейросети.
Ответ написан
Комментировать
@rPman
Пока скорость реакции не подходит к граничным, а качество видео на высоте, 'все просто'. Ищешь пятно лазерной указки на видео (по цвету, форме и интенсивности). Параллельно ищешь целевой объект с помощью распознавания (хоть нейронные сети хоть прямые алгоритмы, например ищешь объект определенной формы), и вычисляя в пикселах угол (если камера там же где и лазерная указка то пикселы и будут угловым расстоянием) и корректируешь угол на сервах для указки.

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

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы