IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> FCOS 论文笔记 -> 正文阅读

[人工智能]FCOS 论文笔记

FCOS: Fully Convolutional One-Stage Object Detection

论文链接: https://arxiv.org/abs/1904.01355

一、 Problem Statement

目前的目标检测网络大多数依赖于anchor。而anchor存在着以下几个缺点的:

  1. 检测性能对anchor参数的设置很敏感,需要很仔细的优化。
  2. anchor的大小和比例都是固定的,对于形状变化大的目标,特别是小目标,检测网络比较难处理。
  3. 为了获得hight-recall rate, 往往检测网络会设置大量的anchor,导致正负样本的数量不平衡。
  4. anchor的IoU计算会占用大量的计算资源。

因此,作者提出一个问题,是否我们的目标检测器可以和语义分割的FCN一样,是一个neat per-pixel prediction fashion。也就是说,FCN-based的检测器在特殊的位置上预测出一个4D的向量和一个类别。

二、 Direction

提出一个proposal free 和 anchor free的FCN-based one-stage的检测器。

三、 Method

先来看一下FCOS的整体结构:

在这里插入图片描述

可以看到整体分为三个部分,Backbone, FPN 和 Prediction Head。而prediction head 不再是FC层,而是FCN。Backbone 论文使用的是ResNet-50。

1. network input and output

网络的输入为一张图像,图像经过了Backbone,得到了每一层的feature map, 我们用 F i ∈ R H × W × C F_i \in \R^{H \times W \times C} Fi?RH×W×C表示Backbone的第 i i i层,和用 s s s表示从输入到 F i F_i Fi?的total stride。而ground-truth bounding box用 { B i } \{B_i\} {Bi?}表示。 B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) , y 1 ( i ) , c ( i ) ) ∈ R 4 × { 1 , 2 , . . . C } B_i = (x_0^{(i)},y_0^{(i)},x_1^{(i)},y_1^{(i)},c^{(i)}) \in \R^4 \times \{1,2,...C\} Bi?=(x0(i)?,y0(i)?,x1(i)?,y1(i)?,c(i))R4×{1,2,...C}。也就是bounding box的左上角和右下角顶点的坐标, c ( i ) c^{(i)} c(i)代表的是目标类别。
那对于每一个feature map F i F_i Fi? 上的(x,y)点,,我们都可以 投影回输入图像 :
( [ s 2 ] + x s , [ s 2 ] + y s ) ([\frac{s}{2}]+xs, [\frac{s}{2}]+ys) ([2s?]+xs,[2s?]+ys)
这个原图像上的位置大概就是(x, y)感知域的中心点。如果这个(x,y)在bounding box里面,我们就认为这个位置是positive的,而其类别为 c ? c^* c?,反之,则为negative 和 c ? = 0 c^*=0 c?=0

作者直接回归在(x,y)位置上的目标框:
t ? = ( l ? , t ? , r ? , b ? ) t^*=(l^*, t^*, r^*, b^*) t?=(l?,t?,r?,b?)
这里的 l ? , t ? , r ? , b ? l^*, t^*, r^*, b^* l?,t?,r?,b?分别如下图所示:
在这里插入图片描述

所以这个与ground-truth bounding box的联系为:

l ? = x ? x 0 ( i ) , t ? = y ? y 0 ( i ) r ? = x 1 ( i ) ? x , b ? = y 1 ( i ) ? y l^* = x - x_0^{(i)}, \quad t^*=y-y_0^{(i)} \\ r^*=x_1^{(i)}-x, \quad b^*=y_1^{(i)} - y l?=x?x0(i)?,t?=y?y0(i)?r?=x1(i)??x,b?=y1(i)??y

值得注意的是: 如果(x,y)同时落在多个bounding box里面,作者简单地选择最小的bounding box进行回归训练,因为通过实验表明,在multi-level上进行预测,这些模糊的样本极大的减少,因此也不会很严重的影响检测性能。

而对于网络的输出,会有 一个80-Dimension (MS-COCO数据集类别数)向量用于分类,和 一个4-Dimension 的向量用于bounding box。

2. Loss function

