机器视觉打光技巧

光源专家的8个打光技巧

机器视觉系统中的照明系统是极其重要的一部分,它的好坏直接影响着后面的图像处理。在听了一位日本光源专家的讲座之前,我其实对照明并不太了解,不就是将图像照亮以至于相机能够拍到图像吗?但事实并非如此,照明远非增强图像亮度这样简单,好的照明系统可以减少很多图像处理工作,提升整个机器视觉系统效率。那么照明是怎样一门学问呢?如何在机器视觉系统中选择合适的照明系统呢?

合适的照明是机器视觉应用成功的关键,而且是第一要考虑的部分。一个设计良好的照明系统不仅会带来更好的性能,节约时间,而且从长远来看能节约成本。下面来分享选择最合适机器视觉照明的八个小技巧,它们是:

(1) 检测材料缺损请使用亮度高的光;

(2) 精确定位请使用合适波长的光;

(3) 检测玻璃上的刮痕请使用非漫射的光,即Non-Diffused Light;

(4) 检测透明包装请使用漫射光,即Diffused Light;

(5) 创造对比请使用颜色光;

(6) 检测快速移动物体请使用频闪光;

(7) 消除反射时请使用红外光;

(8) 消除颜色变化请使用红外光;

照明是怎样影响机器视觉应用的呢?

对于将质量最为输出的机器视觉系统依赖于图像质量。高质量的图像使得系统能够精确地解释出从检测物体中提取的信息,这样就可以产生可靠的并可重复的系统性能。在任何视觉应用中需要的图像质量很大程度上取决于照明条件:颜色,角度和使用照明对象的光源数量意味着好图像之间的差异,有可能会产生更好的性能,也会带来质量差的图像,产生不好的结果。

机器视觉照明应该最大化特征对比,同时最小化其它剩下的对比度,因此让相机清晰看到部分或标记。高对比度特征简化集成和提高可靠性;对比度差的图像和不规则的照明需要来自系统的更多努力,而且也增加了处理时间。最优的照明取决于检测物体的尺寸,它的表面特征和部分几何特征和系统需求。具有宽范围的波长(颜色),视场(尺寸),对于特殊应用需要,就可以灵活的选择机器视觉照明。

当选择照明时需要考虑以下五个方面:

  1. 表面是光滑,还是崎岖不平?

  2. 表面是暗淡,还是光亮?

  3. 对象是弯曲的,还是平坦的?

  4. 条码或标记的颜色是怎样的?

  5. 是检测移动的物体,还是静止的对象?

技巧1:使用亮光去检测材料缺损

比如在塑料浇注中验证是否不足

从塑料浇注应用中验证材料缺损对于确保良好的密封表面是重要的。当有材料缺损时,你有了不足的条件(比如浇注到模型中的材料不充分)。

照明技术:亮场

亮场照明技术依赖表面纹理和平坦地形。光线遇到平坦反光的表面将光线反射回到相机,创立一个亮区域。粗糙纹理或表面缺损会将光线散射而远离相机,创立了暗区域。
在这里插入图片描述

技巧2:对于精确组件定位使用合适的波长

比如检测倒装芯片(Flipped Chips),在PCB装配中验证合适的零件方向是常见的机器视觉应用。

照明技术:亮场

为了验证装配问题,使用蓝光波长的打亮芯片方位。这个照明技术依靠波长和同轴照明几何。蓝色波长(460 纳米)能很好地区分银质和铜质表面:铜吸收蓝光呈现出暗场,银反射蓝光呈现亮场。同轴照明几何消除错误反射:不想要的耀眼点,反射和暗点。

在这里插入图片描述

技巧3:在玻璃中检测裂痕使用非漫射光

比如检测玻璃容器上的裂痕

照明技术:暗场

在这个应用当中,用暗场照明来创立一个明亮的,在暗背景下容易检测的感兴趣特征。在一个暗场区域中光线直接通过透明的瓶子。大多数穿透透明对象的光线不会被相机检测到。如果材料不规则,比如有裂纹,一些光线就会凸显出这个不规则。特别是划痕创立了一个内部空缺,这里光线折射和反射,以许多角度散射包括返回给相机。这些光线将很难检测的划痕转换到暗背景下的亮特征。

在这里插入图片描述

技巧4:检测透明包装使用漫射光

比如验证吸塑包装的内容

照明技术:连续漫射

连续的漫射照明技术不强调表面纹理和升高中的变化。它提供了非常大的固定照明角度,从多角度让光线找到对象上,因此消除了反射和典型的非方向性或单个光源产生的阴影。

