1.一种织物疵点自动检测方法包含模型训练阶段和检测阶段两步步骤一,模型训练阶段有如下实现步骤:n
11,把样本库中图像的长、宽的像素数扩展为2的正方形,扩展部分以0填充;
12,对图像进行B样条小波变换,具体实现如下:
12.1对图像进行B样条小波变换,分别得到对角线方向子图HH、竖直方向子图HL、水平方向子图LH和低频子图LL四幅图像。小波变换快速算法如式(1)如示:j
h,g, 为小波滤波器,其中滤波器 表示h的时序反转,即 m为横坐标,n为纵坐标,k为小波横向宽度,p为小波纵向宽度,j为小波分解层数;
12.2对LL图像进行二进抽取,得到长、宽为2n-1的图像;
12.3对12.2得到的图像重复12.1、12.2操作,直到结果为长、宽都为26的图像;
13,建立深度为5层的神经网络,每层的神经元个数分别为4096、1000、500、200和50;
14,利用已有的图像库,对步骤13建立的网络用对比分歧快速算法进行学习,得到网络的初始权值;对比分歧算法的计算过程为输入:训练样本x0,学习率ε,隐藏层数m初始化:可见层单元初始状态v1=x0,可见层和隐藏层之间的连接权重w、可见层的偏置a和隐藏层的偏置b为随机的较小数值;
备注:隐藏层的P(h2=1|v2)是隐藏层各单元P(h2i=1|v2)的向量表示,为sigmoid激活函数;
训练过程:
Forj=1,2,…,m(对隐藏层单元j)计算
从P(h1j=1|v1)采样h1j∈{0,1}End
For i=1,2,…,n(对可见层单元i)计算
从P(h2i=1|h1)采样v2i∈{0,1}End
For j=1,2,…,m(对隐藏层单元j)计算
End
更新参数:
w←w+ε(h1v'1-P(h2=1|v2)v'2) (5)a←a+ε(v1-v2) (6)b←b+ε(h1-P(h2=1|v2)) (7)
15,将上面建立的网络展开连接成新的网络,且分成encoder和decoder两部分,并用步骤14得到的权值给这个新网络赋初值;
16,对得到的权值,用BP算法进行微调,期望输出等于输入。BP算法的计算过程为:
16.1前向传导计算,得出每一层神经元的激活值L2,L3,…,Lnl
16.2对输出层nl计算残差δ:(nl) (nl) (nl)δ =-(y-a )·f'(z ) (8)(nl) (nl)
其中,y为期望输出,a 为实际输出,f'为激活函数,z 为输入;
16.3对以下各层l=nl-1,nl-2,…,2,计算(l) (l) T (l) (l)δ =((W )δi )·f'(z ) (9)其中,W为权值矩阵;
16.4计算所需的偏导数:
步骤二,织物检测阶段,有如下实现步骤:
21,获得待检测织物图像,并转化为8位灰度表示方式;
n
22,把图像的长、宽扩展为2的正方形,扩展部分以0填充;
23,对图像进行多次B样条小波变换,具体实现过程同模型训练阶段步骤12;
24,把步骤23获得的图像输入到建立的深度神经网络模型中,从输出端得到重构的织物图像;
25,把得到的重构图像与输入图像作差运算,得到织物疵点图像检测结果;
26,求取结果图像中纹理的面积、长度、宽度、中心矩等特征,据此判断是否有疵点,为何种疵点。