树莓派上的图像识别

计算科学 计算机视觉
2021-12-13 00:58:33

我想用树莓派区分冰箱里不同类型的啤酒。我在 Adafruit 上看到了一个非常好的教程,它利用 OpenCV 进行人脸识别。这些相同的人脸识别算法,Eigenfaces 和 Fisherfaces,可以用来训练我的树莓派识别不同类型的啤酒罐吗?

2个回答

Eigenface 算法将图像块(例如啤酒的标志)转换为公共数据空间,在该公共数据空间中执行最近邻搜索以进行分类。为了使用特征脸,您需要一个训练数据集来计算公共数据空间。因此需要一些时间来定义一个合适的训练集。

一旦你有了合适的训练集,我相信 Eigenface 肯定会在啤酒类型识别方面发挥作用。作为替代方案,您可以使用不需要训练集的无监督学习方法。为此,请查看http://deeplearning.net/

这个OpenCV 文档页面建议Eigenfaces算法只是使用 PCA 进行降维和通过最近邻搜索进行分类。Fisherfaces使用线性判别分析,其目的是最大化类间方差,同时最小化类内方差,因此在某些情况下可能表现更好。这些降维方法都没有以任何有意义的方式特定于人脸(甚至图像),因此您应该能够将相同的算法用于一般图像分类问题。

不过需要注意的一件事是,您的普通分类算法(如最近邻搜索)的成功率将高度依赖于训练数据的质量。对于人脸,您可以避免使用灰度图像,因为两张不同人脸图像之间的很多差异都编码在数据的空间分布中。对于啤酒,我会考虑通过使用彩色图像来利用瓶子类型之间的颜色差异,即使您必须减少像素数。

只是为了好玩,我可能还会查看其他分类算法以用于您的 PCA 或 LDA 处理的数据。例如,OpenCV 包括支持向量机,它几乎总是比简单的最近邻搜索性能更好。