Технический форум по робототехнике.
Zeus » 13 авг 2010, 16:27
был бы читаем с максимального расстояния,
о каких величинах идет речь?
=DeaD= » 13 авг 2010, 16:59
Конкретные величины зависят от разрешения, четкости картинки, угла обзора камеры и т.п.
Я имею в виду "при заданной картинке 100х100 пикселей мы сможем найти и прочитать маяк меньших линейных размеров", но самое главное - в отличие от того же QCode здесь найти маяк будет проще, чем прочитать, а значит даже в некоторых кадрах где мы не смогли прочитать маяк мы сможем соотнести его с виденным только что маяком с номером рядом с этим местом, если рядом никаких других маяков не было.
=DeaD= » 15 авг 2010, 11:18
Вот такое изображение маяка

- mark0.jpg (12.45 КиБ) Просмотров: 3111
Вот таким фильтром ищем (если забить пока на возможность вращать маяк)

- mark2.jpg (35.23 КиБ) Просмотров: 3106
Вот так выглядит картинка после обработки фильтром

- mark1.jpg (11.72 КиБ) Просмотров: 3082
Только решил еще сдвинуть на полразряда сам код вокруг маяка, чтобы не создавать пересечения ключевого вида самим маяком и чтобы эффективно определять границы маяка.
=DeaD= » 15 авг 2010, 20:17
Вот поправленный маяк:
- Вложения
-

- beacon1.jpg (21.8 КиБ) Просмотров: 3087
Michael_K » 15 авг 2010, 22:43
ну да.
А чтобы сделать инвариантным к повороту, можно добавить фильтр повернутый на 45 градусов и брать от них сумму квадратов
Но начать, видимо, нужно с того, что нафоткать десяток реальных фотографий помещения
(книжных полок, форточек, ножек табуреток, обоев и т.п. при разном освещении, в разных ракурсах)
И оценить количество ложных маяков.
=DeaD= » 15 авг 2010, 23:09
Да, это завтра займусь, причем поснимаю сразу через радиокамеру и через веб-камеру. Чтобы реального качества было

Виталий » 15 авг 2010, 23:11
А зачем инвариантность к повороту нужна? Робот обычно всегда горизонтально едет.
Я бы сделал проще, взял бы штрих-код и наклеил бы его на цилиндр так, чтобы полоски были горизонтально.
=DeaD= » 15 авг 2010, 23:19
Инвариантность к повороту это опция в данном случае. Пока без неё обкатку проведу, т.к. пока не придумал как эффективно искать такие маяки под любым углом.
Вертикальный штрих-код плох по ряду причин:
1. Не ясно, как его быстро искать в кадре;
2. Требуется высокое разрешение, чтобы прочитать код;
3. Нет точного позиционирования по одной из осей;
4. Нет перспективы инвариантности к повороту

;
5. Позиционирование по маяку возможно только при условии, что видимость позволяет прочитать код (в моём случае детекция изменившегося относительно нас положения маяка будет возможна в более тяжелых условиях, чем чтение его номера);
Виталий » 16 авг 2010, 00:07
1. Так же как и этот
2. Такое же как и здесь, сделай толстые линии и все
3. А зачем это?
4. Да, нет, а может и не надо?
5. Для штрихкода тоже можно изобрести такой механизм.
AIBO использует такие цилиндры.
Michael_K » 16 авг 2010, 00:07
=DeaD= писал(а):как эффективно искать такие маяки под любым углом.
Ну, можно вместо суммы квадратов сумму модулей предложить...
Так и так два фильтра гонять придется - никуда не денешься

Вот только с перспективой кривовато получится.
GraphD » 16 авг 2010, 01:24
=DeaD= » 16 авг 2010, 07:26
2GraphD: Благодарю, а они под углом тоже распознают, вы не в курсе? А то вчитаться пока не успел

Виталий » 16 авг 2010, 11:52
а они под углом тоже распознают?
Они распознают с синтезированных изображений.
=DeaD= » 16 авг 2010, 13:22
Виталий писал(а):1. Так же как и этот
Я же привёл фильтр простой, который это ищет.
Виталий писал(а):2. Такое же как и здесь, сделай толстые линии и все
Какой штрих-код можно уместить в 20х20 или 30х30 пикселей с учетом размытия и помех?
Виталий писал(а):3. А зачем это?
Для целей навигации.
Виталий писал(а):4. Да, нет, а может и не надо?
Где-то не надо, а где-то надо. Для летательных аппаратов 100% надо, для движения по пересеченке - надо;
Виталий писал(а):5. Для штрихкода тоже можно изобрести такой механизм.
А еще можно для штрихкодов изобрести механизм потом для более надежного считывания и минимизации линейных размеров обернуть штрихкод по кругу вокруг такого механизма

(Типа - если в слове "хлеб" сделать 4 ошибки, то получится слово "пиво"

)
GraphD » 16 авг 2010, 14:58
=DeaD= писал(а):2GraphD: Благодарю, а они под углом тоже распознают, вы не в курсе? А то вчитаться пока не успел

честно сказать не могу, когда-то наспех его реализовал и обнаружил нестабильность в работе на реальных снимках шахматной доски, не стал дальше разбираться. Думается на маткаде лучше отрабатывать такие алгоритмы.
Виталий писал(а):Они распознают с синтезированных изображений.
разница для реал.изобр. в основном относится к уровню размытости чередующихся полей, в этом лучше всё-таки убедиться на маткаде, перед тем как забивать на с++.