From 3c9ee1ce3b25c8914e2c400adc798920f09ea91f Mon Sep 17 00:00:00 2001 From: Tadas Baltrusaitis Date: Thu, 28 Jun 2018 16:18:55 +0200 Subject: [PATCH] Bug fix with processing really short sequences with FeatureExtraction executable --- .travis.yml | 2 +- install.sh | 22 ++++++++++--- lib/local/FaceAnalyser/src/FaceAnalyser.cpp | 34 ++++++++++++--------- 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3021f2de0..c8137c9e3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ before_install: # OpenCV dependencies, dlib and boost - if [ ${TRAVIS_OS_NAME} = linux ]; then sudo apt-get update; - sudo apt-get install libopenblas-dev libopenblas-base; + sudo apt-get install libopenblas-dev; sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev; sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev; sudo apt-get install cmake; diff --git a/install.sh b/install.sh index 8a032c48c..1ed46d135 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ # Description: Install everything necessary for OpenFace to compile. # Author: Daniyal Shahrokhian # Date: 20170428 -# Version : 1.01 +# Version : 1.02 # Usage: bash install.sh # NOTES: There are certain steps to be taken in the system before installing # via this script (refer to README): Run @@ -27,12 +27,10 @@ fi echo "Installing Essential dependencies..." sudo apt-get -y update sudo apt-get -y install build-essential -sudo apt-get -y install llvm -sudo apt-get -y install clang-3.7 libc++-dev libc++abi-dev sudo apt-get -y install cmake sudo apt-get -y install libopenblas-dev liblapack-dev sudo apt-get -y install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -sudo apt-get -y install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev checkinstall +sudo apt-get -y install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev echo "Essential dependencies installed." # OpenCV Dependency @@ -51,6 +49,22 @@ rm 3.4.0.zip sudo rm -r opencv-3.4.0 echo "OpenCV installed." +# dlib dependecy +echo "Downloading dlib" +wget http://dlib.net/files/dlib-19.13.tar.bz2; +tar xf dlib-19.13.tar.bz2; +cd dlib-19.13; +mkdir -p build; +cd build; +echo "Installing dlib" +cmake ..; +cmake --build . --config Release; +sudo make install; +sudo ldconfig; +cd ../..; +rm -r dlib-19.13.tar.bz2 +echo "dlib installed" + # Boost C++ Dependency echo "Installing Boost..." sudo apt-get install libboost-all-dev diff --git a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp index 79e19418e..2cd97fa92 100644 --- a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp +++ b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp @@ -526,7 +526,7 @@ void FaceAnalyser::PostprocessPredictions() { int success_ind = 0; int all_ind = 0; - int all_frames_size = timestamps.size(); + int all_frames_size = (int)timestamps.size(); while(all_ind < all_frames_size && success_ind < max_init_frames) { @@ -616,14 +616,14 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vector au_vals_tmp = au_vals; - for (size_t i = (window_size - 1)/2; i < au_vals.size() - (window_size - 1) / 2; ++i) + if(au_vals.size() > (window_size - 1) / 2) { - double sum = 0; - for (int w = -(window_size - 1) / 2; w <= (window_size - 1) / 2; ++w) + for (size_t i = (window_size - 1)/2; i < au_vals.size() - (window_size - 1) / 2; ++i) { - sum += au_vals_tmp[i + w]; - } - sum = sum / window_size; - if (sum < 0.5) - sum = 0; - else - sum = 1; + double sum = 0; + int div_by = 0; + for (int w = -(window_size - 1) / 2; w <= (window_size - 1) / 2 && (i+w < au_vals_tmp.size()); ++w) + { + sum += au_vals_tmp[i + w]; + div_by++; + } + sum = sum / div_by; + if (sum < 0.5) + sum = 0; + else + sum = 1; - au_vals[i] = sum; + au_vals[i] = sum; + } } - au_predictions.push_back(std::pair>(au_name, au_vals)); }