当前位置: 首页 > article >正文

【Python 深度学习】1D~3D iou计算

一维iou

二维

import numpy as npdef iou_1d(set_a, set_b):# 获得集合A和B的边界 x1, x2 = set_ay1, y2 = set_b# 计算交集的上下界low = max(x1,y1)high - min(x2, y2)# 计算交集if high - low < 0:inter = 0else:inter = high - low# 计算并集union = (x2 -x1) + (y2 - y1) - inter# 计算IoUiou = inter / unionreturn ioudef iou_2d(box1,box2):'''二维IoU的计算:注意图像坐标系的原点一般在左上角,x方向朝右,y方向朝下box的表示:[top, left, bottom, right]box的表示分别对应:[y1,x1,y2,x2]'''in_h = min(box1[2],box2[2]) - max(box1[0],box2[0])in_w = min(box1[3],box2[3]) - max(box1[1],box2[1])inter = 0 if in_h  < 0 or in_w < 0 else in_h * in_wunion = (box1[2] - box1[0]) * (box1[3] - box1[1]) +  (box2[2] - box2[0]) * (box2[3] - box2[1])  - interiou = inter / unionreturn ioudef  iou_3d(box1,box2):'''3D IoU计算box表示形式:[x1,y1,z1,x2,y2,z2] 分别是两对角点的坐标'''in_w = min(box1[3],box2[3]) - max(box1[0],box2[0])in_l = min(box1[4],box2[4]) - max(box1[1],box2[1])in_h = min(box1[5],box2[5]) - max(box1[2],box2[2])inter = 0 if in_w < 0 or in_l < 0 or in_h < 0 else in_w * in_l * in_hunion = (box1[3] - box1[0]) * (box1[4] - box1[1]) * (box1[5] - box1[2]) + (box2[3] - box2[0]) * (box2[4] - box2[1]) * (box2[5] - box2[2])  - interiou = inter / unionreturn iouif __name__ == '__main__':box1 = [0,0,0,1,1,1]box2 = [0.5,0.5,0.5,1.5,1.5,1.5]print(iou_3d(box1,box2))

相关文章:

【Python 深度学习】1D~3D iou计算

一维iou 二维 import numpy as npdef iou_1d(set_a, set_b):# 获得集合A和B的边界 x1, x2 set_ay1, y2 set_b# 计算交集的上下界low max(x1,y1)high - min(x2, y2)# 计算交集if high - low < 0:inter 0else:inter high - low# 计算并集union (x2 -x1) (y2 - y1) - in…...

java23

1.美化界面 添加背景图片 所以我们添加背景图片要放在后面添加 添加图片边框 绝对路径&#xff1a; 相对(模块)路径&#xff1a; 第一个是绝对路径&#xff0c;第二个是相对路径&#xff0c;但是斜杠的方向不对 总结&#xff1a; 2.图片移动 先实现KeyListener接口&#xf…...

嵌入式工程师常用软件

1、 Git Git 是公司常用的版本管理工具&#xff0c;人人都要会。在线的 git 教程可以参考菜鸟教程&#xff1a; https://www.runoob.com/git/git-tutorial.html 电子书教程请在搜索栏搜索&#xff1a; git Git 教程很多&#xff0c;常用的命令如下&#xff0c;这些命令可…...

LitCTF2025 WEB

星愿信箱 使用的是python&#xff0c;那么大概率是ssti注入 测试{{5*5}} 发现需要包含文字&#xff0c;那么添加文字 可以看到被waf过滤了&#xff0c;直接抓包查看参数上fenjing 可以看到这里是json格式&#xff0c;其实fenjing也是支持json格式的 https://github.com/Marv…...

Redisson WatchDog会一直续期吗?

取决于加锁的方式。 Lock 方法有2种形式&#xff0c;如果指定了leaseTime &#xff08;且不为-1&#xff09;&#xff0c; 不会启用watchDog机制. 如果没有指定leaseTime&#xff0c; 则会启动watchDog机制&#xff0c;且会一直续期&#xff0c;除非线程宕调或者续期失败。 p…...

Linux 下VS Code 的使用

这里以创建helloworld 为例。 Step 0:准备工作&#xff1a; Install Visual Studio Code. Install the C extension for VS Code. You can install the C/C extension by searching for c in the Extensions view (CtrlShiftX). Step 1: 创建工作目录 helloworld&#xff0…...

