[논문 정리] Redi, "Interactions of visual attention and quality perception", Proc. SPIE (2011)

논문 요약

시각적으로 중요한 부분에서 왜곡이 일어나는 것이 전체 이미지 품질을 판단할 때 더 치명적인 영향을 미친다는 전제하에 이미지 품질 평가에 visual saliency를 고려한다. 하지만 우리는 두 가지 문제를 생각해볼 필요가 있다. 첫번째는 원래 이미지에서 중요하지 않은 부분의 왜곡 현상이 우리의 주의를 끌 수 있다는 것이다. 두번째는 품질 평가의 관점에서 이미지를 보는 것과 우리가 보통 이미지를 보는 방식은 차이가 있을 수 있다는 것이다. 

 

이미지 품질 평가의 관점에서 이미지를 볼 때 우리가 주목하는 부분과 평소 이미지를 볼 때 우리가 주목하는 부분이 차이가 있는지를 분석하기 위해 여러 가지의 subjective study를 실시했다. 이를 위해 왜곡된 이미지의 품질 점수를 매기는 동안의 eye-tracking 데이터로 saliency map(이것을 DSS라고 명칭)을 만들었다. 쉽게 말해 왜곡된 이미지의 품질 점수를 평가할 때 시선이 머문 곳을 파악했다는 것이다. 그리고 또한 일반 이미지(고품질 이미지)를 그냥(품질 평가의 관점이 아닌) 보는 동안의 eye-tracking 데이터로 saliency map(이것을 NSS라고 명칭)을 만들었다. 그리고 이 두 개의 saliency map을 비교해봤다. 그랬더니 분명 차이가 있었다. 

 

우선 품질이 나쁜 이미지에서 생성된 DSS일수록 NSS와 차이가 커졌다(아래 그림 오른쪽 참고). 하지만 이미지가 비슷한 정도로 왜곡되었다면 이미지에 가해진 왜곡 유형이 다르더라도 생성된 DSS는 NSS와 비슷한 정도의 차이를 보였다(아래 그림 왼쪽 참고). 즉, 왜곡의 유형보다는 강도가 NSS와의 차이에 더 큰 영향을 미친다는 것이다. 

 

출처: 해당 논문

 

그럼 실질적으로 어떻게 DSS가 NSS에서부터 달라지는가를 살펴볼 차례다. 저자들은 저품질의 이미지를 평가할 때 고품질의 이미지를 평가할 때에 비해 관심 영역의 넓이가 작아졌다는 것을 발견했다. 그 이유는 저품질의 이미지를 평가할 때는 고품질 이미지를 평가할 때에 비해 시선이 배경쪽으로 분산됨으로 이미지 내에서 충분한 관심을 받은 부분이 줄어든 것이다.

 

또한 저자들은 품질이 좋은 이미지를 평가할 때 저품질의 이미지를 평가할 때에 비해 더 많은 시간을 소요한다는 것을 관찰했다. 품질이 좋은 이미지일수록 더 주의깊게 품질이 어떠한지 살핀다는 뜻이다. 

 

또한 저자들은 품질을 평가하기 위해 이미지를 볼 때 이미지를 그냥 볼 때에 비해 더 자세하게 본다는 것을 확인했다. 관심영역이 아닌 부분도 주의깊게 보는 비율이 증가했다(아래 그림 참고). 

 

출처: 해당 논문

 

논문 내 유익한 내용 정리

1) 사람의 시각 시스템은 이미지 내에서 중요한 정보를 담고 있는 부분에 집중하고 나머지 부분은 무시하는 경향이 있다. 왜냐하면 컴퓨터와 같이 인간의 뇌도 정보 처리 용량에 한계가 있기 때문이다.  

 

내 생각 

단순히 이미지 내에서 시각적으로 중요한 부분의 품질에 더 큰 가중치를 부여하여 이미지의 종합적 품질을 결정하는 것은 저자들이 제기한 문제를 제대로 반영할 수 없다. 왜냐하면 이미지의 품질을 평가할 때 관찰자들은 실제로 중요한 부분이 아닌 다른 부분도 관심있게 보는 경향이 있기 때문이다. 그냥 이미지를 볼 때와 다른 방법으로 이미지를 본다는 것이다.  

 

왜곡의 정도가 커질수록 NSS와 DSS의 차이는 커지기 때문에, 왜곡의 정도가 클 때는 saliency map에 덜 의존하는 쪽으로 saliency 정보를 이미지 품질 평가 모델에 적용하는 것도 하나의 방법이 될 것 같다. 

댓글()

salient object detection(SOD)이란?

