,,,, ,
(浙江工业大学 信息工程学院,浙江 杭州 310023)
珍珠是一些软体动物的产物,是一种非常受人欢迎的有机宝石.珍珠有天然形成的,也有人工养殖的,中国是最早进行人工养殖珍珠的国家.全球的淡水珍珠大都产自中国,而中国淡水珍珠的养殖和销售则主要集中在浙江省.随着社会经济的发展,人们对珍珠的需求也越来越大,而珍珠的价值体现在其大小、形状、光泽和光洁等属性上,因此根据珍珠的外观属性对其进行分类具有重要意义.目前,我国的珍珠企业主要依赖人工分类的方式对珍珠进行粗略分类,但是由于珍珠体积小、数量多和人工分类的工作量大,长时间工作下的效率很低.随着劳动力成本的日益提高,利用机械装置结合机器视觉自动地对珍珠进行分类是现在珍珠企业的迫切需求.珍珠企业在对珍珠分类时经常需要同时考虑珍珠的形状、纹理和色泽等特征信息.然而,已有文献中的珍珠分类方法很少同时利用珍珠的多个视图的多个特征对其进行分类,且大多数与珍珠企业实际人工分类的依据和步骤有所区别.汤一平等[1]利用HSI模型对珍珠进行颜色和光泽度的检测,但是实际人工分类过程中更依赖珍珠的形状和纹理特征;李革等[2]利用傅里叶级数得到珍珠的形状信息,但是需要事先采集不同形状珍珠的形状信息进行比对;夏少杰[3]利用LOG算子获得珍珠的纹理信息并和所设定的固定阈值比较,得到珍珠的瑕疵程度,但对瑕疵程度的评判标准与实际人工分类有很大的差别.
利用摄像装置采集珍珠多个视图的图像数据,通过去企业现场调研,根据人工珍珠分类的实际依据和步骤,提取了珍珠多个视图的形状特征、全局纹理特征,并针对珍珠分类问题设计了一种全新的局部纹理特征提取方法.在获得珍珠的多种特征后,设计了支持向量机分类器来对珍珠进行分类.不同于文献[2-3],采用机器学习的方法对珍珠进行分类不需要事先准备用于比对的样本数据和设定固定阈值,且用人工分类好的珍珠对模型进行训练,可以使得模型的分类策略更加接近人工分类,从而更具应用价值.
实验中所使用的图像数据,是由一台单目多视角摄像装置采集的.利用单目多视角摄像装置,可以同时得到珍珠多个视角的图像.
单目多视角摄像装置主要由环形LED光源、摄像头、4 面平面镜和珍珠摆放平台构成如图1所示.装置整体为一个密闭的空间,珍珠摆放平台留有一个小孔,利用活动顶杆将珍珠送上摆放平台,利用环形LED光源将光均匀照射在珍珠摆放平台上的珍珠表面,由于4 面平面镜的存在,一次拍摄可以获取珍珠5 个不同视角的视图,包括俯视图、主视图、左视图、右视图和后视图.装置具体细节可以参考文献[4].
1—检测装置外罩;2—支柱;3—检测装置底部;4—支架;5—光源;6—摄像头;7—光源夹持架;8—镜片;9—镜片支架图1 单目多视角摄像装置Fig.1 Monocular multi-view imaging device
采集的样本图像均来源于一批已经经过人工分类的珍珠,即样本的类别标签已知,珍珠产自浙江省诸暨市山下湖.人工分类首先会从待分类的统珠中挑选出扁形的珍珠和有深螺纹的珍珠作为第一类,剩余非扁形的浅、无螺纹珍珠作为第二类,扁形的珍珠和有深螺纹的珍珠相对来说价值较低,而第二类珍珠价值较高,也有更多的加工选择.人工分类在将珍珠分为两类后,后续还会进一步细分,由于后续细分规则较为复杂,限于篇幅,仅关注上述的二分类问题.
单目多视角摄像装置采集到的图像如图2所示,第一行为装置采集到的图像,同时包含了珍珠5个视角的图像,第二行为经过图像分割后得到的5个视角的单独图像,由于珍珠主体与图像背景的色差较大,图像分割采用的是固定阈值分割,分割后将珍珠图像旋转摆正.最终采集第一类珍珠1 500颗,第二类2 000颗.
图2 装置采集的图像Fig.2 Images obtained by device
由于拍摄到的图像大部分存在噪声,需要进行去噪.笔者先对图像进行灰度化,并采用中值滤波进行去噪,经过预处理后,图像轮廓周围大部分的噪点得到消除.
珍珠的人工分类规则主要侧重珍珠的形状和纹理,因此对珍珠形状和纹理的特征提取是珍珠分类问题的关键.研究主要从珍珠的形状、全局纹理和局部纹理3 个方面进行特征提取.
由于珍珠不是规则的物体,在5个视角下图像的形状会有不同的特征,因此充分利用珍珠5个视角的形状信息是区分珍珠是否为扁形的关键.常用的形状描述子有傅里叶级数的系数和Zernike矩[5],在提取珍珠边缘轮廓的基础上,采用傅里叶级数的系数来提取珍珠的形状特征,其具有良好的形状表达特性,计算简单,抗噪性强.
2.1.1 提取边缘轮廓
珍珠的形状信息主要体现在其边缘,因此首先要提取出珍珠的边缘轮廓.提取轮廓主要有以下步骤(图3):
1) 运用大津法对珍珠图像进行二值化.
2) 对珍珠二值图进行形态学开操作,进一步确保边缘轮廓周围没有小的噪点.
3) 利用八领域搜索算法[6]获得珍珠的轮廓坐标和长短径,计算并得到目标轮廓的形心,以便后续的极坐标变换.
图3 提取珍珠边缘轮廓Fig.3 Extract edge of pearl
2.1.2 提取边缘轮廓
周期为N的离散序列x(k),即
x(k)=x(k+cN)
k=0,1,2,…,N-1
(1)
式中c为任意整数.
根据傅里叶级数理论,可以将x(k)展开成傅里叶级数,从而得到傅里叶系数.对x(k)进行离散傅里叶变换,即
h=0,1,2,…,N-1
(2)
式中F(h)为h次谐波的系数.
在得到珍珠轮廓的坐标后,可以将珍珠轮廓以珍珠的形心为极点映射到极坐标系,即r(θ)(θ=0,1,2,…,359),其中θ为极角,r(θ)为极半径,且r(θ)为周期360的离散序列.为了避免不同珍珠大小不一所带来的影响,需要对r(θ)进行归一化,即
rq(θ)=r(θ)/rmax
(3)
式中:rq(θ)为归一化后的珍珠半径;r(θ)为珍珠半径序列;rmax为最大的半径.
得到归一化后的珍珠半径序列后,利用离散傅里叶变换得
h=0,1,2,…,N-1
(4)
另外,形状信息大部分集中在前几个F(h),取前3个F(h),在降低维数的同时尽可能减少形状信息的丢失.同时,经实验发现,珍珠图像的长短径对于区分珍珠形状有一定帮助,因此在珍珠的形状特征中加入长短径,提取的形状特征为[x1,x2,x3,x4,x5],如表1所示.由于一颗珍珠有5个视角的图像,且每个视角的图像都包含珍珠的形状信息,所以对于一颗珍珠,可以获得5组形状特征,将5组形状特征按照俯视图、主视图、左视图、右视图和后视图的顺序排列,所得到的就是该珍珠的形状特征.
表1 形状特征的定义Table 1 Definitions of shape characters
纹理是图像识别中一个重要的图像底层特征,但目前对其尚缺少一个统一的标准定义.纹理可以简单理解为一系列像素在灰度级别下排列所呈现的规律,因此可以认为是一个区域性的特征,在提取纹理特征的时候需要考虑到某个像素与其周围像素的联系.纹理特征的提取通常有3 种方法,分别为统计法[7]、频谱法[8]和结构法[9].
珍珠的纹理根据珍珠表面螺纹的深浅可以分为深螺纹、浅螺纹(包括无螺纹).其直观表现为珍珠表面有一圈或多圈凸起或凹下,珍珠的纹理可以理解为珍珠表面的粗糙程度.灰度共生矩阵[10]是一种研究灰度的空间相关特征来描述纹理的方法,能导出诸多纹理特征,可以较好地描述图像的粗糙程度,有较强的鲁棒性和适用性.因此采用灰度共生矩阵来提取珍珠的纹理特征.
2.2.1 灰度共生矩阵
灰度共生矩阵的定义为:在图像域范围内,两个距离为d,方向为θ的灰度像素同时出现的联合概率分布.设I为一幅已经经过预处理的珍珠图像,灰度级别为L,则满足一定空间关系的灰度共生矩阵Pd,θ的计算式为
(5)
Pd,θ(i,j)=#{[(y1,x1),(y2,x2)]|
I(y1,x1)=i,I(y2,x2)=j}
(y1,x1)∈I,(y2,x2)∈I
(6)
式中:L为图像灰度级;#为像素对的个数;I(y,x)为图像I中(y,x)处的灰度值;i,j为像素点的灰度值.
d和θ取不同的值,可以得到各种间距及角度的灰度共生矩阵Pd,θ.
2.2.2 全局纹理特征
对经过预处理的珍珠灰度图,提取其灰度共生矩阵后,通过灰度共生矩阵可以导出一系列纹理特征,提取其中最具代表性的4个纹理特征[11].
1) 对比度(Contrast)
对比度不仅可以反映图像的清晰程度,也可以反映纹理沟纹的深浅度.若图像的对比度值较大,则图像越清晰,对应的纹理沟纹越浅,反之,则图像越模糊,对应的纹理沟纹越深.对比度CON的计算式为
(7)
2) 自相关(Correlation)
自相关系数用于反映灰度共生矩阵行或列方向上元素之间的相似度.若自相关系数较大, 则矩阵元素值均匀,若自相关系数较小,则表明矩阵元素值间差异较大.自相关COR的计算式为
(8)
(9)
(10)
(11)
(12)
3) 能量(Energy)
能量为灰度共生矩阵中所有元素值的平方和, 能量值反映图像的纹理粗细度.能量值较小的图像多数区域由细纹理组成,而能量值较大的图像大多由粗纹理组成.能量ENE的计算式为
(13)
4)同质性(Homogeneity)
同质性度量图像纹理变化的多少,其值大则说明图像纹理的不同区域间缺少变化,非常均匀.同质性HOM的计算式为
(14)
对于珍珠的主视图、左视图、右视图和后视图,每个视角都可以得到其纹理特征,即对比度、自相关、能量和同质性,将4 个视角的纹理特征取平均值作为该珍珠的纹理特征,珍珠俯视图采集的图像珍珠的反光过于严重,因而不考虑其纹理特征.
灰度共生矩阵的缺点是不能完全体现局部灰度图像的纹理信息,因此设计了一种提取局部纹理特征的方法.在进一步去除图像的噪点后,提取珍珠图像非反光区域的统计特征作为局部纹理特征.通过结合珍珠图像的全局和局部纹理特征,可以更全面地描述珍珠的纹理信息.考虑到俯视图具有较大的反光面积,局部纹理的提取同样只考虑珍珠的4 个侧视图.
2.3.1 去除图像噪点
灰度共生矩阵在提取特征前,可以调整图像的灰度级,调整灰度级在一定程度上减弱了图像噪点对特征提取的影响.在提取局部纹理特征时,为了尽可能保留图像纹理细节,且尽可能减弱图像噪点对特征提取的影响,需要对预处理过后的图像进一步采取双边滤波[12],在平滑图像的同时保留图像的边缘信息.
2.3.2 确定非反光区域
由于珍珠表面极为光滑,环形光源从上而下照射会导致其表面上半部分通常会有较大的圆形反光.采集珍珠图像的单目多视角摄像装置利用4 面平面镜来得到珍珠的侧视图,由于平面镜会将环形光源反射到珍珠表面,因此珍珠侧视图的圆形反光下方可能会存在微小的半月形反光.为避免反光区域对特征提取的影响,局部纹理特征主要从珍珠的反光区域下方来提取.
首先确定珍珠圆形反光部分所在位置,对经过双边滤波后的珍珠灰度图像进行反色操作,并比较反色之后的图像的灰度值和原图像的灰度值,输出较小的值,设珍珠灰度图像为I,灰度级为256,则计算式为
Ir(i,j)=255-I(i,j)
(15)
In(i,j)=min(Ir(i,j),I(i,j))
(16)
式中:Ir为反色后的图像;In为对原图像与反色后的图像取小后得到的图像.
对In进行二值化,则可以得到珍珠的圆形反光区域的位置,如图4所示,在珍珠内部可以确定圆形反光区域的具体坐标.
图4 寻找圆形反光区域Fig.4 Find light reflection from image
半月形反光由于亮度较弱,其位置不容易由反色操作发现.由于装置内环形光源的大小和位置固定,因此平面镜产生的半月形反光处在圆形反光区域下方较为固定的区域,通过设定阈值T来避开该区域.实验发现,半月形反光所在区域在圆形反光下方大约60个像素内,将阈值T设为60.记圆形反光区域的底部纵坐标为y1,珍珠底部的纵坐标为y2,则局部纹理特征所针对的区域为[y1+T,y2],如图5所示.
图5 确定局部纹理特征所针对的区域Fig.5 Determine statistical areas
2.3.3 局部纹理特征
在局部纹理特征所针对的区域内,选取珍珠灰度图I某一行像素点作图,记为k行,则横坐标为像素点所在的列j,纵坐标为像素点的灰度值I(k,j),j∈[0,w-1],w为图像的宽度.同时对曲线进行一维均值滤波,去除小毛刺使得灰度值曲线更加光滑,可以明显发现深螺纹的珍珠其灰度值曲线波动较明显,而浅螺纹、隐螺纹和无螺纹等珍珠其灰度值曲线波动较小(图6,7),珍珠表面白色横线代表所取灰度值所在行,因此可以从珍珠灰度值曲线中提取局部纹理特征.在得到珍珠某一行像素点的灰度值后,为了方便后续提取特征,作图时如果纵坐标灰度值出现连续相同的数值,则仅取其中一个灰度值,横坐标取这些灰度值相同的像素点所在列j的均值,从而保证灰度值曲线存在严格的极值点.
图6 深螺纹珍珠的 灰度值曲线Fig.6 Gray level curve of blemished pearl
图7 无螺纹珍珠的灰度值曲线Fig.7 Gray level curve of unblemished pearl
经过上面的处理后,找出灰度值曲线所有极值点,如图8所示,
图8 寻找极值点Fig.8 Find extreme points
记珍珠灰度图第k行的全部像素点的灰度值为I(k,:),统计I(k,:)所作灰度值曲线中所有相邻的极大值和极小值之间的差值在不同数值区间所出现的次数,k满足
y1+T≤k≤y2
(17)
在得到珍珠多个视图的特征后,需要进一步构建分类器,并对参数寻优.支持向量机[13]是机器学习中的一种有监督学习模型,经常用于分类问题和回归分析.
对于给定的训练数据集D,即
D={(x1,y1),(x2,y2),…,(xm,ym)}
yi∈{-1,+1},i=1,2,…,m
(18)
式中:xi(i=1,2,…,m)为特征向量;yi为特征向量的类别标签.
支持向量机在训练数据特征空间划分如下超平面,即
ωTx+b=0
(19)
式中:ω为超平面的法向量;b为位移项.
若超平面能够对训练数据集正确分类,即
yi(ωTxi+b)≥1i=1,2,…,m
(20)
当训练数据使上式等号成立时,它们被称为支持向量,两个不同类别的支持向量到超平面的距离之和γ为
(21)
最优分离超平面满足两个条件,找到最优分离超平面是一个二次优化的问题,即
s.t.yi(ωTxi+b)≥1i=1,2,…,m
(22)
可以利用拉格朗日乘子法得到该优化问题的对偶问题,利用SMO算法进行求解.对于待分类数据x,利用得到的最优超平面则可以判断其类别,分类决策函数f(x)为
f(x)=ωTx+b
(23)
若给定的训练数据集线性不可分,可以将其映射到高维特征空间,在高维空间中寻找最优分离超平面.利用核函数[14],在不知道具体映射形式的情况下计算高维空间中的内积.常用的核函数有多项式核、高斯核和拉普拉斯核等,高斯核具有较好的可分性,且其所需要确定的核参数较少,只需确定其核半径,因此核函数采用高斯核.
在使用支持向量机进行分类任务时,由于形状、纹理特征的数量级上有差别,需要对特征向量的每一个维度进行归一化,将特征向量映射到[0,1]区间,转换函数为
(24)
式中:xmax为特征向量的最大值;xmin为特征向量的最小值;x′为归一化后的特征向量.
支持向量机所使用的核函数为高斯核函数,其分类效果受其超参数选择的影响,包括惩罚常数C,高斯核半径g.常用的寻优方法有网格搜索法、遗传算法[15]和粒子群优化算法[16]等.粒子群优化算法和遗传算法相对网格搜索法更加复杂,且容易陷入局部最优.因此,在模型训练阶段选择网格搜索法来确定超参数,并用交叉验证法对所选超参数的泛化能力进行评价.
常用的交叉验证法有留一交叉验证和k-折交叉验证.相比留一交叉验证,k-折交叉验证的计算开销远远小于留一交叉验证,因此,采用k-折交叉验证.k-折交叉验证将数据划分为k份子样本,其中k-1份作为训练集,剩余1份作为验证集,重复k次,并平均k次交叉验证的正确率作为评估标准.
实验所用的数据集采集于事先由专业分拣人员分类好的珍珠.当分拣人员拿到一批统珠,首先会从统珠中挑出价值较低的扁形珍珠和深螺纹珍珠作为第一类,剩余非扁形的浅、无螺纹珍珠作为第二类,实验所用的珍珠就来自这两类,其中第一类珍珠1 500颗,第二类2 000颗.训练数据与测试数据的数量按照近似7∶3的比重来划分,从第一类和第二类中挑选2 400颗珍珠作为训练数据,剩余1 100颗珍珠作为测试数据.
在划分珍珠图像的训练数据和测试数据后,对珍珠多个视图进行特征提取,并用训练数据对分类器的参数进行寻优.在确定分类器的参数后,在训练数据上构建分类模型,并在测试数据上进行测试.
对于一颗珍珠,可以获得5个视图的形状特征,将5组形状特征按照俯视图、主视图、左视图、右视图和后视图的顺序排列,得到的即是该珍珠的形状特征.由于俯视图的反光区域面积较大,全局纹理特征和局部纹理特征的提取都只针对主视图、左视图、右视图和后视图4个视图.提取全局纹理特征时,灰度共生矩阵的灰度级L=8,d=1,θ=0°,提取4个视图的对比度、自相关、能量和同质性4个指标,取均值作为该珍珠的全局纹理特征.寻找珍珠4个视图的非反光区域,分别提取其局部纹理特征,并叠加4个视图的局部纹理特征作为该珍珠的局部纹理特征.将珍珠的形状特征、全局纹理特征和局部纹理特征串联,即可得到33维的特征向量.
在珍珠数据集上,k-折交叉验证的参数k取4,将训练数据2 400颗珍珠分为4份,用其中3份数据作为训练集,剩余1份数据作为验证集,采用网格搜索法对超参数C和g进行选择,搜索范围为[2-10,210],并用交叉验证的平均正确率对所选择的超参数的泛化能力进行评估,选择使得交叉验证的平均正确率最高的那组C和g作为模型的超参数.在确定超参数之后,在2 400颗珍珠训练数据上构建分类模型,用1 100颗测试数据评估所构建的模型.
据了解,已有关于珍珠分类的研究很少同时考虑珍珠多个特征,且所用分类规则与实际人工分类有所不同.为了验证所提取特征在珍珠分类问题上的有效性,分别选取不同的特征组合,训练分类模型,并对比在测试数据上的正确率.分类模型的超参数在训练数据上利用网格搜索得到,当特征选择形状特征、全局纹理特征和局部纹理特征时,网格搜索结果如图9所示,在C和g分别取128和0.5时,交叉验证的平均正确率最高,为85.08%.确定超参数后,用2 400颗珍珠构成的训练数据训练分类模型,并用剩余1 100颗珍珠构成的测试数据评估模型.
图9 网格搜索3D图Fig.9 Result of grid search
选取不同的特征组合时,都需要重新确定对应该特征组合的超参数,不同特征组合的分类结果如表2所示.由表2结果可知:仅使用形状特征或纹理特征的识别正确率都不高.结合傅里叶级数的系数和长短径的珍珠形状特征,其正确率为76.18%,高于只使用傅里叶级数的系数作为形状特征的正确率.而结合形状特征、全局纹理特征和局部纹理特征的正确率达到85.73%,只使用形状特征和全局纹理特征的正确率为82.18%,说明所提出的局部纹理特征结合全局纹理特征能够使得特征所表达的纹理信息更加丰富.
表2 珍珠特征选择以及分类结果Table 2 Pearl’s features selection and recognition results
为了进一步了解通过多视图所提取特征的分类效果,将其与单视图特征进行对比,特征组合选择形状特征、全局纹理特征和局部纹理特征.由于俯视图反光面积较大,不利于提取纹理特征,因此俯视图不作对比.
单独提取主视图的形状特征、全局纹理特征和局部纹理特征,在训练数据上构建支持向量机分类模型,在测试数据上测试分类正确率.除主视图外,同样测试左视图、右视图和后视图上所提取特征的分类效果.对比单视图特征和多视图特征的分类正确率,如图10所示,由于多视图特征所含信息更加丰富,且包含了5个视图的形状特征,其包含珍珠的形状信息更多,分类的正确率更高.
图10 单视图特征与多视图特征的分类正确率对比Fig.10 The comparison between single view features and multi-view features
通过单目多视角摄像装置直接获取5 个不同视角的珍珠表面图像并进行预处理,提取珍珠多个视图的形状特征、全局纹理特征和局部纹理特征,利用支持向量机构建模型来对珍珠进行分类识别,并用实验验证其有效性.对于形状特征提取,提取全部5 个视角的形状信息,并在傅里叶级数的系数的基础上补充长短径作为形状特征,提升分类的正确率.对于纹理特征提取,提出的局部纹理特征提取方法能够在一定程度上弥补灰度共生矩阵的不足,结合全局纹理特征和局部纹理特征可以更好地描述珍珠表面的纹理,能够提升分类的正确率.相比单视图特征提取,根据珍珠多个视图所提取的特征有更好的分类精度,包含更丰富的信息.