RepPoints: Point Set Representation for Object Detection—用于目标检测的点集表示
用于目标检测的点集表示-RepDet全网最全
International Conference on Computer Vision(ICCV 2019)
对这种检测模型生成的点进行基于点的匹配过程完成跟踪
但是可否保证随着人的运动或者形状的改变每次选取的关键点是否一致呢?
文章目录
- 用于目标检测的点集表示-RepDet全网最全
- 可变形卷积的回顾—Dconv
- 可变形卷积的操作过程
- 可变形的ROI Pooling简介
- 摘要与引言整理
- 摘要总结
- 相关介绍
- 传统的方式存在的问题
- 新方法的相关介绍和引出
- 核心方法—问题描述
- 边界框表示与多级目标检测器的使用
- RepPoints的描述
- 代表点转化为伪框
- RPDet无锚框的检测器
- 基于中心点的初始对象表示
- 使用代表点
- 主干网络和头部架构
- 正负样本的分配策略
- First Localization Stage
- Second Localization Stage
- 分类过程中的正负样本
可变形卷积的回顾—Dconv
首先我们要先掌握好普通卷积的定义公式为:
y ( p 0 ) = ∑ p n ∈ R w ( p n ) ⋅ x ( p 0 + p n ) \mathbf{y}\left(\mathbf{p}_{0}\right)=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}_{n}\right) y(p0)=pn∈R∑w(pn)⋅x(p0+pn)
其中我们的p0代表的是进行卷积操作的时候,卷积核与输入图像重合区域的中心点坐标
这里的蓝色的的部分就对应p0即为中心点的位置坐标。
- Pn表示的是卷积核窗口中相对于中心点的相对偏移的坐标位置。
- pn是属于R的 R定义了卷积操作的kernel size和dilation 可以理解是一个相对位置矩阵。
这里的R在公式中可以表示成集合的形式,实际上也可以表示为下面的矩阵的形式。
下面给出第二个示例,假设要做的卷积是一个5x5的卷积,我们的卷积核大小为5x5,同样我们的相对位置匹配矩阵的大小也为5x5,区别在于这里做的是膨胀卷积(转置卷积)膨胀的系数为5x5。
普通卷积包括这种膨胀卷积的计算的方式对应公式就为:
将相对的位置pn输入到w里面得到的就是卷积核的权重。而x(p0+pn)表示的就是取出这些位置的像素值。根据这些像素的值和我们的权重相乘,求和之后就可以得到卷积的值了。
可变形卷积的定义公式为:
优势在于感受野不再局限于window中的邻近像素
可变形卷积有什么用呢?
同一层的CNN的激活单元的感受野尺度相同,传统的方法的感受野位置受限。
不同的位置对应着不同尺度和形变的物体,卷积层需要能够自动的调整尺度感受野,更好的提取输入的特征.
y ( p 0 ) = ∑ p n ∈ R w ( p n ) ⋅ x ( p 0 + p n + Δ p n ) \mathbf{y}\left(\mathbf{p}_{0}\right)=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}\right) y(p0)=pn∈R∑w(pn)⋅x(p0+pn+Δpn)
△pn 是学习到的值,是浮点型数据,由图像经过普通卷积计算得到(通常也将其称为位置偏移)
△pn可以叫做位置偏移,但在论文中的更多的情况下,我们可以叫做offset是学习到的参数 是学习到的值,是浮点型数据,由图像经过普通卷积计算得到
我们列举下面的一个示例来进行进一步的说明:△pn是如何通过计算来得到的
- conv3x3
- in channel=3
- outchannel=18 (
outchannel=2*kernelsize*kernelsize
) 这里对应的就是原论文里面的2N 就是卷积核里面的个数 - stride=1
- padding =1
我们将两个通道看成是一个整体:计算得到的值分别作为x和y
我们经过展平处理之后就可以得到kernelsize*kernelsize个(x,y)坐标信息,可以将其看作是一个矩阵。
每一个的位置的xy坐标即为我们需要的△pn 的值,它就对应的是卷积核同样的位置处的△pn的值。
到此我们就了解到了△pn值的由来了。
可变形卷积的操作过程
之后我们就需要关注可变形卷积的操作过程了。
我们首先将得到的△pn的结果带入到可变形卷积后面的那部分公式中
p = p 0 + p n + Δ p n = ( 3 , 4 ) + ( − 1 , 1 ) + ( 1.6 , 3.2 ) = ( 3.6 , 8.2 ) \mathbf{p}=\mathbf{p}_{0}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}=(3,4)+(-1,1)+(1.6,3.2)=(3.6,8.2) p=p0+pn+Δpn=(3,4)+(−1,1)+(1.6,3.2)=(3.6,8.2)
得到的就是我们蓝色的像素点偏移之后的位置坐标 (紫色位置处的红点)因为是浮点数近似为一个亚像素位置
(3.6,8.2)临近的4个像素点分别为(3,8)、(3,9)、(4,8)、(4,9)我们根据同样的方式就可以得到另外的8个亚像素点的位置信息。
我们通过矩阵计算的方式得到这种情况下的可变形卷积运算所得到值,将其放入的输出的指定位置。
那么问题就产生了,偏移过的亚像素点的像素值是什么?又该如何得到呢?
其是通过双线性插值
的方法来求得 对于双线性插值算法参考之前自己写过的深度学习中的插值算法里面有一定的讲解。
这里学习的offsets就是要学习的中心点偏移之后得到的点集合的表示信息。也就是之后要提到的了9个默认的代表点。
可变形的ROI Pooling简介
RoIPooling:给定输入特征图 x 和大小为 w × h 且左上角为 p0的 R o I R o I 池化将ROI划分为kxk个bin(网格)区域并输出kxk特征图y
y ( i , j ) = ∑ p ∈ b i n ( i , j ) x ( p 0 + p ) / n i j \mathbf{y}(i, j)=\sum_{\mathbf{p} \in b i n(i, j)} \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}\right) / n_{i j} y(i,j)=p∈bin(i,j)∑x(p0+p)/nij
其中nij是bin中的pixel的数量。第( i , j ) 个bin span
⌊ i w k ⌋ ≤ p x < ⌈ ( i + 1 ) w k ⌉ 和 ⌊ i h k ⌋ ≤ p y < ⌈ ( j + 1 ) h k ⌉ 。 \left\lfloor i \frac{w}{k}\right\rfloor \leq p_{x}<\left\lceil(i+1) \frac{w}{k}\right\rceil \text { 和 }\left\lfloor i \frac{h}{k}\right\rfloor \leq p_{y}<\left\lceil(j+1) \frac{h}{k}\right\rceil \text { 。 } ⌊ikw⌋≤px<⌈(i+1)kw⌉ 和 ⌊ikh⌋≤py<⌈(j+1)kh⌉ 。
在可变形RoI池化中,将偏移量 ∆ p i j ∣ 0 ≤ i , j < k } 加到空间分块位置上.
y ( i , j ) = ∑ p ∈ b i n ( i , j ) x ( p 0 + p + Δ p i j ) / n i j \mathbf{y}(i, j)=\sum_{\mathbf{p} \in b i n(i, j)} \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}+\Delta \mathbf{p}_{i j}\right) / n_{i j} y(i,j)=p∈bin(i,j)∑x(p0+p+Δpij)/nij
用于目标检测的点集表示:这种点集的表示就是通过上面的可变形卷积的形式由物体的中心点坐标所得到的。
摘要与引言整理
介绍完所需要用到的背景知识之后就是介绍本篇论文的主题了用
于目标检测的点集表示(将边界框表示创新的改为使用点集来进行表示)
摘要总结
-
现代的目标检测器在很大程度上依赖于anchors, proposals and the fi-
nal predictions,以表示在各个识别阶段的对象。这导致了对象的特征只是粗略的进行了提取操作。 -
在本文中,我们提出了RepPoints(代表点),一种新的更精细的对象表示,作为一组样本点,对定位和识别都很有用。
-
给定用于训练的真实定位和识别目标,RepPoints 学会自动调整自身的位置,以便界定物体的空间范围,并指示具有语义意义的局部区域。
RepPoints 通过一组动态调整的点来更加精准地表示物体的位置和形状,相比于传统的边界框,它能够更细致地捕捉到物体的局部结构和语义信息。
相关介绍
主要先介绍了一些用边界框或者说是锚框这种检测方式的普遍的原因。
几乎所有的图像特征提取器,无论是在之前还是在深度学习时代期间,都是基于具有规则网格形式的输入补丁。
“规则网格”指的是一个均匀且固定间隔的网格布局传统的图像特征提取器(特别是卷积神经网络)对图像进行处理时,输出的特征图(即卷积后的图像表示)本质上是通过对图像进行规则化划分,得到的一系列固定大小的区域或补丁的集合。
传统的方式存在的问题
然而这种方式也存在着许多的问题如下所示。
- 虽然边界框有助于计算,但它们仅提供不符合对象形状和姿态的对象的粗略定位 (对于旋转目标检测或者有形变的物体可能会存在一些困难。)
从边界框的规则单元(即固定大小的窗口)提取特征时,可能会受到背景或无关前景区域的干扰,从而影响模型的准确性。
边界框的固定大小(例如,正方形或矩形)可能会包含一些背景区域,尤其是在目标物体位于图像的中心或部分边缘时。背景区域的特征通常缺乏有用的语义信息,因为背景只是一些无关的像素,它们与目标物体并不相关。然而,传统卷积操作通常没有区分这些背景区域和前景区域的能力,因此背景的干扰会影响到最终提取的特征。
影响: 当边界框的内容中包含大量背景区域时,这些无关区域的特征会被卷积神经网络提取出来并传递到下一层,导致模型难以正确区分目标和背景,从而影响检测结果。
在目标物体的边界上,尤其是物体形状不规则或部分遮挡时,边界框内的前景区域可能并不包含足够的语义信息。比如,某些目标的轮廓可能不清晰,或者目标本身的某些部分被遮挡,导致边界框内的前景区域信息不完整或不足。此时,从这些区域提取的特征就可能无法充分代表目标的真实信息。
影响: 边界框内的无信息区域可能导致网络误判,尤其是对于遮挡、部分可见或形态不规则的目标。卷积网络在提取这些无信息区域的特征时,可能会学到无关的模式或噪声,从而影响检测性能。
对这些问题的思考和描述自然而然的引出了一种新的解决方案。可变形卷积和可变形池化的结合有效地解决了从规则边界框提取特征时的背景干扰和无信息前景区域的问题。通过让卷积核和池化窗口根据实际的目标形状自适应调整,RepPoints能够更加精确地从目标区域提取有效特征,而不会被无关背景或无信息区域影响
新方法的相关介绍和引出
因此本文提出了一直新的表示方法,RepPoints(代表点)提供了根据细粒度的定位和分类如图所示。
这些点表示目标的空间范围和语义上有意义的局部区域。RepPoints是一组点,它学习以一种方式自适应地将自己定位在对象上,该方式限制对象的空间范围并指示语义上重要的局部区域。
- 这些自下而上的表示识别各个点(例如,边界框角或对象末端),并依赖于手工聚类将它们分组到对象模型中。
自下而上的方式:传统的自下而上的学习方式(Bottom-Up Learning),在目标检测任务中,通常是指从局部特征开始,通过逐层组合或聚合信息,最终获得对目标的整体表示。这种方法的特点是基于手工设计的规则或固定的特征模式,逐步从低级特征(如边缘、角点等)到高级特征(如区域、形状或目标)进行构建。
自上而下方法利用了深度学习的强大表征能力,更适合现代目标检测任务
- 相比之下,RepPoint以自上而下的方式从输入图像/对象特征中学习,允许端到端训练并在没有额外监督的情况下产生细粒度定位。
在 RepPoint 中,自上而下的学习方式通常是指:网络从全局信息(如物体的初步位置、粗略的边界框或其他高层次的图像特征)出发,通过逐步推导来获得更加精细的物体位置和形状信息。
核心方法—问题描述
边界框表示与多级目标检测器的使用
- 边界框是对对象的空间位置进行编码的4-d表示。
B = ( x , y , w , h ) \mathcal{B}=(x, y, w, h) B=(x,y,w,h)
x,y表示中心点,w,h表示宽度和高度
多阶段和多尺度
性能最好的对象检测器通常遵循多阶段识别范式,其中对象定位是逐阶段细化的。(两阶段的)
在该框架中,边界框回归在逐步细化对象定位和对象特征方面起着核心作用。
边界框的回归过程
( Δ x p , Δ y p , Δ w p , Δ h p ) \left(\Delta x_{p}, \Delta y_{p}, \Delta w_{p}, \Delta h_{p}\right) (Δxp,Δyp,Δwp,Δhp)
B p = ( x p , y p , w p , h p ) \mathcal{B}_{p}=\left(x_{p}, y_{p}, w_{p}, h_{p}\right) Bp=(xp,yp,wp,hp)
B r = ( x p + w p Δ x p , y p + h p Δ y p , w p e Δ w p , h p e Δ h p ) . \mathcal{B}_{r}=\left(x_{p}+w_{p} \Delta x_{p}, y_{p}+h_{p} \Delta y_{p}, w_{p} e^{\Delta w_{p}}, h_{p} e^{\Delta h_{p}}\right) . Br=(xp+wpΔxp,yp+hpΔyp,wpeΔwp,hpeΔhp).
在对象检测器的训练中,我们使用预测的4-d回归向量和期望的4-d回归向量F(Bp,Bt)之间的距离作为学习目标,使用平滑的l1损失
F ^ ( B p , B t ) = ( x t − x p w p , y t − y p h p , log w t w p , log h t h p ) . \hat{\mathcal{F}}\left(\mathcal{B}_{p}, \mathcal{B}_{t}\right)=\left(\frac{x_{t}-x_{p}}{w_{p}}, \frac{y_{t}-y_{p}}{h_{p}}, \log \frac{w_{t}}{w_{p}}, \log \frac{h_{t}}{h_{p}}\right) . F^(Bp,Bt)=(wpxt−xp,hpyt−yp,logwpwt,loghpht).
当所需的细化很小时,它在实践中表现良好,但当初始表示和目标之间存在较大距离时,它往往表现不佳.
RepPoints的描述
- 自适应采样点来进行建模:其中n是表示中使用的样本点的总数。在我们的工作中,n默认设置为9。
R = { ( x k , y k ) } k = 1 n \mathcal{R}=\left\{\left(x_{k}, y_{k}\right)\right\}_{k=1}^{n} R={(xk,yk)}k=1n
- 其细化的过程可以简单的表示为:
R r = { ( x k + Δ x k , y k + Δ y k ) } k = 1 n , \mathcal{R}_{r}=\left\{\left(x_{k}+\Delta x_{k}, y_{k}+\Delta y_{k}\right)\right\}_{k=1}^{n}, Rr={(xk+Δxk,yk+Δyk)}k=1n,
- 是新采样点相对于旧采样点的预测偏移。
{ ( Δ x k , Δ y k ) } k = 1 n \left\{\left(\Delta x_{k}, \Delta y_{k}\right)\right\}_{k=1}^{n} {(Δxk,Δyk)}k=1n
处于相同的尺度即不受尺度的影响。
在传统的目标检测方法(例如 Faster R-CNN 或 RetinaNet)中,目标物体的边界框回归通常涉及根据物体的不同大小来调整边界框的坐标。通常,物体的大小(尤其是边界框的长宽比)会影响回归的尺度:
- 小物体的边界框回归通常只需要较小的偏移量。
- 大物体的边界框回归通常需要较大的偏移量。
RepPoints 中,细化过程是基于 代表点(RepPoints) 的位置调整。RepPoints 将物体的边界框分解为多个代表点,而不直接操作边界框的四个角。因此,物体的定位不再依赖于大尺度的边界框,而是依赖于代表点在图像上的位置。
好处和优势之一就是和基于边界框的方式相比统一了尺寸。
代表点转化为伪框
在RepPoint的训练中利用边界框注释,以及评估基于RepPoint的对象检测器
使用预定义的转换函数执行此转换:
T : R P → B P , \mathcal{T}: \mathcal{R}_{P} \rightarrow \mathcal{B}_{P}, T:RP→BP,
代表的是伪框
T ( R P ) \mathcal{T}\left(\mathcal{R}_{P}\right) T(RP)
三种转换为伪框的方式:其中第三种方式为默认使用的方式:即利用均值和方差的形式来进行使用。
- 中心点:使用所有代表点的均值。
- 边界框的宽高:通过标准差乘以全局共享的可学习参数 𝜆𝑥 和 𝜆𝑦 来定义。
转化方式 | 方法特点 | 优点 | 缺点 |
---|---|---|---|
Min-max function | 使用全体点的最小值和最大值 | 简单直接,能完全包围所有点 | 容易过大,包含无关的背景区域 |
Partial min-max function | 使用代表点的子集进行计算 | 边界框更加紧凑,减少背景干扰 | 实现复杂,需要定义关键点选择规则 |
Moment-based function | 基于均值和标准差计算中心和大小 | 平滑鲁棒,能动态适应目标大小 | 可能不适合高度不规则的目标 |
在我们的系统中,我们使用左上和右下点之间的平滑l1距离来表示定位损失
这里涉及到的这个损失函数可以理解为是为了训练检测的准确度或者也可以理解为训练可变形卷积学习到的点的偏移量的准确度。
SmoothL1 ( x ) = { 0.5 ⋅ x 2 , if ∣ x ∣ < 1 ∣ x ∣ − 0.5 , if ∣ x ∣ ≥ 1 \operatorname{SmoothL1}(x)=\left\{\begin{array}{ll} 0.5 \cdot x^{2}, & \text { if }|x|<1 \\ |x|-0.5, & \text { if }|x| \geq 1 \end{array}\right. SmoothL1(x)={0.5⋅x2,∣x∣−0.5, if ∣x∣<1 if ∣x∣≥1
Loss loc = ∑ i ∈ { x min , y min , x max , y max } SmoothL1 ( p ^ i − p i ) \operatorname{Loss}_{\text {loc }}=\sum_{i \in\left\{x_{\min }, y_{\min }, x_{\max }, y_{\max }\right\}} \operatorname{SmoothL1}\left(\hat{p}_{i}-p_{i}\right) Lossloc =i∈{xmin,ymin,xmax,ymax}∑SmoothL1(p^i−pi)
即 p min = ( x min , y min ) 和 p max = ( x max , y max ) 。即 p ^ min = ( x ^ min , y ^ min ) 和 p ^ max = ( x ^ max , y ^ max ) 。 即 p_{\text {min }}=\left(x_{\min }, y_{\min }\right) 和 p_{\max }=\left(x_{\max }, y_{\max }\right) 。 即 \hat{p}_{\min }=\left(\hat{x}_{\min }, \hat{y}_{\min }\right) 和 \hat{p}_{\max }=\left(\hat{x}_{\max }, \hat{y}_{\max }\right) 。 即pmin =(xmin,ymin)和pmax=(xmax,ymax)。即p^min=(x^min,y^min)和p^max=(x^max,y^max)。
- 当训练由对象定位和对象识别损失的组合驱动时,对象的极值点和语义关键点会自动学习(T1用于将RepPoints转换为伪框)。
RPDet无锚框的检测器
利用RepPoints代替边界框:经过两次细化得到最终的位置信息。
是由两个基于可变形卷积的识别阶段构成的:可变形卷积与RepPoint很好地配对,因为它的卷积是在一组不规则分布的样本点上计算的,相反,它的识别反馈可以指导这些点的定位训练。
一个尺度的整体示意图如下所示:
基于中心点的初始对象表示
中心点表示的一个重要优点在于其更紧密的假设空间。而基于锚框的方法通常依赖于大量多尺度锚框来确保大的4-D边界的密集覆盖
基于中心点的初始对象表示存在两个问题。
- 识别目标模糊的问题,这是由两个不同的目标位于同一位置的特征图。
- 通过在每个位置产生多个目标来解决的,这面临着归属模糊的另一个问题。
解决方式:使用FPN来大大缓解这一个问题。引入更细致的局部信息通过在细粒度的尺度和局部区域进行预测,可能帮助减少目标模糊的情况例如,多尺度特征融合或使用更多的上下文信息来区分相邻目标
-
首先不同尺度的对象将被分配到不同的图像特征级别,这解决了不同尺度和相同中心点位置的对象
-
第二FPN具有针对小对象的高分辨率特征图,这也减少了两个对象具有位于相同特征位置的中心的机会。
通过引入带有FPN的主干网络的表示即可以解决和centernet类似的这种中心点初始化的方式存在的问题
使用代表点
- 从中心点开始,通过回归中心点上的偏移量获得第一组代表点。
基于点的定位损失和分类的损失
- 第二组RepPoint表示最终对象定位,其是从第一组RepPoint细化的
仅由点距离损失驱动,该第二组RepPoint旨在学习更精细的对象定位
主干网络和头部架构
我们的FPN骨干,它产生了从第3阶段(下采样率为8)到第7阶段(下采样率为128)的5个特征金字塔级别。
这里的过程比较简单一看就会就不在写了
- 有两个非共享的分类器,分别针对定位(RepPoints生成)和分类
-
定位:应用三个256-d 3 × 3 conv层 在 通过两个连续的小网络来计算两组代表点的偏移。(第二个有可变形卷积的模块部分)
-
分类:三个256-d 3 × 3卷积层,随后是一个256-d 3 × 3可变形卷积层,其输入offsets与定位子网络中的第一个可变形卷积层共享。
-
在特征图上的每个点上产生18个偏移量offset1(x,y各9个),将每个位置加上偏移量后得到每个位置对应的RepPints 1,得到伪框(pseudo box)与GT回归;
-
加上offset1后卷积得到新的特征图,再进一步产生偏移量offset 2,在RepPoints的基础上进行微调,得到更准确的位置RepPoints 2.
组归一化层在两个卷积层中的前三个256-d 3×3 conv层中的每一个之后应用。
正负样本的分配策略
对于我们的目标检测任务来说,最重要的也就是正负样本的分配策略了,传统的基于锚框的比较常见的就是基于IOU GIOU CIOU等,对于这种Anchor free的算法来说一个好的正负样本的分配策略可以解决很多的训练问题simota这种策略
有两个定位阶段:通过从对象中心点假设(特征图网格)细化来生成第一组RepPoint;通过从第一组RepPoint细化来生成第二组RepPoint
在训练过程中,只有正样本(positive object hypotheses)会被分配用于定位的RepPoints目标
First Localization Stage
- 对于第一个阶段的:特征图上的正样本分配规则(First Localization Stage)
一个特征图中的特定网格单元(feature map bin)是正样本,前提是这个单元所属的特征层与目标框的尺度匹配。
具体来说,公式中定义了目标框的尺度:
s ( B ) = ⌊ log 2 ( w B ⋅ h B / 4 ) ⌋ s(B)=\left\lfloor\log _{2}\left(\sqrt{w_{B} \cdot h_{B}} / 4\right)\right\rfloor s(B)=⌊log2(wB⋅hB/4)⌋
s(B) 的值决定了某个目标框应该分配到金字塔的哪个层级(pyramidal level)
金字塔级别匹配:将目标框映射到适当的特征金字塔层(Feature Pyramid Network,FPN)中,使得目标框的大小和特征层的感受野相匹配。
- 一个特征图中的某个网格单元是正样本,前提是目标框的中心点投影落在这个单元中。这是通过目标框的中心点坐标,结合特征图的分辨率缩放比例,找到其对应的特征图网格单元。
特征图上的某个网格单元(feature map bin),如果目标真实框(ground-truth object)的中心点投影(通过下采样映射到特征图)落在这个网格单元内,那么这个网格单元会被标记为正样本。
只有满足这两个条件的特征图单元,才被标记为正样本。
Second Localization Stage
在通过iou=0.5的阈值再去筛选一次。
在第二阶段,一个第一阶段生成的RepPoints集合会被视为正样本,前提是该集合所生成的伪边界框(pseudo box)与真实目标框(ground truth box)的IoU大于0.5。
分类过程中的正负样本
分类任务的正样本、背景样本和忽略样本(ignored samples)划分是基于 IoU(Intersection over Union) 来完成的。
- 这里的 IoU 是由第一组代表点生成的伪边界框(pseudo box)与真实边界框(ground-truth bounding box)的 IoU 计算得出的。
- 伪边界框(pseudo box):由第一组代表点推导出的边界框,用于描述目标大致的范围。
背景样本(background):如果 IoU 小于 0.4,则这个样本被视为背景(即不属于任何目标类别)。
忽略样本(ignored samples):如果 IoU 介于 0.4 和 0.5 之间,这些样本将被忽略,既不会参与正样本的分类训练,也不会用于背景样本的训练。
原因:这种分配方式可以避免边界样本(IoU 处于 0.4 和 0.5 之间)对分类训练的干扰,从而提高训练的稳定性和分类的准确性。
这里和大多数的目标检测任务是一样的,可以通过focol loss损失函数进行分类的训练:在目标检测中,正样本通常远少于背景样本。Focal Loss 通过降低对易分类样本(如背景样本)的损失权重、聚焦难分类样本(如正样本)来提升分类性能
F L ( p t ) = − α t ( 1 − p t ) γ log ( p t ) F L\left(p_{t}\right)=-\alpha_{t}\left(1-p_{t}\right)^{\gamma} \log \left(p_{t}\right) FL(pt)=−αt(1−pt)γlog(pt)