roboforum.ru

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


Автономная навигация робота

Здесь расположены обсуждения и проекты, которые с точки зрения администрации форума представляют наибольший интерес.
Правила форума
В этом форуме новые темы не создаются, однако обсуждение допустимо.

Re: Автономная навигация робота

Сообщение EDV » 27 май 2009, 11:40

=DeaD= писал(а):Порог подобия отмеряется от последнего обученного или от первого обученного образа?

И какой формат данных сейчас возвращает функция распознавания?


Нет не последнего не первого обученного образа. Есть множество образов (с одним и тем же экземпляром ассоциированных данных, в нашем случае индекс объекта) соответствующее искомому объекту.

Коэффициент подобия (Similarity 0…1). Если Similarity больше 0.5 объект распознан, если меньше, значит не распознан.

Соответственно верхний порог 0.54 – объект плохо распознаётся, нижний порог 0.45 объект не распознан, но обучение допустимо.

По каждому распознанному объекту в call-back функцию передаётся структура:

Код: Выделить всёРазвернуть
// Parameters structure for recognition function
struct CvAM_Parameters {
   CvRect   ObjRect;            // Rectangle where object found
   double   Similarity;         // Similarity of the interest area to an object (0 ... 1)
   long     TotalABases;        // Total number of associative bases
   void**   ppUserTrackingInfo; // Pointer to the tracking info data written by user
};
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение Vorral » 27 май 2009, 11:45

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

Re: Автономная навигация робота

Сообщение =DeaD= » 27 май 2009, 11:52

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

Re: Автономная навигация робота

Сообщение EDV » 27 май 2009, 11:53

Vorral писал(а):Очень интересно как система распознавания отнесётся, например к монотонно чёрной кружке? На которой будут ходить разного рода блики? Т.е. фрагменты одного объекта будут делится в разных пропорциях(разные блики), но всё же в сумме всегда будет получаться форма кружки?

Ну одно могу сказать, AVM не боится темноты (работает адекватно в таких условиях) и если обучили на блики, а потом блики убрали и попросили распознать, то если степень схожести слишком низкая просто ничего не распознается.
=DeaD= писал(а):2Vorral: А может подробности работы системы распознавания в другой ветке? :)

2EDV: Дай линк людям, куда такие вопросы задавать, плиз?


Тема: Recognition (Yeremeyev method)
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение Vorral » 27 май 2009, 12:04

=DeaD= писал(а):да и не думаю что по форме контура работает всё у EDV, это был бы ущербный алгоритм тогда.

:lol: Здесь согласен с контурами, только чайники работают
>просто ничего не распознается
а ведь для живого существа это не проблема. ИМХО: Считаю, что зрительные алгоритмы не должны иметь существенных(не добавил это слово раньше, так как казалось очевидным, что мелкие оплошности неизбежны, ровно так же, как и не столь важны :) ) недостатков(в некоторых моментах слишком высока цена ошибки).
Последний раз редактировалось Vorral 27 май 2009, 13:34, всего редактировалось 3 раз(а).
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Автономная навигация робота

Сообщение D1mcon » 27 май 2009, 12:08

Может помимо работы с AVM, стоит почитать еще и книги, я с рапознаванием пока не работал, поэтому считаю нужным изучением теории в первую очередь.
Вот например:
http://www.kodges.ru/16274-cifrovaja-obrabotka-mnogomernykh-signalov.html
http://www.kodges.ru/13378-cifrovaja-obrabotka-izobrazhenijj.html
http://www.kodges.ru/34560-cifrovaja-obrabotka-signalov.-prakticheskijj.html
http://www.kodges.ru/10106-cifrovaja-obrabotka-izobrazhenijj-v-srede-matlab.html
http://www.kodges.ru/5620-cifrovaja-obrabotka-izobrazhenijj.html

Добавлено спустя 2 минуты 35 секунд:
Vorral писал(а): Считаю, что зрительные алгоритмы не должны иметь недостатков(в некоторых моментах слишком высока цена ошибки).

Так и хочется сказать в стиле СССР - "ДАЕШЬ ИДЕАЛЬНЫЙ АЛГОРИТМ !!!" :ROFL:
Недостатки всегда есть и везде. Вопрос только в их количестве и влиянии на работу в целом.
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники
Аватара пользователя
D1mcon
 
