APP下载

融合颜色与LBP纹理特征的布料色卡图像检索

2017-03-31刘嘉唯肖勇锋白小明肖建

软件导刊 2016年8期

刘嘉唯+肖勇锋+白小明+肖建

摘 要:针对在采购与销售布料中存在人工配色不准确、查找分类难等问题,基于图像检索相关技术,通过融合布料色卡图像的颜色特征和纹理特征进行图像检索应用研究。设计了布料色卡图像颜色特征提取算法和基于LBP的纹理特征提取算法,并提出融合颜色特征和纹理特征的布料色卡检索算法。对提出的融合颜色和纹理特征的布料色卡图像检索算法在3个标准图像纹理库和实际布料色卡图像数据集进行了详细的对比测试。通过对测试结果的分析,得出在融合颜色和LBP纹理特征的布料色卡图像检索方法中采用先颜色后纹理的策略进行布料色卡图像检索是最有效的检索方案。

关键词关键词:图像检索;颜色特征;纹理特征;LBP算子;布料色卡

DOIDOI:10.11907/rjdk.161835

中图分类号:TP317.4

文献標识码:A 文章编号:1672-7800(2016)008-0173-04

0 引言

目前布料制品加工行业还存在以下影响生产与加工效率的问题:①找料难;②检料难;③分类难;④排版切割难。通过将布料色卡扫描成数字图像,利用基于内容的图像识别检索技术对布料色卡进行查找和分类,可以有效解决上述问题,而且可以使企业提高生产效率和产品质量,从而更具有市场竞争力。

国外在基于计算机进行布料图像检索领域的发展较早,所形成的布料检索方法也较为成熟,如美国研究人员Choonjong Kwak、Jose A Ventura提出采用神经网络进行布料纹理分类识别的方法等。我国科研工作人员在该领域也有一些相关研究工作,如韩立群建立了基于自组织神经网络的布料纹理分类器,刘健勤提出了布料纹理分类的神经元网络算法等。虽然国内外在布料纹理识别与检索领域的研究取得了很多进展,但依然存在许多问题。因此,近年来许多新的研究方法也不断出现,如冉友廷[1]提出织物色彩管理系统的设计方案和一种新的织物花型提取方法;徐琪[2]提出一种新的纹理描述方法——多尺度斑块特征(Multiscale Blob Features,MBF);赵杨[3]提出一系列局部纹理描述子来研究在局部纹理信息中起关键作用的判别信息。

虽然提出的方法和理论很多,但目前还没有一种方法可以适合各领域的图像检索或分类,或者处理时间过长,不能在实际生产中广泛应用。因此,为满足布料生产和销售领域对布料色卡图像识别技术的需求,针对该领域研究合适的基于内容的图像检索方法具有实际应用价值。

1 图像颜色与纹理特征及其表示

1.1 图像颜色空间和图像特征表示

对于图像颜色的特征描述必须是在一个特定的颜色空间中,常用的颜色空间有RGB空间和HSV空间[4-6]。

1.1.1 颜色空间

(1)RGB颜色空间。RGB颜色空间是由红色(R)、绿色(G)、蓝色(B)3种基色混合编码形成的。在三维坐标中,红(Red)、绿(Green)、蓝(Blue)为3个颜色通道,数值大小分别代表在各自通道上的强度值。

(2)HSV颜色空间。HSV颜色空间模型把颜色空间分为3种属性:色调H(Hue)、饱和度S(Saturation)和亮度V(Value)。色调H表示光的颜色,饱和度S指颜色深浅程度,亮度V指颜色明暗程度。HSV颜色空间模型应用非常广泛,与人眼的视觉特性非常接近。各通道之间相互独立,可以独立感知各颜色通道的变化。

RGB空间转换为HSV空间的计算公式如下:

1.1.2 颜色特征表示——颜色直方图

图像的颜色直方图是一种概率分布图,它描述了不同亮度值在图像中出现的频率。一副图像I的灰度值范围为[0,K-1],它的直方图h正好包含K个条目,每一个单独的条目被定义为:

h(i)=I中灰度值为i的像素点总数/图像总像素数

其中,0≤i

颜色直方图定义了图像或图像中区域的颜色分布,如果在图像旋转和缩放过程不丢失图像信息,颜色直方图具有与生俱来的旋转不变性和缩放不变性。

1.1.3 HSV空间上的颜色量化

