오늘은 이미지 그레디언트(gradient)를 이용해서 엣지 정보를 검출하는 것에 대해 정리하겠다. 디지털 이미지를 처리할 때 왜 엣지 정보가 중요한지는 이전 포스팅에서 다뤘었다. => https://bskyvision.com/132


사람의 시각시스템은 우리가 보는 장면 중에서 변화가 있는 부분을 중점적으로 처리한다. 이미지 내에서 변화가 큰 부분은 바로 엣지(가장자리)들이다. 그렇기 때문에 디지털 이미지를 처리할 때 엣지 정보를 중요하게 다뤄야하는 것이다. 



▶ 이미지 그레디언트


우선 그레디언트는 '기울기, 증감, 변화도'라는 뜻을 지닌다. 한마디로 변화하는 정도를 나타내는 단어이다. 이미지 내에서 픽셀값의 변화가 큰 부분은 일반적으로 엣지 및 코너 부분일 것이다. 반면 평탄(flat)한 부분은 변화가 적을 것이다. 그림1을 참고하자. 


그림1. 엣지, 코너, 평탄 부분 설명.


변화하는 정도는 수학적으로 미분과 관련이 있다. 이미지는 2차원이기 때문에 수직 방향과 수평 방향으로 미분해주면, 수직 방향으로 어떻게 변화하는지, 또한 수평 방향으로 어떻게 변화하는지를 알 수 있다. 


이미지 I의 그레디언트는 아래와 같이 계산한다. 


...(수식1: 이미지 그레디언트)


여기서 는 수평 방향으로의 변화,  는 수직 방향으로의 변화를 나타낸다. 따라서, 이 벡터는 (x, y)에서 수평 방향으로, 수직 방향으로 얼마나 변화하는지를 알려준다. 


그레디언트 벡터의 크기(magnitude)와 방향(direction)은 각각 다음과 같다.


...(수식2: 그레디언트 크기)


...(수식3: 그레디언트 방향)


그럼 와 를 어떻게 구할까? 여러 방법이 있지만 그중 가장 간단한 것은 1차 미분 엣지 검출을 위해 고안된 마스크로 이미지를 컨볼루션해주는 것이다. 마스크 종류에는 Roberts 마스크, Prewitt 마스크, Sobel 마스크 등이 있다. 그중 Prewitt 마스크와 Sobel 마스크는 그림2와 같다. 


그림2. Prewitt 마스크와 Sobel 마스크.


대각 엣지 검출 마스크를 사용하면 대각 엣지도 검출 가능하다. Prewitt 마스크와 Sobel 마스크는 상당히 유사하다. 차이가 있다면 Sobel 마스크는 그레디언트를 구하고자 하는 픽셀 위치에서 가까울수록 더 큰 가중치를 주는 형태이다. Sobel가 Prewitt보다 좀 더 나은 노이즈 억제력을 보인다고 한다[1]. 노이즈가 있는 상황에서 좀 더 엣지를 잘 도출해낸다는 뜻이다. Sobel 엣지에 대한 더 자세한 설명은 링크건 포스팅을 참고하자. => https://bskyvision.com/43



▶ 이미지 그레디언트 산출하기


Sobel 마스크를 이용해서 그레디언트 크기 이미지와 방향 이미지를 산출해보자. 매트랩에서 작성한 코드는 다음과 같다. 


clc, clear, close all


img = imread('DSC03771.JPG'); % 이미지 읽기

img = rgb2gray(img); % RGB 컬러 영상 그레이 영상으로 전환


Sobel_mask_h = [-1 -2 -1; 0 0 0; 1 2 1]; % 수평 엣지 검출용 Sobel 마스크

Sobel_mask_v = [-1 0 1; -2 0 2; -1 0 1]; % 수직 엣지 검출용 Sobel 마스크


img_h_edge = conv2(img, Sobel_mask_h, 'valid'); % 수평 엣지 검출

img_v_edge = conv2(img, Sobel_mask_v, 'valid'); % 수직 엣지 검출


figure, imshow(mat2gray(img_h_edge));

figure, imshow(mat2gray(img_v_edge));


Grad_mag = sqrt(img_h_edge.^2 + img_v_edge.^2); % 그레디언트 크기 이미지

Grad_direc = atan(img_v_edge./img_h_edge); % 그레디언트 방향 이미지


figure, imshow(mat2gray(Grad_mag));

figure, imshow(mat2gray(Grad_direc));


테스트 이미지와 결과 이미지들은 아래와 같다. 


그림3. 그레디언트 이미지.


먼저 그림3(b)를 보면, 수평 엣지들을 주로 도출되었음을 알 수 있다. 그림3(c)에서는 수직 엣지들이 도드라져있다. 그림3(d)는 수식2를 이용해서 만들어진 그레디언트 크기 이미지이다. 이미지 내의 엣지들이 대체적으로 잘 도출되었음을 확인할 수 있다. 그림3(e)는 수식3을 통해 계산된 그레디언트 방향 이미지이다. 



▶ Sobel 엣지와 Prewitt 엣지 비교


[1]에서 Sobel 마스크가 Prewitt 마스크보다 더 나은 노이즈 억제력이 있다고 언급했었다. 실제로 그런지 확인해보려고 한다. additive white Gaussian noise로 손상된 이미지에서 Sobel 엣지와 Prewitt 엣지를 도출해서 비교해보자. 매트랩 코드는 다음과 같이 작성했다.


