2017-08-18 38 views
0

我是Affectiva情感識別SDK的新手。我一直在從this link的視頻後面的例子,但是當我提供一些圖片示例this image時,臉部無法被檢測到。 我的代碼如下: -使用Offline Affectiva SDK無法檢測到臉部

Listener 

    class Listener : public affdex::ImageListener{ 
     void onImageResults(std::map<affdex::FaceId,affdex::Face> faces,affdex::Frame image){ 
      std::string pronoun="they"; 
      std::string emotion="neutral"; 
      for (auto pair : faces){ 
       affdex::FaceId faceId=pair.first; 
       affdex::Face face=pair.second; 
       if(face.appearance.gender==affdex::Gender::Male){ 
        pronoun="Male"; 
       }else if(face.appearance.gender==affdex::Gender::Female){ 
        pronoun="Female"; 
       } 

       if(face.emotions.joy>25){ 
        emotion="Happy :)"; 
       }else if(face.emotions.sadness>25){ 
        emotion="Sad :("; 
       } 

       cout<<faceId<<" : "<<pronoun <<" looks "<< emotion <<endl; 
      } 

     } 
     void onImageCapture(affdex::Frame image){ 
      cout<<"IMage captured"<<endl; 
     } 
    }; 

主代碼

Mat img; 
    img=imread(argv[1],CV_LOAD_IMAGE_COLOR); 
    affdex::Frame frame(img.size().width, img.size().height, img.data, affdex::Frame::COLOR_FORMAT::BGR); 
    affdex::PhotoDetector detector(3); 
    detector.setClassifierPath("/home/mitiku/affdex-sdk/data"); 
    affdex::ImageListener * listener(new Listener()); 
    detector.setImageListener(listener); 
    detector.setDetectAllEmotions(true); 
    detector.setDetectAllExpressions(true); 
    detector.start(); 
    detector.process(frame); 
    detector.stop(); 

在哪裏我會犯錯誤或者是SDK不能從一些圖像檢測人臉?有誰能夠幫助我?

編輯 我用下面的圖片

enter image description hereenter image description here

回答

2

有時圖像中的SDK無法檢測人臉。沒有檢測器可以隨時檢測所有面部。你檢查過不同的圖像嗎?

編輯:

這兩個圖像爲250x250和260x194,真正的低質量。我建議你使用更高分辨率的圖像測試應用程序。由於Affectiva在他們的網頁中聲明,建議的最低分辨率爲320x240,臉部應該至少爲30x30。 https://developer.affectiva.com/obtaining-optimal-results/

+0

是的,大多數時候sdk並沒有檢測到人臉。 – Mitiku

+0

這並不常見。你能分享一些臉部未被檢測到的圖像嗎? –