MultiBox 详解
MultiBox 详解
Scalable Object Detection using Deep Neural Networks
在 R-CNN 网络中,提取 region proposals 使用的是一种传统的基于搜索的策略,这种策略的时间复杂度高而且生成的 region proposals 数量很多,不利于后续网络对生成的 region proposals 进行分类。在这篇论文中,作者提出了一种利用深度学习的方法提取 region proposals,大大减少了时间复杂度和生成 region proposals 的数量。而且可以进行多目标的检测。为之后提出的各种利用 CNN 网络生成 region proposals 的方法奠定了基础。
其中作者的主要实现的功能就是:在不知道类别的情况下定位目标,并提供定位此目标的 confidence。可以理解为,在不知道要分几类的情况下,定位出来图片中所有可能的候选目标。
一、生成 Region proposals
这一步也是本论文的核心,即如何使用 CNN 网络生成 region proposals。注意:无论是生成 Region 还是进行分类,对于 CNN 网络部分,作者使用的都是 AlexNet。
作者定义了一个新的 loss,通过最优化这个新的 loss,实现了对目标的定位,以及提供了在此回归框下的目标的置信度(此时还不知道目标的类别,只是预测了它框住的是一个物体的概率)
(一)网络部分
网络输出的 region proposals 的数量是固定的,这个数量通过超参数 K 指定。在试验中,作者使用的 K = 100 K=100 K=100 或 K = 200 K=200 K=200。我们将第 i i i 个对象框,以及与其关联的置信度,设置为最后一层的节点值。对于每个生成的 region 都有5个值,其中两个坐标(2 x 2 = 4 个值),还有一个置信度(1 个值)
具体做法是,将两个输出层都连接到最后的隐藏层。其中,第一个输出层用于回归 Bounding Box,第二个输出层用于得到置信度。
(二)Bounding Box
将 Bounding Box 的左上角坐标,和右下角坐标设置为 4 个节点值。使用符号 l i l_i li 表示。其中 l i ∈ R 4 l_i\in\mathbb{R^4} li∈R4。
其中坐标需要进行归一化,具体的做法是:点的 x 坐标除以图像的宽,点的 y 坐标除以图像的高。经过这样的处理,x, y 的值就相当于占整个图像的比例,就和图像的大小无关了。
(三)置信度
置信度代表,圈住的 Bounding Box 中的东西,是一个物体的概率(这里并不知道类别)。这个置信度,使用模型最后一层的一个节点值表示。符号记为: c i c_i ci,其中 c i ∈ [ 0 , 1 ] c_i\in[0,1] ci∈[0,1],是通过 sigmoid 函数压缩网络输出数值得到。
(四)损失函数
数学符号表示:
(1) K K K 表示生成的 Bounding Box 的数量
(2) M M M 表示 ground truth 的数量
(3) l i l_i li 表示第 i i i 个 Bounding Box 的左上角、右下角坐标的四个值。其中 i ∈ { 1 , 2 , 3 , . . . , K } i\in\{1,2,3,...,K\} i∈{1,2,3,...,K}
(4) g j g_j gj 表示第 j j j 个 ground truth 的左上角、右下角坐标的四个值,其中 j ∈ { 1 , 2 , 3 , . . . , M } j\in\{1,2,3,...,M\} j∈{1,2,3,...,M}
(5) c i c_i ci 表示第 i i i 个 Bounding Box 的置信度
(6) x i j ∈ { 0 , 1 } x_{ij}\in\{0,1\} xij∈{0,1} 表示第 i i i 个预测值和第 j j j 个真值匹配,其中 i ∈ { 1 , 2 , 3 , . . . , K } i\in\{1,2,3,...,K\} i∈{1,2,3,...,K} 、 j ∈ { 1 , 2 , 3 , . . . , M } j\in\{1,2,3,...,M\} j∈{1,2,3,...,M}
1、Bounding Box Loss
回归 Bounding Box 部分的损失的定义如下:
F m a t c h ( x , l ) = 1 2 ∑ i , j x i j ∣ ∣ l i − g j ∣ ∣ 2 2 F_{match}(x,l)=\frac{1}{2}\sum_{i,j}x_{ij}||l_i-g_j||_2^2 Fmatch(x,l)=21i,j∑xij∣∣li−gj∣∣22
使用 L 2 L_2 L2 正则最小化 Bounding Box 与 Ground Truth 的差值。当 x i j = 1 x_{ij}=1 xij=1 时,说明第 i i i 个 Bounding Box 与第 j j j 个 Ground Truth 是匹配的,那么就计算损失,用于进一步减少 Bounding Box 与 Ground Truth 的差值。相反,如果 x i j = 0 x_{ij}=0 xij=0 说明不匹配,那么就不需要优化 Bounding Box 的位置。
2、Confidence Loss
置信度的损失定义如下:
F c o n f ( x , c ) = − ∑ i , j x i j l o g ( c i ) − ∑ i ( 1 − ∑ j x i j ) l o g ( 1 − c i ) F_{conf}(x,c)=-\sum_{i,j}x_{ij}log(c_i)-\sum_i(1-\sum_jx_{ij})log(1-c_i) Fconf(x,c)=−i,j∑xijlog(ci)−i∑(1−j∑xij)log(1−ci)
使用交叉熵损失的变形优化 confidence,我们可以把 ∑ j x i j = 1 \sum_jx_{ij}=1 ∑jxij=1 看做 Bounding Box i i i 能匹配到 Ground Truth 的概率。那么 ∑ j x i j = 0 \sum_jx_{ij}=0 ∑jxij=0 就是 Bounding Box i i i 不能能匹配到 Ground Truth 的概率。当 Bounding Box i i i 能匹配到 Ground Truth 时 1 − ∑ j x x j = 0 1-\sum_jx_{xj}=0 1−∑jxxj=0,即我们只优化 F c o n f ( x , c ) F_{conf}(x,c) Fconf(x,c) 的前半部分的 − l o g ( c i ) -log(c_i) −log(ci),反之当 Bounding Box i i i 不能匹配到 Ground Truth 时 ∑ j x i j = 0 \sum_jx_{ij}=0 ∑jxij=0, 1 − ∑ j x x j = 1 1-\sum_jx_{xj}=1 1−∑jxxj=1,即我们只优化 F c o n f ( x , c ) F_{conf}(x,c) Fconf(x,c) 的后半部分的 − l o g ( 1 − c i ) -log(1-c_i) −log(1−ci)。
换句话说,当 i,j 匹配时(Bounding Box 与 Ground Truth 匹配),最小化损失函数会增大 confidence;当 i, j 不匹配时,最小化损失函数会减小 confidence。
3、最终的 Loss
我们引入一个权重 α \alpha α 来联合 Bounding Box Loss 和 Confidence Loss,具体式子如下:
F ( x , l , c ) = α F m a t c h ( x , l ) + F c o n f ( x , c ) F(x,l,c)=\alpha F_{match}(x,l)+F_{conf}(x,c) F(x,l,c)=αFmatch(x,l)+Fconf(x,c)
或者我们可以换一种方式来理解,对于一个 Bounding Box 来说,我们只有先与 Ground Truth 先匹配,再计算 Confidence 才有意义,即 F m a t c h ( x , l ) F_{match}(x,l) Fmatch(x,l) 为条件,根据拉格朗日乘子法,我们对条件乘以一个拉格朗日乘子 α \alpha α ,那么我们也可以得到上式。 α \alpha α 作者设的 0.3。
我们优化上面的式子:
上式对
l
,
c
l, c
l,c 求一阶偏导的结果如下:
(五)三种优化方法
- 对 Ground Truth 的位置进行聚类,找到K个这样的聚类/中心点,我们可以使用它们作为每个预测位置的先验。因此,该学习算法被鼓励对每个预测位置的残差进行先验学习。
- 再匹配 Ground Truth 之前,可以先挑出来 K 个最佳匹配,然后对这些最佳匹配进行优化。
- 可以每个类生成 K 个 region(这种方法生成的 Region 的数量会随类别数量暴增,不推荐)
二、对 Region Proposals 分类
分类使用的也是 CNN 网络 AlexNet。即第一个 AlexNet 用于生成 Region Proposals,第二个 AlexNet 用于分类。
对所有的 Region Proposals 先进行 NMS,剔除重复的框。然后再送入 CNN 网络进行分类。这里作者使用的和前面生成 Region Proposals 的是同一种网络,都是 AlexNet。