clc, clear, close all


img = imread('DSC07466.JPG'); % 테스트 이미지 읽기

noise_img = imnoise(img, 'gaussian', 0, 0.01); % 노이즈 첨가


figure, imshow(noise_img);


noise_img = rgb2gray(noise_img); % 노이즈 첨가된 RGB 컬러 영상 그레이 영상으로 전환


sobel_mask_h = [-1 -2 -1; 0 0 0; 1 2 1]; % 수평 엣지 검출용 Sobel 마스크

sobel_mask_v = [-1 0 1; -2 0 2; -1 0 1]; % 수직 엣지 검출용 Sobel 마스크


sobel_h_edge = conv2(noise_img, sobel_mask_h, 'valid'); % 수평 엣지 검출

sobel_v_edge = conv2(noise_img, sobel_mask_v, 'valid'); % 수직 엣지 검출


sobel_edge = sqrt(sobel_h_edge.^2 + sobel_v_edge.^2); % sobel 엣지 이미지(그레디언트 크기)


prewitt_mask_h = [-1 -1 -1; 0 0 0; 1 1 1]; % 수평 엣지 검출용 Prewitt 마스크

prewitt_mask_v = [-1 0 1; -1 0 1; -1 0 1]; % 수직 엣지 검출용 Prewitt 마스크


prewitt_h_edge = conv2(noise_img, prewitt_mask_h, 'valid'); % 수평 엣지 검출

prewitt_v_edge = conv2(noise_img, prewitt_mask_v, 'valid'); % 수직 엣지 검출


prewitt_edge = sqrt(prewitt_h_edge.^2 + prewitt_v_edge.^2); % Prewitt 엣지 이미지(그레디언트 크기)



figure, imshow(mat2gray(sobel_edge))

figure, imshow(mat2gray(prewitt_edge))


노이즈 이미지와 노이즈 이미지의 Sobel 및 Prewitt 엣지 이미지들을 살펴보자. 


그림4. 노이즈 이미지와 Sobel 엣지 및 Prewitt 엣지 이미지.


화이트 가우시안 노이즈를 첨가하고 Sobel 엣지와 Prewitt 엣지를 도출했는데, 둘 중 어떤 것이 더 나은 성능을 보인다고 말하기 어려울 정도로 결과 영상에 큰 차이가 없다. 테스트 이미지를 바꿔보고, 노이즈의 강도를 조절하면서 체크해봤는데도 큰 차이를 느끼지 못했다. 그렇다고 이 결과로 [1]의 내용을 완전히 부정할 수는 없다. 



▶ 글을 마무리하며..


Roberts 연산자, Prewitt 연산자, Sobel 연산자는 1차 미분을 이용한 엣지 검출방법이다. 반면, LoG(Laplacian of Gaussian)은 2차 미분을 이용한 엣지 검출방법이다. 




<참고자료>

[1] Rafael C. Gonzalez, Richard E. Woods, "Digital Image Processing" (3판), Pearson

오늘은 이미지 품질 평가(image quality assessment) 분야에서 가장 영향력이 있는 SSIM이라는 알고리즘과 SSIM의 변형 발전시킨 알고리즘들을 살펴보겠다. SSIM은 이미지 품질 평가의 필요성과 중요성을 학계에 강하게 알렸다고도 말할 수 있는 알고리즘이다. SSIM의 저자들 중 Zhou Wang 교수와 Alan C. Bovik 교수는 이미지 품질 평가분야에서 핵심 인물들이다. 아래는 두 교수가 담당하고 있는 연구실들의 홈페이지 주소들이다.


Zhou Wang 교수의 연구실 Waterloo 대학교 IVC 홈페이지:

http://ivc.uwaterloo.ca/


Zhou Wang 교수의 개인 홈페이지: 

https://ece.uwaterloo.ca/~z70wang/


Alan C. Bovik 교수의 연구실 텍사스 대학교 LIVE 홈페이지: 

http://live.ece.utexas.edu/index.php


특히 Alan C. Bovik 교수의 텍사스 대학의 LIVE 연구실은 계속적으로 이미지 품질 평가에 관한 영향력있는 논문들을 게재하고 있다. 개발한 알고리즘의 소스코드도 대부분 공개하고 있어서 이미지 품질 평가 발전에 큰 공헌을 하고 있다. (개인적으로 나도 나중에 이러한 연구실을 하나 꾸리고 싶다.)



▶ SSIM (structural similarity)


해당논문: Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. IEEE transactions on image processing, 13(4):600, 2004.


사람 시각 시스템은 이미지에서 구조 정보를 도출하는데 특화되어 있기 때문에 구조 정보의 왜곡 정도가 지각 품질에 가장 큰 영향을 미친다. 이것이 바로 SSIM의 기본이 되는 핵심 가설이다. 구체적으로 원본 이미지 x와 왜곡 이미지 y의 밝기, 콘트라스트, 구조를 비교한다. 


우선 두 이미지의 평균 밝기를 비교한다. 


...(공식1: 밝기 비교)


그리고 이미지의 표준편차값을 이미지의 콘트라스트로 정의하고, 두 이미지의 표준편차값을 비교한다.  


...(공식2: 콘트라스트 비교)


또한 구조는 이미지에서 평균 밝기를 빼주고, 표준편차로 나눠준 것이라고 정의했다: 


