Не удается обнаружить лица с помощью автономного Affectiva SDK

Я новичок в Affectiva Emotion Recognition 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("/xxx/xxx/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 не может обнаружить лица на некоторых изображениях? Кто-нибудь может мне помочь?

Изменить. Я использовал следующие изображения

введите здесь описание изображениявведите здесь описание изображения


person Mitiku    schedule 18.08.2017    source источник


Ответы (1)


Иногда SDK не может обнаружить лица на изображении. Не существует детектора, который может постоянно обнаруживать все лица. Вы проверяли с разными изображениями?

Редактировать:

Эти два изображения 250x250 и 260x194 и очень низкого качества. Я рекомендую вам протестировать приложение с изображениями с более высоким разрешением. Как заявляет Affectiva на своей веб-странице, минимальное рекомендуемое разрешение — 320x240, а лица должны быть не менее 30x30. https://developer.affectiva.com/obtaining-optimal-results/

person Mr K.    schedule 21.08.2017
comment
Да и большую часть времени sdk не определяет лица. - person Mitiku; 21.08.2017
comment
Это не обычно. Можете ли вы поделиться некоторыми изображениями, на которых лица не распознаются? - person Mr K.; 21.08.2017