利用envi计算二分类(多分类)精度评价指标及混淆矩阵计算

发布时间 2023-04-11 16:42:14作者: 小澳子

前言

  导师需要我将预测的几个结果单独计算出每一张图的精度评价,包含以下指标:iou,recall,F1。

  因为他说我利用代码批量计算的结果有误。

  如果是这样的话可就坏了,希望我的结果没有出太多错误,不然已经做过计算的某些内容又需要全部重新计算了。

利用envi计算精度指标

使用tif格式影像

  师姐说使用tif格式的图像来计算。我的深度学习模型训练用图和预测出图都是png格式的,我直接将png格式的图像的后缀改成tif格式即可。

  两张图片一张是label标签,一张是预测出图的结果。

prediction


envi classic打开图像

  在envi中打开两张图像。file-open image file

初步处理

  envi不能理解传入的图像中的值是什么意思,需手动标注。在memory上右键编辑。


----↓----

选中ENVI Classification


----↓----

有几种类别就输入几(背景也算1类)。比如建筑物变化检测,最后会是2类:其1是背景,其2是识别的变化区域。

系统会根据设定的类别自动生成几个选项,自行设定名字。我因为是二类(tif图上的值为0和1,0是背景,1是变化区域),所以默认第一个是背景,第二个表示变化区域。先命名,因为命名结束后,颜色会发生变化(Unclassified对应的区域默认是黑色,Calss #1对应的区域默认是红色)。

检查:原本是背景的区域确实仍然是黑色,原本是变化区域的部分确实变成了红色。

  (击ok应用即可,应用完毕之后,图片的标识会发生变化。此时在load band加载图像进行查看)

  我相信如果是多种类别,仍然可以通过颜色来查看是否命名正确。

计算混淆矩阵

  点击选项后,在弹出的窗口中,先选择预测prediction图像【前文中提到的memory6】,再选label标签图像【前文中提到的memory5】。

  在弹出的窗口中,查看两张tif图中的类别连接是否正确。

  如果正确则在弹出的窗口中,点选“Memory”选项(只是得到一下结果,之后截图保存结果或者记录一下即可。)

  如果想要保存结果的话,可以在弹出的结果窗口上,File->save text to ascii将结果保存为.txt文件(.txt需要自己手动输入)。

指标解释

  • 生产者精度

地面真实类中,某类像元被正确分类为该类的概率,利用混淆矩阵的列来计算。

  • 用户精度

影像类中,某类像元被正确分类为该类的概率,利用混淆矩阵的行来计算。

  • 总体精度

正确分类像元数除以图像像元总数