Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

bfscore

Puntuación de coincidencia de contorno para segmentación de imágenes

Descripción

ejemplo

score = bfscore(prediction,groundTruth) calcula la puntuación de coincidencia de contorno BF (Límite F1) entre la segmentación pronosticada en y la segmentación verdadera en . y puede ser un par de matrices lógicas para la segmentación binaria, o un par de matrices de etiquetas o categóricas para la segmentación multiclase.predictiongroundTruthpredictiongroundTruth

[score,precision,recall] = bfscore(prediction,groundTruth) también devuelve los valores de precisión y recuperación de la imagen en comparación con la imagen.predictiongroundTruth

[___] = bfscore(prediction,groundTruth,threshold) calcula la puntuación BF utilizando un umbral especificado como tolerancia de error de distancia, para decidir si un punto de límite tiene una coincidencia o no.

Ejemplos

contraer todo

Lea una imagen con un objeto para segmentar. Convierta la imagen a escala de grises y muestre el resultado.

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

Utilice el método de contornos activos (serpientes) para segmentar la mano.

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

Lea la segmentación de la verdad del suelo.

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

Calcular la puntuación BF de la segmentación de contornos activos contra la verdad del suelo.

similarity = bfscore(BW, BW_groundTruth);

Muestre las máscaras una encima de la otra. Los colores indican diferencias en las máscaras.

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

En este ejemplo se muestra cómo segmentar una imagen en varias regiones. A continuación, el ejemplo calcula la puntuación BF para cada región.

Lea una imagen con varias regiones para segmentar.

RGB = imread('yellowlily.jpg');

Cree garabatos para tres regiones que distingan sus características de color típicas. La primera región clasifica la flor amarilla. La segunda región clasifica el tallo verde y las hojas. La última región clasifica la suciedad marrón en dos parches separados de la imagen. Las regiones se especifican mediante un vector de 4 elementos, cuyos elementos indican la coordenada x e y de la esquina superior izquierda del ROI, la anchura del ROI y la altura del 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;

Muestre las regiones a la semilla en la parte superior de la imagen.

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

Segmente la imagen en tres regiones utilizando la segmentación de color geodésica basada en la distancia.

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

Cargue una segmentación de la verdad del suelo de la imagen.

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

Compare visualmente los resultados de segmentación con la verdad del suelo.

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

Calcular la puntuación BF para cada región segmentada.

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

    0.7992
    0.5333
    0.7466

La puntuación BF es notablemente más pequeña para la segunda región. Este resultado es coherente con la comparación visual de los resultados de segmentación, que clasifica erróneamente la suciedad en la esquina inferior derecha de la imagen como hojas.

Argumentos de entrada

contraer todo

Segmentación prevista, especificada como una matriz lógica, numérica o lógica 2D o 3D.categorical Si es una matriz numérica, representa una matriz de etiquetas y debe contener enteros no negativos de tipo de datos .predictiondouble

Tipos de datos: logical | double | categorical

Segmentación de la verdad del suelo, especificada como una matriz lógica, numérica o de 2D lógica o 3D del mismo tamaño y tipo de datos que .categoricalprediction Si es una matriz numérica, representa una matriz de etiquetas y debe contener enteros no negativos de tipo de datos .groundTruthdouble

Tipos de datos: logical | double | categorical

Umbral de tolerancia de error de distancia en píxeles, especificado como un escalar positivo. El umbral determina si un punto de límite tiene una coincidencia o no. Si no se especifica, el valor predeterminado es 0,75% de la longitud de la diagonal de la imagen.threshold

Ejemplo: 3

Tipos de datos: double

Argumentos de salida

contraer todo

Puntuación BF, devuelta como un escalar numérico o vector con valores en el rango [0, 1]. A de 1 significa que los contornos de los objetos en la clase correspondiente en y son una coincidencia perfecta.scorepredictiongroundTruth Si las matrices de entrada son:

  • matrices lógicas, es un escalar y representa la puntuación BF del primer plano.score

  • label o matrices categóricas, es un vector.score El primer coeficiente en es la puntuación BF para la primera clase de primer plano, el segundo coeficiente es la puntuación para la segunda clase de primer plano, y así sucesivamente.score

Precisión, devuelta como un vector escalar numérico o numérico con valores en el intervalo [0, 1]. Cada elemento indica la precisión de los contornos de objeto en la clase de primer plano correspondiente.

es la relación del número de puntos en el límite de la segmentación pronosticada que están lo suficientemente cerca del límite de la segmentación de la verdad del suelo con la longitud del límite pronosticado.Precisión En otras palabras, la precisión es la fracción de detecciones que son verdaderos positivos en lugar de falsos positivos.

Recordar, devuelto como un vector escalar numérico o numérico con valores en el rango [0, 1]. Cada elemento indica la recuperación de contornos de objeto en la clase de primer plano correspondiente.

es la relación entre el número de puntos en el límite de la segmentación de la verdad del suelo que están lo suficientemente cerca del límite de la segmentación prevista con la longitud del límite de la verdad del suelo.Recordar En otras palabras, recordar es la fracción de los verdaderos positivos que se detectan en lugar de perderse.

Más acerca de

contraer todo

BF (Límite F1) Puntuación

La puntuación BF mide la proximidad del límite predicho de un objeto coincide con el límite de la verdad del suelo.

La puntuación BF se define como la media armónica (F1-medida) de los valores y con una tolerancia de error de distancia para decidir si un punto en el límite predicho tiene una coincidencia en el límite de la verdad del suelo o no.precisionrecall

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

Referencias

[1] Csurka, G., D. Larlus, and F. Perronnin. "What is a good evaluation measure for semantic segmentation?" Proceedings of the British Machine Vision Conference, 2013, pp. 32.1-32.11.

Consulte también

|

Introducido en R2017b