EPOS: Estimating 6D Pose of Objects with Symmetries

2023-10-31 19:50

本文主要是介绍EPOS: Estimating 6D Pose of Objects with Symmetries,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

EPOS

  • 1 表面面片
  • 2 网络架构
    • 2.1 语义分割
    • 2.2 所属面片分类
    • 2.3 三维点坐标回归
    • 2.4 损失函数
  • 3 对称物体
  • 4 位姿求解

多对多
  EPOS本质上也是一种基于2D-3D稠密对应的6D位姿估计方法,只不过它不是直接回归得到物体图像区域某像素对应的归一化的三维坐标点,而是将物体三维模型表面分割成一定数量的面片,这样在确定2D-3D对应关系时,首先是确定二维像素点对应的面片(这是一个分类问题),然后再回归得到三维点相对于该面片局部坐标系的坐标。
  这种间接地确定2D-3D对应关系的方法还有一个好处就是考虑了目标物体是对称物体时的多对多的关系(这里的多对多指的是图像中对称物体的某一个像素可能对应了多个三维模型点,并且三维模型上的一点也可能对应了多个图像上的点,见上图)。

1 表面面片

  假设某个数据集包含了 m m m个物体,则每个物体的三维模型都可以通过一组顶点 V i V_i Vi和一组三角面片 T i T_i Ti表示,其中, i ∈ I = { 1 , . . . , m } i\in I=\{1,...,m\} iI={1,...,m}。物体三维模型的表面 S i S_i Si可以根据下式分为 n n n个面片:
S i j = { x ∣ x ∈ S i ∧ d ( x , g i j ) < d ( x , g i k ) } ∀ k ∈ J , k ≠ j (1) S_{ij}=\{\boldsymbol x|\boldsymbol x\in S_i\wedge d(\boldsymbol x,\boldsymbol g_{ij})<d(\boldsymbol x,\boldsymbol g_{ik})\}\\ \forall k\in J,k\not=j \tag{1} Sij={xxSid(x,gij)<d(x,gik)}kJ,k=j(1)
其中, j ∈ J = { 1 , . . . , n } j\in J=\{1,...,n\} jJ={1,...,n} d ( ⋅ ) d(\cdot) d()表示空间中两个点的欧式距离, { g i j } j = 1 n \{\boldsymbol g_{ij}\}_{j=1}^n {gij}j=1n表示每个面片预先选定的中点,表面面片的中点通过FPS算法确定(从物体模型的重心点开始迭代选择距离当前点集最远的点,最后将重心点删除)。

2 网络架构

architecture
  网络整体是一个Encoder-Decoder型的结构,输入一张RGB图像,输出为原尺寸大小,但通道数为 4 m n + m + 1 4mn+m+1 4mn+m+1的张量,输出张量表示了三部分结果。

2.1 语义分割

  输出中的 m + 1 m+1 m+1个通道表示二维像素点 u \boldsymbol u u语义分割的结果。

2.2 所属面片分类

  输出中的 m n mn mn个通道表示二维像素点 u \boldsymbol u u对应的所属面片的分类结果。

2.3 三维点坐标回归

  输出中的 3 m n 3mn 3mn个通道表示二维像素点 u \boldsymbol u u对应的三维坐标点的回归结果。
r i j ( u ) = ( x − g i j ) / h i j (2) \boldsymbol r_{ij}(u)=(\boldsymbol x-\boldsymbol g_{ij})/h_{ij}\tag{2} rij(u)=(xgij)/hij(2)
其中, h i j h_{ij} hij是对应面片3D BBox的最长边的长度。

2.4 损失函数

L ( u ) = E ( a ‾ ( u ) , a ( u ) ) + ∑ i ∈ I a ‾ i ( u ) [ λ 1 E ( b ‾ i ( u ) , b i ( u ) ) + ∑ j ∈ J b ‾ i j ( u ) λ 2 H ( r ‾ i j ( u ) , r i j ( u ) ) ] (3) L(\boldsymbol u)=E(\overline a(\boldsymbol u),a(\boldsymbol u))+\sum_{i\in I}\overline a_i(\boldsymbol u)\bigg[ \lambda _1E(\overline b_i(\boldsymbol u),b_i(\boldsymbol u))+\sum_{j\in J}\overline b_{ij}(\boldsymbol u)\lambda _2H(\overline r_{ij}(\boldsymbol u),r_{ij}(\boldsymbol u))\bigg]\tag{3} L(u)=E(a(u),a(u))+iIai(u)[λ1E(bi(u),bi(u))+jJbij(u)λ2H(rij(u),rij(u))](3)
式中, a ‾ ( u ) \overline a(\boldsymbol u) a(u)是一个 m m m维的one-hot向量, b ‾ i ( u ) \overline b_i(\boldsymbol u) bi(u)是一个 n n n的向量,注意,对于对称物体来说,由于一个像素点可能对应三维模型中的多个面片,所以它不是一个one-hot向量,关于此文中有如下描述:
symmetry

