FCOS-----------------------的安装方法------------------------->>>>>>>>>>>>>>>>
首先需要将GCC调到6以下
Requirements:
- PyTorch >= 1.0. Installation instructions can be found in https://pytorch.org/get-started/locally/.
- torchvision
- cocoapi
- yacs
- matplotlib
- GCC >= 4.9,< 6.0
- (optional) OpenCV for the webcam demo
https://github.com/tianzhi0549/FCOS/blob/master/INSTALL.md
# first, make sure that your conda is setup properly with the right environment
# for that, check that `which conda`, `which pip` and `which python` points to the
# right path. From a clean conda env, this is what you need to do
conda create --name FCOS
conda activate FCOS
# this installs the right pip and dependencies for the fresh python
conda install ipython
# FCOS and coco api dependencies
pip install ninja yacs cython matplotlib tqdm
# follow PyTorch installation in https://pytorch.org/get-started/locally/
# we give the instructions for CUDA 10.2
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
我自己配的是cuda==9.0 cdnn==7因此使用如下命令安装
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch
如果没有opencv可以直接使用命令:pip install opencv-python
export INSTALL_DIR=$PWD # install pycocotools. Please make sure you have installed cython. cd $INSTALL_DIR git clone https://github.com/cocodataset/cocoapi.git cd cocoapi/PythonAPI python setup.py build_ext install # install PyTorch Detection cd $INSTALL_DIR git clone https://github.com/tianzhi0549/FCOS.git cd FCOS # the following will install the lib with # symbolic links, so that you can modify # the files if you want and won't need to # re-build it python setup.py build develop --no-deps unset INSTALL_DIR # or if you are on macOS # MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py build develop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | export INSTALL_DIR = $PWD # install pycocotools. Please make sure you have installed cython. cd $INSTALL_DIR git clone https: / / github.com / cocodataset / cocoapi.git cd cocoapi / PythonAPI python setup.py build_ext install # install PyTorch Detection cd $INSTALL_DIR git clone https: / / github.com / tianzhi0549 / FCOS.git cd FCOS # the following will install the lib with # symbolic links, so that you can modify # the files if you want and won't need to # re-build it python setup.py build develop - - no - deps unset INSTALL_DIR # or if you are on macOS # MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py build develop |
可能出现的问题:
如果出现核心转存!!!!
解决方法是GCC的版本不对,最好下载Gcc5.3的,然后重新编译
python setup.py build develop --no-deps
非常重要的一步:::::::::::::::::::
有时候我们重新安装了cuda等等,需要重新编译FCOS的环境,其实只需要删除/data1/wangman/FCOS/build
再在新的虚拟环境下编译一下就可以了
第一篇:
README.md
FCOS: Fully Convolutional One-Stage Object Detection
This project hosts the code for implementing the FCOS algorithm for object detection, as presented in our paper:
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
The full paper is available at: https://arxiv.org/abs/1904.01355.
Implementation based on Detectron2 is included in AdelaiDet.
A real-time model with 46FPS and 40.3 in AP on COCO minival is also available here.
Highlights
- Totally anchor-free: FCOS completely avoids the complicated computation related to anchor boxes and all hyper-parameters of anchor boxes.
- Better performance: The very simple one-stage detector achieves much better performance (38.7 vs. 36.8 in AP with ResNet-50) than Faster R-CNN. Check out more models and experimental results here.
- Faster training and testing: With the same hardwares and backbone ResNet-50-FPN, FCOS also requires less training hours (6.5h vs. 8.8h) than Faster R-CNN. FCOS also takes 12ms less inference time per image than Faster R-CNN (44ms vs. 56ms).
- State-of-the-art performance: Our best model based on ResNeXt-64x4d-101 and deformable convolutions achieves 49.0% in AP on COCO test-dev (with multi-scale testing).
Updates
- FCOS with Fast And Diverse (FAD) neural architecture search is avaliable at FAD. (30/10/2020)
- Script for exporting ONNX models. (21/11/2019)
- New NMS (see #165) speeds up ResNe(x)t based models by up to 30% and MobileNet based models by 40%, with exactly the same performance. Check out here. (12/10/2019)
- New models with much improved performance are released. The best model achieves 49% in AP on COCO test-dev with multi-scale testing. (11/09/2019)
- FCOS with VoVNet backbones is available at VoVNet-FCOS. (08/08/2019)
- A trick of using a small central region of the BBox for training improves AP by nearly 1 point as shown here. (23/07/2019)
- FCOS with HRNet backbones is available at HRNet-FCOS. (03/07/2019)
- FCOS with AutoML searched FPN (R50, R101, ResNeXt101 and MobileNetV2 backbones) is available at NAS-FCOS. (30/06/2019)
- FCOS has been implemented in mmdetection. Many thanks to @yhcao6 and @hellock. (17/05/2019)
Required hardware
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.
Installation
Testing-only installation
For users who only want to use FCOS as an object detector in their projects, they can install it by pip. To do so, run:
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
Please check out here for the interface usage.
For a complete installation
This FCOS implementation is based on maskrcnn-benchmark. Therefore the 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.
A quick demo
Once the installation is done, you can follow the below steps to run a quick demo.
# assume that you are under the root directory of this project,
# and you have activated your virtual environment if needed.
wget https://cloudstor.aarnet.edu.au/plus/s/ZSAqNJB96hA71Yf/download -O FCOS_imprv_R_50_FPN_1x.pth
python demo/fcos_demo.py
Inference
The inference command line on coco minival split:
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
Please note that:
- If your model's name is different, please replace
FCOS_imprv_R_50_FPN_1x.pth
with your own. - If you enounter out-of-memory error, please try to reduce
TEST.IMS_PER_BATCH
to 1. - If you want to evaluate a different model, please change
--config-file
to its config file (in configs/fcos) andMODEL.WEIGHT
to its weights file. - Multi-GPU inference is available, please refer to #78.
- We improved the postprocess efficiency by using multi-label nms (see #165), which saves 18ms on average. The inference metric in the following tables has been updated accordingly.
Models
For your convenience, we provide the following trained models (more models are coming soon).
ResNe(x)ts:
All ResNe(x)t based models are trained with 16 images in a mini-batch and frozen batch normalization (i.e., consistent with models in maskrcnn_benchmark).
Model | Multi-scale training | Testing time / im | AP (minival) | Link |
---|---|---|---|---|
FCOS_imprv_R_50_FPN_1x | No | 44ms | 38.7 | download |
FCOS_imprv_dcnv2_R_50_FPN_1x | No | 54ms | 42.3 | download |
FCOS_imprv_R_101_FPN_2x | Yes | 57ms | 43.0 | download |
FCOS_imprv_dcnv2_R_101_FPN_2x | Yes | 73ms | 45.6 | download |
FCOS_imprv_X_101_32x8d_FPN_2x | Yes | 110ms | 44.0 | download |
FCOS_imprv_dcnv2_X_101_32x8d_FPN_2x | Yes | 143ms | 46.4 | download |
FCOS_imprv_X_101_64x4d_FPN_2x | Yes | 112ms | 44.7 | download |
FCOS_imprv_dcnv2_X_101_64x4d_FPN_2x | Yes | 144ms | 46.6 | download |
Note that imprv
denotes improvements
in our paper Table 3. These almost cost-free changes improve the performance by ~1.5% in total. Thus, we highly recommend to use them. The following are the original models presented in our initial paper.
Model | Multi-scale training | Testing time / im | AP (minival) | AP (test-dev) | Link |
---|---|---|---|---|---|
FCOS_R_50_FPN_1x | No | 45ms | 37.1 | 37.4 | download |
FCOS_R_101_FPN_2x | Yes | 59ms | 41.4 | 41.5 | download |
FCOS_X_101_32x8d_FPN_2x | Yes | 110ms | 42.5 | 42.7 | download |
FCOS_X_101_64x4d_FPN_2x | Yes | 113ms | 43.0 | 43.2 | download |
MobileNets:
We update batch normalization for MobileNet based models. If you want to use SyncBN, please install pytorch 1.1 or later.
Model | Training batch size | Multi-scale training | Testing time / im | AP (minival) | Link |
---|---|---|---|---|---|
FCOS_syncbn_bs32_c128_MNV2_FPN_1x | 32 | No | 26ms | 30.9 | download |
FCOS_syncbn_bs32_MNV2_FPN_1x | 32 | No | 33ms | 33.1 | download |
FCOS_bn_bs16_MNV2_FPN_1x | 16 | No | 44ms | 31.0 | download |
[1] 1x and 2x mean the model is trained for 90K and 180K iterations, respectively.
[2] All results are obtained with a single model and without any test time data augmentation such as multi-scale, flipping and etc..
[3] c128
denotes the model has 128 (instead of 256) channels in towers (i.e., MODEL.RESNETS.BACKBONE_OUT_CHANNELS
in config).
[4] dcnv2
denotes deformable convolutional networks v2. Note that for ResNet based models, we apply deformable convolutions from stage c3 to c5 in backbones. For ResNeXt based models, only stage c4 and c5 use deformable convolutions. All models use deformable convolutions in the last layer of detector towers.
[5] The model FCOS_imprv_dcnv2_X_101_64x4d_FPN_2x
with multi-scale testing achieves 49.0% in AP on COCO test-dev. Please use TEST.BBOX_AUG.ENABLED True
to enable multi-scale testing.
Training
The following command line will train FCOS_imprv_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 \
--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
Note that:
- If you want to use fewer GPUs, please change
--nproc_per_node
to the number of GPUs. No other settings need to be changed. The total batch size does not depends onnproc_per_node
. If you want to change the total batch size, please changeSOLVER.IMS_PER_BATCH
in configs/fcos/fcos_R_50_FPN_1x.yaml. - The models will be saved into
OUTPUT_DIR
. - If you want to train FCOS with other backbones, please change
--config-file
. - If you want to train FCOS on your own dataset, please follow this instruction #54.
- Now, training with 8 GPUs and 4 GPUs can have the same performance. Previous performance gap was because we did not synchronize
num_pos
between GPUs when computing loss.
ONNX
Please refer to the directory onnx for an example of exporting the model to ONNX. A converted model can be downloaded here. We recommend you to use PyTorch >= 1.4.0 (or nightly) and torchvision >= 0.5.0 (or nightly) for ONNX models.
Contributing to the project
Any pull requests or issues are welcome.
Citations
Please consider citing our paper in your publications if the project helps your research. BibTeX reference is as follows.
@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}
}
Acknowledgments
We would like to thank @yqyao for the tricks of center sampling and GIoU. We also thank @bearcatt for his suggestion of positioning the center-ness branch with box regression (refer to #89).
License
For academic use, this project is licensed under the 2-clause BSD License - see the LICENSE file for details. For commercial use, please contact the authors.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