Какой метод следует использовать для отслеживания движущегося объекта с помощью движущейся камеры (используя ресурсы RaspberryPi)

Я играю с обнаружением движения через веб-камеру, подключенную к RaspberryPi, используя OpenCV и cvBlob в C++. Я хочу поднять его на ступеньку выше и сделать робота, который обнаруживает и отслеживает движение, двигаясь к нему и поворачивая влево / кольцо, чтобы держать движущийся объект в центре обзора. Но я быстро наткнулся на контрольно-пропускной пункт - я не могу найти никаких материалов о слежении за движением с активной, движущейся камерой, которые больше относятся к любительскому уровню. Я нашел только научные статьи, например, по оптическому потоку. Конечно, я могу попытаться пройти через один из них, если бы я знал, что этот алгоритм соответствует моим потребностям, но просмотр всех документов и выбор одного из них выходит за рамки моего уровня понимания.

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

1 ответ

Если вы используете левую и правую координаты x объекта BLOB-объекта, вы сможете определить, перемещается ли объект, измерив расстояние от левой и правой границ изображения до объектов левой и правой координат X. Если робот движется влево или вправо, объект остановится, если расстояние измерения начнет уменьшаться.

Другие вопросы по тегам