1. Segmentation
- 이미지를 구성하는 성질들을 분리해 내는 것을 말한다.
- 공간, 색 거리가 가까운 픽셀들을 묶어서 superpixel을 구분지을 수 있다.
- 대상과 배경의 분리, 영상에서 교통 표지판, 사람, 자동차 의미 객체를 분리 등이 segmentation이다.
- 사람의 인지 능력에 다가가기 위한 노력의 중간 단계라고 볼 수 있다.
2. clustering
- 픽셀의 특징에 따라 군집을 이루도록 해서 segmentation을 수행한다. (K-means, Mean shift)
- 특징 공간은 RGB 색일 수도 있고 x,y좌표일 수 있다. 이 특징에 따라 관련도가 높은 영역끼리 군집화한다.
3. K-means clustering
- high similarity를 갖는 묶음들을 token이라고 한다.
- 어느 군집에 속할지 모르는 노란 데이터x가 들어왔을 때 가까운 class에 속하도록한다.
- class Si에 속하는 모든 x와 class Si의 중심점 ui의 거리들의 제곱합이 최소가 되도록 한다.
- 즉 segmentation은 가장 잘 뭉쳐있는 k개의 그룹을 찾는 문제이다.
- 근데 저 식에서 N으로 나누기만 하면 편차 제곱(분산)이다. 즉 variance를 최소화 하는 문제로 볼 수 있다.
- 위 식을 함수로 만들어서 u에 대해 미분했을 때 0이 되는 u를 찾는다. ( = 가장 잘 뭉치도록 분류하는 centerpoint u를 찾는다)
- 클래스의 중심은 그 클래스를 구성하는 점들의 무게중심(평균)이다.
1. 초기값으로 세 군집의 중심점(center point, 평균)을 설정한다.
2. n개의 점들에 대해 가까운 center point에 따라 군집을 이룬다.
3. 그 군집의 평균 점을 다시 구한다.
..2,3 반복...
- k class의 mean을 계속해서 다시 구한다. 군집의 분류가 어느 지점에서 수렴할때까지 반복한다.
- 이렇게 이미지를 k개의 그룹으로 Partition한다.
- 다양한 distance를 사용할 수 있다. r,g,b 값들의 거리를 구한다. 혹은 픽셀의 위치, 텍스쳐를 고려하여 픽셀의 거리를 정의할 수도 있다.
- 빨간점에서 두 class의 중심간 거리가 같을 때, 빨간 점이 어디 속하는지 판단하기 어렵다.
- 따라서 variance를 고려한 거리인 Mahalanobis를 사용할 수 있다.
- 유클리디안 거리를 사용하면서도 각 class가 퍼져있는 정도를 고려한다.
- scale말고 각도간의 거리를 구할때 활용된다.
- k-means 알고리즘은 결과가 수렴함이 증명되어 있고 매우 쉽고 빠르다.
- 하지만 메모리를 굉장히 많이 잡아먹는다.
- 사용자가 직접 k를 정해줘야 하는 의존성이 있다.
- outlier, 초기값에 따라서 민감하다.
4. Mean shift segmentation
- 영상에서 특징 밀도가 높은 지점(peak, mode, local maxima)을 찾아가는 방법이다.
- 2d 영상의 점들을 3차원으로 나타낸다. 밀도가 촘촘한 곳들을 찾아서 kernerl을 이동해가는 알고리즘이다.
- parzen window기반의 커널을 적용한 예시이다.
- 커널의 크기에 따라 추정되는 density값이 달라진다.
- 여기까지 확률 밀도 함수를 추정하는 것을 배웠다.
- 이제부터 mean shift 알고리즘으로 peek(mode)를 찾는 방법을 알아보자.
- 현재 위치에서 반경 r 이내에 들어오는 데이터들에 대해 yt+1을 구한다.
- 더 밀도가 빽빽한 쪽으로 이동한다.
- 1~2 과정을 위치변화가 거의 없을 때까지, 즉 수렴할 때까지 반복한다.
- 저 점들은 2d 이미지의 픽셀들의 rgb 공간 좌표이다. 밀도가 촘촘한 곳을 찾아 나간다.
- 윈도우에서 밀도가 촘촘한 곳으로 mean을 이동시키면서 climing한다.
- 이렇게 각 출발지점에서 시작해서 peek 지점을 찾아나간다.
- 드디어 peek 점을 중심으로 clusting하면 segmentation이다.
- mean shift 알고리즘은 커널 크기 h에 영향을 많이 받는다.
'ComputerScience > ImageProcessing' 카테고리의 다른 글
Computer Vision - Human detection (0) | 2022.06.04 |
---|---|
Computer vision - Motion (0) | 2022.05.19 |
Computer vision - Homography (0) | 2022.05.12 |
Computer vision - Alignment (0) | 2022.05.12 |
Computer vision - RANSAC (line fitting) (0) | 2022.04.19 |