Duplicate

Lecture 21 | Grouping and Clustering

수강 일자
2022/11/15

Grouping in Vision

관련 있는 feature 들을 서로 모으는 경우
Low level vision task 와 high level vision task 사이의 중간단계 표현을 얻기 위한 경우
예시
균일한 영역별로 나누기 (Determine image regions)
영상을 비슷한 여러 장의 shot 으로 나누기 (Group video frames into shots)
많은 이미지 속에서 동일한 object 를 묶기 (Object-level grouping)
영상에서 관심있는 부분과 없는 부분을 나누기 (Figure-ground)

Gestalt Psychology or Gestaltism

Gestalt: “form” or “whole” in German
20세기 베를린 연구 학파에서 제시
사람이 어떻게 시각정보를 이해하는지에 대한 규칙을 제시
View of Brain
전체는 부분의 합보다 큼.
인간은 전체를 보고 파악하며 그것을 바탕으로 grouping 을 함. (Holistic)
평행한 정보, 유사성 등을 많이 봄. (Parallel, Analogy)
시각 정보의 빈 부분들을 채워가면서 구조화함. (Self-organizing tendencies)

Whole is More than the Sum of Its Parts

The Muller-Lyer illusion
위 그림의 직선이 더 길다고 느낌.
각각의 part 가 어떻게 구성이 되는지에 따라 인지하는 것이 달라짐.
2차원을 볼때 3차원을 고려하는, Perspective Projection 을 고려한 인지를 수행하기 때문임.
같은 Line 이라도 더 멀게 느껴지고, 실제론 더 길지 않을까? 생각을 하는 원리

Principles of Perceptual Organization

어떤 점들을 묶는가에 대한 기준들이 존재함
1.
Proximity: 얼마나 가까운가
2.
Similarity: 얼마나 생김새가 유사한가
3.
Common Fate: 같은 미래(움직임) 을 보이는 것끼리
4.
Common Region: 같은 영역에 있는가 → 인간은 두 점이 멀리 있음에도 하나의 region 에 있으면 묶인다고 생각함
5.
Parallelism: 평행한 선들끼리
6.
Symmetry: 대칭인 선들끼리
7.
Continuity: 동일 선 상의 점들끼리
8.
Closure: 닫힌 공간 각각끼리
인간이 시각 정보를 grouping 하는 근거는 매우 다양하고 그때그때 다름

Reification - Grouping by Invisible Completion

여러 도형의 관계를 설정함에 있어서 보이지 않는 부분을 활용함.
삼각형, 봉을 감싸는 뱀, 뿔난 구, 물에 걸친 뱀 등으로 위 그림을 해석함.
이런 정보들을 기계한테 알려주기는 어려움.

Gestaltists do Not Believe in Coincidence

A>B>C>DA>B>C>D 순으로 정육면체라고 생각할 확률이 높음.
우연에 의해 DD 처럼 보일 확률은 매우 낮기 때문임.

Emergence

흑백 이미지 속에서 물체를 찾아낼 수 있음.
왜 그렇게 찾을 수 있는지를 기계한테 설명하는 것은 어려움.

Gestalt Cues

사람이 어떻게 grouping 을 하는지에 대한 직관이 됨.
현실에서 해당 직관을 구현하기는 어려움.
이럴 때는 이렇게 grouping 하고 저럴 때는 저렇게 grouping 하는데, 이렇게 결정을 내리려면 전체를 이해해야 하고 기준이 있어야 하는데 기계한테 이를 이야기해주기 모호함.
Occlusion Reasoning 을 할 때 사용되기도 함.

Image Segmentation

사진이 주어졌을 때, 여러 개의 관련 있는 영역으로 나누는 과정
breaking up the image into meaningful or perceptually similar regions
어떤 점들을 같은 지점으로 볼 지는 주관적인 요소임.

Interactive Segmentation

Foreground 에 해당하는 부분을 bounding box 로 주면, foreground 와 background 를 segmentation 할 수 있음.
Background 가 균일하면 깨끗한 segmentation 을 얻을 수 있음.
정보를 준 scribe 에 해당하는 부분은 해당 정보를 만족하도록 하는 방법도 있음. (이 부분은 background 여야 함- 과 같은 정보)

Segmentation for Efficiency - Super Pixels

600×600600\times 600 이미지 같은 경우에는 360K360K 의 pixel 이 존재함.
심각하게 oversegmentation 된 경우, 각 균일한 segment 하나를 pixel 로 취급할 수 있음.
이후에 할 작업을 효율적으로 하기 위해서 pixel 수를 줄이는 과정으로 segmentation 을 활용할 수 있음.

Types of Sementations

