英特尔 D435/D435i双目相机 使用指南

这篇具有很好参考价值的文章主要介绍了英特尔 D435/D435i双目相机 使用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Intel RealSense D435深度相机介绍:

关于左右红外图像:

关于像素深度的检索:

Intel RealSense 各种工具:

工具的介绍

相机基本操作

相机自校准

获取相机参数

python脚本

Linux命令行

相机运行并显示画面

获得深度图像

点云

帧对齐

英特尔官方手册:调整深度摄像头以获得最佳性能

首先以相机的最佳深度分辨率运行

确保图像已正确曝光(曝光不佳时性能不佳的首要原因)

后处理

更改深度步长

彩色摄像头

使用阳光,但避免眩光


Intel RealSense D435深度相机介绍:

一对立体红外传感器(Stereo IR Pair) + 一个红外激光发射器(IR Projector) + RGB Camera

RGB摄像头分辨率达2000万像素,3D传感器可以30帧/秒的速度提供分辨率高达1280 × 720,或者以90帧/秒的速度提供848 × 480的较低分辨率。 深度距离在0.1 m~10 m之间,视场角度为85 × 58度。

工作原理:左右红外相机(接收器)分贝产生两幅也就是左侧和右侧ir灰度图像,中间红外点阵发射器(红外散斑)相当于补光灯,进而可以得到点云。红外点阵发射器强度可调,是否发射也可调,不打开也能测深度,只是效果不好。最右边的rgb相机用于采集彩色图片,最终可以将彩色视频流与深度流进行对齐。

测距原理和一般的双目相机相同,都是基于左右图像的视差来求得距离。只是相比于普通彩色rgb相机,红外ir相机是用来接收目标返回的红外光线的,得到的是左右两幅红外灰度图像。若把屋里灯光关掉,黑暗的环境,红外ir相机一样可以生成深度图像,只是质量略有下降。

视差目前仅在D400系列上可用,可使用控件修改控制视差。(advanced_mode)

关于左右红外图像:

  • 具有相同的内联函数
  • 没有失真
  • 两个图像之间没有旋转(单位矩阵)
  • 两个图像之间只有一个轴上的平移(translation[1]、translation[2]为零
  • 像素坐标的 y 分量可以在这两个图像间互换使用(立体校正的效果很好)

关于像素深度的检索:

立体视差通过逆线性关系与深度相关,并且可以通过 1 / rs2_get_depth_scale(...) 查询记录视差为 1 的点的距离。下面显示了如何检索像素的深度(以米为单位):

c++:

const float scale = rs2_get_depth_scale(sensor, NULL);
const uint16_t * image = (const uint16_t *)rs2_get_frame_data(frame, NULL);
float depth_in_meters = 1 / (scale * image[pixel_index]);

Intel RealSense 各种工具:

  • 可以获取的原始数据如下:
  • color image,2D彩色图像
  • 点云xyz
  • texure image,点云纹理彩色图像,与点云xyz(或者说深度图像)是对其的
  • 点云xyz rgb,将点云xyz和texture image组合得到
  • ir left image,左侧ir灰度图像
  • ir right image,右侧ir灰度图像

工具的介绍

  • 深度校准:Depth Quality Tool for Intel RealSense Cameras 用于测试z方向的深度数据是否准,只需要把rgbd相机正对着白色的墙面等就可以了,然后对比卷尺量的距离与软件上显示的距离,来判断是否需要校准相机;
  • Intel RealSense D400 Series Dynamic Calibration Software Tools 这个是校准工具,如果前面计算的距离不准,可以利用这个软件进行校准,在苹果或安卓手机搜realsense这个软件,安装打开,就是显示一张类似棋盘格标定板的图片,然后配合校准工具,按照上面的提示晃动手机即可校准,输出外参R\T。

相机基本操作

更详细说明见官网:

Projection in RealSense SDK 2.0 · IntelRealSense/librealsense Wiki (github.com)

相机自校准

更详细内容可见官网:

Intel® RealSense™ Self-Calibration for D400 Series Depth Cameras

d435i使用手册,python,计算机视觉

这张图片也就是说,在 Viewer 上进行校准,当误差小于一定值时,可以忽略。

如果校准过程中报错:可能是没有足够的有效深度像素,通常可以通过确保投影仪处于打开状态来补救。

获取相机参数

python脚本

# 注意!!!通过python script获取内参一定要看好自己到底用了哪个video stream
import pyrealsense2 as rs
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.rgb8, 30)
cfg = pipeline.start(config)
time.sleep(1)
profile = cfg.get_stream(rs.stream.depth) # 获取深度流的配置文件
intr = profile.as_video_stream_profile().get_intrinsics() # 向下播放到视频流并获取内在信息
print(intr)  # 获取内参 width: 640, height: 480, ppx: 319.115, ppy: 234.382, fx: 597.267, fy: 597.267, model: Brown Conrady, coeffs: [0, 0, 0, 0, 0] 319.1151428222656
print(intr.ppx)  # 获取指定某个内参

