맨위로가기

가우시안 블러

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

가우시안 블러는 이미지를 가우시안 함수와 합성곱하여 부드럽게 만드는 데 사용되는 이미지 블러링 필터이다. 수학적으로는 이미지의 고주파 성분을 감소시키는 로우 패스 필터와 같으며, 이미지의 각 픽셀에 가우시안 함수를 적용하여 변환을 계산한다. 가우시안 블러는 분리 가능한 필터이므로, 2차원 이미지를 두 개의 1차원 계산으로 처리하여 계산 효율성을 높일 수 있다. 이미지 크기를 줄일 때 다운샘플링 전에 이미지에 적용되어 모아레 패턴과 같은 앨리어싱 아티팩트 생성을 방지하며, 가장자리 감지, 이미지 노이즈 감소 등 다양한 응용 분야에 활용된다.

더 읽어볼만한 페이지

  • 가우스 함수 - 가우스 적분
    가우스 적분은 특정한 정적분의 값으로 정의되며, 확률론, 통계학, 물리학 등 여러 분야에서 중요한 역할을 수행하고 정규분포와 관련된 계산에서 핵심적인 역할을 한다.
  • 가우스 함수 - 오차 함수
    오차 함수는 확률론, 통계학, 편미분 방정식 등에서 활용되는 기함수로서, 정규 분포와 밀접한 관련을 가지며 테일러 급수 등으로 표현될 수 있는 특수 함수이다.
가우시안 블러
개요
가우시안 블러의 예시
가우시안 블러의 예시
종류이미지 블러
다른 이름가우스 스무딩
상세 정보
정의가우시안 함수로 생성된 블러
사용 분야이미지 처리
컴퓨터 비전

2. 수학적 원리

가우시안 블러는 이미지를 가우시안 함수와 컨볼루션하여 구현하는 기법이다. 이는 2차원 바이어슈트라스 변환이라고도 불린다. 가우시안 함수는 통계학에서 정규 분포를 나타내는 함수로, 이미지의 각 픽셀에 적용할 변환을 계산하는 데 사용된다.

가우시안 함수의 푸리에 변환은 또 다른 가우시안 함수이기 때문에, 가우시안 블러를 적용하면 이미지의 고주파 성분이 감소한다. 따라서 가우시안 블러는 로우 패스 필터의 역할을 한다.

가우시안 블러를 통해 부드럽게 렌더링된 하프톤 인쇄


이 분포의 값은 원래 이미지에 적용되는 컨볼루션 행렬을 만드는 데 사용된다. 각 픽셀의 새로운 값은 해당 픽셀과 주변 픽셀들의 가중 평균으로 설정된다. 이때 원래 픽셀의 값은 가장 큰 가중치(가장 높은 가우시안 값)를 갖고, 주변 픽셀들은 원래 픽셀과의 거리가 멀어질수록 더 작은 가중치를 받는다. 이러한 특징 덕분에 가우시안 블러는 다른 블러링 필터보다 경계와 가장자리를 더 잘 보존한다.

이론적으로는 이미지의 모든 지점에서 가우시안 함수는 0이 아니므로, 모든 픽셀에 대해 계산하려면 전체 이미지를 포함해야 한다. 하지만 실제로는 3''σ'' (체비셰프 부등식)보다 먼 거리에 있는 픽셀은 영향이 매우 작아 무시할 수 있다. 일반적으로 이미지 처리 프로그램은 \lceil6\sigma\rceil × \lceil 6\sigma \rceil (여기서 \lceil \cdot \rceil는 올림 함수) 크기의 행렬을 계산하여, 전체 가우시안 분포에 의해 얻은 결과에 충분히 가까운 결과를 얻는다.

가우시안 블러는 이미지 크기를 줄일 때 (다운 샘플링) 주로 사용된다. 이미지를 다운샘플링할 때, 재샘플링 전에 이미지에 로우 패스 필터를 적용하는 것이 일반적인데, 이는 고주파 정보가 다운샘플링된 이미지에 나타나는 것을 방지하기 위함이다. 가우시안 블러는 날카로운 가장자리가 없는 등 좋은 속성을 가지고 있어 필터링된 이미지에 링잉(ringing) 현상을 유발하지 않는다.

