最新的Anchor-Free目标检测模型FCOS,现已开源!
点击上方“OpenCV大本营”,选择加"星标"
重磅干货,第一时间送达
截止2019-04-12,Amusi 了解到较新的基于Anchor-Free的目标检测模型有两个,分别是:
FCOS
FoveaBox
前者FCOS就是本文要重点介绍的刚刚开源的算法,后者还没有开源,但同样是很棒的算法,后面会再跟大家介绍。想要了解最新论文解读和优质开源项目,请大家持续关注:
FCOS论文介绍
《FCOS: Fully Convolutional One-Stage Object Detection》
arXiv: https://arxiv.org/abs/1904.01355
github: https://github.com/tianzhi0549/FCOS
作者团队:阿德莱德大学
注:2019年04月03日刚出炉的paper
Abstract:我们提出了一种全卷积的 one-stage 目标检测器(FCOS),以每像素预测方式解决目标检测,类似于语义分割。几乎所有最先进的目标检测器,如RetinaNet,SSD,YOLOv3和Faster R-CNN都依赖于预定义的锚框(anchor boxes)。相比之下,我们提出的检测器FCOS不需要锚框,即 proposal free。通过消除预定义的锚框,FCOS完全避免了与锚框相关的复杂计算,例如在训练期间计算重叠并且显著减少了训练内存。更重要的是,我们还避免了与锚框相关的所有超参数,这些参数通常对最终检测性能非常敏感。凭借唯一的后处理:非极大值抑制(NMS),我们的检测器FCOS优于以前基于锚框的one-stage探测器,具有更简单的优势。我们首次展示了一种更加简单灵活的检测框架,可以提高检测精度。我们希望提出的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。
本文算法(FCOS)
下图是FCOS的网络框图,可以明显看到网络组合是:【Backbone】 + 【特征金字塔(Feature Pyramid)】+ 【Classification + Center-ness + Regression】
这里的 Center-ness 是全新的概念,也是论文的创新所在。另外敲重点,本文之所以独树一帜,是因为其 anchor-box free的思路
训练回归公式:
损失函数:
Center-ness:
实验结果
在COCO数据集上,各种目标检测算法PK。FCOS已经超越 Two-stage的Faster R-CNN,还超越了 One-stage的YOLOv2、SSD、RetinaNet,以及很新的CornerNet。
吐槽一下:FCOS真的很强,但为啥不放速度比较呢?难道One-stage 目标检测已经不注重 mAP/Speed的 trade-off了么?
FCOS开源
链接:https://github.com/tianzhi0549/FCOS
特性
Totally anchor-free: FCOS completely avoids the complicated computation related to anchor boxes and all hyper-parameters of anchor boxes.
Memory-efficient: FCOS uses 2x less training memory footprint than its anchor-based counterpart RetinaNet.
Better performance: Compared to RetinaNet, FCOS has better performance under exactly the same training and testing settings.
State-of-the-art performance: Without bells and whistles, FCOS achieves state-of-the-art performances. It achieves 41.0% (ResNet-101-FPN) and 42.1% (ResNeXt-32x8d-101) in AP on coco test-dev.
Faster: FCOS enjoys faster training and inference speed than RetinaNet.
需要的硬件
We use 8 Nvidia V100 GPUs.
But 4 1080Ti GPUs can also train a fully-fledged ResNet-50-FPN based FCOS since FCOS is memory-efficient.
安装
This FCOS implementation is based on maskrcnn-benchmark, so its installation is the same as original maskrcnn-benchmark.
Please check INSTALL.md for installation instructions. You may also want to see the original README.md of maskrcnn-benchmark.
测试
The inference command line on coco minival split:
python tools/test_net.py \
--config-file configs/fcos/fcos_R_50_FPN_1x.yaml \
MODEL.WEIGHT models/FCOS_R_50_FPN_1x.pth \
TEST.IMS_PER_BATCH 4
训练
The following command line will train FCOS_R_50_FPN_1x on 8 GPUs with Synchronous Stochastic Gradient Descent (SGD):
python -m torch.distributed.launch \
--nproc_per_node=8 \
--master_port=$((RANDOM + 10000)) \
tools/train_net.py \
--skip-test \
--config-file configs/fcos/fcos_R_50_FPN_1x.yaml \
DATALOADER.NUM_WORKERS 2 \
OUTPUT_DIR training_dir/fcos_R_50_FPN_1x
FCOS源码
为了方便下载,开源代码已经打包上传至百度云,可以扫码下方二维码,
后台回复:FCOS,即可获得百度云链接。
▲长按关注我们
CVer目标检测交流群
扫码添加CVer助手,可申请加入CVer-目标检测交流群。一定要备注:目标检测+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡)
▲长按加群
欢迎给我"在看"!