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
: 表示类别总数。
对于每幅图像,它可能包含的不止一个类别的物体,所以使用
来表示图像
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
最后通过汉明距离对检索到的图像进行排序