精华内容
下载资源
问答
  • IOU计算公式

    千次阅读 2020-06-01 14:06:36
    集合 A 和集合 B 的并集包括了上面 3 种颜色区域。 集合 C 是集合 A 与集合 B 的交集。 在目标检测当中,IOU 就是上面两种集合的比值。 A \cup BA∪B其实就是A + B - CA+B−C。 那么公式可以转变为: IOU = \...

    在目标检测当中,有一个重要的概念就是 IOU。一般指代模型预测的 bbox 和 Groud Truth 之间的交并比。

    何为交并比呢?

    IOU = \frac{A\cap B}{A\cup B}IOU=A∪BA∩B​

    在这里插入图片描述

    集合 A 和集合 B 的并集包括了上面 3 种颜色区域。

    集合 C 是集合 A 与集合 B 的交集。

    在目标检测当中,IOU 就是上面两种集合的比值。

    A \cup BA∪B 其实就是 A + B - CA+B−C。

    那么公式可以转变为:
    IOU = \frac{A \cap B}{A + B - (A \cap B)}IOU=A+B−(A∩B)A∩B​

    IOU 衡量两个集合的重叠程度。

    • IOU 为 0 时,两个框不重叠,没有交集。
    • IOU 为 1 时,两个框完全重叠。
    • IOU 取值为 0 ~ 1 之间的值时,代表了两个框的重叠程度,数值越高,重叠程度越高。

    在 2D 目标检测当中,因为 bbox 是矩形,所以很容易求得 IOU。

    方框 A 和 B 相交,典型的情况如下:

    在这里插入图片描述
    A 和 B 的面积容易求得,C 的面积稍微繁琐一点,但耐心细致的话可以求得。

    如果利用数学思维,细心整理,可以发现面积 C 只需要求得边长的乘积就好,即使 A 和 B 的位置是相对的,但稍加变换也能够求出。

    如果以 W 代表 A 和 B 的交集 C 的 x 轴方向上的边长,那么有

    W = min(A.x_{1},B.x_{1}) - max(A.x_{0},B.x_{0})W=min(A.x1​,B.x1​)−max(A.x0​,B.x0​)

    同理,

    H = min(A.y_{1},B.y_{1}) - max(A.y_{0},B.y_{0})H=min(A.y1​,B.y1​)−max(A.y0​,B.y0​)

    大家仔细观察上面的对应关系,可以发现公式是成立的。这个公式的推导并不难,无非是 4 个顶点的坐标的相对位置变换,大家可以自行琢磨。

    如果 A 与 B 根本就不相交。
    在这里插入图片描述
    这个时候可以发现 W <= 0 或 H <= 0.

    下面是 Python 代码。

    class BBox:
        def __init__(self,x,y,w,h):
            self.x = x
            self.y = y
            self.w = w
            self.h = h
    
    def iou(a,b):
    
        assert isinstance(a,BBox)
        assert isinstance(b,BBox)
    
        area_a = a.w * a.h
        area_b = b.w * b.h
    
        w = min(b.x+b.w,a.x+a.w) - max(a.x,b.x)
        h = min(b.y+b.h,a.y+a.h) - max(a.y,b.y)
    
        if w <= 0 or h <= 0:
            return 0
    
        area_c = w * h
    
        return area_c / (area_a + area_b - area_c)
    
    
    
    if __name__ == '__main__':
    
        a = BBox(1,1,4,5)
        b1 = BBox(1,1,4,5)
        b2 = BBox(5,1,4,5)
        b3 = BBox(3,2,3,6)
    
    
        print("iou ",iou(a,b1))
        print("iou ",iou(a,b2))
        print("iou ",iou(a,b3))
    

    运行结果如下:

    iou  1.0
    iou  0
    iou  0.26666666666666666

    再加上个DIOU  等等吧

    还有GIOU相比iou的优点 哈哈

    https://www.cnblogs.com/dengshunge/p/12252820.html 

    展开全文
  • 协同过滤相似度计算

    千次阅读 2018-08-27 20:17:48
    (1)传统的杰卡德相似度计算公式如下,  其中A,B可以为不同用户的购物品类,  当用户量特别大的时候,导致计算复杂度比较高,因为直接进行了笛卡尔积运算,这时候可能没有办法进行运算。优化方法如下:  ...

       (1)传统的杰卡德相似度计算公式如下,

     其中A,B可以为不同用户的购物品类,

            当用户量特别大的时候,导致计算复杂度比较高,因为直接进行了笛卡尔积运算,这时候可能没有办法进行运算。优化方法如下:

         扫描整个品类,统计用户A和B共同出现的次数num_A_B,统计用户A和B出现的总次数num_A,num_B,A和B的并集为num_A+num_B-num_A_B

     

    即:可以用两个用户物品长度的倒数相乘,再乘以相同物品的个数。程序执行的时候,可以循环品类,对应每一个品类,每个的参数为用户物品的倒数,两个用户的乘积即为在该品类下的值,扫描整个品类,把相应的值相加即为近似的,可以比较不同用户之间的相似度。

      (2)使用基于内容推荐算法的思想:得到用户A的向量表示(出现某种物品,则在相应的位置为1,否则为0),得到用户B的向量表示,使用余弦相似度计算公式计算。

     

    这两种方式都可以使用map-reduce思想进行运算,加速计算过程

     

    展开全文
  • 容斥定理,皮克公式

    2018-02-09 20:04:00
    容斥定理:在计算集合的并集的时候,我们经常需要减去重复的部分。但是怎么减比较麻烦。容斥定理就是解决这类问题。 内容: 比如: 皮克公式: 1、如何求多边形面积: 例: 思路:按顺序两点求叉积。 S...

    (来源:哈工大算法培训)

    容斥定理:在计算集合的并集的时候,我们经常需要减去重复的部分。但是怎么减比较麻烦。容斥定理就是解决这类问题。

    内容:

     

    比如:

     

    皮克公式:

    1、如何求多边形面积:

    例:

    思路:按顺序两点求叉积。

    S=abs(1/2*((x1*y2-x2*y1)+.......+(xk*yk+1-xk+1*yk)+.........+(xn*y1-x1*yn)))。

    由于计算的时候可能因为顺逆时针的不同而产生正负。所以加上一个abs。

     

    2、求多边形边上的整数点。

     

    3、

     

    适用于格点图。

     

    转载于:https://www.cnblogs.com/ISGuXing/p/8419967.html

    展开全文
  • 计算矩阵交并比 C++代码

    千次阅读 2018-06-04 14:34:39
    交并比(Intersection-over-Union,IoU),目标检测中使用的一个概念,是产生的候选框(candidate bound)与原标记框(ground truth ...计算公式:def calculateIoU(candidateBound, groundTruthBound): cx1 = can...

    交并比(Intersection-over-Union,IoU),目标检测中使用的一个概念,是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值。最理想情况是完全重叠,即比值为1。


    计算公式:

    #include"function.h"
    #include"roi.h"
    double calculateIoU(roi& candidateBound, roi& groundTruthBound)//计算交并比
    {
    	int cx1 = candidateBound.getX();
    	int cy1 = candidateBound.getY();
    	int cx2 = candidateBound.getX() + candidateBound.getWidth();
    	int cy2 = candidateBound.getY() + candidateBound.getHeight();
    
    	int gx1 = groundTruthBound.getX();
    	int gy1 = groundTruthBound.getY();
    	int gx2 = groundTruthBound.getX() + groundTruthBound.getWidth();
    	int gy2 = groundTruthBound.getY() + groundTruthBound.getHeight();
    
    	double carea = (cx2 - cx1) * (cy2 - cy1); //C的面积
    	double garea = (gx2 - gx1) * (gy2 - gy1);//G的面积
    
    	int x1 = max(cx1, gx1);
    	int y1 = max(cy1, gy1);
    	int x2 = min(cx2, gx2);
    	int y2 = min(cy2, gy2);
    	int w = max(0, x2 - x1);
    	int h = max(0, y2 - y1);
    	int area = w * h;//C∩G的面积
    
    	double iou = area / (carea + garea - area);
    
    	return iou;
    }
    


    展开全文
  • 深度学习——mAP 计算

    2021-01-03 22:04:36
    在中学数学中,我们学习了交集、并集,而在深度学习中,使用交并的概念设计了交并比IoU用以评估预测质量,简单来说就是计算预测框与标注框的交集面积、并集面积,当IoU值越大时,则表明预测结果与标注结果越接近。...
  • 相似度计算之Jaccard系数

    万次阅读 2018-11-13 10:23:22
    给定两个集合A,B,Jaccard 系数定义为A与B交集的大小与A与B并集的大小的比值,定义如下: 当集合A,B都为空时,J(A,B)定义为1。 与Jaccard 系数相关的指标叫做Jaccard 距离,用于描述集合之间的不相似度。...
  • 公式:有字符串A和字符串B,A和B所含字符的交集/A和B所含字符的并集,就是两句话的相识度。 2. 编辑距离 公式:有字符串A和B, 字符串A需要变成字符串B需要使用的编辑的步数N,编辑的方式可以是增加,删除, 字符串A...
  • 计算文本相似度的几种方法

    万次阅读 2017-11-08 10:47:27
    这种相似度计算方式相对简单,原理也易于理解,就是计算单词集合之间的交集和并集大小的比例,该值越大,表示两个文本越相似。在涉及到大规模并行计算时,该方法效率上有一定的优势。 Jaccard 相似度公式: ...
  • 这一概念来源于数学中的集合,用来描述两个集合AAA和BBB之间的关系,它等于两个集合的交集里面所包含的元素个数,除以它们的并集里面所包含的元素个数,具体计算公式如下: IoU=A∩BA∪BIoU = \frac{A\cap B}{A \cup...
  • 语义分割代码阅读---评价指标mIoU的计算

    万次阅读 多人点赞 2019-07-01 21:55:22
    1. 语义分割IoU的定义 传统意义上的IoU(Intersection over Union,交并比) 直观表示: 公式: 语义分割中的IoU 在语义分割的问题中,这两个集合为真实值(ground truth)和预测值(predicted...在每个类上计算Io...
  • 8 -*-importjiebaimportjieba.analyseimportmathdefsentence_resemble():'''计算两个句子的相似度:1,将输入的两个句子分词2,求分词后两句子的并集(去重)3,计算两句子各自词频4,求词频向量5,套用余弦定理公式求...
  • [讲解]容斥原理

    2019-10-05 14:52:27
    计算几个集合的并集的大小时可以先加上所有单个集合,然后减去所有的两个集合的交集,又加上所有三个集合的交集,又减去所有四个集合的交集。。。。。最后就可以求出这n个集合的并集公式说明】 【举例说明】 ...
  • darknet源码剖析(五)box_iou详细分析

    千次阅读 2019-02-05 16:25:49
    在darknet中iou的计算是调用box_iou函数(box.c文件) float box_iou(box a, box b) ...iou的计算公式比较简单,交集面积/并集面积。 先来看并集面积计算方式: float box_union(box a, box b) { f...
  • 【语义分割】语义分割评估指标mIOU

    万次阅读 2019-05-22 15:47:33
    语义分割评估指标计算公式可参考:基于深度学习的图像语义分割技术概述之5.1度量标准 mIOU定义 Mean Intersection over Union(MIoU,均交并比):为语义分割的标准度量。其计算两个集合的交集和并集之比,在语义分割...
  • 说大白话就是求几个集合的并集,要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所 有两个集合相交的部分,再加上所有三个集合相交的部分,再减去所有四个集合相交的部分...依此类推,...
  • IOU的计算公式如下: 即预测框与真实框的交并比。先计算交集的面积,在计算并集的面积,然后求两者的比值。 计算代码如下: 其中ground truth的坐标为(x0,y0,w0,h0),bounding box的坐标分别为(x1,y1,w1,h1) W = ...
  • 深度学习中IOU的含义

    2020-06-19 15:55:30
    IOU的含义: 衡量真实目标框与实际检测目标框差异的一种参数。 计算公式: IoU=真实目标框与实际检测目标框的交集/真实目标框与实际检测目标框的并集
  • 该代码核心为证据距离公式里的D矩阵,通过编写 该代码可以计算各个子集的交集除以并集的情况 拓展性高 适合新手理解和公式理解 推广性高
  • [NLP --- 11] 雅卡尔距离

    2020-04-16 17:47:26
    一.Jaccard系数 ... 对于给定的集合A和B,Jaccard系数等于 A与B的交集 和 A与B的并集 的比值,计算公式如下: 二.Jaccard距离 与Jaccard系数相关的衡量指标为Jaccard距离,用于描述集合之间的不相似度。...
  • 首先直观上来看 IoU 的计算公式: 由上述图示可知,IoU 的计算综合考虑了交集和并集,如何使得 IoU 最大,需要满足,更大的重叠区域,更小的不重叠的区域。 两个矩形窗格分别表示: 左上点、...
  • IOU, GIOU, DIOU, CIOU

    2020-11-09 17:28:11
    计算公式如下: 并集面积 = 面积A + 面积B - 交集面积 交集面积 = 框A与框B较大的X1,Y1和框A与框B较小的X2,Y2组成的框的面积 第二种IOU在NMS种可以去除大框套小框的中的小框 但这两种IOU都存在弊端就是当预测框...
  • IOU理解

    2018-12-28 16:21:37
    1、概念 IOU(Intersection-over-Union)是目标检测中使用的一个概念,是产生的候选框(candidate bounding box)与真实标记的框(ground truth ...3、计算公式   4、IOU计算的Python实现 def cacluteIOU(...
  • 语义分割评估指标MIOU

    千次阅读 2019-10-12 14:47:24
    1、MIOU定义 Mean Intersection over Union(MIoU,均交并比):为语义分割...计算公式如下: i表示真实值,j表示预测值,p_{ij}pij​表示将i预测为j。 2、直观理解 MIoU:计算两圆交集(橙色部分)与两圆并...
  • tanamoto系数

    2018-03-08 14:49:47
    用于计算两个集合之间的相关度,计算公式为交集/并集。Python代码:def tanamoto(v1, v2): c1, c2, shr = 0, 0, 0 for i in range(len(v1)): if v1[i] != 0: c1 += 1 # 在 v1 if v2[i] != 0: c2 += 1 # 在 v2 ...
  • 容斥原理是概率统计中的一条定理,它主要用来求一些集合的并集,由于这些集合可能有交集,所以它们的并集可能不是简单的相加减,而容斥原理,就可以很好地用数学公式的形式来求得集合的并集 容斥原理  ...
  • 交并比(Intersection-over-Union,IoU),目标检测中使用的一个概念,是产生的候选框(candidate bound)与原标记框(ground ...计算公式: Python实现代码: def calculateIoU(candidateBound, groundTruthBound...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

并集计算公式