thumb의 두 개의 다운스케일된 이미지. 다운스케일링하기 전에, 가우시안 블러는 아래 이미지에 적용되었지만 위 이미지에는 적용되지 않았다. 블러는 이미지를 덜 선명하게 만들지만 모아레 패턴 앨리어싱 아티팩트의 형성을 방지한다.]]

2. 1. 가우시안 함수

수학적으로 이미지에 가우시안 블러를 적용하는 것은 이미지를 가우시안 함수와 컨볼루션하는 것과 같다. 1차원 가우시안 함수는 다음과 같이 정의된다.

:G(x) = \frac{1}{\sqrt{2\pi \sigma^2}} e^{-\frac{x^2}{2 \sigma^2}}

2차원에서는 각 차원에서 두 개의 가우시안 함수를 곱한 형태를 가진다.[1][2][3]

:G(x,y) = \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 + y^2}{2 \sigma^2}}

여기서 ''x''는 수평 축에서 원점까지의 거리, ''y''는 수직 축에서 원점까지의 거리이며, ''σ''는 가우시안 분포의 표준 편차를 나타낸다. 2차원으로 적용하면 중심점으로부터 가우시안 분포를 갖는 동심원의 윤곽선을 가진 표면이 생성된다.

2차원 가우스 함수


표준 편차 σ의 가우시안 블러는 n 차원의 입력 이미지 A[i, j, ...]에 대해 n 차원 가우스 함수

:G_\sigma(x, y, \dots) = \frac{1}{\left(\sqrt{2\pi \sigma^{2}}\right)^n} \exp\left({-\frac{r^2}{2 \sigma^2}}\right) (여기서 r^2 = x^2 + y^2 + \cdots)

합성곱을 취하는 것이다.

: B[i, j, \dots] = \sum_{x, y, \dots \in Z^n} G_\sigma(x, y, \dots) A[i - x, j - y, \dots]

2. 2. 컨볼루션 연산



이미지에 가우시안 블러를 적용하는 것은 이미지를 가우시안 함수와 컨볼루션하는 것과 같다.[1][2][3] 2차원에서 가우시안 함수는 다음과 같이 표현된다.

:G(x,y) = \frac{1} e^{-\frac{x^2 + y^2}{2 \sigma^2}}

여기서 ''x''는 수평 축에서 원점까지의 거리, ''y''는 수직 축에서 원점까지의 거리, ''σ''는 가우시안 분포의 표준 편차이다. 이 공식은 중심점으로부터 가우시안 분포를 갖는 동심원의 윤곽선을 가진 표면을 생성한다.

이 분포의 값은 컨볼루션 행렬을 만드는 데 사용된다. 컨볼루션 과정은 각 픽셀의 새 값을 해당 픽셀과 주변 픽셀들의 가중 평균으로 설정한다. 원래 픽셀의 값은 가장 큰 가중치를 갖고, 주변 픽셀들은 거리가 멀어질수록 더 작은 가중치를 받는다.

이론적으로는 이미지의 모든 지점에서 가우시안 함수는 0이 아니지만, 실제로는 3''σ'' 보다 먼 거리에 있는 픽셀은 영향이 매우 작아 무시할 수 있다. 따라서 이미지 처리 프로그램은 \lceil6\sigma\rceil × \lceil 6\sigma \rceil 크기의 행렬만 계산해도 충분하다.

가우시안 블러는 분리형 필터이다. 2차원 행렬을 적용하는 대신, 수평 방향으로 1차원 가우시안 행렬을 적용하고, 그 다음 수직 방향으로 같은 과정을 반복하여 동일한 효과를 얻을 수 있다.

다음은 가우시안 필터 커널(σ = 0.84089642)을 샘플링하여 정규화한 행렬의 예시이다.

\begin{bmatrix}

0.00000067 & 0.00002292 & \textbf{0.00019117} & 0.00038771 & \textbf{0.00019117} & 0.00002292 & 0.00000067 \\

0.00002292 & 0.00078633 & 0.00655965 & 0.01330373 & 0.00655965 & 0.00078633 & 0.00002292 \\

