【发布时间】:2015-02-28 05:51:58
【问题描述】:
输入:从尺寸为 75520 的图像中提取的 LBP 特征,因此输入的 LBP 数据包含 1 行和 75520 列。
必需的输出:在输入上应用 PCA 以减少维度,
目前我的代码看起来像,
void PCA_DimensionReduction(Mat &src, Mat &dst){
int PCA_DIMENSON_VAL 40
Mat tmp = src.reshape(1,1); //1 rows X 75520 cols
Mat projection_result;
Mat input_feature_vector;
Mat norm_tmp;
normalize(tmp,input_feature_vector,0,1,NORM_MINMAX,CV_32FC1);
PCA pca(input_feature_vector,Mat(),CV_PCA_DATA_AS_ROW, PCA_DIMENSON_VAL);
pca.project(input_feature_vector,projection_result);
dst = projection_result.reshape(1,1);
}
基本上我正在使用此功能来匹配两个图像之间的相似性,但我没有得到正确的结果,因为没有应用 PCA。
任何帮助将不胜感激...
问候
哈里斯...
【问题讨论】:
-
hi-dim lbp,很酷;)但是您不应该为所有图像训练一个大 pca(离线)吗?每张图片都没有?
-
嗨,@Haris,实际上,我正在玩同样的想法,atm。一路从 pca 到 random-projections,然后到 walsh-hadamard,不要忘记小波,最后是简单的 dft -> throw_out_hf -> dft_back,但最终 - 不使用 lbp(u),而是使用更短的四 - patch-lbp 功能(仅 16 个 bin,而不是 256 [lbpu 甚至 59],然后跳过任何功能压缩)对我来说效果更好。厘米? ;)
-
我也很好奇,你是如何解决“IntraFace not available”问题的;)(我的主要问题是要找到一个好的替代品......)
-
嗨@berak 感谢您的回复,关于您的第一条评论,我正在关注here 的实现,但不知道如何使用PCA 来减少维度。目前我正在获取大小为 75520 的特征向量,但对如何将其输入 PCA 感到困惑。
-
您好,我对您的第二条评论有一些疑问,在您的四补丁-lbp 特征提取中,您如何修补面部?您是考虑整个面部吗?还是基于某些土地-标记?