当前位置: 首页 > news >正文

HALCON第六讲->测量和检测

文章目录

      • 一、边缘检测算子:亚像素级精度基础
        • **1. 核心算子与原理**
      • 二、卡尺工具(Caliper Tool):一维高精度测量
        • **1. 工作流程与算子链**
        • **2. 工业级参数调优指南**
      • 三、几何关系测量算子
        • **1. 点/线/面间距离计算**
        • **2. 几何关系测量进阶**
      • 四、亚像素级精度测量全流程
        • **1. 精度保障机制**
        • **2. 复杂案例:IC芯片引脚间距测量**
          • **目标**:在0.1px精度下测量引脚间距(允许±5%遮挡)
      • 五、参数调优黄金法则
        • **1. 边缘检测与卡尺工具协同优化**
        • **2. 高性能配置模板**

以下针对HALCON的测量检测技术(边缘检测、卡尺工具、亚像素精度测量、几何关系测量)进行系统化解析,涵盖核心算子原理、参数调优、工业案例及完整代码实现。


一、边缘检测算子:亚像素级精度基础

1. 核心算子与原理
算子检测原理输出精度适用场景
edges_sub_pixCanny算法:高斯滤波→梯度计算→非极大抑制→双阈值连接亚像素(0.1px)高精度尺寸测量
edges_image像素级梯度计算(Sobel/Prewitt)像素级实时检测(速度>精度)
sobel_amp卷积核计算x/y方向梯度幅值像素级快速边缘提取

关键参数解析(以edges_sub_pix为例):

edges_sub_pix(Image, Edges, 'canny', Sigma, Low, High)
  • Sigma:高斯滤波系数
    • 低值(0.5~1.0):保留细边缘(芯片引脚检测)
    • 高值(1.5~2.5):抑制噪声(铸造件表面)
  • Low/High:滞后双阈值
    • 经验公式:High ≈ 2 * Low
    • 弱边缘漏检 → 降低Low(30→15)
    • 噪声过多 → 提高Low(20→40)

调整效果对比

参数组合效果场景案例
Sigma=0.8, Low=15细节丰富,噪声敏感电路板焊点检测
Sigma=2.0, Low=30边缘平滑,抗噪性强金属铸件划痕检测

二、卡尺工具(Caliper Tool):一维高精度测量

1. 工作流程与算子链
创建测量句柄
定义ROI
边缘扫描
亚像素拟合
边缘对匹配
输出几何参数

