一、概述:
图像检索有基于文本的检索和基于内容的检索,如果是基于语义的检索的话,在检索之前需要对海量的图片进行语义属性的标注,这种标注有主观性偏差,时间成本很高,而且语义属性也不能完全表达图像中的包含的丰富的信息,检索效果是有限的。基于内容的检索(CBIR技术),“以图搜图”就有他独特的优势。(淘宝,京东,百度,google都已经支持用图搜图的形式)
二、基于深度学习的方法
通过对图像进行特征提取,获得特征表示,进行相似性度量,度量学习,根据相似性排序,得到检索结果。
(1)相同物体图像检索
相同物体图像检索是指对查询图像中的某一物体,从图像库中找出包含有该物体的图像。这里用户感兴趣的是图像中包含的特定物体或目标,并且检索到的图片应该是包含有该物体的那些图片。如1.3图所示,给定一幅”蒙娜丽莎”的画像,相同物体检索的目标就是要从图像库中检索出那些包含有”蒙娜丽莎”人物的图片,在经过相似性度量排序后这些包含有”蒙娜丽莎”人物的图片尽可能的排在检索结果的前面。相似物体检索在英文文献中一般称为物体检索(Object Retrieval),近似样本搜索或检测(Duplicate Search or Detection)也可以归类于相同物体的检索,并且相同物体检索方法可以直接应用到近似样本搜索或检测上。相同物体检索不论是在研究还是在商业图像搜索产业中都具有重大的价值,比如购物应用中搜索衣服鞋子、人脸检索等。
对于相同物体图像检索,在检索相同的物体或目标时,易受拍摄环境的影响,比如光照变化、尺度变化、视角变化、遮挡以及背景的杂乱等都会对检索结果造成较大的影响,图1.3左图给出了这几种变化的例子,此外,对于非刚性的物体,在进行检索时,物体的形变也会对检索结果造成很大的影响。
(2)相同类别图像检索
相似图像检索的目标是从图像库中查找出那些与给定查询图像属于同一类别的图像。这里用户感兴趣的是物体、场景的类别,即用户想要获取的是那些具有相同类别属性的物体或场景的图片。为了更好的区分相同物体检索和相同类别检索这两种检索方式区,仍以图1.3左图所举的”蒙娜丽莎”为例,用户如果感兴趣的就是”蒙娜丽莎”这幅画,那么检索系统此时工作的方式应该是以相同物体检索的方式进行检索,但如果用户感兴趣的并不是”蒙娜丽莎”这幅画本身,而是”画像”这一类图片,也就是说,用户所感兴趣的已经是对这幅具体的画进行了类别概念的抽象,那么此时检索系统应该以相同类别检索的方式进行检索。相同类别图像检索目前已广泛应用于图像搜索引擎,医学影像检索等领域。
对于相同类别图像检索,面临的主要问题是属于同一类别的图像类内变化巨大,而不同类的图像类间差异小。如图1.3右图所示,对于”湖泊”这一类图像,属于该类别的图像在表现形式上存在很大的差异,而对于图1.3右图下面所示的”dog” 类和”woman”类两张图像,虽然它们属于不同的类,但如果采用低层的特征去描述,比如颜色、纹理以及形状等特征,其类间差异非常小,直接采用这些特征是很难将这两者分开的,因此相同类别图像检索在特征描述上存在着较大的类内变化和较小的类间差异等挑战。
三、提升检索性能的一些思考
1、 检索目标背景杂乱
(1)在实例检索中,复杂的背景噪声直接影响了最终的搜索性能。因此很多队伍首先尝试使用目标检测(比如faster-rcnn)RPN定位感兴趣的区域,然后在进一步地学习特征,比较相似度。另外,当没有bounding box训练数据时,弱监督的目标定位也是一种有效的方法。
(2)预处理:自动定位用户感兴趣的商品,去除背景、多主体等因素的影响,也有利于抽取的语义特征的对齐。语义对齐方式,常见操作有商品检测框对齐、旋转对齐、局部关键点对齐等。(淘宝搜图用户可以手动调整选择检测框)
2、 类内差异性与类间相似性(高层语义和低层特征融合)
很多方法都是用最后一个卷积层或全连接层的特征进行检索,而由于高层的特征已经损失了很多细节信息(对于更深的网络,损失更严重。高层语义和低层特征融合很重要。不同层的特征图谱(feature map)进行融合,这不仅利用了高层特征的语义信息,还考虑了低层特征的细节纹理信息,使得实例搜索更精准。GoogLeNet-22网络,对于最后的8层特征图(从Inception 3b到Inception 5b),首先使用最大池化对这些不同尺度的特征图分别进行子采样(转换为相同尺寸的特征图),并使用的卷积对这些采样结果进一步地处理。然后对这些特征图做线性加权(由的卷积完成),最后在此基础上,使用sum pooling得到最终的图像特征。在训练时,我们根据所提供的训练数据,通过优化基于余弦距离的triplet ranking loss来端到端学习这些特征。因此在测试时,可以直接使用特征之间的余弦距离来衡量图像的相似度。
(例如一件衣服除了一件是圆领另一件是V领,其他颜色,纹理都是一摸一样的,领口形状就是高层语义,颜色纹理就是低层特征。要想达到好的检索效果最好都要兼顾。(类似特征金子塔FPN))
3、 特征降维
特征提取得到的特征表示经常是含有很多组不同分量的高纬矢量,高纬度对后面的分析带来不便,分量之间也可能相互关联,需要特征降维。维度低且判别性好的特征才能保证检索的性能与效率。用于降维学习的数据一般是商品同款数据;常用的降维方式有线性判别分析(LDA)、图像分类与度量学习(无监督马氏度量,PCA主成分分析特征抽取:进行去均值化, 即计算所有数据的平均值, 并把?个数据减去该平均值;计算协方差矩阵S; 计算S 的特征值和特征向量 并按特征值大小降序排列;选择前K (K为降维后的维数)个特征值对应的特征向呈组成变换矩阵; 使用变换矩阵对原数据进行变换)等
4、 提升速度
(1) 特征聚类,如果数据库数据量比较小,用于检索的特征纬数也比较小可以使用穷举法直接检索。但是如果数据很多,特征纬度很高的情况下,这种方法就很慢,可以用聚类缩小搜索范围。K-means 聚类,(选择k个点作为初始质心,将每个点指派到最近的质心,形成k个簇,重新计算每个簇的质心,反复操作,直到簇不发生变化,或者到最大迭代次数。优点容易实现,缺点可能收敛到局部最小值,大规模数据收敛慢)。找出和待搜索图像距离最小的聚类中心,之后计算待搜索图像和这个聚类中心所对应的簇中的每个图像的距离,返回若干距离最小的作为结果。
(2) 通过识别目标主体的品类,使得在检索时可以在该类别的数据子库进行搜索,提升检索的效果与效率。
5、 将图像相关文字描述与图像的低层特征融入到一个CBIR系统中。(百度,淘宝可以先输入图片之后,再输入文字描述)
6、 反馈技术。图像检索最终的用户是人,通过交互手段来捕获人对图像内容的认知。体现出人与系统的协同工作,打分,在线学习,检索性能的评价指标。(强化学习,给搜索结果一个reward)
7、 一阶池化特征和二阶池化特征融合
二阶池化方法通过捕捉图像二阶统计变量,如协方差等,往往可以取得更好的搜索准确率。
8、联合特征学习和属性预测
与DeepFashion类似,同时学习特征和预测图片的属性(多任务训练),从而得到更具区分性的特征。(loss函数为Softmax loss 和度量学习 loss相加)