Сообщения: 700
Зарегистрирован: 08 фев 2009, 10:13
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий

Re: Автономная навигация робота

Сообщение =DeaD= » 27 май 2009, 12:08

EDV писал(а):Нет не последнего не первого обученного образа. Есть множество образов (с одним и тем же экземпляром ассоциированных данных, в нашем случае индекс объекта) соответствующее искомому объекту.

Ок, это хорошо. Но тогда вопрос - сравнение происходит со всеми образами сразу или с наиболее полно совпадающим? Т.е. допустим у нас есть ложка (обычная чайная :)) - её если крутить всяко - получится дофига слабо похожих друг на друга образов. Оно как в этом случае будет работать? Если дать какой-то образ уже имеющийся в библиотеке - она его опознает с Similarity близкой к 1 или нет?

EDV писал(а):Коэффициент подобия (Similarity 0…1). Если Similarity больше 0.5 объект распознан, если меньше, значит не распознан.

Это понятно.

EDV писал(а):По каждому распознанному объекту в call-back функцию передаётся структура:

Код: Выделить всёРазвернуть
// Parameters structure for recognition function
struct CvAM_Parameters {
   CvRect   ObjRect;            // Rectangle where object found
   double   Similarity;         // Similarity of the interest area to an object (0 ... 1)
   long     TotalABases;        // Total number of associative bases
   void**   ppUserTrackingInfo; // Pointer to the tracking info data written by user
};

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

Re: Автономная навигация робота

Сообщение EDV » 27 май 2009, 12:11

=DeaD= писал(а):Про несколько ассоциативных деревьев не понял, это твоя специальная разработка для ведения набора образов - это то ясно, а вот зачем их может быть нужно несколько? Чтобы распознавало только из набора образов этого дерева? А насколько менее эффективно будет распознавать 100 образов, если их разбить на 5 деревьев по 20 образов, чем если все 100 в одном дереве?


Эти методы были добавлены специально для «Optical flow». Там всё изображение разбивается на отдельные области и по каждой области своё ассоциативное дерево создаётся. Эти деревья хранят информацию об фрагментах предыдущего изображения, и при получении следующего изображения отчищаются (ClearTreeData) и перезаписываются новыми данными по полученному следующему кадру.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 27 май 2009, 12:12

Vorral писал(а):ИМХО: Считаю, что зрительные алгоритмы не должны иметь недостатков(в некоторых моментах слишком высока цена ошибки).

IMHO: Никакой алгоритм зрения не идеален.

Добавлено спустя 1 минуту 11 секунд:
EDV писал(а):Эти методы были добавлены специально для «Optical flow». Там всё изображение разбивается на отдельные области и по каждой области своё ассоциативное дерево создаётся. Эти деревья хранят информацию об фрагментах предыдущего изображения, и при получении следующего изображения отчищаются (ClearTreeData) и перезаписываются новыми данными по полученному следующему кадру.

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

Re: Автономная навигация робота

Сообщение Vorral » 27 май 2009, 12:23

Есть ещё один вопрос, связанный непосредственно с навигацией. На сколько успешно данный метод сможет вводить новые объекты(видит в первый раз)? Например, видим дерево, на разнообразном фоне, объезжая его вокруг(меняется фон),но фрагменты дерева(листья, ветки, ствол) будут перемещаться определённым образом(грех этим не воспользоваться). Есть ли возможность запомнить этот объект(дерево) без цвета фона?
Последний раз редактировалось Vorral 27 май 2009, 12:33, всего редактировалось 3 раз(а).
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Автономная навигация робота

Сообщение EDV » 27 май 2009, 12:32

=DeaD= писал(а):Но тогда вопрос - сравнение происходит со всеми образами сразу или с наиболее полно совпадающим? Т.е. допустим у нас есть ложка (обычная чайная :)) - её если крутить всяко - получится дофига слабо похожих друг на друга образов. Оно как в этом случае будет работать? Если дать какой-то образ уже имеющийся в библиотеке - она его опознает с Similarity близкой к 1 или нет?

Поиск по ассоциативному дереву вернёт данные ассоциативного ядра, матрица распознавания которого наиболее похожа на входное изображение, и в параметре Similarity укажет степень сходства.
1. Распознавалка обрабатывает повороты сама или нет?

Алгоритм AVM не является инвариантным к повороту изображения, так что необходимо будет запомнить объект под различными углами.
2. Что такое TotalABases?

