Halcon 3D视觉基础

课程基本信息

  • 课程名称:Halcon 3D视觉处理技术
  • 课时安排:6课时(270分钟)
  • 授课对象:机器视觉中高级学习者
  • 先修要求:熟悉Halcon 2D图像处理

教学目标

  1. 掌握3D视觉系统组成与标定方法
  2. 能够处理点云数据并进行特征提取
  3. 熟练实现3D匹配与位姿估计
  4. 具备3D测量与检测系统开发能力

教学重点与难点

  • 重点
    • 点云数据处理流程
    • 3D匹配原理与实现
  • 难点
    • 多传感器数据融合
    • 点云配准算法
    • 复杂曲面测量

教学准备

  1. 硬件设备
    • 结构光相机(如康耐视/基恩士)
    • 激光轮廓仪
    • 标定板(棋盘格/圆点阵列)
  2. 软件环境
    • Halcon 21.05+(含3D模块)
    • 3D可视化工具(如MeshLab)
  3. 教学样本
    • 工业零件点云数据(.ply格式)
    • 3D打印缺陷样品

详细教学内容

一、3D视觉基础(45分钟)

1.1 3D成像技术对比

技术类型 原理 精度 适用场景
结构光 光栅相位解码 ±0.01mm 静态物体
双目视觉 视差计算 ±0.05mm 动态场景
激光三角 光斑位移 ±0.005mm 高反光面
TOF 飞行时间 ±1mm 大范围场景

1.2 3D坐标系系统

1
2
3
4
graph TB
A[相机坐标系] --> B[世界坐标系]
B --> C[物体坐标系]
C --> D[机器人坐标系]

1.3 数据格式

1
2
3
4
* 点云数据结构
get_object_model_3d_params(ObjectModel3D, 'point_coord_x', PointX)
get_object_model_3d_params(ObjectModel3D, 'point_coord_y', PointY)
get_object_model_3d_params(ObjectModel3D, 'point_coord_z', PointZ)

二、3D标定技术(60分钟)

2.1 相机标定

1
2
3
4
5
* 多相机标定
create_calib_data('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param(CalibDataID, 0, 'area_scan_telecentric_division', [])
find_calib_object(Image, CalibDataID, 0, 0, 0, [], [])
calibrate_cameras(CalibDataID, Error)

2.2 手眼标定

1
2
3
* Eye-to-Hand标定
set_calib_data(CalibDataID, 'model', 'general', 'hand_eye_moving_cam')
perform_hand_eye_calibration(CalibDataID, Errors)

2.3 实验:平面度标定验证

1
2
3
* 标准平面验证
fit_primitives_object_model_3d(ObjectModel3D, 'plane', [0.1], [], [], Pose, Quality)
deviation_object_model_3d(ObjectModel3D, Pose, 'plane', 'distance_3d', Deviation)

三、点云处理(90分钟)

3.1 点云滤波

1
2
3
4
* 离群点去除
remove_points_object_model_3d(ObjectModel3D, 'point_coord_z', -10, 10, ObjectModel3DFiltered)
* 降采样
sample_object_model_3d(ObjectModel3DFiltered, 'fast', 0.5, [], [], ObjectModel3DSampled)

3.2 特征提取

1
2
3
4
* 平面提取
segment_object_model_3d(ObjectModel3D, 'distance_3d', 0.2, [30,0.5], ObjectModel3DSegmented)
* 边缘提取
edges_object_model_3d(ObjectModel3D, 'sobel', 0.5, 'mean', 10, 'all', EdgeRegions)

3.3 曲面分析

1
2
3
4
* 曲率计算
surface_normals_object_model_3d(ObjectModel3D, 'mls', 0.3, 10, 'orientation_consistent', SurfaceNormals)
* 缺陷检测
local_deformable_surface_model(DefectFreeModel, ObjectModel3D, 'threshold', 0.1, 'score', Score)

四、3D匹配与测量(75分钟)

4.1 3D形状匹配

1
2
3
* 刚性匹配
create_shape_model_3d(ObjectModel3D, [], [], [], [], [], [], ShapeModel3DID)
find_shape_model_3d(ObjectModel3D, ShapeModel3DID, 0.7, [], [], Pose, Score)

4.2 变形匹配

1
2
3
* 可变形匹配
create_surface_model(ObjectModel3D, 'sampled', 0.5, [], [], SurfaceModelID)
find_surface_model(ObjectModel3D, SurfaceModelID, 0.7, 0.1, 0.5, 'num_matches', 1, Pose, Score, SurfaceMatchingResultID)

4.3 精密测量

1
2
3
4
* 体积计算
volume_object_model_3d(ObjectModel3D, 'true', Volume)
* 距离测量
distance_object_model_3d(ObjectModel3D1, ObjectModel3D2, 'point_to_point', 'min', Distance)

实验设计

基础实验

  1. 点云滤波与平面拟合(平面度<0.05mm)
  2. 标准块规尺寸测量(误差<±0.02mm)

进阶实验

  1. 复杂曲面缺陷检测(凹坑深度>0.1mm)
  2. 多视角点云配准(重叠率>30%)

综合项目
汽车零部件全尺寸检测:

  • 关键尺寸测量
  • 装配间隙分析
  • 点云比对报告生成

教学策略

  1. 虚实结合

    • 先使用预存点云数据教学
    • 再操作真实3D相机采集
  2. 误差溯源

    • 建立误差传递模型
    • 标定-采集-处理全链路分析
  3. 工业对标

    • 导入GD&T标准
    • 按照ISO 1101进行评价

评估方案

考核项目

  1. 3D标定精度验证(重复性<0.01mm)
  2. 匹配稳定性测试(100次重复)
  3. 复杂曲面测量(自由曲面偏差分析)

评分标准

指标 权重 优秀标准
标定精度 30% 误差<±0.005mm
匹配成功率 30% Score>0.8, 耗时<500ms
测量完整性 20% 覆盖所有关键特征
报告规范性 20% 符合ASME Y14.5标准

常见问题解决

  1. 点云缺失

    1
    reconstruct_surface_object_model_3d(ObjectModel3D, 'poisson', 8, 0.5, [], [], ObjectModel3DComplete)
  2. 反光表面处理

    1
    set_surface_model_param(SurfaceModelID, 'reflectance', 0.7)
  3. 大场景处理

    1
    partition_object_model_3d(ObjectModel3D, 'octree', 10.0, [], [], ObjectModel3DPartitioned)

拓展学习

  1. 6DoF位姿估计
  2. 动态3D扫描(如传送带检测)
  3. 3D深度学习(PointNet++集成)