\textbf{0.00019117} & 0.00655965 & 0.05472157 & 0.11098164 & 0.05472157 & 0.00655965 & \textbf{0.00019117} \\

0.00038771 & 0.01330373 & 0.11098164 & \textbf{0.22508352} & 0.11098164 & 0.01330373 & 0.00038771 \\

\textbf{0.00019117} & 0.00655965 & 0.05472157 & 0.11098164 & 0.05472157 & 0.00655965 & \textbf{0.00019117} \\

0.00002292 & 0.00078633 & 0.00655965 & 0.01330373 & 0.00655965 & 0.00078633 & 0.00002292 \\

0.00000067 & 0.00002292 & \textbf{0.00019117} & 0.00038771 & \textbf{0.00019117} & 0.00002292 & 0.00000067

\end{bmatrix}

중앙 요소(0.22508352)는 3σ 바깥의 값(0.00019117)보다 훨씬 크다.

표준 편차 σ의 가우시안 블러는 n 차원의 입력 이미지 A[i, j, ...]에 대해 n 차원 가우스 함수

:G_\sigma(x, y, \dots) = \frac{1}{\left(\sqrt{2\pi \sigma^{2}}\right)^n} \exp\left({-\frac{r^2}{2 \sigma^2}}\right) (여기서 r^2 = x^2 + y^2 + \cdots)

합성곱을 취하는 것이다.

: B[i, j, \dots] = \sum_{x, y, \dots \in Z^n} G_\sigma(x, y, \dots) A[i - x, j - y, \dots]

2. 3. 분리 가능한 필터

가우시안 블러는 분리형 필터로, 2차원 이미지를 두 개의 독립적인 1차원 계산으로 처리할 수 있다. 즉, 2차원 행렬을 적용하는 효과는 수평 방향으로 일련의 1차원 가우시안 행렬을 적용한 다음 수직 방향으로 이 과정을 반복하여 얻을 수 있다.

이러한 분리 가능성은 계산 효율성을 향상시킨다. 분리 불가능한 커널의 경우 계산 복잡도가 O\left(w_\text{kernel} h_\text{kernel} w_\text{image} h_\text{image}\right)이지만, 분리 가능한 필터를 사용하면 O\left(w_\text{kernel} w_\text{image} h_\text{image}\right) + O\left(h_\text{kernel} w_\text{image} h_\text{image}\right) 시간으로 계산을 수행할 수 있다. (여기서 ''h''는 높이, ''w''는 너비이며, 빅 오 표기법을 따른다.)

또한, ''n''차원 가우시안 함수는 ''n''개의 1차원 가우시안 함수의 직적으로 나타낼 수 있다. 이 성질을 이용하면 각 방향으로 한 번씩 가우시안 블러를 적용하는 것으로 동일한 결과를 얻을 수 있어, 픽셀당 계산량O(r_{\mathrm{cutoff}}^{n})에서 O(n r_{\mathrm{cutoff}})로 줄여 블러 처리를 고속화할 수 있다.

3. 구현

가우시안 블러를 구현하는 가장 간단한 방법은 컨볼루션 행렬을 사용하는 것이다. 가우시안 함수는 중심에서 멀어질수록 값이 작아지므로, $r_{cutoff} \approx 3\sigma$ 정도로 잘라서 행렬을 만들면 된다.

FIR의 효율성은 시그마(표준편차)가 높을 경우 떨어진다. FIR 필터의 대안으로는 매우 빠른 다중 박스 블러, 빠르고 정확한 IIR 데리체 에지 검출기, 박스 블러를 기반으로 한 "스택 블러" 등이 있다.[7]

더 나은 방법은 가우시안 커널의 이산적 유사체를 사용하여 스무딩을 수행하는 것이다.[6] 이산 가우시안 커널은 연속 가우시안 커널과 유사한 속성을 가지며, 확산 방정식의 해에 해당하고, 세미 그룹 속성을 따르며, 브라운 운동의 효과를 설명하고, 값의 합이 정확히 1이 된다.

3. 1. FIR 커널 컨볼루션

