【保姆级】MaskRCNN-benchmark Ubuntu安装教程

CUDA11.3 Pytorch1.11.0 Python3.9 亲测可用,其他版本应该也可以实现,这篇能解决大部分遇到的报错问题。

1.建立conda环境

conda create --name maskrcnn_benchmark -y
conda activate maskrcnn_benchmark

可以自己指定一个python版本

2.安装pip

conda install ipython pip

3.安装必要的包

pip install ninja yacs cython matplotlib tqdm opencv-python

4.安装pytorch

官方给出的教程如下,但是要求cuda9.0,我不想降版本

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

根据自己选择的python版本和自己的cuda版本安装对应的pytorch,torchvision和torchaudio。

如cuda11.6

conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch

 cuda11.3

conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio cudatoolkit=11.3 -c pytorch

但是用conda或者pip下载实在是太慢了很容易中途断网,我选择直接下载对应的whl文件,上传大服务器然后直接pip install这个whl文件就可以。这个网站也可以查到到底对应哪些版本。

我只下载了torch,剩下两个直接用pip安装对应版本的了。如:

python -m pip install torchvision==0.13.0 torchaudio==0.12.0

下载地址: pytorch、torchvision历史版本的whl文件下载地址、版本对应关系与离线安装方法_pytorch whl-优快云博客

5.安装pycocotools

我是直接在根目录下下载的,反正这几步安装完了一定要退回,要不然下一个git clone就在这个目录下了。

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
cd #退回根目录

6.安装cityscapesScripts

git clone https://github.com/mcordts/cityscapesScripts.git
cd cityscapesScripts/
python setup.py build_ext install

记得退回 

7.安装 apex

git clone https://github.com/NVIDIA/apex.git
cd apex
python setup.py install --cuda_ext --cpp_ext

安装apex报错:找不到torch,首先查看pytorch是否已经正确安装。在bash中输入python

import torch
print(torch.__version__)

如果能正确输出,那就是安装好了,否则退回安装pytorch那一步。 

python3 setup.py install

如果安装apex这一步有别的报错,应该是有别的编译库没有装,可以把报错信息搜索一下,用apt装一下就行。 

8.下载源码

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

# the following will install the lib with
# symbolic links, so that you can modify
# the files if you want and won't need to
# re-build it
python setup.py build develop

真正的恶战开始了,这一步报错很多,我也查了很久,根据这个github回答亲测有效,我也会一步一步列出。 

remove THC.h by zyddnys · Pull Request #37 · CoinCheung/pytorch-loss

进入"maskrcnn_benchmark/csrc/" 

a.删除或注释所有的#include <THC/THC.h>

b.把所有的THCudaCheck换成AT_CUDA_CHECK

c.新建一个common.hpp文件

/**
   Computes ceil(a / b)
*/
template <typename T>
__host__ __device__ __forceinline__ T THCCeilDiv(T a, T b) {
  return (a + b - 1) / b;
}

/**
   Computes ceil(a / b) * b; i.e., rounds up `a` to the next highest
   multiple of b
*/
template <typename T>
__host__ __device__ __forceinline__ T THCRoundUp(T a, T b) {
  return THCCeilDiv(a, b) * b;
}

d.cu文件都加上common.hpp

#include "common.hpp"

重新安装一下,如果有以下错误:

这一个帖子的Q3可以解决:Maskrcnn/Faster-rcnn依赖项安装过程中THC.h: No such file or directory/THCeilDiv Undefined/分配内存空间等问题的解决方案_error: identifier "thcceildiv" is undefined-优快云博客

9.检验环境是否安装完成,运行示例代码 

官方给出的代码:

cd demo
# by default, it runs on the GPU
# for best results, use min-image-size 800
python webcam.py --min-image-size 800

但是我的服务器没有摄像头,我在demo里新建了一个文件,因为我是服务器转发图像到本地电脑,用了matplotlib显示,大家不需要的部分注释掉就行:

import cv2
from maskrcnn_benchmark.config import cfg
from predictor import COCODemo
import matplotlib
matplotlib.use('TkAgg')  # 或者 'Agg'
import matplotlib.pyplot as plt


# 配置文件路径
config_file = "../configs/caffe2/e2e_mask_rcnn_R_50_FPN_1x_caffe2.yaml"

# 更新配置
cfg.merge_from_file(config_file)
cfg.merge_from_list(["MODEL.DEVICE", "cpu"])

