(一) Title
论文:https://arxiv.org/abs/2106.06072
代码:https://github.com/ProbIOU
(二) Summary
研究背景:
目前目标检测算法基本上是通过bounding boxes来编码和表示object的形状和形状的,也就是有边界框的长宽和中心点坐标,general focal loss中也提到过在GT标注时实际上我们的GT并不是理论上的GT,而是认为标注的,有的时候物体的边界不好确定下来,对于模型来说,通过这种方式最多能够学习到一种带有置信度的标注,也就是对预测结果的确信程度。
本文方法:
本文中通过使用Gaussian分布来对目标区域进行模糊表示(fuzzy representation),相当于使用椭圆来表示边界框.接着本文针对高斯分布提出了一个基于Hellinger Distance的相似度度量,可以看成是Probabilistic Intersection-over-Union(ProbIoU),ProbIoU损失函数的优势在于:
- ProbIoU对于尺度缩放是不变的,不会随着尺度的变化导致损失值发生改变。
目前该方法存在的问题是:对于方形w=h目标没有办法给出角度信息。
实验结果:
本文提出的Gaussian representations更加接近annotated segmentation,并且ProbIoU可以处理Gaussian representations的回归问题,ProbIoU能够很方便地添加到object detector中。
(三) Research Object
边界框的表示方式
- HBB,水平边界框,通过4个参数就能够表示,对于大型数据集来说标注比较友好。但是存在的问题是边界框包围的内容中包含了一部分背景,特别是对于拉长和旋转目标来说。
- 二进制Mask表示,通过mask来表示对象,标注时间较长,能够更加精细地表示对象。而且最后需要对应到原图大小上,模型架构比较复杂。
- OBB,旋转边界框,在RoI Transformer(不是Transformer encorder & decorder,仅仅表示一种变换)中将horizontal RoI变换成了OBB RoI,输出带有角度的proposals。
定位损失
- HBB边界框通常使用参数化损失parameter-wise loss components(比如说 l 1 l_1 l1和 l 2 l_2 l2正则,或者smooth l 1 l1 l1),由于参数化损失隐式地假设每一个参数之间都是独立的,也就是一个参数的改变并不会影响另一个参数,因此参数化的损失might not converge consistently to the ground-truth(GT) annotation,
- 基于IoU的损失,IoU loss,GIoU,DIoU,CIoU,PIoU以及GWD
本文探索通过Gaussian Bounding Boxes(GBBs)来编码目标的representations,通过对目标使用GBBs的表示方式,并引入了一个可微分的损失来回归旋转框的参数或者直接回归GBB的参数(mean vector以及协方差矩阵covariance matrix).
(四) Problem Statement
本文提出使用Gaussian Bounding Boxes来表示目标,怎样得到目标的Gaussian Bounding Boxes表示呢?怎样回归边界框呢?
(五) Method
本文的核心思想就是:通过rotated Gaussian distribution来表示object,高斯分布可以参数化成均值向量 μ = ( x 0 , y 0 ) T \mu=\left(x_{0}, y_{0}\right)^{T} μ=(x0,y0)T以及协方差矩阵 Σ \Sigma Σ,构成了一个椭圆,也就相当于使用椭圆来对二维区域进行表示。
- 目标检测的工作实际上是基于预测框和真实框之间的距离差异构建损失函数进行回归,同样在这里也是这样,因为使用了高斯分布来表示目标,所以这里首先需要定义两个分布之间的距离.这个需要探索大量的统计工具来衡量.
- 高斯分布的形式带来了这些度量形式的closed-form differentiable表示,比如Bhatacharyya distance以及Kullback-Leibler divergence.为什么说高斯分布的形式对于这些度量能够可微呢?还是Kullback-Leibler divergence我之前记得貌似是不满足三角不等式的呀!
5.1 如何使用高斯分布来表示边界框
二维高斯分布的均值向量 μ = ( x 0 , y 0 ) T \boldsymbol{\mu}=\left(x_{0}, y_{0}\right)^{T} μ=(x0,y0)T,协方差矩阵 Σ \Sigma Σ,协方差矩阵具有两种表示方式:
Σ = [ a c c b ] = R θ [ a ′ 0 0 b ′ ] R θ T = [ a ′ cos 2 θ + b ′ sin 2 θ 1 2 ( a ′ − b ′ ) sin 2 θ 1 2 ( a ′ − b ′ ) sin 2 θ a ′ sin 2 θ + b ′ cos 2 θ ] \Sigma=\left[\begin{array}{ll} a & c \\ c & b \end{array}\right]=R_{\theta}\left[\begin{array}{cc} a^{\prime} & 0 \\ 0 & b^{\prime} \end{array}\right] R_{\theta}^{T}=\left[\begin{array}{cc} a^{\prime} \cos ^{2} \theta+b^{\prime} \sin ^{2} \theta & \frac{1}{2}\left(a^{\prime}-b^{\prime}\right) \sin 2 \theta \\ \frac{1}{2}\left(a^{\prime}-b^{\prime}\right) \sin 2 \theta & a^{\prime} \sin ^{2} \theta+b^{\prime} \cos ^{2} \theta \end{array}\right] Σ=[accb]=Rθ[a′00b′]RθT=[a′cos2θ+b′sin2θ21(a′−b′)sin2θ21(a′−b′)sin2θa′sin2θ+b′cos2θ]
第一种表示方式一个对称的协方差矩阵,从埃尔米特矩阵的定义来看(矩阵中每一个第i行第j列的元素与第j行第i列的元素的共轭相同),协方差矩阵就是埃尔米特矩阵根据埃尔米特矩阵的性质可知:如果埃尔米特矩阵的特征值都是正数,那么这个矩阵就是正定矩阵,如果他们是非负的,那这个矩阵就是半正定矩阵。
从上面的性质可知, a > 0 , a b − c 2 > 0 , b > 0 a>0,ab-c^2>0,b>0 a>0,ab−c2>0,b>0.
第二种表示方式是使用旋转矩阵进行表示。其中旋转矩阵的表示方式为,给定坐标 ( x 1 , y 1 ) (x_1,y_1) (x1,y1),绕坐标 ( 0 , 0 ) (0,0) (0,0)顺时针旋转 θ \theta θ角度后得到坐标 ( x , y ) (x,y) (x,y),计算方式如下:
[ x y ] = [ x 1 c o s θ − y 1 s i n θ y 1 c o s θ + x 1 s i n θ ] = [ c o s θ − s i n θ s i n θ c o s θ ] [ x 1 y 1 ] = R θ [ x 1 y 1 ] \left[\begin{array}{ll} x \\ y \end{array}\right]=\left[\begin{array}{ll} x_1cos\theta -y_1sin\theta \\ y_1cos\theta+x_1sin\theta \end{array}\right]=\left[\begin{array}{ll} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{array}\right]\left[\begin{array}{ll} x_1 \\ y_1 \end{array}\right]=R_{\theta}\left[\begin{array}{ll} x_1 \\ y_1 \end{array}\right] [xy]=[x1cosθ−y1sinθy1cosθ+x1sinθ]=[cosθsinθ−sinθcosθ][x1y1]=Rθ[x1y1]因此从上面两种表示方式来看,为了得到协方差矩阵可以直接回归 ( a , b , c ) (a,b,c) (a,b,c)或者回归 ( a ′ , b ′ , θ ) (a^{\prime},b^{\prime},\theta) (a′,b′,θ),对于旋转边界框来说,使用 ( a ′ , b ′ , θ ) (a^{\prime},b^{\prime},\theta) (a′,b′,θ)表示是很合适的,而 ( a ′ , b ′ , θ ) (a^{\prime},b^{\prime},\theta) (a′,b′,θ)和 ( b ′ , a ′ , θ + π 2 ) (b^{\prime},a^{\prime},\theta+\frac{\pi}{2}) (b′,a′,θ+2π)表示的都是相同的协方差矩阵,为了 ( a ′ , b ′ , θ ) (a^{\prime},b^{\prime},\theta) (a′,b′,θ)形式下能够有一个独一无二表示方式,这里限制 θ ∈ [ − π 4 , π 4 ] \theta \in [-\frac{\pi}{4},\frac{\pi}{4}] θ∈[−4π,4π],当 a ′ = b ′ a^{\prime}=b^{\prime} a′=b′时,表示的是各项同性的高斯核,此时角度 θ \theta θ取任何值都对应着相同的协方差矩阵。对于方形的矩形框来说,旋转边界框仍然对应着一个角度,然而GBB的表示方式给出的角度却可以是任意的,从而导致了从OBB表示变换成GBB是不可逆的,会存在角度信息的丢失
作者是怎么想到从边界框表示的角度来引入GBB呢?感觉很妙啊,想法很妙,然后接下来的问题是现有的对目标的OBB,HBB以及mask表示中得到目标GBB的表示呢?
- 获取GBB的关键就是得到均值向量和协方差矩阵。首先假设目标区域使用一个2D的binary区域来进行表示,这个区域又是一个概率密度函数(PDF),均值和方差可以通过对区域进行积分进行表示:
μ = 1 N ∫ x ∈ Ω x , Σ = 1 N ∫ x ∈ Ω ( x − μ ) ( x − μ ) T \boldsymbol{\mu}=\frac{1}{N} \int_{\boldsymbol{x} \in \Omega} \boldsymbol{x}, \Sigma=\frac{1}{N} \int_{\boldsymbol{x} \in \Omega}(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{T} μ=N1∫x∈Ωx,Σ=N1∫x∈Ω(x−μ)(x−μ)T
实际上连续函数的均值和方差的计算方式表示为:
E ( X ) = ∫ − ∞ ∞ x f ( x ) d x Var ( X ) = σ 2 = ∫ ( x − μ ) 2 f ( x ) d x \mathrm{E}(X)=\int_{-\infty}^{\infty} x f(x) \mathrm{d} x \\ \operatorname{Var}(X)=\sigma^{2}=\int(x-\mu)^{2} f(x) d x E(X)=∫−∞∞xf(x)dxVar(X)=σ2=∫(x−μ)2f(x)dx
因此可以得知,均值和协方差计算中的 1 N \frac{1}{N} N