А то запоминаем то? Тупо часть экрана одну? Или всё-таки видимые из текущей точки на кадре маяки (как их идентификаторы в памяти) + их координаты в кадре?
Нее... надо описание русским языком всё-таки иметь
А что за координаты сохраняем? Своего положения? центральную часть запоминаем - т.е. тупо если мы тут уже были, то видим ту же картинку и она у нас всплывает из памяти? Так что ли?
>Первая AVM нужна, что бы с помощью маркеров сумет определить, на сколько сдвинулась камера, некий аналог энкодеров Скорее Optical-flow на AVM.
Добавлено спустя 35 минут 55 секунд: Самый главный вопрос в том, как вы собираетесь строить карту помещения? Ведь вы не знаете на каком расстоянии находится даже самый первый маркер.
EDV писал(а):Первая AVM: координаты экранных привязок (маркеров). Вторая AVM: координаты местоположений (наши координаты на карте).
А что к чему привязывается? В обоих случаях к картинке лепится что-то? Или как?
Добавлено спустя 1 минуту 41 секунду: А, похоже понял. В первую AVM кладутся координаты пачки наиболее хорошо распознаваемых образов и сами образы, а во вторую тупо средняя часть экрана и наши расчетные координаты в пространстве, или какой-то другой маркер места, например мы тупо роботу говорим "ты на кухне" и он этому экрану в соотв. ставит "кухня" - так?
Как я вижу: Первый AVM, нужен для просчёта на сколько мы сдвинулись. Во втором AVM, лежат привязка образов к месту на карте. Если например робот вернулся в положение с которого начинал или проезжал, он типа сразу может понять что вернулся в начало или в некую уже пройденную точку пути, несмотря на то, что траектория его движения по первой AVM пришла не до конца точно в эту точку. Но карта местности то от этого не появится, таким образом получается некий аналог отслеживания движений мышки + узнавание ею каких то мест где она уже проезжала.
Vorral писал(а):Самый главный вопрос в том, как вы собираетесь строить карту помещения? Ведь вы не знаете на каком расстоянии находится даже самый первый маркер.
А мне и не нужно знать на каком расстоянии расположен первый маркер, мне важно знать на какое расстояние и в каком направлении двигался робот от предыдущего местоположения. То есть, если я сохранил вид из камеры в местоположении 0 (начало координат), потом проехал какое-то расстояние и AVM_2 уже не может распознать вид из камеры, то по маркерам AVM_1 я определю, что проехал расстояние S в направлении (по горизонту) hA, приплюсую полученные дельты к координатам предыдущего местоположения и проассоциирую новый вид из камеры с полученными координатами.
=DeaD= писал(а):А что к чему привязывается? В обоих случаях к картинке лепится что-то? Или как?
Все координаты заданы в неких относительных единицах, где 1 по X – это ширина всего экрана, 1 по Y – это базовая ширина маркера (72% от ширины экрана), и 1 по Z – это высота всего экрана. В данной модели ось Y уходит вглубь экрана, а ось Z – это вертикаль.
AVM_1[маркеры]: p[0] – экранные привязки (в относительных координатах), то есть как перемещалась камера относительно экрана; p[1] – координаты местоположения (в относительных координатах), то есть с какой точки (на карте) смотрела камера на этот маркер.
AVM_2[местоположения]: координаты местоположения (где мы на карте) и углы наблюдения (вертикальный/горизонтальный), то есть в каком направлении смотрит камера.
2EDV: Я думаю при таком алгоритме и существующей точности AVM - мы получим огромные погрешности. Кстати, как из AVM_1 можно получить информацию о расстоянии? Ведь мы только увидим на сколько % изменился размер маркеров - если маркеры изменились в 1.5 раза - мы просто стали к ним в 1.5 раза ближе, а откуда брать абсолютную величину?
2=DeaD=: Всё верно, всё что у нас есть, при таком подходе – это относительные координаты (никаких абсолютных величин), ну и погрешности тоже имеют место. Просто хотелось предложить простую, но тем ни менее работающую модель определения местоположения по визуальным ориентирам (как один из вариантов). Если есть другие соображения, давайте рассмотрим. На данном этапе важно генерировать побольше различных идей (даже самых бредовых).
>Я думаю при таком алгоритме и существующей точности AVM - мы получим огромные погрешности >а откуда брать абсолютную величину? Наконец то. Я давно пытаюсь обратить ваше внимание на то, что информации от одной камеры(имеется ввиду при отсутствии разного рода дальномеров или лазерной линии) недостаточно для того чтобы подобная система могла носить названия топика. Единственная возможность определить расстояние до предмета при одной камере, это допустим упереться в те же обои и когда двигатель больше нас не двигает, мы знаем(и то не всегда!) на каком расстоянии от камеры находится предмет и можем масштабировать его обратно(как уже говорили с огромными погрешностями). Как вы думаете человек живёт с одним глазом? Ведь никто не отнимал у него тактильных способностей, да и представить размер объекта, он может видя тех же людей, на его фоне. Подходя к объекту вплотную, тем самым меряя его по себе. У него постепенно скапливается опыт, который мы не можем сразу дать роботу, хоть тресните. И как следствие с одной камерой невозможно нормально составить карту помещения в автоматическом режиме, значит ни о какой навигации речь идти не может.
Ну, насчёт обнаружения стен, или препятствий, которые совсем близко, тут у меня есть одно соображение. Дело в том, что AVM для распознавания обязательно нужно изображение с достаточным количеством контрастных переходов. Что бы научить AVM на какое-то изображение, нужно, что бы на этом изображении присутствовала какая-то «картинка» (нельзя научить на белый лист бумаги). А у меня на радиокамере стоит ИК подсветка, и когда робот подъезжает близко к стене, камера ослепляется (нет изображения). Соответственно для AVM больше нечего распознавать и робот останавливается (не доезжая до стены/препятствия).
Это конечно хорошо, но у меня допустим есть очень контрастные обои с мелким рисунком, которые плохо отражают ИК. Я и говорю про то, что как в случаи с ИК, обязательно нужен дополнительный инструмент, те же дальномеры, или на самый худой конец - лазерная указка. Т.е. система должна стать активной, потому как с одной камерой без заранее вбитой базы с объектами и их размерами, невозможно выудить точную информацию о дальностях, а очень хочется знать о препятствии заранее, так же как и знать как его можно объехать.
=DeaD= писал(а):2EDV: Я думаю при таком алгоритме и существующей точности AVM - мы получим огромные погрешности. Кстати, как из AVM_1 можно получить информацию о расстоянии? Ведь мы только увидим на сколько % изменился размер маркеров - если маркеры изменились в 1.5 раза - мы просто стали к ним в 1.5 раза ближе, а откуда брать абсолютную величину?
робот по любому оснащен енкодерами движения ,(чтоб знать насколько повернул и куда)и с них же и получили сколько проехали... простое уравнение _проехав метр приблизились в полтора раза, еше одно подобное уравнение и решив систему получаем где обьект))=растояние до обьекта
Добавлено спустя 6 минут 8 секунд: хм ик подсветка камеры чем не активное то?мошьный ик бампер)))из камеры, и давайте пожалуйстао частные случаи,типа: тьма низги не видно ,ай там паутину не заметит ,и плин! а тут стеклянные двери ...временно не рассматривать.. я сам вроде палюбому с двумя глазами и то в перечисленных выше случаях частных,предпочитаю не находиться))
Добавлено спустя 7 минут 49 секунд: Воррал грешно требовать при разработке зрения ,чтоб робот усы из себя выбрасывал когда не понимает где он ,на осчупь двигаться это саавсем другая песня),а люди так и поступают когда не видят куда идут))