发明名称 基于Gabor滤波器的印花织物疵点检测方法
摘要 本发明公开的基于Gabor滤波器的印花织物疵点检测方法:建立基本Gabor滤波器,提取Gabor参数;对提取的Gabor参数进行选择、交叉、变异,改Gabor参数,选择目标函数适应度高的参数,经交叉和变异对选择出的适应度高的参数变换产生适应度最高的参数;根据遗传算法选择的Gabor参数方向θ和中心频率u<sub>0</sub>,对得到的Gabor参数旋转变换提取有效的无瑕疵印花织物纹理特征信息;对待检测印花织物图像及无瑕疵印花织物图像进行Gabor滤波的卷积操作,提取待检测印花织物纹理背景信息;将待检测及无瑕疵印花织物图像均进行二值化,得到印花织物瑕疵检测结果。本发明的印花织物疵点检测方法能提高检测效率和检测准确度。
申请公布号 CN103955922B 申请公布日期 2017.01.18
申请号 CN201410155241.3 申请日期 2014.04.17
申请人 西安工程大学 发明人 景军锋;李鹏飞;杨盼盼;张宏伟;张蕾;张缓缓
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 西安弘理专利事务所 61214 代理人 罗笛
主权项 基于Gabor滤波器的印花织物疵点检测方法,其特征在于,具体按照以下步骤实施:步骤1、建立基本Gabor滤波器,提取Gabor参数,具体按照以下步骤实施:步骤1.1、建立2‑D‑Gabor滤波函数,具体按照以下方法实施:2‑D‑Gabor滤波函数分别给定了正弦波的频率和旋转的方向;2‑D‑Gabor滤波函数是经二维高斯函数调制的,其中涉及到空间域中的三个参数,三个参数分别为(σ<sub>x</sub>,σ<sub>y</sub>)和方向θ,方向θ以(0,π)范围将x和y旋转到x'和y'值,σ<sub>x</sub>为2‑D‑Gabor滤波函数沿x轴的方差,σ<sub>y</sub>为2‑D‑Gabor滤波函数沿y轴的方差;将二维空间域的2‑D‑Gabor滤波函数表示为:<maths num="0001"><math><![CDATA[<mrow><mi>g</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msub><mi>&pi;&sigma;</mi><mi>x</mi></msub><msub><mi>&sigma;</mi><mi>y</mi></msub></mrow></mfrac><mi>exp</mi><mo>{</mo><mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>&lsqb;</mo><mrow><msup><mrow><mo>(</mo><mfrac><msup><mi>x</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>x</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><msup><mi>y</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>y</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow><mo>&rsqb;</mo></mrow></mrow><mo>}</mo><mi>exp</mi><mrow><mo>(</mo><mi>j</mi><mn>2</mn><msub><mi>&pi;u</mi><mn>0</mn></msub><msup><mi>x</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0001068290350000011.GIF" wi="1836" he="223" /></maths><maths num="0002"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msup><mi>x</mi><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msup><mi>y</mi><mo>&prime;</mo></msup></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>sin</mi><mi>&theta;</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi></mrow></mtd><mtd><mrow><mi>cos</mi><mi>&theta;</mi></mrow></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>x</mi></mtd></mtr><mtr><mtd><mi>y</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0001068290350000012.GIF" wi="750" he="199" /></maths>将公式(1)变化后得到的2‑D‑Gabor滤波函数具体算法如下:g(x,y)=g<sub>e</sub>(x,y)+jg<sub>o</sub>(x,y)     (2);<maths num="0003"><math><![CDATA[<mrow><msub><mi>g</mi><mi>e</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mi>exp</mi><mo>{</mo><mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>&lsqb;</mo><mrow><msup><mrow><mo>(</mo><mfrac><msup><mi>x</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>x</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><msup><mi>y</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>y</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow><mo>&rsqb;</mo></mrow></mrow><mo>}</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mn>2</mn><msub><mi>&pi;u</mi><mn>0</mn></msub><msup><mi>x</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0001068290350000013.GIF" wi="1534" he="246" /></maths><maths num="0004"><math><![CDATA[<mrow><msub><mi>g</mi><mi>o</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mi>exp</mi><mo>{</mo><mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>&lsqb;</mo><mrow><msup><mrow><mo>(</mo><mfrac><msup><mi>x</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>x</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><msup><mi>y</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>y</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow><mo>&rsqb;</mo></mrow></mrow><mo>}</mo><mi>sin</mi><mrow><mo>(</mo><mn>2</mn><msub><mi>&pi;u</mi><mn>0</mn></msub><msup><mi>x</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0001068290350000021.GIF" wi="1534" he="255" /></maths>其中,<img file="FDA0001068290350000022.GIF" wi="595" he="144" />u<sub>0</sub>表示中心频率;将式(1)作为建立的基础2‑D‑Gabor滤波函数,式(3)所示的2‑D‑Gabor滤波函数的实部作为偶对称Gabor滤波器来检测印花织物的斑点部分;式(4)所示的2‑D‑Gabor滤波函数的虚部作为奇对称Gabor滤波器,用于检测印花织物的边缘部分;步骤1.2、将步骤1.1建立的2‑D‑Gabor滤波函数的实部构建Gabor滤波器,具体按照以下方法实施:将步骤1.1中建立的2‑D‑Gabor滤波函数的实部用于进行印花织物瑕疵检测,Gabor滤波器的2D‑Gabor滤波函数具体如下算法实施:<maths num="0005"><math><![CDATA[<mrow><msub><mi>g</mi><mi>e</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mi>exp</mi><mo>{</mo><mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>&lsqb;</mo><mrow><msup><mrow><mo>(</mo><mfrac><msup><mi>x</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>x</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><msup><mi>y</mi><mo>&prime;</mo></msup><msub><mi>&sigma;</mi><mi>y</mi></msub></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow><mo>&rsqb;</mo></mrow></mrow><mo>}</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mn>2</mn><msub><mi>&pi;u</mi><mn>0</mn></msub><msup><mi>x</mi><mo>&prime;</mo></msup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068290350000023.GIF" wi="1386" he="251" /></maths><maths num="0006"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msup><mi>x</mi><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msup><mi>y</mi><mo>&prime;</mo></msup></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi></mrow></mtd><mtd><mrow><mo>-</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi></mrow></mtd><mtd><mrow><mi>cos</mi><mi>&theta;</mi></mrow></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>x</mi><mo>-</mo><msub><mi>T</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mo>-</mo><msub><mi>T</mi><mn>2</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0001068290350000024.GIF" wi="774" he="175" /></maths>σ<sub>y</sub>=λσ<sub>x</sub>    (5);其中,T<sub>1</sub>和T<sub>2</sub>是分别沿x轴和y轴的转换参数,λ是x轴和y轴之间的方差比,2‑D‑Gabor滤波函数是通过旋转和缩放基本Gabor函数得到的;步骤1.3、提取Gabor参数:从经步骤1.2构造的Gabor滤波器中提取Gabor参数,提取的Gabor参数为:ω,T<sub>1</sub>,T<sub>2</sub>,λ,θ,u<sub>0</sub>;步骤2、利用遗传算法,根据人体基因对经步骤1提取的Gabor参数依次进行选择、交叉、变异,改变经步骤1得到的Gabor参数;然后选择目标函数适应度高的参数,经交叉和变异操作对选择出的适应度高的参数进行变换,产生适应度最高的参数,具体按照以下步骤实施:步骤2.1、对经步骤1提取出的Gabor参数进行编码:遗传算法中,每个遗传算法Gabor参数的个体由48位二进制代码组成;48个'0'表示最小的二进制代码参数个体;48个'1'表示最大的二进制代码参数个体;群体表示所有参数个体的集合;步骤2.2、构造目标函数E:遗传算法中的目标函数E是评估Gabor参数的标准,将2‑D‑Gabor滤波函数与标准印花织物差的最小值来评估Gabor参数,用于确定最优的Gabor参数;最优的Gabor滤波器拥有与无瑕疵印花织物图像的灰度水平分布最相似的包络,符合印花织物纹理特征信息,为了构造出一个最优的Gabor滤波器,目标函数E具体如下算法实施:<maths num="0007"><math><![CDATA[<mrow><mi>E</mi><mo>=</mo><munder><mi>min</mi><mrow><mi>&omega;</mi><mo>,</mo><msub><mi>T</mi><mn>1</mn></msub><mo>,</mo><msub><mi>T</mi><mn>2</mn></msub><mo>,</mo><mi>&lambda;</mi><mo>,</mo><mi>&theta;</mi><mo>,</mo><msub><mi>u</mi><mn>0</mn></msub></mrow></munder><mo>&lsqb;</mo><mrow><munder><mo>&Sigma;</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow></munder><msup><mrow><mo>(</mo><mrow><mi>I</mi><mi>M</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow><mo>-</mo><msub><mi>&omega;g</mi><mi>e</mi></msub><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mn>2</mn></msup></mrow><mo>&rsqb;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0001068290350000031.GIF" wi="1383" he="219" /></maths>上式中,IM是输入的无瑕疵印花织物图像,ω是Gabor系数用来协调无瑕疵印花织物图像的灰度值IM(x,y)和2‑D‑Gabor函数实部的结果之间的相关性;在优化的过程中,方差比被限制在[1.0,2.0];径向频率具有良好的实验结果的范围是[1.9,5.7];Gabor滤波器的高斯包络窗口的大小为1;基于Gabor函数的平衡性,方向θ的范围是[0,π];步骤2.3、选择Gabor参数个体;步骤3、根据遗传算法选择的Gabor参数的方向θ和中心频率u<sub>0</sub>,对经步骤2得到的Gabor参数进行旋转变换,经过旋转变换后,提取有效的无瑕疵印花织物的纹理特征信息;步骤4、分别对待检测印花织物图像及无瑕疵印花织物图像进行Gabor滤波的卷积操作,提取待检测印花织物纹理背景信息;步骤5、将经步骤4处理的待检测印花织物图像及无瑕疵印花织物图像分别进行二值化处理,得到印花织物瑕疵检测结果。
地址 710048 陕西省西安市碑林区金花南路19号