Nuzhny 243 Жалоба Опубликовано November 28, 2014 Все знают наглядную интерпретацию работы PCA (метод главных компонент): каждая из компонент максимизирует дисперсию данных. Например, у нас есть набор точек на плоскости. Тогда первая компонента будет являться прямой, вдоль которой "вытянуты" точки. Уравнение линейной регрессии даст то же самое. Центр облака точек будет содержаться в переменной mean. Допустим, у нас точки не равнозначны, а имеют некоторый вес, который показывает, насколько значимой является данная точка. Хочется построить такую же прямую, как и из примера выше, но с учётом веса каждого элемента. То есть точки с маленьким весом должны меньше влиять на результат. Можно ли как-нибудь использовать PCA для решением этой задачи? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано November 28, 2014 каждая из компонент максимизирует дисперсию данных вроде как не так, слайд 16 http://www.cse.wustl.edu/~taoju/cse554/lectures/lect07_Alignment.pdf п.с. лекция интересная, но методы не робастные. в интернете есть weighted pca, но я не уверен, что оно имеет именно такую интерпретацию. для чего это используется ? для исключения аутлайеров\шума? 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано November 28, 2014 Можно. Так как влияние точки на результат определяется ее удаленностью от центра, то для уменьшения влияния точки её нужно просто подтащить поближе к началу координат, т.е. умножить на коэффициент меньше единицы (после вычитания среднего по выборке, естественно). ЗЫ: математику не привлекал (лень), но по ощущениям это так. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано November 29, 2014 для чего это используется ? для исключения аутлайеров\шума? Да, именно для этого. Дело в том, что у меня изображение искомого объекта имеется в очень высоком разрешении, сама сцена в несколько раз меньшем, да и многие дескрипторы объекта похожи на несоответствующие им части сцены. Искажение - в лучшем случае перспектива. Также фото сцены и объекта сделаны в разное время, разными людьми и на разные камеры. В чистом виде не срабатывает поиск пар дескрипторов + RANSAC. Также не заработал ICP, реализацию брал из PCL (point cloud library). Я хочу в несколько итераций найти примерную позицию объекта на сцене: 1. найти пары точек; 2. PCA для точек сцены, которым нашлось соответствие; 3. по результатам PCA локализация области с максимумом соответствий, точки сцены, не попавшие в область откидываются; 4. пункт (1) для всех точек объекта и оставшихся точек сцены; 5. какое-нибудь эвристическое условие для остановки; 6. RANSAC для поиска гомографии по итоговым парам. Опыты показали, что такой подход работает даже если брать грубо найденный прямоугольник с размерами типа "среднее по x, y и пару сигм в стороны". С PCA уже всё лучше: больше левых и меньше правильных точек откидывается. Теперь хочется использовать в качестве веса либо величину response у дескрипторов (типа брать самые надёжные), либо расстояние между соответствиями. Либо скомбинировать эти две величины. Можно. Так как влияние точки на результат определяется ее удаленностью от центра, то для уменьшения влияния точки её нужно просто подтащить поближе к началу координат, т.е. умножить на коэффициент меньше единицы (после вычитания среднего по выборке, естественно). Спасибо! Что-то подобное и делал, но забыл вычесть среднее - результаты сильно "плавали". Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано December 3, 2014 Искажение - в лучшем случае перспектива. Также фото сцены и объекта сделаны в разное время, разными людьми и на разные камеры. В чистом виде не срабатывает поиск пар дескрипторов + 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 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано December 4, 2014 О, спасибо. Почитаю ссылки, попробую применить к своей ситуации. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах