发明名称 基于B样条小波和深度神经网络的织物疵点检测方法
摘要 一种织物疵点自动检测方法包含深度神经网络模型训练和疵点图像检测两部分。深度神经网络模型训练主要是经过已有样本库的学,实现在输入疵点图像的前提下,得到样本无疵点的重构图像。疵点图像检测如图所示。待测织物图像首先经过多次小波变换,得到保留大部分纹理信息的压缩图像并保存。然后把压缩图像输入到训练好的深度神经网络输入端,进行计算,在输出端得到重构的无疵点图像。随后把重构图像与保存的压缩图像做差值运算,得到只含有疵点的图像。最后通过对疵点图像的特征提取,分析出是否含有疵点及疵点的种类等。
申请公布号 CN104751472A 申请公布日期 2015.07.01
申请号 CN201510168873.8 申请日期 2015.04.10
申请人 浙江工业大学 发明人 王宪保;王辛刚;陈德富;顾勤龙;何文秀;姚明海
分类号 G06T7/00(2006.01)I;G06N3/02(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 一种织物疵点自动检测方法包含模型训练阶段和检测阶段两步步骤一,模型训练阶段有如下实现步骤:11,把样本库中图像的长、宽的像素数扩展为2<sup>n</sup>的正方形,扩展部分以0填充;12,对图像进行B样条小波变换,具体实现如下:12.1对图像进行B样条小波变换,分别得到对角线方向子图HH、竖直方向子图HL、水平方向子图LH和低频子图LL四幅图像。小波变换快速算法如式(1)如示:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>a</mi><mrow><mi>n</mi><mo>,</mo><mi>m</mi></mrow><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>k</mi><mo>,</mo><mi>p</mi></mrow></munder><mover><msub><mi>h</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mover><msub><mi>h</mi><mi>p</mi></msub><mo>&OverBar;</mo></mover><msubsup><mi>a</mi><mrow><mi>n</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>k</mi><mo>,</mo><mi>m</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>p</mi></mrow><mi>j</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mrow><mi>n</mi><mo>,</mo><mi>m</mi></mrow><mrow><mi>j</mi><mo>+</mo><mn>1,1</mn></mrow></msubsup><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>k</mi><mo>,</mo><mi>p</mi></mrow></munder><msub><mover><mi>h</mi><mo>&OverBar;</mo></mover><mi>k</mi></msub><msub><mover><mi>g</mi><mo>&OverBar;</mo></mover><mi>p</mi></msub><msubsup><mi>a</mi><mrow><mi>n</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>k</mi><mo>,</mo><mi>m</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>p</mi></mrow><mi>j</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mrow><mi>n</mi><mo>,</mo><mi>m</mi></mrow><mrow><mi>j</mi><mo>+</mo><mn>1,2</mn></mrow></msubsup><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>k</mi><mo>,</mo><mi>p</mi></mrow></munder><msub><mover><mi>g</mi><mo>&OverBar;</mo></mover><mi>k</mi></msub><msub><mover><mi>h</mi><mo>&OverBar;</mo></mover><mi>p</mi></msub><msubsup><mi>a</mi><mrow><mi>n</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>k</mi><mo>,</mo><mi>m</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>p</mi></mrow><mi>j</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>d</mi><mrow><mi>n</mi><mo>,</mo><mi>m</mi></mrow><mrow><mi>j</mi><mo>+</mo><mn>1,3</mn></mrow></msubsup><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>k</mi><mo>,</mo><mi>p</mi></mrow></munder><msub><mover><mi>g</mi><mo>&OverBar;</mo></mover><mi>k</mi></msub><msub><mover><mi>g</mi><mo>&OverBar;</mo></mover><mi>p</mi></msub><msubsup><mi>a</mi><mrow><mi>n</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>k</mi><mo>,</mo><mi>m</mi><mo>-</mo><msup><mn>2</mn><mi>j</mi></msup><mi>p</mi></mrow><mi>j</mi></msubsup></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000696975760000011.GIF" wi="1272" he="479" /></maths>h,g,<img file="FDA0000696975760000013.GIF" wi="84" he="81" />为小波滤波器,其中滤波器<img file="FDA0000696975760000014.GIF" wi="58" he="70" />表示h<sup>j</sup>的时序反转,即<img file="FDA0000696975760000015.GIF" wi="198" he="83" />m为横坐标,n为纵坐标,k为小波横向宽度,p为小波纵向宽度,j为小波分解层数;12.2对LL图像进行二进抽取,得到长、宽为2<sup>n‑1</sup>的图像;12.3对12.2得到的图像重复12.1、12.2操作,直到结果为长、宽都为2<sup>6</sup>的图像;13,建立深度为5层的神经网络,每层的神经元个数分别为4096、1000、500、200和50;14,利用已有的图像库,对步骤13建立的网络用对比分歧快速算法进行学习,得到网络的初始权值;对比分歧算法的计算过程为输入:训练样本x<sub>0</sub>,学习率ε,隐藏层数m初始化:可见层单元初始状态v<sub>1</sub>=x<sub>0</sub>,可见层和隐藏层之间的连接权重w、可见层的偏置a和隐藏层的偏置b为随机的较小数值;备注:隐藏层的P(h<sub>2</sub>=1|v<sub>2</sub>)是隐藏层各单元P(h<sub>2i</sub>=1|v<sub>2</sub>)的向量表示,<img file="FDA0000696975760000016.GIF" wi="367" he="134" />为sigmoid激活函数;训练过程:Forj=1,2,…,m(对隐藏层单元j)计算<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>h</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mo>=</mo><mn>1</mn><mo>|</mo><msub><mi>v</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>=</mo><mi>&sigma;</mi><mrow><mo>(</mo><msub><mi>b</mi><mi>j</mi></msub><mo>+</mo><munder><mi>&Sigma;</mi><mi>i</mi></munder><msub><mi>v</mi><mrow><mn>1</mn><mi>i</mi></mrow></msub><msub><mi>w</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000696975760000017.GIF" wi="1574" he="156" /></maths>从P(h<sub>1j</sub>=1|v<sub>1</sub>)采样h<sub>1j</sub>∈{0,1}EndFor i=1,2,…,n(对可见层单元i)计算<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>h</mi><mrow><mn>2</mn><mi>i</mi></mrow></msub><mo>=</mo><mn>1</mn><mo>|</mo><msub><mi>h</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>=</mo><mi>&sigma;</mi><mrow><mo>(</mo><msub><mi>a</mi><mi>i</mi></msub><mo>+</mo><munder><mi>&Sigma;</mi><mi>i</mi></munder><msub><mi>w</mi><mi>ij</mi></msub><msub><mi>h</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000696975760000018.GIF" wi="1566" he="173" /></maths>从P(h<sub>2i</sub>=1|h<sub>1</sub>)采样v<sub>2i</sub>∈{0,1}EndFor j=1,2,…,m(对隐藏层单元j)计算<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>h</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub><mo>=</mo><mn>1</mn><mo>|</mo><msub><mi>v</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mi>&sigma;</mi><mrow><mo>(</mo><msub><mi>b</mi><mi>j</mi></msub><mo>+</mo><munder><mi>&Sigma;</mi><mi>i</mi></munder><msub><mi>v</mi><mrow><mn>2</mn><mi>i</mi></mrow></msub><msub><mi>w</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000696975760000021.GIF" wi="1573" he="155" /></maths>End更新参数:w←w+ε(h<sub>1</sub>v'<sub>1</sub>‑P(h<sub>2</sub>=1|v<sub>2</sub>)v'<sub>2</sub>)       (5)a←a+ε(v<sub>1</sub>‑v<sub>2</sub>)        (6)b←b+ε(h<sub>1</sub>‑P(h<sub>2</sub>=1|v<sub>2</sub>))       (7)15,将上面建立的网络展开连接成新的网络,且分成encoder和decoder两部分,并用步骤14得到的权值给这个新网络赋初值;16,对得到的权值,用BP算法进行微调,期望输出等于输入。BP算法的计算过程为:16.1前向传导计算,得出每一层神经元的激活值L<sub>2</sub>,L<sub>3</sub>,…,L<sub>nl</sub>16.2对输出层nl计算残差δ:δ<sup>(nl)</sup>=‑(y‑a<sup>(nl)</sup>)·f'(z<sup>(nl)</sup>)       (8)其中,y为期望输出,a<sup>(nl)</sup>为实际输出,f'为激活函数,z<sup>(nl)</sup>为输入;16.3对以下各层l=n<sub>l</sub>‑1,n<sub>l</sub>‑2,…,2,计算δ<sup>(l)</sup>=((W<sup>(l)</sup>)<sup>T</sup>δ<sub>i</sub><sup>(l)</sup>)·f'(z<sup>(l)</sup>)      (9)其中,W为权值矩阵;16.4计算所需的偏导数:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mo>&dtri;</mo><msup><mi>W</mi><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msup></msub><mi>J</mi><mrow><mo>(</mo><mi>W</mi><mo>,</mo><mi>b</mi><mo>;</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>&delta;</mi><mrow><mo>(</mo><mi>l</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msup><msup><mrow><mo>(</mo><msup><mi>a</mi><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msup><mo>)</mo></mrow><mi>T</mi></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000696975760000022.GIF" wi="1350" he="117" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mo>&dtri;</mo><msup><mi>b</mi><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msup></msub><mi>J</mi><mrow><mo>(</mo><mi>W</mi><mo>,</mo><mi>b</mi><mo>;</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>&delta;</mi><mrow><mo>(</mo><mi>l</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000696975760000023.GIF" wi="1323" he="95" /></maths>步骤二,织物检测阶段,有如下实现步骤:21,获得待检测织物图像,并转化为8位灰度表示方式;22,把图像的长、宽扩展为2<sup>n</sup>的正方形,扩展部分以0填充;23,对图像进行多次B样条小波变换,具体实现过程同模型训练阶段步骤12;24,把步骤23获得的图像输入到建立的深度神经网络模型中,从输出端得到重构的织物图像;25,把得到的重构图像与输入图像作差运算,得到织物疵点图像检测结果;26,求取结果图像中纹理的面积、长度、宽度、中心矩等特征,据此判断是否有疵点,为何种疵点。
地址 310014 浙江省杭州市下城区潮王路18号