win10下detectron2编译安装方法及问题汇总

本文档详述了在Windows系统中,如何配置基于Anaconda的Python环境,包括创建虚拟环境、安装PyTorch、Torchvision、Detectron2以及相关依赖。此外,还提供了针对特定CUDA版本的解决办法,如修改CUDA源代码以消除编译错误。最后,通过编写并运行测试脚本来验证Detectron2的安装与运行情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

硬件
硬件:
CPU:Intel®Core™i5-10400F CPU @2.90GHz 2.90GHz
GPU: NVIDIA GeForce GTX 1660 Ti (6G显存)
内存:16.0GB(15.9GB可用)

软件:
Visual Studio 2019
CUDA10.1,cudnn
Anaconda3
torch 1.6.0+cu101
torchvision 0.7.0+cu101
python=3.8.0
detectron2

准备工作

  1. Anaconda3,Visual Studio 2019,CUDA,cudnn等安装方法参考网上安装教程。
  2. detectron2
    detectron2的GitHub下载链接(master)

安装

1. 创建虚拟环境
以管理员身份运行Anaconda Promp,详细步骤如下图:
在这里插入图片描述

鼠标放在Anaconda Prompt上面,按下鼠标右键,选择“更多->以管理员身份运行”出现Anaconda Prompt命令行

在这里插入图片描述

点击【以管理员身份运行】
在这里插入图片描述

设置清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

创建虚拟环境

conda create --name detectron2py38 python=3.8.0

激活虚拟环境

conda activate detectron2py38

查看已有的虚拟安装环境

conda env list

conda常用命令:
conda list:查看安装了哪些包。
conda install package_name(包名):安装包
conda env list 或 conda info -e:查看当前存在哪些虚拟环境
conda create -n your_env_name python=X.X(2.7、3.6等): 创建虚拟环境
conda activate your_env_name(虚拟环境名称):进入虚拟环境
conda deactivate your_env_name(虚拟环境名称):退出虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all:删除虚拟环境

2. 安装pytorch与torchvision

python -m pip install torch1.6.0+cu101 torchvision0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

测试pytorch 安装是否成功

python
import torch
torch.cuda.is_available()

显示为True即为安装成功

3. 安装相关依赖库
安装pycocotools:

python -m pip install pycocotools

安装opencv:

python -m pip install opencv-python

安装scrapy

conda install scrapy

4. 编译安装detectron2
切换到detectron2所在的盘符,例如切换到D盘

d:

切换到detectron2所在目录,例如

cd D:\detectron2\detectron2_master

编译安装

python setup.py build develop

说明:
develop命令不会安装软件包,但它会创建一个.egg-link部署目录回项目源代码目录。
所以这就像安装,但不是复制到site-packages。它添加一个符号链接(.egg-link充当多平台符号链接)。这样,您可以编辑源代码并直接查看更改,而无需在每次进行一些更改时重新安装,重装pytorch之后detectron2需要重新编译

5. 测试detectron2的运行环境
在D:\detectron2\tests的文件夹下创建一个test_windows_install.py文件夹,里面输入:

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

import cv2
import numpy as np
import requests

# Load an image
res = requests.get("https://live.staticflickr.com/700/33224654191_fdaee2e3f1_c_d.jpg")
image = np.asarray(bytearray(res.content), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)

config_file = 'COCO-Detection/faster_rcnn_R_101_FPN_3x.yaml'
cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file(config_file))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.75 # Threshold
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url(config_file)
cfg.MODEL.DEVICE = "cuda" # cpu or cuda

# Create predictor
predictor = DefaultPredictor(cfg)

# Make prediction
output = predictor(image)
print(output)
v = Visualizer(image[:, :, ::-1],
               scale=0.8,
               metadata=MetadataCatalog.get(cfg.DATASETS.TRAIN[0]),
               instance_mode=ColorMode.IMAGE
               )
v = v.draw_instance_predictions(output["instances"].to("cpu"))
cv2.imshow('images', v.get_image()[:, :, ::-1])
cv2.waitKey(0)

运行:

python tests\test_windows_install.py

测试结果:
在这里插入图片描述

6. 使用说明
编译成功后会在detectron2(子目录)目录下生成一个pyd文件,使用detectron2平台时将此pyd文件复制到对应的detectron2目录下,或将detecttion2目录复制到python工程目录下,例如使用centernet2网络时,操作如下:
在这里插入图片描述

问题汇总

1. Error: Internal Compiler Error (codegen): "there was an error in verifying the lgenfe output!
系统环境变量CUDA版本问题,例如使用CUDA10.1时,设置如下:
在这里插入图片描述
2. deform_conv_cuda_kernel.cu
在这里插入图片描述
用notepad++打开deform_conv_cuda_kernel.cu文件
在这里插入图片描述
查找:floor
在这里插入图片描述
替换为:floorf
在这里插入图片描述
在这里插入图片描述
3. nms_rotated_cuda.cu
在这里插入图片描述
用notepad++打开nms_rotated_cuda.cu文件
在这里插入图片描述
需要把红色标出的部分注释掉,再加入#include “box_iou_rotated/box_iou_rotated_utils.h”
在这里插入图片描述
下图所示为改动后的结果
在这里插入图片描述
4. ROIAlignRotated_cuda.cu
在这里插入图片描述
用notepad++打开ROIAlignRotated_cuda.cu文件
在这里插入图片描述
查找:ceil
在这里插入图片描述
替换为:ceilf(注意不是替换所有,只替换四个,如下图所示)
在这里插入图片描述
5. OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized
在报错脚本顶部添加:

import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值