HEAD: HEtero-Assists Distillation for Heterogeneous Object Detectors

news2024/11/28 8:33:39

ECCV 2022

异质辅助蒸馏

Abstract

Conventional knowledge distillation (KD) methods for object detection mainly concentrate on homogeneous teacher-student detectors. However, the design of a lightweight detector for deployment is often significantly different from a high-capacity detector. Thus, we investigate KD among heterogeneous teacher-student pairs for a wide application. We observe that the core difficulty for heterogeneous KD (hetero-KD) is the significant semantic gap between the backbone features of heterogeneous detectors due to the different optimization manners.Conventional homogeneous KD (homo-KD) methods suffer from such a gap and are hard to directly obtain satisfactory performance for hetero-KD. In this paper, we propose the HEtero-Assists Distillation (HEAD) framework, leveraging heterogeneous detection heads as assistants to guide the optimization of the student detector to reduce this gap. In HEAD, the assistant is an additional detection head with the architecture homogeneous to the teacher head attached to the student backbone. Thus, a hetero-KD is transformed into a homo-KD, allowing efficient knowledge transfer from the teacher to the student. Moreover, we extend HEAD into a Teacher-Free HEAD (TF-HEAD) framework when a well-trained teacher detector is unavailable. Our method has achieved significant improvement compared to current detection KD methods. For example, on the MS-COCO dataset, TF-HEAD helps R18 RetinaNet achieve 33.9 mAP (+2.2), while HEAD further pushes the limit to 36.2 mAP (+4.5).

传统的用于目标检测的知识蒸馏( KD )方法主要集中在同构的师生检测器上。然而,用于部署的轻量级检测器的设计通常与高容量检测器有很大不同。因此,为了得到广泛的应用,我们研究了异质师生对之间的KD。我们观察到,异构KD (不同KD )的核心难点在于,由于优化方式的不同,异构检测器的主干特征之间存在明显的语义鸿沟。传统的同构KD ( homo-KD )方法存在这样的缺陷,很难直接获得不同KD的满意性能。在本文中,我们提出了不同Assists Distillation ( HEAD )框架,利用异构的检测头作为辅助来指导学生检测器的优化,以减少这种差距。在HEAD中,助理是一个额外的检测头,其结构与连接到学生骨干的教师头部相同。因此,一个异构的KD被转换为一个同构的KD,从而实现从教师到学生的高效知识迁移。此外,当没有训练有素的教师检测器时,我们将HEAD扩展为无教师HEAD ( TF-HEAD )框架。我们的方法与当前的检测KD方法相比取得了显著的改进。例如,在MS - COCO数据集上,TF - HEAD帮助R18 RetinaNet达到33.9 mAP ( + 2.2 ),而HEAD进一步将极限推至36.2 mAP ( + 4.5 )。

introduction

 简明扼要,不同检测器的检测头引导 一种backbone的不同knowledge。

传统方法受限,因为主干知识的差异扩大了教师和学生间的语义鸿沟,本篇论文重点在 同一backbone下的 不用检测头对 学生头的指导。

3 method

提出AKD,CKD 以及 无教师KD机制TF-HEAD

3.1 AKD

assistant 和 teacher 同质。

教师双阶段:

        学生为双阶段: 学生RPN后的输出做ROI Align后计算loss

        学生为单阶段:学生head 的cls分支输出做替代  -> 将每个anchor的 cls logit 转换为 类不可知的 obj logit,然后根据RPN怎么弄,它就怎么生成RoIs

问题一:RoI PoolingRoI Align

RoI Pooling 量化操作 损失精度,

RoI Align 利用双线性插值 在不损失精度的基础上,更有利于分割。

 

问题二:单阶段学生怎么生成RoIs

首先S的预测头 cls分支找到前景概率大的anchor然后结合reg分支位置参数,根据RPN怎么生成,它就怎么生成RoIs。


这里T backbone 的特征进T检测头,那么什么特征进A检测头呢?

        Ps, 即经过ROI对齐后的特征,要么是双阶段学生RPN后 RoI Align的特征,要么是图二右上方那里经过 convert 后的RoIs对齐后的特征。

