基于机器视觉的冻干粉中的异物检测分类技术研究*
2017-02-09丁金如孟志刚杨燕鹤
丁金如 孟志刚 杨燕鹤
(长沙学院数学与计算机科学系 长沙 410003)
基于机器视觉的冻干粉中的异物检测分类技术研究*
丁金如 孟志刚 杨燕鹤
(长沙学院数学与计算机科学系 长沙 410003)
利用数字图像处理技术对冻干粉不良品进行检测分类。为了更高效地自动检测并分类出冻干粉中存在的纤维、毛发、玻璃碎屑等可见异物,研究了基于主成分分析(PCA)特征提取,并用BP神经网路和支持向量机(SVM)算法进行分类识别。通过工业小样本数据仿真实验,测试结果表明,两种方法都具有较好的可行性和实用性,相比之下基于PCA与SVM算法的识别率比基于PCA与BP算法的识别率高。
可见异物检测; 主成分分析; BP神经网络; 支持向量机
Class Number TP391
1 引言
冻干粉是在无菌环境下将药液冷冻成固态,抽真空将水分升华干燥而成的无菌粉注射剂。该方法使产品的保存更加稳定,但是冻干粉针剂产品中的可见异物是一直困扰生产者、使用者的质量问题。冻干粉针剂产品中常见的可见异物主要有纤维、毛发、玻璃碎屑、黑点等,使产品存在着很大的质量隐患。为了检测产品中的不良品,传统的检测方法为人工视觉检测,这种方法不仅效率低、质量差、工人劳动强度大,易产生视觉疲劳,不仅消耗了大量的劳动力,而且增加了生产成本。相比而言,机器视觉检测具有长期连续、无疲劳、快速的工作特点,应用于冻干粉针剂产品中的可见异物的检测,既提高了检测识别速度,又降低了生产成本,具有较高的实用价值。国内将机器视觉用于药液异物检测已经做了很多工作,肖方良等[1]主要开展安瓿瓶溶液内运动异物的检测与跟踪方面的研究。其通过旋转急停的方式来获取图像,用差分法对目标微粒进行提取,并简述了两帧差分和三帧差分的原理,采用粒子滤波与模板匹配相结合的方式跟踪运动目标;葛继等人[2~3]先采用序列图像差分方法提取出感兴趣区域,再采用训练后的脉冲耦合神经网络有效识别出口服液药液中异物特征;目前以冻干粉为目标用机器视觉进行异物检测分类的研究还很少见。本文针对数字图像识别分类环节,研究了基于主成分分析(PCA)特征提取,并用BP神经网路和支持向量机(SVM)算法进行分类识别。来提高冻干粉针剂产品中异物检测的识别率。通过工业小样本数据仿真实验,测试结果表明,两种方法都具有较好的可行性和实用性,相比之下基于PCA与SVM算法的识别率比基于PCA与BP算法的识别率高。
2 主成分分析PCA
Pearson在1901年第一次提出了[4~5](Principal Components Analysis,PCA)的方法。主成分又称主分量、主元素。它的实质是K-L变换,即最优正交变换。简单地说,它的原理就是将一个高维向量,通过一个特殊的特征向量矩阵,投影到一个低维的向量空间中,表征为一个低维向量,并仅损失一些次要信息。也就是说,通过低维表征的向量和这个特征向量矩阵,可以重构出所对应的原来的高维向量。从信息论的观点来看,就是在所有的正交变换中,K-L变换所对应的信息熵最小,所以用PCA方法所获得的特征空间就是原图像空间的一个最优低维逼近。
2.1 PCA算法
(1)
其中,n表示样本的总数,m表示样本的均值。
(2)
设St的秩为k;而λ1,λ2,…,λk是矩阵St的特征值,且λ1≥λ2≥…≥λk,ωi,i=1,2,…,k为对应的特征向量。则λi与ωi满足:
Stωi=λωii=1,2,…,k
(3)
令W=[ω1,ω2,…,ωk]在主分量分析中,可讲特征向量ωi,称为这组样本的主成分(Principal Components),W称为这组样本的主成分矩阵。
对一个n维随机变量x,经过下式的变换:
y=WT(x-m)
(4)
可以得到一个新的n维变量Y,y=[y1,y2,…,yn]T。从代数空间的角度讲,这一变换就是将变量x向W所对应的一组基进行投影,得到一组投影系数Y。Y就称为x在这组数据下经PCA变换后的结果。
已知投影系数y后,可以按下式重构出原始数据:
(5)
2.2 PCA快速算法
PCA的计算中最主要的工作量是计算样本协方差矩阵(散布矩阵)的特征值和特征向量。设样本矩阵X大小为n×d(n个d维样本特征向量),则计算样本协方差矩阵St将是一个d×d的方阵,所以当维数d较大时,直接计算的相当困难,要得到样本协方差矩阵的全部特征值可能要花费很长时间。因此,可采用PCA快速算法。
设Zn×d矩阵为样本矩阵X中每个样本减去样本均值m后得到的矩阵,则散布矩阵S为(ZTZ)d×d。现引入一个新的矩阵R,令
R=(ZZT)n×n
(6)
则很容易发现矩阵的维数是n×n。一般情况下由于样本n数目远远小于样本维数d,R的尺寸也远远小于S,计算R的特征值会比较方便。借助线性代数的理论,可以证明S和R有着相同的非零特征值,所以通过计算R的特征值可以直接得到S所对应的特征值。
(7)
式(7)两边同时左乘(ZT),由矩阵的乘法结合律得到下式:
(8)
利用上面的结论,可以通过计算小矩阵的特征值和特征向量,间接得到矩阵的特征值和特征向量,由于矩阵的维数远远小于矩阵的维数,所以利用这种做法可以大大减小传统PCA算法中的计算量,提高运算速度。
3 BP神经网络
BP[6]网络最早于1974年由Werbos提出,但当时无合适的学习算法,故没有得到重视,直到1985年Romelhart和Mcclelland提出了误差反向传播算法(error back propagation algorithm),才把BP网真正推向实用,BP网也是由此算法而命名。BP网是单向传播的多层前向网络,由输入层、输出层和隐含层组成,每层有若干个神经元(也称节点),同层神经元间无耦合,节点的激活函数必须可微、非减,通常用Sigmoid函数。
BP[7~8](反向传播)名字的得来是因为它在运行过程中将输出层的误差从后向前逐层传播。BP把Widrow-Hoff学习规则推广到具有多层和非线形传递函数(如Sigmoid函数)的神经网络。标准BP是一个梯度下降算法,它通过迭代地减小训练样本的目标值和网络输出间的均方误差来实现对可能的网络权值空间的梯度下降搜索。BP神经网络结构图如图1所示。
图1 BP神经网络结构图
神经元i的输出与输入的关系表示为
若用X表示输入向量,用W表示权重向量,即:
则神经元的输出可以表示为向量相乘的形式:
neti=XWyi=f(neti)=f(XW)
BP神经网络结构参数介绍:x1,…,xn为输入向量的各个分量;z1,…,zq为隐含向量的各个分量;y1,…,ym为输出向量的各个分量;v1,…,vn和w1,…,wq为神经元各个突触的权值θ为偏置(bias),或者称之为阈值(threshold);f为传递函数,通常为非线性函数。一般有traingd(),tansig(),hardlim()。
每次输入一个样本,便将网络输出与目标输出相比较。算法将调整网络参数(连接权值)以使均方误差最小化。
常用的包含两层Sigmoid单元的前向网络的BP算法如下:
· 创建具有Nin个输入,Qhidden个隐藏单元,Mout个输出单元的网络;
· 初始化所有的网络权值为较小的随机值(例如-0.05~+0.05之间的数);
· 在遇到终止条件(如最大迭代代数或满足的性能指标)前:
对于训练样本中的每个:把输入沿网络前向传播
1) 把样本xk输入网络,计算网络中每个单元的输出out使误差沿网络反向传播
2) 对于网络的每个输出单元i,计算它的误差项δi;
3) 对于网络的每个隐藏单元j,计算它的误差项δj;
4) 使用梯度下降法更新每个网络权值Wij。
4 SVM分类器
SVM[9~10]是一种基于统计学习理论的模式识别方法,它是由Boser,Guyon,Vapnik在COLT-92上首次提出,从此迅速地发展起来,现在已经在许多领域(生物信息学,文本,图像处理,语言信号处理和手写识别等)都取得了成功的应用。
SVM的主要思想[11]可以概括为两点: 1) 它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能; 2) 它基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。
SVM(支持向量机学习)方法主要有以下几种模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机。当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机,又称软间隔支持向量机。当训练数据线性不可分时,通过使用核技巧和软间隔最大化,学习非线性支持向量机。
SVM最初是用来对二分类问题进行分类的,在线性可分的情况下,对于训练集(xi,yi)其中xi∈RNyi∈{-1,1},i=1,2,3,…,n目标是找到一个超平面,使得它能够尽可能多地将两类数据点正确的分开,目标是找到一个超平面能够将两类样本完全分开且两类间的间隔最大。不妨设超平面的方程为:w·x+v=0,将w·x+b>0的归为1类,而w·x+b<0的则归为-1类。两类间隔的最大化等价于最小化:
(9)
约束条件:
yi(w·x+b)≥1,∀i∈{1,2,3,…,n}
引入Lagrange乘子αi,得到式(10)的Wolf对偶形式为
(10)
在解得α之后,平面参数w和b便可以由对偶问题的解α来确定。由此可以得到持向量机的最优分类函数:
(11)
对于非线性可分的情况,则需要利用核函数将原样本映射到高维空间中转化为高维空间中的线性可分问题,其对应的目标函数变为
(12)
式中,C为惩罚因子,ε是松弛变量,此时约束条件变为
yi(w·x+b)≥1-εi,εi≥0,∀i∈{1,2,3,…,n}
(13)
而最优的分类函数则变为
(14)
式中,K(xi·x)为核函数。常见的核函数有:
· 线性核函数:K(x,y)=x·y;
· 多项式核函数:K(x,y)=(x·y+1)d,d=1,2,3,…;
· 径向基核函数:K(x,y)=exp(-γ‖x-y‖2);
· Sigmoid核函数:K(x,y)=tanh(b(x·y)-c)。
5 实验及分析
5.1 实验环境
实验利用Matlab R2014b编程实现,使用了台湾大学林智仁教授的libsvm工具。使用工业拍摄的冻干粉针剂不良品图片作为数据集。数据包含纤维、毛发、玻璃碎片等异物,数据图片如图2、3所示。大多数图像的光照方向和强度相差不大,其中相同类异物拍摄的角度有着不同程度的变化,角度差异在20°左右,同一类可见异物的形状大小也有相当程度的变化。将数据集中每一类的异物图像分成两组,前5张作为训练集,剩余5张作为测试集,实现两类可见异物的识别分类。
图2 毛发异物
图3 玻璃碎屑异物
5.2 实验过程
5.2.1 PCA算法提取异物特征
利用快速PCA降维去除像素之间的相关性。从训练集样本中提取主成分,实验中将主成分的数目确定为10,通过投影完成基的转换。经过这样处理,训练集中的每个异物样本的特征向量由高维降为10维,在后续的实验中就以10维的特征向量来代表该异物样本。
5.2.2 构造BP神经网络
1) 对样本集进行归一化
确定输入样本和输出样本,并对它们进行归一化,使用Matlab的归一化函数premnmx将数据变换到[-1,1]区间。
2) 创建BP神经网络
在样本集确定之后,即可进行网络的结构设计,在Matlab中使用newff创建函数,它不但创建了网络对象,还自动初始化网络的权重和阈值。如果需要重新初始化网络权重和阈值,可以使用init函数。
关键语句:net=init(net);
net=newff(P,T,[S1 S2],{'tansig','logsig'});
P为网络实际输入;T为网络应有输出;S1与S2为网络层的神经元数目;'tansig'与'logsig'为网络层神经元的激活函数。
实验选用四层BP网络,输入层、输出层、两层隐含层。
3) 设置网络的训练参数
net.trainParam.epochs = 50; 最大收敛次数;
net.trainParam.goal = 0.01; 收敛误差;
4) 训练BP网络
关键语句为:net = train(net,P,T);
5) 训练成功,相关结果输出
图像经过PCA提取特征值并用BP神经网络进行识别分类的方法,通过工业采集的小样本数据仿真实验,结果表明:识别率最高为90%,平均识别率为84%。
PCA+BP方法的平均识别率只有84%,为了进一步提高小样本的异物识别率,又探讨了基于PCA特征提取并结合SVM识别的方法。
5.2.3 构建两类SVM
1) 根据给定的数据,选定训练集和测试集;
训练集:trainset();分别取S1(1:5,:)和S2(1:5,:)作为训练集;
测试集:testset();分别取S1(6:10,:)和S2(6:10,:)作为测试集;
2) 为训练集与测试集选定标签集;
标签集:label();取S1的数据为正类标签为1;S2的数据为负类标签为-1。
3) 利用训练集进行训练分类器得到model;
4) 根据model,对测试集进行测试集得到accuracy rate。
图像经过PCA提取特征值并用SVM进行识别分类的方法,通过工业采集的小样本数据仿真实验,结果表明:平均识别率为90%,如图4所示。
5.2.4 实验结果与分析
快速PCA算法可以实现有效的降维,本实验中可见异物图像的样本的特征向量从高维,降到20维。这样可以降低运算量,提高异物的识别速率。
图4 PCA+SVM实验结果
针对上述的两种方法分别通过工业采集的小样本数据进行仿真实验(数据完全相同),实验结果如图5,表1所示。
图5 两种方法识别率比较
方法最高识别率平均识别率PCA+BP90%84%PCA+SVM90%90%
从表1中可以看出在解决小样本数据集、非线性识别的问题中,基于PCA特征提取并结合SVM分类算法的实验具有较高的识别率。
6 结语
本文利用数字图像处理技术对冻干粉针剂产品中存在的纤维、毛发、玻璃碎屑、黑点等异物进行检测分类。先探究了基于PCA特征提取并结合BP神经网路识别分类算法。经过工业采集到的冻干粉针剂不良品图片进行实验,平均识别率可以达到84%。为了更高效地检测并分类出不良品,又进行了基于PCA特征提取并结合SVM分类算法的实验,识别率可以达到90%。相比之下,对于小样本数据的分类识别,基于PCA特征提取并结合SVM分类算法效果较好。实验结果表明,采集的冻干粉针剂图片越多,图片清晰度越高,识别的准确度就越高。在下一步的学习过程中可以研究如何有效地选择SVM的参数并进行多分类的实验,或者探讨异物形状对异物识别率的影响。
[1] 肖方良,王耀南,章使,等.安瓿制剂中的可见异物实时视觉检测系统研究[J].计算机测量与控制,2010,18(2):295-298. XIAO Fangliang, WANG Yaonan, ZHANG Shi, et al. Research on an On-line Detection System for Foreign Substances in ampoule[J]. Computer Measurement & Control,2010,18(2):295-298.
[2] 葛继,王耀南,张辉,等.基于改进型PCNN的智能灯检机研究[J].仪器仪表学报,2009,30(9):1867-1873. GE Ji, WANG Yaonan, ZHANG Hui, et al. Study of intelligent inspection machine based on modified pulse coupled neural network[J]. Chinese Joumal of Scientific Instrument,2009,30(9):1867-1873.
[3] 鲁娟,王耀南,余洪山,等.大输液中可见异物智能在线检测系统设计[J].计算机测量与控制,2008,16(12):1802-1805. LU Juan, WANG Yaonan, YU Hongshan, et al. Research on Online Detection System for Foreign Substances in a Transfusing Bottle of Medicinal Solution[J]. Computer Measurement & Control,2008,16(12):1802-1805.
[4] Jawed A. Face Recognition Based on Principal Component Analysis[J]. International Journal of Image, Graphics and Signal Processing(IJIGSP),2013,5(2):38.
[5] He Lianghua. Multi-Dimension Principal Component Analysis based on face recognition[J]. The Journal of New Industrialization,2012,2(1):59-65.
[6] Shi Zhongke. Neural Network Control Theroy[C]//Northwestern Polytechnical Publishing House, Xi’an,1997.
[7] Watrous R L. Learning algorithms for connectionist network: applied gradient methods of nonlinear optimization[C]//Proceedings of IEEE InternationaI Conference on Neural Networks. IEEE Press, New York,1987:619-627.
[8] Shar S, Palmieri F, Datum M. OptimaIfiIteringaIgorithms for fast learning in feedforward neural networks[J]. Neural Networks,1992,5(5):779-787.
[9] Burges C. J. C. A Tutorial on Support Vector Machines for Pattern Recognition[J]. Data Mining and Knowledge Discovery,1998,2(2):121-167.
[10] Comes C., Vapnik V. Support Vector Networks[J]. Machine Learning,1995,20:273-295.
[11] 邓乃扬,田英杰.数据挖掘中的新方法一支持向量机[M].北京:科学出版社,2004:202-354. DENG Naiyang, TIAN Yingjie. A new method in data mining support vector machine[M]. Beijing: Science Press,2004:202-354.
Detection and Classification of the Foreign Matter of Lyophilized Powder Based on Machine Vision
DING Jinru MENG Zhigang YANG Yanhe
(Department of Mathematics and Computer Science, Changsha University, Changsha 410003)
In this paper, digital image processing technology is used to detect and classify the foreign matter of lyophilized powder. In order to more efficiently detect and classify the existing foreign matter in lyophilized powder such as fibers, hair, particles of glass and other visible foreign matter, BP neural network and support vector machine (SVM) algorithms together with principal component analysis (PCA) feature extraction are used to do classification and recognition. Through industrial small sample data simulation, test results show that both methods have good feasibility and practicability. By comparison it is showed that the recognition based on PCA and SVM algorithm is higher than the recognition based on PCA and BP algorithm.
inspection of obviously foreign matter, principal component analysis(PCA), BP neural network, support vector machine(SVM)
2016年7月8日,
2016年8月28日
丁金如,女,研究方向:模式识别。孟志刚,男,博士,博士后,讲师,研究方向:图像处理机器学习。杨燕鹤,男,研究方向:机器学习。
TP391
10.3969/j.issn.1672-9722.2017.01.007