杨旭宁 郭中华 吴忻怡 王靖
摘 要: 为了快速、简便、无损地鉴别出羊肉产地,设计一种基于Matlab 图形用户界面(GUI)的鉴别平台。该平台包括5个模块:原始数据模块、数据预处理模块、特征波长提取模块、产地鉴别模块和新样本预测模块。通过设置控件属性值,编写回调函数内容实现平台羊肉产地鉴别功能;并根据900~1 700 nm高光谱成像仪采集3个不同产地羊肉新样本的近红外高光谱数据验证鉴别平台的有效性。该鉴别平台界面操作简单,方便用户使用且预测结果可靠,具有良好的实用性、交互性等。
关键词: Matlab图形用户界面; 高光谱数据采集; 羊肉产地鉴别; 数据预处理; 样本预测; 平台设计
中图分类号: TN012?34; TP399 文献标识码: A 文章编号: 1004?373X(2019)12?0021?04
Abstract: An identification platform based on Matlab graphical user interface (GUI) is designed to identify the mutton origin place quickly, easily and non?destructively. The platform includes five modules: original data module, data preprocessing module, feature wavelength extraction module, origin place identification module and new sample prediction module. The callback function content is compiled by setting the attribute values of controls, so as to realize the mutton origin place identification function of the platform. The near?infrared hyperspectral data of new mutton samples from three different origin places is collected by the hyperspectral imager working at 900~1 700 nm, so as to verify the effectiveness of the identification platform. The identification platform has an easy?to?operation interface, good practicability and interactivity, can obtain reliable prediction results, and is user?friendly.
Keywords: Matlab GUI; hyperspectral data acquisition; mutton origin place identification; data preprocessing; sample prediction; platform design
0 引 言
羊肉含有高蛋白、低脂肪和低膽固醇,还富含矿物质元素铁、硒、锌,以及维生素B1,B2,B6等,经常食用可以起到温阳散寒、补益气血、强健脾胃的保健效果[1],深受消费者的喜爱。目前,市场上销售的羊肉来自于不同的产地,因受地理位置和环境气候的影响,不同产地的羊肉营养价值、口感以及价格也不尽相同[2]。近年来,市场上时常发生以次充好的牟取暴利的事件,因此,研究羊肉产地鉴别且开发快速、简便、准确的鉴别平台对打击非法商贩,保护消费者利益意义重大。
羊肉产地鉴别已逐渐受到关注,目前,刘兴勇等人利用水解氨基酸法实现了羊肉产地鉴别[3],判别正确率为93.48%;孙淑敏等人通过同位素鉴别方法实现了羊肉产地鉴别[4],判别正确率为89.9%;王靖等人利用近红外高光谱成像技术实现了羊肉产地的鉴别[5],判别正确率为84.21%。以上这些鉴别方法,都能实现对羊肉产地的鉴别工作。但是,这些研究都是基于理论的研究。Matlab作为一款功能全面、使用广泛的编程软件[6],其强大的工具箱为数学计算和工程仿真提供了极大的便利[7]。为此,利用GUI提供各种控件,基于Matlab的编程环境可以设计出广大用户更容易接受和使用的平台界面[8?11],既优化了程序,又简化了代码,更便于用户操作。
为此,本文根据项目组的实验结果,结合Matlab GUI的强大功能,建立直观简洁的羊肉产地鉴别平台,使用者可以通过对比不同的数据预处理、特征波长提取方法选择出最优的预处理方法及提取算法,并依据最优的方法建立鉴别模型进行新样本的产地预测。
1 Matlab GUI的羊肉产地鉴别平台
1.1 平台设计路线
根据Matlab GUI通常使用的两种图形用户界面设计方法,直接编写m文件创建gui界面和用guide方法创建gui界面。选择guide方法创建,打开guide界面,拖拽所需要的控件至合适位置,调整控件的属性值,保证各个控件大小、颜色等在界面中美观、大方、合理。保存创建好的figure窗口,在自动形成的m文件中,编写各个对象的回调函数(call?back),实现各个对象的动态功能。最后通过反复调试该平台,从而得到理想的结果。此平台由1个主界面和6个子界面构成。使用者可以直观地了解每个界面所能实现的功能,并且在界面间任意切换。根据界面功能不同,设计实现功能的按钮,通过界面选择相应的按钮,从而达到羊肉产地的鉴别。平台设计模块图如图1所示。
1.2 平台设计框架
1) 原始数据模块。展示900~1 700 nm的近红外高光谱数据样本光谱图,能够直观地反映样本波长与反射率所对应的关系。
2) 数据预处理模块。数据预处理可达到对原始数据去噪,以此提高信噪比的目的。本GUI界面包括标准正态变量(SNV)、乘法散射校正(MSC)、面积归一法(AN)、SG卷积平滑(SGS)、矢量归一法(VN)、一阶导数(FD)、二阶导数(SD)、卷积平滑与标准正态矢量结合(SNV?SG)八种数据预处理方法。可选择其中任意一种算法对数据进行预处理,通过对比预处理光谱图,选择出最优的预处理方法。
3) 特征波长提取模塊。该平台实现了连续投影(SPA)、竞争性正直适应加权(CARS)、无信息变量消除(UVE)三种特征波长提取的算法。分别对预处理后的数据进行特征波长提取,通过对比选择最优波长数,得出样本数据。
4) 产地建模模块。共有两种数据识别分类的算法,分别是K最近邻分类算法(KNN)和偏最小二乘判别分析(PLS?DA)。在KNN中选取最优的K值,在PLS?DA中选取最优的主成分,结合最优预处理方法和最优波长数分别建立鉴别模型。
5) 新样本预测模块。根据建立的产地鉴别模型,加载需要预测的新样本,预测出新样本中每个数据的产地。
2 GUI界面开发
2.1 界面设计
GUI平台的主界面以及各个子界面均由静态文本(Static Text)、编辑框(Edit Text)、按钮(Push Button)、弹出式菜单(Popup Menu)、坐标轴(Axes)等控件根据所需组合而成。
2.2 各模块功能实现
2.2.1 原始数据模块功能实现
使用Matlab中uigetfile函数,加载原始样本数据。该平台可以读取.xls,.txt,.csv,.mat四种格式的样本文件,待数据加载完毕可以通过编辑框(Edit Text)显示读取数据文件路径。最后用plot函数做出该原始数据的光谱图,关键代码如下:
2.2.2 数据预处理模块功能实现
在弹出式菜单控件(Popup Menu)中,编写了8种数据预处理的方法,并在回调函数(Call?Back)中使用switch函数,让其表达式等于弹出式控件的返回值,在对应的case中编写相应方法所对应的代码。当用户选择某一种预处理方法,该平台就能做出该方法处理后的样本光谱图。经标准正态变量(SNV)方法处理后样本a的光谱图如图3所示。
2.2.3 特征波长提取模块功能实现
加载预处理后样本数据,选择3种预处理方法的其中1种进行特征波长的提取。在该子界面中共有6个坐标轴(Axes)控件,OpeningFcn函数中用set命令把坐标轴(Axes)控件默认值设置为off,在回调函数(Call?Back)中将提取方法对应的坐标轴(Axes)控件设置为on,使提取算法与所使用的坐标轴一一对应。点击“运行”按钮,待提取完成后会返回提取的特征波长的个数。
连续投影(SPA)方法提取的特征波长个数如图4所示。
2.2.4 产地建模模块功能实现
结合提取出来的特征波长个数,选择特征波长数以及对应的反射率,用两种建模方法进行建模。选择建模方法后,平台会返回出该方法建立的鉴别模型。K最近邻分类算法(KNN)建立的鉴别模型如图5所示(其中K=5;
1,2,3分别代表来自不同产地的样本a,b,c)。
2.2.5 新样本预测模块功能实现
根据鉴别算法建立的鉴别模型,对新的样本数据进行预测。加载120个新样本数据,以上一步选择的鉴别模型为依据,进行新样本的预测。预测结果如图6所示。
3 结 语
本文所设计的基于Matlab GUI的羊肉产地检测平台,实现了8种数据预处理方法,3种特征波长提取算法以及2种建模方法,通过比较选择出最优的数据预处理方法和提取算法,分别建立判别模型,完成了对羊肉产地的鉴别工作。使用900~1 700 nm近红外高光谱仪采集3个不同产地共120个样本的近红外高光谱样本数据进行测试,有102个的样本测试正确,正确率为85%,平台判别正确率高,为实现羊肉产地在线识别检测提供了一定的参考价值。
参考文献
[1] 张进,王卫,郭秀兰,等.羊肉制品加工技术研究进展[J].肉类研究,2011,25(11):50?54.
ZHANG Jin, WANG Wei, GUO Xiulan, et al. Recent research progress on mutton product processing technologies [J]. Meat research, 2011, 25(11): 50?54.
[2] 梁静,张文举,王博.影响羊肉品质因素的研究进展[J].中国畜牧兽医,2016,43(5):1250?1254.
LIANG Jing, ZHANG Wenju, WANG Bo. Research progress on influence factors of mutton quality [J]. China animal husbandry and veterinary medicine, 2016, 43(5): 1250?1254.
[3] 刘兴勇,林涛,刘宏程,等.基于水解氨基酸分析山羊肉的产地溯源[J].现代食品科技,2013,29(11):2788?2792.
LIU Xingyong, LIN Tao, LIU Hongcheng, et al. Distinguishment of goat meat geographical origin based on amino acids composition [J]. Modern food science & technology, 2013, 29(11): 2788?2792.
[4] 孙淑敏,郭波莉,魏益民,等.多种稳定性同位素(C、N、H)分析在羊肉产地溯源中的应用[C]//第四届中国北京国际食品安全高峰论坛论文集.北京:北京食品学会,2011:50?55.
SUN Shumin, GUO Boli, WEI Yimin, et al. Application of various stable isotope (C, N, H) analysis in traceability of lamb origin [C]// Proceedings of the 4th China Beijing International Food Safety Summit Forum. Beijing: Beijing Food Association, 2011: 50?55.
[5] 王靖,丁佳兴,郭中华,等.基于近红外高光谱成像技术的宁夏羊肉产地鉴别[J].食品工业科技,2018,39(2):250?254.
WANG Jing, DING Jiaxing, GUO Zhonghua, et al. Identification of geographical origins of mutton in Ningxia based on the near infrared hyperspectral imaging technique [J]. Science and technology of food industry, 2018, 39(2): 250?254.
[6] 罗华飞.Matlab GUI设计学习手记[M].北京:北京航空航天大学出版社,2011.
LUO Huafei. Learning notes of Matlab GUI design [M]. Beijing: Beihang University Press, 2011.
[7] 冯康,王维新,王静,等.基于Matlab GUI的成熟棉花特征提取系统设计[J].江苏农业科学,2015,43(5):397?400.
FENG Kang, WANG Weixin, WANG Jing, et al. Design of mature cotton feature extraction system based on Matlab GUI [J]. Jiangsu agricultural science, 2015, 43(5): 397?400.
[8] 江莎莉,任琼.基于Matlab GUI的服装颜色特征提取系统设计[J].现代电子技术,2018,41(9):96?99.
JIANG Shali, REN Qiong. Design of clothing color feature extraction system based on Matlab GUI [J]. Modern electronics technique, 2018, 41(9): 96?99.
[9] 燕丽红.基于Matlab/GUI的音乐播放器设计[J].现代电子技术,2015,38(8):114?116.
YAN Lihong. Design of music player based on Matlab/GUI [J]. Modern electronics technique, 2015, 38(8): 114?116.
[10] 王兆文,李浩,黃都,等.基于Matlab/GUI的汽油机缸内直接喷雾图像处理方法[J].农业机械学报,2013,44(9):19?23.
WANG Zhaowen, LI Hao, HUANG Du, et al. Digital image processing method of gasoline direct injection spray based on Matlab/GUI [J]. Transactions of the Chinese Society of Agricultural Machinery, 2013, 44(9): 19?23.
[11] 郝豫.基于Matlab GUI的大型公共活动拥挤踩踏事故风险预警及应用研究[J].现代电子技术,2017,40(13):110?113.
HAO Yu. Research on Matlab GUI based stampede accident risk pre?warning of large public event and its application [J]. Modern electronics technique, 2017, 40(13): 110?113.