Faster RCNN项目部署
simple-faster-rcnn-pytorch-master
项目源码:https://github.com/chenyuntc/simple-faster-rcnn-pytorch
云服务器环境:
1.安装依赖
!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
2.运行demo
2.1下载预训练模型
百度网盘地址:https://pan.baidu.com/s/1o87RuXW
密码:scxn
2.2运行demo.pipynb
问题:在运行
img = read_image('/root/autodl-tmp/FasterRCNN/misc/demo.jpg')
出现错误:
UnidentifiedImageError:Image.open() cannot identify image file
解决:我也不知道咋解决,因为另外测试后发现PIL的Image.open()是可以用的,我重启了几次不知道为什么就能用了
3.Train
3.1准备数据
参考项目官网的5.1 Prepare data--Pascal VOC2007
最终得到的数据目录如下
3.2修改配置
- utils/config.py:修改VOC数据集的存放位置
voc_data_dir = '/root/autodl-tmp/FasterRCNN/dataset/VOCdevkit/VOC2007/'
3.3开启训练
如果直接运行代码!python train.py train --env='fasterrcnn' --plot-every=100
,会出现以下问题:
问题:ERROR:visdom:[WinError 10061] 由于目标计算机积极拒绝,无法连接。
原因:代码中用到了在线可视化工具visdom,但是没有启动
解决:利用Xshell映射云端服务器的visdom,进行训练过程可视。参考博客https://blog.youkuaiyun.com/m0_6551
因此,先利用Xshell映射云端服务器的visdom(参见上面的博客),再在jupyter notebook运行以下代码
python train.py train --env='fasterrcnn' --plot-every=100
运行成功结果如下:
3.4利用Pycharm进行调试
因为在jupyter notebook中开启训练时使用了代码python train.py train --env='fasterrcnn' --plot-every=100
,而在Pycharm中无法输入这样的命令进行debug,因此我对train.py
做了以下修改:
我舍弃了利用fire.Fire()来调用函数train,而是直接在main函数中调用了train()方法,并传递了参数。此时就可以在Pycharm进行debug了。
另外,Pycharm在调试过程会遇到一个问题,即:debug时Pycharm卡住在connected界面不动
解决: