2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 По видео распознать все 6 координат скоростей движения
Сообщение10.04.2022, 17:09 


11/08/18
363
Добрый день,

имею видеокамеру (2мпиксела или любое другое до 320х240 разрешение), до 30 кадров в секунду, черно-белая, ИК (8 бит на пиксель). Одновременно есть возможность включать/выключать ИК подсветку, могу сделать ее хоть от 20 разных светодиодов, но, ИМХО, 2 или 4-х будет достаточно.

Одновременно также рядом с камерой по 1-4 направлениям могу поставить датчик расстояния, которые дадут точность по расстоянию около 0.5мм (хотелось бы поставить таких датчиков поменьше).

Камера закреплена на краю пластинки, которая довольно низко над поверхностью движется (от 2 до 10см примерно), иногда с рывками, но, большей частью, довольно плавно.

Хочу получать скорости движения камеры, то есть все 6 скоростей.

Понятно, что так как есть датчик расстояния, то $V_1$ скорость приближения-удаления будет только через датчики расстояния.

Понятно, что если движение линейное и поверхность равноудалена от камеры, то две скорости $V_2, V_3$, которые ортогональны направлению оси камеры можно через Фурье преобразование и последующее сравнение (как циркулянт на вектор и затем поиска максимума) посчитать.

Но вот есть еще скорости:

$V_4$ вращение вокруг оси камеры,
$V_5, V_6$ наклоны по двум ортогональным этой оси направлениям.

Еще неприятность в том, что все надо делать в реальном времени, и в доступе довольно мало памяти (4МБ) и процессор на плавающей точке показывает только 120МФлопсов, что, в общем совсем не густо, то есть у меня имеется около 4МФлоп на одну пару картинок сравнения. То есть Фурье примерно от 480х320 на 30fps и 640х480 на 10fps еще с грехом пополам сделать можно, а что-то существенно более сложное - нельзя.

Я понимаю, что можно искать максимумы градиента на картинке и сравнивать куда они уплыли, но тут вычислительной сложности вот точно не хватит.

Пусть я даже забью на вычисления $V_4, V_5, V_6$, но, если они присутствуют, скорости $V_2, V_3$ не получится через Фурье вычислить.

Гипотетически, поверхность над которой летает моя камера, довольно гладкая, поэтому я могу предположить, что если поставить 4 датчика расстояния крестом вокруг камеры, то на их основе я скорости $V_5, V_6$ буду получать довольно устойчиво, но, вот $V_4$ все равно мешать будет.

Пожалуйста, посоветуйте, в сторону какого алгоритма стоит посмотреть?

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

PS: вопрос частично связан с воблой https://dxdy.ru/topic149178.html, которую мы тут недавно обсуждали, но вычислительная сложность полученного и запрограммированного алгоритма, а также глюки, при резком движении меня сильно не устраивают, поэтому принял решение решать свою задачу по-другому.

Спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group