.


저자들은 이 둘의 상관계수를 구하는 것과 x, y의 상관계수를 구하는 것이 등가라고 판단해서, x, y의 상관계수를 구함으로 원본이미지와 왜곡이미지의 구조를 비교했다.  


...(공식3: 구조 비교)


이 세가지 비교 항목을 아래와 같이 하나로 묶어주어, 품질 맵을 만든다.  


...(공식4: SSIM 맵)


저자들은 이 SSIM을 전역적으로 적용하지 않고 지역적으로 적용했다. 그렇게 얻은 SSIM 맵의 픽셀 값들을 평균냄으로 최종 품질 점수를 얻었다. 


다음 원본 이미지와 왜곡 이미지에 SSIM을 적용해 얻은 밝기비교맵, 콘트라스트비교맵, 구조비교맵, 그리고 최종적인 SSIM맵을 확인해보자. 밝을 수록 해당 지역의 품질은 좋은 것이고, 어두울 수록 품질이 나쁜 것이다. 


그림1. 원본 이미지. (약 10년전 사진인데 참 촌스럽다 ㅋㅋ) 그림2. 왜곡된 이미지. JPEG 압축이 과도하게 되었다.


이 두 이미지의 밝기를 비교한 밝기비교맵이다(공식1 참고).   


그림3. 밝기비교맵.


전반적으로 흰색에 가깝기 때문에 밝기 부문에서는 왜곡 현상이 크지 않다는 것을 알 수 있다. 


이번에는 콘트라스트를 비교한 콘트라스트비교맵이다(공식2 참고).


그림3. 콘트라스트 비교맵.


벽돌들의 질감이 무뎌진 것과 하늘에 블락현상이 생긴 것을 잘 반영하고 있다.


이번에는 구조를 비교한 구조비교맵이다(공식3 참고).


그림5. 구조비교맵.


대략적인 윤곽을 제외하고는 구조정보가 압축에 의해 많이 손상되었음을 알 수 있다.


마지막으로 이 세 가지를 종합한 최종적인 SSIM 맵이다. 


그림6. SSIM 맵.


이 맵을 통해 우리는 벽돌의 질감이 무뎌진 것과 하늘에 블락현상이 생긴 것, 또한 인물의 디테일함이 사라진 것들이 지각 품질에 나쁘게 영향을 미쳤음을 알 수 있다. SSIM 점수는 1점 만점에 0.7967이었다. 



▶ MS-SSIM (multi-scale SSIM)


해당 논문: Z. Wang, E. P. Simoncelli, and A. C. Bovik. Multiscale structural similarity for image quality assessment. In Signals, Systems and Computers, 2004. Conference Record of the Thirty-Seventh Asilomar Conference on, pages 1398–1402 Vol.2, 2004.


MS-SSIM은 SSIM에 스케일 스페이스의 개념을 추가시킨 것이다. 여러 스케일에서 SSIM 점수를 산출한 다음에 가중곱해서 최종 스코어를 얻는다. 



▶ IW-SSIM (information content weighting MS-SSIM)


해당 논문: Z. Wang and Q. Li. Information content weighting for perceptual image quality assessment. IEEE Transactions on Image Processing, 20(5):1185–1198, 2011. 


IW-SSIM은 MS-SSIM을 좀 더 발전시켜, SSIM 맵을 평균내서 점수를 내지 않고 정보 중요도에 따라 다른 가중치를 부여해서 점수를 냈다.   



▶ CW-SSIM (complex wavelet SSIM)


해당 논문: M. P. Sampat, Z. Wang, S. Gupta, A. C. Bovik, and M. K. Markey. Complex wavelet structural similarity: a new image similarity index. IEEE Transactions on Image Processing, 18(11):2385, 2009.


CW-SSIM은 컴플렉스 웨이블릿 도메인으로 SSIM을 확장시켰다. 기존 SSIM이 기하학적 왜곡과 스케일 왜곡에 매우 민감하다는 것을 개선하기 위해 CW-SSIM이 개발되었다. CW-SSIM의 핵심 아이디어는 작은 기하하적 이미지 왜곡은 지역 웨이블릿 계수에서 일관된 위상 변화를 일으키는데, 이 위상 변화는 이미지의 구조를 바꾸지는 않는다는 것이다. 그러니까 이미지의 구조를 바꾸지 않는 작은 기하학적 왜곡들은 용인해내도록 SSIM을 변형시킨 것이다. 



▶ FSIM (feature similarity) 


해당 논문: L. Zhang, L. Zhang, X. Mou, and D. Zhang. Fsim: A feature similarity index for image quality assessment. IEEE Transactions on Image Processing, 20(8):2378–2386, 2011.


FSIM의 저자들은 원본이미지와 왜곡이미지를 그대로 놓고 비교하면 불필요한 정보들까지도 비교하게 된다고 보았다. 그래서 엣지와 zero-crossing등 저차원의 중요한 특성들을 가지고 품질을 비교하는 것이 더 낫다고 판단했다. 그들은 원본 및 왜곡 이미지에서 PC(phase congruency) 맵과 GM(gradient magnitude) 맵을 도출한 다음에 그 맵들간 유사도를 비교해서 지역 품질 맵을 만들었다. 그리고 PC 맵을 가중치로 이용해서 지역 품질 점수를 하나의 최종 품질 점수로 모았다.  



