如图11所示,一个Bilinear模型Β由一个四元组组成:Β=(fA,fB,Ρ,C)。其中,fA,fB代表特征提取函数,即图中的网络A、B,P是一个池化函数(Pooling Function), C则是分类函数。 图11 Bilinear模型的组成 特征提取函数f (?)的作用可以看作一个函数映射,f:LXI→RcXD将输入图像I与位置区域L映射为一个cXD 维的特征。而两个特征提取函数的输出,可以通过一个双线性操作进行汇聚,得到最终的Bilinear特征: . 其中池化函数 的作用是将所有位置的Bilinear特征汇聚成一个特征。Bilinear CNN中所采用的池化函数是将所有位置的Bilinear特征累加起来: 到此Bilinear向量即可表示该细粒度图像,后续则为经典的全连接层进行图像分类。一种对Bilinear CNN模型的解释是,网络A的作用是对物体/部件进行定位,即完成前面介绍算法的物体与局部区域检测工作,而网络B则是用来对网络A检测到的物体位置进行特征提取。两个网络相互协调作用,完成了细粒度图像分类过程中两个最重要的任务:物体、局部区域的检测与特征提取。另外,值得一提的是,Bilinear模型由于其优异的泛化性能,不仅在细粒度图像分类上取得了优异效果,还被用于其他图像分类任务,如行人重检测(Person Re-ID)。 细粒度图像检索 以上介绍了细粒度图像分类的几个代表性工作。图像分析中除监督环境下的分类任务,还有另一大类经典任务——无监督环境下的图像检索。相比细粒度图像分类,检索任务上的研究开展较晚,下面重点介绍两个该方面的工作。 图像检索(Image Retrieval)按检索信息的形式,分为“以文搜图”(Text-Based)和“以图搜图”(Image-Based)。在此我们仅讨论以图搜图的做法。传统图像检索任务一般是检索类似复制的图像(Near-Duplicated Images),如图12(b)所示。左侧单列为Query图像,右侧为返回的正确检索结果。可以看到,传统图像检索中图像是在不同光照不同时间下同一地点的图像,这类图像不会有形态、颜色、甚至是背景的差异。 图12 传统图像检索任务 而细粒度图像检索,如图13(a),则需要将同为“绿头鸭”的图像从众多不同类鸟类图像中返回;同样,需要将“劳斯莱斯幻影”从包括劳斯莱斯其他车型的不同品牌不同车型的众多图像中检索出来。细粒度图像检索的难点,一是图像粒度非常细微;二是对细粒度图像而言,哪怕是属于同一子类的图像本身也具有形态、姿势、颜色、背景等巨大差异。可以说,细粒度图像检索是图像检索领域和细粒度图像分析领域的一项具有新鲜生命力的研究课题。 图13 细粒度图像检索 L. Xie、J. Wang等在2015年首次提出细粒度图像“搜索”的概念,通过构造一个层次数据库将多种现有的细粒度图像数据集和传统图像检索(一般为场景)融合。在搜索时,先判断其隶属的大类,后进行细粒度检索。其所用特征仍然是人造图像特征(SIFT等),基于图像特征可以计算两图相似度,从而返回检索结果(如图14所示)。 图14 细粒度图像搜索数据库SCDA SCDA SCDA(Selective Convolutional Deor Aggregation)是我们近期提出的首个基于深度学习的细粒度图像检索方法。同其他深度学习框架下的图像检索工作一样,在SCDA中,细粒度图像作为输入送入Pre-Trained CNN模型得到卷积特征/全连接特征(如图15所示)。区别于传统图像检索的深度学习方法,针对细粒度图像检索问题,我们发现卷积特征优于全连接层特征,同时创新性的提出要对卷积描述子进行选择。不过SCDA与之前提到的Mask-CNN的不同点在于,在图像检索问题中,不仅没有精细的Part Annotation,就连图像级别标记都无从获取。这就要求算法在无监督条件下依然可以完成物体的定位,根据定位结果进行卷积特征描述子的选择。对保留下来的深度特征,分别做以平均和最大池化操作,之后级联组成最终的图像表示。 图15 SCDA检索方法流程 (责任编辑:本港台直播) |