ZeroOne AI
← 返回文章列表

黑色滴灌带三角结构视觉检测光源设计方案——200mm高角度环光 + 低角度条形暗场补光

👁 39
分类:AI视觉

针对黑色滴灌带滴头三角结构高速视觉检测中单一高角度环光导致结构暗区的问题,本文介绍“200mm高角度白色环光主照明 + 低角度条形暗场补光”的复合光源方案,包含相机镜头配置、光源角度与距离、48μs曝光下的同步频闪、亮度调试步骤及反光处理顺序。

一、项目检测目标

本项目主要针对黑色滴灌带上的滴头结构进行视觉检测。

核心检测目标包括:

其中,三角形结构的稳定成像是整个视觉系统的核心。


二、工业相机与镜头配置

当前相机采用 HIKROBOT MV-CS050,配合 12mm 工业镜头。

项目参数
工业相机MV-CS050
分辨率2448×2048
传感器2/3"
像元尺寸3.45μm
镜头12mm
相机工作距离160mm
最大检测视野120mm
曝光时间48μs

按照 120mm 视野计算,横向理论分辨率约:

120 / 2448 ≈ 0.049 mm/pixel
即约 20 Pixel/mm

对于滴头三角结构检测已经具备较好的空间分辨率。


三、为什么单独使用高角度环光存在问题?

最初方案采用:

200mm白色环形光 + 30°入射照明

这种方案可以很好地照亮整个检测区域。

但是在实际测试中发现:高角度环光虽然整体照度均匀,但对于三角形结构内部的局部区域,仍然存在光照不足。

尤其是滴头的三角形结构具有一定的:

高角度环光主要负责整体表面照明。对于一些朝向不利于反射进入镜头的结构:

       相机
        ↓
     ↘ ↓ ↙
     ↘ ↓ ↙
      \ ↓ /
       \ ↓ /
════════════════
   三角形结构
════════════════

部分光线会被结构表面反射到其他方向。

因此:相机看到的不是"没有结构",而是"结构没有足够的光"。

这也是单一环光容易遇到的问题。


四、最终采用双光源照明结构

针对这个问题,本项目增加第二组光源:低角度条形光进行暗场补光。

最终形成:

     MV-CS050
       │
       │
     12mm镜头
       │
       │
     160mm
       │
┌─────────────┐
│ Ø200mm环光  │
│   主光源    │
└─────────────┘
   ↘ ↓ ↙
   ↘↓↙
     ↓
═════════════
  滴灌带
═════════════
   ↗ ↖
  /     \
低角度条形光 低角度条形光
  暗场补光

如果安装空间允许,推荐采用左右对称的两根条形光。


五、第一层:200mm白色环形光

环形光作为整个系统的主照明光源。

参数推荐值
类型白色LED环形光
外径200mm
光源距离产品120mm
入射角约30°
作用主照明、整体结构成像

它主要负责:

  1. 提供整体亮度:确保 120mm 视野范围内都有足够的基础照明。
  2. 保证滴头整体结构:让算法能够稳定看到滴头边缘、滴头主体、三角结构、周围带体。
  3. 降低局部阴影:200mm 大尺寸环光相对于小型环光具有更大的照明覆盖范围。

六、第二层:低角度条形光

新增的条形光是整个方案的关键。它不负责整个画面照明,而是专门负责补充三角结构和浅浮雕区域的暗场光。

推荐:

结构如下:

      相机
       ↓

   三角结构
     / \
    /   \

     ↘ ↙
     ↘ ↙
     ↘ ↙
  条形暗场光

低角度光会沿着产品表面掠射。当三角结构存在高度变化时:

平面:
────────────────────

有结构:
────────╲____╱──────
        ↑
     结构变化

光线会在边缘产生明显的明暗变化,因此能够进一步增强三角形轮廓、流道边缘和浅浮雕结构。


七、为什么称为"暗场补光"

这里的低角度条形光并不是为了把整张图照亮。它的作用是:让原本在高角度环光下较暗的结构区域产生有效反射。

因此应该避免条形光亮度过高。

理想状态是:

环光:
████████████████
████████████████
████████████████
提供整体基础亮度

条形光:
  ▲
 ▲ ▲
 ▲ ▲
突出三角结构

两者叠加后:
背景      ███████
滴头      ███████
三角结构  ▓▓▓▓▓▓▓
边缘      ███████

最终形成更加稳定的灰度梯度。


