Пора и к зрению с навигацией приступать!

Обсуждаем рождающиеся мысли и результаты экспериментов.

Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 25 сен 2009, 22:34

Вставка для удержания темы в рамках конструктивного русла первого этапа проекта (чего не обсуждаем в этой теме):
1. Не рассматриваем стереозрение;
2. Не рассматриваем лазерную линию;
3. Не рассматриваем обработку видео на платформах отличных от ПК;


Итак - вроде на первое время с механикой и электроникой разделались, пора браться за более развесистые задачи :)

А чтобы не было скучно - предлагаю всем обладателям платформ с камерами или желающим обзавестись таковой попробовать объединить усилия.

Предлагаю разработать типовые решения для пачки задач с возможностью подключения закрытых модулей, например распознавалки от EDV'а или стереозрения от Vorral'а. Ну и к ним просьба естественно в итоге как минимум обеспечить закрытые модули под линух.

Предварительный этап предлагается делать под виндой, все кто под линухом - ставят виртуалбоксы, падение производительности порядка 2 раз постараемся компенсировать эффективными алгоритмами.

Первичные простейшие задачи, которые надо будет решить:
1. Построение модели камер и функций преобразования координат (для калибровки);
2. Определялка расстояния на базе камеры + лазерной указки;

Сложная задача А: Глобальная навигация - SLAM в базовом варианте с уникальными маяками (с объявленным интерфейсом по распознаванию маяков - для ориентации в подготовленном и неподготовленном пространстве);

Сложная задача Б: Локальная навигация - использование камеры (и возможно лазерной указки или ИК-дальномера) для координации действий манипулятора.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение EDV » 29 сен 2009, 09:41

=DeaD= писал(а):2EDV: MS Visual C++ 2008 Express Edition хватит для работы?


Думаю что "MS Visual C++ 2008 Express Edition" хватит, нам нужен только компилятор (а не множество дополнительных компонент).

После инсталляции (и компиляции) библиотек wxWidgets-2.8.x и OpenCV_1.0 необходимо указать дополнительные папки для компилятора:

Options/Directories/Include files:
<Install_Dir>\OPENCV\CV\INCLUDE
<Install_Dir>\OPENCV\CVAUX\INCLUDE
<Install_Dir>\OPENCV\CXCORE\INCLUDE
<Install_Dir>\OPENCV\OTHERLIBS\HIGHGUI
<Install_Dir>\OPENCV\OTHERLIBS\CVCAM\INCLUDE
<Install_Dir>\WXWIDGETS-2.8.10\LIB
<Install_Dir>\WXWIDGETS-2.8.10\LIB\VC_LIB\MSW
<Install_Dir>\WXWIDGETS-2.8.10\LIB\VC_LIB\MSWD
<Install_Dir>\WXWIDGETS-2.8.10\INCLUDE
<Install_Dir>\WXWIDGETS-2.8.10\INCLUDE\MSVC


Options/Directories/Library files:
<Install_Dir>\OPENCV\LIB
<Install_Dir>\WXWIDGETS-2.8.10\LIB
<Install_Dir>\WXWIDGETS-2.8.10\LIB\VC_LIB
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 09:45

Ок, вечером тогда попробую запустить и надеюсь нас станет уже двое, а там и остальные подтянутся :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение Dimitri » 29 сен 2009, 10:05

По поводу поиска цвета в спектре, зачем изобетать велосипед когда многое придумали до нас, вот алгоритм поиск ближайшего цвета в палитре http://algolist.manual.ru/graphics/find_col.php
Дорогу осилит идущий.
Аватара пользователя
Dimitri
 
Сообщения: 144
Зарегистрирован: 26 ноя 2008, 16:44
Откуда: Москва
Skype: wayfarerdimitri
прог. языки: VC++, немного asm, php, jScript,XSLT,LUA

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 10:39

А давайте прекратим в теме писать про всё подряд? Ну не просил я подсказывать мне, как сокращать цветовое пространство или искать тупым перебором ближайший цвет в палитре (что, кстати, есть совсем другая задача и более ресурсоёмкая - в указанном случае - на 2 порядка). Кстати, я с ходу могу написать более оптимальный алгоритм поиска цвета в палитре, который будет на порядок быстрее, при работе по крупному изображению ;)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 29 сен 2009, 11:56