▶ GSM (gradient similarity based metric) 


해당 논문: A. Liu, W. Lin, and M Narwaria. Image quality assessment based on gradient similarity. IEEE Transactions on Image Processing, 21(4):1500–1512, 2012.

그레디언트는 이미지의 구조와 콘트라스트 변화를 잘 나타낸다. GSM은 그레디언트 정보의 유사도를 비교했다. 또한 이미지 밝기의 유사도를 추가적으로 비교했다. 최종적으로 그레디언트 유사도와 이미지 밝기 유사도를 하나의 스코어로 묶어주었다. 


<참고자료>

[1] Ren Y , Sun L , Wu G , et al. DIBR-synthesized image quality assessment based on local entropy analysis[C]// International Conference on the Frontiers & Advances in Data Science. IEEE, 2018. => SSIM 관련 알고리즘들 설명을 잘 해놓았음. 


오늘은 공분산(covariance)과 상관계수(correlation coefficient)에 대해서 알아보자. 



▶ 공분산


공분산은 확률변수 X의 편차(평균으로부터 얼마나 떨어져 있는지)와 확률변수 Y의 편차를 곱한 것의 평균값이다. 


...(공식1: 공분산)


여기서 는 각각 X와 Y의 평균값들이다. 


공분산이 0보다 크면 X가 증가할 때 Y도 증가한다는 뜻이다. 공분산이 0보다 작으면 X가 증가할 때 Y는 감소한다. 공분산이 0이면 두 변수 간에는 아무런 상관 관계가 없다. 이처럼 공분산을 통해 우리는 X의 증가에 따라 Y가 증가하는지 감소하는지에 대해서 알 수 있다. 다른 말로, 공분산은 두 변수 간에 양의 상관관계가 있는지, 음의 상관관계가 있는지 정도 알려준다. 하지만 상관관계가 얼마나 큰지는 제대로 반영하지 못한다. 


공분산의 문제는 확률변수의 단위 크기에 영향을 많이 받는다는 것이다. 이를 보완할 수 있는 것이 바로 상관계수다. 



▶ 상관계수


상관계수는 확률변수의 절대적 크기에 영향을 받지 않도록 공분산을 단위화시킨 것이다. 즉, 공분산에 각 확률변수의 분산을 나눠주었다.


...(공식2: 상관계수) 


상관계수는 양의 상관관계가 있는지 음의 상관관계가 있는지 알려줄 뿐만 아니라, 그 상관성이 얼마나 큰지도 알려준다. 1 또는 -1에 가까울 수록 상관성이 큰 것이고, 0에 가까울 수록 상관성이 작은 것이다. 


