郭晓娟,韩建勋,杨军帅,高国红,安金梁
(河南科技学院信息工程学院,河南新乡 453003)
小麦是我国重要的粮食作物之一,其种植范围大、分布广,小麦的单产和总产量仅次于水稻和玉米,因此提高小麦产量将起到保证我国粮食供给、促进农民增收、粮食增产、维护社会稳定和促进经济发展的重要作用[1].近些年来,图像处理技术在农业领域的研究不断拓展,取得了很多成果.运用图像处理和计算机视觉技术对小麦图像的研究一直都是农业信息化领域的一大热点[2].小麦育种专家在育种和栽培时,为保证精准施种,经常需要统计小麦籽粒数目.目前常采用的方法是人工计数,会导致计数费时费工、工作量大等问题.为提高效率,会使用小麦数粒仪进行粒数统计.数粒仪的优点是统计数目准确,但是其统计时间相对较长,如对超过百粒的小麦籽粒进行计数,其时间将会超过1 min,超长的时间是不能接受的.如何快速准确地统计小麦籽粒数目对小麦育种专家而言是亟需解决的问题[3].因此,本文设计并实现了基于图像处理的小麦籽粒计数系统,该系统可快速统计出小麦籽粒数目,可为小麦育种提供数据参考.
项目旨在为小麦育种专家提供快捷、方便地估测小麦籽粒数目,设计并实现了小麦籽粒数目计数系统,该系统的功能结构如图1 所示.
图1 系统功能结构Fig.1 System function structure
图1 中的图像预处理主要包括了图像平滑、去噪、形态学等操作.图像分割算法在本系统中实现了基于阈值和基于分水岭的图像分割[4-7].
结合育种专家的实际需求,图像的采集设备可以直接用手机或数码相机进行拍摄,根据系统不同功能的要求,采集对象和方式也有所不同.系统根据实际情况,对小麦籽粒分三种情况进行采集:没有粘连情况的小麦籽粒、少数粘连小麦籽粒,粘连情况严重的小麦籽粒.可使用数码相机或手机俯视拍摄,均在单一背景下进行图像采集,每类分别采集5~10 幅小麦籽粒图像,如图2 至图4 所示.
图2 无粘连情况Fig.2 No adhesion image
图3 少数粘连情况Fig.3 Less adhesions image
图4 粘连严重情况Fig.4 Severe adhesion image
在算法具体实现时,均用上面采集的图像作为验证算法有效性的输入图像.
图像预处理常用操作有:彩色图像灰度化、灰度图像二值化、图像平滑、图像锐化、二值形态学处理、图像分割等[8-9].系统在具体实现时,都需要对原始图像进行图像预处理.
1.3.1 彩色图像灰度化 由于彩色图像的数据量和存储空间远远大于灰度图像,因此系统在实现时都先将彩色图像转化为数据量相对较小、方便处理的灰度图像,此过程被称之为彩色图像的灰度化过程.
在计算机中,彩色图像都是在RGB 颜色模型下,彩色图像灰度化就需调整R、G、B 分量值使其在处理后得到相同的R、G、B 值,将会减少或降低后面图像处理的计算量.下面介绍三种常用的图像灰度化方法.
(1)最大值法.取R,G,B 这三个分量中最大的一个值,然后分别赋予给R、G、B 三个分量.此种方法会导致灰度化后的图像亮度过大.
(2)平均值法.求出R,G,B 三分量的平均值,将该平均值分别赋予给R、G、B 三个分量.与其他方法相比,此方法对图像进行灰度化后得到的图像更加柔和.
(3)加权平均值法.对R,G,B 这三个分量赋予不同的权值然后求取平均值,将该平均值分别赋予给R、G、B 三个分量.正常情况下,利用加权平均值法对彩色图像进行灰度化处理得到的效果是最好的,但需要结合实际经验对R、G、B 三分量权值进行设置和调整,以满足不同需求和场合的使用.系统使用加权平均值法将彩色图像转换为灰度图像.
1.3.2 灰度图像转换为二值图像 其原理把图像上的像素点的灰度值设置为0 或255,图像的灰度值只取两个值,两个值分别呈现出黑、白的效果.根据选取的阈值不同,图像二值化有以下三种方法:全局二值化、局部二值化和局部自适应二值化.按照图像的实际情况,系统采用的是全局二值化方法对灰度图像二值化.
1.3.3 形态学处理 形态学最常用运算是膨胀、腐蚀、开运算和闭运算.根据系统具体实现情况,下面分别对膨胀、腐蚀进行介绍.
(1)腐蚀.腐蚀操作就是删除图像边界像素,达到图像收缩的效果.腐蚀运算原理是:对图像中某一像素点,采用合适的结构元素,并用结构元素的中心点与当前像素点重合,得到重合的所有像素最小值的运算结果,最后使用最小像素点替换当前的像素点.
(2)膨胀.膨胀与腐蚀是一组对应的运算,膨胀亦是腐蚀的补集.从实现功能角度而言,腐蚀运算对图像起到一定的收缩作用,而膨胀运算则与其功能相反,对图像具有向外扩大的效果.本项目会根据实际功能的需要,进行多次的腐蚀或膨胀操作,以方便后期图像的处理与分析.
1.3.4 图像平滑 在实际的图像采集中,不可避免的会出现噪声,如干扰噪声和椒盐噪声,噪声会严重影响后期图像处理的效果,尤其是在边缘检测和图像分割相关处理中.均值滤波法和中值滤波法是目前常用图像平滑方法.系统具体实现时采用的是中值滤波方法进行图像平滑.中值滤波是一种非线性的平滑方法,可以消除多种噪声,其原理是在像素邻域前提下,图像矩阵中某一像素点的灰度值用该点邻域内所有点的像素灰度值排序后的中值来代替.
1.3.5 图像锐化 图像锐化的目的是突出图像主体对象的边缘信息和高频信息.图像常用边缘检测法来突出显示图像的边缘信息,常用的有Roberts 算子、Prewitt 算子、Sobel 算子、LOG 算子和Canny 算子等经典边缘检测算子.
1.3.6 孔洞填充 在图像锐化时,复杂背景下的主体对象在图像锐化后可能会出现一些孔洞现象,为了不影响后期处理和统计结果,需要对一些孔洞进行填充.Matlab 中孔洞填充使用函数imfill 来实现,该方法可以填充二值图像中的空洞区域.
1.3.7 图像分割 图像分割的主要目的是将目标从背景中提取出来,为图像分析和图像理解做准备,由于目标特征不同而提取特征的方法就有所不同,图像的分割方法也就不同.图像分割把图像中感兴趣的局部即目标或对象从复杂背景中分离出来,而被分割区域在某些特征在相同的区域里具有一致性.下面介绍系统中使用到的两类图像分割方法.
(1)基于阈值的图像分割方法.图像的阈值分割方法属于并行区域分割算法.若图像中目标和背景的灰度集合具有明显的不同,并且两个灰度集合可以使用一个灰度级阈值进行分割,那么就可以使用阈值分割灰度级的方法使图像中的目标区域与背景区域分割出来.在物体与背景具有较强的对比度的图像中,此种方法特别有效.系统中对单一背景下不粘连或粘连程度比较少的小麦籽粒图像分割采用的就是此种方法.具体实现时,先将原始图像灰度化,然后分析灰度图像的直方图,根据直方图明显的峰值(最低或最高)来设置初始分割阈值,再依据图像分割的效果,多次实验、比较,得到最佳阈值,就可以把图像划分两个不同的部分.此种方法在图像背景不复杂或者对提取质量要求不高的情况下可以作为理想的选择,但在图像背景复杂或者对提取质量要求较高的情况下,此种分割法不能满足实际要求.
(2)分水岭算法.分水岭算法(Watershed)是一种借鉴了形态学理论的分割方法.它是在将一幅图像看成是一个拓扑地形图,其中像素点的灰度值表示对应地形的高度值,灰度值高的对应着山峰,灰度值低的对应着山谷.水总是向较低地势方向流动,直到某一局部低洼处终止,此低洼称为集水盆,最终所有的水分分聚在不同的集水盆,而集水盆间的山脊则称为分水岭.将此种方法应用于图像分割,主要是在灰度图像中找出不同的集水盆和分水岭,由这些不同的集水盆和分水岭组成区域即为要分割的目标.系统在具体实现时,是先计算图像的梯度图,把梯度图中的局部极小值作为集水盆地的标记点,以标记点为中心慢慢向外扩展,逐渐在两个集水盆汇合处构筑山脊,即形成分水岭,从而达到图像分割的效果.
算法实现的过程如图5 所示.
图5 小麦籽粒数目统计算法处理过程Fig.5 The process of statistical algorithm for the number of wheat grains
由图5 可知,对已经采集的三类图像,进行图像预处理操作,具体包括:彩色图像灰度化、灰度图像二值化、图像平滑、图像锐化、二值形态学(单次或多次腐蚀)等操作.对得到的二值图像(黑白图像)进行特征分析与提取,利用相应的计算算法分别得到无参照物、有参照物、大田背景下三种情况的小麦叶面积统计结果值.本系统实现的图像分割算法有两种:基于阈值分割的小麦籽粒数目统计和基于分水岭分割的小麦籽粒数目统计.
2.1.1 基于阈值的图像分割算法进行统计 基于连通区域的图像分割算法进行小麦籽粒数目统计时,先对采集的图像进行预处理操作:灰度化、二值化、膨胀、中值平滑、边缘检测、填充等.根据实际图像情况:如无粘连的籽粒图像可以直接统计二值图像中8 连通区域数,即为小麦籽粒数目;对于有粘连的籽粒图像,在预处理的基础上,可根据实际情况进行多次腐蚀操作,直至图像中小麦籽粒分离,再用统计8 连通区域数目.
2.1.2 基于分水岭的图像分割算法进行统计 基于分水岭的图像分割算法进行小麦籽粒数目统计时,先对采集的图像进行预处理操作:灰度化、二值化、膨胀、中值平滑、边缘检测、填充等操作.然后使用分水岭算法进行小麦颗粒分割以便进行籽粒数目统计.
2.2.1 基于连通区域小麦籽粒统计算法实现 具体实现步骤如下:
(1)彩色图像灰度化处理;
(2)灰度图像平滑化处理(采用中值滤波法);
(3)灰度图像二值化处理;
(4)于无粘连统计8 连通区域数;对于有粘连的先进行腐蚀再统计8 连通区域数目.
实现效果如图6 所示.
图6 基于连通区域的籽粒数目统计结果Fig.6 Statistical results of wheat grain number based on connected region
2.2.2 基于分水岭小麦籽粒数目统计算法实现 算法实现过程(对粘连图像):
(1)彩色图像灰度化处理;
(2)灰度图像平滑化处理(采用中值滤波法);
(3)灰度图像二值化处理;
(4)计算0 与非零元素之间的最短距离;
(5)检测亮度低谷(即粘连部分);
(6)计算一个标签矩阵;标签值为1 的元素属于第1 个汇水区域,标签值为2 的元素属于第2 个汇水区域,以此类推;将粘连部分像素值改为0,即涂黑分割;
(7)对分水岭分割算法分割不完全的部分,进一步进行分割;
(8)计算小麦籽粒个数n,计算各个连通区域的像素个数,并按照其个数大小进行排序;
(9)记录每个颗粒大小与平均值的比与粘连数;
(10)统计粘连个数中的颗粒数,与前面分割算法分割出的个数相加即为颗粒总数.
具体实现效果如图7 所示.
图7 基于分水岭小麦籽粒数目统计结果Fig.7 Statistical results of wheat grain number based on Watershed
系统实验主要是实现对手机拍摄的小麦颗粒数目图片分情况(不粘连4 幅、少粘连6 幅以及多粘连1 幅)进行的识别.具体实验结果如表1 所示.
表1 小麦籽粒数目统计结果Tab.1 Statistical results of wheat grain number
由表1 可知,对于不粘连以及少粘连的小麦籽粒图像的计数准确率可以达到100%,但粘连情况严重的小麦籽粒计数准确率只达到81%,后面需要对算法进行改进和优化,以提高籽粒数目统计的准确率.
经过算法的不断修改、调试和分析后,已实现对小麦籽粒数目统计功能,在无粘连或少粘连情况下计数效果较好,但在粘连情况严重时计数效果不佳,因此,下一步将会进一步改进算法,以提高统计准确率,同时还需满足实时计数功能.