superpixels는 segmentation 혹은 detection 분야에서 자주 쓰인다.
→ 지각적으로 의미있는 픽셀들을 모아 그룹화
superpixels를 통해 영상에서 비슷한 픽셀들을 묶음으로 표현이 가능하다.
•
이미지 복잡성을 줄일 수 있다는 관점에서 계산적 효율성이 있다.
•
superpixels 내의 pixel들은 각각 그룹의 공통점을 공유
•
객체간 의미있는 boundary 분류 가능
•
효율적인 픽셀간의 상호작용
추출 방식은 graph-based와 gradient-based 방식으로 크게 나눌 수 있다.
영상 → 특징 비슷한 균일한 영역으로 나눔 → 작은 영역들을 기반으로 영상처리
이 작은 영역들이 superpixels이다.
super pixel에 요구되는 특징
1.
compactness ( 밀집성 )
2.
boundary precision / recall ( 경계 일치도 )
3.
under segmentation의 최소화 ( 과소 분할의 최소화 )
4.
uniformity ( 균일성 )
이 과정이 잘못되면 이후의 영상해석에 큰 영향을 미치기 때문에 주의해야 한다.
superpixels구하는 방식 중 기울기 기반인 SLIC
SLIC (simple linear iterative clustering)
비교적 최근의 알고리즘으로 k-means clustering방식을 superpixel 문제로 변형한 방법이다.
이 논문에서 superpixel에 요구되는 기능
1.
이미지의 경계와 붙어있어야 한다.
2.
전처리 단계에서 사용하기 위해 속도가 빠르고 메모리 사용이 적으며 사용하기 쉬워야 한다.
3.
segmentation 목적이라면 더 속도가 빨라야 하며 결과물의 질도 좋아야 한다.
⇒ SLIC은 기존 방식보다 빠르고 메모리 사용이 적다.
k-means와 다른 특별한 차이
1.
매 반복마다 계산에 사용되는 샘플의 범위를 제한한다 → 계산량을 줄임
2.
color와 지역 정보의 차이에 대해 가중치를 다르게 적용해 이를 조절해 superpixel의 크기와 compactness를 조절한다.
알고리즘
1.
k개의 클러스터의 중심 초기화 → k는 하이퍼파라미터로 생성할 슈퍼픽셀의 수가 된다.
생성된 슈퍼픽셀은 가로세로 비슷한 크기를 갖게되어 각 수퍼픽셀의 간격은 로 계산한다.
2.
따라서 클러스터 중심 는 일정 간격 를 갖는 격자무늬 위치와 CIELAB 공간에서의 픽셀값으로 초기화된다. (CIELAB가 아닌 gray값을 사용하여도 무방)
3.
각 클러스터 중심에서 gradient가 가장 작은 위치로 중심을 이동한다. → noise로 인해 슈퍼픽셀 중심이 엣지에 붙는 것을 방지
4.
모든 픽셀에 대해 그 픽셀에 영향을 미칠 수 잇는 클러스터 중 가장 거리가 가까운 클러스터로 레이블링한다. (중심의 위치가 S 이내 → 필요한 몇개의 클러스터만 계산하면 되므로 k-means에 비해 속도가 향상된다.)
5.
모든 픽셀의 레이블 할당이 완료되면 k-means처럼 클러스터 i에 할당된 모든 픽셀들을 평균해 새로운 클러스터 중심 를 갱신한다. 그리고 새로운 중심과 이전 중심과의 L2norm과 Error 를 residual error로 정의한다.
6.
이를 반복하며 E의 수렴까지 반복한다. 논문에서는 10번정도면 만족할만한 결과를 얻을 수 있다고 한다.
7.
마지막에는 연결되지 못한 픽셀은 가까운 픽셀로 연결시켜준다 (post processing)
클러스터와 픽셀 사이 거리 D는 CIELAB 컬러 공간에서 l, a, b와 위치 x, y를 사용한다.
픽셀 위치 차이는 이미지 크기에 영향을 받기 때문에 가중치를 사용한다
: color 공간에서의 L2norm
: 위치 공간에서의 L2norm
는 컬러 공간에서 가장 큰 거리 클러스터나 이미지마다 매우 다른 양상
따라서 위의 식을 변형하여,
m이 크다면 지역성이 강조되어 수퍼픽셀은 compact해질 것이고, m이 작으면 이미지 경계에 더 붙는 경향을 보일 것이다.