Faster RCNN项目部署(一)

Faster RCNN项目部署

simple-faster-rcnn-pytorch-master

项目源码:https://github.com/chenyuntc/simple-faster-rcnn-pytorch

云服务器环境:

OKYfPN.png

安装依赖

1
2
3
4
5
6
7
!pip install scikit-image
!pip install visdom
!pip install torchnet
!pip install opencv-python
!pip install ipdb
!pip install ipython==7.28.0
!pip install fire

运行demo

下载预训练模型

1
2
百度网盘地址:https://pan.baidu.com/s/1o87RuXW
密码:scxn

运行demo.pipynb

问题:在运行img = read_image('/root/autodl-tmp/FasterRCNN/misc/demo.jpg')出现错误: UnidentifiedImageError:Image.open() cannot identify image file

解决:我也不知道咋解决,因为另外测试后发现PIL的Image.open()是可以用的,我重启了几次不知道为什么就能用了

Train

准备数据

参考项目官网的5.1 Prepare data--Pascal VOC2007

OKYllC.png

最终得到的数据目录如下

OKYjTL.png

修改配置

  1. utils/config.py:修改VOC数据集的存放位置voc_data_dir = '/root/autodl-tmp/FasterRCNN/dataset/VOCdevkit/VOC2007/'

开启训练

如果直接运行代码!python train.py train --env='fasterrcnn' --plot-every=100,会出现以下问题:

问题:ERROR:visdom:[WinError 10061] 由于目标计算机积极拒绝,无法连接。

原因:代码中用到了在线可视化工具visdom,但是没有启动

解决:利用Xshell映射云端服务器的visdom,进行训练过程可视。参考博客https://blog.csdn.net/m0_6551

因此,先利用Xshell映射云端服务器的visdom(参见上面的博客),再在jupyter notebook运行以下代码

1
python train.py train --env='fasterrcnn' --plot-every=100

运行成功结果如下: OKY2vi.png

利用Pycharm进行调试

因为在jupyter notebook中开启训练时使用了代码python train.py train --env='fasterrcnn' --plot-every=100,而在Pycharm中无法输入这样的命令进行debug,因此我对train.py做了以下修改:

OKYsua.png

我舍弃了利用fire.Fire()来调用函数train,而是直接在main函数中调用了train()方法,并传递了参数。此时就可以在Pycharm进行debug了。

另外,Pycharm在调试过程会遇到一个问题,即:debug时Pycharm卡住在connected界面不动

OKYYzS.png

解决:OKY6cX.png