[CV] Image Restoration and Reconstruction(3) - Adaptive and Model-based Noise Reduction in the Frequency Domain

Yeontachi·2025년 8월 13일

Computer Vision Note

목록 보기
23/47
post-thumbnail

주파수 영역에서의 잡음 제거와 영상 복원 기법은 디지털 영상 처리에서 중요한 응용 분야 중 하나이다. 특히 주기적(Periodic) 잡음은 이미지 센선 결함, 전자 신호 간섭, 주기적인 패턴의 외부 간섭등에 의해 발생하며, 공간 영역에서 직접 제거하기 어려운 경우가 많다. 이러한 잡음은 주파수 영역에서 뚜렷한 주파수 성분으로 나타나기 때문에, 주파수 필터링(Frequency Domain Filtering)을 통해 선택적으로 억제하거나 제거하는 것이 효과적이다.

이 과정에서 적응형 필터(Adaptive Filter)지역 적응형 잡음 제거(Local Noise Reduction) 필터는 영상의 국부 특성과 잡음 통계에 맞추어 필터의 동작을 동적으로 조정하여, 세부 구조를 보존하면서 잡음을 억제하는 데 유용하다. 적응형 중앙값 필터(Adaptive Median Filter)는 특히 잡음의 분포나 세기가 공간적으로 불균일할 때 효과적으로 동작한다.

한편, 영상 복원을 위해서는 열화 함수(Degradation Function)의 추정이 필요하다. 이는 영상이 어떻게 열화되었는지를 수학적으로 모델링하거나(Estimation by Modeling), 관측된 영상 데이터를 기반으로 직접 추정하여(Estimating the Degradation Funtion) 복원 필터를 설계하는 단계이다.

복원 기법 중 역필터(Inverse Filter)는 가장 직관적이며, 추정된 열화 함수를 역으로 적용하여 원래의 영상에 가깝게 복원하는 방법이다. 그러나 주파수 영역에서 역필터는 잡음에 민감하므로, 실제 응용에서는 잡음 억제와 복원의 균형을 고려한 변형 기법(예: 위너 필터)이 함께 사용되기도 한다.

Adaptive Filter

기존의 고정형 필터(Previous Filters)는 한 번 필터 계수를 결정하면, 이미지 전체에 동일하게 적용된다. 이런 방식은 이미지의 특성이 공간적으로 균일한 경우에는 무난하지만, 현실 세계의 대부분 영상은 지역마다 명암, 질감, 잡음의 특성이 다르기 때문에 최적의 결과를 얻기 어렵다. 예를 들어, 동일한 블러 필터를 평탄한 영역과 경계선이 많은 영역에 동시에 적용하면, 평탄 영역에서는 잡음을 잘 제거하지만 경계선 영역에서는 중요한 디테일까지 손실될 수 있다.

이 한계를 극복하기 위해 Adpative Filter(적응형 필터)가 사용된다. 적응형 필터는 필터가 적용되는 지역(Region)통계적 특성(Statistical Characteristics)을 분석하고, 그 결과에 따라 필터 동작을 동적으로 변화시킨다. 즉, 필터 계수나 커널의 크기, 형태 등이 픽셀마다 달라질 수 있다.

핵심 아이디어

  • 지역 통계 분석 : 필터 윈도우 내의 평균(mean), 분산(variance) 등 통계량을 계산한다. 잡음이 강한 영역과 약한 영역, 경계 영역 등을 구분한다.
  • 필터 동작 조정 :
    • 평탄 영역: 강한 평활화(Smoothing) 적용 \to 잡음 제거 극대화
    • 경계 영역 : 평활화 강도 감소 \to 디테일 보존
    • 잡음 패턴이 특이한 경우 : 필터 계수를 비선형적으로 변경
  • 동적 적용 : 한 장의 이미지 안에서도 각 위치마다 서로 다른 필터 효과가 적용될 수 있다.

Adaptive, Local Noise Reduction Filter

대표적인 지역 적응형 필터는 다음과 같은 형태를 가진다.

f^(x,y)=g(x,y)ση2σL2(g(x,y)mL)\hat{f}(x,y) = g(x,y) - \frac{\sigma_{\eta}^2}{\sigma_L^2}(g(x,y) - m_L)
  • f^(x,y)\hat{f}(x,y) : 복원된 픽셀 값

  • g(x,y)g(x,y) : 좌표 (x,y)(x,y)에서의 잡음이 포함된 영상(noisy image)의 픽셀 값

  • ση2\sigma_{\eta}^2 : 원 영상 f(x,y)f(x,y)를 열화시키는 잡음의 분산(사전에 추정)

  • σL2\sigma_L^2 : 지역 윈도우 SxyS_{xy} 내 픽셀 값 지역 분산(local variance)

  • mLm_L : 지역 윈도우 SxyS_{xy} 내 평균

