Feature Describe
목차
0. PREVIEW
1. 특징 기술자의 조건
2. 관심점을 위한 기술자
3. 영역 기술자
4. 텍스쳐
5. 주성분 분석
6. 얼굴 인식: 고유 얼굴
<0~3. 영역 기술자>는 이전 게시글을 참고해주세요
https://codingsmu.tistory.com/120
4. 텍스쳐
텍스처(Texture)란?
- 일정한 패턴의 반복
- 구조적 방법과 통계적 방법
텍스처(Texture) 특징 활용
- 위조 얼굴 검출(face anti-spoofing) 분야
4.1 전역 기술자
에지 기반
명암 히스토그램 기반
한계
지역적인 정보는 반영하지 못함
4.2 지역 관계 기술자
원리
화소 사이의 이웃 관계를 규정하고, 그들이 형성하는 패턴을 표현
동시 발생 행렬
이웃 관계를 이루는 화소 쌍의 명암이 (j,i)인 빈도수를 세어 행렬 O의 요소 $O_{ji}$에 기록
동시 발생 행렬에서 특징 추출
지역 이진 패턴(LBP, Local Binary Pattern)
- 텍스처 특징을 표현하기 좋은 특징 기술자
- 이웃 화소 간의 상대적인 명암 크기를 비교하므로 조명 변화에 불변인 특성을 가짐
- 다양한 LBP 버전이 존재
- Circular LBP
- 회전 불변 LBP; 회전에 강건한 특성, 특징의 개수가 획기적으로 감소
- 8개의 이웃과 대소관계에 따라 이진열을 만든 후 [0,255] 사이의 십진수로 변환
- 모든 화소를 가지고 히스토그램을 구성
지역 삼진 패턴(LTP, Local Trinary Pattern)
- 화소 값이 p라면, p-t보다 작으면 -1, p+t보다 크면 1, [p-t, p+t] 사이면 0을 부여
- 두개의 LBP로 분리
- 모든 화소를 가지고 히스토그램을 구성
- 이진 패턴과 달리 노이즈 때문에 생기는 약간의 오차는 포용할 수 있는 장점이 있다
LBP와 LTP의 확장
- 조명 변환에 불변이나, 8이웃(8-neighboor)만 보면 스케일 변화에 대처하지 못함
- 다양한 이웃을 이용한 스케일 불변 달성
LBP와 LTP의 응용
얼굴 검출, 사람 검출, 자연영상에서 글자 추출 등 다양하게 응용됨
5. 주성분 분석
고차원 벡터를 저차원으로 축소(Dimension Reduction)
- 정보 손실을 최소화하는 조건
- 위의 조건을 만족하는 벡터를 찾는 것이 목표
5.1 원리
원리
- 학습 집합 $X = \{x_1, x_2, x_3, \cdots, x_n\}$로 변환 행렬 U를 추정
- U는 d*D로서 D차원의 x를 d차원의 y로 변환
차원 축소를 어떻게 표현하나?
- 축 u상으로 투영으로 표현 $\hat{x} = ux^T$
- 아래 [6-22]그림은 2차원을 1차원으로 축소하는 상황
정보 손실을 어떻게 표현하나?
- 정보란? 점들 사이의 거리나 상대적인 위치 등
- 흩어져 있는 분산(Scattering variance)이 큰, 즉 정보가 널리 퍼져있는 상태가 손실 없이 잘 표현되었다고 함
- 아래의 그림 중 직관적으로 판단할 경우 맨 오른쪽이 정보 손실의 최소에 해당
-
- 투영 변환을 적용하여 2차원 공간을 1차원 공간으로 축소
- (a) x1, x2 / x3, x4 가 같은 점으로 투영됨
- (b) x1, x3/ x4/ x2 가 같은 점으로 투영됨
- (c) x1/ x2/ x3/ x4 가 각기 다른 점으로 투영됨 -> 정보의 손실이 최소임
- 이 경우 2차원 상에 표현되었던 점이 한 직선상에서 표현되므로 1차원으로 차원 축소 됨
- 이때 이 u를 고유 벡터(Eigen vector)라고 함
- u에 투영(projection)된 점들의 분산 값을 고유 값(Eigen value)라고 함
- Eigen value가 큰 값을 가지는 고유벡터로 투영해야 정보의 손실이 적음
PCA의 정보 손실 표현
- 원래 공간에 퍼져 있는 정도를 변환된 공간이 얼마나 잘 유지하는지 측정
- 이 수치를 변환된 공간에서 분산으로 측정
- 단, 데이터가 비선형적인 모습이라면 PCA를 적용하기 힘듦
- 얼굴 분석 등에 사용됨
- LDA는 PCA와 다르게 주어진 데이터의 클래스를 고려하여 클래스가 잘 구분되는 축을 찾음(LDA가 더 어려운 이유)
최적화 문제
변환된 샘플들의 분산을 최대화하는 단위 벡터 u를 찾는 문제
변환 공간에서의 분산 계산 예제
5.2 알고리즘
주성분 분석: 변환행렬 구성 단계, 선형 변환
Q) 2차원 평면상의 5개의 점 (0,5), (1,4), (2,3), (3,2), (4,1)를 PCA 방법으로 차원축소하시오
최대 분산을 갖는 축 계산 알고리즘
- 공분산 행렬 구하기
- 공분산 행렬의 고유값 계산
- 고유값이 큰 경우의 고유 벡터 구하기
- 해당 고유 벡터가 최대 분산을 갖는 축에 해당(데이터를 가장 잘 표현하는 축)
6. 얼굴 인식: 고유 얼굴
컴퓨터 비전에서 PCA의 응용 사례
- 기술자 추출: PCA-SIFT, GLOH 등
- 가장 혁신적인 응용 -> 얼굴 인식
얼굴 인식
일반적인 얼굴 인식 시스템 흐름
얼굴 특징 기술
- 얼굴 인식을 위해서 얼굴 특징을 어떻게 표현하면 좋을까?/ 얼굴 이미지의 픽셀값을 그래도 특징으로 사용한다면?
- 주성분 분석(PCA)을 이용한 방법
- 정보 손실을 최소화하면서 더 적은 차원의 특징 벡터로 표현
- 예) 100x100 픽셀 얼굴 이미지의 경우 10,000차원 벡터 ->128차원 벡터로 표현
- 딥러닝 기반의 특징 인코딩 방법
- data-driven 방식으로 효과적인 특징 벡터 표현을 학습
평균 얼굴
얼굴 영상에 PCA 적용
- 영상 $f_i$를 벡터 형태로 변환
- 여기서 벡터의 차원 D=MxN임, 행 우선으로 재배치
- n개의 얼굴 영상으로 구성된 학습 집합 $X=\{x_1, x_2, \cdots, x_n\}$을 입력으로 PCA를 적용
- 이렇게 얻은 고유 벡터 $u_1, u_2, \cdots, u_d$를 고유 얼굴이라 부름
- 이들에 (6.43)식을 역으로 적용하여 얼굴 형태로 바꾸면 아래와 같은 결과가 나옴
- 고유값이 작아질수록(오른쪽으로 갈수록) 얼굴의 형태가 흐릿해지는 것을 확인할 수 있음
- 특정 사람의 얼굴을 Face = $\alpha_1*EF_1 +\alpha_2*EF_2 + \cdots + \alpha_6*EF_6$으로 표현할 수 있음
- 고유 얼굴이 얼굴 형태를 띠는 이유는?
고유 얼굴의 활용: 얼굴 영상 압축[Sirovich87]
- 고유 얼굴을 이용한 얼굴 영상 표현
- 역 변환으로 복원 가능
고유 얼굴의 활용: 얼굴 인식[Turk91b]
- PCA로 변환한 벡터 $y_i$를 모델로 사용: $Y=\{y_1, y_2, \cdots, y_n \}$
- 테스트 영상 f가 입력되면 PCA로 y를 구한 후, Y에서 가장 가까운 벡터를 찾아 그 부류로 분류
고유 얼굴의 활용 시 주의점
- 얼굴을 찍은 각도와 얼굴 크기, 영상 안에서의 얼굴 위치, 조명이 어느정도 일정해야 함
- 영상마다 다르고 그 변화가 클수록 성능이 떨어짐
- Turk와 Pentrland의 연구 결과
- 조명에 변화를 준 경우 96%, 각도에 변화를 준 경우 85%, 크기에 변화를 준 경우 64%의 정인식률을 얻음
'인공지능(AI) > 컴퓨터비전(CV)' 카테고리의 다른 글
simCLR을 통해 Contrastive Learning 이해하기 (0) | 2022.12.16 |
---|---|
[패턴인식] 매칭 (0) | 2021.12.19 |
[패턴인식] 특징 기술(1): 특징 기술자, 영역 기술자 (0) | 2021.12.17 |
[패턴인식] 영상분할(2): 민시프트, 대화식 물체 분할 (0) | 2021.12.16 |
[패턴인식] 영상분할(1): 영상 분할의 원리, 전통적 방법 (0) | 2021.12.16 |