Linux命令行

rs-sensor-control

相机运行并显示画面

import pyrealsense2 as rs

pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.rgb8, 30)
pipeline.start(config)

time.sleep(1)
frames = pipeline.wait_for_frames()
depth_frame = frames.get_depth_frame()
color_frame = frames.get_color_frame()

# Convert images to numpy arrays
depth_image = np.asanyarray(depth_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())

# # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
# depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
#
# # Stack both images horizontally
# images = np.hstack((color_image, depth_colormap))
#
# # Show images
# cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
# cv2.imshow('RealSense', images)
# cv2.waitKey(1)

fig, axes = plt.subplots(1, 2)
for ax, im in zip(axes, [color_image, depth_image]):
    ax.imshow(im)
    ax.axis('off')
plt.show()
pipeline.stop()

获得深度图像

通过函数从2D像素坐标映射到3D坐标需要了解该像素的深度(以米为单位)。下面显示了如何获得像素的深度(以米为单位):

python:

dpt_frame = pipe.wait_for_frames().get_depth_frame().as_depth_frame()
pixel_distance_in_meters = dpt_frame.get_distance(x,y)

若设备无法确定给定图像像素的深度,则深度图像中将存储零值。这表示“无深度”。C++可以修改深度的刻度。(python似乎也可以)

点云

pyrealsense2提供了一个处理块,用于从深度和颜色框架创建点云和相应的纹理映射。从深度影像创建的点云是深度流的3D坐标系中的一组点。下面是如何创建点云对象:

python:

import pyrealsense2 as rs
pc = rs.pointcloud()
points = pc.calculate(depth_frame)
pc.map_to(color_frame)

帧对齐

通常在处理颜色和深度图像时,需要将每一个像素从一个图像映射到另一个图像

import pyrealsense2 as rs
align = rs.align(rs.stream.color)
aligned_frames = align.proccess(depth_and_color_frameset)
color_frame = aligned_frames.first(rs.stream.color)
aligned_depth_frame = aligned_frames.get_depth_frame()

英特尔官方手册:调整深度摄像头以获得最佳性能

调整深度摄像头以获得最佳性能 (intelrealsense.com)

首先以相机的最佳深度分辨率运行

  • 英特尔实感系列D435:848*480
  • 可以使用较低的分辨率,但会降低深度精度。立体深度传感器的深度测量性能来自匹配左右图像中物体位置的能力。输入分辨率越高,输入图像越好,深度精度越好
  • 如果由于计算原因,应用程序需要较低的分辨率,我们建议使用后处理算法在收到数据后立即对更高分辨率的深度图和彩色图像进行子采样(抽取)。将D4xx相机设置为较低分辨率模式的唯一令人信服的理由是:
    • 减小最小工作范围,该范围将随 x-y 分辨率进行扩展,
    • 减少USB3.0总线上的带宽,例如,如果达到带宽限制,则允许更多摄像机同时运行。

确保图像已正确曝光(曝光不佳时性能不佳的首要原因)

