들어가기에 앞서,
Detection(검출)과 Segmentation(영역화)의 중요한 기법들을 구분해보자.
1. Classification (분류)
- 영상 전체에서 픽셀 단위로 물체를 찾아 단일 물체의 카테고리를 구분 (No spatial extent)
2. Semantic Segmentation
- 픽셀 자체를 분류. (No objects, just pixels)
- 기본적인 Segmentation은 같은 특성을 가진 물체들을 Grouping. 각 Group들을 구분지어 카테고리화하는 것을 Semanatic(문맥) Segmentation이라고 한다. 즉 주어진 영상에 대해 Grouping한 것들의 화소를 분류한다.
3. Object Detection (= Localization)
- 여러 Object들에 대해 Bounding Box를 수행해서 각각의 카테고리를 확률적으로 분류한다.
4. Instace Segmention
- Segmentation과 동시에 Object Detection. 2와 3의 결합 버전
- 카테고리에 속하는 Label와 상관없이 서로 다른 객체(Instance)는 서로 다르게 분류된다.
Image Segmentation 기법
1. Edge-based
: Contour로 영상의 엣지를 구분, 영역마다 카테고리를 부여한다. (Instance화)
• Snake(Active Contour model) : Active Contour, 즉 Gradient와 Magnitude, Direction이 일치하도록 Snake를 변형해가며 실제 바운더리와 Contour가 겹쳤을 때 에너지가 최대가 되어 Contour를 확정하는 방식
• Lvel sets(Active Contour model) : Contour 자체가 아니라 ɸ (내부적인 Equation Model)를 변경하며 마찬가지로 Gradient와 Magnitude 등을 고려한 수식을 이용해 ɸ 값을 변형시킨다.
2. Region-based
: 같은 화소를 가지는 경우 같이 구분된다.
• Mean Shift 기법 : 신호들을 Grouping하는, 혹은 Clustering(군집화)하는 기법. Mode (Density가 높은 Cluster의 중심을 의미) 를 찾아 Color 값을 추출해 LUV 등 Color Space로 변환한다.
조금 더 깊게 들어가서,
Mean Shift 기법에서는 Kernel 함수를 이용해 Density를 조사하여 Mode를 추출한다.
대개 가우시안 함수를 Kernel로 설정해서, X 좌표를 기준으로 Kernel 이동시키면서 Density가 가장 큰 부분일 수록 높은 가중치를 부여한다.
이를 통해 선정된 Peak의 개수를 기준으로 N개의 mode를 가진다고 표현한다.
1)Centroid를 중심으로 ROI(Region of Interest) 원 안의 데이터들의 무게중심을 다시 구해, 새로운 무게중심을 산정한다.
2) 새로 구한 무게중심으로 Mean Shift Vector를 기준으로 Centroid를 이동시켜 다시 ROI를 그린다.
3) 현재의 Center of mass와 Centroid가 일치할 때 해당 Centroid 점이 밀도가 최대인 지점이 된다.
현재의 Centroid에 가까우면 높은 Weight를 부여해서 Center of mass를 찾아간다.
Attraction Basin
: Mean Shift를 이용해 N개의 mode(Cluster Center)를 자동으로 찾는다. Unsupervised Learning (비지도학습)을 이용해 자동 Clustering을 수행하는 것이다.
정리
1) Kernel(Gaussian Function)과 Bandwidth(Sigma)를 선택한다. Bandwidth는 Kernel을 이동하는 범위를 의미한다.
2) 새로운 무게중심을 Search Window에서 탐색하고 New Mean Location을 특정하여 이동하는 과정을 반복한다.
3) 최종적인 단계에서 Nearby Mode를 하나의 점으로 지정하여 최종 Model로 선정한다.
GrabCuts
공간적인 부드러움 없이 특정 Threshold보다 크면 ForeGround, 작으면 BackGround로 예측하는 시스템은 Nosiy하다는 단점이 있다. -> Noisy Segmentation.
Spatial Similarity(smoothness) 를 활용해 ForeGround, BackGround 확률을 동일하게 검출한다.
foreground와 background의 확률을 최대화하여, 여기에 '-log'를 곱해서 에너지를 최소화하는 방안이다.
MRF 최적화
1. Data term : 각 픽셀에 Label을 부여하는 비용
2. Smoothness term : 두 개의 픽셀들을 연결하는 데 드는 비용
Graph Cuts
화소들을 Background와 ForeGround로 분리해주는 선을 그리고, 실제로 Cut한다.
각 노드에 부여할 Label을 결정함. (Background or ForeGround)
Maximum flow & Minimum cut 알고리즘 사용
ex) Lazy Sanpping (Similar to GrabCut)
장점
1) 매우 빠른 추론이 가능하다.2) Data Likelihoods와 Priors를 통합할 수 있다. 3) 넓은 범위의 문제를 수용할 수 있다. (Stereo, Image labeling, Recognition)
단점
1) 항상 적합한 방법이 아니다. 2) unary terms가 필요하다. (Data term)
Texture
: Regular(규칙적) or stochastic(불규칙적) patterns
Texture Representation
: Filter Bank Response를 Reponse vector로 변환한 것을 말한다. filter bank : 여러 개의 필터를 한꺼번에 사용하여 필터의 response-> Texture의 정보를 캡쳐한다.
Filter Bank의 종류 : 1) LM(Leung and Malik) Filter bank2) Schmid Filter bank3) Maximum Response Filter bank
Filter Bank response
다양한 방향과 규모에서 얼룩과 가장자리의 응답을 측정한다. 1) Simple Statistics of absolute filter response. 2) Response Vector Repsonse (픽셀 단위로 필터의 특성을 담고 있음) 를 활용해서 Cluster하여 히스토그램을 얻는다.
Visual Dictionary using Texture
1. Sample patches from a texture database: Texture를 이용한 Segmentation 8차원의 벡터에 Input image에 대한 Sample을 모아둔다. 2. Cluster the patch3. Assign a codeword to each new texture patch, according to the nearest cluster.
'Major Study > Digital Image Processing' 카테고리의 다른 글
Lecture 11. Image Stitching (Panorama) (1) | 2022.06.09 |
---|---|
Lecture10. Image Transform (이미지 변환) (0) | 2022.06.09 |
Lecture9 : Local Feature Detection and Matching (0) | 2022.06.09 |
주파수 영역 필터링(Filtering in Frequency Domain) (0) | 2022.04.05 |
C++을 이용한 선형 필터링(Linear Filtering ) 구현하기 (0) | 2022.03.31 |