FCOS: A Simple and Strong Anchor-free Object Detector

论文链接

一.背景

1.anchor-base缺点         

(1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.

(2).anchor太过密集,其中很多是负样本,引入了不平衡.

(3).anchor的计算涉及IOU增加计算复杂度.

2.anchor free检测框

yolov1可看成是anchor free方式,通过划分格子,target的中心点位于格子里的,才将相应的格子负责预测target.而yolov2采用了anchor的思想.anchor遍布图片,自然召回率上升了.fcos取长补短,采取了gt框里的所有点进行回归,同时采用center-ness分支优化框的质量.

二.网络介绍

1.网络结构

输出分支主要由三部分组成

(1)classification,大小为(W,H,C),输出不同类别

(2)Regression,大小为(W,H,4),输出图上每个点的上下左右偏差

(3)Center-ness大小为(W,H,1),预测检测框中心点与gt检测框的中心点的重合概率,用来提升检测框精度,下面有具体分析.

2.中心采样(center sampling)

对于任何一个gt bbox,首先映射到每一个输出层,利用center_sample_radius×stride计算出该gt bbox在每一层的正样本区域以及对应的left/top/right/bottom的target.

对于每个输出层的正样本区域,遍历每个point位置,计算其max(left/top/right/bottom的target)值是否在指定范围内,不再范围内的认为是背景.

(1).减少歧义target数目,能很大解决overlap特征点不知道该回归那个框的问题

(2).减少标注噪声干扰

box标注通常会框住很多无关区域,如果无关区域的point也要回归明显不对,比如空中的飞机,飞机旁边的天空就是无关区域.

3.FPN

通过FPN在每层feature map去预测不同尺度大小的物体,就解决了这种overlap的问题(overlap特征点不知道该回归那个框).

如果FPN和中心采样还没解决的话,就按最小的框来.

同时FPN每一层回归范围进行约束.

P3:回归范围在[0,64],P4:回归范围在[64,128],P5:回归范围在[128,256]

P6:回归范围在[256,512],P7:回归范围在[612,inf],这样就解决了不同层预测不同大小目标的问题.

但是比如还是存在多个head回归一物体现象,比如在第二层回归的最大范围是80,在往上一层回归的最大范围就是40(因为第二层是第一层的1/2),所以导致同一个物体是有两层进行回归的。

4.分类

训练C个二分类器,而不是训练一个多分类器.

5.坐标回归

anchor-based回归方式在于回归anchor与gt框之间的偏移量,而fcos在特征图上面的每一个点回归上下左右的距离(可认为是point-based).

公式:

(l ∗ , t ∗ , r ∗ , b ∗ ) :回归的上下左右四个量;

(x0,y0),(x1,y1):gt在原图上面的左上右下坐标;

(x,y):特征图内的点的坐标;

s: 相应feature map的步长, 用于压缩预测范围,容易平衡分类和回归Loss权重.

6. center-ness

作者发现引入了很多远离taget中心点的低质量预测框,预测框的中心点与target框的中心点更接近的话,预测框更加可靠.所以在回归的分支引入center-ness分支来回归预测框中心与target中心,虽然是回归问题,但采用的是celoss

可看出低IOU但score高的box得到了很大减少,IOU和score的一致性得到了改善.

7.loss函数

Lcls: focal loss

Lreg: GIoU loss

Npos:正样本数据

λ:取1平衡回归与分类loss

centerness loss用于约束预测框中心与gt中心点,限制边界处的loss,直接与上面分类与回归相加即可,在推理时,输出的score为分类score乘以中心score.

import cv2
import numpy as np
def draw_centerness(box):x1, y1, x2, y2 = boxw, h = x2 - x1, y2 - y1print(np.arange(w).repeat(h).reshape(h, w))print(np.arange(w).repeat(h).reshape(h, w).transpose(1, 0))xs = np.arange(w).repeat(h).reshape(h, w).transpose(1, 0).reshape(-1, 1)print('==xs:', xs)ys = np.arange(h).repeat(w).reshape(h, w).reshape(-1, 1)print('==ys:', ys)left = xs - x1print('==left:', left)right = x2 - xstop = ys - y1bottom = y2 -yshm = np.sqrt(np.minimum(left, right)/np.maximum(left, right) * np.minimum(top, bottom)/np.maximum(top, bottom))hm = hm.reshape(h, w)return hm
hm =draw_centerness([0, 0, 100, 100])
max_num = np.max(hm)
cv2.imwrite('./test.jpg', hm/max_num*255.)

8.推理

获取feature map上每个点的分类score在与回归的四个边界进行组合即可得出预测框.在进行阈值0.6的NMS.

三.实验结果

参考:https://www.zybuluo.com/huanghaian/note/1747551

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

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

相关文章

大数据有十大应用领域,看看你用到了哪个?

来源:网络大数据摘要:如果提到“大数据”时,你会想到什么?也许大部分人会联想到庞大的服务器集群;或者联想到销售商提供的一些个性化的推荐和建议。如今大数据的深度和广度远不止这些,大数据已经在人类社会实践中发挥着巨大的优势…

2018年《环球科学》十大科学新闻出炉:霍金逝世、贺建奎事件位列前二

来源:量子位如果要用两个词来定义2018年的话,我们可能会选择“进步”与“反思”。中国科学在持续进步,克隆猴“中中”与“华华”、单条染色体的酵母,都是世界级的研究成果。“火星快车”在火星上发现大面积的液态湖泊,…

CornerNet: Detecting Objects as Paired Keypoints

CornerNet论文链接 Hourglass Network论文链接 一.背景 1.anchor-base缺点          (1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大. (2).anchor太过密集&…

详细解读什么是自适应巡航?

来源:智车科技摘要:自适应巡航设计初衷是减轻驾驶员长途驾驶的疲劳,极为复杂的城市路况并不是它发挥作用的地方。虽然现在的自适应巡航系统具备了根据前车情况、根据路况减速,甚至是刹停的功能,不过其开发之初便是为了…

CenterNet:Objects as Points

CenterNet论文链接 一.背景 1.anchor-base缺点          (1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大. (2).anchor太过密集,其中很多是负样本…

美国正在衰落的24个行业:“猝不及防”还是“温水煮青蛙”?

来源:资本实验室摘要:技术发展一日千里,外部环境日新月异。在这个变化无处不在的世界,许多行业都在不可避免地经历着或是猝不及防,或是“温水煮青蛙”般的冲击。近期,美国财经网站24/7 Wallst根据过去十年的…

距离与相似度计算

一.余弦相似度 加速计算参考这篇文章 from math import *def square_rooted(x):return round(sqrt(sum([a*a for a in x])), 3)def cosine_similarity(x,y):numerator sum(a*b for a, b in zip(x,y))denominator square_rooted(x)*square_rooted(y)return round(numerator/f…

5G 产业链重要细分投资领域

来源:乐晴智库精选▌2019年全球电子产业将保持增长ICInsights预计2018年全球电子产品销售额16220亿美元,同比增长5.1%,2019年将达到16800亿美元,同比增长3.5%,2017~2021年CAGR4.6%。预计2019年通信市场销售额5350亿美元…

CPNDet:Corner Proposal Network for Anchor-free, Two-stage Object Detection

CPNDet论文链接 一.背景 anchor-based方法将大量框密集分布在feature map上,在推理时,由于预设的anchor与目标差异大,召回率会偏低。而anchor-free不受anchor大小限制,在任意形状上会更加灵活,但是像CornerNet这种,先…

Unix/Linux环境C编程入门教程(3) Oracle Linux 环境搭建

Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习。2010年9月,Oracle Enterprise Linux发布新版内核——Unbreakable Enterprise Kernel,专门针对Oracle软件与硬件进行优化,最重要的是Oracl…

最权威北美放射学会年会回顾:AI的进化与下一个前沿

翻译 : 高璇摘要:人工智能在成像领域的前景必须为终端用户带来时间节省、资源优化、精度增益和感知增益(接近精准健康方法)。前两个是指生产力方面,而后两个是指质量方面。人工智能在成像领域的脚步不会停留在这里——它已经帮助重…

Registry注册机制

前言:不管是Detectron还是mmdetection,都有用到这个register机制,特意去弄明白,记录一下。 首先看Registry代码: # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reservedfrom typing import Dict, Optional, Iterable, T…

Android Volley 库通过网络获取 JSON 数据

本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpClient 以及 HttpConnection 这两个包。前者是 Apache 开源库,后者是 Android 自带 API。企业级应用&#xff0…

python刷题+leetcode(第二部分)

100. 简化路径 思路:栈 class Solution:def simplifyPath(self, path: str) -> str:stack []for path_ in path.split(/):if path_ not in [, ., ..]:stack.append(path_)elif path_ .. and stack:stack.pop()return / /.join(stack) c实现: class Solution { public:s…

这一年,信息技术领域上演的“断舍离”

来源:中国科学报摘要:刚刚踏入2018年,信息技术产业领域就被“熔断”“幽灵”这两个几乎波及全行业的芯片漏洞所笼罩。孰料,该领域接下来上演的剧情——从美国断然发布对中兴通讯的出售禁令,到Uber无人驾驶汽车撞人致死…

利用JasperReport+iReport进行Web报表开发

用JasperReportiReport进行Web报表开发 序言在非常多实际的项目里,报表都是当中十分重要的组成部分,比如把查询结果以报表的形式呈现出来。这里所提到的报表可不是简单的二维表,而是拥有复杂表头的、多维的、能够在执行期从数据库中自己主动读…

AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(VIT)

最近看transformer用于CV比较热门,特意去进行了解,这里用分类的一篇文章进行讲解。 NLP中的transformer和代码讲解参考我另一篇文章。 论文链接:AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 一.思想 其…

人工智能领域的未来和挑战

来源:创新研究摘要:人工智能是一门综合了计算机科学、生理学、哲学的交叉学科。凡是使用机器代替人类实现认知、识别、分析、决策等功能,均可认为使用了人工智能技术。作为一种基础技术,人工智能在很多行业都有广泛应用。五道集团…

2018年科技公司融资纪录十大排行榜!中国四家公司上榜

来源:网易智能摘要:国外媒体近日盘点了2018年全球融资最多的十家机器人技术公司,中国有四家公司上榜,包括商汤科技、优必选、京东和依图科技。获得融资并不能保证取得成功,这是机器人行业在2018年学到的艰难的一课。今…

tensorrt基础知识+torch版lenet转c++ trt

官网文档 API文档 Docker镜像 自定义Plugin仓库 0.安装 1.安装tensorrt 从官网下载.deb包,要注意的是cuda版本 sudo dpkg -i nv-tensorrt-repo-ubuntu1604-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb sudo apt update sudo apt install tensorrt Engine plan 的兼…