가우시안 블러 효과는 일반적으로 가우시안 값을 갖는 FIR 커널로 이미지를 컨볼루션하여 생성된다.[4]

실제로 가우시안 블러의 분리 가능한 속성을 활용하여 프로세스를 두 단계로 나누는 것이 가장 좋다. 첫 번째 단계에서는 1차원 커널을 사용하여 이미지의 수평 또는 수직 방향으로만 블러 처리한다. 두 번째 단계에서는 동일한 1차원 커널을 사용하여 나머지 방향으로 블러 처리한다. 결과 효과는 단일 단계에서 2차원 커널로 컨볼루션하는 것과 동일하지만 계산량이 줄어든다.

이산화는 일반적으로 각 픽셀의 중간점에 해당하는 위치에서 가우시안 필터 커널을 샘플링하여 수행된다. 이렇게 하면 계산 비용이 줄어들지만, 필터 커널이 매우 작은 경우, 매우 적은 샘플로 가우시안 함수를 점 샘플링하면 오류가 커진다. 이러한 경우, 각 픽셀의 영역에 대해 가우시안 함수를 적분하여 정확성을 유지한다(약간의 계산 비용 발생).[5]

가우시안의 연속 값을 커널에 필요한 이산 값으로 변환할 때, 값의 합은 1과 다르게 된다. 이로 인해 이미지의 어둡거나 밝아지는 현상이 발생한다. 이를 해결하기 위해 커널의 각 항을 커널의 모든 항의 합으로 나누어 값을 정규화할 수 있다.

''n''차원 가우시안 함수는 ''n''개의 1차원 가우시안 함수의 직적으로 나타낸다. 이 성질로부터, 각 방향으로 한 번씩 가우시안 블러를 적용하는 것으로도 동일한 결과를 얻을 수 있다. 이를 통해 픽셀당 계산량O(r_{\mathrm{cutoff}}^{n})에서 O(n r_{\mathrm{cutoff}})로 줄여 블러 처리를 고속화할 수 있다.

3. 2. 이산화 및 정규화

이 샘플 행렬은 가우시안 필터 커널(σ = 0.84089642)을 각 픽셀의 중간 지점에서 샘플링한 후 정규화하여 생성된다. 중앙 요소([0, 0] 위치)는 가장 큰 값을 가지며, 중심으로부터의 거리가 증가함에 따라 대칭적으로 감소한다. 필터 커널의 원점이 중심에 있기 때문에, 행렬은 G(-R, -R)에서 시작하여 G(R, R)에서 끝나며, 여기서 R은 커널 반경과 같다.

요소 0.22508352 (중앙 요소)는 3σ 바로 바깥에 있는 0.00019117보다 1177배 크다.

실제로 가우시안 블러를 적용할 때는 분리 가능한 속성을 활용하여 두 단계로 나누어 처리하는 것이 효율적이다. 먼저 1차원 커널을 사용하여 이미지의 수평 또는 수직 방향으로 블러 처리하고, 그 다음 동일한 1차원 커널을 사용하여 나머지 방향으로 블러 처리한다. 이렇게 하면 2차원 커널을 한 번에 적용하는 것과 같은 결과를 얻으면서도 계산량을 줄일 수 있다.

이산화는 보통 각 픽셀의 중간점에 해당하는 위치에서 가우시안 필터 커널을 샘플링하여 수행한다. 이 방법은 계산 비용을 줄여주지만, 필터 커널이 매우 작은 경우에는 샘플 수가 적어 오류가 커질 수 있다. 이러한 경우에는 각 픽셀 영역에 대해 가우시안 함수를 적분하여 정확도를 높일 수 있다.[5]

가우시안 함수의 연속적인 값을 커널에 필요한 이산 값으로 변환하면, 값의 합이 1과 달라져 이미지의 밝기가 변하는 문제가 발생할 수 있다. 이를 해결하기 위해 커널의 각 항을 모든 항의 합으로 나누어 값을 정규화한다.

