exponenta event banner

multissim3

Индекс многомасштабного структурного подобия (MS-SSIM) для качества объема

Описание

пример

score = multissim3(V,Vref) вычисляет индекс многомасштабного структурного подобия (MS-SSIM), score, для объема V, использование Vref в качестве опорного объема.

Операция 3-D MS-SSIM определена для томов в градациях серого. Для вводов, имеющих более трех размеров, multissim3 рассматривает каждый элемент более высоких размеров как отдельный 3-D объемов в градациях серого. multissim3 обрабатывает 2-D RGB-изображения как 3-D тома в градациях серого. Для вычисления MS-SSIM цветовых каналов в изображении RGB используйте multissim функция.

пример

[score,qualityMaps] = multissim3(V,Vref) также возвращает значение индекса локального MS-SSIM для каждого вокселя в Vи каждая из масштабированных версий V. qualityMaps output - это массив ячеек, содержащий карты для каждой из масштабированных версий V, с каждой картой качества того же размера, что и соответствующая масштабированная версия.

пример

[___] = multissim3(V,Vref,Name,Value) управляет аспектами вычисления, используя один или несколько аргументов «имя-значение». Например, укажите количество шкал с помощью 'NumScales' аргумент.

Примеры

свернуть все

Загрузите 3-D том в рабочую область.

load mri D
Vref = squeeze(D);

Создайте шумную версию исходного объема для сравнения измерений качества.

V = imnoise(Vref,'salt & pepper',0.05);

Вычислите индекс MS-SSIM, измеряющий качество входного тома по сравнению с опорным.

score = multissim3(V,Vref)
score = single
    0.7261

Загрузите том в рабочую область. Этот том будет опорным. Создайте копию ссылочного объема.

load mri D
Vref = squeeze(D);
V = Vref;

Добавление шума в локализованную часть объема для сравнения качества.

V(1:100,1:100,1:10) = imnoise(Vref(1:100,1:100,1:10),'salt & pepper',0.05);
figure
sliceViewer(V);

Вычислите индекс MS-SSIM для томов и извлеките локальные карты структурного подобия. multissim3 функция возвращает qualitymapsмассив ячеек, содержащий локальную карту структурного подобия для каждой из масштабированных версий тома. В карте качества значение 1 указывает на наивысшее качество.

[score, qualitymaps] = multissim3(V,Vref);
figure
sliceViewer(V);

Загрузите том в рабочую область.

load mri D
Vref = squeeze(D);

Создайте шумную версию объема для сравнения измерений качества.

V = imnoise(Vref,'salt & pepper',0.05);

Рассчитайте индекс MS-SSIM для шумного объема, используя исходный объем в качестве эталона. Укажите, сколько взвешивать локальные вычисления индекса MS-SSIM для каждого масштабированного тома, используя 'ScaleWeights' аргумент. В примере используются веса, определенные в статье Ван, Симончелли и Бовиком.

score = multissim3(V,Vref,'ScaleWeights',[0.0448,0.2856,0.3001,0.2363,0.1333]);

Считывание объемного изображения в рабочую область.

VRef = load("mristack.mat");
VRef = im2single(VRef.mristack);

Моделирование пакета из шести изображений путем репликации изображения по четвертому измерению.

VRefBatch = repmat(VRef,[1 1 1 6]);

Создайте версию стека изображений с добавлением соли и перцового шума.

VNoisyBatch = imnoise(VRefBatch,"salt & pepper");

Вычислите MS-SSIM каждого тома в стеке.

score = multissim3(VNoisyBatch,VRefBatch)
score = 1x1x1x6 single array
score(:,:,1,1) =

    0.8341


score(:,:,1,2) =

    0.8347


score(:,:,1,3) =

    0.8337


score(:,:,1,4) =

    0.8333


score(:,:,1,5) =

    0.8348


score(:,:,1,6) =

    0.8343

Считывание объемного изображения в рабочую область.

VRef = load("mristack.mat");
VRef = im2single(VRef.mristack);

Создайте копию партии изображений, добавив соль и перец шума.

Vnoisy = imnoise(VRef,"salt & pepper");

Создание неформатированных dlarray объекты для оригинальной и шумной партии изображений.

dlref = dlarray(VRef);
dlnoisy = dlarray(Vnoisy);

Вычислите оценку MS-SSIM шумных данных относительно исходных данных.

score = multissim3(dlnoisy,dlref)
score = 
  1x1 single dlarray

    0.8341

Входные аргументы

свернуть все

Входной объем, указанный как числовой массив с тремя или более размерами или dlarray(Панель инструментов глубокого обучения). Отформатированный dlarray объекты не могут включать более одной метки канала, более одной пакетной метки и более трех пространственных меток.

Типы данных: single | double | int16 | uint8 | uint16

Опорный объем, указанный как числовой массив с тремя или более размерами или dlarray(Панель инструментов глубокого обучения). Отформатированный dlarray объекты не могут включать более одной метки канала, более одной пакетной метки и более трех пространственных меток. Опорный том должен иметь тот же размер и тот же тип данных, что и входной том. V.

