对于文章代码的一些理解, 以此来省去用A4纸记录的苦恼
SSD文章链接:http://arxiv.org/pdf/1512.02325v2.pdf
SSD代码链接:https://github.com/weiliu89/caffe/tree/ssd
一:先说说代码配置编译遇到的问题:
(1)按照代码教程编译caffe 都通过了,运行creat_lis.py通过,但是运行creat_data.py时提示 AttributeError: 'module' object has no attribute 'LabelMap'
方法:添加环境变量"export PYTHONPATH=/path/to/CaffeSSD/python:$PYTHONPATH"然后"source ~/.bashrc"
(2) 运行creat_data.py提示 undefine cudnn_v4
方法: 重新链接一下cudnn . 祥见欧新宇配置caffe教程 ”安装配置nVidia cuDNN 加速Caffe模型运算“部份。
(3) 运行 python 某个py 文件时提示:
Traceback (most recent call last):
File "examples/ssd/ssd_pascal.py", line 4, in <module>
import caffe
ImportError: No module named caffe
二:数据集处理部分
方法:在那个py文件里加入
import sys sys.path.append("/home/duan/caffe-ssd/python")
为了能直接用别人的代码处理自己的数据,就需要知道怎样处理数据集
(1)需要生成trainval.txt等文件, 运行 "cd$CAFFE_ROOT"以及 "./data/VOC0712/create_list.sh"
文件内容格式为:[图片路径 对应的xml文件路径]
(2)生成lmdb文件, 运行"./data/VOC0712/create_data.sh"(核心代码为"/build/tools/convert_annoset"中所提到的convert_annoset部分,会在后续讲解)
三:训练模型
code中使用VOC2007和2012的train_val数据集进行训练和验证,使用VOC2012的test进行测试
训练模型的代码为 "python examples/ssd/ssd_pascal.py"(主目录为caffe-ssd)
训练的模型保存在 "$CAFFE_ROOT/models/VGGNet/VOC0712/SSD_300x300/"
job file, log file, python script 保存在 "$CAFFE_ROOT/jobs/VGGNet/VOC0712/SSD_300x300/"
我60k迭代后的mAP=0.71534
四:测试模型
- 对整个测试集的测试:(默认使用最后存储的模型)
python examples/ssd/score_ssd_pascal.py
- 对单张图片测试检测效果:
作者提供两种测试文件:cpp和ipynp文件
我们使用ipynp文件, 文件路径为:examples/ssd_detect.ipynb
步骤:
- 启动Terminal:"ctrl+alt+t".
- 转到主文件目录,并取得root权限:"cd caffe-ssd"."sudo su" 否则会出错
Permission denied: "/root/data/VOCdevkit/results/VOC2007/SSD_300x300/Main"
- 启动ipython/jupyter notebook: "ipython notebook",找到ipynb文件。
- 按照给定的代码"shift+enter"走下来即可。