Определение координат снимаемых объектов.

Делись идеей, получай поддержку и критику!
Ответить
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Определение координат снимаемых объектов.

Сообщение Sergey Ivanov »

Сделал недавно, относительно.

Это небольшая система, которая позволяет определить координаты и «скорость» снимаего объекта на веб камеру.
Узнал, что существуют подобные системы и решил сделать нечто своё. Но так так бюджет у меня ограничен и делается исключительно ради интереса, то и реализация крайне простая и бюджетная .
Идея крайне простая: зная свои координаты (географические), высоту, откуда ведётся съемка, угол наклона оси объектива в вертикальной плоскости (тангаж), угол поворота оси объектива в вертикальной плоскости (курс).
Откуда же мы возмём все эти данные ? Тут не всё так сложно, но давайте разберёмся по порядку.


координаты. Их можно получить, подключив GPS приёмник. но ввиду лени подключения и постоянного нахождения на одном месте, я отказался от этой затеи, а просто взял координаты из яндекс карт и использовал их;
высота. Тут немного было сложнее. Для определения высоты я использовал датчик давления (абсолютного);
угол наклона в вертикальной плоскости (тангаж). Для этого я использовал ранее испытанный алгоритм. Но о нём ниже;
угол поворота в горизонтальной плоскости (курс). см. пункт выше

Географические координаты.
По первому тут всё понятно, останавливаться на нём не буду.

Высота.
Для определения высоты использован аналоговый датчик давления MPX4115A. Он подключен к 16-ти битному АЦП. Данные с АЦП я пересчитываю сначала в кПа, а потом в высоту (считая, что температура 20 градусов).
На видео ниже на дисплее отображаются данные с АЦП, в зависимости от высоты. Чем больше высота, тем меньше напряжение с датчика давления и тем меньше отображаемое число.

C3jhkHW7r8Q

Вот второе видео. Здесь уже я провёл пересчёт данных с АЦП в высоту (в метрах). При этом, параллельно соединил воздушные магистрали механического (со стрелкой) и своего самодельного электронного высотомера. number – значение высоты в единицах АЦП (АЦП 16 бит), alt – высота в метрах.

-dt18Nt47aM

Углы ориентации.

С углами тоже вроде не сложно. Тем более что алгоритм был у меня уже ранее реализован (данную ИНС использовал в другом проекте ). Исходными данными для определения углов есть данные с 3-х осевого гироскопа L3G4200 и свомещённого датчика (акселерометр + магнетометр) LSM303DL. В общем, после некоторых манипуляций можно получить 3 угла ориентации платы или объекта, куда установлена плата, относительно земли – курс (0-360 градусов), крен (-180 – +180 градусов), тангаж (-90 – +90 градусов).
2.png
В динамике всё это выглядит примерно так:
2-e0colMZAE

Комплексирование исходных данных.

Когда все данные есть они поступают в ЭВМ ( в персональный компьютер). Там я написал небольшую программку, которая берёт изображение с веб камеры, накладывает на него некоторые исходные данные и вычисленные данные. И сохраняет такое изображение раз в две секунде.

На словах опишу как происходят расчёты (т.к. тут наипростейшая геометрия, то и расписывать мне не очень хочется. НО если кому-то это убдет интересно, то опишу подробнее этот процесс).

1. Зная высоту и угол относительно осью веб камеры и горизонтом можем определить дальность до снимаемого объекта на «нулевой» высоте. a – угол, h – высота, D – дальность «по земле».
1.png
2. Зная дальность «по земле» и направление оси камеры относительно географического севера определяем «проекции» этой дальности на широту и долготу;
3.Зная широту узнаём насколько проекция на долготу сместит начальную координату по долготе;
4. Зная широту узнаём насколько проекция на широту сместит начальную координату по широте;
5.Прибавляем пересчитанные проекции в градусы к соответствующим координатам начальной точки (от куда ведётся съёмка);
6. Опеделение скорости. Я сделал следующим образом: брал соседние по времени ( с разницей 1 секунда) вычисленные координаты снимаемого объекта. Вычислял расстояние между этих координат и,с оответственно, определял скорсоть между этими точками. НО время надо было больше брать 2-3 секунды. НО можно было вычислять скорость используя другие данные. Возожно, точность определения скорости была бы выше. Может, кто-нибудь напишет в комментариях что я имел в виду ? ;)

