在c#

时间:2017-05-03 08:09:56

标签: c# opencv microsoft-cognitive

我正试图用Open cv检测视频帧中的脸部。我找到了不同的算法,如" haarcascade_frontalface_alt.xml"," haarcascade_frontalface_alt2.xml"," haarcascade_frontalface_default.xml"等等,一个接一个地试了一下。但这些都无法取得好成绩。     因为当时在特定框架中没有面部时它也给我矩形,而当我使用相同的框架来检测具有MS认知面部api的面部时,它给出了正确的结果。    但我需要使用Open CV从帧中检测面部,然后传递给MS认知服务以从api获取面部属性。我这样做了:

    private readonly OpenCvSharp.CascadeClassifier _localFaceDetector = new OpenCvSharp.CascadeClassifier(Path.Combine(Environment.CurrentDirectory, @"Data/haarcascade_frontalface_alt2.xml"));

  var detectedFace = _localFaceDetector.DetectMultiScale(frame.Image); // Detect face by open cv

        if (detectedFace.Count() <= 0)
            return new LiveCameraResult { Faces = null };

      **// Error:(detectedFace) It return rectangle of any objects rather than face**

        // Encode image. 
        var jpgImage = frame.Image.ToMemoryStream(".jpg", s_jpegParams);

        // Submit image to API. 
        var faces = await _faceAnalysis.GetFacesDetection(jpgImage);

        if (faces.Faces.Count() > 0)
        {
              /// Detect face by MS cognitive service
        }

0 个答案:

没有答案