为啥 EigensCount 不能大于 TrainingImagesCount-1 [EigenObjectRecognizer]

Posted

技术标签:

【中文标题】为啥 EigensCount 不能大于 TrainingImagesCount-1 [EigenObjectRecognizer]【英文标题】:Why Can't EigensCount Be Greater Than TrainingImagesCount-1 [EigenObjectRecognizer]为什么 EigensCount 不能大于 TrainingImagesCount-1 [EigenObjectRecognizer] 【发布时间】:2012-07-05 08:30:18 【问题描述】:

http://www.cognotics.com/opencv/servo_2007_series/part_5/fig_6_thumb.png

谁能解释为什么nEgiens不能超过上图中的nTrainFace-1?

我正在使用 EmguCv。当 nEgiens 和 nTrainFace 相等时,最后一个特征图像返回空白(黑色)。 但是,关于 emgucv 实现:

`if (termCrit.max_iter <= 0 || termCrit.max_iter > trainingImages.Length)
    termCrit.max_iter = trainingImages.Length;`

【问题讨论】:

【参考方案1】:

数学约束:

协方差矩阵的秩受训练样例数量的限制:如果有N个训练样例,则最多有N-1个特征值非零的特征向量。

http://en.wikipedia.org/wiki/Eigenface#Computing_the_eigenvectors

【讨论】:

我认为 N 个特征向量不包括零向量,但确实如此。谢谢...

以上是关于为啥 EigensCount 不能大于 TrainingImagesCount-1 [EigenObjectRecognizer]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Swift 的大于或小于运算符不能比较可选项,而相等运算符可以呢?

为啥这个 Pytorch 官方教程中没有 .train() 方法?

ValueError:不能有拆分数 n_splits=3 大于样本数:1

为啥 CSS 脉冲动画不能正常工作?

为啥我的`train_test_split()`返回相同的样本[重复]

我的 run.sh 中有一行:svm-train - 我收到错误 svm-train: not found。这是为啥?