目录

  • 1. 出发点
  • 2. FSAF的思想
  • 3. FSAF原理详解
    • 3.1 how to create the anchor-free branches in the network
    • 3.2 how to generate supervision signals for anchor-free branches
    • 3.3 how to dynamically select feature level for each instance
    • 3.4 how to jointly train and test anchor-free and anchor-based branches
  • 4. 实验
  • 5. 优缺点

论文:Feature Selective Anchor-Free Module for Single-Shot Object Detection
时间及出处:CVPR 2019

1. 出发点

FSAF所研究的问题是label assignment,即正负样本定义问题。

  • 在FPN出现前,label assignment只需要考虑特征图的每个位置的正负性,我们称其为spatial dimension
  • 在FPN出现后,label assignment除了需要考虑特征图的每个位置的正负性,还需要考虑某个尺寸的特征图应预测哪个尺寸范围的物体,我们称其为scale dimension

目前基于多尺度特征预测(如,FPN)的one-stage方法在做label assignment时存在以下2个不足:

  • overlap-based anchor sampling:特征图的哪个位置是正样本是基于IoU的
  • heuristic-guided feature selection:某个尺寸的特征图应预测哪个尺寸范围的物体是手动设定的,如FPN、RetinaNet等。如此,大物体将由高层特征图预测,小物体将由低层特征层预测,如下图所示,这样的做法可能不是最优的。

2. FSAF的思想

  • 既然用事先定义好的IoU准则来做label assignment不合理,那就让网络自动学习如何做label assignment,即事先不定义样本的正负性,样本的正负性由网络输出来决定。

3. FSAF原理详解

3.1 how to create the anchor-free branches in the network

3.2 how to generate supervision signals for anchor-free branches

  • b=[x,y,w,h]b=[x,y,w,h]b=[x,y,w,h]:图像中的某一GT框的坐标
  • bpl=b/2l=[xpl,ypl,wpl,hpl]b_p^l=b/2^l=[x_p^l,y_p^l,w_p^l,h_p^l]bpl​=b/2l=[xpl​,ypl​,wpl​,hpl​]:bbb映射到特征层PlP_lPl​的坐标
  • bel=[xel,yel,wel,hel]=[xpl,ypl,ϵewpl,ϵehpl]b_e^l=[x_e^l,y_e^l,w_e^l,h_e^l]=[x_p^l,y_p^l,\epsilon _e w_p^l,\epsilon _e h_p^l]bel​=[xel​,yel​,wel​,hel​]=[xpl​,ypl​,ϵe​wpl​,ϵe​hpl​]:effective box的坐标,其中,,ϵe=0.2,\epsilon _e=0.2,ϵe​=0.2
  • bil=[xil,yil,wil,hil]=[xpl,ypl,ϵiwpl,ϵihpl]b_i^l=[x_i^l,y_i^l,w_i^l,h_i^l]=[x_p^l,y_p^l,\epsilon _i w_p^l,\epsilon _i h_p^l]bil​=[xil​,yil​,wil​,hil​]=[xpl​,ypl​,ϵi​wpl​,ϵi​hpl​]:ignoring box的坐标,其中,,ϵi=0.5,\epsilon _i=0.5,ϵi​=0.5

supervision signals如下所示:

(1)分类监督信号

  • 对于类别为kkk的物体,取出其对应类别的class feature map;
  • 将effective box belb_e^lbel​ 所包围位置的值设置为1(上图白色区域),该区域为正样本;
  • 将区域 bil−belb_i^l-b_e^lbil​−bel​的值设置为0.5(上图灰色区域),该区域为忽略样本,不参与训练;
  • 将区域 bpl−bilb_p^l-b_i^lbpl​−bil​的值设置为0(上图黑色区域),该区域为负样本。

如果同一特征图的两个物体有重叠区域,则小物体的优先级更高。

最后,采用Focal loss训练。

(2)回归监督信号

