Merge branch 'master' into Windows-GUI
Conflicts: .gitignore matlab_runners/Action Unit Experiments/DISFA_valid_res.txt matlab_runners/Feature Point Experiments/results/fps_yt.mat matlab_runners/Feature Point Experiments/results/in-the-wild-res-no-outline.pdf matlab_runners/Feature Point Experiments/results/landmark_detections.mat matlab_runners/Gaze Experiments/mpii_1500_errs.mat matlab_runners/Gaze Experiments/mpii_1500_errs.txt matlab_runners/Head Pose Experiments/results/Pose_OF.mat
This commit is contained in:
commit
0a5110a003
940 changed files with 17927 additions and 1926 deletions
24
.gitignore
vendored
24
.gitignore
vendored
|
@ -20,9 +20,31 @@ matlab_runners/Feature Point Experiments/yt_features/
|
||||||
matlab_runners/Feature Point Experiments/yt_features_clm/
|
matlab_runners/Feature Point Experiments/yt_features_clm/
|
||||||
matlab_runners/Gaze Experiments/mpii_out/
|
matlab_runners/Gaze Experiments/mpii_out/
|
||||||
build/
|
build/
|
||||||
Debug/
|
|
||||||
Release/AU_predictors/
|
Release/AU_predictors/
|
||||||
Release/
|
Release/
|
||||||
|
exe/Recording/recording/
|
||||||
ipch/
|
ipch/
|
||||||
|
exe/FeatureExtraction/out_bp4d/
|
||||||
|
matlab_runners/Action Unit Experiments/out_bp4d/
|
||||||
|
matlab_runners/Action Unit Experiments/out_SEMAINE/
|
||||||
|
x64/Debug/
|
||||||
|
matlab_runners/Action Unit Experiments/out_unbc/
|
||||||
|
matlab_runners/Action Unit Experiments/out_bosph/
|
||||||
|
matlab_runners/Action Unit Experiments/out_DISFA/
|
||||||
|
matlab_runners/Action Unit Experiments/out_fera/
|
||||||
matlab_runners/Demos/output_features_seq/
|
matlab_runners/Demos/output_features_seq/
|
||||||
matlab_runners/Demos/output_features_vid/
|
matlab_runners/Demos/output_features_vid/
|
||||||
|
exe/FaceLandmarkImg/Debug/
|
||||||
|
exe/FaceLandmarkVid/Debug/
|
||||||
|
exe/FaceLandmarkVidMulti/Debug/
|
||||||
|
exe/FeatureExtraction/Debug/
|
||||||
|
exe/Recording/Debug/
|
||||||
|
gui/OpenFaceOffline/bin/
|
||||||
|
gui/OpenFaceOffline/obj/
|
||||||
|
lib/3rdParty/dlib/Debug/
|
||||||
|
lib/local/CamCom/Debug/
|
||||||
|
lib/local/CamCom/x64/
|
||||||
|
lib/local/CppInerop/Debug/
|
||||||
|
lib/local/CppInerop/x64/Debug/
|
||||||
|
lib/local/FaceAnalyser/Debug/
|
||||||
|
lib/local/LandmarkDetector/Debug/
|
||||||
|
|
71
.travis.yml
Normal file
71
.travis.yml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
language: cpp
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- /^feature-.*$/
|
||||||
|
compiler:
|
||||||
|
- gcc
|
||||||
|
- clang
|
||||||
|
|
||||||
|
os:
|
||||||
|
- osx
|
||||||
|
- linux
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
# g++4.8.1
|
||||||
|
- if [ "$CXX" == "g++" ]; then
|
||||||
|
if [[ ${TRAVIS_OS_NAME} = linux ]]; then
|
||||||
|
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# clang 3.4
|
||||||
|
- if [ "$CXX" == "clang++" ]; then
|
||||||
|
if [[ ${TRAVIS_OS_NAME} = linux ]]; then
|
||||||
|
sudo add-apt-repository -y ppa:h-rayflood/llvm;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get update -qq; fi
|
||||||
|
|
||||||
|
install:
|
||||||
|
- if [ "$CXX" == "g++" ]; then if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get install -qq g++-4.8; fi fi
|
||||||
|
- if [ "$CXX" == "g++" ]; then if [[ ${TRAVIS_OS_NAME} = linux ]]; then export CXX="g++-4.8"; fi fi
|
||||||
|
- if [ "$CXX" == "clang++" ]; then if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get install -qq clang-3.4; fi fi
|
||||||
|
- if [ "$CXX" == "clang++" ]; then if [[ ${TRAVIS_OS_NAME} = linux ]]; then export CXX="clang++-3.4"; fi fi
|
||||||
|
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev; fi
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev checkinstall; fi
|
||||||
|
|
||||||
|
# Getting newest boost
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo add-apt-repository -y ppa:boost-latest/ppa; fi
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get update; fi
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = linux ]]; then sudo apt-get install libboost1.55-all-dev; fi
|
||||||
|
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = osx ]]; then brew update; fi
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = osx ]]; then brew tap homebrew/science; fi
|
||||||
|
- if [[ ${TRAVIS_OS_NAME} = osx ]]; then brew install tbb opencv3; fi
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- git clone https://github.com/Itseez/opencv.git
|
||||||
|
- cd opencv
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- cmake ..
|
||||||
|
- make -j2
|
||||||
|
- sudo make -j2 install
|
||||||
|
- cd ../..
|
||||||
|
|
||||||
|
script:
|
||||||
|
- $CXX --version
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- cmake -D CMAKE_BUILD_TYPE=RELEASE ..
|
||||||
|
- make -j2
|
||||||
|
- ../build/bin/FaceLandmarkImg -fdir "../videos/" -ofdir "./demo_img/" -oidir "./demo_img/" -wild -q
|
||||||
|
- ../build/bin/FaceLandmarkImg -inroot ../videos -f Obama.jpg -outroot data -of obama.txt -op obama.3d -oi obama.bmp -multi_view 1 -wild -q
|
||||||
|
- ../build/bin/FaceLandmarkVidMulti -inroot ../videos -f multi_face.avi -outroot output -ov multi_face.avi -q
|
||||||
|
- ../build/bin/FeatureExtraction -f "../videos/1815_01_008_tony_blair.avi" -outroot output_features -ov blair.avi -of "1815_01_008_tony_blair.txt" -simalign aligned -ov feat_test.avi -hogalign hog_test.dat -q
|
||||||
|
- ../build/bin/FaceLandmarkVid -inroot ../videos -f 1815_01_008_tony_blair.avi -f 0188_03_021_al_pacino.avi -f 0217_03_006_alanis_morissette.avi -outroot output_data -ov 1.avi -ov 2.avi -ov 3.avi -q
|
|
@ -1,5 +1,8 @@
|
||||||
# OpenFace: an open source facial behavior analysis toolkit
|
# OpenFace: an open source facial behavior analysis toolkit
|
||||||
|
|
||||||
|
[![Build Status](https://travis-ci.org/TadasBaltrusaitis/OpenFace.svg?branch=master)](https://travis-ci.org/TadasBaltrusaitis/OpenFace)
|
||||||
|
[![Build status](https://ci.appveyor.com/api/projects/status/8msiklxfbhlnsmxp/branch/master?svg=true)](https://ci.appveyor.com/project/TadasBaltrusaitis/openface/branch/master)
|
||||||
|
|
||||||
Over the past few years, there has been an increased interest in automatic facial behavior analysis and understanding. We present OpenFace – an open source tool intended for computer vision and machine learning researchers, affective computing community and people interested in building interactive applications based on facial behavior analysis. OpenFace is the first open source tool capable of facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation. The computer vision algorithms which represent the core of OpenFace demonstrate state-of-the-art results in all of the above mentioned tasks. Furthermore, our tool is capable of real-time performance and is able to run from a simple webcam without any specialist hardware.
|
Over the past few years, there has been an increased interest in automatic facial behavior analysis and understanding. We present OpenFace – an open source tool intended for computer vision and machine learning researchers, affective computing community and people interested in building interactive applications based on facial behavior analysis. OpenFace is the first open source tool capable of facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation. The computer vision algorithms which represent the core of OpenFace demonstrate state-of-the-art results in all of the above mentioned tasks. Furthermore, our tool is capable of real-time performance and is able to run from a simple webcam without any specialist hardware.
|
||||||
|
|
||||||
The code was written mainly by Tadas Baltrusaitis during his time at the Language Technologies Institute at the Carnegie Mellon University; Computer Laboratory, University of Cambridge; and Institute for Creative Technologies, University of Southern California.
|
The code was written mainly by Tadas Baltrusaitis during his time at the Language Technologies Institute at the Carnegie Mellon University; Computer Laboratory, University of Cambridge; and Institute for Creative Technologies, University of Southern California.
|
||||||
|
@ -73,3 +76,4 @@ I did my best to make sure that the code runs out of the box but there are alway
|
||||||
Copyright can be found in the Copyright.txt
|
Copyright can be found in the Copyright.txt
|
||||||
|
|
||||||
You have to respect boost, TBB, dlib, and OpenCV licenses.
|
You have to respect boost, TBB, dlib, and OpenCV licenses.
|
||||||
|
|
||||||
|
|
28
appveyor.yml
Normal file
28
appveyor.yml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
version: 1.0.{build}
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- develop
|
||||||
|
- master
|
||||||
|
- /^feature-.*$/
|
||||||
|
max_jobs: 4
|
||||||
|
configuration:
|
||||||
|
- Debug
|
||||||
|
- Release
|
||||||
|
platform:
|
||||||
|
- x64
|
||||||
|
- Win32
|
||||||
|
build:
|
||||||
|
project: OpenFace.sln
|
||||||
|
verbosity: minimal
|
||||||
|
test_script:
|
||||||
|
# C++
|
||||||
|
- cmd: dir
|
||||||
|
- cmd: if exist x64 (cd x64)
|
||||||
|
- cmd: if exist Debug (cd Debug)
|
||||||
|
- cmd: if exist Release (cd Release)
|
||||||
|
- cmd: dir
|
||||||
|
- cmd: if exist "../videos" (FaceLandmarkImg.exe -fdir "../videos/" -ofdir "./demo_img/" -oidir "./demo_img/" -wild -q) else (FaceLandmarkImg.exe -fdir "../../videos/" -ofdir "./demo_img/" -oidir "./demo_img/" -wild -q)
|
||||||
|
- cmd: if exist "../videos" (FaceLandmarkImg.exe -inroot ../videos -f obama.jpg -outroot out_data -of obama.pts -op obama.3d -oi obama.bmp -q) else (FaceLandmarkImg.exe -inroot ../../videos -f obama.jpg -outroot out_data -of obama.pts -op obama.3d -oi obama.bmp -q)
|
||||||
|
- cmd: if exist "../videos" (FaceLandmarkVidMulti.exe -inroot ../videos -f multi_face.avi -ov multi_face.avi -q) else (FaceLandmarkVidMulti.exe -inroot ../../videos -f multi_face.avi -ov multi_face.avi -q)
|
||||||
|
- cmd: if exist "../videos" (FeatureExtraction.exe -f "../videos/1815_01_008_tony_blair.avi" -outroot output_features -of "1815_01_008_tony_blair.txt" -simalign aligned -ov feat_track.avi -hogalign hog_test.dat -q) else (FeatureExtraction.exe -f "../../videos/1815_01_008_tony_blair.avi" -outroot output_features -of "1815_01_008_tony_blair.txt" -simalign aligned -ov feat_track.avi -hogalign hog_test.dat -q)
|
||||||
|
- cmd: if exist "../videos" (FaceLandmarkVid.exe -f "../videos/1815_01_008_tony_blair.avi" -ov track.avi -q) else (FaceLandmarkVid.exe -f "../../videos/1815_01_008_tony_blair.avi" -ov track.avi -q)
|
|
@ -1,3 +1,6 @@
|
||||||
|
#TBB library
|
||||||
|
include_directories(${TBB_ROOT_DIR}/include)
|
||||||
|
|
||||||
# Local libraries
|
# Local libraries
|
||||||
include_directories(${LandmarkDetector_SOURCE_DIR}/include)
|
include_directories(${LandmarkDetector_SOURCE_DIR}/include)
|
||||||
|
|
||||||
|
@ -11,4 +14,4 @@ target_link_libraries(FaceLandmarkImg dlib)
|
||||||
|
|
||||||
target_link_libraries(FaceLandmarkImg ${OpenCV_LIBS} ${Boost_LIBRARIES} ${TBB_LIBRARIES})
|
target_link_libraries(FaceLandmarkImg ${OpenCV_LIBS} ${Boost_LIBRARIES} ${TBB_LIBRARIES})
|
||||||
|
|
||||||
install (TARGETS FaceLandmarkImg DESTINATION ${CMAKE_BINARY_DIR}/bin)
|
install (TARGETS FaceLandmarkImg DESTINATION bin)
|
||||||
|
|
|
@ -188,26 +188,64 @@ void write_out_pose_landmarks(const string& outfeatures, const cv::Mat_<double>&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_out_landmarks(const string& outfeatures, const LandmarkDetector::CLNF& clnf_model)
|
void write_out_landmarks(const string& outfeatures, const LandmarkDetector::CLNF& clnf_model, const cv::Vec6d& pose, const cv::Point3f& gaze0, const cv::Point3f& gaze1, std::vector<std::pair<std::string, double>> au_intensities, std::vector<std::pair<std::string, double>> au_occurences)
|
||||||
{
|
{
|
||||||
create_directory_from_file(outfeatures);
|
create_directory_from_file(outfeatures);
|
||||||
std::ofstream featuresFile;
|
std::ofstream featuresFile;
|
||||||
featuresFile.open(outfeatures);
|
featuresFile.open(outfeatures);
|
||||||
|
|
||||||
if(featuresFile.is_open())
|
if (featuresFile.is_open())
|
||||||
{
|
{
|
||||||
int n = clnf_model.patch_experts.visibilities[0][0].rows;
|
int n = clnf_model.patch_experts.visibilities[0][0].rows;
|
||||||
featuresFile << "version: 1" << endl;
|
featuresFile << "version: 1" << endl;
|
||||||
featuresFile << "npoints: " << n << endl;
|
featuresFile << "npoints: " << n << endl;
|
||||||
featuresFile << "{" << endl;
|
featuresFile << "{" << endl;
|
||||||
|
|
||||||
for (int i = 0; i < n; ++ i)
|
for (int i = 0; i < n; ++i)
|
||||||
{
|
{
|
||||||
// Use matlab format, so + 1
|
// Use matlab format, so + 1
|
||||||
featuresFile << clnf_model.detected_landmarks.at<double>(i) + 1 << " " << clnf_model.detected_landmarks.at<double>(i+n) + 1 << endl;
|
featuresFile << clnf_model.detected_landmarks.at<double>(i) + 1 << " " << clnf_model.detected_landmarks.at<double>(i + n) + 1 << endl;
|
||||||
}
|
}
|
||||||
featuresFile << "}" << endl;
|
featuresFile << "}" << endl;
|
||||||
|
|
||||||
|
// Do the pose and eye gaze if present as well
|
||||||
|
featuresFile << "pose: eul_x, eul_y, eul_z: " << endl;
|
||||||
|
featuresFile << "{" << endl;
|
||||||
|
featuresFile << pose[3] << " " << pose[4] << " " << pose[5] << endl;
|
||||||
|
featuresFile << "}" << endl;
|
||||||
|
|
||||||
|
// Do the pose and eye gaze if present as well
|
||||||
|
featuresFile << "gaze: dir_x_1, dir_y_1, dir_z_1, dir_x_2, dir_y_2, dir_z_2: " << endl;
|
||||||
|
featuresFile << "{" << endl;
|
||||||
|
featuresFile << gaze0.x << " " << gaze0.y << " " << gaze0.z << " " << gaze1.x << " " << gaze1.y << " " << gaze1.z << endl;
|
||||||
|
featuresFile << "}" << endl;
|
||||||
|
|
||||||
|
// Do the au intensities
|
||||||
|
featuresFile << "au intensities: " << au_intensities.size() << endl;
|
||||||
|
featuresFile << "{" << endl;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < au_intensities.size(); ++i)
|
||||||
|
{
|
||||||
|
// Use matlab format, so + 1
|
||||||
|
featuresFile << au_intensities[i].first << " " << au_intensities[i].second << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
featuresFile << "}" << endl;
|
||||||
|
|
||||||
|
// Do the au occurences
|
||||||
|
featuresFile << "au occurences: " << au_occurences.size() << endl;
|
||||||
|
featuresFile << "{" << endl;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < au_occurences.size(); ++i)
|
||||||
|
{
|
||||||
|
// Use matlab format, so + 1
|
||||||
|
featuresFile << au_occurences[i].first << " " << au_occurences[i].second << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
featuresFile << "}" << endl;
|
||||||
|
|
||||||
|
|
||||||
|
featuresFile.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,6 +353,45 @@ int main (int argc, char **argv)
|
||||||
cv::CascadeClassifier classifier(det_parameters.face_detector_location);
|
cv::CascadeClassifier classifier(det_parameters.face_detector_location);
|
||||||
dlib::frontal_face_detector face_detector_hog = dlib::get_frontal_face_detector();
|
dlib::frontal_face_detector face_detector_hog = dlib::get_frontal_face_detector();
|
||||||
|
|
||||||
|
// Loading the AU prediction models
|
||||||
|
string au_loc = "AU_predictors/AU_all_static.txt";
|
||||||
|
|
||||||
|
if (!boost::filesystem::exists(boost::filesystem::path(au_loc)))
|
||||||
|
{
|
||||||
|
boost::filesystem::path loc = boost::filesystem::path(arguments[0]).parent_path() / au_loc;
|
||||||
|
|
||||||
|
if (boost::filesystem::exists(loc))
|
||||||
|
{
|
||||||
|
au_loc = loc.string();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cout << "Can't find AU prediction files, exiting" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Used for image masking for AUs
|
||||||
|
string tri_loc;
|
||||||
|
if (boost::filesystem::exists(boost::filesystem::path("model/tris_68_full.txt")))
|
||||||
|
{
|
||||||
|
std::ifstream triangulation_file("model/tris_68_full.txt");
|
||||||
|
tri_loc = "model/tris_68_full.txt";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
boost::filesystem::path loc = boost::filesystem::path(arguments[0]).parent_path() / "model/tris_68_full.txt";
|
||||||
|
tri_loc = loc.string();
|
||||||
|
|
||||||
|
if (!exists(loc))
|
||||||
|
{
|
||||||
|
cout << "Can't find triangulation files, exiting" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FaceAnalysis::FaceAnalyser face_analyser(vector<cv::Vec3d>(), 0.7, 112, 112, au_loc, tri_loc);
|
||||||
|
|
||||||
bool visualise = !det_parameters.quiet_mode;
|
bool visualise = !det_parameters.quiet_mode;
|
||||||
|
|
||||||
// Do some image loading
|
// Do some image loading
|
||||||
|
@ -325,6 +402,12 @@ int main (int argc, char **argv)
|
||||||
// Loading image
|
// Loading image
|
||||||
cv::Mat read_image = cv::imread(file, -1);
|
cv::Mat read_image = cv::imread(file, -1);
|
||||||
|
|
||||||
|
if (read_image.empty())
|
||||||
|
{
|
||||||
|
cout << "Could not read the input image" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Loading depth file if exists (optional)
|
// Loading depth file if exists (optional)
|
||||||
cv::Mat_<float> depth_image;
|
cv::Mat_<float> depth_image;
|
||||||
|
|
||||||
|
@ -396,6 +479,8 @@ int main (int argc, char **argv)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto ActionUnits = face_analyser.PredictStaticAUs(read_image, clnf_model, false);
|
||||||
|
|
||||||
// Writing out the detected landmarks (in an OS independent manner)
|
// Writing out the detected landmarks (in an OS independent manner)
|
||||||
if(!output_landmark_locations.empty())
|
if(!output_landmark_locations.empty())
|
||||||
{
|
{
|
||||||
|
@ -412,7 +497,7 @@ int main (int argc, char **argv)
|
||||||
boost::filesystem::path fname = out_feat_path.filename().replace_extension("");
|
boost::filesystem::path fname = out_feat_path.filename().replace_extension("");
|
||||||
boost::filesystem::path ext = out_feat_path.extension();
|
boost::filesystem::path ext = out_feat_path.extension();
|
||||||
string outfeatures = dir.string() + preferredSlash + fname.string() + string(name) + ext.string();
|
string outfeatures = dir.string() + preferredSlash + fname.string() + string(name) + ext.string();
|
||||||
write_out_landmarks(outfeatures, clnf_model);
|
write_out_landmarks(outfeatures, clnf_model, headPose, gazeDirection0, gazeDirection1, ActionUnits.first, ActionUnits.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!output_pose_locations.empty())
|
if (!output_pose_locations.empty())
|
||||||
|
@ -472,7 +557,13 @@ int main (int argc, char **argv)
|
||||||
boost::filesystem::path ext = out_feat_path.extension();
|
boost::filesystem::path ext = out_feat_path.extension();
|
||||||
outimage = dir.string() + preferredSlash + fname.string() + string(name) + ext.string();
|
outimage = dir.string() + preferredSlash + fname.string() + string(name) + ext.string();
|
||||||
create_directory_from_file(outimage);
|
create_directory_from_file(outimage);
|
||||||
imwrite(outimage, display_image);
|
bool write_success = cv::imwrite(outimage, display_image);
|
||||||
|
|
||||||
|
if (!write_success)
|
||||||
|
{
|
||||||
|
cout << "Could not output a processed image" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,11 +594,13 @@ int main (int argc, char **argv)
|
||||||
FaceAnalysis::EstimateGaze(clnf_model, gazeDirection1, fx, fy, cx, cy, false);
|
FaceAnalysis::EstimateGaze(clnf_model, gazeDirection1, fx, fy, cx, cy, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto ActionUnits = face_analyser.PredictStaticAUs(read_image, clnf_model, false);
|
||||||
|
|
||||||
// Writing out the detected landmarks
|
// Writing out the detected landmarks
|
||||||
if(!output_landmark_locations.empty())
|
if(!output_landmark_locations.empty())
|
||||||
{
|
{
|
||||||
string outfeatures = output_landmark_locations.at(i);
|
string outfeatures = output_landmark_locations.at(i);
|
||||||
write_out_landmarks(outfeatures, clnf_model);
|
write_out_landmarks(outfeatures, clnf_model, headPose, gazeDirection0, gazeDirection1, ActionUnits.first, ActionUnits.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writing out the detected landmarks
|
// Writing out the detected landmarks
|
||||||
|
@ -543,7 +636,13 @@ int main (int argc, char **argv)
|
||||||
if(!outimage.empty())
|
if(!outimage.empty())
|
||||||
{
|
{
|
||||||
create_directory_from_file(outimage);
|
create_directory_from_file(outimage);
|
||||||
imwrite(outimage, display_image);
|
bool write_success = imwrite(outimage, display_image);
|
||||||
|
|
||||||
|
if (!write_success)
|
||||||
|
{
|
||||||
|
cout << "Could not output a processed image" << endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,7 @@
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -123,7 +124,8 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -141,6 +143,7 @@
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -159,7 +162,8 @@
|
||||||
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#TBB library
|
||||||
|
include_directories(${TBB_ROOT_DIR}/include)
|
||||||
|
|
||||||
add_executable(FaceLandmarkVid FaceLandmarkVid.cpp)
|
add_executable(FaceLandmarkVid FaceLandmarkVid.cpp)
|
||||||
|
|
||||||
# Local libraries
|
# Local libraries
|
||||||
|
@ -13,4 +16,4 @@ target_link_libraries(FaceLandmarkVid dlib)
|
||||||
|
|
||||||
target_link_libraries(FaceLandmarkVid ${OpenCV_LIBS} ${Boost_LIBRARIES} ${TBB_LIBRARIES})
|
target_link_libraries(FaceLandmarkVid ${OpenCV_LIBS} ${Boost_LIBRARIES} ${TBB_LIBRARIES})
|
||||||
|
|
||||||
install (TARGETS FaceLandmarkVid DESTINATION ${CMAKE_BINARY_DIR}/bin)
|
install (TARGETS FaceLandmarkVid DESTINATION bin)
|
||||||
|
|
|
@ -193,7 +193,8 @@ int main (int argc, char **argv)
|
||||||
|
|
||||||
// Indicates that rotation should be with respect to world or camera coordinates
|
// Indicates that rotation should be with respect to world or camera coordinates
|
||||||
bool u;
|
bool u;
|
||||||
LandmarkDetector::get_video_input_output_params(files, depth_directories, out_dummy, output_video_files, u, arguments);
|
string output_codec;
|
||||||
|
LandmarkDetector::get_video_input_output_params(files, depth_directories, out_dummy, output_video_files, u, output_codec, arguments);
|
||||||
|
|
||||||
// The modules that are being used for tracking
|
// The modules that are being used for tracking
|
||||||
LandmarkDetector::CLNF clnf_model(det_parameters.model_location);
|
LandmarkDetector::CLNF clnf_model(det_parameters.model_location);
|
||||||
|
@ -247,6 +248,7 @@ int main (int argc, char **argv)
|
||||||
if (!boost::filesystem::exists(current_file))
|
if (!boost::filesystem::exists(current_file))
|
||||||
{
|
{
|
||||||
FATAL_STREAM("File does not exist");
|
FATAL_STREAM("File does not exist");
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
current_file = boost::filesystem::path(current_file).generic_string();
|
current_file = boost::filesystem::path(current_file).generic_string();
|
||||||
|
@ -264,7 +266,11 @@ int main (int argc, char **argv)
|
||||||
video_capture >> captured_image;
|
video_capture >> captured_image;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !video_capture.isOpened() ) FATAL_STREAM( "Failed to open video source" );
|
if (!video_capture.isOpened())
|
||||||
|
{
|
||||||
|
FATAL_STREAM("Failed to open video source");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
else INFO_STREAM( "Device or file opened");
|
else INFO_STREAM( "Device or file opened");
|
||||||
|
|
||||||
cv::Mat captured_image;
|
cv::Mat captured_image;
|
||||||
|
@ -292,7 +298,14 @@ int main (int argc, char **argv)
|
||||||
cv::VideoWriter writerFace;
|
cv::VideoWriter writerFace;
|
||||||
if (!output_video_files.empty())
|
if (!output_video_files.empty())
|
||||||
{
|
{
|
||||||
writerFace = cv::VideoWriter(output_video_files[f_n], CV_FOURCC('D', 'I', 'V', 'X'), 30, captured_image.size(), true);
|
try
|
||||||
|
{
|
||||||
|
writerFace = cv::VideoWriter(output_video_files[f_n], CV_FOURCC(output_codec[0], output_codec[1], output_codec[2], output_codec[3]), 30, captured_image.size(), true);
|
||||||
|
}
|
||||||
|
catch(cv::Exception e)
|
||||||
|
{
|
||||||
|
WARN_STREAM( "Could not open VideoWriter, OUTPUT FILE WILL NOT BE WRITTEN. Currently using codec " << output_codec << ", try using an other one (-oc option)");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use for timestamping if using a webcam
|
// Use for timestamping if using a webcam
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<TargetName>FaceTrackingVid</TargetName>
|
<TargetName>FaceLandmarkVid</TargetName>
|
||||||
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<TargetName>FaceTrackingVid</TargetName>
|
<TargetName>FaceLandmarkVid</TargetName>
|
||||||
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
@ -111,6 +111,7 @@
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -125,7 +126,8 @@
|
||||||
<PreprocessorDefinitions>WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -145,6 +147,7 @@
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -165,7 +168,8 @@
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#TBB library
|
||||||
|
include_directories(${TBB_ROOT_DIR}/include)
|
||||||
|
|
||||||
# Local libraries
|
# Local libraries
|
||||||
include_directories(${LandmarkDetector_SOURCE_DIR}/include)
|
include_directories(${LandmarkDetector_SOURCE_DIR}/include)
|
||||||
|
|
||||||
|
@ -9,4 +12,4 @@ target_link_libraries(FaceLandmarkVidMulti dlib)
|
||||||
|
|
||||||
target_link_libraries(FaceLandmarkVidMulti ${OpenCV_LIBS} ${Boost_LIBRARIES} ${TBB_LIBRARIES})
|
target_link_libraries(FaceLandmarkVidMulti ${OpenCV_LIBS} ${Boost_LIBRARIES} ${TBB_LIBRARIES})
|
||||||
|
|
||||||
install (TARGETS FaceLandmarkVidMulti DESTINATION ${CMAKE_BINARY_DIR}/bin)
|
install (TARGETS FaceLandmarkVidMulti DESTINATION bin)
|
||||||
|
|
|
@ -151,7 +151,8 @@ int main (int argc, char **argv)
|
||||||
|
|
||||||
// Get the input output file parameters
|
// Get the input output file parameters
|
||||||
bool u;
|
bool u;
|
||||||
LandmarkDetector::get_video_input_output_params(files, depth_directories, dummy_out, tracked_videos_output, u, arguments);
|
string output_codec;
|
||||||
|
LandmarkDetector::get_video_input_output_params(files, depth_directories, dummy_out, tracked_videos_output, u, output_codec, arguments);
|
||||||
// Get camera parameters
|
// Get camera parameters
|
||||||
LandmarkDetector::get_camera_params(device, fx, fy, cx, cy, arguments);
|
LandmarkDetector::get_camera_params(device, fx, fy, cx, cy, arguments);
|
||||||
|
|
||||||
|
@ -219,7 +220,11 @@ int main (int argc, char **argv)
|
||||||
video_capture >> captured_image;
|
video_capture >> captured_image;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !video_capture.isOpened() ) FATAL_STREAM( "Failed to open video source" );
|
if (!video_capture.isOpened())
|
||||||
|
{
|
||||||
|
FATAL_STREAM("Failed to open video source");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
else INFO_STREAM( "Device or file opened");
|
else INFO_STREAM( "Device or file opened");
|
||||||
|
|
||||||
cv::Mat captured_image;
|
cv::Mat captured_image;
|
||||||
|
@ -239,7 +244,14 @@ int main (int argc, char **argv)
|
||||||
cv::VideoWriter writerFace;
|
cv::VideoWriter writerFace;
|
||||||
if(!tracked_videos_output.empty())
|
if(!tracked_videos_output.empty())
|
||||||
{
|
{
|
||||||
writerFace = cv::VideoWriter(tracked_videos_output[f_n], CV_FOURCC('D','I','V','X'), 30, captured_image.size(), true);
|
try
|
||||||
|
{
|
||||||
|
writerFace = cv::VideoWriter(tracked_videos_output[f_n], CV_FOURCC(output_codec[0],output_codec[1],output_codec[2],output_codec[3]), 30, captured_image.size(), true);
|
||||||
|
}
|
||||||
|
catch(cv::Exception e)
|
||||||
|
{
|
||||||
|
WARN_STREAM( "Could not open VideoWriter, OUTPUT FILE WILL NOT BE WRITTEN. Currently using codec " << output_codec << ", try using an other one (-oc option)");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For measuring the timings
|
// For measuring the timings
|
||||||
|
@ -412,7 +424,7 @@ int main (int argc, char **argv)
|
||||||
sprintf(fpsC, "%d", (int)fps);
|
sprintf(fpsC, "%d", (int)fps);
|
||||||
string fpsSt("FPS:");
|
string fpsSt("FPS:");
|
||||||
fpsSt += fpsC;
|
fpsSt += fpsC;
|
||||||
cv::putText(disp_image, fpsSt, cv::Point(10,20), CV_FONT_HERSHEY_SIMPLEX, 0.5, CV_RGB(255,0,0));
|
cv::putText(disp_image, fpsSt, cv::Point(10,20), CV_FONT_HERSHEY_SIMPLEX, 0.5, CV_RGB(255,0,0), 1, CV_AA);
|
||||||
|
|
||||||
int num_active_models = 0;
|
int num_active_models = 0;
|
||||||
|
|
||||||
|
@ -428,7 +440,7 @@ int main (int argc, char **argv)
|
||||||
sprintf(active_m_C, "%d", num_active_models);
|
sprintf(active_m_C, "%d", num_active_models);
|
||||||
string active_models_st("Active models:");
|
string active_models_st("Active models:");
|
||||||
active_models_st += active_m_C;
|
active_models_st += active_m_C;
|
||||||
cv::putText(disp_image, active_models_st, cv::Point(10,60), CV_FONT_HERSHEY_SIMPLEX, 0.5, CV_RGB(255,0,0));
|
cv::putText(disp_image, active_models_st, cv::Point(10,60), CV_FONT_HERSHEY_SIMPLEX, 0.5, CV_RGB(255,0,0), 1, CV_AA);
|
||||||
|
|
||||||
if(!det_parameters[0].quiet_mode)
|
if(!det_parameters[0].quiet_mode)
|
||||||
{
|
{
|
||||||
|
|
|
@ -84,14 +84,14 @@
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<TargetName>FaceTrackingVidMulti</TargetName>
|
<TargetName>FaceLandmarkVidMulti</TargetName>
|
||||||
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<TargetName>FaceLandmarkVidMulti</TargetName>
|
<TargetName>FaceLandmarkVidMulti</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<TargetName>FaceTrackingVidMulti</TargetName>
|
<TargetName>FaceLandmarkVidMulti</TargetName>
|
||||||
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
@ -103,6 +103,7 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -113,7 +114,8 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -128,6 +130,7 @@
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -142,8 +145,9 @@
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#TBB library
|
||||||
|
include_directories(${TBB_ROOT_DIR}/include)
|
||||||
|
|
||||||
add_executable(FeatureExtraction FeatureExtraction.cpp)
|
add_executable(FeatureExtraction FeatureExtraction.cpp)
|
||||||
|
|
||||||
# Local libraries
|
# Local libraries
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -110,6 +110,7 @@
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -124,7 +125,8 @@
|
||||||
<PreprocessorDefinitions>WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -144,6 +146,7 @@
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
@ -163,8 +166,9 @@
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
|
|
|
@ -168,7 +168,10 @@ int main (int argc, char **argv)
|
||||||
INFO_STREAM( "Attempting to capture from device: " << device );
|
INFO_STREAM( "Attempting to capture from device: " << device );
|
||||||
vCap = cv::VideoCapture( device );
|
vCap = cv::VideoCapture( device );
|
||||||
|
|
||||||
if( !vCap.isOpened() ) FATAL_STREAM( "Failed to open video source" );
|
if (!vCap.isOpened()) {
|
||||||
|
FATAL_STREAM("Failed to open video source");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
cv::Mat img;
|
cv::Mat img;
|
||||||
vCap >> img;
|
vCap >> img;
|
||||||
|
|
|
@ -85,6 +85,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -94,6 +95,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -107,6 +109,7 @@
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -124,6 +127,7 @@
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
|
8
lib/3rdParty/dlib/dlib.vcxproj
vendored
8
lib/3rdParty/dlib/dlib.vcxproj
vendored
|
@ -107,6 +107,7 @@
|
||||||
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
||||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Lib>
|
<Lib>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||||
|
@ -118,7 +119,7 @@
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<CompileAs>CompileAsCpp</CompileAs>
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<ExceptionHandling>Sync</ExceptionHandling>
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
|
@ -130,6 +131,7 @@
|
||||||
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
||||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Lib>
|
<Lib>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||||
|
@ -154,6 +156,7 @@
|
||||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>WIN32;_WINDOWS;DLIB_PNG_SUPPORT;DLIB_JPEG_SUPPORT;NDEBUG;DLIB_HAVE_SSE2;DLIB_HAVE_SSE3;DLIB_HAVE_SSE41;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WINDOWS;DLIB_PNG_SUPPORT;DLIB_JPEG_SUPPORT;NDEBUG;DLIB_HAVE_SSE2;DLIB_HAVE_SSE3;DLIB_HAVE_SSE41;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -175,7 +178,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)dlib/include/dlib/..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)dlib/include/dlib/..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsCpp</CompileAs>
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<ExceptionHandling>Sync</ExceptionHandling>
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
|
@ -190,6 +193,7 @@
|
||||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>WIN32;_WINDOWS;DLIB_PNG_SUPPORT;DLIB_JPEG_SUPPORT;NDEBUG;DLIB_HAVE_SSE2;DLIB_HAVE_SSE3;DLIB_HAVE_SSE41;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_WINDOWS;DLIB_PNG_SUPPORT;DLIB_JPEG_SUPPORT;NDEBUG;DLIB_HAVE_SSE2;DLIB_HAVE_SSE3;DLIB_HAVE_SSE41;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1595,9 +1595,10 @@ namespace dlib
|
||||||
explicit literal_assign_helper(matrix* m_): m(m_), r(0), c(0),has_been_used(false) {next();}
|
explicit literal_assign_helper(matrix* m_): m(m_), r(0), c(0),has_been_used(false) {next();}
|
||||||
~literal_assign_helper()
|
~literal_assign_helper()
|
||||||
{
|
{
|
||||||
DLIB_CASSERT(!has_been_used || r == m->nr(),
|
assert(!has_been_used || r == m->nr());
|
||||||
"You have used the matrix comma based assignment incorrectly by failing to\n"
|
//DLIB_CASSERT(!has_been_used || r == m->nr(),
|
||||||
"supply a full set of values for every element of a matrix object.\n");
|
// "You have used the matrix comma based assignment incorrectly by failing to\n"
|
||||||
|
// "supply a full set of values for every element of a matrix object.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
const literal_assign_helper& operator, (
|
const literal_assign_helper& operator, (
|
||||||
|
|
|
@ -23,9 +23,11 @@ namespace dlib
|
||||||
|
|
||||||
cv_image (const cv::Mat img)
|
cv_image (const cv::Mat img)
|
||||||
{
|
{
|
||||||
DLIB_CASSERT(img.depth() == cv::DataType<typename pixel_traits<pixel_type>::basic_pixel_type>::depth &&
|
assert(img.depth() == cv::DataType<typename pixel_traits<pixel_type>::basic_pixel_type>::depth &&
|
||||||
img.channels() == pixel_traits<pixel_type>::num,
|
img.channels() == pixel_traits<pixel_type>::num);
|
||||||
"The pixel type you gave doesn't match pixel used by the open cv Mat object.");
|
//DLIB_CASSERT(img.depth() == cv::DataType<typename pixel_traits<pixel_type>::basic_pixel_type>::depth &&
|
||||||
|
// img.channels() == pixel_traits<pixel_type>::num,
|
||||||
|
// "The pixel type you gave doesn't match pixel used by the open cv Mat object.");
|
||||||
IplImage temp = img;
|
IplImage temp = img;
|
||||||
init(&temp);
|
init(&temp);
|
||||||
}
|
}
|
||||||
|
|
|
@ -319,11 +319,11 @@ namespace CppInterop {
|
||||||
|
|
||||||
cv::Vec6d pose = ::LandmarkDetector::GetCorrectedPoseWorld(*clnf, fx,fy, cx, cy);
|
cv::Vec6d pose = ::LandmarkDetector::GetCorrectedPoseWorld(*clnf, fx,fy, cx, cy);
|
||||||
|
|
||||||
vector<pair<cv::Point, cv::Point>> vecLines = ::LandmarkDetector::CalculateBox(pose, fx, fy, cx, cy);
|
vector<pair<cv::Point2d, cv::Point2d>> vecLines = ::LandmarkDetector::CalculateBox(pose, fx, fy, cx, cy);
|
||||||
|
|
||||||
auto lines = gcnew System::Collections::Generic::List<System::Tuple<System::Windows::Point,System::Windows::Point>^>();
|
auto lines = gcnew System::Collections::Generic::List<System::Tuple<System::Windows::Point,System::Windows::Point>^>();
|
||||||
|
|
||||||
for(pair<cv::Point, cv::Point> line : vecLines) {
|
for(pair<cv::Point2d, cv::Point2d> line : vecLines) {
|
||||||
lines->Add(gcnew System::Tuple<System::Windows::Point, System::Windows::Point>(System::Windows::Point(line.first.x, line.first.y), System::Windows::Point(line.second.x, line.second.y)));
|
lines->Add(gcnew System::Tuple<System::Windows::Point, System::Windows::Point>(System::Windows::Point(line.first.x, line.first.y), System::Windows::Point(line.second.x, line.second.y)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,35 @@
|
||||||
svr_disfa/AU_1_static.dat AU01
|
svm_combined/AU_1_dynamic.dat AU01
|
||||||
svr_disfa/AU_2_dyn.dat AU02
|
svm_combined/AU_2_dynamic.dat AU02
|
||||||
svr_disfa/AU_4_static.dat AU04
|
svm_combined/AU_4_static.dat AU04
|
||||||
svm_combined/AU_4_dynamic_combined_all.dat AU04
|
svm_combined/AU_5_static.dat AU05
|
||||||
svr_disfa/AU_5_dyn.dat AU05
|
svm_combined/AU_6_static.dat AU06
|
||||||
svr_combined/AU_6_static_intensity_combined.dat AU06
|
svm_combined/AU_7_static.dat AU07
|
||||||
svr_disfa/AU_9_dyn.dat AU09
|
svm_combined/AU_9_dynamic.dat AU09
|
||||||
svr_bp4d/AU_10_static_intensity.dat AU10
|
svm_combined/AU_10_static.dat AU10
|
||||||
svm_combined/AU_12_static_combined_all.dat AU12
|
svm_combined/AU_12_static.dat AU12
|
||||||
svr_combined/AU_12_static_intensity_combined.dat AU12
|
svm_combined/AU_14_static.dat AU14
|
||||||
svr_bp4d/AU_14_static_intensity.dat AU14
|
svm_combined/AU_15_dynamic.dat AU15
|
||||||
svr_disfa/AU_15_dyn.dat AU15
|
svm_combined/AU_17_dynamic.dat AU17
|
||||||
svm_combined/AU_15_dynamic_combined_all.dat AU15
|
svm_combined/AU_20_dynamic.dat AU20
|
||||||
svr_combined/AU_17_static_intensity_combined.dat AU17
|
svm_combined/AU_23_static.dat AU23
|
||||||
svr_disfa/AU_20_dyn.dat AU20
|
svm_combined/AU_25_dynamic.dat AU25
|
||||||
svm_bp4d/AU_23_static.dat AU23
|
svm_combined/AU_26_dynamic.dat AU26
|
||||||
svr_disfa/AU_25_static.dat AU25
|
svm_combined/AU_28_static.dat AU28
|
||||||
svr_disfa/AU_26_dyn.dat AU26
|
svm_combined/AU_45_dynamic.dat AU45
|
||||||
svm_semaine/AU_28_static.dat AU28
|
svr_combined/AU_1_dynamic_intensity_comb.dat AU01
|
||||||
svm_semaine/AU_45_dynamic.dat AU45
|
svr_combined/AU_2_dynamic_intensity_comb.dat AU02
|
||||||
|
svr_combined/AU_4_static_intensity_comb.dat AU04
|
||||||
|
svr_combined/AU_5_dynamic_intensity.dat AU05
|
||||||
|
svr_combined/AU_6_static_intensity_comb.dat AU06
|
||||||
|
svr_combined/AU_7_static_intensity_comb.dat AU07
|
||||||
|
svr_combined/AU_9_dynamic_intensity.dat AU09
|
||||||
|
svr_combined/AU_10_static_intensity_comb.dat AU10
|
||||||
|
svr_combined/AU_12_static_intensity_comb.dat AU12
|
||||||
|
svr_combined/AU_14_static_intensity.dat AU14
|
||||||
|
svr_combined/AU_15_dynamic_intensity_comb.dat AU15
|
||||||
|
svr_combined/AU_17_dynamic_intensity_comb.dat AU17
|
||||||
|
svr_combined/AU_20_dynamic_intensity.dat AU20
|
||||||
|
svr_combined/AU_23_dynamic_intensity_comb.dat AU23
|
||||||
|
svr_combined/AU_25_dynamic_intensity_comb.dat AU25
|
||||||
|
svr_combined/AU_26_dynamic_intensity_comb.dat AU26
|
||||||
|
svr_combined/AU_45_dynamic_intensity_comb.dat AU45
|
|
@ -1,23 +1,35 @@
|
||||||
svr_disfa/AU_1_static.dat AU01
|
svm_combined/AU_1_static.dat AU01
|
||||||
svr_disfa/AU_2_static.dat AU02
|
svm_combined/AU_2_static.dat AU02
|
||||||
svr_disfa/AU_4_static.dat AU04
|
svm_combined/AU_4_static.dat AU04
|
||||||
svm_combined/AU_4_static_combined_all.dat AU04
|
svm_combined/AU_5_static.dat AU05
|
||||||
svr_disfa/AU_5_static.dat AU05
|
svm_combined/AU_6_static.dat AU06
|
||||||
svr_combined/AU_6_static_intensity_combined.dat AU06
|
svm_combined/AU_7_static.dat AU07
|
||||||
svm_bp4d/AU_7_static.dat AU07
|
svm_combined/AU_9_static.dat AU09
|
||||||
svr_disfa/AU_9_static.dat AU09
|
svm_combined/AU_10_static.dat AU10
|
||||||
svr_bp4d/AU_10_static_intensity.dat AU10
|
svm_combined/AU_12_static.dat AU12
|
||||||
svm_combined/AU_12_static_combined_all.dat AU12
|
svm_combined/AU_14_static.dat AU14
|
||||||
svr_combined/AU_12_static_intensity_combined.dat AU12
|
svm_combined/AU_15_static.dat AU15
|
||||||
svr_bp4d/AU_14_static_intensity.dat AU14
|
svm_combined/AU_17_static.dat AU17
|
||||||
svr_disfa/AU_15_static.dat AU15
|
svm_combined/AU_20_static.dat AU20
|
||||||
svm_combined/AU_15_static_combined_all.dat AU15
|
svm_combined/AU_23_static.dat AU23
|
||||||
svr_combined/AU_17_static_intensity_combined.dat AU17
|
svm_combined/AU_25_static.dat AU25
|
||||||
svm_combined/AU_17_static_combined_all.dat AU17
|
svm_combined/AU_26_static.dat AU26
|
||||||
svr_disfa/AU_20_static.dat AU20
|
svm_combined/AU_28_static.dat AU28
|
||||||
svm_bp4d/AU_23_static.dat AU23
|
svm_combined/AU_45_static.dat AU45
|
||||||
svr_disfa/AU_25_static.dat AU25
|
svr_combined/AU_1_static_intensity.dat AU01
|
||||||
svm_combined/AU_25_static_combined_all.dat AU25
|
svr_combined/AU_2_static_intensity_comb.dat AU02
|
||||||
svr_disfa/AU_26_static.dat AU26
|
svr_combined/AU_4_static_intensity_comb.dat AU04
|
||||||
svm_semaine/AU_28_static.dat AU28
|
svr_combined/AU_5_static_intensity.dat AU05
|
||||||
svm_semaine/AU_45_static.dat AU45
|
svr_combined/AU_6_static_intensity_comb.dat AU06
|
||||||
|
svr_combined/AU_7_static_intensity_comb.dat AU07
|
||||||
|
svr_combined/AU_9_static_intensity.dat AU09
|
||||||
|
svr_combined/AU_10_static_intensity_comb.dat AU10
|
||||||
|
svr_combined/AU_12_static_intensity_comb.dat AU12
|
||||||
|
svr_combined/AU_14_static_intensity.dat AU14
|
||||||
|
svr_combined/AU_15_static_intensity_comb.dat AU15
|
||||||
|
svr_combined/AU_17_static_intensity_comb.dat AU17
|
||||||
|
svr_combined/AU_20_static_intensity.dat AU20
|
||||||
|
svr_combined/AU_23_static_intensity_comb.dat AU23
|
||||||
|
svr_combined/AU_25_static_intensity.dat AU25
|
||||||
|
svr_combined/AU_26_static_intensity_comb.dat AU26
|
||||||
|
svr_combined/AU_45_static_intensity_comb.dat AU45
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue