Realsense D435i Yolov5目标检测实时获得目标三维位置信息

2023-05-16

文章目录

  • 一、效果演示
  • 二、环境配置
  • 三、模型配置
  • 四、相机配置
  • 五、部分代码:
  • 六、仓库链接:


一、效果演示

- Colorimage:

colorimage

- Colorimage and depthimage:

color depth image


二、环境配置

1.一个可以运行YOLOv5的python环境

pip install -r requirements.txt

2.一个realsense相机和pyrealsense2库

pip install pyrealsense2

在下面两个环境中测试成功

  • win10 python 3.8 Pytorch 1.10.2+gpu CUDA 11.3 NVIDIA GeForce MX150

  • ubuntu16.04 python 3.6 Pytorch 1.7.1+cpu

三、模型配置

修改模型配置文件,以yolov5s为例。
如果使用自己训练的模型,需要进行相应的修改。

weight:  "weights/yolov5s.pt"
# 输入图像的尺寸
input_size: 640
# 类别个数
class_num:  80
# 标签名称
class_name: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
         'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
         'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
         'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
         'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
         'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
         'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
         'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
         'hair drier', 'toothbrush' ]
# 阈值设置
threshold:
  iou: 0.45
  confidence: 0.6
# 计算设备
# - cpu
# - 0 <- 使用GPU
device: '0'

四、相机配置

分辨率好像只能改特定的参数,不然会报错。d435i可以用 1280x720, 640x480, 848x480。

pipeline = rs.pipeline()  # 定义流程pipeline
config = rs.config()  # 定义配置config
config.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30)
profile = pipeline.start(config)  # 流程开始

五、部分代码:

下方代码实现从像素坐标系到相机坐标系转换,并且标注中心点以及三维坐标信息。

for i in range(len(xyxy_list)):
    ux = int((xyxy_list[i][0]+xyxy_list[i][2])/2)  # 计算像素坐标系的x
    uy = int((xyxy_list[i][1]+xyxy_list[i][3])/2)  # 计算像素坐标系的y
    dis = aligned_depth_frame.get_distance(ux, uy)  
    camera_xyz = rs.rs2_deproject_pixel_to_point(
    depth_intrin, (ux, uy), dis)  # 计算相机坐标系xyz
    camera_xyz = np.round(np.array(camera_xyz), 3)  # 转成3位小数
    camera_xyz = camera_xyz.tolist()
    cv2.circle(canvas, (ux,uy), 4, (255, 255, 255), 5)#标出中心点
    cv2.putText(canvas, str(camera_xyz), (ux+20, uy+10), 0, 1,
                                [225, 255, 255], thickness=2, lineType=cv2.LINE_AA)#标出坐标
    camera_xyz_list.append(camera_xyz)
    #print(camera_xyz_list)

六、仓库链接:

