Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用

简介: Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用

1 RealSense D435摄像头介绍

英特尔® 实感™ D435 在我们推出的所有摄像头中视场最大,深度传感器上配置全局快门,是快速移动应用的理想选择。

1.1 D435外观及内部构造

1、外观
image.png

image.png

image.png

2、内部构造

image.png

1.2 D435的参数规格

1、使用场景和范围

  • 使用环境:室内 / 室外
  • 最大范围:约10米

2、深度

  • 深度视场(FOV):87°±3° × 58°±1° × 95°±3°
  • 最小深度距离:0.105米
  • 深度输出分辨率和帧率:高达 1280 × 720 的主动立体深度分辨率。高达 90 帧/秒。

3、RGB

  • RGB 传感器分辨率:1920 × 1080
  • RGB 帧率:30
  • RGB 传感器 FOV (H × V × D):69.4° × 42.5° × 77° (±3°)

1.3 D435应用

英特尔® 实感™ 深度摄像头 D435 是一款立体追踪解决方案,可为各种应用提供高质量深度。它的宽视场非常适合机器人增强现实虚拟现实等应用,在这些应用中,尽可能扩大场景视角至关重要。这款外形小巧的摄像头拍摄范围高达 10 米,可轻松集成到任何解决方案中,而且配置齐全,采用英特尔实感 SDK 2.0,并提供跨平台支持。

image.png

2 RealSense D435摄像头的使用

2.1 使用D435读取摄像头RGB和深度图

安装python库包pyrealsense2

pip install pyrealsense2

更多pyrealsense2的python教程参考

import pyrealsense2 as rs
import numpy as np
import cv2

# Configure depth and color streams
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.bgr8, 30)

config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)

# Start streaming
pipeline.start(config)

try:
    while True:

        # Wait for a coherent pair of frames: depth and color
        frames = pipeline.wait_for_frames()
        # 深度图
        depth_frame = frames.get_depth_frame()
        # 正常读取的视频流
        color_frame = frames.get_color_frame()
        if not depth_frame or not color_frame:
            continue

        # Convert images to numpy arrays
        depth_image = np.asanyarray(depth_frame.get_data())
        color_image = np.asanyarray(color_frame.get_data())
        # print(f"depth_image shape: {depth_image.shape} color_image shape: {color_image.shape}")
        print(f"depth_image value: {depth_image}")   # 里面0值很多,还有很多1900左右的值      300mm 单位是毫米=30厘米=0.3米
        # depth_image shape: (480, 640) color_image shape: (480, 640, 3)
        # 深度图是单通道  颜色图是三通道的

        # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
        # 在深度图像上应用colormap(图像必须先转换为每像素8位)
        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)

finally:

    # Stop streaming
    pipeline.stop()

3 使用D435做目标检测和距离测量

先简单说明我如何做检测到目标的距离检测的:

  • 1)首先使用目标检测方法,检测要检测的目标
  • 2)检测到目标之后,获取目标bbox的中心坐标
  • 3)使用D435获取深度画面的深度信息
  • 4)保证检测画面和深度画面的分辨率是对应的
  • 5)根据bbox的中心坐标,去深度去中取出对应的深度信息,然后绘制出来即可!

下面是我检测人之后,并获取人距离摄像头的距离,结果如下:

image.png

(由于CSDN限制上传图片大小,我就裁剪了很短的一段gif,大家凑合看)

检测的问题,如果目标bbox的中心点,没有object上,这样获取到的距离就是背景上,这样就是不准确的,目前想到的方式就是通过分割的方式,然后获取分割目标区域的重心,这样获取有改善,没有尝试!

目录
相关文章
|
计算机视觉 Python
Yolov5双目测距-双目相机计数及测距教程(附代码)
Yolov5双目测距-双目相机计数及测距教程(附代码)
|
存储 数据采集 数据可视化
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
16404 1
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
|
机器学习/深度学习 存储 编解码
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
13520 1
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
|
编解码 前端开发 算法
基于OpenCV的双目摄像头测距(误差小)
首先进行双目摄像头定标,获取双目摄像头内部的参数后,进行测距;本文的双目视觉测距是基于BM算法。注意:双目定标的效果会影响测距的精准度,建议大家在做双目定标时,做好一些(尽量让误差小)。
11909 3
基于OpenCV的双目摄像头测距(误差小)
|
11月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
17737 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
11月前
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
17200 0
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
1901 1
ROS Moveit 配置全网最详细教程
|
XML 传感器 机器人
Isaac Sim详细安装使用教程
NVIDIA Isaac Sim 4.0版本的安装和使用教程,包括了下载、安装、配置环境、使用ROS/ROS2扩展、设置工作空间以及编译和运行示例程序的步骤。同时,还提供了Isaac Sim的架构图和USD文件格式的介绍,以及相关的资源链接和教程视频。
3455 1
Isaac Sim详细安装使用教程
|
传感器 自动驾驶 机器人
大疆Livox Mid360 使用指南
本文是大疆Livox Mid-360激光雷达的使用指南,包括Livox Viewer 2的安装与使用、Livox SDK2的安装与演示、Livox ROS的配置与启动,以及一些使用时的注意事项。文章还提供了关于Livox Mid-360的详细特点、接线信息、尺寸信息、主控端IP设置、修改Livox Mid 360的IP方法、坐标系定义和IMU内参的介绍。此外,还提供了官方资料和软件下载的链接。
5062 2
|
存储 Ubuntu 机器人
机械臂手眼标定详解
这篇文章是关于机械臂手眼标定的详细教程,包括了使用ROS1 Noetic和Realsense D415相机在Ubuntu 20.04环境下进行标定的步骤和配置方法。
1225 0
机械臂手眼标定详解