曾绍华,唐文密,詹林庆,黄秀芬
(1.重庆师范大学计算机与信息科学学院,重庆401331;2.重庆市数字农业服务工程技术研究中心,重庆401331;3.重庆市农业技术推广总站,重庆400121;4.重庆市永川区粮油作物技术推广站,重庆402160)
由于野外拍摄场景不可控,机器视觉采集的紫色土彩色图像中常包含种植物、杂草、散落小土块、表土等复杂背景。为避免背景对进一步处理、识别的干扰,将紫色土心土(非表土)区域从背景中自适应分割出来是机器视觉识别紫色土的首要工作。
目前,利用机器视觉分割紫色土彩色视觉图像的研究甚少,仅检索到紫色土彩色图像的H 阈值分割[1],但该算法未考虑不同光照对分割的影响,对包含阴影的图像分割效果较差。传统图像分割算法包括基于阈值[2-3]、基于区域[4-5]、基于边界[6]的分割算法。聚类分割能够依据数据的内部结构寻找数据的自然族群,相较于传统图像分割算法,具有无监督性、高效性,在图像分割中取得了较好的效果。聚类算法可以粗略分为3 类:一是基于中心的方法,如K-means聚类[7-8]、FCM聚类[9-10];二是基于密度的方法,如DBSCAN[11-12]、OPTICS[13]和密度峰值聚类算法[14];三是基于图论的方法,如谱聚类[15]、基于锚图谱聚类[16]和稀疏子空间聚类[17]。其中,密度峰值聚类(density peaks clustering,DPC)是一种简洁、高效的聚类算法,被广泛应用于图像分割。
DPC 算法基于2 个假设:聚类中心是密度ρ 相对较大的数据点;聚类中心与比其密度大的其他数据点的距离δ 相对较大。人工辅助选择ρ 和δ 都相对较大的点作为聚类中心,然后按照密度降序的顺序将每个剩余点分配给比其密度大的最近邻所属的类,得到任意形状的类。但其也有缺陷:根据经验确定参数截断距离dc,若参数不合适,则聚类效果较差;人工辅助选择聚类中心容易失误且不能满足野外自适应分割的需求。许多学者对密度峰值聚类算法进行了改进[18-23]:Liu 等[18]提出基于k 近邻的自适应聚类算法,使聚类中心点更容易识别;Liang 等[20]提出一种改进的3DC 算法,克服了DPC人工选择聚类中心的缺点。但上述研究均没有解决自适应确定参数从而实现自适应分割的问题。此外,DPC算法及改进算法都有大量的距离计算,算法分割图像耗时较长。
为增强土壤区域的集中分布和聚集特性,并扩大土壤与背景间分离特性,本文通过建立基于类间方差最大化类内方差最小化准则的优化模型获得提升土壤与背景之间分离特性的灰度图像。为实现紫色土的自适应分割并提高分割精度与效率,改进DPC 算法中的密度公式并构建中心决策度量来自动获取聚类中心,实现紫色土图像的自适应分割。
按DB50/T 796-2017重庆土壤分类与代码[24],对重庆市璧山区分布的紫色土4 个土属(暗紫泥、红棕紫泥、灰棕紫泥、黄棕紫泥)34 个土种采集紫色土试验图像。土壤“心土”未受到日晒雨淋等自然因素的影响,能充分显现土壤的颜色、结构等自然属性,是人工识别土壤信息的特征。由于本文所做工作是机器视觉识别土壤种类的前期基础工作,因此,使用紫色土“心土”图像为试验样本。
试验图像采集方法:在野外,用铁锹锹出耕层10~20 cm 的紫色土,拍摄时需保证紫色土“心土”自然断口覆盖摄像头中心位置,并占全图至少50%的比例,获得紫色土“心土”自然断口图像。本文算法在进行试验时,为了减小计算规模,将原始图像压缩为300像素×300像素大小。
图1 紫色土彩色图像分割流程Fig.1 Segmentation process of purple soil color image
首先对原始图像进行可分离性灰度变换获得灰度图像,然后利用自适应密度峰值聚类初步分割提取紫色土土壤目标,最后进行分割后处理得到精确的紫色土土壤区域图像(图1)。
为了便于计算密度峰值,增大土壤和背景间的可分离性,本文借鉴最大加权投影算法思想[25]对彩色图像进行灰度变换。由于Lab 颜色空间的3 个分量独立性高,更适合做目标显著性的特征表达[25]。因此,在Lab 颜色空间计算图像相似度矩阵,通过建立灰度变换优化模型获得能够改善聚类特征的可分离性灰度图像矩阵。
2.1.1 图像相似度矩阵
设任意彩色像素对( Ix,Iy)在灰度变换后的值为( gx,gy)。利用离散二维熵计算任意彩色像素对( Ix,Iy)的相似度Sx,y。
其中,Hc是单分量图像的离散二维熵,f(c)ij是单分量图像像素灰度值i与像素8邻域灰度均值j构成的二元组(i,j)出现的频数,m、n分别为图像的高度和宽度。
Sx,y∈[0,1],当Sx,y趋近于1 时,表示点Ix和Iy相似度越大,越接近;反之,当Sx,y趋近于0时,表示点Ix和Iy相似度越小,越远离。
设某点Ix与所有点间相似度的均值meanSx。定义Ix的高相似度点集合set_highx和低相似度点集合set_lowx为:
2.1.2 灰度变换优化模型
对于任意点Ix,如果灰度变换使原始彩色图像中Ix离其高相似度点越接近,则优化能量项:
如果灰度变换使原始彩色图像中Ix离其低相似度点越远离,则优化能量项:
因此,建立全局优化模型:
其中λ ∈(0,1)是调节参数。
采用文献[25]离散搜索求解优化模型(8)获得权重wL,wa,wb,从而获得灰度图像矩阵g。因此,获得可分离性彩色图像灰度变换算法(color to gray conversion with separability,SeparableC2G),其算法流程如下:
1)将紫色土彩色图像从RGB颜色空间转换到Lab颜色空间,获得矩阵I。
2)根据式(1)计算相似度矩阵Sx,y。
3)根据式(4)、(5)计算set_highx和set_lowx。
4)离 散 搜 索[26]求 解 优 化 模 型(8),获 得 权 重wL,wa,wb。g = wL*IL+ wa*Ia+ wb*Ib,对g 中元素向下取整,获得最终紫色土灰度图像矩阵g。
2.2.1 定义密度和距离度量
根据灰度级的频数定义xi的密度ρi:
定义距离δi:
其中,frequencyj表示xj的频数,dij为xi与xj间的欧式距离。
密度ρi是全局密度,距离越近的点对其贡献值越大,消除了DPC算法中数截断距离dc的影响。
2.2.2 自适应确定聚类中心
对ρi和δi进行min-max 归一化。定义任意点xi到原点的线段作为三角形的斜边Hi。定义xi到矩阵副对角线的垂线段作为三角形的对边OSi。定义垂足点到原点的线段作为三角形的邻边ASi。
其中Hi与副对角线的夹角βi= |αi- 45|,Hi与横轴的夹角αi= arctan(δi/ρi)/π*180。
将每个点映射到副对角线上,利用两边之差小于第三边原理缩减邻边ASi,定义缩减后的ASi为中心决策度量CDMi,其示意图如图2所示:
图2 ρ - δ二维图Fig.2 Two-dimensional graph of ρ and δ
对CDM 进行最大类间方差(OTSU)[27]2 分类聚类,获得分类阈值T,CDMi≥T 对应灰度级点即为聚类中心点。若聚类中心点数不足2 个,将CDMi降序排序,取前面2个CDMi对应的灰度级点即为聚类中心点。因此,获得自适应聚类中心的密度峰值聚类算法(density peaks clustering with adaptive clustering centers, ACCDPC),其算法流程如下:
1)获取紫色土彩色图像的灰度图像矩阵g 的待聚类数据集X ={ x1,x2,…xi,…,xN}。
2)分别根据式(9)、式(10)计算密度、距离。
3)根据式(14)计算中心决策度量CDMi,对其进行OTSU算法获得聚类中心点。
4)在DPC算法的框架下获得X的类标号。
5)遍历g 全部元素,使每个像素点获得与其所属灰度级相同的类标号。
6)在矩阵g 中心点附近随机(可重叠)抽取7 个3×3大小的子阵,剔除均值最大和最小的子阵,计算剩余子阵全部元素的均值μ 作为土壤中心土块均值。聚类中心与土壤中心土块均值μ 距离最小的那一类,即为土壤区域,将零矩阵对应位置元素置为1,获得初分割矩阵。
由于野外拍摄场景不可控,初分割图像土壤区域因光照、阴影、杂质等影响而包含内部空洞,背景区域可能包含同种土壤的离散小土块。因此,提出土壤边界提取及区域填充的后处理算法以获得完整的土壤区域图像。后处理算法流程如图3所示。
2.3.1 图像土壤区域边界提取
扫描初分割矩阵,寻找边界起点,以进入该点方向的下一顺指针方向为起始搜索方向,按顺指针循环方向在该点的4-邻域搜索下一个边界点[28],每搜索到边界点就移到新的边界点开始新的搜索,直到搜索到边界起点再次以同一个方向访问到起点下一个边界点时,该条边界搜索结束。在搜索边界时记录该条边界的最小行号imin、最大行号imax、最小列号jmin、最大列号jmax。如果(15)成立,搜索提取到的边界为土壤区域边界[1],否则进行下一条边界搜索。边界提取算法见图3a。
2.3.2 图像土壤区域区域填充
扫描边界提取矩阵,若遍历到该点值为0 但该点的上方和左方都不为0的点,将该点视为土壤,该点值置为2。但第一次遍历边界提取矩阵使少量边界处的背景点也被错误置为土壤,因此再次扫描边界提取矩阵:搜索被错误填充的背景点起点并将该点值置为0;然后按右下左上的顺序搜索一个当前点的4邻域内值为2的点,将搜索到的点置0,一搜索到新点就开始新的4 邻域点搜索;若未搜索到则进行回溯。2 次矩阵遍历完成后矩阵中不为0 的点即为土壤及土壤边界点。区域填充算法流程见图3b。
将区域填充矩阵与原始RGB 紫色土彩色图像进行哈达玛积,分割紫色土土壤区域图像(如图4)。
图3 图像分割后处理流程Fig.3 Post-processing flow charts after image segmentation
图4 紫色土彩色图像分割示例Fig.4 Segmentation example of purple soil color image
为了验证本文算法的有效性,设计对比试验如下,并利用F1测度[29]作为图像分割精度评价指标:
其中P=TP/(TP+FP),R=TP/(TP+FN),TP为真阳性像素个数,FP 为假阳性像素个数,FN 为假阴性像素个数,TN 为真阴性像素个数;以(PS)手工分割的紫色土区域图像为参照标准。F1测度越大,图像分割精度越大。
1)灰度变换对比试验:为验证可分离性灰度变换SeparableC2G 算法的有效性,分别对其原始RGB 彩色图像、彩色图像CorrC2G 灰度变换[30]后灰度图像、彩色图像经本文SeparableC2G 灰度变换后的灰度图像进行K-means算法(k=3)分割做对比试验。
2)分割效果对比试验:为验证不同的分割算法对RGB 彩色图像经SeparableC2G 灰度变换后的灰度图像进行分割的有效性,采用FRFCM 算法[10]、H 阈值分割算法[1]、DPC 算法[14]、基于数据场的DFDPC 算法[21](采用文献[22]方法获取中心)共4 种算法与本文ACCDPC 聚类算法进行分割对比试验获得紫色土图像初分割结果;然后再用本文后处理算法提取ACCDPC 算法初分割结果的土壤区域边界并填充边界内土壤区域获得紫色土图像精确分割结果。
以上试验均在MatLab R2014a 软件平台上和如下硬件配置上进行:Intel(R) Xeon(R) CPU E5-2687W v2 @3.40GHz(2 CPU),内 存64GB,显 卡NVIDIA Quadro K5000的图形工作站,Windows 7专业版。
试验对象:从采集到的紫色土彩色图像中,随机抽取光照正常、周围无撒落“心土”粘连和无阴影遮蔽图像60张,构成20 组常规样本;随机抽取背景中表土与“心土”颜色接近、周围有撒落“心土”粘连和阴影遮蔽图像60张,构成20组鲁棒样本。
随机选取(No.5 组)常规样本和(No.4 组)鲁棒样本显示本文算法分割的图像结果。
3.2.1 灰度变换对比试验结果与分析
对常规样本(No.5 组)的图像进行灰度变换对比试验,分割结果如图5所示。
图5 显示:原始彩色图像或者CorrC2G 图像的Kmeans 算法分割结果均为离散的土块或颗粒且包含大量背景块,尤其是不能排除与目标土壤区域颜色非常接近的表土的影响,无法获得较完整紫色土土壤区域(图5b、5c),原因在于原始彩色图像或者一般的灰度变换图像的土壤与背景间的差异性未达到能够将土壤区域与背景区域分割开来的程度。而SeparableC2G 灰度图像来自于求解基于类间方差最大化类内方差最小化准则的优化模型,它提高了土壤区域与背景区域间的可分离性。先进行本文SeparableC2G 灰度变换后再K-means分割可以获得紫色土土壤区域,但分割结果中包含许多空洞,对包含阴影的土壤图像分割不够完整(图5d)。
图5不同方法灰度转换的图像K-means分割结果Fig.5 Segmentation results of K-means algorithm with different gray conversion methods
3.2.2 分割效果对比试验结果与分析
对常规样本(No.5 组)和鲁棒样本(No.4 组)的图像分割结果分别如图6、图7 所示。全部20 组常规样本和20组鲁棒样本的统计结果分别见表1和表2。
图6 显示:对于常规样本,本文ACCDPC 算法与4 种对比算法基本都能分割出土壤区域。本文ACCDPC 算法与DPC 算法、DFDPC 算法的分割结果较好且较为接近(图6d、图6e、图6f),而FRFCM 算法、H 阈值算法受土壤表面凹凸不平造成不可避免的小而多的阴影块、表土和杂质等干扰因素影响较大,分割结果中土壤区域的空洞与背景区域的离散土块更多(图6b、图6c)。ACCDPC算法加后处理算法,进一步去除背景区域的离散小土块和土壤区域的内部空洞(图6g),与手工分割结果(图6h)接近。
图6 不同算法对常规样本(No.5组)的分割结果Fig.6 Segmentation results of different algorithms for No.5 normal samples
图7 不同算法对鲁棒样本(No.4组)的分割结果Fig.7 Segmentation results of different algorithms for No.4 robust samples
图7显示:对于鲁棒性样本,4种对比算法都出现不同程度的土壤分割不完整或背景区域粘连大块“心土”或“表土”,本文ACCDPC 算法分割效果最好。FRFCM 算法、DFDPC算法受阴影影响较大,导致土壤分割结果不完整,尤其是图像3 这种土壤与背景都包含大片连续阴影图像表现更为明显(图7b、图7e)。H 阈值算法对于鲁棒样本的适应能力最差,在对图像1的分割结果中该算法存在的土壤内部空洞问题最多,在对图像3的分割结果中该算法存在的将背景区域粘连大块“心土”或“表土”错分为土壤区域问题最严重(图7c)。DPC算法也对图像3背景区域粘连大块“心土”或“表土”错分较多(图7d)。本文ACCDPC算法的分割效果较好,背景错分为土壤的部分更少(图7f)。另外,DPC 算法需要人工选择聚类中心,易出现失误,而ACCDPC算法是自适应的,分割性能较为稳定。
表1为20组常规样本的每一组的平均分割精度和平均运行时间。从表1 可以看出:1)对于平均分割精度,FRFCM 算法、H 阈值算法、DPC 算法、DFDPC 算法、本文ACCDPC 算法的值分别为81.91%、85.49%、90.29%、92.60%和93.45%,ACCDPC 算法的平均分割精度最高,比H 阈值算法和DPC 算法分别提高11.54 和3.16 个百分点,并且均方差最小,为2.17%,算法分割性能较稳定。另外,ACCDPC 分割算法加上本文边界提取和区域填充的后处理算法的平均分割精度为96.30%,进一步提升了图像分割精度。2)对于平均运行时间,FRFCM 算法、H阈值算法、DPC 算法、DFDPC 算法、本文ACCDPC 算法的值分别为1.4、0.42、2.45 s(含人工选择聚类中心耗时2.21)、0.38、0.26 s,ACCDPC 算法耗时最少,而DPC 算法耗时最久,原因在于该算法的人工选择聚类中心过程极大地增加了算法耗时,且不稳定。ACCDPC 分割算法加上本文后处理算法的平均运行时间为0.36 s,可以看出后处理算法速度较快,耗时约0.1 s。
表2展示了20组鲁棒样本的每一组的平均分割精度和平均运行时间。从表2 可以看出:本文ACCDPC 算法在平均分割精度和运行时间2方面均优于4种对比算法,且与4 种对比算法在平均分割精度方面进一步拉开了差距。ACCDPC 算法比FRFCM 算法、H 阈值算法、DPC 算法和DFDPC 算法分别提高11.75%、5.2%、12.47% 和3.09%,表明ACCDPC 算法在分割背景更为复杂、光照影响更大的鲁棒性实验图像时优势更为明显。后处理算法进一步提升了本文算法的分割精度。
比 较 表2 与 表1 可 知,FRFCM 算 法、H 阈 值 算 法、DPC 算法、DFDPC 算法、本文ACCDPC 算法在平均分割精度方面都有所减小,说明非均匀光照带来的阴影、颜色相近的“表土”或“心土”等情况对图像分割结果都有一定影响,使得土壤区域出现被阴影覆盖的土壤部分缺失或者多出部分“表土”,因此分割精度下降。但从整体情况来看,ACCDPC 算法的平均分割精度最高,对复杂背景情况适应能力最强。
表1 20组常规样本的平均分割精度和运行时间Table 1 Average segmentation accuracy and running time of 20 groups normal samples
表2 20组鲁棒样本的平均分割精度和运行时间Table 2 Average segmentation accuracy and running time of 20 groups robust samples
续表2 20组鲁棒样本的平均分割精度和运行时间Continued table 2 Average segmentation accuracy and running time of 20 groups robust samples
本文提出了一种野外紫色土彩色图像分割方法,该方法首先对原始图像进行可分离性灰度变换获得灰度图像,然后利用本文自适应密度峰值聚类初步分割提取土壤目标,最后利用土壤区域边界提取与区域填充的后处理算法获得精确的紫色土土壤区域图像。20 组常规样本和20组鲁棒样本结果表明:
1)本文算法的平均分割精度最高。本文ACCDPC算法的初分割平均分割精度为93.45%(常规样本)和87.40%(鲁棒样本),比FRFCM 算法、H 阈值算法、DPC算法、DFDPC算法分别提高11.54(常规样本)和11.75(鲁棒样本)、7.96(常规样本)和5.2(鲁棒样本)、3.16(常规样本)和12.47(鲁棒样本)、0.85(常规样本)和3.09(鲁棒样本)个百分点。由鲁棒样本分析结果可知,阴影、颜色相近的“表土”或“心土”等情况对图像分割结果有一定影响,但ACCDPC 算法的平均分割精度依旧是最高的,说明本文ACCDPC 算法对复杂背景情况适应能力最强。本文后处理算法能够有效去除背景区域的离散小土块和土壤区域的内部空洞,进一步提高了平均分割精度,分别为96.30%(常规样本)和91.63%(鲁棒样本)。
2)本文算法的平均耗时最短。常规样本试验结果中,FRFCM 算法、H 阈值算法、DPC 算法、DFDPC 算法、本文ACCDPC 算法初分割平均耗时分别为1.40、0.42、2.45 s(含人工选择聚类中心耗时2.21 s)、0.38、0.26,ACCDPC算法耗时最少。后处理算法的耗时约0.1 s,后处理算法是快速有效的。鲁棒样本的耗时情况与常规样本基本一致。