Проблема с анализом главных компонентов

Я не уверен, что это правильное место, но вот:

У меня есть база данных из 300 изображений в высоком разрешении. Я хочу вычислить PCA в этой базе данных, и пока вот что я делаю: - преобразую каждое изображение в один вектор-столбец - создаю матрицу всех моих данных (500x300) - вычисляю средний столбец и вычитаю его из моей матрицы, это дает мне X - вычислить корреляцию C = X'X (300x300) - найти собственные векторы V и собственные значения D C. - матрица PCA задается как XV*D^-1/ 2, где каждый столбец является основным компонентом

Это здорово и дает мне правильный компонент.

Сейчас я делаю то же самое PCA в той же базе данных, за исключением того, что изображения имеют более низкое разрешение.

введите здесь описание изображения

Вот мои результаты, низкое разрешение слева и высокое разрешение справа. Вы можете видеть, что большинство из них похожи, но НЕКОТОРЫЕ изображения не совпадают (те, которые я обвел)

Есть ли способ объяснить это? Мне нужно, чтобы в моем алгоритме были одинаковые изображения, но одно в высоком разрешении, а другое в низком, как мне это сделать?

Спасибо


person lezebulon    schedule 12.08.2011    source источник


Ответы (1)


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

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

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

person Phonon    schedule 12.08.2011
comment
Спасибо. В любом случае, я заставил это работать, просто изменив размер результатов PCA высокого разрешения на более низкое разрешение изображения. Таким образом, я уверен, что у меня будет одна и та же основа для обоих разрешений. - person lezebulon; 12.08.2011