历史上的今天
今天是:2025年06月17日(星期二)
2020年06月17日 | 基于阴影重建形状的视觉技术:图像形状提取技术及其应用
2020-06-17 来源:eefocus
自动化视觉检测已经广泛应用于现今的生产环境的各个领域,从半导体、电子、食品和饮料、医药包装、汽车制造以及其它不同行业。而视觉检测的应用可分类为测量、有 / 无检测、机器人导航、瑕疵检测、一维或二维码识别,以及光学文字识别(OCR)阅读等等。常规的 2D 算法通常擅长处理某些特征清晰且定义明确的应用,因此检测更加可靠。 换句话说,目标特征必须稳定并且清晰一致地呈现,检测和识别才会比较可靠。
不过就如人生一样,视觉检测时常面临挑战和困境,譬如一些表面带有天然的纹理或高度反光的物体;再譬如,一些部件经过打磨或冲压等制造过程,产生了弯曲或带纹理的表面;还有一些物件带有浮雕图案或凹凸不平特征,例如是冲压或雕刻标记,这些都会为检测带来困难。传统的二维算法和预处理工具往往不能可靠的解决这些问题。基于阴影重建形


上图:原图像;中图:阴影重建形状技术处理后的图像; 下图:利用 Teledyne DALSA Sherlock 软件的阴影重建形状技术处理后的图像
阴影重建形状技术的广泛应用
下面两个例子显示 SFS 阴影重建形状技术的应用如何解决一些传统二维算法和预处理器难于处理的情况。在第一个案例中,制造商试图检测瓷砖表面的裂缝或划痕。可是由于瓷砖表面带有复杂的纹理背景,使得一般的照明技术和常规的二维预处理器和算法很难及时检测到异常,因为这些缺陷在标准成像中根本无法察觉。利用 SFS 技术,凹陷、裂缝和刮痕都能够被轻易从背景中分离,分辨及被检测出来。
在上面的示例中,可以看到字体和图案是以凸压方式印在名片上。 如第一张图片所示,在文首的图片中,在名片上的压印字体其实是很难用肉眼来阅读的。虽然低角度暗场光源会有帮助,但还是不够强大和稳定。利用 SFS 配合多角度多重光源,可实现具有更高反差和更出色的合成图像。图像经处理后,名片上的所有字体均清晰显示 (如上面第二张图片所示),以便于标准光学文字辨识算法查验。
什么是 SFS 阴影重建视觉技术?
阴影重建形状(Shape from Shading,简称 SFS)是一种将物件形状和它的二维表面纹理分离的技术。通常,一般来说,它是用于突显图像的三维表面纹理信息,即所谓的形状图像,并除去高反光部分的眩光,即所谓的纹理图像。这一技术的工作原理是利用分段环灯或独立的条形灯并将多个图像组合为一个图像而起作用。拍摄过程会从一系列图像中提取数据以揭示以前隐藏的表面特征或缺陷。
相机会按照环灯的逆时针转动方向,拍摄出四个不同照明角度的图像。接着利用阴影重建形状(SFS)技术把四个图像合成,以显示三维表面结构。上面的四帧图片显示出一个带纹理的瓶盖在不同照明角度下拍摄出来的影像,以及经 SFS 算法处理后的合成图像。
下图显示 SFS 技术的合成和处理过程。

利用多角度多重光源(使用者可编程)撷取的四个影像

Teledyne DALSA Sherlock 软件里的 SFS 算法可计算具有 3D 效果的合成图像,以增强对比度,同时抑制背景噪声。
形状图像
工作原理如下:算法会搜寻从每一照明方向建构出来的阴影以及突显出来的边缘。每一帧图像的阴影和边缘会组合成一个图像,以展示各部份的高度差异。这特别有助于侦测刮痕、凹陷、遗失的部件等等。
纹理图像
该算法还将寻找没有直接照明的图像区域。 然后,它将看起来相同的图像的所有区域(即它们没有眩光)组合到一个没有眩光的图像中。 这对于检查高反射率零件或通过塑料或透明材料覆盖物或包裹物检查零件很有用。
如何处理运动中目标物的检测
假如部件在检测过程中处于运动状态,SFS 的嵌入式活动矫正机制可以处理同一部件在每一图像撷取时位于不同位置的情况。再通过额外的一副图像,即所谓的搜寻图像。通过比较第一副图像和搜寻图像,算法会找出部件在图像撷取时的活动模式,从而识别并对齐正确的像素。


经 SFS 处理的图像
SFS 阴影重建技术的优势
这种先进的视觉解决方案具有许多独特的优势。 通过先进软件算法配合多角度照明,它有助于消除表面背景效果(例如噪音或色彩),并产生聚焦于具有强烈对比度的特征的输出图像,以方便检查。 它特别适合检查多种材料(例如金属,塑料,橡胶和陶瓷)的反射表面和粗糙表面是否有瑕疵(例如凹痕,凹槽,裂缝和划痕),并清晰显示难以理解的字符。
史海拾趣
|
Embedded Design Challenges • Rapidly changing product requirements and creating differentiated products • Reducing total system cost and size • Reducing hardware and software ...… 查看全部问答> |
|
紧急!!SIM300DZ 模块对AT指令返回错误信息 在线等 我开发的平台是S3c2410,我想在嵌入式linux下实现GPRS上网,使用pppd call GPRS方式,SIM300DZ模块使用的是3脚串口,模块开机后向其拨打电话可以接通,但是执行pppd call GPRS,执行到send(AT)EXpect(OK)时,串口返回的是“%lee”这是怎么回事 ...… 查看全部问答> |
|
####51单片机 4M晶振,如何实现1秒钟的精确定时?##### 初看,很简单,越研究越深入,发觉越麻烦。若换成12M 或者 6M的晶振,不叫问题,but,目前要求用89C51,晶振4M,实现1s的精确定时。 我们知道 对51单片机而言,一个机器周期等于12个晶振周期,故: 若晶振为12M,1个机器周期=12*(1/12M)=1us ...… 查看全部问答> |
|
void delay(uint ms) { uchar k; while(ms--) //这句等介什么程序,没有见过这种写法 { for(k = 0; k < 500; k++); } }… 查看全部问答> |
|
TI公司MaxLife快速充电技术解析,不伤电池的快速充电技术,,, 虽然锂离子电池的充电速度比以前的镍镉电池或镍氢电池快多了,但我们还是嫌慢。越快越好。是的,市场上有售一些快速充电器,但它们会严重损害锂离子电 ...… 查看全部问答> |
|
本帖最后由 jorya_txj 于 2014-1-5 20:18 编辑 很多时候,用户发送具体消息的时候,也需要发送一个消息长度。比如在网卡中断中接收到了一包数据,发送消息给外面任务的时候,也需要告诉外面的任务消息的长度是多少。使用之前的queue模块做需要一 ...… 查看全部问答> |