더 나은 방법은 가우시안 커널의 이산적 유사체를 사용하여 스무딩을 수행하는 것이다.[6] 이산 가우시안 커널은 연속 가우시안 커널과 유사한 속성을 가지며, 확산 방정식의 해에 해당하고, 세미 그룹 속성을 따르며, 브라운 운동의 효과를 설명하고, 값의 합이 정확히 1이 된다.

중심 극한 정리에 의해, 다른 등방성 블러 처리를 반복적으로 적용하여 가우시안 블러에 근사하는 결과를 얻을 수도 있다.

3. 3. 이산 가우시안 커널

가우시안 블러는 FIR 커널로 이미지를 컨볼루션하여 생성된다.[4] 이산화는 일반적으로 각 픽셀의 중간점에 해당하는 위치에서 가우시안 필터 커널을 샘플링하여 수행된다. 이렇게 하면 계산 비용이 줄어들지만, 필터 커널이 매우 작은 경우 오류가 커질 수 있다.[5]

이러한 문제점을 해결하기 위해, 가우시안 커널의 이산적 유사체로 스무딩을 수행하는 방법이 더 타당하다.[6] 이산 가우시안 커널은 연속 가우시안 커널과 유사한 속성을 가지며, 확산 방정식의 해에 해당하고, 세미 그룹 속성을 따르며, 브라운 운동의 효과를 설명하고, 값의 합이 정확히 1과 같다.

FIR 필터 대신 다중 박스 블러, IIR 데리체 에지 검출기, "스택 블러" 등의 대안이 존재한다.[7]

가우시안 함수는 중심에서 멀어질수록 값이 작아지므로, 정도로 잘라서 컨볼루션 행렬을 만들면 가우시안 블러를 얻을 수 있다.

n차원 가우시안 함수는 n개의 1차원 가우시안 함수의 직적으로 나타낼 수 있다. 이 성질을 이용하면 각 방향으로 한 번씩 가우시안 블러를 적용하여 픽셀당 계산량을 줄여 블러 처리를 고속화할 수 있다.

중심 극한 정리에 의해, 다른 등방성 블러 처리를 반복적으로 적용하여 가우시안 블러를 근사할 수 있다.

3. 4. 최적화 기법

가우시안 블러 효과는 일반적으로 가우시안 값을 갖는 FIR 커널로 이미지를 컨볼루션하여 생성한다.[4]

FIR의 효율성은 시그마가 높을 경우 떨어진다. FIR 필터의 대안으로는 다중 박스 블러, IIR 데리체 에지 검출기, 박스 블러 기반의 "스택 블러" 등이 있다.[7]

4. 시간 인과성 스무딩

가우시안 커널은 사전 녹화된 시계열 신호나 비디오를 처리할 때 시간 도메인에서도 스무딩에 사용될 수 있다. 데이터가 이미 녹화되어 모든 방향에서 사용 가능하기 때문이다. 그러나 실시간 상황에서는 가우시안 커널을 시간적 스무딩에 사용할 수 없다. 미래의 데이터에 접근해야 하는데, 이는 당연히 불가능하다.

실시간 상황에서 시간적 스무딩을 위해서는 시간 인과성 한계 커널[8]이라는 시간 커널을 대신 사용할 수 있다. 이 커널은 비인과적인 경우 가우시안 커널이 따르는 것과 유사한 특성(스케일 증가 및 시간 스케일 공분산에 대한 새로운 구조 생성 방지)을 시간 인과적 상황에서 갖는다. 시간 인과성 한계 커널은 특정 시간 상수를 가진 무한대의 잘린 지수 커널이 캐스케이드 방식으로 결합된 것과의 컨볼루션에 해당한다. 이산 데이터의 경우, 이 커널은 종종 소수의 1차 재귀 필터를 캐스케이드 방식으로 결합하여 수치적으로 잘 근사될 수 있다.[8]

5. 응용 분야

스무딩을 더 많이 할수록 더 적은 가장자리가 감지된다.


가우시안 블러는 이미지의 고주파 성분을 줄여 로우 패스 필터로 작동한다. 가우시안의 푸리에 변환은 또 다른 가우시안이기 때문이다.[3] 가우시안 필터는 이미지 픽셀 값의 표준 편차를 줄이고, 가장자리 감지에 주로 사용된다. 가장자리 감지 전에 가우시안 블러 필터를 사용하면 이미지 노이즈를 줄여 가장자리 감지 알고리즘의 결과를 개선할 수 있으며, 이를 가우시안의 라플라시안(LoG) 필터링이라고 한다.[9]