八、双光源不是简单"两个灯一起开到最大"

这是实际工程中非常重要的一点。不能简单地:

环光100% + 条光100%

这样容易造成:

正确思路是:

环光负责"面",条光负责"结构"

也就是:主光源控制整体亮度,辅助光源控制结构对比度。


九、推荐的亮度调试方法

建议实际调试采用三个步骤。

第一步:关闭条形光

只打开 200mm 环光,观察整体亮度、滴头轮廓、三角结构、反光区域。先把环光调整到图像整体不过曝,同时能够看清滴头。

第二步:加入低角度条形光

保持环光亮度不变,逐渐增加条形光亮度,观察三角结构:

条光 0%   → 三角结构不明显
条光 20%  → 开始出现纹理
条光 40%  → 三角结构明显
条光 60%  → 结构对比度较好
条光 100% → 可能产生过曝

因此最终亮度应该以三角结构对比度最大,而不是画面最亮作为判断标准。


十、低角度条光的安装位置

推荐安装在滴灌带两侧:

       相机
        ↓
   ┌──────────┐
   │  环形光  │
   └────┬─────┘
        ↓
      ╲ ╱
       ╲ ╱
        ╲ ╱
        ╲ ╱
   条形光    条形光
     \        /
      \      /
════════════════════════
        滴灌带
════════════════════════

如果空间有限,也可以先采用单根低角度条形光,从三角结构主要受光不足的一侧进行补光。

但是从量产稳定性考虑:左右对称双条形光优于单条光。


十一、环光与条光的功能分工

光源主要作用推荐角度
Ø200mm环光整体照明约30°
低角度条光三角结构暗场补光10°~20°
光源功能效果
环光滴头定位★★★★★
环光整体结构★★★★★
条光三角纹理★★★★★
条光边缘增强★★★★★
条光微小结构★★★★☆

这实际上形成了一套明场 + 暗场复合照明系统。


十二、48μs曝光下必须使用高亮频闪

由于当前曝光只有 48μs,光源需要在极短时间内提供足够光能。

因此建议相机与光源同步触发:

编码器
  │
  ▼
触发控制
  │
┌─┴──────────────┐
▼               ▼
相机           光源
48μs          频闪
 │              │
 └──────┬───────┘
        ▼
      图像

尤其是低角度条光,由于它负责增强结构,所以不能因为 48μs 曝光而变成"暗场真的很暗"。

建议采用高峰值电流 LED 频闪控制器,而不是简单提高常亮电流。具体电流、脉冲宽度应以光源厂家的额定频闪参数为准,避免超过 LED 和驱动器允许范围。


十三、白光环光 + 白光条光是否合理?

当前方案可以继续采用白色环光 + 白色条光,这是研发阶段非常合理的组合。

原因是两套光源承担的是不同的空间方向,而不是依赖颜色进行分离。

最终图像仍然是:黑色滴灌带 + 灰度结构,便于后续 OpenCV、ROI、模板匹配、灰度评分、YOLO 统一处理。


十四、如果反光严重怎么办?

黑色 PE 材料最容易出现的问题仍然是镜面反射。

如果现场出现:

██████████
██████████ ← 大面积过曝
██△△△△██
██████████

不要首先继续提高算法阈值,应该优先解决光学问题。

调整顺序建议:

① 降低环光亮度
↓
② 调整环光120mm附近的距离
↓
③ 调整条形光角度
↓
④ 降低条光亮度
↓
⑤ 增加偏振方案

十五、最终完整光学结构

当前项目最终推荐方案:

     MV-CS050
       │
       │
     12mm镜头
       │
       │
     160mm
       │
┌────────────────┐
│                │
│ Ø200mm白色环光 │
│                │
└────────────────┘
    ╲ 30° ╱
      ↓
    120mm
      ↓
    ↘ ↙
    ↘ ↙
    ↘ ↙
   ╲    ╱
低角度条形光
  暗场补光
      ↓
══════════════════════════════════
        黑色滴灌带
══════════════════════════════════

最终形成:高角度环光负责"看清楚",低角度条光负责"看清结构"。


十六、与视觉算法结合

双光源方案建立之后,后面的算法可以进一步简化。

推荐流程:

高速运行
   ↓
MV-CS050
   ↓
48μs短曝光
   ↓
图像采集
   ↓
YOLO定位滴头
   ↓
ROI裁剪
   ↓
