yolov9直接调用zed相机实现三维测距(python)

yolov9直接调用zed相机实现三维测距(python)

  • 1. 相关配置
  • 2. 相关代码
    • 2.1 相机设置
    • 2.2 测距模块
    • 2.2 实验结果

相关链接
此项目直接调用zed相机实现三维测距,无需标定,相关内容如下:

1. yolov4直接调用zed相机实现三维测距
2.yolov5直接调用zed相机实现三维测距(python)
3. yolov8直接调用zed相机实现三维测距(python)
4.具体实现效果已在哔哩哔哩发布,点击此链接跳转

本篇博文工程源码下载(麻烦github给个星星)
下载链接:https://github.com/up-up-up-up/zed-yolov9

附:Zed调用YOLOv7测距也已经实现,但是3060笔记本6G显存带不动,在大现存服务器上可以运行,可能是由于YOLOv7网络结构导致的,由于不具备普适性,就不再写相关文章了,有需要的可以仿照这个代码去改写

1. 相关配置

python==3.7
Windows-pycharm
zed api 具体配置见 (zed api 配置步骤)

2. 相关代码

2.1 相机设置

zed = sl.Camera()
input_type = sl.InputType()if opt.svo is not None:input_type.set_from_svo_file(opt.svo)# Create a InitParameters object and set configuration parametersinit_params = sl.InitParameters(input_t=input_type, svo_real_time_mode=True)init_params.camera_resolution = sl.RESOLUTION.HD720init_params.coordinate_units = sl.UNIT.METERinit_params.depth_mode = sl.DEPTH_MODE.ULTRA  # QUALITYinit_params.coordinate_system = sl.COORDINATE_SYSTEM.RIGHT_HANDED_Y_UPinit_params.depth_maximum_distance = 5runtime_params = sl.RuntimeParameters()status = zed.open(init_params)

2.2 测距模块

for *xyxy, conf, cls in reversed(det):xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist()  # normalized xywhcent_x = round(xywh[0] * im0.shape[1])cent_y = round(xywh[1] * im0.shape[0])cent_w = round(xywh[2] * im0.shape[1])point_1 = round(cent_x - 0.4 * cent_w)point_2 = round(cent_x + 0.4 * cent_w)wide_value_1 = point_cloud.get_value(point_1, cent_y)[1]wide_value_2 = point_cloud.get_value(point_2, cent_y)[1]try:wide = round(wide_value_1[0], 4) - round(wide_value_2[0], 4)wide = round(abs(wide * 1000))except:wide = 0.00passpoint_cloud_value = point_cloud.get_value(cent_x, cent_y)[1]point_cloud_value = point_cloud_value * -1000.00if point_cloud_value[2] > 0.00:try:point_cloud_value[0] = round(point_cloud_value[0])point_cloud_value[1] = round(point_cloud_value[1])point_cloud_value[2] = round(point_cloud_value[2])print("x:", point_cloud_value[0], "y:", point_cloud_value[1], "z:",point_cloud_value[2], "W:", wide)txt = 'x:{0} y:{1} z:{2} w:{3}'.format(point_cloud_value[0], point_cloud_value[1],point_cloud_value[2], wide)a=point_cloud_value[0]b=point_cloud_value[1]c=point_cloud_value[2]distance = ((a ** 2 + b ** 2 + c ** 2) ** 0.5)# annotator.box_label(xyxy, txt, color=(255, 0, 0))label = f'{names[int(cls)]} {conf:.2f} 'label = label + " " +"dis:" +str(distance)annotator.box_label(xyxy, label, color=colors(c, True))except:pass

2.2 实验结果

测距功能
请添加图片描述
视频展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LPRNet车牌识别模型训练及CCPD数据集预处理

LPRNet车牌识别模型训练及CCPD数据集预处理 1 LPRNet车牌识别模型训练 1.1 源码:LPRNet_Pytorch-master 源码官网:GitHub - sirius-ai/LPRNet_Pytorch: Pytorch Implementation For LPRNet, A High Performance And Lightweight License Plate Recognition Framework. 链…

Windows搭建Jellyfin影音服务结合内网穿透实现公网访问本地视频文件

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

【Linux】vim 编辑器

Linux 系统自带了 gedit 和 vi 编辑器,gedit 是图形化界面的操作,而 vi 由比较难用,所以建议安装 vim 编辑器,vim 是从 vi 发展出来的一个文本编辑器,相当于增强版的 vi ,其代码补完、编译及错误跳转等功能…

【Unity】组件组合使用心得(单行可自动拓展Scroll View)

在这之前,一直是在使用Scroll View进行滑动内容设置,但设置的都是不明不白的,而且有的时候设置好了之后也不知道是为什么,总感觉哪里不对劲,而且好也不知道为什么好,可能是长时间在做管理上的内容&#xff…

【LeetCode热题100】189. 轮转数组(数组)

一.题目要求 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 二.题目难度 中等 三.输入样例 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: …

