Convolution
먼저 1D Convolution에 대하여 살펴보도록 하면, 식은 다음과 같이 나타난다.
이때 f(x)를 f(x-i)로 뒤집어서 적고 g 함수와 곱을 해준다.
이때 뒤집어 주는 함수 값은 g(x)를 뒤집어도 무방하다.
우리는 중앙에 가까운 값을 앞으로 kernel의 원점. 즉 origin w’ 라고 부를 것이다.
(표기의 편의성을 위해 w’로 표기함)
만일 kernel의 개수가 짝수인 경우는 중앙측 기준 왼쪽으로 사용되며, 주로 odd(홀수)를 사용한다.
Kernel은 구성은 크게 2가지로 나뉘는데,
- Smoothing kernels (평활화 커널)
n 인접 지역의 값을 평균화하여 잡음의 영향을 줄인다.
n 잡음을 제거하였기에 부드러운 효과를 줄 수 있다.
n 저역 통과 필터(LPF)이다.
- Differentiating kernels (차별화 커널)
n 신호가 빠르게 변화하는 장소를 강조한다.
n 영상으로부터 물체 감지와 같은 유용한 정보를 추출하는 데 사용한다.
n 고역 통과 필터(HPF)이다.
1D Convolution은 다음과 같은 과정으로 연산 된다.
마찬가지로 이를 행렬로 나타내면 다음과 같다.
다음은 Convolution의 주요한 성질이다.
è Fourier Multiplication
n 퓨리에 변환으로 인해 convolution이었던 값이 곱으로 바뀌고, 이를 다시 역 퓨리에 변환 해준다.
n 이는 곱셉이 컨볼루션보다 비용과 계산량이 적게 들기에 상당한 절감을 가져올 수 있다.
è Linear Vs Nonlinear Systems
n 위의 속성들에 대해 모든 입력이 유지되면 시스템은 선형(linear)라고 한다.
n 이러한 속성이 모두 만족 하는 경우를 superposition이라고 하며, 해당 방정식에 대해 모든 입력과 모든 스칼라가 유지되지 않는다면 비선형(nonlinear) 라고 한다.
ð shift-invariant (쉬프트 불변)
n Shift 된 input과 Output이 동일하게 shift 되었다면 linear, 아니라면 nonlinear이다.
ð Linear shift-invariant systems
만약 f함수에 임펄스 함수를 넣으면 해당 위치에서의 g함수의 값을 알 수 있다.
FIR (finite impulse response) filter : 이는 주로 영상처리를 할 때 사용하며, convolution의 kernel이 유한한 길이를 가졌음을 나타낸다.
IIR (infinite impulse response) filter : 이는 FIR과는 반대로 무한한 길이의 커널을 나타낸다.
2D Convolution
유의할 점으로, 위의 식에서 input 영상 데이터를 뒤집어서 넣어야 한다.
앞장에서 LUT를 만들 듯 이번 장에서는 G의 함수(Convolution mask = Kernel)를 만드는 것이 중점이다.
왼쪽 그림의 경우 모든 mask의 합이 1으로 나온다. 이렇게 1이 나오는 경우에는 원본 신호의 밝기 변화가 거의 존재하지 않는다.
오른쪽 그림을 보면, 모든 mask의 합이 0인데 이 경우 모든 밝기(에너지)가 다 사라지게 되며 edge의 신호만 남아있게 된다. (= HPF로 사용)
Embossing
ð Nickel sheet에 etched한 것처럼 이미지가 나타난다.
ð mask의 sum = 0 이고, 중앙 부분에는 0인 값을 사용한다.
이는 color image에도 사용이 가능한데,
RGB의 경우 3채널 별로 각기 다른 embossing kernel 값을 준 뒤 합쳐준 것이다.
HSI의 경우 H&S가 색을 담당하는 부분이기에 남겨두고, I만 convolution 처리하면 원본 사진에서 밝기만 사라지게 된다.
Smoothing by Convolving with a Gaussian
è 가장 단순한 smoothing kernel 은 box filter이다.
è 이때 kernel 의 모든 요소는 같은 값을 갖는다.
è kernel은 보통 출력을 원하지 않는 이동을 피하기 위해 홀수 길이로 생성.
Gaussian Kernels
ð 연속 1D Gaussian함수 = 종 곡선 (bell curve) 로 정의
ð 표준 편차만이 그래프의 모양을 바꿀 수 있다.
표준편차 값이 크다 = LPF (곡선이 넓게 퍼짐)
표준편차 값이 작다 = 곡선이 좁게 올라감
(=자기 값이 잘 유지되지만 blurring적용이 잘 안
된다.)
Box filter를 반복하면 Gaussian에 근사한 결과 값이 나온다.
Computing the Variance of a Smoothing Kernel
g(i) = pdf로 해석하면 된다.
Separability
è 복잡도가 높은 Convolution을 복잡도를 줄여서 처리할 때 유용한 개념.
1D kernel이 2개 주어지면 한 개는 수평 / 한 개는 수직으로 배치하여 서로 convolution한다.
2D 계산과 비교했을 때 계산량이 줄어 간단해지는 이점이 있다.
이런 임의의 표준편차를 갖는 1D 가우시안 커널을 구성하려면 아래의 식이 필요하다.
이때 kernel’s origin 위치는 다음과 같은 수식일 겨우 가장 좋게 나타난다.
만약 표준편차가 1이라면, 중점은 2로 나타나며 w = 5가 된다.
따라서, 왼쪽 사진과 같은 gaussian curve가 그려진다.
그러므로 표준편차가 높을수록 더욱 많은 점이 생성되어 실제 gaussian curve와의 오차 또한 줄여갈 수 있다.
2D 가우시안 커널과 convolution하여 영상을 Smoothing 가능하다.
이때 표준편차가 작다면 curve의 곡선이 크기 때문에 뚜렷한 영상이 나오고, 표준편차가 크다면 curve 곡선이 완만하기에 흐릿한 영상이 나오게 된다.
마찬가지로 2D box filters로 영상을 convolution할 때 필터의 크기가 클수록 평균 값이 넓게 퍼지며 더욱 흐려지게 된다.
Box filter’s 모든 Sum = 1이다.
가운데 위치의 화소가 주변 8개 화소와 더해진 것이기해 9개 화소의 평균 취한 것과 같다.
적당한 smoothing은 가우시안 노이즈를 제거하는 효과를 주지만, 너무 많이 사용되면 conrast가낮아진다.
'공부 > 영상처리' 카테고리의 다른 글
[영상처리]Warping (0) | 2022.11.03 |
---|---|
[영상처리]Interpolation(보간법) (0) | 2022.11.02 |
[영상처리]Graylevel Histograms (0) | 2022.11.01 |
[영상처리]Graylevel Transformations (0) | 2022.10.31 |
[영상처리]Geometric transformation(process) (0) | 2022.10.30 |