visual saliency 모델은 이미지 내에서 시각적으로 중요한 부분들이 어딘지 또한 얼마나 중요한지를 예측해주는 알고리즘이다. visual saliency 모델은 크게 두 부류로 나눌 수 있다. 하나는 이미지 내에서 사람의 시선이 어디에 가장 많이 머물지를 예측해내는 방법이고, 또 다른 하나는 이미지 내에서 사람이 중요하다고 생각할 물체 또는 지역을 검출해내는 방법이다[3]. 전자를 FP(fixation prediction) 방식이라고 부르고, 후자를 SOD(salient object detection) 방식이라고 부른다. 오늘은 SOD 방식에 대해 알아보려고 한다. 

 

salient object detection의 목적

SOD의 목적은 이미지 내에서 중요하다고 생각되는 물체를 검출해내는 것이다. 다른 말로 배경(background)에서 중요한 전경(foreground) 물체만을 분할해낸다. 아래 그림은 몇 개의 이미지에 대해 여러 개의 SOD 알고리즘들이 적용되어 산출된 saliency 맵들을 보여준다. SOD 알고리즘들이 배경과 중요한 전경 물체를 어느 정도 잘 분할해내는 것들을 확인할 수 있다. GT, 즉 ground-truth와 비교해서 F-DDS 모델이 산출한 saliency 맵은 큰 차이가 없다. 

 

그림 출처: [2]

 

SOD 과제는 object detection, semantic segmentation 과제와 연관이 있지만 목적에서 분명한 차이가 있다. object detection 과제는 이미지 내에서 물체를 찾아서 바운딩 박스로 감싸주고 그 물체가 무엇인지 분류해내는 것을 목표로 한다. 반면 semantic segmentation 과제는 이미지 내 물체들을 의미있는 단위로 분할해준다. 아래 그림을 보면 object detection과 semantic segmentation의 목적의 차이를 쉽게 알 수 있을 것이다. 

 

그림 출처: [1]

 

SOD의 발전사

Borji 등이 SOD 알고리즘에 대해 정리한 논문[4]에 의하면 SOD 알고리즘의 발전 역사에서 세 개의 사건을 주목할만하다고 한다. 첫번째 사건은 Itti 등이 visual saliency에 관한 계산 모델(computational model)을 1998년에 최초로 학계에 제안한 것이다. (엄밀히 따지면 Itti 모델은 FP 방식에 속하긴 하지만 Borji[4]는 SOD의 발전사를 정리함에 있어 FP와 SOD를 크게 구분짓지 않았다.)

 

두번째 사건은 2007년에 Liu 등이 visual saliency 과제를 이진 분할 문제(back ground와 foreground)로 정의한 것이다. visual saliency 과제를 object detection의 관점으로 보기 시작한 것이다. 

 

세번째 사건은 2015년부터 딥러닝 기반 SOD 모델들의 출현이다. 특히 컨볼루션 신경망(CNN)의 부흥은 SOD에도 큰 영향을 미쳤다. 사실상 지금 개발되는 SOD 모델들을 거의 모두 CNN 기반이라고 볼 수 있다. 

 

SOD의 발전사 [4]

 

 

<참고자료>

[1] https://towardsdatascience.com/detection-and-segmentation-through-convnets-47aa42de27ea, Ravindra Parmar, "Detection and Segmentation through ConvNets"

[2] Zhao 등, "Optimizing the F-measure for Threshold-free Salient Object Detection", arXiv preprint arXiv:1805.07567 (2018). 

[3] Borji 등, "Salient Object Detection: A Benchmark", IEEE Transactions on Image Processing, Vol. 24, No. 12, December 2015

[4] Borji 등, "Salient Object Dection: A Survey", Computational Visual Media, Vol. 5, No. 2, June 2019, 117-150.

 

 

 

댓글()
  1. BlogIcon 꾸준희 2019.07.08 14:23 신고 댓글주소  수정/삭제  댓글쓰기

    object detection 문제에서 중요한 물체에 집중하여 탐지하는 방식도 있었네요 ㅎㅎ, 좋은 글 읽고 갑니다!

경험 품질에 관한 레이블, MOS(mean opinion score)와 DMOS(differential opinion score)

MOS와 DMOS를 다루기에 앞서 먼저 label(레이블 또는 라벨)이 무엇인지 먼저 살펴보고 가자. 레이블은 "데이터의 속성을 우리가 분석하고자 하는 관점에서 정의하는 것"이다[2]. 보통 레이블이 있는 데이터의 집합을 훈련 데이터 또는 학습 데이터로 부른다. 레이블이 없는 어떤 데이터의 레이블을 정확히 예측하는 것이 보통 대부분 머신러닝 및 딥러닝 과제의 목적이다. 

 

