基于数字图像处理的鱼卵计数的研究
2013-08-10张杭文袁国良于文驰
张杭文,袁国良,张 云,于文驰
(1.上海海事大学 上海 201306;2.上海海洋大学 上海 201306)
在现实生活中对常常需要对采集的鱼卵进行相应的计数处理,以计算鱼的繁殖率,在水厂养殖方面,鱼卵计数是其很重要的一个环节,人工计数鱼卵时间成本大,不方便,操作误差大,效率低,不利于对鱼的研究。有必要想新的方法,对其进行计数.借助数字图像处理这面比较成熟的学科,再结合计算机图像识别和处理计数来实现鱼卵的计数,这样做更方便快捷.可以提高计数的精度和效率。
目前图像处理计数在水产养殖方面开展的比较晚,研究报道相对比较少,但已开始在多个领域应用,如鱼种类识别,鱼类尺寸测量,生长发育研究和行为检测等等,图像处理技术在鱼类中的应用报道较少,图像处理技术在鱼卵计数技术上的研究更是罕见.在国内关于鱼卵计数处理的研究,目前关于鱼卵计数的方法主要有体积比对法或质量比对法,即通过计数小体积(小质量)的卵粒数,得到单位体积(单位质量)内的卵粒数,进而求得总体积(总质量)的卵粒数[1],此方法虽然简单,但效率低、操作误差大,不适用怀卵量少的鱼类,同时该方法会对鱼卵造成一定损伤,为此需要寻求一个更好的鱼卵计数方法应用于其繁殖生物学研究和选育工作中,避免鱼卵损伤并提高计数的效率和精确性。最近的关于鱼卵计数的研究有基于彩色图像处理的鱼卵计数方法,利用计算机图像识别和处理技术实现鱼卵的计数,该方法可以提高计数的精度和工作效率,避免鱼卵受损伤,同时可以留下被测对象的影像记录作为备案,为育种工作提供一种高效快捷的鱼卵计数新技术,具有一定的理论和应用价值,比较常见的鱼卵计数方法有面积计数法,即将二值图中目标图像总面积和鱼卵平均面积相除,获得鱼卵的总面积[2-6]。这种方法虽然简单,但误差大,计数随机性增大。
文中提出了基于采集的鱼卵图像的鱼卵计数方法,分别是检索轮廓和绘制轮廓计数,这种计数方法既避免了上述金万昆等论文中计数效率低、操作误差大等缺点,也克服了林勇等论文中鱼卵计数随机性大的缺点,论文高效率的计算出鱼卵的个数,具有实际的应用效果,在水产养殖方面具有一定的理论和实际应用效果。
1 鱼卵计数的总体设计
鱼卵计数的总体设计结构如图1所示,首先,对获取的图像进行预处理。因为在获取图像的过程中,很难避免的引入的随机噪声,所以对获取的图像进行了中值滤波,使得计数更精确。然后再对预处理后的图像进行阈值分割,最后获得鱼卵图样以实现鱼卵个数的自动计数,阈值分割法是本系统的关键之一。由于对于不同的图像,最优阈值分割算法不尽相同。在本研究中,针对鱼卵图像提出了一个行之有效的算法,针对预处理后的鱼卵图片进行相应的计数,本文对鱼卵图片提出了两种计数方法,即连通区域标号计数和检索轮廓绘制轮廓计数,达到了不错的鱼卵计数的效果。
图1 系统总体结构图Fig.1 Structure diagram of the whole system
2 图像预处理
2.1 鱼卵的灰度化
将彩色图像转化为灰度图像称为图像的灰度化处理,彩色图像的每个像素的颜色有R.G.B 3个分量决定,而每个分量有255种值可取,这样每个像素可有1 600多万(255*255*255)的颜色的变化范围,而灰度图像时R.G.B 3个分量相同的一个特殊的彩色图像。其中一个像素点的变化范围为255中,所以在数字图像处理一般先将各种格式的图像转变成灰度图像,使得后续的计算量少点,便于后期的处理。一般有以下4种方法进行灰度化:1)分量法,2)最大值法,3)平均值法,4)加权平均法。其中采用的是分量法的思想为:将彩色图像中的三分量的亮度作为3个灰度图像的灰度值,可根据应用需要选取一种灰度图像。
其中 fk(i,j)(k=1,2,3)为转化后灰度图像在(i,j)处的值,原始图片如图2所示,经过灰度化后如图3所示。
图2 原始图片Fig.2 The original picture
2.2 鱼卵的平滑处理
实验采集到的鱼卵难免有噪声和干扰,这些噪声会降低图像的质量,常见的去噪大致分为两类:一是时域去噪,而是频域去噪.时域去噪的代表方法有加权平均法,中值滤波法和二值形态学等,频域去噪的代表方法有经典数字滤波器,同态滤波,小波分析法等,本文采用的是时域去噪的中值滤波法,对鱼卵进行相应的平滑处理,滤除相应的噪声,以便以后对鱼卵图片进行进一步处理,在鱼卵计数中,中值滤波的效果不错,其算法如下:
图3 灰度图片Fig.3 Grayscale images
中值滤波采用一个含有奇数个数的滑动窗口,用窗口中灰度的中值代替窗口中心像素点的值,让周围的像素值接近的中间值。 对于一个一维序列 f1,f2…,fn,取窗口长度为 m,m为奇数序列。对此序列进行中值滤波,就是从序列里取出m个元素,fi-r, …fi-1,fi,fi+1, …,fi+r其中 fi为窗口的中心位置,r=(m-1)/2,将这m个元素按照数值大小排列,位于正中间的那个数值作作为滤波输出:
同理二维中值滤波:
g(x,y)=med{f(x-k,y-l),(k,l,w)},其中 f(x,y),g(x,y)分别为原始图像和处理后的图像,w为二维模板,通常为2×2,3×3 区域,本文为用的是 3×3 区域。
用中值滤波的方法既保护了图像的边缘,又有效滤除了相应的噪声。
2.3 二值化
图像的二值化处理就是讲图像上的点置为0或255,也就使整个图片呈现出比较明显的黑白效果。将256个亮度等级的灰度图片通过适当的阈值选取而获得反应图像整体和局部特征的二值化图片,图像的二值化有利于图像的而进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓,本文中利用灰度图片二值化,就是为了将鱼卵和背景分离,选择合适的分割阈值,当一个像素的灰度值超过这个阈值就可以说这个像素是感兴趣的目标,负责为背景,本文在选取阈值的创新点在于:通过对鱼卵的灰度图像的膨胀(cvDilate)处理,该结构决定了每个具有最大像素点的邻域形状,处理后的结果如图4所示,再对鱼卵灰度图像的腐蚀(cvErode)处理,该结构决定了每个具有最小像素点的邻域形状,处理后的结果如图5所示,最终的阈值取最大像素和最小像素的平均值,超过这个阈值点的像素选取为鱼卵像素,否则选为背景像素。
该方法的思想是:
先求出最大像素点灰度值Zmax和最小像素灰度值Zmin,选中间的阈值H0,有:
图4 鱼卵图片膨胀后的图Fig.4 Fish spawns image after dilation
图5 鱼卵图片腐蚀后的图Fig.5 Fish spawns image after erosion
把H0设置成为图像的相应的阈值,大于H0的为背景,小于H0作为鱼卵。
在选定H0为阈值时,有:
对于鱼卵选定 g(i,j)=1,对于背景选定为 g(i,j)=0。
上述取中值的阈值方法适合背景和前景有明显对比的鱼卵图像。
除上述阈值方法外,自适应阈值是不错的选择,自适应阈值是一种改进了的阈值技术,其中阈值本身是一个变量,自适应阈值T(x,y)的每个像素点都不同,通过计算像素点周围的b*b区域的加权平均,然后减去一个常数来得到自适应阈值,本文检索轮廓和绘制轮廓计数采用的是自适应阈值的方法,常用的阈值的选取还有全局阈值、最佳阈值等等
2.4 二值图片的形态学处理
对于取得的鱼卵图片中有鱼卵是粘连在一起或是有些鱼卵是断开的,在二值化处理图片后也会产生相应的噪声或空洞,膨胀和腐蚀是形态学最基本的运算之一,对鱼卵进行膨胀和腐蚀的运算能很好的将粘连的鱼卵分离开,并且腐蚀和膨胀能将断开的鱼卵进行连接。并且利用形态学的膨胀和腐蚀的原理也能很好的滤除应二值化而产生的噪声和空洞。效果如图6所示。
3 鱼卵计数方法
3.1 检索轮廓和绘制轮廓计数
二值化后的图像像素只有0和1,两个值,分别代表背景和目标,轮廓是构成任何一个形状的边界或外形,姑且把它作为背景和目标的分界点,查找到目标的轮廓 (可以利用OpenCV提供的方法cvFindContours()的方法),在查找到轮廓之后,即所谓的边缘点,将检测的边缘点连接成线实现所谓的边缘跟踪。将检测的边缘点连接成线包括两个过程:1)提取可构成线特征的边缘;2)将边缘连成线。
图6 二值化图片Fig.6 Binary image
不同轮廓的组织是不一样的,根据不同的选择,它们可能是:1)列表;2)双层结构;3)树型结构。 从纵向上来看, 轮廓可以使用递归的方式。本文采用的是树形结构。通过对轮廓的跟踪实现对轮廓的计数。图7为检索轮廓和绘制轮廓后的计数后的图片。
图7 检索轮廓图片Fig.7 The image of contour segmentation
图8为检索轮廓和绘制轮廓计数结果。
图8 计数结果Fig.8 Counting results
上述的相关参数的定义可以通过表格1给出。
表1 原鱼卵图像2的相关参数Tab.1 Parameters estimated by image 2
3.2 实验结果讨论
对于两种计数鱼卵的方法都很大程度上建立在采集鱼卵时鱼卵的质量上的,对于粘连的系数比较小的鱼卵准确性相当的高,对采集的鱼卵的处理上甚至有准确性达到100%的,即误差为零。在检索轮廓和绘制轮廓计数和连通区域标号计在对图2进行处理也达到了99.7%点多 (原鱼卵个数356个,检索轮廓和绘制轮廓计数为368个),精确度相当高,在采集鱼卵的时候也有些鱼卵是粘连在一起的,本文也对其进行了相应的处理,效果也不错,总体来说,这这种计算鱼卵个数的方法都在人容忍范围内,是可行的鱼卵计数的方法。
4 结 论
在采集鱼卵,对鱼卵进行预处理,计数的过程中,对于数目不是特别大的鱼卵的处理精确度比较高,好的可以达到零误差,随着鱼卵数目的增加,误差也随之增大,方法不适合鱼卵较多的计数,在鱼卵计数的时候,对于鱼卵比较多的计数时,可以适当的对鱼卵分离,控制鱼卵的数量在一定数量个数以下,这样即实现对鱼卵比较精确的计数,也比纯粹人工的要简单和方便!实验表明这种计数方法比较好,实用性比较强。
[1]金万昆,杨建新,杜婷,等.津鲢繁殖力研究[J].齐鲁渔业,2009,26(10):11-12.JIN Wan-kun,YANG Jian-xin,DU Ting,et al.Tianjin silver carp fecundity research[J].Qilu Fisheries,2009,26(10):11-12.
[2]杨慧赞,林勇,唐章生.广西壮族自治区水产研究所[J].水生态学杂志,2011,32(5):138-141.YANG Hui-zan,LIN Yong,TAN Zhang-sheng.Fisheries research institute of guangxi zhuang autonomous region[J].Journal of Hydroecog,2011,32(5):138-141.
[3]尤育赛,于慧敏.一种重叠细胞图像的分离方法[J].中国图像图形学报,2005,10(6):736-744.YOU Yu-sai,YU Hui-min.A separating algorithm for overlapping cell images[J].Chinese Journal of image and graphics,2005,10(6):736-744.
[4]CHIN F H Y,LAM F K.Adaptive thresholding by variational method[J].IEEE Transaction on Digital Object Identifer,1998,7(3):468-473.
[5]宋强,徐 科,徐金梧,等.基于图像处理的棒材自动计数技术[J].钢铁,2004,39(5):34-37.SONG Qiang,XU Ke,XU Jin-wu,etal.Research and analyses on digital image processing technlogy for bar steel counting problem[J].steel,2004,39(5):34-37.
[6]Hislop J R G,Bell M A.Observations on the size,dry weight and energy content of the eggs some demersal fish species from British marine waters[C]//J.Fish Biol.,1987(13):1-20.
[7]Rosjean P,Picheral M,Warembourg C,et al.Enumeration,measurement,and identification of net zooplankton samples using the ZOOSCAN digital imaging system.ICES J.Mar.Sci.,2004(61):518-525.
[8]Carpentier A,Vaz S,Martin C S,et al.Eastern Channel Habitats Atlas for Marine Ressource Management(CHARM)[M].Atlas des Habitats des Ressources Marines de la Manche Orientale.Programme INTERREG 3a,2004.