APP下载

奶牛图像的分割算法研究

2011-03-14金一初

电子设计工程 2011年2期
关键词:子块奶牛像素

金一初,马 燕

(上海师范大学 上海 200234)

将图像识别技术引入奶牛养殖,能加强奶牛管理和提高科学饲养作用。生物识别技术已较成熟,基于脸部、肤色、虹膜等的识别算法已被应用于众多领域。一般情况下,由于摄入的奶牛图像背景杂乱,光照条件各异,故在识别前,须将奶牛从复杂的背景中分割出来。本文主要采用颜色聚类和区域生长的方法分割奶牛图像,并根据奶牛特征进行修正,从而实现奶牛与背景的有效分离。

1 算法描述

区域生长算法是图像分割的基本算法之一[1],但若将此算法用于整幅图像,会由于递归层数太深而造成算法耗时。采用基于子块的区域生长的算法能有效控制递归深度[2],从而提高分割性能,本文将采用类似算法结构。

本文在子块处理中采用聚类的方法,基于人类视觉特性提取代表子块的颜色特征和纹理特征,通过将颜色聚类方法与基于子块的区域生长算法的融合提高了奶牛图像分割效果。

本算法的基本流程如图1所示。

1.1 色彩空间转换

原图像所采用的RGB色彩空间是一种被广泛应用的色彩空间,但对于一般情况下采集的奶牛图像,由于光照等因素,视觉上相似的区域所代表的RGB值却有较大差异。故本文采用CIE Luv空间来保证视觉一致性。在Luv空间中,L分量代表亮度,u和v分量代表色调,利用u、v分量能有效排除光照对图像分割的影响。

图1 算法流程图Fig.1 Flow chart of algorithm

1.2 子块内颜色聚类及特征提取

1.2.1 子块内颜色聚类

首先将图像进行4×4大小子块划分,随后确定视觉一致性距离dist,该距离是用于聚类的阈值,由实验确定其数值,根据已转换为Luv空间的图像,可将dist设为0.000 2。

1)以子块的第一个像素点 p1(L1,u1,v1)为聚类中心 C1,建立类别class1,且该类别的像素数目N1为1。

2)对 子 块 内 的 每 一 个 像 素 pi(Li,ui,vi),计 算 其 到 class1的欧氏距离若 Di小于 dist,则将pi归入class1,将class1的像素数目N1增加1。同时修改class1的聚类中心其中若Di大于等于dist,则以该像素点位聚类中心C2,建立类别class2。若子块中出现两个及以上的聚类中心,则要分别计算每个点到各聚类中心的欧式距离,并对距离值进行排序。若最小值小于dist,则将该像素归入与之距离最小的那一类。

3)重复1)、2),将子块内所有像素遍历一次。

4)为进一步克服子块内颜色类别过多的现象,要对子块内部各类别进行合并。分别计算各类别间的欧式距离Dc=若Dc小于dist, 则classj并入

5)经块内类别合并后,块内的颜色类别已经很少,实验表明块内类别已降至3~5种。随后将采用符合人类观察奶牛的视觉特性提取出代表子块的颜色特征和纹理特征。具体提取算法见2.2节描述。

6)重复1)~5)将所有子块遍历一次。即完成子块内颜色聚类。

1.2.2 子块内颜色及纹理特征的提取

由于奶牛颜色相对单一,为提取颜色特征提供了便利。人类对景物进行分割的时候一般是采用主色调原则,即在一个颜色相对一致的区域中尽管还存在一些与其余区域相比梯度较大的小面积区域,人眼会自动将其过滤掉,并将其视为与区域其他的颜色一致。本文利用人眼的这一特点提取每个子块的颜色特征。

对子块内各类别的class根据其所含的像素数目进行降序排列,提取所含像素数目最多的class的L、u、v值作为主颜色值,提取位列第二的class的L、u、v值作为次颜色值。这样每个子块的颜色类别分别由主颜色和次颜色代表,忽略其他颜色类别,从而模拟人眼的颜色过滤功能。

仅提取子块的颜色特征不足以反映子块内颜色的空间分布,因此要进一步提取子块的纹理特征,纹理的提取是基于L分量的。

