使用 Intel RealSense 采集图片并制作机器视觉数据集

2023-05-16

本文章主要涉及以下工作:
   (1)讲述如何使用 Intel RealSense 相机采集RGB图像、深度图像、伪彩色化的深度图像以及 .npy 格式保存的深度数据。
   (2)采集到的图像可适用于制作目标检测、实例分割、语义分割等算法的自定义数据集。其中,目标检测YOLO算法的自定义数据集制作具体可参考 YOLO算法的自定义数据集制作及模型训练方法。
   (3)提供了相应的数据读取接口 Dataloader.py,类似于 pyrealsnese2库的方式读取RGB图像以及深度图像。
   (4)提供了文件名批量修改接口 Rename.py,可以对采集到的数据批量修改文件名。
   (5)提供了项目的 Python 代码以及相应的使用文档。
如果文章有用,欢迎各位→点赞👏 + 收藏💞 + 留言🔔 😁🌹🌹
项目代码:Image-Capture-With-RealSense
如果项目代码有用,请给Github项目star一下,谢谢啦 😁🌹🌹

目录

    • 1. 采图 ( RealsenseColorImage.py )
      • (1) 操作步骤
      • (2) 命令行中的参数说明
      • (3) 结果保存格式
    • 2. 数据读取 ( Dataloader.py )
    • 3. 文件名批量修改 ( Rename.py )

1. 采图 ( RealsenseColorImage.py )

(1) 操作步骤

  • 将RealSense相机通过数据线连接到电脑上。

  • 打开终端,在终端里输入以下命令,运行 RealsenseColorImage.py。具体参数含义请向后浏览。

    python RealsenseColorImage.py --image_format 0 --mode 0 --image_width 640 --image_height 480 --fps 30
    
  • 如果设置了 mode 为0,则为自动保存模式。若要开始,请使用英文输入法点击键盘的 S 键,若要中途暂停,则点击键盘的 W 键。

  • 如果设置了 mode 为1,则为手动保存模式。如果实时展示的图片中有想要保存的,请使用英文输入法点击键盘的 S 键保存。

  • 如果想要结束程序的运行,请使用英文输入法点击键盘的 Q 键结束程序。

(2) 命令行中的参数说明

  • path : 所有图片保存的根目录,如果此参数为空字符串,则将采集到的图片保存在当前目录下,以本地时间命名文件夹。若不为空,则在提供的路径内保存。如果提供的路径内已经有了之前保存的数据,则支持向后添加。
  • mode : 拍照模式,0表示自动保存,1表示手动保存
  • image_format : 图片保存的格式,0表示保存为.jpg格式,1表示保存为.png格式
  • image_width : 图片的宽度,此处建议选择像素大小为1280或者640
  • image_height : 图片的高度,此处建议选择像素大小为720或者480
  • fps : 相机拍摄的帧率

(3) 结果保存格式

在程序运行结束后,不同的图片将会保存在以下的目录结构中。

Year_Month_Day_Hour_Minute_Second/
   |——————DepthColorImages/
   |        └——————1.jpg
   |        └——————2.jpg  
   |        └——————3.jpg
   |        └——————...
   |——————DepthImages/
   |        └——————1.jpg
   |        └——————2.jpg 
   |        └——————3.jpg
   |        └——————...
   |——————DepthNpy/
   |        └——————1.npy
   |        └——————2.npy 
   |        └——————3.npy
   |        └——————...
   |——————images/
   |        └——————1.jpg
   |        └——————2.jpg  
   |        └——————3.jpg
   |        └——————...
   └——————intrinsics.json
  • Year_Month_Day_Hour_Minute_Second : 结果保存的根目录文件夹,使用本地时间命名
  • DepthColorImages : 伪彩色化深度图像的保存位置
  • DepthImages : 深度图像的保存位置
  • DepthNpy : 以.npy格式保存的深度数据
  • images : RGB图像的保存位置
  • intrinsics.json : 当前状态下获取到的相机的参数

2. 数据读取 ( Dataloader.py )

Dataloader.py 用于数据读取,读取结果与 pyrealsense2 一致,使用示例如下。

from Dataloader import LoadImages

path = '2023_03_28_20_14_30'
dataset = LoadImages(path)
for data in dataset:
  color_image, depthimage, inintrinsics = data
  fx, fy, ppx, ppy = inintrinsics.fx, inintrinsics.fy, inintrinsics.ppx, inintrinsics.ppy

其中传递的参数 pathRealsenseColorImage.py 生成的数据集根目录名。

返回值包括RGB图像、深度图像以及相机参数。

3. 文件名批量修改 ( Rename.py )

打开终端,输入以下命令。对于其中的参数 annotations 要求数据集中包含有标签文件,详细可见链接 YOLO算法的自定义数据集制作及模型训练方法

python Rename.py --path 2023_03_28_20_14_30 --firstnum 1 --image_format 0 --annotations False
  • path : 要修改的数据集的根目录名
  • firstnum : 第一个文件名要修改成的名称,这里全部以数字命名
  • image_format : 数据集中图片的格式,0表示.jpg格式,1表示.png格式
  • annotations : 是否修改标注好的标签文件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Intel RealSense 采集图片并制作机器视觉数据集 的相关文章

