热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

13篇基于Anchorfree的目标检测方法

内容简介:作者|黄浴本文转载自:http:mp.weixin.qq.coms?__bizMzI5MDUyMDIxNA&mid2247489025&a
内容简介:作者 | 黄浴

本文转载自:http://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247489025&idx=2&sn=8752fc2cf6185d4f9a0834001a31cacf,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

极市正在推出 CVPR2019的专题直播分享会邀请CVPR2019的论文作者进行线上直播, 分享优秀的科研工作和技术干货,也欢迎各位小伙伴自荐或推荐优秀的CVPR论文作者到极市进行技术分享~

本周四(5月30日)晚, 帝国理工学院计算机系IBUG组博士生 邓健康 ,将为我们分享: ArcFace 构建高效的人脸识别系统(CVPR2019 ) ,公众号回复 “42” 即可获取直播详情。

作者 | 黄浴

本文授权转载自公众号 CVer

原文 | https://zhuanlan.zhihu.com/p/64563186

作者简介:黄浴

13篇基于Anchor free的目标检测方法

职业经历

  • 奇点汽车美研中心 · 首席科学家兼总裁

  • 上海大学 · 兼职教授

  • 百度美研 · 软件架构师

  • 英特尔总部 · 架构师

教育经历

  • 伊利诺伊大学厄本那香槟分校 (UIUC) · 计算机视觉

  • 埃尔朗根-纽伦堡大学 · 模式识别

  • 清华大学 · 人机交互/多媒体

个人简介

专业领域:图像视频处理,计算摄影,机器学习,计算机视觉和数据可视化。
从事的工业界:安防,多媒体,电讯,半导体,互联网。

个人信息来源:

https://www.zhihu.com/people/yuhuang2019/activities

正文

感觉是回归吧,以前是没有anchor的,现在觉得还是去掉anchor(“锚”?)好,主要是灵活性强,今后硬件芯片兼容性好。

回顾一下,目标检测分单步和两步,单步法的历史中从SSD和YOLO-2开始引入锚框(anchor box),而两步法直到Faster RCNN才开始采用“锚”的想法。 
什么是锚框呢?其实就是固定 的参考框。锚框的出现,使得训练时可以预设一组不同尺度不同位置的锚框,覆盖几乎所有位置和尺度, 每个锚框负责检测与其区域交叉比(intersection over union, IOU)大于阈值的目标,这样问题就转换为"这个锚框中有没有认识的目标,目标框偏离锚框多远"的问题。

 

  • UnitBox: An Advanced Object Detection Network

  • Densebox

  • Yolo-1/(-2/3)

  • CornerNet

  • ExtremeNet

  • FSAF: Feature Selective Anchor-Free

  • FCOS: Fully Convolutional One-Stage

  • FoveaBox

  • Center and Scale Prediction: A Box-free Approach for Object Detection

  • Region Proposal by Guided Anchoring(GA-RPN)

  • CenterNet: Objects as Points

  • CenterNet: Keypoint Triplets for Object Detection

  • CornerNet-Lite: Efficient Keypoint Based Object Detection

UnitBox: An Advanced Object Detection Network

主要思想:Intersection over Union (IoU) loss function for bounding box prediction

13篇基于Anchor free的目标检测方法

架构

13篇基于Anchor free的目标检测方法

IoU loss vs l2 loss

13篇基于Anchor free的目标检测方法

l2 loss和IoU loss 结果比较

DenseBox: Unifying Landmark Localization and Object Detection

基本思想:直接预测目标框和目标类。

13篇基于Anchor free的目标检测方法

系统流水线:

1) 图像金字塔. 

2) 类似编码器-解码器. 

3) feature map 转换成 bounding boxes,加NMS处理。

13篇基于Anchor free的目标检测方法

DenseBox

13篇基于Anchor free的目标检测方法

DenseBox with landmark localization

You Only Look Once (YOLO) for Object Detection

检测定义为一个张量的回归问题,直接通过张量的估计得到目标框位置和类别概率。

13篇基于Anchor free的目标检测方法

13篇基于Anchor free的目标检测方法

13篇基于Anchor free的目标检测方法

注:之后YOLO-2/3版采用了anchor方法,这里也加在一起参考。

YOLO9000: Better, Faster, Stronger

Darknet-19: 19 convolutional layers and 5 max-pooling layers

WordTree with 9418 classes

13篇基于Anchor free的目标检测方法

Combining datasets using WordTree hierarchy

13篇基于Anchor free的目标检测方法

Bounding boxes with dimension priors and location prediction

13篇基于Anchor free的目标检测方法

