李金金,孙哲华,孟庆浩
(天津大学 电气自动化与信息工程学院,天津,300072)
白酒作为世界六大蒸馏酒之一,是国人的重要日常消费品。用于白酒检测的方法主要包括感官评价法及分析仪器法[1-4]。感官评价法存在重复性低、主观性强及个体差异大等问题,而分析仪器等检测设备体积大、价格高,较难实现实时评测。因此,有必要研发用于白酒快速检测和识别的新技术。
电子鼻是一种混合气味检测与识别设备,具有快速、无损等优点,在食品检测领域中发挥了重要作用[5-7],在白酒检测方面应用[8-16]。
便携性或小型化对提高电子鼻的实用性非常重要。在便携式电子鼻的研究中,美国研制的商业化电子鼻Cyranose320是其典型代表,它采用32个聚合物传感器组成阵列,尺寸为(10×22×5)cm[17]。徐后坤[18]、ZHANG[19]设计了用于VOC气体检测的手持式电子鼻。张延军[20]和LI[21]开发了用于猪肉新鲜度检测的手持式电子鼻系统。李宇骁[22]开发了基于51单片机的无线式手持式电子鼻,用于7种中草药的识别。目前便携式电子鼻方面的研究[14, 23-24]大多集中在数据处理。
本文以6种白酒为检测和识别对象,开发了一种基于仿生气室的手持式电子鼻系统,并根据采集响应信号特点,分析比较了主成分分析(principal component analysis,PCA)、核主成分分析(kernel principal component analysis,KPCA)和核熵成分分析(kernel entropy component analysis,KECA)3种降维方法以及支持向量机(support vector machine,SVM)、K近邻(K-nearest neighbor,KNN)和反向传播人工神经网络(back-propagation artificial neural network,BP-ANN)算法对白酒识别率的影响,选出了最优算法,最后将其应用到白酒识别实验中,验证了手持式电子鼻的适用性。
根据白酒香味物质特点(乙酸乙酯、醇、醛等)对气体传感器阵列进行了优化,最终选定6种传感器用于手持式电子鼻,分别是CCS801和CCS803(英国CCS),TGS8100(日本Figaro),MiCS-5914、MiCS-5524和MiCS-4514(英国E2V),并将最终选定的气体传感器和温湿度传感器制成传感器阵列电路。
手持式电子鼻系统采用动态顶空采样方法,并设计了泵吹式气路系统。为了实现电子鼻小型化,对各个硬件模块的选型进行了严格的控制。
自行设计的白酒检测用手持式电子鼻系统实物如图1所示。该电子鼻系统总重283 g,长11 cm,宽9 cm,高3 cm,平均功率在5 W以内。图1左侧图给出了系统的主要组成部分,图1右侧展示了所设计电子鼻系统与一个6.4英寸手机的对比。
图1 自制手持式白酒检测电子鼻系统实物图Fig.1 Photos of the self-designed handheld e-nose system for liquor detection
图2给出了仿生气室结构示意图。其中,序号1和6分别是气室的入口和出口,序号2代表气室的流线型外壳,序号3是竖直隔板,序号4是水平挡板,序号5表示小圆柱结构,4个小圆柱结构通过螺丝将气体传感器阵列电路板紧固。
图2 仿生气室结构示意图Fig.2 Schematic diagram of the bionic chamber
为比较不同气室方案对电子鼻系统的影响,设定总仿真时间为70 s,其中采样时间1 s,清洗时间69 s;取仿真时间为1 s时传感器阵列处的平均气压(相对于标准大气压)和气室出口处平均气流速度进行对比,结果如表1所示。
表1 各气室方案对应的气流速度和气压值Table 1 Airflow velocity and pressure of each chamber scheme
综合考虑气压、气流速度和气体残留情况,选择挡板高度为3 mm的气室方案6作为最优仿生气室,并将其应用于手持式电子鼻的设计。
1.2.1 采样数据预处理
为了消除来自传感器阵列原始数据的噪声干扰,使用了中位值平均滤波和Savitzky-Golay(S-G)滤波。中位值滤波可以有效滤除硬件电路中孤立的脉冲噪声,S-G滤波对气体传感器响应值的上下波动具有较好的平滑效果。
中位值滤波是将某一点的真实值用该点邻域窗口内所有点的中值代替,这种方法既能解决偶然因素引起的波动现象,也能使曲线更加平滑,如公式(1)所示:
y(i)=Median{x(i-N),…,x(i),…,x(i+N)}
(1)
式中:x(i)表示传感器第i个采样数值,即为位于窗口中心的传感器响应值,y(i)是更新后的窗口中心值,N为正整数,L=2N+1。
S-G滤波是一种在时域内基于局域多项式最小二乘法拟合方法,具体方法如下:
首先建立一个宽度为n=2m+1的滤波窗口,m为窗口半径,取为51,设各个测量点为x=(-m,-m+1,…,m),采用k-1次多项式对窗口内的数据点进行拟合,为保证每个参数有解,取k y=a0+a1x+a2x2+…+ak-1xk-1 (2) 式中:将这n个测量点带入方程,然后用最小二乘法将系数ai拟合出来,最后将中间点x0代入原多项式中,得到对应的y0,用该值作为最佳拟合值代替原来对应的值。 本文采用的数据预处理方法是上述中位值滤波和S-G滤波的叠加,即先进行L=51的中位值滤波,然后再进行滑动窗口为51,多项式阶数为3的S-G滤波。图3给出了传感器CCS801的一条原始响应曲线,使用上述两种滤波方法后的响应曲线如图4所示。由图4可知,滤波后传感器响应曲线更平滑,可以较好地去除传感器响应中存在的噪声。 图3 CCS801传感器响应曲线Fig.3 Response curve of CCS801 sensor 图4 滤波后的CCS801传感器响应曲线Fig.4 Response curve of CCS801 sensor after filtering 1.2.2 特征提取 依据手持式电子鼻的采样方式和数据曲线的形状特点,最终选取了5个特征参数如下:一阶微分最大值Maxder、一阶微分最小值Minder、二阶微分最大值Maxsder、一阶微分最大值处对应的响应值Re、响应相对差值Rr,提取特征的公式如下: (3) (4) (5) Re=Maxder×dt (6) Rr=max(St)-St0 (7) 式中:St为传感器输出电压信号对应的数字量,St0为响应起始点对应的传感器输出电压信号所对应的数字量。 1.2.3 特征降维和分类方法 经过特征提取后,传感器响应数据仍为高维阵列矩阵,特征之间存在一定的冗余信息。为了消除这些冗余信息的影响,需要进一步降维才可用于分类器。本文分别使用PCA、KPCA和KECA 3种方法进行降维,并对其进行了对比,选出最佳的降维方法。分类算法选择了3种比较常用的模式识别算法来分别进行分类识别,分别是SVM、KNN和BP-ANN。 本文选取了6种不同类型的白酒,其具体信息见表2。采样时,室内温度28 ℃,相对湿度30%。实验采用的采样参数设置如下[25]:采样频率为400 Hz;采样时间40 s,其中吸气时间为1 s,吸气等待时间为3 s,呼气时间为35 s,呼气等待时间为1 s;气室清洗时间为30 s,然后再针对采集到的数据进行上述所提到的预处理以及特征提取。 表2 实验白酒样本信息Table 2 Information of Chinese liquors used in the experiment 本文分别采用PCA,KPCA,KECA 3种方法对提取出的特征进行降维,对降维后的数据分别取前2个主成分绘图以探究其降维后对于分类的效果,如图5所示,其中横纵坐标分别是第一主成分和第二主成分,括号中的值为其贡献值。从前2个主成分的贡献值可以看出,KECA和KPCA的前2个主成分元的累积贡献率分别达到了98.21%和96.03%,而PCA前2个主成分元的贡献率为69.98%,可以看出KECA和KPCA两种降维方法对于数据的主要信息的提取程度要比PCA要强,并且KECA效果最好。从主成分分析图中可以看出,3种降维方法的分类效果类似,都有2到3种样本的分类效果较好,其他种类的样本则存在一定程度的混乱,体现在图中即为不同类型的点相互混杂。所以还需要进一步分析,才能确定针对白酒的最优降维方法。 a-PCA降维后的主成分分布;b-KPCA降维后的主成分分布;c-KECA降维后的主成分分布图5 基于3种不同的降维方法白酒样本主成分分布Fig.5 Distribution of principal components in liquor samples based on three different dimension reduction methods 为了定量地描述不同降维方法的分类性能,本文引入了样本特征的类间离散度Sb和类内离散度Sw,其中Sb表示不同类别样本之间的分离程度,Sw代表同一类别样本的分离程度,其定义如公式(8)、(9)所示: (8) (9) 式中:c为样本类别数,ni是第i类样本的样本数,mi是第i类样本的均值,m是所有样本的均值,xij是第i类的第j个样本。 从类内离散度和类间离散度的计算过程来看,其中必要的步骤之一就是求得样本之间的欧氏距离,而欧式距离存在取值范围大的特征的影响会高于取值范围小的特征的问题,所以在计算类内离散度和类间离散度之前首先需要进行归一化以解决上述问题,归一化的定义如公式(10): (10) 式中:ai代表第i个特征中的一个特征值,max(ai)、min(ai)分别代表所有样本的第i个特征中的最大值和最小值。 从分类角度来看,类间离散度应该越大越好,而类内离散度应该越小越好,这样有利于后续的分类。针对不同降维方法的类间离散度、类内离散度以及二者比值如表3所示,KECA降维方法的比值明显大于其他两种降维方法。综上,使用KECA进行降维有利于后续的分类识别,所以在后续分类识别算法中将采用KECA来进行降维。为了尽可能保证信息的完全,通过主元成分累计贡献率达到99.8%来确定最终降维后的维数,最终确定的KECA降维后的维数为10维。 表3 三种降维方法对应的类间离散度和类内离散度Table 3 Inter-class dispersion and intra-class dispersion corresponding to three dimension reduction methods 基于仿生气室的白酒样本共有426个,随机取其中的50个作为测试样本,其余作为训练样本进行分类识别。进行多次训练集和测试集的选取和训练,以保证结果的客观性。 将仿生气室下的手持式电子鼻采样数据作为分类样本,采用KECA进行降维,6类白酒样本共有396个,其中每类白酒有52~90个样本,取出总数的10%作为训练样本,并且保证训练样本中包含所有类别白酒,经过多次随机挑选训练样本后取分类正确率的平均值以分析分类效果,3种分类方法的识别结果如表4所示。 表4 三种分类算法的正确率Table 4 Accuracies of three classification algorithms 由表4可知,经过KECA降维后,BP-ANN对白酒的识别正确率最高(99.10%),其次是KNN和SVM。但是从运行时间来讲,在相同训练、测试样本数量以及迭代次数(即重新选择训练集和样本集)的情况下,SVM的分类识别时间为2.99 s,KNN的分类识别时间为1.10 s,而BP-ANN神经网络需要的时间为85.18 s。从手持式电子鼻对对白酒识别的在线和快速方面考虑,综合识别正确率和运行时间,建议选择KNN作为分类算法。 通过对6种白酒的采样、数据预处理、特征提取、降维和分类处理等操作,验证了本文自主研发的手持式电子鼻系统可用于白酒的在线检测与识别;分析比较了PCA、KPCA和KECA三种方法对气体传感器信号特征的降维效果,基于前2个主成分贡献值以及类间离散度和类内离散度比值,发现KECA效果更好;综合比较了SVM、KNN和BP-ANN三种分类算法的识别率和运行时间,3种方法识别率均可达到94%以上,但KNN的识别时间最短。2 结果与分析
2.1 实验材料以及采样过程
2.2 三种降维方法对比
2.3 三种分类算法对比
3 结论