边界框回归只针对正样本,所以对于effective region中的每一个位置(i,j)(i,j)(i,j),将输出4维的边界框预测量di,jl=(dti,jl,dli,jl,dbi,jl,dri,jl)d_{i,j}^l=({d_t}_{i,j}^l,{d_l}_{i,j}^l,{d_b}_{i,j}^l,{d_r}_{i,j}^l)di,jl​=(dt​i,jl​,dl​i,jl​,db​i,jl​,dr​i,jl​),分别对应位置(i,j)(i,j)(i,j)到belb_e^lbel​四条边的距离,将di,jld_{i,j}^ldi,jl​归一化后(di,jl/S,S=4d_{i,j}^l/S,\ S=4di,jl​/S, S=4)分别放在4个feature map中,所以回归是class-agnostic。

最后用IoU loss训练。

在测试时,假设网络输出的预测量为:
(o^ti,j,o^li,j,o^bi,j,o^ri,j)({\hat o_t}_{i,j},{\hat o_l}_{i,j},{\hat o_b}_{i,j},{\hat o_r}_{i,j})(o^t​i,j​,o^l​i,j​,o^b​i,j​,o^r​i,j​)则在原图上的预测边界框为:
2l(i−o^li,j,j−o^ti,j,i+o^ri,j,j+o^bi,j)2^l\left( i-{\hat o_l}_{i,j},\ j-{\hat o_t}_{i,j},\ i+{\hat o_r}_{i,j},\ j+{\hat o_b}_{i,j}\right)2l(i−o^l​i,j​, j−o^t​i,j​, i+o^r​i,j​, j+o^b​i,j​)

3.3 how to dynamically select feature level for each instance

online feature selection的流程图如下:

  1. 将物体III放置在所有特征图上,并用3.2节的方法标注训练标签和计算物体III在每一层的focal loss(LFLI(l)L_{FL}^I(l)LFLI​(l))和IoU loss(LIoUI(l)L_{IoU}^I(l)LIoUI​(l)):
  2. 将物体III按照以下准则赋给特征层Pl⋆P_{l^\star}Pl⋆​:

至此,FSAF完全可以单独作为一种anchor-free detector,但也可以与anchor-based结合。

3.4 how to jointly train and test anchor-free and anchor-based branches

联合训练时,损失函数为anchor-based branches和anchor-free branches两部分损失函数的加权和:

其中,ab是anchor-based的缩写,af是anchor-free的缩写。

4. 实验

  • RetinaNet的每一层均负责检测所有尺寸的物体
  • 在RetinaNet基础上加上启发式特征选择(不同层负责预测不同尺寸的物体)后,APAPAP有所提升,表明,不同层负责预测不同尺寸的物体的做法是有效的。
  • anchor-free branches的启发式特征选择的APAPAP比RetinaNet低,但换成在线特征选择后,APAPAP有所提高,表明在线特征选择的有效性
  • anchor-based branches + anchor-free branches的在线特征选择效果最好。

模型性能:

5. 优缺点

  • FSAF利用损失函数的大小自动地为不同尺寸的物体选择不同的特征层的思想非常好
  • 但是,这种label assignment的做法并不是彻底地自适应,因为其只完成了label assignment的scale dimension,并没有完成label assignment的spatial dimension,即为不同大小的物体指定某一层,后续如果和anchor-based结合,还需要根据IoU来决定该物体具体应该由该层的哪一个anchor box来负责预测,若不与anchor-based,则spatial dimension方面仍然是采用预先判定正负样本的方法。
  • 如果实现了彻底的自适应label assignment,有可能出现同一个物体同时由相邻的特征层共同负责预测(FoveaBox证实了这种做法的有效性)。

