显著性目标检测模型评价指标(二)——PR曲线

显著性目标检测模型评价指标 之 PR曲线原理与实现代码

目录

一、PR曲线原理

在显著目标提取中(关于视觉显著性的简要介绍点此处链接),PR曲线是用来评估模型性能的重要指标之一,PR曲线中的P(Precision)和R(Recall)分布意为“查准率”和“查全率”。以“查准率”为纵坐标,“查全率”为横坐标所做的曲线即为PR曲线(如下图,来自南京大学周志华教授主编的《机器学习》第二章,p31)。
PR曲线示意图
###计算方法
我们将模型所提的显著性目标图谱S进行二值化得到M,然后通过下面公式逐像素对比M与Ground-truth来计算Precision值与Recall值[1]:
这里写图片描述
如下图所示,模型输出的显著性图片与Ground-truth图在一般情况下都不会完全相同,即我们模型所提取出的显著性图mask出了正确被分类的目标(TP)与背景(TN)外,会将一部分本应该是背景的区域划到目标区域(FP),将一部分本应该是目标的区域划为背景区域(FN)。
PR曲线示意图
通过统计我们获得TP、TN、FP、FN的数目,然后利用下式来计算Precision值与Recall值。
这里写图片描述
###阈值选取
将输出图片S进行二值化时,阈值选择为从0到255,每取一个阈值,即可对所有输出图S算得一组相对应的Precision值与Recall值。最后将所有图像在该阈值下的Precision值与Recall值分别求平均,最后将会得到256对P,R值,以Recall为横坐标,Precision为纵坐标绘制曲线图即可得到precision-recall (PR)曲线。

二、Matlab代码

代码块语法遵循标准markdown代码,例如:

function PRcurveHanle
%本程序的功能是对显著性特征提取的结果绘制PR曲线。
%by hanlestudy@163.com
clc
clear
close all
%读取数据库
imnames=dir(path_output);  
imnames2=dir(path_target);  
num=length(imnames);
Precision=zeros(256,num);
Recall=zeros(256,num);
TP=zeros(256,num);
FP=zeros(256,num);
FN=zeros(256,num);
MAES=zeros(num,1);
for j=1:num
    Target=imread(imnames2(j).name);%读图
    Output=imread(imnames(j).name);
    target=rgb2gray(Target);        %二值化ground-truth
    target0=(target)>0;
    for i=0:255
        %以i为阈值二值化Output
        output0=(Output)>i;
        output1=output0*2;
        TFNP=zeros(256,256);
        x=1;
        TFNP(:,:)=output1(:,:,x)-target0;
        TP(i+1,j)=length(find(TFNP==1));
        FP(i+1,j)=length(find(TFNP==2));
        FN(i+1,j)=length(find(TFNP==-1));
        Precision(i+1,j)=TP(i+1,j)/(TP(i+1,j)+FP(i+1,j));
        Recall(i+1,j)=TP(i+1,j)/(TP(i+1,j)+FN(i+1,j));
    end
    j
end
P=mean(Precision,2);
R=mean(Recall,2);
figure,plot(R,P)  

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

##参考文献
[1]: A. Borji, M.-M. Cheng, H. Jiang, and J. Li. Salient object detection: A benchmark. IEEE TIP, 24(12):5706–5722, 2015.

多分类问题的PR曲线是针对每一种类别计算对应的精确率和召回率,从而得到多组(P, R)值,其中P代表精确率,R代表召回率。通过绘制这些点,可以得到多分类的PR曲线。 在PR曲线中,横轴表示召回率R,纵轴表示精确率P。每一个类别对应的PR曲线可以画成一条曲线,不同类别的曲线可以在同一个坐标系中绘制出来。曲线的形状可以反映出每个类别的分类性能,例如,曲线越接近上方的左上角,表示该类别的分类性能越好。 需要注意的是,由于绘制多分类PR曲线需要计算每个类别的精确率和召回率,因此需要有多组(P, R)值。在实际应用中,可以使用各种分类算法来获得每个类别的精确率和召回率,然后将这些值绘制成PR曲线,以评估模型在多分类问题中的性能。 绘制多分类PR曲线的过程相对较复杂,需要对每个类别进行相关的计算和绘制。如果你需要更详细的步骤和方法,可以参考相关的学术文献或资料。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python多分类问题pr曲线绘制(含代码)](https://blog.csdn.net/WYKB_Mr_Q/article/details/120964923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐乐lelele

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值