Я просто новичок R-кодера и был вдохновлен использованием технологий PCA и технологий для классификации изображений. Однако большинство примеров, по-видимому, находятся в Python, и я предпочел бы продолжить разработку в R.Любой простой классификационный код EigenFaces в R
Я загрузил изображения лица Cambridge в оттенках серого в столбец 400 образцов x 10304 ImageData с каждым столбцом, представляющим сложенное значение пикселя в оттенках серого 112x92 , Я могу построить каждое изображение с помощью pixmapRGB OK.
Я выполняю анализ PCA и считаю, что я извлек собственные значения, но когда я воссоздаю свое первое изображение с 50 EigenFaces, это еще далеко, больше похоже на грубую EigenFace.
Так что я не думаю, что я обрабатывать свои средства изображения и масштабируются правильно или неправильно (я пробовал и без colmeans среднего изображения, и prcomp без центра = FALSE.
Так что я действительно ищу для некоторых встык EigenFaces классификационного кода в R
cmeans = colMeans(TrainImages)
DisplayImage(cmeans, main = "Average Person")
ProcTrainData = TrainImages # - cmeans
# Now PCA Analysis - Adjusted Tolerance to 0.125 to return ~50 PCs
PCAProcess = prcomp(ProcTrainData, center = TRUE, tol = 0.125)
# Analyse PCA results Results
par(mfrow = c(1, 2))
screeplot(PCAProcess)
devs = PCAProcess$sdev^2/sum(PCAProcess$sdev^2)
plot(1 - devs, main = "Percent Variance Explained", type = "l")
EigenFaces = PCAProcess$rotation
# Project Training Data into PCA Eignevalue space
TrainPCAValues = ProcTrainData %*% EigenFaces
# Plot first ten EigenFaces
par(mfrow = c(2, 5))
par(oma = rep(2, 4), mar = c(0, 0, 3, 0))
for (i in 1:10) {
DisplayImage(EigenFaces[, i], main = paste0("EF ", i)) #PCs from sample data
}
# ======== Recover the first Image by the use of PCA attributes and Eigen
# Images
Composite[1:ImageSize] = 0 # PCAProcess$center;
for (iv in 1:50) {
Composite = Composite + TrainPCAValues[1, iv] * EigenFaces[, iv]
}
DisplayImage(Composite)
DisplayImage(TrainImages[1, ])
DisplayImage(PCAProcess$center)
Эйген Лица
Сформирован Composite против оригинала 1 Sample
Спрашивается ли вы, что вы связаны с одним и тем же набором данных? Вы пробовали строить стандартные отклонения? – broncoAbierto