陆晓芳,徐建英,田 越
(1.苏州市纤维检验院,江苏 苏州 215004;2.哈尔滨工程大学,黑龙江 哈尔滨 150001)
随着社会的进步和计算机技术的不断发展,到 2021年,以机器学习和深度学习为代表的人工智能有了长足的进步,计算机视觉(Computer Version,CV)和数据挖掘技术也蓬勃发展,使用计算机鉴别羊绒羊毛成为可能。本研究采用了贝叶斯网作为机器学习模型,使用python脚本语言,结合statsmodel、sklearn、pandas、Numpy和PyQt等PyPI库,构建了一个用于鉴别羊绒羊毛的自动化系统。
1.1.1 显微镜法
羊绒价格昂贵,而羊绒与羊毛又都为角蛋白纤维,结构相似,黑心商家往往将价格低的羊毛与羊绒混合充数,以降低成本并牟取不合法的利益。所以,鉴别羊绒羊毛成为检测机构不可缺少的工作,最常使用的是通过电子显微镜观察羊绒羊毛的鳞片纹图进行区分[1]。山羊绒由鳞片和皮质层组成,没有髓质层,鳞片边缘光滑,类似环状包覆于毛干,覆盖间距比羊毛大,鳞片较薄且紧抱于毛干,开张角较小,横截面多为规则圆形;而羊毛的鳞片多呈环状,每个鳞片形成一个环套,套在毛干周围,一个鳞片的根部被另一个鳞片的梢部覆盖,粗毛多呈瓦状和龟裂状,横截面一般为椭圆形[2]。
1.1.2 计算机图像识别法
计算机图像识别依赖扫描电镜设备,然后使用CV技术,通过计算机分析替代人工肉眼观察的方式,目的是利用计算机更高效、快速的特点解决人工鉴别反复劳动的问题。从目前的水平来说,“替代”人工的程度还达不到,但是“辅助”人工决策有很大成效[3]。本研究设计构建的系统依靠鳞片的直径、鳞片的高度、鳞片的径高比和鳞片的密度4个参数来判断图像的结果。
目前,主流的识别羊绒羊毛的方法有以下几种[4]:深度学习范畴的人工神经网络(Artificial Neural Network,ANN)、机器学习范畴的支持向量机(Support Vector Machine,SVM)以及决策树(Decision Tree),亦有一些学者使用了聚类算法,例如K均值(K-Means)算法[5]等。
本研究采用的是贝叶斯网模型,是一种采用有向无环图结构(Directed Acyclic Graph,DAG)刻画各个特征之间关系的模型。
朴素的贝叶斯网模型采用了“属性条件独立”的假设,即假设影响图像判断结果为羊绒或者羊毛的各个属性互不影响,换言之,每个属性独立影响结果。贝叶斯网又称“信念网”(belief network),不同于朴素的贝叶斯网模型,贝叶斯网结构有效地表达了属性间的条件独立性。给定父节点集B={G, θ},贝叶斯网假设每个属性与其非后裔属性相独立,于是将属性(x1, x2,..., xn)联合概率密度分布定义为下式:
式中:yi是xi的后裔属性。
用来判断图像识别结果的4个属性(鳞片的直径、鳞片的高度、鳞片的径高比和鳞片的密度)很明显存在这样的关系,即鳞片的直径、鳞片的高度是鳞片的径高比的后裔。从这个角度来讲,贝叶斯网模型适用于羊毛羊绒的图像识别,而且也有不少前人的经验可供参考[6]。
在检查时发现,已有数据存在部分数据缺失的问题,所以需要进入数据清洗的步骤,接着通过归一化处理,找到了其他一些错误数据。出现问题的数据主要集中在鳞片的直径、鳞片的高度、鳞片的径高比3个参数,使用线性回归拟合的办法推测出丢失的数据,而鳞片密度的数据缺失和错误出现较少,选择将这部分错误的数据直接丢弃,最后一共还有10 131条数据。
(1)将根据电子显微镜观察到的鳞片的直径、鳞片的高度、鳞片的径高比、鳞片的密度等数据录入excel表格中,并由python的pandas库读取数据。
(2)使用train_test_split方法,将数据随机划分成两份。
(3)将60%训练集传入贝叶斯网模型。
(4)使用训练好的模型取预测40%的测试集,计算出正确率。
(5)使用模型预测其他数据的结果。
随着机器学习和深度学习等技术的发展与成熟,未来人类社会会发生巨大的变化。本研究设计与实现的基于贝叶斯网的羊毛羊绒鉴别系统,使用python语言设计。技术路线使用了Numpy、skleran、statsmodels、pandas和PyQt等库进行分析和编程,实现了预测图片的功能,准确率达到了93%,可以辅助工作人员的鉴别工作,极大地减少工作人员的工作量;同时,使用了PyQt构建系统的UI部分,图形界面更加促使人机友好。