Определение расстояния с помощью двух веб камер

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

Определение расстояния с помощью двух веб камер

Postby Sergey Ivanov on 23 Jul 2012, 14:30

В общем, идея такая, ставим две веб камеры на каком-то расстоянии между ними. Камеры могут поворачиваться вокруг вертикальной оси. Изначально оси обеих камер параллельны.
Ставим маркер на известном расстоянии от камер. На изображении от одной камеры маркер будет посередине, на пример, а на другой немного смещён. После поворачиваем камеры так, чтобы маркер на изображении первой камеры и второй "совместился". Зная на сколько повернулись камеры и расстояние между ними узнаём расстояние. Реально ли такое реализовать в плане поиска маркера и совпадения его (про поиск видел тему с лазерной указкой, стало быть, можно) ?
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
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 IvanLis on 23 Jul 2012, 14:45

В Vision вроде есть функции определения расстояния

если самому делать, то наверное лучше камеры разместить параллельно, а расстояние вычислять по размещению объекта на двух кадрах
чем ближе, тем расстояние между объектом с двух камер будет больше
при удалении объекта они на изображении будут приближаться
и не надо ничего крутить
User avatar
IvanLis
professor
professor
 
Posts: 4628
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 727
hardware VIP bloggers teachers

Re: Определение расстояния с помощью двух веб камер

Postby AndreyDmitriev on 23 Jul 2012, 15:28

Крутить камеры действительно не надо. Смещение маркера на двух камерах однозначно даст нам расстояние до него. Ищите в интернете всё, что касается темы "Disparity Map" - это как раз то самое. Суть в том, что на основе двух изображений с камер строится третья картинка размером тем же что и исходные, а вот градациями серого кодируется расстояние до объектов. 0 - бесконечно удалённый объект, 255 - максимально приближенный. Получается что-то типа такого:
Image
На практике могу сказать лишь следующее - камеры должны быть хорошие, оси их должны быть строго параллельны (причём не только по горизонтали, но и по вертикали с субпиксельной точностью). Я программировал такое несколько лет назад - проще было застрелиться чем настроить. Ну а с дешёвыми веб камерами результат как правило - так себе. Впрочем если ограничиться единственным известным маркером, то может получиться и с веб камерами.
В библиотеке OpenCV, кстати, этот алгоритм реализован, но к лабвью я его пока не прикрутил.
Ещё как вариант - купить xbox kinect - он, по-моему, сразу карту глубины отдать может.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433


Return to Проекты

Who is online

Users browsing this forum: No registered users and 3 guests

cron