Special for Vorral's computer vision :)

Обсуждаем рождающиеся мысли и результаты экспериментов.

Special for Vorral's computer vision :)

Сообщение =DeaD= » 02 июн 2009, 20:09

В общем в ЛС обещал изложить свои мысли по развитию кластерного подхода в сторону распознавания образов, вот излагаю:

1. Разбиваем изображение на кластеры по цветам (это уже сейчас есть).
2. Каждый кластер описываем как точку в многомерном пространстве (первые три координаты (включая расстояние до объекта), скажем, центр масс, следующие 3 координаты - средний цвет, а остальные - всякие инварианты - типа момент инерции вращения и т.п. прелести).
3. Задача распознавания образов сводится к выявлению среди имеющегося в кадре множества таких многомерных точек, известных нам паттернов.

Добавлено спустя 3 минуты 37 секунд:
При обучении тыкаем в какую-то область и замеряем все точки имеющиеся там. Скажем по признаку близкого расположения друг к другу в 3д.

При распознавании надо будет делать какой-то иерархический классификатор.

Бонусы - полученный метод распознавания скорее всего будет инвариантен относительно поворотов и масштаба в значительной степени.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Special for Vorral's computer vision :)

Сообщение executer » 02 июн 2009, 20:27

Пойду я наверно на "В контакте.RU" - там понятней
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Special for Vorral's computer vision :)

Сообщение =DeaD= » 03 июн 2009, 08:04

Еще мысль появилась - крупные сегменты в образе в обязательном порядке разбиваем на более мелкие, не более 0.2 ... 0.33 по линейным размерам от размера образа.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Special for Vorral's computer vision :)

Сообщение Vorral » 03 июн 2009, 11:02

Чтобы было понятней, как выглядит кластер выкладываю наглядную картинку. Там эти фрагменты окрашены в одинаковый цвет на разных ракурсах.
Кстати центр масс уже просчитан для каждого кластера(причём алгоритм прост и быстр). А вот, что такое момент инерции вращения и как его просчитать? Я предполагал давать каждому кластеру некие цифровые значения, например подход описанный в теме "Распознавание трёхмерных объектов на сложном фоне":

"Первой характерной точкой, как и в литературе [L.Gupta and M.R.Sayeh. Neural networks for planar shape classification. IEEE. 1988. P.936], является наиболее удаленная точка от центра тяжести контура, второй характерной точкой является точка контура, наиболее далеко отстоящая от первой. Третья точка и последующие определяются как наиболее удаленные от двух точек, между которыми они находятся. Процесс нахождения характерных точек продолжается до тех пор, пока отношение расстояния от искомой точки до прямой, соединяющей эти две точки, к длине отрезка между ними не станет меньше некоторой, заранее заданной величины EPS. Эта величина является одним из немногих настроечных параметров программы, она подбирается экспериментально таким образом, чтобы программа различала два наиболее близких друг к другу контура двух разных предметов из всей группы."

Добавлено спустя 25 минут 2 секунды:
А идея "описываем как точку в многомерном пространстве" однозначно привлекательная.
Вложения
15.JPG
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Special for Vorral's computer vision :)

Сообщение =DeaD= » 03 июн 2009, 11:15

Vorral писал(а):наиболее удаленная точка

ИМХО - отвратительный метод, пролетающий, как фанера над Парижем, при добавлении всего 1 битого пикселя :)

А вот момент инерции чтобы сдвинуть - нужно не слабо точек добавить :)

Момент инерции - берём и вычисляем сумму расстояний от центра тяжести до каждого пикселя кластера.

Добавлено спустя 7 минут:
Еще можно складывать сумму квадратов расстояний.

Еще можно найти "основную ось" (не помню как называется по научному) объекта и умножить её на уровень выраженности этой оси, получить некий вектор (Х).

"Основная ось" - такая прямая, проходящая через центр тяжести объекта, относительно которой момент инерции вращения объекта минимален.

Момент инерции вращения объекта относительно прямой - сумма расстояний от точек объекта до прямой.

