SSIM: 구조적 유사성 지수

서론 — 구조적 유사성 지수(SSIM) 는 데이터 압축이나 데이터 전송 손실과 같은 처리 과정으로 인해 발생하는 이미지 품질 저하*를 정량화하는 지각적 측정 지표입니다. SSIM은 동일한 이미지 캡처에서 얻은 두 이미지(참조 이미지와 처리된 이미지)를 필요로 하는 완전 참조 측정 지표입니다. 처리된 이미지는 일반적으로 압축된 이미지입니다. 예를 들어, 참조 이미지를 JPEG 형식(어떤 품질 수준이든)으로 저장한 후 다시 불러와서 얻을 수 있습니다. SSIM은 비디오 업계에서 가장 잘 알려져 있지만, 스틸 사진 분야에서도 유용하게 활용될 수 있습니다. Imatest 의 테스트 패턴(예: 쏟아진 동전 또는 로그 F-대비)을 포함한 모든 이미지를 사용할 수 있습니다.

*SSIM은 실제로 유사한 두 이미지 간의 지각 적 차이를 측정합니다. 어느 이미지가 더 나은지는 판단할 수 없으며, 이는 어떤 이미지가 "원본"이고 어떤 이미지가 데이터 압축과 같은 추가 처리를 거쳤는지 알아야 추론할 수 있습니다.

PSNR(최대 신호 대 잡음비) 과 달리 SSIM은 이미지의 가시적인 구조를 기반으로 합니다. PSNR은 더 이상 이미지 품질 저하를 나타내는 신뢰할 수 있는 지표로 간주되지는 않지만, Imatest SSIM 모듈에서 대체 측정값으로 사용할 수 있습니다.

Imatest SSIM 계산은 Zhou Wang , Alan Bovik , HamidSheikh 및 Eero Simoncelli의 논문 "Image Quality Assessment: From Error Visibility to Structural Similarity" 의 Matlab 구현을 기반으로 합니다 .

SSIM은 Imatest 이미지 처리 모듈에서도 계산되는데, 이 모듈에는 SSIM 모듈에는 없는 다양한 기능이 있습니다. 예를 들어, 이미지에 일반적인 손상 효과(노이즈, 흐림, 플레어 등)를 적용한 후 이미지 개선에 일반적으로 사용되는 신호 처리 기법(톤 매핑, 언샤프 마스크, 양방향 필터링 등)을 적용할 수 있습니다.

작업

Imatest를 열고 오른쪽 유틸리티 모듈 하단의 SSIM 버튼을 클릭하거나, 유틸리티 (드롭다운 메뉴)에서 SSIM을 클릭합니다. 그러면 SSIM 창이 열리고 처음에는 간소화된 지침이 표시됩니다.

ssim_창 열기
SSIM 시작 창 (잘린 이미지)

[읽기 1. 처리된 이미지 파일] 및 [읽기 2. 참조 이미지 파일] 버튼을 사용하여 비교할 두 이미지를 읽어오세요.

두 이미지가 불러와진 후 초기 결과가 표시됩니다. 예시에서는 Imatest Spilled Coins 차트의 캡처된 이미지를 사용합니다. 아래 설명된 대로 Imatest Test Charts 모듈을 사용하여 여러 테스트 패턴의 비트맵 이미지를 직접 생성할 수 있습니다.

ssim_초기 결과
쏟아진 동전 이미지에 대한 SSIM 초기 결과입니다.
Irfanview로 처리한 이미지를 20% (중간 정도 낮음) 품질로 저장했습니다.

처리된 이미지 파일은 오른쪽 상단에 표시됩니다. 파일 이름( 2.Crop_Irfan...) 은 이미지 아래쪽 중앙 부근에 진한 파란색 으로 표시됩니다. 이 파일은 Irfanview 품질 수준 20(100점 만점)으로 저장되었으며, 이는 상대적으로 낮은 품질, 즉 고도로 압축된 상태입니다.

참조 이미지 파일은 오른쪽 상단에 표시됩니다. 파일 이름(1 . Crop LX7... )은 왼쪽 이미지 아래에 갈색 으로 표시됩니다. SSIM은 대칭 측정 방식이므로 처리된 이미지 파일과 참조 이미지 파일을 서로 바꿔도 결과는 동일합니다.