Clustering box dimensions on VOC and COCO

13篇基于Anchor free的目标检测方法

结果

YOLOv3: An Incremental Improvement

13篇基于Anchor free的目标检测方法

Darknet-53

CornerNet: Detecting Objects as Paired Keypoints

相关解读: ECCV 2018 | CornerNet:目标检测算法新思路

把检测目标框变成一对关键点的问题,即左上角和右下角,这样就消除了锚框的设计麻烦。另外,采用的角点池化(corner pooling)技术帮助CNN更好地定位角点位置。 下图给出了系统流程图:CNN模型输出两个关键点的各自热图(heatmap),同时各跟一个嵌入向量。同一个目标的角点,训练后的神经网络会预测类似的嵌入。

13篇基于Anchor free的目标检测方法

Detect an object as a pair of bounding box corners grouped together

下图是定位的角点池化技术:每个特征图通道沿着两个方向取最大值,然后求和。

13篇基于Anchor free的目标检测方法

Corner pooling

13篇基于Anchor free的目标检测方法

“Ground-truth” heatmaps for training.

测试流程图:沙漏型的核心网络的后面跟着两个预测模块定位和聚类焦点。

13篇基于Anchor free的目标检测方法

定义loss函数聚类corner:push和pull

13篇基于Anchor free的目标检测方法

ExtremeNet: Bottom-up Object Detection by Grouping Extreme and Center Points

主要思想:也是将目标检测变成了纯粹关键点估计问题,包括目标的4个extreme points 和1个中心点,将这几何校准的5个点组成一个目标框。

下图是系统流程图:类似CornerNet,对每个目标类,CNN网络预测5个热图,只有几何中心的热图响应足够大才会生成目标框。

13篇基于Anchor free的目标检测方法

The network predicts four extreme point heatmaps and one center heatmap for each category

如下是模型的测试流程图:输入图像得到5个C-通道热图,4个2-通道类别无关的偏差图(offset map)。热图是通过加权逐像素逻辑回归(logistic regression)训练得到,. 而偏差图则是由平滑L1 损失函数训练的。

13篇基于Anchor free的目标检测方法

下图是中心分组(Center grouping)算法:输入是5个热图,输出则是带有可信度的目标框。

13篇基于Anchor free的目标检测方法

下图是边缘聚集的结果:当一个边缘的多个点都成为extreme point,可见边缘聚集使中间像素的可信度得到增大。

13篇基于Anchor free的目标检测方法

FSAF: Feature Selective Anchor-Free Module

相关解读: CVPR2019 | FSAF:来自CMU的Single-Shot目标检测算法

一作直播: CMU诸宸辰:基于Anchor-free特征选择模块的单阶目标检测(回放视频+PPT)

主要思想:基于特征金字塔网络(feature pyramid structure,FPN)的在线特征选择能力, 在训练时可以动态分配每个实例到最适合的特征层,在推理时能够和带锚的模块分支一起工作,最后并行地输出预测。

13篇基于Anchor free的目标检测方法

anchor-based method

13篇基于Anchor free的目标检测方法

FSAF module plugged into anchor-based detection methods

下图展示一个特征层中的实例监督信号,其中两个损失函数:分类的focal loss 和目标框回归的IoU loss 。

13篇基于Anchor free的目标检测方法

Supervision signals for an instance in one feature level of the anchor-free branche s

在线特征选择的操作如图:每个实例通过无锚框的所有层计算出所有有效区域的分类损失和回归损失,在最小损失的那层构建该实例的监督信号。

13篇基于Anchor free的目标检测方法

Online feature selection mechanism

13篇基于Anchor free的目标检测方法

Network architecture of RetinaNet with FSAF module

FCOS: Fully Convolutional One-Stage Object Detection

相关解读: FCOS: 最新的one-stage逐像素目标检测算法

主要思想:是分割,不需要锚框也不需要区域提议。 这样,避免了锚框在模型训练中涉及的重叠计算和性能敏感的参数设计环。

FCOS中定义了一个新损失函数“中心度(centerness)”,如下图( 红和蓝对应 1 和 0, 其他颜色位于其中)。

13篇基于Anchor free的目标检测方法

13篇基于Anchor free的目标检测方法

13篇基于Anchor free的目标检测方法

The network architecture of FCOS

13篇基于Anchor free的目标检测方法

结果

FoveaBox: Beyond Anchor-based Object Detector

相关解读: FoveaBox,超越Anchor-Based的检测器

主要思想:直接学习目标存在的概率和目标框的坐标位置,其中包括预测类别相关的语义图和生成类别无关的候选目标框,目标框的大小和特征金字塔的表示相关(如图所示)。

