SlideShare a Scribd company logo
1 of 49
Download to read offline
Internship Summary
Ian Dewancker
August 25, 2011
Ian Dewancker Internship Summary
Problem
Ian Dewancker Internship Summary
Problem
Realtime Performance-Based Facial Animation
Ian Dewancker Internship Summary
Problem
“We demonstrate that compelling
3D facial dynamics can be
reconstructed in realtime without
the use of face markers, intrusive
lighting, or complex scanning
hardware.”
Ian Dewancker Internship Summary
Problem
“We demonstrate that compelling
3D facial dynamics can be
reconstructed in realtime without
the use of face markers, intrusive
lighting, or complex scanning
hardware.”
Ian Dewancker Internship Summary
Problem
Offline Preproccesing
Ian Dewancker Internship Summary
Problem
Offline Preproccesing
“Manually selected feature
correspondences guide the
reconstruction of user-specific
expressions”
Ian Dewancker Internship Summary
Problem
Offline Preproccesing
“Manually selected feature
correspondences guide the
reconstruction of user-specific
expressions”
Ian Dewancker Internship Summary
Problem
Goal : Simplify generation of user-specific expressions
(while maintaining quality)
Ian Dewancker Internship Summary
Problem
Goal : Simplify generation of user-specific expressions
(while maintaining quality)
Ian Dewancker Internship Summary
Approach
Looking for model(s) that define how face mesh vertices should
deform to fit scan data.
Ian Dewancker Internship Summary
Approach
Looking for model(s) that define how face mesh vertices should
deform to fit scan data.
Several existing techniques :
Thin-Shell Deformation
Deformation Graph
Principal Component Analysis (PCA)
As-Rigid-as-possible
Radial Basis Functions
PriMo
Ian Dewancker Internship Summary
Approach
Looking for model(s) that define how face mesh vertices should
deform to fit scan data.
Several existing techniques :
Thin-Shell Deformation
Deformation Graph
Principal Component Analysis (PCA)
As-Rigid-as-possible
Radial Basis Functions
PriMo
Here we focus on investigating the use of PCA models for
generating user specific expressions
Ian Dewancker Internship Summary
PCA Overview
Idea :
From a set of mean adjusted observations, produce a set of
orthogonal basis vectors, ordered by decreasing variance.
Ian Dewancker Internship Summary
PCA Overview
Idea :
From a set of mean adjusted observations, produce a set of
orthogonal basis vectors, ordered by decreasing variance.
How :
Take the singular value decomposition (SVD) of the mean adjusted
data matrix. Select the first n left singular vectors as an
approximate orthogonal basis. These are the principal components
and represent vectors along the axes of maximum variance
Ian Dewancker Internship Summary
PCA Overview
In 2D:
X =
x1 x2 · · · xm
y1 y2 · · · ym
Ian Dewancker Internship Summary
PCA Overview
In 2D:
X =
x1 x2 · · · xm
y1 y2 · · · ym
µ =
xµ
yµ
Ian Dewancker Internship Summary
PCA Overview
In 2D:
X =
x1 x2 · · · xm
y1 y2 · · · ym
µ =
xµ
yµ
G = X−µ 1 1 · · · 1
G = UΣV ∗
Ian Dewancker Internship Summary
PCA Overview
In 2D:
X =
x1 x2 · · · xm
y1 y2 · · · ym
µ =
xµ
yµ
G = X−µ 1 1 · · · 1
G = UΣV ∗
U =
b1x b2x
b1y b2y
Σ =
3 0
0 1
Ian Dewancker Internship Summary
PCA Identity Model
How does this help us with fitting faces?
Ian Dewancker Internship Summary
PCA Identity Model
How does this help us with fitting faces?
Ni =










xi1
yi1
zi1
.
.
.
xik
yik
zik










∈ R
3k
Suppose we treat a collection of m fitted neutral face meshes as
data observations and generate the following:
Ian Dewancker Internship Summary
PCA Identity Model
How does this help us with fitting faces?
Ni =










xi1
yi1
zi1
.
.
.
xik
yik
zik










∈ R
3k
Suppose we treat a collection of m fitted neutral face meshes as
data observations and generate the following:
X =

 N1 N2 N3 · · · Nm

 µN =