Total associative bases – общее количество ассоциативных ядер, хранимых в дереве поиска.
3. Что такое ppUserTrackingInfo - это потом передавать надо будет эту штуку процедуре распознавания, чтобы она в окресности этот объект поискала?

Это указатель на структуру данных определяемую пользователем, которая привязывается к распознанному объекту в процедуре прослеживания (ObjectTracking). Я использовал этот указатель, что бы хранить там траекторию движения объекта (вы можете задать что-то своё).

Добавлено спустя 5 минут 30 секунд:
Vorral писал(а):Есть ли возможность запомнить этот объект(дерево) без характеристики фона?


Да, можно: apObjMaskImg - маска объекта.
Код: Выделить всёРазвернуть
// Set an image for processing
void SetImage(const void* apSrcImg, const void* apObjMaskImg = NULL);
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 27 май 2009, 12:39

EDV писал(а):Поиск по ассоциативному дереву вернёт данные ассоциативного ядра, матрица распознавания которого наиболее похожа на входное изображение, и в параметре Similarity укажет степень сходства.

А можно попроще? :) если имеем 10 разных образов одного и того же объекта и показываем один из образов которые запоминали - симиларити будет гарантированно близка к 1? Это минимум или что-то типа СКО по всем образам?

EDV писал(а):Total associative bases – общее количество ассоциативных ядер, хранимых в дереве поиска.

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

Re: Автономная навигация робота

Сообщение D1mcon » 27 май 2009, 13:37

Vorral писал(а):Есть ещё один вопрос, связанный непосредственно с навигацией. На сколько успешно данный метод сможет вводить новые объекты(видит в первый раз)? Например, видим дерево, на разнообразном фоне, объезжая его вокруг(меняется фон),но фрагменты дерева(листья, ветки, ствол) будут перемещаться определённым образом(грех этим не воспользоваться). Есть ли возможность запомнить этот объект(дерево) без цвета фона?

Давайте решать проблемы от простого к сложному. :) И вообще нам важно что это дерево? Мне важнее что препятствие ну или цель (конечная точка) движения.
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники
Аватара пользователя
D1mcon
 
Сообщения: 700
Зарегистрирован: 08 фев 2009, 10:13
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий

Re: Автономная навигация робота

Сообщение EDV » 27 май 2009, 13:42

=DeaD= писал(а):А можно попроще? :) если имеем 10 разных образов одного и того же объекта и показываем один из образов которые запоминали - симиларити будет гарантированно близка к 1? Это минимум или что-то типа СКО по всем образам?

Да, если объект, который предъявляется к распознаванию, был в обучающей последовательности изображений, то similarity должна быть близка к единице. Критерий сходства матриц распознавания прост: берётся разность коэффициентов матриц по абсолютному значению. И если эта разность не превышает некого порогового значения, то объект распознан. А коэффициент similarity берётся как отношение между полученной разностью матриц (входной и хранимой) и пороговым значением.

А если перевести на русский? Сколько образов что ли этого объекта у нас имеется? Или что?

Нет, это всего сколько образов (всех объектов какие есть) хранится в дереве. А вот сколько образов соответствует конкретному объекту узнать не получится. Такой функции пока что не реализовано (но можно сделать).
Последний раз редактировалось EDV 27 май 2009, 13:48, всего редактировалось 1 раз.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение Vorral » 27 май 2009, 13:45

>Да, можно: apObjMaskImg - маска объекта.
Ну это не то что я имел ввиду, да это и не столь важно. Главное, чтобы на основе вашего алгоритма, кто-нибудь попробовал реализовать настоящую навигацию, я имею ввиду брать в расчёт множество объектов и на основе уравнений из геометрии высчитывать координаты робота(ну и можно сопрягать её с показаниями энкодеров). Вот тогда и увидим, способна ли ваша технология позволить роботам ориентироваться(например я управляю роботом, а он на основе "визуальных" образов сообщает куда я переместился в локальных координатах и чтобы они не скакали по 10метров) в произвольном пространстве, а не по заранее подготовленным маякам. А дальше можно пытаться работать уже с маршрутом А-Б.
Последний раз редактировалось Vorral 27 май 2009, 14:01, всего редактировалось 1 раз.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Пред.След.

Вернуться в Золотой фонд

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

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