[IQA] 이미지품질평가 분야의 셀럽, BRISQUE


어떤 컴퓨터비전 분야든지 대표성을 갖는 컴퓨터 모델들이 있습니다. 예를 들어, 이미지 분류에는 ResNet, 객체 검출에는 YOLO, semantic segmantation에서는 FCN, visual saliency에서는 GBVS처럼 말이죠. NR(no-reference) 이미지품질평가(IQA)에서는 오늘 소개할 BRISQUE도 그러합니다. FR(full-reference) IQA 모델 중에서는 단연 SSIM이 유명인사고요.

 

BRSIQUE는 LIVE 연구실의 Mittal 등에 의해 2012년 TIP에 소개된 방법입니다. original 논문명은 "No-Reference Image Quality Assessment in the Spatial Domain"입니다. 

 

BRISQUE는 natural image가 왜곡되면, 이미지 픽셀의 통계도 왜곡된다는 점에 착안한 알고리즘입니다. 여기서 말하는 natural image는 자연에 대한 이미지를 말하는 것이 아니라, 카메라로 찍어서 얻은 자연 상태의 이미지를 의미합니다. 카메라로 촬영된 이후 어떠한 인공적인 처리 과정을 거치지 않은 이미지라고 생각하시면 됩니다. 이해를 돕기 위해 natural image와 그렇지 않은 것들을 비교해서 보여드리겠습니다. 

 

natural image란?

 

이와 같이 natural image는 존재 가능한 이미지들 중에 한 부분집합이라고 보시면 됩니다. natural image는 또한 natural scene이라고 불리기도 합니다. 

 

자! 이제 natural image, 즉 natural scene이 무엇인지 이해하셨을 것이라고 생각하고 글을 이어가겠습니다. natural image의 경우, natural image가 아닌 이미지들과 다르게 규칙적인 통계적 특성을 갖습니다. 예를 들어, natural image에 BRISQUE가 해주는 것처럼 MSCN 전처리를 해주면 픽셀들의 히스토그램이 가우시안 형태를 띕니다. MSCN 전처리가 natural image 속에 숨어있던 통계적 특성을 드러나게 해주는 것입니다. 다음 그림을 함께 보실까요? 

 

 

아무 규칙이 없어보이던 히스토그램이 MSCN 처리를 해주니 가우시안 분포를 갖게 되었습니다. 이처럼 natural image는 규칙성있는 통계적 특성을 갖고 있습니다. 이 이미지 말고 다른 natural image에 MSCN 처리를 해줘도 마찬가지로 가우시안 형태의 히스토그램을 갖습니다. 이렇게 natural image 또는 natural scene이 갖는 어떠한 통계적 특성을 NSS(natural scene statistics)라고 부릅니다. NSS는 IQA 분야에서 상당히 중요한 용어이니 기억해두세요. 

 

그런데 압축, 노이즈, 블러 등의 왜곡이 이미지에 가해지면 이 가우시안 형태가 깨집니다. 보통 왜곡의 세기가 강할 수록 원래 형태의 가우시안 모양에서 더 벗어나게 됩니다. 이것이 BRISQUE에서 아주 중요한 포인트입니다. 하나의 원본 natural 이미지와 그것을 JPEG 압축해줘서 왜곡된 이미지들의 MSCN 이후의 히스토그램을 비교해보도록 하겠습니다. 

 

 

보시는 것처럼 왜곡의 정도가 심해질 수록 원래 형태에서 변이가 커짐을 알 수 있습니다. 이 변화의 정도를 측량하기 위해서, BRISQUE는 MSCN 처리된 이미지 히스토그램에 일반화된 가우시안 분포(GGD, generalized Gaussian distribution) 매칭을 시켜서 형태에 대한 정보를 특성으로 활용합니다. GGD 함수는 다음과 같습니다. 

 

GGD 함수

 

위 식에서 알 수 있듯이 GGD의 형태는 형태(shape) 파라미터와 분산(variance) 파라미터에 의해 정해집니다.

 