代码已上传github:yolov5_d435i_detection

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Realsense D435i Yolov5目标检测实时获得目标三维位置信息 的相关文章

  • 用STL库创建线程

    测试了3种方式 xff1a 1 xff1a 子线程不带返回值 2 xff1a 子线程带返回值 3 xff1a 子线程带引用类型参数 使用join方式 xff0c 让父线程等待子线程运行结束 TestTemp cpp 定义控制台应用程序的入口
  • 4.5树的存储

    双亲表示法 xff0c 孩子表示法 xff0c 孩子兄弟表示法 1 双亲表示法 查找双亲简单 空数据导致遍历更慢 xff0c 查指定节点的孩子只能遍历 span class token keyword typedef span ElemTy
  • Windows下MySQL数据库的安装、配置及C++使用案例

    1 安装及配置 Windows判断本地是否安装mysql以及mysql安装过程 企鹅要去银河思考人生 xff01 xff01 xff01 的博客 CSDN博客 windows查看是否安装mysql 注意按照文中提示 xff0c 配置好环境变
  • C++获取系统毫秒级时间(自1970年1月1日至今的毫秒数)

    跟系统时间相关的 ifdef WIN32 include lt time h gt include lt windows h gt else include lt sys time h gt endif unsigned long long
  • Window 10下SQL Server的安装配置以及C++使用案例

    1 SQL Server2008的安装与配置 参照下面这篇博客实现即可 里面提供了安装包下载方式 xff08 百度网盘有点慢 xff09 安装及配置步骤 SQLServer安装教程 xff08 史上最详细版本 xff09 杨林伟的博客 CS
  • 基于OpenCV实现的多角度、多目标模板匹配项目实战案例

    1 说明 本案例采用NCC的匹配 金字塔 为了加速 思想 基于OpenCV实现的多角度 多目标模板匹配 不支持尺度不变 若研究旋转 尺度不变性的匹配 请参考本人的OpenCV专栏内的 nbsp OpenCV实现多角度多尺度模板匹配 基于形状
  • 程序日志模块的两种模式

    程序员都知道程序的运行日志在不少时候都非常有用 xff0c 利于排查 理清逻辑 一般而言 xff0c 日志都按天生成 xff0c 并且具备自动清理多少天以前的旧日志 xff0c 避免无限增长占用磁盘 下图展示了2种日志模式 模式一 1 xf
  • C++开发面试常考

    C 43 43 后台开发面试常考 pudn com
  • 如何在微软官网上下载旧版本的visual studio

    想在微软官网下载旧版本的VS 太长不想看的可以直接戳网址进入最终的界面 xff1a Visual Studio 较旧的下载 2019 2017 2015 和以前的版本想从官网首页一步一步进入到最终下载界面的可以看下面详细步骤 xff1a 1
  • 基于OpenCV实现的RANSAC随机抽样一致性直线拟合

    概要 本文介绍基于ransac随机抽样一致性随机抽样一致性的直线拟合方法 涵盖一下的内容 ransac的算法思想 ransac的算法步骤 如何调整ransac算法迭代的次数 基于opencv编码实现 ransac算法流程 RANSACRAN
  • 基于OpenCV(C++)实现的RANSAC随机抽样一致性的曲线拟合(二次)

    nbsp 0 前言 nbsp nbsp 前不久整理了RANSAC直线拟合的文章 基于OpenCV实现的RANSAC随机抽样一致性直线拟合 thequitesunshine007的博客 CSDN博客 这篇文章与其类似 只是从拟合直线变为拟合曲
  • 最小二乘least-squares拟合曲线(三次或多次)

    1 说明 基于最小least squares去拟合出多次曲线 考虑到了所有的样本点 因此这种方法对噪声敏感 尤其是遇到较为突兀明显的噪声时 曲线的形状易受干扰 2 代码 代码细节仔细读基本都能读懂 或者查一下也不是什么大问题 include
  • 4.6树和森林的遍历

    一 树的遍历 1 先根遍历 对应二叉树先序遍历 span class token keyword void span span class token function PreOrder span span class token punc
  • 扩展欧几里得算法(简单易懂,详细分析)

    扩展欧几里得算法 扩展欧几里得算法证明 43 应用 61 61 欧几里得算法 61 61 61 61 扩展欧几里得算法 61 61 应用1 xff1a 求一元二次线性方程的整数解应用二 xff1a 求ax 61 c mod p 应用三 xf
  • 佩尔方程(超详细推导+例题讲解) 每日一遍,算法再见!

    这里写目录标题 佩尔方程第一类佩尔方程第一类佩尔方程例题讲解 第二类佩尔方程 佩尔方程 第一类佩尔方程 定义 xff1a 形如 x 2 d
  • FFT(傅里叶快速变换,详细讲解+推导) 每日一遍,算法再见!

    FFT详细推导 FFT 傅里叶快速变换 一 前置知识1 复数和单位根2 单位根的三个引理3 多项式 二 FFT 快速傅里叶变换推导 三 IFFT四 FFT求解多项式乘积模板代码1 递归版2 非递归版 这个更快 xff0c 省去了递归时间 五
  • 背包问题----分组背包(超详细讲解)

    树形dp 分组背包 43 依赖背包 分组背包1 定义2 讲解3 练习题 依赖背包1 定义2 讲解3 练习题 分组背包 1 定义 分组背包 xff0c 通俗的讲就是 xff0c 给你N组物品 xff0c 然后每一组你至多选择一个物品 也可以不
  • 树状数组(详细分析+应用),看不懂打死我!

    树状数组介绍 在学习一个算法之前一定要清楚它能干嘛 xff0c 能解决什么样的问题 xff0c 对你解题是否有帮助 xff0c 然后才去学习它 那么接下来看如下几个问题 什么是树状数组 顾名思义就是一个结构为树形结构的数组 xff0c 于二
  • 更新Win10版本后,wifi图标不见了,并且连接不到wifi和宽带,以及点击网络和Internet闪退的情况

    问题描述 你们是不是遇到过这样的问题 xff0c 更新系统前还好好的 xff0c 更新之后wifi图标不见了 于是你尝试点击最右边的图标打开wifi xff0c 如下图所示 但是你发现没有任何可连接wifi xff0c 就下面这样 xff0
  • Netty框架之Selector使用详解

    谈到Selector的具体使用 xff0c 那么就要结合BIO NIO的知识讲解 xff0c Selector使用在非阻塞模式NIO场景下 xff0c 学习NIO之前先要了解BIO原理 xff0c 下面我们一步步讲解 一 BIO Block

