环境介绍
torch版本:0.4.1
Python版本:3.6
torchvision版本:0.2.1
需要tqdm、tensorboardX
Ubuntu16.04(这是我自己的系统版本)
项目地址
服务器环境验证
验证环境是否符合要求输入以下命令
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♪(・ω・)ノ