상관계수의 종류에는 피어슨 상관계수, 스피어만 상관계수, 켄달 상관계수 등이 있다. (참고: https://bskyvision.com/116) 피어슨 상관계수는 선형관계의 정도를 판단하고, 스피어만 상관계수와 켄달 상관계수는 단조관계의 정도를 판단한다. 




<참고자료>

[1] http://destrudo.tistory.com/15, 진지환님 티스토리글, 공분산과 상관계수

[2] https://m.blog.naver.com/yunjh7024/220819816790, 제이님 네이버블로그글, Story 5.1 선형관계의 척도: 공분산, 상관계수

▶ 스테레오스코피


스테레오스코피(stereoscopy)인간이 두 눈으로 살짝 다른 장면을 보는 것과 같이 두 개의 카메라를 이용해서 살짝 다른 시점에서 촬영한 영상 정보를 두 눈에 각각 입력되게 하는 방식이다. 스테레오스코피 방식은 3D 안경을 필요로 한다. 3D 안경의 종류에는 적청안경, 셔터글래스, 편광안경이 있다. 세 방식 모두 각 눈에 각 눈에 해당하는 영상을 입력시켜주는 것이 핵심이다. 


이중 가장 간단한 것은 적청안경이다. 적청안경의 한쪽은 붉은색으로 다른 한쪽 렌즈는 푸른색이다. 붉은색 렌즈에서는 붉은색 이미지가 보이지 않고 청색 이미지만 보이고, 청색 렌즈에서는 붉은색 이미지만 보인다. 색상을 제대로 표현해내지 못한다는 단점 때문에 거의 사용되지 않는다. 


셔터글래스 방식은 양쪽 눈을 교대로 가린다. 이 교대로 가리는 속도에 맞춰서 왼쪽 눈과 오른쪽 눈에 맞는 영상이 번갈아 상영된다. 화질이 좋고 시야각이 넓다는 장점이 있지만, 깜빡거림으로 인해 피로감이 심하다는 단점이 있다. 안경도 비싼 편이다. 


편광안경 방식은 화면에서 왼쪽 눈에 맞는 영상은 수직 방향의 진동으로 출력하고, 오른쪽 눈에 해당하는 영상은 수평 방향의 진동으로 출력한다. 편광안경은 한쪽은 수직 방향 진동만 받을 수 있고, 다른 한쪽은 수평 방향 진동만 받을 수 있다. 눈의 피로감이 적고 안경도 가볍지만, 셔터글래스에 비해 화질이 떨어진다. 현재 영화관에서 상영하는 3D영화는 주로 편광안경 방식을 사용하고 있다. 




DIBR


DIBR(depth image based rendering)은 2차원 영상과 그에 해당하는 깊이 지도를 이용하여, 기존에 존재하지 않는 새로운 시점의 영상을 만들어 내는 방식이다. 이 방식은 모든 시점의 영상을 가지고 있는 스테레오스코픽 방식에 비해 용량이 작아 저장과 전송이 용이하고 사용자의 편의에 따라 깊이 인자 값을 조정할 수 있다는 장점이 있다. 이러한 장점들 때문에 사용자의 위치에 따라 다양한 시점을 보여주는 멀티뷰(multi-view), 닌텐도3DS와 같이 3D 안경 없이 입체영상을 볼 수 있는 오토스테레오스코픽(autostereoscopic), 기존에 촬영된 2D 영상을 3D 영상으로 변환시키는 작업 등에 다양하게 활용된다. 



<참고자료>

[1] https://www.copyright.or.kr/information-materials/trend/tmis/download.do?brdctsno=41696&brdctsfileno=12915

[2] https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%85%8C%EB%A0%88%EC%98%A4%EC%8A%A4%EC%BD%94%ED%94%BC, 위키백과 스테레오스코피

[3] http://it.donga.com/4242/?page=2, 아이티 동아

이미지의 대표적 왜곡(distortion) 유형에는 JPEG, JP2K, Gaussian white noise, Gaussian blur등이 있다. 먼저 이러한 왜곡 유형으로 손상된 이미지들의 엔트로피를 구해서 어떤 왜곡 유형이 정보첨가왜곡(information-additive distortion)인지 정보손실왜곡(information-loss distortion)인지 판단하려고 한다. 또한 엔트로피와 이미지 지각 품질 사이에 어떠한 관계가 있는지 살펴보려고 한다. 



정보 엔트로피와 이미지 품질 사이의 관계


여기서 말하는 정보는 정보이론에서 말하는 정보로서, 놀람의 정도 또는 불확실성의 정도를 의미한다. 발생확률이 적은 사건은 더 큰 놀람을 야기하기 때문에, 그러한 사건은 큰 정보량을 갖는다고 말한다. 반면 발생확률이 큰 사건은 놀람을 거의 야기하지 않기 때문에, 그러한 사건은 작은 정보량을 갖는다. 엔트로피는 모든 발생가능한 사건의 평균 정보량이다. 정보량과 엔트로피에 대한 자세한 설명은 링크를 참고하자. (참고: https://bskyvision.com/389)


그러면 위에서 언급한 JPEG, JP2K, Gaussian white noise, Gaussian blur는 이미지내 정보량을 늘릴까 아니면 이미지내 정보량을 감소시킬까? 하나씩 살펴보자. 


1) JPEG 압축 왜곡


5장의 JPEG 이미지가 있다. 우측으로 갈 수록 왜곡의 정도가 크다. 각 이미지의 엔트로피를 계산해보았다. 


그림1. JPEG 왜곡 이미지들(오른쪽으로 갈 수록 왜곡 정도가 심하다)


7.9117 > 7.9107 > 7.9071 > 7.5637 > 7.0420


엔트로피가 왜곡의 정도가 심해질수록 작아지므로 JPEG은 정보손실왜곡이다. 



2) JP2K 압축 왜곡


그림2. JP2K 왜곡 이미지들(오른쪽으로 갈 수록 왜곡 정도가 심하다)


7.9108 > 7.9105 > 7.9074 > 7.9070 > 7.8861


엔트로피가 왜곡의 정도가 심해질수록 작아지므로 JP2K도 정보손실왜곡이다. 



3) Gaussian white noise


그림3. Gaussian white noise 왜곡 이미지들(오른쪽으로 갈 수록 왜곡 정도가 심하다)


7.9137 < 7.9164 < 7.9220 < 7.9277 < 7.9349


엔트로피가 왜곡의 정도가 심해질수록 커지므로 Gaussian white noise은 정보첨가왜곡이다. 



4) Gaussian blur


그림4. Gaussian blur 왜곡 이미지들(오른쪽으로 갈 수록 왜곡 정도가 심하다)


7.9011 > 7.8931 > 7.8779 > 7.8475 > 7.7941


엔트로피가 왜곡의 정도가 심해질수록 작아지므로 Gaussian blur도 정보손실왜곡이다. 



4개의 왜곡 유형을 분석해본 결과, JPEG, JP2K, Gaussian blur는 정보손실왜곡으로, Gaussian white noise는 정보첨가왜곡으로 판명되었다. 또한 정보손실왜곡으로 손상된 이미지의 경우 엔트로피의 크기가 감소함에 따라 이미지 품질도 나빠지는 정상관관계를 갖고, 정보첨가왜곡으로 손상된 이미지의 경우 엔트로피가 증가함에 따라 이미지 품질이 나빠지는 음상관관계를 갖는다. 






주님이 우리 예배 가운데 임재하셔야만 우리 예배는 의미가 있습니다. 주님을 만나야만 우리의 삶에 변화가 있습니다. 바울이 다메섹 도상에서 예수님을 만나고 완전히 변화되었던 것처럼, 야곱이 브니엘에서 하나님을 만나고 완전히 변화되었던 것처럼 우리도 만나주십시오. 



1. 예수 우리 왕이여

A코드, 4/4박자 

참고영상: https://www.youtube.com/watch?v=SmeqgyeHtk8, 양양 피아노


예수 우리 왕이여
이곳에 오소서
보좌로 주여 임하사
찬양을 받아 주소서