SSIM 지수 지도 (위치에 따른 SSIM 값)가 오른쪽 하단에 표시됩니다. 보기 드롭다운 메뉴에서 색상 막대(옵션 II)가 선택되어 있습니다. 다른 옵션으로는 색상 막대 없음 (회색조 이미지)과 회색조 색상 막대가 있습니다. Mathworks의 SSIM 설명 에는 회색조 SSIM 지도가 나와 있지만, 저는 해석하기가 매우 어렵다고 생각합니다.

mssim_산점도 처리된 이미지 의 측정된 압축률(비트/픽셀, 이 파일의 경우 0.126)은 파일 이름 아래 왼쪽에 표시됩니다. 비트/픽셀은 JPEG 품질 설정과 이미지 내용에 따라 결정됩니다(세부 묘사가 많거나 노이즈가 많은 이미지일수록 압축률이 낮아집니다). 이 파일은 JPEG 품질 손실을 보여주기 위해 Irfanview 에서 품질 수준 20(%) (상당히 낮은 수준)으로 저장되었습니다(실제로는 이 압축 수준을 거의 사용하지 않으며, 웹사이트 JPEG 이미지에는 90을 사용합니다).

창 중앙 부근에 이미지 크기와 평균 SSIM (전체 이미지 기준)이 표시됩니다. SSIM은 생소한 개념이므로 설명이 필요합니다. 오른쪽에는 Wang, Bovik 등의 논문에 실린 대규모 이미지 세트에 대한 평균 SSIM(MSSIM)에 따른 평균 의견 점수(MOS) 그래프가 나와 있습니다. 원본 이미지는 시청 환경을 고려하여 2배로 다운샘플링되었습니다. 아쉽게도 저자들은 MOS의 의미(많은 의견을 기반으로 하며 100으로 정규화된 것으로 보임)에 대해 자세히 설명하지 않았습니다. MSSIM이 최댓값인 1보다 낮아지면 MOS는 급격히 떨어지므로 MSSIM = 0.9에서 화질 저하가 크게 나타납니다.

이미지 품질 저하를 확인하려면 일반적으로 확대해야 합니다.

옵션

가장 중요한 옵션은 이미지를 확대하여 손상 정도를 더 명확하게 확인하는 것입니다. 이를 위한 방법은 여러 가지가 있습니다.

확대/자르기

확대/자르기 영역(왼쪽 하단의 연한 파란색 영역)에 있는 버튼을 사용하세요 . 버튼 에는 2배 확대 , 1/2배 축소 , 전체 이미지 보기( 축소 )가 있습니다. 확대/축소 위치는 네 방향 버튼( < , > , ^ , v) 중 하나를 사용하여 설정할 수 있습니다. 이 방법은 다소 번거로울 수 있으며, 원하는 영역을 정확히 선택하려면 여러 번 클릭해야 할 수도 있습니다.

마우스 커서를 이미지 위에서 클릭하고 드래그하여 자를 영역을 선택하세요 .

관심 영역(ROI)을 선택한 후에는 창 중앙 부근(처리된 이미지의 오른쪽 아래)에 있는 '뷰 동기화' 버튼을 클릭해야 합니다.

이렇게 하면 잘린 이미지의 SSIM 계산 결과가 업데이트됩니다. 다음은 잘린 이미지의 예시이며, 처리된 이미지는 품질 10(낮은 품질, 위 이미지보다 약간 낮은 품질)으로 저장되었습니다.

ssim_cropped_results SSIM 결과의 일부를 잘라낸 이미지입니다. 처리된 이미지는 Irfanview를 사용하여 10% (낮음) 품질로 저장되었습니다.

왼쪽 이미지에서 화질 저하로 인한 아티팩트가 명확하게 보입니다. SSIM 값은 화질 저하가 거의 나타나지 않는 매끄러운 영역에서 가장 높고, 왼쪽의 아이솔라이트 LED와 같은 구조화된 특징의 경계에서 가장 큽니다.

이미지를 확대(즉, 자르기)하면 확대된 영역이 왼쪽 하단의 축소 이미지에서 빨간색 사각형 안에 표시되고, 잘린 영역의 SSIM 값은 연한 파란색 확대/자르기 영역 오른쪽에 표시됩니다.

PSNR(최대 신호 대 잡음비)

