当前位置: 首页 > news >正文

计算 N*4*4 位姿形状的逆变换,在N*3*4位姿后补充 [0,0,0,1]

针对 [N,4,4] shape 的 poses,函数 ComputeInversePoses 返回 相同 shape,但是每个 pose 都是前面的 逆 pose。

针对 [N,3,4] shape 的 poses,函数 AddIdentityToPoses 返回 在每个 [3,4] pose下加上 [0,0,0,1] 后的pose,返回的 shape [N,4,4]

def ComputeInversePoses(poses):if isinstance(poses, torch.Tensor):# Convert torch tensor to numpy arrayposes = poses.numpy()# Check if poses is a numpy arrayif not isinstance(poses, np.ndarray):raise ValueError("Input poses must be a numpy array")# Check if poses is 3-dimensionalif len(poses.shape) != 3 or poses.shape[1:] != (4, 4):raise ValueError("Input poses must be a 3-dimensional array with shape (N, 4, 4)")# Create an array to store the inverse posesinverse_poses = np.zeros_like(poses)# Compute the inverse for each 4x4 matrixfor i in range(poses.shape[0]):inverse_poses[i] = np.linalg.inv(poses[i])return inverse_poses.astype(np.float32)def AddIdentityToPoses(poses):# Check if poses is a torch tensorif isinstance(poses, torch.Tensor):# Convert torch tensor to numpy arrayposes = poses.numpy()# Check if poses is 3-dimensionalif len(poses.shape) != 3 or poses.shape[2] != 4:raise ValueError("Input poses must be a 3-dimensional array with shape (N, 3, 4)")# Create poses_with_identity arrayposes_with_identity = np.zeros((poses.shape[0], 4, 4), dtype=np.float32)poses_with_identity[:, :3, :4] = posesposes_with_identity[:, 3, :] = [0, 0, 0, 1]return poses_with_identity.astype(np.float32)
http://www.lryc.cn/news/263724.html

相关文章:

  • 人工智能可以战胜人类智慧大脑么?
  • 【数据结构和算法】 K 和数对的最大数目
  • 基于ssm高校推免报名系统源码和论文
  • 算法设计与分析2023秋-头歌实验-实验七 动态规划
  • 复杂 SQL 实现分组分情况分页查询
  • JavaScript---如何完美的判断返回对象是否有值
  • kafka offset sasl加密连接
  • Android studio矩形背景颜色以及弧度的设置
  • Acrel-1000DP分布式光伏系统在某重工企业18MW分布式光伏中应用——安科瑞 顾烊宇
  • 3 python基本语法 - Dict 字典
  • Magnific AI:彻底改变 AI 生成图像的升级
  • BKP 备份寄存器 RTC 实时时钟-stm32入门
  • 1.1 数据结构-数据的表示
  • UNIX Linux系统 启动PPOCRLabel报错[已放弃 (核心已转储)]
  • 前端开发中的webpack打包工具
  • Mybatis配置-数据库厂商标识(databaseIdProvider)
  • 【Java】使用递归的方法获取层级关系数据demo
  • 工业6轴机械臂运动学逆解(解析解)
  • 管理类联考——数学——真题篇——按题型分类——充分性判断题——蒙猜A/B
  • 为什么GRU和LSTM能够缓解梯度消失或梯度爆炸问题?
  • 【力扣100】146.LRU缓存
  • 【Vue中给输入框加入js验证_blur失去焦点进行校验】
  • vue3项目引入电子签名(可横屏竖屏)
  • mysql中count(*)、count(1)、count(主键)、count(字段)的区别
  • Nginx生成自签名证书从而添加域名的HTTPS访问
  • 无框架Java转go语言写http与tcp请求
  • 【Git】Git基本操作
  • JavaSE学习笔记 Day20
  • 【蓝桥杯选拔赛真题52】python空调模式 第十四届青少年组蓝桥杯python 选拔赛比赛真题解析
  • Android Studio: 解决Gradle sync failed 错误