roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 апр 2025, 18:32

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 16 авг 2010, 20:32 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
разница для реал.изобр. в основном относится к уровню размытости чередующихся полей

А также в наличии на реальных изображениях других предметов, что немаловажно. =)

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 16 авг 2010, 21:26 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Образцы реальных изображений с маяками:

С радиокамеры:
Вложение:
PVR001_000-2.3m.jpg
PVR001_000-2.3m.jpg [ 7.82 КиБ | Просмотров: 2706 ]
Вложение:
PVR002_000-4m.jpg
PVR002_000-4m.jpg [ 7.51 КиБ | Просмотров: 2705 ]
Вложение:
PVR003_000-1.3m.jpg
PVR003_000-1.3m.jpg [ 8.57 КиБ | Просмотров: 2707 ]
Вложение:
PVR004_000-1.3m.jpg
PVR004_000-1.3m.jpg [ 7.35 КиБ | Просмотров: 2697 ]


С веб-камеры ноутбука:
Вложение:
image201008160002-1.3m.jpg
image201008160002-1.3m.jpg [ 49.01 КиБ | Просмотров: 2707 ]
Вложение:
image201008160001-1.7m.jpg
image201008160001-1.7m.jpg [ 47.42 КиБ | Просмотров: 2703 ]


Добавлено спустя 23 минуты 1 секунду:
Последовательность фильтров в фотошопе для эксперимента:
1. Перевод изображения в режим "градации серого";
2. Автоконтраст;
3. Заказной фильтр вот такой:
Вложение:
filter.jpg
filter.jpg [ 48.76 КиБ | Просмотров: 2814 ]

4. Перевод в ч-б изображение с отсечением по 50% яркости;

Добавлено спустя 2 минуты 18 секунд:
Вот что у меня получилось пока:

С радиокамеры:
Вложение:
PVR003_000-1.3m-filtered.jpg
PVR003_000-1.3m-filtered.jpg [ 32.76 КиБ | Просмотров: 2850 ]

Вложение:
PVR000_003-1.6m-filtered.jpg
PVR000_003-1.6m-filtered.jpg [ 33.05 КиБ | Просмотров: 2815 ]

Вложение:
PVR002_000-4m-filtered.jpg
PVR002_000-4m-filtered.jpg [ 29.47 КиБ | Просмотров: 2806 ]


С вебкамеры ноута:
Вложение:
image201008160002-1.3m-filtered.jpg
image201008160002-1.3m-filtered.jpg [ 51.74 КиБ | Просмотров: 2819 ]

Вложение:
image201008160001-1.7m-filtered.jpg
image201008160001-1.7m-filtered.jpg [ 50.67 КиБ | Просмотров: 2845 ]


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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 16 авг 2010, 22:38 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
=DeaD= писал(а):
Очевидно с радиокамеры всё вообще отлично

Хм...
Я бы не был столь категоричен.
На мой взгляд, очевидно, что метки выделяются не столько из-за "паттерна",
сколько из-за того, что они просто контрастнее окружения... в обоих случаях.
По крайней мере в пределах этого "суперконтрастного" листка фильтр выделяет достаточно
много мусора, судя по картинке после фильтра но до отсечения по уровню...

Кстати, уровень отсечения теоретически должен быть больше 50%, чтобы не ловить углы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 00:04 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Michael_K писал(а):
На мой взгляд, очевидно, что метки выделяются не столько из-за "паттерна", сколько из-за того, что они просто контрастнее окружения... в обоих случаях.

А почему выделяется только нужная точка и чуть чуть шума, а не все точки этого контрастного маркера? ;)

Michael_K писал(а):
По крайней мере в пределах этого "суперконтрастного" листка фильтр выделяет достаточно много мусора, судя по картинке после фильтра но до отсечения по уровню...

Какой смысл фильтра без отсечения уровня? :pardon:

Michael_K писал(а):
Кстати, уровень отсечения теоретически должен быть больше 50%, чтобы не ловить углы.

Это регулируется масштабом и сдвигом фильтра.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 00:51 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Dead, то что получилось - это хорошо, но хорошо бы еще понять, почему оно так получилось, чтобы управлять процессом... (условия ведь будут меняться - например проем окна может быть запросто гораздо контрастнее листа бумаги).