3 对称物体

  由于在构建模型时将对称性考虑在内,故不需要在损失函数部分或者后续求解位姿时考虑对称性的问题。

4 位姿求解

  位姿求解部分作者使用了基于Progressive-X的GC-RANSAC,其中GC-RANSAC是一个更鲁棒的RANSAC改进版本,而Progressive-X算法可以用来处理多模型拟合的问题,在这里使用可以用来解决同一种物体多实例的6D位姿估计问题。

这篇关于EPOS: Estimating 6D Pose of Objects with Symmetries的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JavaScript - Objects

对象定义: let person = {name: {first: "Bob",last: "smith"},age: 32,gender: 'male',interests: ['music', 'skiing'],bio: function () {alert(this.name[0] + ' ' + this.name[1] + ' is ' + this.age + ' year

【译】PCL官网教程翻译(18):估计一组点的视点特征直方图(VFH)签名 - Estimating VFH signatures for a set of points

英文原文查看 估计一组点的视点特征直方图(VFH)签名 本文描述了视点特征直方图([VFH])描述符,这是一种针对聚类(如对象)识别和6DOF姿态估计问题的点簇表示方法。 下图展示了一个VFH识别和姿态估计的例子。给定一组火车数据(除最左边的点云外,最上面一行、最下面一行),学习一个模型,然后使用一个云(最左边的部分)查询/测试模型。匹配的结果按从最好到最差的顺序从左到右从左下角开始。有关更多

论文笔记:Estimating future human trajectories from sparse time series data

sigspatial 2023 humob竞赛paper hiimryo816/humob2023-MOBB (github.com) 1 数据集分析 这里只分享了HuMob数据集1的内容 1.1 假日分析 对HuMob数据集#1地理数据的方差分析显示了非工作日的模式 在某些天的y坐标方差中有显著的峰值,这是非工作日的象征【x坐标有相似的模式】 ——>识别了任务1数据集中最有可能是

每日AIGC最新进展(54):中科大提出Pose引导的图像生成模型、韩国科技学院提出发型控制模型、北大提出风格生成数据集CSGO

Diffusion Models专栏文章汇总:入门与实战 GRPose: Learning Graph Relations for Human Image Generation with Pose Priors 在过去的研究中,基于扩散模型的人工生成技术在根据特定条件合成高质量人像方面取得了显著进展。然而,尽管之前的方案引入了姿势先验,现有方法仍然在高质量图像生成和稳定的姿势对齐上存

URP custompasscustom render objects

https://dbbh666.blog.csdn.net/article/details/141296728?spm=1001.2014.3001.5502 上一次 custom render pass的时候,直接是quad的渲染,如果想把任意对象绘制到FBO怎么写呢 参考这两个高手的文章,总结一下 https://www.bilibili.com/read/cv6735961/ https:

skimage包的小优化(2):模仿remove_small_objects()函数保留图片中连通域最大的区域

python模仿remove_small_objects()函数保留图片中连通域最大的区域 skimage包的morphology子模块中,提供了一个remove_small_objects()函数,可以通过自己设定的连通域面积阈值有效去掉图片中的噪点,但是在具体使用过程中会发现:这个函数使用起来还有诸多的不便,好在这个函数的源代码并不长,在在skimage包的小优化(1):模仿remove_s

【python】OpenCV—Single Human Pose Estimation

文章目录 1、Human Pose Estimation2、模型介绍3、基于图片的单人人体关键点检测4、基于视频的单人人体关键点检测5、左右校正6、关键点平滑7、涉及到的库函数scipy.signal.savgol_filter 8、参考 1、Human Pose Estimation Human Pose Estimation,即人体姿态估计,是一种基于计算机视觉和深度学习的技

基于 YOLOv8n-pose 模型的图像特征提取,可用于识别特定的姿态

目录 1. __init__ 方法:初始化类的实例 2. save_pose_feat 方法: 3. load_db_pose_feat 方法: 4. cal_similarity 方法: 实现了一个基于 YOLOv8n-pose 模型的图像特征提取和相似性比较系统。它可以从图像中提取人体关键点信息,并将其保存为特征文件。然后,通过计算输入图像与数据库中图像特征的相似度,确定输入

Mediapipe holistic pose 以及 blazepose 的前端开发

文章目录 参考: 参考: 1、blazepose:https://github.com/tensorflow/tfjs-models/tree/master/pose-detection/src/blazepose_mediapipe

AlphaPose姿态估计论文翻译和代码解读RMPE: Regional Multi-Person Pose Estimation

姿态估计模型AlphoPose模型的论文 或者论文V3版 ICCV2017接收,上海交大和腾讯优图的论文 代码 ,基于pytorch或者Tensorflow 如果想了解姿态估计的简单概述,可以点击我的另一篇综述文章 RMPE: Regional Multi-Person Pose Estimation Abstract 自然场景的多人姿态估计是一个极大的挑战。虽然最好的人类检测器已经有很好的