Реализация метода визуальной одометрии для оценки смещения и угла поворота камеры с использованием простого оборудования и OpenCV. Используется улучшенный трекинг оптического потока и «верёвочный» метод стабилизации движения.

? Зачем это нужно?

Если вы работаете с робототехникой, DIY-проектами или просто хотите реализовать устойчивое определение движения камеры в 2D, этот проект будет полезен. Он позволяет получать координаты смещения и угол поворота в режиме реального времени, используя только видеопоток с камеры

⚙️ Технические детали

Проект реализован на Python с использованием библиотеки OpenCV. Основной подход — отслеживание ключевых точек между кадрами с помощью оптического потока Люка-Канаде и расчёт аффинного преобразования для определения:

смещения (dx, dy),

угла поворота (в градусах).

Также используется Kalman Filter для сглаживания данных и повышения устойчивости..

? Что такое «верёвочный метод»?

«Верёвочный метод» — это эвристика, при которой координаты движения накапливаются в виртуальном пространстве, и трекинг привязывается к ближайшей контрольной точке (waypoint). Это:

снижает накопление ошибок,

упрощает возврат к нулевому смещению,

делает трекинг устойчивым при дрейфе.

Когда текущее смещение оказывается достаточно близко к контрольной точке — она считается достигнутой и удаляется.

? Как использовать

  1. Установите зависимости:

pip install opencv-python numpy
  1. Запустите main.py. Для управления:

    t — включить/выключить трекинг,

    r — принудительная переинициализация точек,

    q — выход.

  2. Координаты и угол сохраняются в offsets.json, который можно использовать для других систем.

? Репозиторий

? GitHub — Anchor-Optical-TrackeR

? Заключение

Проект отлично подойдёт для прототипов, образовательных целей и встраиваемых решений (Orange Pi, Raspberry Pi и др.). Используется минимум оборудования, но достигается надёжная визуальная одометрия.

Если интересно — ставьте ⭐️ на GitHub и пишите замечания или вопросы в комментариях!

Комментарии (0)