在这里插入图片描述

技巧5: 使用颜色创造对比度

在机器视觉应用中创造一个高对比度图像的一个有用的方法是用特殊波长(彩色)的光照明物体。对于黑白相机来讲,光的波长能使得跟彩色一样的特征变亮或变暗。使用彩色轮子作为参考,选择一个相反颜色的光来使得特征变暗;或选相同颜色的光使得特征变亮。例如:

  1. 如果你想变暗的特征是红色,则使用绿光;

  2. 使用绿光能使得绿色特征呈现更亮;

  3. 记住铝上刻印在红光和蓝光下的区别。

在这里插入图片描述

技巧6: 针对快速移动的物体使用频闪光

当物体快速移动成像是模糊时,就需要使用频闪光。频闪宽度 = 视场÷ 像素/移动速度

技巧7: 消除反射使用红外光

机器视觉系统依靠数字图像中的灰度级转化。在许多视觉应用当中,环境光带来了不想要的亮反射,这样使得检测感兴趣特征变得困难或不可能。红外光就能解决这个问题。

在这里插入图片描述

技巧8:使用红外光消除颜色差异

红外光能用于在彩色对象之间消除灰度差别。暗对象吸收红外波长,创造出一致性,而其它则呈现阴影。这个照明方案有利于检测颜色或阴影变化的非一致性。

在这里插入图片描述

为自己的机器视觉系统选择合适的照明方案,需要从多方面来考虑,从这些小技巧中选择可取的,结合到自己的系统特点中去,相信会事半功倍!照明学问很大,需要一步步学习~!

本文原文连接:https://www.sohu.com/a/218714822_610702
本文原文连接:https://www.sohu.com/a/218714822_610702
本文原文连接:https://www.sohu.com/a/218714822_610702

热门文章

暂无图片
编程学习 ·

web照片存储网站登录后的主页面

web照片存储网站登录后的主页面 在这里插入代码片<%@page import=“java.util.*”%> <%@page import=“com.fh.util.QueryAssistant.QueryAssistant”%> <%@page import=“org.apache.shiro.SecurityUtils”%> <%@page import=“org.apache.shiro.subject…
暂无图片
编程学习 ·

Python之OpenCV的学习(一)

一.安装 打开Pycharm:File -> Settings -> Project:xxxx下的Project Interpreter,如图所示然后,点击右边的加号进行搜索点击左下角Install Package即可 如果搜索不出来,可以看一下是不是pip源的问题 点击Manage Repositories我使用的是豆瓣pip源:http://pypi.douba…
暂无图片
编程学习 ·

内网穿透工具 frp

内网穿透工具 frp 荐国网络工具包授权协议: GPL开发语言: Google Go操作系统: 跨平台收录时间: 2016-08-01提 交 者: FateDier收藏1145评论62分享软件介绍资讯 (8)问答 (2)博客 (99+)我要提问frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支…
暂无图片
编程学习 ·

Less 基础

1. 维护CSS的弊端 CSS是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。CSS需要书写大量看似没有逻辑的代码,CSS冗余度是比较高的。 不方便维护及扩展,不利于复用。 CSS没有很好的计算能力 非前端开发工程师来讲,往往会因为缺少CSS编写经验而很难写出组织良好且易…
暂无图片
编程学习 ·

Centos Linux 服务器怎么在服务器内部访问网站?

有些时候,测试需要,想在服务器内部访问自己的网站看看能否正常打开。Windows的服务器一般直接http://localhost/,或者网址就可以了。没有安装桌面环境的Linux怎么办呢?curl http://www.xyservice.com就可以访问http://www.xyservice.com这个网址了。当然,是直接把网页源代…
暂无图片
编程学习 ·

nexus3.x Liunx私库安装教程 (亲测!)

目录前言一、环境准备二、nexus环境配置三、了解nexus四、上传naxus五、使用nexus六、问题1、问题一后言 前言 书接上文?enn… 嘛~ ,上文:nexus 3.x下载 3.18.1(maven 私服) 上面是教如何下载nexus的 嘛,开始吧,有啥阔以聊的我后面再放吧(づ ̄ 3 ̄)づ一、环境准备 1、一台…
暂无图片
编程学习 ·

抓头,0xc00005错误看到一个比较多的解释 记录一下