좀 전에 저는 GGD 매칭을 통해 특성을 도출한다고 했습니다. GGD 매칭이라는 것이 무엇인가하면, 다음 그림과 같이 테스트 이미지의 MSCN 히스토그램에 여러 모양의 GGD를 대보는 것이라고 생각하시면 됩니다. 

 

GGD 매칭 설명

 

여러 형태의 GGD와 매칭해봤더니 가장 오른쪽에 있는 친구랑 닮았다는 것을 알 수 있습니다. 가장 비슷한 형태일 때의 형태 파라미터와 분산값을 해당 이미지의 특성으로 삼아줍니다. 이 특성들은 이미지 품질의 좋고 나쁨 정도와 관련있는 특성들인 것입니다. 

 

이런 식으로 특성들을 도출한 후에 그 특성들과 레이블들로 SVM을 훈련시켜 이미지의 품질을 예측하는 것이 바로 BRISQUE입니다. 이때 SVM은 회귀 목적으로 사용됩니다. 회귀 목적으로 사용되는 SVM을 SVR(support vector regressor)이라고 부르기도 합니다. BRISQUE 설명 끝!  

 

여기까지 읽으시느라 고생하셨습니다. 본질에 충실하기 위해, 본질을 이해하는데 방해가 될 수 있는 너무 디테일한 부분에 대한 설명은 생략했습니다. 그래도 BRISQUE의 핵심적인 내용은 모두 다뤘다고 생각합니다. 나름대로 심혈을 기울여 이 글을 작성했습니다. 누군가에게 도움이 되면 좋겠네요.^^  

 

 

bskyvision의 추천글 ☞ 

mean subtraction and contrast normalization (MSCN)의 이해

서포트 벡터 머신(SVM)의 사용자로서 꼭 알아야할 것들-매개변수 C와 gamma

[ubuntu+python] BRISQUE 모델로 이미지 품질 평가하기

 

 

<참고자료>

[1] Sheikh, Hamid R., Alan C. Bovik, and Gustavo De Veciana. "An information fidelity criterion for image quality assessment using natural scene statistics." IEEE Transactions on image processing 14.12 (2005): 2117-2128.

  1. 초짜 2020.06.16 16:38 댓글주소  수정/삭제  댓글쓰기

    안녕하세요 또 같은 논문으로 찾아왔습니다..
    https://github.com/spmallick/learnopencv/blob/master/ImageMetrics/Python/brisquequality.py
    이 코드와 논문을 같이 보고 있습니다
    여기서 보면 GGD 피팅 과정에서 r_gamma와 rhatnorm 의 차이를 통해서 구하는 것으로 보여집니다.
    본 논문에서 참조한 논문 내용을 살펴보니 shape parameter를 구하는 공식이 있는 것으로 보이는데 코드와 다르다고 생각됩니다
    제가 혹시 놓친 부분이 있을까요..?

    참조된 논문은 estimation of shape parameter for generalized gaussian distributions in subband decompositions of video 입니다

    • BlogIcon 비스카이비전 2020.06.16 16:53 신고 댓글주소  수정/삭제

      안녕하세요. ㅎㅎ 제가 내일 정도에 해당 논문 살펴보고 답변드릴게요.^^

    • 초짜 2020.06.17 10:33 댓글주소  수정/삭제

      넵 천천히 봐주세요 ㅠ 봐주시는 것만으로도 감사합니다
      코드를 보면 2부터 조금씩 증가시키면서 차이가 줄어들다가 커지면 멈춰서 gamma_best를 반환 하는 데 논문에서는 특정 값을 계산해서 바로 shape parameter를 구하는 것으로 보입니다

    • BlogIcon 비스카이비전 2020.06.17 16:25 신고 댓글주소  수정/삭제

      아! 그게 공식으로 보면 헷갈릴 수 있는데, 실제로 그 값을 구하려면 여러 값을 대입해가다가 맞는 값을 찾아가는 것이에요 ㅎㅎ