检查自动曝光是否良好,若不好,则切换到手动曝光以确保拥有良好的灰度左右图像。曝光不佳是性能不佳的首要原因。

通常,我们建议先调整曝光以获得最佳效果,同时保持GAIN=16(最低设置)。增加增益往往会引入电子噪声,虽然彩色图像可能看起来更好,但深度质量会下降。曝光单位为微秒,因此33000为33ms。请注意,过度曝光图像可能与曝光不足一样糟糕,因此请小心找到合适的曝光。

自动曝光功能的使用见官方手册

d435i使用手册,python,计算机视觉

后处理

英特尔没有对深度图像进行任何的后处理,而是将其留给其他的应用程序。在SDK2.0中有一些简单的后处理选项,通常有以下处理步骤:

  1. 子采样:在捕获后降低x-y分辨率通常有利于减少更高级别的计算。分辨率减低2倍讲授后续处理速度提高4倍。此外,子采样可用于使用非零均值或非零中位数函数对数据进行一些基本的孔填充和平滑处理。最后,子采样实际上也有助于点云的可视化。
  2. 时间过滤:使用一些时间平均来改善深度,深度数据中存在时间噪声。建议使用 IIR 过滤器。但在某些情况下,使用“持久性”也可能是有益的。
  3. 保留边缘的滤波:平滑深度噪点,保留边缘,同时使表面更平坦。建议在视差域(即深度刻度为 1/距离)中进行此处理,并通过逐渐增加步长阈值进行试验,直到它看起来最适合预期用途。另一种成功的后处理技术是使用由 RGB 图像引导的域变换滤波器或双线性滤波器。例如,这可以帮助锐化边缘
  4. 孔填充:有必要根据相邻值或RGB图像用最佳猜测来填充孔

更改深度步长

可能需要在高级模式 API 中更改“深度单位”。默认情况下,D4 VPU 提供 16 位深度,深度单位为 1000um (1mm)。这意味着最大范围将约为65m。但是,例如,通过将其更改为5000um,可以将深度报告为最大值5x65 = 325m。

彩色摄像头

优点:

  1. 像素完美对齐、校准并与深度图重叠
  2. 完美的时间同步
  3. 无需额外的开销即可对齐颜色与深度
  4. 不会产生额外的遮挡伪像,因为它完全共对其。

缺点:文章来源地址https://www.toymoban.com/news/detail-785439.html

  1. 如果投影仪打开,它通常会显示投影仪图案

使用阳光,但避免眩光

  1. 阳光可以降低传感器的噪音,并倾向于"带出"物体的纹理。此外,曝光可以减少到接近1ms,这也减少了运动伪像。因此,结果是英特尔实感D4xx摄像头实际上在阳光下表现非常好。
  2. 需要注意的一个问题是指向太阳或靠近太阳时的镜片眩光。建议用挡板遮挡镜片,以降低镜片眩光的风险。
  3. 在自动曝光方面要特别小心,尤其是在图像中可以看到太阳或太阳反射的情况下。默认情况下,自动曝光算法会尝试将整个图像的平均强度保持在一定范围内。如果太阳在那个图像中,其他一切都会突然变成黑色。对于许多应用,如自主机器人或汽车,只需将自动曝光算法的兴趣区域更改为较小的尺寸,或者具体到图像的下半部分,它会有所帮助。

