我们能否在OpenCv C++中使用BigInt标签训练EigenVectors模型

Can we train EigenVectors model with BigInt labels in OpenCv C++?

本文关键字:标签 BigInt 模型 EigenVectors OpenCv C++ 我们      更新时间:2023-10-16

我正在尝试使用OpenCv和C++实现来构建人脸识别软件。我遇到的问题是我有很多面孔,超过 1000 万张,不能仅使用 INT 类型(vector/int/labels)进行标记。我尝试使用长 long int,但在训练一段时间后(0.5 秒后)出现此错误:

OpenCV 错误:错误的参数(标签必须以整数 (CV_32SC1) 形式给出)。预计为 4,但为 7。在 train 中,文件/home/roka/opencv-2.4.6.1/modules/contrib/src/facerec.cpp,第 349 行在抛出 'cv::Exception' 的实例后终止调用 what():/home/roka/opencv-2.4.6.1/modules/contrib/src/facerec.cpp:349: 错误: (-5) 标签必须以整数 (CV_32SC1) 的形式给出。预计 4,但为 7。在函数训练中

如果你要有数百万张面孔,你就会遇到更多的问题,而不是整数太小而无法标记它们。

Eigenface方法需要的内存远远超过一台机器所能容纳内存,因为您需要一次性提供所有可用数据以进行训练。

您必须将数据分解为几个块,然后选择一个可以与独立测量相结合的算法(即LBP)。 此外,您还需要一个单独的索引,它将 int-labels(来自本地识别)再次转换为全局 bigint 标签