1
m
m
i=1
Ni
Ian Dewancker Internship Summary
PCA Identity Model
As before in the example, we compute the matrix G and its SVD:
G = X − µN 1 1 1 · · · 1 G = UΣV ∗
Ian Dewancker Internship Summary
PCA Identity Model
As before in the example, we compute the matrix G and its SVD:
G = X − µN 1 1 1 · · · 1 G = UΣV ∗
In this case, U now holds the principal components of the difference
vectors from the average neutral face to those in the data set.
U =

 B1 B2 B3 · · · B3k


Ian Dewancker Internship Summary
PCA Identity Model
As before in the example, we compute the matrix G and its SVD:
G = X − µN 1 1 1 · · · 1 G = UΣV ∗
In this case, U now holds the principal components of the difference
vectors from the average neutral face to those in the data set.
U =

 B1 B2 B3 · · · B3k


We expect that any neutral face (provided training set is representative)
can be reasonably approximated by adding a linear combination of the
PCs to the mean neutral face:
Fneutral = µN + ω1B1 + ω2B2 + ω3B3 + · · · + ωpBp p 3k
Ian Dewancker Internship Summary
PCA Expression Model
Ian Dewancker Internship Summary
PCA Expression Model
Consider deformations from neutral face to expressions like “mouth open”.
Ian Dewancker Internship Summary
PCA Expression Model
Raw Difference Model
X =

 D1 D2 D3 · · · Dm

 Di =
Ian Dewancker Internship Summary
PCA Expression Model
Raw Difference Model
X =

 D1 D2 D3 · · · Dm

 Di =
µD = Mean of training data
Bi = Principal component of training data
FE = Expression face mesh to be fit (e.g. mouthOpen)
FN = Neutral face mesh
FE = FN + s[µD + ω1B1 + ω2B2 + · · · + ωpBp]
Ian Dewancker Internship Summary
PCA Expression Model
Deformation Transfer Model
X =

 L1 L2 L3 · · · Lm

 Li =
Ian Dewancker Internship Summary
PCA Expression Model
Deformation Transfer Model
X =

 L1 L2 L3 · · · Lm

 Li =
µL = Mean of deform transferred training data
DTBi = Deformed transferred PCs of training data
DTF(FN →µL) = Neutral face deform transferred to µL
FE = Expression face mesh to be fit (e.g. mouthOpen)
FN = Neutral face mesh (provided)
FE = FN+s[(DTF(FN →µL)−FN)+ω1DTB1+ω2DTB2+· · ·+ωpDTBp]
Ian Dewancker Internship Summary
Training Data
Training data is absolutely necessary for the PCA models.
A larger number of training examples will likely be more
representative of the expression space and thus, our model will be
better able to approximate arbitrary faces
In our case, we require the following to generate training data:
3D Scans Fitted Meshes
Ian Dewancker Internship Summary
3D Scans
We used the structured light scanner to record everyone in the
LGG + Keenan (12 people) in 4 different expressions ( Neutral,
MouthOpen, Smile, and Kiss ) for a total of 48 scans.
The scanner also provides an image that can be used for 2D
texture constraints when fitting the mesh
Ian Dewancker Internship Summary
Face Fitting
We needed a way to efficiently fit the template or neutral face
mesh to the point clouds produced by the scanner.
Ian Dewancker Internship Summary
Face Fitting
We needed a way to efficiently fit the template or neutral face
mesh to the point clouds produced by the scanner.
FaceFitting Application
Ian Dewancker Internship Summary
Face Fitting
Addition of UI to more easily control deformation parameters and
perform other operations.
Fitting HD version of loki quad mesh (27k vertices, 54k faces)
Ian Dewancker Internship Summary
Face Fitting
One of the most tedious parts of fitting is setting the 2D image
constraints (what we are trying to shield the user from). App can
save and load markers, camera matrices and images easily.
Added ability to create 2D constraints using rendered image
instead of one from real camera
Ian Dewancker Internship Summary
Face Fitting
Included a heat map visualization to show distances between
correspondences
Ian Dewancker Internship Summary
Building PCA Models
With our collection of fitted meshes we can now generate PCA
expression models
Ian Dewancker Internship Summary
Building PCA Models
With our collection of fitted meshes we can now generate PCA
expression models
Somewhat tedious to type various commands to generate PCA
models, especially for deformation transfer PCA. Also, if we want
to evaluate our PCA model, the person we are fitting should not
be included in the model.
Ian Dewancker Internship Summary
Building PCA Models
With our collection of fitted meshes we can now generate PCA
expression models
Somewhat tedious to type various commands to generate PCA
models, especially for deformation transfer PCA. Also, if we want
to evaluate our PCA model, the person we are fitting should not
be included in the model.
Python script generates PCA expression models for each model
type (2) and expression (3), with 1 model including all faces and
12 with one person from the set discluded, giving a total of 78
PCA models.
Ian Dewancker Internship Summary
Results
The two PCA expression models were compared using the same fitted
meshes as training data.
Neutral faces were fit until convergence using only the expression model
for deformation
Ian Dewancker Internship Summary
Results
The two PCA expression models were compared using the same fitted
meshes as training data.
Neutral faces were fit until convergence using only the expression model
for deformation
Raw Difference PCA
Expression Mean Error (mm) Mean Error (90%) (mm)
smile 0.906 0.574
mouthOpen 0.948 0.558
kiss 1.037 0.593
Ian Dewancker Internship Summary
Results
The two PCA expression models were compared using the same fitted
meshes as training data.
Neutral faces were fit until convergence using only the expression model
for deformation
Raw Difference PCA
Expression Mean Error (mm) Mean Error (90%) (mm)
smile 0.906 0.574
mouthOpen 0.948 0.558
kiss 1.037 0.593
Deformation Transfer PCA
Expression Mean Error (mm) Mean Error (90%) (mm)
smile 0.904 0.582
mouthOpen 0.946 0.551
kiss 0.970 0.596
Ian Dewancker Internship Summary
Results
The following screen captures are taken from the faceshift app
after pressing the fit (automagic) button
Using raw difference PCA expression model, scans from kinect
Ian Dewancker Internship Summary
Results
Ian Dewancker Internship Summary
Results
Ian Dewancker Internship Summary
Future Work
Smile and Mouth Open expressions look pretty good, however Kiss
expression is not that great.
Curling of lip not properly modeled. Lip vertices get contorted or
flattened unnaturally.
Ian Dewancker Internship Summary
Farewell
Thanks everyone for an awesome term!
Ian Dewancker Internship Summary