到了这里,关于英特尔 D435/D435i双目相机 使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 英特尔® NUC迷你电脑设置带电自启

    连接电源后英特尔® NUC迷你电脑可以自动启动吗? (intel.cn)    想死的风还是吹到了公司 | 👨‍✈️喂,劳动仲裁吗?这里有人强迫猫咪打工!😿  

    2024年02月07日
    浏览(52)
  • AMD出招,英特尔最不想看到的对手来了

    前段时间的CES上,AMD正式发布Ryzen 7000的3D缓存版,对于游戏玩家来说,Ryzen 7000 3D缓存版算是今年最期待的CPU。上一代的Ryzen7 5800X3D凭借超强的游戏性能和性价比,在德国最大的PC硬件零售商的统计中,甚至成为2022年最畅销的高性能处理器。 有着Ryzen 5000 3D缓存版的珠玉在前,

    2024年02月10日
    浏览(59)
  • 在英特尔 CPU 上加速 Stable Diffusion 推理

    前一段时间,我们向大家介绍了最新一代的 英特尔至强 CPU (代号 Sapphire Rapids),包括其用于加速深度学习的新硬件特性,以及如何使用它们来加速自然语言 transformer 模型的 分布式微调 和 推理。 英特尔至强处理器: https://www.intel.com/content/www/us/en/products/details/processors/xeon/scal

    2024年02月09日
    浏览(57)
  • 联手英特尔,释放星飞分布式全闪存储潜能

    近日,英特尔官网发布了与 XSKY 星辰天合联手打造的解决方案,即 XSKY 的新一代全闪分布式存储系统 XINFINI,该存储系统采用英特尔 QAT 加速数据压缩/解压缩,从而大幅度提升存储系统性能。 全闪存储系统面临的解压缩挑战 在存储系统的数据服务层中,通常需要进行一定的压

    2024年02月01日
    浏览(53)
  • 在英特尔 CPU 上微调 Stable Diffusion 模型

    扩散模型能够根据文本提示生成逼真的图像,这种能力促进了生成式人工智能的普及。人们已经开始把这些模型用在包括数据合成及内容创建在内的多个应用领域。Hugging Face Hub 包含超过 5 千个预训练的文生图 模型。这些模型与 Diffusers 库 结合使用,使得构建图像生成工作流

    2024年02月15日
    浏览(87)
  • 解决英特尔无线网卡WiFi或者蓝牙突然消失问题

    win+R,输入“devmgmt.msc”,检查设备管理器中的无线网卡驱动是否安装好。 访问https://www.intel.cn/content/www/cn/zh/download/19351/windows-10-and-windows-11-wi-fi-drivers-for-intel-wireless-adapters.html下载对应系统版本的英特尔无线网卡WiFi驱动后安装。 访问https://www.intel.cn/content/www/cn/zh/download/18649

    2024年01月17日
    浏览(114)
  • 英特尔:处理器王座不再,AI战溃不成军

    英特尔于北京时间2024年1月26日上午的美股盘后发布了2023年第四季度财报(截止2023年12月),要点如下: 1、核心数据:数据超预期,实际经营面符合预期。 英特尔在2023年第四季度 实现营收154亿美元,略超市场预期(152亿美元)。本季度收入环比继续提升,主要得益于PC客户

    2024年02月19日
    浏览(49)
  • 英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作?

    最近市场传出Arm要自产芯片,供智能手机与笔电等使用后,外媒指Arm自产芯片将由英特尔晶圆代工部门打造,变成英特尔晶圆代工客户。将采用英特尔18A工艺,可以对标台积电的2纳米。 最近很多小伙伴找我,说想要一些ARM的资料,然后我根据自己从业十年经验,熬夜搞了几

    2024年01月17日
    浏览(56)
  • Ubuntu 22.04安装英特尔显卡驱动玩转AIGC

    作者 : 英特尔网路与边缘计算事业部开发者关系经理 李翊玮 本文将介绍如何使用EIV 用5行指令在快速搭建含英特尔显卡及OpenVINO的AI开发环境, 并简洁说明如何使用OpenVINO 及英特尔显卡优化文生图模型Stable Diffusion 的速度。 EIV (Edge Insight Vision) 具有一组预集成组件,专为边缘

    2024年02月06日
    浏览(53)
  • CANoe中的英特尔(Inter)格式与摩托罗拉(Motorola)格式

    制作过DBC文件的人都知道信号(Signal)的 字节排序(Byte Order)属性 中有英特尔格式(Inter)格式与摩托罗拉(Motorola)格式可以选择,如下: 这两种格式对应的就是我们常说的大端模式(Big-endian)和小端模式(Little-endian). 1.1. 介绍大端模式与小端模式 举一个例子,比如我们要保存一个数字

    2024年02月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包