앎을 경계하기

Machine Learning/For CV

2. 디지털 영상 기초(4)

양갱맨 2020. 10. 31. 18:33

2.6 디지털 영상 처리에 사용되는 수학적 도구들 소개

2.6.1 배열 연산 대 매트릭스 연산

하나 이상의 영상을 포함하는 배열 연산은 화소 대 화소로 수행된다. 즉 element-wise가 적용된다.

배열 연산과 매트릭스 연산이 구별되는 것은 다음 예시로 설명한다.

[a11a12a21a22][b11b12b21b22]\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22} \end{bmatrix}와 \begin{bmatrix}b_{11}&b_{12}\\b_{21}&b_{22} \end{bmatrix}

위 두 영상의 배열 곱은 아다마르곱이 적용된다.

[a11a12a21a22][b11b12b21b22]=[a11b11a12b12a21b21a22b22]\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22} \end{bmatrix}\begin{bmatrix}b_{11}&b_{12}\\b_{21}&b_{22} \end{bmatrix}=\begin{bmatrix}a_{11}b_{11}&a_{12}b_{12}\\a_{21}b_{21}&a_{22}b_{22} \end{bmatrix}

그러나 행렬곱셈은 다르다.

[a11a12a21a22][b11b12b21b22]=[a11b11+a12b21a11b12+a12b22a21b11+a22b21a21b12+a22b22]\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22} \end{bmatrix}\begin{bmatrix}b_{11}&b_{12}\\b_{21}&b_{22} \end{bmatrix}=\begin{bmatrix}a_{11}b_{11}+a_{12}b_{21}&a_{11}b_{12}+a_{12}b_{22}\\a_{21}b_{11}+a_{22}b_{21}&a_{21}b_{12}+a_{22}b_{22} \end{bmatrix}

2.6.2 선형 연산 대 비선형 연산

영상 처리 방법에서 선형적/비선형으로 구분되는 것은 중요한 분류 중 하나다. 주어진 입력 영상 f(x,y)f(x,y)에 대해 출력 영상 g(x,y)g(x,y)를 만드는 일반 연산자 HH를 고려하자

H[f(x,y)]=g(x,y)H[f(x,y)]=g(x,y)

만약 연산자 HH가 다음과 같으면 선형 연산자라고 한다.

H[aifi(x,y)+ajfj(x,y)]=aiH[fi(x,y)]+ajH[fj(x,y)]=aigi(x,y)+ajgj(x,y)H[a_if_i(x,y)+a_jf_j(x,y)] = a_iH[f_i(x,y)]+a_jH[f_j(x,y)]=a_ig_i(x,y)+a_jg_j(x,y)

ai,aj,fi(x,y),fj(x,y)a_i,a_j,f_i(x,y),f_j(x,y)는 각 임의의 상수와 영상이다.

덧셈성(additivity) : 두 입력의 합에 대한 선형 연산의 출력이 연산을 각 입력에 대해 개별적으로 수행하고 결과를 합하는 것과 같다. 동차성(homogeneity) : 상수가 곱해진 입력에 대한 선형연산의 출력은 원래 입력에 대한 연산 출력에 상수를 곱한 것과 같다.

예시) HH\sum이라고 하면,

또 다른 비교로 HHmax\max라고 하면,

선형/비선형 구분이 중요한 이유는 선형 시스템이 영상 처리에 선형 연산들이 많은 기반이 되기 때문에 중요하다. 비선형 시스템은 상대적으로 이해가 잘 되지 않아 응용 범위가 더 제한적이다. 그렇다고 비선형 시스템이 선형 시스템에 비해 성능적으로 떨어지는 것은 아니다.

2.6.3 산술 연산

영상 간 산술 연산은 배열 연산이다.