随机推荐

  • SpringBoot系列---application.yml配置文件

    1 yml配置文件格式 span class token comment 对象 span span class token key atrule person span span class token punctuation span s
  • Spring系列---SpringBoot配置-profiles

    1 profiles的作用 2 使用profiles span class token punctuation span span class token comment 开发环境 span span class token key atr
  • SpringBoot系列---SpringBoot配置文件加载顺序

    1 内部文件配置加载顺序 resource目录下打包之后就是classpath路径 xff0c 所以classpath路径下也就是resource目录下的配置文件 2 外部配置文件加载顺序我们再使用springboot开发程序的时候 xff
  • 4.7树的使用(并查集、哈夫曼树的构建)

    一 并查集 优化后 时间复杂度 xff1a 树高 O log2n 查找 xff1a O log2n 1 并查集初始化 span class token macro property span class token directive ha
  • 游标v_cur的%notfound

    当游标的值为空的时候 xff0c 处理无效员工的id时就会出现错误 比如 xff1a 创建一个程序检索某个员工的工龄 a 创建一个函数GET SERVICE YRS xff0c 检索某个员工总的工龄 xff1b 此函数应该接受员工ID作为输
  • 两个大数(包括负数)相加

    分析 xff1a 当这两个大数为正数时 xff0c 我们可以将字符转化为数字相加 xff0c 再加进位talg xff0c 有进位为1 xff0c 否则为0 xff1b 两个为负数则与正数相似 xff0c 为一正一负时 xff0c 我们可以
  • WRF模式运行的流程以及简单错误的避免

    前提安装好 WPS 43 WRF 43 WRFDomainWizard等组件 一 xff0c WPS 1 xff0c geogrid exe 准备静态数据 地理数据 2 xff0c ungrib exe 解压强迫场资料 气象数据 3 xff
  • 两台计算机之间的直连

    1 xff0c 直连线的要求 xff0c 需要交叉线 2 xff0c 在网络里打开适配器选项 xff0c 右击以太网 xff0c 打开属性 xff0c 双击IP4 xff0c 如图所示 IP地址设置如上图 3 xff0c 另一台计算机的设置
  • MP3转码PCM

    支持aac和mp3转码 xff0c 主要是dst nb sample的计算 xff0c aac大致为1024 xff0c MP3为1152 xff0c static int dst nb samples 61 0 define SWR in
  • RISC-V MCU 导盲手套

    RISC V MCU 导盲手套 关于本文队伍名称第一部分 设计概述1 1 设计目的1 2 应用领域1 3 主要技术特点1 4 关键性能指标1 5 主要创新点 第二部分 系统组成及功能说明2 1 整体介绍2 2 各模块介绍 第三部分 完成情况
  • 告别VMWARE!开源,免费,高效率,跨平台的

    与所有Linux爱好者一样 xff0c 对Windows的感情都是虽然不喜欢 xff0c 但是有些时候还真离不开这个玩意 那怎么办呢 xff1f 虚拟机 xff01 最早接触的虚拟机是virtualpc xff0c 这个软件自从被微软收购之
  • 保护机制

    一 SSP Stack Smashing Protection SSP属于编译器层面的防护 具体实现 1 xff0c 在栈中 xff0c ebp与变量之间插入随机值canary xff0c 用于监视是否栈溢出 xff1b 2 xff0c 在
  • Linux系统溢出漏洞学习

    系统环境 xff1a Linux 3 0 0 12 generic athlon DISTRIB DESCRIPTION 61 34 Ubuntu 11 10 34 gcc Ubuntu Linaro 4 6 3 1ubuntu5 4 6
  • db dw dd 与equ的区别

    此前在写汇编的过程中 xff0c 一直不理解两者间的区别 xff0c 例如 xff1a address1 dw 1000h address2 equ 2000h mov ax address1 mov bx address2 db dw d
  • c++/cmake/cmakelists/cmakelists子目录的添加

    cmake minimum required VERSION 3 10 project learning to create project set CMAKE CXX STANDARD 11 set LIBRARY OUTPUT PATH
  • RoboMaster怎么设计新步兵悬挂

    流程 xff1a 明确需求 gt 提出可量化目标 gt 方案提出与评估 gt 细化方案 gt 任务分配 gt 画图设计 gt 图纸提交与验收 gt 加工 gt 装配 gt 机械调试 需求 xff1a 性能优越的悬挂 目标 xff1a 1 任
  • windows7资源管理器无响应的解决方案

    windows7使用过程中常常会出现资源管理器无响应 xff0c 分多种情况 xff1a 1 xff0c 由于第三方程序大量占用内存 xff0c 系统响应速度变慢 xff0c 选择等待程序响应 xff0c 过一段时间即可恢复正常 xff1b
  • 黑客技巧:Google hacking实现以及应用

    前言 google hacking其实并算不上什么新东西 在早几年我在一些国外站点上就看见过相关的介绍 但是由于当时并没有重视这种技术 认为最多就只是用来找找未改名的mdb或者别人留下的webshell什么的 并无太大实际用途 但是前段时间
  • C语言string库函数介绍(附模拟实现)

    目录 strlen 模拟实现 strcpy 模拟实现 strcat 模拟实现 strcmp 模拟实现 strncpy strncat strncmp strstr 模拟实现 strlen size t strlen const char s
  • Realsense D435i Yolov5目标检测实时获得目标三维位置信息

    文章目录 一 效果演示二 环境配置三 模型配置四 相机配置五 部分代码 六 仓库链接 一 效果演示 Colorimage Colorimage and depthimage 二 环境配置 1 一个可以运行YOLOv5的python环境 pi