随机推荐

  • 51单片机-控制数码管

    目录 1 硬件设计 1 1 LED数码管介绍 1 2 原理图设计 2 软件设计 2 1 静态数码管显示 2 2 动态数码管显示 2 3 模块化编程 xff08 头文件 xff09 3 知识点 3 1 数组 3 2 子函数 3 3 switc
  • LCD的制作工艺

    目录 1 LCD简介 2 LCD制程 2 1 Array制程 2 1 1 像素电路 2 1 2 制程简介 2 2 Cell制程 2 3 Module组装 3 总结 1 LCD简介 LCD是目前显示领域的重要组成部分 xff0c 可通过如下链
  • 51单片机-LCD1602

    目录 1 硬件设计 1 1 LCD1602介绍 1 2 原理图 2 软件设计 2 1 控制原理 2 2 控制时序 2 3 指令集 2 4 程序设计 3 知识点 3 1 宏定义 3 2 指针与数组 3 3 for语句 1 硬件设计 1 1 L
  • 51单片机-矩阵键盘

    目录 1 硬件设计 2 软件设计 2 1 矩阵键盘扫描 2 2 矩阵键盘 密码锁 3 知识点 3 1 模块化编程的应用 3 2 include详解 1 硬件设计 矩阵键盘按键数量较多 xff0c 为了减少I O口的占用 xff0c 通常将按
  • 如何优雅的让fork后的仓库与原仓库同步

    https www cnblogs com tudou1179006580 p 14875486 html https github com selfteaching the craft of selfteaching issues 67
  • UDP——C语言socket编程

    UDP编程相比TCP来说相对简单主要用到sendto 和recvfrom 这两个函数 xff0c 接下来主要介绍一下这两个函数 头文件 span class token macro property span class token dir
  • 函数与宏定义

    前言 本文介绍函数与宏定义 一 函数的概念 1 函数的定义 自定义函数的形式 xff1a 存储类型符 返回值类型符 函数名 xff08 形参说明表 xff09 函数语句体 xff08 1 xff09 存储类型符 函数作用范围 xff0c 默
  • 51单片机-定时器中断

    目录 1 定时器 计数器 1 1 工作原理 1 2 相关寄存器 1 3 工作模式 xff08 模式1 xff09 2 中断系统 2 1 中断的概念 2 2 中断结构 2 3 中断源 2 4 相关寄存器 3 如何配置定时器中断 4 实际应用
  • 51单片机-串口通信

    目录 1 什么是通信 1 1 通信的概念 1 2 传送方式 1 3 同步方式 1 4 传送方向 1 5 校验方式 2 单片机串口介绍 2 1 硬件电路 2 2 电平标准 2 3 常见接口 2 4 内部结构 2 5 相关寄存器 2 6 工作模
  • I2C总线

    目录 1 硬件概述 1 1 常用器件 1 2 总线结构 1 3 工作原理 2 协议概述 2 1 传输格式 2 2 传输特点 2 3 读和写 2 4 时钟同步和总线仲裁 3 转换器概述 4 缓存器概述 1 硬件概述 1 1 常用器件
  • 蓝牙与WiFi

    蓝牙 透传 HAL UART Receive IT amp huart2 uint8 t amp USART2 NewData 1 开启串口2接收中断 RS485orBT 61 0 RS485orBT标志位为1时是RS485模式 xff0c
  • ubuntu 安装任意版本cmake,无须卸载

    ubuntu1804默认的cmake版本为3 10 2 xff0c 在使用中 xff0c 我们经常会遇到cmake要求更高的版本 xff0c 请读者务必不要轻易卸载原有cmake xff0c 因为这样会把之前用 cmake 编译好的包都给卸
  • 什么是结构体【详解】

    本期介绍 x1f356 主要介绍 xff1a 什么是结构体 xff0c 结构体的声明 定义 初始化 以及传参 xff0c 匿名结构体类型 xff0c 如何通过结构体来实现链表数据结构 xff0c 结构体在内存中是如何存储的 xff08 即
  • 结构体类型

    一 xff1a 结构体定义 1 C语言允许用户自己建立由不同类型的数据组成的组合型数据结构 xff0c 它称为结构体 2 一般形式 xff1a struct 结构体名 成员列表 xff1b xff08 1 xff09 struct是声明结构
  • ROS path [0]=/opt/ros/melodic/share/ros、path [1] 、path [2]

    这种错误 xff0c 我遇到是因为在运行launch前 xff0c 额外多开了roscore 解决方法 xff1a 关掉多开的roscore即可
  • word文档如何快速添加空白页

    我们有时在审阅或查看文件时 xff0c 为了编辑需要会想到插入一页的内容 xff0c 那怎么在文档中间添加空白页呢 xff0c 以最常见的speedoffice为例 首先 xff0c 用speedoffice打开一份Word文档 xff0c
  • ROS path [0]...问题

    遇到这种问题时 第一步 xff1a 首先使用rospack find 命令查找该功能包 xff0c rospack find ydlidar ros 第二部 xff1a 如果输出功能包路径则该功能包存在 xff0c 如果提示没有则说明我们需
  • Git上fork后的代码仓库如何与原仓库进行同步

    https blog csdn net wakarimasu article details 109152932 问题场景 xff1a 最近公司项目组不允许个人在远程仓库建分支 xff0c 要求每个人fork一个仓库 xff0c 以后就在自
  • Postman安装与入门简单教程

    在测试技术中 xff0c 接口测试是最基础 最重要 xff0c 也是收益最高的测试技术 xff0c 作为接口测试工具中的No 1 xff0c 一起来看看Postman是怎么入门的吧 目录 1 安装Postman2 注册Postman账号并登
  • 使用 Intel RealSense 采集图片并制作机器视觉数据集

    本文章主要涉及以下工作 xff1a xff08 1 xff09 讲述如何使用 Intel RealSense 相机采集RGB图像 深度图像 伪彩色化的深度图像以及 npy 格式保存的深度数据 xff08 2 xff09 采集到的图像可适用于