Eigenface (2)

Image Recognition 2009. 12. 28. 23:55

특정한 eigenface를 평균 얼굴에 적당한 가중치를 주어서 더하면 그 eigenface가 얼굴에 어떤 변화를 주는지를 알아볼 수 있다. 아래의 결과는 가장 큰 eigenvalue를 갖는 6개의 eigenface들에 대해서

-2 * sqrt(eigenvalue) <=  가중치 <= +2 * sqrt(eigenvalue)

사이의 가중치값을 17단계로 변화시키면서 영상의 변화를 본 것이다.

얼굴영상 = 평균 얼굴 + 가중치 * eigenface

일반적인 얼굴영상은 여러 eigenface들의 가중치를 준 조합으로 만들어진다.

아래의 사진을 보면 처음 3개의  eigenface는 영상에서 조명의 변화를 주로 나타내고, 이후의 3개는 얼굴형의 변화를 주로 표현한다. 실제로 eigenface를 사용할 때는 처음 몇 개의 큰 고유치를 갖는 eigenface를 버리고 사용하여서 조명 변화에 따른 영상의 변화를 일정 정도 보상할 수 있다.
Y.Moses, Y.Adini, S.Ullman, "Face Recognition: The Problem of Compensating for changes in Illumination Direction", 1994


 

 
 
 
 



728x90

'Image Recognition' 카테고리의 다른 글

Isometric Transformation  (0) 2010.01.11
Active Shape Model (3)  (0) 2009.12.30
Active Shape Model (ASM)  (2) 2009.12.25
Similarity Transformation  (1) 2009.12.14
Eigenface  (0) 2009.12.12
Posted by helloktk
,

영상에 물체의 윤곽을 찾고자 할 때 active snake 알고리즘을 많이 이용한다. 이것은 물체의 윤곽에서 명암의 차이를 이용하여 윤곽선을 탄성이 있는 곡선으로 근사 시키는 방법이다. 그러나 실제의 영상에는 조명의 영향이나 잡음 아니면 다른 물체에의 한 가려짐으로 인해서 윤곽이 명확하게 나타나지 않거나 가려져서 윤곽선을 제대로 찾지 못하거나 심하게 왜곡된 윤곽선을 낳는 결과를 초래한다. 영상에서 윤곽선을 찾는 경우에 특정한 물체(예를 들면 영상에서 얼굴 윤곽, 손 모양, 초음파 사진에서 장기의 모양...)를 대상으로 하는 경우가 많다. 이 경우 대상 물체의 대략의 형태가 알려져 있고, 실제로 사진에 나타나는 형태는 평균적인 형태에서 많이 벗어난 있지 않는다. 이러한 정보를 이용하면 보다 쉽게 물체의 윤곽선을 찾을 수 있다.

먼저 찾고자 하는 물체의 윤곽 정보를 훈련을 시켜 평균 윤곽선과 평균 윤곽선에서 벗어남을 기술하는 독립적인 mode(=eigen mode=eigen shape)를 알아낸다. 이것은 얼굴인식에서 PCA 기법을 이용하여서 평균 얼굴영상에서 변화를 주는 eigen modeeigenface를 찾는 기법과 같다. Eigen mode는 평균 윤곽선에서 아주 미세한 변화는 버리고, 큰 것만 취하면 된다

이러한 eigen mode용하면 잡음이나 조명 가려짐 등에 의해 잘못 찾은 윤곽선을 보정하여서 원하는 형태를 유지할 수 있다. , 영상처리에 의해서 찾은 윤곽선을 eigen mode로 분해하면 각 eigen mode의 가중치를 구할 수 있는데, 이렇게 구한 가중치를 준 eigen mode평균 윤곽선에 더해서 윤곽선을 재구성한다. 이 재구성된 윤곽선은 잡음이나 가려짐 등의 영향으로 인한 미세한 왜곡을 없앨 수 있다. 그리고, 윤곽선 찾기를 반복적인 과정으로 구현할 때 이 재구성된 윤곽에서 출발하여 다음번의 윤곽선 찾기를 시도한다그러나 이 방법은 eigen mode가 훈련에 사용한 영상에 많이 의존하므로, 훈련된 윤곽과 많이 다른 윤곽은 제대로 대처하지 못한다.

아래 그림(검정선)은 영상처리에서 찾은 손 윤곽선으로 잡음으로 인해서 왜곡이 많이 되어 있는 모양이다. 빨간 선은 eigen mode를 이용해서 재구성한 윤곽선이다.

* 18개의 훈련용 손 모양을 가지고 얻은 12개의 eigen mode을 씀.
* data 출처: ttp://personalpages.manchester.ac.uk/staff/timothy.f.cootes/data/hand_data.html

 

 

728x90

'Image Recognition' 카테고리의 다른 글

Active Shape Model (3)  (0) 2009.12.30
Eigenface (2)  (0) 2009.12.28
Similarity Transformation  (1) 2009.12.14
Eigenface  (0) 2009.12.12
Retinex 알고리즘 관련 자료  (1) 2009.04.29
Posted by helloktk
,

Eigenface

Image Recognition 2009. 12. 12. 20:03

평균 얼굴:
- 173개의 얼굴 영상(130x150)을 가지고 만든 것이다.
- 얼굴 영상 출처: http://www.cs.colostate.edu/evalfacerec/data.html(두 눈의 위치 정보가 있어서 편리하다)
- 얼굴 영상은 두 눈의 위치가 영상에서 일정한 위치에 있도록 기하학적인 변환(similarity transform)을 수행했다.


Eigenfaces:
- 173개의 영상에서 평균 얼굴을 뺀 후에 Covariance Matrix을 만들었으므로 실제로 eigenvector는 173-1=172차원 hyperplane를 형성. 130x150차원 공간의 subspace)
- 각각의 eigenface는 1로 정규화된 벡터(영상)이나, 이미지로 보이기 위해서 임의로 스케일링한 것이다. 따라서 각각의 eigenface이 밝기는 상대적인 값이다.
- 영상은 eigenvalue의 크기 순서대로 69개만 나열한 것이다( 큰 것--> 작은 것. dimensional reduction)


얼굴의 재구성
원본 얼굴($\bf x$):

69개의 eigenface로 재구성된 얼굴: 상관계수=0.9897;

 


훼손된 얼굴(원본):

eigenface을 이용해서 재구성한 얼굴(69개의 eigenface을 이용) : 상관계수=0.8788;

eigenface를 10개에서 69개로 순차적으로 늘리면서 재구성한 결과(animating gif):


Nonface의 재구성:
원본(원숭이)

재구성된 원숭이 얼굴(69개의 eigenface이용)
- 원본과의 상관계수를 구하여서 얼굴인지 아닌지를 판별할 수 있다.: 상관계수=0.7887;

728x90

'Image Recognition' 카테고리의 다른 글

Active Shape Model (ASM)  (2) 2009.12.25
Similarity Transformation  (1) 2009.12.14
Retinex 알고리즘 관련 자료  (1) 2009.04.29
Spline Based Snake  (0) 2008.08.15
Anisotropic Diffusion Filter  (0) 2008.08.11
Posted by helloktk
,