三角结构区域
   ↓
OpenCV图像增强
   ↓
轮廓/纹理/灰度分析
   ↓
结构评分
   ↓
OK / NG

其中:环形光解决定位和整体结构,低角度条光解决三角形结构。最终算法不需要过度依赖复杂的 AI 模型。


十七、最终推荐参数

项目最终方案
相机HIKROBOT MV-CS050
镜头12mm
相机工作距离160mm
视野120mm
曝光48μs
主光源白色环形光
环光外径200mm
环光距离120mm
环光入射角约30°
辅助光源白色高亮条形光
条光数量推荐2根对称布置
条光入射角约10°~20°
条光作用暗场补光、增强三角结构
光源控制相机同步频闪
主要检测三角结构、滴头、孔位

十八、方案总结

针对黑色滴灌带这种黑色PE材料 + 表面反光 + 浅浮雕三角结构 + 高速运动的视觉检测场景,单纯依靠一个高角度环光很难同时满足"整体亮度"和"结构对比度"两个要求。

因此,本项目采用复合光学设计:

两套光源形成明确分工:

环形光 —— 提供整体均匀照明
条形光 —— 强化三角形、流道和边缘结构

再配合 MV-CS050 + 12mm 镜头 + 120mm 视野 + 48μs 短曝光 + 同步频闪,最终构建一个面向高速滴灌带生产线的明场 + 暗场复合机器视觉照明系统。

这种设计的核心思想不是"把产品照得更亮",而是:用高角度光建立稳定的基础图像,用低角度光把真正需要检测的三角结构从图像中"勾勒"出来。

推荐阅读

更多工业 AI、智能制造与技术实践文章

工业互联网

Linux 内核开发基础:常用命令与函数

Linux 内核模块开发入门必知:insmod/rmmod 加载卸载命令、module_init/module_exit 入口出口函数,以及 MODULE_LICENSE、MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_ALIAS 等模块描述宏的用法与含义。

工业互联网

Linux系统篇(九)——C 语言实战:终端实时刷新进度条

手把手用 C 语言在 Linux 终端实现实时刷新进度条,讲透回车换行区别、行缓冲区与 fflush 强制刷新机制

AI视觉

树莓派部署YOLOv8手势检测实战:USB IMX378摄像头 + Python + PyTorch + ONNX Runtime + Systemd开机自动运行

本文面向树莓派AI视觉、Python人工智能、YOLOv8目标检测初学者,以树莓派部署手势检测项目为案例,完整介绍从USB IMX378摄像头安装、Miniconda环境配置、Python虚拟环境创建、YOLOv8依赖安装,到手势检测程序Systemd开机自动运行的完整流程。在Raspberry Pi 5 / ARM64(aarch64)环境下建立独立的yolov8-env环境,安装PyTorch、Ultralytics、ONNX Runtime、NumPy等AI视觉组件,最后通过Linux systemd使fatigueDetect.py开机自动运行,实现无需手工登录的AI视觉自动检测,为后续手势识别、人体检测、疲劳驾驶检测、工业视觉检测与边缘AI视觉系统打下基础。

C#调用Intel NPU实现YOLOv26极速推理:OpenVINO工业视觉加速实践

通过C# + OpenVINO Runtime调用Intel Core Ultra NPU运行YOLOv26模型,实现低功耗、毫秒级的工业边缘AI视觉推理,涵盖模型导出、环境配置、推理代码与FP16/INT8/异步推理等性能优化实践。

机器人自动化

TRIO-Basic 从入门到精通(九):卡尔曼滤波器算法编程与测试

本教程在TRIO运动控制器上用TRIO-Basic实现卡尔曼滤波器,通过正弦波叠加随机噪声构造测试数据,调用kalmanfilter函数完成滤波,并在示波器中对比滤波效果。详细讲解R(测量噪声)与Q(过程噪声)两个核心参数对滤波性能的影响,为现场数据降噪提供实用参考。

机器人自动化

手把手做ROS2机器人系统开发(六):创建自定义msg与srv接口

在上一讲的服务器/客户端示例中,我们使用的是系统自带的 `example_interfaces` 消息定义。但在实际项目中,业务数据往往各不相同,例如机器人位姿、设备状态、工艺参数等,必须自定义消息(msg)和服务(srv)接口,才能让节点间传递符合业务语义的数据。本章节将讲解如何创建用户自定义的

评论(0)