其中,若 m=n,T(m-n)=0,若 m≠n,T(m-n)=1。 Tx反映的是子块中水平方向的颜色变化程度,Tx=0代表水平方向上只有1种颜色,Tx=n则代表水平方向上有n+1个颜色区域。同理Ty反映的是子块中垂直方向的颜色变化程度。

1.3 基于子块的区域生长

区域生长算法的基本思想是以图像中任意像素点为中心,以一定的标准与其领域像素对比,若符合标准则将该领域像素记为与中心像素相同的标记,并以该像素为中心再与其领域像素对比,以此类推[3-4]。区域生长法的优点是算法简单,易于编程实现,但是递归深度较深,计算量较大,不使用于分辨率较大的图像。在实际应用中有很多针对区域生长的改进算法。如对已标记过的像素做记录,保证在之后的过程中不会重复比较[5];或规定以顺时针方向为比较8领域像素的方向,起始的领域像素位置为上一次比较末尾像素位置逆时针旋转90°,依次比较5次,从而减少37.5%的计算量[6]。本文采用基于子块的区域生长法算法。基于子块的区域生长和基于像素的区域生长的原理一样。在提取代表子块的颜色和纹理特征后可以视为在一幅缩小16倍的图像上进行基于像素的区域生长,这样可减少递归深度,提高计算效率。具体算法如下:

1)新建一矩阵,其大小与经块内聚类后的图像一致,且每个像素与原图像的像素一一对应。矩阵元素初始化为0。

2)根据每个子块的颜色和纹理特征,用不同的生长标准进行区域生长。

Case1:若对应子块只有一类颜色,则用该子块的颜色标注矩阵的对应区域。

Case2:若对应子块有两类及以上颜色,则以该子块为种子点进行八邻域区域生长。生长条件如下:

①相邻块颜色类别相同;

②相邻块的主颜色欧氏距离小于阈值1;

③相邻块的次颜色欧氏距离小于阈值2;

④相邻块的水平纹理参数的欧氏距离小于阈值3;

⑤相邻块的垂直纹理参数的欧氏距离小于阈值4。

其中阈值①②③④由实验确定。阈值1、阈值2与dist的值相同,阈值3和阈值4取0.25。如果同时满足上述5个条件,则将相邻子块合并,并用种子块的颜色标注矩阵的对应区域。

3)重复(1)、(2)将所有子块遍历一次。若矩阵的对应区域未被标注,即对应区域的值为0,则进行区域生长,否则检测下一个矩阵区域。

1.4 分离背景与目标

经区域生长后,奶牛图像分割已基本完毕,但是分割后的图像尚存在多种颜色,需进一步提取目标。待分割的图片将分成3类,一类是黑色区域,对应奶牛的黑色斑纹;一类是白色区域,对应奶牛的白色斑纹;最后一类是灰色区域,对应背景。据此,要确定2个阈值,将图片分割成3类。

在阈值的确定上,本文采用Otsu法的多阈值分割技术。Otsu法的基本原理为以最佳阈值将图像的灰度直方图分割成两部分,使两部分的方差取最大值,即分离性最大,使两部分有最佳的分离性[7]。

二维图像的灰度直方图可以用各灰度级的出现概率Pi,(i=1,2,…,L)来表示,其中L为直方图边界。图像灰度的均值、方差分别用 μ,σ2表示,有:

对于n类分割,各类的概率、均值、方差分别标记为ωk,μk,σ2k(k=0,1,2,…,n-1),各分割阈值的组合标记为 t={tk|k=1,2,……,n-1}。 有:

由于σ2作为图像总方差是固定的,所以求类间方差的最大值和求类内方差的最小值的等价的。如果能找出一组阈值t={tk|k=1,2,…,n-1},使类内方差最小,则这组阈值即为最佳阈值。具体算法如下描述:

