비등방성 확산

편집 역사 토론
수치해석 컴퓨터 그래픽스 마지막 수정: 2026-08-30 04:38:09

1. 개요[편집]

비등방성 확산
Anisotropic Diffusion
제안Perona & Malik (1990), IEEE TPAMI 12(7)
방정식$\partial_t I = \nabla\cdot\bigl(g(|\nabla I|)\,\nabla I\bigr)$
확산계수$g(s)=1/(1+(s/K)^2)$ 또는 $g(s)=e^{-(s/K)^2}$
핵심 장치플럭스 $\phi(s)=s\,g(s)$$s=K$ 에서 꺾인다
대가역확산 · 잘못된 문제 · 계단화(staircasing)
수습Catté 외(1992) 정규화 · Weickert(1998) 확산 텐서 · AOS

잡음을 지우려면 문질러야 하고, 경계를 지키려면 문지르면 안 된다. 그러면 문질러도 되는 곳만 골라서 문지르면 되지 않을까.

비등방성 확산확산계수를 상수가 아니라 국소 밝기 기울기의 함수로 두어, 평탄한 영역에서는 열방정식처럼 강하게 평활하고 에지 근처에서는 확산을 꺼 버리는 비선형 편미분방정식 기반 영상 평활 기법이다. 페로나와 말릭이 1990년에 제안했고, 그래서 흔히 페로나-말릭(Perona–Malik) 확산이라 부른다.1

It=(g(I)I),I(,0)=I0\frac{\partial I}{\partial t} = \nabla\cdot\bigl(g(|\nabla I|)\,\nabla I\bigr), \qquad I(\cdot,0) = I_0

동기는 스케일 공간의 유일한 약점에서 나온다. 선형 가우스 확산은 물체가 어디 있는지 모른다. 스케일을 올릴수록 잡음이 줄지만 에지도 같이 뭉개지고, 위치까지 곡률 중심 쪽으로 밀린다. 그러니 여러 스케일에서 에지를 찾아 거친 층에서 고운 층으로 추적하는 번거로운 후처리가 필요했다. 페로나-말릭의 제안은 그 후처리를 방정식 안으로 집어넣는 것이다 — 평활 자체가 에지를 알아보게 만들자.

2. 용어부터 — 이건 사실 등방성이다[편집]

먼저 이름 문제를 털고 간다. 위 방정식의 확산계수 gg스칼라다. 스칼라 확산계수는 모든 방향으로 똑같이 작용하므로, 확산의 방향 선택성이 없다. 바이커트의 분류에 따르면 페로나-말릭은 비선형 등방성 확산(nonlinear isotropic diffusion)이고, 진짜 비등방성은 확산계수를 2×22\times2 대칭 양정부호 텐서 DD 로 바꾼

It=(D(Jρ)I)\frac{\partial I}{\partial t} = \nabla\cdot\bigl(D(J_\rho)\,\nabla I\bigr)

에 해당한다.2 그럼에도 영상처리 문헌 대다수가 페로나-말릭을 “anisotropic diffusion”이라 부르는데, 원 논문 제목이 그러했고 실제 효과가 “에지를 따라서만 흐르는” 것처럼 보이기 때문이다. 이 문서도 관례를 따라 넓은 뜻으로 쓰되, 텐서 확산을 다루는 절에서 구분을 다시 명시한다. 논문을 쓸 때는 구분하는 편이 안전하다.

3. 확산계수와 플럭스[편집]

ggg(0)=1g(0)=1, 단조 감소, g()=0g(\infty)=0 이면 무엇이든 되지만 원 논문의 두 가지가 사실상 표준이다.

g1(s)=11+(s/K)2,g2(s)=exp ⁣((sK)2)g_1(s) = \frac{1}{1+(s/K)^2}, \qquad g_2(s) = \exp\!\left(-\left(\frac{s}{K}\right)^{2}\right)

