APP下载

基于DSP实时图像分割算法的鸡蛋蛋壳破损检测

2010-11-13贺静王树才

湖南科技学院学报 2010年4期
关键词:灰度边缘鸡蛋

贺静王树才

(华中农业大学 工程技术学院,武汉 430070)

0 引 言

在目前的蛋品加工行业中,劳动力主要密集在人工检测,即通过操作工人的感官来测定蛋壳是否破损。由于人工检测生产效率低,劳动强度大,对检测工技术要求高,检测稳定性较差,这些严重制约着我国蛋品加工行业的规模化发展[1]。国内外对于鸡蛋裂纹的无损检测研究主要集中声学技术和计算机视觉技术两方面。声学振动法是一种判断鸡蛋破损的有效方法,但其检测准确率易受到蛋壳结构和外界噪声的影响,降低了检测准确率[2]。而机器视觉技术可以克服以上缺点,并能实现禽蛋综合品质的检测。Kurt C.Lawrence等人[3]研制了图像检测鸡蛋裂纹的改进型压力系统,分别采集大气压和加压下鸡蛋图像送入系统处理,识别裂纹的准曲率达到99.6%,但是在采集两副图像之间鸡蛋必须保持绝对静止。H.R.Pourreza等人[4]利用彩色图像中鸡蛋缺陷引起的不连续性找到目标区域,提出最小矩形法删除鸡蛋投影边缘,利用自适应阈值法分割图像二值化,计算处理后图片中的目标点数与总的矩形区域的比值,该值大于设定值时该鸡蛋存在缺陷,此算法的正确识别率为 99%,但是在主频为667MHz的PC机上处理一副鸡蛋图像需要用时0.87s。 Patel等人[5~6]将直方图作为变量,建立一个神经网络来识别鸡蛋缺陷,准确率为67.5%。

以上介绍的均是在PC机上完成,而DSP芯片随着集成电路的发展和巨大的市场,在过去的十多年时间,DSP芯片已经在图像处理和语音处理等许多领域得到广泛应用[7]。高性能DSP微处理器采用改进的哈佛总线结构,具有精度高、可靠性强、集成度高、接口方便、灵活性好和时分复用等优点,为图像处理系统的快速实时处理提供了契机[8]。本研究以鸡蛋为研究对象,采用 TI公司的 DSP(TMS320DM642)作为运算处理器,设计了从图像采集到结果输出的实时图像处理系统。

1.蛋图像采集系统和试验材料

鸡蛋图像的采集在 25×25×22cm 的长方体光照箱环境内,系统由合众达电子公司的SEED-VPM642 DSP实验箱、Aironix (奥尼克斯) MCC-4036H型模拟摄像头以及自行设计的LED光源和箱体组成。为了去除环境光的干扰,简化后续的处理步骤,实验箱体设计为封闭式光照箱。由于蛋壳的硬度不一致且实际生产中鸡蛋不容易定位遮住光孔[9],研究中采用同轴光源法。白色LED光源环形面阵板和相关控制电路,如图2所示,光照强度运用PWM脉宽调制法实现调节,保证光照柔和均匀,光强相对稳定,有效地减少由光源所引起的噪声。摄像头采集鸡蛋的正反两面图像(下同),图像采集的背景选择黑色[10]。图1中的DSP试验箱负责将采集到的模拟视频信号进行 A/D转换,处理图像并判断,最后通过 D/A转换在实验箱液晶显示屏上显示出判断结果。试验所用鸡蛋均为市场上采购的洗净的大个白壳鸡蛋140枚。

图1.蛋图像采集系统示意图

图2.形LED白光光源

2.像分析处理

一帧鸡蛋的图像处理流程如图3所示。系统采集光照箱体内鸡蛋图像,鸡蛋图像由模拟摄像头实时采集,摄像头为PAL制式(下同)。模拟视频信号被解码为YUV分量,通过高性能视频解码芯片(TVP5150PBS),进行A/D量化采样,转换成8位数字视频流送入DM642中,经过图像预处理剔除非目标噪声,删除鸡蛋投影边缘,标记目标区域,最后将处理结果经过D/A转换后传送给显示屏显示。

图3.帧图像处理框图

2.1.像预处理

鸡蛋图像采集时受各种因素影响,使采集的图像不仅包含目标对象鸡蛋,还参杂一些非目标对象即噪声,而这些噪声的存在严重影响着系统判断。考虑到边缘检测后的二值图像通过 3×3中值滤波后,仍存在非目标区域噪声,如图 4所示(图中背景为灰色是为突出显示鸡蛋,其真实背景颜色为白色,下同),提出了叠加法和外接矩形法两种方法。

图43.3中值滤波效果图

(1)叠加法

