import random
import timeimport numpy as np"""
#单个iou
"""
def compute_iou2(rec1, rec2):areas1 = (rec1[3] - rec1[1]) * (rec1[2] - rec1[0])areas2 = (rec2[3] - rec2[1]) * (rec2[2] - rec2[0])left = max(rec1[1],rec2[1])right = min(rec1[3],rec2[3])top = max(rec1[0], rec2[0])bottom = min(rec1[2], rec2[2])w = max(0, right-left)h = max(0, bottom-top)return w*h/(areas2+areas1-w*h)def Ious(bbox, gt):assert bbox.shape[0]>0, 'bbox len must>0'assert gt.shape[0]>0, 'bbox len must>0'""":param bbox: (n, 4):param gt: (m, 4):return: (n, m)numpy 广播机制 从后向前对齐。 维度为1 的可以重复等价为任意维度eg: (4,3,2)   (3,2)  (3,2)会扩充为(4,3,2)(4,1,2)   (3,2) (4,1,2) 扩充为(4, 3, 2)  (3, 2)扩充为(4, 3,2) 扩充的方法为重复广播会在numpy的函数 如sum, maximun等函数中进行"""lt = np.maximum(bbox[:, None, :2], gt[:, :2])  # left_top (x, y)rb = np.minimum(bbox[:, None, 2:], gt[:, 2:])  # right_bottom (x, y)wh = np.maximum(rb - lt , 0)                # inter_area (w, h)inter_areas = wh[:, :, 0] * wh[:, :, 1]        # shape: (n, m)box_areas = (bbox[:, 2] - bbox[:, 0] ) * (bbox[:, 3] - bbox[:, 1] )gt_areas = (gt[:, 2] - gt[:, 0] ) * (gt[:, 3] - gt[:, 1] )IoU = inter_areas / (box_areas[:, None] + gt_areas - inter_areas)return IoUif __name__ == '__main__':data_a=[[1,1,3,3]]data_a=[]data_b=[[1,1,2,2],[2,2,4,4],[1,1,3,3],[3,3,4,4]]ious= Ious(np.array(data_a), np.array(data_b))print('IoU res')print(ious.max())ious=[]start = time.time()for data in data_b:iou = compute_iou2(data_a[0], data)ious.append(iou)print('compute_iou2 res')print(ious)

numpy批量iou相关推荐

  1. pytorch 批量 iou

    目录 pytorch批量max pytorch批量iou python 单个iou,批量iou pytorch批量max a = torch.Tensor([[random.randint(0, 20 ...

  2. Python遥感图像处理应用篇(十九):GDAL +numpy批量对遥感图像外围背景值进行处理

    1.问题描述 最近下载了一些遥感影像数据,这些数据都包含大量的外围背景数据,如下图所示: 外围背景值都为0值. 本文描述的是采用python批量处理外围背景,只保留最小外围背景区域. 如下图: 2.实 ...

  3. pytorch python 交并比 iou

    这里面有python单个 iou 和批量iou: pytorch 批量 iou_jacke121的专栏-CSDN博客 import torchdef intersect(box_a, box_b):& ...

  4. python pip安装包导入导出及下载包(只下载不安装)

    1.将pip安装的包导出导文件列表 pip freeze > requirements.txt 2.pip批量安装包及通过列表文件安装 pip install -r requirements.t ...

  5. ArcPy计算多影像有效像元的平均值

    遥感数据处理系列 一些项目及科研中遇到的小需求,一方面记录自己的学习历程,另一方面帮助大家学习.本系列文章的开发环境为:ArcGIS 10.2.2 + Python 2.7.ENVI 5.3 + ID ...

  6. 一文汇总 NMS,持续更新~~

    转载请注明作者和出处: http://blog.csdn.net/john_bh/ 文章目录 1. NMS 1.1 什么是NMS 1.2 为什么要用 NMS 1.3 如何使用 NMS 2. NMS 提 ...

  7. python实现音频文件的批量拼接(soundfile+numpy)

    import os import soundfile as sf import numpy as np#定义转换采样率的函数,接收3个变量:原音频路径.重新采样后的音频存储路径.目标采样率 def w ...

  8. ubuntu16.04下使用YOLOV3训练自己做的VOC数据集(VOC数据集制作+模型训练步骤+训练参数解析和问题解决+训练日志可视化(loss、IOU)+模型测试(单张、摄像头、批量测试))

    前序 1.环境配置 请自行参考其他博客 本机环境 ubuntu16.04 python3 英伟达显卡驱动:nvidia-396 OpenCV3.4.5 CUDNN7.0.5 CUDA9.0 2.ubu ...

  9. python records_python – Numpy到TFrecords:有没有更简单的方法来处理来自tfrecords的批量输入?...

    我的问题是如何从多个(或分片)tfrecords获得批量输入.我已经阅读了示例https://github.com/tensorflow/models/blob/master/inception/in ...

最新文章

  1. 创建Swap交换空间
  2. 刚子扯个蛋 说下增、删、改、查
  3. postgresql语句
  4. 音视频技术开发周刊 | 195
  5. 假期不能错过的音视频领域技术进展
  6. 春节特惠活动┃数学无用论??我们欠孩子真正的数学阅读
  7. vue-awesome-swiper缩略图无法联动的问题
  8. java的svn插件maver_项目版本管理工具---MAVENSVN
  9. php中http有哪些状态码,http状态码是什么意思?http常用状态码有哪些
  10. 4999元起!iQOO 9 Pro赛道版上架:迄今为止成本最高手机后盖
  11. 【PHP学习】—利用ajax原理实现密码修改功能(九)
  12. 130242014029-黄超强-实验一
  13. 理解CSS3属性transition
  14. 流畅的python和cookbook学习笔记(五)
  15. 船载电子海图系统(E C S )概述
  16. AutoJs学习-自动添加微信群好友
  17. 湿敏电阻CM-R / HR202应用 原理图 IO输出交流 AD采样
  18. svg图标四周有空隙
  19. 深算院入选“数字政府建设赋能计划”成员单位
  20. 企业与组织仍然没有实现无纸化的三大原因

热门文章

  1. gdb调试问题Missing separate debuginfos, use: debuginfo-install
  2. EditPlus正则表达式
  3. SMB文件共享及用户权限使用配置
  4. Linux开机详细流程
  5. 关于对cpu的理解和kvm虚拟机到物理cpu的绑定
  6. jdbctemplate oracle xml文件,Spring JDBCTemplate使用JNDI数据源
  7. linux配置ssh密码远程登录,配置ssh 无需密码即可登录远程服务器
  8. matlab的NLP功能,pyhanlp 共性分析与短语提取内容详解
  9. python数据分析类库_python数据分析类库系列-Pandas入门之数据结构Series
  10. kprobes/kretprobes 在 bcc 程序中的使用