More Related Content

What's hot

Lesson 25: Evaluating Definite Integrals (Section 021 handout)
Lesson 25: Evaluating Definite Integrals (Section 021 handout)Lesson 25: Evaluating Definite Integrals (Section 021 handout)
Lesson 25: Evaluating Definite Integrals (Section 021 handout)Matthew Leingang
 
Gan seminar
Gan seminarGan seminar
Gan seminarSan Kim
 
Ml9 introduction to-unsupervised_learning_and_clustering_methods
Ml9 introduction to-unsupervised_learning_and_clustering_methodsMl9 introduction to-unsupervised_learning_and_clustering_methods
Ml9 introduction to-unsupervised_learning_and_clustering_methodsankit_ppt
 
ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...
ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...
ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...宏毅 李
 
Digital image processing using matlab: basic transformations, filters and ope...
Digital image processing using matlab: basic transformations, filters and ope...Digital image processing using matlab: basic transformations, filters and ope...
Digital image processing using matlab: basic transformations, filters and ope...thanh nguyen
 
Pr083 Non-local Neural Networks
Pr083 Non-local Neural NetworksPr083 Non-local Neural Networks
Pr083 Non-local Neural NetworksTaeoh Kim
 
Machine learning in science and industry — day 2
Machine learning in science and industry — day 2Machine learning in science and industry — day 2
Machine learning in science and industry — day 2arogozhnikov
 
Unsupervised learning represenation with DCGAN
Unsupervised learning represenation with DCGANUnsupervised learning represenation with DCGAN
Unsupervised learning represenation with DCGANShyam Krishna Khadka
 
Mcqs linear prog
Mcqs linear progMcqs linear prog
Mcqs linear progHanna Elise
 
Machine learning in science and industry — day 3
Machine learning in science and industry — day 3Machine learning in science and industry — day 3
Machine learning in science and industry — day 3arogozhnikov
 
Machine learning in science and industry — day 4
Machine learning in science and industry — day 4Machine learning in science and industry — day 4
Machine learning in science and industry — day 4arogozhnikov
 
