使用 Emgucv 做人脸识别,显示没有预测结果

Posted

技术标签:

【中文标题】使用 Emgucv 做人脸识别,显示没有预测结果【英文标题】:Use Emgucv to do face recognition, show no predict result 【发布时间】:2015-08-21 21:53:46 【问题描述】:

我正在使用 Emgucv 做人脸识别,但是 FaceRecognizer 的 Predict 方法不起作用。每次我在下面运行这些代码时,我都没有得到任何结果。有谁知道如何修理它?提前致谢。 Emgucv 版本是 Emgu.CV-3.0.0-rc1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;

using Emgu.CV.UI;
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;

namespace ConsoleFaceRecognition

class Program

    static void Main(string[] args)
    
        //training variables             
        Image<Bgr, Byte>[] images = new Image<Bgr, Byte>[20];
        int[] labels = new int[20];


        for (int i = 0; i < 10; i++)
        
            images[i] = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s1/11" + i.ToString() + ".png");
            images[i + 10] = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s2/21" + i.ToString() + ".png");
            labels[i] = 1;
            labels[i + 10] = 2;
        

        FaceRecognizer recognizer = new FisherFaceRecognizer(0, 3500);
        recognizer.Train(images, labels);

        Image<Bgr, Byte> testImage = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s2/213.png");
        FaceRecognizer.PredictionResult result = recognizer.Predict(testImage);


        Console.Write(result.Label);
    


【问题讨论】:

【参考方案1】:

我认为 20 张图像不足以进行训练,如果可能,请增加样本数量。样品的大小和内容也很重要。这些图像中的所有面孔都应具有相同的大小,并且例如正面,以便您的训练发挥作用。

希望对你有帮助。

【讨论】:

感谢您的回复,图像适用于 opencv C++。图片大小都一样。

以上是关于使用 Emgucv 做人脸识别,显示没有预测结果的主要内容,如果未能解决你的问题,请参考以下文章

想做人脸识别的开发,有没有android的功能全的人脸识别SDK?

Android 用虹软SDK做人脸识别

活体检测-用照片来做人脸识别可行吗?

如何用pca做人脸识别 python实现

YOLO模型和mtcnn模型对比,在做人脸识别时,有何不同?

手把手教你opencv做人脸识别(附源码+文档)