分享

Open3d学习计划—高级篇 8(网格变形)

 点云PCL 2021-03-09

Open3D是一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而设置的。

本系列学习计划有Blue同学作为发起人,主要以Open3D官方网站的教程为主进行翻译与实践的学习计划。点云PCL公众号作为免费的3D视觉,点云交流社区,期待有使用Open3D或者感兴趣的小伙伴能够加入我们的翻译计划,贡献免费交流社区,为使用Open3D提供中文的使用教程。

网格变形

如果我们想使用少量的约束使得三角网格变形,得使用相应的网格变形算法。Open3d实现了[SorkineAndAlexa2007] 中的尽可能严格的算法,以优化下面的能量函数:

这里的Ri表示 我们要优化的旋转矩阵,pi和pj分别表示优化前后的顶点位置。N(i)表示顶点i的邻域集合。权重wij表示余切权重(cot weights)。

Open3d实现的算法的接口是deform_as_rigid_as_possible。这个算法的第一个参数是一组constraint_ids,他是引用的三角网格的顶点。第二个参数constrint_pos定义了这些顶点优化后的位置。因为这个优化过程是一个迭代的过程,所以我们也能通过max_iter定义迭代次数。

mesh = o3dtut.get_armadillo_mesh()

vertices = np.asarray(mesh.vertices)static_ids = [idx for idx in np.where(vertices[:, 1] < -30)[0]]static_pos = []for id in static_ids: static_pos.append(vertices[id])handle_ids = [2490]handle_pos = [vertices[2490] + np.array((-40, -40, -40))]constraint_ids = o3d.utility.IntVector(static_ids + handle_ids)constraint_pos = o3d.utility.Vector3dVector(static_pos + handle_pos)

with o3d.utility.VerbosityContextManager(o3d.utility.VerbosityLevel.Debug) as cm: mesh_prime = mesh.deform_as_rigid_as_possible( constraint_ids, constraint_pos, max_iter=50)
print('Original Mesh')R = mesh.get_rotation_matrix_from_xyz((0,np.pi,0))o3d.visualization.draw_geometries([mesh.rotate(R, center=mesh.get_center())])print('Deformed Mesh')mesh_prime.compute_vertex_normals()o3d.visualization.draw_geometries([mesh_prime.rotate(R, center=mesh_prime.get_center())])

Original Mesh

Deformed Mesh

Smoothed ARAP

Open3d实现了ARAP目标的平滑版本,定义为:

这惩罚相邻旋转矩阵的偏差,α 是正则项的权衡参数,A是表面积。
通过将参数energy和Smoothed一起使用,可以在deform_as_rigid_as_possible中使用这个平滑目标。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多