Lagrangian Relaxation And Danzig Wolfe Scheduling Problem
Lagrangian Relaxation And Danzig Wolfe Scheduling ProblemLagrangian Relaxation And Danzig Wolfe Scheduling Problem
Lagrangian Relaxation And Danzig Wolfe Scheduling Problemmrwalker7
 
Learning a nonlinear embedding by preserving class neibourhood structure 최종
Learning a nonlinear embedding by preserving class neibourhood structure   최종Learning a nonlinear embedding by preserving class neibourhood structure   최종
Learning a nonlinear embedding by preserving class neibourhood structure 최종WooSung Choi
 
Finding connections among images using CycleGAN
Finding connections among images using CycleGANFinding connections among images using CycleGAN
Finding connections among images using CycleGANNAVER Engineering
 
Machine learning in science and industry — day 1
Machine learning in science and industry — day 1Machine learning in science and industry — day 1
Machine learning in science and industry — day 1arogozhnikov
 
Divide and conquer technic
Divide and conquer technicDivide and conquer technic
Divide and conquer technicmohanrathod18
 
Machine learning and_nlp
Machine learning and_nlpMachine learning and_nlp
Machine learning and_nlpankit_ppt
 
Matrix decomposition and_applications_to_nlp
Matrix decomposition and_applications_to_nlpMatrix decomposition and_applications_to_nlp
Matrix decomposition and_applications_to_nlpankit_ppt
 

What's hot (20)

Lesson 25: Evaluating Definite Integrals (Section 021 handout)
Lesson 25: Evaluating Definite Integrals (Section 021 handout)Lesson 25: Evaluating Definite Integrals (Section 021 handout)
Lesson 25: Evaluating Definite Integrals (Section 021 handout)
 
Gan seminar
Gan seminarGan seminar
Gan seminar
 
Ml9 introduction to-unsupervised_learning_and_clustering_methods
Ml9 introduction to-unsupervised_learning_and_clustering_methodsMl9 introduction to-unsupervised_learning_and_clustering_methods
Ml9 introduction to-unsupervised_learning_and_clustering_methods
 
ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...
ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...
ICASSP 2018 Tutorial: Generative Adversarial Network and its Applications to ...
 
Digital image processing using matlab: basic transformations, filters and ope...
Digital image processing using matlab: basic transformations, filters and ope...Digital image processing using matlab: basic transformations, filters and ope...
Digital image processing using matlab: basic transformations, filters and ope...
 
Pr083 Non-local Neural Networks
Pr083 Non-local Neural NetworksPr083 Non-local Neural Networks
Pr083 Non-local Neural Networks
 
Machine learning in science and industry — day 2
Machine learning in science and industry — day 2Machine learning in science and industry — day 2
Machine learning in science and industry — day 2
 
Unsupervised learning represenation with DCGAN
Unsupervised learning represenation with DCGANUnsupervised learning represenation with DCGAN
Unsupervised learning represenation with DCGAN
 
Mcqs linear prog
Mcqs linear progMcqs linear prog
Mcqs linear prog
 
Machine learning in science and industry — day 3
Machine learning in science and industry — day 3Machine learning in science and industry — day 3
Machine learning in science and industry — day 3
 
Machine learning in science and industry — day 4
Machine learning in science and industry — day 4Machine learning in science and industry — day 4
Machine learning in science and industry — day 4
 
TunUp final presentation
TunUp final presentationTunUp final presentation
TunUp final presentation
 
Lagrangian Relaxation And Danzig Wolfe Scheduling Problem
Lagrangian Relaxation And Danzig Wolfe Scheduling ProblemLagrangian Relaxation And Danzig Wolfe Scheduling Problem
Lagrangian Relaxation And Danzig Wolfe Scheduling Problem
 
Learning a nonlinear embedding by preserving class neibourhood structure 최종
Learning a nonlinear embedding by preserving class neibourhood structure   최종Learning a nonlinear embedding by preserving class neibourhood structure   최종
Learning a nonlinear embedding by preserving class neibourhood structure 최종
 
Finding connections among images using CycleGAN
Finding connections among images using CycleGANFinding connections among images using CycleGAN
Finding connections among images using CycleGAN
 
Machine learning in science and industry — day 1
Machine learning in science and industry — day 1Machine learning in science and industry — day 1
Machine learning in science and industry — day 1
 
Divide and conquer technic
Divide and conquer technicDivide and conquer technic
Divide and conquer technic
 
