roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 16:27

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




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Зрение
СообщениеДобавлено: 04 дек 2004, 15:03 
Не в сети

Зарегистрирован: 13 ноя 2004, 01:10
Сообщения: 267
Откуда: Ривне, Украина
Сабж, собстно.
Подумывал устанавливать на шасси миниатюрную видеокамеру. Вроде-бы, должна была появиться куча возможностей, а появилась куча проблем. Первая и самая важная - а как с толком обработать полученую картинку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 дек 2004, 19:24 
Не в сети
Аватара пользователя

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

Осваиваю возможности библиотеки OpenCV от Intel'а.
(в ней есть вроде как определение контуров предметов, стабильных точек, куча разных готовых фильтров, но еще все не смотрел).

Только на этой неделе смог все это запустить с купленной вебкамерой под борланд С++ Билдером.

Моя платформа - ВебКамера+Phidgets (в качестве интерфейсных плат)+Ноут (в будущем VIA или другой ноут :) - уже кажется проще ноут купить - если что продать и купить новый, чем потом обновляться на следующую версию VIA EDEN).

Ближайшая цель - получить с пары камер информацию о расстоянии до предметов.

Текущая камера тормозная (Genius VideoCAM NB 300) - как отлажу все, надо будет с более быстрой матрицей искать парочку камер.

Вливайтесь, вместе веселей :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 дек 2004, 22:45 
Не в сети
Модератор

Зарегистрирован: 11 ноя 2004, 03:18
Сообщения: 1274
Откуда: Москва
Хорошую тему начали, следить буду с удовольствием.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2004, 18:19 
Не в сети

Зарегистрирован: 13 ноя 2004, 01:10
Сообщения: 267
Откуда: Ривне, Украина
Для начала, решил разобраться, что с полученой картинкой делать? Теститил алгоритмы на фрагментах AVI-шек (предположил, что похожие картинки получу с камеры). Получилась такая вещь: если предположить, что камера постоянно двигаеться (совсем не обязательно с постоянной скоростью/направлением), то анализируя текущий кадр относительно предыдущего, дальномер вполне возможно организовать на одной камере. Кроме того, получаеться, что если картинка попадающяя в объектив камеры постоянна (камера стоит на месте, и ничего в видимой области не движеться), то выделить из кадра какие-нибуть объекты нереально - возможно выделение контуров объектов но не как не их идентификация (либо вручную добавлять частные случаи).
Зато если анализировать по разнице между кадрами, то контуры, скорость и вектор отностительного перемещения выделить довольно легко (причём точность оценки растёт со сближением обьекта и камеры).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2004, 22:20 
Не в сети
Аватара пользователя

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

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


Это чисто теорететически, или у вас есть реальные работающие библиотеки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2004, 23:52 
Не в сети
Аватара пользователя

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

Изображение

Квадратики - фрагменты, расстояние до которых смогли определить точно, чем ярче, тем ближе к нам.

Исходную пару изображений и порядок обработки можно посмотреть здесь - Проект CVision.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 дек 2004, 23:59 
Не в сети
Аватара пользователя

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

Количество распознанных расстояний увеличилось со 128 фрагментов до 227, ни одной ошибки не возникло. В целом если посчитать "более менее осмысленные фрагменты" на тех изображениях, то их будет всего 398 ед (из всего рассмотренных 630 фрагментов). (скорее всего их существенно меньше, ибо считается очень много "фрагментов пола", ну да ладно, черт с ними).

Изображение

Итого получаем следующую статистику:

Осмысленных фрагментов - 63%;

Распознано из осмысленных (алгоритм старый) - 32%;
Распознано из осмысленных (алгоритм новый) - 57%;

Всего распознано на изображении фрагментов (алгоритм старый): 20%;
Всего распознано на изображении фрагментов (алгоритм новый): 36%;

Попробовал алгоритм с текущими настройками на старом идеальном рисунке, как и ожидается - работает идеально :)

Еще попробовал на стереоизображении какой-то детали, тоже все отлично сработало.

(все новые сэмплы на страничке Проект CVision)

Начинаю думать о практическом использовании :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 13:00 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
Это уже что то :) , мои поздравления.

Я по началу тему зрения как то не очень внимательно изучал, теперь буду следить за вашими разработками.

