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

     

  • 相关阅读:
    java+opencv实现图像灰度化
    java实现高斯平滑
    hdu 3415 单调队列
    POJ 3368 Frequent values 线段树区间合并
    UVA 11795 Mega Man's Mission 状态DP
    UVA 11552 Fewest Flops DP
    UVA 10534 Wavio Sequence DP LIS
    UVA 1424 uvalive 4256 Salesmen 简单DP
    UVA 1099 uvalive 4794 Sharing Chocolate 状态DP
    UVA 1169uvalive 3983 Robotruck 单调队列优化DP
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3073039.html
Copyright © 2011-2022 走看看