open source pkg v1
This commit is contained in:
72
pkg/OpenFace/lib/local/CppInerop/AssemblyInfo.cpp
Normal file
72
pkg/OpenFace/lib/local/CppInerop/AssemblyInfo.cpp
Normal file
@@ -0,0 +1,72 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using namespace System;
|
||||
using namespace System::Reflection;
|
||||
using namespace System::Runtime::CompilerServices;
|
||||
using namespace System::Runtime::InteropServices;
|
||||
using namespace System::Security::Permissions;
|
||||
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
[assembly:AssemblyTitleAttribute("CppInterop")];
|
||||
[assembly:AssemblyDescriptionAttribute("")];
|
||||
[assembly:AssemblyConfigurationAttribute("")];
|
||||
[assembly:AssemblyCompanyAttribute("")];
|
||||
[assembly:AssemblyProductAttribute("CppInterop")];
|
||||
[assembly:AssemblyCopyrightAttribute("Copyright (c) 2016")];
|
||||
[assembly:AssemblyTrademarkAttribute("")];
|
||||
[assembly:AssemblyCultureAttribute("")];
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the value or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly:AssemblyVersionAttribute("1.0.*")];
|
||||
|
||||
[assembly:ComVisible(false)];
|
||||
|
||||
[assembly:CLSCompliantAttribute(true)];
|
||||
|
||||
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];
|
||||
220
pkg/OpenFace/lib/local/CppInerop/CppInerop.vcxproj
Normal file
220
pkg/OpenFace/lib/local/CppInerop/CppInerop.vcxproj
Normal file
@@ -0,0 +1,220 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{78196985-EE54-411F-822B-5A23EDF80642}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>CppInerop</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<CLRSupport>true</CLRSupport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<CLRSupport>true</CLRSupport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<CLRSupport>true</CLRSupport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<CLRSupport>true</CLRSupport>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\3rdParty\dlib\dlib.props" />
|
||||
<Import Project="..\..\3rdParty\OpenCV\openCV.props" />
|
||||
<Import Project="..\..\3rdParty\OpenBLAS\OpenBLAS_x86.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\3rdParty\dlib\dlib.props" />
|
||||
<Import Project="..\..\3rdParty\OpenCV\openCV.props" />
|
||||
<Import Project="..\..\3rdParty\OpenBLAS\OpenBLAS_x86.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\3rdParty\dlib\dlib.props" />
|
||||
<Import Project="..\..\3rdParty\OpenCV\openCV.props" />
|
||||
<Import Project="..\..\3rdParty\OpenBLAS\OpenBLAS_64.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\3rdParty\dlib\dlib.props" />
|
||||
<Import Project="..\..\3rdParty\OpenCV\openCV.props" />
|
||||
<Import Project="..\..\3rdParty\OpenBLAS\OpenBLAS_64.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_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>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;_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>
|
||||
<EnableEnhancedInstructionSet>
|
||||
</EnableEnhancedInstructionSet>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<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>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<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>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<EnableEnhancedInstructionSet>
|
||||
</EnableEnhancedInstructionSet>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AssemblyInfo.cpp" />
|
||||
<ClCompile Include="CppInterop.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="FaceAnalyserInterop.h" />
|
||||
<ClInclude Include="GazeAnalyserInterop.h" />
|
||||
<ClInclude Include="ImageReader.h" />
|
||||
<ClInclude Include="LandmarkDetectorInterop.h" />
|
||||
<ClInclude Include="FaceDetectorInterop.h" />
|
||||
<ClInclude Include="OpenCVWrappers.h" />
|
||||
<ClInclude Include="RecorderInterop.h" />
|
||||
<ClInclude Include="SequenceReader.h" />
|
||||
<ClInclude Include="VisualizerInterop.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\3rdParty\CameraEnumerator\CameraEnumerator.vcxproj">
|
||||
<Project>{50b7d4bf-e33b-41d0-aa89-76bba57bf5cc}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\FaceAnalyser\FaceAnalyser.vcxproj">
|
||||
<Project>{0e7fc556-0e80-45ea-a876-dde4c2fedcd7}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\GazeAnalyser\GazeAnalyser.vcxproj">
|
||||
<Project>{5f915541-f531-434f-9c81-79f5db58012b}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LandmarkDetector\LandmarkDetector.vcxproj">
|
||||
<Project>{bdc1d107-de17-4705-8e7b-cdde8bfb2bf8}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Utilities\Utilities.vcxproj">
|
||||
<Project>{8e741ea2-9386-4cf2-815e-6f9b08991eac}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="WindowsBase">
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\WindowsBase.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
54
pkg/OpenFace/lib/local/CppInerop/CppInerop.vcxproj.filters
Normal file
54
pkg/OpenFace/lib/local/CppInerop/CppInerop.vcxproj.filters
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AssemblyInfo.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CppInterop.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="LandmarkDetectorInterop.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="OpenCVWrappers.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FaceAnalyserInterop.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="GazeAnalyserInterop.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ImageReader.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FaceDetectorInterop.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="RecorderInterop.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="VisualizerInterop.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SequenceReader.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
44
pkg/OpenFace/lib/local/CppInerop/CppInterop.cpp
Normal file
44
pkg/OpenFace/lib/local/CppInerop/CppInterop.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This is the main DLL file.
|
||||
#include "GazeAnalyserInterop.h"
|
||||
#include "LandmarkDetectorInterop.h"
|
||||
#include "FaceAnalyserInterop.h"
|
||||
#include "OpenCVWrappers.h"
|
||||
#include "ImageReader.h"
|
||||
#include "FaceDetectorInterop.h"
|
||||
#include "RecorderInterop.h"
|
||||
#include "VisualizerInterop.h"
|
||||
#include "SequenceReader.h"
|
||||
276
pkg/OpenFace/lib/local/CppInerop/FaceAnalyserInterop.h
Normal file
276
pkg/OpenFace/lib/local/CppInerop/FaceAnalyserInterop.h
Normal file
@@ -0,0 +1,276 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// FaceAnalyser_Interop.h
|
||||
#ifndef FACE_ANALYSER_INTEROP_H
|
||||
#define FACE_ANALYSER_INTEROP_H
|
||||
|
||||
#pragma once
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
#include <OpenCVWrappers.h>
|
||||
#include <Face_utils.h>
|
||||
#include <FaceAnalyser.h>
|
||||
#include <VisualizationUtils.h>
|
||||
|
||||
#pragma managed
|
||||
|
||||
using namespace System::Collections::Generic;
|
||||
|
||||
namespace FaceAnalyser_Interop {
|
||||
|
||||
public ref class FaceAnalyserManaged
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
FaceAnalysis::FaceAnalyser* face_analyser;
|
||||
|
||||
// The actual descriptors (for visualisation and output)
|
||||
cv::Mat_<float>* hog_features;
|
||||
cv::Mat* aligned_face;
|
||||
int* num_rows;
|
||||
int* num_cols;
|
||||
|
||||
public:
|
||||
|
||||
FaceAnalyserManaged(System::String^ root, bool dynamic, int output_width, bool mask_aligned)
|
||||
{
|
||||
std::string root_std = msclr::interop::marshal_as<std::string>(root);
|
||||
FaceAnalysis::FaceAnalyserParameters params(root_std);
|
||||
|
||||
if (!dynamic)
|
||||
{
|
||||
params.OptimizeForImages();
|
||||
}
|
||||
|
||||
params.setAlignedOutput(output_width, -1.0, mask_aligned);
|
||||
face_analyser = new FaceAnalysis::FaceAnalyser(params);
|
||||
|
||||
hog_features = new cv::Mat_<float>();
|
||||
|
||||
aligned_face = new cv::Mat();
|
||||
|
||||
num_rows = new int;
|
||||
num_cols = new int;
|
||||
|
||||
}
|
||||
|
||||
void PostProcessOutputFile(System::String^ file)
|
||||
{
|
||||
face_analyser->PostprocessOutputFile(msclr::interop::marshal_as<std::string>(file));
|
||||
}
|
||||
|
||||
void AddNextFrame(OpenCVWrappers::RawImage^ frame, List<System::Tuple<float, float>^>^ landmarks, bool success, bool online) {
|
||||
|
||||
// Construct an OpenCV matric from the landmarks
|
||||
cv::Mat_<float> landmarks_mat(landmarks->Count * 2, 1, 0.0);
|
||||
for (int i = 0; i < landmarks->Count; ++i)
|
||||
{
|
||||
landmarks_mat.at<float>(i, 0) = landmarks[i]->Item1;
|
||||
landmarks_mat.at<float>(i + landmarks->Count, 0) = landmarks[i]->Item2;
|
||||
}
|
||||
|
||||
//(captured_image, face_model.detected_landmarks, face_model.detection_success, sequence_reader.time_stamp, sequence_reader.IsWebcam());
|
||||
|
||||
face_analyser->AddNextFrame(frame->Mat, landmarks_mat, success, 0, online);
|
||||
|
||||
cv::Mat_<double> hog_d;
|
||||
face_analyser->GetLatestHOG(hog_d, *num_rows, *num_cols);
|
||||
hog_d.convertTo(*hog_features, CV_32F);
|
||||
|
||||
face_analyser->GetLatestAlignedFace(*aligned_face);
|
||||
|
||||
}
|
||||
|
||||
// Predicting AUs from a single image
|
||||
System::Tuple<Dictionary<System::String^, double>^, Dictionary<System::String^, double>^>^
|
||||
PredictStaticAUsAndComputeFeatures(OpenCVWrappers::RawImage^ frame, List<System::Tuple<float, float>^>^ landmarks)
|
||||
{
|
||||
|
||||
// Construct an OpenCV matric from the landmarks
|
||||
cv::Mat_<float> landmarks_mat(landmarks->Count * 2, 1, 0.0);
|
||||
for (int i = 0; i < landmarks->Count; ++i)
|
||||
{
|
||||
landmarks_mat.at<float>(i, 0) = landmarks[i]->Item1;
|
||||
landmarks_mat.at<float>(i + landmarks->Count, 0) = landmarks[i]->Item2;
|
||||
}
|
||||
|
||||
face_analyser->PredictStaticAUsAndComputeFeatures(frame->Mat, landmarks_mat);
|
||||
|
||||
// Set the computed appearance features
|
||||
cv::Mat_<double> hog_tmp;
|
||||
face_analyser->GetLatestHOG(hog_tmp, *num_rows, *num_cols);
|
||||
hog_tmp.convertTo(*hog_features, CV_32F);
|
||||
|
||||
face_analyser->GetLatestAlignedFace(*aligned_face);
|
||||
|
||||
// Set the computed AUs
|
||||
auto AU_predictions_intensity = face_analyser->GetCurrentAUsReg();
|
||||
auto AU_predictions_occurence = face_analyser->GetCurrentAUsClass();
|
||||
|
||||
auto au_intensities = gcnew Dictionary<System::String^, double>();
|
||||
auto au_occurences = gcnew Dictionary<System::String^, double>();
|
||||
|
||||
for (auto p : AU_predictions_intensity)
|
||||
{
|
||||
au_intensities->Add(gcnew System::String(p.first.c_str()), p.second);
|
||||
}
|
||||
|
||||
for (auto p : AU_predictions_occurence)
|
||||
{
|
||||
au_occurences->Add(gcnew System::String(p.first.c_str()), p.second);
|
||||
}
|
||||
|
||||
return gcnew System::Tuple<Dictionary<System::String^, double>^, Dictionary<System::String^, double>^>(au_intensities, au_occurences);
|
||||
|
||||
}
|
||||
|
||||
List<System::String^>^ GetClassActionUnitsNames()
|
||||
{
|
||||
auto names = face_analyser->GetAUClassNames();
|
||||
|
||||
auto names_ret = gcnew List<System::String^>();
|
||||
|
||||
for(std::string name : names)
|
||||
{
|
||||
names_ret->Add(gcnew System::String(name.c_str()));
|
||||
}
|
||||
|
||||
return names_ret;
|
||||
|
||||
}
|
||||
|
||||
List<System::String^>^ GetRegActionUnitsNames()
|
||||
{
|
||||
auto names = face_analyser->GetAURegNames();
|
||||
|
||||
auto names_ret = gcnew List<System::String^>();
|
||||
|
||||
for(std::string name : names)
|
||||
{
|
||||
names_ret->Add(gcnew System::String(name.c_str()));
|
||||
}
|
||||
|
||||
return names_ret;
|
||||
|
||||
}
|
||||
|
||||
Dictionary<System::String^, double>^ GetCurrentAUsClass()
|
||||
{
|
||||
auto classes = face_analyser->GetCurrentAUsClass();
|
||||
auto au_classes = gcnew Dictionary<System::String^, double>();
|
||||
|
||||
for(auto p: classes)
|
||||
{
|
||||
au_classes->Add(gcnew System::String(p.first.c_str()), p.second);
|
||||
}
|
||||
return au_classes;
|
||||
}
|
||||
|
||||
Dictionary<System::String^, double>^ GetCurrentAUsReg()
|
||||
{
|
||||
auto preds = face_analyser->GetCurrentAUsReg();
|
||||
auto au_preds = gcnew Dictionary<System::String^, double>();
|
||||
|
||||
for(auto p: preds)
|
||||
{
|
||||
au_preds->Add(gcnew System::String(p.first.c_str()), p.second);
|
||||
}
|
||||
return au_preds;
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetLatestAlignedFace() {
|
||||
OpenCVWrappers::RawImage^ face_aligned_image = gcnew OpenCVWrappers::RawImage(*aligned_face);
|
||||
return face_aligned_image;
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetLatestHOGFeature() {
|
||||
OpenCVWrappers::RawImage^ HOG_feature = gcnew OpenCVWrappers::RawImage(*hog_features);
|
||||
return HOG_feature;
|
||||
}
|
||||
|
||||
// As the number of HOG rows and columns might not be known in advance, have methods for querying them
|
||||
int GetHOGRows()
|
||||
{
|
||||
return *num_rows;
|
||||
}
|
||||
|
||||
int GetHOGCols()
|
||||
{
|
||||
return *num_cols;
|
||||
}
|
||||
|
||||
// The number of channels is always the same
|
||||
int GetHOGChannels()
|
||||
{
|
||||
return 31;
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
face_analyser->Reset();
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!FaceAnalyserManaged()
|
||||
{
|
||||
delete hog_features;
|
||||
delete aligned_face;
|
||||
delete num_cols;
|
||||
delete num_rows;
|
||||
delete face_analyser;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~FaceAnalyserManaged()
|
||||
{
|
||||
this->!FaceAnalyserManaged();
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // FACE_ANALYSER_INTEROP_H
|
||||
157
pkg/OpenFace/lib/local/CppInerop/FaceDetectorInterop.h
Normal file
157
pkg/OpenFace/lib/local/CppInerop/FaceDetectorInterop.h
Normal file
@@ -0,0 +1,157 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Tadas Baltrusaitis,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef FACE_DETECTOR_INTEROP_H
|
||||
#define FACE_DETECTOR_INTEROP_H
|
||||
|
||||
#pragma once
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
#pragma unmanaged
|
||||
|
||||
#undef _M_CEE
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <OpenCVWrappers.h>
|
||||
#include <LandmarkCoreIncludes.h>
|
||||
#define _M_CEE
|
||||
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
using namespace System::Collections::Generic;
|
||||
|
||||
namespace FaceDetectorInterop {
|
||||
|
||||
public ref class FaceDetector
|
||||
{
|
||||
|
||||
private:
|
||||
// Where the face detectors are stored
|
||||
dlib::frontal_face_detector* face_detector_hog;
|
||||
LandmarkDetector::FaceDetectorMTCNN* face_detector_mtcnn;
|
||||
cv::CascadeClassifier* face_detector_haar;
|
||||
|
||||
public:
|
||||
|
||||
// The constructor initializes the dlib face detector
|
||||
FaceDetector(System::String^ haar_location, System::String^ mtcnn_location)
|
||||
{
|
||||
// Initialize all of the detectors (TODO should be done on need only basis)
|
||||
face_detector_hog = new dlib::frontal_face_detector(dlib::get_frontal_face_detector());
|
||||
face_detector_mtcnn = new LandmarkDetector::FaceDetectorMTCNN(msclr::interop::marshal_as<std::string>(mtcnn_location));
|
||||
face_detector_haar = new cv::CascadeClassifier(msclr::interop::marshal_as<std::string>(haar_location));
|
||||
}
|
||||
|
||||
// Face detection using HOG-SVM classifier
|
||||
void DetectFacesHOG(List<System::Windows::Rect>^ o_regions, OpenCVWrappers::RawImage^ intensity, List<float>^ o_confidences)
|
||||
{
|
||||
std::vector<cv::Rect_<float> > regions_ocv;
|
||||
std::vector<float> confidences_std;
|
||||
|
||||
::LandmarkDetector::DetectFacesHOG(regions_ocv, intensity->Mat, *face_detector_hog, confidences_std);
|
||||
|
||||
o_regions->Clear();
|
||||
o_confidences->Clear();
|
||||
|
||||
for (size_t i = 0; i < regions_ocv.size(); ++i)
|
||||
{
|
||||
o_regions->Add(System::Windows::Rect(regions_ocv[i].x, regions_ocv[i].y, regions_ocv[i].width, regions_ocv[i].height));
|
||||
o_confidences->Add(confidences_std[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Face detection using HOG-SVM classifier
|
||||
void DetectFacesHaar(List<System::Windows::Rect>^ o_regions, OpenCVWrappers::RawImage^ intensity, List<float>^ o_confidences)
|
||||
{
|
||||
|
||||
std::vector<cv::Rect_<float> > regions_ocv;
|
||||
|
||||
::LandmarkDetector::DetectFaces(regions_ocv, intensity->Mat, *face_detector_haar);
|
||||
|
||||
o_regions->Clear();
|
||||
o_confidences->Clear();
|
||||
|
||||
for(size_t i = 0; i < regions_ocv.size(); ++i)
|
||||
{
|
||||
o_regions->Add(System::Windows::Rect(regions_ocv[i].x, regions_ocv[i].y, regions_ocv[i].width, regions_ocv[i].height));
|
||||
// As Haar does not provide confidence, create a fake value
|
||||
o_confidences->Add(1);
|
||||
}
|
||||
}
|
||||
|
||||
bool IsMTCNNLoaded()
|
||||
{
|
||||
return !face_detector_mtcnn->empty();
|
||||
}
|
||||
|
||||
// Face detection using MTCNN face detector
|
||||
void DetectFacesMTCNN(List<System::Windows::Rect>^ o_regions, OpenCVWrappers::RawImage^ rgb_image, List<float>^ o_confidences)
|
||||
{
|
||||
std::vector<cv::Rect_<float> > regions_ocv;
|
||||
std::vector<float> confidences_std;
|
||||
|
||||
::LandmarkDetector::DetectFacesMTCNN(regions_ocv, rgb_image->Mat, *face_detector_mtcnn, confidences_std);
|
||||
|
||||
o_regions->Clear();
|
||||
o_confidences->Clear();
|
||||
|
||||
for (size_t i = 0; i < regions_ocv.size(); ++i)
|
||||
{
|
||||
o_regions->Add(System::Windows::Rect(regions_ocv[i].x, regions_ocv[i].y, regions_ocv[i].width, regions_ocv[i].height));
|
||||
o_confidences->Add(confidences_std[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!FaceDetector()
|
||||
{
|
||||
delete face_detector_hog;
|
||||
delete face_detector_mtcnn;
|
||||
delete face_detector_haar;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~FaceDetector()
|
||||
{
|
||||
this->!FaceDetector();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // FACE_DETECTOR_INTEROP_H
|
||||
193
pkg/OpenFace/lib/local/CppInerop/GazeAnalyserInterop.h
Normal file
193
pkg/OpenFace/lib/local/CppInerop/GazeAnalyserInterop.h
Normal file
@@ -0,0 +1,193 @@
|
||||
#pragma once
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef GAZE_ANALYSER_INTEROP_H
|
||||
#define GAZE_ANALYSER_INTEROP_H
|
||||
|
||||
#pragma once
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
#include <OpenCVWrappers.h>
|
||||
#include <LandmarkDetectorInterop.h>
|
||||
#include <GazeEstimation.h>
|
||||
|
||||
#pragma managed
|
||||
|
||||
namespace GazeAnalyser_Interop {
|
||||
|
||||
public ref class GazeAnalyserManaged
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
// Variable storing gaze for recording
|
||||
|
||||
// Absolute gaze direction
|
||||
cv::Point3f* gazeDirection0;
|
||||
cv::Point3f* gazeDirection1;
|
||||
cv::Vec2f* gazeAngle;
|
||||
|
||||
cv::Point3f* pupil_left;
|
||||
cv::Point3f* pupil_right;
|
||||
|
||||
public:
|
||||
GazeAnalyserManaged()
|
||||
{
|
||||
gazeDirection0 = new cv::Point3f();
|
||||
gazeDirection1 = new cv::Point3f();
|
||||
gazeAngle = new cv::Vec2f();
|
||||
|
||||
pupil_left = new cv::Point3f();
|
||||
pupil_right = new cv::Point3f();
|
||||
}
|
||||
|
||||
void AddNextFrame(CppInterop::LandmarkDetector::CLNF^ clnf, bool success, float fx, float fy, float cx, float cy) {
|
||||
|
||||
// After the AUs have been detected do some gaze estimation as well
|
||||
GazeAnalysis::EstimateGaze(*clnf->getCLNF(), *gazeDirection0, fx, fy, cx, cy, true);
|
||||
GazeAnalysis::EstimateGaze(*clnf->getCLNF(), *gazeDirection1, fx, fy, cx, cy, false);
|
||||
|
||||
// Estimate the gaze angle WRT to head pose here
|
||||
System::Collections::Generic::List<float>^ pose_list = gcnew System::Collections::Generic::List<float>();
|
||||
|
||||
*gazeAngle = GazeAnalysis::GetGazeAngle(*gazeDirection0, *gazeDirection1);
|
||||
|
||||
// Grab pupil locations
|
||||
int part_left = -1;
|
||||
int part_right = -1;
|
||||
for (size_t i = 0; i < clnf->getCLNF()->hierarchical_models.size(); ++i)
|
||||
{
|
||||
if (clnf->getCLNF()->hierarchical_model_names[i].compare("left_eye_28") == 0)
|
||||
{
|
||||
part_left = i;
|
||||
}
|
||||
if (clnf->getCLNF()->hierarchical_model_names[i].compare("right_eye_28") == 0)
|
||||
{
|
||||
part_right = i;
|
||||
}
|
||||
}
|
||||
|
||||
cv::Mat_<float> eyeLdmks3d_left = clnf->getCLNF()->hierarchical_models[part_left].GetShape(fx, fy, cx, cy);
|
||||
cv::Point3f pupil_left_h = GazeAnalysis::GetPupilPosition(eyeLdmks3d_left);
|
||||
pupil_left->x = pupil_left_h.x; pupil_left->y = pupil_left_h.y; pupil_left->z = pupil_left_h.z;
|
||||
|
||||
cv::Mat_<float> eyeLdmks3d_right = clnf->getCLNF()->hierarchical_models[part_right].GetShape(fx, fy, cx, cy);
|
||||
cv::Point3f pupil_right_h = GazeAnalysis::GetPupilPosition(eyeLdmks3d_right);
|
||||
pupil_right->x = pupil_right_h.x; pupil_right->y = pupil_right_h.y; pupil_right->z = pupil_right_h.z;
|
||||
}
|
||||
|
||||
System::Tuple<System::Tuple<float, float, float>^, System::Tuple<float, float, float>^>^ GetGazeCamera()
|
||||
{
|
||||
|
||||
auto gaze0 = gcnew System::Tuple<float, float, float>(gazeDirection0->x, gazeDirection0->y, gazeDirection0->z);
|
||||
auto gaze1 = gcnew System::Tuple<float, float, float>(gazeDirection1->x, gazeDirection1->y, gazeDirection1->z);
|
||||
|
||||
return gcnew System::Tuple<System::Tuple<float, float, float>^, System::Tuple<float, float, float>^>(gaze0, gaze1);
|
||||
|
||||
}
|
||||
|
||||
System::Tuple<float, float>^ GetGazeAngle()
|
||||
{
|
||||
auto gaze_angle = gcnew System::Tuple<float, float>((*gazeAngle)[0], (*gazeAngle)[1]);
|
||||
return gaze_angle;
|
||||
|
||||
}
|
||||
System::Collections::Generic::List<System::Tuple<System::Windows::Point, System::Windows::Point>^>^ CalculateGazeLines(float fx, float fy, float cx, float cy)
|
||||
{
|
||||
|
||||
std::vector<cv::Point3f> points_left;
|
||||
points_left.push_back(cv::Point3f(*pupil_left));
|
||||
points_left.push_back(cv::Point3f(*pupil_left + *gazeDirection0 * 40.0));
|
||||
|
||||
std::vector<cv::Point3f> points_right;
|
||||
points_right.push_back(cv::Point3f(*pupil_right));
|
||||
points_right.push_back(cv::Point3f(*pupil_right + *gazeDirection1 * 40.0));
|
||||
|
||||
// Perform manual projection of points
|
||||
std::vector<cv::Point2f> imagePoints_left;
|
||||
for (size_t i = 0; i < points_left.size(); ++i)
|
||||
{
|
||||
float x = points_left[i].x * fx / points_left[i].z + cx;
|
||||
float y = points_left[i].y * fy / points_left[i].z + cy;
|
||||
imagePoints_left.push_back(cv::Point2f(x, y));
|
||||
|
||||
}
|
||||
|
||||
std::vector<cv::Point2f> imagePoints_right;
|
||||
for (size_t i = 0; i < points_right.size(); ++i)
|
||||
{
|
||||
float x = points_right[i].x * fx / points_right[i].z + cx;
|
||||
float y = points_right[i].y * fy / points_right[i].z + cy;
|
||||
imagePoints_right.push_back(cv::Point2f(x, y));
|
||||
|
||||
}
|
||||
|
||||
auto lines = gcnew System::Collections::Generic::List<System::Tuple<System::Windows::Point, System::Windows::Point>^>();
|
||||
lines->Add(gcnew System::Tuple<System::Windows::Point, System::Windows::Point>(System::Windows::Point(imagePoints_left[0].x, imagePoints_left[0].y), System::Windows::Point(imagePoints_left[1].x, imagePoints_left[1].y)));
|
||||
lines->Add(gcnew System::Tuple<System::Windows::Point, System::Windows::Point>(System::Windows::Point(imagePoints_right[0].x, imagePoints_right[0].y), System::Windows::Point(imagePoints_right[1].x, imagePoints_right[1].y)));
|
||||
return lines;
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!GazeAnalyserManaged()
|
||||
{
|
||||
delete gazeDirection0;
|
||||
delete gazeDirection1;
|
||||
delete gazeAngle;
|
||||
delete pupil_left;
|
||||
delete pupil_right;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~GazeAnalyserManaged()
|
||||
{
|
||||
this->!GazeAnalyserManaged();
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // GAZE_ANALYSER_INTEROP_H
|
||||
191
pkg/OpenFace/lib/local/CppInerop/ImageReader.h
Normal file
191
pkg/OpenFace/lib/local/CppInerop/ImageReader.h
Normal file
@@ -0,0 +1,191 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Tadas Baltrusaitis, all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <vector>
|
||||
#include <set>
|
||||
|
||||
#include <OpenCVWrappers.h>
|
||||
|
||||
#include <ImageCapture.h>
|
||||
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
namespace UtilitiesOF {
|
||||
|
||||
public ref class ReadingFailedException : System::Exception
|
||||
{
|
||||
public:
|
||||
|
||||
ReadingFailedException(System::String^ message) : Exception(message) {}
|
||||
};
|
||||
|
||||
public ref class ImageReader
|
||||
{
|
||||
private:
|
||||
|
||||
// OpenCV based video capture for reading from files
|
||||
Utilities::ImageCapture* m_image_capture;
|
||||
|
||||
OpenCVWrappers::RawImage^ m_rgb_frame;
|
||||
OpenCVWrappers::RawImage^ m_gray_frame;
|
||||
|
||||
bool* m_is_opened;
|
||||
|
||||
public:
|
||||
|
||||
// Can provide a directory, or a list of files
|
||||
ImageReader(System::String^ image_directory, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_image_capture = new Utilities::ImageCapture();
|
||||
m_is_opened = new bool;
|
||||
|
||||
std::string image_dir_std = msclr::interop::marshal_as<std::string>(image_directory);
|
||||
|
||||
*m_is_opened = m_image_capture->OpenDirectory(image_dir_std, "", fx, fy, cx, cy);
|
||||
|
||||
if (!*m_is_opened)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open a directory or an image");
|
||||
}
|
||||
}
|
||||
// Can provide a directory, or a list of files
|
||||
ImageReader(System::Collections::Generic::List<System::String^>^ image_files, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_image_capture = new Utilities::ImageCapture();
|
||||
m_is_opened = new bool;
|
||||
|
||||
std::vector<std::string> image_files_std;
|
||||
|
||||
for (int i = 0; i < image_files->Count; ++i)
|
||||
{
|
||||
std::string image_file = msclr::interop::marshal_as<std::string>(image_files[i]);
|
||||
image_files_std.push_back(image_file);
|
||||
|
||||
}
|
||||
|
||||
*m_is_opened = m_image_capture->OpenImageFiles(image_files_std, fx, fy, cx, cy);
|
||||
|
||||
if (!*m_is_opened)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open a directory or an image");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetNextImage()
|
||||
{
|
||||
cv::Mat next_image = m_image_capture->GetNextImage();
|
||||
|
||||
m_rgb_frame = gcnew OpenCVWrappers::RawImage(next_image);
|
||||
|
||||
if (next_image.empty())
|
||||
{
|
||||
*m_is_opened = false;
|
||||
}
|
||||
|
||||
return m_rgb_frame;
|
||||
}
|
||||
|
||||
System::String^ GetName()
|
||||
{
|
||||
std::string filename = m_image_capture->name;
|
||||
return gcnew System::String(filename.c_str());
|
||||
}
|
||||
|
||||
double GetProgress()
|
||||
{
|
||||
return m_image_capture->GetProgress();
|
||||
}
|
||||
|
||||
float GetFx()
|
||||
{
|
||||
return m_image_capture->fx;
|
||||
}
|
||||
|
||||
float GetFy()
|
||||
{
|
||||
return m_image_capture->fy;
|
||||
}
|
||||
|
||||
float GetCx()
|
||||
{
|
||||
return m_image_capture->cx;
|
||||
}
|
||||
|
||||
float GetCy()
|
||||
{
|
||||
return m_image_capture->cy;
|
||||
}
|
||||
|
||||
bool isOpened()
|
||||
{
|
||||
return *m_is_opened;
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetCurrentFrameGray() {
|
||||
|
||||
cv::Mat next_gray_image = m_image_capture->GetGrayFrame();
|
||||
m_gray_frame = gcnew OpenCVWrappers::RawImage(next_gray_image);
|
||||
|
||||
return m_gray_frame;
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!ImageReader()
|
||||
{
|
||||
delete m_image_capture;
|
||||
delete m_rgb_frame;
|
||||
delete m_gray_frame;
|
||||
delete m_is_opened;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~ImageReader()
|
||||
{
|
||||
this->!ImageReader();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
466
pkg/OpenFace/lib/local/CppInerop/LandmarkDetectorInterop.h
Normal file
466
pkg/OpenFace/lib/local/CppInerop/LandmarkDetectorInterop.h
Normal file
@@ -0,0 +1,466 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef LANDMARK_DETECTOR_INTEROP_H
|
||||
#define LANDMARK_DETECTOR_INTEROP_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma managed
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
#include <OpenCVWrappers.h>
|
||||
|
||||
#undef _M_CEE
|
||||
#include <LandmarkCoreIncludes.h>
|
||||
#include <Face_utils.h>
|
||||
#include <FaceAnalyser.h>
|
||||
#include <VisualizationUtils.h>
|
||||
#define _M_CEE
|
||||
|
||||
using namespace System::Collections::Generic;
|
||||
|
||||
#pragma managed
|
||||
|
||||
namespace CppInterop {
|
||||
|
||||
namespace LandmarkDetector {
|
||||
|
||||
public ref class FaceModelParameters
|
||||
{
|
||||
public:
|
||||
::LandmarkDetector::FaceModelParameters* params;
|
||||
|
||||
public:
|
||||
|
||||
// Initialise the parameters
|
||||
FaceModelParameters(System::String^ root, bool ceclm, bool clnf, bool clm)
|
||||
{
|
||||
std::string root_std = msclr::interop::marshal_as<std::string>(root);
|
||||
std::vector<std::string> args;
|
||||
args.push_back(root_std);
|
||||
|
||||
std::string model_loc = "model/main_ceclm_general.txt";
|
||||
if (ceclm)
|
||||
{
|
||||
model_loc = "model/main_ceclm_general.txt";
|
||||
}
|
||||
else if(clnf)
|
||||
{
|
||||
model_loc = "model/main_clnf_general.txt";
|
||||
}
|
||||
else if (clm)
|
||||
{
|
||||
model_loc = "model/main_clm_general.txt";
|
||||
|
||||
}
|
||||
|
||||
args.push_back("-mloc");
|
||||
args.push_back(model_loc);
|
||||
|
||||
params = new ::LandmarkDetector::FaceModelParameters(args);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// TODO this could have optimize for demo mode (also could appropriately update sigma, reg_factor as well)
|
||||
void optimiseForVideo()
|
||||
{
|
||||
params->window_sizes_small = std::vector<int>(4);
|
||||
params->window_sizes_init = std::vector<int>(4);
|
||||
|
||||
// For fast tracking
|
||||
params->window_sizes_small[0] = 0;
|
||||
params->window_sizes_small[1] = 9;
|
||||
params->window_sizes_small[2] = 7;
|
||||
params->window_sizes_small[3] = 0;
|
||||
|
||||
// Just for initialisation
|
||||
params->window_sizes_init.at(0) = 11;
|
||||
params->window_sizes_init.at(1) = 9;
|
||||
params->window_sizes_init.at(2) = 7;
|
||||
params->window_sizes_init.at(3) = 5;
|
||||
|
||||
// For first frame use the initialisation
|
||||
params->window_sizes_current = params->window_sizes_init;
|
||||
|
||||
params->multi_view = false;
|
||||
params->num_optimisation_iteration = 5;
|
||||
|
||||
params->sigma = 1.5;
|
||||
params->reg_factor = 25;
|
||||
params->weight_factor = 0;
|
||||
|
||||
// Parameter optimizations for CE-CLM
|
||||
if (params->curr_landmark_detector == ::LandmarkDetector::FaceModelParameters::CECLM_DETECTOR)
|
||||
{
|
||||
params->sigma = 1.5f * params->sigma;
|
||||
params->reg_factor = 0.9f * params->reg_factor;
|
||||
}
|
||||
}
|
||||
|
||||
bool IsCECLM()
|
||||
{
|
||||
return params->curr_landmark_detector == ::LandmarkDetector::FaceModelParameters::CECLM_DETECTOR;
|
||||
}
|
||||
|
||||
bool IsCLNF()
|
||||
{
|
||||
return params->curr_landmark_detector == ::LandmarkDetector::FaceModelParameters::CLNF_DETECTOR;
|
||||
}
|
||||
|
||||
bool IsCLM()
|
||||
{
|
||||
return params->curr_landmark_detector == ::LandmarkDetector::FaceModelParameters::CLM_DETECTOR;
|
||||
}
|
||||
|
||||
System::String^ GetMTCNNLocation()
|
||||
{
|
||||
return gcnew System::String(params->mtcnn_face_detector_location.c_str());
|
||||
}
|
||||
|
||||
System::String^ GetHaarLocation()
|
||||
{
|
||||
return gcnew System::String(params->haar_face_detector_location.c_str());
|
||||
}
|
||||
|
||||
void SetFaceDetector(bool haar, bool hog, bool cnn)
|
||||
{
|
||||
if (cnn)
|
||||
{
|
||||
params->curr_face_detector = params->MTCNN_DETECTOR;
|
||||
}
|
||||
else if (hog)
|
||||
{
|
||||
params->curr_face_detector = params->HOG_SVM_DETECTOR;
|
||||
}
|
||||
else if (haar)
|
||||
{
|
||||
params->curr_face_detector = params->HAAR_DETECTOR;
|
||||
}
|
||||
}
|
||||
|
||||
void optimiseForImages()
|
||||
{
|
||||
params->window_sizes_init = std::vector<int>(4);
|
||||
params->window_sizes_init[0] = 15;
|
||||
params->window_sizes_init[1] = 13;
|
||||
params->window_sizes_init[2] = 11;
|
||||
params->window_sizes_init[3] = 11;
|
||||
|
||||
params->multi_view = true;
|
||||
|
||||
params->sigma = 1.25;
|
||||
params->reg_factor = 35;
|
||||
params->weight_factor = 2.5;
|
||||
params->num_optimisation_iteration = 10;
|
||||
|
||||
// Parameter optimizations for CE-CLM
|
||||
if (params->curr_landmark_detector == ::LandmarkDetector::FaceModelParameters::MTCNN_DETECTOR)
|
||||
{
|
||||
params->sigma = 1.5f * params->sigma;
|
||||
params->reg_factor = 0.9f * params->reg_factor;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
::LandmarkDetector::FaceModelParameters* getParams() {
|
||||
return params;
|
||||
}
|
||||
|
||||
!FaceModelParameters()
|
||||
{
|
||||
delete params;
|
||||
}
|
||||
|
||||
~FaceModelParameters()
|
||||
{
|
||||
this->!FaceModelParameters();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public ref class CLNF
|
||||
{
|
||||
public:
|
||||
|
||||
// A pointer to the CLNF landmark detector
|
||||
::LandmarkDetector::CLNF* clnf;
|
||||
|
||||
public:
|
||||
|
||||
// Wrapper functions for the relevant CLNF functionality
|
||||
CLNF() : clnf(new ::LandmarkDetector::CLNF()) { }
|
||||
|
||||
CLNF(FaceModelParameters^ params)
|
||||
{
|
||||
clnf = new ::LandmarkDetector::CLNF(params->getParams()->model_location);
|
||||
|
||||
}
|
||||
|
||||
!CLNF()
|
||||
{
|
||||
delete clnf;
|
||||
}
|
||||
|
||||
~CLNF()
|
||||
{
|
||||
this->!CLNF();
|
||||
}
|
||||
|
||||
bool isLoaded()
|
||||
{
|
||||
return clnf->loaded_successfully;
|
||||
}
|
||||
|
||||
|
||||
::LandmarkDetector::CLNF* getCLNF() {
|
||||
return clnf;
|
||||
}
|
||||
|
||||
void Reset() {
|
||||
clnf->Reset();
|
||||
}
|
||||
|
||||
void Reset(double x, double y) {
|
||||
clnf->Reset(x, y);
|
||||
}
|
||||
|
||||
bool HasEyeModel() {
|
||||
return clnf->eye_model;
|
||||
}
|
||||
|
||||
double GetConfidence()
|
||||
{
|
||||
return clnf->detection_certainty;
|
||||
}
|
||||
|
||||
bool DetectLandmarksInVideo(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams, OpenCVWrappers::RawImage^ gray_image) {
|
||||
return ::LandmarkDetector::DetectLandmarksInVideo(rgb_image->Mat, *clnf, *modelParams->getParams(), gray_image->Mat);
|
||||
}
|
||||
|
||||
bool DetectLandmarksInVideo(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams) {
|
||||
return ::LandmarkDetector::DetectLandmarksInVideo(rgb_image->Mat, *clnf, *modelParams->getParams(), cv::Mat());
|
||||
}
|
||||
|
||||
bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams, OpenCVWrappers::RawImage^ gray_image) {
|
||||
return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, *clnf, *modelParams->getParams(), gray_image->Mat);
|
||||
}
|
||||
|
||||
bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams) {
|
||||
return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, *clnf, *modelParams->getParams(), cv::Mat());
|
||||
}
|
||||
|
||||
bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, Rect^ bounding_box, FaceModelParameters^ modelParams, OpenCVWrappers::RawImage^ gray_image) {
|
||||
cv::Rect_<float> bbox(bounding_box->Left, bounding_box->Top, bounding_box->Width, bounding_box->Height);
|
||||
return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, bbox, *clnf, *modelParams->getParams(), gray_image->Mat);
|
||||
}
|
||||
|
||||
bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, Rect^ bounding_box, FaceModelParameters^ modelParams) {
|
||||
cv::Rect_<float> bbox(bounding_box->Left, bounding_box->Top, bounding_box->Width, bounding_box->Height);
|
||||
return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, bbox, *clnf, *modelParams->getParams(), cv::Mat());
|
||||
}
|
||||
|
||||
void GetPoseWRTCamera(List<float>^ pose, float fx, float fy, float cx, float cy) {
|
||||
auto pose_vec = ::LandmarkDetector::GetPoseWRTCamera(*clnf, fx, fy, cx, cy);
|
||||
pose->Clear();
|
||||
for(int i = 0; i < 6; ++i)
|
||||
{
|
||||
pose->Add(pose_vec[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void GetPose(List<float>^ pose, float fx, float fy, float cx, float cy) {
|
||||
auto pose_vec = ::LandmarkDetector::GetPose(*clnf, fx, fy, cx, cy);
|
||||
pose->Clear();
|
||||
for(int i = 0; i < 6; ++i)
|
||||
{
|
||||
pose->Add(pose_vec[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Get the mask of which landmarks are currently visible (not self-occluded)
|
||||
List<bool>^ GetVisibilities()
|
||||
{
|
||||
cv::Mat_<int> vis = clnf->GetVisibilities();
|
||||
List<bool>^ visibilities = gcnew List<bool>();
|
||||
|
||||
for (auto vis_it = vis.begin(); vis_it != vis.end(); vis_it++)
|
||||
{
|
||||
visibilities->Add(*vis_it != 0);
|
||||
}
|
||||
return visibilities;
|
||||
}
|
||||
|
||||
List<System::Tuple<float,float>^>^ CalculateVisibleLandmarks() {
|
||||
std::vector<cv::Point2f> vecLandmarks = ::LandmarkDetector::CalculateVisibleLandmarks(*clnf);
|
||||
|
||||
auto landmarks = gcnew System::Collections::Generic::List<System::Tuple<float, float>^>();
|
||||
for(cv::Point2f p : vecLandmarks) {
|
||||
landmarks->Add(gcnew System::Tuple<float, float>(p.x, p.y));
|
||||
}
|
||||
|
||||
return landmarks;
|
||||
}
|
||||
|
||||
List<System::Tuple<float, float>^>^ CalculateAllLandmarks() {
|
||||
std::vector<cv::Point2f> vecLandmarks = ::LandmarkDetector::CalculateAllLandmarks(*clnf);
|
||||
|
||||
auto landmarks = gcnew List<System::Tuple<float, float>^>();
|
||||
for (cv::Point2f p : vecLandmarks) {
|
||||
landmarks->Add(gcnew System::Tuple<float, float>(p.x, p.y));
|
||||
}
|
||||
|
||||
return landmarks;
|
||||
}
|
||||
|
||||
List<System::Tuple<float, float>^>^ CalculateAllEyeLandmarks() {
|
||||
std::vector<cv::Point2f> vecLandmarks = ::LandmarkDetector::CalculateAllEyeLandmarks(*clnf);
|
||||
|
||||
auto landmarks = gcnew System::Collections::Generic::List<System::Tuple<float, float>^>();
|
||||
for (cv::Point2f p : vecLandmarks) {
|
||||
landmarks->Add(gcnew System::Tuple<float, float>(p.x, p.y));
|
||||
}
|
||||
|
||||
return landmarks;
|
||||
}
|
||||
|
||||
List<System::Tuple<float, float, float>^>^ CalculateAllEyeLandmarks3D(float fx, float fy, float cx, float cy) {
|
||||
std::vector<cv::Point3f> vecLandmarks = ::LandmarkDetector::Calculate3DEyeLandmarks(*clnf, fx, fy, cx, cy);
|
||||
|
||||
auto landmarks = gcnew System::Collections::Generic::List<System::Tuple<float, float, float>^>();
|
||||
for (cv::Point3f p : vecLandmarks) {
|
||||
landmarks->Add(gcnew System::Tuple<float, float, float>(p.x, p.y, p.z));
|
||||
}
|
||||
|
||||
return landmarks;
|
||||
}
|
||||
|
||||
List<System::Tuple<float, float>^>^ CalculateVisibleEyeLandmarks() {
|
||||
std::vector<cv::Point2f> vecLandmarks = ::LandmarkDetector::CalculateVisibleEyeLandmarks(*clnf);
|
||||
|
||||
auto landmarks = gcnew System::Collections::Generic::List<System::Tuple<float, float>^>();
|
||||
for (cv::Point2f p : vecLandmarks) {
|
||||
landmarks->Add(gcnew System::Tuple<float, float>(p.x, p.y));
|
||||
}
|
||||
|
||||
return landmarks;
|
||||
}
|
||||
|
||||
List<System::Tuple<float, float, float>^>^ Calculate3DLandmarks(float fx, float fy, float cx, float cy) {
|
||||
|
||||
cv::Mat_<float> shape3D = clnf->GetShape(fx, fy, cx, cy);
|
||||
|
||||
auto landmarks_3D = gcnew List<System::Tuple<float, float, float>^>();
|
||||
|
||||
for(int i = 0; i < shape3D.cols; ++i)
|
||||
{
|
||||
landmarks_3D->Add(gcnew System::Tuple<float, float, float>(shape3D.at<float>(0, i), shape3D.at<float>(1, i), shape3D.at<float>(2, i)));
|
||||
}
|
||||
|
||||
return landmarks_3D;
|
||||
}
|
||||
|
||||
List<System::Tuple<System::Windows::Point, System::Windows::Point>^>^ CalculateBox(float fx, float fy, float cx, float cy) {
|
||||
|
||||
cv::Vec6f pose = ::LandmarkDetector::GetPose(*clnf, fx,fy, cx, cy);
|
||||
|
||||
std::vector<std::pair<cv::Point2f, cv::Point2f>> vecLines = ::Utilities::CalculateBox(pose, fx, fy, cx, cy);
|
||||
|
||||
auto lines = gcnew List<System::Tuple<System::Windows::Point,System::Windows::Point>^>();
|
||||
|
||||
for(std::pair<cv::Point2f, cv::Point2f> 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)));
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
int GetNumPoints()
|
||||
{
|
||||
return clnf->pdm.NumberOfPoints();
|
||||
}
|
||||
|
||||
int GetNumModes()
|
||||
{
|
||||
return clnf->pdm.NumberOfModes();
|
||||
}
|
||||
|
||||
// Getting the non-rigid shape parameters describing the facial expression
|
||||
List<float>^ GetNonRigidParams()
|
||||
{
|
||||
auto non_rigid_params = gcnew List<float>();
|
||||
|
||||
for (int i = 0; i < clnf->params_local.rows; ++i)
|
||||
{
|
||||
non_rigid_params->Add(clnf->params_local.at<float>(i));
|
||||
}
|
||||
|
||||
return non_rigid_params;
|
||||
}
|
||||
|
||||
// Getting the rigid shape parameters describing face scale rotation and translation (scale,rotx,roty,rotz,tx,ty)
|
||||
List<float>^ GetRigidParams()
|
||||
{
|
||||
auto rigid_params = gcnew List<float>();
|
||||
|
||||
for (size_t i = 0; i < 6; ++i)
|
||||
{
|
||||
rigid_params->Add(clnf->params_global[i]);
|
||||
}
|
||||
return rigid_params;
|
||||
}
|
||||
|
||||
// Rigid params followed by non-rigid ones
|
||||
List<float>^ GetParams()
|
||||
{
|
||||
auto all_params = GetRigidParams();
|
||||
all_params->AddRange(GetNonRigidParams());
|
||||
return all_params;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif // LANDMARK_DETECTOR_INTEROP_H
|
||||
284
pkg/OpenFace/lib/local/CppInerop/OpenCVWrappers.h
Normal file
284
pkg/OpenFace/lib/local/CppInerop/OpenCVWrappers.h
Normal file
@@ -0,0 +1,284 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge,
|
||||
// all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// OpenCVWrappers.h
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
#include <opencv2/core/core.hpp>
|
||||
#include <opencv2/highgui/highgui.hpp>
|
||||
|
||||
#pragma managed
|
||||
|
||||
#pragma make_public(cv::Mat)
|
||||
|
||||
using namespace System::Windows;
|
||||
using namespace System::Windows::Threading;
|
||||
using namespace System::Windows::Media;
|
||||
using namespace System::Windows::Media::Imaging;
|
||||
|
||||
namespace OpenCVWrappers {
|
||||
|
||||
public ref class RawImage : System::IDisposable
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
cv::Mat* mat;
|
||||
|
||||
public:
|
||||
|
||||
static int PixelFormatToType(PixelFormat fmt)
|
||||
{
|
||||
if (fmt == PixelFormats::Gray8)
|
||||
return CV_8UC1;
|
||||
else if (fmt == PixelFormats::Bgr24)
|
||||
return CV_8UC3;
|
||||
else if (fmt == PixelFormats::Bgra32)
|
||||
return CV_8UC4;
|
||||
else if (fmt == PixelFormats::Gray32Float)
|
||||
return CV_32FC1;
|
||||
else
|
||||
throw gcnew System::Exception("Unsupported pixel format");
|
||||
}
|
||||
|
||||
static PixelFormat TypeToPixelFormat(int type)
|
||||
{
|
||||
switch (type) {
|
||||
case CV_8UC1:
|
||||
return PixelFormats::Gray8;
|
||||
case CV_8UC3:
|
||||
return PixelFormats::Bgr24;
|
||||
case CV_8UC4:
|
||||
return PixelFormats::Bgra32;
|
||||
case CV_32FC1:
|
||||
return PixelFormats::Gray32Float;
|
||||
default:
|
||||
throw gcnew System::Exception("Unsupported image type");
|
||||
}
|
||||
}
|
||||
|
||||
RawImage(const cv::Mat& m)
|
||||
{
|
||||
mat = new cv::Mat(m.clone());
|
||||
}
|
||||
|
||||
// Constructing a raw image from bitmap
|
||||
RawImage(System::Drawing::Bitmap^ bitmap)
|
||||
{
|
||||
|
||||
auto fmt = bitmap->PixelFormat;
|
||||
if (fmt == System::Drawing::Imaging::PixelFormat::Format24bppRgb)
|
||||
{
|
||||
mat = new cv::Mat(cv::Size(bitmap->Width, bitmap->Height), CV_8UC3);
|
||||
}
|
||||
else if (fmt == System::Drawing::Imaging::PixelFormat::Format32bppArgb)
|
||||
{
|
||||
mat = new cv::Mat(cv::Size(bitmap->Width, bitmap->Height), CV_8UC4);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw gcnew System::Exception("Unsupported image type");
|
||||
}
|
||||
|
||||
auto rect = System::Drawing::Rectangle(0, 0, bitmap->Width, bitmap->Height);
|
||||
auto bitmap_data = bitmap->LockBits(rect, System::Drawing::Imaging::ImageLockMode::ReadOnly, bitmap->PixelFormat);
|
||||
System::IntPtr source_data = bitmap_data->Scan0;
|
||||
|
||||
int bytes = bitmap_data->Stride * bitmap_data->Height;
|
||||
memcpy(mat->data, source_data.ToPointer(), bytes);
|
||||
|
||||
//Unlock the bits.
|
||||
bitmap->UnlockBits(bitmap_data);
|
||||
|
||||
if (fmt == System::Drawing::Imaging::PixelFormat::Format32bppArgb)
|
||||
{
|
||||
cv::cvtColor(*mat, *mat, cv::COLOR_RGBA2RGB);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Mirror()
|
||||
{
|
||||
cv::flip(*mat, *mat, 1);
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!RawImage()
|
||||
{
|
||||
if (mat)
|
||||
{
|
||||
delete mat;
|
||||
mat = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~RawImage()
|
||||
{
|
||||
this->!RawImage();
|
||||
}
|
||||
|
||||
property int Width
|
||||
{
|
||||
int get()
|
||||
{
|
||||
return mat->cols;
|
||||
}
|
||||
}
|
||||
|
||||
property int Height
|
||||
{
|
||||
int get()
|
||||
{
|
||||
return mat->rows;
|
||||
}
|
||||
}
|
||||
|
||||
property int Stride
|
||||
{
|
||||
|
||||
int get()
|
||||
{
|
||||
return (int) mat->step;
|
||||
}
|
||||
}
|
||||
|
||||
property PixelFormat Format
|
||||
{
|
||||
PixelFormat get()
|
||||
{
|
||||
return TypeToPixelFormat(mat->type());
|
||||
}
|
||||
}
|
||||
|
||||
property cv::Mat& Mat
|
||||
{
|
||||
cv::Mat& get()
|
||||
{
|
||||
return *mat;
|
||||
}
|
||||
}
|
||||
|
||||
property bool IsEmpty
|
||||
{
|
||||
bool get()
|
||||
{
|
||||
return !mat || mat->empty();
|
||||
}
|
||||
}
|
||||
|
||||
bool UpdateWriteableBitmap(WriteableBitmap^ bitmap)
|
||||
{
|
||||
if (bitmap == nullptr || bitmap->PixelWidth != Width || bitmap->PixelHeight != Height || bitmap->Format != Format)
|
||||
return false;
|
||||
else {
|
||||
if (mat->data == NULL) {
|
||||
cv::Mat zeros(bitmap->PixelHeight, bitmap->PixelWidth, PixelFormatToType(bitmap->Format), 0);
|
||||
bitmap->WritePixels(Int32Rect(0, 0, Width, Height), System::IntPtr(zeros.data), Stride * Height * (Format.BitsPerPixel / 8), Stride, 0, 0);
|
||||
}
|
||||
else {
|
||||
bitmap->WritePixels(Int32Rect(0, 0, Width, Height), System::IntPtr(mat->data), Stride * Height * (Format.BitsPerPixel / 8), Stride, 0, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
WriteableBitmap^ CreateWriteableBitmap()
|
||||
{
|
||||
return gcnew WriteableBitmap(Width, Height, 72, 72, Format, nullptr);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public ref class VideoWriter
|
||||
{
|
||||
private:
|
||||
// OpenCV based video capture for reading from files
|
||||
cv::VideoWriter* vc;
|
||||
|
||||
public:
|
||||
|
||||
VideoWriter(System::String^ location, int width, int height, double fps, bool colour)
|
||||
{
|
||||
|
||||
msclr::interop::marshal_context context;
|
||||
std::string location_std_string = context.marshal_as<std::string>(location);
|
||||
|
||||
vc = new cv::VideoWriter(location_std_string, cv::VideoWriter::fourcc('D', 'I', 'V', 'X'), fps, cv::Size(width, height), colour);
|
||||
|
||||
}
|
||||
|
||||
// Return success
|
||||
bool Write(RawImage^ img)
|
||||
{
|
||||
if (vc != nullptr && vc->isOpened())
|
||||
{
|
||||
vc->write(img->Mat);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!VideoWriter()
|
||||
{
|
||||
if (vc != nullptr)
|
||||
{
|
||||
vc->~VideoWriter();
|
||||
}
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~VideoWriter()
|
||||
{
|
||||
this->!VideoWriter();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
255
pkg/OpenFace/lib/local/CppInerop/RecorderInterop.h
Normal file
255
pkg/OpenFace/lib/local/CppInerop/RecorderInterop.h
Normal file
@@ -0,0 +1,255 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Tadas Baltrusaitis.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
|
||||
#include <RecorderOpenFace.h>
|
||||
#include <OpenCVWrappers.h>
|
||||
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
using namespace System::Collections::Generic;
|
||||
|
||||
namespace UtilitiesOF {
|
||||
|
||||
public ref class RecorderOpenFaceParameters
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
Utilities::RecorderOpenFaceParameters *m_params;
|
||||
|
||||
public:
|
||||
RecorderOpenFaceParameters(bool sequence, bool is_from_webcam, bool output_2D_landmarks, bool output_3D_landmarks,
|
||||
bool output_model_params, bool output_pose, bool output_AUs, bool output_gaze, bool output_hog, bool output_tracked,
|
||||
bool output_aligned_faces, bool record_bad_aligned, float fx, float fy, float cx, float cy, double fps_vid_out)
|
||||
{
|
||||
|
||||
m_params = new Utilities::RecorderOpenFaceParameters(sequence, is_from_webcam,
|
||||
output_2D_landmarks, output_3D_landmarks, output_model_params, output_pose, output_AUs,
|
||||
output_gaze, output_hog, output_tracked, output_aligned_faces, record_bad_aligned, fx, fy, cx, cy, fps_vid_out);
|
||||
|
||||
}
|
||||
|
||||
Utilities::RecorderOpenFaceParameters * GetParams()
|
||||
{
|
||||
return m_params;
|
||||
}
|
||||
|
||||
!RecorderOpenFaceParameters()
|
||||
{
|
||||
delete m_params;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~RecorderOpenFaceParameters()
|
||||
{
|
||||
this->!RecorderOpenFaceParameters();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public ref class RecorderOpenFace
|
||||
{
|
||||
private:
|
||||
|
||||
// OpenCV based video capture for reading from files
|
||||
Utilities::RecorderOpenFace* m_recorder;
|
||||
|
||||
public:
|
||||
|
||||
// Can provide a directory, or a list of files
|
||||
RecorderOpenFace(System::String^ in_filename, UtilitiesOF::RecorderOpenFaceParameters^ parameters, System::String^ output_directory)
|
||||
{
|
||||
std::string in_filename_std = msclr::interop::marshal_as<std::string>(in_filename);
|
||||
std::string output_directory_std = msclr::interop::marshal_as<std::string>(output_directory);
|
||||
|
||||
m_recorder = new Utilities::RecorderOpenFace(in_filename_std, *parameters->GetParams(), output_directory_std);
|
||||
}
|
||||
|
||||
void Close()
|
||||
{
|
||||
m_recorder->Close();
|
||||
}
|
||||
|
||||
void WriteObservation()
|
||||
{
|
||||
m_recorder->WriteObservation();
|
||||
}
|
||||
|
||||
void WriteObservationTracked()
|
||||
{
|
||||
m_recorder->WriteObservationTracked();
|
||||
}
|
||||
|
||||
void SetObservationGaze(System::Tuple<float, float, float>^ gaze_direction0, System::Tuple<float, float, float>^ gaze_direction1, System::Tuple<float, float>^ gaze_angle,
|
||||
List<System::Tuple<float, float>^>^ landmarks_2D, List<System::Tuple<float, float, float>^>^ landmarks_3D)
|
||||
{
|
||||
cv::Point3f gaze_direction0_cv(gaze_direction0->Item1, gaze_direction0->Item2, gaze_direction0->Item3);
|
||||
cv::Point3f gaze_direction1_cv(gaze_direction1->Item1, gaze_direction1->Item2, gaze_direction1->Item3);
|
||||
cv::Vec2f gaze_angle_cv(gaze_angle->Item1, gaze_angle->Item2);
|
||||
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
std::vector<cv::Point2f> landmarks_2D_cv;
|
||||
for (int i = 0; i < landmarks_2D->Count; ++i)
|
||||
{
|
||||
landmarks_2D_cv.push_back(cv::Point2f(landmarks_2D[i]->Item1, landmarks_2D[i]->Item2));
|
||||
}
|
||||
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
std::vector<cv::Point3f> landmarks_3D_cv;
|
||||
for (int i = 0; i < landmarks_3D->Count; ++i)
|
||||
{
|
||||
landmarks_3D_cv.push_back(cv::Point3f(landmarks_3D[i]->Item1, landmarks_3D[i]->Item2, landmarks_3D[i]->Item3));
|
||||
}
|
||||
|
||||
m_recorder->SetObservationGaze(gaze_direction0_cv, gaze_direction1_cv, gaze_angle_cv, landmarks_2D_cv, landmarks_3D_cv);
|
||||
}
|
||||
|
||||
System::String^ GetCSVFile()
|
||||
{
|
||||
return gcnew System::String(m_recorder->GetCSVFile().c_str());
|
||||
}
|
||||
|
||||
// Setting the observations
|
||||
void SetObservationTimestamp(double timestamp)
|
||||
{
|
||||
m_recorder->SetObservationTimestamp(timestamp);
|
||||
}
|
||||
|
||||
void SetObservationPose(List<float>^ pose)
|
||||
{
|
||||
cv::Vec6f pose_vec(pose[0], pose[1], pose[2], pose[3], pose[4], pose[5]);
|
||||
m_recorder->SetObservationPose(pose_vec);
|
||||
}
|
||||
|
||||
void SetObservationActionUnits(Dictionary<System::String^, double>^ au_regs, Dictionary<System::String^, double>^ au_class)
|
||||
{
|
||||
std::vector<std::pair<std::string, double> > au_regs_std;
|
||||
auto enum_reg = au_regs->GetEnumerator();
|
||||
while (enum_reg.MoveNext())
|
||||
{
|
||||
std::string au_name = msclr::interop::marshal_as<std::string>(enum_reg.Current.Key);
|
||||
double value = (double)enum_reg.Current.Value;
|
||||
au_regs_std.push_back(std::pair<std::string, double>(au_name, value));
|
||||
}
|
||||
|
||||
std::vector<std::pair<std::string, double> > au_class_std;
|
||||
auto enum_class = au_class->GetEnumerator();
|
||||
while (enum_class.MoveNext())
|
||||
{
|
||||
std::string au_name = msclr::interop::marshal_as<std::string>(enum_class.Current.Key);
|
||||
double value = (double)enum_class.Current.Value;
|
||||
au_class_std.push_back(std::pair<std::string, double>(au_name, value));
|
||||
}
|
||||
m_recorder->SetObservationActionUnits(au_regs_std, au_class_std);
|
||||
}
|
||||
|
||||
void SetObservationFaceAlign(OpenCVWrappers::RawImage^ aligned_face_image)
|
||||
{
|
||||
m_recorder->SetObservationFaceAlign(aligned_face_image->Mat);
|
||||
}
|
||||
|
||||
void SetObservationVisualization(OpenCVWrappers::RawImage^ vis_image)
|
||||
{
|
||||
m_recorder->SetObservationVisualization(vis_image->Mat);
|
||||
}
|
||||
|
||||
void SetObservationFaceID(int face_id)
|
||||
{
|
||||
m_recorder->SetObservationFaceID(face_id);
|
||||
}
|
||||
|
||||
void SetObservationFrameNumber(int frame_number)
|
||||
{
|
||||
m_recorder->SetObservationFrameNumber(frame_number);
|
||||
}
|
||||
|
||||
void SetObservationHOG(bool success, OpenCVWrappers::RawImage^ aligned_face_image, int num_cols, int num_rows, int num_channels)
|
||||
{
|
||||
m_recorder->SetObservationHOG(success, aligned_face_image->Mat, num_cols, num_rows, num_channels);
|
||||
}
|
||||
|
||||
void SetObservationLandmarks(List<System::Tuple<float, float>^>^ landmarks_2D, List<System::Tuple<float, float, float>^>^ landmarks_3D, List<float>^ params_global, List<float>^ params_local, double confidence, bool success)
|
||||
{
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
cv::Mat_<float> landmarks_2D_mat(landmarks_2D->Count * 2, 1, 0.0);
|
||||
for (int i = 0; i < landmarks_2D->Count; ++i)
|
||||
{
|
||||
landmarks_2D_mat.at<float>(i, 0) = landmarks_2D[i]->Item1;
|
||||
landmarks_2D_mat.at<float>(i + landmarks_2D->Count, 0) = landmarks_2D[i]->Item2;
|
||||
}
|
||||
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
cv::Mat_<float> landmarks_3D_mat(landmarks_3D->Count * 3, 1, 0.0);
|
||||
for (int i = 0; i < landmarks_3D->Count; ++i)
|
||||
{
|
||||
landmarks_3D_mat.at<float>(i, 0) = landmarks_3D[i]->Item1;
|
||||
landmarks_3D_mat.at<float>(i + landmarks_3D->Count, 0) = landmarks_3D[i]->Item2;
|
||||
landmarks_3D_mat.at<float>(i + 2 * landmarks_3D->Count, 0) = landmarks_3D[i]->Item3;
|
||||
}
|
||||
|
||||
cv::Vec6f params_global_vec(params_global[0], params_global[1], params_global[2], params_global[3], params_global[4], params_global[5]);
|
||||
|
||||
cv::Mat_<float> params_local_vec(params_local->Count, 1, 0.0);
|
||||
for (int i = 0; i < params_local->Count; ++i)
|
||||
{
|
||||
params_local_vec.at<float>(i, 0) = params_local[i];
|
||||
}
|
||||
|
||||
m_recorder->SetObservationLandmarks(landmarks_2D_mat, landmarks_3D_mat, params_global_vec, params_local_vec, confidence, success);
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!RecorderOpenFace()
|
||||
{
|
||||
delete m_recorder;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~RecorderOpenFace()
|
||||
{
|
||||
this->!RecorderOpenFace();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
417
pkg/OpenFace/lib/local/CppInerop/SequenceReader.h
Normal file
417
pkg/OpenFace/lib/local/CppInerop/SequenceReader.h
Normal file
@@ -0,0 +1,417 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Tadas Baltrusaitis, all rights reserved.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#include <OpenCVWrappers.h>
|
||||
#include <ImageReader.h>
|
||||
#include <DeviceEnumerator.h>
|
||||
#include <SequenceCapture.h>
|
||||
|
||||
#pragma managed
|
||||
|
||||
#include <msclr\marshal.h>
|
||||
#include <msclr\marshal_cppstd.h>
|
||||
|
||||
using namespace System::Collections::Generic;
|
||||
|
||||
namespace UtilitiesOF {
|
||||
|
||||
|
||||
public ref class SequenceReader
|
||||
{
|
||||
private:
|
||||
|
||||
// OpenCV based video capture for reading from files
|
||||
Utilities::SequenceCapture* m_sequence_capture;
|
||||
|
||||
OpenCVWrappers::RawImage^ m_rgb_frame;
|
||||
OpenCVWrappers::RawImage^ m_gray_frame;
|
||||
|
||||
public:
|
||||
|
||||
// Can provide a directory or a video filename, need to specify which
|
||||
SequenceReader(System::String^ filename, bool directory)
|
||||
{
|
||||
m_sequence_capture = new Utilities::SequenceCapture();
|
||||
|
||||
std::string name_std = msclr::interop::marshal_as<std::string>(filename);
|
||||
|
||||
bool success;
|
||||
|
||||
if(directory)
|
||||
{
|
||||
success = m_sequence_capture->OpenImageSequence(name_std);
|
||||
}
|
||||
else
|
||||
{
|
||||
success = m_sequence_capture->OpenVideoFile(name_std);
|
||||
}
|
||||
|
||||
if (!success)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open an image sequence");
|
||||
}
|
||||
}
|
||||
|
||||
SequenceReader(System::String^ filename, bool directory, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_sequence_capture = new Utilities::SequenceCapture();
|
||||
|
||||
std::string name_std = msclr::interop::marshal_as<std::string>(filename);
|
||||
|
||||
bool success;
|
||||
|
||||
if (directory)
|
||||
{
|
||||
success = m_sequence_capture->OpenImageSequence(name_std, fx, fy, cx, cy);
|
||||
}
|
||||
else
|
||||
{
|
||||
success = m_sequence_capture->OpenVideoFile(name_std, fx, fy, cx, cy);
|
||||
}
|
||||
|
||||
if (!success)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open an image sequence");
|
||||
}
|
||||
}
|
||||
|
||||
// Can provide a webcam id
|
||||
SequenceReader(int webcam_id, int width, int height)
|
||||
{
|
||||
m_sequence_capture = new Utilities::SequenceCapture();
|
||||
|
||||
bool success = m_sequence_capture->OpenWebcam(webcam_id, width, height);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open an image sequence");
|
||||
}
|
||||
}
|
||||
|
||||
SequenceReader(int webcam_id, int width, int height, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_sequence_capture = new Utilities::SequenceCapture();
|
||||
|
||||
bool success = m_sequence_capture->OpenWebcam(webcam_id, width, height, fx, fy, cx, cy);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open an image sequence");
|
||||
}
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetNextImage()
|
||||
{
|
||||
cv::Mat next_image = m_sequence_capture->GetNextFrame();
|
||||
m_rgb_frame = gcnew OpenCVWrappers::RawImage(next_image);
|
||||
|
||||
return m_rgb_frame;
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetCurrentFrameGray() {
|
||||
|
||||
cv::Mat_<uchar> next_gray_image = m_sequence_capture->GetGrayFrame();
|
||||
m_gray_frame = gcnew OpenCVWrappers::RawImage(next_gray_image);
|
||||
|
||||
return m_gray_frame;
|
||||
}
|
||||
|
||||
int GetFrameNumber()
|
||||
{
|
||||
return m_sequence_capture->GetFrameNumber();
|
||||
}
|
||||
|
||||
double GetTimestamp()
|
||||
{
|
||||
return m_sequence_capture->time_stamp;
|
||||
}
|
||||
|
||||
System::String^ GetName()
|
||||
{
|
||||
std::string filename = m_sequence_capture->name;
|
||||
return gcnew System::String(filename.c_str());
|
||||
}
|
||||
|
||||
double GetProgress()
|
||||
{
|
||||
return m_sequence_capture->GetProgress();
|
||||
}
|
||||
|
||||
float GetFx()
|
||||
{
|
||||
return m_sequence_capture->fx;
|
||||
}
|
||||
|
||||
float GetFy()
|
||||
{
|
||||
return m_sequence_capture->fy;
|
||||
}
|
||||
|
||||
float GetCx()
|
||||
{
|
||||
return m_sequence_capture->cx;
|
||||
}
|
||||
|
||||
float GetCy()
|
||||
{
|
||||
return m_sequence_capture->cy;
|
||||
}
|
||||
|
||||
bool IsOpened()
|
||||
{
|
||||
return m_sequence_capture->IsOpened();
|
||||
}
|
||||
|
||||
bool IsWebcam()
|
||||
{
|
||||
return m_sequence_capture->IsWebcam();
|
||||
}
|
||||
|
||||
double GetFPS()
|
||||
{
|
||||
return m_sequence_capture->fps;
|
||||
}
|
||||
|
||||
void Close() {
|
||||
m_sequence_capture->Close();
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!SequenceReader()
|
||||
{
|
||||
delete m_sequence_capture;
|
||||
delete m_rgb_frame;
|
||||
delete m_gray_frame;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~SequenceReader()
|
||||
{
|
||||
this->!SequenceReader();
|
||||
}
|
||||
|
||||
private:
|
||||
// Static methods for listing cameras and their resolutions
|
||||
static void split(const std::string &s, char delim, std::vector<std::string> &elems) {
|
||||
std::stringstream ss;
|
||||
ss.str(s);
|
||||
std::string item;
|
||||
while (std::getline(ss, item, delim)) {
|
||||
elems.push_back(item);
|
||||
}
|
||||
}
|
||||
|
||||
// Camera listing is camera name and supported resolutions
|
||||
static Dictionary<System::String^, List<System::Tuple<int, int>^>^>^ GetListingFromFile(std::string filename)
|
||||
{
|
||||
// Check what cameras have been written (using OpenCVs XML packages)
|
||||
cv::FileStorage fs_read(filename, cv::FileStorage::READ);
|
||||
|
||||
auto managed_camera_list_initial = gcnew Dictionary<System::String^, List<System::Tuple<int, int>^>^>();
|
||||
|
||||
cv::FileNode camera_node_list = fs_read["cameras"];
|
||||
|
||||
// iterate through a sequence using FileNodeIterator
|
||||
for (size_t idx = 0; idx < camera_node_list.size(); idx++)
|
||||
{
|
||||
std::string camera_name = (std::string)camera_node_list[idx]["name"];
|
||||
|
||||
cv::FileNode resolution_list = camera_node_list[idx]["resolutions"];
|
||||
auto resolutions = gcnew System::Collections::Generic::List<System::Tuple<int, int>^>();
|
||||
for (size_t r_idx = 0; r_idx < resolution_list.size(); r_idx++)
|
||||
{
|
||||
std::string res = resolution_list[r_idx]["res"];
|
||||
|
||||
std::vector<std::string> elems;
|
||||
split(res, 'x', elems);
|
||||
|
||||
int x = stoi(elems[0]);
|
||||
int y = stoi(elems[1]);
|
||||
resolutions->Add(gcnew System::Tuple<int, int>(x, y));
|
||||
}
|
||||
managed_camera_list_initial[gcnew System::String(camera_name.c_str())] = resolutions;
|
||||
}
|
||||
fs_read.release();
|
||||
return managed_camera_list_initial;
|
||||
}
|
||||
|
||||
static void WriteCameraListingToFile(System::Collections::Generic::Dictionary<System::String^, System::Collections::Generic::List<System::Tuple<int, int>^>^>^ camera_list, std::string filename)
|
||||
{
|
||||
cv::FileStorage fs("camera_list.xml", cv::FileStorage::WRITE);
|
||||
|
||||
fs << "cameras" << "[";
|
||||
for each(System::String^ name_m in camera_list->Keys)
|
||||
{
|
||||
|
||||
std::string name = msclr::interop::marshal_as<std::string>(name_m);
|
||||
|
||||
fs << "{:" << "name" << name;
|
||||
fs << "resolutions" << "[";
|
||||
auto resolutions = camera_list[name_m];
|
||||
for (int j = 0; j < resolutions->Count; j++)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << resolutions[j]->Item1 << "x" << resolutions[j]->Item2;
|
||||
|
||||
fs << "{:" << "res" << ss.str();
|
||||
fs << "}";
|
||||
}
|
||||
fs << "]";
|
||||
fs << "}";
|
||||
}
|
||||
fs << "]";
|
||||
fs.release();
|
||||
}
|
||||
|
||||
// A utility for listing the currently connected cameras together with their ID, name, subset of supported resolutions and a thumbnail
|
||||
public:
|
||||
static List<System::Tuple<int, System::String^, List<System::Tuple<int, int>^>^, OpenCVWrappers::RawImage^>^>^ GetCameras(System::String^ root_directory_m)
|
||||
{
|
||||
auto managed_camera_list = gcnew List<System::Tuple<int, System::String^, List<System::Tuple<int, int>^>^, OpenCVWrappers::RawImage^>^>();
|
||||
|
||||
DeviceEnumerator de;
|
||||
|
||||
// Get a listing of all connected video devices
|
||||
std::map<int, Device> cameras = de.getVideoDevicesMap();
|
||||
|
||||
//std::cout << "Number of cameras found: " << cameras.size() << std::endl;
|
||||
//// Print information about the devices
|
||||
//for (auto const &device : cameras) {
|
||||
// std::cout << "== VIDEO DEVICE (id:" << device.first << ") ==" << std::endl;
|
||||
// std::cout << "Name: " << device.second.deviceName << std::endl;
|
||||
// std::cout << "Path: " << device.second.devicePath << std::endl;
|
||||
//}
|
||||
|
||||
size_t num_cameras = cameras.size();
|
||||
|
||||
// Pre-load supported camera resolutions if already computed
|
||||
std::string root_directory = msclr::interop::marshal_as<std::string>(root_directory_m);
|
||||
auto camera_resolution_list = GetListingFromFile(root_directory + "camera_list.xml");
|
||||
|
||||
for (size_t i = 0; i < num_cameras; ++i)
|
||||
{
|
||||
// Thumbnail to help with camera selection
|
||||
cv::Mat sample_img;
|
||||
|
||||
auto resolutions = gcnew List<System::Tuple<int, int>^>();
|
||||
|
||||
// Before trying the resolutions, check if the resolutions have already been computed for the camera of interest
|
||||
std::string device_name = cameras[i].deviceName;
|
||||
System::String^ device_name_m = gcnew System::String(device_name.c_str());
|
||||
if (camera_resolution_list->ContainsKey(device_name_m))
|
||||
{
|
||||
resolutions = camera_resolution_list[device_name_m];
|
||||
|
||||
// Grab a thumbnail from mid resolution
|
||||
cv::VideoCapture cap1(i);
|
||||
|
||||
auto resolution = resolutions[(int)(resolutions->Count / 2)];
|
||||
cap1.set(cv::CAP_PROP_FRAME_WIDTH, resolution->Item1);
|
||||
cap1.set(cv::CAP_PROP_FRAME_HEIGHT, resolution->Item2);
|
||||
|
||||
// Read several frames, as the first one often is over-exposed
|
||||
for (int k = 0; k < 2; ++k)
|
||||
cap1.read(sample_img);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// A common set of resolutions for webcams
|
||||
std::vector<std::pair<int, int>> common_resolutions;
|
||||
common_resolutions.push_back(std::pair<int, int>(320, 240));
|
||||
common_resolutions.push_back(std::pair<int, int>(640, 480));
|
||||
common_resolutions.push_back(std::pair<int, int>(800, 600));
|
||||
common_resolutions.push_back(std::pair<int, int>(960, 720));
|
||||
common_resolutions.push_back(std::pair<int, int>(1280, 720));
|
||||
common_resolutions.push_back(std::pair<int, int>(1280, 960));
|
||||
common_resolutions.push_back(std::pair<int, int>(1920, 1080));
|
||||
|
||||
// Grab some sample images and confirm the resolutions
|
||||
cv::VideoCapture cap1(i);
|
||||
|
||||
// Go through resolutions if they have not been identified
|
||||
for (size_t i = 0; i < common_resolutions.size(); ++i)
|
||||
{
|
||||
auto resolution = gcnew System::Tuple<int, int>(common_resolutions[i].first, common_resolutions[i].second);
|
||||
|
||||
cap1.set(cv::CAP_PROP_FRAME_WIDTH, resolution->Item1);
|
||||
cap1.set(cv::CAP_PROP_FRAME_HEIGHT, resolution->Item2);
|
||||
|
||||
// Add only valid resolutions as API sometimes provides wrong ones
|
||||
int set_width = cap1.get(cv::CAP_PROP_FRAME_WIDTH);
|
||||
int set_height = cap1.get(cv::CAP_PROP_FRAME_HEIGHT);
|
||||
|
||||
// Grab a thumbnail from mid resolution
|
||||
if (i == (int)common_resolutions.size() / 2)
|
||||
{
|
||||
// Read several frames, as the first one often is over-exposed
|
||||
for (int k = 0; k < 2; ++k)
|
||||
cap1.read(sample_img);
|
||||
}
|
||||
|
||||
resolution = gcnew System::Tuple<int, int>(set_width, set_height);
|
||||
if (!resolutions->Contains(resolution))
|
||||
{
|
||||
resolutions->Add(resolution);
|
||||
}
|
||||
}
|
||||
cap1.~VideoCapture();
|
||||
|
||||
// Ass the resolutions were not on the list, add them now
|
||||
camera_resolution_list[device_name_m] = resolutions;
|
||||
WriteCameraListingToFile(camera_resolution_list, root_directory + "camera_list.xml");
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ sample_img_managed = gcnew OpenCVWrappers::RawImage(sample_img);
|
||||
managed_camera_list->Add(gcnew System::Tuple<int, System::String^, List<System::Tuple<int, int>^>^, OpenCVWrappers::RawImage^>(i, device_name_m, resolutions, sample_img_managed));
|
||||
}
|
||||
|
||||
return managed_camera_list;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
169
pkg/OpenFace/lib/local/CppInerop/VisualizerInterop.h
Normal file
169
pkg/OpenFace/lib/local/CppInerop/VisualizerInterop.h
Normal file
@@ -0,0 +1,169 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2017, Tadas Baltrusaitis.
|
||||
//
|
||||
// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY
|
||||
//
|
||||
// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT.
|
||||
// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE.
|
||||
//
|
||||
// License can be found in OpenFace-license.txt
|
||||
|
||||
// * Any publications arising from the use of this software, including but
|
||||
// not limited to academic journal and conference publications, technical
|
||||
// reports and manuals, must cite at least one of the following works:
|
||||
//
|
||||
// OpenFace 2.0: Facial Behavior Analysis Toolkit
|
||||
// Tadas Baltrušaitis, Amir Zadeh, Yao Chong Lim, and Louis-Philippe Morency
|
||||
// in IEEE International Conference on Automatic Face and Gesture Recognition, 2018
|
||||
//
|
||||
// Convolutional experts constrained local model for facial landmark detection.
|
||||
// A. Zadeh, T. Baltrušaitis, and Louis-Philippe Morency,
|
||||
// in Computer Vision and Pattern Recognition Workshops, 2017.
|
||||
//
|
||||
// Rendering of Eyes for Eye-Shape Registration and Gaze Estimation
|
||||
// Erroll Wood, Tadas Baltrušaitis, Xucong Zhang, Yusuke Sugano, Peter Robinson, and Andreas Bulling
|
||||
// in IEEE International. Conference on Computer Vision (ICCV), 2015
|
||||
//
|
||||
// Cross-dataset learning and person-specific normalisation for automatic Action Unit detection
|
||||
// Tadas Baltrušaitis, Marwa Mahmoud, and Peter Robinson
|
||||
// in Facial Expression Recognition and Analysis Challenge,
|
||||
// IEEE International Conference on Automatic Face and Gesture Recognition, 2015
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#pragma unmanaged
|
||||
|
||||
// Include all the unmanaged things we need.
|
||||
|
||||
#include <Visualizer.h>
|
||||
#include <OpenCVWrappers.h>
|
||||
|
||||
#pragma managed
|
||||
|
||||
using System::Collections::Generic::List;
|
||||
|
||||
namespace UtilitiesOF {
|
||||
|
||||
public ref class Visualizer
|
||||
{
|
||||
private:
|
||||
|
||||
// OpenCV based video capture for reading from files
|
||||
Utilities::Visualizer* m_visualizer;
|
||||
|
||||
public:
|
||||
|
||||
Visualizer(bool vis_track, bool vis_hog, bool vis_aligned, bool vis_aus)
|
||||
{
|
||||
m_visualizer = new Utilities::Visualizer(vis_track, vis_hog, vis_aligned, vis_aus);
|
||||
}
|
||||
|
||||
void SetObservationGaze(System::Tuple<float, float, float>^ gaze_direction0, System::Tuple<float, float, float>^ gaze_direction1,
|
||||
List<System::Tuple<float, float>^>^ landmarks_2D, List<System::Tuple<float, float, float>^>^ landmarks_3D,
|
||||
double confidence)
|
||||
{
|
||||
cv::Point3f gaze_direction0_cv(gaze_direction0->Item1, gaze_direction0->Item2, gaze_direction0->Item3);
|
||||
cv::Point3f gaze_direction1_cv(gaze_direction1->Item1, gaze_direction1->Item2, gaze_direction1->Item3);
|
||||
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
std::vector<cv::Point2f> landmarks_2D_cv;
|
||||
for (int i = 0; i < landmarks_2D->Count; ++i)
|
||||
{
|
||||
landmarks_2D_cv.push_back(cv::Point2f(landmarks_2D[i]->Item1, landmarks_2D[i]->Item2));
|
||||
}
|
||||
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
std::vector<cv::Point3f> landmarks_3D_cv;
|
||||
for (int i = 0; i < landmarks_3D->Count; ++i)
|
||||
{
|
||||
landmarks_3D_cv.push_back(cv::Point3f(landmarks_3D[i]->Item1, landmarks_3D[i]->Item2, landmarks_3D[i]->Item3));
|
||||
}
|
||||
|
||||
m_visualizer->SetObservationGaze(gaze_direction0_cv, gaze_direction1_cv, landmarks_2D_cv, landmarks_3D_cv, confidence);
|
||||
}
|
||||
|
||||
// Setting the observations
|
||||
void SetObservationPose(List<float>^ pose, double confidence)
|
||||
{
|
||||
cv::Vec6f pose_vec(pose[0], pose[1], pose[2], pose[3], pose[4], pose[5]);
|
||||
m_visualizer->SetObservationPose(pose_vec, confidence);
|
||||
}
|
||||
|
||||
void SetObservationFaceAlign(OpenCVWrappers::RawImage^ aligned_face_image)
|
||||
{
|
||||
m_visualizer->SetObservationFaceAlign(aligned_face_image->Mat);
|
||||
}
|
||||
|
||||
void SetObservationHOG(OpenCVWrappers::RawImage^ observation_HOG, int num_cols, int num_rows)
|
||||
{
|
||||
m_visualizer->SetObservationHOG(observation_HOG->Mat, num_cols, num_rows);
|
||||
}
|
||||
|
||||
void SetObservationLandmarks(List<System::Tuple<float, float>^>^ landmarks_2D, double confidence, List<bool>^ visibilities)
|
||||
{
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
cv::Mat_<float> landmarks_2D_mat(landmarks_2D->Count * 2, 1, 0.0);
|
||||
for (int i = 0; i < landmarks_2D->Count; ++i)
|
||||
{
|
||||
landmarks_2D_mat.at<float>(i, 0) = landmarks_2D[i]->Item1;
|
||||
landmarks_2D_mat.at<float>(i + landmarks_2D->Count, 0) = landmarks_2D[i]->Item2;
|
||||
}
|
||||
|
||||
// Construct an OpenCV matrix from the landmarks
|
||||
cv::Mat_<int> visibilities_cv(visibilities->Count, 1, 0);
|
||||
for (int i = 0; i < visibilities->Count; ++i)
|
||||
{
|
||||
if (visibilities[i])
|
||||
{
|
||||
visibilities_cv.at<int>(i, 0) = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
visibilities_cv.at<int>(i, 0) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
m_visualizer->SetObservationLandmarks(landmarks_2D_mat, confidence, visibilities_cv);
|
||||
}
|
||||
|
||||
void SetObservationLandmarks(List<System::Tuple<float, float>^>^ landmarks_2D, double confidence)
|
||||
{
|
||||
SetObservationLandmarks(landmarks_2D, confidence, gcnew List<bool>());
|
||||
}
|
||||
|
||||
void SetImage(OpenCVWrappers::RawImage^ canvas, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_visualizer->SetImage(canvas->Mat, fx, fy, cx, cy);
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetHOGVis()
|
||||
{
|
||||
OpenCVWrappers::RawImage^ hog_image = gcnew OpenCVWrappers::RawImage(m_visualizer->GetHOGVis());
|
||||
return hog_image;
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetVisImage()
|
||||
{
|
||||
OpenCVWrappers::RawImage^ vis_image = gcnew OpenCVWrappers::RawImage(m_visualizer->GetVisImage());
|
||||
return vis_image;
|
||||
}
|
||||
|
||||
// Finalizer. Definitely called before Garbage Collection,
|
||||
// but not automatically called on explicit Dispose().
|
||||
// May be called multiple times.
|
||||
!Visualizer()
|
||||
{
|
||||
// Automatically closes capture object before freeing memory.
|
||||
delete m_visualizer;
|
||||
}
|
||||
|
||||
// Destructor. Called on explicit Dispose() only.
|
||||
~Visualizer()
|
||||
{
|
||||
this->!Visualizer();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
svm_disfa/AU_1_dyn.dat AU01
|
||||
svm_disfa/AU_2_dyn.dat AU02
|
||||
svm_disfa/AU_4_stat.dat AU04
|
||||
svm_disfa/AU_5_dyn.dat AU05
|
||||
svm_disfa/AU_6_stat.dat AU06
|
||||
svm_disfa/AU_9_dyn.dat AU09
|
||||
svm_disfa/AU_12_dyn.dat AU12
|
||||
svm_disfa/AU_15_dyn.dat AU15
|
||||
svm_disfa/AU_17_dyn.dat AU17
|
||||
svm_disfa/AU_20_dyn.dat AU20
|
||||
svm_disfa/AU_25_dyn.dat AU25
|
||||
svm_disfa/AU_26_dyn.dat AU26
|
||||
svr_disfa/AU_1_dynamic_intensity.dat AU01
|
||||
svr_disfa/AU_2_dynamic_intensity.dat AU02
|
||||
svr_disfa/AU_4_dynamic_intensity.dat AU04
|
||||
svr_disfa/AU_5_dynamic_intensity.dat AU05
|
||||
svr_disfa/AU_6_dynamic_intensity.dat AU06
|
||||
svr_disfa/AU_9_dynamic_intensity.dat AU09
|
||||
svr_disfa/AU_12_dynamic_intensity.dat AU12
|
||||
svr_disfa/AU_15_dynamic_intensity.dat AU15
|
||||
svr_disfa/AU_17_dynamic_intensity.dat AU17
|
||||
svr_disfa/AU_20_dynamic_intensity.dat AU20
|
||||
svr_disfa/AU_25_dynamic_intensity.dat AU25
|
||||
svr_disfa/AU_26_dynamic_intensity.dat AU26
|
||||
@@ -0,0 +1,24 @@
|
||||
svm_disfa/AU_1_stat.dat AU01
|
||||
svm_disfa/AU_2_stat.dat AU02
|
||||
svm_disfa/AU_4_stat.dat AU04
|
||||
svm_disfa/AU_5_stat.dat AU05
|
||||
svm_disfa/AU_6_stat.dat AU06
|
||||
svm_disfa/AU_9_stat.dat AU09
|
||||
svm_disfa/AU_12_stat.dat AU12
|
||||
svm_disfa/AU_15_stat.dat AU15
|
||||
svm_disfa/AU_17_stat.dat AU17
|
||||
svm_disfa/AU_20_stat.dat AU20
|
||||
svm_disfa/AU_25_stat.dat AU25
|
||||
svm_disfa/AU_26_stat.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,35 @@
|
||||
svm_combined/AU_1_dynamic.dat AU01
|
||||
svm_combined/AU_2_dynamic.dat AU02
|
||||
svm_combined/AU_4_static.dat AU04
|
||||
svm_combined/AU_5_static.dat AU05
|
||||
svm_combined/AU_6_static.dat AU06
|
||||
svm_combined/AU_7_static.dat AU07
|
||||
svm_combined/AU_9_dynamic.dat AU09
|
||||
svm_combined/AU_10_static.dat AU10
|
||||
svm_combined/AU_12_static.dat AU12
|
||||
svm_combined/AU_14_static.dat AU14
|
||||
svm_combined/AU_15_dynamic.dat AU15
|
||||
svm_combined/AU_17_dynamic.dat AU17
|
||||
svm_combined/AU_20_dynamic.dat AU20
|
||||
svm_combined/AU_23_static.dat AU23
|
||||
svm_combined/AU_25_dynamic.dat AU25
|
||||
svm_combined/AU_26_dynamic.dat AU26
|
||||
svm_combined/AU_28_dynamic.dat AU28
|
||||
svm_combined/AU_45_dynamic.dat AU45
|
||||
svr_combined/AU_1_dynamic_intensity_comb.dat AU01
|
||||
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
|
||||
@@ -0,0 +1,35 @@
|
||||
svm_combined/AU_1_static.dat AU01
|
||||
svm_combined/AU_2_static.dat AU02
|
||||
svm_combined/AU_4_static.dat AU04
|
||||
svm_combined/AU_5_static.dat AU05
|
||||
svm_combined/AU_6_static.dat AU06
|
||||
svm_combined/AU_7_static.dat AU07
|
||||
svm_combined/AU_9_static.dat AU09
|
||||
svm_combined/AU_10_static.dat AU10
|
||||
svm_combined/AU_12_static.dat AU12
|
||||
svm_combined/AU_14_static.dat AU14
|
||||
svm_combined/AU_15_static.dat AU15
|
||||
svm_combined/AU_17_static.dat AU17
|
||||
svm_combined/AU_20_static.dat AU20
|
||||
svm_combined/AU_23_static.dat AU23
|
||||
svm_combined/AU_25_static.dat AU25
|
||||
svm_combined/AU_26_static.dat AU26
|
||||
svm_combined/AU_28_static.dat AU28
|
||||
svm_combined/AU_45_static.dat AU45
|
||||
svr_combined/AU_1_static_intensity_comb.dat AU01
|
||||
svr_combined/AU_2_static_intensity_comb.dat AU02
|
||||
svr_combined/AU_4_static_intensity_comb.dat AU04
|
||||
svr_combined/AU_5_static_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_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
|
||||
@@ -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
|
||||
@@ -0,0 +1,421 @@
|
||||
# The mean values of the components (in mm)
|
||||
204
|
||||
1
|
||||
6
|
||||
-73.393523
|
||||
-72.775014
|
||||
-70.533638
|
||||
-66.850058
|
||||
-59.790187
|
||||
-48.368973
|
||||
-34.121101
|
||||
-17.875411
|
||||
0.098749
|
||||
17.477031
|
||||
32.648966
|
||||
46.372358
|
||||
57.343480
|
||||
64.388482
|
||||
68.212038
|
||||
70.486405
|
||||
71.375822
|
||||
-61.119406
|
||||
-51.287588
|
||||
-37.804800
|
||||
-24.022754
|
||||
-11.635713
|
||||
12.056636
|
||||
25.106256
|
||||
38.338588
|
||||
51.191007
|
||||
60.053851
|
||||
0.653940
|
||||
0.804809
|
||||
0.992204
|
||||
1.226783
|
||||
-14.772472
|
||||
-7.180239
|
||||
0.555920
|
||||
8.272499
|
||||
15.214351
|
||||
-46.047290
|
||||
-37.674688
|
||||
-27.883856
|
||||
-19.648268
|
||||
-28.272965
|
||||
-38.082418
|
||||
19.265868
|
||||
27.894191
|
||||
37.437529
|
||||
45.170805
|
||||
38.196454
|
||||
28.764989
|
||||
-28.916267
|
||||
-17.533194
|
||||
-6.684590
|
||||
0.381001
|
||||
8.375443
|
||||
18.876618
|
||||
28.794412
|
||||
19.057574
|
||||
8.956375
|
||||
0.381549
|
||||
-7.428895
|
||||
-18.160634
|
||||
-24.377490
|
||||
-6.897633
|
||||
0.340663
|
||||
8.444722
|
||||
24.474473
|
||||
8.449166
|
||||
0.205322
|
||||
-7.198266
|
||||
-29.801432
|
||||
-10.949766
|
||||
7.929818
|
||||
26.074280
|
||||
42.564390
|
||||
56.481080
|
||||
67.246992
|
||||
75.056892
|
||||
77.061286
|
||||
74.758448
|
||||
66.929021
|
||||
56.311389
|
||||
42.419126
|
||||
25.455880
|
||||
6.990805
|
||||
-11.666193
|
||||
-30.365191
|
||||
-49.361602
|
||||
-58.769795
|
||||
-61.996155
|
||||
-61.033399
|
||||
-56.686759
|
||||
-57.391033
|
||||
-61.902186
|
||||
-62.777713
|
||||
-59.302347
|
||||
-50.190255
|
||||
-42.193790
|
||||
-30.993721
|
||||
-19.944596
|
||||
-8.414541
|
||||
2.598255
|
||||
4.751589
|
||||
6.562900
|
||||
4.661005
|
||||
2.643046
|
||||
-37.471411
|
||||
-42.730510
|
||||
-42.711517
|
||||
-36.754742
|
||||
-35.134493
|
||||
-34.919043
|
||||
-37.032306
|
||||
-43.342445
|
||||
-43.110822
|
||||
-38.086515
|
||||
-35.532024
|
||||
-35.484289
|
||||
28.612716
|
||||
22.172187
|
||||
19.029051
|
||||
20.721118
|
||||
19.035460
|
||||
22.394109
|
||||
28.079924
|
||||
36.298248
|
||||
39.634575
|
||||
40.395647
|
||||
39.836405
|
||||
36.677899
|
||||
28.677771
|
||||
25.475976
|
||||
26.014269
|
||||
25.326198
|
||||
28.323008
|
||||
30.596216
|
||||
31.408738
|
||||
30.844876
|
||||
47.667532
|
||||
45.909403
|
||||
44.842580
|
||||
43.141114
|
||||
38.635298
|
||||
30.750622
|
||||
18.456453
|
||||
3.609035
|
||||
-0.881698
|
||||
5.181201
|
||||
19.176563
|
||||
30.770570
|
||||
37.628629
|
||||
40.886309
|
||||
42.281449
|
||||
44.142567
|
||||
47.140426
|
||||
14.254422
|
||||
7.268147
|
||||
0.442051
|
||||
-6.606501
|
||||
-11.967398
|
||||
-12.051204
|
||||
-7.315098
|
||||
-1.022953
|
||||
5.349435
|
||||
11.615746
|
||||
-13.380835
|
||||
-21.150853
|
||||
-29.284036
|
||||
-36.948060
|
||||
-20.132003
|
||||
-23.536684
|
||||
-25.944448
|
||||
-23.695741
|
||||
-20.858157
|
||||
7.037989
|
||||
3.021217
|
||||
1.353629
|
||||
-0.111088
|
||||
-0.147273
|
||||
1.476612
|
||||
-0.665746
|
||||
0.247660
|
||||
1.696435
|
||||
4.894163
|
||||
0.282961
|
||||
-1.172675
|
||||
-2.240310
|
||||
-15.934335
|
||||
-22.611355
|
||||
-23.748437
|
||||
-22.721995
|
||||
-15.610679
|
||||
-3.217393
|
||||
-14.987997
|
||||
-22.554245
|
||||
-23.591626
|
||||
-22.406106
|
||||
-15.121907
|
||||
-4.785684
|
||||
-20.893742
|
||||
-22.220479
|
||||
-21.025520
|
||||
-5.712776
|
||||
-20.671489
|
||||
-21.903670
|
||||
-20.328022
|
||||
# The principal components (eigenvectors) of identity or combined identity and expression model
|
||||
204
|
||||
34
|
||||
6
|
||||
-0.007395 -0.093690 0.039362 0.204443 -0.104698 0.033568 -0.090173 0.010170 -0.042341 0.104375 0.032695 0.038750 0.064385 -0.037025 0.058377 0.032457 -0.100005 -0.082042 -0.053440 0.008782 -0.027164 -0.000368 -0.129614 0.035436 -0.062685 -0.075349 0.140764 -0.032290 -0.115829 -0.037865 0.068590 0.008886 -0.066442 0.259211
|
||||
-0.002553 -0.075344 0.037127 0.201967 -0.069124 0.041645 -0.100939 0.018352 0.006598 0.081569 0.004894 0.038886 0.050631 0.056656 0.055353 -0.028457 -0.022518 -0.089693 -0.079196 0.010851 -0.017583 0.015095 -0.077834 -0.000944 -0.104255 -0.060338 0.106169 -0.065799 -0.067068 -0.051588 0.080490 0.063152 -0.047531 0.178216
|
||||
-0.002097 -0.055385 0.025705 0.215785 -0.026274 0.053548 -0.086364 0.041926 0.035784 0.033485 -0.014602 0.049999 0.031950 0.125201 0.045372 -0.064200 0.070073 -0.074313 -0.083942 -0.007566 -0.003666 0.034226 -0.018354 -0.011639 -0.084633 -0.039431 0.064057 -0.056515 -0.046926 -0.074699 0.073477 0.074109 -0.054882 0.046675
|
||||
-0.005533 -0.035821 0.019787 0.226957 0.030415 0.059508 -0.051058 0.057386 0.023240 -0.025487 -0.013088 0.043330 0.025141 0.113119 0.017370 -0.071064 0.108140 -0.049138 -0.043417 -0.065375 0.012959 0.070483 0.075536 -0.035685 -0.005847 0.012618 0.040297 -0.049743 -0.061354 -0.087164 0.033762 0.048771 -0.096563 -0.045189
|
||||
-0.006914 0.011987 0.030022 0.205560 0.099633 0.072384 -0.008313 0.060244 -0.006584 -0.104943 -0.018036 0.032806 0.029879 0.068434 -0.043721 -0.052564 0.077505 -0.062192 0.026865 -0.122834 -0.001529 0.064443 0.160557 -0.036750 0.124476 0.072641 0.048609 -0.043443 -0.060729 -0.040443 -0.050540 0.050509 -0.118886 -0.146867
|
||||
-0.004182 0.064263 0.036886 0.149341 0.158261 0.075501 0.030568 0.067074 -0.040268 -0.167116 -0.020230 0.029360 0.046726 0.033410 -0.121685 -0.004528 -0.017505 -0.050390 0.063237 -0.133203 -0.070794 0.005133 0.178032 -0.002768 0.153446 0.105966 0.061693 0.011010 -0.027442 0.001944 -0.103967 0.045708 -0.083197 -0.172889
|
||||
0.016954 0.088125 0.034199 0.081242 0.170872 0.048964 0.063434 0.083842 -0.058188 -0.164769 -0.012135 0.002128 0.084787 -0.009691 -0.136231 0.068411 -0.091616 0.042046 0.053339 -0.068859 -0.141834 -0.040710 0.017020 0.034007 0.053187 0.096749 0.068416 0.075079 0.038728 0.063588 -0.109581 0.007737 0.033105 -0.152075
|
||||
0.021733 0.081042 0.015310 0.029492 0.112212 0.012959 0.065003 0.095565 -0.047228 -0.120559 -0.022904 -0.051461 0.036411 -0.036990 -0.101765 0.150918 -0.102123 0.163128 0.047199 0.037063 -0.223718 -0.065303 -0.149191 -0.017823 -0.134138 0.084419 0.010718 0.087970 0.043030 0.040099 -0.068487 -0.008773 0.077035 -0.082281
|
||||
0.024713 0.084952 0.002319 -0.002792 0.028194 -0.016856 0.036083 0.087381 -0.020743 -0.024386 -0.027268 -0.091654 -0.009025 -0.052124 -0.033407 0.168353 -0.061447 0.244847 0.024587 0.064221 -0.161138 0.020993 -0.164584 -0.068179 -0.181775 0.087509 -0.068202 0.059078 -0.004250 -0.001472 -0.031248 -0.049011 -0.019415 0.022163
|
||||
0.025404 0.095704 -0.013447 -0.036864 -0.064015 -0.035962 0.001144 0.050101 0.006172 0.084003 -0.015860 -0.102295 -0.028308 -0.053076 0.017520 0.110370 -0.009494 0.248830 -0.017769 0.064655 -0.062487 0.133872 -0.077193 -0.077102 -0.104610 0.084923 -0.116710 -0.000424 -0.001453 -0.001504 -0.004986 -0.072792 -0.151917 0.063339
|
||||
0.027234 0.088446 -0.037011 -0.090962 -0.124015 -0.052844 -0.020061 0.017974 0.031824 0.138013 -0.009523 -0.093892 -0.061812 -0.016350 0.043025 0.034106 0.036403 0.177560 -0.066137 0.039288 0.041972 0.145398 -0.004524 -0.021113 0.025045 0.065780 -0.102128 -0.061053 0.010043 -0.018688 0.018733 -0.002990 -0.240304 0.007274
|
||||
0.033301 0.051083 -0.050161 -0.137239 -0.130410 -0.078352 -0.030467 -0.016581 0.042916 0.153230 -0.008295 -0.048519 -0.056020 -0.017449 0.051644 -0.021078 0.049456 0.042549 -0.075780 0.051205 0.057200 0.117965 0.058462 0.078890 0.121853 0.027311 -0.037081 -0.082100 0.013948 0.019188 0.029703 0.076102 -0.243643 -0.067711
|
||||
0.034561 -0.024817 -0.037181 -0.171731 -0.091823 -0.080914 -0.018022 -0.019280 0.055534 0.112038 -0.006388 0.000380 -0.027767 -0.031689 0.027915 -0.012644 0.004351 -0.072270 -0.053990 0.028620 0.011428 0.077628 0.073278 0.159948 0.096141 0.006855 0.036568 -0.013290 -0.001587 0.033748 0.052795 0.164287 -0.166678 -0.098685
|
||||
0.031311 -0.094373 -0.015266 -0.181991 -0.032285 -0.067979 0.020822 -0.028457 0.050194 0.060652 0.006169 0.060618 0.005717 -0.047184 0.006512 0.012425 -0.059877 -0.141325 -0.029145 -0.010906 -0.069894 0.032082 0.054382 0.151384 0.041519 0.026929 0.076049 0.067107 -0.027885 0.040313 0.041582 0.194576 -0.086531 -0.080338
|
||||
0.030327 -0.127857 -0.008012 -0.166922 0.025066 -0.062660 0.063753 -0.029802 0.044933 0.028298 0.025152 0.109179 0.013585 -0.043385 0.003918 0.007538 -0.080941 -0.141969 0.011067 -0.055727 -0.099322 -0.018025 0.009874 0.065510 -0.019589 0.084273 0.059580 0.099232 -0.026102 0.043042 0.023322 0.151827 -0.031702 -0.023000
|
||||
0.030239 -0.141766 -0.020490 -0.154724 0.073176 -0.066098 0.076339 -0.045120 0.049403 -0.014474 0.024782 0.109864 0.005943 -0.008921 0.001482 -0.008304 -0.060453 -0.100507 0.030769 -0.093919 -0.042422 -0.045051 -0.014060 -0.020183 -0.093279 0.134797 0.006048 0.040717 -0.038709 0.039630 0.006137 0.076303 0.021244 0.014680
|
||||
0.030493 -0.158938 -0.031460 -0.156567 0.120023 -0.070626 0.084879 -0.065759 0.063746 -0.047728 -0.002344 0.094855 -0.013995 0.014159 0.011125 -0.034394 -0.064702 -0.055871 0.041269 -0.110361 0.045722 -0.064289 -0.013213 -0.104140 -0.133226 0.183607 -0.037284 0.002311 -0.041808 0.033510 -0.034315 0.012710 0.065609 0.046794
|
||||
-0.029307 -0.000612 0.006003 0.066897 -0.126329 0.008282 0.106455 -0.058070 -0.127455 0.112217 0.028721 -0.008227 0.023123 -0.184660 -0.000131 0.060814 -0.038192 0.061802 0.055924 -0.086767 -0.011372 0.116214 0.039681 -0.047083 0.046626 0.042705 0.011194 -0.002237 0.023832 0.021378 0.074731 -0.040608 -0.025003 0.203421
|
||||
-0.038458 0.020813 -0.004500 0.021759 -0.086203 0.017004 0.123118 -0.051398 -0.154096 0.048594 0.160783 0.035847 -0.105209 -0.131283 -0.034334 0.088202 -0.022053 0.065794 0.043514 -0.164773 0.038562 0.221823 -0.008980 0.076251 -0.067806 0.014541 0.027230 -0.014379 -0.016754 -0.010835 0.026126 -0.010414 0.029183 0.058614
|
||||
-0.021490 0.036216 -0.005865 0.020024 -0.060804 0.026512 0.126241 -0.083197 -0.120419 0.032472 0.187630 -0.015555 -0.159327 -0.011903 -0.087082 0.079345 -0.061540 0.015194 0.062573 -0.039469 0.032277 0.191416 0.026454 0.082398 -0.056523 -0.017131 0.027510 -0.008610 0.004494 -0.034043 -0.017450 0.006765 0.078634 -0.036122
|
||||
0.000867 0.042636 0.003104 0.029552 -0.036234 0.016402 0.123844 -0.126971 -0.075012 0.060293 0.148833 -0.081953 -0.173218 0.088994 -0.136465 0.063644 -0.092909 -0.034989 0.083554 0.107321 0.022452 0.121649 0.095422 0.064093 -0.044127 -0.041514 -0.001734 -0.007934 0.040275 -0.042178 -0.037676 0.021143 0.091871 -0.056272
|
||||
0.024120 0.058528 0.006018 0.028610 -0.012243 0.008813 0.097121 -0.159602 -0.017056 0.077811 0.087002 -0.120528 -0.150197 0.184860 -0.180434 0.040369 -0.097894 -0.042266 0.075094 0.203623 0.039492 0.033806 0.132455 0.059185 -0.102173 -0.071020 -0.051542 0.002257 0.073697 -0.021845 -0.035627 0.009661 0.123071 -0.065039
|
||||
-0.056420 0.059125 -0.030321 -0.057038 0.055493 -0.007116 -0.126529 0.019949 -0.058614 -0.078223 0.002145 0.050900 0.167834 -0.173333 0.181067 -0.004047 0.063488 0.151506 -0.125850 -0.136067 0.023547 0.034287 -0.056834 0.003824 0.134406 -0.055792 0.087938 0.068804 -0.033240 0.076407 -0.033551 -0.097730 0.084249 -0.079917
|
||||
-0.038591 0.041658 -0.021071 -0.054808 0.085131 -0.020672 -0.150923 -0.028119 -0.005051 -0.082123 -0.027470 0.004437 0.151800 -0.139134 0.205779 0.055682 0.024516 0.096154 -0.038417 -0.113849 0.045637 0.075165 -0.039525 0.011140 0.058496 -0.061165 0.070389 0.031381 -0.020956 0.065917 -0.033395 -0.096762 0.067056 0.005758
|
||||
-0.007940 0.026461 -0.003035 -0.037585 0.112114 -0.032320 -0.154598 -0.070183 0.034104 -0.066949 -0.048103 -0.076036 0.108505 -0.081056 0.189128 0.100712 0.001290 0.009722 0.046728 -0.023127 0.013390 0.076873 0.012671 0.031037 0.075639 -0.064473 0.061414 -0.019564 0.014597 0.046786 -0.011485 -0.084927 -0.000334 0.061175
|
||||
0.018946 -0.000145 0.011179 -0.029672 0.136914 -0.030086 -0.147824 -0.105721 0.066935 -0.079902 -0.036968 -0.110909 0.052283 0.004188 0.126896 0.134626 -0.006676 -0.052490 0.091685 0.063396 -0.013036 0.002970 0.053049 0.019284 0.038579 -0.025497 0.025340 -0.089926 0.050450 -0.006666 -0.013118 -0.030505 -0.058633 0.064143
|
||||
0.026629 -0.059165 -0.000823 -0.058599 0.151849 -0.022073 -0.130501 -0.084385 0.071751 -0.134872 0.039773 -0.057794 -0.044027 0.076494 0.035989 0.101529 0.005315 -0.029779 0.032498 0.028803 0.005618 -0.063529 -0.004924 -0.022183 -0.113427 0.055922 -0.008186 -0.140830 0.090960 -0.114112 -0.009417 0.083947 -0.041032 -0.006371
|
||||
-0.010951 0.075350 -0.001817 -0.012876 0.013096 0.004579 -0.016153 -0.047823 -0.029850 0.016150 0.033334 0.015682 0.035621 0.037191 -0.019504 -0.019256 0.044839 0.020295 -0.073131 0.039780 -0.036879 -0.040970 0.053655 -0.001482 -0.002821 -0.032902 -0.000066 0.005729 0.001116 0.056517 -0.017058 -0.021947 0.037761 -0.039276
|
||||
-0.012100 0.064207 -0.001096 -0.013941 0.006814 0.008710 -0.012277 -0.037790 -0.022203 0.014245 0.023934 0.012607 0.028185 0.041440 -0.015444 -0.022646 0.048805 0.020521 -0.080918 0.029123 -0.081415 -0.044517 0.073681 0.021481 -0.045782 -0.048161 0.003254 0.036460 -0.020011 0.065280 0.002563 -0.013150 0.045393 -0.015692
|
||||
-0.013403 0.059276 0.001032 -0.014545 0.001798 0.010646 -0.008624 -0.026081 -0.017773 0.015405 0.015492 0.014040 0.022709 0.044120 -0.010399 -0.025661 0.051172 0.017503 -0.087720 0.021120 -0.123991 -0.047505 0.087387 0.047337 -0.088646 -0.065851 0.004667 0.069448 -0.040053 0.076718 0.023178 -0.004565 0.059432 0.003138
|
||||
-0.013951 0.058265 0.004661 -0.015235 -0.000197 0.012932 -0.005151 -0.015313 -0.012719 0.014418 0.008297 0.018443 0.016678 0.051541 -0.004867 -0.028055 0.052224 0.011609 -0.091004 0.016980 -0.158439 -0.046922 0.104617 0.077207 -0.137148 -0.078657 0.005486 0.103939 -0.062683 0.082257 0.041975 0.000801 0.070429 0.027527
|
||||
-0.012210 0.028100 -0.049457 -0.000857 0.000872 -0.019030 0.038293 -0.002178 0.022197 0.008799 -0.017828 -0.005589 -0.010209 -0.026452 0.021247 -0.052723 0.074659 0.058170 -0.117953 -0.020708 -0.092993 -0.079196 0.037883 0.239302 -0.027228 -0.100648 0.058909 0.082147 0.014782 0.033906 0.058190 -0.035069 -0.021313 -0.027376
|
||||
-0.009373 0.029412 -0.026531 -0.009199 -0.003610 -0.013154 0.015847 0.006945 0.008617 0.011675 -0.022788 0.000421 -0.007697 0.005751 0.004594 -0.044864 0.063024 0.031416 -0.086743 -0.005786 -0.098907 -0.064158 0.049203 0.156108 -0.042964 -0.089257 0.038446 0.080608 -0.015415 0.071399 0.069731 -0.012170 0.005798 -0.005172
|
||||
-0.007108 0.026011 0.001392 -0.008785 -0.008676 0.005534 -0.002323 0.008151 -0.006538 0.012718 -0.016466 0.016828 0.006599 0.032792 -0.008449 -0.031395 0.045979 0.010267 -0.064263 0.010528 -0.087206 -0.035954 0.070434 0.037452 -0.075439 -0.048176 -0.000307 0.074329 -0.047401 0.093968 0.057921 0.003554 0.025206 0.029137
|
||||
-0.008616 0.022966 0.025314 -0.006647 -0.012574 0.026313 -0.017855 0.005573 -0.012147 0.015962 -0.009681 0.035391 0.015389 0.061577 -0.023327 -0.005465 0.025007 -0.014906 -0.045808 0.023055 -0.069940 -0.012007 0.101986 -0.066696 -0.085795 -0.002255 -0.051891 0.079767 -0.057766 0.078189 0.009062 0.022309 0.030125 0.051138
|
||||
-0.007559 0.013536 0.044396 -0.007128 -0.015567 0.038755 -0.032699 0.009439 -0.018290 0.012901 -0.008295 0.047013 0.018435 0.076580 -0.045586 0.016721 0.010805 -0.037831 -0.013755 0.026798 -0.057710 -0.005862 0.113804 -0.159457 -0.085242 0.031892 -0.090113 0.066240 -0.055402 0.053706 -0.034191 0.047815 0.018971 0.071248
|
||||
-0.009091 0.030428 0.013028 0.035270 -0.081955 0.036276 0.100983 -0.087388 -0.023476 0.093938 -0.074920 -0.042748 0.009283 -0.052713 0.069944 0.007487 0.044433 0.011768 -0.036858 -0.036562 0.024165 -0.141056 -0.039714 -0.075826 0.052239 0.062199 -0.048408 -0.033798 0.070343 0.124688 -0.003466 0.051026 0.026850 -0.026589
|
||||
-0.006597 0.030631 0.019664 0.021478 -0.061211 0.024677 0.092608 -0.095386 -0.041650 0.068021 -0.054620 -0.036136 0.003440 -0.021689 0.046307 0.007803 0.056620 0.018329 -0.048106 -0.037355 0.044779 -0.170111 -0.043462 -0.076020 0.064547 0.063396 -0.047873 -0.054226 0.076392 0.081326 0.000747 0.074683 0.030657 -0.067772
|
||||
-0.006641 0.024694 0.004169 0.027776 -0.027517 0.013511 0.064805 -0.082940 -0.047464 0.039102 -0.047983 -0.025260 -0.012175 0.006766 0.039254 0.004585 0.108825 0.031769 -0.009359 -0.008230 0.016421 -0.164640 -0.117072 -0.007971 0.069640 0.013253 -0.033817 -0.074767 0.071010 0.026436 0.003056 0.090554 0.005886 -0.126966
|
||||
0.003124 0.009371 0.014768 0.046412 -0.023874 0.007554 0.036147 -0.057698 -0.058069 0.021256 -0.033315 -0.028152 -0.018259 0.027895 0.014161 0.004788 0.111066 0.042408 -0.022688 -0.017329 0.008180 -0.162840 -0.121148 0.012000 0.040787 0.005472 -0.028935 -0.070284 0.051087 0.002654 0.026039 0.077896 -0.025666 -0.138535
|
||||
-0.000470 0.012891 0.009958 0.038234 -0.036776 0.012638 0.068663 -0.077589 -0.036998 0.050930 -0.057174 -0.042770 -0.006013 -0.005012 0.037131 0.011314 0.092853 0.040593 -0.014258 -0.022855 0.028109 -0.170083 -0.092356 -0.017012 0.053071 0.021873 -0.039264 -0.061002 0.057296 0.043219 0.021993 0.064114 -0.018287 -0.100373
|
||||
-0.004849 0.015938 0.022983 0.026902 -0.073622 0.023429 0.089584 -0.088285 -0.026052 0.080286 -0.059955 -0.060351 0.007903 -0.035545 0.046797 0.007563 0.038369 0.030247 -0.059021 -0.056175 0.056872 -0.166273 -0.011250 -0.093711 0.035468 0.071037 -0.053530 -0.042127 0.065314 0.098363 0.023179 0.056227 0.018585 -0.031417
|
||||
-0.022520 -0.008135 -0.028919 -0.050592 0.028229 -0.006670 -0.060855 -0.025108 0.032576 -0.018823 0.066255 0.018170 0.050211 0.001974 -0.062666 -0.057057 -0.027695 0.045343 -0.016243 0.061633 0.033008 0.024487 0.074017 -0.133643 0.041960 -0.008005 0.017760 -0.020807 0.009949 -0.031184 -0.022929 0.014085 0.078201 0.073117
|
||||
-0.008675 -0.004691 -0.013081 -0.031226 0.031157 -0.009924 -0.096969 -0.029153 0.000787 -0.038194 0.087791 0.000669 0.047391 0.025733 -0.093797 -0.072336 -0.039133 0.081739 -0.024145 0.067113 0.036711 0.015968 0.050245 -0.135056 0.022818 0.008747 0.011110 -0.044613 0.004409 -0.030744 -0.014206 -0.016314 0.026864 0.033661
|
||||
-0.008350 -0.011949 -0.026508 -0.026911 0.063836 -0.024789 -0.126394 -0.011390 -0.004841 -0.063477 0.084207 0.008974 0.040823 0.048228 -0.106669 -0.072520 0.012682 0.093989 0.007098 0.087810 0.011179 0.012357 -0.005468 -0.074058 0.051617 -0.038525 0.027206 -0.052944 -0.001957 -0.069244 -0.001150 -0.012855 0.002275 -0.012184
|
||||
0.001527 -0.031469 -0.019959 -0.032691 0.084353 -0.036934 -0.139297 0.005872 -0.012615 -0.087659 0.090429 0.021235 0.029692 0.064764 -0.125564 -0.055872 0.037072 0.084147 -0.001494 0.073344 0.027889 -0.000113 -0.020299 -0.040534 0.015971 -0.035466 0.033553 -0.071962 -0.021193 -0.078379 0.024814 -0.018801 -0.021044 -0.038763
|
||||
-0.009394 -0.028927 -0.028906 -0.024460 0.073718 -0.026898 -0.120720 -0.003723 -0.012295 -0.070463 0.075708 0.021766 0.032103 0.053181 -0.101806 -0.052394 0.030694 0.112096 0.015064 0.098439 -0.005609 0.016172 -0.039627 -0.035390 0.062895 -0.064759 0.040731 -0.023003 -0.019984 -0.078158 0.013167 -0.008582 -0.012839 -0.026034
|
||||
-0.014806 -0.020586 -0.019304 -0.037248 0.040627 -0.009079 -0.093808 -0.017684 0.001926 -0.042956 0.076953 0.012620 0.038220 0.029003 -0.084598 -0.051706 -0.017717 0.096814 -0.013796 0.075862 0.017984 0.023149 0.017010 -0.093650 0.035446 -0.023135 0.026297 -0.011769 -0.011753 -0.043351 0.000060 -0.001953 0.028135 0.023804
|
||||
0.029937 -0.018527 -0.150727 0.081029 0.034186 -0.056299 0.148788 0.006526 0.091516 -0.080441 -0.035735 0.001997 0.019030 -0.077643 0.107984 -0.056258 0.031181 -0.051535 -0.027580 0.051815 0.012036 0.081437 0.046704 -0.059784 0.100904 0.025934 0.021662 -0.016937 0.039461 -0.046583 -0.092257 -0.006300 0.025170 0.075511
|
||||
0.027077 -0.012351 -0.112038 0.035893 0.028873 -0.001260 0.084827 -0.000242 0.048683 -0.054899 -0.029997 0.032628 -0.039785 -0.108273 0.045755 -0.052769 0.008202 -0.062941 -0.003272 0.105699 0.039987 0.020061 0.023151 0.020974 0.008953 0.010896 0.031997 -0.023033 0.010634 -0.071553 -0.062459 -0.034568 0.012175 0.063440
|
||||
0.008543 0.000575 -0.036234 0.011338 0.007897 -0.004413 0.042000 0.015857 0.024113 -0.029744 -0.022255 0.053502 -0.038865 -0.097944 0.017588 -0.046984 0.033087 -0.053276 0.001529 0.130264 0.069392 -0.067173 0.042421 0.083647 -0.052001 0.027113 0.009719 0.006872 -0.038341 -0.067952 0.010640 -0.078205 -0.015510 0.044074
|
||||
-0.004854 -0.002651 -0.001199 -0.004656 -0.017881 0.006502 0.011106 0.033451 0.012608 -0.007254 -0.021085 0.015936 -0.015926 -0.005386 0.006492 -0.032176 -0.004622 -0.056644 0.008831 0.017207 0.029211 -0.031234 -0.017190 0.017370 -0.014199 -0.016837 0.012242 0.028844 0.024051 -0.033052 0.005809 -0.026851 -0.003806 0.029867
|
||||
-0.015813 -0.010424 0.049608 -0.025236 -0.047180 0.033566 -0.017722 0.037312 0.003478 0.019989 -0.017899 -0.019776 0.013111 0.105673 -0.000689 -0.029181 -0.055355 -0.059296 0.016272 -0.126448 -0.003426 0.027239 -0.080562 -0.048943 0.063203 -0.071188 0.018085 0.055066 0.103002 0.015990 -0.024552 0.027166 0.005359 -0.008937
|
||||
-0.030164 -0.027591 0.112130 -0.046006 -0.063466 0.021257 -0.061882 0.075039 -0.009550 0.046188 -0.025234 -0.036147 0.006893 0.099786 -0.046972 -0.003808 -0.042536 -0.034124 0.072153 -0.146706 -0.007001 0.011713 -0.032354 -0.013285 0.064616 -0.076540 -0.019793 0.045941 0.057997 -0.041981 -0.013777 -0.007784 -0.005500 0.063654
|
||||
-0.019028 -0.051789 0.153268 -0.072220 -0.068001 0.053218 -0.114782 0.100188 -0.032458 0.065327 -0.041993 0.000529 -0.049657 0.064999 -0.113438 0.028145 -0.026783 -0.004495 0.083060 -0.067097 0.025177 -0.054527 0.012232 0.061208 0.035559 -0.041029 -0.084866 0.011647 -0.034824 -0.100697 -0.069165 -0.000768 0.005575 0.110722
|
||||
-0.028944 -0.046124 0.115567 -0.042613 -0.067724 0.014225 -0.060491 0.103470 0.006232 0.039413 -0.031752 -0.037167 -0.006997 0.085995 -0.038657 0.010688 -0.040086 -0.042208 0.098912 -0.130371 0.037304 0.026656 -0.077987 -0.030978 0.062407 -0.072535 -0.073939 0.000909 0.019295 -0.034458 0.004467 -0.047183 0.050673 0.035176
|
||||
-0.010823 -0.035975 0.055356 -0.020108 -0.053716 0.014079 -0.008891 0.083913 0.022598 0.005824 -0.031201 -0.038542 -0.005753 0.089595 0.015986 -0.004255 -0.071317 -0.065118 0.079317 -0.106829 0.072446 0.039057 -0.148855 -0.072824 0.059724 -0.064924 -0.048338 0.013216 0.059644 0.037032 0.035514 -0.058015 0.052789 -0.068904
|
||||
0.002749 -0.025782 0.001067 -0.000955 -0.021760 -0.004910 0.022410 0.073031 0.031948 -0.017623 -0.036578 0.002064 -0.036635 -0.028107 0.022568 -0.013938 -0.026049 -0.064352 0.076825 0.032919 0.104873 -0.018636 -0.086478 -0.011360 -0.025080 -0.005483 -0.057313 -0.019218 -0.018251 -0.006270 0.058547 -0.109717 0.043965 -0.042968
|
||||
0.019557 -0.022238 -0.040271 0.015531 -0.000923 -0.011734 0.050924 0.059961 0.044488 -0.037512 -0.047698 0.041131 -0.067325 -0.125904 0.038185 -0.026749 0.003161 -0.063752 0.059945 0.149873 0.138916 -0.043073 -0.038810 0.040424 -0.060299 0.036249 -0.057345 -0.030897 -0.069820 -0.039359 0.051438 -0.140784 0.040745 -0.023033
|
||||
0.038295 -0.025011 -0.119022 0.039087 0.023303 -0.007108 0.097748 0.031451 0.066314 -0.064618 -0.049757 0.022319 -0.054682 -0.131953 0.060803 -0.041005 -0.002889 -0.065952 0.048990 0.118731 0.087371 0.038178 -0.008116 -0.019859 0.013619 0.027323 -0.017437 -0.041034 -0.017123 -0.056194 -0.033365 -0.067470 0.076076 0.024548
|
||||
0.027485 -0.031004 -0.155083 0.076967 0.030238 -0.066616 0.146021 0.018614 0.095435 -0.090351 -0.026858 -0.001195 0.004065 -0.062969 0.102157 -0.046214 0.025250 -0.047454 0.004391 0.045916 0.011457 0.054752 0.064190 -0.063966 0.092363 0.019011 0.007010 -0.017645 0.023346 -0.068486 -0.085984 -0.024607 0.046082 0.096832
|
||||
0.011663 0.006518 -0.034439 0.013241 0.007617 -0.009766 0.044050 0.033840 0.029582 -0.028393 -0.028713 0.055641 -0.043922 -0.099413 0.025141 -0.040381 0.025727 -0.058214 0.010448 0.139032 0.097498 -0.059681 0.018053 0.084934 -0.052343 0.037634 -0.003643 0.010254 -0.050500 -0.038878 0.012009 -0.092562 -0.007898 0.022313
|
||||
-0.002313 0.000470 0.000002 -0.004007 -0.016215 0.003976 0.010717 0.048028 0.016739 -0.006186 -0.024483 0.020048 -0.016876 -0.003548 0.010717 -0.026953 -0.010998 -0.055979 0.019518 0.025395 0.050851 -0.031442 -0.027433 0.021960 -0.018106 -0.009491 0.000531 0.037647 0.007463 -0.008452 0.013288 -0.048925 0.006064 0.024257
|
||||
-0.012568 -0.006592 0.049539 -0.024277 -0.046609 0.030396 -0.019942 0.053337 0.007757 0.021468 -0.022706 -0.013044 0.011272 0.109312 0.003377 -0.022628 -0.060616 -0.061807 0.030161 -0.121278 0.019402 0.026839 -0.095660 -0.042434 0.064863 -0.064156 0.007525 0.057258 0.096057 0.035786 -0.019042 0.010115 0.006232 -0.015055
|
||||
-0.023212 -0.060246 0.157807 -0.069886 -0.065658 0.063342 -0.104423 0.082001 -0.030749 0.079114 -0.044460 0.004171 -0.030429 0.042545 -0.096287 0.021890 -0.044874 -0.001170 0.067071 -0.085689 0.021431 -0.035122 0.002907 0.064224 0.017922 -0.037758 -0.083689 0.004437 -0.037603 -0.087459 -0.078257 -0.011921 0.002713 0.130484
|
||||
-0.010961 -0.010595 0.057062 -0.023094 -0.047200 0.021346 -0.011516 0.068656 0.015527 0.014810 -0.022984 -0.021018 0.006940 0.106574 0.011226 -0.023889 -0.062806 -0.069001 0.044159 -0.108003 0.050370 0.047099 -0.112640 -0.068669 0.081751 -0.068521 -0.039172 0.022972 0.052837 0.036443 0.008144 -0.028320 0.041313 -0.064570
|
||||
0.001631 -0.003250 0.002325 -0.002118 -0.016181 0.000274 0.016759 0.060910 0.024499 -0.012519 -0.030588 0.015271 -0.023100 -0.011757 0.016440 -0.028638 -0.012990 -0.064844 0.039739 0.031429 0.079984 -0.015321 -0.052897 -0.006078 -0.010170 -0.011420 -0.050449 -0.009900 -0.025391 -0.012909 0.032748 -0.085004 0.038699 -0.043162
|
||||
0.017805 0.004146 -0.038887 0.014222 0.006581 -0.009683 0.047461 0.046887 0.038038 -0.032345 -0.032763 0.056280 -0.049485 -0.108966 0.031645 -0.041431 0.020138 -0.064023 0.031810 0.142533 0.126216 -0.050995 -0.002245 0.056266 -0.050403 0.037812 -0.053115 -0.030572 -0.081976 -0.050982 0.028974 -0.127634 0.029303 -0.029574
|
||||
0.012632 -0.105919 0.042832 -0.056614 0.095894 -0.023994 -0.019214 -0.026746 -0.070577 0.202269 0.218185 -0.141116 0.012637 -0.191347 0.155533 -0.244488 0.121779 -0.013130 0.138472 -0.059114 -0.216544 -0.050477 0.066853 -0.149560 -0.157390 -0.095098 -0.011175 -0.068427 0.210754 -0.054577 0.001436 0.040342 -0.004236 -0.006205
|
||||
-0.009740 -0.029067 0.036475 -0.046866 0.118228 0.012225 -0.006405 -0.060398 -0.086556 0.108100 0.186918 -0.112111 0.050136 -0.100126 0.105268 -0.169540 0.136663 -0.073114 0.067763 -0.014521 -0.082623 -0.012863 0.033765 -0.100967 -0.086562 -0.092416 -0.077945 0.022729 0.114331 -0.008651 -0.069342 0.005683 0.051571 -0.009558
|
||||
-0.031301 0.046217 0.033243 -0.035388 0.123785 0.052248 0.021922 -0.090547 -0.125667 0.007581 0.182378 -0.055823 0.074368 -0.029074 0.053632 -0.049594 0.107463 -0.137761 0.005821 -0.001673 0.066449 0.006118 0.023528 0.013804 -0.007269 -0.081388 -0.113434 0.070675 0.027780 0.045024 -0.106739 -0.011678 0.031635 0.044212
|
||||
-0.047441 0.105188 0.031918 -0.024384 0.114098 0.082601 0.048491 -0.112125 -0.170704 -0.059301 0.164752 -0.009947 0.090739 0.006616 0.010369 0.042357 0.050623 -0.158918 -0.042210 0.014508 0.136027 -0.007670 -0.034495 0.072312 0.050835 -0.067209 -0.075955 0.023597 0.006577 0.084867 -0.082590 0.024191 -0.041988 0.068711
|
||||
-0.060936 0.133902 0.031530 -0.004574 0.064304 0.088650 0.058070 -0.124018 -0.171917 -0.102988 0.148276 0.058157 0.076201 0.044152 0.002505 0.090897 -0.015203 -0.110439 -0.090091 0.069662 0.172459 -0.039446 -0.067579 0.050794 0.093654 -0.082964 -0.026363 0.019254 -0.002660 0.016061 0.024545 0.043909 -0.092051 0.131171
|
||||
-0.074646 0.131695 0.040257 0.018490 -0.004794 0.081236 0.061589 -0.133348 -0.147784 -0.119212 0.094712 0.084045 0.033173 0.036408 0.031797 0.094617 -0.048706 0.003825 -0.075566 0.078798 0.127307 -0.065285 -0.109546 -0.039558 0.030185 -0.072564 0.052974 -0.008825 -0.088317 -0.022192 0.091494 0.087785 -0.062428 0.116086
|
||||
-0.090236 0.103626 0.066939 0.057319 -0.079163 0.060686 0.053354 -0.131920 -0.087102 -0.115977 0.028577 0.074951 -0.040556 0.035491 0.087538 0.018752 -0.081645 0.116761 0.007481 0.045592 0.001466 -0.094081 -0.126988 -0.146376 -0.033849 -0.021719 0.127080 -0.004981 -0.202755 -0.119973 0.081963 0.106640 -0.105281 -0.008628
|
||||
-0.101059 0.055177 0.092659 0.069983 -0.150193 0.026469 0.028574 -0.115258 -0.008902 -0.088879 -0.036594 0.022392 -0.109572 -0.005240 0.149355 -0.115056 -0.119773 0.122550 0.083092 0.011822 -0.092288 -0.074034 -0.034558 -0.115984 -0.044921 0.007854 0.164244 0.014803 -0.170980 -0.127570 0.019750 0.095694 0.000371 -0.041291
|
||||
-0.101563 0.024376 0.106668 0.071318 -0.187231 0.012534 0.023991 -0.099795 0.030129 -0.076617 -0.069392 -0.016558 -0.116462 -0.024845 0.158655 -0.199665 -0.116228 0.076206 0.060656 -0.024832 -0.096681 -0.049299 0.082420 -0.042295 -0.032862 0.018749 0.125343 0.039212 -0.037558 -0.047906 -0.025870 -0.049529 0.088169 -0.088273
|
||||
-0.101840 -0.013119 0.089419 0.075166 -0.182579 0.048658 0.037188 -0.067749 0.031914 -0.101814 -0.073274 -0.026481 -0.109668 -0.000858 0.110793 -0.202483 -0.060253 0.007145 0.019590 -0.069464 -0.056870 0.023689 0.132006 0.031411 0.013119 -0.007012 0.038285 0.031656 0.001551 -0.025447 -0.065416 -0.114616 0.017261 -0.086359
|
||||
-0.084252 -0.076412 0.065909 0.060881 -0.142931 0.092286 0.073191 -0.013071 0.017189 -0.159961 -0.092115 -0.031651 -0.101432 -0.005721 0.027741 -0.106024 0.050453 -0.034217 -0.067543 -0.069923 -0.011090 0.116035 0.100208 0.041462 -0.024840 -0.044467 -0.108854 -0.009354 0.073244 0.020455 -0.063103 -0.129646 -0.010099 -0.129133
|
||||
-0.053651 -0.123308 0.046845 0.020630 -0.076671 0.113112 0.110897 0.086910 0.003931 -0.182808 -0.094838 -0.023499 -0.059496 -0.018019 -0.032692 -0.004557 0.053504 -0.066417 -0.110231 -0.014603 -0.024896 0.113252 0.016412 0.021225 -0.025860 -0.075046 -0.145044 -0.030890 0.110020 0.003382 0.007818 -0.098244 -0.037896 -0.009802
|
||||
-0.023018 -0.146263 0.038114 -0.004028 -0.020148 0.111274 0.136014 0.170400 0.002465 -0.171044 -0.075670 -0.007542 -0.006424 -0.025856 -0.031416 0.083827 0.010568 -0.069980 -0.109310 0.034905 -0.065427 0.031177 -0.044852 0.019905 -0.066999 -0.093510 -0.115084 -0.095158 0.120015 0.040204 0.030019 -0.030543 -0.096811 0.096700
|
||||
0.002563 -0.127886 0.038658 -0.012071 0.033255 0.099861 0.164565 0.238246 0.001567 -0.105923 -0.057783 0.008664 0.027296 -0.030573 -0.009853 0.117020 -0.032701 -0.000283 -0.057331 0.051644 -0.084379 -0.039476 -0.031627 -0.008417 -0.048362 -0.080557 -0.044505 -0.140295 0.129312 0.090377 0.020906 0.080368 -0.088585 0.136852
|
||||
0.022743 -0.067070 0.035835 -0.011617 0.073365 0.063325 0.146213 0.262278 -0.002566 -0.007656 -0.026090 0.035984 0.031533 -0.009645 0.044980 0.084848 -0.046015 0.086576 -0.001782 0.061428 0.003570 -0.047340 0.031674 0.003656 -0.006269 -0.074342 -0.011328 -0.102136 0.042874 0.026755 -0.027391 0.130301 -0.059867 0.018942
|
||||
0.044270 0.008816 0.045389 -0.021660 0.105411 0.011416 0.109320 0.275577 -0.009832 0.108035 0.004491 0.064390 0.012428 0.006669 0.095357 -0.012238 -0.068972 0.152817 0.075822 0.056884 0.138813 -0.051472 0.080042 0.012909 0.015075 -0.053459 0.028833 0.077070 0.026517 -0.070675 -0.045298 0.143809 -0.084532 -0.083487
|
||||
0.062375 0.088371 0.056930 -0.031399 0.124205 -0.042608 0.070908 0.302850 -0.030713 0.221806 0.047883 0.094536 -0.004204 0.009990 0.148794 -0.108520 -0.096997 0.187564 0.140322 0.044017 0.262141 -0.062547 0.161527 -0.013297 0.037476 -0.028287 0.047541 0.256555 -0.040101 -0.087736 0.006879 0.108453 -0.022617 -0.092782
|
||||
0.101351 -0.059896 0.089671 -0.007831 -0.037385 0.008829 -0.001672 -0.180136 0.189267 0.006458 -0.232031 -0.060867 0.181227 0.130852 -0.046776 0.035489 0.001493 0.160017 0.051721 0.209411 0.059181 -0.083851 0.207104 -0.102355 0.039265 -0.194572 -0.024321 -0.005820 -0.022768 0.136793 -0.107813 -0.023127 -0.048810 0.065417
|
||||
0.081528 -0.068502 0.070887 -0.055525 -0.045082 0.007139 -0.005518 -0.118178 0.156592 -0.033074 -0.063860 0.040561 0.111628 0.029568 0.001045 0.060952 0.022298 0.185051 0.009521 -0.033300 0.094005 0.013600 0.105380 0.040334 -0.061870 -0.114470 0.021331 0.005113 0.002683 0.024141 -0.026811 -0.015689 0.020153 0.092373
|
||||
0.068413 -0.083706 0.052305 -0.086296 -0.055880 0.021816 0.004492 -0.068120 0.145758 -0.102567 0.092434 0.075123 0.007851 0.008520 0.005845 0.082068 0.031453 0.180413 -0.035339 -0.133303 0.088724 0.067980 0.008976 0.111553 -0.060575 -0.053669 0.037053 -0.004075 0.049025 0.024206 0.031083 0.032459 0.049141 0.038812
|
||||
0.072230 -0.065201 0.036058 -0.094849 -0.081347 0.028568 0.008797 -0.040623 0.140707 -0.126779 0.170257 0.059293 -0.052776 0.003182 -0.000677 0.081645 0.026914 0.131691 -0.055588 -0.098342 0.031136 -0.006790 0.015095 0.065597 0.078600 0.017709 0.045791 -0.034864 0.076622 0.013773 0.067413 -0.028287 0.059081 0.012658
|
||||
0.085169 -0.029802 0.042368 -0.082336 -0.097939 0.016608 0.019748 -0.012989 0.121625 -0.087612 0.209630 0.002191 -0.126582 0.050998 -0.030648 0.060010 0.000332 0.046455 -0.023080 0.055862 -0.053376 -0.135321 0.065824 0.029844 0.265716 0.072053 0.059330 -0.027794 0.089039 -0.055593 0.088900 -0.113375 0.061857 -0.009200
|
||||
0.083666 0.022002 0.040552 -0.085899 -0.099865 0.015644 0.005068 0.015547 0.156486 -0.077980 0.202180 0.014951 -0.087338 0.065851 -0.063459 -0.028938 0.043400 -0.024140 -0.005938 0.066480 -0.072232 -0.179693 -0.014319 -0.032909 0.209669 0.122452 -0.039648 0.049486 0.011409 -0.011759 -0.007885 -0.033417 -0.079718 0.113528
|
||||
0.083042 0.057031 0.040177 -0.099114 -0.076680 0.009479 -0.003028 -0.000359 0.165022 -0.119377 0.166816 0.098159 -0.004888 0.020345 -0.028135 -0.047425 0.054928 -0.014242 -0.021031 -0.044814 0.032783 -0.054961 -0.131702 -0.039012 -0.016037 0.136114 -0.052413 0.121523 -0.038968 0.020495 -0.008329 -0.024960 -0.081805 0.022575
|
||||
0.083252 0.078107 0.056261 -0.095219 -0.059524 0.003298 -0.006615 -0.018114 0.165684 -0.099090 0.091701 0.078091 0.033441 -0.005544 -0.024775 -0.060616 0.054683 -0.025820 0.034770 -0.091304 0.061625 0.040350 -0.178139 0.001904 -0.150915 0.076588 -0.034127 0.096746 -0.053605 0.008977 -0.035470 0.025028 -0.047913 -0.054413
|
||||
0.104239 0.086773 0.093349 -0.055643 -0.033261 -0.013246 -0.005449 -0.083837 0.158899 -0.044047 -0.029467 -0.026012 0.082055 -0.049138 0.021797 0.008367 0.031893 -0.087107 0.189897 -0.063379 0.017963 0.128801 -0.143253 0.036421 -0.143812 -0.013284 0.024955 0.056737 -0.069906 0.014591 -0.040838 0.026539 -0.056752 -0.047314
|
||||
0.135218 0.100220 0.124814 0.000991 -0.008239 -0.012542 -0.007248 -0.156811 0.151583 -0.017420 -0.147099 -0.155713 0.101870 -0.021523 0.028922 0.110680 0.026595 -0.179864 0.346267 0.114265 -0.070904 0.161901 -0.031710 0.014850 -0.024451 -0.120325 0.049384 -0.013378 -0.123593 0.072623 -0.129874 0.065687 -0.065814 -0.083173
|
||||
0.059343 -0.012441 -0.000702 -0.081890 -0.008092 -0.077276 -0.028878 0.037295 -0.029467 -0.011411 -0.007775 0.009769 -0.027726 0.005769 0.053610 0.007873 -0.041172 -0.106420 -0.027219 0.033050 -0.102197 -0.048661 -0.066981 -0.013190 0.109772 0.030705 0.044138 0.003928 0.036674 0.004169 0.127857 0.033634 0.266703 0.060249
|
||||
0.041616 -0.014486 -0.010645 -0.063688 0.002398 0.007759 -0.030515 0.045130 -0.060320 -0.012907 -0.003144 -0.002022 0.026184 0.062737 0.093489 -0.012212 -0.012731 -0.061123 0.017645 0.059738 -0.070951 0.028276 -0.008200 -0.013282 0.059036 0.130001 0.007378 -0.026986 0.024631 0.046745 0.129132 0.029581 0.168902 0.047167
|
||||
0.022209 -0.018785 -0.021705 -0.047282 0.007684 0.096519 -0.037379 0.046370 -0.086593 -0.016226 0.004486 -0.016435 0.077777 0.123311 0.134030 -0.031013 0.005692 -0.004530 0.059412 0.082817 -0.053324 0.097630 0.047516 -0.011465 0.006049 0.229178 -0.021088 -0.047042 0.006557 0.091702 0.122335 0.003955 0.066979 0.045888
|
||||
0.003588 -0.021043 -0.030263 -0.030409 0.008371 0.181691 -0.044518 0.046051 -0.107937 -0.022794 0.009934 -0.032445 0.119848 0.179589 0.164240 -0.043652 0.020389 0.047092 0.094236 0.116267 -0.035936 0.155206 0.107422 -0.005142 -0.059549 0.322080 -0.057313 -0.069079 -0.015886 0.152295 0.127300 -0.018228 -0.013766 0.025152
|
||||
0.010241 -0.012175 -0.071132 -0.010497 0.020024 0.062831 -0.040007 0.039616 -0.072378 0.035685 -0.031690 0.021640 0.001871 0.085038 0.053829 -0.017137 0.002122 0.049195 0.087728 -0.000013 -0.026558 0.022211 -0.058457 0.166112 0.018559 -0.012076 -0.001099 0.016641 -0.019024 0.008824 0.091310 -0.040634 0.020518 0.051538
|
||||
0.005987 -0.016904 -0.065972 -0.010944 0.009374 0.084910 -0.052019 0.031735 -0.073636 0.036433 -0.016286 0.003295 0.010276 0.085334 0.068926 -0.031102 -0.004326 0.037220 0.078248 0.028015 -0.030765 0.043535 -0.024633 0.098897 0.024402 0.055196 -0.037672 -0.019356 0.027747 -0.077052 0.014090 -0.032531 0.010393 0.037211
|
||||
0.000485 -0.009792 -0.056592 -0.011803 0.001583 0.104774 -0.061755 0.023501 -0.079032 0.039804 -0.011369 -0.011280 0.024653 0.096826 0.073638 -0.046150 -0.008896 0.030450 0.076726 0.038805 -0.033667 0.064954 0.000900 0.056790 0.020232 0.116360 -0.065525 -0.045163 0.037248 -0.094933 -0.027418 -0.028737 -0.007585 -0.011135
|
||||
0.006045 -0.001260 -0.070490 -0.009554 0.009933 0.083302 -0.054060 0.013771 -0.080073 0.047390 -0.001836 -0.009542 0.020186 0.082461 0.052009 -0.037023 0.003870 0.028911 0.066158 0.019377 -0.061487 0.042407 -0.017089 0.104383 0.041935 0.073886 -0.019325 -0.089932 0.029586 -0.070428 0.024956 -0.057337 0.001123 -0.019238
|
||||
0.011242 -0.005679 -0.074412 -0.010055 0.015755 0.060586 -0.047635 0.003394 -0.091558 0.044380 -0.005161 -0.022962 0.015788 0.070458 0.028218 -0.036979 0.017605 0.028455 0.076360 -0.013275 -0.085415 0.018537 -0.048259 0.163691 0.057659 0.026190 0.028125 -0.133961 0.018631 -0.042571 0.090055 -0.092227 0.027934 -0.057308
|
||||
0.036225 -0.071534 0.000459 -0.046818 0.009337 -0.083866 -0.046178 -0.015273 -0.060642 -0.002822 -0.089257 0.012351 -0.039814 -0.035023 -0.019465 0.040371 -0.061960 0.039386 -0.094567 -0.024135 0.027052 0.059938 0.091591 0.001979 -0.040503 -0.107158 0.083539 -0.101314 0.013352 -0.110938 0.043372 0.129228 0.064399 -0.008668
|
||||
0.044367 -0.059525 0.015036 -0.064121 -0.018004 -0.082253 -0.045795 -0.026919 -0.070584 -0.018065 -0.070391 -0.010245 -0.029751 -0.046835 -0.028796 0.042482 -0.143375 0.002483 -0.181009 -0.070951 0.071994 -0.003359 0.199769 -0.097579 -0.087064 0.021258 0.050995 -0.107355 -0.017802 0.053633 0.017380 0.028065 0.073668 -0.008871
|
||||
0.043601 -0.049111 0.016832 -0.062722 -0.017690 -0.081388 -0.042392 -0.021628 -0.089830 -0.013515 -0.066851 -0.008770 -0.034597 -0.040346 -0.030496 0.037791 -0.131468 -0.012470 -0.162906 -0.049426 0.049875 -0.008340 0.154951 -0.079562 -0.052199 0.026980 0.057094 -0.092234 -0.013567 0.075758 0.017100 -0.027829 0.047598 -0.032337
|
||||
0.048275 -0.038263 0.001498 -0.051199 0.023312 -0.088975 -0.041336 0.005000 -0.095004 -0.003208 -0.060932 0.022466 -0.042236 0.005051 -0.023424 0.039786 -0.019435 -0.003108 -0.056234 0.026974 -0.047324 0.009209 -0.052575 0.062674 0.041095 -0.089544 0.071103 -0.050484 0.024541 0.021517 -0.001177 -0.034659 0.017784 -0.145986
|
||||
0.041785 -0.047523 -0.029972 -0.046078 0.035909 -0.097136 -0.056514 0.005071 -0.089750 -0.024247 -0.085315 0.019769 -0.065103 -0.012747 -0.033756 0.024734 -0.014857 0.011973 -0.055355 0.034763 -0.048361 0.024915 -0.036487 0.063963 0.019368 -0.114169 0.095381 -0.092460 0.033839 -0.059458 -0.018405 0.004700 0.059549 -0.091842
|
||||
0.044692 -0.060996 -0.030403 -0.035242 0.035271 -0.092818 -0.058749 -0.002830 -0.079239 -0.025316 -0.092148 0.019888 -0.062782 -0.020325 -0.029536 0.030127 -0.024623 0.028330 -0.061266 0.010928 -0.030107 0.035277 -0.006948 0.059755 -0.013675 -0.115893 0.086825 -0.110997 0.020747 -0.090179 -0.023240 0.046759 0.032906 -0.074567
|
||||
0.053635 0.024179 0.003976 -0.054942 0.021919 -0.085630 -0.040517 0.019222 -0.098845 -0.002500 -0.058854 0.005767 -0.030366 0.004222 -0.039686 -0.024247 -0.003591 -0.045881 -0.051159 0.028487 -0.059601 0.002317 -0.116937 0.048023 0.058109 -0.042187 -0.022689 0.101089 -0.085146 -0.047060 0.001347 -0.071920 -0.053922 -0.029344
|
||||
0.050654 0.043811 0.016440 -0.071448 -0.018825 -0.083915 -0.050552 0.001389 -0.099731 -0.011661 -0.055724 -0.038660 -0.011181 -0.044498 -0.046592 -0.061600 -0.110975 -0.092581 -0.146722 -0.054465 0.022640 -0.027495 0.052884 -0.124647 -0.044100 0.090185 -0.056166 0.049620 -0.094099 0.024798 -0.007076 -0.078109 -0.056294 0.024809
|
||||
0.056727 0.056174 0.016328 -0.067723 -0.018273 -0.089164 -0.053246 -0.004474 -0.088775 -0.016960 -0.055755 -0.049357 -0.003393 -0.057029 -0.057944 -0.078602 -0.116320 -0.116419 -0.135346 -0.065112 0.031714 -0.026089 0.053926 -0.146501 -0.088218 0.112238 -0.073090 0.019614 -0.073331 -0.010391 -0.016316 -0.081091 -0.101346 0.033206
|
||||
0.053863 0.070189 0.002551 -0.055065 0.015300 -0.088786 -0.052051 0.006288 -0.079362 0.003819 -0.069097 -0.028654 -0.012574 -0.043552 -0.060415 -0.082841 -0.030205 -0.090290 -0.056654 -0.010515 -0.026259 0.018692 -0.060457 -0.049003 -0.020092 0.013016 -0.079443 0.055920 -0.044095 -0.132379 -0.069462 -0.028557 -0.081805 -0.014368
|
||||
0.054487 0.052156 -0.025662 -0.043672 0.038234 -0.097652 -0.061550 0.009141 -0.091552 -0.018906 -0.073348 -0.023368 -0.035182 -0.019426 -0.067143 -0.077651 0.000840 -0.064016 -0.050794 0.012015 -0.070276 -0.009742 -0.116913 0.009872 0.004210 -0.020941 -0.054064 0.033929 -0.041700 -0.124288 -0.068147 -0.077671 -0.106441 -0.047888
|
||||
0.053071 0.036339 -0.025735 -0.047996 0.041005 -0.100444 -0.057829 0.013845 -0.101921 -0.018419 -0.077645 -0.013513 -0.041059 -0.010444 -0.059771 -0.061024 0.005044 -0.056949 -0.052826 0.026317 -0.078409 -0.007588 -0.129995 0.033848 0.029133 -0.047594 -0.035022 0.047235 -0.058100 -0.091996 -0.054179 -0.066075 -0.078103 -0.046683
|
||||
-0.031460 -0.013987 -0.149818 0.080350 0.020681 -0.057818 0.011712 -0.001008 0.061313 0.017201 0.005085 0.074818 -0.047190 0.015967 -0.029569 0.136405 0.070269 -0.039349 0.090760 -0.058563 0.065843 0.078259 -0.020924 -0.163454 -0.040312 -0.104189 0.069961 0.035861 0.064290 0.042196 0.239137 -0.024848 0.084332 -0.100068
|
||||
-0.002327 -0.017521 -0.139425 0.070865 0.048305 0.079434 -0.035213 -0.026484 0.062642 0.070813 -0.027307 0.065759 -0.050332 -0.068535 -0.050488 0.065260 -0.034808 0.001184 0.022065 -0.018875 0.057119 -0.010911 -0.054658 -0.020400 -0.028406 -0.025774 0.004056 0.020749 -0.040770 0.067283 0.024925 0.111530 0.079035 -0.073362
|
||||
-0.000584 -0.011118 -0.122177 0.051211 0.037283 0.151535 -0.057755 -0.043066 0.075106 0.105702 -0.045195 0.033969 -0.051730 -0.086152 -0.035502 0.008973 -0.086193 0.022393 -0.032203 -0.010625 0.037487 0.012267 -0.063710 0.003409 0.012534 0.018225 -0.069447 -0.045926 -0.057301 0.086177 -0.125110 0.108154 0.062487 -0.033929
|
||||
0.000480 -0.003086 -0.124476 0.057127 0.033887 0.149034 -0.061112 -0.048529 0.070950 0.110661 -0.040134 0.025767 -0.039288 -0.067746 -0.045629 0.005133 -0.081370 0.017086 -0.037104 -0.021039 0.008034 -0.013678 -0.051069 0.002511 0.032016 0.008503 -0.097044 -0.037501 -0.056407 0.051508 -0.144414 0.076356 0.059066 -0.021945
|
||||
-0.000559 0.003997 -0.124027 0.053465 0.037579 0.149996 -0.049979 -0.055144 0.070483 0.113771 -0.040946 0.023671 -0.042610 -0.080241 -0.054001 0.002411 -0.078521 0.019903 -0.057589 -0.015049 -0.008310 -0.005005 -0.034476 0.006235 0.033286 0.024151 -0.120019 0.018377 -0.072419 0.051602 -0.134832 0.064370 0.037586 0.038711
|
||||
-0.000565 0.012494 -0.144971 0.071663 0.048838 0.081814 -0.029624 -0.048941 0.058314 0.080172 -0.010279 0.030880 -0.020393 -0.055948 -0.087529 0.040786 -0.005034 0.001085 -0.046251 -0.044062 -0.050526 -0.012975 0.003798 -0.023311 0.028814 -0.002381 -0.096432 0.041930 -0.029305 0.030971 -0.027834 0.007430 -0.084175 0.004963
|
||||
-0.024116 0.030827 -0.152081 0.079655 0.025107 -0.047327 0.011967 -0.026416 0.054183 0.040100 0.018945 0.030843 -0.004122 0.017941 -0.093164 0.086158 0.096071 -0.024027 0.018254 -0.066233 -0.099375 0.036822 0.073623 -0.184943 0.021773 -0.066513 -0.059088 0.109738 0.066223 -0.037492 0.178023 -0.104653 -0.133898 -0.056362
|
||||
-0.091307 0.021185 0.005452 0.093079 0.004462 -0.137494 0.027255 0.016193 0.035027 0.043270 0.017597 -0.052594 0.050678 -0.017621 -0.100552 0.045091 0.137042 -0.020604 0.004831 0.003501 -0.076423 -0.058265 0.083175 0.046838 -0.041851 0.066991 0.022783 0.025688 0.023265 -0.031676 0.073439 -0.072413 -0.208999 0.025261
|
||||
-0.117606 0.016526 0.081068 0.093572 -0.000820 -0.179734 0.034199 0.055206 0.036610 0.045268 0.036467 -0.091173 0.086052 0.019906 -0.077335 0.021613 0.112294 -0.024854 0.001051 -0.024213 0.006556 -0.070798 0.044003 0.109037 -0.026106 0.108415 0.052460 -0.013149 -0.012349 -0.024464 -0.073565 -0.035321 -0.006109 0.085182
|
||||
-0.119255 0.013200 0.094025 0.092040 -0.002146 -0.181868 0.034095 0.066850 0.038987 0.042822 0.035705 -0.088591 0.084897 0.040278 -0.058173 0.015843 0.087899 -0.013908 0.006996 -0.042503 0.059924 -0.066579 0.004384 0.103210 -0.024232 0.105557 0.087612 -0.040335 0.005558 -0.016772 -0.091889 -0.007373 0.029448 0.052985
|
||||
-0.116290 0.010377 0.087191 0.091107 -0.002629 -0.185149 0.030103 0.072827 0.039401 0.035673 0.032489 -0.068554 0.067030 0.041143 -0.052476 0.026493 0.086061 -0.007730 0.013083 -0.014025 0.109392 -0.074283 -0.017676 0.099392 -0.055753 0.103876 0.090079 -0.044614 -0.019969 0.012981 -0.056802 -0.005694 0.062207 0.013923
|
||||
-0.088956 0.002770 0.014073 0.083735 0.000259 -0.146666 0.024624 0.057239 0.040658 0.024938 0.022137 -0.006530 0.016834 0.033547 -0.054639 0.066908 0.066243 -0.006261 0.048043 0.020086 0.160704 -0.046164 -0.050282 0.007988 -0.125443 0.055461 0.087275 -0.006875 -0.007782 0.054046 0.083770 0.004746 0.021062 -0.066056
|
||||
-0.035780 -0.013571 -0.129727 0.075906 0.019981 -0.033424 -0.002959 -0.000563 0.050482 0.021935 0.002944 0.075011 -0.045732 0.001801 -0.047564 0.120066 0.054278 -0.033545 0.090304 -0.063131 0.074862 0.062176 -0.020091 -0.117017 -0.059383 -0.080761 0.087965 0.081966 0.076590 0.065730 0.239584 -0.057628 0.009591 -0.117312
|
||||
-0.008820 -0.007627 -0.158056 0.055203 0.017956 0.077099 -0.075129 -0.007191 0.032083 0.085832 -0.010026 0.034463 -0.026295 -0.045494 -0.041653 0.027555 -0.049879 0.009335 0.083404 -0.078297 0.040478 -0.117472 0.024219 0.074484 -0.004484 -0.034318 -0.038895 -0.061118 -0.048430 -0.005360 -0.051358 0.010804 0.052828 0.036864
|
||||
-0.007737 -0.003256 -0.151791 0.055268 0.019966 0.087559 -0.078741 -0.018450 0.030698 0.091713 -0.015450 0.020864 -0.015028 -0.032981 -0.052983 0.014209 -0.059863 0.016094 0.069445 -0.092531 0.010370 -0.126361 0.028344 0.071716 0.009341 -0.033236 -0.067826 -0.044003 -0.045043 -0.018573 -0.090383 0.001302 0.035380 0.033187
|
||||
-0.007412 0.002548 -0.158757 0.061181 0.018661 0.073976 -0.071983 -0.025639 0.028395 0.091940 0.000206 0.022257 -0.009808 -0.034953 -0.058116 0.017318 -0.038657 0.005313 0.049993 -0.087077 -0.010529 -0.130728 0.062698 0.069370 0.019104 -0.031545 -0.097670 0.007100 -0.077453 -0.016369 -0.071504 -0.037358 0.022404 0.093558
|
||||
-0.032512 0.028427 -0.133433 0.078989 0.025468 -0.028533 0.004691 -0.021006 0.046417 0.047024 0.018770 0.037960 0.000477 0.007323 -0.092459 0.082200 0.086554 -0.011680 0.010444 -0.068859 -0.057549 0.014886 0.067619 -0.129370 0.001837 -0.039609 -0.014336 0.136787 0.056466 0.005406 0.166161 -0.086177 -0.153931 -0.065626
|
||||
-0.106396 0.012082 0.093804 0.073458 0.006325 -0.122138 0.053986 0.020569 0.052258 0.097040 -0.030117 -0.063935 0.029007 -0.048173 -0.073480 0.006487 0.079422 -0.018318 -0.098277 0.085998 -0.045678 0.124596 -0.056062 -0.009915 0.115255 0.082543 0.043762 0.055274 0.033651 0.018777 -0.097186 0.025652 0.107246 0.082007
|
||||
-0.108266 0.013196 0.107352 0.073267 0.005501 -0.118182 0.053900 0.026988 0.059629 0.098678 -0.033463 -0.059244 0.030748 -0.021010 -0.048874 -0.003174 0.046149 -0.004115 -0.096188 0.073125 -0.013743 0.137679 -0.084938 -0.025411 0.119975 0.081742 0.078842 0.041866 0.054237 0.044745 -0.113358 0.068330 0.125398 0.071168
|
||||
-0.105677 0.013856 0.100276 0.068541 0.007179 -0.120756 0.052194 0.033207 0.056095 0.092773 -0.030246 -0.037497 0.018805 -0.020756 -0.042271 0.009948 0.041864 0.000654 -0.101674 0.096004 0.022386 0.126403 -0.085055 -0.027232 0.087129 0.079991 0.091934 0.037413 0.035609 0.080869 -0.077055 0.068696 0.147811 0.051447
|
||||
0.200300 0.206381 0.037666 -0.062044 0.105603 0.039287 0.129443 -0.026108 -0.006145 0.008167 -0.180506 -0.005344 -0.154896 0.029728 -0.078524 -0.093022 0.282292 0.094500 -0.012038 -0.075772 -0.007254 0.075631 -0.021364 -0.032209 0.106197 -0.033075 -0.057528 -0.036911 -0.079279 -0.070271 0.134924 0.050103 0.176129 0.174669
|
||||
0.174909 0.262626 0.001650 -0.050760 0.056767 0.046800 0.116679 0.016697 0.036953 -0.001587 -0.129708 -0.018479 -0.077744 0.017170 -0.006678 -0.084015 0.149428 0.003802 0.023948 -0.034466 -0.037293 0.015672 -0.028566 0.018799 0.029636 -0.058638 0.022368 -0.067504 -0.036674 -0.038199 0.101980 -0.006688 0.114199 0.092127
|
||||
0.145419 0.271569 -0.034873 -0.044417 -0.005370 0.054598 0.106804 0.058877 0.047845 -0.006222 -0.038196 -0.028624 0.051275 0.021585 -0.019610 -0.032440 -0.042228 -0.040054 0.010931 -0.080129 -0.032979 -0.037624 0.046956 0.005674 -0.043045 -0.070160 0.084897 -0.059861 0.011866 -0.020727 0.016502 -0.105536 0.054309 0.077813
|
||||
0.121784 0.205203 -0.040615 -0.025224 -0.078037 0.055910 0.087096 0.101567 0.032281 0.047114 0.067450 -0.029754 0.115044 0.004978 -0.002689 0.033261 -0.183060 -0.118272 -0.032756 -0.083449 -0.036678 -0.109978 0.089839 -0.018425 -0.047398 -0.071371 0.132785 -0.079312 0.053450 -0.016013 -0.087251 -0.136778 0.010646 0.048749
|
||||
0.133914 0.102310 -0.020287 0.004986 -0.141709 0.003779 0.009098 0.120102 -0.047440 0.060693 0.150862 0.032856 0.123342 0.036340 0.053349 0.081323 -0.106337 -0.089787 -0.055918 0.076288 0.022085 -0.032767 0.044374 -0.049343 -0.054487 -0.077724 0.094554 -0.099233 0.070220 0.032782 -0.134028 -0.176615 0.058256 -0.110604
|
||||
0.136156 0.012237 0.028350 0.055205 -0.144687 -0.046150 -0.025253 0.036940 -0.082417 0.046931 0.140621 0.125137 0.070684 0.035326 0.117788 0.115735 0.014819 -0.011779 -0.095812 0.103471 0.027698 0.015841 -0.045732 -0.086235 -0.100680 -0.049399 -0.026388 -0.094643 0.100905 0.044076 -0.187605 -0.094315 0.003539 -0.202719
|
||||
0.096825 -0.052123 0.057933 0.114355 -0.098038 -0.121617 -0.055895 -0.022068 -0.059251 -0.000028 0.053843 0.302609 -0.066475 0.059366 0.163306 0.029775 0.086102 0.037617 -0.004275 0.136346 -0.030689 0.070476 -0.032601 -0.031896 -0.043260 -0.110607 -0.181097 0.120911 0.098080 0.036017 -0.155625 -0.014093 -0.023635 -0.063091
|
||||
0.053280 -0.060018 0.037506 0.137972 0.011258 -0.178318 -0.023102 -0.051378 -0.072595 -0.086067 0.000313 0.285580 -0.051029 -0.025127 0.085024 -0.036423 0.014116 0.013590 0.100603 0.056762 -0.064465 -0.011526 0.015876 -0.005954 0.118192 -0.107172 -0.166406 0.124543 0.111421 0.028985 -0.074010 0.076955 -0.032659 0.141702
|
||||
0.045574 -0.013216 0.032142 0.093571 0.050167 -0.171049 0.052834 -0.067576 -0.122586 -0.148784 -0.054492 0.096339 -0.018259 -0.062274 -0.040250 -0.143567 -0.086938 0.063209 0.139416 -0.029860 -0.021312 -0.063067 0.038636 0.074870 0.004951 -0.015358 -0.118334 -0.004443 0.136427 0.102426 0.070536 0.141456 -0.079749 0.125498
|
||||
0.059666 0.033773 0.011922 0.066781 0.019188 -0.136499 0.012310 -0.053448 -0.112842 -0.162605 -0.033516 -0.083470 0.040366 -0.073418 -0.073634 -0.134124 -0.183406 0.070520 0.140600 -0.024180 0.078113 -0.014717 -0.030918 0.055699 -0.059861 -0.024527 -0.045187 -0.018538 0.147098 0.098916 0.092276 0.126182 -0.051521 0.096536
|
||||
0.102008 0.062652 0.002559 0.033904 -0.034709 -0.028794 -0.029963 -0.001155 -0.088109 -0.139233 -0.017772 -0.206193 0.050147 -0.078321 -0.066908 -0.098039 -0.008521 0.078240 0.003116 -0.115075 0.170119 0.063555 0.042319 0.085075 -0.085497 -0.000332 -0.058397 -0.013971 0.095261 -0.001791 0.088311 0.169500 -0.076125 -0.011915
|
||||
0.130156 0.030796 -0.028981 0.037504 -0.110897 0.045667 -0.073986 0.097997 -0.071465 -0.114585 0.024864 -0.164295 0.078517 -0.068363 -0.064291 -0.015782 0.086141 -0.030675 -0.057981 -0.071696 0.160759 0.037941 0.106627 -0.011196 0.036540 -0.017581 -0.051521 0.093436 -0.051622 -0.102102 0.046722 0.156601 0.065388 -0.029184
|
||||
0.168973 -0.048346 -0.054128 0.028599 -0.159253 0.088824 -0.040072 0.101158 -0.015747 -0.066487 0.069651 -0.136555 0.131030 -0.095612 0.005098 0.051930 0.141634 -0.059902 -0.077737 -0.001406 0.060549 0.016779 0.073755 -0.079590 0.025474 0.002819 -0.008349 0.092361 -0.102785 -0.130624 0.011078 0.134838 0.105198 -0.029608
|
||||
0.196868 -0.140552 -0.038053 0.030363 -0.136280 0.109791 0.082851 0.031947 -0.010593 0.024018 0.071666 -0.120218 0.158965 -0.056053 -0.005157 0.089872 0.082277 -0.037538 -0.032307 -0.004000 -0.077070 -0.047653 -0.036306 -0.059558 -0.007532 0.012245 0.064610 0.069522 -0.100870 -0.125037 -0.000483 0.105122 0.004543 -0.031563
|
||||
0.220722 -0.189143 -0.019812 0.050177 -0.022114 0.078768 0.141034 -0.059095 -0.020072 0.062754 0.030385 -0.038935 0.084110 -0.009296 0.007037 0.034972 0.032848 -0.022511 0.007807 0.025446 -0.154512 -0.055275 -0.065423 0.057532 0.001583 -0.000069 0.148740 0.038380 -0.084950 -0.055361 -0.005477 0.024714 -0.104505 -0.036786
|
||||
0.226640 -0.179498 0.049226 0.043510 0.105148 -0.008538 0.147024 -0.091442 -0.062929 0.109845 0.005074 0.058119 0.017767 0.089994 -0.044924 -0.062390 -0.007394 0.037390 0.010439 -0.015520 -0.064619 0.042369 -0.058993 0.055481 -0.000104 0.024385 0.166181 0.000132 -0.087429 0.021365 -0.001406 -0.118401 -0.061089 0.025621
|
||||
0.236683 -0.154942 0.112382 0.048015 0.188712 -0.046365 0.145337 -0.144361 -0.102570 0.165949 -0.050088 0.165649 -0.012631 0.142407 -0.082270 -0.087023 0.021488 0.106059 -0.048916 -0.157005 0.118604 0.107512 -0.049746 -0.120962 0.092471 0.115214 0.092679 -0.156215 -0.070360 0.083441 -0.097703 -0.215489 -0.072382 0.027100
|
||||
0.098748 -0.110249 0.040632 0.106294 0.034691 0.030852 -0.096378 -0.114844 0.076385 0.054995 -0.090801 -0.147677 0.060390 0.097064 -0.014503 -0.075035 -0.111119 -0.058225 -0.072715 0.091030 0.140176 -0.115472 -0.124135 0.002804 -0.034399 0.069021 -0.071552 0.126436 0.208688 -0.064774 0.167890 0.023198 0.065838 -0.115322
|
||||
0.045293 -0.089374 0.018089 0.085862 0.012661 -0.008385 -0.067383 -0.079743 -0.026056 0.045936 -0.103235 -0.087935 0.099554 0.036145 -0.034997 -0.024818 -0.088738 0.005542 -0.088960 0.117580 0.051157 -0.047818 -0.031283 0.050240 -0.019133 0.069263 -0.073513 0.173658 0.080920 -0.038285 0.140359 -0.084856 0.069031 -0.038620
|
||||
-0.004362 -0.070045 -0.005441 0.028721 -0.035581 0.008714 -0.023807 -0.055672 -0.056772 0.019390 -0.051096 -0.030542 0.150701 -0.048870 -0.050577 0.013535 -0.059832 0.055515 -0.059955 0.062922 0.041041 0.043294 -0.006914 0.139734 -0.004182 0.051132 -0.044750 0.176739 0.008876 -0.029887 0.077004 -0.117767 0.056034 -0.030393
|
||||
-0.046908 -0.055997 -0.030801 -0.012931 -0.095239 0.007226 0.007382 -0.049966 -0.065128 -0.036849 -0.026556 0.024951 0.158839 -0.114967 -0.061207 0.047650 -0.045883 0.050290 0.011314 0.022440 -0.012041 0.017932 0.042840 0.074523 0.063977 0.076758 -0.024231 0.082162 -0.002699 -0.024259 0.019286 -0.035404 0.016136 -0.056954
|
||||
-0.084798 -0.042180 -0.051749 -0.022690 -0.163003 -0.027359 0.032238 -0.030906 -0.064720 -0.018269 -0.007672 0.068355 0.116840 -0.135774 -0.081552 0.048596 -0.080784 0.017814 0.146383 0.045115 -0.164446 -0.039490 0.025936 0.042829 0.216153 0.010996 0.006383 0.024871 0.002893 -0.034911 -0.009591 0.024318 -0.029688 -0.025116
|
||||
-0.106381 0.037472 -0.062633 -0.029746 -0.165792 -0.010239 0.012509 -0.033520 0.075020 0.048760 0.008410 0.182188 0.245250 0.004609 -0.187742 -0.114282 -0.018821 0.047174 0.096399 0.074864 -0.071890 0.002693 0.007320 0.000897 0.070591 0.012206 -0.053249 -0.072801 0.098886 -0.111274 0.027638 0.030143 0.068139 0.024639
|
||||
-0.081730 0.078091 -0.032084 -0.016937 -0.094799 -0.034978 -0.035412 -0.016776 0.073337 0.010988 -0.014905 0.221079 0.199761 -0.067149 -0.096254 -0.041963 0.032786 0.009098 0.047313 -0.051221 -0.021669 0.051603 0.007726 -0.033954 -0.118397 0.100014 -0.080501 -0.162248 0.076284 -0.144372 0.005300 0.030886 0.089261 -0.018362
|
||||
-0.032591 0.093392 0.005011 0.033984 -0.033653 -0.056018 -0.045205 -0.034382 0.054241 0.038895 -0.028006 0.147818 0.118347 -0.066122 -0.022476 0.025348 -0.024972 -0.006291 0.042302 -0.124172 0.007567 0.044630 0.010710 0.049093 -0.093271 0.092758 -0.055927 -0.139825 0.084283 -0.141690 0.001749 -0.018718 0.034520 -0.013745
|
||||
0.025131 0.111171 0.052338 0.093959 0.036120 -0.076090 -0.055111 -0.055018 0.028419 0.039071 -0.021446 0.070711 -0.045120 0.015776 0.119003 0.157191 -0.056194 -0.037864 -0.019407 -0.101495 -0.025226 -0.020203 0.081456 0.053677 0.018315 0.139230 -0.090725 -0.024605 0.076010 -0.142354 0.011727 -0.028982 0.009696 0.010824
|
||||
0.086343 0.128544 0.089920 0.151910 0.118411 -0.058267 -0.085331 -0.086356 0.086411 0.023158 -0.022226 -0.036163 -0.177136 0.077261 0.277540 0.318083 -0.140120 -0.082366 -0.088998 -0.072522 -0.066982 0.005449 0.106803 0.086831 0.077782 0.142782 -0.071544 0.132130 0.111582 -0.160749 0.004996 0.042392 -0.012883 0.064412
|
||||
-0.061540 0.002620 -0.073689 0.003550 -0.071570 -0.007284 0.013967 -0.001633 -0.094799 -0.008264 -0.030895 0.022099 0.055730 0.034688 -0.025540 -0.038442 -0.002687 -0.049120 0.053353 0.026489 0.022921 0.048577 -0.071688 0.080905 0.064980 0.013782 -0.014355 -0.070959 -0.107091 0.226291 0.009386 0.025020 -0.005604 -0.092437
|
||||
-0.083267 -0.013381 -0.104616 -0.054605 -0.053350 -0.040950 0.035114 0.002258 -0.090956 -0.033881 -0.040826 0.018097 0.028479 0.074550 0.001071 0.021358 0.041581 -0.040821 0.048402 0.008007 0.052241 0.038045 -0.031619 0.029420 0.021501 0.017835 -0.011740 -0.040020 -0.113478 0.098608 -0.030604 0.032750 0.004352 -0.062761
|
||||
-0.112570 -0.029556 -0.131694 -0.107775 -0.048902 -0.072433 0.059086 0.003800 -0.085443 -0.052929 -0.057306 0.008400 0.005223 0.134826 0.035720 0.064559 0.065656 -0.055342 0.042012 0.015993 0.045317 0.026565 0.036061 -0.016830 -0.006164 0.013784 -0.005233 0.023644 -0.106323 0.001697 -0.058936 0.048287 0.020797 -0.018860
|
||||
-0.138208 -0.042880 -0.154716 -0.161145 -0.036682 -0.087614 0.078138 -0.004009 -0.085960 -0.078308 -0.075158 -0.013667 -0.009818 0.193081 0.069946 0.112698 0.091929 -0.063611 0.052582 0.024224 0.037179 0.031363 0.096072 -0.069509 -0.079675 0.025210 -0.001654 0.058541 -0.103434 -0.086341 -0.084715 0.091389 0.038254 0.015236
|
||||
-0.071614 -0.025433 -0.079555 -0.044231 -0.056001 0.003353 0.020448 0.039313 -0.034449 0.021201 -0.079939 0.028644 -0.024787 0.188439 0.060152 0.035784 0.042994 0.023862 -0.002200 -0.094819 -0.024939 0.021039 0.009160 -0.055080 -0.021112 -0.045149 -0.025621 0.216443 -0.029294 0.072591 -0.079226 -0.017757 0.067523 0.075291
|
||||
-0.072195 -0.021031 -0.121170 -0.072247 -0.036905 -0.070614 0.012662 0.040015 -0.043028 0.012293 -0.078126 -0.030670 -0.033902 0.118408 0.040616 0.048834 0.050552 0.038276 0.008483 -0.058060 -0.034078 -0.041976 -0.009228 -0.045368 -0.013261 -0.068158 0.022561 0.132560 0.004265 -0.025965 -0.059467 -0.019725 0.063179 0.097074
|
||||
-0.083844 -0.027702 -0.148124 -0.094158 -0.023167 -0.103209 0.009646 0.023882 -0.042179 0.000862 -0.043166 -0.071528 -0.042289 0.065372 0.035839 0.017436 0.064917 0.010734 0.049860 -0.058510 -0.037633 -0.085134 -0.033890 -0.026309 -0.004119 -0.070958 0.080402 -0.027002 0.048232 -0.088265 -0.053340 0.014549 0.001863 0.085118
|
||||
-0.077701 -0.032876 -0.116524 -0.069424 -0.039070 -0.071006 0.000686 0.000032 -0.060440 -0.009999 -0.033027 -0.093775 -0.041865 0.049000 0.019074 0.068912 0.042780 0.002562 0.084029 -0.024194 0.004517 -0.150073 -0.009540 -0.075583 0.001970 -0.012793 0.069308 -0.097943 0.026051 -0.040273 -0.046429 -0.037232 -0.075387 0.056425
|
||||
-0.073314 -0.025474 -0.086713 -0.034135 -0.056786 -0.033425 -0.010800 -0.006306 -0.083626 -0.019529 -0.023848 -0.103377 -0.072124 0.027925 0.038858 0.096703 0.015690 0.004385 0.117400 -0.019385 0.068925 -0.151549 0.006375 -0.118295 0.070831 0.037136 0.042043 -0.099400 -0.017748 0.020165 -0.062059 -0.092214 -0.152389 0.036151
|
||||
0.044589 -0.132278 -0.016993 0.083882 0.043778 -0.034594 -0.072011 0.039110 -0.046069 -0.040587 0.123917 -0.047575 -0.122385 -0.035400 -0.024195 -0.012518 0.013652 0.031937 0.019659 -0.001715 0.023088 -0.000309 -0.031436 0.022571 0.019611 -0.006564 0.012784 0.083317 -0.104572 0.062104 0.000647 -0.056669 0.044672 0.004338
|
||||
0.016329 -0.109007 -0.005045 0.067630 0.019108 -0.002645 -0.071902 0.025076 0.007237 -0.051092 0.091200 -0.100586 -0.101496 -0.065336 -0.015376 0.013166 0.008475 0.063623 0.047215 0.020495 -0.013691 0.030534 0.016318 -0.010397 -0.023315 0.035663 -0.023907 0.042304 -0.100402 0.062642 -0.013752 0.012255 0.032336 0.012548
|
||||
0.005789 -0.090540 0.006017 0.048376 -0.000562 -0.003770 -0.064679 0.019118 0.018765 -0.056858 0.072645 -0.105570 -0.099008 -0.063197 -0.036400 0.020176 0.006068 0.073862 0.022493 -0.014200 -0.022956 0.011319 0.028866 -0.059130 0.024068 0.043375 -0.037957 0.009386 -0.070164 0.052847 -0.054076 0.043887 0.014360 -0.001251
|
||||
0.001863 -0.067279 -0.004424 0.022537 -0.021339 0.004205 -0.062496 0.031100 0.053349 -0.011934 0.065752 -0.132376 -0.118604 -0.084354 0.018198 0.004240 -0.004340 0.003937 0.017652 -0.050848 0.024164 -0.013728 -0.034087 -0.019119 0.077051 0.006899 0.013968 -0.043247 -0.030695 0.066883 -0.075176 -0.002876 0.013993 -0.016796
|
||||
0.005001 -0.090158 -0.011976 0.055472 -0.011104 -0.019645 -0.061557 0.044266 0.027270 -0.030345 0.068012 -0.132701 -0.097672 -0.062167 -0.026502 -0.015816 -0.002765 0.014242 0.048233 0.014931 0.013361 0.021076 -0.002662 -0.047362 0.074697 -0.011056 0.032939 0.005948 -0.057100 0.111103 -0.023048 -0.033487 -0.004465 0.045128
|
||||
0.012182 -0.107450 -0.027021 0.065245 0.008961 -0.027772 -0.074458 0.050282 0.025229 -0.041151 0.086397 -0.119923 -0.099702 -0.055513 -0.011844 -0.012761 -0.000561 0.025024 0.077500 0.042190 0.004065 0.022608 -0.020626 -0.014056 0.026667 -0.025100 0.039847 0.066569 -0.072695 0.106463 0.007401 -0.072767 0.005736 0.071139
|
||||
-0.009462 0.065949 -0.034941 0.008894 -0.064655 -0.020166 -0.060698 0.028627 0.066320 0.002801 0.040050 0.031191 -0.045838 0.048249 0.022311 -0.088733 0.012498 0.012592 -0.012528 -0.038889 0.028963 -0.007368 -0.006653 0.082948 -0.006713 0.005645 -0.025498 -0.054304 -0.022462 0.175263 -0.039024 -0.042552 -0.094353 -0.013449
|
||||
0.000399 0.075432 -0.010525 0.041532 -0.020281 -0.016042 -0.094246 0.065468 0.057754 -0.013075 0.035003 0.037001 -0.063322 0.051499 0.004328 -0.061380 -0.015256 0.001025 -0.051518 0.003395 -0.032991 0.024094 0.008757 0.054130 -0.053594 0.010905 -0.022832 -0.025114 -0.048340 0.149929 -0.021867 0.081009 -0.007931 -0.009067
|
||||
0.011378 0.085467 -0.017111 0.041300 -0.001692 -0.039680 -0.104984 0.079709 0.063221 -0.028397 0.048561 0.041353 -0.084814 0.040411 0.000268 -0.038789 -0.000559 -0.008586 -0.044596 0.040237 -0.063474 -0.003204 -0.031149 0.016331 -0.050858 0.018453 -0.008099 -0.080392 -0.015774 0.091864 -0.016377 0.134277 0.049921 -0.027301
|
||||
0.029766 0.102153 -0.038143 0.053924 0.038638 -0.061103 -0.101860 0.090831 0.056649 -0.017724 0.060045 0.040849 -0.108462 0.025297 0.013784 -0.048798 0.017389 -0.036169 -0.049864 0.021916 -0.066484 0.016243 -0.106255 -0.005066 -0.033200 -0.008221 0.050207 -0.137478 0.022810 0.034341 -0.021252 0.120671 0.042481 -0.025859
|
||||
0.006889 0.087347 -0.040353 0.029840 -0.010245 -0.040820 -0.091202 0.072685 0.079209 -0.016224 0.043485 -0.001910 -0.084857 0.044870 -0.001342 -0.071705 -0.002282 -0.026485 -0.039688 0.033741 -0.055799 -0.013397 -0.029281 0.000374 -0.037317 -0.004296 0.042230 -0.104897 0.024080 0.125291 0.011644 0.079126 -0.013272 0.018850
|
||||
-0.000936 0.077182 -0.035678 0.029087 -0.033747 -0.023682 -0.089809 0.060071 0.081219 -0.000659 0.033152 -0.007048 -0.054525 0.054060 -0.010472 -0.078847 -0.000530 -0.009111 -0.033111 0.004942 -0.009483 0.002476 0.026701 0.054112 -0.050766 -0.014615 0.013950 -0.054182 -0.017408 0.176648 0.019946 -0.001332 -0.069141 0.058993
|
||||
-0.053340 -0.049736 0.202485 -0.040699 0.016891 0.098603 -0.079165 0.012530 -0.068702 0.013827 -0.018413 0.064039 -0.096530 -0.107456 -0.034620 0.115038 0.176489 0.048911 0.043125 -0.004140 0.021027 -0.096280 0.063451 0.033838 -0.029605 0.024958 -0.044214 -0.018466 -0.082116 -0.029533 0.007344 -0.061482 0.038981 -0.084020
|
||||
-0.084313 -0.038019 0.077710 -0.058798 0.076335 0.124114 -0.036329 -0.056135 -0.011941 0.019801 -0.032605 0.049799 -0.014743 -0.022984 -0.023983 0.002739 0.115499 0.010250 -0.071667 0.052221 0.028701 -0.018035 0.046885 0.065758 -0.088996 0.058902 0.045509 0.021842 0.012293 -0.058012 -0.054652 -0.028210 -0.045572 0.005237
|
||||
-0.092694 -0.031386 -0.029516 -0.066011 0.056512 0.140318 0.017759 -0.055408 0.042409 -0.001841 -0.047881 0.006271 -0.044880 0.010562 -0.008572 -0.032142 0.031237 0.011784 -0.071950 -0.017154 0.021388 0.094393 -0.059446 -0.036018 -0.074495 0.032641 0.092606 0.062712 0.134488 -0.112228 -0.109084 0.090907 -0.032517 0.032689
|
||||
-0.086068 -0.007082 -0.045041 -0.060765 0.055270 0.132259 0.009008 -0.042025 0.050070 -0.002958 -0.051816 0.001503 -0.066612 -0.017554 -0.020320 -0.047269 0.007336 0.021029 -0.065278 0.045943 0.031788 0.044150 -0.060233 -0.015205 -0.047170 0.032557 0.110315 0.067668 0.142436 -0.112995 -0.095937 0.043696 -0.053263 0.018166
|
||||
-0.089411 0.023741 -0.038912 -0.067964 0.042282 0.140245 0.010622 -0.036806 0.040610 0.006060 -0.017474 0.000163 -0.063926 0.009072 -0.059385 -0.064253 -0.040611 0.016892 -0.098455 0.064721 0.042317 0.071934 -0.068174 -0.023171 -0.006137 0.021292 0.136552 0.086574 0.159669 -0.085905 -0.090037 0.025543 -0.060574 -0.002428
|
||||
-0.078575 0.034575 0.031263 -0.073552 0.040647 0.136747 -0.043737 -0.008796 0.032331 0.016926 -0.029196 0.043721 -0.033823 -0.069883 -0.054957 0.000382 0.001785 -0.066324 -0.031587 0.075610 0.002026 0.123617 -0.016946 -0.073108 0.082295 -0.003377 0.160760 0.045913 0.138259 -0.012841 -0.021037 0.019773 -0.081271 0.003220
|
||||
-0.033366 0.059208 0.160210 -0.064990 0.028624 0.104300 -0.099598 0.045261 -0.039277 0.065556 -0.102912 0.108074 -0.081503 -0.190293 -0.052187 0.075107 0.008671 -0.121671 0.069010 0.122685 -0.035632 -0.012154 0.063158 -0.139158 0.053250 0.013035 0.078006 -0.006941 0.005533 0.101138 0.135668 0.005174 -0.004429 -0.021124
|
||||
-0.092656 0.031357 0.103505 -0.059111 0.068764 0.010312 0.008929 0.034866 0.057992 0.068053 0.014425 0.007778 0.041020 -0.040683 -0.027837 -0.022634 -0.126523 -0.071192 0.073877 0.037044 -0.024998 0.031381 0.000446 -0.063882 0.075465 -0.089846 -0.003293 -0.014744 -0.039966 0.049482 0.125205 -0.021707 -0.015263 0.035730
|
||||
-0.111708 0.016302 0.021802 -0.017327 0.098757 -0.032632 0.102916 -0.004106 0.112659 0.043944 0.086722 -0.075135 0.053748 0.008377 0.026036 -0.051027 -0.181615 0.007593 -0.029718 -0.022786 -0.013286 0.004632 0.013051 -0.001664 0.043884 -0.080356 -0.074392 -0.041220 -0.096235 -0.001700 0.105291 -0.079759 -0.034690 -0.007809
|
||||
-0.106284 -0.022433 0.016803 -0.009022 0.113956 -0.059454 0.115911 -0.012451 0.125340 0.015307 0.082184 -0.057654 0.037795 0.019407 0.065630 -0.026223 -0.104086 0.015953 -0.052260 -0.022874 -0.001840 -0.000797 -0.004680 0.054162 0.031667 -0.086636 -0.106973 -0.052172 -0.115387 -0.039377 0.098135 -0.063370 -0.010368 -0.058260
|
||||
-0.105834 -0.044185 0.028207 -0.010833 0.109847 -0.041639 0.113964 -0.035423 0.117943 0.018785 0.073258 -0.043540 0.048715 0.037758 0.075421 -0.003877 -0.043429 0.013819 -0.039051 -0.084951 -0.018739 0.005618 -0.000400 0.028961 0.006799 -0.081430 -0.141147 -0.095855 -0.105823 -0.040548 0.071096 -0.022040 -0.010334 -0.072087
|
||||
-0.085770 -0.066339 0.119689 -0.034493 0.098418 0.002001 0.025266 -0.023246 0.059661 0.027629 0.052453 0.022351 0.015313 -0.007107 -0.005840 0.096765 0.062508 -0.012640 -0.032725 -0.080090 -0.027756 -0.041996 0.055252 0.063300 -0.038983 -0.076443 -0.130005 -0.083137 -0.110099 -0.085295 0.021676 -0.004858 0.062427 -0.049960
|
||||
-0.063490 -0.034197 0.223953 -0.071609 0.017273 0.072534 -0.070046 0.008472 -0.059151 0.024538 -0.057458 0.054908 -0.069500 -0.108298 -0.024305 0.086168 0.173404 0.023995 0.062833 0.058041 0.036625 -0.084243 -0.007661 0.049316 -0.069261 0.031241 -0.034048 -0.059035 -0.063512 -0.030367 -0.002864 -0.044970 0.061520 -0.067669
|
||||
-0.080995 -0.029362 -0.020969 -0.037152 0.055714 0.092056 0.009933 -0.025303 0.020523 -0.004640 -0.020295 -0.009164 -0.005931 0.018848 0.033915 -0.030364 0.045067 0.004015 0.011173 -0.058507 0.056901 -0.042073 -0.006012 0.046935 -0.107241 0.032777 0.116424 0.038938 0.083070 0.044785 -0.024341 -0.040868 -0.054497 0.021228
|
||||
-0.079570 -0.003619 -0.038468 -0.043009 0.061929 0.088254 0.002999 -0.017741 0.034379 -0.004900 -0.032478 -0.019353 -0.018212 -0.005055 0.014637 -0.048472 -0.001520 0.022877 0.006651 -0.017392 0.069312 -0.058844 -0.004646 0.065142 -0.096265 0.026598 0.135522 0.071861 0.091550 0.032257 -0.016765 -0.075337 -0.064651 0.050908
|
||||
-0.077037 0.036024 -0.029906 -0.041175 0.045056 0.108172 0.001799 -0.013867 0.031473 0.010155 -0.003491 -0.014995 -0.021891 0.005419 -0.006514 -0.067131 -0.050711 0.002908 -0.017700 0.003424 0.063512 -0.037825 -0.008255 0.061508 -0.030670 0.015575 0.161325 0.090053 0.117788 0.091435 -0.010989 -0.096824 -0.085735 0.003260
|
||||
-0.051962 0.043127 0.185753 -0.068488 0.030906 0.083935 -0.070252 0.031192 -0.032752 0.081860 -0.058415 0.100433 -0.075819 -0.159865 -0.059411 0.067034 0.026048 -0.117863 0.048451 0.078422 -0.022589 0.005932 0.109565 -0.086305 0.028208 0.027111 0.068306 -0.018619 -0.000395 0.065584 0.129299 -0.018649 -0.057046 -0.000423
|
||||
-0.110771 0.026821 0.039896 -0.026400 0.073464 0.011366 0.088839 0.010905 0.059433 0.027762 0.038964 -0.069547 0.034358 0.017245 0.035428 -0.063296 -0.129262 0.026781 -0.092055 0.071498 -0.050266 0.045878 -0.036457 -0.040249 0.060855 -0.044906 -0.090430 -0.018843 -0.111822 -0.025148 0.069191 -0.000310 -0.018828 -0.067576
|
||||
-0.109310 -0.015148 0.033856 -0.022173 0.084027 -0.011325 0.100709 0.004099 0.070556 0.012019 0.035921 -0.046262 0.047837 0.012906 0.059339 -0.023335 -0.082080 0.034241 -0.099980 0.038508 -0.057517 0.048531 -0.049704 -0.033707 0.035725 -0.049554 -0.119832 -0.033233 -0.116399 -0.076705 0.057450 0.017861 0.007758 -0.058416
|
||||
-0.105002 -0.041286 0.052806 -0.020899 0.081333 0.007181 0.095687 -0.011183 0.063719 0.009967 0.029662 -0.037522 0.062980 0.038468 0.065127 -0.003635 -0.032995 0.016733 -0.100860 -0.006462 -0.072928 0.073195 -0.048581 -0.059580 0.018777 -0.048728 -0.138328 -0.072245 -0.108275 -0.063238 0.030578 0.066053 0.024802 -0.084883
|
||||
# The variances of the components (eigenvalues) of identity or combined identity and expression model
|
||||
1
|
||||
34
|
||||
6
|
||||
826.213804 695.783596 380.584790 282.861398 209.814481 184.418561 113.076307 104.852653 81.857546 77.095662 71.081802 55.760367 49.883312 39.122009 37.668889 32.916377 31.165932 26.644275 24.233150 21.357573 17.029065 15.432317 13.812689 12.440567 10.213426 9.316734 5.327325 2.526152 1.659451 1.123615 1.015840 0.816193 0.718969 0.582660
|
||||
@@ -0,0 +1,3 @@
|
||||
AUPredictor AU_all_best.txt
|
||||
PDM In-the-wild_aligned_PDM_68.txt
|
||||
Triangulation tris_68_full.txt
|
||||
@@ -0,0 +1,3 @@
|
||||
AUPredictor AU_all_static.txt
|
||||
PDM In-the-wild_aligned_PDM_68.txt
|
||||
Triangulation tris_68_full.txt
|
||||
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.
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