1)对于n类分割(分割类数由人工确定或其他分割算法给出),有n-1个待定阈值,其特定组合标记为t={tk|k=1,2,…,n-1}。 可令 t0=0,使 t1在 t0+1~L-n+2 之间变化,t2在 t1+1~L-n+3 之间变化,…,tk在 tk-1+1~L-n+k+1 之间变化,…,tn-1在tn-2+1~L 之间变化,由 t0到 tn-1依次形成 n 重嵌套的搜索循环;对于n为任意数的情况,嵌套搜索循环可以采用函数递归来实现。

i.由于待分割的图片只需分成3类,递归深度只有3层,其效率可以满足应用要求。

1.5 修补小洞和裂缝

由于图像采集一般在牧场中完成,故背景比较杂乱,经分割后背景部分仍会出现颜色与奶牛颜色相同的区域,一般以小洞或裂缝等连通区域的形式存在。本文采用快速八连通域标记算法对这些连通区域进行标注,随后将这些标注过的连通区域覆盖为背景色即可。

本文采用快速八连通域标记算法对二值图像进行标记。快速八连通域标记算法是一种基于二值图像的连通区域标记算法[8],与传统的像素标记法和游程标记法[9]相比,快速八连通域标记算法可以边扫描图片边标记连通域;与基于区域生长法的标记算法相比,快速八连通域标记算法无需递归,大大减少了计算复杂度。

之前得到的奶牛图片并非二值图片,若想对该图片中的背景部分进行区域标记,必须将已经标记为灰色的背景像素区域予以保护,并将余下部分的像素进行二值化。本文采用迭代法求出分割阈值。

分割阈值计算方法:

1)求出背景部分的最小灰度值z1和最大灰度值z2,其中z1>0,z2<1。 T0=(z1+z2)/2。

2)计算目标与背景的平均灰度值:

②其中 z(x,y)是像素的灰度值,N(x,y)是权重系数,这里取1,代表小于或大于阈值Tk的像素的数目。

3)迭代:Tk+1=(z0+zB)/2

i.如果 Tk+1=Tk,即 Tk收敛,则 Tk即为所求,否则重复2)、3)。

快速八连通域标记算法的描述如下:

1)初始化。新建一矩阵,其尺寸与上一步得到的图片矩阵相同,且每个像素与上一步得到的图像的像素一一对应。由于奶牛对象由数字0,1表示,所以连通区域初始化标记i=2,以便将背景上的连通区域与奶牛对象区别开。num(i)表示第i个连通区域的像素数目,初始化num(i)=1。从左到右,从上到下以此扫描图像中的每一个像素,若遇到像素值不为1,则继续扫描;否则对该像素八领域内其中四个像素依次进行判别。

2)判别与标记标准如下:

以左上角像素,正上方像素,右上角像素和左边像素的顺序依次判别。

Case1:先判别左上角像素,若左上角像素值也为1,则用左上角像素的区域标记i标记该领域。同时 num(i)=num(i)+1。

Case2:若左上角像素值不为 1,则判别正上方像素,若正上方像素值也为1,则用正上方像素的区域标记i标记该领域。同时num(i)=num(i)+1。

Case3:若正上方像素值不为 1,则判别右上角像素,若右上角像素值也为1,则用右上角像素的区域标记i标记该领域。同时num(i)=num(i)+1。

Case4:若右上角像素值不为 1,则判别左边像素,若左边像素值也为1,则用左边像素的区域标记 i标记该领域。 同时 num(i)=num(i)+1。

Case5:若左上角像素,正上方像素,右上角像素和左边像素均不为1,则i=i+1,用新的连通区域标记i标记该领域。 同时 num(i)=num(i)+1。

3)纠正标记。扫描完整图像后,仍会出现同一区域各部分标记不一致的情况。在同一区域标记变化的地方即相邻像素点不同处会有以下4种情况:①当前像素标记与左边像素标记不同;②当前像素标记与右边像素标记不同;③当前像素标记与左下角像素标记不同;④当前像素与正下方像素标记不同。针对以上情况可采取再度扫描图像来对不一致的标记进行处理,从而将同一区域中不一致的标记进行更正。若当前像素与左边像素标记不同,则用左边像素标记来更正所有与当前标记值相同的像素。同理更正其他3种情况。

4)将值大于1的像素设为0.5(灰色),这样就弥补了背景中的小洞和裂缝。