# 创建 COCO demo 实例
coco_demo = COCODemo(
    cfg,
    min_image_size=800,
    confidence_threshold=0.7,
)

# 加载图像
image_path = "test.png"  # 替换为实际图像路径
image = cv2.imread(image_path)  # 使用 OpenCV 加载图像

# 运行预测
predictions = coco_demo.run_on_opencv_image(image)

# 显示预测结果
# 使用 matplotlib 显示图像
plt.imshow(cv2.cvtColor(predictions, cv2.COLOR_BGR2RGB))  # 转换颜色格式为 RGB
plt.axis('off')  # 关闭坐标轴
plt.show()

 然后又开始报错,这部分基本已经完成了,就是找到报错的文件然后根据报错内容修改就可以。

改成PY37还报错,直接if 1就行。

其他包的依赖都要求numpy>=1.23,而且太低了也会报错 from numpy.core._multiarray_umath import (ImportError: DLL load failed),故而选择在代码中进行全局替换

使用grep查找含有np.float的文件

grep -r 'np.float' .

再将np.float都换成np.float64 

find . -type f -name "*.py" -exec sed -i 's/np.float/np.float64/g' {} +

之后会下载一个文件

​ 下载完又报错,找到这个文件取消判断就可以。

整理不易,有帮助的话点赞关注收藏一下吧~感谢!!
 

### 回答1: Mask R-CNN基准测试是一种评估Mask R-CNN模型性能的方法。它通过对模型在特定数据集上的精度、速度和内存占用等方面进行测试,来比较不同模型的性能。这种基准测试可以帮助研究人员和开发人员更好地了解模型的优缺点,从而改进和优化模型。 ### 回答2: Mask R-CNN是一种高效的目标检测和分割算法,它是Fast R-CNN和Faster R-CNN的扩展,同时实现目标检测和分割,具有在分割任务上表现优异的特性。其中,RCNN表示region-based convolutional neural network,即基于区域的卷积神经网络。 在这个算法中,先使用Faster R-CNN网络来生成Region Proposal,然后采用RoIAlign方法来对每个proposal进行精细的特征提取。接下来,利用全连接层对特征进行分类和定位,同时在每个proposal上输出一个二值掩码,以表示分割结果。最终,加权组合掩码实现对整个图像的分割。 Mask R-CNN算法具有以下优点: 1.高检测精度:与其他分割方法相比,具有更好的检测精度和较高的准确率。 2.快速的检测速度:在复杂空间分割任务中也有很高的速度表现。 3.方便的训练:可使用公共的数据集进行训练,且网络结构的组件相对简单。 4.高鲁棒性:在复杂背景和光照变化较大的情况下,具有很好的鲁棒性。 最近,挑战性视觉任务的准确度已成为机器学习领域的重要指标之一。而Mask RCNN在各种挑战性数据集上的通用性和准确性已得到了广泛认可,并在一些比赛中表现出色。因此,Mask RCNN已成为一种重要的检测和分割算法,并成为许多应用程序的主要选择,例如自动驾驶、医疗图像分析等。 ### 回答3: Mask R-CNN是一个在物体检测,物体分割和实例分割领域内具有划时代意义的算法,其模型基于Faster R-CNN和FCN的结合,并使用resnet网络提取特征和RoIAlign算法精细地在每个ROI区域做出预测。 Mask R-CNN在当今各个领域中的广泛应用,例如病理学,边缘检测和自动驾驶等方面,由此它成为了实例分割领域的基准参考模型。在2017年,Facebook AI Research通过在Microsoft COCO数据集上进行的Mask R-CNN实验中,进一步加固了这一点。 为了进一步加强Mask R-CNN模型的效果,Facebook AI Research团队针对实例分割这一模型进行了大量的优化。他们修改了现有的目标检测框架,并强调ROI池化过程中的局限性,增加了ROI Align机制。Mask R-CNN的模型通过在丰富的标注数据集上进行实验,并多次运行训练和测试,取得领先的实例分割结果。该研究强化了Mask R-CNN的性能和实用性,推动了实例分割领域的前沿。 当前,Mask R-CNN已经成为了视觉处理领域中的参考模型。其性能优越,可执行以更短的时间完成复杂的任务。同时,随着计算机硬件的不断提升和深度学习技术的不断进步,Mask R-CNN的整体有效性和效率在未来将继续改善。总而言之,Mask R-CNN在实例分割方面的卓越表现,使其成为了该领域的基准并且希望更加完美。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值