1.安装CUDA Toolkit

在CUDA Toolkit Archive下载合适版本的CUDA Toolkit(如何找到合适版本的CUDA Toolkit版本可以参考其它教程,我下载的是Windows 11 x86_64下版本11.8.0的local exe文件)。

注:因为我电脑上原有的Visual Studio是Community 2022 17.13.2的,但我在官网查到的CUDA Toolkit 11.8.0应该装17.0的VS,所以我额外降了VS的版本(卸载->重装)。

安装CUDA Toolkit前先去Archive of NVIDIA CUDA documentation查一下当前版本的Toolkit支持什么版本的Visual Studio,点击你的CUDA Toolkit版本号后点击Installation Guide Windows,看Table 2(Windows Compiler Support in CUDA 11.8)。像我就需要把电脑上原有的Visual Studio Community 2022 17.13.2完全卸载后重新安装17.0的版本(在Visual Studio 2022 发行历史记录找找到了Professional 2022 LTSC 17.0的安装引导程序)。

安装时一路默认、自定义、全选(图略)。

为检测是否安装成功,可以cmd或者在Anaconda Prompt里输入“nvcc -V”,出现了你前面下载安装的版本信息的话就OK啦。

2.安装cuDNN

接下来在cuDNN Archive | NVIDIA Developer下载合适版本的cuDNN(我下载的版本如下图所示),下载前可能还需要注册/登录NVIDIA的账号,按提示走就可以了。

将cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip解压缩后把bin、include、lib、LICENSE复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8下,重复文件直接替换掉。

3.安装detectron2-0.6

切换到你想下载Detectron2项目的那个路径(我直接下到E盘根目录下了,这个其实不太科学,我后面又挪了项目位置),输入“git clone https://github.com/facebookresearch/detectron2.git”(电脑没配置Git的话就先找教程配置好),切换到detectron2目录下,用“conda activate PyTorch环境名”激活你的PyTorch环境(注:1.如果你是从复现VideoPose3D(3D Human Pose Estimation in Video With Temporal Convolutions and Semi-Supervised)-CSDN博客过来的,直接用你最开始在那边步骤1里创建的PyTorch环境名;2.如果你没有PyTorch环境,就用“conda create -n PyTorch环境名”新建一个,然后再激活;3.我的PyTorch环境就叫pytorch),“pip install -e .”安装其它依赖。如下图所示:

但运行时报错了一大堆,部分截图如下:

出现同样报错的朋友可以打开上图红框框起来的文件,在下图所示位置添加一句“#define WITH_HIP”:

保存文件后,重新运行“pip install -e .”就可以顺利进行了:

胜利结算画面:

4.安装相关依赖

首先pip install cython,然后pip install opencv-python(请忽略黄色警示):

5.测试Detectron2能否运行

在PyCharm里打开步骤3里下载了Detectron2项目的那个路径(我的在E盘根目录下):

虚拟环境要调成我们之前创建的那个PyTorch环境(我的PyTorch环境就叫pytorch):

在项目根目录创建两个文件,一个命名为Detector.py,一个命名为main.py。'

Detector.py文件内容如下:

import cv2

from detectron2 import model_zoo
from detectron2.config import get_cfg
from detectron2.data import MetadataCatalog
from detectron2.engine import DefaultPredictor
from detectron2.utils.visualizer import Visualizer, ColorMode


class Detector:

    def __init__(self, model_type = "OD"):
        self.cfg = get_cfg()

        if model_type == "OD":
            self.cfg.merge_from_file(model_zoo.get_config_file("COCO-Detection/faster_rcnn_R_101_FPN_3x.yaml"))
            self.cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-Detection/faster_rcnn_R_101_FPN_3x.yaml")
        elif model_type == "IS":
            self.cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
            self.cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
        self.cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.7
        self.cfg.MODEL.DEVICE = "cuda"

        self.predictor = DefaultPredictor(self.cfg)

    def onImage(self, imagepath):
        image = cv2.imread(imagepath, flags=1)

        predictions = self.predictor(image)

        viz = Visualizer(image[:, :, ::-1], metadata=MetadataCatalog.get(self.cfg.DATASETS.TRAIN[0]), instance_mode=ColorMode.SEGMENTATION)

        output = viz.draw_instance_predictions(predictions["instances"].to("cpu"))

        cv2.namedWindow("Result", 0)
        cv2.resizeWindow("Result", 1200, 600)
        cv2.imshow("Result", output.get_image()[:, :, ::-1])
        cv2.waitKey(0)

main.py文件内容如下:

from Detector import *

detector = Detector(model_type="IS")

detector.onImage("./my_test.jpg") # 引号里写你存放测试图片的路径

运行main.py(首次运行会加载pkl文件,耐心等待就好),测试结果如下:

可以看到检测分割出的语义有person、car、traffic light和handbag。

这个测试图片的链接是my_test.jpg,同样喜欢Shameless同样喜欢这张照片的朋友可以去get同款测试图片hhh。

Windows 11安装部署Detectron2的经验分享到这里就结束啦~

参考教程:

1.全过程都是参考Detectron2安装教程!_哔哩哔哩_bilibili的;

2.测试步骤(第5步)的代码主要参考了detectron2训练自己的数据集-CSDN博客。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