왼쪽 그림은 test data, 오른쪽 그림은 training data이다. Active shape model은 training data의 각 point들의 distribution을 학습하는 방식이다.
Active contour model로 test data의 boundary를 좁혀나가며 shape을 따낼 때 active shape model이 갖고 있는 각 point들의 distribution을 활용해 보정한다.
이 때, shape의 distribution을 학습하기 위해 사용되는 기법이 PCA이다.
왼쪽 그림을 보면 training data에서 각각 대응되는 point들 가 있다.
먼저 shape을 오른쪽 그림과 같이 center point를 기준으로 align한다. 그리고 각각 대응되는 point마다 distribution을 학습한다. 학습 과정은 PCA와 유사하며 다음과 같다.
Data normalization
training data 의 전체 평균을 구한다.
Compute covariance matrix
training data 의 를 구하는 식이다. 이를 통해 평균을 0으로 normalization 해준다.
의 covariance matrix 를 구한다.
Compute eigenvectors of matrix
SVD로 covariance matrix 에 대한 eigen vector, eigen value를 구한다.
Compute principal components
일부 eigen vector를 가져와 PCA를 계산해 를 얻는다.
에 다시 를 곱해 복원한다.
를 에 더함으로 를 업데이트한다.
학습 결과 학습된 를 얻게 된다.
먼저 위 그림과 같이 를 통해 초기 mean shape을 구하고 active contour model과 같은 알고리즘으로 적절한 위치로 배치 시킨다. 그리고 shape의 point 를 active shape model로 업데이트 한다. 업데이트 된 에 다시 active shape model을 적용해 업데이트하며 최적의 를 구해나가는 과정을 반복한다.
Active shape model은 point들의 distribution을 고려해 업데이트한다는 장점이 있지만 training data에서 matching되는 point를 찾는 것이 어렵다는 단점이 있다.