Halcon测量与检测

课程基本信息

  • 课程名称:Halcon精密测量与缺陷检测技术
  • 课时安排:5课时(225分钟)
  • 授课对象:机器视觉中高级学习者
  • 先修要求:掌握模板匹配与图像预处理技术

教学目标

  1. 掌握一维/二维几何量测量方法
  2. 能够实现亚像素级精密测量
  3. 熟练运用多种缺陷检测算法
  4. 具备完整检测系统的开发能力

教学重点与难点

  • 重点
    • 基于边缘的测量技术
    • 基于区域的缺陷检测
  • 难点
    • 复杂轮廓的亚像素测量
    • 微弱缺陷的增强检测
    • 检测标准与容差设置

教学准备

  1. 硬件设备:
    • 标准量块(精度0.01mm)
    • 缺陷样品(划痕/凹坑/异物)
    • 光学平台与远心镜头
  2. 软件工具:
    • Halcon 20.11+(含计量模块)
    • 测量数据分析工具(Excel/Minitab)
  3. 教学材料:
    • GD&T标准图例
    • 检测报告模板

详细教学内容

一、测量技术基础(45分钟)

1.1 测量系统组成

1
2
3
4
5
graph TB
A[图像采集] --> B[边缘提取]
B --> C[几何计算]
C --> D[结果输出]
D --> E[数据统计分析]

1.2 关键性能指标

  • 重复精度:±0.2μm
  • 线性度:≤0.1%FS
  • 测量不确定度:U95=1.5μm

1.3 测量工具对比

工具类型 精度范围 适用场景
卡尺测量 ±50μm 快速粗测
工具显微镜 ±5μm 实验室测量
视觉测量 ±1μm 在线检测

二、一维测量技术(60分钟)

2.1 边缘对测量

1
2
3
4
5
6
7
* 创建测量句柄
gen_measure_rectangle2(100, 200, 0, 200, 50, 512, 512, 'nearest_neighbor', MeasureHandle)
* 执行边缘测量
measure_pairs(Image, MeasureHandle, 1, 30, 'all', 'all', RowEdgeFirst, ColumnEdgeFirst,
AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)
* 结果显示
dev_display_measure_results(RowEdgeFirst, ColumnEdgeFirst, RowEdgeSecond, ColumnEdgeSecond)

2.2 参数优化

1
2
set_measure_param(MeasureHandle, 'min_amplitude', 20)  // 边缘响应阈值
set_measure_param(MeasureHandle, 'transition', 'negative') // 边缘方向

2.3 实验案例:引脚间距测量

1
2
3
4
5
6
7
* 多线段测量
gen_measure_arc(..., MeasureHandleArray)
for i := 1 to |MeasureHandleArray| by 1
measure_pos(..., DistanceArray[i-1])
endfor
* 统计计算
tuple_mean(DistanceArray, MeanDistance)

三、二维测量技术(60分钟)

3.1 几何参数测量

1
2
3
4
* 圆测量
smallest_circle(Region, Row, Column, Radius)
* 角度测量
angle_ll(Row11, Col1, Row2, Col2, Row3, Col3, Row4, Col4, Angle)

3.2 轮廓分析

1
2
3
4
* 亚像素轮廓拟合
fit_contour_xld(Contour, 'tukey', -1, 0, 5, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
* 轮廓偏差分析
deviation_contour_xld(Contour, ContourModel, 'distance', 1.5, 'max', MaxDeviation, MeanDeviation)

3.3 案例:齿轮参数测量

1
2
3
4
5
6
7
* 齿距角计算
for i := 1 to NumberTeeth by 1
angle_ll(CenterRow, CenterCol, ToothTips[i], ToothTipsCol[i],
CenterRow, CenterCol, ToothTips[i+1], ToothTipsCol[i+1], Angles[i-1])
endfor
* 齿形误差分析
deformable_surface_matching(..., DeviationImage)

四、缺陷检测技术(60分钟)

4.1 基于区域的检测

1
2
3
4
5
* 差分检测
abs_diff_image(Image, ImageTemplate, ImageAbsDiff, 1)
threshold(ImageAbsDiff, DefectRegion, 30, 255)
* 形态学分析
opening_circle(DefectRegion, DefectFiltered, 3.5)

4.2 基于纹理的检测

1
2
3
* 纹理能量法
texture_laws(Image, ImageTexture, 'e5', 5, 5)
var_threshold(ImageTexture, DefectRegion, 15, 15, 0.2, 2, 'dark')

4.3 案例:表面划痕检测

1
2
3
4
* 多方法融合
edges_sub_pix(Image, Edges, 'canny', 1, 20, 40)
connection(Edges, EdgeRegions)
select_shape(EdgeRegions, Scratches, ['area','rectangularity'], 'and', [500,0.1], [5000,0.5])

五、系统集成实战(60分钟)

5.1 检测流程设计

1
2
3
4
5
6
7
graph TD
A[图像采集] --> B[定位校准]
B --> C[区域ROI]
C --> D[特征测量]
D --> E[缺陷检测]
E --> F[结果判定]
F --> G[数据输出]

5.2 结果可视化

1
2
3
4
5
* 检测报告生成
create_dict(ReportDict)
set_dict_tuple(ReportDict, 'measurements', Measurements)
set_dict_tuple(ReportDict, 'defects', Defects)
write_dict(ReportDict, 'report.json', [], [])

5.3 性能优化

1
2
3
* 并行处理
set_system('tspawn_num_threads', 4)
par_start<Task1, Task2, Task3> : ...

实验设计

基础实验

  1. 标准量块尺寸测量(误差<±2μm)
  2. 圆形零件同心度检测

进阶实验

  1. 柔性材料变形量分析
  2. 微米级划痕检测

综合项目
PCB板全检系统开发:

  • 元件位置度测量
  • 焊点缺陷检测
  • AOI报告生成

教学策略

  1. 标准比对法

    • 使用标准量具验证测量结果
    • 建立误差补偿模型
  2. 缺陷库建设

    • 收集典型缺陷样本
    • 建立多级分类标准
  3. 六西格玛方法

    • 测量系统分析(MSA)
    • 过程能力指数(CPK)计算

评估方案

考核项目

  1. 测量系统重复性测试(10次测量)
  2. 缺陷检出率测试(TP/FP/FN)
  3. 检测速度测试(FPS)

评分标准

指标 权重 优秀标准
测量精度 40% 误差<±1μm
缺陷检出率 30% Recall>99%, FP<1%
系统稳定性 20% 连续运行无故障
代码质量 10% 符合MISRA-C规范

常见问题解决

  1. 边缘抖动问题

    1
    set_measure_param(MeasureHandle, 'subpix', 'least_squares_high')
  2. 弱对比度缺陷

    1
    illuminate(Image, ImageEnhanced, 'top_hat', 7, 7)
  3. 热变形补偿

    1
    create_scaled_shape_model(..., 'scale_min', 0.98, 'scale_max', 1.02, ...)

拓展学习

  1. 3D点云测量(surface_metrics)
  2. 深度学习缺陷分类
  3. 与MES系统集成(OPC UA)