由于图像的直方图没有明显的双峰,因此采用最大方差阈值分割法求取阈值[11]。将灰度化后的图像分别存储在两个缓存区域temp1Y和temp2Y中。求取阈值T=150,对缓存temp1Y中存储的图像进行二值化,如图5a所示,鸡蛋颜色为黑色,背景为白色。而对缓存temp2Y中存储的图像先进行sobel边缘检测后求取阈值二值化,如图5b所示。从图5b中可看出鸡蛋边缘外仍然存在很多噪声点,而且裂纹、边界和噪声点的灰度值都是0,目标和背景无法分割。

依次逐点比较图5a和图5b两副图像,鸡蛋边缘和破损区域具有相同的灰度值0,则通过或运算能有效的删除非目标区域噪声。设图 5a中第 i行第 j列像素点的灰度值为Pa(i,j),图 5b中相应像素点的灰度值为Pb(i,j),叠加运算后该点灰度值为P(i,j)的数学表达式为:

式中: 运算符号+为或运算,i=0,1,2,3,…,575,j=0,1,2,3,…,719

图5.加运算过程

(a)直接二值化图片 (b)sobel边缘检测后二值化图片 (c)叠加运算所得图片

(2)外接矩形法

形心也称为质心,对于经过阈值分割并反色后的平面图像,利用公式2和3可得鸡蛋的形心(,。

式中:S为二值图像中鸡蛋的区域,A为二值图像中鸡蛋区域的面积,即图像中所有目标点的总和。

经过形心分别找出水平线和竖直线上的边界点1x、x 2 、y1、y2对图像做一个灰度值为16矩形框。鸡蛋投影从形状上分析近似为椭圆,此法描绘的矩形近似为椭圆的外接矩形,如图6a所示,很好的将鸡蛋区域从图像中分割出来。而且,该法是通过质心找到矩形框的中心和长宽,对任意放置的鸡蛋都能画出一个灰度值与破损相异的外接矩形,如图6b所示。

以上两种方法均能较好的剔除非目标区域噪声,但经叠加法处理后的鸡蛋边缘不连续,如图5c所示,给后续处理引入了新的噪声。并且叠加法处理后的图片在进行后续处理时要扫描整幅图像,计算量大,处理所需时间长。而采用外接矩形法提取出目标区域,后续处理范围缩小到矩形框内,极大地减少了运算量。因此,本研究采用外接矩形法分割目标区域。

2.2.除边缘

经过图像预处理后的二值图片,鸡蛋边缘和破损同为黑色,为了防止将鸡蛋边缘误判为破损并减少标记算法的计算量,采取先删除鸡蛋投影边缘后进行标记的方法。鸡蛋投影边缘是一个封闭的近似椭圆,将目标区域(即矩形框内区域)各行均以质心横坐标作为中点将图像一分为二,分别进行从左往右和从右往左逐行扫描,扫描时总能遇到灰度值为0的像素点,而第一次扫描到的黑点即为鸡蛋的边缘起点。以左边界为例,起始扫描点的坐标为(y从起始点开始从左往右扫描找到第一个黑点,令其灰度值255。另 x=x+ 1(即第一个黑点的右邻像素点),满足,则继续判断是否为0,若0,则令=255,继续判断其右邻相素点直到或=255时结束当前行扫描,换至下一行扫描。摄像头PAL格式实时采集和显示,即当下一行为偶数行时或者 y=y2+1时,循环结束。右边界也用相同的方法删除,删除边缘后的图像如图7所示。由于边缘检测后的边界并非完全光滑,所以在删除边缘后会留下一些小噪声。

图7.除边缘和矩形框的效果图

2.3.进型连通区域标记

分割后的一幅图像内,可能存在多个连通成分,每个连通成分都对应一个目标图像区,给各目标图像区分配唯一标号的工作称为连通区域标记[12~14]。常见的连通规则为 4连通区域和8连通区域,标记值为1-254的灰度值。考虑到鸡蛋的一处破损可能有多条微小分支,而各分支与主裂纹之间可能出现小的断裂,并且在删除边缘时,由于边缘不光滑而出现噪声点,见图7。如果采用简单的4连通或者8连通区域搜索后标记,将出现标记值大于254的情况,然而搜索区域过大会把原本的两个破损误标记为一个。因此选用了一个阈值(T)来剔除虚假破损[8],搜索区域选用5×5邻域。

图8.进型裂纹标记流程图

改进型裂纹标记流程图如图8所示,在开始标记之前,定义一个与原图像大小一致的缓存空间temp1Y,用于存放临时图像。依次逐点扫描目标图像,当找到某未标记的目标像素点时,标记该点并将其作为种子点压入堆栈,在该点5×5邻域内搜索符合条件的点标记压入堆栈,当邻域各点扫描结束后栈首地址后移一位,即原来的目标点5×5领域内搜索到的第一个目标点作为新的种子点。如此反复更新种子点,标记其符合条件的邻域点,当堆栈为空时标记结束并输出 S变量。 S变量的值为每次被标记点的数目,即标记值是Label的标记区域大小。当 S>T时,扫描到一个破损区域,停止往下扫描,结果信号经D/A转换后在实验箱自带的7寸显示屏上显示其为破损鸡蛋。当目标区域扫描结束时仍未出现S>T的破损区域,鸡蛋判定为好壳蛋,同样将结果送入显示屏显示。

T的选取直接影响破损检测的准确率。为了选择合适的T值,选取大个白色鸡蛋80个(其中保留好壳蛋40个,人工敲破40个,且最小破损长度约为8.24mm)依次放入光照实验箱中,分别选用T=35、T=40和T=45对80个鸡蛋进行处理,结果如表1所示,其中T=40时系统准确率最好,因此在研究中选取T=40作为阈值。

3.验及结果

选取合适的阈值T=40后,选取破损鸡蛋60枚,蛋壳的破损裂缝长度不一。按照裂纹长度(l)将鸡蛋分为 I(0

而对于好壳蛋,经实验表明当蛋壳斑点颜色与蛋壳颜色对比性较大,并且其面积大于15.04mm2时,好壳蛋被误判为损壳蛋。

表1.值T的选取

图9.损长度与准确率

4.论

(1)构建了基于DSP的鸡蛋蛋壳破损无损检测实验系统,实现了鸡蛋图像的采集、处理、识别和结果显示,为实现流水线上鸡蛋蛋壳破损无损检测研究提供了契机。

(2)对鸡蛋图像中的非目标区域噪声删除提出了叠加法和外接矩形法两种方法,实验结果表明长短轴矩形法既能有效地去除鸡蛋边缘投影外的噪声,又能提高图像后续处理的效率。

(3)对删除边界后的各个目标点利用改进型连通区域法进行标记,实验表明当阈值 T=40时5×5领域搜索的破损识别准确率最高,其中破损长度大于8mm的损壳蛋识别准确率为96%,而蛋壳上的明显斑点会被误判为破损。

(4)采用600MHz 作为DSP主频,处理一帧576×720图像所需时间约为0.735s。处理时间还较长,需进一步对程序进行优化或尝试采用 dsp/bios编写程序缩短图像处理时间,从而提高破损检测效率。

[1]陈红,王巧华,文友先.无损检测技术在禽蛋破损自动检测中的应用[J].食品与机械,2003,(5):9-10.

[2]Kurt C. Lawrence,Seung Chul Yoon,Deana R. Jones,et al.Modified Pressure System for Imaging Egg Cracks[A]. 2008 ASABE Annual International Meeting[C].Rhode Island:June 29- July 2, 2008.

[3]H R Pourreza,R S Pouzzreza, S Fazeli, et al. Automatic Detecion of Eggshell Defects Based on Machine Vision [J].Journal of Animal and Veterinary Advances, 2008,7(10):1200-1203.

[4]Patel, V C, R W McClendon, et al. Crack Detetion in eggs using computer vision and neural networks [J].A.I.Appl.,1994,8(2):21-31.

[5]Patel, V C, R W McClendon, et al. Detection of blood spots and dirt stain in eggs using computer vision and neural network[J]. Applied Eng.Agric.,1996,12(2):253_258.

[6]Patel, V C, R W McClendon, et al. Color computer vision and artificial neural networks for the detection of defects in poultry eggs[J].Artificial Interll.Rev.,1998,12:163-176.

[7]宁改媂,曾翔君,骆一萍.DSP控制器原理及应用[M].北京:科学出版社,2008.

[8]张雄伟,曹铁勇.DSP芯片的与原理与开发应用[M].北京:电子工业出版社,2000.

[9]任明灿.基于计算机视觉鸡蛋品质检测的研究[D].上海:上海交通大学硕士学位论文,2006.12.

[10]潘磊庆,屠 康,苏子鹏,杨佳丽,李宏文.基于计算机视觉和神经网络检测鸡蛋裂纹的研究[J].农业工程学报,2007,23(5):154~158.

[11]谢凤英,赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社,2008.

[12]李青,郑南宁,游屈波,等.计算机图形分离算法研究及实现[J].计算机辅助设计与图形学学报, 2004,16 (8):1040-1044.

[13]牟少敏,孙永香,朱红梅,等.昆虫图像的自动计数方法的研究[ J ].仪器仪表学报, 2003, 24 (4期增刊) : 426-429.

[14]范钢锋,李金伴.机动车辆牌照自动定位算法研究[J].江苏大学学报(自然科学版) , 2002, 23 (2) : 46-49.

猜你喜欢

灰度边缘鸡蛋
采用改进导重法的拓扑结构灰度单元过滤技术
神奇的鸡蛋画
基于最大加权投影求解的彩色图像灰度化对比度保留算法
一张图看懂边缘计算
基于灰度线性建模的亚像素图像抖动量计算
从鸡蛋开始
认识鸡和鸡蛋
全彩LED驱动芯片的S-PWM优化
在边缘寻找自我
走在边缘