目前,中国已经发展成为世界重要纺织品产业基地[1],每年都有大量的布制品出口海外,纺织业已经成为我国经济必不可少的一部分。近年来,随着计算机视觉等领域的快速发展和图像局部特征提取算法的不断探索[2-3],图像处理技术已经越来越普遍应用于纺织业中。如今,纺织制品生产的大多数环节都已经实现自动化,如布匹瑕疵检测[4]、布匹质量检测[5]等。这些技术的应用使得纺织业的生产力以及产品质量较于之前已经有很大的提高。但很长时间以来,从布匹库里检索布料这个工作一直由人工完成。人工检索布匹存在以下两个问题:一是准确率不受保证,人工匹配出的布料会受工人疲劳程度和经验等主观因素的影响,很难得到材质一致的布匹,可能会对纺织业制品质量产生影响;二是耗时,人工从布料库中找到一样的布匹需要耗费大量时间,影响企业生产效率。
为了能提高布匹检索的精确度,给企业带来更多的经济效益,本文提出了一种基于尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)和局部聚合向量(Vector of Locally Aggregated Descriptors, VLAD)特征编码的布匹检索算法。本文的创新性是在提取图片SIFT特征基础上,进行VLAD特征编码,对得到的特征进行压缩和归一化处理,大大减少图片相似度检测的运算量,提高算法效率。
本文的剩余部分安排如下:第2部分介绍相关工作,第3部分介绍本文提出的算法,第4部分为实验数据及其分析,第5部分为结论。
Choonj和Jose[6]提出一种基于神经网络的布匹纹理识别和分类的方法,该方法使用两种多层感知机模型对纹理进行识别和分类。Daiguo Deng[7]等提出了基于CNN模型的布料匹配算法,该算法在CNN模型的基础上引入了焦点排序,让CNN模型更好的适应于织物图像检索,从而完成布匹检索。
图像特征提取算法是决定布匹检索准确性的关键因素,因此布匹检索除了基于深度学习的研究,还有基于传统特征提取的研究,如刘嘉唯[8]等提出了融合颜色与LBP纹理特征的布匹色卡图像匹配算法,该算法先通过布匹颜色特征进行布匹预匹配,再依据布匹纹理特征进行检索。类似的,张雪芹[9]等提出了一种基于SURF形状特征和K-Means颜色聚类的布料图像匹配算法,该算法将得到的颜色特征相似度和形状特征相似度进行加权融合,在根据融合后的加权相似度进行检索。
本文算法主要包括两个关键步骤:基于尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)的特征提取和局部聚合向量(Vector of Locally Aggregated Descriptors, VLAD)的特征编码。SIFT[10]特征具有良好的稳定性,在旋转、尺度变化的情况下具有鲁棒性且具有很好的特征表达能力,能够表示两张图像中细小的差别,符合布匹检索具体应用场景。但是,直接用SIFT特征对图像进行特征表达的时候,存在一个问题:不同的图像其提取到SIFT特征点数目是不一致,无法直接计算两个不同维度之间的特征之间的欧式距离,进而导致后续的匹配无法进行。为了解决这个问题,本文引入VLAD[11]编码将图像的特征提取向量用一个固定维数且损失信息小的编码来表示,完成快速且准确的布匹检索。
本文中采用SIFT特征来进行图像的特征表达,SIFT 特征的提取分为以下四个步骤:
(1)检测在尺度空间的极值点。设X=(x, y)表示图像I上的某一像素点,则其在不同尺度空间下的图像表示L(x,y,σ)定义为:
L(x,y,σ)=G(x,y,σ)*I(x,y)
(1)
(2)
在尺度空间金字塔3×3×3的立体邻域内进行非极大值抑制,当该像素点比上一尺度、下一尺度及本尺度周围的26个邻域值都大或者都小时,该像素点成为极值点。
(2)Hessian矩阵确认特征点。过程1提取到一个极值点X=(x, y),该点在尺度σ下的Hessian 矩阵H(X,σ)定义为
(3)
式中Dxx、Dyy、Dxy分别表示该极值点经x、y及x-y方向上的方框滤波后的表示,当极值点X满足
(4)
时保留其作为图像的特征点,否则舍去,其中r为人工设定的阈值。本文后续实验中取r=10,其他配置参考文献[10]。
(3)确定特征点主方向。以特征点为圆心,以3×1.5σ为半径的圆形区域内计算特征点X=(x, y)的梯度幅值
(5)
梯度幅角
(6)
将360°均等分成8个方向,即每个方向45°,将公式(5)、(6)计算所得到的圆形区域内的所有像素点梯度向量映射到这8个方向,得到梯度向量方向直方图。选择直方图峰值的方向作为特征点的主方向,若该直方图中存在主方向峰值的80%的其他峰值,保留该方向,并将其设为特征点的辅方向。
(4)关键点SIFT 描述子的生成。以特征点为中心,以特征点方向为坐标轴方向,选取特征点周围16×16的方框区域, 将此区域均等划分成4×4个子区域。在每个子区域上计算8个方向的累加值, 最终每个特征点都能产生一个长度为4×4×8=128的SIFT特征描述子。
如图1所示,VLAD特征编码主要包括两个关键步骤:视觉词典的生成和特征向量局部聚合,具体步骤如下:
3.2.1 视觉词典的生成
图1(a)展示了本文基于K-means算法[12]的视觉词典生成过程。假定K表示视觉词典中视觉词的个数,O表示训练集的布匹图像样数,Ni表示第i张图像生成的特征点个数,N=N1+N2+…+NO,则基于K-means算法的视觉词典生成的具体步骤如下:
(1)提取所有训练集样本的SIFT特征,得到所有图像的SIFT特征点集合B={x1, x2,…, xN}。
(2)从特征点集合B中随机选取K个点Ck (k=1,2,…,K)作为初始视觉词。
(3)分别计算集合B中其他点到视觉词Ck的欧式距离,并将其归类到与其距离最近的视觉词中。
(4)根据归类结果重新计算每一类的视觉词,更新Ck(k=1,2,…,K),当视觉词Ck不再发生变化或满足
(7)
则聚类结束,否则迭代过程(2)、(3),最终得到视觉词典C={Ck |k=1, 2, 3, …, K}。式(4)中NUMk为每一类的数据点个数, SSE为阈值,本文设置SSE=100。
3.2.2 特征向量局部聚合
图1(b)展示了本文的SIFT特征向量局部聚合过程,具体步骤如下:
(1)提取样本图像A的SIFT特征,得到其特征点集Q={Qn|n=1, 2, 3, …, N1},其中,N1分别为样本图像A的SIFT特征点数;
(2)对特征点集Q做量化处理,即:首先,使用KDTree[13]算法,分别计算Q中各个特征点到各个视觉词间的欧式距离;然后,将各个特征点归类到与其距离最近的视觉词中;最后,得到量化后的特征点集合qk(k=1,2,…,K)。qk表示第k个视觉词Ck上对应的特征点集合。
(3)计算第k个视觉词Ck上的矢量累积残差和,即计算
(8)
其中qik表示qk集合的第i个元素,从而得到每个视觉词的累积残差和集U=V(Ck),(k=1,2,…,K), 再将这K个128维的残差累加和串联起来,获得图像A的VLAD编码。
本文采用欧氏距离[14]作为布匹相似度的度量。图像检索的步骤如下:
(1)设待检索布匹图像的VLAD特征编码向量为Y, 数据库中的布匹图像集的VLAD特征编码向
图1 VLAD特征编码示意图
Fig.1 The schematic diagram of VLAD feature coding
量集Z={ Zn |n=1, 2, 3, …, O},其中Zn为数据库中的布匹图像集第n张图像的VLAD特征编码向量,O为布匹图像集中的图片数量。
(2)依次计算待检索图像Y和数据库图库中的图像Zn之间的欧式距离为:
d(Y,Zn)=||Y-Zn||2
(9)
(3)对欧式距离集进行排序,返回图像集Y中与待检索图片Zn欧式距离最小的图片,即为检索结果。
本实验的环境如下:操作系统为Windows 10,开发环境为MATLAB2017,CPU为Ineter(R)Xeon(R)CPU e3-1505M v5 @2.80 GHZ,内存64 GB。
本实验数据集的原始图像采集于泉州某布匹工厂,使用高清摄像机,拍摄每种布匹的正反面,因此,原始图像库包含972种布匹的1944张布匹图像。图2是部分来自原始图像库的图像。为了模拟真实的作业环境(工人会从不同的角度对布匹进行识别),我们对图像进行处理,即:首先,将原始图像随机旋转12次,然后每次旋转的图像上随机裁剪两张大小为256×256像素图片,分别作为探寻(probe)和注册库(gallery)图像。经过上述处理,最终使用的数据库包含46656张布匹图像,其中每种布匹的正反角度各24张。图3是部分来自本处理后的图片数据库的图像。
图2 原始采集布匹图像数据库的部分
Fig.2 Some images of the original cloth image library
图3 经过处理后的布匹图像数据库
Fig.3 Some images of the processed cloth image library
实验评估方面,本文采用累积匹配特性(Cumulative Matching Characteristic,CMC)[15]曲线作为主要性能指标。CMC曲线刻画了在不同检索返回图片数量(Rank)时对应的识别率。为了使实验评估更为公正,本文采用十次平均的CMC曲线,即:每次都将数据库随机均分,一半数据训练,一半数据测试,获得每次实验的CMC曲线,最终将十次实验的CMC曲线求平均,作为最终的性能指标。
4.3.1 评估不同的视觉词典数的影响
当K-means算法采用不同的视觉词典数(K),识别率的变化如表1所示,单张平均运行时间对比如表2所示。
表1 不同视觉词典数下的识别率的变化情况
Tab.1 The changes of recognition rate under different clustering numbers
K识别率/%Rank 1Rank 5Rank 10Rank 20Rank 30594.5696.3897.0597.7498.091094.8696.5497.1997.7998.141595.0396.6797.2997.8898.242095.0196.6497.2797.8598.193095.0996.6797.2797.8998.225095.1596.7097.2997.8498.16
表2 不同视觉词典数下的单张图片平均运行时间
Tab.2 Single picture average processing time under different clustering numbers
K单张平均运行时间/ms生成视觉词典VLAD编码图像匹配51.620.220.47102.330.240.54152.900.280.67206.160.380.92307.220.391.035011.300.561.93
从表1和表2中可以看出,在一定范围内,随着K的增加,Rank 1时的识别率有着明显的提升。然而,当K达到一定值时,识别率增长幅度较小甚至不变,且总耗时翻倍增长。这是因为当视觉词典规模较小时,词典中的视觉词数目较少以至于生成的VLAD编码不能独立且准确描述每个图片的特征,而当视觉词典规模过大时,词典中存在一定的噪声,使得生成的VLAD编码的分辨能力降低,减弱其识别率匹配程度的提升。因此,针对不同的数据库,只有选择合适的词典规模才能达到较好的分类效果。综合考虑算法的有效性和时间复杂度,在本文后续的实验中取K=15。
4.3.2 评估不同特征的影响
在相同的实验条件下,本文选取常见的局部特征描述子方向梯度直方图(Histogram of Oriented Gradient, HOG)[16]和局部二值模式(Local Binary Pattern,LBP)[17],分别作为VLAD特征编码的输入,在得到VLAD编码进行图片检索,得到十次平均CMC曲线,实验结果如图4所示。其中,采用的HOG算法步长为8像素,梯度直方图方向为8,其他配置参考文献[16]; 采用的LBP算法步长为8像素,其他配置参考文献[17]。
图4 采用不同特征的CMC曲线图
Fig.4 CMC curves with different feature extraction algorithms
从图4可以看出,本文所选用的SIFT特征在Rank 1时的识别率为95.03%比LBP特征87.21%高出7.82%,但是LBP特征在Rank 20后的识别率超过了本文算法。CMC曲线排名靠前的识别率越高说明其性能越好,因此,综合来看本文所选用的SIFT特征依然优于LBP特征。
4.3.3 评估不同特征编码方法的影响
在使用SIFT特征作为输入不变量的前提下,将其代入常见的特征编码方法词袋(Bag of Word, BoW)特征编码[18]和费舍尔向量(Fisher Vector, FV)特征编码[19],分别对这些特征编码进行图像检索,得到十次平均CMC曲线,实验结果如图5所示。其中,采用BoW编码的视觉词典大小为15,其他配置参考文献[18];采用FV编码的GMM分类簇为15,其他配置参考文献[19]。
从图5可以看到,对同样的SIFT特征进行进一步编码的描述时,本文所选用的VLAD特征编码表现最佳,FV特征编码表现次之,BoW特征编码表现较差。本文算法在Rank 1的时候识别率有了较大的提高,达到95.03%,比使用FV特征编码识别率高了6.51%。实验结果证明了VLAD特征编码用于布匹匹配的有效性。
图5 采用不同特征编码方法的CMC曲线图
Fig.5 CMC curves with different global feature representation methods for images
4.3.4 算法运行时间分析
通过十次以上反复实验,计算各个算法单张平均运行时间,不同算法的运行时间的对比如表3所示。
表3 不同算法下的单张图片平均运行时间
Tab.3 Single picture average processing time under different algorithms
算法单张平均运行时间/ms生成视觉词典编码图像匹配HOG+VLAD11.360.430.84LBP+VLAD12.414.210.51SIFT+BoW4.221.490.48SIFT+FV12.410.271.94本文算法2.900.280.67
由表3可知,本文所提出的采用SIFT和VLAD特征编码的布匹检索算法单张平均运行时间优于其他算法,且该时间为毫秒级,满足实际工程中的实时性的要求。
本文提出了一种采用尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)和局部聚合向量(Vector of Locally Aggregated Descriptors, VLAD)特征编码的布匹检索算法,通过将从图片中提取的SIFT描述子进行VLAD特征编码,对得到的编码进行欧氏距离计算,从而完成图像检索。为了验证本文算法的优越性和有效性,本文做了三次实验评估了不同的视觉词典数、不同特征和不同特征编码对布匹检索算法性能提升影响,实验结果表明本文算法能够达到较高的准确性,十次平均Rank 1识别率为95.03%,有望提高纺织业产品的质量和厂家的效率。
[1] 张勋. 中印纺织行业出口的全球价值链度量[J]. 中国外资, 2018, 1(1): 74-76.
Zhang Xun. Measurement of Global Value Chain of Textile Export in China and India[J]. Foreign Investment in China, 2018, 1(1): 74-76.(in Chinese)
[2] 王鹏, 王平, 沈振康, 等. 一种基于SIFT的仿射不变特征提取新方法[J]. 信号处理, 2011, 27(1): 88-93.
Wang Peng, Wang Ping, Shen Zhenkang, et al. A Novel Algorithm for Affine Invariant Feature Extraction Based on SIFT[J]. Signal Processing, 2011, 27(1): 88-93.(in Chinese)
[3] 曲智国, 谭贤四, 费太勇, 等. 图像特征点选取方法[J]. 信号处理, 2017, 33(8): 1027-1033.
Qu Zhiguo, Tan Xiansi, Fei Taiyong, et al. A Method for Image Feature Points Selection[J]. Journal of Signal Processing, 2017, 33(8): 1027-1033.(in Chinese)
[4] 李倩倩, 周武能. 利用上下文视觉显著性检测色织物的疵点[J]. 棉纺织技术, 2018, 46(2): 9-13.
Li Qianqian, Zhou Wuneng. Defect Inspection of Yarn-dyed Fabric with Context-aware Saliency[J]. Cotton Textile Technology, 2018, 46(2): 9-13.(in Chinese)
[5] 王凯, 吴莹, 周建, 等. 机织物密度对字典学习纹理表征的影响[J]. 纺织学报, 2017, 38(7): 142-147.
Wang Kai, Wu Ying, Zhou Jian, et al. Influence of woven fabric density on texture representation based on dictionary learning[J]. Journal of Textile Research, 2017, 38(7): 142-147.(in Chinese)
[6] Hoang K, Wen W. Achieving Automation in Leather Surface Inspection[J]. Computers in Industry, 1997, 34(1): 43-54.
[7] Deng D, Wang R, Wu H, et al. Learning Deep Similarity Models with Focus Ranking for Fabric Image Retrieval[J]. Image and Vision Computing, 2017: S0262885617301919.
[8] 刘嘉唯, 肖勇锋, 白小明, 等. 融合颜色与LBP纹理特征的布料色卡图像检索[J]. 软件导刊, 2016, 15(8): 173-176.
Liu Jiawei, Xiao Yongfeng, Bai Xiaoming, et al. Image Retrieval of Fabric Color Card Integrating Color and LBP Texture Features[J]. Software Guide, 2016, 15(8): 173-176.(in Chinese)
[9] 张雪芹, 刘远远, 曹逸尘, 等. 一种基于改进 SURF 和 K-Means 聚类的布料图像匹配算法[J]. 华东理工大学学报: 自然科学版, 2017, 43(1): 105-112.
Zhang Xueqin, Liu Yuanyuan, Cao Yichen, et al. A Fabric Image Matching Algorithm Based on Improved SURF and K-Means Clustering[J]. Journal of East China University of Science and Technology: Natural Science Edition, 2017, 43(1): 105-112.(in Chinese)
[10]Lowe D G. Distinctive Image Features from Scale-Invariant Keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110.
[11]Jegou H, Douze M, Schmid C, et al. Aggregating local descriptors into a compact image representation[C]∥Proceedings of the IEEE 23rd Conference on Computer vision and Pattern Recognition. IEEE, 2010.
[12]Arthur D. k-means++: The advantages of careful seeding[C]∥Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms, 2007. Society for Industrial and Applied Mathematics, 2007.
[13]Silpaanan C, Hartley R. Optimised KD-trees for fast image descriptor matching[C]∥IEEE Conference on Computer Vision & Pattern Recognition. IEEE, 2008.
[14]宋宇辰, 张玉英, 孟海东. 一种基于加权欧氏距离聚类方法的研究[J]. 计算机工程与应用, 2007, 43(4): 179-180, 226.
Song Yuchen, Zhang Yuying, Meng Haidong. Research based on euclid distance with weights of clustering method[J]. Computer Engineering and Application, 2007, 43(4): 179-180, 226.(in Chinese)
[15]Decann B, Ross A. Relating ROC and CMC curves via the biometric menagerie[C]∥IEEE Sixth International Conference on Biometrics: Theory. IEEE, 2013.
[16]Dalal N, Triggs B. Histograms of Oriented Gradients for Human Detection[C]∥null. IEEE Computer Society, 2005.
[17]Ojala T, Pietikainen M, Maenpaa T. Multiresolution gray-scale and rotation invariant texture classification with local binary patterns[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(7): 971-987.
[18]贺伟, 姚娅川, 彭彩平. 一种基于BoW模型的图像分类方法研究[J]. 科技创新与应用, 2017, 1(10): 45.
He Wei, Yao Yachuan, Peng Caiping. Research on Image Classification Method Based on BoW Model[J]. Science and Technology Innovation and Application, 2017, 1(10): 45.(in Chinese)
[19]Daniilidis K, Maragos P, Paragios N. [Lecture Notes in Computer Science] Computer Vision-ECCV 2010 Volume 6314‖Improving the Fisher Kernel for Large-Scale Image Classification[C]∥European Conference on Computer Vision. Springer, Berlin, Heidelberg, 2010: 143-156.
朱建清(通讯作者) 男, 1987 年生, 福建莆田人。华侨大学工学院, 副教授, 博士, 主要研究方向为模式识别与机器视觉。
E-mail: jqzhu@hqu.edu.cn
林露馨 女, 1996年生, 福建福州人。福州大学数学与计算机学院, 研究生在读, 主要研究方向为图像处理。
E-mail: weiwuluxin@163.com
沈 飞 男, 1995年生, 江苏南京人。华侨大学工学院, 研究生在读, 主要研究方向为图像处理。
E-mail: shenfei140721@126.com
曾焕强 男, 1984 年生, 福建泉州人。华侨大学信息与工程学院, 教授, 博士, 主要研究方向为图像处理与视频编码。
E-mail: zeng0043@hqu.edu.com
蔡灿辉 男, 1954 年生, 福建泉州人。华侨大学工学院, 教授, 博士, 主要研究方向为图像处理与视频编码。
E-mail: chcai@hqu.edu.cn
郑力新 男, 1967 年生, 福建泉州人。华侨大学工学院, 教授, 博士, 主要研究方向为机器视觉。
E-mail: zlx@hqu.edu.cn