Machine learning and_nlp
Machine learning and_nlpMachine learning and_nlp
Machine learning and_nlp
 
04 numerical
04 numerical04 numerical
04 numerical
 
Matrix decomposition and_applications_to_nlp
Matrix decomposition and_applications_to_nlpMatrix decomposition and_applications_to_nlp
Matrix decomposition and_applications_to_nlp
 

Viewers also liked

Summer internship in the furniture republic
Summer internship in the furniture republicSummer internship in the furniture republic
Summer internship in the furniture republicVikram Singh
 
Glass Hardware 2015 Catalogue
Glass Hardware 2015 CatalogueGlass Hardware 2015 Catalogue
Glass Hardware 2015 Cataloguesaharaartwork
 
The Door & Frame Schedule
The Door & Frame ScheduleThe Door & Frame Schedule
The Door & Frame ScheduleHerman Otto
 
Furniture Brand Project Group One
Furniture Brand Project   Group OneFurniture Brand Project   Group One
Furniture Brand Project Group OneHai Le
 
Furniture Industry in India
Furniture Industry in IndiaFurniture Industry in India
Furniture Industry in IndiaVikram Dahiya
 
Marketing strategies & consumers satisfaction @big bazaar
Marketing strategies & consumers satisfaction @big bazaarMarketing strategies & consumers satisfaction @big bazaar
Marketing strategies & consumers satisfaction @big bazaarArkabrata Bandyapadhyay
 
Internship HETTICH
Internship HETTICHInternship HETTICH
Internship HETTICHANKIT SAXENA
 
Summer internship project report
Summer internship project reportSummer internship project report
Summer internship project reportManish Singh
 

Viewers also liked (10)

Stain less steel Hinges | Chandrahardware
Stain less steel Hinges |  ChandrahardwareStain less steel Hinges |  Chandrahardware
Stain less steel Hinges | Chandrahardware
 
Hardware
HardwareHardware
Hardware
 
Summer internship in the furniture republic
Summer internship in the furniture republicSummer internship in the furniture republic
Summer internship in the furniture republic
 
Glass Hardware 2015 Catalogue
Glass Hardware 2015 CatalogueGlass Hardware 2015 Catalogue
Glass Hardware 2015 Catalogue
 
The Door & Frame Schedule
The Door & Frame ScheduleThe Door & Frame Schedule
The Door & Frame Schedule
 
Furniture Brand Project Group One
Furniture Brand Project   Group OneFurniture Brand Project   Group One
Furniture Brand Project Group One
 
Furniture Industry in India
Furniture Industry in IndiaFurniture Industry in India
Furniture Industry in India
 
Marketing strategies & consumers satisfaction @big bazaar
Marketing strategies & consumers satisfaction @big bazaarMarketing strategies & consumers satisfaction @big bazaar
Marketing strategies & consumers satisfaction @big bazaar
 
Internship HETTICH
Internship HETTICHInternship HETTICH
Internship HETTICH
 
Summer internship project report
Summer internship project reportSummer internship project report
Summer internship project report
 

Similar to EPFL_presentation

Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsRyan B Harvey, CSDP, CSM
 
Evaluation of conditional images synthesis: generating a photorealistic image...
Evaluation of conditional images synthesis: generating a photorealistic image...Evaluation of conditional images synthesis: generating a photorealistic image...
Evaluation of conditional images synthesis: generating a photorealistic image...SamanthaGallone
 
Variational Autoencoders For Image Generation
Variational Autoencoders For Image GenerationVariational Autoencoders For Image Generation
Variational Autoencoders For Image GenerationJason Anderson
 
Face recogntion Using PCA Algorithm
Face recogntion Using PCA Algorithm Face recogntion Using PCA Algorithm
Face recogntion Using PCA Algorithm Ashwini Awatare
 
Introduction to Deep Neural Network
Introduction to Deep Neural NetworkIntroduction to Deep Neural Network
Introduction to Deep Neural NetworkLiwei Ren任力偉
 
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...IJERA Editor
 
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...IJERA Editor
 
SupportVectorRegression
SupportVectorRegressionSupportVectorRegression
SupportVectorRegressionDaniel K
 
Exploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems ProjectExploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems ProjectSurya Chandra
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것NAVER Engineering
 