페로나와 말릭 본인들이 적었듯 g1g_1넓은 영역을 (즉 저대비 큰 구조를) 상대적으로 잘 살리고, g2g_2고대비 에지를 더 확실히 살린다. KK 는 “이보다 큰 기울기는 에지로 친다”는 문턱이며, 이 값 하나가 결과를 지배한다. 원 논문은 기울기 크기 히스토그램의 상위 10% 분위수를 KK 로 쓰는 캐니식 잡음 추정을 제시했다.

방정식의 성질을 보려면 확산계수가 아니라 플럭스를 봐야 한다. 1차원에서 우변은 xϕ\partial_x \phi 이고

ϕ(s)=sg(s)=s1+(s/K)2\phi(s) = s\,g(s) = \frac{s}{1+(s/K)^2}

이 플럭스는 s=Ks = K 에서 최대가 되고 그 뒤로 감소한다. 즉 기울기가 커질수록 흐르는 양이 오히려 줄어든다. 이 꺾임이 페로나-말릭의 심장이자 모든 문제의 근원이다.

4. 왜 에지가 보존되는가 — 게이지 좌표로 보기[편집]

기울기 방향 단위벡터를 η=I/I\eta = \nabla I/|\nabla I|(에지 법선), 그에 수직인 방향을 ξ\xi(에지 접선)라 두고 방정식을 다시 쓰면 정체가 드러난다.

It=g(I)Iξξ  +  ϕ(I)Iηη\frac{\partial I}{\partial t} = g(|\nabla I|)\,I_{\xi\xi} \;+\; \phi'(|\nabla I|)\,I_{\eta\eta}
  • 접선 방향 계수는 g>0g > 0 이므로 언제나 확산이다. 에지를 따라서는 늘 매끄럽게 만든다. 톱니 같은 경계가 다듬어지는 게 이 항이다.
  • 법선 방향 계수는 ϕ\phi' 다. I<K|\nabla I| < Kϕ>0\phi' > 0 이라 정상 확산, I>K|\nabla I| > Kϕ<0\phi' < 0 이라 역확산이다.

역확산은 에지를 흐리는 게 아니라 더 가파르게 만든다. 페로나-말릭이 잡음을 지우면서도 에지가 흐려지지 않는, 심지어 선명해지는 결과를 내는 이유가 이것이다. 문제는 이 좋은 소식이 곧 나쁜 소식이라는 데 있다.

5. 잘못된 문제 — 역확산의 청구서[편집]

역확산은 후향 열방정식이고, 스케일 공간 문서가 정리한 대로 이건 잘못된 문제(ill-posed)다. 푸리에 영역에서 파수 kk 성분에 e+tk2e^{+tk^2} 가 곱해지므로 고주파 잡음이 지수적으로 증폭된다. 연속 방정식 수준에서 페로나-말릭은

  • 해의 존재성·유일성이 보장되지 않고,
  • 초기 데이터에 연속적으로 의존하지 않으며,
  • 실제로 어떤 초기 조건에서는 해가 존재하지 않는다는 것이 알려져 있다.

키체나사미(1997)가 이를 정리해 “페로나-말릭 역설” 이라는 이름을 붙였다. 역설이라 부른 이유는 이론이 이렇게 험한데도 실제 코드는 멀쩡히 돌아가기 때문이다. 해명은 이산화 자체에 있다. 유한차분이 기울기를 격자 간격 hh 이하의 스케일에서는 볼 수 없으므로, 이산 스킴은 암묵적으로 정칙화된 방정식을 푸는 셈이 된다. 바이커트와 벤하무다가 표준 4-이웃 스킴이 잘 정의된 상미분방정식계와 동치임을 보인 것이 그 정리다. 격자가 이론의 구멍을 메워 주고 있는 셈이고, 격자를 곱게 할수록 결과가 불안정해진다는 반직관적 성질이 여기서 나온다.

실용적으로 더 자주 마주치는 부작용은 계단화(staircasing)다. 부드러운 그라데이션에 놓인 작은 기울기 변동 중 일부가 KK 를 넘으면 그 자리가 역확산으로 더 뾰족해지고, 결국 매끈한 경사가 여러 개의 평평한 계단과 가짜 에지로 쪼개진다. 하늘이나 피부에 만화 같은 등고선이 생기는 그 현상이다. 흥미롭게도 전변분 잡음제거도 완전히 다른 경로(조각별 상수 선호)로 같은 아티팩트에 도달하는데, 두 방법의 오일러-라그랑주 구조가 결국 만나기 때문이다.

