zoukankan      html  css  js  c++  java
  • Matlab图像处理:误拒率、误识率意义,计算等错误率的Matlab源码(网络首发)

          图像处理中经常有误拒率和误识率两个概念,今天简介下。

         误拒率,就是错误拒绝的意思,指的类内匹配。如果有10个志愿者的样本,每个志愿者20幅样本。那么相对于类内测试,比如对1号志愿者,同一类的这20幅图片之间,互相匹配,假设1:1的匹配,互相不重复能够进行(20*19)/2次。如果10个志愿者都进行这么测试,就是10*(20*19)/2次。这是总的类内匹配次数。预设定阈值为TH,如果匹配值th>TH就会错误拒绝

     

         误识率,指错误接受的概率,相对于类间匹配而言。不同的类之间进行的匹配,如果阈值th小于预设阈值TH,就会认为属于同一类,这种情况就是错误接受。

    计算公式如下:

          也可以参照http://ishare.iask.sina.com.cn/f/37004900.html这个论文里的57页和20页的介绍。

           因为FRR和FAR互相矛盾,所以当两者相等时的概率就是等错误率。当阈值为TH时,此时对应的FRR有个数值、FAR有个数值。这样得到一组对应的FRR和FAR,以FAR为横坐标,FRR为纵坐标画曲线,就是ROC曲线。再画y=x的曲线,两个曲线相交时对应的横坐标或纵坐标就是等错误率,这个时候对应的阈值就是最优的。

    典型的ROC曲线示意图:

           网上至今没有计算等错误率和画ROC的Matlab源码,我写了一个,仅供大家参考:

    核心代码如下:

    function out = YanEER(leinei, leijian)
    
    NGRA = length(leinei);   %类内测试的次数 对应误据率 FRR
    NIRA = length(leijian);  %类间测试的次数  对应误识率, FAR
    
    FRR = [];
    FAR = [];
    th = 0.1:0.02:0.55;  %阈值,一共xxx个
    for i=1:length(th)
        frr = sum(leinei>th(i))/NGRA;  %大于预设阈值的 就错误的拒绝了
        FRR=[FRR frr];
    
        far = sum(leijian<th(i))/NIRA; %小于阈值的  就错误的接受了
        FAR = [FAR far];
    
    end


         这里面的th是用来控制预设定阈值的,可以根据自己的需要设置。一般它跟你输入的参数的最小值和最大值有关系,也可以和这两个最值关联起来。另外,计算frr的时候也可以乘上100,这时坐标系就是(%)。大家灵活修改吧。

    源码下载:http://www.pudn.com/downloads542/sourcecode/graph/detail2238646.html

      -----------------------本文系原创,转载请注明作者:yanzi1225627

     

  • 相关阅读:
    分布式系统阅读笔记(六)-----间接通信
    分布式系统阅读笔记(六)-----间接通信
    分布式系统阅读笔记(六)-----间接通信
    分布式系统阅读笔记(七)-----操作系统的支持
    分布式系统阅读笔记(七)-----操作系统的支持
    分布式系统阅读笔记(七)-----操作系统的支持
    分布式系统阅读笔记(八)-----分布式对象和组件
    sizeof()
    void *
    strcpy函数的实现
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3073039.html
Copyright © 2011-2022 走看看