整体的loss function 为:
L ( { p x , y } , { t x , y } ) = 1 N p o s ∑ x , y L c l s ( p x , y , c x , y ? ) + λ N p o s ∑ x , y 1 { c x , y ? > 0 } L r e g ( t x , y , t x , y ? ) L(\{p_{x,y}\}, \{t_{x,y}\}) = \frac{1}{N_{pos}}\sum_{x,y}L_{cls}(p_{x,y}, c^*_{x,y}) + \frac{\lambda}{N_{pos}}\sum_{x,y}1_{\{c^*_{x,y}>0\}}L_{reg}(t_{x,y}, t^*_{x,y}) L({px,y?},{tx,y?})=Npos?1?x,y?Lcls?(px,y?,cx,y??)+Npos?λ?x,y?1{cx,y??>0}?Lreg?(tx,y?,tx,y??)
可以看到,loss总共分为两个部分,一个回归,一个分类,且都只用于positive samples。 L c l s L_{cls} Lcls?是 focal loss而 L r e g L_{reg} Lreg?是IOU loss。 ∑ \sum 代表着每一个 F i F_i Fi? ( x , y ) (x,y) (x,y)都要计算在内。

而在预测的时候,选择分类置信度 p x , y > 0.05 p_{x,y} \gt 0.05 px,y?>0.05的作为正样本,然后根据式子將每一特征层 F i F_i Fi?预测出来的 t x , y t_{x,y} tx,y?转换为bounding box。

3. Multi-level Prediction with FPN for FCOS

上文的绿色字也提到过,FCOS潜在的问题:

  1. 模糊样本,也就是(x,y)同时落在多个ground-truth bounding box里面。
  2. 最后一个feature map 会有large stide,导致一个相对较低的recall, best possible recall (BPR)。

而上面两个问题,都可以通过multi-level prediction 解决。

所以作者使用了FPN,利用了5个feature maps { P 3 , P 4 , P 5 , P 6 , P 7 } \{P_3, P_4, P_5, P_6, P_7\} {P3?,P4?,P5?,P6?,P7?}。不像anchor-based 检测器那样,在不同的特征层用不同大小和比例的anchor进行对齐,作者直接在每一层限制了bounding box的回归范围。 ,下面为具体的步骤:

  1. 计算所有特征层每一个 ( x , y ) (x,y) (x,y) l ? , t ? , r ? , b ? l^*, t^*, r^*, b^* l?,t?,r?,b?
  2. 对这四个值求最大值 max ? ( l ? , t ? , r ? , b ? ) \max(l^*, t^*, r^*, b^*) max(l?,t?,r?,b?)
  3. 对比这个个最大值是否大于一个阈值 m i m_i mi?,或者小于一个阈值 m i ? 1 m_{i-1} mi?1?。如果是的话,认为是negative sample,就不会对回归产生影响了,因为只对positive 进行回归训练。这里的阈值分别为: 0 , 64 , 128 , 256 , 512 , ∞ 0,64,128,256,512,\infin 0,64,128,256,512,,分别对应于 m 2 , m 3 , m 4 , m 5 , m 6 , m 7 m_2,m_3,m_4,m_5,m_6,m_7 m2?,m3?,m4?,m5?,m6?,m7?

不同大小的目标会对齐于不同的feature levels,因此可以解决大部分的overlapping的问题。尽管还是会发生模糊样本的问题,就选择最小的bounding box进行回归,影响不大。

对于如何理解shared head 参数,个人认为:在FPN论文中,提到过shared head和 不shared head的性能是相近的,没有多大差别。因此为了减少参数量,提升速度,不同head都使用同一套权重。也就是说,上图中五个head,每一个head都只有一套权重。

[1]: we note that the parameters of the heads are shared across all feature pyramid levels; we have also evaluated the alternative without sharing parameters and observed similar accuracy

但也有其他的理解,可以参考[2]

4. Centerness for FCOS

由于低质量的bounding boxes 远离目标的中心,这会导致FCOS的性能始终和anchor-based 的检测器有差距。作者就提出了一个分支: centerness branch, 用来预测 ( x , y ) (x,y) (x,y)的中心度,centerness 真值由以下计算:
c e n t e r n e s s ? = min ? ( l ? , r ? ) max ? ( l ? , r ? ) × min ? ( t ? , b ? ) max ? ( t ? , b ? ) centerness^*=\sqrt{\frac{\min(l^*,r^*)}{\max(l^*,r^*)} \times \frac{\min(t^*, b^*)}{\max(t^*,b^*)}} centerness?=max(l?,r?)min(l?,r?)?×max(t?,b?)min(t?,b?)? ?

centerness的训练使用BCE loss, 范围是(0, 1)。所以centerness 可以使得远离中心的bounding box的权重减小,最后再通过NMS处理,提高性能。

四、 Conclusion

是一个proposal free 和 anchor free的一个one-stage检测器。

五、 Reference

[1] Feature Pyramid Networks for Object Detection
[2] https://www.zhihu.com/zvideo/1370025521049329664

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:45:02  更:2021-09-09 11:45:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 15:41:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码