在GTX1080上运行FPN-pytorch

环境介绍

  torch版本:0.4.1
  Python版本:3.6
  torchvision版本:0.2.1
  需要tqdm、tensorboardX
  Ubuntu16.04(这是我自己的系统版本)

项目地址

  easy-fpn.pytorch

服务器环境验证

  验证环境是否符合要求输入以下命令

lsb_release -a #查看系统版本
$ python -V #查看python版本
$ python -v
>>import torch
>>print(torch.__version__) # 查看torch版本
>>print(torch.version.cuda) #查看torch里cuda编译版本
>>exit #退出
$ nvcc -V #查看cuda版本
$ nvidia-smi #查看GPU情况

  如果符合就继续,如果不符合就修改环境,修改环境的操作这里就不细说了。下面说一说步骤。

一、克隆项目

我们先将easy-fpn.pytorch的仓库克隆到你想要存放的文件夹下,比如我这里是pycharmprojects,输入以下命令:

$ cd pycharmprojects
$ git clone --recursive https://github.com/potterhsu/easy-fpn.pytorch.git

  --recursive用于循环递归克隆子项目

二、创建数据文件夹

$ cd easy-fpn.pytroch
$ mkdir data

这个没啥好说的

三、下载数据

  • 下载压缩文件到data
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
  • 解压数据到data
$ tar xvf VOCtrainval_06-Nov-2007.tar
$ tar xvf VOCtest_06-Nov-2007.tar
$ cd ..

在这里插入图片描述
因为我这里只用到了VOC2007这个数据集,所以我就只准备了这一个数据集。

四、建立CUDA模型

$ export CUDA_ARCH=sm_61 # sm_61对应GTX_1080 Ti

# 建立非极大值抑制模型 
$ nvcc -arch=$CUDA_ARCH -c --compiler-options -fPIC -o nms/src/nms_cuda.o nms/src/nms_cuda.cu
$ python nms/build.py
$ python -m nms.test.test_nms

$ nvidia-smi -L 查看自己GPU型号,然后去这里寻找对应代码

  显示的结果为:
在这里插入图片描述
  接着建立ROI-Align模型

$ nvcc -arch=$CUDA_ARCH -c --compiler-options -fPIC -o roi/align/src/cuda/crop_and_resize_kernel.cu.o roi/align/src/cuda/crop_and_resize_kernel.cu
$ python roi/align/build.py

五、训练

  输入下面命令

$ python train.py -s=voc2007 -b=resnet101

  输入后会先下resnet101,下完会自动开始训练
在这里插入图片描述

六、测试

  输入下面命令

$ python eval.py -s=coco2017 -b=resnet101 /path/to/checkpoint.pth

  比如我训练完的模型在这里
在这里插入图片描述
  测试结果如下
在这里插入图片描述

七、总结

  接来下就是输入图片去检测,但是我的服务器上并没有图形界面,这一步我就没有运行,命令我会贴在下面。这个项目相比较其他复现项目步骤较少,代码结构清晰,实现效果也可以接受,是学习的好资料。

python infer.py -c=/path/to/checkpoint.pth -s=voc2007 -b=resnet101 /path/to/input/image.jpg /path/to/output/image.jpg

不对的地方还请各位大佬指正!留言和点赞Thanks♪(・ω・)ノ

猜你喜欢

转载自blog.csdn.net/ThunderF/article/details/100727446