基于瓶装啤酒的在线容量检测方法及装置研究
2008-11-20
作者:苑玮琦,薛 丹
摘 要: 开发了一个基于DSP的瓶装啤酒容量在线自动检测嵌入式系统。针对啤酒厂实际环境设计了光学系统,重点分析并解决了设计中遇到的摄像机成像速度、图像传输速度" title="传输速度">传输速度及生产线运动速度三者之间的匹配问题,很好地满足了生产线速度" title="线速度">线速度的实时性" title="实时性">实时性要求。同时给出一套实用的液位" title="液位">液位检测算法,能够自动识别瓶装啤酒容量。此系统的设计具有成本低、速度高及便携实用的特点。
关键词: DSP;SAA7113;图像处理;动态采集;啤酒容量
灌装啤酒靠压力罐装。缸内压力过高则液位过低,液体容量不足以满足灌装要求;压力过低则容易产生满缸,导致无法灌装。因此,在灌装啤酒过程中,啤酒液位不足的现象时有发生。传统检测主要靠人眼,随着生产线速度的不断提高,视觉疲劳必然会增加漏检率。为了实现真正的生产线全自动化,设计一套能够自动检测啤酒容量的装置具有重大意义。它不但节省人力,而且机器化的检测可以降低漏检率和误检率,提高经济效益。
国外的检测手段多采用高精度、高质量摄像机拍摄物体,光学系统也采用高精度光源,以保证成像的清晰,通过PC机或PLC工控机观测被检测物体的状态。尼若·施瓦茨等三人曾于1994年在美国加利福尼亚申请了“用于质量和流程控制的动态液体液位及气泡的检测”专利[1];美国PPT VISION推出IMPACT机器视觉微型系统,使用Inspection Builder开发环境,检测效果不错。但这些检测手段成本较高,不适合我国中小啤酒生产企业的推广。
湖南大学在2003年首次使用机器视觉的检测方法对“自动生产线上" title="生产线上">生产线上透明灌装瓶液体体积的机器视觉检测系统[2]”进行研究并申请了专利[3]。2004年浙江大学继续提出基于DSP的“啤酒液位与杂质自动检测系统的结构设计和开发[4]”。这些无论从硬件框架的搭建还是软件算法的编写都模仿国外的先进设备进行研究。用带有异步复位、外触发功能的高价格摄像机拍摄啤酒瓶,用光电传感器捕捉动态物体,另外用采集卡和工控机进行瓶内液面的检测。检测设备成本较高且体积庞大,不便于携带。
本文设计一个基于低成本的DSP控制器,它是可脱离计算机独立运行程序,完成图像采集、处理、识别的全过程的小型设备。这样一个小型检测设备可方便地带到生产线上,安装简单、检测方便;可实时显示瓶装啤酒容量值,当容量不足或者过剩时,设备的报警系统会自动响起,同时将瓶子经过机械设备剔出生产线重新罐装。
1 系统结构与原理
本文针对检测罐装酒后啤酒容量是否达标的部分进行研究。使用普通的工业监控摄像机,通过DSP控制摄像机采集动态的啤酒瓶图像,嵌入图像处理方法编写的识别检测瓶内液面高度的软件,检测瓶装啤酒的容量是否达标。达标的可继续传送到下一生产部分贴标签准备出厂,同时显示系统显示出液位值以供参考;若不达标则报警系统自动报警并由机械手将瓶子移出,送入次品传送带,再循环进入灌酒部分重新灌酒。机械装置如图1所示。同时,外扩一片非易失性的FLASH存储程序,可实现脱机运行,从而实现了低成本、携带安装方便、适用于现场检测的研发目的。系统设计框图如图2。
2 关键技术解析
为体现设备的低成本、高速度、便携性的优点,同时要达到生产线实时检测,需对一些关键性技术问题进行分析与研究。
2.1 光学系统设计
(1)摄像机
摄像机内部的图像传感器主要有CCD和CMOS两种。同等价位,CCD拍摄的图像效果要远远好于CMOS的。另外从传感器输出信号格式来分,可分为模拟传感器和数字传感器。模拟传感器输出的是模拟信号,须经过一个A/D转换器转成DSP能够处理的数字信号,其价格低廉,使用简单。但是模拟相机存在一个分辨率和帧频率的上限,分辨率取决于传感器像素的数目以及后期处理电路的质量;帧频率即指相机每秒钟能够输出图像的帧数,对于模拟制式相机,这个频率是固定值,如PAL制式的摄像机,帧频率固定为25帧/s。模拟传感器的缺点是对于传输过程中的噪声和损耗较为敏感,此问题可通过后续算法对图像进行处理而得到改善。数字传感器直接输出数字信号,节省了A/D转换的时间。其通常具有更高的分辨率,此分辨率直接取决于传感器上像素的数目;帧频率是个可变的值。数字相机的传输距离通常比模拟相机短。
目前的研究方案大多使用数字摄像机、采集卡及PC机完成图像的采集与处理,通过光电传感器判断物体的到来从而产生触发信号,触发摄像机电子快门及采集卡采集图像。这种设备成本较高,且设备庞大不便于携带。而本文设计的初衷是低成本、便携及实用,因此根据啤酒厂生产线实际速度情况,本文选择一款PAL制式的模拟工业监控摄像机与DSP处理器来完成图像的采集与处理。至于采集处理图像的速度是否能满足啤酒生产线的速度,将在后续进行分析。
(2)光照
为避免啤酒因光照而变质,啤酒瓶通常做成深色,主要有绿色和棕色两种。深色不利于液位的提取,提高了对光源的要求。LED光源凭借其使用寿命长、发热少、效率高、成本低、反应速度快、亮度稳定、无污染,有很好耐潮性、抗震性和防爆性等优点,被广泛应用。
目前,光源的照射方式主要有背光照、前光照、分光反照三种。经实验比较,采用背光照射效果最佳。从原理上分析可知,对于半透明的玻璃体,背光照射可提高光的反射度,通过弧形玻璃体后形成漫反射,无形中减少了光斑的产生,同时也提高了液位处的对比度。光照示意图如图3。
2.2 摄像机与待测物体位置摆放的合理设计
合格的液面应在啤酒瓶的瓶颈区域内,因此本文只采集瓶颈部分图像。在此范围内识别到的液面高度在设定的标准值范围内时表示合格,不在这个标准值范围内或者根本无液面出现时,判断为不合格品。PAL制式采集图像幅面为720像素×625像素,为了减小图像存储量,本文只截取100像素×100像素(以下简称为100×100)的幅面。
为了保证啤酒瓶的瓶颈部分正好出现在这个100×100的幅面里,需计算合适的物距。大于这个距离则采集到的图像包括瓶肩部分。由于瓶肩部分的弧形设计反光现象非常明显,会影响液位的识别;若小于这个距离,则采集的图像部分未全部包括瓶颈部分,会对液面高度造成误检。图4为摄像机摆放位置示意图。
不同型号的啤酒瓶瓶颈高度也不同,本文以瓶颈高7cm为例,其物理放大率即传感器感光面积与视野的比值为γ=7/100=7%,则摄像机采集的幅面大小m=625×本文选取合适的镜头参数即可计算出物距。在物体空间一定距离范围内的物体成像都是清晰的,这个范围称为景深。它和很多因素有关,最重要的是光圈大小。镜头光圈大小一般用F数来表示,F=D/f,其中D表示有效孔径,f是焦距。物体在景深范围内时,图像可以保持一定的质量,超出这个范围时,对比度和分辨率都会下降。一般情况下,只要清晰度能满足要求即可,如图4中所示,D范围内所成的图像看起来都是清晰的。将摄像机与啤酒瓶的位置按上述计算的物距值及D的范围固定后即可采集到清晰的啤酒瓶图像。
2.3 速度实时性分析
本文所阐述的是一种在实时图像处理系统中的视频采集控制方法。所谓实时性是指图像数据的采集和处理以一定的速度连续进行,图5为检测一帧图像所需时间示意图。其中图像数据的采集速度涉及到摄像机成像速度、图像传输速度及生产线的运动速度,这三者有密切的关系。
2.3.1 摄像机成像速度
摄像机的成像主要靠电子快门,通过控制感光片有效曝光,将光信号转换成电信号的过程。电子快门曝光时通光量的大小主要影响采集的图像质量,这正体现了光学系统设计中光照问题的重要性。而曝光时间将直接影响图像采集的实时性要求。
对于数字相机,通常电子快门的时间可通过软件设置控制,可调范围较大。而模拟摄像机电子快门的速度值通常在摄像机中已设置好几个参考值,选择一个合适的值即可。成像部分电子快门的速度范围大约在1/10 000s~1/100 000s,而相机传输速率是相对固定的,是相机成像速度的“瓶颈”。
2.3.2 图像传输速度
本文设计的嵌入式系统采用模拟摄像机和视频解码芯片传输图像,模拟摄像机为标准的PAL制式,视频解码芯片是Philips公司的SAA7113H[5],它的采集时序图如图6所示。
模拟视频信号是由多种信号叠加复合而成的,主要包括:行同步信号、场同步信号和消隐信号等。如图6所示,行同步信号的高电平表示有效行信号的到来,低电平表示行消隐信号;隔行采集时通常分为奇场和偶场两场信号,其中高电平表示奇场信号到来,低电平表示偶场信号到来。
SAA7113H的LLC为27MHz,像素时钟为LLC/2=13.5MHz,因此2/LLC为采集一个像素所需要的时间,从图6(c)可知:行同步信号高电平期间,表示一行图像的有效采样720个像素,低电平表示消隐期间采集144个像素。PAL制式逐行采集图像的格式为625行。这样可计算出采集一幅图像所需的时间为(720+144)×625×1/13.5=40ms。本文对采集来的图像质量要求不高,只要能识别判断出液面即可,其更注重图像采集的实时性。因此为了提高采集与处理的速度,可通过对SAA7113H的相应寄存器进行控制,通过IIC总线对其进行配置,实现隔行采集方式的选择。即20ms采集,20ms处理以达到实时性。DSP芯片是处理型器件,它的控制能力较弱,即通用I/O口较少,且本文选用的TMS320VC5416没有标准的IIC接口。因此通过将DSP的HPI口配置为通用I/O口,实现软件模拟IIC接口完成初始化工作。
2.3.3 成像速度、传输速度与生产线速度匹配分析
只有协调好成像速度与采集速度的匹配,才能准确实时地采集到目标图像,避免漏检与误检。以生产线速度54 000瓶/h为例,单排运行且瓶与瓶紧挨着,可计算出平均生产线速度为1m/s。为确保在100×100的幅面内只存在一个瓶子,采集并处理完一个瓶子需40ms,在这40ms之间瓶子横向移动的距离为1m/s×40ms=4cm。以瓶颈高7cm为例,瓶子在100×100幅面内出现的位置范围如图7所示。
情况1:动态捕捉瓶子的位置刚好是瓶子右边缘出现在100×100幅面的左边缘上,如图7(a)所示,而在采集并处理完毕时瓶子刚移动4cm,并未移出7cm,还在100×100这个幅面内。因此再次采集图像时还在处理这个瓶子。当这个瓶子再次处理完毕时,为了避免漏采下一个瓶子,需保证下一个瓶子与这个瓶子之间的距离至少大于7+4-(7-4)=8cm。
情况2:动态捕捉瓶子的位置刚好是瓶子左边缘出现在100×100幅面的右边缘上,如图7(b)所示,而在采集并处理完毕时瓶子移动4cm,要保证在这40ms内第二个瓶子还没进入100×100的幅面,需保证两个瓶颈之间距离应大于7+4=11cm。
实际采集图像时,图像出现的位置在上述两种情况之间出现,即在图7(a)到图7(c)图之间的范围,如图7(b)所示。因此只要两个瓶颈之间的距离满足以上的最大值要求即不会造成漏检和误检,同时也可以达到实时性要求。设瓶底直径约6cm,瓶颈直径约3cm,则当瓶与瓶紧挨着时,两个瓶颈左右边界距离约4cm。若满足两瓶颈之间距离大于11cm,就必须保证两瓶子之间距离约11-4=7cm。
按照40ms检测一个瓶子计算,理论上每小时可检测9 000瓶,而实际生产线是由几大流程组成的,如灌酒、杀菌消毒、检测、贴标签等。生产线按照单入双出的原则,即在进入每个流程时,生产线降低行进速度变为单排入,而在每个步骤结束后,生产线提高行进速度变为双排出。这样在每部分生产线速度都是可调的。因此按照上述检测速度,啤酒总产量在54 000瓶/h是完全可以满足的。
瓶与瓶之间的距离可通过改动机械装置调整,当瓶装啤酒经过容量检测这部分时,增加一个分瓶机,将瓶与瓶之间的距离拉开,瓶间距满足以上要求即可保证每次采集的图像中只有一个瓶子,避免临近瓶子形成干扰区域,同时也可以减少瓶子间的碰撞,降低漏检率和误检率。
2.4 DSP的选择及存储空间的分配
实时图像处理系统由于要处理的数据量较大,因此有必要对存储空间进行合理的设计。这不仅可防止数据丢失,还可协调好图像采集数据和处理数据的合理空间存储,以避免之间产生冲突。
生产线啤酒瓶传输速度较快(约54 000瓶/h),因此选择一款合适的DSP处理器至关重要。对比TI公司的几种DSP型号,其中TMS320VC5416[6]主频为160MHz,内部有128K×16位的RAM,采集大小为100×100的图像占据空间9.76KB,这对存储背景图像、目标图像和运行中占用的一些数据空间来说完全可以满足,无需外扩。另外该芯片实行I.6V和3.3V双电源供电,可以用小电池供电,比较适合做成掌上设备,便于携带。
为避免采集整幅图像造成无用信息的浪费,本文采用开窗截取图像的方法,只保存有用信息,另外处理完一幅图像后释放对应的内存空间,以便后续图像的存放。这种开窗截取的方法以往多是硬件上采用CPLD,软件上配合VHDL语言进行编写。这不仅增加了硬件资源,同时又使软件的编写变得复杂。
由于FLASH在掉电后数据不会丢失,因此可将程序事先烧写到FLASH中。上电后,用BOOTLOADER方式将其装载入DSP的内部RAM中运行。这样可脱离计算机,做成一个小型设备,方便携带到生产线上进行在线检测,充分体现了嵌入式系统的优点。
3 软件设计
本系统的DSP图像处理算法主要包括图像预处理、图像定位算法和图像特征提取算法。算法程序主要在TI公司发布的DSP软件运行环境CCS(Code Composer Studio)下由C语言编写并进行汇编优化。
图像算法的具体步骤如下:
(1)动态图像捕捉:为简化硬件设计,用软件差影法代替硬件光电传感器捕捉动态目标图像,准确处理每一幅瓶装液体的图像。
(2)图像的预处理:主要运用灰度直方图的修正和灰度形态学滤波等噪声平滑算法。
(3)图像定位:由于每次捕捉动态图像的位置都不同,因此对瓶子左右边缘进行定位以缩小寻找液面的范围,使检测更加准确。这里主要利用灰度值判断的方法提取瓶子左右突变边缘。设图像为f(x,y),i为行,j为列。
当i固定时判断t,t为最大时的j即为瓶子的左侧边界处;t为最小时的j即为瓶子的右侧边界处。其中k是可调参数,范围可设在3~5之间。图8为i=80,n=4时定位后的图像。
(4)液面提取:由于啤酒瓶的主视图是对称的,因此底边的垂直平分线必然穿过啤酒的液面。由于运动中的啤酒瓶因震动会有少量泡沫产生,在液位边缘提取中,不能精确检测出液位的高度。为减少这种影响,在液位边缘提取时,可选定瓶子的中心轴位置,沿列方向多行进行判断灰度值变化,即可提取出液面。如图8所示。
由于TMS320VC5416芯片采用6级流水机制,但没有解决流水线相关性问题,因此,编程时要合理调配指令顺序,尽量减少指令的相关性,更多地安排指令并行,这样可以提高程序的运行速度。另外考虑到此系统运行的速度主要取决于识别算法的运行速度,且由于自动识别的核心算法一般都是C程序,通常C转换的效率不高,只能到40%。为了缩短时间,且充分发挥TMS320VC5416芯片的优点,又兼顾C语言编程的易维护性、可移植性和可继承性等特点,所以采用混合编程的思想,即某些复杂的算法处理模块用基于DSP的汇编编程,而一些比较简单且不影响运行时间的模块用C语言编程。最后,通过优化编程,可缩短整个算法的运行时间,这样极大减小了系统的运行时间,满足了实时性需要。
4 仿真实验数据分析
此部分仿真试验,主要用来测试系统的实时性。上面理论分析已说明了设备的可行性。实际系统测试数据分析如下:一帧图像检测时间=图像传输时间(成像时间+采集时间)+图像处理时间。其中成像时间主要为判断目标物体出现并瞬间捕捉到的时间,约几毫秒;采集图像时间为20ms,严格遵守PAL制式的输出时间;处理时间主要包括液位检测的时间及结果显示时间等,经测试为十几毫秒。这样图像可以在40ms内完成采集与处理。按理论分析的结果,保持瓶与瓶之间的距离在7cm时,检测速度可完全满足54 000瓶/h的需求,达到了实时性要求。
此设备可快速获得稳定的图像并给出识别结果;能够准确捕捉到动态目标图像,达到实时性要求。研制过程中,重点分析了光学系统,使用软件的方法来减少硬件上设计的复杂度。该装置体积小,运行可靠,操作简单,安装方便,便于携带到生产线上进行在线检测。软件算法具有较强的通用性,对类似的半透明玻璃体检测均适用。
参考文献
[1] 尼若·施瓦茨.用于质量和流程控制的动态流体液位及气泡的检测.中国专利,94119000.5.94-11-23.
[2] 刘焕军,王耀南,段峰.自动生产线上透明灌装瓶液体体积的机器视觉检测系统.计算机工程与应用,2004,12:229-231.
[3] 王耀南.多传感器融合智能透明容器检测设备及检测方法.中国专利,03124722.9.2003-8-8.
[4] 王程,蔡晋辉,周泽魁.啤酒液位与杂质自动检测系统的结构设计和开发.工业控制计算机,2004,17(10):14-15.
[5] SAA7113H.pdf.http://www.omnivision.com.
[6] TMS320VC5416.pdf.http://www.ti.com.