학교 공부/컴퓨터비전
12. Clustering and Image Segmentation
경북대학교컴퓨터학부
2022. 12. 9. 16:41
자신이 속한 집단이 어디인지 알고, 적합한 집단에 속해서 발전하는 것은 중요한 것이 아닐까
📌 clustering
- 유사한 성격을 가진 sample들을 묶어 그룹으로 형성하는 것
- 사전에 label이 주어지지 않는 unsupervised learning(비지도 학습)이다(classification은 data와 label을 같이주는 supervised learning이다)
- e.g.) data grouping, image segmentation
- method
- k-means, agglomerative Hierarchical Clustering, Mean Shift
📌 clustering : Task Definition
- training data set을 통해서 학습된 모델은 test data(new data)가 들어오면 클러스터링된 k개의 군집(D)에 속할 확률을 구한 후 그 확률이 가장 큰 i값을 찾아서 new data이 들어가야 할 subset을 지정해준다
📌 Image segmentation
- goal : 이미지를 유사한 영역으로 나는 것
- 하나의 이미지 내에서 의미적으로나 인지적으로 유사한 영역을 찾는 것이다
📌 Normalized cuts for segmentation
- 픽셀 하나를 노드로 보고 이미지를 하나의 graph로 생각할 때, 노드 사이를 적절하게 cut(관련성이 낮은 weight를 자르는 것)하는 것이다
- goal
- 군집 간 (A, B)의 유사도를 최소화하는 것
- 군집 내 원소들의 유사도를 최대화하는 것
📌 Superpixel
- 유사성을 지닌 픽셀들을 일정 기준에 따라 묶어서 만든 하나의 커다란 픽셀을 의미한다
- 활용할 경우 image에서 의미있는 경계를 찾아 분류할 수 있다
- 정사각형 모양이 가장 편하지만 image의 경계선과 많이 다르기 때문에 정사각형으로 자르는 것은 현실적으로 어렵다
📌 Clustering Methods: K-means Algorithm
- K : 데이터 셋에서의 클러스터(부분 집합)의 수
- Means : 각 데이터로부터 그 데이터가 속한 클러스터의 중심까지의 평균 거리
- goal
- mean의 값 최소화(해당 클러스터 내의 데이터들은 매우 유사하다는 것)
- 알고리즘
- 임의로 K개의 중심점을 아무 곳에 랜덤하게 설정한다
- 각각의 데이터에서 가장 가까운 중심점의 군집의 원소로 지정한다 (이 과정을 거치면 k개의 군집이 만들어질 것이다)
- 형성된 k개의 군집에 대하여 mean이 작아지도록 중심점을 다시 설정한다
- 2, 3번 과정을 반복하여 클러스터의 중심까지의 평균거리가 최소화되어 더 이상 중심점을 업데이트 할 수 없을 때까지 반복한다
$$ J = \sum^N_{n=1}\sum^K_{i=1}r_{ni}||x_n-m_i||^2 $$
- sum of variances of every clusters
- J(large) : large variance(클러스터에 있는 데이터들이 퍼져있다)
- J(small) : small variance(클러스터에 있는 데이터들이 모여있다)
- 목적함수 J를 줄이는 것이 핵심
📌 Initial center vector 설정이 중요한 이유
- 최적화하는데 반복횟수가 initial center vector에 따라 차이가 난다. 즉, 알고리즘 성능에 매우 중요한 영향을 미친다
📌 Hierarchical Clustering
- k-means 알고리즘처럼 k가 주어지면 좋지만, 그렇지 않은 경우 사용하는 clustering이다
- HCA(계층적 군집 분석)은 말 그대로 데이터 하나하나를 계층에 따라 순차적으로 클러스터링 하는 기법이다
- Agglomerative(덩어리가 되는) Hierarchical Clustering
- 데이터가 모두 나눠져있는 상태에서, 작은 단위로부터 클러스터링을 시작하여 모든 데이터가 한 덩어리가 될 때까지 반복하는 bottom-up방식으로 진행하는 것
- 가장 거리가 가까운 데이터를 찾고, 이들을 묶고, 모든 데이터가 하나의 클러스터로 묶일 때까지 계속 반복한다
- Dendrogram(덴드로그램)
- HCA의 수행과정을 표현한 것이다
- 먼저 묶일수록, 수평선의 높이가 낮다
📌 Distance of clusters for merging
- 최단연결법
- 각 클러스터 내의 원소들 사이의 거리가 가장 짧은 것을 두 클러스터 사이의 거리라고 생각하는 방법
- 최장연결법
- 각 클러스터 내의 원소들 사이의 거리가 가장 먼 것을 두 클러스터 사이의 거리라고 생각하는 방법
- 이상치에 민감하고 계산량이 많다
- 가장 거리가 먼 클러스터를 묶어준다는 의미는 아니다. 클러스터를 merge할 때는 무조건 거리가 가까운 것끼리 해주어야 한다(유사한 데이터를 묶어주는 것이 목적이니까)
- 평균연결법
- 각 원소들 간의 전체 거리를 다 계산한 후 평균값을 클러스터 간의 거리로 보는 방법
- 이상치에 덜 민감하지만, 계산량이 많다
- 중심연결법
- 각 클러스터에 대해 중심을 구하고, 그 중심 간의 거리를 계산하는 방법
- 이상치에 덜 민감하고, 계산량도 적다
- 와드 연결법
- 두 개의 클러스터를 하나로 보았을 때의 중심과 각 클러스터의 원소들 간의 거리를 클러스터 간의 거리로 보는 방법
📌 Mean Shift
- 데이터 집합의 밀도 분포를 기반으로 객체를 고속으로 추적하는 알고리즘
- sample window 내에서 데이터의 밀도가 가장 높은 곳으로 평균을 이동하는 알고리즘
- 임의로 sample window(파란색 영역)을 설정하고, 거기에서 무게중심(주황색 점)을 찾는다
- 이 과정을 반복하다보면, 목표 객체를 추적할 것
- 장점
- 일반화되고 실용적인 알고리즘
- 영역의 모양과 숫자에 대해 유연하여 많은 곳에 적용 가능
- 이상치에 덜 민감하다
- 단점
- sample window의 사이즈를 미리 결정해야 한다
- 사이즈에 따라 정확한 peak를 찾지 못하거나, local minimum에 빠질 수 있다
- 물체와 배경의 색깔이 유사(밀도가 낮다는 뜻)하면 알고리즘의 성능이 떨어진다
- 사용 분야
- segmentation을 많이 하는 경우, 객체 추적, 클러스터링