6. 수습 1 — 카테 정규화[편집]

카테·리옹·모렐·콜(1992)의 처방은 한 글자만 고친다. 확산계수의 인자를 원 영상의 기울기가 아니라 가우스로 살짝 평활한 영상의 기울기로 바꾼다.

It=(g(Iσ)I),Iσ=GσI\frac{\partial I}{\partial t} = \nabla\cdot\bigl(g(|\nabla I_\sigma|)\,\nabla I\bigr), \qquad I_\sigma = G_\sigma * I

σ\sigma 는 보통 1 화소 안팎으로 아주 작게 잡는다. 이 한 줄로 얻는 것이 대단하다. GσG_\sigma * 가 유계 선형 연산자이므로 확산계수가 해에 대해 립시츠 연속이 되고, 해의 존재성·유일성·데이터 연속 의존성이 증명된다. 즉 방정식이 제대로 된 문제가 된다. 부수적으로 σ\sigma 미만 스케일의 잡음 첨두가 확산계수를 속여 “에지”로 오인시키는 사고도 막힌다. 잡음이 심한 영상에서 원판 페로나-말릭이 잡음 점 하나하나를 정성껏 보존하는 참사를 겪어 본 사람이라면 이 수정의 가치를 안다.3

7. 수습 2 — 진짜 비등방성, 확산 텐서[편집]

바이커트는 여기서 한 걸음 더 간다. 확산계수를 텐서로 올리면 방향마다 다른 확산 강도를 줄 수 있다. 방향 정보의 출처는 특징점 검출에도 나오는 그 구조 텐서 다.

Jρ=Gρ(IσIσT)J_\rho = G_\rho * \bigl(\nabla I_\sigma\,\nabla I_\sigma^{\mathsf T}\bigr)

JρJ_\rho 를 고유분해해 고유벡터 v1v_1(국소 대비가 가장 큰 방향), v2v_2(그에 수직)와 고유값 μ1μ2\mu_1 \ge \mu_2 를 얻은 뒤, 고유벡터는 그대로 두고 고유값만 갈아 끼워 확산 텐서 DD 를 만든다.

  • 에지 강화 확산(EED). λ1=g(μ1)\lambda_1 = g(\mu_1), λ2=1\lambda_2 = 1. 에지를 가로지르는 방향만 확산을 끄고 에지를 따라서는 정상 확산. 페로나-말릭이 하려던 일을 부작용 없이 하는 버전이다.
  • 응집 강화 확산(CED). v1v_1 방향으로는 거의 확산하지 않고, 결이 뻗은 방향으로 강하게 확산한다. μ1μ2\mu_1 - \mu_2 가 크면(즉 방향성이 뚜렷하면) 확산을 더 세게 준다. 지문의 융선, 유동 가시화 사진의 줄무늬, 목재의 나뭇결처럼 끊어진 선을 이어 붙이는 데 쓴다.

ρ>0\rho > 0 으로 구조 텐서를 한 번 더 평활하는 것이 핵심 장치다. 텐서를 평활하면 방향 정보가 이웃과 합쳐져, 잡음 때문에 방향이 화소마다 튀는 문제가 사라진다. ρ\rho 를 키우면 결의 “일관성 반경”이 커진다.

8. 이산화와 안정 조건[편집]

원 논문의 명시적 4-이웃 스킴은 지금도 표준 출발점이다. 격자 간격 1, 이웃 방향차를 NIi,j=Ii1,jIi,j\nabla_N I_{i,j} = I_{i-1,j} - I_{i,j} 등으로 두면

Ii,jn+1=Ii,jn+Δtd{N,S,E,W}g(dIi,jn)dIi,jnI^{n+1}_{i,j} = I^{n}_{i,j} + \Delta t \sum_{d \in \{N,S,E,W\}} g\bigl(|\nabla_d I^n_{i,j}|\bigr)\,\nabla_d I^{n}_{i,j}

