DMHI

DMIH

基于object的图像检索,对多尺度的instance进行hash编码
解决的问题是:通常在图像检索中,使用一张图像,找到与其相类似的图像,本文的想法是:通过输入多张图像来检索同时包含这多张图像中物体的图像。比如输入奥巴马和普京的照片,检索得到奥巴马和普京共同存在的图像。
本文的方法:使用一种弱监督的DMIH框架来实现图像检索,这个框架包含两部分内容,物体的检测以及对物体的hash表示。将物体检测问题转化为(二值)多实例学习问题,每个instance就是object proposal,这些proposal从多尺度的卷积特征图上得到,类似于SSD。对于hash学习,使用的是image piar,通过比较图像对中最大可能的proposal的hash值来学习他们之间的语义关系。

DMIH将两个部分组合在一起,形成一个端到端的网络,这个网络以CNN模型为基础,本文是VGG,在VGG基础上实现MIL和hashing learning。优化方式是SGD,BP。在训练之后,使用包含包含物体的object proposals 的hash值来表示图像。
图像级别:正例/负例,对于图像的所有proposal,如果属于某个类的概率大于某个阈值,就认为这个图像为正例,否则图像不包含任何一类,认为图像为负例。

总结:
1. 提出了一种object-based的图像检索框架,可以实现多物体查询
2. 融合MIL和hash学习。
3. 在三个datasets上效果比baseline要好,baseline是DSRH、PmH等

网络分为三个部分:
1、 基础网络:VGG16。提取图像特征
2、 FCN,全卷积网络层,利用VGG16的最后一层或者几层构建全卷积网络,实现不同尺度的feature maps。在这些feature map上提取proposal。

https://www.cnblogs.com/hellocwh/p/8729260.html
前两层合起来类似于SSD网络。SSD网络中生成的feature maps 的大小为38, 19, 10, 5, 3, 1。卷积核的大小为3*3*输出通道,对于不同尺度的feature maps,38 * 38 * 4 + 19 * 19 * 6 + 10 * 10 * 6 + 5 * 5 * 6 + 3 * 3 * 4 + 1 * 1 * 4 = 8732 个anchor。

3、 Hashing layer 和 MIL layer。两个层不是公用一个anchor,也就是说anchor个数虽然相同,但是生成的每个anchor的维度是不同的,对于hashing layer 维度为hash_size,对于MIL layer,维度为classes_num

本文的方法
以VGG16为基础网络,采用SSD的框架模式,生成多尺度的feature maps,并由此产生多个anchor。使用这些anchor来进行类别的预测和hash码的生成。
具体:
SSD:在VGG16的顶层,使用3*3_s1的滑动窗口生成多尺度的卷积层,类似于SSD生成卷积层的方式。卷积核的个数为3*3*p,p是前一层的feaure maps数。也就是前一层的channel
最终,Object proposals 被送入MIL/hashing layer用来物体检测和hash code

Ii I i : 表示图像,索引是 i
Xi={xi1,...,xiM} X i = { x 1 i , . . . , x M i } : 表示M个object proposals。 ximRd x m i ∈ R d
N N : 表示类别总数。

对于每幅图像,它可能包含的不止一个类别的物体,所以使用 tci{0,1} 来表示图像 Ii I i 是否包含类别c的物体。
如果 tic=0,forallc t c i = 0 , f o r a l l c 就认为图像 Ii I i 不包含任何物体。

optimization

需要训练的参数为:VGG16顶层的卷积核, f(),{lc()}Nc=1 f ( ∗ ) , { l c ( ∗ ) } c = 1 N

pic,m=lc(xim)=σ(wTcxim+bc) p c , m i = l c ( x m i ) = σ ( w c T x m i + b c )
σ σ 是sigmoid function
得到的是每个图像中的每个proposal属于每个类的概率维度为 R1 R 1

然后使用 global pooling function g() g ( ∗ ) 来得到
Pic=g(pic,1,pic,2,...) P c i = g ( p c , 1 i , p c , 2 i , . . . )
维度为 RN R N , 使用的是 maxm(pic,m) m a x m ( p c , m i ) : 出发点是一幅图像不能包含很多的类别,所有关注于最为可能的物体类别,就是概率最大的:

JMIL=ic(ticlogPic+(1tic)log(1Pic)) J M I L = − ∑ i ∑ c ( t c i l o g P c i + ( 1 − t c i ) l o g ( 1 − P c i ) )

也就是对每个类来说使用交叉上,然后将每幅图像的每个类的交叉熵加和
如果图像不包含任何的类,所有的 Pic P c i 被抑制

然后讨论 hash function f() f ( ∗ )

him{0,1}k h m i ∈ { 0 , 1 } k k为hash_size

him=f(xim) h m i = f ( x m i )

Hi={hi1,...,hiM} H i = { h 1 i , . . . , h M i }

Jpairhash(Ii,Ij)={(c,c)|tic=tjc=1}Φ(Hi,Hj,c,c) J p a i r h a s h ( I i , I j ) = ∑ { ( c , c ′ ) | t c i = t c ′ j = 1 } Φ ( H i , H j , c , c ′ )

if
c=c c = c ′

Φ(Hi,Hj,c,c)=Dst(hiIdx(Pic),hjIdx(Pjc)) Φ ( H i , H j , c , c ′ ) = D s t ( h I d x ( P c i ) i , h I d x ( P c ′ j ) j )

else:
Φ(Hi,Hj,c,c)=max(0,βDst(hiIdx(Pic),hjIdx(Pjc))) Φ ( H i , H j , c , c ′ ) = m a x ( 0 , β − D s t ( h I d x ( P c i ) i , h I d x ( P c ′ j ) j ) )

Idx(Pic)=argmaxmPic,m I d x ( P c i ) = a r g m a x m P c , m i

作者提到如果是可训练的网络,对于汉明距离,它是离散的并且不可微分的,所以使用激励函数近似替代 hard hash, 形成 soft hash

h^im=f(xim)=σ(WTfxim+bf) h ^ m i = f ( x m i ) = σ ( W f T x m i + b f )

通过这个近似hash 得到最终的 0-1 hash

维度方面:
WfRkd W f ∈ R k ∗ d
bfRk1 b f ∈ R k ∗ 1
Dst(,) D s t ( ∗ , ∗ ) 是欧式距离

所以问题: d 应该取多大?

整个loss:

J=(i,j)Jpairhash(Ii.Ij)+λJMIL J = ∑ ( i , j ) J p a i r − h a s h ( I i . I j ) + λ J M I L

训练之后,查询阶段:
object proposals 的概率值大于 θ=0.7 θ = 0.7 将它的hash码作为图像代表的一部分。就是用它的hash码来表示图像,但是这个hash码可能不止一个,因为图像内部可能包含多个类别概率大于0.7 的proposal。
将这些hash码组合成为一个hash bag, H^i H ^ i 来表示图像 Ii I i
在进行查询的时候,可以使用一个或者多个图像,将这些输入到DMIH中,会得到一系列的 hash codes,

H^Q={hQ1,hQ2,...,hQn} H ^ Q = { h 1 Q , h 2 Q , . . . , h n Q }

使用汉明距离

UHammDst(H^Q,H^i)=r=1nminhijH^i||hijhQr||1 U H a m m D s t ( H ^ Q , H ^ i ) = ∑ r = 1 n m i n h j i ∈ H ^ i | | h j i − h r Q | | 1

最后通过汉明距离对检索到的图像进行排序

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值