首页
/ 3D点云缺陷检测新范式:Rerun工业质检案例全解析

3D点云缺陷检测新范式:Rerun工业质检案例全解析

2026-02-04 04:25:07作者:滕妙奇

你还在为零件表面裂纹、凹陷等微小缺陷的人工检测效率低下而烦恼吗?传统工业质检依赖人工目检,不仅耗时费力,还容易漏检。本文将展示如何利用Rerun实现零件缺陷的三维点云可视化检测,帮助你快速定位问题,提升质检效率。读完本文,你将掌握使用Rerun进行三维点云数据可视化的基本方法,了解如何在工业场景中应用该技术,并通过实际案例学习缺陷检测的实现流程。

工业质检的痛点与Rerun解决方案

在工业制造领域,零件质量检测是确保产品可靠性的关键环节。传统的检测方法主要依赖人工肉眼观察和接触式测量,这种方式存在效率低、主观性强、难以检测内部缺陷等问题。特别是对于复杂形状的零件,人工检测往往力不从心。

Rerun是一个开源的可视化工具,能够快速、轻松地集成到现有系统中,实现多模态数据的流式可视化。它基于Rust语言开发,使用egui界面库,具有高性能和易用性的特点。通过Rerun,我们可以将三维点云数据实时可视化,直观地展示零件的表面结构,从而快速发现潜在的缺陷。

官方文档:docs/getting-started.md 社区教程:README.md

Rerun三维点云可视化基础

Rerun支持多种数据类型的可视化,其中三维点云是工业质检中的重要数据形式。通过将激光扫描或摄影测量得到的点云数据导入Rerun,我们可以在三维空间中查看零件的形状和细节。

以下是一个使用Rerun记录三维点云数据的简单示例代码,来自examples/python/open_photogrammetry_format/open_photogrammetry_format.py

def log_point_cloud(self) -> None:
    """Log the project's point cloud."""
    points = self.project.point_cloud_objs[0].nodes[0]
    rr.log("world/points", rr.Points3D(points.position, colors=points.color), static=True)

这段代码从OPF项目中读取点云数据,并使用rr.log函数将其记录到Rerun中。rr.Points3D用于表示三维点云,其中包含点的位置和颜色信息。通过设置static=True,我们可以确保点云数据在可视化界面中保持静止,方便观察。

工业质检案例:零件缺陷检测流程

数据采集与预处理

在工业质检中,我们首先需要使用激光扫描仪或其他三维测量设备采集零件的点云数据。这些数据通常以PLY、OBJ等格式存储。Rerun支持多种数据格式的导入,例如examples/assets/example.ply就是一个示例点云文件。

点云数据可视化

将采集到的点云数据导入Rerun后,我们可以通过调整视角、缩放和平移来观察零件的细节。Rerun提供了丰富的交互功能,帮助我们从不同角度检查零件表面。

以下是一个使用Rerun记录摄像头和点云数据的示例,来自examples/python/objectron/objectron/main.py

def log_point_cloud(point_cloud: ARPointCloud) -> None:
    """Logs a point cloud from an `ARFrame` using the Rerun SDK."""
    positions = np.array([[p.x, p.y, p.z] for p in point_cloud.point]).astype(np.float32)
    rr.log("world/points", rr.Points3D(positions, colors=[255, 255, 255, 255]))

这段代码将ARFrame中的点云数据转换为NumPy数组,并记录到Rerun中。通过设置白色作为点的颜色,我们可以在深色背景下清晰地看到点云的形状。

缺陷检测与标注

在可视化界面中,我们可以通过观察点云的异常区域来检测缺陷。例如,零件表面的凹陷会导致点云在该区域出现明显的凹痕,而裂纹则表现为点云的不连续。Rerun支持在三维空间中绘制边界框,帮助我们标注缺陷位置。

以下是一个使用Rerun记录边界框的示例代码:

def log_annotated_bboxes(bboxes: Iterable[Object]) -> None:
    """Logs all the bounding boxes annotated in an `ARFrame` sequence using the Rerun SDK."""
    for bbox in bboxes:
        if bbox.type != ObjectType.BOUNDING_BOX:
            continue
        rot = R.from_matrix(np.asarray(bbox.rotation).reshape((3, 3)))
        rr.log(
            f"world/annotations/box-{bbox.id}",
            rr.Boxes3D(
                half_sizes=0.5 * np.array(bbox.scale),
                centers=bbox.translation,
                rotations=rr.Quaternion(xyzw=rot.as_quat()),
                colors=[160, 230, 130, 255],
                labels=bbox.category,
            ),
            static=True,
        )

这段代码遍历所有标注的边界框,并使用rr.Boxes3D将其记录到Rerun中。通过设置不同的颜色和标签,我们可以区分不同类型的缺陷。

案例展示与结果分析

为了更直观地展示Rerun在工业质检中的应用,我们可以查看测试资产中的三维模型文件。例如,tests/assets/cube.glb是一个立方体模型,我们可以将其导入Rerun并模拟缺陷检测过程。

立方体模型点云可视化

在实际应用中,我们可以将有缺陷的零件点云与标准零件的点云进行对比,通过Rerun的可视化功能快速定位差异区域。例如,使用Rerun的时间线功能,我们可以在同一视图中切换显示标准零件和待测零件的点云,从而清晰地观察到缺陷位置。

总结与展望

本文介绍了如何使用Rerun实现工业质检中的三维点云可视化检测。通过Rerun的高效可视化能力,我们可以快速发现零件的缺陷,提高质检效率和准确性。未来,Rerun还可以与AI算法结合,实现缺陷的自动检测和分类,进一步提升工业质检的智能化水平。

如果你对Rerun感兴趣,可以参考以下资源深入学习:

希望本文能够帮助你了解Rerun在工业质检中的应用,欢迎点赞、收藏并关注我们,获取更多关于数据可视化的实用教程!

登录后查看全文
热门项目推荐
相关项目推荐