exponenta event banner

bfscore

Оценка соответствия контуров для сегментации изображения

Описание

пример

score = bfscore(prediction,groundTruth) вычисляет оценку соответствия контуров BF (Boundary F1) между предсказанной сегментацией в prediction и истинная сегментация в groundTruth. prediction и 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;

Отображение начальных областей поверх изображения.

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 заметно меньше для второго региона. Этот результат согласуется с визуальным сравнением результатов сегментации, которая ошибочно классифицирует грязь в правом нижнем углу изображения как листья.

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

свернуть все

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

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

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

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

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

Пример: 3

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

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

свернуть все

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

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

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

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

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

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

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

Подробнее

свернуть все

Балл BF (граничный F1)

Оценка BF измеряет, насколько близка предсказанная граница объекта к границе истинности земли.

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

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

Ссылки

[1] Сюрка, Г., Д. Ларлус и Ф. Перроннин. «Что является хорошей оценочной мерой для семантической сегментации?» Материалы Британской конференции машинного видения, 2013 год, стр. 32.1-32.11.

См. также

|

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