*주님을 찬양하오니
주님을 경배하오니
왕이신 예수여 오셔서
좌정하사 다스리소서


2. 성령의 비가 내리네

G코드, 2/4박자



성령의 비가 내리네
하늘의 문을 여소서
성령의 비가 내리네
하늘의 문을 여소서


3. 임재

A코드, 4/4박자



하늘의 문을 여소서
이곳을 주목하소서
주를 향한 노래가 꺼지지 않으니
하늘을 열고 보소서

이곳에 임재하소서
주님을 기다립니다
기도의 향기가 하늘에 닿으니
주여 임재하여 주소서

*이곳에 오셔서
이곳에 앉으소서
이곳에서 드리는 예배를 받으소서
주님의 이름이 주님의 이름만이
오직 주의 이름만 이곳에 있습니다



4. 우리 함께 기도해

E코드, 4/4박자

참고영상: https://www.youtube.com/watch?v=rJ8GZJ3YqMg, 마커스 워십


우리 함께 기도해
주앞에 나와 무릎꿇고
긍휼 베푸시는 주
하늘을 향해 두손들고

*하늘 문이 열리고 은혜의 빗줄기
이 땅 가득 내리도록
마침내 주 오셔서 의의 빗줄기
우리 위에 부으시도록


5. 나의 백성이

E코드, 4/4박자

참고영상: https://www.youtube.com/watch?v=NZUQNHjMDu0, 디사이플스


1나의 백성이 다 겸비하여 내게 기도하며
나의 얼굴을 구하여서 그 악한 길 떠나면
하늘에서 듣고 죄를 사하며
그들의 땅을 고치리라

*아버지여 고쳐주소서
이 나라 주의 것 되게 하소서
주 하나님 간절히 기도하오니
상한 이땅 새롭게 하소서

2무릎 꿇고 다 겸비하여 주께 기도하리
주의 얼굴을 구하여서 그 악한 길 떠나리
주님의 자비로 죄를 사하며
주님의 자비로 임하소서









최대신호대잡음비(peak signal-to-noise ratio, PSNR)는 신호가 가질 수 있는 최대 전력에 대한 잡음의 전력을 나타낸 것이다. 주로 영상 또는 동영상 손실 압축에서 화질 손실 정보를 평가할 때 사용된다. 



▶ PSNR 


PSNR은 다음과 같이 계산한다. 


...(공식1: PSNR)


여기서 는 해당 영상의 최댓값으로서, 8비트 그레이스케일영상의 경우는 255가 된다. 또한 는 평균제곱오차로써 다음과 같이 계산할 수 있다. 


...(공식2: MSE)


여기서 I는 m x n 사이즈의 그레이스케일 이미지이고, K는 I에 잡음이 포함된 이미지, 즉 왜곡된 이미지를 의미한다. 공식1의 분모에 MSE가 있으므로, MSE(평균제곱오차)가 작을수록 더 큰 PSNR을 갖게 되는 것이다. 따라서 품질이 좋은 이미지는 비교적 큰 PSNR을 가질 것이고, 품질이 나쁜 이미지는 비교적 작은 PSNR을 가질 것이다. 



▶ PSNR과 이미지 품질 사이의 관계


동일한 원본이미지에서 다른 정도로 JPEG 압축 손실된 이미지들의 PSNR을 구해보자. 

그림1. 원본 이미지와 다른 정도로 JPEG 압축 손실된 이미지들.


JPEG 압축 손실된 이미지들의 PSNR을 보면 압축률이 클수록 PSNR도 작아진 것을 확인할 수 있다. 


34.8227dB -> 30.9394dB -> 25.8699dB


오른쪽으로 갈수록 왜곡 현상이 점점 심해짐을 우리 눈으로 확인할 수 있다. 


34.8227dB (품질이 괜찮다) -> 30.9394dB (품질이 조금 나쁘다) -> 25.8699dB (품질이 매우 나쁘다)


단, 이상의 세 개의 손상 이미지만 가지고 PSNR이 품질을 나타내는 지표로 적당한지 판단하기엔 부족하다. 그래서 779개의 원본 및 손상 이미지와 그에 대한 지각 품질 점수(DMOS)를 라벨 값을 갖고 있는 LIVE 데이터베이스에서 실험을 진행했다. PSNR 점수와 라벨 간 상관성이 클수록 PSNR이 품질을 잘 반영한다고 볼 수 있다. 스피어만 상관계수(SROCC)를 산출했다. 


-1 또는 1이 완벽한 상관관계를 나타내므로, -0.8197은 꽤 강한 음상관관계를 갖고 있음을 나타낸다. 따라서 사람의 지각 품질을 PSNR이 어느 정도 잘 반영하고 있다고 볼 수 있다. 여기서 말하는 지각 품질 또는 인지 품질이란 우리가 어떤 이미지를 눈으로 보고 뇌로 처리해서 느끼는 품질을 의미한다. 



▶ PSNR의 한계


PSNR은 공식1에서 보듯이 단순히 원본 이미지와 왜곡 이미지 사이의 수치적 차이로 이미지 품질을 평가하기 때문에, 종종 사람이 느끼는 것과 일치되지 않은 품질 점수를 산출한다. 아래 두 이미지와 그에 해당하는 PSNR을 확인하자. 우선 왼쪽이미지는 JPEG 압축 손실된 이미지이고, 오른쪽이미지는 blur된 이미지이다. 


