DMHI

  • Post author:
  • Post category:其他


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











I








i















I

i



: 表示图像,索引是 i











X








i







=


{






x






i






1







,


.


.


.


,





x






i






M









}










X

i

=

{

x

1

i

,

.

.

.

,

x

M

i

}



: 表示M个object proposals。










x






i






m













R






d

















x

m

i

R

d











N












N



: 表示类别总数。

对于每幅图像,它可能包含的不止一个类别的物体,所以使用





t


c


i






{


0


,


1


}




来表示图像










I








i















I

i



是否包含类别c的物体。

如果










t






i






c







=


0


,


f




o


r


a


l


l


c










t

c

i

=

0

,

f

o

r

a

l

l

c



就认为图像










I








i















I

i



不包含任何物体。

optimization

需要训练的参数为:VGG16顶层的卷积核,







f




(





)


,


{






l






c







(





)





}






N










c


=


1

















f

(

)

,

{

l

c

(

)

}

c

=

1

N












p






i








c


,


m









=





l






c







(





x






i






m







)


=


σ




(





w






T








c










x






i






m







+





b






c







)










p

c

,

m

i

=

l

c

(

x

m

i

)

=

σ

(

w

c

T

x

m

i

+

b

c

)











σ












σ



是sigmoid function

得到的是每个图像中的每个proposal属于每个类的概率维度为










R






1















R

1


然后使用 global pooling function







g




(





)










g

(

)



来得到











P








i






c







=


g




(





p






i








c


,


1









,





p






i








c


,


2









,


.


.


.


)










P

c

i

=

g

(

p

c

,

1

i

,

p

c

,

2

i

,

.

.

.

)




维度为










R








N



















R

N



, 使用的是







m


a





x






m







(





p






i








c


,


m









)










m

a

x

m

(

p

c

,

m

i

)



: 出发点是一幅图像不能包含很多的类别,所有关注于最为可能的物体类别,就是概率最大的:










J










M




I




L









=















i

















c







(





t






i






c







l


o


g







P








i






c







+


(


1








t






i






c







)


l


o


g




(


1








P








i






c







)


)










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

)

)



也就是对每个类来说使用交叉上,然后将每幅图像的每个类的交叉熵加和

如果图像不包含任何的类,所有的










P








i






c















P

c

i



被抑制

然后讨论 hash function







f




(





)










f

(

)












h






i






m










{



0


,


1





}






k















h

m

i

{

0

,

1

}

k



k为hash_size











h






i






m







=


f




(





x






i






m







)










h

m

i

=

f

(

x

m

i

)












H








i







=


{






h






i






1







,


.


.


.


,





h






i






M









}










H

i

=

{

h

1

i

,

.

.

.

,

h

M

i

}













J










p


a


i





r






h







a


s


h









(





I








i







,





I








j







)


=


















{



(


c


,





c














)




|







t






i






c







=





t










j







c







=


1


}









Φ


(





H








i







,





H








j







,


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













Φ


(





H








i







,





H








j







,


c


,





c














)






=


D


s


t


(





h






i








I




d




x


(





P








i






c







)









,





h






j








I




d




x


(





P












j







c







)









)














Φ

(

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:









Φ


(





H








i







,





H








j







,


c


,





c














)






=


m


a


x


(


0


,


β











D


s


t


(





h






i








I




d




x


(





P








i






c







)









,





h






j








I




d




x


(





P












j







c







)









)






)














Φ

(

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

)

)







I




d




x


(





P








i






c







)


=


a


r


g




m


a





x






m










P








i








c


,


m

















I

d

x

(

P

c

i

)

=

a

r

g

m

a

x

m

P

c

,

m

i

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

















h






^













i






m







=


f




(





x






i






m







)


=


σ




(





W








T








f












x






i






m











+





b






f









)














h

^

m

i

=

f

(

x

m

i

)

=

σ

(

W

f

T

x

m

i

+

b

f

)


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

维度方面:











W








f















R








k





d



















W

f

R

k

d














b






f















R








k





1

















b

f

R

k

1











D


s


t


(





,





)










D

s

t

(

,

)



是欧式距离


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

整个loss:









J




=














(


i


,


j


)












J










p


a


i


r





h


a


s


h









(





I








i







.





I








j







)






+


λ





J










M




I




L





















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



来表示图像










I








i















I

i





在进行查询的时候,可以使用一个或者多个图像,将这些输入到DMIH中,会得到一系列的 hash codes,















H








^













Q







=


{






h






Q






1







,





h






Q






2







,


.


.


.


,





h






Q






n







}










H

^

Q

=

{

h

1

Q

,

h

2

Q

,

.

.

.

,

h

n

Q

}

使用汉明距离









U




H




a


m


m


D


s


t


(










H








^













Q







,










H








^













i







)


=


















r


=


1








n







m


i





n











h






i






j


















H








^













i
















|






|







h






i






j













h






Q






r









|









|








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

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