一个颜色空间包含的颜色种类非常多,如果每一种颜色都需要考虑,计算机的计算量和所需存储空间都比较大,所以可以把一些颜色合并在一起,以提高图像识别检索效率。因此,将HSV颜色空间分割成许多个颜色块,并且每个颜色块都有一个特定的块标号。

HSV由RGB转换而来,其中0≤H≤360,0≤S≤1,0≤V≤1。此时需要对各个分量进行划分,得到各个分量的区间号。根据人眼的分辨能力,色调H分为8份,饱和度S分为3份,亮度V分为3份,即可达到要求。不同颜色对人眼的刺激强度不一样,在这里各个分量并不是平均划分,具体划分方式如下所示:

图像颜色直方图的计算可统计每个颜色块中的像素点个数,最后得到一个Nh*Ns*Nv维的特征向量。

1.2 图像纹理特征

目前,对于图像纹理的描述分析方法主要有统计类分析方法和结构类分析方法。而局部二值模式(Local Binary Patterns,LBP)是结合了统计类分析方法和结构类分析方法的纹理描述方法,其虽然简单,但功能强大,能较好地体现局部纹理特征。

1.2.1 传统的LBP算子

芬兰奥卢(Oulu)大学的Ojala等学者在1996年提出局部二值模式算法[7-8],该算法中的局部最初是定义为一个3×3的窗口,实现过程为:先将该窗口中心像素点的亮度值作为阈值,其余8个邻近像素点的亮度值与阈值进行比较,如果大于或等于阈值,该像素点标记为1,否则标记为0;然后,将邻近像素点的二值编码衔接起来构成一个8位的二进制编码,也称为LBP编码,LBP编码值的计算公式如下:

DX2(H,I)的值越小,表示以H和I为特征直方图的两张图片越相似。实验中以识别率和平均排序值作为评价标准。识别率表示算法正确识别图片的能力,越大则能力越强。平均排序值表示检索正确的图片在结果集中的排名位置,越小说明效果越好。

2 融合颜色特征与LBP纹理特征的图像检索算法

由于颜色和纹理特征的识别能力可能有差别,在结合过程中,纹理颜色的先后匹配顺序可能会影响结果,所以进行了以下匹配识别:①仅颜色:仅依靠颜色特征对图像进行筛选排序得出结果;②先颜色,后纹理:先经过颜色筛选排序,取前15张进行纹理排序,显示结果;③先纹理,后颜色:先经过纹理筛选排序,取前15张进行颜色排序,显示结果;④颜色优先:先经过颜色筛选排序得到图片I的排名为C,取前N张进行纹理排序,得到图片I的排名T,取(C+T)/2为图片新的排名,再排序一次,显示结果;⑤纹理优先:先经过纹理筛选排序得到图片I的排名为T,取前N张进行颜色排序,得到图片I的排名C,取(C+T)/2为图片新的排名,再排序一次,显示结果。

算法1:先颜色(纹理),后纹理(颜色)的检索算法,具体实现描述如下:

函数名:DetectByCfandTf(rs,cf,tf)

输入:特征库中的记录rs(ResultSet),测试图片的颜色特征值和纹理特征值cf、tf

输出:经过先颜色(纹理)后纹理(颜色)比较后的排序值

建立HashMap hm1,hm2

for(rs中的记录)

{

计算rs中第i条记录的颜色特征与cf的区别度d1;

将第i条记录的Id号和d值放入hm1中,hm1.put(Id,d1);

}

建立一个包含hm1内容的list1=new ArrayList(hm1.entrySet);

利用Collections的排序功能,根据hm1中的value值由小到大排序

for(list1中的前N1条记录)

{

计算list1中第i条记录的纹理特征与tf的区别度d2;

将第i条记录的Id号和d值放入hm2中,hm2.put(Id,d2);

}

建立一个包含hm2内容的list2=New ArrayList(hm2.entrySet);

利用Collections的排序功能,根据hm2中的value值由小到大排序

取list2前N张图像,观察与测试一张或一类图片库中的记录,记下其排序值

一般而言,N1的值可以大一些,以免第一遍筛选就把正确的图像淘汰了,但也不宜过大,否则会集中图片过多,影响第二遍筛选的性能。

算法2:颜色(纹理)优先的匹配识别算法,具体实现描述如下:

函数名:DetectByCfFirst(rs,cf,tf)

输入:特征库中的记录ds(ResultSet)、测试图片的颜色特征和纹理特征cf、tf

输出:经颜色(纹理)优先特征比较后的排序值

建立HashMap hm1,hm2

