zed相机使用

2023-05-16

zed立体相机+pyhon+opencv

zed相机网上资料都是关于安装的教程,后续的一些使用介绍的不是很多,
因为官方文档已经介绍的很详细,这里介绍一下自己的学习过程,以备查阅,如有错误,敬请指正。
这是官方文档,所有的信息都是根据这儿得来的。
https://www.stereolabs.com/

安装

因为zed相机属于UVC(USB video device class )设备,所以可以用作双目摄像头直接用于计算机或者嵌入式平台,和普通的双目摄像头应该没什么区别。
但是如果要使用其SDK,就需要cuda环境。一开始不知道,打算用在台式机(Intel HD Graphics 4600集成显卡)上,后来发现需要NVIDIA。只好转用我的T470(总算能干点活了)。按照这个教程下来,基本没问题。
https://blog.csdn.net/weixin_42132223/article/details/81840520

使用

安装后在程序里面搜索zed,会发现多出几个应用。可以都打开看看(别忘了把zed相机插上)。其中zed viewer就是拍摄的图像,左下角可以看到可以录视频照相。但录的视频是SVO格式的。里面包含了很多信息。包括深度,点云什么的,所以会非常大。depth viewer可以看深度图像和点云。ZED calibratiuon是做标定的很方便,不用自己搞棋盘,直接拿摄像头去怼显示器上的该应用给的棋盘就行,这里建议用大一点的显示器。先看一下教程不是很难。还有一个ZEDFu我没用到。

以上的这些应用只能让我们看到ZED的一些功能。用来做开发,自然少不了SDK.花一个小时把这个文档大概看一些。基本上就可以上手开发了。
https://www.stereolabs.com/docs/getting-started/

方便参考的一些点

zed相机比较方便的一个点是,做实时分析的时候不用随时都要插着摄像头,可以先录制好获得svo文件,然后用grab()函数直接得到的就是矫正后的图像,当然也可以参考给的opnecv例程进行图像,视频还有点云文件的保存。

因为我要识别网球。很小,距离也很远。一开始打算用点云去做,滤波后提取满足条件的聚类。但PCL库没接触过。后来看到这篇文章
https://support.stereolabs.com/hc/en-us/articles/360011977594-Can-I-get-the-3D-position-of-a-Custom-Object-a-Ball-or-a-Small-Object-
我在深度图中也看不到飞行的网球,zed开发人员也不建议直接用从深度图中去找。深度图是立体矫正匹配后得到的。于是我直接从矫正后的图像中去找两个球的对应点,得到视差。最后计算出三维坐标值。

zed录像保存为svo文件的问题

因为我需要的帧率比较高,而且在关键时刻需要稳定,但是得到的svo文件打开时(需要SDK),发现帧率一直在变化,而且某些帧率变得很低,不太清楚为什么。一下是我录制是的代码。

import pyzed.sl as sl

# Create a ZEDCamera object
zed = sl.Camera()

# Create a InitParameters object and set configuration parameters
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.RESOLUTION_HD720  #分辨率设置
init_params.camera_fps = 60                                     #帧率设置

err = zed.open(init_params)
if err != sl.ERROR_CODE.SUCCESS:
    exit(1)

runtime_parameters = sl.RuntimeParameters()
runtime_parameters.sensing_mode = sl.SENSING_MODE.SENSING_MODE_STANDARD  # Use STANDARD sensing mode
# Enable recording with the filename specified in argument
err = zed.enable_recording('video_frame_test.svo', sl.SVO_COMPRESSION_MODE.SVO_COMPRESSION_MODE_LOSSLESS)
image_zed = sl.Mat(zed.get_resolution().width, zed.get_resolution().height, sl.MAT_TYPE.MAT_TYPE_8U_C4)
point_cloud = sl.Mat()

print('SVO is Recording')
n=200
pretimestamp=0
dif_time =[]
while n>0:
    if zed.grab(runtime_parameters) == sl.ERROR_CODE.SUCCESS :
        # Each new frame is added to the SVO file
        zed.record()
        zed.retrieve_image(image_zed, sl.VIEW.VIEW_LEFT)
        timestamp = zed.get_timestamp(sl.TIME_REFERENCE.TIME_REFERENCE_CURRENT)  # Get the timestamp at the time the image was captured
        diftimestamp = timestamp - pretimestamp#时间戳之差
        pretimestamp = timestamp#上一帧时间戳
        #n = n-1
        print(diftimestamp)
        dif_time.append(diftimestamp)#保存于一个列表
        #print(n)
#    else:
#         key =cv2.waitKey(1)
#         print('jump.')


# Disable recording
zed.disable_recording()
zed.close()

这里要实名表扬zed的技术支持。发送了询问邮件很快就得到了恢复。最终找到了问题所在。
因为我在thinkpad T470P上使用的该摄像头。技术支持说可能是因为GeForce 940MX不支持在最大帧率下工作。后来我进行了一些实验。发现在720P下,设置为15帧和30帧基本上不会有掉帧。但在60帧时就比较严重。所以我猜想可能是因为这个问题。另外,在720p时,即使调用SDK也不能设置任意帧数,好像只有,15,30,60三个选项。

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

zed相机使用 的相关文章