이미지 분류(image classification) 과제에서 레이블은 고양이, 강아지, 사자, 토끼 이런 것들이 된다. 편의상 각 레이블에 숫자를 부여해준다. 고양이는 1, 강아지는 2, 사자는 3 이런 식으로 말이다. 

 

반면, 이미지의 품질의 왜곡 정도를 평가하는 이미지 품질 평가(image quality assessment) 과제에서 레이블은 점수가 된다. 각 이미지에 대한 경험 품질은 사람마다 다를 수 있으므로 여러 명이 주관적으로 점수를 매긴 것을 종합해서(일반적으로는 평균을 냄) 레이블로 삼는다. 

 

MOS, DMOS는 이와 같은 경험 품질에 관한 레이블이다. 먼저 MOS는 어떤 방식으로 생산되는지 알아보자. 

 

MOS(mean opinion score)

MOS를 직역하자면 '평균의견점수'라고 부를 수 있을 것이다. 모집된 여러 명의 피실험자들이 점수를 매긴 것을 평균낸 것이 바로 MOS다. 예를 들어 10명의 피실험자들이 어떤 왜곡된 이미지를 보고 각각 95, 89, 82, 93, 90, 81, 88, 95, 92, 91과 같이 점수를 매겼다면 그 왜곡된 이미지의 MOS는 이 점수들의 평균인 89.6이 된다. 

 

따라서 j번째 왜곡 이미지에 대한 MOS는 다음과 같은 식으로 나타낼 수 있다. N명의 피실험자가 참가했고, i번째 피실험자가 j번째 왜곡 이미지에 대해 매긴 점수를 $s_{ij}$라고 하면, 

 

$MOS_j = \sum_{i=1}^{N}s_{ij}$

 

이다.

 

DMOS(differential mean opinion score)

DMOS는 MOS에 비해 좀 더 정교하다. DMOS는 다음과 같은 방식으로 만들어진다. 먼저 어떤 왜곡된 이미지의 원본을 보고 점수를 매긴 것에서 그 왜곡된 이미지를 보고 점수를 매긴 것을 빼준다. 만약 i번째 피실험자가 j번째 왜곡 이미지에 대해 매긴 점수를 $s_{ij}$라 하고, i번째 피실험자가 j번째 왜곡 이미지의 원본 이미지에 대해 매긴 점수를 $S_{ij}$라고 하면, 

 

$d_{ij} = S_{ij} - s_{ij}$

 

이다. 이것을 DOS(difference opinion score)라고 부른다. 각 피실험자가 여러 장의 이미지에 매긴 점수들(DOS)을 Z-스코어로 표준화해준다. 왜냐하면 사람마다 점수를 매기는 경향이 모두 다르기 때문이다. i번째 피실험자의 DOS들의 평균을 $\bar{d}_i$, 표준편차를 $\sigma_{i}$라고 하면, 

 

$z_{ij} = (d_{ij} - \bar{d}_i)/\sigma_{i}$

 

이다. 표준화를 통해 모든 사람들이 매긴 점수를 동일한 범위에 놓이게 만들어준다. 그 다음에 여러 피실험자들이 각 이미지에 부여한 Z-스코어들을 평균낸다. 그것이 바로 DMOS다. 따라서 j번째 왜곡 이미지에 대한 DMOS 값은 다음과 같이 나타낼 수 있다.

 

$DMOS_j = \sum_{i=1}^{N}z_{ij}$

 

여기서 N은 피실험자의 총 인원수를 나타낸다. 

 

 

이 글에서 소개한 것은 MOS와 DMOS를 만드는데 있어서 가장 기본적이면서도 간단한 방법 중의 하나다. 데이터베이스마다 MOS와 DMOS를 만드는 방법에 있어 종종 꽤 차이가 있다는 것을 염두에 두길 바란다.  

 

 

<참고자료>

[1] https://en.wikipedia.org/wiki/Mean_opinion_score, 위키피디아(영문), "Mean opinion score"

[2] 김의중 지음, "알고리즘으로 배우는 인공지능, 머신러닝, 딥러닝 입문", 위키북스(2016)

[3] https://en.wikipedia.org/wiki/Subjective_video_quality, 위키피디아(영문), "Subjective video quality"

[4] Sheikh 등, "A Statistical Evaluation of Recent Full Reference Image Quality Assessment Algorithms", IEEE Transactions on image processing, Vol. 15, No. 11, November 2006.

태그 : DMOS, Label, mos, 레이블

댓글()

[MATLAB] 다양한 정도로 압축된 jpeg 이미지 만들기, imwrite 함수

일과 공부 사이/MATLAB|2019.07.03 12:13

