基于SIFT算法的织物图像拼接技术研究
2019-09-19曹桂红欧阳颖国庆
曹桂红 欧阳颖 国庆
摘要:为了解决目前在织物疵点智能检测方面只能对简单织物进行检测的问题,无法对复杂纹理与织物疵点的区分,利用SIFT算法对织物图像进行特征提取、配准和拼接,得到完整织物纹理图像,提出SIFT特征匹配并设计出剔除误匹配对策略。实验结果显示,该算法可以获得拼接后完整的织物图像,显著提升了织物疵点图像的特征点的匹配数量,误匹配降低,拼接效果好。
关键词:织物图像;SIFT;特征提取;图像拼接
中图分类号:TP391.4 文献标识码:A
文章编号:1009-3044(2019)20-0201-02
开放科学(资源服务)标识码(OSID):
织物在检测过程中,由于受到外界环境以及拍摄照片时可能存在平移、旋转、尺度不一样的情况,导致在检测过程中误检率高,SIFT算法具有较好的鲁棒性,引入到织物疵点检测中,通过对图像特征点提取、配准、拼接,将具有部分重叠区域的图像进行无缝拼接,从而得到包含完整织物纹理图像信息的全大画幅或宽视觉图像。
1 基本理论
图像的拼接过程主要是通过两个或多个摄像设备获取的图片,这些图片在拍摄过程中具有一定重叠度,分析这些拍摄到的有重叠度的图像,使用SIFT算法对待拼接的两幅图像进行特征提取和特征匹配,因为有误配点的存在,通过对图像间变换参数和操作的求解,整合处理两幅图像的拼接缝隙,最后对图像进行无缝拼接。目前已经应用于机器视觉、遥感等领域。
拼接的核心技术是图像配准和融合图像。图像配准算法主要有基于特征的算法和基于区域的算法。目前常用的一类配准算法是基于特征的算法,这类算法是针对图像中的明显特征计算图像间的变换矩阵。其中计算速度快,配准效率高的检测算法,其中通过SIFT算法对图像特征点提取、配准。文献[1]总结了现有基于尺度不变的特征转换检测方法,并提出基于尺度不变特征变换算法(Scale invariant Feature Transform, SIFT)。文献[2]对算法进行改进,验证其对图像缩放、旋转甚至仿射变换保持不变性。
2 基于SIFT特征点匹配的图像拼接算法
2.1 SIFT算法
经典SIFT算法David Lowe 等人,于2004年,对图像进行特征提取时主要由四部分组成:对尺度空间极值的检测;二是精确定位关键点;三是计算特征点方向;四是生成特征点描述符。通过对尺度空间检测出极值来确定特征点的尺度和位置,为实现图像的尺度变换可使用高斯卷积核来解决,为生成高斯差分尺度空间(Difference of Gaussian)使用不同尺度的差分核和圖像进行卷积 [3]。
2.1.1 尺度空间检测
根据相关理论可知,作为唯一的尺度空间内核函数就是高斯函数,通过一个尺度可变的高斯函数与织物图像进行点积运算来构造一个图像的尺度空间函数[4]。
(2)式中为高斯核函数。为了在尺度空间中有效地检测稳定的关键点位置,可使用高斯差分(Difference of Gaussian,DOG)函数与输入图像进行卷积运算得到[D(x,y,σ)],并在其中寻找尺度空间极值点[5]。即:
[D(x,y,σ)]可以通过两个相邻尺度的差分得到,初始图像的增量式与高斯函数进行卷积,就产生了由一个常量乘积因子[k]分开而这两个相邻尺度空间的一些图像,使用高斯函数[D(x,y,σ)]来进行尺度近似归一化处理来实现在尺度空间中更有效地检测出稳定的特征点 [6]。
为了检测[D(x,y,σ)]的局部最大值和最小值,在高斯尺度空间里,通过高斯平滑和降采样等相关处理,对每个像素点与同一层的8 个相邻点及上下相邻层的每 9 个相邻点,共 26 个像素点进行比较,只有当采样点大于所有的领域点或者小于所有的领域点,该点才会被选中,获得尺度空间和图像空间的局部极值点后,随后标记为局部特征点[7]。
2.1.2 精确关键点定位去除不稳定特征点
关键点的选择依赖于其稳定性的度量,一旦通过将像素与其领域进行比较而找到的候选关键点,下一步就是进行与其邻近数据的精细匹配,分别涉及位置、尺度和主曲率。这样就允许剔除低对比度或者靠近边缘的像素点。在高斯差分函数的弱定义峰值,在图像边缘处存在大的主曲率,而在垂直方向上的主曲率相对较小[8]。主曲率一般可通过Hessian矩阵来计算,即SIFT特征检测通过特征点的Hessian矩阵去除边缘点,提高对噪声的鲁棒性。Hessian矩阵定义如下:
H的特征值[α]代表x方向上的梯度,[β]代表y 方向上的梯度,其中[Tr(H)]为Hessian矩阵的迹,[Det(H)]表示Hessian矩阵的行列式,具体如下:
若上述不等式不满足,则检测到的特征点被判断为边缘点,直接删除。其中[r]为经验值,参考值为[r]=10。这意味着剔除主曲率比率大于10的关键点。一个极值点经过精确定位与边缘点的判断后才能被确定为特征点。
2.1.3 特征点方向计算
为保证图像在尺度空间和二维空间都能获得极值,需要比较每个像素点与相邻上一层和下一层的尺度空间,以及同层内的 8 个像素点,从而维持它的稳定性和独特性[9]。为提高鲁棒性可通过此极值点相邻上一个及下一个尺度空间域上的像素点的梯度,由此计算出相应的方向 [θ(x,y)]和模值 [m(x,y)]来实现。为确定特征点的方向,可通过特征点邻域像素的梯度方向分布,由特征点的梯度幅值[m(x,y)]和方向[θ(x,y)]计算公式如下:
其中: L 表示检测特征点的尺度,通过此方法可使获取的SIFT特征点具有旋转不变形特性。
算法中需要在除去第一层尺度和最后一层尺度空间外的多个尺度空间内,构建128 维的描述向量,从而保证特征点的稳定性能,整个过程提高了特征点的稳定性,但同时也增加了计算量,从而降低了运动目标图像拼接的实时性。
2.1.4 特征点描述
每个特征点都具有方向、位置、尺度 3 个信息,这些信息均以特征点为中心,均匀分成4×4 个邻域子块,每个子块的像素点都含有8 个方向的信息向量,即每个特征点的特征描述有128 个方向。因此这128个特征向量可以准确地描述所有的特征点。
3 织物疵点图像拼接实验结果与比较
实验环境为Windows10操作系统,软件平台为Matlab2017b,运行环境是, Cpu Intel Core? 2.40GHZ,内存4 G。
将不同摄像头采集到的待测织物图像,分别经过图像预处理后,再通过SIFT匹配算法对其进行特征点提取,然后进行匹配和配准,最后拼接出完整的织物疵点图像。
两台摄像机采集的同一个织物的两个部分的织物图像如图1所示。针对圆形疵点进行实验,通过SIFT算法对带有圆形疵点的两幅织物图像进行特征点提取,获得待拼接图像的特征点向量,然后对两幅图像提取的特征点进行配准。 特征点的匹配实验结果如图2所示。最后得到的拼接效果如图3所示。
后续又分别对、条形疵点和不规则疵点进行检测、配准和拉接测试,具体数据如表1所示。
4 结语
从上述实验结果可知,对于圆形疵点通过本文的基于SIFT的织物图像拼接算法,将不同角度摄像机拍摄的局部的织物疵点图像拼接成一幅完整的织物疵点图像,为后续的织物疵点检测奠定了基础。
参考文献:
[1] Lowe D G.Object Recognition from Local Scale-invariant Features [C]//Proc.of ICCV99.Corfu,Greece:IEEE Press,1999:1150-1157.
[2] Lowe D G.Distinctive Image Features from Scaleinvariant Keypoints[J].International Journal of Computer Vision,2004,60 (2):91-110.
[3]Yiquan Wu,Hong Wan,Zhilong Ye.Feature Extraction of Fabric Defects Based on Complex Contourlet Transform and Principal Component Analysis[J].Journal of Donghua University(English Edition),2013,30(04):282-286.
[4] 杜磊.智能自動验布机的研究[D].东华大学,2014.
[5] 李鑫.基于多目视觉的布匹瑕疵检测系统硬件部分设计[J].机械研究与应用,2011,24(05):136- 137 ,140.
[6] 高广帅.基于低秩稀疏矩阵分解的织物疵点检测算法研究[D].中原工学院,2017.
[7] 温智婕.图像纹理特征表示方法研究与应用[D].大连:大连理工大学,2008.
[8] 徐园园,刘伟斌,郑力新.几种织物疵点检测算法的设计与比较[J].控制工程,2016,23(05):777- 782.
[9] 黎丹.织物疵点特征提取主要算法比较[J].毛纺织科技,2011,39(1):57-62.
【通联编辑:代影】