ObjectBoxG: object detection algorithm based on GC3 module
-
摘要: 随着对目标检测任务研究的不断深入,以ObjectBox检测器为代表的无锚框方法引起了研究者们的关注。然而,ObjectBox检测器不能充分利用多尺度特征,也未充分考虑目标中心点与全局信息关联。为此,借助图卷积神经网络的节点相互影响原理,提出基于图谱方法的图卷积层模块GConv (graph convolution layer),学习图像全局特征;融合模块GConv与C3 (cross stage partial network with 3 convolutions) 得到GC3 (graph C3 module)模块,进一步提取图像原始特征、细节特征以及全局特征;将GC3结合广义特征金字塔网络GFPN (generalized feature pyramid network),提出图广义特征金字塔网络GGFPN (graph generalized feature pyramid network),并嵌入ObjectBox算法,设计出ObjectBoxG算法。经典数据集的实验测试表明,提出的GC3模块比原C3模块具有更强特征提取能力;提出的GGFPN网络比GC3的特征学习能力更强;提出的ObjectBoxG算法具有优良的目标检测性能。Abstract: With the deepening development of the study on object detection tasks, anchor-free methods such as the ObjectBox detector have attracted the attention of researchers. However, the ObjectBox detector has its limitations: it does not fully utilize multiscale features or adequately consider the correlation between target center points and global information. A graph convolution layer module (GConv), which is based on the graph spectrum method, is proposed to learn global image features and address the aforementioned limitations. Additionally, a new module named GC3 combines the proposed GConv module with C3 (cross-stage partial network with 3 conversions) to further extract the original, fine, and global image features. GC3 is combined with the generalized feature pyramid network (GGFPN) to form the GGFPN. The GGFPN is then embedded into the ObjectBox detector, resulting in the ObjectBoxG algorithm. Experiments on benchmark datasets demonstrate that the proposed GC3 module has stronger feature extraction capability than the original C3 module, and the proposed GGFPN network offers superior feature learning capability to GC3. The ObjectBoxG algorithm demonstrates excellent performance in object detection.
-
目标检测是计算机视觉领域的底层任务之一,包括定位图像中目标及对目标进行识别[1],深度学习使目标检测成为热门研究领域之一。基于深度学习的目标检测算法的基本框架[2],包括骨干架构(backbone)、检测头(head),以及连接backbone与head的瓶颈结构(neck)。其中,backbone提取图像中目标的特征;neck对backbone提取的特征进行加工,再分配到head;head实现目标位置检测与类别分类。
backbone中的卷积神经网络(convolutional neural networks, CNNs)是标准网络架构[3],Transformer架构作为backbone之一,具有很优异的性能[4]。CNNs将图像视为欧氏空间里像素的规则网格,应用具有平移不变性和局部性的卷积核进行特征提取[5]。Transformer将图像切分为一系列互不重叠的补丁序列,使用多头注意力机制进行特征学习[6]。Han等[7]提出视觉图神经网络框架Vision GNN (vision graph neural network),启发性地设计图模块(Grapher),利用K-近邻思想(K),将图像构建为图结构;使用空间图卷积方法,聚合并更新邻居节点之间的信息,进行特征提取。然而,Grapher设计中每个节点的邻居数固定为K,虽对邻居节点的信息有较好的聚合效果,却忽视了单个节点与全局信息的关联。
neck结构对backbone各层级的特征图进行融合加工,增强网络表达能力,并决定head的数量以及分配方式。neck结构主要分为上下采样、路径聚合以及神经结构搜索NAS(neural architecture search)等[8]。上下采样[9]将backbone的特征图进行上下采样,得到多级特征图后分配至head,不具有特征层聚合性操作。路径聚合[10]基于一个基本现象,经过层层卷积下采样的深层特征图使得小物体的信息严重丢失。因此,路径聚合通过聚合深层特征图与浅层特征图的信息,将backbone的多层级特征图进一步融合后分配至head,其特点是反复利用各种上下采样、拼接等操作来设计聚合策略。特征金字塔网络 (feature pyramid network,FPN)[11]是路径聚合的经典方法,旨在聚合从主干网中提取的不同分辨率特征。PAnet (path aggregation network) [12]增加了一个额外的自下而上的路径聚合网络,融合多尺度特征,但计算成本更高。GFPN( generalized feature pyramid network )充分交换高级语义信息和低级空间信息[13],作为neck实现了SOTA(state-of-the-art)性能。神经结构搜索NAS [14]利用神经网络搜索方法搜索合适的聚合路径,但搜索时间成本极高,且可解释性低。
根据head的不同,将目标检测算法分为2大类,两阶段检测算法和单阶段检测算法[15]。前者在第1阶段选择一系列候选区域,在第2阶段提取候选区域特征,实现目标定位与分类,例如,区域卷积神经网络R-CNN (region with convolutional neural network)系列算法[16-18];后者直接提取图像特征,生成目标框,实现目标定位和分类,例如,SSD ( single shot multibox detector)系列算法[19- 20]。主流的目标检测算法基于锚框(Anchor)机制,采用预定义边框进行定位和分类。Anchor机制引入额外的超参数:锚框大小和长宽比。这不仅导致提取的候选区域太多,增加了计算开销,还引起正负样本不均衡问题,因此,无锚框(Anchor-free)方法被提出[2]。Law等[21]提出CornerNet,输出目标的左上角点和右下角点来进行检测。Tian等[22]提出全卷积单阶段目标检测FCOS (fully convolutional one-stage object detection),以类似于语义分割的逐像素预测方式解决目标检测问题。Zand等[23]提出了ObjectBox检测器,将目标中心位置视为与形状和大小无关的Anchor,并在每个目标的所有尺度上进行学习,使用一种定制的交并比 (intersection over union, IOU)损失处理尺度变化的目标,在无锚框(Anchor-free)方法的目标检测算法中检测效果显著。然而,ObjectBox检测器以C3模块为主要的特征提取模块,未充分考虑目标中心点与全局信息的关联;同时,ObjectBox检测器,以CSPDarknet作为backbone,以改进的PAnet结构作为neck,难以充分利用多尺度特征。
图卷积神经网络中,图中每个节点均受到邻居节点影响而改变自己的状态直到最终平衡,关系越亲近的邻居影响越大。因此,本研究提出图卷积层,考虑单个节点与全局节点的关联,使用图谱图卷积,学习图像的全局特征;在C3模块基础上,提出GC3模块(graph C3 module)提取特征。提出图广义特征金字塔网络GGFPN(graph generalized feature pyramid network)结构,得到ObjectBoxG目标检测算法。在目标检测经典数据集PASCAL VOC[24]和MS COCO[25]的实验表明,提出的GC3模块具有更好的特征学习能力,提出的GGFPN能对多个层级的特征图进行有效地融合加工,提出的ObjectBoxG算法具有更优良的目标检测性能。
1. 相关概念及本文方法
首先介绍图的基础概念、图卷积神经网络,接着简要介绍视觉图神经网络架构(vision GNN)[7],最后详细阐述本研究的创新点:提出的图谱图卷积模块GConv、GC3模块、图广义特征金字塔网络GGFPN,以及ObjectBoxG算法。
1.1 图的基础概念
图表示为
$ {\boldsymbol{G}} = \left( {\boldsymbol{V}},{\boldsymbol{E}} \right) $ ,包括节点集合$ {\boldsymbol{V}} $ 和边集合$ {\boldsymbol{E}} $ 。$\left\| {\boldsymbol{V}} \right\| = n$ ,$ {{\boldsymbol{v}}_i} \in {\boldsymbol{V}} $ 表示节点$ i $ ,$ {e_{ij}} $ 表示连接节点$ i $ 和$ j $ 的边(这里仅考虑无向图)。节点${\boldsymbol{v}}$ 的邻居节点为$ N\left( {\boldsymbol{v}} \right) = \left\{ {{\boldsymbol{u}} \in {\boldsymbol{V}}} \right.\left. {\left| {{e_{vu}} \in {\boldsymbol{E}}} \right.} \right\} $ 。图${\boldsymbol{G}}$ 的邻接矩阵${\boldsymbol{A}} \in {R^{n \times n}}$ 是一个$ n $ 阶矩阵,若$ {e_{ij}} \in {\boldsymbol{E}} $ ,则$ {{\boldsymbol{A}}_{ij}} = 1 $ ;否则,$ {{\boldsymbol{A}}_{ij}} = 0 $ ;如图${\boldsymbol{G}}$ 是无向图,则其邻接矩阵是对称阵,即$ {{\boldsymbol{A}}_{ij}} = {{\boldsymbol{A}}_{ji}} $ 。$ {\boldsymbol{L}} = {\boldsymbol{D}} - {\boldsymbol{A}} $ 为图${\boldsymbol{G}}$ 的拉普拉斯矩阵,其中,$ {\boldsymbol{D}} $ 是图${\boldsymbol{G}}$ 的度矩阵,一个对角阵,其对角线元素$ {D_{ii}} = \displaystyle\sum\limits_{j = 1}^n {{{\boldsymbol{A}}_{ij}}} $ 。图${\boldsymbol{G}}$ 的归一化拉普拉斯矩阵为$ {\boldsymbol{L}} = {{\boldsymbol{I}}_{\text{n}}} - {{\boldsymbol{D}}^{ - 1/2}}{\boldsymbol{A}}{{\boldsymbol{D}}^{ - 1/2}} $ ,其中,$ {{\boldsymbol{I}}_{\boldsymbol{n}}} \in {{\bf{R}}^{n \times n}} $ 是单位矩阵。显然,$ {\boldsymbol{L}} $ 是一个实对称矩阵,特征分解得到:$ {\boldsymbol{L}} = {\boldsymbol{U\varLambda }}{{\boldsymbol{U}}^{\mathrm{T}}} $ ,$ {\boldsymbol{U}} = \left\{ {{{\boldsymbol{u}}_i}} \right\}_{i = 1}^n $ 是$ n $ 个相互正交的特征向量,$ {\boldsymbol{\varLambda }} = {\text{diag}}(\left\{ {{\lambda _i}} \right\}_{i = 1}^n) $ 表示特征值矩阵($ {\text{diag}} $ 表示对角阵),$ {\lambda _i} $ 是$ {{\boldsymbol{u}}_i} $ 对应的特征值。图节点属性矩阵$ {\boldsymbol{X}} \in {{\bf{R}}^{n \times d}} $ ,$ d $ 是节点属性的维度,$ {{\boldsymbol{x}}_{\boldsymbol{i}}} \in {{\bf{R}}^d} $ 表示节点$ i $ 的属性向量。1.2 图卷积神经网络
图卷积神经网络GCN (graph convolutional network)分为两大类别:基于图谱的方法和基于空间的方法。Bruna等[26]提出第一个基于图谱的图卷积神经网络,结合图理论从卷积定理出发,在频域上定义了图卷积。基于空间的图卷积神经网络最早由Micheli等[27]提出,通过复合非递归层,解决图的相互依赖性,同时继承消息传递思想。
图谱方法的GCN利用卷积定理从频域定义图卷积,即利用卷积定理,先利用傅里叶变换将信号从原始空间转换到频域,再在频域将信号做乘法,最终利用傅里叶逆变换将信号转换到原始空间,实现图卷积可以理解为在频域中的节点级别信号
$ {\boldsymbol{x}} \in {{\bf{R}}^n} $ 与卷积核$ {g_{\boldsymbol{\theta }}} = {\text{diag}}({\boldsymbol{\theta }}) $ ($ {\boldsymbol{\theta }} \in {{\bf{R}}^n} $ 是卷积核的参数)的乘积$$ {g_{\boldsymbol{\theta }}}\times {\boldsymbol{x}} = {\boldsymbol{U}}{g_\theta }{\boldsymbol{U}}^{\text{T}}{\boldsymbol{x}} $$ (1) 式中:
$ {\boldsymbol{U}} $ 是图${\boldsymbol{G}}$ 的拉普拉斯矩阵的特征向量矩阵;$ {\boldsymbol{L}} = {{\boldsymbol{I}}_{\text{n}}} - {{\boldsymbol{D}}^{ - 1/2}}{\boldsymbol{A}}{{\boldsymbol{D}}^{ - 1/2}} $ ,$ {\boldsymbol{L}} = {\boldsymbol{U\varLambda }}{{\boldsymbol{U}}^{\mathrm{T}}} $ ,$ {\boldsymbol{\varLambda }} $ 是特征值构成的对角矩阵,$ {{\boldsymbol{U}}^{\text{T}}}{\boldsymbol{x}} $ 是输入信号$ {\boldsymbol{x}} $ 的图傅里叶变换;$ {g_\theta } $ 可以理解为图${\boldsymbol{G}}$ 的归一化拉普拉斯矩阵的特征值函数, 即$ {g_\theta }({\boldsymbol{\varLambda }}) $ 。Hammond等[28]使用切比雪夫多项式$ {T_k}\left( x \right) $ 对近似函数$ {g_\theta }({\boldsymbol{\varLambda }}) $ 展开到第$ k $ 阶,降低了计算复杂度,其数学表达为$$ {g_{{\theta ^{'}}}}\left( {\boldsymbol{\varLambda }} \right) = \sum\limits_{k = 0}^K {{\boldsymbol{\theta}} _k^{'}} {T_k}({\boldsymbol{\tilde \varLambda }}){\text{ }} $$ (2) 式中:
$ {\boldsymbol{\tilde \varLambda }} = \left( {2{\boldsymbol{\varLambda }}/{\lambda _{\max }}} \right) - {\boldsymbol{I}} $ ,$ {\lambda _{\max }} $ 是$ {\boldsymbol{L}} $ 的最大特征值;$ {{\boldsymbol{\theta}} ^{'}} \in {R^K} $ 是切比雪夫系数的向量;$ {T_k}\left( x \right) $ 是递归的切比雪夫多项式,其定义为$ {T_k}\left( x \right) = 2x{T_{k - 1}}\left( x \right) - {T_{k - 2}}\left( x \right) $ ,并且$ {T_0}\left( x \right) = 1 $ ,$ {T_1}\left( x \right) = x $ 。结合以上2个式子,基于频域的图卷积操作可重新定义为$$ {g_{{\theta ^{'}}}}{{ \times }}{\boldsymbol{x}} = {\boldsymbol{\theta}} _k^{'}{T_k}({\boldsymbol{\tilde L}}){\boldsymbol{x}} $$ (3) 式中
$ {\boldsymbol{\tilde L}} = \left( {2{\boldsymbol{L}}/{\lambda _{\max }}} \right) - {\boldsymbol{I}} $ 。根据式(3),每个节点仅依赖于第$ k $ 阶邻域的信息。为了定义图卷积神经网络,根据式(3),可以堆叠多个卷积层,每层后接非线性变换。Kipf等[29]建议,将式(3)中每层的卷积数
$ K $ 限制为$ K = 1 $ ,则每层的图卷积操作可表示为图拉普拉斯矩阵$ {\boldsymbol{L}} $ 上的线性函数,在每个线性函数上,进一步近似$ {\lambda _{\max }} \approx 2 $ ,最终得到$$ {g_{{\theta ^{'}}}}{{ \times }}{\boldsymbol{x}} = {\boldsymbol{\theta }}_0^{'}{\boldsymbol{x}} + {\boldsymbol{\theta }}_1^{'}{\boldsymbol{x}}({\boldsymbol{L}} - {{\boldsymbol{I}}_n}) $$ (4) 式中
$ {\boldsymbol{\theta }}_0^{'} $ 、$ {\boldsymbol{\theta}} _1^{'} $ 是整个图中可以共享的参数。实践中,可以进一步减少参数数量,当$ {\boldsymbol{\theta }} = {\boldsymbol{\theta }}_0^{'} = - {\boldsymbol{\theta }}_1^{'} $ 时,式(4)可表达为$$ {g_{{\theta ^{'}}}}{{ \times }}{\boldsymbol{x}} = {f_\theta }\left( x \right) \approx {\boldsymbol{\theta }}\left({\boldsymbol{I}} + {{\boldsymbol{D}}^{ - \tfrac{1}{2}}}{\boldsymbol{A}}{{\boldsymbol{D}}^{ - \tfrac{1}{2}}}\right){\boldsymbol{x}} $$ (5) 根据式(5),为在图
${\boldsymbol{G}}$ 上进行卷积,引入一个简单而灵活的模型$ {f_\theta }\left( \cdot \right) $ ,其中,模型的核心在于共享参数$ {\boldsymbol{\theta }} $ 以及底层图结构的邻接矩阵$ {\boldsymbol{A}} $ 。1.3 图卷积层
Vision GNN的核心思想是将图像转化为图G,构建图卷积层Grapher,使用基于空间的图卷积,通过聚合相邻节点的特征,实现部分相似节点间的信息交换。然而,Grapher固定邻居数
$K$ ,聚合$K$ 个邻居信息,忽视单个节点与全局信息的关联。本研究在Vision GNN基础上,提出基于图谱方法的图卷积层GConv。首先,将图像构建为图结构。将
$H \times W \times C$ 尺寸的特征图转换为特征矩阵${{\boldsymbol{X}}_{N \times C}}$ ,其中,$N = H \times W$ 。将${{\boldsymbol{X}}_{N \times C}}$ 每一行作为一个节点的特征向量,${{\boldsymbol{X}}_{N \times C}}$ 可被视为节点集${\boldsymbol{V}} = \left\{ {{{\boldsymbol{v}}_1},{{\boldsymbol{v}}_2}, \cdots ,{{\boldsymbol{v}}_N}} \right\}$ 。进一步确定距离矩阵,根据Grapher思想,计算节点${{\boldsymbol{v}}_i}$ 与${{\boldsymbol{v}}_j}$ 对应的特征向量${{\boldsymbol{x}}_i}$ 与${{\boldsymbol{x}}_j}$ 的欧氏距离,得到节点${{\boldsymbol{v}}_i}$ 与${{\boldsymbol{v}}_j}$ 之间的距离${e_{ij}}$ ,遍历所有节点,得到距离矩阵${\boldsymbol{D}}_{\text{ist}} \in {R^{N \times N}}$ 。距离${e_{ij}}$ 表示节点${{\boldsymbol{v}}_i}$ 与${{\boldsymbol{v}}_j}$ 之间的距离,也反映节点${{\boldsymbol{v}}_i}$ 与${{\boldsymbol{v}}_j}$ 之间的相似性,相似性与距离呈负相关。原始的Grapher在
${\boldsymbol{D}}_{\text{ist}}$ 中,对于任意一行$i$ (对应于节点${{\boldsymbol{v}}_i}$ ),通过索引$K$ 个最小值,固定节点${{\boldsymbol{v}}_i}$ 的$K$ 个邻居,得到节点${{\boldsymbol{v}}_i}$ 的邻居点集${\boldsymbol{N}}\left( {{{\boldsymbol{v}}_i}} \right)$ ;再使用基于空间的图卷积进行特征提取。本研究提出的图卷积层GConv,在
${\boldsymbol{D}}_{\text{ist}}$ 的基础上,引入转化函数${F_t}\left( \cdot \right)$ ,构建邻接矩阵${\boldsymbol{A}} = {F_t}\left( {{\boldsymbol{D}}_{\text{ist}}} \right) \in {{\bf{R}}^{N \times N}}$ ;边的强度考虑节点之间的相似性,与距离呈负相关,因此,构造邻接矩阵${\boldsymbol{A}} \in {{\bf{R}}^{N \times N}}$ :$$ {{\boldsymbol{A}}_{ij}} = {F_t}\left( {{\boldsymbol{D}}_{{\text{is}}{{\text{t}}_{ij}}}} \right) = \left\{ {\begin{array}{{l}} {\lambda {{\overline {\boldsymbol{D}}_{\text{ist}} }_i} - {\boldsymbol{D}}_{{\text{is}}{{\text{t}}_{ij}}},} \quad {{\boldsymbol{D}}_{{\text{is}}{{\text{t}}_{ij}}} \leqslant \lambda {{\overline {\boldsymbol{D}}_{\text{ist}} }_i}}\\ 0,\quad {{\text{其他}}} \end{array}} \right. $$ (6) 式中:
${\overline {\boldsymbol{D}}_{{\mathrm{ist}}i}} = \displaystyle\sum\limits_{j = 1}^N {\boldsymbol{D}}_{{\mathrm{ist}}_{ij}} /N$ 表示节点${\boldsymbol{v}}_i$ 到其他节点的平均距离;$\lambda $ 是转化函数${F_t}\left( \cdot \right)$ 的超参数,用以确定目标节点的邻居范围,舍弃距离过大的节点。构建邻接矩阵
${\boldsymbol{A}}$ 后,使用基于图谱方法的图卷积进行特征提取,数学表达式为$$ {{\boldsymbol{X}}{'}} = {{\mathrm{GraphConv}}} \left( {\boldsymbol{X}} \right) = {{\boldsymbol{D}}^{ - \tfrac{1}{2}}}{\boldsymbol{A}}{{\boldsymbol{D}}^{ - \tfrac{1}{2}}}{\boldsymbol{XW}} $$ (7) 式中:
$ {{\mathrm{GraphConv}}} \left( \cdot \right) $ 表示图谱方法的图卷积,$ {\boldsymbol{W}} $ 是可学习的参数矩阵,$ {{\boldsymbol{X}}{'}} $ 是图卷积后的特征矩阵。深度GCNs [30-31]中的过度平滑现象将降低节点特征的显著性,并导致视觉识别性能的下降。因此,在图卷积前后分别加入一个线性层,增加特征多样性的同时,保证输入与输出的特征图尺寸和通道数一致;在图卷积后插入一个非线性激活函数,以避免梯度消失的问题;结合残差模块的思想,防止信息传递过程中造成丢失,得到图卷积层GConv。给定输入特征
${\boldsymbol{X}} \in {{\bf{R}}^{N \times D}}$ ,GConv可表示为$$ {\boldsymbol{Y}} = {{\mathrm{GConv}}} \left( {\boldsymbol{X}} \right) = \sigma \left( {{{\mathrm{GraphConv}}} \left( {{\boldsymbol{X}}{{\boldsymbol{W}}_{{\text{in}}}}} \right)} \right){{\boldsymbol{W}}_{{\text{out}}}} + {\boldsymbol{X}} $$ (8) 式中:
${\boldsymbol{Y}} \in {{\bf{R}}^{N \times C}}$ 是输出特征,${{\boldsymbol{W}}_{{\text{in}}}}$ 和${{\boldsymbol{W}}_{{\text{out}}}}$ 分别为全连接层的输入层和输出层权重,$\sigma $ 是激活函数。基于图谱方法的图卷积,更注重每个节点与全局信息的关联,进一步提取特征图的全局信息和相似节点间的特征信息,但因其考虑全部节点并注重全局信息,导致计算量大,可能造成小目标特征缺失。1.4 GC3模块
C3(cross stage partial network with 3 convolutions)模块是CNN中的经典模块[32]。在ObjectBox[23]算法中,C3模块是网络的重要组成部分,其主要作用是增加网络的深度和感受野,提高网络的特征提取能力。将上述提出的图卷积层与C3模块结合,设计出图1的GC3模块,其中,黄色框部分是原始C3模块的结构,蓝色框是新增的图卷积层。
由图1可知,原始的C3模块结构为2条分支,一条分支使用标准卷积层和Bottleneck模块,学习特征图的细节特征;另一条分支使用标准卷积层保留特征图的原始输入特征;最终将2分支进行拼接后,再使用标准卷积层得到输出特征图。本研究设计的GC3模块,在原有模块的基础上增加一条支路,通过图卷积层,聚合输入特征图的全局特征,最终将细节特征、原始特征以及全局特征进行拼接,再使用标准卷积层,得到输出特征图。GC3模块在原有模块的基础上,借助图卷积层的特性,进一步提取特征图的全局特征。
1.5 ObjectBoxG目标检测算法
原始ObjectBox算法的结构如图2所示,neck结构采用的是改进的PAnet结构。图中的黑色箭头表示PAnet部分,蓝色箭头表示改进的PAnet部分,即将深层(Deep layer)的特征图进行上采样和中间层的特征图拼接,提取特征后得到的新特征图信息作为一个分支,分别与PAnet的浅层(Shallow layer)特征图信息和中间层(Medium layer)特征图信息进行拼接和特征提取,最终通过PAnet输入检测头(detector)。原始ObjectBox算法中的neck结构,未充分融合深层特征图与浅层特征图的语义信息,同时,也未对特征图进行充分的特征提取。
鉴于GC3模块是即插即用的特征提取模块,可以很容易地替换卷积神经网络的任何一个卷积层。本研究结合GFPN结构[13]的思想,采用GC3模块作为GFPN结构中特征提取主要模块,设计出图3的GGFPN(graph generalized feature pyramid network)结构,进一步提升目标检测算法的性能。图3为GGFPN结构,在原始neck结构基础上,将中间层特征图经过下采样与深层特征图进行拼接,特征提取后得到新的深层特征图信息,并且经过上下采样充分融合各层级特征图,得到新的中间层特征图信息。将各层级特征图信息通过GC3模块进一步提取特征,最终输入检测头,进而输出多尺度预测结果。
在ObjectBox算法基础上,保留原有的backbone和detector结构,将原有的neck部分替换为GGFPN结构,并将新算法命名为ObjectBoxG算法,如图4所示。ObjectBoxG属于单阶段目标检测算法,通过多尺度特征图预测,以期对不同尺寸的目标有不错的检测效果。
2. 实验结果
实验分为3部分进行,首先,在PASCAL VOC数据集上,通过设定本研究提出的图卷积层的不同
$\lambda $ 值,测试将C3模块替换成GC3模块的ObjectBox算法(表示为ObjectBox(GC3))以及原有ObjectBox算法的检测性能,验证提出的即插即用模块GC3的特征提取能力和灵活性。其次,以yolov5s算法[33]为基准,将其C3模块替换成GC3模块,得到yolov5s(GC3);在yolov5s算法嵌入GGFPN结构得到yolov5s+GGFPN,在公开数据集MS COCO上进行测试,进一步验证提出的GC3模块的特征提取能力,并验证提出的GGFPN结构融合加工多层级特征图的能力。最后,在MS COCO公开数据集,将ObjectBoxG算法与原有的ObjectBox算法以及ObjectBox(GC3)算法进行比对,验证提出的ObjectBoxG算法的检测性能。鉴于设备以及部分参数的设置问题,实验无法复现出ObjectBox算法以及yolov5s算法在原文中的结果,因此,仅比较本研究在相同实验环境下的复现结果。2.1 GC3模块的性能测试
在PASCAL VOC数据集测试ObjectBox(GC3)算法的性能。PASCAL VOC数据集设置20个类别,有2007年版本和2012年版本(两版本数据互不包含)。实验将2007年的训练集与验证集和2012年的训练集和验证集共同作为训练集,共有16 551张图像数据,包含40 058个实例目标,由于PASCAL VOC 2012的测试集没有公开,因此,测试集仅使用PASCAL VOC 2007的测试集,共有4 952张图像数据,包含12 032个实例目标。目标检测有多项评价指标,包括平均精度(average precision, AP)[0.5:0.95],代表IoU从0.5以步长0.05变化到0.95得到的平均精度均值 (mean average precision,mAP);AP[0.5],代表IoU取0.5时的mAP值。这里使用的指标是AP[0.5]。
实验代码基于ObjectBox的开源代码,使用Pytorch框架实现GC3模块及整个训练测试流程。实验环境为CentOS Linux 7.5操作系统,GPU为单卡NVIDIA GeForce RTX3080ti,Pytorch版本为1.10.0。根据GPU显存大小,训练时将ObjectBox、ObjectBox(GC3)以及ObjectBoxG的batch size均设置为4。除了epoch设定为300外,其余参数均按照ObjectBox设置,训练策略参考ObjectBox文献[23]。
实验首先测试本研究提出的图卷积层邻接矩阵的参数
$\lambda $ 对提出的ObjectBox(GC3)网络的影响。表1为设定不同$\lambda $ 时,ObjectBox(GC3)在PASCAL VOC数据集的AP[0.5]指标值,加粗和下划线表示最优值。图5为$\lambda = 2$ 时,ObjectBox(GC3)和ObjectBox在PASCAL VOC数据集的AP[0.5]指标。表 1 不同${\boldsymbol{\lambda }}$ 值下ObjectBox(GC3)在PASCAL VOC数据集的AP[0.5]值比较Table 1 Performance of ObjectBox (GC3) on PASCAL VOC dataset in terms of AP [0.5] under different${\boldsymbol{\lambda }}$ $\lambda $ 0.5 1 1.5 2 4 8 AP[0.5] 0.798 0.802 0.804 0.811 0.801 0.800 表1实验结果显示,在PASCAL VOC数据集,
$\lambda = 2$ 时,本研究ObjectBox(GC3)模型的AP[0.5]指标值取得最优结果。因此,后续实验中的$\lambda $ 均设置为2。表1实验还说明,不同的$\lambda $ 决定目标节点的邻居范围;$\lambda $ 取值越小,确定目标节点的邻居节点越少,这导致在图卷积过程中只聚合少量极相似节点的信息,导致GC3模块提取全局特征的能力减弱。在$\lambda $ 取值大于某一临界值时,将所有节点都归纳为目标节点的邻居,导致图卷积过程中聚合大量非相似节点的信息,导致GC3模块特征提取能力减弱。图5结果显示,ObjectBox(GC3)在PASCAL VOC数据集的20个类别中,在11个类别的AP指标优于ObjectBox,且整体的mAP为0.811,高于ObjectBox算法在该数据集的整体mAP值(0.803),说明相比于C3模块,提出的GC3模块具有更优的特征学习能力。本研究的ObjectBox(GC3)模型对bird、 bottle、 chair、 sheep、 sofa以及tv等类别的检测结果显著提升,对aero、bike、bus、cow、dog、horse、mbike、plant类别的检测结果低于ObjectBox算法的检测结果,说明GC3模块可能导致ObjectBox(GC3)算法对相似目标的错误分类。
2.2 GGFPN结构的性能测试
在MS COCO数据集测试将C3模块替换成GC3模块的yolov5s算法(表示为yolov5s(GC3))、嵌入GGFPN结构的yolov5s算法(表示为yolov5s+GGFPN)的性能,以验证本研究提出的GGFPN结构的性能。MS COCO数据集包含80个类别,背景复杂,目标数量多、存在大量的小目标。实验选用MS COCO2017数据集,其中训练集有118 287张图像,验证集有5 000张图像,测试集有40 670张图像。由于测试集未公开标注文件,因此,使用验证集来衡量模型性能。
MS COCO数据集采用更严格的6项评价指标,包括评价指标AP[0.5:0.95](S),代表IoU从0.5以步长0.05变化到0.95得到的mAP;AP[0.5],代表IoU取0.5时的mAP值,与PASCAL VOC的评价指标相同;AP[0.75],代表IoU取0.75时的mAP值,是比IoU取0.5更为严格的指标;AP[S]代表小目标(面积小于32×32)的AP[0.5:0.95]值;AP[M]代表中等大小目标(面积在32×32与96×96之间)的AP[0.5:0.95]值;AP[L]代表大目标(面积大于96×96)的AP[0.5:0.95]值。
实验代码基于yolov5s的5.0版本的开源代码,使用Pytorch框架实现GGFPN结构及整个训练测试流程。实验环境为CentOS Linux 7.5操作系统,GPU为单卡NVIDIA GeForce RTX3080ti,Pytorch版本为1.10.0。根据GPU显存大小,训练时将yolov5s、yolov5s(GC3)以及yolov5s+GGFPN的batch size均设置为8。除了epoch设定为300外,其余参数均按照yolov5s设置[33],训练策略参考yolov5s模型。表2为yolov5s、yolov5s(GC3)以及yolov5s+GGFPN算法在MS COCO数据集的性能对比,为了公平比较,重新复现了基线算法yolov5s,使其环境与yolov5s(GC3)以及yolov5s+GGFPN算法完全一致。
表 2 yolov5s、yolov5s(GC3)与yolov5s+GGFPN在MS COCO数据集的mAP值比较Table 2 Performance of yolov5s, yolov5s(GC3) and yolov5s+GGFPN on MS COCO dataset in terms of mAP% 方法 Backbone AP[0.5:0.95] AP[0.5] AP[0.75] AP[S] AP[M] AP[L] yolov5s CSPdarknet 34.2 53.3 36.5 14.0 33.6 46.8 yolov5s(GC3) CSPdarknet 34.2 53.3 36.8 13.1 33.9 47.9 yolov5s + GGFPN CSPdarknet 36.7 55.7 39.6 14.6 35.3 50.9 注:加粗表示最优值。 表2实验结果显示,在更复杂的MS COCO数据集,在集成性较高的yolov5算法框架下,yolov5s(GC3)模型的mAP总体略高于yolov5s算法的mAP,特别是在更严格的AP[0.75]指标,说明提出的GC3模块具有较强的特征提取能力,但yolov5s(GC3)模型对小目标的检测性能不如原始yolov5s算法的AP[S]值。yolov5s+GGFPN的各项指标分别优于yolov5s和yolov5s(GC3)的各项指标值,说明在GC3模块基础上设计的GGFPN结构,能有效地融合多层级特征图,具有更强的特征学习能力,从而可以进一步提升yolov5s算法的性能。
2.3 ObjectBoxG算法性能测试
在MS COCO数据集测试提出的ObjectBoxG算法的性能,并与原始ObjectBox算法、嵌入GC3的ObjectBox算法,即ObjectBox(GC3)算法,进行实验比较。实验代码基于ObjectBox开源代码,使用Pytorch框架实现GC3模块、GGFPN结构及整个训练测试流程。实验环境为CentOS Linux 7.5操作系统,GPU为单卡NVIDIA GeForce RTX3080ti,Pytorch版本为1.10.0。根据GPU显存大小,训练时将ObjectBox、ObjectBox(GC3)以及ObjectBoxG的batch size均设置为4。除了epoch设定为300外,其余参数均按照ObjectBox设置,训练策略参考ObjectBox文献[23]。表3为ObjectBox、ObjectBox(GC3)以及ObjectBoxG算法在MS COCO数据集的mAP指标。图6为ObjectBox、ObjectBox(GC3)以及ObjectBoxG算法在MS COCO数据集的部分结果。表4为ObjectBox算法、ObjectBoxG算法与其他同系列算法在MS COCO数据集的性能对比。为了公平比较,重新复现了基线算法ObjectBox,使其环境与ObjectBox(GC3)和ObjectBoxG算法完全一致,其他算法的结果来自其原文。
表 3 ObjectBox、ObjectBox(GC3)与ObjectBoxG在MS COCO数据集的mAP值比较Table 3 Performance of ObjectBox, ObjectBox(GC3) and ObjectBoxG on MS COCO dataset in terms of mAP% 方法 Backbone AP[0.5:0.95] AP[0.5] AP[0.75] AP[S] AP[M] AP[L] ObjectBox CSPdarknet 44.2 63.9 47.6 21.1 42.8 58.8 ObjectBox(GC3) CSPdarknet 44.8 64.6 48.2 20.9 43.5 58.8 ObjectBoxG CSPdarknet 45.0 64.8 48.5 21.8 43.8 58.8 注:加粗表示最优值。 表 4 ObjectBoxG与同系列算法在MS COCO数据集的性能比较Table 4 Performance comparison of the ObjectBoxG and counterpart algorithms on MS COCO dataset% 方法 Backbone AP[0.5:0.95] AP[0.5] SSD513[19] ResNet101 31.2 50.4 ASSD513[34] ResNet101 34.5 55.5 RFBnet512[35] VGG 32.3 51.8 Retinanet[36] ResNet101 39.1 59.1 F-RCNN w/FPN[11] ResNet101 36.2 59.1 yolov3[37] DarkNet53 33.0 57.9 CornerNet[21] Hourglass104 40.6 56.4 CenterNet[38] Hourglass52 41.6 59.4 FCOS[22] ResNeXt101 42.1 62.1 PAA[39] ResNet101 44.8 63.3 yolov5s CSPDarknet 34.6 53.9 ObjectBox CSPDarknet 44.2 63.9 ObjectBoxG CSPDarknet 45.0 64.8 注:加粗表示最优值。 表3实验结果显示,在MS COCO数据集,ObjectBox(GC3)模型的mAP总体高于ObjectBox算法的mAP,说明提出的GC3模块具有更强的特征提取能力,但AP[S]值不如原始ObjectBox算法。提出的ObjectBoxG算法的各项指标分别优于ObjectBox和ObjectBox (GC3)的各项指标值,说明GGFPN结构,能有效地融合多层级特征图,可以进一步提升算法的性能。
图6中,第1列图片表示MSCOCO数据集真实目标,第2列图片表示原始ObjectBox算法的检测结果,第3列图片表示ObjectBox(GC3)算法的检测结果,第4列图片表示ObjectBoxG算法的检测结果。由图6结果显示,ObjectBoxG算法在MSCOCO数据集上整体表现较好,但针对小目标以及被遮挡的目标存在漏检和误检的情况,说明融合多层级特征图使模型学习背景特征,造成小目标特征的缺失。
表4的实验结果显示,本研究提出的ObjectBoxG模型无论在AP[0.5:0.95]还是AP[0.5]指标的值均优于其他对比模型的相应指标值,说明本研究的ObjectBoxG模型具有优良的目标检测性能,也说明提出的GGFPN和GC3的强大特征学习能力。
综合表3和表4的实验结果分析可见,在相同的实验条件下,ObjectBox(GC3)性能优于ObjectBox,说明相比于C3模块本研究提出的GC3模块具有更强的特征学习能力。另外,在相同实验条件下,ObjectBoxG模型的性能优于ObjectBox(GC3)和ObjectBox,并且优于其他目标检测算法,说明ObjectBoxG算法具有更优良的目标检测性能。
3. 结束语
基于图卷积层(GConv),并将其与C3模块结合,提出了GC3模块,在GC3模块基础上,提出了GGFPN网络,与ObjectBox算法结合,提出新的基于图卷积的目标检测模型ObjectBoxG。
GC3模块提升了C3模块的特征提取能力,GGFPN结构,能有效地融合多层级特征图,使ObjectBoxG算法取得了最优的目标检测性能。
然而,GC3模块依旧存在对相似目标以及小目标特征学习能力低的问题。同时,提出的模型基于无锚框(Anchor-free)方法,无论是ObjectBox(GC3)还是本研究的ObjectBoxG模型在MS COCO数据集的检测结果不及基于锚框(Anchor)机制的SOTA算法yolov7。yolov7对MS COCO数据集的AP[0.5]达到69.7% [40],而本研究ObjectBoxG算法对MS COCO数据集的AP[0.5]只有64.8%。这主要是由于yolov7是基于Anchor机制的新目标检测算法,其网络的backbone、neck、head部分都增加了新模块。Anchor-based网络参数量更大,对锚框的选择更精细,因此性能更好。另外,除了这些与模型有关的因素外,还与实验硬件环境有关。尽管如此,GC3模块、GGFPN网络的特征学习能力及其灵活性还是不可否认的。
另外,需要说明的是ObjectBoxG算法的性能还依赖于主干网络。因此,后续将进一步探索图卷积层(GConv)、GC3模块、GGFPN网络结构与其他新模型的结合;并探索引入注意力机制、动态卷积等改进GC3模块,提升其特征学习能力。最后,提出的图卷积层GConv也存在很大改进空间,如何设计转化函数挖掘原始特征图隐含的拓扑信息,如何引入新的图卷积操作来提取更准确的特征都需要进一步研究。
-
表 1 不同
${\boldsymbol{\lambda }}$ 值下ObjectBox(GC3)在PASCAL VOC数据集的AP[0.5]值比较Table 1 Performance of ObjectBox (GC3) on PASCAL VOC dataset in terms of AP [0.5] under different
${\boldsymbol{\lambda }}$ $\lambda $ 0.5 1 1.5 2 4 8 AP[0.5] 0.798 0.802 0.804 0.811 0.801 0.800 表 2 yolov5s、yolov5s(GC3)与yolov5s+GGFPN在MS COCO数据集的mAP值比较
Table 2 Performance of yolov5s, yolov5s(GC3) and yolov5s+GGFPN on MS COCO dataset in terms of mAP
% 方法 Backbone AP[0.5:0.95] AP[0.5] AP[0.75] AP[S] AP[M] AP[L] yolov5s CSPdarknet 34.2 53.3 36.5 14.0 33.6 46.8 yolov5s(GC3) CSPdarknet 34.2 53.3 36.8 13.1 33.9 47.9 yolov5s + GGFPN CSPdarknet 36.7 55.7 39.6 14.6 35.3 50.9 注:加粗表示最优值。 表 3 ObjectBox、ObjectBox(GC3)与ObjectBoxG在MS COCO数据集的mAP值比较
Table 3 Performance of ObjectBox, ObjectBox(GC3) and ObjectBoxG on MS COCO dataset in terms of mAP
% 方法 Backbone AP[0.5:0.95] AP[0.5] AP[0.75] AP[S] AP[M] AP[L] ObjectBox CSPdarknet 44.2 63.9 47.6 21.1 42.8 58.8 ObjectBox(GC3) CSPdarknet 44.8 64.6 48.2 20.9 43.5 58.8 ObjectBoxG CSPdarknet 45.0 64.8 48.5 21.8 43.8 58.8 注:加粗表示最优值。 表 4 ObjectBoxG与同系列算法在MS COCO数据集的性能比较
Table 4 Performance comparison of the ObjectBoxG and counterpart algorithms on MS COCO dataset
% 方法 Backbone AP[0.5:0.95] AP[0.5] SSD513[19] ResNet101 31.2 50.4 ASSD513[34] ResNet101 34.5 55.5 RFBnet512[35] VGG 32.3 51.8 Retinanet[36] ResNet101 39.1 59.1 F-RCNN w/FPN[11] ResNet101 36.2 59.1 yolov3[37] DarkNet53 33.0 57.9 CornerNet[21] Hourglass104 40.6 56.4 CenterNet[38] Hourglass52 41.6 59.4 FCOS[22] ResNeXt101 42.1 62.1 PAA[39] ResNet101 44.8 63.3 yolov5s CSPDarknet 34.6 53.9 ObjectBox CSPDarknet 44.2 63.9 ObjectBoxG CSPDarknet 45.0 64.8 注:加粗表示最优值。 -
[1] 张婷婷, 章坚武, 郭春生, 等. 基于深度学习的图像目标检测算法综述[J]. 电子学报, 2020, 36(7): 15. ZHANG Tingting, ZHANG Jianwu, GUO Chunsheng, et al. Survey of object detection based on deep learning[J]. Acta electronica sinica, 2020, 36(7): 15. [2] ZAIDI S S A, ANSARI M S, ASLAM A, et al. A survey of modern deep learning based object detection models[J]. Digital signal processing, 2022, 126: 103514. doi: 10.1016/j.dsp.2022.103514 [3] LIU Zhuang, MAO Hanzi, WU Chaoyuan, et al. A ConvNet for the 2020s[C]//2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition. New Orleans: IEEE, 2022: 11966−11976. [4] CARION N, MASSA F, SYNNAEVE G, et al. End-to-end object detection with transformers[M]//Lecture Notes in Computer Science. Cham: Springer International Publishing, 2020: 213−229. [5] HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 770−778. [6] DOSOVITSKIY A, BEYER L, KOLESNIKOV A, et al. An image is worth 16x16 words: transformers for image recognition at scale[EB/OL]. (2020−10−22) [2020−10−22]. http://arxiv.org/abs/2010.11929. [7] HAN K, WANG Y, GUO J, et al. Vision Gnn: an image is worth graph of nodes[J]. Advances in neural information processing systems, 2022, 35: 8291−8303. [8] TAN Mingxing, PANG Ruoming, LE Q V. EfficientDet: scalable and efficient object detection[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 10778−10787. [9] HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904−1916. doi: 10.1109/TPAMI.2015.2389824 [10] FU Chengyang, LIU Wei, RANGA A, et al. DSSD: deconvolutional single shot detector[EB/OL]. (2017−01−23) [2020−10−22]. http://arxiv.org/abs/1701.06659. [11] LIN T Y, DOLLÁR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 936−944. [12] LIU Shu, QI Lu, QIN Haifang, et al. Path aggregation network for instance segmentation[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018: 8759−8768. [13] JIANG Yiqi, TAN Zhiyu, WANG Junyan, et al. Giraffedet: A heavy-neck paradigm for object detection[EB/OL]//(2022−02−09)[2022−12−12]. https://arxiv.org/abs/2202.04256. [14] GHIASI G, LIN T Y, LE Q V. NAS-FPN: learning scalable feature pyramid architecture for object detection[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 7029−7038. [15] XIE Juanying, LIU Ran. The study progress of object detection algorithms based on deep learning[J]. Journal of Shaanxi Normal University (natural science edition), 2019, 47(5): 1−9. [16] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 580−587. [17] GIRSHICK R. Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015: 1440−1448. [18] REN Shaoqing, HE Kaiming, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(6): 1137−1149. doi: 10.1109/TPAMI.2016.2577031 [19] LIU Wei, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector[M]//Lecture Notes in Computer Science. Cham: Springer International Publishing, 2016: 21−37. [20] LI Zuoxin, YANG Lu, ZHOU Fuqiang. FSSD: feature fusion single shot multibox detector[EB/OL]. (2017−12−04) [2020−10−22]. http://arxiv.org/abs/1712.00960. [21] LAW H, DENG Jia. CornerNet: detecting objects as paired keypoints[C]//European Conference on Computer Vision. Cham: Springer, 2018: 765−781. [22] TIAN Zhi, SHEN Chunhua, CHEN Hao, et al. FCOS: fully convolutional one-stage object detection[C]//2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019: 9626−9635. [23] ZAND M, ETEMAD A, GREENSPAN M. ObjectBox: from centers to boxes for anchor-free object detection[C]//AVIDAN S, BROSTOW G, CISSÉ M, et al. European Conference on Computer Vision. Cham: Springer, 2022: 390−406. [24] EVERINGHAM M, VAN GOOL L, WILLIAMS C K I, et al. The pascal visual object classes (VOC) challenge[J]. International journal of computer vision, 2010, 88(2): 303−338. doi: 10.1007/s11263-009-0275-4 [25] LIN T Y, MAIRE M, BELONGIE S, et al. Microsoft COCO: common objects in context[M]//Lecture Notes in Computer Science. Cham: Springer International Publishing, 2014: 740−755. [26] BRUNA J, ZAREMBA W, SZLAM A, et al. Spectral networks and locally connected networks on graphs[EB/OL]. (2013−12−21) [2021−01−01]. http://arxiv.org/abs/1312.6203. [27] MICHELI A. Neural network for graphs: a contextual constructive approach[J]. IEEE transactions on neural networks, 2009, 20(3): 498−511. doi: 10.1109/TNN.2008.2010350 [28] HAMMOND D K, VANDERGHEYNST P, GRIBONVAL R. Wavelets on graphs via spectral graph theory[J]. Applied and computational harmonic analysis, 2011, 30(2): 129−150. doi: 10.1016/j.acha.2010.04.005 [29] KIPF T N, WELLING M. Semi-supervised classification with graph convolutional networks[EB/OL]. (2016−09−09) [2021−01−01]. http://arxiv.org/abs/1609.02907. [30] LI Qimai, HAN Zhichao, WU Xiaoming. Deeper insights into graph convolutional networks for semi-supervised learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. New Orleans: AAAI, 2018. [31] OONO K, SUZUKI T. Graph neural networks exponentially lose expressive power for node classification[EB/OL]. (2019−05−27) [2021−01−01]. http://arxiv.org/abs/1905.10947. [32] WANG C Y, MARK LIAO H Y, WU Y H, et al. CSPNet: a new backbone that can enhance learning capability of CNN[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops. Seattle: IEEE, 2020: 1571−1580. [33] ULTRALYTICS COMPANY. Yolov5. [EB/OL].[2021−01−01]. https://github.com/ultralytics/yolov5/.2021. [34] YI Jingru, WU Pengxiang, METAXAS D N. ASSD: attentive single shot multibox detector[J]. Computer vision and image understanding, 2019, 189: 102827. doi: 10.1016/j.cviu.2019.102827 [35] LIU Songtao, HUANG Di, WANG Yunhong. Receptive field block net for accurate and fast object detection[M]//Lecture Notes in Computer Science. Cham: Springer International Publishing, 2018: 404−419. [36] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//2017 IEEE International Conference on Computer Vision. Venice: IEEE, 2017: 2999−3007. [37] REDMON J, FARHADI A. yolov3: an incremental improvement[EB/OL]. (2018−04−08) [2021−01−01]. http://arxiv.org/abs/1804.02767. [38] DUAN Kaiwen, BAI Song, XIE Lingxi, et al. CenterNet: keypoint triplets for object detection[C]//2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019: 6568−6577. [39] KIM K, LEE H S. Probabilistic anchor assignment with IoU prediction for object detection[M]//Lecture Notes in Computer Science. Cham: Springer International Publishing, 2020: 355−371. [40] WANG C Y, BOCHKOVSKIY A, LIAO H Y M. Yolov7: trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[C]//2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Vancouver: IEEE, 2023: 7464−7475.