FCOS源代码github地址为:
FCOS
这篇论文主要是关于目标检测的,今天跑一下它的实验,我是在autodl租的RTX 2080 Ti,因为这个代码比较久,所以Pytoch版本可能不可以装太高,我的镜像CUDA版本为10.1,具体规格如下:
创建好服务器好,打开终端创建一个虚拟环境,也可以参考源文件的INSTALL.md步骤,这个文件里有依赖的要求以及步骤:
1.创建虚拟环境:
conda create -n FCOS python=3.8
2.激活虚拟环境,并下载依赖:
conda activate FCOS
conda install ipython
pip install ninja yacs cython matplotlib tqdm
3.安装Pytorch:
这里Pytorch的版本要注意,因为我有尝试过跟着源文件的命令安装,但是后面发现版本太低了会报错,但是你也不能安装太高版本,所以我下载的是V1.6.0, linux命令如下:
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch
安装好了还可以再验证一下是否安装成功
4.安装pycocotools:
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
这一步我还是比较顺利的,按照代码输入就可以了
5.克隆项目:
git clone https://github.com/tianzhi0549/FCOS.git
cd FCOS
6.编译文件:
python setup.py build develop --no-deps
这一步是最艰难的,报了好多错误
报错一:/root/autodl-tmp/FCOS/fcos_core/csrc/cpu/ROIAlign_cpu.cpp:2:10: fatal error: cpu/vision.h: No such file or directory
这里提到了两个代码文件:cpu/ROIAlign_cpu.cpp和nms_cpu.cpp,找到这两个文件,把头文件的#include "cpu/vision.h"变成#include “vision.h”,记住两个文件都要改,这个在FCOS项目文件夹下的fcos_core/csrc/cpu/ 下可以找到,改好之后,这个错误就不报了
错误二:报错AK_CHECK没有定义
报错AK_CHECK没有定义,这是因为在 PyTorch 的新版本中,AT_CHECK 可能已被替换为 TORCH_CHECK。所以要把报错的那个文件里的AT_CHECK替换为TORCH_CHECK,找到/FCOS/fcos_core/csrc/cuda/deform_conv_cuda.cu文件和/FCOS/fcos_core/csrc/cuda/deform_pool_cuda.cu 把里面的AT_CHECK替换为TORCH_CHECK,即可。
再次运行
python setup.py build develop --no-deps
最后成功安装编译了FCOS
加下来就可以下载作者提供的权重文件进行测试了
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
要下载COCO_2014数据集