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
};

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

Vorral » 27 май 2009, 11:45

Меня не волнуют подробности(меня устроит ответ "сможет" или "не сможет" распознать), мне это важно, для понимания возможностей системы навигации, созданной на основе AVM.

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

=DeaD= » 27 май 2009, 11:52

2Vorral: Очевидно же, что блики и форму кружки могут подпортить, да и не думаю что по форме контура работает всё у EDV, это был бы ущербный алгоритм тогда.

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

EDV » 27 май 2009, 11:53

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

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

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


Тема: Recognition (Yeremeyev method)

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

Vorral » 27 май 2009, 12:04

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

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

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:
Недостатки всегда есть и везде. Вопрос только в их количестве и влиянии на работу в целом.

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 - это потом передавать надо будет эту штуку процедуре распознавания, чтобы она в окресности этот объект поискала?

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

EDV » 27 май 2009, 12:11

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


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

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

=DeaD= » 27 май 2009, 12:12

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

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

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

В общем понял примерно, хотя с функцией удаления образа не ясно - она просто не реализована, потому что не надо было или она сложно реализуется?

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

Vorral » 27 май 2009, 12:23

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

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);

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

=DeaD= » 27 май 2009, 12:39

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

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

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

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

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

D1mcon » 27 май 2009, 13:37

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

Давайте решать проблемы от простого к сложному. :) И вообще нам важно что это дерево? Мне важнее что препятствие ну или цель (конечная точка) движения.

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

EDV » 27 май 2009, 13:42

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

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

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

Нет, это всего сколько образов (всех объектов какие есть) хранится в дереве. А вот сколько образов соответствует конкретному объекту узнать не получится. Такой функции пока что не реализовано (но можно сделать).
Последний раз редактировалось EDV 27 май 2009, 13:48, всего редактировалось 1 раз.

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

Vorral » 27 май 2009, 13:45

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


Rambler\'s Top100 Mail.ru counter