6D位姿估计的理解及BOP数据集参数说明

2024-02-06 12:59

本文主要是介绍6D位姿估计的理解及BOP数据集参数说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

6D位姿估计的理解及BOP数据集参数说明

一、6D位姿估计
姿态估计在百度上搜会出现“姿态估计问题就是确定某一三维目标物体的方位指向问题”的解释,但是具体来讲确定某一三维目标物体的方位指向问题到底是什么意思呢?

首先,6D表示6个自由度,3个自由度的位移(Translation)和3个自由度的空间旋转(Rotation)。位移即方位,旋转即指向。将它们组合起来便构成了“位姿”。位姿并不是绝对的,它指的是两个坐标系之间的变换(Translation and Rotation),而坐标系有世界坐标系、相机坐标系和物体坐标系三种,所以也就有了物体6d位姿估计和相机6d位姿估计两种位姿估计。

这两种位姿估计本质上讲是差不多的,区别就是从哪一个坐标系变换到相机坐标系。
一、6d物体位姿估计
6d物体位姿估计的任务就是估计从物体坐标系到相机坐标系的刚性变换,即在拍摄照片时,相机坐标系相对于物体坐标系发生的平移和旋转变换。通常用物体坐标系到相机系的RT变换来表示:
在这里插入图片描述

  • Tc:物体在相机坐标系下的3D点
  • Tm:物体在物体坐标系下的3D点
  • Rcm:物体从物体坐标系到相机坐标系的旋转
  • tcm:物体从物体坐标系到相机坐标系的位移

二、6d相机位姿估计
6d物体位姿估计的任务就是估计从世界坐标系到相机坐标系的刚性变换,即在拍摄照片时,相机坐标系相对于世界坐标系发生的平移和旋转变换。通常用世界坐标系到相机系的RT变换来表示:
在这里插入图片描述

  • Tc:物体在相机坐标系下的3D点
  • Tm:物体在世界坐标系下的3D点
  • Rcm:物体从世界坐标系到相机坐标系的旋转
  • tcm:物体从世界坐标系到相机坐标系的位移

三、BOP数据集参数
BOP数据集,这里可以学习数据集的相关内容和下载数据集。
在跑ssd-6d时用到了BOP数据集里的部分数据集,有一些参数我不太明白,后来通过查找资料,终于知道了每个文件里的参数是什么意思。
1.相机参数
Teijani数据集

对应于如图所示的文件“scene_camera.json”,打开后包括以下参数:

  • cam_K:表示相机的内参,是一个三行三列的矩阵K按行来保存得到的向量
  • cam_R_w2c:表示世界坐标系到相机坐标系的旋转矩阵R_w2c(3×3)按行来保存得到的向量
  • cam_t_w2c:表示世界坐标系到相机坐标系的三行一列的位移向量t_w2c(3×1)
  • depth_scale:一个因子,用来与depth图乘积得到深度值(单位:mm)
  • view_level:试点细分级别

相机矩阵:P_w2i = K * [R_w2c, t_w2c]

世界坐标系下的3D点与图片上的2D点的转换:sp_i=P_w2ip_w

  • p_w = [x, y, z, 1]’ 世界坐标系下点的3D坐标
  • p_i =[u, v, 1] 相机坐标系2D坐标
    2.真值标记
    在这里插入图片描述

对应如图所示的文件“scene_gt.json”,打开后包括以下参数:

  • obj_id:物体的id
  • cam_R_m2c:物体坐标系到相机坐标系的三行三列的旋转矩阵R_m2c按行保存的结果
  • cam_t_m2c:物体坐标系到相机坐标系的三行一列的位移向量t_m2c

相机矩阵:P_w2i = K * [R_w2c, t_w2c]

物体坐标系(Model)下的3D点与相机坐标系下2D点的转换:sp_i=P_w2ip_w

  • p_w = [x, y, z, 1]’ 物体坐标系下点的3D坐标
  • p_i =[u, v, 1] 相机坐标系下的2D坐标

3.位姿真值的Meta信息
在这里插入图片描述
对应如图所示的文件“scene_gt_info.json”,打开后包括以下参数:

  • bbox_obj:物体的二维bbox,四个值分别表示(左上角坐标,框宽,框高)=(x,y,width,height)
  • bbox_visib:物体轮廓的可见部分的二维bbox
  • px_count_all : 物体二维bbox中的像素总数
  • px_count_visib:物体轮廓的可见部分的二维bbox中的像素数
  • px_count_valid:depth图像中的非零值点在二维bbox中的像素数
  • visib_fract := px_count_visib/px_count_all可见部分的占比

参考:
https://blog.csdn.net/u014712806/article/details/112339410
https://blog.csdn.net/dsoftware/article/details/106101681

这篇关于6D位姿估计的理解及BOP数据集参数说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/684396

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java