Внешний вид устройства
webcamera-INS.jpg
webcamera-INS-2.jpg
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Определение координат снимаемых объектов.

Сообщение Sergey Ivanov »

Результаты

На снимке ниже отображены координаты места от куда велась съемка (координаты метки), на последующих кадрах центр карты – координаты снимаемого объекта. К скрину карты из яндекс карт прилагается фотка снимаемого объекта.
11.png
Первая точка.
3.png
2013-04-14_13-43-38.png
Вторая точка.
4.png
2013-04-14_13-46-02.png
Третья точка.
6.png
2013-04-14_13-44-07.png
В архиве вы можете скачать остальные фотографии.(45,9 Мб).

Из всех фотографий смонтировал видеоролик:
OMkY4qovFBg

Выводы

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


Спасибо форуму, а также griffinru (в помощи получения картинки с веб камеры). :thank:
Добро пожаловать на http://rk-stud.ru/
Evgenykov
interested
interested
Сообщения: 2
Зарегистрирован: 07 ноя 2016, 23:09
Версия LabVIEW: 5.1
Контактная информация:

Re: Определение координат снимаемых объектов.

Сообщение Evgenykov »

Сергей, добрый день:)
У меня в университете преподаватель поставил похожую задачу с Вашей работой...
Моя курсовая работа: "Определение скорости движения объекта при помощи NI Vision".
Сказали, что пользоваться будем обычной веб-камерой ноутбука, объектом для измерения скорости может быть, что угодно, хоть игрушечная машинка.
Поможете с этим? Готов дать небольшое вознаграждение за эту работу, т.к. сам полный чайник в этом :suicide: )))
Буду рад даже если Вы дадите посмотреть хоть как составлена Ваша схема :help: :help: :help:
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Определение координат снимаемых объектов.

Сообщение Sergey Ivanov »

Здравствуйте.
А что за объект и на каком расстоянии от камеры находится ? В версии 5.1. есть NI Vision ? Обязательно ли его использовать , или можно без него ?
----------
И да, могу сделать, но вознаграждение понадобится большое, т.к время я своё ценю.
Или можете тему завести , в которой я, или другие форумчане вам помогут. Бесплатно будет и знаний приобретёте :wink:
Добро пожаловать на http://rk-stud.ru/
Evgenykov
interested
interested
Сообщения: 2
Зарегистрирован: 07 ноя 2016, 23:09
Версия LabVIEW: 5.1
Контактная информация:

Re: Определение координат снимаемых объектов.

Сообщение Evgenykov »

Сергей, добрый вечер)
Вроде дополнительно установился NI Vision
О какой сумме вознаграждения идет речь?)

Объект будет находится максимум в полуметре от камеры
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Определение координат снимаемых объектов.

Сообщение Sergey Ivanov »

О какой сумме вознаграждения идет речь?)
Вот же какой студент ленивый пошёл )
А чтобы ответить на этот вопрос, надо знать хотя бы ТЗ (какие скорости скорости объекта надо фиксировать, с какой точностью, будет ли меняться расстояние от объекта до камеры и т.д. и т.п.)
В личку можете напсать
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Определение координат снимаемых объектов.

Сообщение dadreamer »

Sergey Ivanov писал(а):В версии 5.1. есть NI Vision ?
Судя по этому доку, IMAQ Vision (именно так он назывался первоначально) появился, начиная с :labview: 3.1. А вот в том, что у Evgenykov именно 5.1, а не 6.1 или 7.1, я не уверен, потому что в LV Release History нет такой версии.
Evgenykov писал(а):Вроде дополнительно установился NI Vision
В Help -> About какая версия указана у вас? Заодно и тут посмотрите:
NI писал(а):The Vision control palette is available from the top level of the controls palette in LabVIEW 7.0 or later. In LabVIEW 6.x, the Vision control palette is available from the user controls palette.
Ну, и вам должно быть известно, что LV ниже 8.0 не поддерживается, как и VDM 8.0: Vision Development Module Version Compatibility with LabVIEW and LabWindows/CVI
Ответить

Вернуться в «Проекты»