그림2. 비슷한 PSNR 값을 갖지만, 지각 품질은 사뭇 다른 이미지들.



두 이미지의 PSNR은 유사하다. 그러나 우리는 아래 이미지의 품질을 상대적으로 더 나쁘게 느낀다. 아마 100이면 100 모두 왼쪽 이미지의 지각 품질이 나쁘다고 평가할 것이다. 하지만 PSNR은 이러한 지각 품질을 제대로 반영하지 못한다. 이러한 한계를 극복하기 위해서 사람의 시각 시스템을 반영하기 위해 PSNR을 발전시켜 PSNR-HVS, PSNR-HVS-M등의 방법이 개발되었고, PSNR과 완전히 다른 접근법을 가진 SSIM, VIF와 같은 방법들도 제안되었다. 


참고로 위의 두 이미지에 대해 SSIM 점수를 구하면 다음과 같다. SSIM 경우 1에 가까울 수록 품질 점수가 좋은 것이다. 



SSIM 방법은 오른쪽 이미지에 더 큰 점수를 주었다. 우리가 느끼는 지각 품질에 좀 더 가까운 결과를 냄을 알 수 있다. 또한 LIVE 데이터베이스의 779개 이미지에서 실험을 진행하면 아래와 같은 결과가 나온다. 



PSNR보다 좀 더 나은 성능을 보임을 알 수 있다. (참고로 PSNR과 SSIM는 매트랩 내장 함수로 계산했다.)






<참고자료>

[1] https://ko.wikipedia.org/wiki/%EC%B5%9C%EB%8C%80_%EC%8B%A0%ED%98%B8_%EB%8C%80_%EC%9E%A1%EC%9D%8C%EB%B9%84, 위키백과

정보이론은 신호에 존재하는 정보의 양을 측정하는 이론이다. 정보이론의 핵심은 잘 발생하지 않는 사건은 자주 발생하는 사건보다 정보량이 많다는 것이다. 



▶ 정보량이란?


우선 정보이론에서 '정보량'이 무엇을 뜻하는지 알 필요가 있다. 정보이론에서 정보량이란 '놀람의 정도'를 의미한다. 놀람의 정도라는 것은 모두가 알만한 정보가 아니라 새롭고 특이해서 사람들로 하여금 놀람을 일으키는 정도라고 볼 수 있다. 식상한 정보일수록 정보량이 적고, 놀라움을 주는 정보일수록 정보량이 크다. 


정보량이 무엇인지 직관적으로 이해하기 위해 하나의 예를 들어보겠다. 한 대학 수업에서 교수님이 강의를 마치기 전에 아래와 같은 말 중 하나를 했다고 가정해보자.


A. 다음 시간에 봅시다.

B. 다음 시간에는 다른 교수님이 대신 수업하실 거에요.

C. 이 수업 모두에게 A학점 줄거에요. 그리고 이번 학기 더이상 수업 없습니다. 


어떤 말을 들었을 때 학생들이 가장 놀랄까? 바로 C이다. 일반적이지 않고, 일어날 확률이 매우 작기 때문이다. 학생들은 매우 놀람과 함께 좋아서 난리를 칠 것이다. 반면 A는 가장 일반적이기에 학생들을 전혀 놀랍게 하지 않는다. 아주 당연하게 받아들일 것이다. B는 학생들에게 약간의 놀라움을 줄 수도 있다. 이 중 정보량이 큰 순서로 나열하면, C > B > A이다. 


또 다른 예를 들어보자. 지난해 2018 러시아 월드컵에서 우리나라와 독일이 맞붙었다. 가능한 결과는 세가지였다. 한국 승, 독일 승, 무승부. 이 중에서 어떤 결과가 가장 사람들을 놀라게 할까? 바로 한국 승이다. 그 다음은 아마도 무승부일 것이다. 독일이 이기는 결과는 별로 사람들에게 놀라움을 선사하지 않는다. 우리나라가 독일을 이길 확률이 매우 적기 때문에 우리나라가 독일을 이긴 것은 정보량이 큰 정보라고 말할 수 있다. 우리나라의 승리는 실제로 전세계를 놀랍게 했다. 반면 독일이 우리나라를 이기는 것은 정보량이 작은 정보라고 말할 수 있다. 


그러면 놀람의 정도를 반영하는 '정보의 양'을 수치화할 수 있을까? 놀랍게도 정보량은 다음과 같이 계산될 수 있다. 누가 만들었는지 참 신박하다. 참고로 R. V. Hartley라는 사람이 처음 제안했다. 


...(공식1: 정보량)


여기서 p(x_j)는 x_j가 발생할 확률이다. 확률이므로 0이상 1이하의 어떤 실수이다. 로그의 밑 a는 어떤 정보를 측정하느냐에 따라 임의로 결정된다. 주로 2를 많이 사용한다. 또한 밑이 2일 때 정보량의 단위는 비트(bit)고, 밑이 e일 때 정보량의 단위는 nat(natural unit)이다. 


왜 이런 공식을 사용할까? 이 공식이 정보량을 나타낼 수 있을까? 이해를 돕기 위해 그래프를 그려보았다. 


그림1. 정보량 그래프(우측)


