該項目託管用於實施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許可證獲得許可的 - 有關詳細信息,請參見許可證文件。要進行商業用途,請與作者聯繫。