Перейти к содержимому
Compvision.ru

Recommended Posts

Все знают наглядную интерпретацию работы PCA (метод главных компонент): каждая из компонент максимизирует дисперсию данных.

Например, у нас есть набор точек на плоскости. Тогда первая компонента будет являться прямой, вдоль которой "вытянуты" точки. Уравнение линейной регрессии даст то же самое. Центр облака точек будет содержаться в переменной mean.

Допустим, у нас точки не равнозначны, а имеют некоторый вес, который показывает, насколько значимой является данная точка. Хочется построить такую же прямую, как и из примера выше, но с учётом веса каждого элемента. То есть точки с маленьким весом должны меньше влиять на результат.

Можно ли как-нибудь использовать PCA для решением этой задачи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
каждая из компонент максимизирует дисперсию данных

 

вроде как не так, слайд 16

http://www.cse.wustl.edu/~taoju/cse554/lectures/lect07_Alignment.pdf

п.с. лекция интересная, но методы не робастные.

 

 

в интернете есть weighted pca, но я не уверен, что оно имеет именно такую интерпретацию.

 

для чего это используется ? для исключения аутлайеров\шума?

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно. 

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

 

ЗЫ: математику не привлекал (лень), но по ощущениям это так.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

для чего это используется ? для исключения аутлайеров\шума?

Да, именно для этого. Дело в том, что у меня изображение искомого объекта имеется в очень высоком разрешении, сама сцена в несколько раз меньшем, да и многие дескрипторы объекта похожи на несоответствующие им части сцены. Искажение - в лучшем случае перспектива. Также фото сцены и объекта сделаны в разное время, разными людьми и на разные камеры.

В чистом виде не срабатывает поиск пар дескрипторов + RANSAC. Также не заработал ICP, реализацию брал из PCL (point cloud library).

Я хочу в несколько итераций найти примерную позицию объекта на сцене:

1. найти пары точек;

2. PCA для точек сцены, которым нашлось соответствие;

3. по результатам PCA локализация области с максимумом соответствий, точки сцены, не попавшие в область откидываются;

4. пункт (1) для всех точек объекта и оставшихся точек сцены;

5. какое-нибудь эвристическое условие для остановки;

6. RANSAC для поиска гомографии по итоговым парам.

 

Опыты показали, что такой подход работает даже если брать грубо найденный прямоугольник с размерами типа "среднее по x, y и пару сигм в стороны". С PCA уже всё лучше: больше левых и меньше правильных точек откидывается. Теперь хочется использовать в качестве веса либо величину response у дескрипторов (типа брать самые надёжные), либо расстояние между соответствиями. Либо скомбинировать эти две величины.

 

Можно. 

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

Спасибо! Что-то подобное и делал, но забыл вычесть среднее - результаты сильно "плавали".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Искажение - в лучшем случае перспектива. Также фото сцены и объекта сделаны в разное время, разными людьми и на разные камеры.

В чистом виде не срабатывает поиск пар дескрипторов + RANSAC. Также не заработал ICP, реализацию брал из PCL (point cloud library).

 

как я понял у вас задача object detection

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

 

Ну и как я понял вы хотите отбросить дескрипторы и матчить 2 поинт клауда?

 

вообще в эту тему есть Part based: constellation model  подход

начиная с 30 слайда

http://www.slideshare.net/yuhuang/object-processing11

 

 

 

по ICP

horns method

best maps one collection of point coordinates to another in a least squares sense and also gives the option of weighting the coordinates non-uniformly.

 

http://www.mathworks.com/matlabcentral/fileexchange/26186-absolute-orientation-horn-s-method

вот тут метод который позволяет учитывать перспективные искажения

http://www.cs.cmu.edu/~ytsin/KCReg/

еще можно погуглить robust ICP

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

О, спасибо. Почитаю ссылки, попробую применить к своей ситуации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×