У меня есть вопрос, возможно он покажется дилетанскими, но всё же:
с помошью этого алгоритма мы получим карту расстояний от камеры до объектов.
В каком виде планируете хранить результаты - составлять 3D карту векторов, пытаться апроксимировать форму поверхности, или ... ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 14:58 
Не в сети
Аватара пользователя

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


Да вот уже задумался, как использовать, тем более что определяется ~50% нужного... :)

Но надо где-то хотя-бы стерео-AVI найти, чтобы тестить, или срочно пару камер нормальных искать и калибровку изучать :)...


Последний раз редактировалось =DeaD= 07 дек 2004, 16:23, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 15:09 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
Может быть попробовать одной пока обойтись?
ну например делать перемещения её вправо-лево на рельсе со съёмкой в крайних положениях ... правда это выглядеть немного смешно будет.

И ещё вопрос чисто теоретический: человеческий глаз способен распознавать расстояние до объекта даже когда он один (не по стерео картине), неужели это всё делает мозг исключительно опираясь на базу знаний о размерах окружающих предметов ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 16:01 
Не в сети
Аватара пользователя

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

Разумеется еще на тени, но это уже высший пилотаж, а так конечно на размеры предметов и на их относительное (друг-друга) положение :)

Чуть не забыл! Еще на изменение размеров объекта относительно нашего или его перемещения в пространстве. Я на эту тему уже тоже думаю, но это векторные поля, с ними работае семейство так называемых "optical flow"-алгоритмов.

Тоже хочу попробовать поюзать что-то подобное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 16:35 
Не в сети

Зарегистрирован: 13 ноя 2004, 01:10
Сообщения: 267
Откуда: Ривне, Украина
=DeaD= писал(а):
Это чисто теорететически, или у вас есть реальные работающие библиотеки?
Есть алгоритмы, в библиотеки не оформлял, так как они...пока практически безтолковые (над двумя кадрами Р4-й минут 5 возиться). По этому, изложу принцип, может у кого более светлая/толковая идея появиться :D :
В общем: есть два кадра, на которых несколько сложных обьектов в разных положениях относительно камеры. Независимо от направления относительного перемещения, проекции поверхностей обьектов (изображения на кадре) деформируються.
Что делаю: деформирую один из кадров, имитируя, как будто то плоская картинка, положение которой отностиельно обьектива изменяют. При определённых деформациях, фрагменты первого и сдеформированого второго практически совпадают. Определяю, что этот фрагмент есть поверхность, которая изменила положение (согласно параметрам для деформации). Таким образом, делю всю картинку фрагменты, и их перемещение. Далее, пересчитываю, что и как переместилось, оттуда расстояние до них, и т.д.
Самая увесистая по времени часть - перебором поделить на фрагменты. На том и застопорился. :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 16:49 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 20:27 
Не в сети

Зарегистрирован: 13 ноя 2004, 01:10
Сообщения: 267
Откуда: Ривне, Украина
Там ещё много разных проблем, кроме растяжения,сжатия структуры. Напр. быстродвижущиеся обьекты "зармазаные", тени, освещение/отражение и т.д. Суть не в этом. Я веду к тому, что камеры достаточно одной, но нужно, что-бы что-то двигалось, тогда всё работает. В любом случае, нужен алгоритм, с помощью которого, на двух картинках отыскиваеться один и тот-же обьект (независимо, сколько камер стоит). Собственно, этот алгоритм я не разрабатывал, а попробывал взять "в лоб", чтобы попробывать работоспособность идеи с одной камерой (исключительно ради эксперимента). В лоб не вышло (вышло, но неоправданно громоздко). Вот над этим и стоит коллективно подумать.

По этому, и подкидываю идею парсить авишники, как на самый доступный робочий материал для этой цели. Кстати, прикидываю, что ещё лучше начать с простеньких моделей, отрендереных напр. на 3DMAX, потом перейти на мульты типа Ice Age, Shrek, и уж потом браться за фильмы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2004, 22:38 
Не в сети
Аватара пользователя

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

Про блики\отражения\полупрозрачные предметы - это вообще тихий ужас для распознавания образов и определения расстояний - просто вечный источник проблем... :)

Ладно, как найду как использовать новые данные о расстояниях, либо как обрабатывать эти optical-flow поля - напишу...


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

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


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

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


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

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