主要内容

计算细分指标的基于块的工作流

这个例子显示了如何计算个人的语义分类混淆矩阵块中blockedImage对象,然后计算全球和块细分指标。

加载一个pretrained网络执行二进制分割三角形的背景。

负载(“triangleSegmentationNetwork”);

triangleImages数据集与地面实况100个测试图像标签。定义数据集的位置。

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

定义测试图像的位置。

testImagesDir = fullfile (dataSetDir,“testImages”);

读三个测试图像。调整每个图像的四个因素之一,将其转换为数据类型,然后创建一个blockedImage对象。一个blockedImage金宝app支持基于块图像处理工作流。

numImages = 3;idx = 1: numImages im = imread (fullfile (testImagesDir, (“image_”“00”num2str (idx)“jpg”)));我= imresize (im, 4);testImages (idx) = blockedImage (im);结束

显示第一个测试图像。

bigimageshow (testImages (1))

定义地面实况标签的位置。

testLabelsDir = fullfile (dataSetDir,“testLabels”);

定义类名和它们相关的标签id。

一会= [“三角形”,“背景”];labelIDs = (255 0);

阅读在地面真理标签为每个测试图像。创建一个blockedImage从每个地面实况标签对象。

idx = 1: numImages gtLabel = imread (fullfile (testLabelsDir, (“labeled_image_”“00”num2str (idx)“使用”)));gtLabel = imresize (gtLabel 4“最近的”);groundTruthImages (idx) = blockedImage (gtLabel);结束

显示第一个地面实况图像。

bigimageshow (groundTruthImages (1))

为每个测试图像,使用应用函数来处理每个块。的应用函数执行指定的操作,辅助功能segmentAndCalculateBlockMetrics,这是定义在这个例子。每个块的函数执行语义分割和计算之间的混淆矩阵预测和地面真理标签。

blockSize = [32 32];datasetConfMat =表;idx = 1: numImages segmentedImages (idx) blockConfMatOneImage] =应用(testImages (idx),@(块,labeledImageBlock) segmentAndCalculateBlockMetrics(块,labeledImageBlock,净,一会,labelIDs),“ExtraImages”groundTruthImages (idx),“PadPartialBlocks”,真的,“BlockSize”blockSize,“UseParallel”、假);%阅读所有的块和更新的图像数量的结果blockConfMatOneImageDS = blockedImageDatastore (blockConfMatOneImage);blockConfMat = readall (blockConfMatOneImageDS);(blockConfMat blockConfMat = struct2table ({}):);blockConfMat。ImageNumber = idx。*的(高度(blockConfMat), 1);datasetConfMat = [datasetConfMat; blockConfMat];结束

显示第一个分割图像。

bigimageshow (segmentedImages (1))

度量和评估数据集分割块指标。

[指标,blockMetrics] = evaluateSemanticSegmentation (datasetConfMat,一会,“指标”,“所有”);
评估语义分割结果- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *选定指标:全球准确性、类准确性,借据,加权借据。* 3图像处理。*完成……完成了。*数据集指标:GlobalAccuracy MeanAccuracy MeanIoU _______ _________ ___________ WeightedIoU * * * 0.95428 0.82739 0.69927 0.92533

计算所有图片Jaccard分数。

jaccardSimilarity = metrics.ImageMetrics.MeanIoU
jaccardSimilarity =3×10.7664 0.7277 0.6538

金宝app支持函数

segmentAndCalculateBlockMetrics函数执行的语义分割一块然后计算预测的混淆矩阵和地面真理标签。

函数[outputLabeledImageBlock, blockConfMatPerBlock] = segmentAndCalculateBlockMetrics(块,labeledImageBlock,净,一会,labelIDs) outputLabeledImageBlock = semanticseg (block.Data,净);%将地面真理标签分类labeledImageBlock =分类(labeledImageBlock labelIDs,类名);confusionMatrix = segmentationConfusionMatrix (outputLabeledImageBlock labeledImageBlock);% blockConfMatPerBlock是混淆矩阵的结构,图像数量%,blockInfo。使用evaluateSemanticSegmentation的结构%计算指标和总基于块的结果。blockConfMatPerBlock。ConfusionMatrix = ConfusionMatrix;blockConfMatPerBlock。ImageNumber = block.ImageNumber;blockInfo。开始= block.Start;blockInfo。结束= block.End;blockConfMatPerBlock。BlockInfo = BlockInfo;结束

另请参阅

||||

相关的例子

更多关于