Accuracy / quality from SDK?

cpp

#1

I’m starting to play with the Emotion SDK and setup the Video-demo (c++). I have it analyzing 10 second HD videos with clearly viewable faces (example: https://stock.adobe.com/stock-photo/businesspeople-listening-to-speaker-at-conference/55317473?prev_url=detail). I have the latest “data” folder for the SDK. The problem is that the accuracy/quality is quite poor. Meaning, in the referenced video the output has:

  • Age ranges wrong - most are classified as “under 18” or “unknown”
  • Ethnicity is either “caucasian” or “unknown”
  • Gender is about 80% right, with a few “unknowns”
  • Emotions are spotty - there’s a lot of zeros (or near zeros) in the data whereas, as a human, I interpret different emotions than the SDK.

Do I need to further train the system based on my videos?


#2

Looking at the link you posted, I see the video has a watermark on the face which makes it difficult for the FaceDetector to detect a face. Can you please be explicit in the parameters that you are passing to the video-demo like the number of faces, the version of the SDK that you are using.


#3

Thanks for the reply. I just downloaded the SDK two days ago, so I believe I’m running the latest - I will double check shortly.

Here’s what’s I’m running:
# ./video-demo -i /affdex-sdk/Adobe-Group-Mixed.mov -d /affdex-sdk/data/ --draw 0 --faceMode 1 --numFaces 9


#4

It looks like I was inadvertently using an older version of the SDK, as the code samples (https://github.com/Affectiva/cpp-sdk-samples) are outdated and I didn’t catch that.

With the latest SDK I’m getting GLIBCXX errors. It looks like others are having the same issue, though I haven’t seen a solution. Thoughts?

`# ./video-demo -i /Adobe-Group-Mixed.mov -d /opt/affdex-sdk/data/ --draw 0 --faceMode 1 --numFaces 9`
.    /video-demo: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/affdex-sdk/lib/libaffdex-native.so)
    ./video-demo: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/affdex-sdk/lib/libaffdex-native.so)
    ./video-demo: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/affdex-sdk/lib/libaffdex-native.so)
    ./video-demo: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.23' not found (required by /opt/affdex-sdk/lib/libtensorflow.so)
    ./video-demo: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/affdex-sdk/lib/libtensorflow.so)
    ./video-demo: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/affdex-sdk/lib/libtensorflow.so)
    ./video-demo: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/affdex-sdk/lib/libtensorflow.so)

#5

I think you are using an older version of libc++. Can you check if the runtime requirements are met? (https://affectiva.readme.io/docs/getting-started-with-the-affectiva-sdk-for-linux#section-requirements-and-dependencies)


#6

Please note that the public SDK is limited to track the metrics within +/- 25 degrees of head pose.