说明文字:PAGE-FAULT-IN-NONPAGED-AREA 通常的原因:内存错误(数据不能使用分页文件交换到磁盘中). 解决方法:卸掉所有的新近安装的硬件. 运行由计算机制造商提供的所有系统诊断软件.尤其是内存检查. 检查是否正确安装了所有新硬件或软件,如果这是一次全新安装,请与硬件或软…
暂无图片
编程学习 ·

老鸟带你回顾新人Java不容错过的八本好书

回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路。 [入门] 我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。 后来我就看《…
暂无图片
编程学习 ·

使用ftrace分析函数性能

0. 背景 ftrace的功能非常强大,可以在系统的各个关键点上采集数据用以追踪系统的运行情况。既支持预设的静态插桩点(trace event),也支持每个函数的动态插桩(function tracer)。还可以利用动态插桩来测量函数的执行时间(function graph tracer)。关于ftrace的详细操作和原理分…
暂无图片
编程学习 ·

zookeeper的安装及配置

zookeeper的安装及配置解压zookeeper压缩包 tar -xvf zookeeper-3.4.10.tar -C ~/softwares softwares是在~下自行创建的一个目录创建软连接 ln -s zookeeper-3.4.10/ zookeeper(方便以后更换)配置环境 进入~/.bashrc文件,配置环境变量 vi ~/.bashrc ####ZOOKEEPER_CONF####…
暂无图片
编程学习 ·

Java继承多态面试题

1.多态的实现原理2.面向对象的特征之一——多态2.1多态的定义多态是同一个行为具有不同的表现形式或形态的能力。允许不同类的对象对同一消息做出响应,同一消息可以根据发送的对象不同采用不同的行为方式。对于面向对象,多态分为编译时多态和运行时多态,编译时多态是静态的,…
暂无图片
编程学习 ·

流量记录和回放n2disk

n2disk™是网络流量记录器应用程序。n2disk™是具有索引功能的10/40 Gbit网络流量记录器。使用n2disk™,您可以从实时网络接口以几Gigabit速率(在足够的硬件上以10 Gigabit / s以上)捕获全尺寸的网络数据包,并将其写入文件中而不会丢失任何数据包。n2disk™旨在将文件长时间…
暂无图片
编程学习 ·

三通道低功耗AS3933/PAN3501低频唤醒芯片125K

三通道低功耗 ASK 接收机 1 、概 述 PAN3501 是一款支持最多三个通道接收的低功耗 ASK 接收机,可用于检测 15kHz-150kHz之间的 LF 载波频率的数据信号并触发唤醒信号。支持检测可编程的 16 位或 32 位曼彻斯特唤醒模式。 …
暂无图片
编程学习 ·

梯度直方图和灰度共生矩阵

下面这三篇文章写的不错:https://blog.csdn.net/guanyuqiu/article/details/53117507https://blog.csdn.net/qq_32892383/article/details/79768684https://blog.csdn.net/qq_32892383/article/details/79779513
暂无图片
编程学习 ·

疫情下的舆情预测系统工作报告part.4

项目地址:https://github.com/Lee991211/Innovation_training.git数据清洗 当获取了大量的微博数据,需要对冗余数据进行清洗,使数据满足一定格式,以达到模型训练的要求@杨涛同学。当然这个任务相对于爬取就比较简单了,出于保存数据备份的想法,我的清洗脚本分为两步。 was…
暂无图片
编程学习 ·

pyspark_聚合操作groupby_sum

print(*****************整体变化:) print(DF_temp.groupby().agg({deposit_increase:sum}).collect()) print(***************存款人均变化:) print(DF_temp.groupby().agg({deposit_increase:mean}).collect())
暂无图片
编程学习 ·

百度百科创建好像成功不了,BBdoc文档搜索词条都四个版本了无法成功!

看来想创建成功百度百科几乎是不太可能,不知道啥原因?本来想通过百度百科让更多人了解到BBdoc文档搜索工具,可以早日使用上,但就是无法成功。BBdoc文档搜索官网:http://www.bbdoc.cn/版本1提示错误:版本2提示错误:版本3提示错误:版本4提示错误:不想有版本5了,快崩溃哪…
暂无图片
编程学习 ·

vue3.0全家桶

Vue 3.0 全家桶抢先体验 1.vue: Beta 2.vue-router: Alpha 3.vuex: Alpha 4.vue-class-component: Alpha 5.vue-cli: Experimental support via vue-cli-plugin-vue-next 6.eslint-plugin-vue: Alpha 7.vue-test-utils: Alpha 8.vue-devtools: WIP 9.jsx: WIP 可以看到 Vue 3.0…