Уровень выраженности этой оси - не помню уже как считается, по моему у этого вектора (Х) какое-то научное название есть.

Короче тоже очень устойчивая величина получится.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Special for Vorral's computer vision :)

Сообщение Vorral » 03 июн 2009, 11:47

>ИМХО - отвратительный метод, пролетающий, как фанера над Парижем, при добавлении всего 1 битого пикселя
Мне тоже так показалось. :) Именно из-за этого даже не пытался его реализовать.

Отлично! Момент инерции значит как-нибудь протестирую. Дабы это не так сложно.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Special for Vorral's computer vision :)

Сообщение Виталий » 03 июн 2009, 16:54

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

Re: Special for Vorral's computer vision :)

Сообщение =DeaD= » 03 июн 2009, 17:18

Наверное тем, что SIFT детектит точки изменения цвета, а тут речь наоборот о целостных кластерах.

SIFT не позволяет сопоставлять эффективно большие монотонные области, скажем в 3Д-реконструкции, а тут наоборот.

Если я правильно понял, чего SIFT делает, конечно :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Special for Vorral's computer vision :)

Сообщение Vorral » 07 июн 2009, 16:12

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

Добавлено спустя 13 минут 36 секунд:
Вот думаю как предварительно редактировать один из ракурсов или даже оба. Какие алгоритмы обработки(поворот, наклон, круговые искажения) изображения существуют?
Вложения
4.jpg
3.jpg
2.jpg
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Special for Vorral's computer vision :)

Сообщение =DeaD= » 07 июн 2009, 17:53

Где-то тут вроде основные аберрации есть:
[[:ru:Аберрации_оптических_систем]]

SI - сферическая аберрация
SII - кома
SIII - астигматизм
SVI - кривизна поля (поверхности) изображения
SV - дисторсия.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Special for Vorral's computer vision :)

Сообщение Виталий » 08 июн 2009, 09:43

То что вам надо сделать с камерами - это откалибровать их.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Special for Vorral's computer vision :)

Сообщение Vorral » 08 июн 2009, 14:27

Да я так и хочу сделать, на сегодня успел испробовать только один алгоритм, забыл как робот называется, русский делал, на гусеницах с двумя "руками" и веб камерой(примеры на Дельфи, так что я их легко интегрировал). На текущий момент, мне придётся отложить библиотеку стереозрения недели на три. Две недели отпуск резко взять пришлось, сын родился. Так что как только, так сразу выложу вместе с примером использования(правда на Дельфи). Хочется провести тестирование. Сам только один раз подключал камеры, сделал к сожалению всего две стереопары(кстати потом могу выложить исходники для работы с двумя веб камерами в Delphi, там я создал два потока(для каждой камеры), чтобы снимать изображения на многопроцессорных машинах в один момент времени). Подключал камеры не жёстко и на глазок, вполне возможно, что сам не правильно разместил.

P.S. Я работаю, пока только со стереопарами 320х240. Так что и библиотека будет воспринимать только такое разрешение. Это связанно с тем, что хочу научится работать с низким разрешением. А уж в высоком, характеристики определения дальности возрастут в два раза(320х240->640x480), правда время обработки возрастёт на 4 (хотя тут много мыслей) :)
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Special for Vorral's computer vision :)

Сообщение =DeaD= » 08 июн 2009, 15:22

Подздравлям с рождением дитя!!! :beer: :good:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Special for Vorral's computer vision :)

Сообщение Vorral » 08 июн 2009, 15:29

Спасибо! :beer:
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Special for Vorral's computer vision :)

Сообщение setar » 08 июн 2009, 17:24

Vorral писал(а):На текущий момент, мне придётся отложить библиотеку стереозрения недели на три. Две недели отпуск резко взять пришлось, сын родился.

:ROFL: наивный надеется через 3 недели освободиться... все только начинается!
:beer: Мои поздравления. Сына воспитывай правильно, чтобы когда подрастет, всех нас учил как работать с современными роботами ;)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко


Вернуться в Идеи

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

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