동작 원리는 다음과 같다.

  • 잡음이 전혀 없는 경우(ση2=0\sigma_{\eta}^2 = 0) : 영상에 손댈 필요가 앖으므로, 필터 출력은 입력과 동일하게 g(x,y)g(x,y)를 반환한다.
  • 지역 분산이 잡음 분산보다 훨씬 큰 경우(σL2>>ση2\sigma_L^2 >> \sigma_{\eta}^2) : 이 구역은 경계나 세부 구조가 있는 영역이며, 세부 구조 보존을 위해 g(x,y)g(x,y) 값에 가깝게 출력한다.
  • 지역 분산이 잡음 분산과 동일한 경우(σL2=ση2\sigma_L^2 = \sigma_{\eta}^2) : 픽셀 값 변화가 잡음 때문인 경우, 즉 균일한 영역(평탄 영역)임을 의미한다. 잡음을 줄이기 위해 윈도우 평균 mLm_L을 출력 값으로 사용한다.

위 이미지의 가장 우측 하단 이미지가 Adaptive noise reduction filtering을 적용한 결과이다. Arithmetic mean filtering이나 Geometric mean fitering보다 훨씬 노이즈 개선이 잘 되어 보인다.

Adaptive Median Filter

Adaptive Median Filter는 전통적인 Median Filter의 확장으로, Salt-and-Pepper Noise나 불균일한 잡음 밀도에 특히 강력한 성능을 발휘한다. 기본 아이디어는 윈도우 크기를 상황에 따라 조정하고, 중앙값과 주변 통계를 비교하여 잡음을 제거하면서도 세부 구조를 보존하는 것이다.

변수 정리

  • zminz_{\text{min}} : 지역 윈도우 SxyS_{xy} 내 최소 gray level 값
  • zmaxz_{\text{max}} : 지역 윈도우 SxyS_{xy} 내 최대 값
  • zmedianz_{\text{median}} : 지역 윈도우 SxyS_{xy} 내 중앙 값(median)
  • zxyz_{xy} : 좌표 (x,y)의 픽셀 값
  • SmaxS_{\text{max}} : 혀용되는 최대 윈도우 크기

작동 절차
Adpative Median Filter는 두 단계(Level A, Level B)로 동작한다.

Level A - 중앙값 검증
계산:

  • A1=zmedianzminA1 = z_{\text{median}} - z_{\text{min}}
  • A2=zmedianzmaxA2 = z_{\text{median}} - z_{\text{max}}

판정:

  • 조건 : A1>0A1 > 0 그리고 A2<0A2 < 0이면 \to zmin<zmedian<zmaxz_{\text{min}} < z_{\text{median}} < z_{\text{max}} 성립
  • 그렇지 않으면 \to 윈도우 크기를 증가시키고 반복. 단, 윈도우 크기가 SmaxS_{\text{max}}를 초과하면 zxyz_{xy}를 반환한다.

즉, 조건

zmin<zmedian<zmaxz_{\text{min}} < z_{\text{median}} < z_{\text{max}}

만족 시 Level B 진행, 불만족 시 윈도우를 확장한다.

Level B - 픽셀 값 검증
계산:

  • B1=zxyzminB1 = z_{xy} - z{\text{min}}
  • B2=zxyzmaxB2 = z_{xy} - z{\text{max}}

판정:

  • 조건 : B1>0B1 > 0 그리고 B2<0B2 < 0이면 \to zmin<zxy<zmaxz_{\text{min}} < z_{xy} < z_{\text{max}} 성립 \to zxyz_{xy} 반환(픽셀이 잡음이 아님)

  • 그렇지 않으면 \to zmedianz_{\text{median}} 반환(픽셀이 잡음일 가능성이 높음)

    즉, 조건

    zmin<zxy<zmaxz_{\text{min}} < z_{xy} < z_{\text{max}}

    만족 시 zxyz_{xy}를 출력하고, 불만족 시 zmedianz_{\text{median}}을 출력한다.