Android开发namespace奇葩bug

Android开发namespace奇葩bug namespace "com.yibanxxx.yiban"buildFeatures {buildConfig true}namespace 对应你的module的清单下的package...

watchEffect

在处理复杂异步逻辑时&#xff0c;Vue 3 的 watchEffect 相比传统的 watch 具有以下优势&#xff1a; 1. 自动追踪依赖 watchEffect 会自动收集其回调中使用的所有响应式依赖&#xff0c;无需手动指定监听源&#xff1a; import { ref, watchEffect } from vue;const count …...

Qt 布局管理器的层级关系

1、HomeWidget.h头文件&#xff1a; #ifndef HOMEWIDGET_H #define HOMEWIDGET_H#include <QWidget> #include <QPushButton> #include <QVBoxLayout> #include <QHBoxLayout>class HomeWidget : public QWidget {Q_OBJECTpublic:HomeWidget(QWidget …...

Android 之 kotlin 语言学习笔记一

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/learn?hlzh-cn 1、变量声明 Kotlin 使用两个不同的关键字&#xff08;即 val 和 var&#xff09;来声明变量。 val 用于值从不更改的变量。使用 val 声明的变量无法重新赋值。var 用于值可以更改的变量…...

maven模块化开发

使用方法 将项目安装到本地仓库 mvn install 的作用 运行 mvn install 时&#xff0c;Maven 会执行项目的整个构建生命周期&#xff08;包括 compile、test、package 等阶段&#xff09;&#xff0c;最终将构建的 artifact 安装到本地仓库&#xff08;默认路径为 ~/.m2/repos…...

为什么要使用stream流

总的来说就是 它支持链式调用&#xff0c;方便 不会修改原始数据源&#xff0c;而是生成一个新的流或结果 中间操作不会立即执行&#xff0c;只有在终端操作触发时才会真正执行 注意事项 无状态操作&#xff1a;Stream 操作应该是无状态的&#xff0c;不要依赖外部变量的状…...

语义分割的image

假设图像的尺寸为 3x3&#xff0c;并且是 RGB 图像&#xff08;有 3 个通道&#xff09;。每个通道的像素值范围为 [0, 1]&#xff0c;我们将构造一个 batch_size 2 的图像批次。 Image: tensor([[[[0.1347, 0.4583, 0.7102], # 第一张图像的红色通道[0.1774, 0.0328, 0.308…...

云原生安全之网络IP协议:从基础到实践指南

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 IP协议&#xff08;Internet Protocol&#xff09;是互联网通信的核心协议族之一&#xff0c;负责在设备间传递数据包。其核心特性包括&…...

C++——QT 文件操作类

QFile 概述 QFile是Qt框架中用于文件操作的类&#xff08;位于QtCore模块&#xff09;&#xff0c;继承自 QIODevice&#xff0c;提供文件的读写、状态查询和路径管理功能。它与 QTextStream、QDataStream 配合使用&#xff0c;可简化文本和二进制数据的处理&#xff0c;并具备…...

【排错】kylinLinx环境python读json文件报错UTF-8 BOM

kylin Linux环境python读json文件报错UTF-8 BOM 报错描述&#xff1a; windows环境下,python代码读取json文件正常&#xff0c;但是sftp到linux环境下 报错信息&#xff1a; json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column …...

[spring] spring 框架、IOC和AOP思想

目录 传统Javaweb开发的困惑 loC、DI和AOP思想提出 Spring框架的诞生 传统Javaweb开发的困惑 问题一&#xff1a;层与层之间紧密耦合在了一起&#xff0c;接口与具体实现紧密耦合在了一起 解决思路&#xff1a;程序代码中不要手动new对象&#xff0c;第三方根据要求为程序提…...

LInux—shell编程

一、Shell 编程核心特性 解释型语言 无需编译&#xff0c;直接由 bash、sh 等解释器逐行执行。 类似 PHP 的解释执行&#xff0c;不同于 C 的编译型。 系统命令集成 可直接调用 Linux 命令&#xff08;如 ls、grep、awk&#xff09;&#xff0c;实现系统管理自动化。 与 C/…...

尚硅谷redis7 37-39 redis持久化之AOF简介

37 redis持久化之AOF简介 AOF 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工…...

GitLab 备份所有仓库(自动克隆)