이다. 확산계수를 화소 중심이 아니라 이웃 쌍 사이(면 중심) 에서 평가하는 것이 요점이다. 이러면 인접 화소가 주고받는 플럭스가 부호만 반대로 정확히 같아, 유한체적법과 같은 의미의 보존형 스킴이 된다. 총 밝기가 보존되므로 평균 밝기가 시간에 따라 흘러가는 사고가 없다.

안정 조건은 gg(0)=1g \le g(0) = 1 이라는 사실에서 바로 나온다. 최악의 경우가 상수계수 열방정식이므로 폰 노이만 안정성 해석의 2차원 명시적 확산 조건

Δt    h24    h=1    Δt14\Delta t \;\le\; \frac{h^2}{4}\;\xrightarrow{\;h=1\;}\; \Delta t \le \frac14

를 지키면 된다(1차원이면 1/21/2, 8-이웃 스킴이면 더 작게). 이 조건에는 CFL 조건과는 다른, 훨씬 강한 보너스가 붙는다. Δt1/4\Delta t \le 1/4 일 때 위 갱신식은 자기 자신과 네 이웃의 볼록결합이 되므로, 새 값이 항상 이웃 값들의 최댓값과 최솟값 사이에 놓인다. 즉 이산 최대·최소 원리가 성립하고, 밝기 범위 [0,255][0,255] 를 벗어나는 값이 절대 생기지 않는다. 언더슛으로 인한 검은 테두리 아티팩트가 없다는 뜻이다.

같은 잡음 영상(σ=15)에 λ=0.2로 150스텝을 똑같이 먹인다. 왼쪽은 원논문 4-이웃 명시 이산화로 g(|∇I|)=1/(1+(s/K)²)를 곱한 Perona–Malik, 오른쪽은 g≡1을 넣어 λ∇²I가 된 선형 확산이다. 평탄 영역 잡음은 15.53→0.37과 0.36으로 같은 만큼 줄지만, 계단 에지 대비는 90.5%와 40.8%, PSNR은 29.64 dB와 21.11 dB로 갈린다.

문제는 Δt1/4\Delta t \le 1/4너무 작다는 것이다. 실용적인 평활량을 얻으려면 수백~수천 스텝이 필요하고, 이건 확산 문제 특유의 강성(stiffness) 때문이다. 처방은 열방정식에서와 똑같다.

  • 반음함수(semi-implicit) 스킴. 확산계수는 이전 시각 값으로 고정하고 II 만 음함수로 두면 선형 시스템 하나를 풀게 되며, 시간 스텝 제한이 사라진다.
  • AOS(가법 연산자 분할). 바이커트 등(1998)이 제안한 방식으로, 2차원 문제를 xx 방향과 yy 방향 1차원 문제로 나눠 각각 삼중대각계를 토마스 알고리즘으로 풀고 더한다. 방향별 결과를 곱하지 않고 더하기 때문에 축에 대한 대칭성이 유지되고(ADI 계열의 고질적 비대칭 문제가 없다), 화소당 비용이 상수이며, 최대 원리도 무조건 유지된다. 명시적 스킴 대비 열 배 이상 빠르다.
  • 다중해상도. 다중격자법이나 이미지 피라미드 계층에서 굵은-고운으로 내려오며 푸는 방법.

9. 이웃 기법과의 관계[편집]

기법형식에지 처리대표 아티팩트
가우스 평활선형 PDE, 해석해 존재같이 뭉갬흐림, 에지 이동
페로나-말릭비선형 PDE역확산으로 강화계단화, 잡음 보존
전변분 잡음제거변분 문제, 볼록점프에 비례 벌점계단화, 대비 손실
양방향 필터명시적 가중 평균밝기 차로 가중그라데이션 반전
평균 곡률 흐름기하 PDE등고선 곡률 감소작은 구조 소멸

