lebaon писал(а):так и написано, робот запоминает, где и что стоит, если проезжая тут через пять минут он видит, что что то сдвинулось, то для этого объекта он повышает уровень подвижности и уже меньше учитывает его положение, если он видит, что объект двигается сам, то ему сразу повышается уровень подвижности до максимума
Опуститесь с небес на землю
Что конкретно и как должен запоминать робот, как потом искать соответствие "где это мы" при нечетком и негарантированном определении и т.п. - вот интересные задачи, а на таком уровне я сам мильон правил поведения нарисую
//так и написано, робот запоминает, где и что стоит, если проезжая тут через пять минут он видит, что что то сдвинулось, то для этого объекта он повышает уровень подвижности и уже меньше учитывает его положение, если он видит, что объект двигается сам, то ему сразу повышается уровень подвижности до максимума
Понимаете, это все и так понятно. Задача с естественными маяками появилась для того что бы понять как выявлять эти маяки, а не как по ним ориентироваться, это то как раз не сложно. Предложенный Вами выше алгоритм в данном случае, по крайней мере, в предложенном варианте, не подходит.
//В принципе в OpenCV есть "FeatureDetector", но это скорее для датчиков движений визуальных, маловероятно, что таких "фич" на картинке будет достаточно для маяков (непонятна стабильность этих фич при рассмотрении их с разных сторон).
На сколько я понял, речь идет о функции GoodFeaturesToTrack? Если так, то это близкий вариант к тому, что нам надо, если нет то дай более точную наводку. Эта функция работает с помощью детектора углов. В принципе, сама идея использования углов мне нравится, но нужно, как ты уже заметил, исследовать стабильность. Что касается функции GoodFeaturesToTrack, то она дает не совсем качественные точки, например, на ребрах предметов, а значит она может выдать маркеры перемещающиеся вдоль предмета, что не хорошо, так как это означает, что маяк перемещается в пространстве. Нужно выделять именно углы, так как они, как правило, очень стабильны. А вот над тем, как их выделить, нужно уже думать. Для начала нужно поэкспериментировать с детекторами углов. Соответствующие функции на обе известные реализации детекторов углов есть в OpenCV. Этот же детектор углов нужно еще попробовать использовать на карте глубины. Я думаю, что с этими экспериментами пока стоит повременить, и больше налечь на 3д реконструкцию, как и планировалось. Но если у тебя будет время, можешь попробовать.
Еще одно соображение, это попытаться выявлять и распознавать области однородной закраски, текстуры, или глубины. И попытаться каким-то образом выявить их инвариантные относительно поворотов характеристики. Тоже можно попробовать по отношению к различным контурам. С контурами правда есть загвоздка. Они часто имеют разрывы, но можно пробовать экспериментировать с контурами однородных областей.
Сергей Мальцев писал(а):На сколько я понял, речь идет о функции GoodFeaturesToTrack? Если так, то это близкий вариант к тому, что нам надо, если нет то дай более точную наводку.
Речь именно про неё.
Сергей Мальцев писал(а):Эта функция работает с помощью детектора углов. В принципе, сама идея использования углов мне нравится, но нужно, как ты уже заметил, исследовать стабильность. Что касается функции GoodFeaturesToTrack, то она дает не совсем качественные точки, например, на ребрах предметов, а значит она может выдать маркеры перемещающиеся вдоль предмета, что не хорошо, так как это означает, что маяк перемещается в пространстве. Нужно выделять именно углы, так как они, как правило, очень стабильны. А вот над тем, как их выделить, нужно уже думать. Для начала нужно поэкспериментировать с детекторами углов. Соответствующие функции на обе известные реализации детекторов углов есть в OpenCV. Этот же детектор углов нужно еще попробовать использовать на карте глубины. Я думаю, что с этими экспериментами пока стоит повременить, и больше налечь на 3д реконструкцию, как и планировалось. Но если у тебя будет время, можешь попробовать.
Еще одно соображение, это попытаться выявлять и распознавать области однородной закраски, текстуры, или глубины. И попытаться каким-то образом выявить их инвариантные относительно поворотов характеристики. Тоже можно попробовать по отношению к различным контурам. С контурами правда есть загвоздка. Они часто имеют разрывы, но можно пробовать экспериментировать с контурами однородных областей.
С одной стороны можно и отложить, с другой стороны как раз эта область сейчас закрыта меньше всего, различного вариант 3D-реконструкторов полно, в том числе можно взять мой, вроде-бы рабочий, вариант.
//С одной стороны можно и отложить, с другой стороны как раз эта область сейчас закрыта меньше всего, различного вариант 3D-реконструкторов полно, в том числе можно взять мой, вроде-бы рабочий, вариант.
Мне не хочется распыляться, особенно пока нас работает только двое. На сколько я понял твой алгоритм, он выдает не очень много точек для реконструкции, порядка 10-20 на всю картинку, мне кажется это маловато. Другие методы, вроде, дают гораздо больше.
Сергей Мальцев писал(а):На сколько я понял твой алгоритм, он выдает не очень много точек для реконструкции, порядка 10-20 на всю картинку, мне кажется это маловато. Другие методы, вроде, дают гораздо больше.
Во-первых так его расширить на эти "гораздо больше" - копеечное дело, главное что он покрывает >50% изображения осмысленного (не монотонного).
Во-вторых слухи о смерти моего алгоритма сильно преувеличены там даже на тестовой картинке >200 фрагментов распознано, так что минимум 200 точек, а не 10-20!
//Во-первых так его расширить на эти "гораздо больше" - копеечное дело, главное что он покрывает >50% изображения осмысленного (не монотонного). Во-вторых слухи о смерти моего алгоритма сильно преувеличены там даже на тестовой картинке >200 фрагментов распознано, так что минимум 200 точек, а не 10-20!
Ну так и хорошо тогда тебе и карты в руки, попробуй доработать свой алгоритм так, чтобы он по всем точкам картинки проходился. Потом надо бы посмотреть результаты. Если они будут удовлетворительными, перейдем к задаче маяков. Но все равно надо доразбираться с существующими системами, может чего ценного заметим.
Сергей Мальцев писал(а):Ну так и хорошо тогда тебе и карты в руки, попробуй доработать свой алгоритм так, чтобы он по всем точкам картинки проходился. Потом надо бы посмотреть результаты. Если они будут удовлетворительными, перейдем к задаче маяков. Но все равно надо доразбираться с существующими системами, может чего ценного заметим.
Сергей Мальцев писал(а):Ну так и хорошо тогда тебе и карты в руки, попробуй доработать свой алгоритм так, чтобы он по всем точкам картинки проходился. Потом надо бы посмотреть результаты. Если они будут удовлетворительными, перейдем к задаче маяков. Но все равно надо доразбираться с существующими системами, может чего ценного заметим.
Вот ничего себе, а как же коллективная работа?
Ну так, я думал у тебя там и делать-то особо нечего чтоб заработало Просто я-то все больше о сайте пока думаю.
Нужно попробывать использовать в качестве маяков точки высокой диспресии (а может и более высокие моменты), может еще экстремумы яркости. Они должны быть довольно стабильными. Но имеют и минусы, вроде чуствительности к направлению и расстоянию. Но у меня есть кое-какие соображения, как устранить эти проблемы. Об этом позже, нужно подумать как это понятно изложить.
Господа, а почему бы неиспользывать 2-х мерный маяк набранный из светодиодов. Видеокамера прекрасно их видит и естественно будет легко их выделить из картинки.
EdGull писал(а):Господа, а почему бы неиспользывать 2-х мерный маяк набранный из светодиодов. Видеокамера прекрасно их видит и естественно будет легко их выделить из картинки.
Потому что, мы хотим ориентироваться в естественной среде, а то что Вы предлагаете довольно примитивно, и не представляет особого интереса.