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数据集参数说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_46428351/article/details/115357325
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/684396

相关文章

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语