roboforum.ru

Технический форум по робототехнике.

openCV, две камеры (стереозрение)

openCV, две камеры (стереозрение)

Granin » 17 апр 2014, 22:56

Доброго суток времени.

Перелопатил много страниц, большинство тем очень старые и ответов полных нету. Посему прощу вашей помощи.

Задача такая. Есть две обычные веб-камеры , нужно сделать:
1) Найти объект исходя из-заданного шаблона. (в идеале с видео - объект может двигаться после обнаружения, нужно продолжать следить) (что по идее с стереозрением должно быть точнее чем с одной камерой нет? проще выделить объект)
2) Рассчитать расстояние до него.

Для одной камеры поиск объекта расписан более менее.
Но вот с двумя хотелось бы найти готовое решение дабы разбирать уже их.
Т.е. даже банальное подключение камер. К двум разным usb? Как обрабатывать?

Потом хотелось бы обнаружение объекта уже по 3D шаблону, ведь наверняка точнее будет.

Вообщем буду благодарен за ссылки и информацию, заранее большое спасибо.
Всё что буду собирать буду публиковать в свободный доступ.

П.С.
дальнейший шаг посадить на моторчик дабы камеры вертелись пока не найдут объект.

Re: openCV, две камеры (стереозрение)

WETErok » 18 апр 2014, 13:34

По поиска объекта не скажу не занимался этим.
На счет стерео, первое нужно озаботится синхронизаций кадров с двух камер, что бы они одновременно приходили. Если камеры не синхронизированы то алгоритм становится сложнее. Если нет движений камеры, объектов можно обойтись без синхронизации.
Второе это жестко закрепить камеры что бы оси объективов были максимально параллельны.
Третье в зависимости от разрешения камер, расстояние до объекта посчитать стерео базу которая потребуется.
Четвертое стерео калибровка камер http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration

Вот после этого уже можно говорить об алгоритмах получения расстояния.

Re: openCV, две камеры (стереозрение)

Granin » 18 апр 2014, 15:35

Да в теории я всё это знаю, спасибо. Вот тут хорошо описано
http://tjpstereovision.googlecode.com/h ... erslag.pdf

Меня интересует реализация. Реальный рабочий пример под windows с openCV.

Re: openCV, две камеры (стереозрение)

AlexKit » 19 апр 2014, 12:14

А зачем на моторчик сажать? там же все размажется и ничего не сможете определить-), для этого надо ооочень быстродействующую камеру (~300-500fps), тогда выйдет. у меня схожая задача, и камеры любые есть, а вот кто готов взяться за проект нет-))(готов поделиться работой), надо на FPGA писать, в крайнем случае на ARM, на обычном компе не очень-)

Re: openCV, две камеры (стереозрение)

Granin » 19 апр 2014, 13:24

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

Насчёт windows, меня интересуют роботы и т.п. но не в качествен отдельной теме. Если писать прогу для робота на основе windows то выстрелом можно убить пару зайцев, попутно обучаясь написанию софта под ПК.

Re: openCV, две камеры (стереозрение)

AlexKit » 19 апр 2014, 14:00

Granin писал(а):Насчёт windows, меня интересуют роботы и т.п. но не в качествен отдельной теме. Если писать прогу для робота на основе windows то выстрелом можно убить пару зайцев, попутно обучаясь написанию софта под ПК.


Лучше сначала научиться писать на С например, а потом алгоритмы, на ура, переносятся на любые платформы. с роботами сложнее, надо кучу вспомогательных алгоритмов одновременно поддерживать. но отдельно стерео изображение не лучший вариант решения, ИМХО, надо все сразу алгоритмы определения 3D координат использовать, большую память на 500-1000кадров, и потом успевать это все анализировать, вот тогда будет корректный результат.

Re: openCV, две камеры (стереозрение)

Granin » 19 апр 2014, 14:06

пишу на C++ (учусь во всяком случае)
А насчёт сразу... Так как работаю один и слабо разбираюсь в теме, лучше по чуть-чуть :)
Вообще пока попробую с одной камерой, определение объекта, после постараюсь перенести на две и уже добавить расчёт расстояния.
А далее связку на двигатели и движение к объекту...

Re: openCV, две камеры (стереозрение)

AlexKit » 19 апр 2014, 15:18

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

Re: openCV, две камеры (стереозрение)

Granin » 19 апр 2014, 15:26

Да я ведь не спорю что испытано. Но вот найти готовое решение для моей задачи что-то пока не очень получается - хотя я уверен что где-то они есть. А задачку надо решить.

Re: openCV, две камеры (стереозрение)

WETErok » 19 апр 2014, 18:50

Прежде чем изобретать свой велосипед неплохо бы изучить существующие и попробовать, не слушайте Alex-а :) вы совершенно правы.
А про подготовку камер не зря написал, в теории всё просто, а на практике пару месяцев уйдет. Лучше конечно отказаться от вебки и купить уже стерео камеру.

Ну или сделать доброе дело для общества заставить работать ps4 eye http://ps4eye.tumblr.com/

Re: openCV, две камеры (стереозрение)

lutorster » 11 сен 2014, 03:37

Продолжения этой темы нету (((, мне тоже интересен этот материал, правда у меня две камеры ps3 eye. Как только будут какие то успехи сразу отпишусь.

Re: openCV, две камеры (стереозрение)

WETErok » 29 сен 2014, 18:01

Не совсем стерео и совсем не openCV но всё же напишу может кому интересно будет.
Есть два проекта SVO https://github.com/uzh-rpg/rpg_svo и LSD-SLAM http://vision.in.tum.de/research/lsdslam они для монокулярного изображения.
Но что я сделал, беру две камеры и через openCV соединяю кадры с левой и правой камеры в один видео поток. При чем между собой камеры не калиброваны. Пробовал на проекте SVO, до второго еще руки не дошли. Зачем это нужно было делать. Первое это то что не требуется синхронизация камер, что очень нужно в стереозрении. Второе не требуется ручная инициализация монокулярной камеры. Третье это безболезненное вращение камеры вокруг своей оси без потери ориентации.

Re: openCV, две камеры (стереозрение)

Vorral » 02 окт 2014, 01:54

Тяжело с ROS работать? Какой у неё интерфейс? Или всё делается из консоли? После установки пакетов для неё как осуществляется взаимодействие между ними?

Re: openCV, две камеры (стереозрение)

WETErok » 02 окт 2014, 05:43

*оффтопик*
С ROS работать не тяжело мне хватило этих статей http://robocraft.ru/page/robotics/#ROS (на новых версиях уже некоторые команды не будут работать). Главное что есть в ROS это правила обмена сообщениями между пакетами. Сложность в том что это не какойто законченный продукт в нем разные пакеты разных производителей, плюс к этому ROS сама каждый год обновляется и сложно бывает заставить работать какой то пакет.
Но можно не использовать чужие пакеты а писать свои, а ros использовать для обмена информацией между ними.

90% управления из консоли. Есть пакеты для отображения, так же ничего не мешает самостоятельно написать пакет или интерфейс для вывода или управления.

Re: openCV, две камеры (стереозрение)

Павел_Сергеевич » 26 мар 2015, 13:42

приветствую всех. я не могу подружить open CV с visual studio 2010 express. на include перестал ругатся но функции все равно красным подчеркивает и говорит, фунция не определена. кучу инфы перерыл, даже на англоязычных сайтах!
хочу пройти обучалку http://robocraft.ru/blog/computervision/265.html
а не могу, так как не работают многие функции.


Rambler\'s Top100 Mail.ru counter