CCPD_RFCN_车牌检测_代码调通记录

  • 首先需要一个干净的Python虚拟环境,Python2/3都可以,我选择使用Python3.6
  • 安装必须的包:
# 版本的话没有过多的要求,兼容即可,建议先安装torch>=0.3.0,然后pip会根据torch选择相应的其他包的版本
# torch的版本过多,建议去pytorch官网根据自己的系统情况选择对应的版本,不同的版本有不同的pip命令
# 我使用的是:pip install torch==1.2.0 torchvision==0.4.0 -f https://download.pytorch.org/whl/torch_stable.html
cycler          0.10.0
imutils         0.5.3
kiwisolver      1.1.0
matplotlib      2.2.2
numpy           1.17.4
opencv-python   4.1.2.30
Pillow          6.2.1
pip             10.0.1
pyparsing       2.4.5
python-dateutil 2.8.1
pytz            2019.3
PyYAML          4.2b2
setuptools      39.1.0
six             1.13.0
torch           1.2.0+cu92
torchvision     0.4.0+cu92

  • 下载项目代码:
git clone https://github.com/detectRecog/CCPD.git
  • 下载训练好的模型跑demo
Location module wR2.pth	[baiduyun](https://pan.baidu.com/s/1Q3fPDHFYV5uibWwIQxPEOw)
rpnet model fh02.pth	[baiduyun](https://pan.baidu.com/s/1sA-rzn4Mf33uhh1DWNcRhQ)	
  • 执行demo.py文件
python demo.py -i ./demo/ -m 模型路径 如./fh02.pth
# 代码几乎不需要修改,设置好参数路径即可
# 有可能报错,比如:
「KeyError: Caught KeyError in replica 0 on device 0」错误
# 参考该方法:
1.** roi_pooling.py**的第18行:
self._backend = type2backend[type(input)]
进行修改,改为:
self._backend = type2backend[input.type()]
2.将roi_pooling.py的第75行:
output.append(adaptive_max_pool(im, size))
修改为:
output.append(F.adaptive_max_pool2d(im, size))
并在文件头部导入:
import torch.nn.functional as F
  • 首先训练wR2获得模型
python wR2.py -i [数据集的文件夹路径] -b 4
# 关于数据集,是一个很大的工程,这里的数据集和其他项目的Annotations有所不同,图片的名字就是标注信息,不需要自己去写文件进行转换,项目内部有专门的代码来解析。
# 我在这里报了一个错,由于torch版本原因,有些函数的用法进行了修改,所以需要查阅,修改源码,比如:
IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python
解决方法:

#将原语句:

train_loss+=loss.data[0]

#修改为:

train_loss+=loss.item()
  • 完成wR2训练后,紧接着训练rpnet的模型
 python rpnet.py -i [用于训练的文件夹路径] -b 4 -se 0 -f [保存模型文件夹路径] -t [训练中用于测试的文件夹路径]
 这时会报一个0不能做除数的错误,找到对应行在除数部分+0.00001就通了。
  • 上述结束以后就是测试了
python rpnetEval.py -m [MODEL PATH, like /**/fh02.pth] -i [TEST DIR] -s [FAILURE SAVE DIR]
  • 上述的训练和测试作者没有在控制台打印太多内容,而是将巡礼和测试信息写成了日志的形式,可以查阅训练过程,型如:wR2.out等。

你可能感兴趣的:(深度学习项目练习,CCPD调试)