大多数开源的Faster rcnn是python语言的,想要利用高性能的C++版本并不多见,该库既包括训练,训练自己的数据,也包括评估测试,是使用Caffe部署目标检测系统的最佳方案。
演示
使用时sh example/FRCNN/demo_frcnn.sh
,会处理五张图片examples/FRCNN/images
,并将结果放入examples/FRCNN/results
。
注意:您应该将已训练的caffemodel放入models/FRCNN
,例如ZF_faster_rcnn_final.caffemodel
ZF模型。
准备训练和评估
- 训练数据清单是
examples/FRCNN/dataset/voc2007.trainval
。 - 测试数据的列表是
examples/FRCNN/dataset/voc2007.test
。 - 为PASCAL VOC数据集创建符号链接
ln -s $YOUR_VOCdevkit_Path $CAFFE_ROOT/VOCdevkit
。
如VGG示例所示models/FRCNN/vgg16/train_val.proto
,原始图片应显示在$CAFFE_ROOT/VOCdevkit/VOC2007/JPEGImages/
。(检查FrcnnRoiData中的window_data_param)
如果您想在自己的数据集上训练 Faster R-CNN,您可以准备自定义数据集列表。格式如下
# image-id
image-name
number of boxes
label x1 y1 x2 y2 difficulty
...
- ImageNet预先训练好的模型可以在此链接中找到
训练
sh examples/FRCNN/zf/train_frcnn.sh
将使用ZF模型开始voc2007数据的训练过程。
如果您使用提供的训练脚本,请确保:
- VOCdevkit在VOCdevkit内的$ CAFFE_ROOT和VOC2007内
- 应将ZF pretrain模型放入模型/ FRCNN / as ZF.v2.caffemodel中
examples/FRCNN/convert_model.py
bbox_pred
由平均值和标准差值对层的参数进行变换,因为回归值在训练期间被归一化,我们应该恢复它以获得最终模型。
评估
sh examples/FRCNN/zf/test_frcnn.sh
将使用训练的ZF模型评估voc2007测试数据的性能。
- 此shell的第一步:测试所有voc-2007-测试图像并将结果输出到文本文件中。
- 此Shell的第二步:将结果与实际情况文件进行比较并计算mAP。
详情
不同模型的shells和prototxts 位于examples/FRCNN
和models/FRCNN
代码中的更多细节:
include/api/FRCNN
以及src/api/FRCNN
演示和测试APIinclude/caffe/FRCNN
并src/caffe/FRCNN
包含与 Faster R-CNN相关的所有代码
https://github.com/D-X-Y/caffe-faster-rcnn/tree/dev
请问您安装的系统版本、cuda版本和cudnn的版本分别是哪个,谢谢!