使用Emgucv进行人脸识别,显示无预测结果

本文关键字:结果 显示 Emgucv 人脸识别 使用 | 更新日期: 2023-09-27 17:54:06

我正在使用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);
    }
}
}

使用Emgucv进行人脸识别,显示无预测结果

我认为20张图片不够训练,尽可能增加样本数量。样品的大小和含量也很重要。这些图像中的所有人脸都应该具有相同的大小,例如正面,以便您的训练起作用。

希望能有所帮助。