Py学习  »  机器学习算法

深度学习图像语义分割常见评价指标详解

OpenCV学堂 • 4 年前 • 1832 次点击  

点击上方蓝字关注我们

微信公众号:OpenCV学堂
关注获取更多计算机视觉与深度学习知识

图像语义分割

深度学习已经应用在计算机视觉领域多个方面,在最常见的图像分类、对象检测、图像语义分割、实例分割视觉任务都取得了良好的效果,如下图所示:

深度学习在图像语义分割上已经取得了重大进展与明显的效果,产生了很多专注于图像语义分割的模型与基准数据集,这些基准数据集提供了一套统一的批判模型的标准,多数时候我们评价一个模型的性能会从执行时间、内存使用率、算法精度等方面进行考虑。有时候评价指标也会依赖于模型的应用场景而有所不同,精准度对一些严苛的使用场景是优先考虑的,速度是对一些实时应用场景优先考虑的。对语义分割模型来说,通常用下面的一些方法来评价算法的效果。


No.1

执行时间


运行时间或者速度是一个很关键的指标,特别是在模型部署以后的推理阶段,在有些应用场景下,我们知道训练模型所需要的时间也是有意义的,但是通常不是很重要。主要原因在于训练/学习不是一个实时需求,除非训练时间极其漫长或者训练时候运行速度极其慢。另外一个问题是,执行时间容易受到各种硬件资源不同的影响,所以一般情况下很难去统一度量,不考虑硬件资源,片面的通过执行时间来衡量模型好坏有失公平。


No.2

内存占用


对所有的语义分割模型来说,内存是另外一个重要因素,尽管多数场景中内存是可以随时扩充的,但是在一些嵌入式设备上,内存也是很珍贵的,即时高端GPU卡,内存也不是无限制可以消费的,所以网络的对内存的消耗也是一个评估考量的指标。


No.3

精度(Accuracy)


精度是评价图像分割网络最主要也是最流行的技术指标,这些精度估算方法各种不同,但是主要可以分为两类,一类是基于像素精度,另外一类是基于IOU。当前最流行的语义分割方法评估都是基于像素标记为基础完成的。


假设总计有k+1分类(标记为L0到Lk,其中包含一个背景类别),Pij表示类别为i的像素被预测为类别为j的数目,这样来说Pii就表示TP(true positives),Pij与Pji分别表示为FP(false positives)与FN(false negatives)

像素精度

01


PA – (Pixel Accuracy) 

最简单的度量计算,总的像素跟预测正确像素的比率:


平均像素精度

02


MPA –Mean Pixel Accuracy

基于每个类别正确的像素总数与每个类别总数比率求和得到的均值:

平均并交比

03


MIoU-Mean Intersection over Union

这是语义分割网络的一个标准评价指标,它通过计算交并比来度量,这里交并比代指ground truth与预测分割结果之间。是重新计算TP跟 (TP + FN+FP)之和之间的比率。IoU是基于每个类别计算,然后再求均值。公式如下:

频率权重并交比

04


FWIoU(Frequency Weighted Intersection over Union)

他是MIoU的改进版本,它会根据每个分类出现频率,对每个分类给予不同权重。它的计算方法如下:


上述四种精度计算方法,MIoU是各种基准数据集最常用的标准之一,绝大数的图像语义分割论文中模型评估比较都以此作为主要技术指标。常见如下:


推荐阅读

OpenCV加速与优化,让代码执行速度飞起来

详解对象检测网络性能评价指标mAP计算

OpenCV中图像二值化函数调用几个关键点详解

OpenCV中如何提取不规则ROI区域

对象检测新趋势anchor-free模型之CenterNet

anchor-free对象检测网络CornerNet详解

升级到tensorflow2.0,我整个人都不好了

CPU上跑深度学习模型,FPS也可以达100帧

OpenVINO深度学习推理框架 开发技术系列文章汇总

OpenCV4 | 如何一行代码搞定SSD模型推理与结果解析

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51732
 
1832 次点击