Типы данных: single | double | int16 | uint8 | uint16

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: score = multissim3(V,Vref,'NumScales',3);

Количество шкал, используемых для вычисления MS-SSIM, указанных как разделенная запятыми пара, состоящая из 'NumScales' и положительное целое число. Настройка 'NumScales' кому 1 эквивалентно использованию ssim функции с помощью 'Exponents' аргумент пары имя-значение имеет значение [1 1 1]. Размер входного объема ограничивает количество шкал. multissim3 функция масштабирует объем (NumScales - 1) уменьшение дискретизации объема в 2 раза при каждом масштабировании.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Относительные значения по масштабам, указанные как разделенная запятыми пара, состоящая из 'ScaleWeights' и вектор положительных чисел. Длина вектора равна количеству шкал, поскольку каждый элемент соответствует одной из масштабированных версий исходного объёма. multissim3 функция нормализует значения до 1. По умолчанию весовые коэффициенты шкалы равны fspecial('gaussian',[1,numScales],1). multissim3 функция использует распределение Гаусса по умолчанию, потому что зрительная чувствительность человека достигает пика на средних частотах и уменьшается в обоих направлениях. Пример настройки 'ScaleWeights'см. раздел Расчет весов MS-SSIM для каждого масштабированного тома.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Стандартное отклонение изотропной гауссовой функции, определяемой как разделенная запятыми пара, состоящая из 'Sigma' и положительное число. Это значение определяет взвешивание вокселей окрестности вокруг вокселя для оценки локальной статистики. multissim3 функция использует это взвешивание, чтобы избежать блокировки артефактов при оценке локальной статистики.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Динамический диапазон входного тома, заданный как положительное число. Значение по умолчанию DynamicRange зависит от типа данных тома V, и рассчитывается как diff(getrangefromclass(V)). Например, динамический диапазон по умолчанию: 255 для томов типа данных uint8, и по умолчанию 1 для томов типа данных double или single со значениями вокселя в диапазоне [0, 1].

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Выходные аргументы

свернуть все

Индекс MS-SSIM для качества изображения, возвращаемый в виде числового скаляра, числового массива или dlarray (Deep Learning Toolbox) объект, указанный в таблице. Значение score обычно находится в диапазоне [0, 1]. Значение 1 указывает на наивысшее качество и возникает при V и Vref эквивалентны. Меньшие значения соответствуют худшему качеству. Для некоторых комбинаций входных данных и аргументов пары «имя-значение»: score может быть отрицательным.

Тип входного томаЗначение PSNR
3-D числовые матрицыЧисловой скаляр с одним измерением MS-SSIM.
3-D dlarray объекты1 по 1 dlarray объект с одним измерением MS-SSIM.
N-D числовые массивы с N > 3Числовой массив той же размерности, что и входные объемы. Первые три измерения score - одиночные размеры. Существует одно измерение MS-SSIM для каждого элемента вдоль более высоких размеров.

Неформатированный N-D dlarray объекты с N > 3

dlarray объект той же размерности, что и входные объемы. Первые три измерения score - одиночные размеры. Существует одно измерение MS-SSIM для каждого элемента вдоль более высоких размеров

Форматированное N-D dlarray объекты с N > 3

dlarray объект той же размерности, что и входные объемы. Пространственные размеры score - одиночные размеры. Существует одно измерение MS-SSIM для каждого элемента вдоль любого канала или измерения партии.

Локальные значения индекса MS-SSIM для каждого пикселя в каждой масштабированной версии, возвращаемые как массив ячеек числовых массивов или массив ячеек dlarray(Панель инструментов глубокого обучения). Размер массива ячеек равен 1-by-NumScales. Каждый элемент в qualityMaps указывает качество соответствующего пикселя при соответствующем масштабном коэффициенте. Формат каждого элемента использует форматирование score аргумент, основанный на формате входных томов.

Алгоритмы

Индекс структурного подобия (SSIM) измеряет воспринимаемое качество, количественно определяя структурное сходство между объемом и опорным объемом (см. ssim). multissim3 функция вычисляет MS-SSIM, комбинируя индекс SSIM нескольких версий тома в различных масштабах. Индекс MS-SSIM может быть более надежным по сравнению с индексом SSIM в отношении изменений условий просмотра.

multissim3 функция использует арифметику двойной точности для входных объемов класса double. Все остальные типы входных объёмов используют арифметику с одинарной точностью.

Ссылки

[1] Wang, Z., Simoncelli, E.P., Bovik, A.C. Многомасштабное структурное сходство для оценки качества изображения. В: Тридцать седьмая Асиломарская конференция по сигналам, системам и компьютерам, 2003, 1398-1402. Тихоокеанская роща, Калифорния, США: IEEE, 2003. https://doi.org/10.1109/ACSSC.2003.1292216.

Расширенные возможности

Представлен в R2020a