主要内容

segmentationConfusionMatrix

多类像素级图像分割的混淆矩阵

描述

例子

confusionMatrix= segmentationConfusionMatrix (lprLTruth从预测的像素标签计算一个混淆矩阵lpr和ground truth像素标签LTruth

例子

全部折叠

加载一个预先训练好的网络,在背景下对三角形进行二进制分割。

负载(“triangleSegmentationNetwork”);

triangleImages数据集有100张带有ground truth标签的测试图像。定义数据集的位置。

dataSetDir = fullfile(toolboxdir(“愿景”),“visiondata”“triangleImages”);

获取一个测试图像。

testImage = imread(fullfile(dataSetDir,“testImages”“image_001.jpg”));

获得相应的ground truth标签。标签图像存储为数字图像,因此将基本真理标签转换为分类图像。

gtLabel = imread(fullfile(dataSetDir,“testLabels”“labeled_image_001.png”));classNames = [“三角形”“背景”];labelIDs = [255 0];gtLabel = categorical(gtLabel,labelIDs,classNames);

在测试图像上显示ground truth标签。

imshow (labeloverlay (testImage, gtLabel))

图中包含一个轴对象。axis对象包含一个image类型的对象。

进行语义图像分割。

predLabel = semanticseg(testImage,net);

得到预测标签和ground truth标签的混淆矩阵。混淆矩阵显示分割正确地将21个像素作为三角形,939个像素作为背景。混淆矩阵也表明分割错误地将64个背景像素分类为三角形。没有三角形像素被错误地分类为背景。

confusimatrix = segmentationconfusimatrix (predLabel,gtLabel)
confusionMatrix =2×221 0 64 939

为了检查混淆矩阵的准确性,在测试图像上显示预测的标签。覆盖层与混淆矩阵中的值一致。

imshow (labeloverlay (testImage, predLabel))

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

语义分割后预测的像素标签,指定为二维标签图像或三维标签图像。

数据类型:|逻辑|分类

Ground truth像素标签,指定为与预测像素标签大小相同的二维标签图像或三维标签图像,lpr

数据类型:|逻辑|分类

输出参数

全部折叠

用于分割图像中的类的混淆矩阵,返回为C——- - - - - -C数字矩阵,C是语义分割中的类数。元素(j)是已知属于该类的像素的计数但预计属于一类j

提示

  • 可以从混淆矩阵中计算语义分割指标,如Jaccard评分和分类精度evaluateSemanticSegmentation函数。

  • 您可以在基于块的图像处理工作流中使用此函数,例如bigimage.方法的同一调用中,可以执行语义分割并计算块的混淆矩阵应用函数。

版本历史

R2020b中介绍

Baidu
map