A 检测头和 T检测头间有 , A检测头和 GT间有

这里计算还是好理解的,助手拿到的是学生backbone得到的特征,要和Teacher计算loss,还要和GT比较。

这就是 

3.2 CKD

        通过教师直接监督学生,进一步提高学生能力。

1.T直接监督S

这里有两句话

        We ignore the regression feature following G-DetKD [48]. Secondly, inspired by MimicDet [31], we trace back to the original anchors of each RoI. Thirdly, since each anchor corresponds to a pixel on , we sample these pixel features to form

        忽略G-DetKD后的reg feature, 受启发,追溯每个RoI的原始锚点。由于每个锚对应于FS cls上的一个像素,因此我们采样这些像素特征以形成F


个人理解:

        1.忽略reg分支,貌似CKD是 继承的G-DetKD的东西

        2.对cls分支,AKD提出的前景anchor追踪其orin像素,采样这些像素得到特征

 

又有单双阶段不同的话,加一个1*1卷积 对齐,再计算loss。

3.3 TF-EHAD

多个助手(异质的检测头)

多个助手AKD 和 CKD 然后加上 student本身的和GT之间的loss

助手1与GT

助手1与学生 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计(附源码)python智能仓储进出货管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

web前端期末大作业:基于HTML+CSS+JavaScript制作我的音乐网站(带设计报告)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【python】都2022年不会还有人不会在电脑桌面上养宠物吧~

前言 嗨喽~大家好呀,这里是魔王呐 ! 上班枯燥,对着冷冰冰的电脑,相信很多小伙伴即使摸鱼,心情也不愉快。 这时如果有个萌宠能大家进行实时互动,这该有多好呀。再无聊的工作也能增添那么一丝趣味。 今天博主就来给大…

2、Ubuntu下安装Vivado下的下载器驱动 Digilent 版本

简介 在Ubuntu下安装Vivado时,安装工具会提醒你,digilent驱动无法自动安装,需要手动安装,并且让用户参考UG973手册安装。 由于安装驱动很简单,不用麻烦大家去找手册了,这里直接给出安装方法 安装方法 …

【Pytorch Lighting】第 6 章:深度生成模型

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

FPGA HLS 卷积单元 数据类型hls优化约束设置

数据类型 自定义精度整形&#xff1a; ap_int<4> in1, in2; ap_int<8> concat; concat (in1, in2); // in1和in2拼起来&#xff08;按照补码拼起来&#xff09; /* 例子&#xff1a; in1 1, in2 -1 补码&#xff1a; in1 0001 in2 1001 > 11101 > 1…

Spring mvc处理异常

文章目录一、Handler ExceptionResolver处理异常二、ExceptionHandler注解三、重点&#xff1a;添加ExceptionHandler注解方法的形参只能是异常类型四、重点2&#xff1a;捕获所有方法的异常—ControllerAdvice注解五、总结六、ResponseStatusExceptionResolve自定义异常显示页…

[go学习笔记.第十一章.项目案例] 1.家庭收支记账软件项目

一.基本介绍 1.项目开发流程说明 2.项目需求说明 目标: 模拟实现一个基于文本界面的<<家庭记账软件>> 掌握初步的编程技巧和调试技巧 主要涉及以下知识点 : (1).局部变量和基本数据类型 (2).循环语句 (3).分支语句 (4).简单的屏幕输出格式控制 (5).进阶&#xff1…

刷题日记【第九篇】-笔试必刷题【杨辉三角的变形+计算某字符出现的次数+字符串通配符+统计每个月兔子的总数】

下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限&#xff08;A&#xff09;。 常用的管理权限的命令为&#xff1a; grant select/insert/update/delete on 数据库名.表名 to 用户名‘该用户允许访问的ip’ 在oracle中&#xff0c;下面哪…

世界上只有一种共识算法,那就是Paxos

