使用python如何实现借据计算

  介绍

本篇文章给大家分享的是有关使用python如何实现借据计算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

交叉在联盟(借据)是一种测量在特定数据集中检测相应物体准确度的一个标准.IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(边界框)的任务都可以用借据来进行测量。

借据分数是对象类别分割问题的标准性能度量[1]。给定一组图像,借据测量给出了在该组图像中存在的对象的预测区域和地面实况区域之间的相似性

计算两个矩形的交并比,通常在检测任务里面可以作为一个检测指标。你的预测bbox和groundtruth之间的差异,就可以通过借据来体现。

代码如下

# !/usr/bin/env python   utf - 8编码:      进口numpy np      & # 39;& # 39;& # 39;   函数说明:计算两个框的重叠面积   输入:   rec1第一个框xmin ymin xmax ymax   rec2第二个框xmin ymin xmax ymax   输出:   iouv重叠比例0没有   & # 39;& # 39;& # 39;   def compute_iou (rec1 rec2):      #每个矩形的计算区域   S_rec1=(rec1 [2]——rec1 [0]) * (rec1 [3]——rec1 [1]) # H1 * W1   S_rec2=(rec2 [2]——rec2 [0]) * (rec2 [3]——rec2 [1]) # H2 * W2      #计算sum_area   sum_area=S_rec1 + S_rec2 #总面积      #发现相交矩形的每条边   left_line=max (rec1 [0], rec2 [0])   right_line=min (rec1 [2], rec2 [2])   top_line=max (rec1 [1], rec2 [1])   bottom_line=min (rec1 [3], rec2 [3])      #判断有一个相交   如果left_line祝辞=right_line或top_line祝辞=bottom_line:   #打印(“没有重合区域“)   返回0   其他:   #打印(“有重合区域“)   相交=(right_line - left_line) * (bottom_line - top_line)   iouv=((交叉)/浮动浮动(sum_area -相交))* 1.0      返回iouv      & # 39;& # 39;& # 39;   函数说明:获取两组匹配结果   输入:   直肠车位   rectB车辆   threod重叠面积最小数值界限默认0.6   输出:   CarUse一维数组保存是否占用1占用0没有      & # 39;& # 39;& # 39;   def TestCarUse(直肠rectB threod=0.6,=0)调试:   # threod=0.8 #设定最小值   ALength=len(直肠)   BLength=len (rectB)      #创建保存匹配结果的矩阵   recIOU=np.zeros ((ALength BLength), dtype=浮动,订单=& # 39;c # 39;)   #用于记录车位能够使否占用   CarUse=np.zeros ((1、ALength) dtype=int,订单=& # 39;c # 39;)      因为我在范围(0,ALength):   BLength j的范围(0):   借据=compute_iou(直肠[我],rectB [j])   recIOU[我][j]=格式(借据,& # 39;.3f& # 39;)   如果iou>=threod:   CarUse[0,我]=1 #有一个超过匹配认为车位我被占用   如果调试==1:   打印(& # 39;- - - - -匹配矩阵——& # 39;)   打印(recIOU)   & # 39;& # 39;& # 39;   打印(& # 39;——车位占用情况——& # 39;)   因为我在范围(0,ALength):   味精=& # 39;车位& # 39;+ str (i) +“产生绯闻;+ str (CarUse[0][我])   打印(味精)   & # 39;& # 39;& # 39;   返回CarUse            if __name__==& # 39; __main__ # 39;:   #一代表车位   rectA1=(30, 70, 20)   rectA2=(70, 80, 20)   直肠=[rectA1 rectA2]   # B代表检测车辆   rectB1=(20、10, 35岁,20)   rectB2=(70年30日,15日,25)   rectB3=(70, 80, 20)   rectB=[rectB1、rectB2 rectB3]      #获取车位占用情况直肠车位rectB车辆0.6占面积最小比   rectB CarUse=TestCarUse(直肠,0.6,1)      打印(& # 39;——车位占用情况——& # 39;)   因为我在范围(0,len (CarUse) + 1):   味精=& # 39;车位& # 39;+ str (i) +“产生绯闻;+ str (CarUse[0][我])   打印(味精)

以上就是使用python如何实现借据计算,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

使用python如何实现借据计算