Oversegmentations: 너무 작은 영역으로 segmentation
Undersegmentations: 너무 큰 영역으로 segmentation
Oversegmentation 은 합쳐질 여지가 있다는 점에서 undersegmentation 에 비해서는 좋음.
Segmentation 이 항상 정확하지 않다는 것을 알기 때문에, 하나의 segmentation 에 의존하기 보다는 여러 segmentation 버전을 구하고, 적절한 patch 를 찾는 방법을 활용함.

Major Processes for Segmentation

Segmentation 의 두 가지 과정
Bottom-up: 이미지 픽셀마다 feature 를 뽑고, 비슷한 feature 를 grouping
Top-down: High level resoning 부터 하여 동일한 의미를 가지는 영역들은 하나가 되도록 grouping

Segmentation: Caveats

일반적으로 사용하는 segmentation 은 bottom-up 과정임.
하지만, segmentation 을 완벽히 해결하려면 top-down (recognition) 문제를 무시할 수 없음.
Segmentation 이 어려운 점은 결과가 주관적이라는 점임.

Clustering

여러 개의 data point 들을 대표하는 하나의 token 으로 표현하는 방법
Key Challenges
Similairty Metric 을 어떻게 정하는 것이 좋을까 (비슷함의 정량적 정의)
Clustering Objective (목적함수)를 어떻게 정의해야 할까

Why do We Cluster?

Clustering 을 사용하는 이유?
Summarizing Data
데이터가 너무 많아서 요약하기 위해서 clustering 을 사용함.
Patch-based compreesion/denoising 이 필요한 경우 사용함.
Counting
이미지를 histogram 의 형태로 나타낼 때가 있는데, 이를 위해서 필요함.
Segmentation & Prediction
이미지를 다른 영역으로 분리하기 위해서 사용함. + 같은 영역이 같은 label 값으로 예측할 수 있음.

Image Segmentation: Toy Example

이미지 픽셀 값으로 clustering 가능
3 개의 명확한 histogram 의 bar 가 나타나고 명확하게 구별할 수 있음.
Noise 가 추가된 경우 Intensity 값에서 3 개의 group 을 찾아내야 함.

Image Segmentation: Toy Exmaple

이미지 픽셀 값이 noise 를 가진 채 3 개의 group 으로 나누어지는 경우를 생각할 수 있음.
각각의 대표가 되는 cluster center 를 찾고, 각각의 값들은 그들 중 가장 가까운 쪽으로 assign 하는 것으로 생각해볼 수 있음.
Data point 와 cluster center 사이의 L2 norm (SSD)을 최소화하도록 설정
cluster kdata ikcixj2\sum_{{\rm {cluster}}\ k} \sum_{{\rm {data}}\ i \in k} \|c_i-x_j\|^2
하지만 위 목표는 “Chicken and Egg” 문제가 됨
Cluster Center 를 알면, 각 데이터가 어느 Cluster 에 속할지 정할 수 있음.
각 데이터가 어느 Cluster 에 속할지 알면, Cluster Center 를 각 Cluster 에 속하는 데이터들의 중심으로 정할 수 있음.
하나가 주어지면 다른 하나를 알아내는 것은 쉽지만, 동시에 알아내는 것은 어려움.

Segmentation as Clustering

각각의 pixel 에 대해서 feature vector 를 뽑고, 해당 vector 에 대해 clustering 을 함.
가장 쉬운 방법은 intensity 값을 feature 로 뽑고 clustering 을 하는 것임.
Color Image 의 경우에는 각 픽셀에서 3차원의 intensity feature vector 를 얻어낼 수 있고, 여기서 K-means Clustring 을 돌릴 수 있음.
Filter Bank 를 사용해서 feature vector 를 뽑을 수도 있음.
Intensity 뿐만이 아니라 position 정보 또한 clustering 에 넣어줄 수 있음. → coherent 한 clustering 을 얻을 수 있음.

Image Segmentation

Segmentation → 의미있는 영역으로 이미지를 나눈 작업 (무엇이 의미인지에 따라서 주관적임)
Clustering 을 활용한 segmentation
Graph 를 활용한 segmentation
Edge & Boundary 를 활용한 segmentation
Clustering → 데이터에 대한 grouping

How do We Cluster

K-means
일반적으로 가장 많이 쓰이는 clustering algorithm
Clustering 을 해야하는 task 가 있으면 K-means 부터 고려함.
Summarization, Dictionaries of Patches …
Agglomerative Clustering
Segment 나 Cluster 의 hierarchy 를 만들고 싶은 경우에 사용
Spectral Clustering
Graph 를 자름으로써 얻게되는 Clustering
데이터 사이의 연결관계를 고려한 segmentation 을 얻고 싶은 경우에 사용