该项目托管用于实施FCOS算法以进行对象检测的代码,如我们的论文所示:
FCOS: Fully Convolutional One-Stage Object Detection;
Zhi Tian, Chunhua Shen, Hao Chen, and Tong He;
In: Proc. Int. Conf. Computer Vision (ICCV), 2019.
arXiv preprint arXiv:1904.01355
完整的论文可在以下网址提供:https://arxiv.org/abs/1904.01355。
基于检测2的实现包含在AdeLaidet中。
这里还提供了一个具有46fps的实时型号和46fps和40.3的Coco Minival上的实时型号。
我们使用8个NVIDIA V100 GPU。
但是4 1080TI GPU也可以训练基于RESNET-50-FPN的FCO,因为FCO的存储器有效。
对于只想在项目中使用FCO作为对象检测器的用户,他们可以通过PIP安装。为此,运行:
pip install torch # install pytorch if you do not have it
pip install git+https://github.com/tianzhi0549/FCOS.git
# run this command line for a demo
fcos https://github.com/tianzhi0549/FCOS/raw/master/demo/images/COCO_val2014_000000000885.jpg
请在此处查看接口使用。
该FCO实现基于MaskRCNN基准。因此,安装与原始MaskRCNN基准相同。
请检查install.md以获取安装说明。您可能还需要查看MaskRCNN基准的原始readme.md。
安装完成后,您可以按照以下步骤进行快速演示。
# assume that you are under the root directory of this project,
# and you have activated your virtual environment if needed.
wget https://huggingface.co/tianzhi/FCOS/resolve/main/FCOS_imprv_R_50_FPN_1x.pth?download=true -O FCOS_imprv_R_50_FPN_1x.pth
python demo/fcos_demo.py
可可省minival拆分上的推理命令行:
python tools/test_net.py
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml
MODEL.WEIGHT FCOS_imprv_R_50_FPN_1x.pth
TEST.IMS_PER_BATCH 4
请注意:
FCOS_imprv_R_50_FPN_1x.pth替换。TEST.IMS_PER_BATCH减少到1。--config-file将其配置文件(以configs/fcos)和型号为MODEL.WEIGHT 。为了方便起见,我们提供以下训练有素的模型(即将推出更多型号)。
Resne(X)TS:
所有基于RESNE(X)T的模型均经过微型批次和冷冻批归一化的16张图像训练(即,与MaskRCNN_BENCHMARCH中的模型一致)。
| 模型 | 多尺度培训 | 测试时间 / IM | AP(友人) | 关联 |
|---|---|---|---|---|
| fcos_imprv_r_50_fpn_1x | 不 | 44ms | 38.7 | 下载 |
| fcos_imprv_dcnv2_r_50_fpn_1x | 不 | 54ms | 42.3 | 下载 |
| fcos_imprv_r_101_fpn_2x | 是的 | 57ms | 43.0 | 下载 |
| fcos_imprv_dcnv2_r_101_fpn_2x | 是的 | 73ms | 45.6 | 下载 |
| fcos_imprv_x_101_32x8d_fpn_2x | 是的 | 110ms | 44.0 | 下载 |
| fcos_imprv_dcnv2_x_101_32x8d_fpn_2x | 是的 | 143ms | 46.4 | 下载 |
| fcos_imprv_x_101_64x4d_fpn_2x | 是的 | 112ms | 44.7 | 下载 |
| fcos_imprv_dcnv2_x_101_64x4x4d_fpn_2x | 是的 | 144ms | 46.6 | 下载 |
请注意, imprv在我们的论文表3中表示improvements 。这些几乎无需成本的变化总共提高了约1.5%的绩效。因此,我们强烈建议使用它们。以下是我们初始论文中介绍的原始模型。
| 模型 | 多尺度培训 | 测试时间 / IM | AP(友人) | AP(test-dev) | 关联 |
|---|---|---|---|---|---|
| FCOS_R_50_FPN_1X | 不 | 45ms | 37.1 | 37.4 | 下载 |
| FCOS_R_101_FPN_2X | 是的 | 59ms | 41.4 | 41.5 | 下载 |
| fcos_x_101_32x8d_fpn_2x | 是的 | 110ms | 42.5 | 42.7 | 下载 |
| fcos_x_101_64x4d_fpn_2x | 是的 | 113ms | 43.0 | 43.2 | 下载 |
Mobilenets:
我们更新基于Mobilenet模型的批处理归一化。如果要使用Syncbn,请安装Pytorch 1.1或更高版本。
| 模型 | 培训批量大小 | 多尺度培训 | 测试时间 / IM | AP(友人) | 关联 |
|---|---|---|---|---|---|
| fcos_syncbn_bs32_c128_mnv2_fpn_1x | 32 | 不 | 26ms | 30.9 | 下载 |
| fcos_syncbn_bs32_mnv2_fpn_1x | 32 | 不 | 33ms | 33.1 | 下载 |
| fcos_bn_bs16_mnv2_fpn_1x | 16 | 不 | 44ms | 31.0 | 下载 |
[1] 1x和2x表示该模型分别用于90K和180K迭代。
[2]所有结果都是通过单个模型获得的,没有任何测试时间数据增加,例如多尺度,翻转等。
[3] c128表示该模型在塔中有128个(而不是256个)频道(即配置中的MODEL.RESNETS.BACKBONE_OUT_CHANNELS )。
[4] dcnv2表示可变形的卷积网络V2。请注意,对于基于重新连接的模型,我们在骨干中应用了从C3阶段到C5的可变形卷积。对于基于RESNEXT的模型,仅C4和C5阶段使用可变形的卷积。所有模型在最后一层的探测器塔中使用可变形的卷积。
[5]模型FCOS_imprv_dcnv2_X_101_64x4d_FPN_2x带有多尺度测试的模型在可可Test-DEV上的AP中获得了49.0%。请使用TEST.BBOX_AUG.ENABLED True启用多尺度测试。
以下命令行将使用同步随机梯度下降(SGD)在8 GPU上训练FCOS_IMPRV_R_50_FPN_1X:
python -m torch.distributed.launch
--nproc_per_node=8
--master_port=$((RANDOM + 10000))
tools/train_net.py
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml
DATALOADER.NUM_WORKERS 2
OUTPUT_DIR training_dir/fcos_imprv_R_50_FPN_1x
注意:
--nproc_per_node为GPU的数量。无需更改其他设置。总批量大小不取决于nproc_per_node 。如果要更改总批量大小,请在configs/fcos/fcos_r_50_fpn_1x.yaml中更改SOLVER.IMS_PER_BATCH 。OUTPUT_DIR中。--config-file 。num_pos 。 请参阅目录ONNX目录,以将模型导出到ONNX。可以在此处下载转换的模型。我们建议您使用pytorch> = 1.4.0(或每晚)和火炬> = 0.5.0(或每晚)进行ONNX型号。
欢迎任何拉的请求或问题。
如果该项目有助于您的研究,请考虑在您的出版物中引用我们的论文。 Bibtex参考如下。
@inproceedings{tian2019fcos,
title = {{FCOS}: Fully Convolutional One-Stage Object Detection},
author = {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
booktitle = {Proc. Int. Conf. Computer Vision (ICCV)},
year = {2019}
}
@article{tian2021fcos,
title = {{FCOS}: A Simple and Strong Anchor-free Object Detector},
author = {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
booktitle = {IEEE T. Pattern Analysis and Machine Intelligence (TPAMI)},
year = {2021}
}
我们要感谢@yqyao的中心抽样和Giou的技巧。我们还要感谢@bearcatt提出的建议将中心分支放置在盒子回归中(请参阅#89)。
对于学术用途,该项目是根据2条规定BSD许可证获得许可的 - 有关详细信息,请参见许可证文件。要进行商业用途,请与作者联系。