오른쪽 그래프를 보면, P(x)가 0에 가까울 수록 정보량 I(x_j)은 무한대로 커지고, P(x)가 1에 가까울 수록 정보량은 0에 가까워짐을 확인할 수 있다. 정보량은 음수가 될 수 없다. 따라서, 위 공식1은 발생 확률이 적은 사건은 큰 정보량을 갖고, 발생 확률이 큰 사건은 작은 정보량을 갖는다는 뜻을 반영한다. 


미국 통계분석사이트인 '파이브서티에이트'는 2018 러시아 월드컵에서 한국이 독일에게 승리할 확률을 5%로 예측했고, 독일이 승리할 확률은 81%로, 비길 확률은 14%로 예측했다.

(출처: http://news.chosun.com/site/data/html_dir/2018/06/23/2018062300599.html


이를 기반으로 각 사건의 정보량을 계산해보자. 독일이 한국을 이기는 경우 정보량은 다음과 같다:



그리고 한국이 이기는 경우 정보량은 다음과 같다:



마지막으로 두 팀이 비기는 경우 정보량은 다음과 같다: 



계산한 바와 같이 한국이 이기는 경우가 독일이 이기는 경우와 비기는 경우보다 훨씬 더 정보량이 많다. 



즉, 매우 놀라운 사건이라는 것이다. 두 팀이 비기는 것도 독일이 한국을 이기는 것보다 정보량이 훨씬 크다. 사실 두 팀이 비기는 것도 놀라운 결과였다는 것이다. 



▶ 엔트로피란?


일반적으로 특정 결과와 관련된 정보량보다 가능한 모든 결과들의 평균 정보량에 더 큰 관심을 갖는다. 엔트로피가 바로 정보량의 기댓값(평균)을 의미한다. 엔트로피는 다음과 같이 계산한다. 


...(공식2: 엔트로피)


여기서 는 기댓값을 구하는 함수다. 엔트로피는 평균 놀람의 정도 또는 평균 불확실성으로 생각할 수 있다. 모든 결과가 비슷한 확률로 일어날 때 엔트로피가 가장 크다.  

한국과 독일이 축구경기를 했을 때 엔트로피를 계산해보자. 즉, 평균 정보량은 다음과 같이 계산된다.


 

비교를 위해 스웨덴 vs 멕시코 전의 엔트로피도 계산하려고 한다. 미국 통계분석사이트인 '파이브서티에이트'는 2018 러시아 월드컵에서 스웨덴이 멕시코에게 이길 확률을 36%, 멕시코가 이길 확률을 34%, 비길 확률을 30%로 잡았다. 매우 박빙의 승부로 예측한 것이다. 그러면 스웨덴과 멕시코 경기의 엔트로피는 얼마일까? 


 

1.5809비트로 한국과 독일전의 0.8595비트보다 약 두 배가량 크다. 따라서 스웨덴 vs 멕시코 전이 한국 vs 독일 전보다 정보량이 더 큰 경기였다고 볼 수 있다. 결과가 뻔히 예상되는 사건일 수록 엔트로피가 작고, 결과 예측이 힘들수록 엔트로피가 크다. 




<참고자료>
[1] Rodger E. Ziemer, Willian H. Tranter, "Principles of communications: systems, modulation, and noise", sixth edition, WILEY

[5] http://blog.naver.com/PostView.nhn?blogId=gyrbsdl18&logNo=221013188633, 네이버 블로그 글, 개인적으로 가장 유용하게 읽었다. 

평균과 기댓값은 같은 것일까? 종종 혼용되기 때문에 헷갈릴 수 있다. 하지만 완전히 같은 것이라고 볼 수는 없다. 


쉽게 말하면, 평균은 단순히 모든 샘플값을 더한 것을 샘플의 갯수로 나눈 것이다. 


...(공식1: 평균)


반면, 기댓값은 확률적 사건에 대한 평균값으로 각 사건의 결과값과 그 사건이 발생할 확률을 곱한 것을 모두 합한 것이다. 시행하지 않은 사건에 대해 예측하는 평균값이라고 볼 수 있다. 기댓값은 평균과 달리 확률이 포함된다.


...(공식2: 기댓값)


평균은 과거, 기대값은 미래의 개념이 있다고 볼 수 있다. 




<참고자료>

[1] http://m.blog.daum.net/rhaoslikesan/293?categoryId=33

확률질량함수(probability mass function, PMF): 이산확률변수에서 특정 값에 대한 확률을 나타내는 함수이다. 즉, 확률변수가 취할 수 있는 값이 유한개이거나 자연수와 같이 셀 수 있는 이산확률변수일 때, 그 불연속한 값에 대한 확률을 나타내는 함수가 바로 확률질량함수이다.


확률밀도함수(probability density function, PDF): 연속확률변수에서 특정 값에 대한 확률을 나타내는 함수이다. 즉, 확률변수가 어떤 범위에 속하는 모든 실수 값을 취하는 연속확률변수일 때, 그 연속된 값에 대한 확률을 나타내는 함수가 바로 확률밀도함수이다. 


따라서, 양자의 차이는 이산확률변수에 관한 것이냐 연속확률변수에 관한 것인가이다.



<참고자료>

[1] 개념원리 확률과 통계, 이홍섭

[2] https://ko.wikipedia.org/wiki/%ED%99%95%EB%A5%A0_%EC%A7%88%EB%9F%89_%ED%95%A8%EC%88%98, 위키백과 확률질량함수

+ Recent posts

티스토리 툴바