Adaptive Median Filter는 전통적인 중앙값 필터의 한계를 극복하기 위해 고안된 방식으로, 지역 통계 분석윈도우 크기 적응을 결합하여 잡음을 효과적으로 제거한다. 이 필터의 가장 큰 장점은 잡음 제거 능력과 세부 구조 보존 능력을 동시에 갖춘다는 점이다.

우선, 이 필터는 윈도우 크기를 고정하지 않고 상황에 맞게 확장한다. 잡음이 심한 영역에서는 윈도우 크기를 점차 늘려 더 많은 이웃 픽셀 정보를 활용하고, 잡음이 적거나 없는 영역에서는 작은 윈도우를 유지해 불필요한 블러링을 방지한다. 이를 통해 평탄한 영역에서는 강력한 잡음 제거를 수행하면서도, 경계나 세부 패턴이 있는 영역에서는 디테일을 유지할 수 있다.

또한, 이 방식은 Salt-and-Pepper Noise와 같은 극단적인 값의 잡음에 특히 효과적이다. 이는 잡음 픽셀을 주변의 중앙값으로 대체함으로써, 잡음이 영상 전체로 확산되는 것을 방지하고 원래의 구조를 보존하기 때문이다.

가장 우측이 Adaptive median Filtering을 적용한 결과이다. 잡음을 제거하면서도, 경계나 세부 패턴의 디테일이 더 살아있는 것을 확인할 수 있다.

Estimating the Degradation Function

영상 복원(Image Restoration)을 수행하려면, 먼저 우너본 영상이 어떤 방식으로 열화(Degradation)되었는지를 나타내는 열화 함수 h(x,y)h(x,y)를 알아야 한다. 이 함수는 원본 영상 f(x,y)f(x,y)와 잡은 η(x,y)\eta(x,y)가 결합되어 관측 영상 g(x,y)g(x,y)를 형성하는 과정을 모델링한다.

열화 함수(Degradation Function) 추정 방법

열화 함수를 추정하는 대표적인 세 가지 방법은 다음과 같다.

1. Observation(관찰 기반 추정)
열화 과정을 직접 관찰하거나, 장치/환경 조건에서 발생하는 열화 특성을 측정하는 방식이다. 예를 들어, 카메라의 모션 블러 길이와 방향을 직접 관찰하여 블러 커널을 추정할 수 있다.

실제 절차는 다음과 같다.

  • 열화된 영상 g(x,y)g(x,y)에서 작은 영역(Subimage) gs(x,y)g_s(x,y)을 선택한다.
  • 해당 부분의 원본 형태에 가까운 서브 이미지 f^s(x,y)\hat{f}_s(x,y)를 준비 또는 추정한다.
  • 두 이미지를 각각 DFT(이산 푸리에 변환)하여 Gs(u,v)G_s(u,v)F^s(u,v)\hat{F}_s(u,v)를 얻는다.
  • 주파수 비율을 계산하여 Hs(u,v)H_s(u,v)를 추정한다.
    H(u,v)Hs(u,v)=Gs(u,v)F^s(u,v)H(u,v) ≈ H_s(u,v) = \frac{G_s(u,v)}{\hat{F}_s(u,v)}
  • 이렇게 구한 H(u,v)H(u,v)를 전체 영상 복원에 사용한다.

2. Experimentation(실험 기반 추정)
제어된 조건에서 원본 영상과 열화 영상을 비교하여 h(x,y)h(x,y)를 추정한다.

예를 들어, 동일 장면을 다양한 셔터 속도로 촬영한 후 블러 커널을 도출하거나, 임펄스(Impulse) 신호를 입력하여 시스템의 PSF(Point Spread Function)를 측정할 수 있다.

대표적인 방법은 단위 임펄스 𝛿(x,y)를 사용한 PSF 측정이다.

  • 단일 임펄스를 입력하면, 이론적으로 모든 주파수 성분이 동일한 크기를 가지므로 F(δ(x,y))=1F(δ(x,y)) = 1
  • 이를 시스템에 통과시켜 열화된 임펄스 g(x,y)g(x,y)를 얻는다.
  • 주파수 영역에서 H(u,v)H(u,v) 계산
    H(u,v)=F(g(x,y))F(δ(x,y))=F(g(x,y))H(u,v) = \frac{F(g(x,y))}{F(δ(x,y))} = F(g(x,y))
  • 이렇게 측정된 H(u,v)H(u,v)는 매우 정확하지만, 실제 환경 재현이 필요하다는 제약이 있다.

