bfscore

Очертите соответствие со счетом к сегментации изображений

Описание

пример

score = bfscore(prediction,groundTruth) вычисляет BF (Граничный F1) счет соответствия контура между предсказанной сегментацией в prediction и истинная сегментация в groundTruthПредсказание и groundTruth может быть пара логических массивов для бинарной сегментации или пара метки или категориальных массивов для сегментации мультикласса.

[score,precision,recall] = bfscore(prediction,groundTruth) также возвращает значения точности и отзыва для prediction отобразите по сравнению с groundTruth изображение.

[___] = bfscore(prediction,groundTruth,threshold) вычисляет счет BF с помощью заданного порога в качестве допуска ошибки по дальности, чтобы решить, имеет ли граничная точка соответствие или нет.

Примеры

свернуть все

Считайте изображение с объектом сегментироваться. Преобразуйте изображение в шкалу полутонов и отобразите результат.

A = imread('hands1.jpg');
I = im2gray(A); 
figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Используйте активные контуры (змеи) метод, чтобы сегментировать руку.

mask = false(size(I));
mask(25:end-25,25:end-25) = true;
BW = activecontour(I, mask, 300);

Считайте сегментацию основной истины.

BW_groundTruth = imread('hands1-mask.png');

Вычислите счет BF активной сегментации контуров против основной истины.

similarity = bfscore(BW, BW_groundTruth);

Отобразите маски друг на друге. Цвета указывают на различия в масках.

figure
imshowpair(BW, BW_groundTruth)
title(['BF Score = ' num2str(similarity)])

Figure contains an axes. The axes with title BF Score = 0.76266 contains an object of type image.

В этом примере показано, как сегментировать изображение на несколько областей. Пример затем вычисляет счет BF к каждой области.

Считайте изображение с несколькими областями, чтобы сегментироваться.

RGB = imread('yellowlily.jpg');

Создайте каракули для трех областей, которые отличают их типичные цветовые характеристики. Первая область классифицирует желтый цветок. Вторая область классифицирует зеленую основу и листы. Последняя область классифицирует коричневую грязь на две отдельных закрашенных фигуры изображения. Области заданы вектором с 4 элементами, элементы которого указывают на x-и y-координату левого верхнего угла ROI, ширины ROI и высоты ROI.

region1 = [350 700 425 120]; % [x y w h] format
BW1 = false(size(RGB,1),size(RGB,2));
BW1(region1(2):region1(2)+region1(4),region1(1):region1(1)+region1(3)) = true;

region2 = [800 1124 120 230];
BW2 = false(size(RGB,1),size(RGB,2));
BW2(region2(2):region2(2)+region2(4),region2(1):region2(1)+region2(3)) = true;

region3 = [20 1320 480 200; 1010 290 180 240]; 
BW3 = false(size(RGB,1),size(RGB,2));    
BW3(region3(1,2):region3(1,2)+region3(1,4),region3(1,1):region3(1,1)+region3(1,3)) = true;
BW3(region3(2,2):region3(2,2)+region3(2,4),region3(2,1):region3(2,1)+region3(2,3)) = true;

Отобразите области seed сверху изображения.

figure
imshow(RGB)
hold on
visboundaries(BW1,'Color','r');
visboundaries(BW2,'Color','g');
visboundaries(BW3,'Color','b');
title('Seed regions')

Figure contains an axes. The axes with title Seed regions contains 7 objects of type line, image.

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

L = imseggeodesic(RGB,BW1,BW2,BW3,'AdaptiveChannelWeighting',true);

Загрузите сегментацию основной истины изображения.

L_groundTruth = double(imread('yellowlily-segmented.png'));

Визуально сравните результаты сегментации с основной истиной.

figure
imshowpair(label2rgb(L),label2rgb(L_groundTruth),'montage')
title('Comparison of Segmentation Results (Left) and Ground Truth (Right)')

Figure contains an axes. The axes with title Comparison of Segmentation Results (Left) and Ground Truth (Right) contains an object of type image.

Вычислите счет BF к каждой сегментированной области.

similarity = bfscore(L, L_groundTruth)
similarity = 3×1

    0.7992
    0.5333
    0.7466

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

Входные параметры

свернуть все

Предсказанная сегментация в виде 2D или 3-D, логического, числового, или categorical массив. Если prediction числовой массив, затем он представляет массив метки и должен содержать неотрицательные целые числа типа данных double.

Типы данных: логический | double | categorical

Сегментация основной истины в виде 2D или 3-D, логического, числового, или categorical массив, одного размера и тип данных как prediction. Если groundTruth числовой массив, затем он представляет массив метки и должен содержать неотрицательные целые числа типа данных double.

Типы данных: логический | double | categorical

Порог допуска ошибки по дальности в пикселях в виде положительной скалярной величины. Порог определяет, имеет ли граничная точка соответствие или нет. Если threshold не задан, затем значение по умолчанию составляет 0,75% длины диагонали изображений.

Пример 3

Типы данных: double

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

свернуть все

Счет BF, возвращенный в виде числа или вектора со значениями в области значений [0, 1]. score из 1 среднего значения, что контуры объектов в соответствующем классе в prediction и groundTruth идеальная пара. Если входные массивы:

  • логические массивы, score скаляр и представляет счет BF переднего плана.

  • метка или категориальные массивы, score вектор. Первый коэффициент в score счет BF к первому приоритетному классу, второй коэффициент является счетом к второму приоритетному классу и так далее.

Точность, возвращенная в виде числа или числового вектора со значениями в области значений [0, 1]. Каждый элемент указывает на точность контуров объекта в соответствующем приоритетном классе.

Точность является отношением числа точек на контуре предсказанной сегментации, которые достаточно близки к контуру сегментации основной истины к длине предсказанного контура. Другими словами, точность является частью обнаружений, которые являются истинными положительными сторонами, а не ложными положительными сторонами.

Вспомните, возвращенный в виде числа или числового вектора со значениями в области значений [0, 1]. Каждый элемент указывает на отзыв контуров объекта в соответствующем приоритетном классе.

Отзыв является отношением числа точек на контуре сегментации основной истины, которые достаточно близки к контуру предсказанной сегментации к длине контура основной истины. Другими словами, отзыв является частью истинных положительных сторон, которые обнаружены, а не пропущены.

Больше о

свернуть все

BF (граничный F1) счет

BF выигрывают меры, как близко предсказанный контур объекта совпадает с контуром основной истины.

Счет BF задан как среднее гармоническое (F1-мера) precision и recall значения с допуском ошибки по дальности, чтобы решить, имеет ли точка на предсказанном контуре соответствие на контуре основной истины или нет.

score = 2 * precision * recall / (recall + precision)

Ссылки

[1] Csurka, G., Д. Ларлус и Ф. Перроннин. "Что такое хорошая мера по оценке для семантической сегментации?" Продолжения британской Конференции по Машинному зрению, 2013, стр 32.1-32.11.

Смотрите также

|

Введенный в R2017b