imwrite는 이미지 데이터를 지정된 파일에 써주는 함수다. 이때 파일의 형식은 bmp, gif, jpeg, png 등 중에서 선택할 수 있다. 나는 이미지 데이터를 손실 압축의 한 종류인 jpeg 형식의 파일에 써줄 것인데, 다양한 품질을 갖도록 할 것이다. 다양한 품질을 갖는다는 의미는 압축률을 다양하게 해주겠다는 뜻이다. 결과적으로 이미지 파일마다 픽셀 당 비트 수(bbp)가 다를 것이다. 

 

한 이미지를 읽은 다음에 품질 점수 75, 50, 25, 10, 1의 jpeg 이미지를 써줬다. 코드는 다음과 같다. 

 

clc, clear, close all

img = imread('DSC09354.jpg');

imwrite(img, 'Q75.jpg', 'Quality', 75);
imwrite(img, 'Q50.jpg', 'Quality', 50);
imwrite(img, 'Q25.jpg', 'Quality', 25);
imwrite(img, 'Q10.jpg', 'Quality', 10);
imwrite(img, 'Q1.jpg', 'Quality', 1);

코드에서 알 수 있듯이 이미지를 읽을 때는 imread 함수를 사용하고, 이미지를 쓸 때는 imwrite 함수를 사용한다. 

 

자, 그럼 원본 이미지와 품질 점수 75, 50, 25, 10, 1인 jpeg 이미지를 확인해보자. 또한 파일의 크기도 함께 명시했다. 

 

 

품질점수를 낮게 설정해줄수록 압축이 더 많이 됨을 확인할 수 있다. 

 

 

댓글()

나는 지금 북위 39.106845도, 동경 117.171907도에 위치하고 있다(위도와 경도)

논문을 읽다가 latitude와 longitude란 단어를 보게 되었다. 저번에도 사전에서 검색했던 것인데 기억이 안나서 다시 한번 찾아보았다. latitude가 위도, longitude가 경도라고 한다. (이젠 그만 사전 찾아보자.ㅜ)

 

그런데 위도는 뭐고, 경도는 뭔지? 많이 들어 익숙하긴 한데 너무 모호하게 알고 있는 것 같아서 정리를 하려고 한다. 이러고 보면 나도 참 상식이란게 없다. 

 

위도와 경도란?

위도는 쉽게 말해 가로선과 관련되어 있다. 지구의 정중앙을 가로지르는 적도를 기준으로 위쪽에 0도부터 북위 90도까지, 아래쪽에 0도부터 남위 90도까지 존재한다. 위도는 -90도부터 90도까지 180도의 범위를 지닌다. 북위 90도 부근은 북극에 해당되고, 남위 90도 부근은 남극에 해당된다. 

 

반면 경도는 세로선과 관련되어 있다. 위도에서 적도와 같이 0도가 되는 기준이 필요한데, 경도에서는 그 기준을 영국 그리니치 천문대를 지나는 본초자오선(prime meridian)으로 삼고 있다. 경도 0도인 본초자오선을 기준으로 우측에 있으면 동경 몇도, 좌측에 있으면 서경 몇도 이런 식으로 표현한다. 경도는 -180도부터 180도까지 360도의 범위를 갖는다. 비슷한 경도에 있는 나라들은 시간대가 비슷하다. 

 

참고로 동일한 위도 또는 경도에 해당하는 지역을 선으로 이은 것은 위선 또는 경선이라고 한다. 

 

위도(latitude)와 경도(longitude), 그림출처: [3]

 

위도와 경도를 안다면 지구의 어떤 곳에 가있어도 내 위치를 정확히 설명할 수 있다. 

"나 지금 북위 39.106845도, 동경 117.171907도에 있어."

적도를 기준으로 북으로 39.106845도, 본초자오선을 기준으로 동쪽으로 117.171907도인 이곳은 바로 내 연구실의 위치다(톈진대학교 26 건물 D구역). 

 

또한 대학시절 자주 갔던 서울 중구 충무로의 대한극장은 북위 37.561092도, 동경 126.995323도에 위치하고 있다. 톈진보다 서울이 좀 더 남쪽, 좀 더 동쪽에 위치함을 알 수 있다. 

 

여행을 가서 이곳저곳을 방문할때, 위도와 경도를 찾아가면서 방문하는 것도 하나의 재미요소가 될 것 같다.

 

 

<참고자료>

[1] https://ko.wikipedia.org/wiki/%EA%B2%BD%EB%8F%84, 위키백과, "경도"

[2] https://ko.wikipedia.org/wiki/%EC%9C%84%EB%8F%84, 위키백과, "위도"

[3] https://60n95w.com/blogs/oh60n95w/17378537-latitude-and-longitude-basics-for-the-modern-explorer, Latitude and longitude basics for the modern explorer!

댓글()