历史上的今天
返回首页

历史上的今天

今天是: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 阴影重建技术的优势
这种先进的视觉解决方案具有许多独特的优势。 通过先进软件算法配合多角度照明,它有助于消除表面背景效果(例如噪音或色彩),并产生聚焦于具有强烈对比度的特征的输出图像,以方便检查。 它特别适合检查多种材料(例如金属,塑料,橡胶和陶瓷)的反射表面和粗糙表面是否有瑕疵(例如凹痕,凹槽,裂缝和划痕),并清晰显示难以理解的字符。


推荐阅读

史海拾趣

AVX公司的发展小趣事

XXXX年,AVX公司迎来了一个重要的转折点,它与日本Kyocera公司达成了战略合作。这次合作使AVX在技术上获得了强大的支持,并在市场上获得了更广阔的发展空间。通过整合双方的优势资源,AVX在贴片陶瓷电容、连接器等领域取得了显著的成绩,进一步巩固了其在电子元件市场的地位。

Advanced Detector Corp公司的发展小趣事

为了进一步提升竞争力,ADC积极寻求与其他企业的战略合作。通过与业界领先的企业建立合作关系,ADC成功整合了各方资源,共同研发新技术、新产品。这些合作不仅加速了ADC的技术创新步伐,也为其带来了更多的商业机会。

艾吉芯(Agertech)公司的发展小趣事

面对全球电子市场的激烈竞争,艾吉芯公司积极实施国际化战略。通过在海外设立研发中心和生产基地,艾吉芯成功将其先进的技术和优质的产品推向国际市场。同时,公司还积极参与国际行业交流和合作,不断提升自身的国际化水平和竞争力。

Dearborn Electronics Inc公司的发展小趣事

Dearborn Electronics Inc.注重国际合作与交流,与全球多家知名企业和研究机构建立了紧密的合作关系。通过引进国外先进的技术和管理经验,公司不断提升自身的核心竞争力。同时,公司也积极参与国际市场竞争,拓展海外市场,为未来的发展奠定了坚实的基础。

以上这些故事框架仅供参考,你可以根据这些框架进行深入的调查和研究,撰写出具体、详细的发展故事。

Grand Halo Technology Co Ltd公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Dearborn Electronics Inc.面临着诸多挑战。为了保持竞争优势,公司不断进行转型升级,推出了一系列具有更高性能、更小尺寸、更低成本的新产品。同时,公司也积极拓展新的应用领域和市场,寻找新的增长点。

飞虹(FeiHong)公司的发展小趣事

苏州锋驰深知知识产权的重要性,公司高度重视技术创新和知识产权保护工作。截至目前,苏州锋驰已拥有商标信息2条、专利信息13条,这些知识产权的积累为公司的持续发展提供了有力的保障。同时,公司还积极参与行业标准制定和技术交流活动,不断提升自身的技术水平和行业影响力。

问答坊 | AI 解惑

最酷最全的电子类学习网站集锦

这是我在网上找的一些信息,是转载!希望对大家能有有用!希望大家多多支持! 由于字数太多,放在WORD文档中。…

查看全部问答>

TI2407入门资料

不知别人有没有上传过,也许对初学者有用 …

查看全部问答>

Xilinx 嵌入式平台套件产品简介(英文)

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 ...…

查看全部问答>

请while(ms--) 这种写是什么意思?

void delay(uint ms) {   uchar k;   while(ms--)  //这句等介什么程序,没有见过这种写法   {     for(k = 0; k < 500; k++);   } }…

查看全部问答>

一个很邪门的问题

我帮别人做个读IO口,然后通过串口发出去的程序,用PC调试正常,怎么试怎么好,但是将单片机接到终端设备上去,终端收到的数据出错,但是如果将这个数据发给一台pc,单片机将数据发给pc,然后pc用相同的串口设置将收到数据发给设备,则设备接收数据 ...…

查看全部问答>

TI公司MaxLife快速充电技术解析

    TI公司MaxLife快速充电技术解析,不伤电池的快速充电技术,,,     虽然锂离子电池的充电速度比以前的镍镉电池或镍氢电池快多了,但我们还是嫌慢。越快越好。是的,市场上有售一些快速充电器,但它们会严重损害锂离子电 ...…

查看全部问答>

uart 接收发送新玩法

本帖最后由 jorya_txj 于 2014-1-5 20:18 编辑 很多时候,用户发送具体消息的时候,也需要发送一个消息长度。比如在网卡中断中接收到了一包数据,发送消息给外面任务的时候,也需要告诉外面的任务消息的长度是多少。使用之前的queue模块做需要一 ...…

查看全部问答>