연결 탐구 3 · 얼굴과 벡터

얼굴 모양도 벡터로 계산할 수 있을까?

같은 부위를 가리키는 점의 좌표를 차례로 적으면 하나의 긴 벡터가 된다. 이 페이지에서는 카메라나 실제 얼굴 대신 합성 자료를 사용한다. 평균, 차이, 표정 이동, 정렬을 계산하며 얼굴을 벡터로 나타내는 조건을 확인한다.

1중립 얼굴에 표정 벡터 더하기

랜드마크 26개로 만든 52차원 얼굴 벡터. 좌표는 (x₁,y₁,x₂,y₂,…) 순서로 놓는다. 중립 얼굴 μ에 미소 방향 d를 더하면 x(α)=μ+αd이다. 슬라이더로 α의 부호와 크기를 바꾸어 보자.

0.75
중립 얼굴 랜드마크와 표정이 적용된 랜드마크를 비교하는 그림이다.

대체 설명: α가 양수이면 입꼬리와 눈썹 바깥점이 올라가며, 음수이면 반대 방향으로 움직인다.

x(0.75) = μ + 0.75d 표정 이동의 크기 ‖αd‖ = 0.00
왜 점의 순서가 중요한가?

벡터 덧셈의 전제는 모든 얼굴에서 같은 번호가 같은 부위를 가리키는 것. 점의 순서가 섞이면 서로 다른 부위의 좌표를 더하게 되어 계산의 의미가 사라짐.

2평균을 빼면 개별 차이가 남는다

정렬된 얼굴 네 개의 좌표별 평균을 μ라 한다. 개별 차이 벡터는 d=x−μ이다. 얼굴은 μ+βd로 재구성한다. β를 바꾸어 같은 차이의 방향과 세기를 조절해 보자.

1.00
평균 얼굴과 평균에 차이 벡터를 더한 얼굴을 나란히 비교하는 그림이다.

대체 설명: 왼쪽은 네 얼굴의 좌표별 평균이고, 오른쪽은 선택한 차이를 평균에 더한 결과이다.

재구성 = μ + 1.00(x−μ) 선택한 차이의 크기 ‖x−μ‖ = 0.00
평균 전에 무엇을 맞춰야 할까?

평균이 유용하려면 같은 부위끼리 더해야 함. 위치·크기·회전이 다르면 표정 대신 촬영 자세가 차이 벡터에 섞임. 다음 정렬 실험은 두 종류의 차이를 분리하는 단계.

3아핀 정렬로 자세 차이 걷어 내기

비교 전에 위치·크기·회전 맞추기. 목표는 회색 기준점과 파란 보정점의 겹침. 사용한 변환은 p′=Ap+b 꼴인 아핀변환의 특별한 경우.

0.0° 1.00 0.00 0.00
평균 오차 0.00
회색 기준 랜드마크에 파란 보정 랜드마크를 맞추는 그림이다.

대체 설명: 정렬 전 얼굴은 기준에서 회전, 확대, 이동되어 있고 보정 슬라이더가 그 차이를 줄인다.

실제 랜드마크 정렬은 어떻게 할까?

두 눈 사이 거리로 크기를 맞추고, 눈을 잇는 선으로 회전을 맞추는 방식. 실제 검출기는 모델에 따라 수백 개의 대응점을 출력함. 점의 수보다 중요한 조건은 의미가 일관된 대응점과 공통 좌표계.

4연결 지도

좌표 맞추기 → 차이 재기 → 주요 변화 방향 찾기.

linalg:linear-maps-and-matrices

회전과 확대는 행렬로, 위치 이동은 벡터로 기록한다.

linalg:scalar-products-and-orthogonality

정렬된 얼굴의 거리와 방향을 내적으로 비교한다.

hub:spectral-decomposition

여러 차이 벡터의 주요 방향을 PCA와 Eigenfaces로 찾는다.

실제 얼굴 데이터를 쓴다면?

이 페이지의 좌표는 모두 코드로 만든 합성 자료. 실제 얼굴 랜드마크는 생체정보가 될 수 있으므로 수집 목적·보관 기간·동의 범위를 먼저 정해야 함. 벡터 표현 가능성이 무제한 수집을 정당화하지는 않음.

탐구실 · 좌표 계산이 의미를 얻는 조건

한 실험을 골라 수치·식·계산이 무너지는 조건을 함께 기록하기.

표정 옮겨 보기

미소 벡터를 다른 윤곽에 옮기고 비율 보정이 필요한 랜드마크를 찾는다.

평균의 한계 찾기

위치·크기·회전을 바꾸어 정렬 전 평균이 흐려지는 반례를 만든다.

정렬 오차 분석

새 자세 세 개의 정렬 전후 오차를 비교하고 가장 민감한 변수를 찾는다.