mirror of
https://gitcode.com/gh_mirrors/ope/OpenFace.git
synced 2025-12-30 04:52:29 +00:00
Moving to AVX instead of AVX2, compiler warning fixes. Losing dependency on OpenCV C style bindings for affine warping.
This commit is contained in:
@@ -147,7 +147,7 @@
|
|||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|||||||
@@ -133,7 +133,7 @@
|
|||||||
</FunctionLevelLinking>
|
</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\Utilities\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\Utilities\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
</FunctionLevelLinking>
|
</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\Utilities\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\Utilities\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
|||||||
@@ -149,7 +149,7 @@
|
|||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\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>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\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>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
|
|||||||
4
lib/3rdParty/dlib/dlib.vcxproj
vendored
4
lib/3rdParty/dlib/dlib.vcxproj
vendored
@@ -141,7 +141,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>
|
||||||
@@ -178,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>
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CPPINEROP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CPPINEROP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
<PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;CPPINEROP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;CPPINEROP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
|
|||||||
24
lib/local/FaceAnalyser/AU_predictors/AU_DISFA_best.txt
Normal file
24
lib/local/FaceAnalyser/AU_predictors/AU_DISFA_best.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
svm_disfa/AU_1_dynamic.dat AU01
|
||||||
|
svm_disfa/AU_2_dynamic.dat AU02
|
||||||
|
svm_disfa/AU_4_static.dat AU04
|
||||||
|
svm_disfa/AU_5_dynamic.dat AU05
|
||||||
|
svm_disfa/AU_6_static.dat AU06
|
||||||
|
svm_disfa/AU_9_dynamic.dat AU09
|
||||||
|
svm_disfa/AU_12_dynamic.dat AU12
|
||||||
|
svm_disfa/AU_15_dynamic.dat AU15
|
||||||
|
svm_disfa/AU_17_dynamic.dat AU17
|
||||||
|
svm_disfa/AU_20_dynamic.dat AU20
|
||||||
|
svm_disfa/AU_25_dynamic.dat AU25
|
||||||
|
svm_disfa/AU_26_dynamic.dat AU26
|
||||||
|
svr_disfa/AU_1_dynamic_intensity.dat AU01
|
||||||
|
svr_disfa/AU_2_dynamic_intensity.dat AU02
|
||||||
|
svr_disfa/AU_4_dynamic_intensity_comb.dat AU04
|
||||||
|
svr_disfa/AU_5_dynamic_intensity.dat AU05
|
||||||
|
svr_disfa/AU_6_dynamic_intensity_comb.dat AU06
|
||||||
|
svr_disfa/AU_9_dynamic_intensity.dat AU09
|
||||||
|
svr_disfa/AU_12_dynamic_intensity_comb.dat AU12
|
||||||
|
svr_disfa/AU_15_dynamic_intensity_comb.dat AU15
|
||||||
|
svr_disfa/AU_17_dynamic_intensity_comb.dat AU17
|
||||||
|
svr_disfa/AU_20_dynamic_intensity.dat AU20
|
||||||
|
svr_disfa/AU_25_dynamic_intensity_comb.dat AU25
|
||||||
|
svr_disfa/AU_26_dynamic_intensity_comb.dat AU26
|
||||||
24
lib/local/FaceAnalyser/AU_predictors/AU_DISFA_static.txt
Normal file
24
lib/local/FaceAnalyser/AU_predictors/AU_DISFA_static.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
svm_disfa/AU_1_static.dat AU01
|
||||||
|
svm_disfa/AU_2_static.dat AU02
|
||||||
|
svm_disfa/AU_4_static.dat AU04
|
||||||
|
svm_disfa/AU_5_static.dat AU05
|
||||||
|
svm_disfa/AU_6_static.dat AU06
|
||||||
|
svm_disfa/AU_9_static.dat AU09
|
||||||
|
svm_disfa/AU_12_static.dat AU12
|
||||||
|
svm_disfa/AU_15_static.dat AU15
|
||||||
|
svm_disfa/AU_17_static.dat AU17
|
||||||
|
svm_disfa/AU_20_static.dat AU20
|
||||||
|
svm_disfa/AU_25_static.dat AU25
|
||||||
|
svm_disfa/AU_26_static.dat AU26
|
||||||
|
svr_disfa/AU_1_static_intensity.dat AU01
|
||||||
|
svr_disfa/AU_2_static_intensity.dat AU02
|
||||||
|
svr_disfa/AU_4_static_intensity.dat AU04
|
||||||
|
svr_disfa/AU_5_static_intensity.dat AU05
|
||||||
|
svr_disfa/AU_6_static_intensity.dat AU06
|
||||||
|
svr_disfa/AU_9_static_intensity.dat AU09
|
||||||
|
svr_disfa/AU_12_static_intensity.dat AU12
|
||||||
|
svr_disfa/AU_15_static_intensity.dat AU15
|
||||||
|
svr_disfa/AU_17_static_intensity.dat AU17
|
||||||
|
svr_disfa/AU_20_static_intensity.dat AU20
|
||||||
|
svr_disfa/AU_25_static_intensity.dat AU25
|
||||||
|
svr_disfa/AU_26_static_intensity.dat AU26
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
AUPredictor AU_DISFA_best.txt
|
||||||
|
PDM In-the-wild_aligned_PDM_68.txt
|
||||||
|
Triangulation tris_68_full.txt
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
AUPredictor AU_DISFA_static.txt
|
||||||
|
PDM In-the-wild_aligned_PDM_68.txt
|
||||||
|
Triangulation tris_68_full.txt
|
||||||
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_12_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_12_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_12_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_12_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_15_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_15_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_15_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_15_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_17_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_17_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_17_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_17_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_1_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_1_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_1_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_1_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_20_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_20_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_20_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_20_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_25_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_25_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_25_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_25_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_26_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_26_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_26_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_26_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_2_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_2_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_2_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_2_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_4_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_4_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_4_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_4_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_5_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_5_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_5_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_5_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_6_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_6_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_6_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_6_stat.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_9_dyn.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_9_dyn.dat
Normal file
Binary file not shown.
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_9_stat.dat
Normal file
BIN
lib/local/FaceAnalyser/AU_predictors/svm_disfa/AU_9_stat.dat
Normal file
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.
@@ -141,7 +141,7 @@
|
|||||||
<SDLCheck>
|
<SDLCheck>
|
||||||
</SDLCheck>
|
</SDLCheck>
|
||||||
<AdditionalIncludeDirectories>./include;$(SolutionDir)lib/local/Utilities/include;$(SolutionDir)lib/local/LandmarkDetector/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;$(SolutionDir)lib/local/Utilities/include;$(SolutionDir)lib/local/LandmarkDetector/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
<SDLCheck>
|
<SDLCheck>
|
||||||
</SDLCheck>
|
</SDLCheck>
|
||||||
<AdditionalIncludeDirectories>./include;$(SolutionDir)lib/local/Utilities/include;$(SolutionDir)lib/local/LandmarkDetector/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;$(SolutionDir)lib/local/Utilities/include;$(SolutionDir)lib/local/LandmarkDetector/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<PreprocessorDefinitions>WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
|
|||||||
@@ -116,7 +116,7 @@
|
|||||||
<AdditionalIncludeDirectories>./include;../LandmarkDetector/include;../Utilities/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;../LandmarkDetector/include;../Utilities/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
<AdditionalIncludeDirectories>./include;../LandmarkDetector/include;../Utilities/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;../LandmarkDetector/include;../Utilities/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<PreprocessorDefinitions>WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)c
|
|||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<AdditionalOptions>/Zm300 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm300 %(AdditionalOptions)</AdditionalOptions>
|
||||||
@@ -173,7 +173,7 @@ xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)c
|
|||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
<AdditionalOptions>/Zm300 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm300 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ namespace LandmarkDetector
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
// Width and height of the patch expert support area
|
// Width and height of the patch expert support area
|
||||||
int width;
|
int width_support;
|
||||||
int height;
|
int height_support;
|
||||||
|
|
||||||
// Neural weights
|
// Neural weights
|
||||||
std::vector<cv::Mat_<float>> biases;
|
std::vector<cv::Mat_<float>> biases;
|
||||||
|
|||||||
@@ -455,8 +455,7 @@ void CCNF_patch_expert::ResponseOpenBlas(const cv::Mat_<float> &area_of_interest
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 0.0;
|
float beta1 = 0.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &normalized_input.cols, &weight_matrix.rows, &weight_matrix.cols, &alpha1, (float*)normalized_input.data, &normalized_input.cols, (float*)weight_matrix.data, &weight_matrix.cols, &beta1, (float*)neuron_resp_full.data, &normalized_input.cols);
|
||||||
sgemm_(nT, nT, &normalized_input.cols, &weight_matrix.rows, &weight_matrix.cols, &alpha1, (float*)normalized_input.data, &normalized_input.cols, (float*)weight_matrix.data, &weight_matrix.cols, &beta1, (float*)neuron_resp_full.data, &normalized_input.cols);
|
|
||||||
|
|
||||||
// Above is a faster version of this
|
// Above is a faster version of this
|
||||||
//cv::Mat_<float> neuron_resp_full = this->weight_matrix * normalized_input;
|
//cv::Mat_<float> neuron_resp_full = this->weight_matrix * normalized_input;
|
||||||
@@ -500,8 +499,7 @@ void CCNF_patch_expert::ResponseOpenBlas(const cv::Mat_<float> &area_of_interest
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
alpha1 = 1.0;
|
alpha1 = 1.0;
|
||||||
beta1 = 0.0;
|
beta1 = 0.0;
|
||||||
nT = "N";
|
sgemm_("N", "N", &resp_vec_f.cols, &Sigmas[s_to_use].rows, &Sigmas[s_to_use].cols, &alpha1, (float*)resp_vec_f.data, &resp_vec_f.cols, (float*)Sigmas[s_to_use].data, &Sigmas[s_to_use].cols, &beta1, (float*)out.data, &resp_vec_f.cols);
|
||||||
sgemm_(nT, nT, &resp_vec_f.cols, &Sigmas[s_to_use].rows, &Sigmas[s_to_use].cols, &alpha1, (float*)resp_vec_f.data, &resp_vec_f.cols, (float*)Sigmas[s_to_use].data, &Sigmas[s_to_use].cols, &beta1, (float*)out.data, &resp_vec_f.cols);
|
|
||||||
|
|
||||||
// Above is a faster version of this
|
// Above is a faster version of this
|
||||||
//cv::Mat out = Sigmas[s_to_use] * resp_vec_f;
|
//cv::Mat out = Sigmas[s_to_use] * resp_vec_f;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
using namespace LandmarkDetector;
|
using namespace LandmarkDetector;
|
||||||
|
|
||||||
// Copy constructor
|
// Copy constructor
|
||||||
CEN_patch_expert::CEN_patch_expert(const CEN_patch_expert& other) : confidence(other.confidence), width(other.width), height(other.height)
|
CEN_patch_expert::CEN_patch_expert(const CEN_patch_expert& other) : confidence(other.confidence), width_support(other.width_support), height_support(other.height_support)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Copy the layer weights in a deep way
|
// Copy the layer weights in a deep way
|
||||||
@@ -106,8 +106,8 @@ void CEN_patch_expert::Read(ifstream &stream)
|
|||||||
|
|
||||||
// the number of neurons for this patch
|
// the number of neurons for this patch
|
||||||
int num_layers;
|
int num_layers;
|
||||||
stream.read((char*)&width, 4);
|
stream.read((char*)&width_support, 4);
|
||||||
stream.read((char*)&height, 4);
|
stream.read((char*)&height_support, 4);
|
||||||
stream.read((char*)&num_layers, 4);
|
stream.read((char*)&num_layers, 4);
|
||||||
|
|
||||||
if (num_layers == 0)
|
if (num_layers == 0)
|
||||||
@@ -221,11 +221,11 @@ void im2colBias(const cv::Mat_<float>& input, int width, int height, cv::Mat_<fl
|
|||||||
void CEN_patch_expert::Response(const cv::Mat_<float> &area_of_interest, cv::Mat_<float> &response)
|
void CEN_patch_expert::Response(const cv::Mat_<float> &area_of_interest, cv::Mat_<float> &response)
|
||||||
{
|
{
|
||||||
|
|
||||||
int response_height = area_of_interest.rows - height + 1;
|
int response_height = area_of_interest.rows - height_support + 1;
|
||||||
int response_width = area_of_interest.cols - width + 1;
|
int response_width = area_of_interest.cols - width_support + 1;
|
||||||
|
|
||||||
cv::Mat_<float> input_col;
|
cv::Mat_<float> input_col;
|
||||||
im2colBias(area_of_interest, width, height, input_col);
|
im2colBias(area_of_interest, width_support, height_support, input_col);
|
||||||
|
|
||||||
// Mean and standard deviation normalization
|
// Mean and standard deviation normalization
|
||||||
contrastNorm(input_col, response);
|
contrastNorm(input_col, response);
|
||||||
@@ -246,8 +246,7 @@ void CEN_patch_expert::Response(const cv::Mat_<float> &area_of_interest, cv::Mat
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 0.0;
|
float beta1 = 0.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
||||||
sgemm_(nT, nT, &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
|
||||||
|
|
||||||
// The above is a faster version of this, by calling the fortran version directly
|
// The above is a faster version of this, by calling the fortran version directly
|
||||||
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
||||||
@@ -507,11 +506,11 @@ void LandmarkDetector::interpolationMatrix(cv::Mat_<float>& mapMatrix, int respo
|
|||||||
void CEN_patch_expert::ResponseSparse(const cv::Mat_<float> &area_of_interest, cv::Mat_<float> &response, cv::Mat_<float>& mapMatrix, cv::Mat_<float>& im2col_prealloc)
|
void CEN_patch_expert::ResponseSparse(const cv::Mat_<float> &area_of_interest, cv::Mat_<float> &response, cv::Mat_<float>& mapMatrix, cv::Mat_<float>& im2col_prealloc)
|
||||||
{
|
{
|
||||||
|
|
||||||
int response_height = area_of_interest.rows - height + 1;
|
int response_height = area_of_interest.rows - height_support + 1;
|
||||||
int response_width = area_of_interest.cols - width + 1;
|
int response_width = area_of_interest.cols - width_support + 1;
|
||||||
|
|
||||||
// Extract im2col but in a sparse way and contrast normalize
|
// Extract im2col but in a sparse way and contrast normalize
|
||||||
im2colBiasSparseContrastNorm(area_of_interest, width, height, im2col_prealloc);
|
im2colBiasSparseContrastNorm(area_of_interest, width_support, height_support, im2col_prealloc);
|
||||||
response = im2col_prealloc.t();
|
response = im2col_prealloc.t();
|
||||||
|
|
||||||
for (size_t layer = 0; layer < activation_function.size(); ++layer)
|
for (size_t layer = 0; layer < activation_function.size(); ++layer)
|
||||||
@@ -529,8 +528,7 @@ void CEN_patch_expert::ResponseSparse(const cv::Mat_<float> &area_of_interest, c
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 0.0;
|
float beta1 = 0.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
||||||
sgemm_(nT, nT, &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
|
||||||
|
|
||||||
// The above is a faster version of this, by calling the fortran version directly
|
// The above is a faster version of this, by calling the fortran version directly
|
||||||
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
||||||
@@ -585,13 +583,13 @@ void CEN_patch_expert::ResponseSparse(const cv::Mat_<float> &area_of_interest, c
|
|||||||
void CEN_patch_expert::ResponseSparse_mirror(const cv::Mat_<float> &area_of_interest, cv::Mat_<float> &response, cv::Mat_<float>& mapMatrix, cv::Mat_<float>& im2col_prealloc)
|
void CEN_patch_expert::ResponseSparse_mirror(const cv::Mat_<float> &area_of_interest, cv::Mat_<float> &response, cv::Mat_<float>& mapMatrix, cv::Mat_<float>& im2col_prealloc)
|
||||||
{
|
{
|
||||||
|
|
||||||
int response_height = area_of_interest.rows - height + 1;
|
int response_height = area_of_interest.rows - height_support + 1;
|
||||||
int response_width = area_of_interest.cols - width + 1;
|
int response_width = area_of_interest.cols - width_support + 1;
|
||||||
|
|
||||||
cv::flip(area_of_interest, area_of_interest, 1);
|
cv::flip(area_of_interest, area_of_interest, 1);
|
||||||
|
|
||||||
// Extract im2col but in a sparse way and contrast normalize
|
// Extract im2col but in a sparse way and contrast normalize
|
||||||
im2colBiasSparseContrastNorm(area_of_interest, width, height, im2col_prealloc);
|
im2colBiasSparseContrastNorm(area_of_interest, width_support, height_support, im2col_prealloc);
|
||||||
|
|
||||||
response = im2col_prealloc.t();
|
response = im2col_prealloc.t();
|
||||||
|
|
||||||
@@ -610,8 +608,7 @@ void CEN_patch_expert::ResponseSparse_mirror(const cv::Mat_<float> &area_of_inte
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 0.0;
|
float beta1 = 0.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
||||||
sgemm_(nT, nT, &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
|
||||||
|
|
||||||
// The above is a faster version of this, by calling the fortran version directly
|
// The above is a faster version of this, by calling the fortran version directly
|
||||||
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
||||||
@@ -665,14 +662,14 @@ void CEN_patch_expert::ResponseSparse_mirror(const cv::Mat_<float> &area_of_inte
|
|||||||
|
|
||||||
void CEN_patch_expert::ResponseSparse_mirror_joint(const cv::Mat_<float> &area_of_interest_left, const cv::Mat_<float> &area_of_interest_right, cv::Mat_<float> &response_left, cv::Mat_<float> &response_right, cv::Mat_<float>& mapMatrix, cv::Mat_<float>& im2col_prealloc_left, cv::Mat_<float>& im2col_prealloc_right)
|
void CEN_patch_expert::ResponseSparse_mirror_joint(const cv::Mat_<float> &area_of_interest_left, const cv::Mat_<float> &area_of_interest_right, cv::Mat_<float> &response_left, cv::Mat_<float> &response_right, cv::Mat_<float>& mapMatrix, cv::Mat_<float>& im2col_prealloc_left, cv::Mat_<float>& im2col_prealloc_right)
|
||||||
{
|
{
|
||||||
int response_height = area_of_interest_left.rows - height + 1;
|
int response_height = area_of_interest_left.rows - height_support + 1;
|
||||||
int response_width = area_of_interest_left.cols - width + 1;
|
int response_width = area_of_interest_left.cols - width_support + 1;
|
||||||
|
|
||||||
cv::flip(area_of_interest_right, area_of_interest_right, 1);
|
cv::flip(area_of_interest_right, area_of_interest_right, 1);
|
||||||
|
|
||||||
// Extract im2col but in a sparse way and contrast normalize
|
// Extract im2col but in a sparse way and contrast normalize
|
||||||
im2colBiasSparseContrastNorm(area_of_interest_left, width, height, im2col_prealloc_left);
|
im2colBiasSparseContrastNorm(area_of_interest_left, width_support, height_support, im2col_prealloc_left);
|
||||||
im2colBiasSparseContrastNorm(area_of_interest_right, width, height, im2col_prealloc_right);
|
im2colBiasSparseContrastNorm(area_of_interest_right, width_support, height_support, im2col_prealloc_right);
|
||||||
|
|
||||||
cv::Mat_<float> response;
|
cv::Mat_<float> response;
|
||||||
cv::vconcat(im2col_prealloc_left, im2col_prealloc_right, response);
|
cv::vconcat(im2col_prealloc_left, im2col_prealloc_right, response);
|
||||||
@@ -695,8 +692,7 @@ void CEN_patch_expert::ResponseSparse_mirror_joint(const cv::Mat_<float> &area_o
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 0.0;
|
float beta1 = 0.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
||||||
sgemm_(nT, nT, &resp.cols, &weight.rows, &weight.cols, &alpha1, m1, &resp.cols, m2, &weight.cols, &beta1, m3, &resp.cols);
|
|
||||||
|
|
||||||
// The above is a faster version of this, by calling the fortran version directly
|
// The above is a faster version of this, by calling the fortran version directly
|
||||||
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
//cblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, resp.cols, weight.rows, weight.cols, 1, m1, resp.cols, m2, weight.cols, 0.0, m3, resp.cols);
|
||||||
|
|||||||
@@ -563,8 +563,7 @@ namespace LandmarkDetector
|
|||||||
float alpha = 1.0f;
|
float alpha = 1.0f;
|
||||||
float beta = 0.0f;
|
float beta = 0.0f;
|
||||||
// Call fortran directly (faster)
|
// Call fortran directly (faster)
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &m2_cols, &num_rows, &pre_alloc_im2col.cols, &alpha, m2, &m2_cols, m1, &pre_alloc_im2col.cols, &beta, m3, &m2_cols);
|
||||||
sgemm_(nT, nT, &m2_cols, &num_rows, &pre_alloc_im2col.cols, &alpha, m2, &m2_cols, m1, &pre_alloc_im2col.cols, &beta, m3, &m2_cols);
|
|
||||||
|
|
||||||
// Above is equivalent to out = pre_alloc_im2col * weight_matrix;
|
// Above is equivalent to out = pre_alloc_im2col * weight_matrix;
|
||||||
|
|
||||||
|
|||||||
@@ -762,7 +762,8 @@ bool FaceDetectorMTCNN::DetectFaces(vector<cv::Rect_<float> >& o_regions, const
|
|||||||
rectify(proposal_boxes_all);
|
rectify(proposal_boxes_all);
|
||||||
|
|
||||||
// Creating proposal images from previous step detections
|
// Creating proposal images from previous step detections
|
||||||
vector<bool> above_thresh(proposal_boxes_all.size());
|
vector<bool> above_thresh;
|
||||||
|
above_thresh.resize(proposal_boxes_all.size(), false);
|
||||||
//tbb::parallel_for(0, (int)proposal_boxes_all.size(), [&](int k) {
|
//tbb::parallel_for(0, (int)proposal_boxes_all.size(), [&](int k) {
|
||||||
for (size_t k = 0; k < proposal_boxes_all.size(); ++k)
|
for (size_t k = 0; k < proposal_boxes_all.size(); ++k)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1115,8 +1115,7 @@ float CLNF::NU_RLMS(cv::Vec6f& final_global, cv::Mat_<float>& final_local, const
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 1.0;
|
float beta1 = 1.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &J.cols, &J_w_t.rows, &J_w_t.cols, &alpha1, (float*)J.data, &J.cols, (float*)J_w_t.data, &J_w_t.cols, &beta1, (float*)Hessian.data, &J.cols);
|
||||||
sgemm_(nT, nT, &J.cols, &J_w_t.rows, &J_w_t.cols, &alpha1, (float*)J.data, &J.cols, (float*)J_w_t.data, &J_w_t.cols, &beta1, (float*)Hessian.data, &J.cols);
|
|
||||||
|
|
||||||
// Above is a fast (but ugly) version of
|
// Above is a fast (but ugly) version of
|
||||||
// cv::Mat_<float> Hessian = J_w_t * J + regTerm;
|
// cv::Mat_<float> Hessian = J_w_t * J + regTerm;
|
||||||
|
|||||||
@@ -429,8 +429,7 @@ namespace LandmarkDetector
|
|||||||
// Get the rotation
|
// Get the rotation
|
||||||
cv::Matx22f R = AlignShapesKabsch2D_f(src_mean_normed, dst_mean_normed);
|
cv::Matx22f R = AlignShapesKabsch2D_f(src_mean_normed, dst_mean_normed);
|
||||||
|
|
||||||
cv::Matx22f A;
|
cv::Matx22f A = s * R;
|
||||||
cv::Mat(s * R).copyTo(A);
|
|
||||||
|
|
||||||
cv::Mat_<float> aligned = (cv::Mat(cv::Mat(A) * src.t())).t();
|
cv::Mat_<float> aligned = (cv::Mat(cv::Mat(A) * src.t())).t();
|
||||||
cv::Mat_<float> offset = dst - aligned;
|
cv::Mat_<float> offset = dst - aligned;
|
||||||
|
|||||||
@@ -150,8 +150,7 @@ void PDM::CalcShape3D(cv::Mat_<float>& out_shape, const cv::Mat_<float>& p_local
|
|||||||
int p_local_cols = p_local.cols;
|
int p_local_cols = p_local.cols;
|
||||||
int princ_comp_rows = princ_comp.rows;
|
int princ_comp_rows = princ_comp.rows;
|
||||||
int princ_comp_cols = princ_comp.cols;
|
int princ_comp_cols = princ_comp.cols;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &p_local_cols, &princ_comp_rows, &princ_comp_cols, &alpha1, (float*)p_local.data, &p_local_cols, (float*)princ_comp.data, &princ_comp_cols, &beta1, (float*)out_shape.data, &p_local_cols);
|
||||||
sgemm_(nT, nT, &p_local_cols, &princ_comp_rows, &princ_comp_cols, &alpha1, (float*)p_local.data, &p_local_cols, (float*)princ_comp.data, &princ_comp_cols, &beta1, (float*)out_shape.data, &p_local_cols);
|
|
||||||
|
|
||||||
// Above is a fast (but ugly) version of
|
// Above is a fast (but ugly) version of
|
||||||
// out_shape = mean_shape + princ_comp * p_local;
|
// out_shape = mean_shape + princ_comp * p_local;
|
||||||
@@ -639,8 +638,7 @@ void PDM::CalcParams(cv::Vec6f& out_params_global, cv::Mat_<float>& out_params_l
|
|||||||
// Perform matrix multiplication in OpenBLAS (fortran call)
|
// Perform matrix multiplication in OpenBLAS (fortran call)
|
||||||
float alpha1 = 1.0;
|
float alpha1 = 1.0;
|
||||||
float beta1 = 1.0;
|
float beta1 = 1.0;
|
||||||
char *nT = "N";
|
sgemm_("N", "N", &J.cols, &J_w_t.rows, &J_w_t.cols, &alpha1, (float*)J.data, &J.cols, (float*)J_w_t.data, &J_w_t.cols, &beta1, (float*)Hessian.data, &J.cols);
|
||||||
sgemm_(nT, nT, &J.cols, &J_w_t.rows, &J_w_t.cols, &alpha1, (float*)J.data, &J.cols, (float*)J_w_t.data, &J_w_t.cols, &beta1, (float*)Hessian.data, &J.cols);
|
|
||||||
|
|
||||||
// Above is a fast (but ugly) version of
|
// Above is a fast (but ugly) version of
|
||||||
// cv::Mat_<float> Hessian2 = J_w_t * J + regularisations;
|
// cv::Mat_<float> Hessian2 = J_w_t * J + regularisations;
|
||||||
|
|||||||
@@ -162,10 +162,13 @@ void Patch_experts::Response(vector<cv::Mat_<float> >& patch_expert_responses, c
|
|||||||
|
|
||||||
sim_img_to_ref = AlignShapesWithScale_f(image_shape_2D, reference_shape_2D);
|
sim_img_to_ref = AlignShapesWithScale_f(image_shape_2D, reference_shape_2D);
|
||||||
sim_ref_to_img = sim_img_to_ref.inv(cv::DECOMP_LU);
|
sim_ref_to_img = sim_img_to_ref.inv(cv::DECOMP_LU);
|
||||||
|
|
||||||
float a1 = sim_ref_to_img(0, 0);
|
float a1 = sim_ref_to_img(0, 0);
|
||||||
float b1 = -sim_ref_to_img(0, 1);
|
float b1 = -sim_ref_to_img(0, 1);
|
||||||
|
|
||||||
|
cv::Mat_<float> gray_image_flt;
|
||||||
|
grayscale_image.convertTo(gray_image_flt, CV_32F);
|
||||||
|
|
||||||
bool use_ccnf = !this->ccnf_expert_intensity.empty();
|
bool use_ccnf = !this->ccnf_expert_intensity.empty();
|
||||||
bool use_cen = !this->cen_expert_intensity.empty();
|
bool use_cen = !this->cen_expert_intensity.empty();
|
||||||
|
|
||||||
@@ -230,8 +233,8 @@ void Patch_experts::Response(vector<cv::Mat_<float> >& patch_expert_responses, c
|
|||||||
|
|
||||||
if (use_cen)
|
if (use_cen)
|
||||||
{
|
{
|
||||||
area_of_interest_width = window_size + cen_expert_intensity[scale][view_id][ind].width - 1;
|
area_of_interest_width = window_size + cen_expert_intensity[scale][view_id][ind].width_support - 1;
|
||||||
area_of_interest_height = window_size + cen_expert_intensity[scale][view_id][ind].height - 1;
|
area_of_interest_height = window_size + cen_expert_intensity[scale][view_id][ind].height_support - 1;
|
||||||
}
|
}
|
||||||
else if (use_ccnf)
|
else if (use_ccnf)
|
||||||
{
|
{
|
||||||
@@ -245,17 +248,13 @@ void Patch_experts::Response(vector<cv::Mat_<float> >& patch_expert_responses, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
// scale and rotate to mean shape to reference frame
|
// scale and rotate to mean shape to reference frame
|
||||||
cv::Mat sim = (cv::Mat_<float>(2, 3) << a1, -b1, landmark_locations.at<float>(ind, 0), b1, a1, landmark_locations.at<float>(ind + n, 0));
|
cv::Mat sim = (cv::Mat_<float>(2, 3) << a1, -b1, landmark_locations.at<float>(ind, 0) - a1 * (area_of_interest_width - 1.0f) / 2.0f + b1 * (area_of_interest_width - 1.0f) / 2.0f, b1, a1, landmark_locations.at<float>(ind + n, 0) - a1 * (area_of_interest_width - 1.0f) / 2.0f - b1 * (area_of_interest_width - 1.0f) / 2.0f);
|
||||||
|
|
||||||
// Extract the region of interest around the current landmark location
|
// Extract the region of interest around the current landmark location
|
||||||
cv::Mat_<float> area_of_interest(area_of_interest_height, area_of_interest_width);
|
cv::Mat_<float> area_of_interest(area_of_interest_height, area_of_interest_width, 0.0f);
|
||||||
|
|
||||||
// Using C style openCV as it does what we need
|
|
||||||
CvMat area_of_interest_o = area_of_interest;
|
|
||||||
CvMat sim_o = sim;
|
|
||||||
IplImage im_o = grayscale_image;
|
|
||||||
cvGetQuadrangleSubPix(&im_o, &area_of_interest_o, &sim_o);
|
|
||||||
|
|
||||||
|
cv::warpAffine(gray_image_flt, area_of_interest, sim, area_of_interest.size(), cv::WARP_INVERSE_MAP + CV_INTER_LINEAR);
|
||||||
|
|
||||||
|
|
||||||
// Get intensity response either from the SVR, CCNF, or CEN patch experts (prefer CEN as they are the most accurate so far)
|
// Get intensity response either from the SVR, CCNF, or CEN patch experts (prefer CEN as they are the most accurate so far)
|
||||||
if (!cen_expert_intensity.empty())
|
if (!cen_expert_intensity.empty())
|
||||||
@@ -281,15 +280,14 @@ void Patch_experts::Response(vector<cv::Mat_<float> >& patch_expert_responses, c
|
|||||||
{
|
{
|
||||||
|
|
||||||
// Grab mirrored area of interest
|
// Grab mirrored area of interest
|
||||||
cv::Mat sim_r = (cv::Mat_<float>(2, 3) << a1, -b1, landmark_locations.at<float>(mirror_id, 0), b1, a1, landmark_locations.at<float>(mirror_id + n, 0));
|
|
||||||
|
// scale and rotate to mean shape to reference frame
|
||||||
|
cv::Mat sim_r = (cv::Mat_<float>(2, 3) << a1, -b1, landmark_locations.at<float>(mirror_id, 0) - a1 * (area_of_interest_width - 1.0f) / 2.0f + b1 * (area_of_interest_width - 1.0f) / 2.0f, b1, a1, landmark_locations.at<float>(mirror_id + n, 0) - a1 * (area_of_interest_width - 1.0f) / 2.0f - b1 * (area_of_interest_width - 1.0f) / 2.0f);
|
||||||
|
|
||||||
// Extract the region of interest around the current landmark location
|
// Extract the region of interest around the current landmark location
|
||||||
cv::Mat_<float> area_of_interest_r(area_of_interest_height, area_of_interest_width);
|
cv::Mat_<float> area_of_interest_r(area_of_interest_height, area_of_interest_width, 0.0f);
|
||||||
// Using C style openCV as it does what we need
|
|
||||||
CvMat area_of_interest_o_r = area_of_interest_r;
|
cv::warpAffine(gray_image_flt, area_of_interest_r, sim_r, area_of_interest_r.size(), cv::WARP_INVERSE_MAP + CV_INTER_LINEAR);
|
||||||
CvMat sim_o_r = sim_r;
|
|
||||||
IplImage im_o_r = grayscale_image;
|
|
||||||
cvGetQuadrangleSubPix(&im_o_r, &area_of_interest_o_r, &sim_o_r);
|
|
||||||
|
|
||||||
cv::Mat_<float> prealloc_mat_right = preallocated_im2col[mirror_id][im2col_size];
|
cv::Mat_<float> prealloc_mat_right = preallocated_im2col[mirror_id][im2col_size];
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
<AdditionalIncludeDirectories>./include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
<AdditionalIncludeDirectories>./include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Model, mean, median
|
Model, mean, median
|
||||||
OpenFace (CE-CLM): 0.0499, 0.0474
|
OpenFace (CE-CLM): 0.0499, 0.0474
|
||||||
OpenFace (CLNF): 0.0553, 0.0515
|
OpenFace (CLNF): 0.0553, 0.0516
|
||||||
CLM: 0.0635, 0.0588
|
CLM: 0.0644, 0.0592
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Type, mean, median
|
Type, mean, median
|
||||||
err ce-clm: 0.042605, 0.034724
|
err ce-clm: 0.043346, 0.034804
|
||||||
err clnf: 0.055018, 0.038367
|
err clnf: 0.055347, 0.038637
|
||||||
err svr: 0.069573, 0.049737
|
err svr: 0.070061, 0.049981
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
clear;
|
|
||||||
|
|
||||||
% fitting parameters more suitable for clnf
|
|
||||||
|
|
||||||
%%
|
|
||||||
% Run the BU test with clnf
|
|
||||||
if exist('D:/Datasets/HeadPose', 'file')
|
|
||||||
database_root = 'D:/Datasets/HeadPose/';
|
|
||||||
elseif(exist([getenv('USERPROFILE') '/Dropbox/AAM/test data/'], 'file'))
|
|
||||||
database_root = [getenv('USERPROFILE') '/Dropbox/AAM/test data/'];
|
|
||||||
elseif(exist([getenv('USERPROFILE') 'F:/Dropbox/Dropbox/AAM/test data/'], 'file'))
|
|
||||||
database_root = 'F:/Dropbox/Dropbox/AAM/test data/';
|
|
||||||
elseif(exist('F:/Dropbox/AAM/test data/', 'file'))
|
|
||||||
database_root = 'F:/Dropbox/AAM/test data/';
|
|
||||||
elseif(exist('/multicomp/datasets/head_pose_dbs', 'file'))
|
|
||||||
database_root = '/multicomp/datasets/head_pose_dbs/';
|
|
||||||
elseif(exist('/media/tadas/5E08AE0D08ADE3ED/Dropbox/AAM/test data', 'file'))
|
|
||||||
database_root = '/media/tadas/5E08AE0D08ADE3ED/Dropbox/AAM/test data';
|
|
||||||
end
|
|
||||||
|
|
||||||
buDir = [database_root, '/bu/uniform-light/'];
|
|
||||||
|
|
||||||
% The fast and accurate clnf
|
|
||||||
%%
|
|
||||||
[resFolderBU_OF] = run_bu_experiment(buDir, false, 'model', 'model/main_clnf_general.txt');
|
|
||||||
[bu_error_OF, pred_hp_bu, gt_hp_bu, all_errors_bu_OF, rels_bu] = calcBUerror(resFolderBU_OF, buDir);
|
|
||||||
|
|
||||||
%%
|
|
||||||
% Run the Biwi test
|
|
||||||
biwi_dir = '/biwi pose/';
|
|
||||||
|
|
||||||
[res_folder_biwi_OF] = run_biwi_experiment(database_root, biwi_dir, false, 'model', 'model/main_clnf_general.txt');
|
|
||||||
% Calculate the resulting errors
|
|
||||||
[biwi_error_OF, pred_hp_biwi, gt_hp_biwi, ~, all_errors_biwi_OF, rels_biwi] = calcBiwiError(res_folder_biwi_OF, [database_root biwi_dir]);
|
|
||||||
|
|
||||||
%% Run the ICT test
|
|
||||||
ict_dir = ['/ict/'];
|
|
||||||
|
|
||||||
% Intensity
|
|
||||||
[res_folder_ict_OF] = run_ict_experiment(database_root, ict_dir, false, 'model', 'model/main_clnf_general.txt');
|
|
||||||
% Calculate the resulting errors
|
|
||||||
[ict_error_OF, pred_hp_ict, gt_hp_ict, ~, all_errors_ict_OF, rel_ict] = calcIctError(res_folder_ict_OF, [database_root ict_dir]);
|
|
||||||
|
|
||||||
%% Save the results
|
|
||||||
filename = 'results/Pose_OF';
|
|
||||||
save(filename);
|
|
||||||
|
|
||||||
% Also save them in a reasonable .txt format for easy comparison
|
|
||||||
f = fopen('results/Pose_OF.txt', 'w');
|
|
||||||
fprintf(f, 'Dataset and model, pitch, yaw, roll, mean, median\n');
|
|
||||||
fprintf(f, 'biwi error: %.3f, %.3f, %.3f, %.3f, %.3f\n', biwi_error_OF, mean(all_errors_biwi_OF(:)), median(all_errors_biwi_OF(:)));
|
|
||||||
fprintf(f, 'bu error: %.3f, %.3f, %.3f, %.3f, %.3f\n', bu_error_OF, mean(all_errors_bu_OF(:)), median(all_errors_bu_OF(:)));
|
|
||||||
fprintf(f, 'ict error: %.3f, %.3f, %.3f, %.3f, %.3f\n', ict_error_OF, mean(all_errors_ict_OF(:)), median(all_errors_ict_OF(:)));
|
|
||||||
|
|
||||||
fclose(f);
|
|
||||||
clear 'f'
|
|
||||||
@@ -8,9 +8,9 @@ if(~exist(output_dir, 'dir'))
|
|||||||
end
|
end
|
||||||
|
|
||||||
%% select database and load bb initializations
|
%% select database and load bb initializations
|
||||||
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
|
db_root = 'E:\datasets\300VW\300VW_Dataset_2015_12_14/';
|
||||||
bb_root = './300VW_dets_mtcnn/';
|
bb_root = './300VW_dets_mtcnn/';
|
||||||
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
|
extra_dir = 'E:\datasets\300VW\300VW_Dataset_2015_12_14\extra';
|
||||||
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
||||||
|
|
||||||
%% loading the patch experts and the PDM
|
%% loading the patch experts and the PDM
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ clear;
|
|||||||
addpath(genpath('../'));
|
addpath(genpath('../'));
|
||||||
|
|
||||||
output_dir = './CECLM_res_menpo/';
|
output_dir = './CECLM_res_menpo/';
|
||||||
|
if(~exist(output_dir, 'dir'))
|
||||||
|
mkdir(output_dir)
|
||||||
|
end
|
||||||
%% select database and load bb initializations
|
%% select database and load bb initializations
|
||||||
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
|
db_root = 'E:\datasets\300VW\300VW_Dataset_2015_12_14/';
|
||||||
bb_root = './300VW_dets_mtcnn/';
|
bb_root = './300VW_dets_mtcnn/';
|
||||||
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
|
extra_dir = 'E:\datasets\300VW\300VW_Dataset_2015_12_14\extra';
|
||||||
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
||||||
|
|
||||||
%% loading the patch experts and the PDM
|
%% loading the patch experts and the PDM
|
||||||
|
|||||||
@@ -2,27 +2,25 @@ clear;
|
|||||||
addpath(genpath('../'));
|
addpath(genpath('../'));
|
||||||
|
|
||||||
output_dir = './CLM_res/';
|
output_dir = './CLM_res/';
|
||||||
|
if(~exist(output_dir, 'dir'))
|
||||||
|
mkdir(output_dir)
|
||||||
|
end
|
||||||
%% select database and load bb initializations
|
%% select database and load bb initializations
|
||||||
db_root = 'C:\datasets\300VW_Dataset_2015_12_14/';
|
db_root = 'E:\datasets\300VW\300VW_Dataset_2015_12_14/';
|
||||||
bb_root = './300VW_dets_mtcnn/';
|
bb_root = './300VW_dets_mtcnn/';
|
||||||
extra_dir = 'C:\datasets\300VW_Dataset_2015_12_14\extra';
|
extra_dir = 'E:\datasets\300VW\300VW_Dataset_2015_12_14\extra';
|
||||||
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
||||||
|
|
||||||
%% loading the patch experts and the PDM
|
%% loading the patch experts and the PDM
|
||||||
[ patches, pdm, clmParams ] = Load_CLM_general();
|
[ patches, pdm, clmParams ] = Load_CLM_wild();
|
||||||
|
|
||||||
% Adapt the parameters for video
|
% Defining the view orientations that will be evaluated
|
||||||
clmParams.window_size = [25,25; 23,23; 21,21; 19,19; 17,17;];
|
%views = [0,0,0];
|
||||||
clmParams.numPatchIters = size(clmParams.window_size,1);
|
views = [0,0,0; 0,-30,0; 0,30,0; 0,-55,0; 0,55,0; 0,0,30; 0,0,-30];
|
||||||
clmParams.regFactor = [35, 27, 20, 20];
|
views = views * pi/180;
|
||||||
clmParams.sigmaMeanShift = [1.25, 1.375, 1.5, 1.5];
|
|
||||||
clmParams.tikhonov_factor = [0,0,0, 0];
|
|
||||||
clmParams.numPatchIters = 4;
|
|
||||||
|
|
||||||
num_points = numel(pdm.M) / 3;
|
num_points = numel(pdm.M) / 3;
|
||||||
|
|
||||||
multi_view = true;
|
|
||||||
verbose = true;
|
verbose = true;
|
||||||
|
|
||||||
%% Select video
|
%% Select video
|
||||||
@@ -57,34 +55,12 @@ for i=1:numel(vid_locs)
|
|||||||
|
|
||||||
% have a multi-view version for initialization, otherwise use
|
% have a multi-view version for initialization, otherwise use
|
||||||
% previous shape
|
% previous shape
|
||||||
if(reset && multi_view)
|
if(reset)
|
||||||
clmParams.window_size = [25,25; 23,23; 21,21; 21,21];
|
clmParams.window_size = [25,25; 23,23; 21,21; 21,21];
|
||||||
clmParams.numPatchIters = 4;
|
clmParams.numPatchIters = 4;
|
||||||
clmParams.startScale = 1;
|
clmParams.startScale = 1;
|
||||||
|
|
||||||
% The number of hyps is different in CLM from CE-CLM as too
|
|
||||||
% many actually harm it
|
|
||||||
views = [0,0,0; 0,-30,0; 0,30,0; 0,-55,0; 0,55,0; 0,0,30; 0,0,-30];
|
|
||||||
views = views * pi/180;
|
|
||||||
|
|
||||||
shapes = zeros(num_points, 2, size(views,1));
|
[shape,g_param,l_param,lhood,lmark_lhood,view_used] = Fitting_from_bb_multi_hyp(input_image, [], bb, pdm, patches, clmParams, views);
|
||||||
ls = zeros(size(views,1),1);
|
|
||||||
lmark_lhoods = zeros(num_points,size(views,1));
|
|
||||||
views_used = zeros(num_points,size(views,1));
|
|
||||||
g_params = cell(size(views,1),1);
|
|
||||||
l_params = cell(size(views,1),1);
|
|
||||||
|
|
||||||
% Find the best orientation
|
|
||||||
for v = 1:size(views,1)
|
|
||||||
[shapes(:,:,v),g_params{v},l_params{v},ls(v),lmark_lhoods(:,v),views_used(v)] = Fitting_from_bb(input_image, [], bb, pdm, patches, clmParams, 'orientation', views(v,:));
|
|
||||||
end
|
|
||||||
|
|
||||||
[lhood, v_ind] = max(ls);
|
|
||||||
lmark_lhood = lmark_lhoods(:,v_ind);
|
|
||||||
g_param = g_params{v_ind};
|
|
||||||
l_param = l_params{v_ind};
|
|
||||||
shape = shapes(:,:,v_ind);
|
|
||||||
view_used = views_used(v);
|
|
||||||
|
|
||||||
else
|
else
|
||||||
clmParams.window_size = [23,23; 21,21; 19,19; 17,17];
|
clmParams.window_size = [23,23; 21,21; 19,19; 17,17];
|
||||||
|
|||||||
@@ -8,40 +8,19 @@ if(~exist(output_dir, 'dir'))
|
|||||||
end
|
end
|
||||||
|
|
||||||
%% select database and load bb initializations
|
%% select database and load bb initializations
|
||||||
db_root = 'D:\Datasets\300VW_Dataset_2015_12_14\300VW_Dataset_2015_12_14/';
|
db_root = 'E:\datasets\300VW\300VW_Dataset_2015_12_14/';
|
||||||
bb_root = './300VW_dets_mtcnn/';
|
bb_root = './300VW_dets_mtcnn/';
|
||||||
extra_dir = 'D:\Datasets\300VW_Dataset_2015_12_14\extra';
|
extra_dir = 'E:\datasets\300VW\300VW_Dataset_2015_12_14\extra';
|
||||||
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
[ vid_locs, bboxes, gts_all, invalid_frames ] = CollectTestData(db_root, bb_root, extra_dir);
|
||||||
|
|
||||||
%% loading the patch experts and the PDM
|
%% loading the patch experts and the PDM
|
||||||
clmParams = struct;
|
|
||||||
|
|
||||||
clmParams.window_size = [25,25; 23,23; 21,21; 19,19; 17,17;];
|
[ patches, pdm, clmParams ] = Load_CLNF_general();
|
||||||
clmParams.numPatchIters = size(clmParams.window_size,1);
|
views = [0,0,0; 0,-30,0; 0,30,0; 0,-55,0; 0,55,0; 0,0,30; 0,0,-30; 0,-90,0; 0,90,0; 0,-70,40; 0,70,-40];
|
||||||
|
views = views * pi/180;
|
||||||
|
|
||||||
[patches] = Load_Patch_Experts( '../models/general/', 'ccnf_patches_*_general.mat', [], [], clmParams);
|
|
||||||
|
|
||||||
% the default PDM to use
|
|
||||||
pdmLoc = ['../models/pdm/pdm_68_aligned_wild.mat'];
|
|
||||||
|
|
||||||
load(pdmLoc);
|
|
||||||
|
|
||||||
pdm = struct; pdm.M = double(M); pdm.E = double(E); pdm.V = double(V);
|
|
||||||
num_points = numel(pdm.M) / 3;
|
num_points = numel(pdm.M) / 3;
|
||||||
|
|
||||||
clmParams.regFactor = [35, 27, 20, 20];
|
|
||||||
clmParams.sigmaMeanShift = [1.25, 1.375, 1.5, 1.5];
|
|
||||||
clmParams.tikhonov_factor = [0,0,0,0];
|
|
||||||
|
|
||||||
clmParams.startScale = 1;
|
|
||||||
clmParams.num_RLMS_iter = 10;
|
|
||||||
clmParams.fTol = 0.01;
|
|
||||||
clmParams.useMultiScale = true;
|
|
||||||
clmParams.use_multi_modal = 1;
|
|
||||||
clmParams.multi_modal_types = patches(1).multi_modal_types;
|
|
||||||
clmParams.numPatchIters = 4;
|
|
||||||
|
|
||||||
multi_view = true;
|
|
||||||
verbose = true;
|
verbose = true;
|
||||||
|
|
||||||
%% Select video
|
%% Select video
|
||||||
@@ -76,32 +55,12 @@ for i=1:numel(vid_locs)
|
|||||||
|
|
||||||
% have a multi-view version for initialization, otherwise use
|
% have a multi-view version for initialization, otherwise use
|
||||||
% previous shape
|
% previous shape
|
||||||
if(reset && multi_view)
|
if(reset)
|
||||||
clmParams.window_size = [25,25; 23,23; 21,21; 21,21];
|
clmParams.window_size = [25,25; 23,23; 21,21; 21,21];
|
||||||
clmParams.numPatchIters = 4;
|
clmParams.numPatchIters = 4;
|
||||||
clmParams.startScale = 1;
|
clmParams.startScale = 1;
|
||||||
|
|
||||||
views = [0,0,0; 0,-30,0; 0,30,0; 0,-55,0; 0,55,0; 0,0,30; 0,0,-30; 0,-90,0; 0,90,0; 0,-70,40; 0,70,-40];
|
[shape,g_param,l_param,lhood,lmark_lhood,view_used] = Fitting_from_bb_multi_hyp(input_image, [], bb, pdm, patches, clmParams, views);
|
||||||
views = views * pi/180;
|
|
||||||
|
|
||||||
shapes = zeros(num_points, 2, size(views,1));
|
|
||||||
ls = zeros(size(views,1),1);
|
|
||||||
lmark_lhoods = zeros(num_points,size(views,1));
|
|
||||||
views_used = zeros(num_points,size(views,1));
|
|
||||||
g_params = cell(size(views,1),1);
|
|
||||||
l_params = cell(size(views,1),1);
|
|
||||||
|
|
||||||
% Find the best orientation
|
|
||||||
for v = 1:size(views,1)
|
|
||||||
[shapes(:,:,v),g_params{v},l_params{v},ls(v),lmark_lhoods(:,v),views_used(v)] = Fitting_from_bb(input_image, [], bb, pdm, patches, clmParams, 'orientation', views(v,:));
|
|
||||||
end
|
|
||||||
|
|
||||||
[lhood, v_ind] = max(ls);
|
|
||||||
lmark_lhood = lmark_lhoods(:,v_ind);
|
|
||||||
g_param = g_params{v_ind};
|
|
||||||
l_param = l_params{v_ind};
|
|
||||||
shape = shapes(:,:,v_ind);
|
|
||||||
view_used = views_used(v);
|
|
||||||
|
|
||||||
else
|
else
|
||||||
clmParams.window_size = [23,23; 21,21; 19,19; 17,17];
|
clmParams.window_size = [23,23; 21,21; 19,19; 17,17];
|
||||||
|
|||||||
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
Reference in New Issue
Block a user