PSNR 사용을 권장하지는 않지만( Wang-Bovik 논문에는 PSNR이 지각 품질과 상관관계가 낮다는 것을 보여주는 여러 예시가 있습니다), 업계의 일부 분야에서는 여전히 사용되고 있습니다. SSIM 모듈에서 SSIM 창 하단의 SSIM/PSNR 드롭다운 메뉴에서 적절한 항목을 선택하여 PSNR을 계산할 수 있습니다( Matlab PSNR 루틴 사용). 이 선택은 저장되지 않습니다. SSIM 모듈은 항상 SSIM이 선택된 상태로 열립니다. PSNR이 선택되면 오른쪽 하단 이미지에는 픽셀 차이(처리된 이미지에서 참조 이미지를 뺀 후 중간 회색 평균 픽셀 레벨(127)만큼 오프셋)가 표시됩니다.

ssim_psnr_결과
PSNR 결과(잘라낸 부분), 오른쪽 하단에 차이 맵이 표시됩니다.

PSNR의 단위는 dB(데시벨)입니다. SSIM/PSNR 드롭다운 메뉴는 PSNR이 선택된 경우 분홍색으로 표시되므로, 실수로 PSNR로 설정된 상태로 두지 않고 (권장되는) SSIM 계산을 사용할 수 있습니다.

히스토그램

SSIM 창 하단의 일반 보기/히스토그램 드롭다운 메뉴를 사용하여 SSIM 또는 PSNR에 대한 히스토그램 표시 방식을 선택할 수 있습니다. 히스토그램은 SSIM 또는 픽셀 차이 맵을 대신하여 오른쪽 하단에 표시됩니다. 히스토그램은 이미지가 잘린 부분에 대한 것입니다. 이미지 내용에 따라 히스토그램이 달라질 수 있으며, 즉 잘린 부분의 히스토그램이 전체 이미지의 히스토그램과 반드시 같지는 않습니다. 위 이미지는 (Irfanview) 품질 10으로 설정된 JPEG 파일의 히스토그램을 보여줍니다. JPEG 품질이 낮을수록 히스토그램이 더 넓게 퍼집니다.

ssim_히스토그램 SSIM 히스토그램. (위의) 잘린 SSIM 결과와 비교하십시오.
Irfanview로 처리한 이미지를 10% (낮음) 품질로 저장했습니다.

기타 설정

왼쪽 확대/축소/자르기 영역 위에 있는 '다운샘플링' 드롭 다운 메뉴를 사용하면 SSIM 분석 전에 이미지를 다운샘플링(크기 축소)할 수 있습니다. 이미지를 다운샘플링하면 낮은 배율에서 발생하는 시각적 품질 저하를 더 잘 반영하는 결과를 얻을 수 있습니다. 이는 작은 이미지 크기나 먼 거리에서 볼 때 나타나는 현상입니다. SSIM 및 PSNR 값은 다운샘플링된 이미지에서 항상 더 높게 나타납니다. 선명도 계산과는 달리, SSIM 계산(현재 형태)은 시청 조건에 대한 명확한 기준이 없습니다. 이 메뉴는 Wang-Bovik이 분석 전에 일부 이미지를 다운샘플링하는 방식을 채택함에 따라 추가되었습니다.

Imatest 테스트 차트를 사용하여 테스트 이미지 생성

유틸리티 메뉴에서 Imatest 테스트 차트 모듈과 직접 비교할 이미지를 생성할 수 있습니다. 다음은 신호 처리가 질감에 미치는 영향을 측정하도록 설계된 '쏟아진 동전' 차트의 예입니다.

ssim_testcharts_zoneplate 테스트 차트 존 플레이트 이미지. 4K 비디오 해상도로 출력 설정.

존 플레이트 는 SSIM 분석에 유용한 여러 차트 디자인 중 하나입니다. 다른 차트로는 로그 주파수 대비(Log Frequency-Contrast) , 지멘스 스타(Siemens Star ), 그리고 스필드 코인( Spilled Coins , 랜덤 1/f)이 있습니다. 다른 차트들과 달리 존 플레이트는 자체 분석 모듈을 제공하지 않습니다. 존 플레이트는 신호 처리 아티팩트, 특히 에일리어싱으로 인한 아티팩트(위 미리보기 이미지에서 뚜렷하게 보이며, 최종 이미지와는 다릅니다)를 확인하는 데 있어 최악의 경우를 보여주는 이미지이기 때문에 특히 유용합니다.