50
Automatic Modeling of 3D Human Face Marco Andolfi I. Ragnemalm Institute of Technology of Linkoping M. Schaerf “La Sapienza” University of Rome Supervisors: Co-Supervisor: M. Fratarcangeli “La Sapienza” University of Rome

Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Embed Size (px)

Citation preview

Page 1: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Automatic Modeling of 3D Human Face

Marco Andolfi

I. Ragnemalm

Institute of Technology of Linkoping

M. Schaerf

“La Sapienza” University of Rome

Supervisors:

Co-Supervisor:

M. Fratarcangeli“La Sapienza” University of Rome

Page 2: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

The problem: Face modeling

InputModeling System Output

Our goal

Page 3: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

InputModeling System Output

1 - Five Orthogonal Photos

2 – A “Generic” Mesh

No particular instrument

3D colored model of the subject’s head in photo

(no hair)

3 – A Landmark set points

Our system:Input - Output - Features

Page 4: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

The Input (1) - Five orthogonal Photos

Page 5: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Without expression

Without Gender Features

Without Race Features

The Input:(2) – A “generic” Mesh

Page 6: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

(almost) MPEG-4 landmark points

The Input:(3) – The landmark set of

points

Page 7: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Modeling System

Morphing Sub-System

ColoringSub-System

Inside the system

Page 8: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Morphing sub system

Page 9: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Morphing Sub-System

Mesh Feature

Extraction

Photo Feature

Extraction

Morphing Execution

CameraError

Correction

2D – 3D Conversio

n

Morphing sub system

Page 10: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Preprocessing operation

Manually picking

Mesh feature extraction

Page 11: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Morphing Sub-System

Mesh Feature

Extraction

Photo Feature

Extraction

Morphing Execution

CameraError

Correction

2D – 3D Conversio

n

Morphing sub system

Page 12: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Noisy Data

Manually picking

Photo feature extraction

Page 13: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Morphing Sub-System

Mesh Feature

Extraction

Photo Feature

Extraction

Morphing Execution

CameraError

Correction

2D – 3D Conversio

n

Morphing sub system

Page 14: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Different distance Camera-subject

Scaling

Camera Errors: the corrected ones

Page 15: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Different distance Camera-subject

Camera orientation

Scaling

Translation

Camera Errors: the corrected ones

Page 16: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Different distance Camera-subject

Camera orientation

Wrong Head Position: Z axis

Scaling

Translation

Rotation

Camera Errors: the corrected ones

Page 17: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Camera Errors: the negligible ones

Rotation Angle?

Wrong Head Position: X axis

Page 18: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Camera Errors: the negligible ones

Rotation Angle?

Wrong Head Position: X axis

Rotation No info

Wrong Head Position: Y axis

Page 19: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Camera Errors: the negligible ones

Rotation Angle?

Wrong Head Position: X axis

Rotation No info

Wrong Head Position: Y axis

Negligible

Prospective error

Page 20: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Camera Errors: Summary

Rotation Angle?

Wrong Head Position: X axis

Rotation No info

Wrong Head Position: Y axis

Negligible

Prospective error

Different distance Camera-subject

Camera orientation

Wrong Head Position: Z axis

Scaling

Translation

Rotation

Corrected Ignored

Page 21: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Get reference point: Why?Rotation

Scaling

Page 22: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Get reference point: Why?Translation

Page 23: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Camera Errors: Get reference point

Page 24: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Camera Errors: Correction

Page 25: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Get scaling factor: example on Y

Fy Ly

FyScaling Factor = -----------

Ly

Noisy Data

Bad Result

Page 26: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Get scaling factor: example on Y

Fy1 Ly1

Fy1 + Fy2 + ... + FyNScaling Factor = ---------------------------------------

Ly1 + Ly2 + ... + LyN

Fy2 Ly2

Page 27: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Morphing Sub-System

Mesh Feature

Extraction

Photo Feature

Extraction

Morphing Execution

CameraError

Correction

2D – 3D Conversio

n

Morphing sub system

Page 28: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

2D to 3D convertion

Several values for each coordinate

Weighted Average

More importance to front photo

Page 29: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Morphing Sub-System

Mesh Feature

Extraction

Photo Feature

Extraction

Morphing Execution

CameraError

Correction

2D – 3D Conversio

n

Morphing sub system

Page 30: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Single step morphing

RBF Morphing functionLow stiffness parameter(as interpolation)

Noisy Data

Bad Result

Interpolation

Page 31: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Single step morphing: why not...

Page 32: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

High level quality points

Low level quality points

Two different level of quality

Page 33: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Double step morphingLow and High level quality

points

RBF Morphing functionHigh stiffness parameter(as approximation)

RBF Morphing functionLow stiffness parameter(as interpolation)

High level quality points

First step

Second step

c

Page 34: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Modeling System

Morphing Sub-System

ColoringSub-System

Inside the system

Page 35: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring sub system

Page 36: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring Sub-System

Texture coordinate computing

Bottom texture

generation

Weight computing

Texture mapping

Remove ghost effect

SolveOverlap artifact

Coloring sub-system

Page 37: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Texture coordinate computing

What about the camera correction error?

Not a simple orthogonal projection

Page 38: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Texture coordinate computing

Page 39: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring Sub-System

Texture coordinate computing

Bottom texture

generation

Weight computing

Texture mapping

Remove ghost effect

SolveOcclusionProblem

Coloring sub-system

Page 40: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

β

γ

α

NP

NF

NL

NT

Weight computingWhy? Avoiding overlapping

The weight as transparency level

Weight for vertex respect front photo

Proportional to α

WF = NF ∙ NP

Set NULL negative weights

NR

WR = NR ∙ NP < 0 → WR = 0

Page 41: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring sub-system

Coloring Sub-System

Texture coordinate computing

Bottom texture

generation

Weight computing

Texture mapping

Remove ghost effect

SolveOverlapp artifact

Page 42: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Bottom texture generation

Little square

only skin

No mole, No scar

Repetitionof the little

square

Final bottom texture

Bad quality? (too many squares...)

AIM: obtain a texture containig only skin

Page 43: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring Sub-System

Texture coordinate computing

Bottom texture

generation

Weight computing

Texture mapping

Remove ghost effect

SolveOverlapp artifact

Coloring sub-system

Page 44: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Texture MappingThe weight as transparency

level

Page 45: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring Sub-System

Texture mapping

Remove ghost effect

SolveOverlapp artifact

Coloring sub-system

Texture coordinate computing

Bottom texture

generation

Weight computing

Page 46: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Ghost effect

Page 47: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Coloring Sub-System

Texture mapping

Remove ghost effect

SolveOverlapp artifact

Coloring sub-system

Texture coordinate computing

Bottom texture

generation

Weight computing

Page 48: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Solving occlusion problem

Page 49: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Solving occlusion problemDetect vertex between inner eye points

Giving weight to side photos

Removing weight to side photos

Page 50: Supervisors:Supervisors: Co-Supervisor:Co-Supervisor:

Let’s see some examples