2019-12-09 14:06:39

 

 

안녕하세요. 비스카이비전의 심교훈입니다. 오늘은 제가 굉장히 개인적으로 높게 평가하는 IQA 알고리즘을 소개하려고 합니다. 바로 GMSD라는 알고리즘인데요, 2014년 TIP 논문 "Gradient Magnitude Similarity Deviation: A Highly Efficient Perceptual Image Quality Index"에 소개된 알고리즘입니다.

 

이 알고리즘의 Matlab 코드는 아래 링크에서 다운받을 수 있습니다.

=> http://www4.comp.polyu.edu.hk/~cslzhang/IQA/GMSD/GMSD.htm  

 

또한 python 코드는 아래 링크에 있습니다. 

=> https://bskyvision.com/709

 

 

이 알고리즘은 사실 너무나 간단합니다. 보통 FR IQA 알고리즘들은 지역 품질맵의 평균 또는 가중평균으로 최종 품질 점수를 얻는데, GMSD는 지역 품질맵의 표준편차로 최종 품질을 얻는 표준편차 풀링을 제안합니다. 

 

GMSD는 다음과 같이 작동합니다. 저자들은 이미지 그레디언트가 왜곡 현상에 민감하고, 왜곡 이미지 내 여러 지역 구조들은 다양한 정도로 열화가 된다는 점에 착안하여, 원본 이미지와 왜곡 이미지의 그레디엔트 크기를 지역적으로 비교해서 그레디언트 크기 유사 맵(gradient magnitude similarity map, GMS 맵)을 산출했습니다. 그 다음 GMS 맵의 표준 편차 값을 최종 품질 점수로 정해줬습니다. 저자들은 품질이 나쁜 이미지는 보통 지역 품질의 변화가 크다고 봤기 때문입니다. 다음 그림을 보면서 이것이 무슨 의미인지 살펴봅시다.

 

출처: original 논문

첫번째 열에 있는 이미지는 원본 이미지들이고, 두번째 열에 있는 이미지는 왜곡 이미지들이고, 세번째 열에 있는 이미지들은 GMS 맵, 즉 지역품질맵입니다. 보시다시피, 상단 이미지의 지역품질은 비교적 균등하게 분포되어 있지만, 하단 이미지의 지역품질은 변화가 큽니다. 중간에 꽃 부분의 지역품질이 배경에 비해 나쁩니다. DMOS 값은 사람이 매긴 품질 점수, 즉 라벨값인데요, 클수록 품질이 나쁜 것입니다. 하단의 왜곡 이미지가 상단의 왜곡 이미지보다 나쁜 것입니다(0.7785>0.4403). 그런데 만약 지역 품질 점수를 그냥 평균내면(GMSM), 0.8853과 0.8745로 두 왜곡 이미지의 품질이 비슷한 것으로 나오게 됩니다. DMOS는 분명히 차이가 있는데 말이죠. 지역 품질을 제대로 풀링하지 못한 것입니다. 하지만, 지역 품질 점수들의 표준 편차값을 살펴보면(GMSD), 0.1420과 0.1946으로 분명한 차이가 있습니다. 표준 편차 풀링은 두 왜곡 이미지의 품질 차이를 잘 반영해낸 것입니다. 

 

구체적으로 저자들은 Prewitt 연산자를 이용해서 그레디언트를 계산했습니다. GMS 맵 산출 공식은 다음과 같습니다. 

 

 

여기서 $m_r(i)$는 원본 이미지의 그레디언트 크기이고, $m_d(i)$는 왜곡 이미지의 그레디언트 크기입니다. 그리고 이 지역 품질 맵에서 최종 스코어를 얻기 위해 다음과 같은 공식을 사용했습니다. 즉 GMS의 표준편차를 구한 것입니다.  

 

여기서 GMSM은 GMS의 평균값입니다.

 

 

자, 그러면 GMSD의 성능을 3개의 IQA 데이터베이스에서 테스트한 결과를 살펴보겠습니다. 

 

출처: original 논문

표에서 볼 수 있듯이 3개의 데이터베이스 모두에서 GMSD는 거의 가장 정확하게 이미지의 품질을 예측해냅니다. 또한 중요한 것은 예측하는데 시간도 상당히 짧게 걸립니다. 다음 표를 보시죠. 

 

출처: original 논문

 

단, 0.0110초. 1초에 약 100장의 이미지의 품질을 평가할 수 있다는 뜻입니다. GMSD는 SSIM보다도 훨씬 빠르게 이미지의 품질을 평가해낸다는 것을 알 수 있습니다. SSIM보다 훨씬 더 정확하면서 말이죠. 정확하면서도 빠른 알고리즘, 상당히 훌륭한 알고리즘이죠. 

 

이것으로 GMSD에 대한 소개를 마치겠습니다. 도움이 되셨다면 공감과 댓글을 아낌없이 베풀어주세요.^^