컴퓨터 비전 지역특징검출5. 목차
1. 지역 특징 검출 기초
2. 이동 및 회전에 불변하는 특징점 검출
3. 위치 찾기 알고리즘
4. 스케일에 불변하는 특징점 검출
7. 1. 지역 특징 검출 기초
지역 특징의 특성
1. 반복성
2. 분별력
3. 정확성
4. 적당한 양
5. 계산 효율
13. 2. 이동 및 회전에 불변하는 특징점 검출
특징점 검출 알고리즘
1. 모라벡 알고리즘
2. 해리스 코너
3. 2차 미분
4. 슈산
14. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 제곱차의 합으로 밝기 변화 측정
𝑆(𝑣, 𝑢) =
𝑦 𝑥
𝑤(𝑦, 𝑥)((𝑓 𝑦 + 𝑣 , 𝑥 + 𝑢 − 𝑓 𝑦, 𝑥 )2
w(y,x) : 마스크 f(y,x) : 이미지
15. 2. 이동 및 회전에 불변하는 특징점 검출
1 1 1
1 1 1
1 1 1
f(y,x) : 이미지 w(y,x) : 3x3 마스크
모라벡 알고리즘
- 제곱차의 합으로 밝기 변화 측정
16. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 점 b(5,3)에서 밝기 변화 S(0,1)
-1 0 1
-1 S(-1,-1) S(-1,0) S(-1,1)
0 S(0,-1) S(0,0) S(0,1)
1 S(1,-1) S(1,0) S(1,1)
u
v
S(0,1)
17. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 점 b(5,3)에서 밝기 변화 S(0,1)
𝑆(0,1) =
𝑦 𝑥
𝑤(𝑦, 𝑥)(𝑓 𝑦, 𝑥 + 1 − 𝑓 𝑦, 𝑥 )2
𝑤(𝑦, 𝑥) =
1 (4 ≤ 𝑦 ≤ 6, 2 ≤ 𝑥 ≤ 4)
0
𝑆(0,1) =
4≤𝑦≤6 2≤𝑥≤4
(𝑓 𝑦 , 𝑥 + 1 − 𝑓 𝑦, 𝑥 )2
1 1 1
1 1 1
1 1 1
점 b 기준 마스크
및 이미지 영역
2 3 4
4
5
6
x
y
18. 2. 이동 및 회전에 불변하는 특징점 검출
𝑆(0,1) =
4≤𝑦≤6 2≤𝑥≤4
(𝑓 𝑦 , 𝑥 + 1 − 𝑓 𝑦, 𝑥 )2
= 𝑓 4 , 3 − 𝑓 4,2
2
+ 𝑓 4 , 4 − 𝑓 4,3
2
+ 𝑓 4 , 5 − 𝑓 4,4
2
+ 𝑓 5 , 3 − 𝑓 5,2
2
+ 𝑓 5 , 4 − 𝑓 5,3
2
+ 𝑓 5 , 5 − 𝑓 5,4
2
+ 𝑓 6 , 3 − 𝑓 6,2
2
+ 𝑓 6 , 4 − 𝑓 6,3
2
+ 𝑓 6 , 5 − 𝑓 6,4
2
X가 2 일 때 X가 3 일 때 X가 4 일 때
y가 4 일 때
y가 5 일 때
y가 6 일 때
=
4≤𝑦≤6
𝑓 𝑦 , 3 − 𝑓 𝑦, 2
2
+ 𝑓 𝑦 , 4 − 𝑓 𝑦, 3
2
+ 𝑓 𝑦 , 5 − 𝑓 𝑦, 4
2
X가 2 일 때 X가 3 일 때 X가 4 일 때
19. 2. 이동 및 회전에 불변하는 특징점 검출
𝑆(0,1) = 1 − 0 2
+ 1 − 1 2
+ 0 − 1 2
+ 1 − 0 2 + 1 − 1 2 + 1 − 1 2
+ 1 − 0 2
+ 1 − 1 2
+ 1 − 1 2
= 12
+ 02
+ 12
+ 12 + 02 + 02
+ 12
+ 02
+ 02
𝑆 0,1 = 4
-1 0 1
-1 S(-1,-1) S(-1,0) S(-1,1)
0 S(0,-1) S(0,0) 4
1 S(1,-1) S(1,0) S(1,1)
u
v
점 b 기준 맵 S
및 이미지 영역
20. 2. 이동 및 회전에 불변하는 특징점 검출
𝑆(0,1) =
4≤𝑦≤6 2≤𝑥≤4
(𝑓 𝑦 , 𝑥 + 1 − 𝑓 𝑦, 𝑥 )2
Mat img = imread(“tmp.jpg”,CV_GRAYSCALE);
int S01 = 0;
int y,x;
for(y = 4; y<= 6; y++){
for(x = 2; x<=4; x++){
S01+= (img.at<uchar>(y,x+1)−img.at<uchar>(y,x))
2
;
}
}
모라벡 알고리즘
- S(0,1)을 C 코드로 구하기
21. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 점 b(5,3)에서 밝기 변화 S(0,1)를 시각적으로 구하기
S(0,1) = 𝑓 4 , 3 − 𝑓 4,2
2
+ 𝑓 4 , 4 − 𝑓 4,3
2
+ 𝑓 4 , 5 − 𝑓 4,4
2
+ 𝑓 5 , 3 − 𝑓 5,2
2
+ 𝑓 5 , 4 − 𝑓 5,3
2
+ 𝑓 5 , 5 − 𝑓 5,4
2
+ 𝑓 6 , 3 − 𝑓 6,2
2
+ 𝑓 6 , 4 − 𝑓 6,3
2
+ 𝑓 6 , 5 − 𝑓 6,4
2
f(y,x) f(y,x+1)
1 1 0
1 1 1
1 1 1
0 1 1
0 1 1
0 1 1
b
f(y,x) f(y,x+1)
12
0 (−1)2
12
0 0
12
0 0
f(y,x+1)-f(y,x)
S(0,1) = 4
22. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
f(y,x)
f(y-1,x+1)
1 0 0
1 1 0
1 1 1
0 1 1
0 1 1
0 1 1
b
f(y,x) f(y-1,x+1)
12 (−1)2 (−1)2
12
0 (−1)2
12
0 0
f(y-1,x+1)-f(y,x)
f(y+1,x+1)
S(-1,1) = 6
1 1 1
1 1 1
1 1 1
0 1 1
0 1 1
0 1 1
b
f(y,x) f(y-1,x+1)
12 0 0
12
0 0
12
0 0
f(y-1,x+1)-f(y,x)
S(1,1) = 3
23. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 점 b(5,3)에서 제곱차 합으로 구한 맵 S
24. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 점 a, b, c에서 제곱차 합으로 구한 S(v,u) 맵
25. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘
- 실제 영상에서의 S 맵(9x9 마스크로 측정)
26. 2. 이동 및 회전에 불변하는 특징점 검출
모라벡 알고리즘 특징
• a와 같은 코너에서는 모든 방향으로 변화가 심하다
• b와 같은 에지에서는 에지방향으로 변화가 적지만,
수직 방향으로 변화가 심함
• c와 같은 곳은 모든 방향으로 변화가 적다
• 모라벡 알고리즘으로는 잡음 대처가 어렵다
27. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
- 가우시안 마스크를 이용한 가중치 제곱차의 합으로 잡음 대처
𝑆(𝑣, 𝑢) =
𝑦 𝑥
𝐺(𝑦, 𝑥)((𝑓 𝑦 + 𝑣 , 𝑥 + 𝑢 − 𝑓 𝑦, 𝑥 )2
G(y,x) : 가우시안 마스크 f(y,x) : 이미지
28. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
f(y+v,x+u)≈ f(y,x)+v
𝜕𝑓
𝜕𝑦
+ u
𝜕𝑓
𝜕𝑥
= f(y,x)+v 𝑑 𝑦(𝑦, 𝑥)+u 𝑑 𝑥(𝑦, 𝑥)
29. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
𝑆(𝑣, 𝑢) ≈
𝑦 𝑥
𝐺(𝑦, 𝑥)(v 𝑑 𝑦(𝑦, 𝑥)+u 𝑑 𝑥(𝑦, 𝑥))2
30. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
𝑆 𝑣, 𝑢 ≈
𝑦 𝑥
𝐺(𝑦, 𝑥)(v 𝑑 𝑦+u 𝑑 𝑥)2
= 𝑦 𝑥 𝐺(𝑦, 𝑥)(𝑣2 𝑑 𝑦
2
+2vu 𝑑 𝑦 𝑑 𝑥 + 𝑢2 𝑑 𝑥
2
)
= 𝑦 𝑥 𝐺(𝑦, 𝑥)(𝑣 𝑢)
𝑑 𝑦
2
𝑑 𝑦 𝑑 𝑥
𝑑 𝑦 𝑑 𝑥 𝑑 𝑥
2
𝑣
𝑢
= (𝑣 𝑢) 𝑦 𝑥 𝐺(𝑦, 𝑥)
𝑑 𝑦
2
𝑑 𝑦 𝑑 𝑥
𝑑 𝑦 𝑑 𝑥 𝑑 𝑥
2
𝑣
𝑢
= (𝑣 𝑢)
𝑦 𝑥 𝐺(𝑦, 𝑥)𝑑 𝑦
2
𝑦 𝑥 𝐺(𝑦, 𝑥)𝑑 𝑦 𝑑 𝑥
𝑦 𝑥 𝐺(𝑦, 𝑥)𝑑 𝑦 𝑑 𝑥 𝑦 𝑥 𝐺(𝑦, 𝑥)𝑑 𝑥
2
𝑣
𝑢
= (𝑣 𝑢)
𝐺 ∗ 𝑑 𝑦
2
𝐺 ∗ 𝑑 𝑦 𝑑 𝑥
𝐺 ∗ 𝑑 𝑦 𝑑 𝑥 𝐺 ∗ 𝑑 𝑥
2
𝑣
𝑢
= 𝑢 𝐴 𝑢 𝑇
2차 모멘트 행렬 A = (
𝑮 ∗ 𝒅 𝒚
𝟐
𝑮 ∗ 𝒅 𝒚 𝒅 𝒙
𝑮 ∗ 𝒅 𝒚 𝒅 𝒙 𝑮 ∗ 𝒅 𝒙
𝟐 )
31. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-가우시안 마스크 G를 이용한 점 a의 행렬 A 구하기
G=
0.0751 0.1238 0.0751
0.1238 0.2042 0.1238
0.0751 0.1238 0.0751
σ = 1.0인 가우시안 마스크 G
32. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-y축 방향 도함수 영상
y축 방향 영상 미분 𝒅 𝒚
𝒅 𝒚
𝟐
33. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-도함수 영상
𝒅 𝒚 𝒅 𝒚
𝟐
𝒅 𝒚 𝒅 𝒙𝒅 𝒙
𝟐
𝒅 𝒙
34. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-도함수 영상
𝒅 𝒚 𝒅 𝒚
𝟐
𝒅 𝒚 𝒅 𝒙𝒅 𝒙
𝟐
𝒅 𝒙
35. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-도함수 영상과 가우시안 마스크 컨벌루션 연산
𝒅 𝒚
𝟐
36. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-도함수 영상과 가우시안 마스크 컨벌루션 연산
𝒅 𝒙
𝟐
37. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-도함수 영상과 가우시안 마스크 컨벌루션 연산
𝒅 𝒚 𝒅 𝒙
38. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-2차 모멘트 행렬 A로 특징 가능성 구하기
C = λ1λ2 − k (λ1 + λ2) <- k는 보통 0.04
39. 2. 이동 및 회전에 불변하는 특징점 검출
해리스 코너
-실제 이미지에서 검출된 해리스 코너
40. 2. 이동 및 회전에 불변하는 특징점 검출
2차 미분을 사용한 방법
𝐻 =
𝑑 𝑦𝑦(σ) 𝑑 𝑦𝑥(σ)
𝑑 𝑦𝑥(σ) 𝑑 𝑥𝑥(σ)
𝑑 𝑦𝑥 σ =
𝜕
𝜕𝑥
(
𝜕
𝜕𝑦
𝐺 𝑦, 𝑥, σ ∗ 𝑓 𝑦, 𝑥 )
𝐶 = det 𝐻 = 𝑑 𝑦𝑦(σ) 𝑑 𝑥𝑥(σ) - 𝑑 𝑦𝑥(σ)2
𝐶 = 𝛻2
= 𝑡𝑟𝑎𝑐𝑒 𝐻 = 𝑑 𝑦𝑦(σ) + 𝑑 𝑥𝑥(σ)
41. 2. 이동 및 회전에 불변하는 특징점 검출
슈산
- 중심점과 인근 지역 밝기 유사 정도로 특징 가능성 측정
우산을 이용한 특징 가능성 검출
42. 3. 위치 찾기 알고리즘
해리스 특징점 검출
- 해리스 특징 가능성 맵과 특징점
특징 가능성 맵 지역 최대점 비최대 억제로 찾은 특징점
43. 3. 위치 찾기 알고리즘
비최대 억제
- 지역 최대점을 이용한 위치 찾기
44. 3. 위치 찾기 알고리즘
비최대 억제
- 지역 최대점을 이용한 위치 찾기
T = 0.18
c = m(3,3)
if((c>T) and (c > m(j,i+1) and c > m(j,i-1)
and c > m(j+1,i) and c > m(j-1,i))
F = F U (j,i)
3
3
47. 4. 스케일에 불변하는 특징점 검출
가우시안 스무딩을 이용한 다중 스케일 공간
-(y,x,t)로 표현되는 스케일 공간
48. 4. 스케일에 불변하는 특징점 검출
지역 극점 탐색
-다중 스케일 공간에서 극점 찾기
작은 방울 : 7 큰 방울 : 11
49. 4. 스케일에 불변하는 특징점 검출
11 / 7 = 1.57 5.5 / 3.59 = 1.532
지역 극점 탐색
-물체 스케일의 s 배는 σ의 s배에 해당한다. (린드버그)
50. 4. 스케일에 불변하는 특징점 검출
해리스 라플라스
-(y,x,t)로 표현되는 스케일 공간
단일 스케일 2차 모멘트 행렬 A = (
𝑮 ∗ 𝒅 𝒚
𝟐
𝑮 ∗ 𝒅 𝒚 𝒅 𝒙
𝑮 ∗ 𝒅 𝒚 𝒅 𝒙 𝑮 ∗ 𝒅 𝒙
𝟐 )
51. 4. 스케일에 불변하는 특징점 검출
SIFT(Scale-Invariant Feature Transform)
-피라미드 구조의 스케일 공간
옥타브 0
(원본 영상)
옥타브 1
옥타브 2
4 x 4 영상
52. 4. 스케일에 불변하는 특징점 검출
SIFT(Scale-Invariant Feature Transform)
-피라미드 구조의 스케일 공간
53. 4. 스케일에 불변하는 특징점 검출
SURF(Speeded-Up Robust Features)
-미분 연산자 근사화를 통한 고속 특징점 검출
54. 4. 스케일에 불변하는 특징점 검출
SURF(Speeded-Up Robust Features)
-스케일 연산자 크기를 조절하여 스케일 공간 구축
55. 해리스 라플라스 SIFT SURF
2,100ms 400ms 70ms
알고리즘 별 연산 속도
-800 x 600 영상에서 특징점 검출
SURF [Bay2006,2008]