Skip to content

Face Warehouse tensor reduction (HOOSVD) on matlab and C++

Notifications You must be signed in to change notification settings

JuliusSuryaS/face_tensor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

face_tensor

FaceWarehouse tensor reduction and obtaining single face vertices.
Simple HOOSVD operation on Matlab and C++ matrix operation to obtain vertices.

Prerequisite

  • Matlab
  • OpenGL (visualization)
  • Eigen C++

The Simple HOOSVD operation is done with matlab (not optimized).
Obtaining and visualizing the vertices is done on C++ with Eigen library and OpenGL.

Algorithm Overview

Tensor decomposition properties Tensor is defined as mode multiplication of its core tensor with each corresponding mode,
Tensor

Core tensor is defined as the transpose mode multiplication of its full tensor,
Tensor

HOOSVD

Operations on tensor is done by unfolding the tensor into matrix.
The tensor can be folded into each mode,
Tensor

U_1, U_2, U_3 is obtained by performing SVD operations on each mode.
The mode multiplication is equivalent to kronecker product.

The main goal of this work to obtain the vertices (mode 1), therefore the mode 1 can be set fixed.
Tensor

The other modes (mode 2 and 3) correspond to Identity and Expression can be reduced (Similar to SVD reduction).
U can be reduced by keeping the high variance on the left only.
The original tensor estimation can be obtained by keeping the U_1 fixed with reduced U_2 and U_3,
Tensor

To obtain single face vertices, the reduced U_2 and U_3 can be further reduced by using only the row values. Tensor

Output of reduced face tensor approximation. (Reduce the very large core tensor (original ~1GB binary file) to smaller size) Face

About

Face Warehouse tensor reduction (HOOSVD) on matlab and C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published