공부

[컴퓨터비전] 5, 6주차 정리

narlo 2022. 12. 13. 17:24

5주차

Feature Description

keypoint들의 특징벡터 기술

 

1. 이미지 패치를 1차원 벡터로 나열

- 같은 내용을 포함하는 두 패치가 다른 밝기를 가진 경우 특징 표현이 잘 안된다.

 

2. 이미지 패치를 1차원 벡터로 나열하고, 값 간의 차이를 서술하는 방법

image gradient 이용

- 이미지에 기하학적 변환이 있는 경우 취약

 

3. color histogram을 이용하여 이미지 특징을 서술하는 방법

- 비슷한 색상 분포를 갖는 다른 사진의 경우도 같다고 판단할 수 있음

- 회전된 경우 취약한 문제는 해결

 

4. spatial histogram

셀 단위로 나누어 histogram을 계산하는 방법

- 같다고 판단하기가 힘들다.

- 회전에 취약하다.

 

Orientation Normalization

회전된 각도를 구해 0으로 바꿔주기(역회전)

 

Harris Corner의 경우 이미지의 크기에 약점을 보인다.

 

SIFT(Scale Invariant Feature Transform)

1. Multi-scale extrema detection

2. Keypoint localization

3. Orientation assignment(회전 예측)

4. Keypoint Descriptor(특징 기술)

 

Multi-scale extrema detection

이미지의 크기를 반씩 줄여가며(resize) 크기마다 keypoint를 추출한다.

같은 scale에서도 gaussian을 이용하여 시그마 값에 차이를 두며 여러 keypoint를 추출한다.

(영향을 미치는 범위가 달라진다.)

octave단위

 

Difference of Gaussian를 구한다.

보라색 점이 keypoint임을 판단할 때, 위 아래에서 추출된 keypoint까지

9 + 9 + 8 총 26개의 이웃 점을 확인하여 판단한다.

=> 극점들만 남기기

 

결론 :  크기를 고려했다.

 

Orientation Assignment(각도)

회전시켜주기 위해 주각도를 구하는 과정

keypoint 중심으로 16 * 16 패치를 잡고

패치 안에 있는 image gradient 값을 이용한다.

gradient는 magnitude(크기)와 direction(방향)을 가지고 있다.

45도씩 8개로 나누어 각도의 histogram을 쌓는다.

magnitude 값에도 gaussian을 적용한다.

magnitude 값을 누적한다.

 

16*16 패치에서 하나의 셀을 4*4로 한 예

16cell * 8 histogram = 128 dims

normalization을 이용해 합을 1로 맞춰주는 과정 필수(밝기 때문에 달라지는 것을 해결하기 위해)

 

Trilinear interpolation

주변에 있는 방향에도 값을 누적

 

SURT(Speeded Up Robust Features)

Integral image를 이용하여 image gradient 구하는 과정을 빠르게 할 수 있도록 만

Integral Image

Image Gradient를 구하기 위한 필터

Sobel, DoG ...

 

SURF에서 사용하는 필터

Haar wavelets filters

하나의 integral image에 대해 6개의 연산만 필요

-1인 부분, +1인 부분으로 나누어 3 + 3 = 6

하나의 셀마다 4개의 value

4 * 4 cell grid

4 * 16 = 64개의 dims 

 

합과 절대값의 합을 모두 구하는 이유

 

HOG(Histograms of Oriented Gradients)

반듯하게 서 있는 보행자를 타겟으로 하는 특징 기술

SIFT, SURF의 경우 특징을 뽑을 때 크기, 회전 등 여러 요소를 고려한다.

=> 범용성을 높이려 했으나 오히려 특징 기술을 잘 못하는 문제(잘못된 회전 예측 등)

 

패치

cell로 만들고, 2 * 2 cell을 block이라고 함

block에 대해 gradient의 각도에 대한 histogram 구성

unsigned => 0 ~ 180도로 한정(서있는 사람)

 

SIFT의 경우 histogram을 기술할 때 하나의 범위가 45도(rough한 histogram)

0 ~ 180을 9개로 나누면 20도씩 범위를 설정 (조금 더 detail한 특징)

 

이미지를 128 * 64 pixel로 거의 한정해두고 patch를 뽑음

하나의 셀 당 8*8 pixel

세로로 16cells, 가로로 8 cells

세로로 15 blocks, 가로로 7 blocks

 

15 * 7 : block 개수

15 * 7 * 4 : block 개수 * 셀 개수

15 * 7 * 4 * 9 : block 개수 * 셀 개수 * histogram

  

GIST

필터링을 이용해 특징을 표현한다.

Filter Bank(사전에 필터를 생성해둠)

필터의 반응값을 이용하여 이미지의 구조적 특징을 표현

 

Keypoint Matching 복습

1. 각 이미지의 keypoint 추출

2. patch를 범위로 keypoint 주위의 특징 기술

3. 거리 측정

 


6주차

2D transformation(Image transformation)

translation : 위치 이동

rotation : 회전

aspect : 비율을 다르게

affine : 여러 변환을 같이

perspective : 깊이

 

1. Scale

2. Shearing(기울기 조절)

3. Rotation

Linear Transformation

4. Translation

선형이 아니기 때문에 1이라는 요소를 추가했다.

 

 

Matrix Composition

순서가 중요하다.

가장 오른쪽에 배치된 행렬이 먼저 계산된다.

위의 예제에서는 scale, rotation, translation 순서로 적용된다.

 

이름이 있는 변환들

1. Translation

2. Euclidean(rigid)

rotation + translation

파라미터 수 : 3개(세타, r3, r6)

3. Similarity

uniform scaling + rotation + translation

파라미터 수 : 4개(s, 세타, r3, r6)

4. Affine

uniform scaling + shearing + rotation + translation

파라미터 수 : 6개(a1, a2, a3, a4, a5, a6)

 

unknown 파라미터들을 어떻게 구할 수 있을까?

매칭 포인트를 이용한다.

매칭 관계 1개 당 2개의 식을 세울 수 있다.

=> 6개의 미지수를 찾기 위해 필요한 최소 매칭 수 : 3개

x를 구하는 방법

least-square

|| Ax - b ||^2이 최소 

 

'공부' 카테고리의 다른 글

[컴퓨터비전] 9, 10주차 정리  (0) 2022.12.13
[컴퓨터비전] 7주차 정리  (0) 2022.12.13
[컴퓨터비전] 3, 4주차 정리  (0) 2022.12.13
[컴퓨터비전] 1, 2주차 정리  (0) 2022.12.13
[차량 통신 및 네트워크] 13, 14주차  (0) 2022.12.11