즉, 영상 간의 산술 연산은 화소 별로 수행된다. 사칙 연산이 적용 가능하다.

  • 덧셈

    예시) 노이즈 없는 영상 f(x,y)f(x,y)에 노이즈 η(x,y)\eta(x,y)를 더해 오염된 영상을 g(x,y)g(x,y)라고 하자.

    g(x,y)=f(x,y)+η(x,y)g(x,y)=f(x,y)+\eta(x,y)

    여기서 노이즈는 uncorrelated하고 mean이 0이라고 가정한다. 다음 목적은 노이즈 낀 영상들을 더해서 노이즈 함량을 줄이는 것이다. 영상 개선에서 자주 사용되는 기법이다.

    K가 증가할수록 각 위치(x,y)에서 화소 값들의 변화성이 감소함을 나타낸다.

    E[gˉ(x,y)]=f(x,y)E[\bar{g}(x,y)]=f(x,y)이기 때문에, K가 증가할수록 gˉ(x,y)\bar{g}(x,y)f(x,y)f(x,y)에 가까워진다는 것을 의미한다.

    덧셈은 연속적 적분의 이산 버전이다. 위와 같은 방법은 같은 장면을 긴 시간 촬영해서 노이즈를 축소하기 위해 CCD같은 센서들의 적분능력을 활용하는 것이다.

    • 뺄셈

      영상 간 차이를 개선하는데 응용된다.

      영상 뺄셈이 상업적으로 성공한 분야는 마스크 모드 X-선 촬영이다. Mask h(x,y)h(x,y) 는 X-선 광원의 반대면에 위치한 강화 TV 카메라에 의해 포착된 환자의 신체의 한 X-선 영상이다. 조영제를 혈류에 주입한 후 일련의 영상들을 촬영하여 각 샘플 라이브 영상으로부터 마스크를 빼는 것이다. 조영제가 어떻게 퍼져나가는지 확인할 수 있다.

왼쪽 상단 그림에서 임의로 객체를 지워 아래 이미지를 만든 후, 두 영상을 빼면 영상 간의 차이를 알 수 있다.

  • 곱셈( 그리고 나눗셈) 곱셈과 나눗셈은 음영 보정에서의 응용이다. 예를 들어, 영상 f(x,y)f(x,y)h(x,y)h(x,y) 의 곱으로 모델링 될 수 있는 영상 g(x,y)g(x,y) 이 있다. 만약 h(x,y)h(x,y) 를 알고 있다면, g(x,y)g(x,y)h(x,y)h(x,y) 로 나눠 f(x,y)f(x,y) 를 구할 수 있다. 모른다고 해도 영상화 시스템에 대한 접근이 가능하다면, 일정 밝기의 표적을 영상화하여 음영 함수에 대한 근사를 얻을 수 있다. 또 다른 용도는 ROI(Region Of Interest)연산인 마스킹이다. 마스크 영상에서 ROI는 하나 이상의 영역을 가질 수 있다. 관심있는 부분을 남겨 그 부분에 집중하는 것이다.

대부분의 영상들은 8비트로 표시된다. 24비트 영상도 개별적인 8비트 채널로 구성된다. 따라서 영상 값들이 0~255 범위에 있게 된다. 영상의 산술 연산을 하게 되면 [0, 255] 범위를 넘어가게 되는 경우가 있다. 많은 패키지들이 8비트 영상으로 바꾸기 위해 음수 값은 0, 범위를 넘어가는 양수 값은 255로 만든다. 영상 간 산술 연산의 모든 영역이 고정된 비트 수로 포착되게 보정하는 방법은 다음과 같다.

fm=fmin(f)fs=K[fm/max(fm)]f_m = f-\min(f)\\f_s=K[f_m/\max(f_m)]

첫 수식을 적용하면 가장 작은 값을 기준으로 영상의 값을 뺀다. 이 연산의 결과는 최소값이 0이 되게 된다. 그 다음 식을 적용하면 영상에 스케일링이 적용되어 값들이 범위가 [0,K]에 있게 된다. K가 255이면 0~255인 8비트로 스케일링된 영상이 만들어지는 것이다.

'Machine Learning > For CV' 카테고리의 다른 글

3. 밝기 변환과 공간 필터링(1)  (0) 2020.10.31
2. 디지털 영상 기초(5)  (0) 2020.10.31
2. 디지털 영상 기초(3)  (0) 2020.10.15
2. 디지털 영상 기초(2)  (0) 2020.10.15
2. 디지털 영상 기초(1)  (0) 2020.10.15