Конечно, нужный паттерн выделяется фильтром, кто бы спорил, но я вижу, что неплохо выделяются также и просто контрастные углы, а этого хочется избежать, не так ли?

Фильтр так или иначе будет симметричным (поскольку маркер симметричный).
Если ему показать не два угла а только один (например зачернить один из белых углов в паттерне),
то, очевидно, в идеальных условиях фильтр как раз и покажет ровно 50% от возможного максимума.
Вот что я имел в виду.

Добавлено спустя 26 минут 26 секунд:
Вы же сами видите, что даже на первых двух картинках выделились точки,
в которых, казалось бы, похожего паттерна нет... Да и потыркамшись "пипеткой"
несложно найти точки, которые лишь чуть-чуть меньше 50% от белого...

Понятно, что если вы введете еще и инвариантность к повороту, то вылезут максимумы и в других местах (например, черные точки тоже станут белыми) и вероятность словить ложный маркер поднимется.

По-моему, нужно хотя бы просто увеличить размер фильтра, чтобы действовать более избирательно...

Добавлено спустя 7 минут 40 секунд:
=DeaD= писал(а):
Какой смысл фильтра без отсечения уровня? :pardon:

Например рассортировать подозрительные регионы по вероятности нахождения маркера...
Да мало ли...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 07:40 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Конечно с фильтром еще буду играться, заведу это всё добро в ORFA-терминал и там буду мучать, пока это была всего лишь предварительная проверка гипотезы в фотошопе :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 08:47 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Сквозь дымку облаков выглянуло солнышко... что-то так... :pardon:
Вложение:
test.JPG
test.JPG [ 71.38 КиБ | Просмотров: 2759 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 10:25 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Вот итоги обработки этого изображения по указанному мной выше алгоритму, как видно подозрительных на маяк точек совсем немного, их можно быстро проверить:


Вложения:
test-filtered.JPG
test-filtered.JPG [ 3.76 КиБ | Просмотров: 2647 ]

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 12:12 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Я к тому, что контраст не всегда может быть в пользу маяка...
там кусок лайнтрейсерской трассы приложен к стене для сравнения - лазерником на бумаге...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 17 авг 2010, 12:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А, с этим согласен, я пока думаю бороться с этим вводя функцию локального автоконтраста.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 18 авг 2010, 00:42 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Вот, накидал локальный автоконтраст:
Вложение:
local-auto-contrast.jpg
local-auto-contrast.jpg [ 48.83 КиБ | Просмотров: 2708 ]


Добавлено спустя 6 минут 28 секунд:
А вот на изображении с яркими бликами:
Вложение:
local-auto-contrast2.jpg
local-auto-contrast2.jpg [ 48.57 КиБ | Просмотров: 2714 ]

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 18 авг 2010, 01:04 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ага...
На первый взгляд должно помочь.

А интересно, если теперь обрезать по 50% до битового изображения,
пропадет ли размытость (нерезкость) маяка.

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

Добавлено спустя 6 минут 6 секунд:
нет, пожалуй, до битового не надо - грязи много вылезет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 18 авг 2010, 10:05 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Зачем убивать информацию (перевод в ч\б по сечению 50% яркости) на таком раннем этапе? Нам нужно убивать информацию переходя в биты только в самом конце, когда примемся выбирать точки в которых надо что-то проверить, до этого работаем фильтрами по всему полю.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 18 авг 2010, 10:10 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
согласен


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Быстро-распознаваемые маяки для навигации в помещениях
СообщениеДобавлено: 19 авг 2010, 10:38 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Я вот думаю как дальше само распознавание сделать.

Там такие подзадачи по идее есть:

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

2. Чтение кода маяка - тут всё более менее просто, но надо будет наверное какие-то методы контроля целостности данных использовать. Я вижу пока три варианта, первые два - CRC с 1 и 2 битами контроля целостности данных, а последний - какой-нибудь код с исправлением 1 ошибки и детекцией 2 ошибок. Кто в теме - посоветуйте лучше всего конечно готовую библиотеку с набором кодов или просто с таблицей декодирования, чтобы не изучать эту тему еще сейчас :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO