具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本实例提供了一种图片搜索的方法,该方法主要包括以下步骤:
S101:获取用户输入关键字和关键图片;
S102:根据所述关键字得到可选图片;
S103:获取所述关键图片与所述可选图片的匹配度;
S104:根据所述匹配度显示所述可选图片。
本实施例通过获取用户输入关键字和关键图片,根据该关键字得到可选图片,并根据关键图片与可选图片的匹配度显示可选图片,使用户可更准确的选择其希望获取的图片,提高了图片搜索的准确性了,增加了用户体验。
实施例2
如图2所示,本实例提供了另一种图片搜索的方法,该方法主要包括以下步骤:
S201:用户输入关键字和关键图片;
具体的,用户在搜索引擎提供的主页上输入关键字以及上传关键图片。
其中,关键字是指用户能够最大程度概括其所要查找的信息内容的字或者词,是信息的概括化和集中化。关键图片是指,其图片内容与用户希望获取到的图片的内容相同或相似的图片。
优选的,搜索引擎主页设计参照主流搜索网站的主页,采用简约的形式。
S202:搜索引擎接收用户发送的关键字和关键图片;
S203:搜索引擎根据该关键字得到可选图片;
其中,可选图片,是指通过在现有的搜索引擎中输入能最大程度概括所要查找的图片的关键字,搜索引擎根据该关键字在互联网中进行图片搜索,搜索到的图片即为可选图片。
例如,用户选择通过腾讯的搜索引擎搜索图片,则在IE浏览器地址栏内输入搜索引擎主页的网址:http://www.soso.com/,加载的页面后,用户选择图片搜索并在关键字输入栏内输入关键字后点击搜索,如在关键字输入栏内输入“树”后点击搜索,搜索引擎将所有文件描述中包含“树”的图片作为搜索结果返回给用户,此次搜索出的图片即为关键字为“树”的可选图片。
搜索引擎通过关键字搜索到与该关键字相关的图片是现有技术,本领域技术人员通过现有技术可很容易根据关键字得到与该关键字相关的可选图片,具体方法此处不再赘述。
优选的,当用户发送的关键字为搜索引擎检索过的关键字时,搜索引擎直接调用该关键字的搜索结果,不再重复的进行搜索,降低了搜索引擎的工作负载;当用户发送的关键字为搜索引擎未检索过的关键字时,则搜索引擎保存该关键字、索引号和该关键字结果的图片列表,当用户再次对该关键字进行搜索时,搜索引擎可直接调用该搜索结果。
S204:搜索引擎获取关键图片与可选图片的匹配度;
其中,可选图片和关键图片匹配度是指,可选图片与关键图片的相似程度,可选图片与关键图片的相似程度越高,匹配度越高,可选图片越接近关键图片。
具体的,如图3所示S204包括以下步骤:
S2041:搜索引擎获取特征提取算法;
具体的,该特征提取算法具体包括:基于梯度的直方图特征提取算法,即HOG(Histograns of Oriented Gradiant,基于梯度的直方图)特征提取算法、基于尺度空间理论特征提取算法,即SURF(Speeded-Up Robust Features,基于尺度空间理论)特征提取算法和滤波特征提取算法,即Gabor(滤波)特征提取算法。
其中,HOG特征提取算法是指,提取了图像中局部区域的梯度方向直方图特征,该梯度方向直方图特征即为HOG特征。HOG特征描述了图像局部区域的梯度强度和梯度方向的分布情况,该分布情况能对局部对象外观和形状进行很好的表征。
HOG特征是针对图像某个矩形区域中的梯度方向与强度的统计信息而定义的一种特征,用H表示一个图像,H(x,y)表示图像在像素点(x,y)处的灰度值,则其具体的计算过程如下:
按照式(1)方法计算梯度:
Gx(x,y)=H(x+1,y)-H(x-1,y)
Gy(x,y)=H(x,y+1)-H(x,y-1) (1)
Gx(x,y),Gy(x,y)分别表示样本图像中像素点处(x,y)的水平方向梯度,垂直方向梯度的幅值。样本中像素点(x,y)的梯度大小定义为式(2):
样本中像素点(x,y)的梯度方向为式(3):
把
的梯度方向均匀划分为9个区间(bin)。各个像素点在分量区间上的幅值为式(4):
HOG中将图像分成一个个16×16像素大小的块(block),每个块平均分成四个单元(cell),即每个单元的大小为8×8像素点。
为了消除光照等影响,对块中每个单元的区间分量进行归一化为式(5):
f(Ci,k)表示,在某个单元Ci中,第k个区间的累计强度在Ci所属的块B中所占的比例,其中i=1,2,3,4。上式中加一个较小的数ε,避免出现分母为零。每个单元的特征可由一个9维向量表示,而每个块由四个单元组成,从而块的特征可由一个36维向量表示。故一个块的HOG特征可以表示为式(6):
{f(Ci,k)|i=1,2,3,4,k=1,2,…,9} (6)
将图像中所有块的HOG特征串联起来,便得到一幅图像的HOG特征。
SURF特征提取算法是指,利用高斯二阶导数的近似形式求得Hessian矩阵的行列式,构造图像的尺度空间,并提取尺度空间中的局部极值点作为其特征点。
将图像I中的像素用x=(x,y)T表示,则在x处尺度为σ的Hessian矩阵H(x,σ)为式(7)。
式中,Lxx(x,σ),Lyy(x,σ)和Lxy(x,σ)分别为I与高斯二阶导数
在x处的卷积。
利用尺寸逐渐增大的长方形滤波器来近似σ逐渐增大的高斯二阶导数,对应的滤波器响应分别为Dxx(x,σ),Dyy(x,σ)和Dxy(x,σ),则Hessian矩阵行列式的近似值det(Happrox)定义为式(8)。
det(Happrox)=DxxDyy-(ωDxy)2 (8)
式中,ω为滤波器响应的相对系数。图像I的尺度空间Lapprox(x,y,σ)由不同尺度的det(Happrox)构成式(9)
Lapprox(x,y,σ)=Dxx(x,y,σ)Dyy(x,y,σ)-(ωDxy(x,y,σ))2 (9)
式中,x,y和σ分别为尺度空间Lapprox中各点的位置和尺度;相对系数ω=0.9。
则SURF基于尺度空间Lapprox的特征点p定义为式(10)
p=(x,y,σ)T=extrema{Lapprox(x,y,σ)} (10)
式中,extrema表示尺度空间Lapprox在由x,y和σ构成的坐标系下3×3×3邻域内的局部极值点。SURF为降低运算量所采取的措施,将尺度σ=1.2的高斯二阶导数
可分别近似为尺寸为9×9的长方形滤波器,而长方形滤波器的响应可基于积分图的区域求和方法快速求得;基于积分图的区域求和运算方法中,任意尺寸的长方形区域灰度求和运算只需3条加法指令和4条内存访问指令。
积分图的定义为:令I∑(x)表示原图像I的积分图,则I∑(x)中点x=(x,y)T处的值表I中从原点O到x所形成的长方形区域内像素灰度之和。
(b)运用积分图计算任意尺寸的长方形区域灰度之和(∑=A-B-C+D)SURF降低运算量的措施,为使SURF特征具有旋转不变性,要为每个特征点定义一个特征方向。首先,利用积分图,在以特征点p为中心6σ的邻域内分别求取x和y方向Haar小波响应dx和dy,其中σ为p的尺度,然后将dx和dy映射到以x和y方向Haar小波响应强度为水平和垂直坐标轴的坐标系中。利用一个以坐标原点为中心、角度为θ的扇形窗fan_filter(θ)以2π/n为步长旋转,分别计算窗内的水平、垂直响应累加和sumx(i)及sumy(i),其中i∈0,1,...,n-1,形成方向向量Vorient(i),i∈0,1,...,n-1,求取模最大的向量max_Vorient,将其方向定为p的特征方向op。
max_Vorient={V|V=maxmod(Vorient(i)),i∈o,1,…,n-1}
op={α|α=orient(max_Vorient)} (12)
为每个特征点p定义特征方向op后,基于特征点邻域内的灰度分布构造特征向量,对图像进行描述。以p为中心,op为水平方向,op的正交方向为垂直方向,截取尺寸为20σ×20σ的正方形区域S,将S平均分为M×M个正方形子区域,在各子区域内分别计算水平和垂直方向(op和op的正交方向)上尺寸为2σ的Haar小波响应dx和dy。对每个子区域中的dx,dy,|dx|,|dy|分别进行累加得到一个4维向量:
ν=[∑dx,∑dy,∑|dx|,∑|dy|]
则对每个特征点p,均得到M×M×4维的向量,对其进行归一化后,得到最终的SURF特征向量Vp。由SURF特征向量Vp的定义可知:局部区域S的选取以及dx和dy的求解均基于p的尺度σ,Vp具有尺度不变性;S是以op为水平方向,op的正交方向为垂直方向截取的,Vp具有旋转不变性;dx和dy的求取是一个求和过程,Vp对图像噪声具有一定的鲁棒性;由于对特征向量进行了归一化,Vp对光照变化具有一定的鲁棒性;由于计算过程中仅涉及p的局部区域S,Vp为对图像在p邻域处局部信息的描述,因此对局部遮挡和3D视角变化也具有一定的鲁棒性。
Gabor特征提取算法采用Gabor滤波器有方向选择性和尺度性的进行特征提取,其有以下性质:
(1)Gabor滤波器能充分描述图像的纹理信息。图像的纹理信息一般用来做特征提取。这也是Gabor滤波器最广泛的应用。
(2)对2-D Gabor小波的研究表明,通过恰当选择若干个Gabor核函数可以重构出原图像。因此Gabor核函数可以用在物体的建模和表示上。
(3)Gabor核函数由于去掉了直流分量,对局部光照影响不敏感。
(4)Gabor滤波结果可以描述不同尺度上灰度的分布信息。一般说来,大尺度滤波可以描述全局性较强的信息,同时可以掩盖掉图像中噪声的影响;而小尺度滤波可以描述比较精细的局部结构,受噪声影响较大。
(5)Gabor核函数有良好的频域特性。Gabor核函数在频域内的形状和空域内的形状完全相同。空域内对不同尺度响应的Gabor核函数其频域内的响应也相应不同。
Gabor函数实际上就是一个被调制了的高斯函数,通过定义不同的参数,就可以得到一组Gabor滤波器,Martin Lades等人于1993年提出用于人脸识别的一种二维Gabor小波,公式(15~16)如下:
其中
分别定义了波向量的方向和尺度,z=(x,y),||·||定义了向量范数。在式(2.12)中,k
ν=k
max/f
ν,
f为频率域中的采样步长,通常取
k
max对应最大的采样频率,取k
max=π/2。参数σ决定了高斯窗的宽度与波向量长度的比率,在本文中取σ=2π。通过对不同方向和不同尺度的选取,可以对一个Gabor小波进行缩放和旋转,从而得到一组具有自相似性质的多通道Gabor小波滤波器数组,其中每个滤波器用于抽取一定方向和尺度下的图像局部特征。用原始图像通过Gabor滤波器作变换,用I(z)=I(x,y)表示图像的灰度分布,图像I通过Gabor滤波器组滤波就相当于卷积,则图像I与Gabor小波ψ
ν,μ的卷积为:
根据卷积定理,可以先使用快速傅立叶变换(FFT)计算Oν,μ(z):
F{Oν,μ(z)}=F{I(z)}F{ψν,μ} (17)
Oν,μ(z)=F-1{F{I(z)}F{ψν,μ}} (18)
其中符号F和F-1分别定义了FFT和IFFT。
S2042:搜索引擎根据特征提取算法对可选图片和关键图片进行特征提取,得到该可选图片的图片特征和关键图片的图片特征;
具体的,搜索引擎根据HOG特征提取算法对可选图片和关键图片进行特征提取,得到可选图片的HOG特征和关键图片的HOG特征;
搜索引擎根据SURF特征提取算法对可选图片和关键图片进行特征提取,得到可选图片的SURF特征和关键图片的SURF特征;
搜索引擎根据Gabor特征提取算法对可选图片和关键图片进行特征提取,得到可选图片的Gabor特征和关键图片的Gabor特征。
现有技术中,本领域技术人员和容易得知根据上述特征提取算法得到相应的图片特征,此处不再赘述。
优选的,搜索引擎保存可选图片的图片特征及其索引号、图片Url(UniversalResource Locator,统一资源定位符)、图片文件和该图片对应特征文件,以便再次搜索需要使用该可选图片的图片特征时,搜索引擎直接调用,从而避免重复提取图片特征。
S2043:搜索引擎根据可选图片的图片特征和关键图片的图片特征得到可选图片的图片特征和关键图片的图片特征的匹配度;
具体的,搜索引擎根据可选图片的HOG特征和关键图片的HOG特征,得到可选图片和关键图片的HOG特征匹配度;
搜索引擎根据可选图片的SURF特征和关键图片的SURF特征,得到可选图片和关键图片的SURF特征匹配度;
搜索引擎根据可选图片的Gabor特征和关键图片的Gabor特征,得到可选图片的Gabor特征和关键图片的Gabor特征的匹配度;
搜索引擎根据可选图片和关键图片的HOG特征匹配度、SURF特征匹配度和Gabor特征的匹配度得到可选图片的图片特征和关键图片的图片特征的匹配度。
其中,图片特征的匹配度,即综合考虑该可选图片与关键图片的各个图片特征匹配度,当可选图片与关键图片的各个图片特征匹配度越高时,该可选图片与关键图片的图片匹配度越高。
现有技术中,本领域技术人员很容易根据上述特征提取算法得到相应的图片特征,并进一步的获取到可选图片与关键图片的图片匹配度,此处不再赘述。
S205:搜索引擎根据匹配度显示所述可选图片。
具体的,当可选图片为一个时,搜索引擎显示将该可选图片以及该可选图片与关键图片的匹配度作为用户此次搜索的结果显示给用户;当可选图片为多个时,搜索引擎根据可选图片与关键图片的匹配度将可选图片重新排序,与关键图片匹配度越高,该可选图片排序则越靠前,搜索引擎将按照匹配度排序后的可选图片显示给用户。
优选的,本实施例搜索引擎的工作流程可如图4所示:用户输入网址;浏览器加载并显示搜索引擎主页;用户在搜索引擎主页上输入关键字、上传关键图片;搜索引擎接收用户请求,根据用户输入的关键字进行图片搜索,得到可选图片及可选图片的图片特征;在搜索结果中匹配关键图片:搜索引擎提取关键图片的图片特征,根据关键图片及可选图片的图片特征得到关键图片与可选图片的匹配度;搜索引擎根据匹配度由低到高对可选图片进行排序,并依据排序顺序显示搜索结果及匹配度。
其中,搜索引擎根据用户输入的关键字进行图片搜索,得到可选图片及可选图片的图片特征存在两种情况:搜索引擎查询数据库,判断数据库中是否有依该关键字进行搜索的可选图片搜索结果,如果有,则搜索引擎直接从数据库中提取该可选图片及可选图片的图片特征;如果没有,则搜索引擎根据用户输入的关键字进行图片搜索,提取搜索到的可选图片的图片特征,并在数据库中存储该可选图片的图片特征,便于下次搜索。
本实施例通过获取用户输入关键字和关键图片,根据关键图片与可选图片的匹配度显示可选图片,使用户可更准确的选择其希望获取的图片,提高了图片搜索的准确性了,增加了用户体验。
实施例3
如图5所述,本实例提供了另一种图片搜索的方法,该方法主要包括以下步骤:
S301:搜索引擎获取用户输入关键字和关键图片;
具体的,S301与实施例2中S201相同,在此不再赘述。
S302:用户向搜索引擎发送人物图片搜索请求;
例如,搜索引擎在其主页上设置图片搜索请求选项,用户通过选择该选项从而向搜索引擎发送人物图片搜索请求。
S303:搜索引擎接收用户发送的人物图片搜索请求;
S304:搜索引擎判断关键图片是否包括人脸,如果不是,则提示用户重新上传新的关键图片;
具体的,搜索引擎获取人脸特征提取算法,根据该人脸特征提取算法,提取关键图片的人脸图片特征,当关键图片的人脸图片特征达到预设阀值时,则判定所述关键图片包括人脸。当关键图片包括人脸时,则执行S305;当关键图片不包括人脸时,即用户上传的关键图片不符合要求,不可用于人物图片的搜索请求,则搜索引擎提示用户重新上传新的关键图片,搜索引擎将继续判断该新的关键图片是否包括人脸,直至用户上传的关键图片。
优选的,搜索引擎获取的人脸特征提取算法为基于类Haar特征的人脸检测算法,通过该算法获取该关键图片的Haar特征,当该关键图片的Haar特征满足预设阀值时,则判定该关键图片包括人脸。
通过基于类Haar特征的人脸检测算法判断图片是否包括人脸属于现有技术,本领域技术人员根据现有技术可很容易的判断关键图片是否包括人脸,此处不再赘述。
S305:搜索引擎根据关键字得到可选图片;
具体的,S305与实施例2中S203相同,在此不再赘述。
S306:搜索引擎从可选图片中获取包括人脸的可选图片;
具体的,搜索引擎获取人脸特征提取算法,根据所述人脸特征提取算法,提取所述可选图片的人脸图片特征,获取人脸图片特征大于或等于预设阀值的可选图片。
优选的,搜索引擎获取的人脸特征提取算法为基于类Haar特征的人脸检测算法,通过该算法获取可选图片的Haar特征,当可选图片的Haar特征满足预设阀值时,则判定该可选图片包括人脸。
通过基于类Haar特征的人脸检测算法判断图片是否包括人脸属于现有技术,本领域技术人员根据现有技术可很容易的判断所述可选图片是否包括人脸,从而在可选图片中获取包括人脸的可选图片,在此处不再赘述。
S307:获取关键图片与可选图片的匹配度;
具体的,如图6所示,S307具体包括以下步骤:
S3071:搜索引擎获取特征提取算法;
具体的,该特征提取算法具体包括:HOG特征提取算法、SURF特征提取算法、Gabor特征提取算法和基于类Haar特征的人脸检测算法。
S3072:搜索引擎根据特征提取算法对可选图片和关键图片进行特征提取,得到该可选图片的图片特征和关键图片的图片特征;
具体的,搜索引擎根据HOG特征提取算法对可选图片和关键图片进行特征提取,得到可选图片的HOG特征和关键图片的HOG特征;
搜索引擎根据SURF特征提取算法对可选图片和关键图片进行特征提取,得到可选图片的SURF特征和关键图片的SURF特征;
搜索引擎根据Gabor特征提取算法对可选图片和关键图片进行特征提取,得到可选图片的Gabor特征和关键图片的Gabor特征。
搜索引擎根据基于类Haar特征的人脸检测算法对所述可选图片和所述关键图片进行特征提取,得到可选图片的Haar特征和关键图片的Haar特征。
现有技术中,本领域技术人员和容易得知根据上述特征提取算法得到相应的图片特征,此处不再赘述。
S3073:搜索引擎根据可选图片的图片特征和关键图片的图片特征得到可选图片的图片特征和关键图片的图片特征的匹配度;
具体的,搜索引擎根据可选图片的HOG特征和关键图片的HOG特征,得到可选图片和关键图片的HOG特征匹配度;
搜索引擎根据可选图片的SURF特征和关键图片的SURF特征,得到可选图片和关键图片的SURF特征匹配度;
搜索引擎根据可选图片的Gabor特征和关键图片的Gabor特征,得到可选图片和关键图片的Gabor特征的匹配度;
搜索引擎根据可选图片的Haar特征和关键图片的Haar特征,得到可选图片和关键图片的Haar特征匹配度。
搜索引擎根据可选图片和关键图片的HOG特征匹配度、SURF特征匹配度、Gabor特征和Haar特征的匹配度得到可选图片的图片特征和关键图片的图片特征的匹配度。
其中,图片特征的匹配度,即综合考虑该可选图片与关键图片的各个图片特征匹配度,当可选图片与关键图片的各个图片特征匹配度越高时,该可选图片与关键图片的图片匹配度越高。
现有技术中,本领域技术人员很容易根据上述特征提取算法得到相应的图片特征,并进一步的获取到可选图片与关键图片的图片匹配度,此处不再赘述。
S308:搜索引擎显示可选图片和匹配度,当该可选图片为多个时将所述可选图片按匹配度由高到低顺序显示;
具体的,S308与实施例2中S205相同,在此不再赘述。
本实施例通过接收用户发送的人物图片搜索请求,从所述可选图片中获取包括人脸的可选图片,使用户在搜索人脸图片时,可更准确的选择其希望获取的人脸图片,提高了图片搜索的准确性了,增加了用户体验。
实施例4
如图7所述,本实例提供了一种图片搜索的装置,该装置主要包括:
关键字和关键图片获取模块401,用于获取用户输入关键字和关键图片;
可选图片获取模块402,用于根据所述关键字得到可选图片;
匹配度获取模块403,用于获取所述关键图片与所述可选图片的匹配度;
可选图片显示模块404,用于根据所述匹配度显示所述可选图片。
匹配度获取模块403具体包括:
特征提取算法获取单元4031,用于获取特征提取算法;
图片特征获取单元4032,用于根据所述特征提取算法对所述可选图片和所述关键图片进行特征提取得到所述可选图片的图片特征和所述关键图片的图片特征;
匹配度获取单元4033,用于根据所述可选图片的图片特征和所述关键图片的图片特征得到所述可选图片的图片特征和所述关键图片的图片特征的匹配度。
可选图片显示模块404具体包括:
可选图片显示单元4041,显示所述可选图片和所述匹配度
可选图片顺序显示单元4042,当所述可选图片为多个时,将所述可选图片按所述匹配度由高到低顺序显示。
该装置还包括:
人物图片搜索请求接收模块405,用于接收用户发送的人物图片搜索请求;
人脸判断模块406,用于判断所述关键图片是否包括人脸,如果不是,则提示用户重新上传新的关键图片;
包括人脸的可选图片获取模块407,用于从所述可选图片中获取包括人脸的可选图片。
人脸判断模块406具体包括:
第一人脸特征提取算法获取单元4061,用于获取人脸特征提取算法;
第一人脸图片特征提取单元4062,用于根据所述人脸特征提取算法,提取关键图片的人脸图片特征;
第一人脸判断单元4063,用于判断所述关键图片的人脸图片特征是否达到预设阀值,如果是,则判定所述关键图片包括人脸。
包括人脸的可选图片获取模块407具体包括:
第二人脸特征提取算法获取单元4071,用于获取人脸特征提取算法;
第二人脸图片特征提取单元4072,用于根据所述人脸特征提取算法,提取所述可选图片的人脸图片特征;
可选图片获取单元4073,用于获取人脸图片特征大于或等于预设阀值的可选图片。
本实施例通过获取用户输入关键字和关键图片,根据关键图片与可选图片的匹配度显示可选图片,使用户可更准确的选择其希望获取的图片;通过接收用户发送的人物图片搜索请求,从所述可选图片中获取包括人脸的可选图片,使用户在搜索人脸图片时,可更准确的选择其希望获取的人脸图片,提高了图片搜索的准确性了,增加了用户体验。
为了更进一步地说明本发明的图片搜索效果,对本发明的搜索结果进行了测试,通过上面实验结果表明,发明的图片搜索方法能够根据用户上传的图片进行相似度排名,从而为用户提供具有一定可信度的图像检索结果。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。