bfscore

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

Синтаксис

score = bfscore(prediction,groundTruth)
[score,precision,recall] = bfscore(prediction,groundTruth)
[___] = bfscore(prediction,groundTruth,threshold)

Описание

пример

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

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

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

Примеры

свернуть все

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

A = imread('hands1.jpg');
I = rgb2gray(A);
figure
imshow(I)
title('Original 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)])

Этот пример показывает, как сегментировать изображение на несколько областей. Пример затем вычисляет счет 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')

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

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)')

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

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

    0.7992
    0.5333
    0.7466

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

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

свернуть все

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

Типы данных: logical | double | categorical

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

Типы данных: logical | 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