2 分割效果

下图例能反映原始图像通过本文提出的分割算法得出的分割效果。原图1和原图2分别反映了在低照度和高照度条件下的原始图像采集场景。分割效果1和分割效果2分别对应图1和原图2的分割结果。通过对4副图像对比可以发现分割效果能较好地表达奶牛的基本轮廓和基本颜色特征,并且高照度条件下的分割效果要比低照度条件下的分割效果好。

3 结论

本文使用Matlab实现算法对50幅奶牛图像进行分割,分割准确率达到80%以上。实验表明分割效果符合人的视觉感知结果,基本满足奶牛识别等后续工作。实地采集的图片经过本文提出的算法处理后将杂乱无章的背景基本去除,突出奶牛的基本轮廓和身体花纹,为后续的识别工作提供了识别的几何范围和特征参数,从而减少了识别过程的计算量。在进行分割的过程中,由于奶牛的颜色与背景颜色比较接近,往往奶牛的轮廓并非是一个相对封闭的边界,从而导致了背景和奶牛的部分区域是连通的,对后续的识别造成了不便。在以后的研究中将着重改进对奶牛轮廓部分的分割,以进一步缩小识别的范围。

图2 分割前后效果对比Fig.2 Comparison between pre segmentation and after segmentation

[1] 章毓晋.图像工程(中册):图像分析[M].2版.北京:清华大学出版社,2005.

[2] 李庆忠,石巍,褚东升.一种融合聚类与区域生长的彩色图像分割方法[J].计算机工程与应用,2006,42(14):76-78.LI Qing-zhong, SHI Wei, CHU Dong-sheng.A color image segmentation method by fusion of clustering and region growing [J].Computer Engineering and Applications,2006,42(14):76-78.

[3] TIE Qi-chen,YI Lu.Color image segmentation-an innovative approach[J].Pattern Recognition,2002 (35):395-405.

[4] Tremeau A,Borel N.A region growing and merging algorithm to color segmentation[J].Pattern Regcognition,1997,30(7):1191-1203.

[5] 陈方昕.基于区域生长法的图像分割技术[J].科技信息,2008(15):58-59.CHEN Fang-xin.The segmentation algorithm based on the region growing algorithm [J].Science & Technology Information,2008(15):58-59.

[6] 邹耀斌,高辉.区域生长算法进行肺的CT图像分割[J].电脑编程技巧与维护,2009 (3):66-68,79.ZOUYao-bin,GAOHui.ThesegmentationofCTimageprocessed by region growing algorithm[J].Computer Programming Skills&Maintenance,2009(3):66-68,79.

[7]殷蔚明,王典洪.Otsu法的多阈值推广及其快速实现[J].中国体视学与图像分析,2004,9(4):219-223.YING Wei-ming,WANG Dian-hong.Generalization and quick approach of Otsu S method for multi-threshold image segmentation[J].Chinese Journal of Stereology and Image Analysis,2004,9(4):219-223.

[8] 李芳,吴斌,张红英.基于快速8一连通域标记的视频字幕提取新算法[J].视频应用与工程,2009,33(2):69-71.LI Fang, WU Bing, ZHANG Hong-ying.New algorithm for video caption extraction based on 8-connected components labeling[J].Video Application&Project,2009,33(2):69-71.

[9] 蔡世界,于 强.基于游程编码的连通区域标记算法优化及应用[J].计算机应用,2008,28(12):3150-3153.CAI Shi-jie,YU Qiang.Optimization and application of connected component labeling algorithm based on run_length encoding[J].Computer Applications, 2008,28 (12):3150-3153.

猜你喜欢

子块奶牛像素
乍暖还寒时奶牛注意防冻伤
基于八叉树的地震数据分布式存储与计算
像素前线之“幻影”2000
夏季奶牛如何预防热应激
基于特征值算法的图像Copy-Move篡改的被动取证方案
“像素”仙人掌
奶牛吃草
基于波浪式矩阵置换的稀疏度均衡分块压缩感知算法
ÉVOLUTIONDIGAE Style de vie tactile
高像素不是全部