Open3D Intrinsic shape signatures (ISS) 固有形状特征码

简介: Open3D Intrinsic shape signatures (ISS) 固有形状特征码

Intrinsic shape signatures (ISS) 固有形状特征码

在本教程中,我们将展示如何检测 3D 形状的 ISS 关键点。该实现基于于忠提出的关键点检测模块,“内在形状特征:用于3D对象识别的形状描述符”,2009年。( Yu Zhong , “Intrinsic Shape Signatures: A Shape Descriptor for 3D Object Recognition)

ISS Keypoints

ISS 显著性测度基于属于p pp的点的散射矩Σ(p)的特征值分解(EVD)。

Σ(p)=N1qN(p)(qμp)(qμp)Twithμp=N1qN(p)q

给定Σ(p),其数量级数量级递减的特征值在这里表示为 λ1、λ2、λ3。在修剪阶段,保留两个连续特征值之间比率低于阈值的点:

λ1(p)λ2(p)<γ12λ2(p)λ3(p)<γ23

其基本原理是避免在沿主要方向表现出类似扩散的点上检测关键点,在这些点上无法建立可重复的规范参考系,因此,随后的描述阶段很难变得有效。在其余点中,显著性由最小特征值的大小决定

ρ(p)λ3(p)

以便仅包括沿每个主方向变化较大的点。

在检测步骤之后,如果某个点在给定邻域上具有最大显著性值,则该点将被视为关键点。

注意:有关更多详细信息,请参考原始出版物或Tombari et.al 的“3D关键点探测器的性能评估”(Performance Evaluation of 3D Keypoint Detectors)。

ISS keypoint detection example ISS 关键点检测示例

#Intrinsic shape siqnatures
import open3d as o3d
import time

# Compute ISS Keypoints on ArmadilloMesh
armadillo_path = r'../data/ArmadilloMesh.ply'
mesh = o3d.io.read_triangle_mesh(armadillo_path)
mesh.compute_vertex_normals()

pcd = o3d.geometry.PointCloud()
pcd.points = mesh.vertices

tic = time.time()
keypoints = o3d.geometry.keypoint.compute_iss_keypoints(pcd)
toc = 1000 * (time.time() - tic)
print("ISS Computation took {:.0f} [ms]".format(toc))

mesh.compute_vertex_normals()
mesh.paint_uniform_color([0.5, 0.5, 0.5])
keypoints.paint_uniform_color([1.0, 0.75, 0.0])
o3d.visualization.draw_geometries([keypoints, mesh])

# This function is only used to make the keypoints look better on the rendering
def keypoints_to_spheres(keypoints):
    spheres = o3d.geometry.TriangleMesh()
    for keypoint in keypoints.points:
        sphere = o3d.geometry.TriangleMesh.create_sphere(radius=0.001)
        sphere.translate(keypoint)
        spheres += sphere
    spheres.paint_uniform_color([1.0, 0.75, 0.0])
    return spheres

# Compute ISS Keypoints on Standford BunnyMesh, changing the default parameters
bunny_path = r'../data/BunnyMesh.ply'
mesh = o3d.io.read_triangle_mesh(bunny_path)
mesh.compute_vertex_normals()

pcd = o3d.geometry.PointCloud()
pcd.points = mesh.vertices

tic = time.time()
keypoints = o3d.geometry.keypoint.compute_iss_keypoints(pcd,
                                                        salient_radius=0.005,
                                                        non_max_radius=0.005,
                                                        gamma_21=0.5,
                                                        gamma_32=0.5)
toc = 1000 * (time.time() - tic)
print("ISS Computation took {:.0f} [ms]".format(toc))

mesh.compute_vertex_normals()
mesh.paint_uniform_color([0.5, 0.5, 0.5])
o3d.visualization.draw_geometries([keypoints_to_spheres(keypoints), mesh])
相关文章
|
数据采集 并行计算 PyTorch
modelscope问题之训练报错如何解决
ModelScope训练是指在ModelScope平台上对机器学习模型进行训练的活动;本合集将介绍ModelScope训练流程、模型优化技巧和训练过程中的常见问题解决方法。
1469 0
|
Web App开发 数据采集 JSON
Python实现urllib3和requests库使用 | python爬虫实战之五
本节介绍了urllib3库和requests库中的一些方法的使用。
Python实现urllib3和requests库使用 | python爬虫实战之五
|
6月前
|
机器学习/深度学习 编解码 算法
基于SWO、COA、LSO、GRO、LO算法(五种2023年最新算法)求解无人机路径规划研究(Matlab代码实现)
基于SWO、COA、LSO、GRO、LO算法(五种2023年最新算法)求解无人机路径规划研究(Matlab代码实现)
301 0
|
6月前
|
机器学习/深度学习 传感器 编解码
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
DINOv3是Meta推出的自监督视觉模型,支持冻结主干、仅训练轻量任务头即可在分割、深度估计等任务上达到SOTA,极大降低训练成本。其密集特征质量优异,适用于遥感、工业检测等多领域,真正实现“一个模型走天下”。
4911 2
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
|
10月前
|
人工智能 负载均衡 API
长连接网关技术专题(十二):大模型时代多模型AI网关的架构设计与实现
随着 AI 技术快速发展,业务对 AI 能力的渴求日益增长。当 AI 服务面对处理大规模请求和高并发流量时,AI 网关从中扮演着至关重要的角色。AI 服务通常涉及大量的计算任务和设备资源占用,此时需要一个 AI 网关负责协调这些请求来确保系统的稳定性与高效性。因此,与传统微服务架构类似,我们将相关 API 管理的功能(如流量控制、用户鉴权、配额计费、负载均衡、API 路由等)集中放置在 AI 网关层,可以降低系统整体复杂度并提升可维护性。 本文要分享的是B站在大模型时代基于多模型AI的网关架构设计和实践总结,希望能带给你启发。
863 4
|
6月前
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
416 4
|
计算机视觉 Windows
VS2019配置OpenCV
VS2019配置OpenCV
266 0
|
机器学习/深度学习 存储 人工智能
世界最快硬件加速器Groq LPU的底层架构设计!
【2月更文挑战第19天】世界最快硬件加速器Groq LPU的底层架构设计!
650 1
世界最快硬件加速器Groq LPU的底层架构设计!
|
JavaScript Java 定位技术
springboot+vue医疗服务系统(源码+文档)
医疗服务系统实现了以下功能: 管理管理员:首页、个人中心、普通村民管理、乡村医生管理、公告信息管理、乡村诊室管理、健康档案管理、学习培训管理、考核信息管理、医疗地图管理、医疗药品管理、类型信息管理、购买信息管理、留言板管理、管理员管理、系统管理。 乡村医生:首页、个人中心、公告信息管理、乡村诊室管理、健康档案管理、紧急事故管理、学习培训管理、考核信息管理、购买信息管理、系统管理。 普通村民:首页、个人中心、健康档案管理、紧急事故管理、留言板管理。 前台首页:首页、公告信息、医疗地图、医疗药品、留言反馈、个人中心、后台管理、医生咨询模块的修改和维护操作。
|
数据可视化 云计算
PCL关键点检测--Harris关键点
PCL关键点检测--Harris关键点
PCL关键点检测--Harris关键点