디지털 카메라휴대 전화 카메라는 높은 ISO 감도에서 발생하는 이미지 노이즈를 줄이기 위해 가우시안 블러를 사용한다.[10] 중심 극한 정리에 의해, 다른 등방성 블러 처리를 반복 적용하여 가우시안 블러에 근사한 결과를 얻을 수도 있다.[1]

5. 1. 로우 패스 필터

가우시안 블러는 이미지의 고주파 성분을 줄이는 효과가 있어 로우 패스 필터로 작동한다. 가우시안의 푸리에 변환은 또 다른 가우시안이기 때문이다.[3]

가우시안 블러는 저역 통과 필터로서, 고주파 신호를 감쇠시킨다.[3]

5. 2. 분산 감소

가우시안 필터는 이미지의 픽셀 값 표준 편차를 줄이는 역할을 한다. 회색조 픽셀 값의 표준 편차가 \sigma_X일 때, 가우시안 필터(표준 편차 \sigma_f)를 적용하면 표준 편차는 다음과 같이 줄어든다.

:\sigma_r \approx \frac{\sigma_X}{\sigma_f 2 \sqrt \pi}.

5. 3. 가장자리 감지



가우시안 스무딩은 가장자리 감지에 주로 사용된다. 대부분의 가장자리 감지 알고리즘은 노이즈에 민감하며, 라플라스 연산자를 이산화하여 만들어진 2차원 라플라스 필터는 노이즈가 많은 환경에 매우 민감하다.[9]

가장자리 감지 전에 가우시안 블러 필터를 사용하면 이미지의 노이즈 수준을 줄여, 이후에 수행되는 가장자리 감지 알고리즘의 결과를 개선할 수 있다. 이러한 접근 방식은 가우시안의 라플라시안(LoG) 필터링이라고도 한다.[9]

5. 4. 사진

디지털 카메라휴대 전화 카메라는 높은 ISO 감도에서 발생하는 이미지 노이즈를 줄이기 위해 가우시안 블러를 흔히 사용한다.[10] 가우시안 블러는 카메라 소프트웨어에 의한 사진 이미지 편집 후처리 과정의 일부로 자동 적용되어 이미지의 세부적인 부분을 손실시키기도 한다.

5. 5. 근사

중심 극한 정리에 의해, 다른 등방성 블러 처리를 반복 적용하여 가우시안 블러에 근사한 결과를 얻을 수 있다.[1]

참조

[1] 서적 Computer Vision Prentice Hall 2001
[2] 서적 Feature Extraction and Image Processing Academic Press 2008
[3] 논문 A Class of Fast Gaussian Binomial Filters for Speech and Image Processing https://web.njit.edu[...] 1991-03
[4] 논문 Discrete approximations of Gaussian smoothing and Gaussian derivatives https://doi.org/10.1[...] 2024
[5] 서적 High dynamic range imaging: Acquisition, Display, and Image-Based Lighting Morgan Kaufmann 2006
[6] 논문 Scale-space for discrete signals http://kth.diva-port[...] 1990-03
[7] 논문 ASurvey of Gaussian Convolution Algorithms http://dev.ipol.im/~[...] 2013-12-17
[8] 논문 A time-causal and time-recursive scale-covariant scale-space representation of temporal signals and past time 2023-01-23
[9] 웹사이트 Spatial Filters - Laplacian of Gaussian http://homepages.inf[...] 2010-09-13
[10] 웹사이트 Smartphone-Kameras: Warum gute Fotos zu schießen nicht mehr ausreicht [Kommentar] https://web.archive.[...] GIGA Television 2013-10-24
[11] 웹사이트 ガウスぼかしを使い画像を処理 | Adobe https://www.adobe.co[...]
[12] 웹사이트 インテル® AVX を使用した IIR ガウスぼかしフィルターの実装 | iSUS https://www.isus.jp/[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com