13篇基于Anchor free的目标检测方法

FoveaBox object detector

FoveaNet的网络结构如图,一个基于ResNet的特征金字塔网络(FPN)送入两个子网络, 一个做分类,一个做预测。

13篇基于Anchor free的目标检测方法

FoveaBox network architecture

13篇基于Anchor free的目标检测方法

结果

Region Proposal by Guided Anchoring (GA-RPN)

相关解读: Guided Anchoring: 物体检测器也能自己学 Anchor

利用语义特征指导抛锚,称为指导性的抛锚。一起预测感兴趣目标的中心位置以及不同位置的尺度和长宽比。有代码: //github.com/open-mmlab/m.

13篇基于Anchor free的目标检测方法

GA-RPN

对特征金字塔的每个输出特征图,采用带有两个分支的锚框生成模块分别预测锚位置和形状。一个特征适应模块对原始特征图处理,使其更能体现锚的形状。

13篇基于Anchor free的目标检测方法

Anchor location target

采用多级特征,根据其尺度把真实目标(ground truth objects)提供给不同特征级,相应定义 CR, IR和OR 。

13篇基于Anchor free的目标检测方法

性能比较

CenterNet: Objects as Points.

相关解读:

把目标定义成一个单点,即目标框的中心点(下图),检测器采用关键点估计找到中心点并从其关键点的特征回归其他目标特性,如大小,3D位置,朝向和姿势。

13篇基于Anchor free的目标检测方法

object as the center point of its bounding box

13篇基于Anchor free的目标检测方法

(a) Standard anchor based detection. (b) Center point based detection

下面是CenterNet的模型框图,其中数字是步进(stride)量:(a) 沙漏网络;(b) 带转置卷积的ResNet,在每个上采样层前面加了个3 × 3 可变形卷积层(deformable convolutional layer);(c) 语义分割的DLA-34 (Deep layer aggregation);(d) 修正的 DLA-34,在可变形卷积层加更多的跳线(skip connections)上采样步骤。

13篇基于Anchor free的目标检测方法

Model diagrams

CenterNet: Object Detection with Keypoint Triplets

相关解读: 中科院牛津华为诺亚提出:CenterNet,One-stage目标检测最强算法!可达47mAP,已开源!

主要思想:基于前面提到的CornerNet,检测目标变成三个关键点的估计(a triplet of keypoints)。

 

架构图:一个核心网络执行级联角点池化(cascade corner pooling)和中心点池化(center pooling ),输出两个角点热图和一个中心关键点热图;和CornerNet类似,一对检测的角点和嵌入用来检测潜在目标框;然后检测的中心关键点确定最终的框位置。

13篇基于Anchor free的目标检测方法

CenterNet

13篇基于Anchor free的目标检测方法

(a) Center pooling. (b) Corner pooling. (c) Cascade corner pooling

下图给出角点池化和中心点池化的结构图。

13篇基于Anchor free的目标检测方法

center pooling module (a) cascade top corner pooling module (b)

CornerNet-Lite: Efficient Keypoint Based Object Detection

相关解读: 吊打YOLOv3!普林斯顿大学提出:CornerNet-Lite,基于关键点的实时且精度高的目标检测算法,已开源!

CornerNet-Lite:CornerNet-Saccade(attention mechanism)+ CornerNet-Squeeze

 

CornerNet-Saccade:缩小的图像中产生的目标框,加上attention map,预测一组可能的目标位置。在每个位置附近取一个小区域,检测目标。对检测的目标位置排序,取前k个,运行NMS。

13篇基于Anchor free的目标检测方法

CornerNet-Saccade

模型加速:SqueezeNet/MobileNets for CornerNet-Squeeze

  1. 替换3 × 3 kernels 成 1 × 1 kernels;

  2. 减少输入通道 to 3 × 3 kernels;

  3. 下采样.

13篇基于Anchor free的目标检测方法

结果

Center and Scale Prediction: A Box-free Approach for Object Detection

主要思想是:目标中心点,语义抽象。

目标检测变成一个直接的中心和尺度预测。最后卷积有两个通道,一个是关于中心位置的热图,另一个是中心的尺度图。

13篇基于Anchor free的目标检测方法

CSP (Center and Scale Prediction) detector

包括两个成分:特征提取和检测。前者把不同分辨率的特征图连在一起,后者是卷积层和两个预测层,分别对应中心位置和尺度大小。

13篇基于Anchor free的目标检测方法

architecture of CSP


推荐阅读
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
author-avatar
湘颖宛光秀雅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有