Making BIG DATA smaller
Making BIG DATA smallerMaking BIG DATA smaller
Making BIG DATA smallerTony Tran
 
Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...
Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...
Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...MLconf
 
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...MLconf
 

Similar to EPFL_presentation (20)

Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
 
Evaluation of conditional images synthesis: generating a photorealistic image...
Evaluation of conditional images synthesis: generating a photorealistic image...Evaluation of conditional images synthesis: generating a photorealistic image...
Evaluation of conditional images synthesis: generating a photorealistic image...
 
Graphical method
Graphical methodGraphical method
Graphical method
 
Face Recognition
Face RecognitionFace Recognition
Face Recognition
 
2021 04-01-dalle
2021 04-01-dalle2021 04-01-dalle
2021 04-01-dalle
 
Variational Autoencoders For Image Generation
Variational Autoencoders For Image GenerationVariational Autoencoders For Image Generation
Variational Autoencoders For Image Generation
 
Deep Learning for Computer Vision: Attention Models (UPC 2016)
Deep Learning for Computer Vision: Attention Models (UPC 2016)Deep Learning for Computer Vision: Attention Models (UPC 2016)
Deep Learning for Computer Vision: Attention Models (UPC 2016)
 
Face recogntion Using PCA Algorithm
Face recogntion Using PCA Algorithm Face recogntion Using PCA Algorithm
Face recogntion Using PCA Algorithm
 
Introduction to Deep Neural Network
Introduction to Deep Neural NetworkIntroduction to Deep Neural Network
Introduction to Deep Neural Network
 
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
 
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
Determination of Optimal Product Mix for Profit Maximization using Linear Pro...
 
Pca for semiinar
Pca for semiinarPca for semiinar
Pca for semiinar
 
SupportVectorRegression
SupportVectorRegressionSupportVectorRegression
SupportVectorRegression
 
Exploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems ProjectExploring Support Vector Regression - Signals and Systems Project
Exploring Support Vector Regression - Signals and Systems Project
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것
 
Making BIG DATA smaller
Making BIG DATA smallerMaking BIG DATA smaller
Making BIG DATA smaller
 
Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...
Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...
Le Song, Assistant Professor, College of Computing, Georgia Institute of Tech...
 
Backpropagation for Deep Learning
Backpropagation for Deep LearningBackpropagation for Deep Learning
Backpropagation for Deep Learning
 
Deep Feature Consistent VAE
Deep Feature Consistent VAEDeep Feature Consistent VAE
Deep Feature Consistent VAE
 
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
Animashree Anandkumar, Electrical Engineering and CS Dept, UC Irvine at MLcon...
 

