Определение координат дрона относительно движущегося объекта. dji.. dji. tesla.. dji. tesla. беспилотник.. dji. tesla. беспилотник. бинокулярные.. dji. tesla. беспилотник. бинокулярные. бпла.. dji. tesla. беспилотник. бинокулярные. бпла. машинное зрение.. dji. tesla. беспилотник. бинокулярные. бпла. машинное зрение. роботы.. dji. tesla. беспилотник. бинокулярные. бпла. машинное зрение. роботы. роботы-автомобили.. dji. tesla. беспилотник. бинокулярные. бпла. машинное зрение. роботы. роботы-автомобили. фотограмметрия.
справа показано положение камеры относительно объекта съемки

справа показано положение камеры относительно объекта съемки

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

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

Обзор существующих решений похожих задач:

А) Бинокулярное зрение. Лидеры отрасли гражданских БПЛА используют для ориентации дронов в пространстве бинокулярное зрение. Например у дрона DJI mavic 3 pro четыре пары сдвоенных камер для избегания препятствий.

8 камер для построения 3д модели местности и, соответственно, избегания препятствий

8 камер для построения 3д модели местности и, соответственно, избегания препятствий
тут DJI показывает, как система построения 3д модели местности видит окружающий мир. (гифка взята с их сайта)

тут DJI показывает, как система построения 3д модели местности видит окружающий мир. (гифка взята с их сайта)

Другой лидер индустрии гражданских беспилотников тоже использует бинокулярное зрение: в модели Skydio1 оспользовалось 8 камер для ориентации в пространстве (4 пары). В модели skydio2 используется 6 камер (уже не сдвоенные, а строенные, но принцип все равно тот же). Подробнее про бинокулярное зрение дронов можно почитать здесь: Бинокулярное зрение: машинное и естественное

Б) Монокулярное зрение: Structure-from-Motion и Visual SLAM

Чтобы не перегружать статью картинками, уберу схему работы Structure-from-Motion и Visual SLAM на примере машинного зрения Tesla под этот спойлер
Общая схема работы Structure-from-Motion:  3д пространство строится последовательно по мере продвижения камеры.

Общая схема работы Structure-from-Motion: 3д пространство строится последовательно по мере продвижения камеры.

Structure-from-Motion и Visual SLAM это формально два разных, но очень похожих способа построения 3д модели окружающего пространства. Оба метода основаны на геометрическом методе вычисления расстояния до фич (углов, ярких точек и т.п.) объекта. Основная разница в том, что первый метод сравнимает каждый кадр с каждым, а visual SLAM сравнивает кадр только со следующим и предыдущим. В рамках данной статьи будем считать SLAM частным случаем S-f-M.

так работает метод S-f-M на автомобиле Tesla model 3

так работает метод S-f-M на автомобиле Tesla model 3

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

Тут автопилот tesla model3 не увидел движущийся поезд. Если бы поезд не двигался, то алгоритм Structure-from-Motion (Visual SLAM) наверняка бы увидел препятствие.

Тут автопилот tesla model3 не увидел движущийся поезд. Если бы поезд не двигался, то алгоритм Structure-from-Motion (Visual SLAM) наверняка бы увидел препятствие.

Наш подход:

Чтобы избежать недостатков метода Structure-from-Motion, мы решили использовать “обратный” Structure-from-Motion.

Это классический метод S-f-M. В этом примере будет построена 3д модель серого авто, дороги и окружающего поля. Поскольку черный автомобиль движется, то алгоритм его не увидит и черный авто не отобразится в конечной 3д модели.

Это классический метод S-f-M. В этом примере будет построена 3д модель серого авто, дороги и окружающего поля. Поскольку черный автомобиль движется, то алгоритм его не увидит и черный авто не отобразится в конечной 3д модели.
Это пример метода обратного S-f-M. Здесь в конечной 3д модели будет только  автомобиль.Поле и трава здесь являются движущимися объектами, поэтому в 3д модели не отобразятся.

Это пример метода обратного S-f-M. Здесь в конечной 3д модели будет только автомобиль.Поле и трава здесь являются движущимися объектами, поэтому в 3д модели не отобразятся.

С теорией закончили, теперь реализация.

Сначала делаем видео с объектом в стиле обратного S-f-M. Затем нарезаем это видео на несколько сотен кадров. Допустим у нас получилось 1000 кадров. Это неразмеченный датасет. Размесает этот датасет, пропуская через алгоритм Structure-from-Motion в любой программе фотограмметрии. Мы использовали Meshroom (кстати разбить видеоролик на несколько сотен кадров можно в нем же). Разметка каждого кадра идет в таком формате: IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME

пример: 1 0.998302 -0.00448578 0.053215 -0.0232721 0.213129 -0.225976 4.24765 3391136576 1007579105.jpg

На основе подученного размеченного датасета обучаем CNN. Какие лучше использовать архитектуры я сказать не могу. Но тот момент когда мы это делали у нас был сильно ограниченный бюджет. Поэтому результаты получались не очень хорошие. Сейчас цены на вычислительные мощности сильно упали, поэтому обучение такой CNN теперь по силам не только компаниям но и просто энтузиастам. Лет через 5 наверное и школьники смогут обучать такие модели на карманные деньги.

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

Практические применения. Наиболее актуальное сейчас применение данной нейронки-это удары по движущейся военной технике. По точности такие удары должны быть на уровне дронов с бинокулярной системой машинного зрения.

Если запрограммировать удар точно в боекомплект системы HIMARS, то удар будет именно туда, даже если техника движется. Потому что модель точно определяет свое местоположение относительно объекта.

Если запрограммировать удар точно в боекомплект системы HIMARS, то удар будет именно туда, даже если техника движется. Потому что модель точно определяет свое местоположение относительно объекта.

P.S. Я наверное лишнего расписал теорию и мало написал про практику. Но общий смысл в том, чтобы автоматически размечать датасеты с помощью программ фотограмметрии. Если кто-то уже делал или сейчас делает что-то подобное-пишите в комментах, будет интересно пообщаться.

Автор: malyazin_2010

Источник

Rambler's Top100