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

Делись идеей, получай поддержку и критику!

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

Postby Sergey Ivanov on 03 May 2013, 13:47

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

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


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

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

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



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



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

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


В динамике всё это выглядит примерно так:


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

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

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

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/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1174
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

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

Postby Sergey Ivanov on 03 May 2013, 13:55

Результаты

На снимке ниже отображены координаты места от куда велась съемка (координаты метки), на последующих кадрах центр карты – координаты снимаемого объекта. К скрину карты из яндекс карт прилагается фотка снимаемого объекта.
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 Мб).

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


Выводы

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


Спасибо форуму, а также griffinru (в помощи получения картинки с веб камеры). :thank:
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1174
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

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

Postby Evgenykov on 07 Nov 2016, 23:28

Сергей, добрый день:)
У меня в университете преподаватель поставил похожую задачу с Вашей работой...
Моя курсовая работа: "Определение скорости движения объекта при помощи NI Vision".
Сказали, что пользоваться будем обычной веб-камерой ноутбука, объектом для измерения скорости может быть, что угодно, хоть игрушечная машинка.
Поможете с этим? Готов дать небольшое вознаграждение за эту работу, т.к. сам полный чайник в этом :suicide: )))
Буду рад даже если Вы дадите посмотреть хоть как составлена Ваша схема :help: :help: :help:
Evgenykov
interested
interested
 
Posts: 2
Joined: 07 Nov 2016, 23:09
LabVIEW Version: 5.1
Karma: 0

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

Postby Sergey Ivanov on 08 Nov 2016, 23:10

Здравствуйте.
А что за объект и на каком расстоянии от камеры находится ? В версии 5.1. есть NI Vision ? Обязательно ли его использовать , или можно без него ?
----------
И да, могу сделать, но вознаграждение понадобится большое, т.к время я своё ценю.
Или можете тему завести , в которой я, или другие форумчане вам помогут. Бесплатно будет и знаний приобретёте :wink:
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1174
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

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

Postby Evgenykov on 09 Nov 2016, 00:13

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

Объект будет находится максимум в полуметре от камеры
Evgenykov
interested
interested
 
Posts: 2
Joined: 07 Nov 2016, 23:09
LabVIEW Version: 5.1
Karma: 0

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

Postby Sergey Ivanov on 09 Nov 2016, 06:15

О какой сумме вознаграждения идет речь?)

Вот же какой студент ленивый пошёл )
А чтобы ответить на этот вопрос, надо знать хотя бы ТЗ (какие скорости скорости объекта надо фиксировать, с какой точностью, будет ли меняться расстояние от объекта до камеры и т.д. и т.п.)
В личку можете напсать
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1174
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

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

Postby dadreamer on 09 Nov 2016, 09:44

Sergey Ivanov wrote:В версии 5.1. есть NI Vision ?

Судя по этому доку, IMAQ Vision (именно так он назывался первоначально) появился, начиная с :labview: 3.1. А вот в том, что у Evgenykov именно 5.1, а не 6.1 или 7.1, я не уверен, потому что в LV Release History нет такой версии.
Evgenykov wrote:Вроде дополнительно установился NI Vision

В Help -> About какая версия указана у вас? Заодно и тут посмотрите:
NI wrote: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
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet


Return to Проекты

Who is online

Users browsing this forum: No registered users and 5 guests

cron