사전 정보나 학습 없이 segmenatation하는 방법이 있을까
- Clustering is a problem of grouping similar data points
- Clustering is important for image processing and Image understanding
- Key challenge
- 2 points or area를 similar 하게 만드는 것은 무엇일까
- pairwise similarities 로 부터 모든 grouping 연산은 우찌 할 수 있을까
Mean Shift Segmentation
Idea
- non-parametric 접근법으로 density estimation 추론
- 한 local 에서 부터 density가 증가하는 방향으로 이동한다
Density map에서 RoI를 설정하는 너무 작으면 그 지역에서 density가 어디가 높은지 모를 수 있기 때문에 조심
너무 크면 또 RoI가 하나밖에 없는 Unimodel이 될 수도 있다
너무 크면 또 RoI가 하나밖에 없는 Unimodel이 될 수도 있다
이제 한 point에서 Kenel Func.을 통해 각 density로의 impact을 구하게 돼.
✨
Kernel Function
K(u) =
Gaussian Distribution을 따르는 이 함수는
중심으로 부터 멀어질 수록 가중치가 작아지는 함수.
중심으로 부터 특정 point까지의 거리를 나타냄.
이 함수를 통해 window의 중심을 찾아냄
만약 실제 170만큼 거리가 떨어져있으면 해당 point는 0.4개 정도 존재하고 169가 0.2정도 존재하고~ 이런 식으로 분포한다고 취급
K(u) =
Gaussian Distribution을 따르는 이 함수는
중심으로 부터 멀어질 수록 가중치가 작아지는 함수.
중심으로 부터 특정 point까지의 거리를 나타냄.
이 함수를 통해 window의 중심을 찾아냄
만약 실제 170만큼 거리가 떨어져있으면 해당 point는 0.4개 정도 존재하고 169가 0.2정도 존재하고~ 이런 식으로 분포한다고 취급
x : point
x_m : region 안의 모든 point
h : bandwidth. 커질 수록 아래의 그래프가 원만해지고 작을 수록 뾰족해짐
- kernel과 bandwidth를 정한다
- for each point
- point에 대한 window 설정
- window에 대한 mean 구하기
- 새로운 window 설정
- b~c 반복
- Assign points that lead to nearby modes to the same cluster
- pixel의 color, gradient, texture 값에 따른 feature를 연산
- 각 feature, position마다 다른 kernel size
- Mean shift 진행
- 각 kernel size에 따라 window를 merge함
parameter가 적어서 효율적인 compute 가능
- Pros
- 일반적인 segmentation으로 good
- region의 모양과 크기가 유연하다
- oulier에 강함
- Cons
- kernel size를 미리 정해야 함
- 고차원의 feature엔 적합하지 않음