0

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

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

4

1 回答 1

0

如果您要处理数百万张面孔,那么您会遇到更多问题,而不是整数太小而无法标记它们。

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

您必须将该数据分成几个块,并选择一个可以与独立测量相结合的算法(即 lbp ) 。您还需要一个单独的索引,将 int-labels(从本地识别)再次转换为全局 bigint 标签

于 2013-11-01T12:34:27.920 回答