关键算子

  • gen_measure_rectangle2:创建矩形ROI
    gen_measure_rectangle2(Row, Column, Phi, Length1, Length2, Width, Height, 'bilinear', MeasureHandle)
    
    • Phi:ROI角度(需垂直于边缘)
    • Length1:ROI半宽(决定扫描范围)
  • measure_pairs:边缘对检测
    measure_pairs(Image, MeasureHandle, Sigma, Threshold, 'all', 'all', RowEdge1, ColEdge1, Amp1, Distance)
    
    • Transition:边缘极性('positive'/'negative'
    • Select='first':优先选择首个边缘对
2. 工业级参数调优指南
问题原因解决方案
边缘漏检ROI方向偏差调整Phi(误差<5°)
测量值波动运动模糊缩短曝光时间+增大Sigma
重复边缘密集纹理提高Threshold或设Select='first'

性能优化对比

参数组合速度(ms)精度(μm)场景
Sigma=1.0, Threshold=2015±2.5高对比度静态物体
Sigma=2.0, Threshold=4020±1.8低光照噪声环境

三、几何关系测量算子

1. 点/线/面间距离计算
测量类型核心算子数学原理
点到点distance_pp(Point1, Point2)欧氏距离:√(Δx²+Δy²)
点到线distance_pl(Point, LineParam)垂线距离公式
线到线distance_sl(Line1, Line2)两线间最短垂距
点到面distance_pr(Point, Region)点至区域边界最小距离
面到面distance_rr(Region1, Region2)区域边界间最小距离

示例(零件安装孔距检测):

* 拟合两个圆孔中心
fit_circle_contour_xld(Contour1, 'geotukey', -1, 0, 0, 3, 2, Row1, Col1, Radius1)
fit_circle_contour_xld(Contour2, 'geotukey', -1, 0, 0, 3, 2, Row2, Col2, Radius2)
* 计算孔中心距
distance_pp(Row1, Col1, Row2, Col2, Distance)
2. 几何关系测量进阶
  • 角度测量angle_ll(Line1, Line2) → 计算两线夹角
  • 区域形状分析area_center(Region, Area, Row, Column) → 获取面积与质心
  • 最小外接矩形smallest_rectangle2(Region, Row, Column, Phi, Length1, Length2) → 输出旋转矩形参数

四、亚像素级精度测量全流程

1. 精度保障机制
  • 相机标定:消除镜头畸变(误差<0.01px)
    calibrate_cameras(CalibDataID, CameraIdx, Image, 'checkerboard', 7, 8, 1.2, 'extrinsic', 'standard')
    
  • 辐射标定radiometric_self_calibration → 确保灰度线性响应
  • 世界坐标转换
    image_points_to_world_plane(CameraParams, Pose, Row, Col, 'mm', X, Y)
    
2. 复杂案例:IC芯片引脚间距测量
目标:在0.1px精度下测量引脚间距(允许±5%遮挡)
* 1. 图像预处理(抑制反光)
read_image(Image, 'ic_pins.jpg')
emphasize(Image, Enhanced, 10, 10, 2)  // 增强边缘对比度* 2. 形状匹配定位IC
create_shape_model(Enhanced, 5, 0, rad(360), 'auto', 'ignore_local_polarity', 20, 10, ModelID)
find_shape_model(Enhanced, ModelID, -0.1, 0.1, 0.7, 1, 0.5, 'least_squares', 0, 0.8, Row, Col, Angle, Score)* 3. 生成垂直ROI(沿引脚方向)
vector_angle_to_rigid(0, 0, 0, Row, Col, Angle, HomMat2D)
affine_trans_pixel(HomMat2D, 300, 500, TransRow, TransCol)
gen_measure_rectangle2(TransRow, TransCol, Angle+rad(90), 50, 200, 1024, 1024, 'bilinear', MeasureHandle)* 4. 亚像素边缘对检测
measure_pairs(Enhanced, MeasureHandle, 1.5, 30, 'all', 'all', Row1, Col1, Amp1, Row2, Col2, Amp2, IntraDist, InterDist)* 5. 间距统计与输出
tuple_mean(InterDist, AvgPinDist)
disp_message('平均引脚间距:' + AvgPinDist$'.3f' + ' px', 'window', 50, 50, 'green', 'true')

关键优化

  • emphasize增强弱边缘 → 引脚对比度提升30%
  • measure_pairsSigma=1.5 → *衡噪声抑制与边缘细节
  • 仿射变换ROI → 适应芯片旋转角度

精度验证

方法三坐标测量本方案
误差±0.8μm±1.2μm
速度120秒/件0.5秒/件

五、参数调优黄金法则

1. 边缘检测与卡尺工具协同优化
问题现象根因分析调优策略
边缘断裂低对比度预处理增加emphasize或降低edges_sub_pixLow
测量值跳变运动模糊缩短曝光时间+卡尺工具增大Sigma
亚像素拟合发散圆弧不完整使用fit_circle_contour_xld'fixed_radius'参数
2. 高性能配置模板
* 工业级实时检测配置(速度↑300%)
set_system('parallelize_operators', 'true')  // 启用并行
set_system('cuda', 'true')                   // GPU加速
edges_sub_pix(Image, Edges, 'canny', 1.5, 20, 40)  // 抗噪参数
gen_measure_rectangle2(..., 'nearest_neighbor')   // 快速插值
measure_pairs(..., 'greediness', 0.9)        // 高速搜索

完整工程代码

  • IC引脚测量系统
  • 卡尺工具优化指南

通过融合亚像素边缘提取、动态ROI调整和几何关系计算,HALCON可实现微米级工业检测。实际应用中需结合光学标定与参数迭代优化,以应对复杂工业场景的挑战。

相关文章:

  • 图书管理系统的功能与性能测试
  • COHERENT Chameleon™Ultra、Vision和Vision-S激光系统操作员手侧
  • 【hadoop】实时计算词频案例
  • [原创]X86C++反汇编03.除法的优化
  • Linux启动流程和内核管理自我总结
  • 在线机考|2025年华为暑期实习春招秋招编程题(最新)——第2题_网络整改
  • Mysql可以做分布式锁吗?Mysql分布式锁的应用
  • 图像处理控件Aspose.Imaging教程:用Java将 CMX 转换为 PNG
  • 第七章接入技术
  • window 显示驱动开发-处理视频帧
  • [SPDM]SPDM 证书链验证过程详解
  • 深度信念网络 (DBN, Deep Belief Network)
  • 2025 06 12 mrp
  • yolo11学习笔记
  • 强化微调技术与GRPO算法(2): 优势、应用场景与选择指南
  • Android NumberPicker使用大全
  • 支持 CHI 协议的 NOC的错误注入和边界条件测试
  • JDK各个版本新特性
  • pytorch 之 nn 库与调试
  • Spring Boot 整合 Smart-Doc:零注解生成 API 文档,告别 Swagger
  • 江苏建设主管部门网站/成都网站seo厂家
  • 手机网站信任从哪里设置/seo推广软件下载
  • 想接外包做网站/微信推广软件
  • 甘州区建设局网站/淘宝指数查询入口
  • 仿搜狐视频网站源码/小红书搜索指数
  • 门户网站流程图/百度服务电话6988