在PyTorch中实现Faster RCNN (faster_rcnn_pytorch)
Song • 12086 次浏览 • 0 个回复 • 2018年11月25日

PyTorch实现Faster RCNN
注意:当我开始学习
PyTorch
时,我在这个项目中重新实现了faster rcnn
。然后我在所有项目中使用PyTorch
。我还记得我花了一个星期的时间来弄清楚如何构建cuda
代码作为pytorch
层:)。但实际上这不是一个好的实现,我没有实现与原始caffe
代码相同的mAP
。
该项目不再维护,可能与最新的pytorch
不兼容(0.4.0
之后)。所以我建议:
- 1、如果你想自己重新实现
faster rcnn
,你可以参考这段代码。 - 2、如果你想用你自己的数据训练
faster rcnn
,你可以在PyTorch
中使用ruotianluo或Detectron.pytorch更好的实现;
此项目是PyTorch
实现faster rcnn
。该项目主要基于py-faster-rcnn和TFFRCNN。
有关R-CNN
的详细信息,请参阅文章Faster R-CNN。
一、进展
- 前向检测
- 在
CPU
上使用C
扩展的RoI Pooling
层(仅前向) GPU
上的RoI Pooling
层(前向和后向)VOC2007
的训练- 支持
TensroBoard
- 评估
二、安装和演示
1、安装要求(你可以使用pip
或Anaconda
):
conda install pip pyyaml sympy h5py cython numpy scipy
conda install -c menpo opencv3
pip install easydict
2、克隆Faster R-CNN
库
git clone git@github.com:longcw/faster_rcnn_pytorch.git
3、为nms
和roi_pooling
层构建Cython
模块
cd faster_rcnn_pytorch/faster_rcnn
./make.sh
4、下载经过训练的模型VGGnet_fast_rcnn_iter_70000.h5并在demo.py
中设置模型路径
5、运行DEMO
python demo.py
三、关于Pascal VOC 2007的训练
按照这个项目(TFFRCNN) 下载并准备训练,验证,测试数据和在ImageNet
上预训练的VGG16
模型。
由于项目默认加载faster_rcnn_pytorch/data
,您可以将数据路径设置如下。
cd faster_rcnn_pytorch
mkdir data
cd data
ln -s $VOCdevkit VOCdevkit2007
然后,您可以train.py
中设置hyper-parameters
参数以及在.yml
文件中设置训练参数。
现在我在VOC07
上获得了0.661 mAP
,而原文章获得了0.699 mAP
。您可能需要调整faster_rcnn/faster_rcnn.py
中自己定义的损失函数。
四、使用TensorBoard进行训练
在Crayon
的帮助下,我们可以获得TensorBoard
的可视化功能,用于任何深度学习框架。
要使用TensorBoard
,安装Crayon,并设置use_tensorboard = True在faster_rcnn/train.py
;也可以参考在PyTorch中使用tensorboard可视化。
五、评估
在test.py
上设置训练过的模型的路径。
cd faster_rcnn_pytorch
mkdir output
python test.py
项目地址:longcw/faster_rcnn_pytorch
原创文章,转载请注明 :在PyTorch中实现Faster RCNN (faster_rcnn_pytorch) - pytorch中文网
原文出处: https://ptorch.com/news/218.html
问题交流群 :168117787
- 没有评论