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

激光线检测算法的FPGA实现

激光线检测算法的FPGA实现

1. 常见的激光线检测算法

激光线检测中常用的三种算法 MAX(最大值法)、THRESH(阈值法)、COG(灰度重心法) 分别具有以下特点和工作原理:


1.1 MAX(最大值法)

  • 原理:通过检测图像中每行或每列的灰度最大值位置,确定激光条纹中心线。假设激光线灰度分布呈高斯型,峰值点即为激光中心。
  • 特点:
    • 实现简单,计算速度快,适合实时性要求高的场景。
    • 精度一般为像素级,易受噪声或光强不均匀影响。
  • 适用场景:对精度要求较低、需快速处理的工业检测(如粗糙表面扫描)。

1.2 THRESH(阈值法)

  • 原理:通过设定灰度阈值分割激光区域,提取高于阈值的像素,再对连通区域进行形态学处理或几何拟合(如直线拟合)确定中心线。
  • 特点:
    • 依赖阈值选择,可能因光照变化或噪声导致误判。
    • 可通过动态阈值优化适应环境变化。
  • 适用场景:光照稳定且对比度较高的场景(如实验室标定)。

1.3 COG(灰度重心法)

  • 原理:基于激光条纹横截面的灰度分布,计算灰度加权平均值作为中心位置。质心位置 x c x_c xc 计算公式为:
    x c = ∑ i = 1 n m i x i ∑ i = 1 n m i x_c = \frac{\sum_{i=1}^n m_i x_i}{\sum_{i=1}^n m_i} xc=i=1nmii=1nmixi
    其中:

    • m i m_i mi 是第 i i i 个激光点的灰度值
    • x i x_i xi 是第 i i i 个激光点的位置
  • 特点:

    • 精度可达亚像素级(如1/32亚像素)。
    • 计算量稍大,但对噪声和光强变化鲁棒性较强。
  • 适用场景:高精度测量(如工业零件尺寸检测、三维重建)。


1.4 对比与选型建议

算法精度抗噪性计算复杂度适用场景
MAX像素级快速粗略检测
THRESH像素级稳定光照下的简单场景
COG亚像素级高精度工业测量与重建

1.5 实际应用参考

  • MAX:用于物流分拣等实时性要求高的场景。
  • THRESH:结合极线约束用于双目视觉匹配。
  • COG:在精密测量中结合误差补偿算法,可达到0.08mm精度。

本文以其中计算复杂度高的 COG算法举例,探索FPGA实现方法。

2. CCD采集的激光线图像

常见的高速sensor图像一般通过多通道并行输出,为了进一步提高输出速率会采用多区域同时输出方案。

本文以4个区域(TL、BL、TR、BR)输出sensor为例,输出顺序如下。

在这里插入图片描述

sensor输出64通道,采集速率为10000fps,分辨率1024x600。要求实时完成COG算法输出质心坐标。

3. FPGA实现

3.1 需求分析

  • 考虑到COG是一维计算,可以选择行或列计算,为了减少数据拼接处理,采用列计算。
  • 考虑到满足实时计算,可以在每个输出通道进行独立计算。如果想节省资源,也可以考虑倍频处理。
  • 考虑到每个通道需要计算一行中的多个像素,需要进行数据缓存处理。
  • 考虑到图像分区域输出的,每个通道在计算本区域的同时还要换成区域边界的数据。

3.2 计算步骤

  • 首先,分4个区域(TL、BL、TR、BR)独立计算。每列分别输出最大光斑和边界数据。

  • 然后,将上下两部分组合,输出每列的最大光斑。

  • 最后,将计算结果数据重新排序输出。

输出数据包括光斑光斑、光斑所占行数、光斑平均灰度等,其中质心坐标支持亚像素精度,数据保存时截取精度比光学精度高一个量级即可。

3.3 资源占用

根据前述分析可知,实际资源占用主要与图像通道数量有关,重点关注优化计算单元逻辑即可,目前优化后在xc7k160tffg676资源使用情况如下。编译时额外包含了数据输出格式转换部分的逻辑和缓存。

在这里插入图片描述
在这里插入图片描述

可见,本方案占用资源较少,适用性强,可在FPGA上集成其他算法。

4. 仿真测试

4.1 测试条件

用已知完成去噪声的线激光采集图像,模拟sensor的4区域64通道数据。

测试源数据CCD图像如下。

在这里插入图片描述

分成4个区域图像如下。上下、左右区域边界均有连接线激光,可充分验证多区域多通道检测算法。

在这里插入图片描述

4.2 仿真结果

4.2.1 质心坐标数据

质心位置的像素坐标输出如下。已截取亚像素精度部分,数值与图像比较基本吻合(行坐标与显示图像的行相反)。

在这里插入图片描述

质心位置的像素坐标(红色)在图像位置如下。
在这里插入图片描述

4.2.2 辅助数据

其他辅助判断数据输出结果如下。线激光越陡峭处的连续行数较多,与实际情况相符。

在这里插入图片描述

5. 结论

本文介绍了常用的线激光检测算法,以及基于高速CCD采集的线激光COG算法的FPGA实现,该算法可以扩展到任意多通道多区域图像数据,配合精度补偿和去噪声预处理能够满足高速、高精度工业测量需求。

相关文章:

  • MyBatis 动态 SQL 优化:标签的实战与技巧
  • u盘文件夹删除没反应的解决办法
  • 语言合成模型Spark-TTS-0.5B学习笔记
  • Java为什么要使用线程池?
  • 【深度学习与实战】2.3、线性回归模型与梯度下降法先导案例--最小二乘法(向量形式求解)
  • 用Python和Stable Diffusion生成AI动画:从图像到视频的全流程指南
  • MYSQL基本语法使用
  • java八股文之JVM
  • 【Mysql】深入理解 MySQL 索引:原理、类型与实践
  • leetcode每日一题:酿造药水需要的最少总时间
  • Ant Design Vue 中的table表格高度塌陷,造成行与行不齐的问题
  • 测试用例生成平台通过大模型升级查询功能,生成智能测试用例
  • 为AI聊天工具添加一个知识系统 之150 设计重审 之15 完整方案及评估 之2
  • 搭建一套正版上门按摩小程序需要具备哪些功能?
  • 预编译能否 100%防 sql 注入?
  • 解锁智能制造新体验:兰亭妙微 UE/UI 设计赋能行业变革
  • How to connect Internet wifi on vmware for Win11 installation?
  • 蓝桥杯题型分布2
  • 【Gobuster 详细使用教程】
  • 力扣hot100_二分查找
  • 五一小长假,带着小狗去上海音乐厅
  • “五一”假期倒计时,节前错峰出游机票降价四成
  • 中消协发布“五一”消费提示:践行“光盘行动”,抵制餐饮浪费
  • 黄永年:说狄仁杰的奏毁淫祠
  • 上海明天起进入“升温通道”,五一假期冲刺33℃
  • 杭州打造商业航天全产业链,请看《浪尖周报》第22期