在PyTorch中实现Faster RCNN (faster_rcnn_pytorch)

Song • 305 次浏览 • 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中使用ruotianluoDetectron.pytorch更好的实现;

此项目是PyTorch实现faster rcnn。该项目主要基于py-faster-rcnnTFFRCNN

有关R-CNN的详细信息,请参阅文章Faster R-CNN

一、进展

  • 前向检测
  • CPU上使用C扩展的RoI Pooling层(仅前向)
  • GPU上的RoI Pooling层(前向和后向)
  • VOC2007的训练
  • 支持TensroBoard
  • 评估

二、安装和演示

1、安装要求(你可以使用pipAnaconda):

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、为nmsroi_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
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
Pytorch是什么?关于Pytorch! pytorch实现ssd边缘检测SSD: Single Shot MultiBox Object Detector