Mask R-CNN pytorch实现代码测试和解读

  1. https://github.com/facebookresearch/detectron2 (PyTorch implementation)
  2. https://github.com/matterport/Mask_RCNN (Tensorflow implementation). Much of this repository was built using this repository as a reference

相关安装

建议按照教程新建anaconda环境以免冲突。

环境和库文件安装

安装要求和步骤,直接执行:

https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/INSTALL.md

 
  1. conda create --name maskrcnn_benchmark

  2. conda activate maskrcnn_benchmark

  3.  
  4. conda install ipython

  5.  
  6. pip install ninja yacs cython matplotlib tqdm

  7.  
  8. #此步骤不建议,最好离线直接安装

  9. conda install -c pytorch pytorch-nightly torchvision cudatoolkit=9.0

  10.  
  11. export INSTALL_DIR=$PWD

  12.  
  13. cd $INSTALL_DIR

  14. git clone https://github.com/cocodataset/cocoapi.git

  15. cd cocoapi/PythonAPI

  16. python setup.py build_ext install

  17.  
  18. cd $INSTALL_DIR

  19. git clone https://github.com/facebookresearch/maskrcnn-benchmark.git

  20. cd maskrcnn-benchmark

  21.  
  22. python setup.py build develop

  23.  
  24. unset INSTALL_DIR

(其中pytorch 1.0 装得很慢,而且经过测试没必要使用作者的nightly版本,直接用离线包安装1.0就行) 

注意:这个build编译和安装后会把maskrcn装作一个pip库从中引用,如果编译失败会在from maskrcnn_benchmark.config import cfg报错,因为找不到该库文件。安装后conda list会有显示.

 

权重文件下载

权值文件作者在代码中集成了,自动下载,速度比较快,直接用他的就行。在运行demo的时候会自动检测对应位置是否有权值文件,没有的话会进行下载,下载路径很奇怪,嵌入到torch的隐藏文件夹了:

 cd进入文件夹可以查看下载的ResNet-50和ResNet-101模型以及网络的权重:

 

运行demo 

两种方式利用现成参数inference

webcam摄像头检测分割

进入demo文件夹下,直接运行即可:

python webcam.py

图片检测分割

原文档没写清楚,稍微改改自己加一个文件就行,新建一个demo.py,其中写入如下:

 
  1. from maskrcnn_benchmark.config import cfg

  2. from predictor import COCODemo

  3. import torch

  4. import cv2

  5. import ipdb

  6.  
  7. ipdb.set_trace(context=35)

  8.  
  9. config_file = "../configs/caffe2/e2e_mask_rcnn_R_101_FPN_1x_caffe2.yaml"

  10. cfg.merge_from_file(config_file)

  11. cfg.merge_from_list(["MODEL.DEVICE", "cpu"])

  12. coco_demo = COCODemo(

  13. cfg,

  14. min_image_size=800,

  15. confidence_threshold=0.7,

  16. )

  17. image = cv2.imread('/py/pic/2.jpg')

  18. predictions = coco_demo.run_on_opencv_image(image)

  19. cv2.imshow("COCO detections", predictions)

  20. cv2.waitKey(0)

其中更换图片路径即可,config这里用的resnet-101,如果显存不够改成50即可(700M很小了)。注意:config建议用caffe路径下的,外面的会下载预训练权重,不能检测,是留作训练用的。

运行即可:

python demo.py

 

pytroch官网提供的预训练模型:resnet18:resnet18-5c106cde.pth和resnet50:resnet50-19c8e357.pth(两个文件打包在一起)
相关下载链接://download.csdn.net/download/qq_34374211/10618967?utm_source=bbsseo

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值