특히 양방향 필터와 페로나-말릭의 관계는 자주 나오는 시험 문제다. 양방향 필터는 공간 거리와 밝기 차 두 가지로 가중 평균을 내는 한 번에 끝나는 명시적 필터인데, 이것을 반복 적용하면 특정 확산계수를 갖는 페로나-말릭형 확산의 이산 근사와 같아진다는 것이 알려져 있다. 즉 하나는 “PDE를 시간전진한다”는 관점, 다른 하나는 “커널을 설계한다”는 관점이며 도착지가 같다. 마찬가지로 전변분 잡음제거오일러-라그랑주 방정식을 경사하강으로 풀면 g(s)=1/sg(s) = 1/s 인 확산이 되어, TV 흐름 역시 이 방정식족의 한 구성원이 된다. 확산계수 gg 를 무엇으로 고르느냐가 곧 기법의 이름이 되는 셈이다.

10. 실전에서[편집]

  • 의료·계측 영상. CT·MRI 잡음제거의 고전이다. 라돈 변환 기반 재구성이 남기는 줄무늬 잡음을 구조를 살린 채 줄이는 데 쓰이고, 확산 텐서 영상(DTI)에서는 확산 텐서가 물리량 그 자체라 개념적 궁합도 좋다.
  • 탄성파 자료. 지층 반사면처럼 결이 뚜렷한 데이터에 CED를 걸면 단절된 반사면이 이어진다. 구조 지향 필터링(structure-oriented filtering)이라 부른다.
  • 분할 전처리. 이미지 분할이나 활성 윤곽선 앞단에서 잡음만 지우고 경계는 살려 두면 하류가 편해진다. 레벨셋 방법의 속도장 설계와도 사고방식이 같다.
  • 파라미터 튜닝의 현실. KK·σ\sigma·ρ\rho·반복 횟수 넷을 손으로 맞춰야 하고, 정지 시각을 정하는 원리적 기준이 없다는 것이 실무의 가장 큰 불만이다. 오래 돌리면 결국 상수 영상으로 수렴한다 — 확산은 언제 멈출지를 스스로 모른다. 잔차의 분산이 잡음 분산에 도달하면 멈추는 모수 불일치(discrepancy) 규칙이 그나마 흔한 처방이고, 이는 역문제·티호노프 정규화에서 정칙화 파라미터를 고르는 논리와 정확히 같다.

한 줄 요약. 비등방성 확산은 “평활은 확산이다”라는 스케일 공간의 통찰을 받아들인 뒤, 확산계수를 데이터가 정하게 만든 것이다. 그 대가로 이론의 안전장치(반군, 인과성, 적정성)를 전부 잃었고, 지난 35년간의 후속 연구는 그 안전장치를 하나씩 되사 오는 과정이었다.

11. 관련 문서[편집]

12. Footnotes[편집]

  1. Perona, P. & Malik, J. (1990). “Scale-Space and Edge Detection Using Anisotropic Diffusion”, IEEE TPAMI 12(7). 제목에 “스케일 공간”이 먼저 나온다는 점이 중요하다. 이 논문의 자기 인식은 “새 잡음제거 필터”가 아니라 “선형 스케일 공간을 대체하는 스케일 공간”이었다. 결과적으로 잡음제거 필터로 훨씬 많이 인용됐지만.

  2. Weickert, J. (1998). Anisotropic Diffusion in Image Processing, Teubner. 이 책 서문에서 저자가 용어 혼란을 정색하고 지적한다 — 확산계수가 스칼라면 등방성이고 텐서여야 비등방성이라고. 그러고는 자기 책 제목에 그 단어를 넣었다. 이미 굳은 관용어를 이길 수는 없다는 교훈.

  3. 페로나-말릭을 처음 돌려 보면 대개 “잡음이 안 지워진다”는 반응이 나온다. 당연하다. 고립된 잡음 점 하나의 기울기는 KK 를 훌쩍 넘으므로 방정식이 그것을 정성껏 보존해야 할 에지로 인식한다. 카테 정규화의 GσG_\sigma 한 방이 이 문제의 90%를 해결한다. ”KK 를 키우면 되잖아”라고 하면 이번엔 진짜 에지까지 같이 뭉개진다.