EPFL_presentation

  • 1. Internship Summary Ian Dewancker August 25, 2011 Ian Dewancker Internship Summary
  • 3. Problem Realtime Performance-Based Facial Animation Ian Dewancker Internship Summary
  • 4. Problem “We demonstrate that compelling 3D facial dynamics can be reconstructed in realtime without the use of face markers, intrusive lighting, or complex scanning hardware.” Ian Dewancker Internship Summary
  • 5. Problem “We demonstrate that compelling 3D facial dynamics can be reconstructed in realtime without the use of face markers, intrusive lighting, or complex scanning hardware.” Ian Dewancker Internship Summary
  • 7. Problem Offline Preproccesing “Manually selected feature correspondences guide the reconstruction of user-specific expressions” Ian Dewancker Internship Summary
  • 8. Problem Offline Preproccesing “Manually selected feature correspondences guide the reconstruction of user-specific expressions” Ian Dewancker Internship Summary
  • 9. Problem Goal : Simplify generation of user-specific expressions (while maintaining quality) Ian Dewancker Internship Summary
  • 10. Problem Goal : Simplify generation of user-specific expressions (while maintaining quality) Ian Dewancker Internship Summary
  • 11. Approach Looking for model(s) that define how face mesh vertices should deform to fit scan data. Ian Dewancker Internship Summary
  • 12. Approach Looking for model(s) that define how face mesh vertices should deform to fit scan data. Several existing techniques : Thin-Shell Deformation Deformation Graph Principal Component Analysis (PCA) As-Rigid-as-possible Radial Basis Functions PriMo Ian Dewancker Internship Summary
  • 13. Approach Looking for model(s) that define how face mesh vertices should deform to fit scan data. Several existing techniques : Thin-Shell Deformation Deformation Graph Principal Component Analysis (PCA) As-Rigid-as-possible Radial Basis Functions PriMo Here we focus on investigating the use of PCA models for generating user specific expressions Ian Dewancker Internship Summary
  • 14. PCA Overview Idea : From a set of mean adjusted observations, produce a set of orthogonal basis vectors, ordered by decreasing variance. Ian Dewancker Internship Summary
  • 15. PCA Overview Idea : From a set of mean adjusted observations, produce a set of orthogonal basis vectors, ordered by decreasing variance. How : Take the singular value decomposition (SVD) of the mean adjusted data matrix. Select the first n left singular vectors as an approximate orthogonal basis. These are the principal components and represent vectors along the axes of maximum variance Ian Dewancker Internship Summary
  • 16. PCA Overview In 2D: X = x1 x2 · · · xm y1 y2 · · · ym Ian Dewancker Internship Summary
  • 17. PCA Overview In 2D: X = x1 x2 · · · xm y1 y2 · · · ym µ = xµ yµ Ian Dewancker Internship Summary
  • 18. PCA Overview In 2D: X = x1 x2 · · · xm y1 y2 · · · ym µ = xµ yµ G = X−µ 1 1 · · · 1 G = UΣV ∗ Ian Dewancker Internship Summary
  • 19. PCA Overview In 2D: X = x1 x2 · · · xm y1 y2 · · · ym µ = xµ yµ G = X−µ 1 1 · · · 1 G = UΣV ∗ U = b1x b2x b1y b2y Σ = 3 0 0 1 Ian Dewancker Internship Summary
  • 20. PCA Identity Model How does this help us with fitting faces? Ian Dewancker Internship Summary
  • 21. PCA Identity Model How does this help us with fitting faces? Ni =           xi1 yi1 zi1 . . . xik yik zik           ∈ R 3k Suppose we treat a collection of m fitted neutral face meshes as data observations and generate the following: Ian Dewancker Internship Summary
  • 22. PCA Identity Model How does this help us with fitting faces? Ni =           xi1 yi1 zi1 . . . xik yik zik           ∈ R 3k Suppose we treat a collection of m fitted neutral face meshes as data observations and generate the following: X =   N1 N2 N3 · · · Nm   µN = 1 m m i=1 Ni Ian Dewancker Internship Summary
  • 23. PCA Identity Model As before in the example, we compute the matrix G and its SVD: G = X − µN 1 1 1 · · · 1 G = UΣV ∗ Ian Dewancker Internship Summary
  • 24. PCA Identity Model As before in the example, we compute the matrix G and its SVD: G = X − µN 1 1 1 · · · 1 G = UΣV ∗ In this case, U now holds the principal components of the difference vectors from the average neutral face to those in the data set. U =   B1 B2 B3 · · · B3k   Ian Dewancker Internship Summary
  • 25. PCA Identity Model As before in the example, we compute the matrix G and its SVD: G = X − µN 1 1 1 · · · 1 G = UΣV ∗ In this case, U now holds the principal components of the difference vectors from the average neutral face to those in the data set. U =   B1 B2 B3 · · · B3k   We expect that any neutral face (provided training set is representative) can be reasonably approximated by adding a linear combination of the PCs to the mean neutral face: Fneutral = µN + ω1B1 + ω2B2 + ω3B3 + · · · + ωpBp p 3k Ian Dewancker Internship Summary
  • 26. PCA Expression Model Ian Dewancker Internship Summary
  • 27. PCA Expression Model Consider deformations from neutral face to expressions like “mouth open”. Ian Dewancker Internship Summary
  • 28. PCA Expression Model Raw Difference Model X =   D1 D2 D3 · · · Dm   Di = Ian Dewancker Internship Summary
  • 29. PCA Expression Model Raw Difference Model X =   D1 D2 D3 · · · Dm   Di = µD = Mean of training data Bi = Principal component of training data FE = Expression face mesh to be fit (e.g. mouthOpen) FN = Neutral face mesh FE = FN + s[µD + ω1B1 + ω2B2 + · · · + ωpBp] Ian Dewancker Internship Summary
  • 30. PCA Expression Model Deformation Transfer Model X =   L1 L2 L3 · · · Lm   Li = Ian Dewancker Internship Summary
  • 31. PCA Expression Model Deformation Transfer Model X =   L1 L2 L3 · · · Lm   Li = µL = Mean of deform transferred training data DTBi = Deformed transferred PCs of training data DTF(FN →µL) = Neutral face deform transferred to µL FE = Expression face mesh to be fit (e.g. mouthOpen) FN = Neutral face mesh (provided) FE = FN+s[(DTF(FN →µL)−FN)+ω1DTB1+ω2DTB2+· · ·+ωpDTBp] Ian Dewancker Internship Summary
  • 32. Training Data Training data is absolutely necessary for the PCA models. A larger number of training examples will likely be more representative of the expression space and thus, our model will be better able to approximate arbitrary faces In our case, we require the following to generate training data: 3D Scans Fitted Meshes Ian Dewancker Internship Summary
  • 33. 3D Scans We used the structured light scanner to record everyone in the LGG + Keenan (12 people) in 4 different expressions ( Neutral, MouthOpen, Smile, and Kiss ) for a total of 48 scans. The scanner also provides an image that can be used for 2D texture constraints when fitting the mesh Ian Dewancker Internship Summary
  • 34. Face Fitting We needed a way to efficiently fit the template or neutral face mesh to the point clouds produced by the scanner. Ian Dewancker Internship Summary
  • 35. Face Fitting We needed a way to efficiently fit the template or neutral face mesh to the point clouds produced by the scanner. FaceFitting Application Ian Dewancker Internship Summary
  • 36. Face Fitting Addition of UI to more easily control deformation parameters and perform other operations. Fitting HD version of loki quad mesh (27k vertices, 54k faces) Ian Dewancker Internship Summary
  • 37. Face Fitting One of the most tedious parts of fitting is setting the 2D image constraints (what we are trying to shield the user from). App can save and load markers, camera matrices and images easily. Added ability to create 2D constraints using rendered image instead of one from real camera Ian Dewancker Internship Summary
  • 38. Face Fitting Included a heat map visualization to show distances between correspondences Ian Dewancker Internship Summary
  • 39. Building PCA Models With our collection of fitted meshes we can now generate PCA expression models Ian Dewancker Internship Summary
  • 40. Building PCA Models With our collection of fitted meshes we can now generate PCA expression models Somewhat tedious to type various commands to generate PCA models, especially for deformation transfer PCA. Also, if we want to evaluate our PCA model, the person we are fitting should not be included in the model. Ian Dewancker Internship Summary
  • 41. Building PCA Models With our collection of fitted meshes we can now generate PCA expression models Somewhat tedious to type various commands to generate PCA models, especially for deformation transfer PCA. Also, if we want to evaluate our PCA model, the person we are fitting should not be included in the model. Python script generates PCA expression models for each model type (2) and expression (3), with 1 model including all faces and 12 with one person from the set discluded, giving a total of 78 PCA models. Ian Dewancker Internship Summary
  • 42. Results The two PCA expression models were compared using the same fitted meshes as training data. Neutral faces were fit until convergence using only the expression model for deformation Ian Dewancker Internship Summary
  • 43. Results The two PCA expression models were compared using the same fitted meshes as training data. Neutral faces were fit until convergence using only the expression model for deformation Raw Difference PCA Expression Mean Error (mm) Mean Error (90%) (mm) smile 0.906 0.574 mouthOpen 0.948 0.558 kiss 1.037 0.593 Ian Dewancker Internship Summary
  • 44. Results The two PCA expression models were compared using the same fitted meshes as training data. Neutral faces were fit until convergence using only the expression model for deformation Raw Difference PCA Expression Mean Error (mm) Mean Error (90%) (mm) smile 0.906 0.574 mouthOpen 0.948 0.558 kiss 1.037 0.593 Deformation Transfer PCA Expression Mean Error (mm) Mean Error (90%) (mm) smile 0.904 0.582 mouthOpen 0.946 0.551 kiss 0.970 0.596 Ian Dewancker Internship Summary
  • 45. Results The following screen captures are taken from the faceshift app after pressing the fit (automagic) button Using raw difference PCA expression model, scans from kinect Ian Dewancker Internship Summary
  • 48. Future Work Smile and Mouth Open expressions look pretty good, however Kiss expression is not that great. Curling of lip not properly modeled. Lip vertices get contorted or flattened unnaturally. Ian Dewancker Internship Summary
  • 49. Farewell Thanks everyone for an awesome term! Ian Dewancker Internship Summary