Mid level features: Shapes
2024. 6. 4. 21:34ㆍArtificial Intelligence/Computer Vision
Shapes
- Shape은 Color, Texture보다 고차원적인 피처임.
- Color, Texture는 이미지 전체에 나타나는 속성이지만, Shape은 specific region에만 나타나기 때문임.
- Segmentation 문제 해결에서 shape description을 위한 interests operator가 사용됨.
Shape descriptor
Shape은 Region descriptors, Boundary, Interest points (corners)로 정의함.
Region based shape descriptors
모양의 기하학적 속성
- 크기, 무게중심, 둘레, 둘레의 길이, 원형성, 연장선, 반경의 평균 및 표준편차, 2차 모멘트(행, 열, mixed), 바운딩 박스, 바운딩 박스로부터 좌표 상의 거리, 데이터 분포를 모델링한 타원의 축의 길이와 방향
- position(위치), orientation(방향), scale(크기)에 독립적인 피처를 추출해야 좋음.
Zero-order moment
- 모멘트 사용 이유: 기하학적 모멘트는 이미지 분포의 공간적 특성을 표현함.
- Zero-order moment: 이미지의 모든 픽셀의 합 (2차원 이미지에서는 공간.)
Centroid
- 이미지에서 객체의 공간적 위치를 결정하는 1차 모멘트
- 2차원 이미지에서 기하학적 중심 (작성중!!!!!)
Second Moments
- 2차 공간 모멘트 3종류 (row, mixed, column)
Perimeter and Perimeter Length
- Perimeter는 점의 리스트이고, Perimeter Length는 그 점들이 이루는 둘레의 길이로 의미가 다름.
- 4-connected adjacency와 8-connected adjacency의 차이
둘레를 표현할 때 사용하는 픽셀 방향 개수에 차이가 있음.
Circularity
- Circularity1: 원에 가까울수록 둘레는 줄어듬.
- Circularity2: 평균이 주어졌을 때, 분산이 적을수록 원에 가깝고 분산이 클수록 타원에 가까움.
Orientation
- Orientation은 연장선의 방향을 통해 객체의 방향을 정의하는 것으로, 최소 2차 모멘트.
- 카이제곱 값을 최소화하는 로우와 세타를 찾아야 함.
- 센터를 지나는 무수히 많은 직선을 그릴 수 있지만, 그 중에서 거리차가 가장 적은 것이 orientation.
Topological region descriptors
- Topological properties로는 구멍의 개수(H), 연결되어 있는 요소 개수(C)가 있음.
- Hole counting 패턴 정의: 1은 빛이 통과하지 않는 부분(검은색) & 0은 빛이 통과하는 hole(흰색)
- External corner: 1(3개)와 0(1개)
- Internal corner: 0(3개)와 1(1개)
- 홀 카운팅 알고리즘
- M은 이진 이미지로 R개의 행과 C개의 열이 있음. E는 external corner의 개수, I는 internal corner의 개수
- 홀의 개수: (E-I) / 4
integer procedure Count_Holes(M)
{
examine entire image, 2 rows at a time;
count external corners E;
count internal corners I;
return (number_of_holes = (E-I)/4);
}
Boundary based descriptors
Freeman의 Chain code
Tangent-Angle histogram
Interest Operator + Descriptors (중요)
Interest operator
- 코너나 중요한 영역(Salient region) 등 이미지에서 중요한 영역을 찾음.
- Matching과 recognition에서 활용도가 높음. Search, Object recognition, Image alignment & stitching, Stereo, Tracking 등의 과제에서 사용됨.
- Interest points
- 0차원 구조 (점): Matching에 쓸모가 없음.
- 1차원 구조 (선): Edge처럼 일부분만 관찰하면 Aperture problem 발생.
- 2차원 구조 (코너): 코너는 Interest point임. Matching에 활용도 높음.
- Local invariant photometric descriptors
- Local: 물체가 가려지거나 복잡한 배경이 있어도 잘 동작하며, Segmentation 없이 이미지를 한 번에 처리함.
- Photometric: 픽셀의 밝기와 색상 정보를 기반으로 독특한 피처를 추출함.
- Invariant: 피처가 이미지 변환 및 조명 변화에 영향을 받지 않음.
- Zhang Approach
- Harris detector로 Interest points 추출 → Cross-correlation으로 점들을 비교 → Fundamental matrix로 검증
- Fundamental matrix: 이미지 A(Matrix 1)의 점들을 이미지 B(Matrix 2)의 대응되는 점들에 연결함. 이때 Homography가 사용되며, least square error를 최소화하는 방정식들이 사용됨.
- 일반적인 Detector 및 Descriptor의 접근
Interest points 추출 → Local descriptors 계산 → Correspondences 결정 → 비슷한 이미지 선별
Harris operator
- Harris detector는 Auto-correlation의 아이디어에 기반하며, 여러 방향에서의 차이를 Interest point로 인식함.
- Harris detector의 Background: Moravec Corner Detector
- 이미지에서 Window가 4가지 방향으로 이동하며, 이들 간의 차이를 계산. → (1,0),(0,1)(1,1),(-1,1)
- 각 픽셀의 Min difference를 계산.
- Min images에 있는 Local maxima가 코너임.
- Harris가 Moravec를 기준으로 보완한 부분
- 4방향 Shift가 아닌, 모든 방향으로의 Shift를 수행.
- 사각형 Window 대신, Smooth한 원형 Window 사용.
- 간단한 Min 함수 대신, 방향에 따라 변화하는 특성을 분석.
- Harris detector의 수학적 요소
- Auto-correlation & Summed Square Difference(SSD) ( point (x,y) & shift (Δx,Δy) )
- Auto-correlation matrix를 이용하면 discrete한 shift를 안 할 수 있음.
- 내적 값을 Rewrite.
- 중앙에 2 × 2 matrix 있음.
- Auto-correlation matrix: local neighborhood의 구조를 알 수 있음. Matrix의 eigenvalues(고유값)를 측정함.
- 2 strong eigenvalues → Interest point
- 1 strong eigenvalues → Contour
- 0 eigenvalue → Uniform region
- Corner strength: R은 코너, 엣지, 작고 평평한 영역에 대해 positive 함.
- Harris Corner 장단점 요약
장점 | 단점 |
local information discriminant greyvalue information invariance to image rotation and illumination |
Not invariant to scale and affine changes |
Multi-scaled operator
- 이미지에서 다양한 크기의 패치를 이용해 피처를 캡쳐하며, 방향 지향된 패치를 추출함.
- 예를 들어, 40 X 40 픽셀의 영역을 8 X 8 픽셀의 패치로 축소 가능함. (5X)
- 활용: 이미지 여러 장을 하나의 이미지로 결합하는 Image Stitching에 사용됨.
- 장점: Invariant to scale and rotation
Scale Invariant Feature Transform (SIFT)
- Harris operator의 단점을 보완하여, scale과 rotation에 invariant한 Interest Operator를 개발.
- 이미지를 Local feature coordinates로 변환. 이는 이미지가 translation, rotation, scale 및 기타 imaging parameters에 invariant할 수 있게 함.
- 특징: 피처가 local 하기 때문에 물체가 가려지거나 배경이 복잡해도 잘 동작함. 개별 피처는 객체의 큰 데이터베이스에 매칭됨. 적은 양의 객체로부터 많은 양의 피처를 추출할 수 있음. 실시간 성능이 높고, 피처 타입을 구별하는 넓은 범위로 확장될 수 있음.
- Scale-space extrema detection: multiple scale 및 location으로 stable features를 탐색.
- Gaussian Pyramid의 가우시안 필터로 subsampling하여, 이미지 사이즈를 줄임.
- 기존의 LoG 필터는 시그마가 작으면 작은 객체가 detect 되고, 시그마가 크면 큰 객체가 detect 됨. LoG는 시그마 값을 바꿔가며 하나의 scale에서 여러 번 실행해야 하는 번거로움이 있음. → SIFT에서는 서로 다른 scale을 가진 2개의 가우시안을 뺀, DoG를 사용함.
- Scale space는 옥타브로 분리됨. 예를 들어, 옥타브1은 scale σ를, 옥타브2는 scale 2σ를 사용함.
- Keypoint localization: location과 scale을 결정하기 위해 model에 fit 함.
- 가우시안 필터를 통한 difference에서 최대값과 최소값을 감지함. 각각의 픽셀은 인접한 8개의 픽셀과 비교됨.
- Scale < 3 이면 stable keypoints 증가, Scale > 3 이면 stable keypoints 감소, Scale = 3 이면 최대 stable keypoints 발견.
- Keypoint 후보가 발견되면 detailed fit을 수행함.
- Edge response를 제거함.
- Orientation assignment: 각각의 keypoint 영역에 대해 최적의 orientation을 계산함.
- Local gradient directions의 히스토그램 제작함.
- Smoothed histogram의 peak에 표준적인 방향을 부여함.
- 각각의 key는 stable한 2D coordinates를 만듬. (필터링에서 선택된 변수의 주된 orientation 방향을 확인함.)
- Keypoint description: keypoint 영역을 나타내기 위해 선택된 scale과 rotation에서 local image gradient를 사용함.
- Keypoint는 위치, 크기, 방향의 3가지 정보를 가지고 있으며, 각각의 keypoint에 대해 Local image region의 descriptor를 계산함.
- Normalization: Window를 standard orientation으로 회전시킴. 점이 발견된 scale을 기반으로 윈도우 사이즈를 Scaling 함.
Histogram of Oriented Gradient (HOG)
- 사용 방법
- 패치를 Crop 및 Resize 함.
- 표현해야 하는 영역의 수평, 수직 gradients를 계산함. Gradient의 magnitude와 direction을 찾음. 이미지 패치를 여러 개의 셀로 분할함.
- 8 X 8 셀들의 gradient에 대한 히스토그램을 만듬. 9개의 bins 중 해당하는 방향에 따라 값을 넣음.
- 셀들을 큰 블록으로 그룹화 함.
- 각각의 블록을 정규화 함. 4개의 셀들을 이용해서 histogram vectors를 정규화 함. 전체 이미지 패치에 대해 HOG feature vector를 계산함.
- 사람의 일부인지 판별하기 위해, SVM 분류기를 학습시킴. SVM은 Maximum margin discriminator로서 feature vector를 real number score에 맵핑함. 점수는 타겟을 배경이나 다른 물체들로부터 분리하는 목적으로 디자인 됨.
- SIFT descriptor와 비교
R-HOG는 SIFT와 매우 유사하지만, 블록들이 orientation alignment 없이 single scale에서 dense grid로 계산되는 점이 다름.
* 참고 자료
컴퓨터비전 강의자료(김은이 교수님)