3. Mathematical Modeling(수학적 모델링)
광학 시스템, 움직임, 초점 흐림 등 물리적 과정에 대한 수학적 모델을 이용해 h(x,y)h(x,y)를 계산한다.(예: 렌즈의 PSF(Point Spread Funtion) 모델링)

  • 공간 영역에서의 열화 모델은 다음과 같다.
    g(x,y)=f(x,y)h(x,y)+η(x,y)g(x,y) = f(x,y) * h(x,y) + \eta(x,y)
    • g(x,y)g(x,y) : 열화된 영상(관측 영상)
    • f(x,y)f(x,y) : 원본 영상
    • h(x,y)h(x,y) : 열화 함수(PSF)
    • η(x,y)\eta(x,y) : 잡음
    • * : 컨볼루션 연산
  • 주파수 영역에서의 열화 모델
    G(u,v)=F(u,v)H(u,v)+N(u,v)G(u,v) = F(u,v)H(u,v) + N(u,v)
    • G(u,v)G(u,v) : 관측 영상의 주파수 표현
    • F(u,v)F(u, v) : 원본 영상의 주파수 표현
    • H(u,v)H(u,v) : 열화 함수의 주파수 표현
    • N(u,v)N(u,v) : 잡음의 주파수 표현

h(x,y)h(x,y)를 정확히 알고 있다면(잡음 유무와 상관 없이), 역컨볼루션(Deconvolution)을 통해 g(x,y)g(x,y)로부터 f(x,y)f(x,y)를 복원할 수 있다.

Estimation by Modeling

아래 이미지는 동일한 원본 항공 영상을 서로 다른 난류 강도 k 값으로 열화시킨 결과이다. 대기 난류는 대기 중의 온도, 압력, 밀도 변화로 인해 빛의 경로가 불규칙하게 변하는 현상이다.

대기 난류에 의한 주파수 영역의 전달 함수는 다음과 같이 모델링된다.

H(u,v)=ek(u2+v2)5/6H(u,v) = e^{-k(u^2+v^2)^{5/6}}
  • H(u,v)H(u,v) : 난류에 의한 주파수 응답
  • u,vu,v : 주파수 좌표
  • kk : 난류 정도를 제어하는 파라미터(값이 클수록 난류 심함)

(a) Negligible turbulence, k값이 거의 0에 가깝다. 난류의 영향이 없거나 매우 미약하여 원본 영상과 거의 동일한 선명도를 유지한다.

(b) Severe turbulence, k=0.0025, 매우 강한 난류로 인해 세부 구조가 흐려진다. 고주파 성분(경계, 디테일 손실이 크다.)

(c) Mild turbulence, k=0.001, 중간 정도의 흐림을 보여준다. 윤곽은 남아 있으나 미세한 디테일이 손실되어 보인다.

(d) Low turbulence, k=0.00025, 약한 흐림 효과를 보여준다. 비교적 선명하지만, 원본에 비해 미세 디테일이 부드러워진다.

아래 이미지는 수학적 모델링(Estimation by Modeling)을 이용해 영상 블러링(Image Blurring) 현상을 설명한 예시이다.

  • (x0(t),y0(t))(x_0(t), y_0(t)) : 시간에 따라 변하는 움직임 성분(예: 카메라 이동)

  • 공간 영역 모델:

    g(x,y)=0Tf(x+x0(t),y+y0(t))dtg(x,y) = \int_0^Tf(x+x_0(t), y+y_0(t))\,dt

    촬영 시간 TT 동안의 움직임 궤적을 따라 영상이 누적되어 블러가 형성된다.

  • 주파수 영역 모델:

    H(u,v)=Tπ(ua+vb)sin(π(ua+vb))ejπ(ua+vb)H(u,v) = \frac{T}{\pi(ua+vb)}sin(\pi(ua+vb))e^{-j\pi(ua+vb)}

    선형 이동에 의한 블러의 주파수 응답(모션 블러 필터)

(a)는 원본 이미지, (b)는 a=b=0.1,T=1a=b=0.1, T=1 조건에서 생성된 대각선 방향 모션 블러 결과 이미지이다.

Inverse Filter

Inverse Filter(역필터)는 영상 복원(Image Restoration)에서 열화 함수 H(u,v)H(u,v)를 알고 있다는 가정하에, 주파수 영역에서 이를 제거하여 원본 영상을 추정하는 방법이다.

영상 열화 모델은 주파수 영역에서 다음과 같이 표현된다.

