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
     
最后通过汉明距离对检索到的图像进行排序
 