分布式系统原理系列目录 分布式系统的麻烦副本与一致性为什么需要一个分布式共识算法世界上只有一种共识算法&#xff0c;那就是PaxosCAP定理&#xff0c;说起来一句话&#xff0c;实际坑不少BASE&#xff0c;可用性高于强一致性分布式事务方案那么多&#xff0c;到底该选哪一…

计算机毕业设计(附源码)python智慧灭火器管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

大数据学习3.1 Hadoop环境准备

Hadoop环境Hadoop集群拓扑1、集群拓扑2、角色分配一、虚拟机安装二、虚拟机克隆1、克隆类型&#xff08;1&#xff09;完整克隆&#xff08;2&#xff09;链接克隆2、克隆步骤&#xff08;1&#xff09;克隆出master虚拟机&#xff08;2&#xff09;克隆出slave1虚拟机&#xf…

深入理解Linux文件描述符

>> Linux基础IO系列文章 1. Linux文件操作系统接口的学习使用 一、前言 在上一篇博客中&#xff0c;我们初步学习了Linux文件操作的系统接口&#xff0c;不难发现的是&#xff0c;这些系统函数都与文件描述符密切相关&#xff1a;open函数返回值是一个文件描述符&#…

Python编程挑战赛

题1&#xff1a;给小朋友分糖&#xff0c;每人分到糖的数量不同&#xff0c;输入小朋友的数量&#xff0c;计算至少需要多少糖&#xff1f; 思路&#xff1a;第1个小朋友1颗糖&#xff0c;第2个小朋友2颗糖&#xff0c;第3个小朋友3颗糖&#xff0c;……第n个小朋友n颗糖&#…

[数据结构]实现双向链表

作者&#xff1a; 华丞臧. 专栏&#xff1a;【数据结构】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 文章目录一、带头双向循环链表二、带头双向循环链表接口实现2.1 双向链表的初始化、打…

动态规划算法的题到底应该怎么做?思路教给你自己写

本文是我通过做题和借鉴一些前人总结的套路而得出的思路和方法&#xff0c;刚好这次CSDN第八周的周赛上出了三道动态规划的题目&#xff0c;我会结合题目对我的思路进行一个输出&#xff0c;会从最简单的一维dp开始讲解到二维dp&#xff0c;希望对你有帮助&#xff0c;有错误希…

MySQL数据库基础知识

今天是更新数据库的第一篇&#xff0c;关于数据库环境搭建问题博主先不在这里介绍了&#xff0c;博主今天是直接讲知识了&#xff0c;等以后的博客&#xff0c;博主再更新数据库搭建问题。在这里我们使用命令行式客户端&#xff0c;先不使用windows下的图形化界面&#xff0c;使…

ReadingTime-十一月

CV文章浅读_not_everday0x1105.CAViT for video object re-id 2022_中科院这个月主要是要学习pytorch和一些CV baseline的复现&#xff0c;搞搞毕设雏形&#x1f199; 以后还是把笔记写纸上要么写博客&#xff0c;不放本地了&#x1f628; 网页版小绿鲸zen好用 &#x1f603; …

峰会实录 | 基于StarRocks和腾讯云EMR构建云上Lakehouse

作者&#xff1a;腾讯云EMR业务负责人陈龙&#xff08;本文为作者在 StarRocks Summit Asia 2022 上的分享&#xff09; 我目前负责腾讯云EMR 的研发工作&#xff0c;此前先后在百度、支付宝做后端研发。2011年加入腾讯&#xff0c;先后参与了腾讯云Redis、腾讯云云数据库、Ap…

小米 Civi 2 (ziyi) 机型解锁bl 获取root权限教程 +其他机型参数对比+救砖

*********机型优点与其他机型参数对比***************** 小米 Civi 2 (ziyi) 国行版机型前置由3200万主摄3200万超广角组成的双摄是它最大的亮点&#xff0c;配有4颗柔光灯。自拍相当不错。他的后置主摄采用5000万像素相机&#xff0c;IMX766传感器&#xff0c;1/1.56英寸感光…