一、准备工作 1. 环境要求 已安装 Git&#xff08;版本 2.10&#xff09;本地磁盘空间充足&#xff08;根据仓库总大小预估&#xff09;已配置 SSH 密钥到 GitLab&#xff08;推荐方式&#xff09; 2. 获取 GitLab API 访问权限 登录 GitLab&#xff0c;点击右上角头像 → …...

[浏览器]缓存策略机制详解

在做页面性能优化的时候&#xff0c;有一个点容易被忽略&#xff0c;那就是资源缓存优化。 浏览器里缓存策略分为强缓存&#xff0c;协商缓存以及不缓存&#xff0c;每个缓存策略都有其适用的优化场景。 下面为大家详解何为强缓存&#xff0c;协商缓存 先说结论强缓>协商&g…...

Vue修饰符全解析

目录 一、事件修饰符 二、按键修饰符 三、系统修饰键 四、表单修饰符 五、鼠标修饰符 六、特殊修饰符 七、自定义修饰符 使用建议 一、事件修饰符 <!-- 阻止冒泡 --> <button click.stop"handleClick">点击测试</button><!-- 阻止默认行…...

OpenCV CUDA 模块图像过滤-----创建一个计算图像导数的滤波器函数createDerivFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::createDerivFilter 是 OpenCV CUDA 模块中的一个工厂函数&#xff0c;用于创建一个计算图像导数的滤波器。这个滤波器可以用来计算图像…...

计算机视觉与深度学习 | Python实现CEEMDAN-ABC-VMD-DBO-CNN-LSTM时间序列预测(完整源码和数据)

以下是一个结合CEEMDAN、ABC优化VMD、DBO优化CNN-LSTM的完整时间序列预测实现方案。该方案包含完整的数据生成、算法实现和模型构建代码。 完整实现代码 import numpy as np import pandas as pd from PyEMD import CEEMDAN from vmdpy import VMD from sklearn.preprocessing…...

AWS関連職種向け:日本語面接QA集

1. 自己紹介&#xff08;じこしょうかい&#xff09; Q&#xff1a;簡単に自己紹介をお願いします。 A&#xff1a; はい、〇〇と申します。これまで約4年間、主にAWSを基盤としたインフラ設計・構築・運用に従事してまいりました。VPCやEC2、RDS、S3などの基本サービスの設計…...

【Macos】安装前端环境rust+node环境

Macos 安装前端环境 1、findar 新建目录 projects 2、安装brew 使用中科大镜像, 手动配置path 3、brew install git 4、 git clone githttp://10.10.9.201/software/dreame_sorting_app.git 5、安装vscode/hbuilderx/node 6、rustup切换镜像并安装https://rsproxy.cn/#getStart…...

(01)华为GaussDB((基于PostgreSQL))高斯数据库使用记录,dbeaver客户端配置高斯驱动,连接高斯数据库

高斯数据库是华为推出的一款基于PostgreSQL的企业级数据库产品&#xff0c;客户端使用通用的dbeaver dbeaver客户端配置高斯驱动 建议使用 dbeaver24.3.1及以上客户端&#xff0c;选择模式后执行sql会绑定模式名&#xff0c;如果使用dbeaver23.2版本&#xff0c;选择模式后执…...

ARM Linux远程调试

准备 虚拟机既能ping通开发板,又能ping通外网,还要能ping通Windows主机(如果你有上位机通信(tftp、vsftp、ssh)的需求) VMware 添加网络适配器2用作桥接网卡,原有的网络适配器保持为NAT模式 打开虚拟网络编辑器,配置VMnet0为桥接模式,外部连接设置为Realtek PCIe G…...

day24Node-node的Web框架Express

1. Express 基础 1.1 什么是Express node的web框架有Express 和 Koa。常用Express 。 Express 是一个基于 Node.js 的快速、极简的 Web 应用框架,用于构建 服务器端应用(如网站后端、RESTful API 等)。它是 Node.js 生态中最流行的框架之一,以轻量、灵活和易用著称。 …...

Webpack和Vite构建工具有什么区别?各自的优缺点是什么

Webpack 和 Vite 是两种主流的前端构建工具,分别代表了不同的设计理念和技术路线。以下是它们的核心区别和优缺点对比: 一、核心区别 维度WebpackVite设计理念基于打包(Bundle-Based)基于原生 ESM(Native ESM)开发模式全量打包后启动按需编译 + 浏览器直接加载 ESM构建工…...