建立HashMap hm3

for(ds中的记录)

{

计算rs中第i条记录的颜色特征与cf的区别度d1;

将第i条记录的Id号和d值放入hm1中,hm1.put(Id,d1);

}

建立一个包含hm1内容的list1=new ArrayList(hm1.entrySet);

利用Collections的排序功能,根据hm1中的value值由小到大排序

for(list1中的前N1条记录)

{

计算list1中第i条记录的纹理特征与tf的区别度d2;

将第i条记录的Id号和d值放入hm2中,hm2.put(Id,d2);

}

建立一个包含hm2内容的list2=New ArrayList(hm2.entrySet);

利用Collections的排序功能,根据hm2中的value值由小到大排序

for(list2中的记录)

{

if(list2中第i条记录与list1中第j条记录的Id号相同)

{

将list2中第i条记录的Id号和(i+j)/2放到hm3中,hm3.put(Id,(i+j)/2);

}

}

建立一个包含hm3内容的list3=New ArrayList(hm3.entrySet);

利用Collections的排序功能,根据hm3中的value值从小到大排序;

取list3前N张图像,观察与测试一张或一类图片的库中的记录,記下其排序值

3 对比实验与结果分析

3.1 实验环境

系统的开发平台与测试环境信息如表1所示。

3.2 数据集——布料色卡图片集

布料色卡图片集是从实际企业收集得到的真实布料色卡数据集,通过EPSON PERFETION V10全彩扫描器对每张布料色卡进行扫描得到的,共有近1 500张。

3.3 实验结果与分析

针对实际采集到的布料色卡图片集,基于图像和纹理特征相结合的图像检索方法,分别按照6种不同的测试方案进行实验。通过10次实验取平均值,实验结果如表2所示,表中增加了最大排序值这一评价标准。

从整体而言,对于色彩鲜明、颜色丰富的布料色卡图片集,加入颜色特征显然有效,实验数据也可以证明这一点。仅采用LBP纹理测试识别率为96.28%,仅采用颜色测试识别率为96.50%,而结合LBP纹理和HSV颜色特征,图像识别率都超过这两个值,最高可达99.63%。HSV颜色特征和LBP纹理不同的筛选顺序和相似度排序,对结果也有影响。颜色(纹理)优先比先颜色(纹理)后纹理(颜色)在最大排序上略有改善,先经过颜色筛选比先经过纹理筛选效果要好,主要是仅颜色识别的最大排序值7比LBP纹理识别的最大排序要小。因此,采用颜色特征作初筛选显然更精确、稳定。

结合颜色和纹理特征的布料色卡图像检索效果十分理想,虽未达到百分之百,但对于绝大多数图片都能识别正确,少数一些图片的正确结果也能在前几张显示,该效果对使用者来说可以接受,具有较强的实用性。

4 结语

虽然LBP算子具有强大的纹理描述能力,运用图像的LBP纹理特征进行图像识别检索可以得到较好的效果,并且LBP拥有多种不同的模式,适用于不同图像,但仅依靠纹理这一单一特征,对于颜色丰富的布料色卡,识别能力仍然有限。而结合图像纹理和颜色特征的图像识别方法在布料色卡图像上的识别率能达99%以上,符合实际应用要求。下一步将在完善所做工作的基础上,研发一套实用性强、识别率高,且操作更简单的融合图像LBP纹理和颜色的布料色卡图像识别系统。

参考文献:

[1]冉友廷.织物表面颜色纹理特征的检测与应用[D].武汉:武汉纺织大学,2013.

[2]徐琪.一种新的纹理描述方法及其应用——多尺度斑块特征法[D].上海:复旦大学,2011.

[3]赵洋.基于局部描述算子的纹理识别方法及其在叶片识别方面的应用[D].合肥:中国科学技术大学,2013.

[4]张长江.数字图像处理及其应用[M].北京:清华大学出版社,2013:277-280.

[5]张虹.基于MVC框架的色卡图像检索系统设计与实现[D].南昌:南昌大学,2013.

[6]黄海泉.基于多粒度的CBIR在布料图像领域的研究与应用[D].南昌:南昌大学,2013.

[7]T OJALA,M PIETIKAINEN,T MAENPAA.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.

[8]T OJALA,T MAENPAA,M PIETIKAINEN,et al.Outex-new framework for empirical evaluation of texture analysis algorithms[C].In 16th International Conference on Pattern Recognition,2002:701-706.

(責任编辑:黄 健)