Feature Selective Anchor-Free(FSAF)相关推荐

  1. FSAF:Feature Selective Anchor-Free Module for Single-Shot Object Detection笔记

    论文地址: https://arxiv.org/abs/1903.00621. 作者在B站解读视频:https://www.bilibili.com/video/av49972561/. 注:本文在查 ...

  2. 干货 | 目标检测入门,看这篇就够了(上)

    作者 | 李家丞( 同济大学数学系本科在读,现格灵深瞳算法部实习生) 近年来,深度学习模型逐渐取代传统机器视觉方法而成为目标检测领域的主流算法,本系列文章将回顾早期的经典工作,并对较新的趋势做一个全景 ...

  3. 目标检测(十)--SSD

    转自:http://blog.csdn.net/u010167269/article/details/52563573 论文:SSD single shot multibox detector 论 ...

  4. 目标检测(八)--Faster R-CNN

    转自:www.cnblogs.com/dudumiaomiao/p/6560841.html 略删改 R-CNN --> FAST-RCNN --> FASTER-RCNN R-CNN: ...

  5. 细粒度图像分类(FGVC)--- 综述

    原文链接:https://www.its404.com/article/xys430381_1/89640699 目录 一.概述 什么是细粒度图像分类 意义 细粒度图像分类的挑战 细粒度分类常用方法 ...

  6. 细粒度图像分类(FGVC)---综述

    目录 一.概述 资源 什么是细粒度图像分类 意义 细粒度图像分类的挑战 细粒度分类常用方法 二.基于定位-识别的方法 2.1 强监督 2.1.1 Part-based R-CNN 2.1.2Pose ...

  7. SSD算法理解(1)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010167269/article/details/52563573 Preface 这是今年 EC ...

  8. 深度学习的目标检测通览(上)

    近年来,深度学习模型逐渐取代传统机器视觉方法而成为目标检测领域的主流算法,本系列文章将回顾早期的经典工作,并对较新的趋势做一个全景式的介绍,帮助读者对这一领域建立基本的认识.(营长注:因本文篇幅较长, ...

  9. 【转载智车科技公众号(微信)】目标检测综述上(上)

    近年来,深度学习模型逐渐取代传统机器视觉方法而成为目标检测领域的主流算法,本系列文章将回顾早期的经典工作,并对较新的趋势做一个全景式的介绍,帮助读者对这一领域建立基本的认识. " 作者 | ...

最新文章

  1. openstack-mitaka之Telemetry服务(controller安装部署)
  2. Chrome开发者工具中Elements(元素)断点的用途
  3. cryptogen (1)generate 生成证书举例
  4. 【布莱克智讯之声公众号】 精彩图文分类导航
  5. html5翻卡片游戏,用 JavaScript 写一个卡片小游戏
  6. [妙味Ajax]第三课:AJAX跨域解决方案:JSONP
  7. cad断点快捷键_CAD如何打断?CAD打断点和CAD打断命令操作方法
  8. 算法11 抓住波粒二象性的火星人
  9. C++ priority_queue的使用及模拟实现
  10. 堆栈stack的基本操作
  11. Pssp-mvirt: 基于多视图深度学习架构的肽二级结构预测
  12. java 微信 jar_weixin-java-tools
  13. 【ArcGIS微课1000例】0052:创建地理数据库注记(标准注记、要素关联注记、尺寸注记)
  14. python创建excel新的表格_python创建Excel表格并添加工作表
  15. RO,RW,ZI 和scatter file详解(转载)
  16. Flutter 入门指北之基础部件
  17. Krita像素画教程
  18. kad是什么?ed2k是什么?他们之间有什么关系?
  19. R软件与RStudio安装(版本R-4.2.2)Windows10
  20. 【数据标准】学院数据集标准规范-1.1-引言

热门文章

  1. SpringCloudAlibaba(一)SpringCloudAlibaba简介
  2. 一次性能优化引发的思考
  3. python 表情包制作工具_大型电视连续剧《亮剑》相关表情包制作
  4. demo:猜数字小游戏
  5. 语雀桌面端技术架构实践
  6. java tongpaiyu danliantiao_Java Pinyin.cou4方法代碼示例
  7. 洛谷P8255 解法 2020328
  8. 运维派 企业面试题3 为上题中的 十个随机字母_test.html 文件 更名
  9. 下载keep运动软件_keep运动下载安装
  10. 《迅雷链精品课》第三课:区块链主流框架分析