>Ну не просил я подсказывать мне, как сокращать цветовое пространство
Я подсказывал именно в контексте быстрого выделения(занести их в переменную и потом собрать в фигуру, раз плюнуть) всех пикселей пучка лазера, а не сокращения цветового пространства. И сделал это по тому как здесь начали писать глупости про светофильтры и прочию лабуду.
Или если тебе всё так легко и очевидно, почему сам советовал раньше людям искать лазер, таким дурацким способом? Сам так искал в LaserBall?
=DeaD= писал(а):Февраль 17th, 2009, 8:31 pm
Выделить красный - надо смотреть на практике, возможно надо будет каждый пиксель обработать простой функцией проверки на красный цвет типа RGB проверить на то, что R*K>G+B, где К - надо подбирать, например К=1.4

Я бы не стал писать своё предложение, если бы не прочёл когда то этот пост. Я боялся, что ты снова обработаешь всю матрицу 320х240
этой "простой" функцией, потратив впустую время процессора, когда он находится не на пикселях пучка лазера. В моём же способе не красные пиксели сокращаются и одинаковый спектр выделяется одной цифрой(можно сразу выделять в фигуры), для удобства их использования в будущем. Ведь конечная цель не просто аналог шарпа. Кстати нужно ставить его не параллельно, а под наклоном и на определённом расстоянии от камеры(об этом уже говорили не раз), двумя способами вымерять расстояние надёжнее.

Добавлено спустя 3 минуты 16 секунд:
Про способ выше я вообще молчу, такое надо было ещё догадаться посоветовать.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 11:58

2Vorral: Если в контексте выделения пятна лазера - тогда обоснуй - чем твой метод лучше? Тем что потом куда-то еще это использовать? Пятно скорее всего попадёт в несколько твоих интервалов и субпиксельный метод потом неясно как применять.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 29 сен 2009, 12:10

Да так и есть пускай хоть в десять попадёт, только удобнее будет. Это зависит от той "рамки"(я писал о 16, у меня она задаётся при старте программы) которая будет выбрана, будет несколько вариантов. Или весь спектр лазера попадёт в одно значение из 4096. Или в несколько, например центр (15,1,1), внешнее кольцо (15,2,2). Этот спектр просто нужно один раз вбить(экспериментально) меняя значения рамки и оценивая результат. А потом он будет безошибочно его всегда находить(но может только красные светодиоды на телевизоре или приборах, будут иметь схожий спектр).

Добавлено спустя 1 минуту 39 секунд:
И уже КАК бонус/задел на будущее получаем обработанные остальные области. Разве плохо??
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 12:16

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

Добавлено спустя 25 секунд:
А то это получается какой-то поиск вопросов на свои ответы ;)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 29 сен 2009, 12:33

>субпиксельный метод потом неясно как применять
Я же применял :). Правда всего добавляя одно деление - 0,5.
>сечения будет явная жесткая граница
Граница тоже в пикселях. Делить спектр одного пятна нужно обязательно в любом случаи, ведь возможно искривление пятна(попал на наклонную плоскость). Вот каким значением делить, это дугой вопрос. Он уже лежит в "экспериментальной плоскости". Найдя яркий центр пятна и "ореол" от него, можно довольно уверенно утверждать и о искривлении пятна, и о расстоянии до него и то что это вообще наш лазер :).

Добавлено спустя 6 минут 13 секунд:
и никогда не будет этот метод медленнее, всё как раз наоборот. Как я только не извращался со способами(включая адаптивные) выделения фигур, этот простой и эффективный.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 12:39

2Vorral: это не метод выделения фигур, а метод выделения цветового диапазона на изображении.
Метод выделения фигур чуток посложнее будет.

Добавлено спустя 4 минуты 4 секунды:
Ну и наконец, как я уже говорил сотню раз по разным поводам, - нету постановки задачи - невозможно оценить эффективность решения. А это огромная проблема.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 29 сен 2009, 12:45

У меня просто следующим этапом идёт как раз выделении одинаковых цифр и условия нахождения на расстоянии не дальше 1 пикселя(во все 8 сторон) друг от друга в фигуру. Чтобы не быть голословным, покажу как не плохо выделятся даже спектр от лампы не то что от лазера(правда там изначально картинка из JPG и сжатие дало свой эффект)
Вложения
7.JPG
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 12:50

Остановись! :) Без постановки задачи тяжело обсуждать какое решение лучше.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 29 сен 2009, 13:01

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

Добавлено спустя 5 минут 56 секунд:
Вот теперь всё молчу, вроде всё сказал :)
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение flyroman » 29 сен 2009, 19:08

vorral , 2 вопроса к тебе:
как в любом докладе)))

1. какие ты методы знаешь, кроме того который ты привел?
2. чем твой метод лучше остальных?
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…
Аватара пользователя
flyroman
 
Сообщения: 1266
Зарегистрирован: 12 янв 2009, 21:39
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 29 сен 2009, 19:10

Модератор "=DeaD=":2flyroman: устное предупреждение, см. пункт 5.2.2. правил
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31