随机推荐

  • C++STL库学习笔记(二)——容器

    标准模板库包含了序列容器 xff08 sequence containers xff09 与关系容器 xff08 associative containers xff09 数据容器描述 序列容器 有序集 vector动态数组 xff0c 兼
  • 记录一下jetson xaiver 连接51串口

    记录一下jetson xaiver 连接51串口 引脚说明 jetson方面 xff1a UART1 TX pin8 UART1 RX pin10 挂载节点 xff1a dev ttyTHS051方面 xff1a UART1 TX GPIO
  • Linux 动态库 undefined symbol 原因定位与解决方法

    在使用动态库开发部署时 xff0c 遇到最多的问题可能就是 undefined symbol 了 xff0c 导致这个出现这个问题的原因有多种多样 xff0c 快速找到原因 xff0c 采用对应的方法解决是本文写作的目的 可能的原因 依赖库
  • 【pycharm】关于pycharm-代码运行后-控制台的输出-不完整被截断的处理

    https www likecs com show 305675529 html sc 61 300 来源 xff1a https www cnblogs com 5201351 p 15557690 html 设置配置文件修改buffer
  • webpack One CLI for webpack must be installed. These are recommended choices, delivered as separate

    场景 安装webpack的时候 遇到的情况 直接按照提示安装 提示Module webpack cli 不存在 One CLI for webpack must be installed These are recommended choi
  • 使用巨控GRM530模块远程通信连接TIA WINCC(异地组网)SIMATIC NET与S7-200 SMART 集成以太网口OPC 通信

    使用巨控GRM530模块远程通信连接TIA WINCC xff08 异地组网 xff09 SIMATIC NET与S7 200 SMART 集成以太网口OPC 通信 硬件 xff1a S7 200 SMART SR40PC 机 集成以太网卡
  • 01_使用cMake编译目标文件与库文件

    1 将单个源文件构建为可执行文件 1 1 准备工作 假设有以下源代码 xff0c 希望使用cMake将其构建为一个可执行文件 示例源码如下 span class token macro property span class token d
  • ROS image_transport及cv_bridge

    ROS image transport 压缩 此外上面提到过FPS这个参数 xff0c 自然少不了介绍图像的压缩 一般使用的时候直接会使用没有压缩的图像 xff0c 但是在需要传输的时候 xff0c 这一些大图像非常占用带宽 xff0c 所
  • NEMA格式

    NMEA標準格式 大部份的GPS receiver都具被有美國國家海洋電子學會 National Marine Electronics Association xff0c NMEA 所制定的標準規格 xff0c 其制定了所有航海電子儀器間的
  • 在 JETSON 上配置 CAN 总线收发并基于Node.js编写应用DEMO

    概述 CAN 总线 是汽车电子行业常用的通信协议 Nvidia 推出的边缘 AI 推理设备 JETSON TX2 AGX Xavier 两款开发板支持 CAN 总线通信 这里以 AGX Xavier 开发者套件 为例 介绍如何配置实现基本的
  • C++开发UDP通信:使用socket创建UDP服务器端和客户端

    我的主页视频讲解 博客不经常在线 xff0c 私信请到西瓜视频搜索 智能之心 xff0c 以智能之心赴智能之梦 UDP通信步骤 引用UDP通信步骤 一 UDP套接字服务端架构步骤 1 xff0e 初始化套接字环境WSAStartup 2 x
  • D6 PRO充电器使用方法

    充电方式两种 xff1a 接220V供电 xff08 推荐 xff09 接XT60电池供电 接线 xff1a 大头XT60接口平衡头6S 4S 3S 2S接口 xff0c 123456 黑线从右侧减号一侧开始接 xff0c 红线在左侧数字一
  • uORB和MAVLink通讯例程

    uORB uORB 是一种异步 publish subscribe 的消息传递 API xff0c 用于进程或者线程间通信 IPC 添加新的Topic xff08 主题 xff09 在msg 目录下创建一个新的 msg文件 xff0c 并将
  • 往android studio原生java工程中添加jni的过程

    一 配置步骤 xff1a 第一步是在 src main 中建立一个文件夹cpp 第二步是在文件夹中建立两个文件一个是native lib cpp和CMakeLists txt 第三步在上述两文件中添加如下内容 xff1a span clas
  • C++迭代器

    一 什么是迭代器 xff1a C 43 43 中 xff0c 迭代器就是一个类似于指针的对象 xff0c 它能够用来遍历C 43 43 标准模板库容器中的部分或全部元素 xff0c 每个迭代器对象代表容器中的确定的地址 以下面的string
  • webpack vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin

    场景 webpack2 4 集成vue loader 64 15 2 4报错 vue loader was used without the corresponding plugin Make sure to include VueLoad
  • slamugv使用说明--5.电机编码测速

    电机编码器测速 编码器 xff08 encoder xff09 是将信号 xff08 如比特流 xff09 或数据进行编制 转换为可用以通讯 传输和存储的信号形式的设备 编码器把角位移或直线位移转换成电信号 编码器分类及原理 xff1a 按
  • STM32相关名词解释

    L N NO NC COM名词解释 L是line的意思 xff0c 相线 xff0c 俗称火线 xff1b N是neutral xff0c 中性线的意思 xff0c 在两相线中也称为零线 NO xff1a 也就是常开 xff0c 即在未通电
  • 三轴加速度计、三轴陀螺仪、三轴磁力计

    1 今天要做的事情 列出 xff1a 可能影响因素 xff0c 对影响因素做实验 如何设置对比实验 xff1f 如何设置对比实验 xff1f 三轴加速度计 1 加速度计的原理 三轴加速度 xff1a 输出的速度是去掉重力后的整体加速度 xf
  • zed相机使用

    zed立体相机 43 pyhon 43 opencv zed相机网上资料都是关于安装的教程 xff0c 后续的一些使用介绍的不是很多 xff0c 因为官方文档已经介绍的很详细 xff0c 这里介绍一下自己的学习过程 xff0c 以备查阅 x