【操作系统】CentOS7入门级安装

下载镜像 CentOS镜像下载Download (centos.org) 我们选择第一个 X86_64 CentOS Mirrors List 版本描述X86_X64带64位的32位扩展版(一般安装这个)ARM64 (aarch64)嵌入式。适用于微端(树莓派、机械臂、机械中控)IBM Power (ppc64le)专用于IBM POWER服务器 选择一个合适的链接 …

【ArcGIS微课1000例】0109:ArcGIS计算归一化水体指数(NDWI)

文章目录 一、加载数据二、归一化水体指数介绍三、归一化水体指数计算四、注意事项一、加载数据 加载配套数据0108.rar(本实验的数据与0108的一致)中的Landsat8的8个单波段数据,如下所示: Landsat8波段信息对照表如下表所示: 接下来学习在ArcGIS平台上,基于Landsat8数据…

【论文精读】 GPT,GPT-2,GPT-3:大力出奇迹

系列文章目录 【论文精读】Transformer:Attention Is All You Need 【论文精读】BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding 文章目录 系列文章目录一、前言二、GPT(一)文章概览&#xf…

20231911 马星 2023-2024-2 《网络攻防实践》实践报五告

1.实践内容 1.1 防火墙配置 任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试: ①过滤ICMP数据包,使得主机不接收Ping包; ②只允许特定IP地址(如局域网中的Linux攻击机192.168.…

【JavaEE初阶系列】——网络编程 UDP客户端/服务器 程序实现

目录 🚩UDP和TCP之间的区别 🎈TCP是有连接的 UDP是无连接的 🎈TCP是可靠传输 UDP是不可靠传输 🎈TCP是面向字节流 UDP是面向数据报 🎈TCP和UDP是全双工 👩🏻‍💻UDP的socket ap…

共享IP和独享IP如何选择,两者有何区别?

有跨境用户在选择共享IP和独享IP时会有疑问,不知道该如何进行选择,共享IP和独享IP各有其特点和应用场景,选择哪种方式主要取决于具体需求和预算。以下是对两者的详细比较: 首先两者的主要区别在于使用方式和安全性:共…

使用c语言libexpat开源库解析XML数据

1 libexpat简介 Expat 是一个用 C 语言编写的开源 XML 解析库,以其高性能和小巧的体积著称。Expat 兼容多种操作系统平台,包括但不限于 Windows、Linux、macOS 等。由于其跨平台特性和简单易用的API,Expat 成为了许多C/C程序员解析XML文档的…

git安装配置教程(小白保姆教程2024最新版)

目录 一、Git是什么?二、安装Git1.下载git2.安装git3.检测git 三、配置Git1.配置本地信息2.配置SSH1)SSH与SSH Key是什么?2)生成SSH Key3)获取ssh key公钥内容(id_rsa.pub)4)Github账号上添加公…

【java数据结构-二叉树(上)】

java数据结构-二叉树(上) 二叉树的概念二叉树的节点介绍 二叉树构造如何使用兄弟表示法构造二叉树两种特别的二叉树二叉树的基本性质: 二叉树的存储二叉树的遍历:前序遍历:中序遍历:后序遍历:层…

【随笔】Git 基础篇 -- 远程仓库 git clone(二十五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

如何本地搭建开源导航页配置服务Dashy并发布到公网分享好友使用

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。[点击跳转到网站] 简介 Dashy 是…

学习C++有没有必要学习boost库?

在深入学习C这一强大且灵活的编程语言的过程中,是否有必要学习Boost库是许多开发者会面临的一个重要问题。Boost库,被誉为C的“瑞士军刀”,以其丰富的工具集和强大的功能性深受广大C程序员的喜爱。本文将就此问题进行详细的探讨。 一、Boost…

前端开发基础(HTML5 + CSS3)【第一篇】:HTML标签之文字排版、图片、链接、音频、视频 涵盖了两个综合案例 做到了基础学得会,实战写的出

点击前往前端开发基础专栏: 文章目录 HTML5 CSS3 开发一、开发环境搭建下载 VS Code1. 2 插件的下载1.3 项目和文件的下载 二、 什么是 HTML2.1 标签的语法2.2 代码演示:2.3 小结 三 、HTML基本骨架3.1 快捷键生成HTML骨架3.2 代码展示3.3 小结 四、标…

阿里淘天一面凉经

电话面,秒挂。 由于答的依托。导致面试官一开始就准备要挂我了。后面问的参考性不大。 总结: 1.自我介绍 2.项目里自己体会比较多的,遇到困难比较大的技术实现。(没复习) 3.项目中什么场景下用到分布式锁&#xf…

【Vit】Vision Transformer 入门与理解

在学习VIT之前,建议先把 Transformer 搞明白了:【transformer】入门与理解 做了那些改进? 看图就比较明白了,VIT只用了Encoder的部分,把每一个图片裁剪成若干子图,然后把一个子图flatten一下,…