G(u,v)=F(u,v)H(u,v)+N(u,v)G(u,v) = F(u,v)H(u,v) + N(u,v)
  • G(u,v)G(u,v) : 열화된 영상의 주파수 스펙트럼
  • F(u,v)F(u,v) : 원본 영상의 주파수 스펙트럼
  • H(u,v)H(u,v) : 열화 함수(전달 함수, Transfer Function)
  • N(u,v)N(u,v) : 잡음(Noise)의 주파수 스펙트럼

Inverse Filter는 G(u,v)G(u,v)에서 H(u,v)H(u,v)를 나누어 원본 F(u,v)F(u,v)를 복원하는 방식이다.

F^(u,v)=G(u,v)H(u,v)=F(u,v)+N(u,v)H(u,v)\hat{F}(u,v) = \frac{G(u,v)}{H(u,v)} = F(u,v) + \frac{N(u,v)}{H(u,v)}

동작 원리

  • 잡음이 없는 경우 (N(u,v)=0N(u,v) = 0)

    F^(u,v)=G(u,v)H(u,v)=F(u,v)\hat{F}(u,v) = \frac{G(u,v)}{H(u,v)} = F(u,v)

    → 완벽하게 원본을 복원 가능

  • 잡음이 존재하는 경우

    N(u,v)H(u,v)\frac{N(u,v)}{H(u,v)}

    항이 남아, 특히 H(u,v)H(u,v)가 작은 주파수 영역에서는 잡음이 크게 증폭

Inverse Filter는 열화 함수 H(u,v)H(u,v)가 알려져 있을 때, 주파수 영역에서 단순히 나누기 연산을 통해 복원이 이루어진다. 잡음이 전혀 없을 경우, 원본 영상과 동일한 결과를 얻을 수 있으며, 구현이 단순하고 계산량이 비교적 적다. 이론적으로는 완벽 복원이 가능하므로, 잡음이 거의 없고 H(u,v)H(u,v)가 정확히 알려진 환경에서 효과적이다.

하지만, 실제 환경에서는 H(u,v)H(u,v)를 정확히 추정하기 어렵다. 잡음이 존재하면, 특히 H(u,v)H(u,v) 값이 작은 주파수 대역에서 잡음이 크게 증폭된다. H(u,v)H(u,v)가 0 또는 매우 작은 경우, 해당 주파수 성분은 복원할 수 없게 된다. 고주파 영역에서 H(u,v)H(u,v)가 급격히 감소하는 열화 모델의 경우, 복원 결과가 심하게 열화될 수 있다.

위 예시 중 대기 난류 모델을 보면,

H(u,v)=ek(u2+v2)5/6H(u,v) = e^{-k(u^2+v^2)^{5/6}}

kk 값이 클수록 고주파 성분이 심하게 감쇠도어 영상이 흐릿해진다. 이 경우 역필터를 적용하면, 고주파 영역의 잡음이 크게 증폭되어 복원 품질이 떨어질 수 있다.

아래 이미지는 아래의 왼쪽 이미지처럼 심한 열화(Severe turbulence)가 있는 영상을 Inverse Filter로 복원한 결과이다.

(a) Full filter 사용 : H(u,v)H(u,v)의 모든 주파수 성분을 나누어 복원했지만, 고주파에서 H(u,v)H(u,v) 값이 매우 작아 잡음이 크게 증폭된다. 결과적으로 영상에 심한 노이즈가 발생하게 된다.

(b)~(d) 주파수 컷오프 사용 :

  • (b) : 반경 40 이상에서는 H(u,v)H(u,v)를 0으로 설정, 잡음이 억제되지만 선명도가 다소 떨어진다.
  • (c) : 반경 70, 원본보다 선명해지지만 일부 잡음이 다시 나타난다.
  • (d) : 반경 85, 잡음이 증가한다.

즉 위 예제는, 이론적으로 H(u,v)H(u,v)를 정확히 알면 완전 복원이 가능하나, 실제 상황에서는 H(u,v)H(u,v)가 0에 가깝거나 잡음 N(u,v)N(u,v)가 존재하면 복원 과정에서 고주파 잡음이 크게 증폭되는 한계점을 보여준다. 해결 방안으로는 주파수 컷오프나 위너 필처(Wiener Filter) 같은 개선된 필터링 기법을 사용한다.

References

Computer Vision: Algorithms and Applications 2nd Edition - Richard Szeliski

Digital Image Processing 2nd Rafael C.Gonzalez, Richard E. Woods

profile
기초를 다지는 중입니다.📚🧑‍💻

0개의 댓글