Directional Alignment Instance Knowledge Distillation for Arbitrary-Oriented Object Detection

Directional Alignment Instance Knowledge Distillation for Arbitrary-Oriented Object Detection

Introduction

论文题目 :Directional Alignment Instance Knowledge Distillation for Arbitrary-Oriented Object Detection

论文地址https://ieeexplore.ieee.org/abstract/document/10227337/

论文出处 :2023’TGARS

代码实现:未公开

Idea

遥感目标检测方向专门的知识蒸馏。

Detail

选择了YOLOv6中提出的Efficient Rep作为backbone和neck.

把头部解耦,进一步分解成三个子任务分支:回归分支、分类分支和角度分类分支(CSL)。

Angle Distillation

就是使用CSL将角度分为180个类别,然后使softmax将这些输出的logit转变为类别概率分布:

pθτ=softmax(Sθ,τ)(3)qθτ=softmax(Tθ,τ)(4)Lθ=LCE(Sθ,θcsl)+λθLKL(pθτqθτ)(5)\begin{gathered} \boldsymbol{p}_{\boldsymbol{\theta}}^{\tau} =\operatorname{softmax}(\mathbf{S_\theta},\boldsymbol{\tau}) \text{(3)} \\ \boldsymbol{q}_{\boldsymbol{\theta}}^{\boldsymbol{\tau}} =\operatorname{softmax}(T_\theta,\tau) \text{(4)} \\ L_{\theta} =L_{\mathrm{CE}}(S_\theta,\theta_{\mathrm{csl}})+\lambda_\theta L_{\mathrm{KL}}(p_\theta^\tau||q_\theta^\tau) \text{(5)} \end{gathered}

Agnular Distance Aspect Lookup Table

提出了角度距离横纵比(权重)路由表,用于解决角度周期性问题和类正方形问题:

W(θ)=sin(V(AR)×(Δθ))V(AR)={2,AR>r1,otherwise.\begin{aligned} W^{*}(\theta)& =|\sin(\mathcal{V}(\mathcal{AR})\times(\Delta\theta))| \\ \mathcal{V}(\mathcal{AR})& =\begin{cases}2,&\mathcal{AR}>r\\1,&\text{otherwise.}&\end{cases} \end{aligned}

做了一个离散的建模映射,得到权重,并用这个权重重新加权分类分支、回归分支、角度分类分支的损失。

总之,通过这个AAL来提高模型对角度距离和横纵比的敏感性,解决角度周期性问题和类正方形问题。

Sample Alignment Distillation

这一部分是专门针对单阶段目标检测的,对anchor point做一个蒸馏。

Loss Function

最后的Loss由四个类别组成,分别是回归分支损失,分类分支损失,角度分类分支损失和SAD模块

  • 回归分支损失:IOU:使用的是Generlized focal loss, GIOU + 四条边softmax概率分布

LIoU=1GloU(B,Bˉ)Lreg=i=1NposS^i(LIoU+λregLKL(pregiτqregiτ)).\begin{aligned} &\mathcal{L}_{\mathrm{IoU}} =1-\mathrm{GloU}(\mathcal{B},\mathcal{\bar{B}}) \\ &\mathcal{L}_{\mathrm{reg}} =\sum_{i=1}^{N_{\mathrm{pos}}}\hat{S}_i\left(\mathcal{L}_{\mathrm{IoU}}+\lambda_{\mathrm{reg}}L_{\mathrm{KL}}\left(p_{\mathrm{reg}_i}^{\tau}||q_{\mathrm{reg}_i}^{\tau}\right)\right). \end{aligned}

  • 分类分支损失:使用的是VarifocalNet中的VFL

Lclass=i=1NposVFL(pi,S^i)+λclsLKL(pclassτqclassτ).\begin{aligned}&\mathcal{L}_\mathrm{class}\\&=\sum_{i=1}^{N_\mathrm{pos}}\mathrm{VFL}(p_i,\hat{S}_i)+\lambda_\mathrm{cls}L_\mathrm{KL}(\boldsymbol{p}_\mathrm{class}^\tau||\boldsymbol{q}_\mathrm{class}^\tau).\end{aligned}

  • 角度分类分支损失:

Lθ=i=1NposS^i(LCE(Sθi,θcsli)+λθLKL(pθiτqθiτ))\mathcal{L}_\theta=\sum_{i=1}^{N_{\mathrm{pos}}}\hat{S}_i\left(L_{\mathrm{CE}}(\mathbf{S}_{\theta_i},\theta_{\mathrm{csl}_i})+\lambda_\theta L_{\mathrm{KL}}(\boldsymbol{p}_{\theta_i}^\tau||\boldsymbol{q}_{\theta_i}^\tau)\right)

  • SAD模块损失:

LLA=1Ki=1Kj=1Njt^ijlogt^ijs^ij.\mathcal{L}_\mathrm{LA}=-\frac1K\sum_{i=1}^K\sum_{j=1}^{N_j}\hat{t}_i^j\mathrm{log}\frac{\hat{t}_i^j}{\hat{s}_i^j}.

最后的总损失函数L:

L=λ1Lreg+λ2Lclass+λ3Lθ+λ4LLA.\mathcal{L}=\lambda_1\mathcal{L}_\mathrm{reg}+\lambda_2\mathcal{L}_\mathrm{class}+\lambda_3\mathcal{L}_\theta+\lambda_4\mathcal{L}_\mathrm{LA}.

Result

其他

Oriented-rcnn 教师网络 resnet101网络测试结果:

没有蒸馏效果的好